public void FireAbility(Transform user, Transform target, BattleManager.MakeDamageText dmgText)
    {
        nextReadyTime               = coolDownDuration + Time.time;
        coolDownTimeLeft            = coolDownDuration;
        darkMask.enabled            = true;
        coolDownTextDisplay.enabled = true;

        abilitySource.clip = ability.aSound;
        abilitySource.Play();
        ability.TriggerAbility(user, target, dmgText);
    }
    public override void TriggerAbility(Transform user, Transform target, BattleManager.MakeDamageText makeDmgText)
    {
        //Spawn projectile and set its caster/user to be the parent.
        var abilityFired = Instantiate(projectile.gameObject, target, true);

        //Control the spawned projectile.
        abilityFired.transform.position = user.position;
        var heading = target.position - user.position;                                 //calculate direction

        abilityFired.GetComponent <Rigidbody2D>().AddForce(heading * projectileForce); //apply force in direction
        makeDmgText(damage, user.GetComponent <CharacterScript>(), target.GetComponent <CharacterScript>());
        Debug.Log("Firing projectile ability at " + target.gameObject.name + " with force " + projectileForce);
        //Fired projectile has to handle what happens from here.
    }
 void initialize(Transform user, Transform target, BattleManager.MakeDamageText makeDmgText)
 {
     _user        = user;
     _target      = target;
     _makeDmgText = makeDmgText;
 }
Esempio n. 4
0
 public void OnContact(CharacterScript turnTaker, CharacterScript target, BattleManager.MakeDamageText dmgText)
 {
     dmgText(damage, turnTaker, target);
 }
 public abstract void TriggerAbility(Transform user, Transform target, BattleManager.MakeDamageText makeDmgText);// Transform abilityEffect,