private void addPlayerLineToSelectClanMoneyTier(int tier)
 {
     CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_CLAN_MONEY_TIER_ITEM, "sue_clan_create_from_family_take_money", "sue_clan_create_from_family_complete_take_money", String.Format("{0} GLOD ( Tier = {1} )", clanCreateBussniess.TakeMoneyByTier(tier), tier), null, new ConversationSentence.OnConsequenceDelegate(() =>
     {
         this.clanCreateBussniess.selectClanTier = tier;
     }));
 }
        private void GenerateDialogueForSelectClan()
        {
            PlayerLineUtils.cleanRepeatableLine(CampaignGameStarter, FLAG_CLAN_CREATE_CHOICE_CLAN_ITEM);
            Kingdom     kindom    = Hero.MainHero.MapFaction as Kingdom;
            List <Clan> clans     = kindom.Clans.Where((clan) => clan != Clan.PlayerClan).ToList();
            int         maxNumber = 10;

            if (clans.Count() <= maxNumber)
            {
                clans.ForEach((clan) => addPlayerLineToSelectClan(clan));
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_CLAN_ITEM, "sue_clan_create_from_family_change_clan_answer_select", "close_window", GameTexts.FindText("sue_clan_create_from_family_of_forget", null).ToString(), null, null, 100, null);
            }
            else
            {
                List <int> canAddIndexs = RandomUtils.RandomNumbers(maxNumber, 0, clans.Count(), new List <int>()
                {
                });
                int index = 0;
                clans.ForEach((clan) =>
                {
                    if (canAddIndexs.Contains(index))
                    {
                        addPlayerLineToSelectClan(clan);
                    }
                    index++;
                });
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_CLAN_ITEM, "sue_clan_create_from_family_change_clan_answer_select", "sue_clan_create_from_family_take_clan_change", GameTexts.FindText("sue_clan_create_from_family_choice_spouse_item_change", null).ToString(), null, new ConversationSentence.OnConsequenceDelegate(() => { GenerateDialogueForSelectClan(); }), 100, null);
                CampaignGameStarter.AddDialogLine(FLAG_CLAN_CREATE_CHOICE_CLAN_ITEM, "sue_clan_create_from_family_take_clan_change", "sue_clan_create_from_family_change_clan_answer_select", GameTexts.FindText("sue_clan_create_from_family_choice_spouse_item_change_tip", null).ToString(), null, null, 100, null);
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_CLAN_ITEM, "sue_clan_create_from_family_change_clan_answer_select", "close_window", GameTexts.FindText("sue_clan_create_from_family_of_forget", null).ToString(), null, null, 100, null);
            }
        }
 private void addPlayerLineToSelectSettlement(Settlement settlement)
 {
     CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SETTLEMENT_ITEM, "sue_clan_create_from_family_start", "sue_clan_create_from_family_choice_other", settlement.Name.ToString(), null, new ConversationSentence.OnConsequenceDelegate(() =>
     {
         this.clanCreateBussniess.targetSettlement = settlement;
     }));
 }
        private void ShowSelectSettlement()
        {
            List <Settlement> settlements = Hero.MainHero.Clan.Settlements.Where((settlement) => (settlement.IsTown || settlement.IsCastle)).ToList();
            int maxNumber = 10;

            if (settlements.Count() <= maxNumber)
            {
                settlements.ForEach((settlement) => addPlayerLineToSelectSettlement(settlement));
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SETTLEMENT_ITEM, "sue_clan_create_from_family_start", "close_window", GameTexts.FindText("sue_clan_create_from_family_of_forget", null).ToString(), null, null, 100, null);
            }
            else
            {
                List <int> canAddIndexs = RandomUtils.RandomNumbers(maxNumber, 0, settlements.Count(), new List <int>()
                {
                });
                int index = 0;
                settlements.ForEach((settlement) =>
                {
                    if (canAddIndexs.Contains(index))
                    {
                        addPlayerLineToSelectSettlement(settlement);
                    }
                    index++;
                });
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SETTLEMENT_ITEM, "sue_clan_create_from_family_start", "sue_clan_create_from_family_take_settlement_change", GameTexts.FindText("sue_clan_create_from_family_choice_spouse_item_change", null).ToString(), null, new ConversationSentence.OnConsequenceDelegate(() => { GenerateDataForCreateClan(); }), 100, null);
                CampaignGameStarter.AddDialogLine(FLAG_CLAN_CREATE_CHOICE_SETTLEMENT_ITEM, "sue_clan_create_from_family_take_settlement_change", "sue_clan_create_from_family_start", GameTexts.FindText("sue_clan_create_from_family_choice_spouse_item_change_tip", null).ToString(), null, null, 100, null);
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SETTLEMENT_ITEM, "sue_clan_create_from_family_start", "close_window", GameTexts.FindText("sue_clan_create_from_family_of_forget", null).ToString(), null, null, 100, null);
            }
        }
Example #5
0
 public void CreateAndAdd(CampaignGameStarter campaignGameStarter)
 {
     if (this.isPlayer)
     {
         campaignGameStarter.AddRepeatablePlayerLine(this.id, this.inputOrder, this.outOrder, this.text, NewCondition(this.condition), NewResult(this.result), 100, null);
     }
     else
     {
         campaignGameStarter.AddDialogLine(this.id, this.inputOrder, this.outOrder, this.text, NewCondition(this.condition), NewResult(this.result), 100, null);
     }
 }
        private void addPlayerLineToSelectClan(Clan clan)
        {
            int heroCount = clan.Heroes.Select((obj) => ((int)obj.Age >= (int)Campaign.Current.Models.AgeModel.HeroComesOfAge)).Count();

            String showText = clan.Name.ToString() + String.Format("   ( Hero Count = {0};  Clan Tier = {1} )", heroCount, clan.Tier);

            CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_CLAN_ITEM, "sue_clan_create_from_family_change_clan_answer_select", "sue_clan_create_from_family_change_clan_answer_select_result", showText, null, new ConversationSentence.OnConsequenceDelegate(() =>
            {
                this.targetChangeClan = clan;
            }));
        }
 private void addPlayerLineToSelectSpouse(Hero spouse)
 {
     CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SPOUSE_ITEM, "sue_clan_create_from_family_take_spouse", "sue_clan_create_from_family_request_money", spouse.Name.ToString(), new ConversationSentence.OnConditionDelegate(() =>
     {
         Hero hero = Hero.OneToOneConversationHero;
         return(hero != spouse);
     }), new ConversationSentence.OnConsequenceDelegate(() =>
     {
         {
             this.clanCreateBussniess.targetSpouse = spouse;
         }
     }));
 }
Example #8
0
        private void OnSessionLaunched(CampaignGameStarter starter)
        {
            currentQuests = new Dictionary <Settlement, QuestBase>();
            starter.AddPlayerLine("armor_craft_player_line", "weaponsmith_talk_player", "armor_craft_request", "Can you craft me an armor ?", new ConversationSentence.OnConditionDelegate(ArmorSmithDialogCondition), null);
            //add armor types dialogs
            starter.AddDialogLine("armor_craft_response_1", "armor_craft_request", "armor_type_choice", "What kind of armor ?", null, new ConversationSentence.OnConsequenceDelegate(ArmorSmithDialogOnTypeChoiceConsequence), 100, null);
            starter.AddRepeatablePlayerLine("armor_craft_type_choice", "armor_type_choice", "armor_tier_choice", "{TYPE}", new ConversationSentence.OnConditionDelegate(ArmorSmithDialogOnTypeChoiceCondition), new ConversationSentence.OnConsequenceDelegate(ArmorSmithDialogOnTypeChoiceUpdateSelected));
            starter.AddPlayerLine("armor_craft_type_choice_return", "armor_type_choice", "weaponsmith_begin", "Nevermind", null, null);

            //add armor tier dialogs
            starter.AddDialogLine("armor_craft_tier_choice", "armor_tier_choice", "armor_tier_choice_repeat", "So you want {TYPE}? Fine. Help me narrow it down, which armor tier are you going for ?", new ConversationSentence.OnConditionDelegate(ArmorSmithDialogOnTierChoiceDialogCondition), new ConversationSentence.OnConsequenceDelegate(ArmorSmithDialogOnTierChoiceConsequence));
            starter.AddRepeatablePlayerLine("armor_craft_tier_choice", "armor_tier_choice_repeat", "armor_item_choice", "{TIER}", new ConversationSentence.OnConditionDelegate(ArmorSmithDialogOnTierchoiceCondition), new ConversationSentence.OnConsequenceDelegate(ArmorSmithDialogOnTierChoiceUpdateSelected));
            starter.AddPlayerLine("armor_craft_tier_choice_return", "armor_tier_choice_repeat", "weaponsmith_begin", "Nevermind", null, null);

            //add armor item dialogs
            starter.AddDialogLine("armor_craft_item_choice", "armor_item_choice", "armor_item_choice_repeat", "So that will be {TYPEANDTIER}. What are you looking for in particular ?", new ConversationSentence.OnConditionDelegate(ArmorSmithDialogOnTypeAndTierChoiceCondition), new ConversationSentence.OnConsequenceDelegate(ArmorSmithDialogOnItemChoiceConsequence));
            starter.AddRepeatablePlayerLine("armor_craft_type_choice", "armor_item_choice_repeat", "armor_pay", "{ITEM}", new ConversationSentence.OnConditionDelegate(ArmorSmithDialogOnItemChoiceCondition), new ConversationSentence.OnConsequenceDelegate(ArmorSmithDialogOnItemChoiceUpdateSelected));
            starter.AddPlayerLine("armor_craft_type_choice_return", "armor_item_choice_repeat", "weaponsmith_begin", "Nevermind", null, null);
            //add pay half dialog
            starter.AddDialogLine("armor_craft_pay", "armor_pay", "armor_pay_choice", "{ITEM} it is then, that will cost you {COST}.\nYou will have to pay half of the price now, wait a week for me to finish your piece then come back here to pick it up and pay the rest of the price.", new ConversationSentence.OnConditionDelegate(ArmorSmithDialogOnPayCondition), null);
            starter.AddPlayerLine("armor_craft_pay_response", "armor_pay_choice", "quest_starter_dialog", "Sounds good, here's your money.", null, new ConversationSentence.OnConsequenceDelegate(ArmorSmithDialogOnPay), 100, new ConversationSentence.OnClickableConditionDelegate(ArmorSmithDialogCanPayCondition));
            starter.AddPlayerLine("armor_craft_pay_response_return", "armor_pay_choice", "weaponsmith_begin", "I changed my mind", null, null);
        }
        private void ShowSelectSpouseList()
        {
            IEnumerable <TroopRosterElement> spouses = MobileParty.MainParty.MemberRoster.GetTroopRoster().Where(new Func <TroopRosterElement, bool>((obj) => (obj.Character.IsHero && obj.Character.HeroObject.Spouse == null && obj.Character.HeroObject.IsPlayerCompanion)));
            int maxNumber = 10;

            if (spouses.Count() <= maxNumber)
            {
                spouses.ToList().ForEach((obj) =>
                {
                    Hero spouse = obj.Character.HeroObject;
                    addPlayerLineToSelectSpouse(spouse);
                });
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SPOUSE_ITEM, "sue_clan_create_from_family_take_spouse", "sue_clan_create_from_family_request_money", GameTexts.FindText("sue_clan_create_from_family_need_spouse_not", null).ToString(), null, null, 100, null);
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SPOUSE_ITEM, "sue_clan_create_from_family_take_spouse", "close_window", GameTexts.FindText("sue_clan_create_from_family_of_forget", null).ToString(), null, null, 100, null);
            }
            else
            {
                Hero hero = Hero.OneToOneConversationHero;
                List <CharacterObject> targets = new List <CharacterObject>();
                foreach (TroopRosterElement troopRosterElement in spouses)
                {
                    if (troopRosterElement.Character.IsHero && troopRosterElement.Character.HeroObject.Spouse == null && troopRosterElement.Character.HeroObject.IsPlayerCompanion)
                    {
                        targets.Add(troopRosterElement.Character);
                    }
                }
                int        excludeIndex = targets.IndexOf(hero.CharacterObject);
                List <int> canAddIndexs = RandomUtils.RandomNumbers(maxNumber, 0, targets.Count(), new List <int>()
                {
                    excludeIndex
                });
                int index = 0;
                targets.ForEach((obj) =>
                {
                    Hero spouse = obj.HeroObject;
                    if (canAddIndexs.Contains(index))
                    {
                        addPlayerLineToSelectSpouse(spouse);
                    }
                    index++;
                });
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SPOUSE_ITEM, "sue_clan_create_from_family_take_spouse", "sue_clan_create_from_family_take_spouse_change", GameTexts.FindText("sue_clan_create_from_family_choice_spouse_item_change", null).ToString(), null, new ConversationSentence.OnConsequenceDelegate(() => { GenerateDataForCreateClan(); }), 100, null);
                CampaignGameStarter.AddDialogLine(FLAG_CLAN_CREATE_CHOICE_SPOUSE_ITEM, "sue_clan_create_from_family_take_spouse_change", "sue_clan_create_from_family_take_spouse", GameTexts.FindText("sue_clan_create_from_family_choice_spouse_item_change_tip", null).ToString(), null, null, 100, null);
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SPOUSE_ITEM, "sue_clan_create_from_family_take_spouse", "sue_clan_create_from_family_request_money", GameTexts.FindText("sue_clan_create_from_family_need_spouse_not", null).ToString(), null, null, 100, null);
                CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_SPOUSE_ITEM, "sue_clan_create_from_family_take_spouse", "close_window", GameTexts.FindText("sue_clan_create_from_family_of_forget", null).ToString(), null, new ConversationSentence.OnConsequenceDelegate(() => {
                }), 100, null);
            }
        }
        private void ShowClanMoneyTierList()
        {
            int canTakeMoneyMaxTier = 6;

            for (int i = 2; i < 7; i++)
            {
                bool canShow = PlayGetMoneyByTierCondition(i);
                if (!canShow)
                {
                    canTakeMoneyMaxTier = i - 1;
                    break;
                }
            }

            for (int i = 2; i <= canTakeMoneyMaxTier; i++)
            {
                addPlayerLineToSelectClanMoneyTier(i);
            }
            CampaignGameStarter.AddRepeatablePlayerLine(FLAG_CLAN_CREATE_CHOICE_CLAN_MONEY_TIER_ITEM, "sue_clan_create_from_family_take_money", "close_window", GameTexts.FindText("sue_clan_create_from_family_of_forget", null).ToString(), null, null, 100, null);
        }
Example #11
0
        private void OnSessionLaunched(CampaignGameStarter starter)
        {
            currStarter = starter;
            InformationManager.DisplayMessage(new InformationMessage("MoreSpouses OnSessionLaunched"));

            //修正过去BUG 导致 英雄状态还是囚犯状态
            starter.AddPlayerLine("conversation_prisoner_chat_start", "start", "close_window", LoactionText("sue_more_spouses_female_spouses_status_prisoner_become_active"), new ConversationSentence.OnConditionDelegate(isSpouseAndPrisoner), new ConversationSentence.OnConsequenceDelegate(changeSpousePrisonerStatusToActive), 100, null, null);
            //campaignGameStarter.AddDialogLine("conversation_prisoner_chat_fix", "female_prisoner_fix_status", "", GameTexts.FindText("sue_more_spouses_thanks", null).ToString(), new ConversationSentence.OnConditionDelegate(isSpouseAndPrisoner), new ConversationSentence.OnConsequenceDelegate(changeSpousePrisonerStatusToActive), 1000, null);

            //同伴开始
            starter.AddPlayerLine("conversation_prisoner_chat_player", "hero_main_options", "sue_more_spouses_companion_become_spouse", LoactionText("sue_more_spouses_companion_become_spouse"), Condition(IsPlayerCompanionAndCanBecomeSpouse), null, 100, null, null);
            starter.AddDialogLine("sue_more_spouses_companion_choice_result", "sue_more_spouses_companion_become_spouse", "sue_more_spouses_companion_become_spouse_accept", LoactionText("sue_more_spouses_companion_become_spouse_accept"), null, Result(() => {
                Hero target = Hero.OneToOneConversationHero;
                HeroRlationOperation.ChangeCompanionToSpouse(target);
            }), 100, null);


            //囚禁事件的
            starter.AddPlayerLine("sms_tavernmaid_chat_player", "cprostitute_talk_00_response", "sue_more_spouses_tavernmaid_start", LoactionText("sue_more_spouses_npc_becomes_spouse"), Condition(IsNormalNPC), null, 100, null, null);
            starter.AddPlayerLine("sms_tavernmaid_chat_player", "cprostitute_talk_02_response", "sue_more_spouses_tavernmaid_start", LoactionText("sue_more_spouses_npc_becomes_spouse"), Condition(IsNormalNPC), null, 100, null, null);
            starter.AddPlayerLine("sms_tavernmaid_chat_player", "cprostitute_talk_01_response", "sue_more_spouses_tavernmaid_start", LoactionText("sue_more_spouses_npc_becomes_spouse"), Condition(IsNormalNPC), null, 100, null, null);
            starter.AddPlayerLine("sms_tavernmaid_chat_player", "tcustomer_00", "sue_more_spouses_tavernmaid_start", LoactionText("sue_more_spouses_npc_becomes_spouse"), Condition(IsNormalNPC), null, 100, null, null);
            starter.AddPlayerLine("sms_tavernmaid_chat_player", "ccustomer_00", "sue_more_spouses_tavernmaid_start", LoactionText("sue_more_spouses_npc_becomes_spouse"), Condition(IsNormalNPC), null, 100, null, null);

            //城镇和农村 人员
            starter.AddPlayerLine("sms_tavernmaid_chat_player", "town_or_village_player", "sue_more_spouses_tavernmaid_start", LoactionText("sue_more_spouses_npc_becomes_spouse"), Condition(IsNormalNPC), null, 100, null, null);
            //酒馆女仆
            starter.AddPlayerLine("sms_tavernmaid_chat_player", "tavernmaid_talk", "sue_more_spouses_tavernmaid_start", LoactionText("sue_more_spouses_npc_becomes_spouse"), Condition(IsNormalNPC), null, 100, null, null);
            starter.AddDialogLine("sms_tavernmaid_ask_what", "sue_more_spouses_tavernmaid_start", "sms_tavernmaid_ask_what", LoactionText("sms_tavernmaid_ask_what"), null, null, 100, null);
            starter.AddPlayerLine("sms_tavernmaid_ask_what_result", "sms_tavernmaid_ask_what", "sms_tavernmaid_accept_result", LoactionText("sue_more_spouses_prisoner_punish_lord_become_spouse"), Condition(IsNormalNPC), Result(() => {
                CharacterObject character = CharacterObject.OneToOneConversationCharacter;
                if (null != character)
                {
                    HeroRlationOperation.NPCToSouse(character, currStarter);
                }
            }), 100, null, null);
            starter.AddPlayerLine("sms_tavernmaid_ask_what_result", "sms_tavernmaid_ask_what", "sms_tavernmaid_accept_result", LoactionText("sue_more_spouses_prisoner_punish_lord_become_wanderer_companion"), Condition(IsNormalNPC), Result(() => {
                CharacterObject character = CharacterObject.OneToOneConversationCharacter;
                if (null != character)
                {
                    // ConversationManager manager =  ConversationUtils.GetConversationManager(currStarter);
                    HeroRlationOperation.NPCToCompanion(character, currStarter);
                }
            }), 100, null, null);
            starter.AddRepeatablePlayerLine("sms_tavernmaid_ask_what_result", "sms_tavernmaid_ask_what", "close_window", GameTexts.FindText("sue_more_spouses_prisoner_punish_cancel", null).ToString(), null, null, 100, null);
            starter.AddDialogLine("sms_tavernmaid_accept_result", "sms_tavernmaid_accept_result", "sue_more_spouses_companion_become_spouse_accept", LoactionText("sms_tavernmaid_accept_result"), null, null, 100, null);



            //囚犯开始
            starter.AddPlayerLine("conversation_prisoner_chat_player", "prisoner_recruit_start_player", "sue_more_spouses_prisoner_punish_start", LoactionText("sue_more_spouses_prisoner_punish_start"), Condition(IsPrisioner), null, 100, null, null);
            starter.AddDialogLine("sue_more_spouses_prisoner_beg_for_mercy", "sue_more_spouses_prisoner_punish_start", "sue_more_spouses_prisoner_beg_for_mercy", LoactionText("sue_more_spouses_prisoner_beg_for_mercy"), null, null, 100, null);

            starter.AddPlayerLine("sue_more_spouses_prisoner_punish_lord_become_spouse", "sue_more_spouses_prisoner_beg_for_mercy", "sue_more_spouses_prisoner_punish_result", LoactionText("sue_more_spouses_prisoner_punish_lord_become_spouse"), Condition(IsLord), Result(() => {
                ChangePrisonerLordToSpouse();
            }), 100, null, null);
            starter.AddPlayerLine("sue_more_spouses_prisoner_punish_lord_become_wanderer_companion", "sue_more_spouses_prisoner_beg_for_mercy", "sue_more_spouses_prisoner_punish_result", LoactionText("sue_more_spouses_prisoner_punish_lord_become_wanderer_companion"), Condition(IsLord), Result(() => {
                ChangePrisonerLordToFamily();
            }), 100, null, null);
            starter.AddRepeatablePlayerLine("sue_more_spouses_prisoner_punish_cancel", "sue_more_spouses_prisoner_beg_for_mercy", "close_window", GameTexts.FindText("sue_more_spouses_prisoner_punish_cancel", null).ToString(), null, null, 100, null);

            starter.AddDialogLine("sue_more_spouses_prisoner_punish_result", "sue_more_spouses_prisoner_punish_result", "sue_more_spouses_companion_become_spouse_accept", LoactionText("sue_more_spouses_prisoner_punish_accept"), null, null, 100, null);

            // starter.AddPlayerLine("sue_more_spouses_female_companion_become_spouse", "sue_more_spouses_female_companion_become_spouse", "female_prisoner_choice_accept", LoactionText("sue_more_spouses_punish_start"), null, null, 100, null, null);
            // campaignGameStarter.AddPlayerLine("conversation_prisoner_chat_player", "prisoner_recruit_start_player", "female_prisoner_choice", GameTexts.FindText("sue_more_spouses_female_prisoner_become_spouse_ask", null).ToString(), new ConversationSentence.OnConditionDelegate(isSuitableFemale), new ConversationSentence.OnConsequenceDelegate(ConversationResult), 100, null, null);
            //campaignGameStarter.AddPlayerLine("conversation_prisoner_chat_player", "hero_main_options", "female_prisoner_choice", GameTexts.FindText("sue_more_spouses_female_prisoner_become_spouse_ask", null).ToString(), new ConversationSentence.OnConditionDelegate(isSuitableFemale), new ConversationSentence.OnConsequenceDelegate(ConversationResult), 1000, null, null);


            //starter.AddDialogLine("female_prisoner_choice_result", "female_prisoner_choice", "female_prisoner_choice_refuse", GameTexts.FindText("sue_more_spouses_female_prisoner_become_spouse_result_refuse", null).ToString(), new ConversationSentence.OnConditionDelegate(() => this.acceptFlag != 1), null, 100, null);
        }