示例#1
0
        public bool DealDamage(int dmg, Kernel_bin.Attack_Type type, Kernel_bin.Attack_Flags?flags)
        {
            if (DamageActions.ContainsKey(type))
            {
                //ChangeHP(-dmg);
                // check max and min values
                if (dmg > Kernel_bin.MAX_HP_VALUE && type != Kernel_bin.Attack_Type.Give_Percentage_HP)
                {
                    dmg = Kernel_bin.MAX_HP_VALUE;
                }
                if (dmg < 0)
                {
                    return(false);
                }
                // depending on damage type see if damage is correct
                dmg = DamageActions[type](dmg, flags ?? Kernel_bin.Attack_Flags.None);

                return(dmg != 0);
            }
            return(false);
        }
示例#2
0
        public bool DealDamage(int dmg, Kernel.AttackType type, Kernel.AttackFlags?flags)
        {
            if (!DamageActions.ContainsKey(type))
            {
                return(false);
            }
            //ChangeHP(-dmg);
            // check max and min values
            if (dmg > Kernel.KernelBin.MaxHPValue && type != Kernel.AttackType.GivePercentageHP)
            {
                dmg = Kernel.KernelBin.MaxHPValue;
            }
            if (dmg < 0)
            {
                return(false);
            }
            // depending on damage type see if damage is correct
            dmg = DamageActions[type](dmg, flags ?? Kernel.AttackFlags.None);

            return(dmg != 0);
        }