public Ability(int level, string name, AbilityColor color, GladiatorController.AnimationState state) { _Level = level; _Name = name; _Color = color; _State = state; }
public bool IsSmirkingAgainst(AbilityColor b) { if (Color == b) { return(false); } if (Color == AbilityColor.Neutral) { return(false); } if (b == AbilityColor.Neutral) { return(true); } if (Color == AbilityColor.Blue && b == AbilityColor.Red) { return(true); } if (Color == AbilityColor.Green && b == AbilityColor.Blue) { return(true); } if (Color == AbilityColor.Red && b == AbilityColor.Green) { return(true); } return(false); }
public static T[] GetRandomAbilities <T>(int count, int level, AbilityColor color) where T : Ability { level--; if (level < 0 || level >= Abilities.Count()) { throw new System.ArgumentOutOfRangeException("Level is out of range"); } List <Ability> candidates = new List <Ability>(Abilities[level]).Where((a) => (a is T) && a.Color == color).ToList(); if (candidates.Count() < count) { throw new System.ArgumentOutOfRangeException("Not enough elements at this level"); } T[] result = new T[count]; for (int i = 0; i < count; i++) { result[i] = (T)candidates[Random.Range(0, candidates.Count())]; candidates.Remove(result[i]); } return(result); }
public ActiveAbility(int level, string name, AbilityColor color, int adrenalineCost, GladiatorController.AnimationState state) : base(level, name, color, state) { _AdrenalineCost = adrenalineCost; }
public RangedAttack(int level, string name, AbilityColor color, GladiatorController.AnimationState state, int adrenalineCost, int minDamage, int maxDamage) : base(level, name, color, adrenalineCost, state) { _MinDamage = minDamage; _MaxDamage = maxDamage; }