-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Audit: Bash results #70501
Comments
This might be a weird take but the easy way kind of sounds like a waste of your time, it does little to change gameplay nor improve the system for future changes and would make new additions more tedious |
Yeah, good question is how much of work from "easy way" could be salvaged to the "hard way"? |
What part of the easy way don't you think is useful?
I'm not quite sure what you mean. The hard way would do all this same stuff, but putting things into a recipe is a nice way to compartmentalize them and make it all a bit clearer. It otherwise is exactly the same change. |
I don't see how this would be useful if/when the hard way gets implemented, merging the bash and deconstruction recipes
I don't have anything against more CI testing but again if they're going to being merged together anyway checking the differences between them doesn't achieve anything
I agree with that but wouldn't this make the hard method more work to implement instead of the other way around bc you'd have larger more complicated json bash entries to merge? (I appreciate the code that supports it would obviously be reusable? I could well have just misread or be misinterpreting your OP again, sorry if that's the case, equally I'm not saying don't do this if you want to I'm just saying you do pretty cool stuff and this doesn't seem like a great use of your time |
It's an either-or I'm describing here, not a one then the other. Either someone takes up the torch of revamping the whole system, which would be great for consistency but a lot of work, or we just solve it with what we currently have and some smaller tweaks |
well, it's kinda pointless to make some changes, that will be deleted as soon as someone more brave decide to make a better system |
You're not following. We don't need to do the whole standardization thing. It's an option, but it isn't necessary. We should not hold off on a fairly important balance fix in the hopes that someone might in the next ten years decide to take on a big restructuring project... If someone wants to do that fix, it's a great idea, but it's nowhere near important enough to block a more important balance adjustment. |
@GuardianDll You are only right IF that better system DOES happen and DOES so in a reasonable timeframe. CDDA already has several of those "let's make a better X" that never happened and are forever 2 years away or more |
I wonder if we can use multiple itemgroups and if we can multitply them.
so lets also assume that we have following itemgroups:
then results can be:
Deconstruct:
|
We can, and it's kinda the point of this issue about walls advancements and degradation it's another giant can of worms, main issue of which is the terrain never knows what is above said terrain. meaning we need manually define floor for each terrain in the game, which result in stuff like us having 30+ type of wooden doors with only difference be |
Is your feature request related to a problem? Please describe.
Bashing furniture and terrain in game can produce some pretty wacky results, particularly when compared with disassembly of the same stuff. A lot of this is now basically just old code from when we didn't have disassembly options... it's kind of nonsensical to try to bash a fridge for its parts.
Solution you would like.
I have a 'simple' and a 'complex' solution. I consider them roughly equal, they both have advantages and disadvantages.
The Easy Way
Each of these steps can be done independently of each other, and do not require the others to be done! That's part of what makes this way the Easy way.
bash
entries and where possible have them use standardized itemgroups rather than specifying inline what to spawn.Possible extra steps:
4. Adjust bash item entries to have two more fields:
damage_results
: true/false, do the listed items get damaged by bashing? The chance of damage should be based on how much damage was done to the bashed object but iftrue
there should always be a decent chance to do anywhere from one to complete damage to the product items.delicate_items
: These items are much more likely to be broken in bashing; if damage_results is false, then these things can still be damaged. If it's true, these take significantly more damage than the rest and should usually be destroyed in the bashing process, but sometimes might survive.The additions in 4 would allow us to standardize bash result itemgroups to be the same as deconstruction results, but with damage applied causing eg. a lot of 2x4s to spawn as wood splinters instead. That standardization would help a ton to make sure bashing and deconstruction don't need so much parity auditing.
The Hard Way
Fundamentally, bashing is just another type of deconstruction. Rather than having it an inline definition inside the terrain/furniture entry, we could instead make it use construction recipes. The main advantage here is that it would make it clear that bash has the same general structure as deconstruction, and we could frequently use the same recipes for both deconstruction and bash. In the future we might be able to call different bash-deconstruct recipes depending on the type of bashing implement used, so smashing a boat with a sledgehammer yields a lot of splitners while smashing it with a crowbar woudl get you a few more planks and things, eg, or slashing underbrush with a machete would be both easier and produce different results from trying to whack it with a screwdriver. Note that bash recipes would ignore a lot of fields, like
time
andskill_required
.This would still require us to get into the
damage_results
stuff specified above, because the major difference between deconstruction vs. bashing for the most part is that bashing should wreck a lot of the stuff you'd salvaged. Doing it this way allows that stuff to get wrecked procedurally and produce the appropriate chunks of material byproducts, rather than arbitrarily doing it by guesswork. That's the major goal here.This was my initial goal, but after going through it in some detail, for the moment i actually prefer the Easy Way so I won't type more about this up just yet. I might expand it more if people can think of some other advantages to doing it this way.
Describe alternatives you have considered.
I just gave you two alternatives, what more do you want from me.
Of note, the simplest way to go here (and what I think can be started on right now) is just to start auditing bash results and moving similar bash results into itemgroups instead of specifying a bunch of estimated returns.
Additional context
This seems like a pretty zen project (the first few steps) so I might look at plugging away at it a little bit.
The text was updated successfully, but these errors were encountered: