Xenochimera Ferality Reduction while in belly

Xenochimera will now reduce ferality at a tickrate of 1 per Life tick while inside a belly, same as the hunger reduction if they're full.
They will not experience hallucinations and will get safety messages while inside a belly, as well as the status indicator confirming they're safe even in a lit environment.
This commit is contained in:
Rykka
2022-03-10 15:18:19 -07:00
parent f263df0214
commit 1bde2cdf09
2 changed files with 10 additions and 4 deletions

View File

@@ -45,6 +45,8 @@
var/turf/T = get_turf(H) var/turf/T = get_turf(H)
if(T.get_lumcount() <= 0.1) if(T.get_lumcount() <= 0.1)
to_chat(usr, "<span class='notice'>You are slowly calming down in darkness' safety...</span>") to_chat(usr, "<span class='notice'>You are slowly calming down in darkness' safety...</span>")
else if(isbelly(H.loc)) // CHOMPEdit: Safety message for if inside a belly.
to_chat(usr, "<span class='notice'>You are slowly calming down within the darkness of something's belly, listening to their body as it moves around you. ...safe...</span>")
else else
to_chat(usr, "<span class='notice'>You are slowly calming down... But safety of darkness is much preferred.</span>") to_chat(usr, "<span class='notice'>You are slowly calming down... But safety of darkness is much preferred.</span>")
else else

View File

@@ -205,6 +205,10 @@
feral++ feral++
else else
feral = max(0,--feral) feral = max(0,--feral)
// Being in a belly decreases stress further. :9
if(feral && isbelly(H.loc))
feral = max(0,--feral)
//Set our real mob's var to our temp var //Set our real mob's var to our temp var
H.feral = feral H.feral = feral
@@ -233,8 +237,8 @@
//This is basically the 'lite' version of the below block. //This is basically the 'lite' version of the below block.
var/list/nearby = H.living_mobs(world.view) var/list/nearby = H.living_mobs(world.view)
//Not in the dark and out in the open. //Not in the dark, or a belly, and out in the open.
if(!darkish && isturf(H.loc)) if(!darkish && isturf(H.loc) && !isbelly(H.loc)) // CHOMPEdit: added specific check for if in belly
//Always handle feral if nobody's around and not in the dark. //Always handle feral if nobody's around and not in the dark.
if(!nearby.len) if(!nearby.len)
@@ -248,8 +252,8 @@
update_xenochimera_hud(H, danger, feral_state) update_xenochimera_hud(H, danger, feral_state)
return return
// In the darkness or "hidden". No need for custom scene-protection checks as it's just an occational infomessage. // In the darkness, "hidden", or in a belly. No need for custom scene-protection checks as it's just an occational infomessage.
if(darkish || !isturf(H.loc)) if(darkish || !isturf(H.loc) || isbelly(H.loc)) // CHOMPEdit: added specific check for if in belly
// If hurt, tell 'em to heal up // If hurt, tell 'em to heal up
if (shock) if (shock)
to_chat(H,"<span class='info'>This place seems safe, secure, hidden, a place to lick your wounds and recover...</span>") to_chat(H,"<span class='info'>This place seems safe, secure, hidden, a place to lick your wounds and recover...</span>")