NetroScript / Graveyard-Keeper-Savefile-Editor

Edit, save and export save files from the game Graveyard Keeper - Works for Windows, Linux and macOS
MIT License
107 stars 12 forks source link

Add feature to modify/add buffs and the amount of time #87

Open AVellucci opened 2 years ago

AVellucci commented 2 years ago

I can see in the JSON there is a savedata > v > buffs and it looks kind of straightforward ish under the buffs you'll see v > # > v and in there you'll find the following:

_1___New_document_1__ JSON_Editor_Online__JSON_editor__JSON_formatter__query_JSON

so it looks like -352961195 is the buff id and then one of the other 2 must be the source or intensity while the third is the duration.

I'd need to play around with it a bit to find all the buff IDs and also to find out what the 2 numbered values are but once thats figured out I'd think it'd be pretty easy to add that into the editor as something that can be allowed to be modified as I don't think any of the buffs would normally have flags to check if it's actually unlocked yet or not.

AVellucci commented 2 years ago

Looks like the -25424907 value is tied to time not sure how the scale seems to work but a v : 1000 seems to equate to 76:21:10 the 918823366 value doesn't seem to affect the time, but it cold have something to do with time elapsed maybe? as this value seems to count up while the other counts down corresponding to the amount of time left though I don't understand what the scale is compared to real time, could be game ticks, maybe?

NetroScript commented 1 year ago

Sorry for the long radio silence, this is due to me being quite busy.

But to clear up what you are seeing the following: You have an array of PlayerBuff. 918823366 is the _tick_time which corresponds to how long a buff was active, this number counts up, and if it is above the defined length of the buff, an event is fired, this value is only used during time skips it seems. -25424907 is the end_time which is equal to the ingame time until when the buff is active, so in your image the buff for example goes on until day 396. The remaining string is the buff id which is used to lookup the definition of a specific buff.

I currently plan on rather doing a complete rewrite before adding any bigger features, as the current code base is honestly a mess.

When I ever have sufficient time for the rewrite a system to view and add buffs should be possible.

The following is a list with all descriptions of buffs which currently exist:

"buff_tired_d": "You need to sleep or you'll keep losing energy.",
"buff_plant_d": "Vegetables grow faster.",
"buff_sins_d": "More people come during the week to confess their sins.",
"buff_skull_d": "Donkey brings corpses with more (skull) and (rskull).",
"buff_pen_d": "You have a better chance to write something of good quality.",
"buff_star_d": "You have a better chance to craft something of good quality.",
"buff_sword_d": "You deal additional damage to monsters.",
"buff_shield_d": "Incoming damage is reduced.",
"buff_pot_damage": "Rage potion",
"buff_pot_damage_d": "You deal additional damage to monsters.",
"buff_pot_berserk_d": "You have deal a lot of damage but also lose (hp) over time.",
"buff_pot_armor_d": "Incoming damage reduced.",
"buff_pot_heal_long_d": "Restore your (hp) over time.",
"buff_pot_appetite_d": "Food gives you more (en).",
"buff_pot_berserk_damage": "Berserk",
"buff_fishing_d": "You have additional time to hook a fish.",
"buff_fishing2_d": "You don't let fish off the hook easily.",
"buff_survay_d": "You get extra points when studying new items.",
"buff_beer_d": "Beer tastes much better now!",
"buff_hardwork_d": "You spend less energy working with axes and pickaxes.",
"buff_longtimer_d": "All buffs last longer.",
"buff_sleep_d": "Energy regeneration during sleeping is increased.",
"buff_cleancut_d": "A steady hand reduces the chances of making a surgical error.",
"buff_garlic_poison_d": "Your mouth is burning!",
"buff_sin_shard_d": "Gain x2 of sin shards",
"buff_gp_increase_d": "Gain 10% more of (gratitude_points)",