Beispiel #1
0
        public override void Launch()
        {
            StunStatus stun;
            Unit       enemyUnit;

            foreach (RaycastHit hit in Physics.BoxCastAll(spellIndicator.transform.position, new Vector3(spellRange, 2f, 4f), Vector3.up))
            {
                if (hit.collider.tag != this.tag && (enemyUnit = hit.collider.GetComponent <Unit>()) != null)
                {
                    stun          = new StunStatus();
                    stun.duration = stunDuration;
                    stun.Init(enemyUnit);
                }
            }
            if (slowStatus != null)
            {
                slowStatus.OnStatusEnd(unit.GetComponent <Unit>());
                slowStatus = null;
            }
            base.Launch();
            Transform spellOrigin = unit.GetComponent <ControllableUnit>().spellOrigin;

            spellVisual = Instantiate(visualEffectRef, spellOrigin.position, spellOrigin.rotation);
            Invoke("Clean", 0.2f);
        }
Beispiel #2
0
 public override void Clean()
 {
     Destroy(spellVisual);
     if (speedStatus != null)
     {
     }
     speedStatus.OnStatusEnd(unit.GetComponent <Unit>());
     if (phaseStatus != null)
     {
         phaseStatus.OnStatusEnd(unit.GetComponent <Unit>());
         unit.GetComponent <UnitStatusManager>().UnRegisterTimedStatus(phaseStatus);
     }
     Destroy(gameObject);
 }