private void OnSelection(CombatCharacter character) { List <CombatCharacter> selected = new List <CombatCharacter>(); if (caster.Value.IsSelectionCharacter) { selected.Add(character); } else { CombatSlotArrayVar selectedVars = character.Definition.Team == CharacterDefinition.TeamType.Player? players : enemies; foreach (CombatSlotObserver selectedCharacter in selectedVars.Value) { if (selectedCharacter.Character != null && selectedCharacter.Character.IsAlive) { selected.Add(selectedCharacter.Character); } } } CombatAction action = new CombatAction(caster.Value, selected.ToArray()); actions.Add(action); combatAnimator.Value.SetInteger("ActionsCount", actions.Count()); combatAnimator.Value.SetTrigger("TargetSelected"); actionUI.Value.AnimateAddAction(actions.Count() - 1); }
private int CountSlot(CombatSlotArrayVar var) { int count = 0; foreach (CombatSlotObserver observer in var.Value) { if (observer != null && observer.Character.IsAlive) { ++count; } } return(count); }