Exemple #1
0
    protected override void BasicCast()
    {
        hero.GainEnergy(energyGained);
        Enemy target = gameController.stage.getActiveEnemies()[0];

        CombatUtils.DealDamage(caster, target, baseDamage);
    }
Exemple #2
0
    private void stealLife(float damage)
    {
        Enemy target = gameController.stage.getActiveEnemies()[0];

        float damageDealt = CombatUtils.DealDamage(hero, target, damage);

        if (target.health <= 0)
        {
            SetCooldown(0);
        }
        IEnumerator coroutine = HealAfterTime(delay, damageDealt, caster);

        gameController.StartCoroutine(coroutine);
    }
Exemple #3
0
        public void ApplyEffect(Point target, Stat casterStats)
        {
            switch (AreaOfEffect)
            {
            case SpellAreaEffect.Target:
                Entity poorGuy = GameLoop.World.CurrentMap.GetEntityAt <Entity>(target);
                if (poorGuy == null)
                {
                    return;
                }

                CombatUtils.DealDamage(Damage, poorGuy, SpellDamageType);

                if (poorGuy is Item)
                {
                    // Custom logic here
                }

                if (poorGuy is Actor)
                {
                    // Custom logic here
                }

                break;

            case SpellAreaEffect.Ball:
                break;

            case SpellAreaEffect.Shape:
                break;

            case SpellAreaEffect.Beam:
                break;

            case SpellAreaEffect.Level:
                break;

            case SpellAreaEffect.World:
                throw new NotImplementedException();

            default:
                break;
            }
        }
Exemple #4
0
    IEnumerator DamageAfterTime()
    {
        int     startNum    = numEncounter;
        float   finalDamage = caster.GetDamage(baseDamage);
        float   time        = 0;
        KeyCode bind        = KeyCode.A;

        //Time before pressing the button again changes the effect
        while (time < 1)
        {
            time += Time.deltaTime;
            yield return(null);
        }

        foreach (SpellUI binding in gameController.spellUIs)
        {
            if (binding.spell == this)
            {
                bind = binding.GetKey();
            }
        }

        while (time < 2)
        {
            time += Time.deltaTime;

            if (Input.GetKeyDown(bind))
            {
                finalDamage = 10;
            }
            yield return(null);
        }

        if (startNum == gameController.stage.numEncounter)
        {
            CombatUtils.DealDamage(caster, GetTargets(), finalDamage);
            finalDamage = baseDamage;
        }
    }