Example #1
0
        private void OnCubeTakeDamage(CubeDamageEvent e)
        {
            #region Checks
            if (e?.Damage == null)
            {
                return;
            }
            if (e.Damage.Damager == null)
            {
                return;
            }
            if (e.Damage.DamageSource == null)
            {
                return;
            }
            if (!e.Damage.DamageSource.IsPlayer)
            {
                return;
            }
            if (!Data.ContainsKey(e.Damage.DamageSource.Owner.Id))
            {
                return;
            }
            #endregion

            var player = e.Damage.DamageSource.Owner;
            var data   = Data[player.Id];

            if (e.Damage.Amount >= 0)
            {
                if (!HasPermission(player, "hulk.damage"))
                {
                    return;
                }
                if (e.Cancelled)
                {
                    e.Uncancel();
                }
                e.Damage.Amount = data.GetDamage();
                player.SendMessage($"{Prefix}Hulk dealing {e.Damage.Amount} damage.[-]");
            }
            else
            {
                if (!HasPermission(player, "hulk.heal"))
                {
                    return;
                }
                if (e.Cancelled)
                {
                    e.Uncancel();
                }
                e.Damage.Amount = data.GetHeal();
                player.SendMessage($"{Prefix}Hulk healing {e.Damage.Amount} damage.[-]");
            }
        }