public void AddCombatantWithBehaviour(CombatantModel combatantModel, CombatBehaviourBase combatBehaviour)
        {
            combatBehaviour.Init(combatantModel);
            // Update existing combatants to consider the newly added one.
            // And update new one with existing combatant
            for (int i = 0; i < allCombatants.Count; i++)
            {
                combatantModelToBehaviour[allCombatants[i]].AddOtherCombatant(combatantModel);
                combatBehaviour.AddOtherCombatant(allCombatants[i]);
            }

            List <CombatantModel> teamCombatantModels = null;

            if (!teamIDToCombatantModel.TryGetValue(combatantModel.TeamID, out teamCombatantModels))
            {
                teamCombatantModels = new List <CombatantModel>();
                teamIDToCombatantModel.Add(combatantModel.TeamID, teamCombatantModels);
            }
            teamCombatantModels.Add(combatantModel);
            allCombatants.Add(combatantModel);
            combatActionsCollection.Add(combatantModel.ID, new List <CombatActionModel>());
            combatantModelToBehaviour.Add(combatantModel, combatBehaviour);
        }
Exemplo n.º 2
0
 public ServerNpcModel(CombatBehaviourBase combatantBehaviour, string id, string name, NpcRole npcRole, NpcRace npcRace,
                       NpcSize npcSize, RarityType rarityType, CombatantModel combatantModel, string[] alwaysDroppedItemIDs = null) : base(id,
                                                                                                                                           name, npcRole, npcRace, npcSize, rarityType, combatantModel, alwaysDroppedItemIDs)
 {
     this.CombatBehaviour = combatantBehaviour;
 }