Skip to content

Implement Cawdor as new Medieva game #1007

@ZaneDubya

Description

@ZaneDubya

Whereas the code for Yserbius and Twinion can only run Yserbius style games (and even more specifically, only Yserbius and Twinion), Cawdor runs on a new client/server dungeon crawler engine that is somewhat more generic than the yserbius/twinion specific code that is currently found in the game. This issue will track two things: First, how generic should the new engine be, and second, what yserbius-specific systems must be written to support the new engine. .... this will be a work in progress ....

To evaluate:

Reviewed systems, already generic

  • Server Achievements - generic, but I got rid of the achievement bootstrapping, which was not generic.
  • Server Automaps - generic, generated by client
  • Server BattleSystem - generic.
  • Server Guilds, Partying - generic
  • Server Treasure tables/picking - generic
  • Server Gallery - only 6 slots, otherwise generic. I'm leaving this as is because of the shared names feature.
  • Server ChallengeSystem - generic.

Server, may retain Yserbius specific code for Cawdor:

  • Entities, Player - Yserbius focused - but NEED NOT REWRITE FOR CAWDOR?!
  • Entities, Monster - Yserbius focused.
  • Battle - Yserbius focused. This is stateful code and would be difficult to properly rewrite ... and then keep in sync with the original :(

Server, must make generic:

  • KeepSystem - mostly generic, but will need to
    • remove references to original game's template items...
    • and bank expand costs are hardcoded in the bank code. I might need to make this a separate system.
  • Buffs - Yserbius focused. Must rewrite. Make MobileBuffCollection generic #1008
  • Entities, Item - Must rewrite and then do an in-place database upgrade. Replace all YsItem with LegacyItem; YsItemTemplated replaced with data prototypes. #1009
  • Maps - Want new CwMap class, inherits from LegacyMap.
  • World - Yserbius focused, but easy to rewrite.?
    • Make YsWorld the core Yserbius/Twinion world type, inheriting from AWorld.
    • Make CwWorld a separate world type, using Cawdor graphics but else
  • SmsgBattleRound - Yserbius focused.
  • SpellMethods/SkillMethods/SpellArgs - must be completely rewritten with generic ability use class.

Client, mostly generic.

  • Will need to rewrite GameIDs, ModeEditChar, YsAppearanceData and FaceRenderers, SubmodeCombat, identity strings, ability use check, and the tooltip generator for buffs. Most of this will be easy.
  • What might be difficult is all the UI elements!
  • ClientState - done

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type-PlanningDocumenting future features.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions