mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-14 12:13:06 +00:00
Merge pull request #6379 from Heroman3003/resleeving_sickness
Adds resleeving sickness
This commit is contained in:
2
code/datums/mind_vr.dm
Normal file
2
code/datums/mind_vr.dm
Normal file
@@ -0,0 +1,2 @@
|
||||
/datum/mind
|
||||
var/vore_death = FALSE // Was our last gasp a gurgle?
|
||||
@@ -79,6 +79,14 @@
|
||||
desc = "Miniature medical robots that swiftly restore bodily damage."
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/healing_nanites = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/sleevingcure
|
||||
name = "pill bottle (Kitsuhanan Cure)"
|
||||
desc = "A rare cure provided by KHI that helps counteract negative side effects of using imperfect resleeving machinery."
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/sleevingcure = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/sleevingcure/full
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/sleevingcure = 14)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/insiderepair
|
||||
name = "combat organ kit"
|
||||
desc = "Contains advanced organ medical treatments."
|
||||
@@ -95,3 +103,15 @@
|
||||
/obj/item/weapon/storage/pill_bottle/arithrazine,
|
||||
/obj/item/device/healthanalyzer/advanced
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/mrebag/pill
|
||||
name = "vacuum-sealed pill"
|
||||
desc = "A small vacuum-sealed package containing a singular pill. For emergencies only."
|
||||
icon_state = "pouch_small"
|
||||
max_w_class = ITEMSIZE_TINY
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/pill)
|
||||
|
||||
/obj/item/weapon/storage/mrebag/pill/sleevingcure
|
||||
name = "vacuum-sealed pill (Kitsuhanan Cure)"
|
||||
desc = "A small vacuum-sealed package containing a singular pill. For emergencies only."
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/sleevingcure)
|
||||
@@ -3,8 +3,9 @@
|
||||
id = "adranol"
|
||||
description = "A mild sedative that calms the nerves and relaxes the patient."
|
||||
taste_description = "milk"
|
||||
reagent_state = SOLID
|
||||
reagent_state = LIQUID
|
||||
color = "#d5e2e5"
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/adranol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
@@ -65,7 +66,7 @@
|
||||
description = "A potent chemical that treats physical damage at an exceptional rate."
|
||||
taste_description = "sparkles"
|
||||
taste_mult = 3
|
||||
reagent_state = SOLID
|
||||
reagent_state = LIQUID
|
||||
color = "#964e06"
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
scannable = 1
|
||||
@@ -76,3 +77,18 @@
|
||||
chem_effective = 0.75
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(8 * removed * chem_effective, 0)
|
||||
|
||||
/datum/reagent/sleevingcure
|
||||
name = "Kitsuhanan Cure"
|
||||
id = "sleevingcure"
|
||||
description = "A rare cure provided by KHI that helps counteract negative side effects of using imperfect resleeving machinery."
|
||||
taste_description = "chocolate peanut butter"
|
||||
taste_mult = 2
|
||||
reagent_state = LIQUID
|
||||
color = "#b4dcdc"
|
||||
overdose = 5
|
||||
scannable = 0
|
||||
|
||||
/datum/reagent/sleevingcure/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.remove_a_modifier_of_type(/datum/modifier/resleeving_sickness)
|
||||
M.remove_a_modifier_of_type(/datum/modifier/faux_resleeving_sickness)
|
||||
@@ -124,3 +124,13 @@
|
||||
..()
|
||||
reagents.add_reagent("healing_nanites", 30)
|
||||
color = reagents.get_color()
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/sleevingcure
|
||||
name = "Kitsuhanan Cure pill"
|
||||
desc = "A rare cure provided by KHI that helps counteract negative side effects of using imperfect resleeving machinery."
|
||||
icon_state = "pill3"
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/sleevingcure/Initialize()
|
||||
..()
|
||||
reagents.add_reagent("sleevingcure", 1)
|
||||
color = reagents.get_color()
|
||||
|
||||
@@ -85,16 +85,10 @@
|
||||
H.add_modifier(modifier_type)
|
||||
|
||||
//Apply damage
|
||||
H.adjustCloneLoss((H.getMaxHealth() - config.health_threshold_dead)*-0.75)
|
||||
H.adjustCloneLoss(H.getMaxHealth()*1.5)
|
||||
H.Paralyse(4)
|
||||
H.updatehealth()
|
||||
|
||||
//Grower specific mutations
|
||||
if(heal_level < 60)
|
||||
randmutb(H)
|
||||
H.dna.UpdateSE()
|
||||
H.dna.UpdateUI()
|
||||
|
||||
//Update appearance, remake icons
|
||||
H.UpdateAppearance()
|
||||
H.sync_organ_dna()
|
||||
@@ -134,10 +128,10 @@
|
||||
connected_message("Clone Rejected: Deceased.")
|
||||
return
|
||||
|
||||
else if(occupant.health < heal_level && occupant.getCloneLoss() > 0)
|
||||
else if(occupant.getCloneLoss() > 0)
|
||||
|
||||
//Slowly get that clone healed and finished.
|
||||
occupant.adjustCloneLoss(-2 * heal_rate)
|
||||
occupant.adjustCloneLoss(-3 * heal_rate)
|
||||
|
||||
//Premature clones may have brain damage.
|
||||
occupant.adjustBrainLoss(-(CEILING((0.5*heal_rate), 1)))
|
||||
@@ -152,7 +146,7 @@
|
||||
use_power(7500) //This might need tweaking.
|
||||
return
|
||||
|
||||
else if(((occupant.health >= heal_level) || (occupant.health == occupant.maxHealth)) && (!eject_wait))
|
||||
else if(((occupant.health == occupant.maxHealth)) && (!eject_wait))
|
||||
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
|
||||
audible_message("\The [src] signals that the growing process is complete.")
|
||||
connected_message("Growing Process Complete.")
|
||||
@@ -409,6 +403,7 @@
|
||||
anchored = 1
|
||||
var/blur_amount
|
||||
var/confuse_amount
|
||||
var/sickness_duration
|
||||
|
||||
var/mob/living/carbon/human/occupant = null
|
||||
var/connected = null
|
||||
@@ -438,6 +433,9 @@
|
||||
manip_rating += M.rating
|
||||
blur_amount = (48 - manip_rating * 8)
|
||||
|
||||
var/total_rating = manip_rating + scan_rating
|
||||
sickness_duration = (45 - (total_rating-4)*1.875) MINUTES // 45 minutes default, 30 minutes with max non-anomaly upgrades, 15 minutes with max anomaly ones
|
||||
|
||||
/obj/machinery/transhuman/resleever/attack_hand(mob/user as mob)
|
||||
user.set_machine(src)
|
||||
var/health_text = ""
|
||||
@@ -584,8 +582,13 @@
|
||||
else
|
||||
occupant << "<span class='warning'>You feel a small pain in your head as you're given a new backup implant. Oh, and a new body. It's disorienting, to say the least.</span>"
|
||||
|
||||
occupant.confused = max(occupant.confused, confuse_amount)
|
||||
occupant.confused = max(occupant.confused, confuse_amount) // Apply immedeate effects
|
||||
occupant.eye_blurry = max(occupant.eye_blurry, blur_amount)
|
||||
if(!(occupant.mind.vore_death))
|
||||
occupant.add_modifier(/datum/modifier/faux_resleeving_sickness, sickness_duration/3) // And more longterm, though purely visual ones
|
||||
else
|
||||
occupant.add_modifier(/datum/modifier/resleeving_sickness, sickness_duration) // Much more serious if it wasn't a death by vore though
|
||||
occupant.mind.vore_death = FALSE // Reset our death type. Just in case
|
||||
|
||||
if(occupant.mind && occupant.original_player && ckey(occupant.mind.key) != occupant.original_player)
|
||||
log_and_message_admins("is now a cross-sleeved character. Body originally belonged to [occupant.real_name]. Mind is now [occupant.mind.name].",occupant)
|
||||
|
||||
24
code/modules/resleeving/resleeving_sickness.dm
Normal file
24
code/modules/resleeving/resleeving_sickness.dm
Normal file
@@ -0,0 +1,24 @@
|
||||
/datum/modifier/resleeving_sickness
|
||||
name = "resleeving sickness"
|
||||
desc = "You feel rather weak and unfocused, having been sleeved not so long ago."
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
on_created_text = "<span class='warning'><font size='3'>You feel weak and unfocused.</font></span>"
|
||||
on_expired_text = "<span class='notice'><font size='3'>You feel your strength and focus return to you.</font></span>"
|
||||
|
||||
incoming_brute_damage_percent = 1.1 // 10% more brute damage
|
||||
incoming_fire_damage_percent = 1.1 // 10% more burn damage
|
||||
incoming_hal_damage_percent = 1.5 // 50% more incoming agony.
|
||||
outgoing_melee_damage_percent = 0.5 // 50% less melee damage.
|
||||
disable_duration_percent = 2 // 100% longer stuns.
|
||||
evasion = -40 // 40% easier to hit.
|
||||
accuracy = -50 // 50% less accurate.
|
||||
accuracy_dispersion = 20 // 20% less precise.
|
||||
|
||||
/datum/modifier/faux_resleeving_sickness
|
||||
name = "resleeving sickness"
|
||||
desc = "You feel somewhat weak and unfocused, having been sleeved not so long ago."
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
on_created_text = "<span class='warning'>You feel slightly weak and unfocused.</span>"
|
||||
on_expired_text = "<span class='notice'>You feel your strength and focus return to you.</span>"
|
||||
@@ -393,6 +393,8 @@
|
||||
//M.death(1) // "Stop it he's already dead..." Basically redundant and the reason behind screaming mouse carcasses.
|
||||
if(M.ckey)
|
||||
message_admins("[key_name(owner)] has digested [key_name(M)] in their [lowertext(name)] ([owner ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[owner.x];Y=[owner.y];Z=[owner.z]'>JMP</a>" : "null"])")
|
||||
if(M.mind)
|
||||
M.mind.vore_death = TRUE
|
||||
|
||||
// If digested prey is also a pred... anyone inside their bellies gets moved up.
|
||||
if(is_vore_predator(M))
|
||||
|
||||
Reference in New Issue
Block a user