Exemple #1
0
    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);
    }
Exemple #2
0
 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);
 }