public static UnitAbility Map(string abString) { UnitAbility myability = null; UnitAbilities myabilities = UnitAbilities.AdrenalGlands; if (abString == "AdeptPiercingAttack") { myabilities = UnitAbilities.ResonatingGlaives; } else if (abString == "BlinkTech") { myabilities = UnitAbilities.Blink; } else if (abString == "Stimpack") { myabilities = UnitAbilities.Stimpack; } else if (abString == "ShieldWall") { myabilities = UnitAbilities.CombatShield; } else if (abString == "zerglingmovementspeed") { myabilities = UnitAbilities.MetabolicBoost; } else if (abString == "zerglingattackspeed") { myabilities = UnitAbilities.AdrenalGlands; } else if (abString == "CentrificalHooks") { myabilities = UnitAbilities.CentrifugalHooks; } else if (abString == "PunisherGrenades") { myabilities = UnitAbilities.ConcussiveShells; } else if (abString == "Charge") { myabilities = UnitAbilities.Charge; } else if (abString == "Tier2") { myabilities = UnitAbilities.Tier2; } else if (abString == "Tier3") { myabilities = UnitAbilities.Tier3; } else { return(null); } myability = AbilityPool.Abilities.SingleOrDefault(x => x.Ability == myabilities).DeepCopy(); return(myability); }
internal void StartTwoStepAttack(UnitAbilities unitSource, int atkId) { if (twoStepCoro != null) { unitSource.StopCoroutine(twoStepCoro); } twoStepCoro = unitSource.StartCoroutine(HoldAttackForUserInput(unitSource, atkId)); }
internal static void AssignAbilitiesToUI(UnitAbilities abilities) { Attack[] abilitis = abilities.GetNormalAbilities(); m.InitList(abilitis.Length); for (int i = 0; i < abilitis.Length; i++) { m.instances[i].GetComponent <ButtonInteraction>().interaction = ScriptableObject.CreateInstance <TwoStepAttack>().Init(abilities, i); } }
// Use this for initialization void Start() { entity = Entity.RequireEntity(this.gameObject); anim = GetComponentInChildren <Animator>(); abilities = new UnitAbilities(entity.UID); gun = GetComponentInChildren <GunController>(); waypoint = Instantiate(waypoint); waypoint.GetComponent <WaypointController>().UID = entity.UID; waypoint.gameObject.SetActive(false); savedRange = range; nav = GetComponent <NavMeshAgent>(); }
public void Start() { UnitOrder = new Order(ID); Health = MaxHealth; for (int i = 0; i < _unitAbilities.Count; i++) { Ability instance = Instantiate(_unitAbilities[i]); instance.Owner = this; instance.ID = i; UnitAbilities.Add(instance); } }
IEnumerator HoldAttackForUserInput(UnitAbilities source, int atkId) { yield return(null); while (true) { if (Input.GetKeyUp(KeyCode.Mouse0)) { break; } yield return(null); } source.GetNormalAbilities()[atkId].ApplyDamage(curPlayerUnit, unit.curSlot); twoStepCoro = null; }
public TwoStepAttack Init(UnitAbilities unitSource, int atkId) { this.unitSource = unitSource; this.atkId = atkId; return(this); }