Beispiel #1
0
 public virtual void TakeDamage(EnemyDamageInfo damageInfo)
 {
     if (PlayerTakeDamageEvent != null)
     {
         PlayerTakeDamageEvent.Invoke(damageInfo);
     }
 }
    public override void TakeDamage(EnemyDamageInfo damageInfo)
    {
        Player.CurrentHealth.Item -= damageInfo.Sender.Config.Damage;
        Debug.Log("TakeDamage");

        if (Player.CurrentHealth.Item <= 0)
        {
            Player.Die();
        }

        base.TakeDamage(damageInfo);
    }
Beispiel #3
0
        public void DealDamage(Player target)
        {
            Random rand       = new Random();
            int    RandFactor = rand.Next(1, 15);

            if (target.UsingShield == false)
            {
                if ((rand.Next(1, 100) <= MissChance) || (rand.Next(1, 100) <= target.EvadeChance))
                {
                    EnemyDamageInfo?.Invoke(this, new TargetEventArgs(false, "Enemy MISS!"));
                    target.Health -= 0;
                }
                else
                {
                    if (rand.Next(1, 100) <= CritChance)
                    {
                        EnemyDamageInfo?.Invoke(this, new TargetEventArgs(true, "Enemy CRIT!", Damage * 2, RandFactor * 2, EvasionChance, DMGBuffModificator: 1, CritModifier: 2, target.Armor));
                        target.Health -= Convert.ToInt32((((Damage + RandFactor) * 2) + ((Damage + RandFactor) * 2 * target.Armor / 1000)));
                    }
                    else
                    {
                        EnemyDamageInfo?.Invoke(this, new TargetEventArgs(true, "Enemy hit!", Damage, RandFactor, EvasionChance, DMGBuffModificator: 1, CritModifier: 2, target.Armor));
                        target.Health -= Convert.ToInt32(((Damage + RandFactor) + (target.Armor / 1000 * (Damage + RandFactor))));
                    }
                }
            }
            else if (target.UsingShield == true)
            {
                if ((rand.Next(1, 100) <= MissChance) || (rand.Next(1, 100) <= target.EvadeChance))
                {
                    EnemyDamageInfo?.Invoke(this, new TargetEventArgs(false, "Enemy MISS!"));
                    target.Health -= 0;
                }
                else if (rand.Next(1, 100) <= 10)
                {
                    EnemyDamageInfo?.Invoke(this, new TargetEventArgs(false, "BLOCK"));
                    target.Health -= 0;
                }
                else
                {
                    if (rand.Next(1, 100) <= CritChance)
                    {
                        EnemyDamageInfo?.Invoke(this, new TargetEventArgs(true, "Enemy CRIT!", Damage * 2, RandFactor * 2, EvasionChance, DMGBuffModificator: 1, CritModifier: 2, target.Armor * 2));
                        target.Health -= Convert.ToInt32((((Damage + RandFactor) * 2) + ((Damage + RandFactor) * 2 * target.Armor / 1000)));
                    }
                    else
                    {
                        EnemyDamageInfo?.Invoke(this, new TargetEventArgs(true, "Enemy CRIT!", Damage, RandFactor, EvasionChance, DMGBuffModificator: 1, CritModifier: 2, target.Armor * 2));
                        target.Health -= Convert.ToInt32(((Damage + RandFactor) + (target.Armor * 2 / 1000 * (Damage + RandFactor))));
                    }
                }
            }
        }
Beispiel #4
0
    public override void Atack()
    {
        base.Atack();

        EnemyDamageInfo damageInfo = new EnemyDamageInfo(EnemyController, GameController.Instance.Player);

        GameController.Instance.Player.TakeDamage(damageInfo);

        Debug.Log("Atack");

        EnemyController.Die();
    }
Beispiel #5
0
 public void TakeDamage(EnemyDamageInfo damageInfo)
 {
     PlayerConfig.PlayerTakeDamage.TakeDamage(damageInfo);
 }