RoboPhred / oni-duplicity

A web-hosted, locally-running save editor for Oxygen Not Included.
MIT License
127 stars 57 forks source link

Where are Status Conditions? #122

Open Xirema opened 2 years ago

Xirema commented 2 years ago

I've been trying to dig through the Raw Editor for a while, and have noticed that this editor doesn't seem to have any kind of group or fields for the temporary Status Conditions dupes can acquire.

Things like having a Lit Workplace, or being the Center of Attention, or other conditions like that, that are shown in the Status Dialog for each Duplicant.

Have I simply missed this, or is this something that's missing from the editor entirely; and if the latter, can this be rectified?

RoboPhred commented 2 years ago

I used to have those on an earlier version, but they were never really used so I didn't bother putting it into the new version.

Their data does exist on the raw editor, but due to limitations with that editor you cannot add new effects, only hyjack and modify existing effects.

Get your duplicant to have an existing effect running on it, then go to that dup in the raw editor and look for the behavior "Klei.AI.Effects". It should contain an array called 'saveLoadEffects', which will have the ongoing effect on it. Editing that entry will give you an id which you can replace with the effect you want, and timeRemaining which is how long the effect has left to run.

Keep in mind that a lot of effects involve other animations and code running on the duplicant. Setting most effects this way will NOT cause that animation to trigger; only the status effect will be applied.

Here are the effect IDs I knew of when I last looked at that code. This list is probably very out of date by now, however.

  "UncomfortableSleep",
  "Sleep",
  "NarcolepticSleep",
  "RestfulSleep",
  "AnewHope",
  "Mourning",
  "DisturbedSleep",
  "NewCrewArrival",
  "UnderWater",
  "FullBladder",
  "StressfulyEmptyingBladder",
  "RedAlert",
  "MentalBreak",
  "CoolingDown",
  "WarmingUp",
  "Darkness",
  "SteppedInContaminatedWater",
  "WellFed",
  "StaleFood",
  "SmelledPutridOdour",
  "Vomiting",
  "DirtyHands",
  "Unclean",
  "LightWounds",
  "ModerateWounds",
  "SevereWounds",
  "WasAttacked",
  "SoreBack",
  "WarmAir",
  "ColdAir",
  "Hypothermia",
  "Hyperthermia",
Xirema commented 2 years ago

So correct me if I'm mistaken, but none of the effects listed under Klei.AI.Effects are actual status conditions, like those shown in the "Status" window when selecting a dupe. They each represent Morale effects, listed when you highlight the Morale indicator in the window. Things like "used a restroom", "ate in a great hall", etc. They don't seem to represent the much more temporary (i.e. might last only a few seconds) status conditions like "Lit Workspace", "Center of Attention", or "Incapacitated", which is what I'm looking for. Your list of tags there seems to include the kinds of effects I'm looking for, but it doesn't appear they're being included in the "Klei.AI.Effects" section.

It's possible those effects are supposed to all be lumped together, but that doesn't seem to be the case from what I'm seeing. It seems like the more temporary stuff is being saved somewhere else.