My creature and dungeon generation classes are usually the largest at around a few hundred lines
[1]. I'm okay with that since any complicated things are usually delegated to other objects. If I have items or actions or ai stuff broken out, those are usually very small - generally 10 to 50 lines maybe.
I prefer not to take file size too seriously and instead think about how many concepts are in each method/class/file. Splitting things into a bazillion little files can make the interactions hard to reason about and make it difficult to see at a glance how things work and what my changes will affect (for me at least). Keeping everything in one huge method where control bounces up and down and in and out and a bunch of variables are changing everywhere can make it impossible to know what's going to happen and what my changes will affect (for me at least).
I think it's far more subjective and personal than people want to admit. Especially on a one-person project. Try different things; do more of what seems to help; do less of what seems to hurt.
The basic rule of good OOP is that each class/method should have a single responsibility.
That's true of
all code
[2], OOP or not. The subjective part is what constitutes a single responsibility. I don't agree with the "have one and only one reason to change" definition but some people really like that.
[1] - For PugnaciousWizards2, counting whitespace, comments, curly braces, and all:
WorldGen.as = 448 lines
Creature.as = 262 lines
Spell.as (the base spell class) = 13 lines
Telekenesis.as (the largest and by far most complex spell and creature ai) = 104 lines
But that's ActionScript so the OOP boilerplate, whitespace, etc means that the smaller files are mostly not code.
[2] - Unless performance, policy, etc, are more important