protected override void OnGameStart(Game game, IGameStarter gameStarter) { _mercenaryManager = new MercenaryManager(); _campaignEvents = new MercenaryContractCampaignEvents(); if (game.GameType is CampaignStoryMode campaignStoryMode && gameStarter is CampaignGameStarter campaignGameStarter) { campaignGameStarter.LoadGameTexts($"{BasePath.Name}Modules/Aragas.MercenaryContract/ModuleData/global_strings.xml"); campaignGameStarter.AddBehavior(new BattleBehavior()); campaignGameStarter.AddBehavior(new BattleHistoryBehavior()); campaignGameStarter.AddBehavior(new MercenaryContractBehavior()); if (campaignStoryMode.CampaignGameLoadingType == Campaign.GameLoadingType.SavedCampaign) { // Keep this fix for a few versions (ZIJI: disabling it now in e1.5.5, as this property doesn't even have a public setter) if (Clan.PlayerClan.IsUnderMercenaryService && Clan.PlayerClan.Kingdom == null) { Clan.PlayerClan.EndMercenaryService(isByLeavingKingdom: false); } } } }
protected override void OnGameStart(Game game, IGameStarter gameStarter) { _mercenaryManager = new MercenaryManager(); _campaignEvents = new MercenaryContractCampaignEvents(); if (game.GameType is CampaignStoryMode campaignStoryMode && gameStarter is CampaignGameStarter campaignGameStarter) { campaignGameStarter.LoadGameTexts($"{BasePath.Name}Modules/Aragas.MercenaryContract/ModuleData/global_strings.xml"); campaignGameStarter.AddBehavior(new BattleBehavior()); campaignGameStarter.AddBehavior(new BattleHistoryBehavior()); campaignGameStarter.AddBehavior(new MercenaryContractBehavior()); if (campaignStoryMode.CampaignGameLoadingType == Campaign.GameLoadingType.SavedCampaign) { // Keep this fix for a few versions if (Clan.PlayerClan.IsUnderMercenaryService && Clan.PlayerClan.Kingdom == null) { Clan.PlayerClan.IsUnderMercenaryService = false; } } } }