示例#1
0
 public bool DealStatus(
     Kernel_bin.Persistant_Statuses?statuses0,
     Kernel_bin.Battle_Only_Statuses?statuses1,
     Kernel_bin.Attack_Type type,
     Kernel_bin.Attack_Flags?flags)
 {
     if (StatusesActions.ContainsKey(type))
     {
         int total = StatusesActions[type](
             statuses0 ?? Kernel_bin.Persistant_Statuses.None,
             statuses1 ?? Kernel_bin.Battle_Only_Statuses.None,
             flags ?? Kernel_bin.Attack_Flags.None);
         return(total != 0);
     }
     return(false);
 }
示例#2
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);
        }