mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-02 13:33:29 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
9
code/WorkInProgress/SkyMarshal/eraser.dm
Normal file
9
code/WorkInProgress/SkyMarshal/eraser.dm
Normal file
@@ -0,0 +1,9 @@
|
||||
/obj/item/weapon/stamperaser
|
||||
name = "Eraser"
|
||||
desc = "Some type of eraser, you guess."
|
||||
flags = FPRINT | TABLEPASS
|
||||
icon = 'items.dmi'
|
||||
icon_state = "zippo"
|
||||
item_state = "zippo"
|
||||
w_class = 1.0
|
||||
m_amt = 80
|
||||
@@ -441,12 +441,6 @@
|
||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
||||
mob.brainloss = 20
|
||||
|
||||
/datum/disease2/effect/lesser/drowsy
|
||||
name = "Bedroom Syndrome"
|
||||
stage = 2
|
||||
activate(var/mob/living/carbon/mob,var/multiplier)
|
||||
mob.drowsyness = 5
|
||||
|
||||
/datum/disease2/effect/lesser/deaf
|
||||
name = "Hard of hearing syndrome"
|
||||
stage = 3
|
||||
|
||||
@@ -68,6 +68,9 @@
|
||||
|
||||
if(B)
|
||||
dat = "Blood sample inserted."
|
||||
var/code = ""
|
||||
for(var/V in ANTIGENS) if(text2num(V) & B.data["antibodies"]) code += ANTIGENS[V]
|
||||
dat += "<BR>Antibodies: [code]"
|
||||
dat += "<BR><A href='?src=\ref[src];antibody=1'>Begin antibody production</a>"
|
||||
else
|
||||
dat += "<BR>Please check container contents."
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
max_stages = 5
|
||||
spread = "None"
|
||||
spread_type = SPECIAL
|
||||
stage_prob = 2
|
||||
cure = "Unknown"
|
||||
cure_id = list("lexorin","toxin","gargleblaster")
|
||||
cure_chance = 20
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
var/brain_op_stage = 0.0
|
||||
var/eye_op_stage = 0.0
|
||||
var/appendix_op_stage = 0.0
|
||||
var/embryo_op_stage = 0.0
|
||||
|
||||
var/datum/disease2/disease/virus2 = null
|
||||
var/list/datum/disease2/disease/resistances2 = list()
|
||||
|
||||
@@ -824,6 +824,7 @@
|
||||
icon = 'paper.dmi'
|
||||
icon_state = "paper"
|
||||
var/info = null
|
||||
var/infoold = null
|
||||
throwforce = 0
|
||||
w_class = 1.0
|
||||
throw_speed = 3
|
||||
@@ -1458,6 +1459,11 @@
|
||||
icon_state = "stamp-hos"
|
||||
color = "hosred"
|
||||
|
||||
/obj/item/weapon/stamp/detective
|
||||
name = "detective's rubber stamp"
|
||||
icon_state = "stamp-hos"
|
||||
color = "hosred"
|
||||
|
||||
/obj/item/weapon/stamp/ce
|
||||
name = "chief engineer's rubber stamp"
|
||||
icon_state = "stamp-ce"
|
||||
@@ -1516,7 +1522,7 @@
|
||||
name = "d4"
|
||||
desc = "A dice with four sides."
|
||||
sides = 4
|
||||
icon_state = "d20"
|
||||
icon_state = "dice"
|
||||
item_state = "dice"
|
||||
|
||||
/obj/item/weapon/dice // -- TLE
|
||||
@@ -1708,4 +1714,4 @@
|
||||
desc = "A container for hold compressed matter awaiting re-construction."
|
||||
origin_tech = "materials=5"
|
||||
rating = 3
|
||||
m_amt = 80
|
||||
m_amt = 80
|
||||
@@ -12,7 +12,7 @@
|
||||
icon_state = "pod_0"
|
||||
req_access = list(access_medlab) //For premature unlocking.
|
||||
var/mob/living/occupant
|
||||
var/heal_level = 90 //The clone is released once its health reaches this level.
|
||||
var/heal_level = 10 //The clone is released once its health reaches this level.
|
||||
var/locked = 0
|
||||
var/obj/machinery/computer/cloning/connected = null //So we remember the connected clone machine.
|
||||
var/mess = 0 //Need to clean out it if it's full of exploded clone.
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
menu_message += "<A href='byond://?src=\ref[src];buy_item=card'>Syndicate Card</A> (3)<BR>"
|
||||
menu_message += "<A href='byond://?src=\ref[src];buy_item=voice'>Voice-Changer</A> (4)<BR>"
|
||||
menu_message += "<A href='byond://?src=\ref[src];buy_item=thermal'>Thermal Glasses</A> (4)<BR>"
|
||||
menu_message += "<A href='byond://?src=\ref[src];buy_item=eraser'>Stamp Remover</A> (1)<BR>" //Allows doccuments to be de-stamped
|
||||
menu_message += "<BR>"
|
||||
menu_message += "<A href='byond://?src=\ref[src];buy_item=imp_freedom'>Freedom Implant (with injector)</A> (3)<BR>"
|
||||
menu_message += "<A href='byond://?src=\ref[src];buy_item=imp_uplink'>Uplink Implant (5 crystals inside)</A> (10)<BR>"
|
||||
@@ -212,6 +213,10 @@
|
||||
if(uses >= 10)
|
||||
uses -= 10
|
||||
new /obj/item/weapon/storage/box/syndicate(get_turf(hostpda))
|
||||
if("eraser")
|
||||
if(uses >= 1)
|
||||
uses -= 1
|
||||
new /obj/item/weapon/stamperaser(get_turf(hostpda))
|
||||
|
||||
generate_menu()
|
||||
print_to_host(menu_message)
|
||||
|
||||
@@ -124,6 +124,7 @@ CLIPBOARDS
|
||||
if(istype(P, /obj/item/weapon/stamp))
|
||||
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
|
||||
return
|
||||
src.infoold = src.info
|
||||
src.info += text("<BR><i>This paper has been stamped with the [].</i><BR>", P.name)
|
||||
switch(P.type)
|
||||
if(/obj/item/weapon/stamp/captain)
|
||||
@@ -141,11 +142,7 @@ CLIPBOARDS
|
||||
if(/obj/item/weapon/stamp/denied)
|
||||
src.overlays += "paper_stamped_denied"
|
||||
if(/obj/item/weapon/stamp/clown)
|
||||
if (!clown)
|
||||
usr << "\red You are totally unable to use the stamp. HONK!"
|
||||
return
|
||||
else
|
||||
src.overlays += "paper_stamped_clown"
|
||||
src.overlays += "paper_stamped_clown"
|
||||
else
|
||||
src.overlays += "paper_stamped"
|
||||
if(!stamped)
|
||||
@@ -153,6 +150,35 @@ CLIPBOARDS
|
||||
stamped += P.type
|
||||
|
||||
user << "\blue You stamp the paper with your rubber stamp."
|
||||
|
||||
else if(istype(P, /obj/item/weapon/stamperaser))
|
||||
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
|
||||
return
|
||||
src.info = src.infoold
|
||||
for(var/i, i <= stamped.len, i++)
|
||||
switch(stamped[i])
|
||||
if(/obj/item/weapon/stamp/captain)
|
||||
src.overlays -= "paper_stamped_cap"
|
||||
if(/obj/item/weapon/stamp/hop)
|
||||
src.overlays -= "paper_stamped_hop"
|
||||
if(/obj/item/weapon/stamp/hos)
|
||||
src.overlays -= "paper_stamped_hos"
|
||||
if(/obj/item/weapon/stamp/ce)
|
||||
src.overlays -= "paper_stamped_ce"
|
||||
if(/obj/item/weapon/stamp/rd)
|
||||
src.overlays -= "paper_stamped_rd"
|
||||
if(/obj/item/weapon/stamp/cmo)
|
||||
src.overlays -= "paper_stamped_cmo"
|
||||
if(/obj/item/weapon/stamp/denied)
|
||||
src.overlays -= "paper_stamped_denied"
|
||||
if(/obj/item/weapon/stamp/clown)
|
||||
src.overlays -= "paper_stamped_clown"
|
||||
else
|
||||
src.overlays -= "paper_stamped"
|
||||
stamped = new list()
|
||||
|
||||
user << "\blue You sucessfully remove those pesky stamps."
|
||||
|
||||
/*
|
||||
else
|
||||
if (istype(P, /obj/item/weapon/weldingtool))
|
||||
|
||||
@@ -19,6 +19,32 @@ CIRCULAR SAW
|
||||
if(!((locate(/obj/machinery/optable, M.loc) && M.resting) || (locate(/obj/structure/table/, M.loc) && (M.lying || M.weakened || M.stunned || M.paralysis || M.sleeping || M.stat) && prob(50))))
|
||||
return ..()
|
||||
|
||||
if(user.zone_sel.selecting == "chest")
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
switch(M:embryo_op_stage)
|
||||
if(2.0)
|
||||
if(M != user)
|
||||
for(var/mob/O in (viewers(M) - user - M))
|
||||
O.show_message("\red [user] retracts the flap in [M]'s cut open torso with [src].", 1)
|
||||
M << "\red [user] begins to retracts the flap in your chest with [src]!"
|
||||
user << "\red You clamp retracts the flap in [M]'s torso with [src]!"
|
||||
M:embryo_op_stage = 3.0
|
||||
return
|
||||
if(4.0)
|
||||
if(M != user)
|
||||
for(var/mob/O in (viewers(M) - user - M))
|
||||
O.show_message("\red [user] rips the larva out of [M]'s torso!", 1)
|
||||
M << "\red [user] begins to rip the larva out of [M]'s torso!"
|
||||
user << "\red You rip the larva out of [M]'s torso!"
|
||||
var/mob/living/carbon/alien/larva/stupid = new(M.loc)
|
||||
stupid.death(0)
|
||||
//Make a larva and kill it. -- SkyMarshal
|
||||
M:embryo_op_stage = 5.0
|
||||
for(var/datum/disease/alien_embryo in M.viruses)
|
||||
alien_embryo.cure()
|
||||
return
|
||||
return
|
||||
|
||||
if(user.zone_sel.selecting == "groin")
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
switch(M:appendix_op_stage)
|
||||
@@ -92,6 +118,26 @@ CIRCULAR SAW
|
||||
if(!((locate(/obj/machinery/optable, M.loc) && M.resting) || (locate(/obj/structure/table/, M.loc) && M.lying && prob(50))))
|
||||
return ..()
|
||||
|
||||
if(user.zone_sel.selecting == "chest")
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
switch(M:embryo_op_stage)
|
||||
if(1.0)
|
||||
if(M != user)
|
||||
for(var/mob/O in (viewers(M) - user - M))
|
||||
O.show_message("\red [user] is beginning to clamp bleeders in [M]'s cut open torso with [src].", 1)
|
||||
M << "\red [user] begins to torso bleeders in your chest with [src]!"
|
||||
user << "\red You clamp bleeders in [M]'s torso with [src]!"
|
||||
M:embryo_op_stage = 2.0
|
||||
return
|
||||
if(5.0)
|
||||
if(M != user)
|
||||
for(var/mob/O in (viewers(M) - user - M))
|
||||
O.show_message("\red [user] cleans out the debris from [M]'s cut open torso with [src].", 1)
|
||||
M << "\red [user] begins to clean out the debris in your torso with [src]!"
|
||||
user << "\red You clean out the debris from in [M]'s torso with [src]!"
|
||||
M:embryo_op_stage = 6.0
|
||||
return
|
||||
|
||||
if(user.zone_sel.selecting == "groin")
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
switch(M:appendix_op_stage)
|
||||
@@ -177,6 +223,18 @@ CIRCULAR SAW
|
||||
if(!((locate(/obj/machinery/optable, M.loc) && M.resting) || (locate(/obj/structure/table/, M.loc) && M.lying && prob(50))))
|
||||
return ..()
|
||||
|
||||
if(user.zone_sel.selecting == "chest")
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
switch(M:embryo_op_stage)
|
||||
if(6.0)
|
||||
if(M != user)
|
||||
for(var/mob/O in (viewers(M) - user - M))
|
||||
O.show_message("\red [user] is beginning to cauterize the incision in [M]'s torso with [src].", 1)
|
||||
M << "\red [user] begins to cauterize the incision in your torso with [src]!"
|
||||
user << "\red You cauterize the incision in [M]'s torso with [src]!"
|
||||
M:embryo_op_stage = 7.0
|
||||
return
|
||||
|
||||
if(user.zone_sel.selecting == "groin")
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
switch(M:appendix_op_stage)
|
||||
@@ -264,6 +322,28 @@ CIRCULAR SAW
|
||||
|
||||
src.add_fingerprint(user)
|
||||
|
||||
if(user.zone_sel.selecting == "chest")
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
switch(M:embryo_op_stage)
|
||||
if(0.0)
|
||||
if(M != user)
|
||||
for(var/mob/O in (viewers(M) - user - M))
|
||||
O.show_message("\red [M] is beginning to have his torso cut open with [src] by [user].", 1)
|
||||
M << "\red [user] begins to cut open your torso with [src]!"
|
||||
user << "\red You cut [M]'s torso open with [src]!"
|
||||
M:embryo_op_stage = 1.0
|
||||
if(3.0)
|
||||
if(M != user)
|
||||
for(var/mob/O in (viewers(M) - user - M))
|
||||
O.show_message("\red [M] is beginning to have his stomach cut open with [src] by [user].", 1)
|
||||
M << "\red [user] begins to cut open your stomach with [src]!"
|
||||
user << "\red You cut [M]'s stomach open with [src]!"
|
||||
for(var/datum/disease/D in M.viruses)
|
||||
if(istype(D, /datum/disease/alien_embryo))
|
||||
user << "\red There's something wiggling in there!"
|
||||
M:embryo_op_stage = 4.0
|
||||
return
|
||||
|
||||
if(user.zone_sel.selecting == "groin")
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
switch(M:appendix_op_stage)
|
||||
|
||||
@@ -44,9 +44,10 @@ SYNDICATE UPLINK
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=card'>Syndicate Card</A> (3)<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=voice'>Voice-Changer</A> (4)<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=thermal'>Thermal Glasses</A> (4)<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=eraser'>Stamp Remover</A> (1)<BR>"
|
||||
dat += "<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=imp_freedom'>Freedom Implant (with injector)</A> (3)<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=paralysispen'>Paralysis Pen</A> (3)<BR>" //Note that this goes to the updated sleepypen now.
|
||||
// dat += "<A href='byond://?src=\ref[src];buy_item=paralysispen'>Paralysis Pen</A> (3)<BR>" //Note that this goes to the updated sleepypen now.
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=sleepypen'>Sleepy Pen</A> (4)<BR>" //Terrible -Pete. //Reinstated -Skymarshal
|
||||
dat += "<BR>"
|
||||
dat += "<A href='byond://?src=\ref[src];buy_item=detomatix'>Detomatix Cartridge</A> (3)<BR>"
|
||||
@@ -196,6 +197,10 @@ SYNDICATE UPLINK
|
||||
if (src.uses >= 10)
|
||||
uses -= 10
|
||||
new /obj/item/toy/syndicateballoon(get_turf(src))
|
||||
if("eraser")
|
||||
if(uses)
|
||||
uses --
|
||||
new /obj/item/weapon/stamperaser(get_turf(hostpda))
|
||||
else if (href_list["lock"] && src.origradio)
|
||||
// presto chango, a regular radio again! (reset the freq too...)
|
||||
shutdown_uplink()
|
||||
|
||||
@@ -181,6 +181,8 @@
|
||||
if (bodytemperature < 283.222)
|
||||
tally += (283.222 - bodytemperature) / 10 * 1.75
|
||||
|
||||
if (shock_stage >= 10) tally += 3
|
||||
|
||||
return tally
|
||||
|
||||
/mob/living/carbon/human/Stat()
|
||||
@@ -2328,4 +2330,4 @@ It can still be worn/put on as normal.
|
||||
/mob/living/carbon/human/Paralyse(amount)
|
||||
if(mutations & HULK)
|
||||
return
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
|
||||
var/datum/gas_mixture/environment = loc.return_air()
|
||||
|
||||
// clean all symptoms, they must be set again in this cycle
|
||||
src.disease_symptoms = 0
|
||||
|
||||
if (stat != 2) //still breathing
|
||||
|
||||
//First, resolve location and get a breath
|
||||
@@ -34,6 +37,8 @@
|
||||
var/obj/location_as_object = loc
|
||||
location_as_object.handle_internal_lifeform(src, 0)
|
||||
|
||||
src.handle_shock()
|
||||
|
||||
//Apparently, the person who wrote this code designed it so that
|
||||
//blinded get reset each cycle and then get activated later in the
|
||||
//code. Very ugly. I dont care. Moving this stuff here so its easy
|
||||
@@ -992,9 +997,6 @@
|
||||
for(var/datum/disease/D in viruses)
|
||||
D.cure()
|
||||
|
||||
// clean all the symptoms incurred by the virus
|
||||
src.disease_symptoms = 0
|
||||
|
||||
if(!virus2)
|
||||
// the following is silly since it lets you infect people through glass
|
||||
/*for(var/mob/living/carbon/M in oviewers(4,src))
|
||||
@@ -1058,65 +1060,35 @@
|
||||
if ((changeling.geneticdamage > 0))
|
||||
changeling.geneticdamage = changeling.geneticdamage-1
|
||||
|
||||
/*
|
||||
// Commented out so hunger system won't be such shock
|
||||
// Damage and effect from not eating
|
||||
if(nutrition <= 50)
|
||||
if (prob (0.1))
|
||||
src << "\red Your stomach rumbles."
|
||||
if (prob (10))
|
||||
bruteloss++
|
||||
if (prob (5))
|
||||
src << "You feel very weak."
|
||||
weakened += rand(2, 3)
|
||||
*/
|
||||
/*
|
||||
snippets
|
||||
handle_shock()
|
||||
..()
|
||||
|
||||
if (mach)
|
||||
if (machine)
|
||||
mach.icon_state = "mach1"
|
||||
if(traumatic_shock >= 80)
|
||||
shock_stage += 1
|
||||
else
|
||||
mach.icon_state = null
|
||||
shock_stage--
|
||||
shock_stage = max(shock_stage, 0)
|
||||
return
|
||||
|
||||
if (!m_flag)
|
||||
moved_recently = 0
|
||||
m_flag = null
|
||||
if (shock_stage > 60)
|
||||
if(shock_stage == 61)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("<b>[src.name]'s</b> body becomes limp.", 1)
|
||||
Stun(20)
|
||||
lying = 1
|
||||
disease_symptoms |= DISEASE_WHISPER
|
||||
|
||||
|
||||
|
||||
if ((istype(loc, /turf/space) && !( locate(/obj/movable, loc) )))
|
||||
var/layers = 20
|
||||
// ******* Check
|
||||
if (((istype(head, /obj/item/clothing/head) && head.flags & 4) || (istype(wear_mask, /obj/item/clothing/mask) && (!( wear_mask.flags & 4 ) && wear_mask.flags & 8))))
|
||||
layers -= 5
|
||||
if (istype(w_uniform, /obj/item/clothing/under))
|
||||
layers -= 5
|
||||
if ((istype(wear_suit, /obj/item/clothing/suit) && wear_suit.flags & 8))
|
||||
layers -= 10
|
||||
if (layers > oxcheck)
|
||||
oxcheck = layers
|
||||
|
||||
|
||||
if(bodytemperature < 282.591 && (!firemut))
|
||||
if(bodytemperature < 250)
|
||||
adjustFireLoss(4)
|
||||
updatehealth()
|
||||
if(paralysis <= 2) paralysis += 2
|
||||
else if(prob(1) && !paralysis)
|
||||
if(paralysis <= 5) paralysis += 5
|
||||
emote("collapse")
|
||||
src << "\red You collapse from the cold!"
|
||||
if(bodytemperature > 327.444 && (!firemut))
|
||||
if(bodytemperature > 345.444)
|
||||
if(!eye_blurry) src << "\red The heat blurs your vision!"
|
||||
eye_blurry = max(4, eye_blurry)
|
||||
if(prob(3)) adjustFireLoss(rand(1,2))
|
||||
else if(prob(3) && !paralysis)
|
||||
paralysis += 2
|
||||
emote("collapse")
|
||||
src << "\red You collapse from heat exaustion!"
|
||||
plcheck = t_plasma
|
||||
oxcheck = t_oxygen
|
||||
G.turf_add(T, G.total_moles())
|
||||
*/
|
||||
if (shock_stage > 70) if(shock_stage % 30 == 0)
|
||||
Paralyse(rand(15,28))
|
||||
if(shock_stage >= 30)
|
||||
if(shock_stage == 30) emote("me",1,"is having trouble keeping their eyes open.")
|
||||
eye_blurry = max(2, eye_blurry)
|
||||
stuttering = max(stuttering, 5)
|
||||
bodytemperature = 313.15 // high fever
|
||||
// pain messages
|
||||
if(shock_stage == 10)
|
||||
src << "<font color='red'><b>"+pick("It hurts so much!", "You really need some painkillers..", "Dear god, the pain!")
|
||||
else if(shock_stage == 40)
|
||||
src << "<font color='red'><b>"+pick("The pain is excrutiating!", "Please, just end the pain!", "Your whole body is going numb!")
|
||||
else if(shock_stage == 80)
|
||||
src << "<font color='red'><b>"+pick("You see a light at the end of the tunnel!", "You feel like you could die any moment now.", "You're about to lose consciousness.")
|
||||
18
code/modules/mob/living/carbon/shock.dm
Normal file
18
code/modules/mob/living/carbon/shock.dm
Normal file
@@ -0,0 +1,18 @@
|
||||
/mob/living/carbon/var/traumatic_shock = 0
|
||||
/mob/living/carbon/var/shock_stage = 0
|
||||
|
||||
// proc to find out in how much pain the mob is at the moment
|
||||
/mob/living/carbon/proc/updateshock()
|
||||
src.traumatic_shock = src.getOxyLoss() + src.getToxLoss() + src.getFireLoss() + 1.2*src.getBruteLoss() + 2*src.getCloneLoss()
|
||||
if(reagents.has_reagent("alkysine"))
|
||||
src.traumatic_shock -= 10
|
||||
if(reagents.has_reagent("inaprovaline"))
|
||||
src.traumatic_shock -= 15
|
||||
if(reagents.has_reagent("synaptizine"))
|
||||
src.traumatic_shock -= 50
|
||||
|
||||
return src.traumatic_shock
|
||||
|
||||
|
||||
/mob/living/carbon/proc/handle_shock()
|
||||
updateshock()
|
||||
Reference in New Issue
Block a user