Several tweaks/fixes
- Enlightenment status now wears off over time - Improve ghost mode - now you can pass through force barriers and forcecages too (but not escape forcecages); also locked doors or specials that block your progress... pretty much nothing can block your way now in ghost mode. --> Part of this change was made in the previous commit as well. - New debug command - Give Item. Since this is meant for debug use only, you have to enter the item's ID; players should instead use the character editor. - Fixed custom spells (with Start Targeting node) not correctly honouring the range in combat mode (instead they had a range of 0) - Fixed custom spells (with Start Targeting node) always calling a local node to determine the effect of the spell. Now they call the same type of node that initiated the targeting (so, if it was initiated in a scenario node, they call a scenario node, etc). - Fix some unintentional switch fallthroughs - Flash Step erroneously printed a "not implemented" error message - Fix get num response dialog incorrectly formatting the prompt - Fix some crashes while talking due to the game still assuming there were 60 nodes - Fix SDFs with y >= 10 not being zero-initialized when you enter a new scenario - Allow special nodes to aware more than 200 XP in one batch (though in most cases, you probably don't want to) - Fix Display Small Message node trying to use the wrong string, due to applying the legacy string modifiers. This also affected Debug Print Nums, which just copy-pasted the same code. - The Dumbfound/Enlightened and Sleep/Hyperactivity status effects no longer "wrap" into each other. Thus, if you're dumbfounded, a "Cure Dumbfounding" item never enlightens you, but if you're not dumbfounded, it will. - Fix an issue with invalid strings when porting outdoor shops - Fix Reset Help option in the preferences causing a crash
This commit is contained in:
@@ -36,6 +36,12 @@ void iLiving::apply_status(eStatus which, int how_much) {
|
||||
if(allow_negative.count(which))
|
||||
lo = -hi;
|
||||
|
||||
if(which == eStatus::ASLEEP || which == eStatus::DUMB) {
|
||||
// No "wrapping" allowed for these effects.
|
||||
if(status[which] < 0) hi = 0;
|
||||
else if(status[which] > 0) lo = 0;
|
||||
}
|
||||
|
||||
status[which] = minmax(lo,hi,status[which] + how_much);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user