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