🔨 Chocobo Raising Completeness Tracker
CHOCOBO RAISING WON'T BE MADE AVAILABLE UNTIL IT'S PLAYABLE
Mostly taken from my old WIP PR: https://github.com/LandSandBoat/server/pull/1058
🐤 Behold, the horror!
I struggle to adequately describe what happens in the onEventUpdate block for the Chocobo Raising event. It's madness. It works a little bit like an interpreter, where the cs option is the instruction, and the arguments you pipe into the event update are the arguments to the instruction.
This was all mapped out by hand. This was likely one of the first steps in my descent into madness.
I was complaining on stream: I don't know what an adequate place is to "early access release" this is. There are a lot of steps required to get a callable chocobo from this system, and if all the side-bits aren't in place it ends up just being a (real-life) 45 day wait, or something.
PRs:
- https://github.com/LandSandBoat/server/pull/1058
- https://github.com/LandSandBoat/server/pull/2288
- https://github.com/LandSandBoat/server/pull/2289
TODO:
- [x] Map out enums for internal types (stage, colour, abilities, weather, affection)
- [x] Map out stats and packing for CS's
- [x] Map out main menu (215)
- [x] Handle initial egg trading
- [x] Map out the appearance, name and sex of the chocobo
- [x] Appearance update (244)
- [x] Chocobo condition (251)
- [x] Care for your chocobo (243)
- [x] Map out debug commands
- [x] db migration script
- [x] Make sure new
char_chocobostable is protected - [x] Chocobo age tracking
- [x] Correct requires in all lua files
- [x] Name your chocobo (success) (255)
- [x] Name your chocobo (failure) (12799)
- [ ] Make naming more stable
- [ ] Fix renaming
- [x] Scold the chocobo (13298)
- [x] Handle food trading (241)
- [x] Food auras
- [x] Food table
- [ ] Food effects
- [x] Location checking
- [ ] Negative status resolution (food or otherwise)
- [x] "Update machine" playout (248)
- [x] What does 214 do? (always zero's)
- [x] Watch over your chocobo (12530)
- [x] Short walk (all nations)
- [x] Medium walk (all nations)
- [x] Long walk (all nations)
- [ ] Walk sub events
- [x] Getting items from walks
- [x] Walk drop tables
- [x] Collecting items from "watch over your chocobo"
- [ ] Learning stories from walks
- [ ] Discernment gate for story telling
- [ ] Tell a story (13042)
- [x] Set Basic Care menu (250, 254, 510, 766, 1022)
- [x] Care plan updates
- [50%] Report playout
- [x] Basic care plan playout
- [x] Play CS (246)
- [x] Report (Brief) (256)
- [x] Skip Report (504)
- [ ] Buy chocobo whistle (221)
- [ ] Receive your chocobo whistle (222)
- [ ] Drop and rebuy chocobo whistles
- [ ] Register/re-register your chocobo
- [ ] Retire your chocobo
- [ ] Retirement stuff
- [ ] Cards and plaques
- [ ] Manipulate time for chocobo
- [ ] Test custom day lengths
- [ ] Debug CS events in each raising zone
- [ ] More comments for the state machine
- [ ] More comments in the main script
- [ ] Address all TODOs
- [ ] External quests that feed into raising system
- [ ] Egg exdata setting/extraction/ransomisation
- [ ] Breeding
- [ ] Compete with others event
- [x] Setting your field chocobo to be called with Chocobo Whistle
- [ ] Stat growth through care plans and care actions
- [ ] White handkerchief quest
- [x] Initial database layout and core bindings (create/read/write/delete)
- [ ] Balancing stat growth over time
- [ ] Field chocobo speed mods
- [ ] Test field chocobos everywhere
- [ ] Field chocobo digging mods
- [ ] Test digging
- [ ] Customisation options for those mods (make it work raising a good chocobo)
- [ ] Capture and implement all NPCs and pathing in and around all the stables
- [ ] Make sure rental chocobos, licenses, quests etc. all still work
- [ ] Checks for "writ of summons" for belligerency/monstrosity
- [ ] Format to be lowerCamelCase instead of snake_case
- [ ] Make sure all tables are sane and aligned
- [ ] Remove magic numbers where possible (not possible all the time)
- [ ] Full playout from Day0-Retirement
- [ ] Event validation against packet injection
- [ ] Make it easier to modify chocobo age for debugging/tuning
- [ ] Make sure Chocobo's aren't immediately deleted so there is a chance they can be restored if there are any problems (maybe a SQL trigger on age?)
- [ ] Testing
- [ ] Testing!
- [ ] Hey, more testing!
Maybe in this PR, maybe not:
- [ ] Camp Kweh
- [ ] Chocobo Hot and Cold game
- [ ] Chocobo Dyes
- [x] I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
- [x] I have searched existing issues to see if the issue has already been opened, and I have checked the commit log to see if the issue has been resolved since my server was last updated
- [x] I have read and understood the Contributing Guide