Example #1
0
    override public void SetTarget(Targetable target)
    {
        if (!target)
        {
            Debug.Log($"Spell {name} has no target. Target probably has been destroyed.");

            return;
        }

        base.SetTarget(target);

        HP hp = target.GetComponent <HP>( );

        hp.DoDamage(effectAmount, transform.position, targetFreezTime > 0);

        if (targetShockTime > 0 || targetFreezTime > 0)
        {
            Unit unit = target.GetComponent <Unit>( );
            unit.Freez(targetShockTime, targetFreezTime);

            UnitVisuals unitVis = target.GetComponent <UnitVisuals>( );
            unitVis.Shocked(targetShockTime);
        }

        if (shakeStrength > 0)
        {
            ScreenshakeManager.Instance.DoShake(shakeStrength);
        }
    }
Example #2
0
 private void Awake()
 {
     visuals = GetComponent <UnitVisuals>();
     agent   = GetComponent <NavMeshAgent>();
 }