View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0027800 | Heart Of The Machine | Gameplay Idea | Apr 28, 2023 3:18 pm | Apr 29, 2023 10:32 pm | |
Reporter | Chris_McElligottPark | Assigned To | Draco18s | ||
Status | resolved | Resolution | fixed | ||
Summary | 0027800: Todo: AddedDifficultyReason extensions. | ||||
Description | Right now, this works in the sense that it is increasing a central difficulty score, and telling us about that. However, there is a secondary layer for this which is wholly absent so far, which is "change things based on the number of times each of these has been unlocked." In other words, there are two parts, and their numbers are unrelated: 1. Estimate of current added difficulty (done). 2. Actual buffs or maluses to various parts of the game, unrelated to the above numbers (not even started). Please note that each AddedDifficultyReason can be unlocked multiple times, and it should just get multiplicatively harder if that is done. For these to work, we'll need some of the following things: 1. On cohorts, a new AntiPlayerAggroLevel float. This starts at 0. It should be recalculated every tick, and also should be saved. 2. On AddedDifficultyReason, the ability to increase the AntiPlayerAggroLevel of some group of cohorts -- either those matching a tag, or a specific cohort by ID. The increase amount should be specified in the definition of the sub-object of AddedDifficultyReason (this is much like completion_research_reward on encounter types). So basically, we have a new <anti_player_aggro_by_tag cohort_tag="SomeTag" amount="0.3" /> and <anti_player_aggro_by_id cohort_id="SomeID" amount="0.2" />, and so on. 3. Every tick on the background thread, it should calculate the AntiPlayerAggroLevel float by adding up all of the entries that are relevant to that cohort, and for ones where there are multiple copies of the same AddedDifficultyReason, it gives us multiply copies of its sub-amounts. 4. Similarly, we should have a new ExtraEncountersAllowed float on cohorts, and that should be increased in the exact same way as the anti-player aggro. 5. Also similarly, we should have a new GeneralEncounterSeverityLevel float on cohorts, which again should be increased in the same way as the two above. 6. Finally, on cohorts, we should have a new UnlockedEncounterGate<string,float> double buffered dictionary. There would be things like "UsesMachineGuns" or something in a new EncounterGateType table, and the added difficulty would be able to say "+5 to UsesMachineGuns on cohorts with this tag or this ID." 7. On the encounter spawn logic areas, a few additions: 7.a. Floor the ExtraEncountersAllowed, and if that's > 0, then let that cohort spawn more encounters than it normally has. This is just in logic, needs no xml. 7.b. In the xml for the spawn conditions for encounters, right now it's able to gate on city story flags. We also need that to be able to gate on "the considering cohort has a GeneralEncounterSeverityLevel of at least [number]". 7.c. In the xml for the spawn conditions for encounters, we also need that to be able to gate on "the considering cohort has a UnlockedEncounterGate X of at least [number]". So, "don't spawn me unless UsesMachineGuns is at least 7," or whatever. 8. In the new ui that you get when clicking the difficulty in the top left of the screen, where is a todo major_todo that has a spot for you to show the various additions from 2, 4, 5, and 6. So we can see what is being increased, where. 9. On the cohort details view, we should also see a list of the new stats and what they are, and if we mouseover individual ones we should see what has contributed to them. | ||||
Tags | No tags attached. | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
Apr 28, 2023 3:18 pm | Chris_McElligottPark | New Issue | |
Apr 28, 2023 3:19 pm | Chris_McElligottPark | Assigned To | => Draco18s |
Apr 28, 2023 3:19 pm | Chris_McElligottPark | Status | new => assigned |
Apr 28, 2023 3:42 pm | Draco18s | Status | assigned => acknowledged |
Apr 29, 2023 10:32 pm | Draco18s | Status | acknowledged => resolved |
Apr 29, 2023 10:32 pm | Draco18s | Resolution | open => fixed |