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