Exemplo n.º 1
0
 public void ApplyHoT(HealOverTimeStatus status)
 {
     Debug.Log("HoT info: Damage: " + status.dice + " Effect duration: " + status.duration);
     hots.Add(status);
     //AddNewStatus(status);
 }
Exemplo n.º 2
0
        public AbilityEffectResult Apply(Character caster, Character target, Ability ability)
        {
            var result = new AbilityEffectResult();

            if (HitStun > 0)
            {
                target.CastingAbility?.AddTimeRemaining(HitStun);
            }

            if (LifeLeech > 0)
            {
                caster.ApplyHeal(LifeLeech);
            }

            if (Poison > 0)
            {
                var poisonStatus = new PoisonStatus(target, Duration)
                {
                    DamagePerTick = Poison,
                };

                poisonStatus.Start(1000);

                target.ApplyStatusEffect(poisonStatus);
            }

            if (HealOverTime > 0)
            {
                var healStatus = new HealOverTimeStatus(target, Duration)
                {
                    HealPerTick = HealOverTime,
                };

                healStatus.Start(1000);

                target.ApplyStatusEffect(healStatus);
            }

            if (Silence > 0)
            {
                var silenceStatus = new SilenceStatus(target, Silence);
                target.ApplyStatusEffect(silenceStatus);
            }

            if (SelfDamage > 0)
            {
                caster.ApplyDamage(DamageType.Pure, SelfDamage);
            }

            if (TargetHeal > 0)
            {
                target.ApplyHeal(TargetHeal);
            }

            if (AddTargetArmour > 0)
            {
                result.Buff = new Buff(target, Duration, ability.Name)
                {
                    AddArmour = AddTargetArmour
                }
            }
            ;

            if (AddCasterArmour > 0)
            {
                result.Buff = new Buff(caster, Duration, ability.Name)
                {
                    AddArmour = AddCasterArmour
                }
            }
            ;

            if (AddTargetMagicResistance > 0)
            {
                result.Buff = new Buff(target, Duration, ability.Name)
                {
                    AddMagicResistance = AddTargetMagicResistance
                }
            }
            ;

            if (AddCasterMagicResistance > 0)
            {
                result.Buff = new Buff(caster, Duration, ability.Name)
                {
                    AddMagicResistance = AddCasterMagicResistance
                }
            }
            ;

            return(result);
        }
    }
}