protected bool TryCreateArmyMission(string missionType, List <object> missionParameter) { if (this.AIDataArmyGUID == GameEntityGUID.Zero) { return(false); } AIData_Army aidata = this.aiDataRepository.GetAIData <AIData_Army>(this.AIDataArmyGUID); if (aidata == null) { this.AIDataArmyGUID = GameEntityGUID.Zero; return(false); } AIArmyMissionDefinition value = Databases.GetDatabase <AIArmyMissionDefinition>(false).GetValue(missionType); Diagnostics.Assert(value != null); if (value == null) { return(false); } if (aidata.ArmyMission == null || aidata.ArmyMission.AIArmyMissionDefinition == null || aidata.ArmyMission.AIArmyMissionDefinition.Name != missionType) { aidata.AssignArmyMission(this.Commander, value, missionParameter.ToArray()); } else if (!aidata.ArmyMission.TrySetParameters(missionParameter.ToArray())) { aidata.AssignArmyMission(this.Commander, value, missionParameter.ToArray()); } return(true); }
public void AssignArmyMission(AICommander aiCommander, AIArmyMissionDefinition armyMissionDefinition, params object[] parameters) { if (this.ArmyMission != null) { this.UnassignArmyMission(); } this.ArmyMission = new AIArmyMission { AIArmyMissionDefinition = armyMissionDefinition, Army = this.Army, AICommander = aiCommander }; this.ArmyMission.Initialize(parameters); }