protected virtual bool battler_can_gain_exp(Game_Unit battler, Game_Unit target = null) { if (!battler.allowed_to_gain_exp()) { return(false); } // If the target exists, either the target needs to be on the opposing team or the attacker needs to not be berserk return(target == null || !battler.berserk || battler.is_attackable_team(target)); }