/// <summary> /// Adds the ability. /// </summary> /// <param name="ability">Ability.</param> /// <param name="rate">(float)EngineType for engines. Otherwise just amount. For shields: 1 is directional, 0 is wall</param> /// <param name="rate2">Powermodifier as decimal. Only required for engines. For shields, x coord, only if directional</param> /// <param name="rate3">If engine, thermal reduction, 0-.95, higher is stealthier. For shields, y coord, only if directional</param> public void AddAbility(AbilityCats ability, float rate = 0, float rate2 = 0f, float rate3 = 0f) { Ability a = new Ability(); a.AbilityType = ability; a.Rating = rate; a.Rating2 = rate2; a.Rating3 = rate3; if (a.AbilityType == AbilityCats.THRUST) { // Debug.Log ("Designing engine..."); a.thrust = (Mass / 50) * (1 + rate2 * rate); Category = CompCategory.ENGINE; } else if (a.AbilityType == AbilityCats.STRATEGICMOVE) { a.thrust = (int)((Mass / 50) * a.Rating); } else if (a.AbilityType == AbilityCats.ARMOR) { Armored = true; } Abilities.Add(a.AbilityType, a); }
public SubComponent(string name, AbilityCats ab, List <float> list) { SubComponentName = name; AbilityType = ab; Modifiers.AddRange(list); }