Mouse Ray

It turns things into mice (if they have the spontaneous TF preference enabled)

Also wiggles a few things around to allow for some shenanigans with this, namely:

if you are TFed into a thing, damage you take is relayed to your original body proportionally to the comparable HP. 

MEANING, if you have been TFed into a mouse, you have 20 HP. Your human body has 100. You have 1/5th the HP as a mouse. If you as a mouse take 5 damage, your human body takes 25. Be careful!

Additionally, if you as a mouse, or your human body dies, both die. 

Your TFed body being destroyed undoes the transformation. (But also you're probably dead at that point anyway) This allows for, in the case of digestion, your equipment to go where it ought to go.

Lastly, the building blocks are in place for this to be fluffed into other kinds of metamorphosis rays, should staff feel like doing such. I will probably also trick out the /admin variant of this with a bunch of mob types tomorrow when I'm not sleeby
This commit is contained in:
VerySoft
2022-07-07 05:29:02 -04:00
parent d3c467e5e8
commit 8a443a46be
8 changed files with 248 additions and 10 deletions
+8 -8
View File
@@ -378,7 +378,7 @@
droplimb(0, DROPLIMB_EDGE)
else if(spread_dam && owner && parent && (brute_overflow || burn_overflow) && (brute_overflow >= 5 || burn_overflow >= 5) && !permutation) //No infinite damage loops.
var/brute_third = brute_overflow * 0.33
var/burn_third = burn_overflow * 0.33
var/burn_third = burn_overflow * 0.33
if(children && children.len)
var/brute_on_children = brute_third / children.len
var/burn_on_children = burn_third / children.len
@@ -1063,14 +1063,14 @@ Note that amputating the affected organ does in fact remove the infection from t
if((status & ORGAN_BROKEN) || cannot_break)
return
if(owner)
owner.visible_message(\
"<span class='danger'>You hear a loud cracking sound coming from \the [owner].</span>",\
"<span class='danger'>Something feels like it shattered in your [name]!</span>",\
"<span class='danger'>You hear a sickening crack.</span>")
jostle_bone()
if(organ_can_feel_pain() && !isbelly(owner.loc))
if(owner) //VOREStation Edit Start
if(organ_can_feel_pain() && !isbelly(owner.loc) && !isliving(owner.loc))
owner.visible_message(\
"<span class='danger'>You hear a loud cracking sound coming from \the [owner].</span>",\
"<span class='danger'>Something feels like it shattered in your [name]!</span>",\
"<span class='danger'>You hear a sickening crack.</span>")
owner.emote("scream")
jostle_bone() //VOREStation Edit End
playsound(src, "fracture", 10, 1, -2)
status |= ORGAN_BROKEN