Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Tastyfish
2011-12-29 08:38:42 -05:00
15 changed files with 201 additions and 77 deletions

View 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

View File

@@ -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

View File

@@ -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."

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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.

View File

@@ -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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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()

View File

@@ -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
..()
..()

View File

@@ -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.")

View 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()