static public Dialogue_Prompt TakeRegisterMoney(Resources_Player player, Resources_Shopkeeper shopkeeper, int amount)
 {
     shopkeeper.home.money -= amount;
     player.money          += amount;
     Dialogue_Prompt_Logic.Root();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_root"));
 }
    static public Dialogue_Prompt DefaultAmount(Resources_Player player, Resources_Shopkeeper shopkeeper, int askingPrice)
    {
        Resources_Building shop = shopkeeper.home;
        float profit            = shop.income - shop.expenses;

        if (profit == 0)
        {
            profit = 0.0001f;
        }

        float affordValue   = 2 * ((1 - askingPrice / profit * shopkeeper.greed) * (shopkeeper.fear / shopkeeper.greed) - 50);
        float strengthValue = (Utilities.difficultyHandicap / 5 + player.strength) * player.presence - (shopkeeper.strength * 100 / shopkeeper.fear);
        float moralValue    = Utilities.difficultyHandicap * shopkeeper.fear / 10 - shopkeeper.integrity / shopkeeper.respect;

        Debug.Log("Afford Value: " + affordValue + ". Strength Value: " + strengthValue + ". Moral Value: " + moralValue + ". Total: " + (affordValue + strengthValue + moralValue) + ".");

        if ((affordValue + strengthValue + moralValue) >= 0)
        {
            Dialogue_Prompt_Logic.OfferAccepted();
            return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_offerAccepted"));
        }
        else
        {
            Dialogue_Prompt_Logic.OfferRefused();
            return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_offerRefused"));
        }
    }
    static public Dialogue_Prompt EnterShop()
    {
        Dialogue_Prompt_Logic.Greeting();
        return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_greeting"));

        /*
         * return Dialogue_Prompt.GetPromptByName("dialogue_prompt_assaultInitial");
         * return Dialogue_Prompt.GetPromptByName("dialogue_prompt_assaultSecondary");
         * return Dialogue_Prompt.GetPromptByName("dialogue_prompt_problemWithPayment");
         * return Dialogue_Prompt.GetPromptByName("dialogue_prompt_paymentFull");
         * return Dialogue_Prompt.GetPromptByName("dialogue_prompt_paymentPartial");
         * return Dialogue_Prompt.GetPromptByName("dialogue_prompt_paymentNone");
         */
    }
    private void SetOptions()
    {
        UnityEngine.Events.UnityAction[] actions = GetButtonActionFromDict((Dialogue_Prompt_Logic.FilterKeys(currentDialoguePrompt, shopkeeperRef)).ToArray());

        for (int i = 0; i < actions.Length; ++i)
        {
            SetBtnActions(i + 1, actions [i]);
        }

        List <string> buttonKeys = Dialogue_Prompt_Logic.FilterKeys(currentDialoguePrompt, shopkeeperRef);

        string[] choicesString = new string[6];
        for (int i = 0; i < buttonKeys.Count; ++i)
        {
            string buttonTextKey = Dialogue_Option.GetOptionByName(buttonKeys[i]).buttonTextKey;

            List <string> parameters = new List <string>();
            switch (buttonKeys[i])
            {
            case "dialogue_option_shopProduct": {
                if (i < shopkeeperRef.home.inventory.items.Count && shopkeeperRef.home.inventory.items[i] != null)
                {
                    string parameter = Localization.LocalizeText(shopkeeperRef.home.inventory.items[i].id);
                    parameters.Add(parameter);
                    choicesString[i] = Localization.LocalizeText(buttonTextKey, parameters);
                }
                else
                {
                    choicesString[i] = "DISABLE ME!";
                }
                break;
            }

            //case "dialogue_option_confirmPurchase": {
            //parameters.Add ();
            //break; }
            default: {
                choicesString[i] = Localization.LocalizeText(buttonTextKey);
                break;
            }
            }
        }

        choicesText.Clear();
        choicesText = choicesString.ToList();

        SetChoices(choicesString);
    }
 static public Dialogue_Prompt ConfirmPurchase(int playerCash, Item_Root item)
 {
     if (playerCash >= item.price)
     {
         Resources_Player.instance.inventory.GetItem(item);
         Resources_Player.instance.money -= item.price;
         DialogueInterface.Instance.shopkeeperRef.home.money += item.price;
         Dialogue_Prompt_Logic.PurchaseSuccessful();
         DialogueInterface.Instance.shopkeeperRef.respect += 5;
         return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_purchaseSuccessful"));
     }
     else
     {
         Dialogue_Prompt_Logic.PurchaseFailed();
         return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_purchaseFailed"));
     }
 }
 static public Dialogue_Prompt ShopProduct()
 {
     Dialogue_Prompt_Logic.ConfirmPurchase();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_confirmPurchase"));
 }
 static public Dialogue_Prompt ReturnGreeting()
 {
     Dialogue_Prompt_Logic.Root();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_root"));
 }
 static public Dialogue_Prompt ExitShop()
 {
     Dialogue_Prompt_Logic.Goodbye();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_goodbye"));
 }
 static public Dialogue_Prompt Placate()
 {
     Dialogue_Prompt_Logic.Placated();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_placated"));
 }
 static public Dialogue_Prompt OfferProtection()
 {
     Dialogue_Prompt_Logic.SchedulePayment();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_schedulePayment"));
 }
 static public Dialogue_Prompt CancelPurchase()
 {
     Dialogue_Prompt_Logic.Root();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_root"));
 }
 static public Dialogue_Prompt HearProposition()
 {
     Dialogue_Prompt_Logic.AskToLowerPayment();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_askToLowerPayment"));
 }
 static public Dialogue_Prompt GoShopping()
 {
     Dialogue_Prompt_Logic.ShopInventory();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_shopInventory"));
 }
 static public Dialogue_Prompt GetDetails()
 {
     Dialogue_Prompt_Logic.GiveDetails();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_giveDetails"));
 }
 static public Dialogue_Prompt Accept()
 {
     Dialogue_Prompt_Logic.Root();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_root"));
 }
 static public Dialogue_Prompt ContinueIntimidating()
 {
     Dialogue_Prompt_Logic.Intimidate();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_intimidate"));
 }
 static public Dialogue_Prompt Renegotiate()
 {
     Dialogue_Prompt_Logic.SchedulePayment();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_schedulePayment"));
 }
 static public Dialogue_Prompt Donate()
 {
     Debug.Log("THIS LOGIC IS MISSING");          // TODO:
     Dialogue_Prompt_Logic.Root();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_root"));
 }
    static public Dialogue_Prompt RequestPayment(Resources_Player player, Resources_Shopkeeper shopkeeper)
    {
        int randNum       = Random.Range(0, 50);
        int paymentAmount = shopkeeper.home.payment;

        // Determine if the shopkeeper is feeling cocky enough to not pay you.
        if (randNum > shopkeeper.respect && shopkeeper.strength > player.strength)
        {
            // The shopkeeper doesn't respect you, and isn't afraid of you, so you are not getting your payment
            Dialogue_Prompt_Logic.PaymentNone();
            return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_paymentNone"));
        }
        else
        {
            // Check to see if the store can afford to make the payment
            if (shopkeeper.home.money < paymentAmount)
            {
                // If the shop can't afford the payment
                // Check to see if the shopkeeper is fearful enough to try to pay out of pocket
                if (shopkeeper.fear > 50)
                {
                    // The shopkeeper is fearful enought to pay out of pocket
                    // Check to see if the shopkeeper can afford it
                    if (shopkeeper.home.money + shopkeeper.money < paymentAmount)
                    {
                        // The shopkeeper can't make up the difference and must pay only partially
                        player.money         += shopkeeper.home.money;
                        shopkeeper.home.money = 0;
                        Dialogue_Prompt_Logic.PaymentPartial();
                        return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_paymentPartial"));
                    }
                    else
                    {
                        // The shopkeeper will make up the difference out of pocket
                        player.money += paymentAmount;
                        int difAmount = paymentAmount;
                        difAmount            -= shopkeeper.home.money;
                        shopkeeper.home.money = 0;
                        shopkeeper.money     -= difAmount;
                        Dialogue_Prompt_Logic.PaymentFull();
                        return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_paymentFull"));
                    }
                }
                else
                {
                    // The shopkeeper is unwilling to pay out of pocket and will pay only partially
                    player.money         += shopkeeper.home.money;
                    shopkeeper.home.money = 0;
                    Dialogue_Prompt_Logic.PaymentPartial();
                    return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_paymentPartial"));
                }
            }
            else
            {
                // The shopkeeper can afford the full payment
                player.money          += paymentAmount;
                shopkeeper.home.money -= paymentAmount;
                Dialogue_Prompt_Logic.PaymentFull();
                return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_paymentFull"));
            }
        }
    }
Exemple #20
0
    static public void AddFollowUps()
    {
        for (int i = 0; i < dialoguePrompts.Count; i++)
        {
            string id = dialoguePrompts[i];
            switch (id)
            {
            case "dialogue_prompt_aidingBusiness": {
                Dialogue_Prompt_Logic.SetOptions_AidingBusiness(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_askToLowerPayment": {
                Dialogue_Prompt_Logic.SetOptions_AskToLowerPayment(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_assaultInitial": {
                Dialogue_Prompt_Logic.SetOptions_AssaultInitial(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_assaultSecondary": {
                Dialogue_Prompt_Logic.SetOptions_AssaultSecondary(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_confirmPurchase": {
                Dialogue_Prompt_Logic.SetOptions_ConfirmPurchase(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_giveDetails": {
                Dialogue_Prompt_Logic.SetOptions_GiveDetails(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_goodbye": {
                Dialogue_Prompt_Logic.SetOptions_Goodbye(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_greeting": {
                Dialogue_Prompt_Logic.SetOptions_Greeting(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            /*
             * case "dialogue_prompt_intimidate": {
             * Dialogue_Prompt_Logic.SetOptions_Intimidate(Dialogue_Prompt.GetPromptByName(id));
             * break; }
             * case "dialogue_prompt_intimidate_action": {
             * Dialogue_Prompt_Logic.SetOptions_Intimidate_Action(Dialogue_Prompt.GetPromptByName(id));
             * break; }
             * case "dialogue_prompt_intimidatedCallsPolice": {
             * Dialogue_Prompt_Logic.SetOptions_IntimidatedCallsPolice(Dialogue_Prompt.GetPromptByName(id));
             * break; }
             * case "dialogue_prompt_intimidatedFightsBack": {
             * Dialogue_Prompt_Logic.SetOptions_IntimidatedFightsBack(Dialogue_Prompt.GetPromptByName(id));
             * break; }
             * case "dialogue_prompt_intimidatedRattled": {
             * Dialogue_Prompt_Logic.SetOptions_IntimidatedRattled(Dialogue_Prompt.GetPromptByName(id));
             * break; }
             * case "dialogue_prompt_intimidatedUnaffected": {
             * Dialogue_Prompt_Logic.SetOptions_IntimidatedUnaffected(Dialogue_Prompt.GetPromptByName(id));
             * break; }
             */
            case "dialogue_prompt_offerAccepted": {
                Dialogue_Prompt_Logic.SetOptions_OfferAccepted(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_offerRefused": {
                Dialogue_Prompt_Logic.SetOptions_OfferRefused(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_outsideShop": {
                Dialogue_Prompt_Logic.SetOptions_OutsideShop(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_paymentFull": {
                Dialogue_Prompt_Logic.SetOptions_PaymentFull(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_paymentNone": {
                Dialogue_Prompt_Logic.SetOptions_PaymentNone(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_paymentPartial": {
                Dialogue_Prompt_Logic.SetOptions_PaymentPartial(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_placated": {
                Dialogue_Prompt_Logic.SetOptions_Placated(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_problemWithPayment": {
                Dialogue_Prompt_Logic.SetOptions_ProblemWithPayment(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_purchaseFailed": {
                Dialogue_Prompt_Logic.SetOptions_PurchaseFailed(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_purchaseSuccessful": {
                Dialogue_Prompt_Logic.SetOptions_PurchaseSuccessful(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_registerEmpty": {
                Dialogue_Prompt_Logic.SetOptions_RegisterEmpty(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_registerSomeMoney": {
                Dialogue_Prompt_Logic.SetOptions_RegisterSomeMoney(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_registerHiddenMoney": {
                Dialogue_Prompt_Logic.SetOptions_RegisterHiddenMoney(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_registerTakeOrLeaveMoney": {
                Dialogue_Prompt_Logic.SetOptions_RegisterTakeOrLeaveMoney(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_root": {
                Dialogue_Prompt_Logic.SetOptions_Root(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_schedulePayment": {
                Dialogue_Prompt_Logic.SetOptions_SchedulePayment(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_shopInventory": {
                Dialogue_Prompt_Logic.SetOptions_ShopInventory(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            case "dialogue_prompt_smallTalk": {
                Dialogue_Prompt_Logic.SetOptions_SmallTalk(Dialogue_Prompt.GetPromptByName(id));
                break;
            }

            default: {
                Debug.LogWarning("PROMPT NOT RECOGNIZED! " + id);
                break;
            }
            }
        }
    }
 static public Dialogue_Prompt ChitChat()
 {
     Dialogue_Prompt_Logic.SmallTalk();
     return(Dialogue_Prompt.GetPromptByName("dialogue_prompt_smallTalk"));
 }