As I'm trying to replace LoS check with my los Manager I found that GameNPC class have a lot of method that are dedicated to Fight.
Since there can be NPC's with Peace Flag that should be unable to use any of these method (StartAttack, RangedAttack, etc...) and that most of these are used by Mob and Pets I was thinking a class hierarchy would be better to prevent those 5000+ lines files
GameNPC : implements interact, moving, equipment
-- GameMob : implements fighting, LosChecking, Default Brain to aggro or fight
-- -- GamePet (Already exists) : implements Controlled Brain, on top of default brain and default Pet behavior (like orders)
Some other NPC aspects (Merchant, Trainer, Taxi, Teleporter, etc) could be implemented as Interfaces...
I already had trouble when I tried to mix a GameMerchant with a GameTeleporter, I could inherit only one and had to copy most of code of the other one to be able to handle both
but maybe even Interfaces won't be enough to handle that