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); } }
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; } })); }
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); }
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); }