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); }
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); }