mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-09 06:04:23 +01:00
Merge branch 'master' of https://github.com/ZomgPonies/Paradise
This commit is contained in:
@@ -322,4 +322,16 @@
|
||||
desc = " A purple beret, with a small golden crescent moon sewn onto it."
|
||||
icon_state = "purpleberet"
|
||||
item_state = "purpleberet"
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/beret/centcom/officer
|
||||
name = "officers beret"
|
||||
desc = "A black beret adorned with the shield—a silver kite shield with an engraved sword—of the NanoTrasen security forces, announcing to the world that the wearer is a defender of NanoTrasen."
|
||||
icon_state = "centcomofficerberet"
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/beret/centcom/captain
|
||||
name = "captains beret"
|
||||
desc = "A white beret adorned with the shield—a cobalt kite shield with an engraved sword—of the NanoTrasen security forces, worn only by those captaining a vessel of the NanoTrasen Navy."
|
||||
icon_state = "centcomcaptain"
|
||||
flags = FPRINT | TABLEPASS
|
||||
@@ -143,3 +143,8 @@
|
||||
icon_state = "roman"
|
||||
item_state = "roman"
|
||||
species_restricted = null
|
||||
|
||||
/obj/item/clothing/shoes/centcom
|
||||
name = "dress shoes"
|
||||
desc = "They appear impeccably polished."
|
||||
icon_state = "laceups"
|
||||
@@ -371,7 +371,7 @@
|
||||
..(user)
|
||||
else
|
||||
camera = new /obj/machinery/camera(src)
|
||||
camera.network = list("NUKE")
|
||||
camera.network = list("NukeOps")
|
||||
cameranet.removeCamera(camera)
|
||||
camera.c_tag = user.name
|
||||
user << "\blue User scanned as [camera.c_tag]. Camera activated."
|
||||
@@ -472,3 +472,21 @@
|
||||
item_state = "atmos_hardsuit"
|
||||
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 50)
|
||||
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
|
||||
//Singuloth armor
|
||||
/obj/item/clothing/head/helmet/space/rig/singuloth
|
||||
name = "singuloth knight's helmet"
|
||||
desc = "This is an adamantium helmet from the chapter of the Singuloth Knights. It shines with a holy aura."
|
||||
icon_state = "rig0-singuloth"
|
||||
item_state = "singuloth_helm"
|
||||
_color = "singuloth"
|
||||
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 80)
|
||||
|
||||
/obj/item/clothing/suit/space/rig/singuloth
|
||||
icon_state = "rig-singuloth"
|
||||
name = "singuloth knight's armor"
|
||||
desc = "This is a ceremonial armor from the chapter of the Singuloth Knights. It's made of pure forged adamantium."
|
||||
item_state = "singuloth_hardsuit"
|
||||
flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE
|
||||
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 80)
|
||||
|
||||
@@ -63,6 +63,12 @@
|
||||
if("labgreen")
|
||||
src.icon_state = "labgreen_open"
|
||||
usr << "You unbutton the labcoat."
|
||||
if("labmort_open")
|
||||
src.icon_state = "labcoat_mort"
|
||||
usr << "You button up the labcoat."
|
||||
if("labgreen")
|
||||
src.icon_state = "labcoat_mort_open"
|
||||
usr << "You unbutton the labcoat."
|
||||
else
|
||||
usr << "You attempt to button-up the velcro on your [src], before promptly realising how retarded you are."
|
||||
return
|
||||
@@ -124,3 +130,12 @@
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/suit.dmi'
|
||||
)
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/mortician
|
||||
name = "Mortician Labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a black stripe on the shoulder."
|
||||
icon_state = "labcoat_mort_open"
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/suit.dmi'
|
||||
)
|
||||
|
||||
@@ -76,6 +76,32 @@
|
||||
item_state = "dg_suit"
|
||||
_color = "centcom"
|
||||
|
||||
/obj/item/clothing/under/rank/centcom/officer
|
||||
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Lieutenant Commander\" and bears \"N.C.V. Fearless CV-286\" on the left shounder."
|
||||
name = "\improper NanoTrasen Officers Uniform"
|
||||
icon_state = "officer"
|
||||
item_state = "g_suit"
|
||||
_color = "officer"
|
||||
displays_id = 0
|
||||
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
|
||||
|
||||
/obj/item/clothing/under/rank/centcom/captain
|
||||
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Captain\" and bears \"N.C.V. Fearless CV-286\" on the left shounder."
|
||||
name = "\improper NanoTrasen Captains Uniform"
|
||||
icon_state = "centcom"
|
||||
item_state = "dg_suit"
|
||||
_color = "centcom"
|
||||
displays_id = 0
|
||||
|
||||
/obj/item/clothing/under/rank/centcom/representative
|
||||
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Ensign\" and bears \"N.C.V. Fearless CV-286\" on the left shounder."
|
||||
name = "\improper NanoTrasen Navy Uniform"
|
||||
icon_state = "officer"
|
||||
item_state = "g_suit"
|
||||
_color = "officer"
|
||||
displays_id = 0
|
||||
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
|
||||
|
||||
/obj/item/clothing/under/space
|
||||
name = "\improper NASA jumpsuit"
|
||||
desc = "It has a NASA logo on it and is made of space-proofed materials."
|
||||
@@ -180,6 +206,7 @@
|
||||
item_state = "r_suit"
|
||||
_color = "red_suit"
|
||||
species_fit = list("Vox")
|
||||
flags = ONESIZEFITSALL
|
||||
|
||||
/obj/item/clothing/under/blackskirt
|
||||
name = "black skirt"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
var/list/gunk = list("water","carbon","flour","radium","toxin","cleaner","nutriment","condensedcapsaicin","psilocybin","lube",
|
||||
"plantbgone","banana","anti_toxin","space_drugs","hyperzine","holywater","ethanol","hot_coco","pacid",
|
||||
"blood","stoxin","fluorine","ryetalyn","mutagen","oxycodone","fuel","cryptobiolin",
|
||||
"impedrezene","mindbreaker","nanites","xenomicrobes","lipozine","frostoil","alchdranine","beepskysmash",
|
||||
"impedrezene","mindbreaker","nanites","xenomicrobes","lipozine","frostoil","doctorsdelight","beepskysmash",
|
||||
"tricordrazine", "amatoxin", "adminordrazine", "neurotoxin", "zombiepowder", "synaptizine")
|
||||
var/datum/reagents/R = new/datum/reagents(50)
|
||||
R.my_atom = vent
|
||||
|
||||
@@ -1684,6 +1684,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
|
||||
|
||||
if(decaytime > 18000 && decaytime <= 27000)//45 minutes for decaylevel4 -- skeleton
|
||||
decaylevel = 3
|
||||
|
||||
if(decaytime > 27000)
|
||||
decaylevel = 4
|
||||
makeSkeleton()
|
||||
@@ -1693,9 +1694,11 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
|
||||
for(var/mob/living/carbon/human/H in range(decaylevel, src))
|
||||
if(prob(5))
|
||||
if(airborne_can_reach(get_turf(src), get_turf(H)))
|
||||
if(istype(loc,/obj/item/bodybag)) return
|
||||
if(H.wear_mask && istype(H.wear_mask,/obj/item/clothing/mask/surgical)) return
|
||||
if(H.wear_mask && istype(H.wear_mask,/obj/item/clothing/mask/breath/medical)) return
|
||||
if(istype(loc,/obj/item/bodybag))
|
||||
return
|
||||
var/obj/item/clothing/mask/M = H.wear_mask
|
||||
if(M && (M.flags & MASKCOVERSMOUTH))
|
||||
return
|
||||
H << "<spawn class='warning'>You smell something foul..."
|
||||
H.vomit()
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
if (src.stat == 2)
|
||||
return src.say_dead(message)
|
||||
|
||||
if (src.stat && said_last_words) // TIME TO WHISPER WHILE IN CRIT
|
||||
if (src.stat)
|
||||
return
|
||||
|
||||
var/alt_name = ""
|
||||
@@ -31,9 +31,6 @@
|
||||
if (src.sdisabilities & MUTE)
|
||||
return
|
||||
|
||||
if(M_WHISPER in src.mutations)
|
||||
src.say(message)
|
||||
|
||||
if (istype(src.wear_mask, /obj/item/clothing/mask/muzzle))
|
||||
return
|
||||
|
||||
@@ -52,12 +49,12 @@
|
||||
temp_message[H] = ninjaspeak(temp_message[H])
|
||||
pick_list -= H
|
||||
message = list2text(temp_message, " ")
|
||||
message = replacetext(message, "o", "¤")
|
||||
message = replacetext(message, "p", "þ")
|
||||
message = replacetext(message, "l", "£")
|
||||
message = replacetext(message, "s", "§")
|
||||
message = replacetext(message, "u", "µ")
|
||||
message = replacetext(message, "b", "ß")
|
||||
message = replacetext(message, "o", "?")
|
||||
message = replacetext(message, "p", "?")
|
||||
message = replacetext(message, "l", "?")
|
||||
message = replacetext(message, "s", "?")
|
||||
message = replacetext(message, "u", "?")
|
||||
message = replacetext(message, "b", "?")
|
||||
|
||||
if (src.stuttering)
|
||||
message = stutter(message)
|
||||
@@ -87,11 +84,6 @@
|
||||
|
||||
var/list/heard_a = list() // understood us
|
||||
var/list/heard_b = list() // didn't understand us
|
||||
var/and_passes_on=""
|
||||
if(!said_last_words && src.isInCrit())
|
||||
and_passes_on=" - and passes on"
|
||||
said_last_words=src.stat
|
||||
|
||||
|
||||
for (var/mob/M in listening)
|
||||
if (M.say_understands(src))
|
||||
@@ -103,9 +95,9 @@
|
||||
|
||||
for (var/mob/M in watching)
|
||||
if (M.say_understands(src))
|
||||
rendered = "<span class='game say'><span class='name'>[src.name]</span> whispers something[and_passes_on].</span>"
|
||||
rendered = "<span class='game say'><span class='name'>[src.name]</span> whispers something.</span>"
|
||||
else
|
||||
rendered = "<span class='game say'><span class='name'>[src.voice_name]</span> whispers something[and_passes_on].</span>"
|
||||
rendered = "<span class='game say'><span class='name'>[src.voice_name]</span> whispers something.</span>"
|
||||
M.show_message(rendered, 2)
|
||||
|
||||
if (length(heard_a))
|
||||
@@ -114,7 +106,8 @@
|
||||
if (italics)
|
||||
message_a = "<i>[message_a]</i>"
|
||||
//This appears copied from carbon/living say.dm so the istype check for mob is probably not needed. Appending for src is also not needed as the game will check that automatically.
|
||||
rendered = "<span class='game say'><span class='name'>[GetVoice()]</span>[alt_name] whispers, <span class='message'>\"[message_a]\"</span>[and_passes_on]</span>"
|
||||
rendered = "<span class='game say'><span class='name'>[GetVoice()]</span>[alt_name] whispers, <span class='message'>\"[message_a]\"</span></span>"
|
||||
|
||||
for (var/mob/M in heard_a)
|
||||
M.show_message(rendered, 2)
|
||||
|
||||
@@ -126,7 +119,7 @@
|
||||
if (italics)
|
||||
message_b = "<i>[message_b]</i>"
|
||||
|
||||
rendered = "<span class='game say'><span class='name'>[src.voice_name]</span> whispers, <span class='message'>\"[message_b]\"</span>[and_passes_on]</span>"
|
||||
rendered = "<span class='game say'><span class='name'>[src.voice_name]</span> whispers, <span class='message'>\"[message_b]\"</span></span>"
|
||||
|
||||
for (var/mob/M in heard_b)
|
||||
M.show_message(rendered, 2)
|
||||
@@ -135,23 +128,18 @@
|
||||
if (M.say_understands(src))
|
||||
var/message_c
|
||||
message_c = stars(message)
|
||||
rendered = "<span class='game say'><span class='name'>[GetVoice()]</span>[alt_name] whispers, <span class='message'>\"[message_c]\"</span>[and_passes_on]</span>"
|
||||
rendered = "<span class='game say'><span class='name'>[GetVoice()]</span>[alt_name] whispers, <span class='message'>\"[message_c]\"</span></span>"
|
||||
M.show_message(rendered, 2)
|
||||
else
|
||||
rendered = "<span class='game say'><span class='name'>[src.voice_name]</span> whispers something[and_passes_on].</span>"
|
||||
rendered = "<span class='game say'><span class='name'>[src.voice_name]</span> whispers something.</span>"
|
||||
M.show_message(rendered, 2)
|
||||
|
||||
if (italics)
|
||||
message = "<i>[message]</i>"
|
||||
rendered = "<span class='game say'><span class='name'>[GetVoice()]</span>[alt_name] whispers, <span class='message'>\"[message]\"</span>[and_passes_on]</span>"
|
||||
rendered = "<span class='game say'><span class='name'>[GetVoice()]</span>[alt_name] whispers, <span class='message'>\"[message]\"</span></span>"
|
||||
|
||||
for (var/mob/M in dead_mob_list)
|
||||
if (!(M.client))
|
||||
continue
|
||||
if (M.stat > 1 && !(M in heard_a) && (M.client.prefs.toggles & CHAT_GHOSTEARS))
|
||||
M.show_message(rendered, 2)
|
||||
if(said_last_words)
|
||||
src.stat = 2
|
||||
src.death(0)
|
||||
src.regenerate_icons()
|
||||
|
||||
|
||||
@@ -84,5 +84,6 @@
|
||||
icon_living = "Syndicat"
|
||||
icon_dead = "Syndicat_dead"
|
||||
gender = FEMALE
|
||||
flags = IS_SYNTHETIC|NO_BREATHE
|
||||
var/turns_since_scan = 0
|
||||
var/mob/living/simple_animal/mouse/movement_target
|
||||
@@ -153,6 +153,6 @@
|
||||
for(counter=0, counter<=powerlevel, counter++)
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/S = new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc)
|
||||
S.reagents.add_reagent("mushroomhallucinogen", powerlevel)
|
||||
S.reagents.add_reagent("alchdranine", powerlevel)
|
||||
S.reagents.add_reagent("doctorsdelight", powerlevel)
|
||||
S.reagents.add_reagent("synaptizine", powerlevel)
|
||||
del(src)
|
||||
@@ -161,7 +161,7 @@
|
||||
|
||||
if( abs(Environment.temperature - bodytemperature) > 40 )
|
||||
bodytemperature += ((Environment.temperature - bodytemperature) / 5)
|
||||
|
||||
|
||||
if(min_oxy)
|
||||
if(Environment.oxygen < min_oxy)
|
||||
atmos_suitable = 0
|
||||
@@ -186,7 +186,9 @@
|
||||
if(max_co2)
|
||||
if(Environment.carbon_dioxide > max_co2)
|
||||
atmos_suitable = 0
|
||||
|
||||
if(flags & NO_BREATHE || flags & IS_SYNTHETIC)
|
||||
atmos_suitable = 1
|
||||
|
||||
//Atmos effect
|
||||
if(bodytemperature < minbodytemp)
|
||||
adjustBruteLoss(cold_damage_per_tick)
|
||||
|
||||
@@ -196,6 +196,8 @@ var/list/slot_equipment_priority = list( \
|
||||
if(!istype(W)) return 0
|
||||
|
||||
for(var/slot in slot_equipment_priority)
|
||||
if(istype(W,/obj/item/weapon/storage/) && slot == slot_head) // Storage items should be put on the belt before the head
|
||||
continue
|
||||
if(equip_to_slot_if_possible(W, slot, 0, 1, 1)) //del_on_fail = 0; disable_warning = 0; redraw_mob = 1
|
||||
return 1
|
||||
|
||||
|
||||
@@ -529,6 +529,27 @@ datum/preferences
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-vir"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
if(PSYCHIATRIST)
|
||||
clothes_s = new /icon(uniform_dmi, "psych_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
if(PARAMEDIC)
|
||||
clothes_s = new /icon(uniform_dmi, "paramedic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigoff"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/head.dmi', "bluesoft"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "medicalpack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-med"), ICON_OVERLAY)
|
||||
if(ROBOTICIST)
|
||||
clothes_s = new /icon(uniform_dmi, "robotics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
@@ -676,7 +697,98 @@ datum/preferences
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
|
||||
else if(backbag == 3 || backbag == 4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
|
||||
else if(job_karma_high)
|
||||
switch(job_karma_high)
|
||||
if(MECHANIC)
|
||||
clothes_s = new /icon(uniform_dmi, "mechanic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/head.dmi', "hardhat0_yellow"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "engiepack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-eng"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
if(CUSTOMS)
|
||||
clothes_s = new /icon(uniform_dmi, "milohachert_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/head.dmi', "customshelm"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-sec"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
if(PILOT)
|
||||
clothes_s = new /icon(uniform_dmi, "secred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bomber"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-sec"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
if(BRIGDOC)
|
||||
clothes_s = new /icon(uniform_dmi, "medical_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "fr_jacket_open"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "medicalpack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-med"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
if(NANO)
|
||||
clothes_s = new /icon(uniform_dmi, "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
if(NANOREC)
|
||||
clothes_s = new /icon(uniform_dmi, "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
if(BLUESHIELD)
|
||||
clothes_s = new /icon(uniform_dmi, "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "deus_blueshield"), ICON_OVERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
if(JUDGE)
|
||||
clothes_s = new /icon(uniform_dmi, "really_black_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/head.dmi', "mercy_hood"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "judge"), ICON_UNDERLAY)
|
||||
switch(backbag)
|
||||
if(2)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY)
|
||||
if(3)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY)
|
||||
if(4)
|
||||
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
|
||||
|
||||
if(disabilities & NEARSIGHTED)
|
||||
preview_icon.Blend(new /icon('icons/mob/eyes.dmi', "glasses"), ICON_OVERLAY)
|
||||
|
||||
|
||||
@@ -1717,8 +1717,6 @@ datum
|
||||
description = "Alchdranine is an extremely strange chemical substance that can be used to treat almost any injury with a high level of effectiveness "
|
||||
reagent_state = LIQUID
|
||||
color = "#07a4d1" // rgb: 7, 164, 209
|
||||
toxod = OVERDOSE/3
|
||||
burnod = OVERDOSE/3
|
||||
|
||||
on_mob_life(var/mob/living/M as mob, var/alien)
|
||||
if(M.stat == 2.0)
|
||||
@@ -1913,6 +1911,21 @@ datum
|
||||
..()
|
||||
return
|
||||
|
||||
inacusiate
|
||||
name = "Inacusiate"
|
||||
id = "inacusiate"
|
||||
description = "Heals ear damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#6600FF" // rgb: 100, 165, 255
|
||||
toxod = OVERDOSE
|
||||
scannable = 1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.ear_damage = 0
|
||||
M.ear_deaf = 0
|
||||
..()
|
||||
return
|
||||
|
||||
peridaxon
|
||||
name = "Peridaxon"
|
||||
@@ -1986,9 +1999,9 @@ datum
|
||||
if(!M) M = holder.my_atom
|
||||
if(M.bodytemperature < 170)
|
||||
M.adjustCloneLoss(-1)
|
||||
M.adjustOxyLoss(-2)
|
||||
M.heal_organ_damage(2,2)
|
||||
M.adjustToxLoss(-2)
|
||||
M.adjustOxyLoss(-3)
|
||||
M.heal_organ_damage(3,3)
|
||||
M.adjustToxLoss(-3)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -2003,7 +2016,11 @@ datum
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(M.bodytemperature < 170)
|
||||
M.adjustCloneLoss(-4)
|
||||
M.adjustCloneLoss(-3)
|
||||
M.adjustOxyLoss(-3)
|
||||
M.heal_organ_damage(3,3)
|
||||
M.adjustToxLoss(-3)
|
||||
M.status_flags &= ~DISFIGURED
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -2272,6 +2289,7 @@ datum
|
||||
M.drowsyness = 0
|
||||
M.stuttering = 0
|
||||
M.confused = 0
|
||||
M.reagents.remove_all_type(/datum/reagent/ethanol, 1*REM, 0, 1)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -2309,9 +2327,9 @@ datum
|
||||
M.sleeping += 1
|
||||
if(51 to INFINITY)
|
||||
M.sleeping += 1
|
||||
M:toxloss += (data - 50)
|
||||
M.adjustToxLoss((data - 50)*REM)
|
||||
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
|
||||
..()
|
||||
|
||||
return
|
||||
|
||||
beer2 //copypasta of chloral hydrate, disguised as normal beer for use by emagged brobots
|
||||
@@ -2515,27 +2533,37 @@ datum
|
||||
return
|
||||
else if ( mouth_covered ) // Reduced effects if partially protected
|
||||
victim << "\red Your [safe_thing] protect you from most of the pepperspray!"
|
||||
victim.eye_blurry = max(M.eye_blurry, 15)
|
||||
victim.eye_blind = max(M.eye_blind, 5)
|
||||
victim.Stun(5)
|
||||
victim.Weaken(5)
|
||||
//victim.Paralyse(10)
|
||||
//victim.drop_item()
|
||||
if(prob(5))
|
||||
victim.emote("scream")
|
||||
victim.eye_blurry = max(M.eye_blurry, 3)
|
||||
victim.eye_blind = max(M.eye_blind, 1)
|
||||
victim.confused = max(M.confused, 3)
|
||||
victim.damageoverlaytemp = 60
|
||||
victim.Weaken(3)
|
||||
victim.drop_item()
|
||||
return
|
||||
else if ( eyes_covered ) // Eye cover is better than mouth cover
|
||||
victim << "\red Your [safe_thing] protects your eyes from the pepperspray!"
|
||||
victim.emote("scream")
|
||||
victim.eye_blurry = max(M.eye_blurry, 5)
|
||||
victim.eye_blurry = max(M.eye_blurry, 3)
|
||||
victim.damageoverlaytemp = 30
|
||||
return
|
||||
else // Oh dear :D
|
||||
victim.emote("scream")
|
||||
if(prob(5))
|
||||
victim.emote("scream")
|
||||
victim << "\red You're sprayed directly in the eyes with pepperspray!"
|
||||
victim.eye_blurry = max(M.eye_blurry, 25)
|
||||
victim.eye_blind = max(M.eye_blind, 10)
|
||||
victim.Stun(5)
|
||||
victim.eye_blurry = max(M.eye_blurry, 5)
|
||||
victim.eye_blind = max(M.eye_blind, 2)
|
||||
victim.confused = max(M.confused, 6)
|
||||
victim.damageoverlaytemp = 75
|
||||
victim.Weaken(5)
|
||||
//victim.Paralyse(10)
|
||||
//victim.drop_item()
|
||||
victim.drop_item()
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(5))
|
||||
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!")]</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
frostoil
|
||||
name = "Frost Oil"
|
||||
@@ -2917,7 +2945,7 @@ datum
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1*REM)
|
||||
if(M.getOxyLoss() && prob(30)) M.adjustOxyLoss(-1*REM)
|
||||
return
|
||||
|
||||
tomatojuice
|
||||
@@ -2967,15 +2995,16 @@ datum
|
||||
id = "doctorsdelight"
|
||||
description = "A gulp a day keeps the MediBot away. That's probably for the best."
|
||||
reagent_state = LIQUID
|
||||
nutriment_factor = 1 * FOOD_METABOLISM
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
color = "#FF8CFF" // rgb: 255, 140, 255
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
M:nutrition += nutriment_factor
|
||||
holder.remove_reagent(src.id, FOOD_METABOLISM)
|
||||
if(!M) M = holder.my_atom
|
||||
if(M:getToxLoss() && prob(80)) M:adjustToxLoss(-1)
|
||||
|
||||
if(M.getOxyLoss() && prob(80)) M.adjustOxyLoss(-2)
|
||||
if(M.getBruteLoss() && prob(80)) M.heal_organ_damage(2,0)
|
||||
if(M.getFireLoss() && prob(80)) M.heal_organ_damage(0,2)
|
||||
if(M.getToxLoss() && prob(80)) M.adjustToxLoss(-2)
|
||||
if(M.dizziness !=0) M.dizziness = max(0,M.dizziness-15)
|
||||
if(M.confused !=0) M.confused = max(0,M.confused - 5)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -3014,11 +3043,31 @@ datum
|
||||
description = "The raw essence of a banana."
|
||||
color = "#863333" // rgb: 175, 175, 0
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
M.nutrition += nutriment_factor
|
||||
if(istype(M, /mob/living/carbon/human) && M.job in list("Clown"))
|
||||
if(!M) M = holder.my_atom
|
||||
M.heal_organ_damage(1,1)
|
||||
M.nutrition += nutriment_factor
|
||||
..()
|
||||
return
|
||||
..()
|
||||
|
||||
nothing
|
||||
name = "Nothing"
|
||||
id = "nothing"
|
||||
description = "Absolutely nothing."
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
M.nutrition += nutriment_factor
|
||||
if(istype(M, /mob/living/carbon/human) && M.job in list("Mime"))
|
||||
if(!M) M = holder.my_atom
|
||||
M.heal_organ_damage(1,1)
|
||||
M.nutrition += nutriment_factor
|
||||
..()
|
||||
return
|
||||
..()
|
||||
|
||||
potato_juice
|
||||
name = "Potato Juice"
|
||||
id = "potato"
|
||||
@@ -3938,6 +3987,16 @@ datum
|
||||
nutriment_factor = 1 * FOOD_METABOLISM
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
M.nutrition += nutriment_factor
|
||||
if(istype(M, /mob/living/carbon/human) && M.job in list("Clown"))
|
||||
if(!M) M = holder.my_atom
|
||||
M.heal_organ_damage(1,1)
|
||||
M.nutrition += nutriment_factor
|
||||
..()
|
||||
return
|
||||
..()
|
||||
|
||||
silencer
|
||||
name = "Silencer"
|
||||
id = "silencer"
|
||||
@@ -3945,6 +4004,16 @@ datum
|
||||
nutriment_factor = 1 * FOOD_METABOLISM
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
M.nutrition += nutriment_factor
|
||||
if(istype(M, /mob/living/carbon/human) && M.job in list("Mime"))
|
||||
if(!M) M = holder.my_atom
|
||||
M.heal_organ_damage(1,1)
|
||||
M.nutrition += nutriment_factor
|
||||
..()
|
||||
return
|
||||
..()
|
||||
|
||||
changelingsting
|
||||
name = "Changeling Sting"
|
||||
id = "changelingsting"
|
||||
|
||||
@@ -319,6 +319,13 @@ datum
|
||||
required_reagents = list("carbon" = 1, "hydrogen" = 1, "anti_toxin" = 1)
|
||||
result_amount = 2
|
||||
|
||||
inacusiate
|
||||
name = "inacusiate"
|
||||
id = "inacusiate"
|
||||
result = "inacusiate"
|
||||
required_reagents = list("water" = 1, "carbon" = 1, "anti_toxin" = 1)
|
||||
result_amount = 2
|
||||
|
||||
ethylredoxrazine
|
||||
name = "Ethylredoxrazine"
|
||||
id = "ethylredoxrazine"
|
||||
@@ -1397,6 +1404,78 @@ datum
|
||||
var/obj/effect/golem_rune/Z = new /obj/effect/golem_rune
|
||||
Z.loc = get_turf(holder.my_atom)
|
||||
Z.announce_to_ghosts()
|
||||
//Bluespace
|
||||
slimecrystal
|
||||
name = "Slime Crystal"
|
||||
id = "m_crystal"
|
||||
result = null
|
||||
required_reagents = list("blood" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/bluespace
|
||||
required_other = 1
|
||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
if(holder.my_atom)
|
||||
var/obj/item/bluespace_crystal/BC = new(get_turf(holder.my_atom))
|
||||
BC.visible_message("<span class='notice'>The [BC.name] appears out of thin air!</span>")
|
||||
//Cerulean
|
||||
slimepsteroid2
|
||||
name = "Slime Steroid 2"
|
||||
id = "m_steroid2"
|
||||
result = null
|
||||
required_reagents = list("plasma" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/cerulean
|
||||
required_other = 1
|
||||
on_reaction(var/datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
var/obj/item/weapon/slimesteroid2/P = new /obj/item/weapon/slimesteroid2
|
||||
P.loc = get_turf(holder.my_atom)
|
||||
//Sepia
|
||||
slimecamera
|
||||
name = "Slime Camera"
|
||||
id = "m_camera"
|
||||
result = null
|
||||
required_reagents = list("plasma" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/sepia
|
||||
required_other = 1
|
||||
on_reaction(var/datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
var/obj/item/device/camera/P = new /obj/item/device/camera
|
||||
P.loc = get_turf(holder.my_atom)
|
||||
|
||||
|
||||
slimefilm
|
||||
name = "Slime Film"
|
||||
id = "m_film"
|
||||
result = null
|
||||
required_reagents = list("blood" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/sepia
|
||||
required_other = 1
|
||||
on_reaction(var/datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
var/obj/item/device/camera_film/P = new /obj/item/device/camera_film
|
||||
P.loc = get_turf(holder.my_atom)
|
||||
//Pyrite
|
||||
slimepaint
|
||||
name = "Slime Paint"
|
||||
id = "s_paint"
|
||||
result = null
|
||||
required_reagents = list("plasma" = 1)
|
||||
result_amount = 1
|
||||
required_container = /obj/item/slime_extract/pyrite
|
||||
required_other = 1
|
||||
on_reaction(var/datum/reagents/holder)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
var/list/paints = typesof(/obj/item/weapon/reagent_containers/glass/paint) - /obj/item/weapon/reagent_containers/glass/paint
|
||||
var/chosen = pick(paints)
|
||||
var/obj/P = new chosen
|
||||
if(P)
|
||||
P.loc = get_turf(holder.my_atom)
|
||||
|
||||
|
||||
//////////////////////////////////////////FOOD MIXTURES////////////////////////////////////
|
||||
|
||||
tofu
|
||||
@@ -1697,7 +1776,7 @@ datum
|
||||
name = "The Doctor's Delight"
|
||||
id = "doctordelight"
|
||||
result = "doctorsdelight"
|
||||
required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1)
|
||||
required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1, "tricordrazine" = 1)
|
||||
result_amount = 5
|
||||
|
||||
irish_cream
|
||||
|
||||
@@ -15,14 +15,14 @@
|
||||
var/recharge_time = 5 //Time it takes for shots to recharge (in seconds)
|
||||
|
||||
var/list/datum/reagents/reagent_list = list()
|
||||
var/list/reagent_ids = list("tricordrazine", "inaprovaline", "spaceacillin")
|
||||
var/list/reagent_ids = list("doctorsdelight", "inaprovaline", "spaceacillin")
|
||||
//var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "anti_toxin", "inaprovaline", "spaceacillin")
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/surgeon
|
||||
reagent_ids = list("bicaridine", "inaprovaline", "dexalin")
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/crisis
|
||||
reagent_ids = list("tricordrazine", "inaprovaline", "tramadol")
|
||||
reagent_ids = list("doctorsdelight", "inaprovaline", "tramadol")
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/New()
|
||||
..()
|
||||
|
||||
@@ -1276,7 +1276,7 @@
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 4)
|
||||
reagents.add_reagent("alchdranine", 5)
|
||||
reagents.add_reagent("doctorsdelight", 5)
|
||||
bitesize = 3
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato
|
||||
@@ -2205,7 +2205,7 @@
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 8)
|
||||
reagents.add_reagent("alchdranine", 5)
|
||||
reagents.add_reagent("doctorsdelight", 5)
|
||||
bitesize = 3
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/appletart
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/New() //comment this to make hypos start off empty
|
||||
..()
|
||||
reagents.add_reagent("tricordrazine", 30)
|
||||
reagents.add_reagent("doctorsdelight", 30)
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/attack(mob/M as mob, mob/user as mob)
|
||||
@@ -64,7 +64,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat/New()
|
||||
..()
|
||||
reagents.remove_reagent("tricordrazine", 30)
|
||||
reagents.remove_reagent("doctorsdelight", 30)
|
||||
reagents.add_reagent("synaptizine", 30)
|
||||
|
||||
|
||||
@@ -76,10 +76,11 @@
|
||||
amount_per_transfer_from_this = 5
|
||||
possible_transfer_amounts = list(5)
|
||||
volume = 5
|
||||
var/emagged = 0
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/New()
|
||||
..()
|
||||
reagents.remove_reagent("tricordrazine", 30)
|
||||
reagents.remove_reagent("doctorsdelight", 30)
|
||||
reagents.add_reagent("tramadol", 4)
|
||||
reagents.add_reagent("hyperzine", 1)
|
||||
update_icon()
|
||||
@@ -87,8 +88,9 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/attack(mob/M as mob, mob/user as mob)
|
||||
..()
|
||||
if(reagents.total_volume <= 0) //Prevents autoinjectors to be refilled.
|
||||
flags &= ~OPENCONTAINER
|
||||
if(!emagged)
|
||||
if(reagents.total_volume <= 0) //Prevents autoinjectors to be refilled.
|
||||
flags &= ~OPENCONTAINER
|
||||
update_icon()
|
||||
return
|
||||
|
||||
@@ -105,6 +107,13 @@
|
||||
else
|
||||
usr << "\blue It is spent."
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
|
||||
if(istype(D, /obj/item/weapon/card/emag) && !emagged)
|
||||
emagged = 1
|
||||
user << "<span class='notice'>You bypass the electronic child-safety lock on the reagent storage.</span>"
|
||||
else
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/hyperzine
|
||||
name = "emergency stimulant autoinjector"
|
||||
|
||||
@@ -207,7 +207,7 @@ datum/tech/bluespace
|
||||
name = "'Blue-space' Research"
|
||||
desc = "Research into the sub-reality known as 'blue-space'"
|
||||
id = "bluespace"
|
||||
max_level=4
|
||||
max_level=6
|
||||
|
||||
datum/tech/biotech
|
||||
name = "Biological Technology"
|
||||
|
||||
Reference in New Issue
Block a user