eressea / server

Eressea is an automated play-by-mail strategy game server.
https://www.eressea.de/
Other
26 stars 23 forks source link

the cansail flag and who is allowed on ships #498

Open stm2 opened 8 years ago

stm2 commented 8 years ago

enter_ship has a nice logic, which even comes with test coverage: You can enter a ship if your race has either of the RCF_CANSAIL, RCF_WALK, RCF_FLY flags set. But this is not the same everywhere. For example, in build.c, when you build a new ship, you only enter it if you have RCF_CANSAIL.

Also, the comment in enter_Ship says this is "to disallow swimmers from entering land inside ships". But there are afaics no swimmers that would be disallowed on land, at least in coastal regions.

I'm unsure what to do. Remove RCF_WALK/FLY option from enter_ship? Remove the cansail flag altogether (and the restriction to enter ships)?

Note that the race flags default to RCF_CANSAIL set, which is defined in xmlreader.c:parse_races, which is not what I would have expected. Note also that shadowdemons and -masters are the only races not allowed on ships. Why all the hate? Is cansail simply deprecated?

ennorehling commented 8 years ago

I'm drawing a blank here. I have a vague memory that says this relates to exploits with Dolphins, but I cannot remember every weird thing that players have ever done.

CTD1 commented 8 years ago

Why not allow a Dolphin to enter a Ship? Maybe they where not allowed in coast regions at all and the trick was to put them on a ship and sail them on land. But if Dolphins are not allowed on a ship, this makes them weak, as the cannot stay with the mage when he is sailing (perhaps with magic speed) away.

I think there should be a option in the XML that a (future)race (Stone Giants, Wyrm, Dwarfs, Cats :-) just kidding) may be not allowed on a ship (can sail default on, off to be set in the XML). Then check only this value when entering or creating a ship.