Skip to content

🔨 Chocobo Raising Completeness Tracker #2290

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
49 of 94 tasks
zach2good opened this issue Jul 15, 2022 · 0 comments
Open
49 of 94 tasks

🔨 Chocobo Raising Completeness Tracker #2290

zach2good opened this issue Jul 15, 2022 · 0 comments
Labels
enhancement New feature request

Comments

@zach2good
Copy link
Contributor

zach2good commented Jul 15, 2022

CHOCOBO RAISING WON'T BE MADE AVAILABLE UNTIL IT'S PLAYABLE

Mostly taken from my old WIP PR: #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:

TODO:

  • Map out enums for internal types (stage, colour, abilities, weather, affection)
  • Map out stats and packing for CS's
  • Map out main menu (215)
  • Handle initial egg trading
  • Map out the appearance, name and sex of the chocobo
  • Appearance update (244)
  • Chocobo condition (251)
  • Care for your chocobo (243)
  • Map out debug commands
  • db migration script
  • Make sure new char_chocobos table is protected
  • Chocobo age tracking
  • Correct requires in all lua files
  • Name your chocobo (success) (255)
  • Name your chocobo (failure) (12799)
  • Make naming more stable
  • Fix renaming
  • Scold the chocobo (13298) (all stages)
  • Handle food trading (241)
  • Food auras
  • Food table
  • Food effects
  • Location checking
  • Negative status resolution (food or otherwise)
  • "Update machine" playout (248)
  • What does 214 do? (always zero's)
  • Watch over your chocobo (12530)
  • Short walk (all nations)
  • Medium walk (all nations)
  • Long walk (all nations)
  • Walk sub events
  • Getting items from walks
  • Walk drop tables
  • Collecting items from "watch over your chocobo"
  • Learning stories from walks
  • Discernment gate for story telling
  • Tell a story (13042)
  • Set Basic Care menu (250, 254, 510, 766, 1022)
  • Care plan updates
  • Basic report playout
  • Handle xDays multipliers for full and skipped playout
  • Basic care plan playout
  • Play CS (246)
  • Report (Brief) (256)
  • 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
  • Setting your field chocobo to be called with Chocobo Whistle
  • Stat growth through care plans and care actions
  • White handkerchief quest
  • 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
  • Automatically name your chocobo for you at a certain age (day 65)
  • 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?)
  • Add module to change raising times and to make final speed of a high-speed chocobo better than a rental (same with digging too I suppose)
  • Correct neutral CSs from VCS Trainers if Chocobo Raising is disabled
  • Testing
  • Testing!
  • Hey, more testing!

Maybe in this PR, maybe not:

  • Camp Kweh
  • Chocobo Hot and Cold game
  • Chocobo Dyes

Test Scenarios (from caps):

  • Days 1-4: { Basic Care, Hatching CS }

  • Day 5: Basic Care

  • Day 6: { Perky (random), Basic Care }

  • Day 7: { Basic Care, Crying at night CS }

  • MENU BREAK

  • Day 8: { Basic Care, Calmed Down CS }

  • Day 9: { Basic Care, Perky (random) }

  • Day 10-12: { Basic Care, Calmed Down CS }

  • What happens if you get the White Handkerchief and then get rid of that specific chocobo?

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • 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
  • I have read and understood the Contributing Guide
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature request
Projects
None yet
Development

No branches or pull requests

1 participant