public Ability() { windup = new AbilityPhase (); main = new AbilityPhase (); winddown = new AbilityPhase (); windup.NextPhase = main; main.NextPhase = winddown; }
public UnitFlags Halt() { targetPos = Vector3.zero; current = null; return abilityFlags; }
internal int Start(UnitManager source, Vector3 targetPos, ref AbilityPhase current) { source.TriggerAnimation (animation); source.InstantiateVFX (vfx, vfxPosition, vfxRotation); source.PlaySFX (sfx, volume); foreach (SerializableEffect e in selfEffects) { e.Execute (source, source, targetPos); } foreach (SerializableEffect e in targetEffects) { e.Execute (source, null, targetPos); } current = this; return setFlags; }
internal int End(UnitManager source, Vector3 targetPos, ref AbilityPhase current) { if (nextPhase != null) { return nextPhase.Start (source, targetPos, ref current); } else { current = null; return 0; } }