mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 04:27:35 +01:00
Merge branch 'master' of github.com:Baystation12/Baystation12 into TGUpdates
Conflicts: code/game/machinery/doors/airlock.dm code/game/machinery/doors/door.dm code/game/objects/transfer_valve.dm code/game/turf.dm code/modules/clothing/gloves.dm maps/tgstation.2.0.8.dmm
This commit is contained in:
@@ -513,10 +513,10 @@ obj/machinery/computer/forensic_scanning
|
||||
prints[print] = atom_fingerprints[print]
|
||||
else
|
||||
var/list/templist[4]
|
||||
templist[1] = atom_suit_fibers.Copy()
|
||||
templist[2] = atom_blood_DNA.Copy()
|
||||
templist[1] = atom_suit_fibers ? atom_suit_fibers.Copy() : null
|
||||
templist[2] = atom_blood_DNA ? atom_blood_DNA.Copy() : null
|
||||
templist[3] = atom_name
|
||||
templist[4] = atom_fingerprints.Copy()
|
||||
templist[4] = atom_fingerprints ? atom_fingerprints.Copy() : null
|
||||
misc[atom_reference] = templist //Store it!
|
||||
//Has prints.
|
||||
if(atom_fingerprints)
|
||||
@@ -560,17 +560,17 @@ obj/machinery/computer/forensic_scanning
|
||||
//It's not in there! We gotta add it.
|
||||
update_fingerprints(main_print, atom_fingerprints[main_print])
|
||||
var/list/data_point[4]
|
||||
data_point[1] = atom_fingerprints.Copy()
|
||||
data_point[2] = atom_suit_fibers.Copy()
|
||||
data_point[3] = atom_blood_DNA.Copy()
|
||||
data_point[1] = atom_fingerprints ? atom_fingerprints.Copy() : null
|
||||
data_point[2] = atom_suit_fibers ? atom_suit_fibers.Copy() : null
|
||||
data_point[3] = atom_blood_DNA ? atom_blood_DNA.Copy() : null
|
||||
data_point[4] = atom_name
|
||||
data_entry[atom_reference] = data_point
|
||||
continue
|
||||
//No print at all! New data entry, go!
|
||||
var/list/data_point[4]
|
||||
data_point[1] = atom_fingerprints.Copy()
|
||||
data_point[2] = atom_suit_fibers.Copy()
|
||||
data_point[3] = atom_blood_DNA.Copy()
|
||||
data_point[1] = atom_fingerprints ? atom_fingerprints.Copy() : null
|
||||
data_point[2] = atom_suit_fibers ? atom_suit_fibers.Copy() : null
|
||||
data_point[3] = atom_blood_DNA ? atom_blood_DNA.Copy() : null
|
||||
data_point[4] = atom_name
|
||||
var/list/new_file[2]
|
||||
new_file[1] = atom_fingerprints[main_print]
|
||||
|
||||
@@ -164,9 +164,9 @@
|
||||
blood[main_blood] = A.blood_DNA[blood]
|
||||
return 1
|
||||
var/list/sum_list[4] //Pack it back up!
|
||||
sum_list[1] = A.fingerprints.Copy()
|
||||
sum_list[2] = A.suit_fibers.Copy()
|
||||
sum_list[3] = A.blood_DNA.Copy()
|
||||
sum_list[1] = A.fingerprints ? A.fingerprints.Copy() : null
|
||||
sum_list[2] = A.suit_fibers ? A.suit_fibers.Copy() : null
|
||||
sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null
|
||||
sum_list[4] = "\The [A] in \the [get_area(A)]"
|
||||
stored["\ref [A]"] = sum_list
|
||||
return 0
|
||||
@@ -1577,6 +1577,7 @@ var/global/BSACooldown = 0
|
||||
return
|
||||
alert("Cannot make this mob a traitor! It has no mind!")
|
||||
|
||||
|
||||
if (href_list["create_object"])
|
||||
if (src.rank in list("Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master"))
|
||||
return create_object(usr)
|
||||
@@ -2343,7 +2344,6 @@ var/global/BSACooldown = 0
|
||||
dat += "<tr><td>[H]</td><td>H.dna = null</td></tr>"
|
||||
dat += "</table>"
|
||||
usr << browse(dat, "window=fingerprints;size=440x410")
|
||||
else
|
||||
if (usr)
|
||||
log_admin("[key_name(usr)] used secret [href_list["secretsadmin"]]")
|
||||
if (ok)
|
||||
@@ -2376,6 +2376,16 @@ var/global/BSACooldown = 0
|
||||
J.spawn_positions = -1
|
||||
message_admins("[key_name_admin(usr)] has removed the cap on security officers.")
|
||||
return
|
||||
|
||||
if(href_list["vsc"])
|
||||
if ((src.rank in list( "Moderator", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
if(href_list["vsc"] == "airflow")
|
||||
vsc.ChangeSettingsDialog(usr,vsc.settings)
|
||||
if(href_list["vsc"] == "plasma")
|
||||
vsc.ChangeSettingsDialog(usr,vsc.plc.settings)
|
||||
if(href_list["vsc"] == "default")
|
||||
vsc.SetDefault(usr)
|
||||
|
||||
if (href_list["rnd_max"])
|
||||
for(var/obj/machinery/computer/rdconsole/C in world)
|
||||
for(var/datum/tech/T in C.files.known_tech)
|
||||
@@ -2704,8 +2714,12 @@ var/global/BSACooldown = 0
|
||||
dat += "<A href='?src=\ref[src];create_turf=1'>Create Turf</A><br>"
|
||||
if(lvl >= 5)
|
||||
dat += "<A href='?src=\ref[src];create_mob=1'>Create Mob</A><br>"
|
||||
if(lvl >= 3 )
|
||||
dat += "<br><A href='?src=\ref[src];vsc=airflow'>Edit Airflow Settings</A><br>"
|
||||
dat += "<A href='?src=\ref[src];vsc=plasma'>Edit Plasma Settings</A><br>"
|
||||
dat += "<A href='?src=\ref[src];vsc=default'>Choose a default ZAS setting</A><br>"
|
||||
// if(lvl == 6 )
|
||||
usr << browse(dat, "window=admin2;size=210x180")
|
||||
usr << browse(dat, "window=admin2;size=210x280")
|
||||
return
|
||||
/*
|
||||
/obj/admins/proc/goons()
|
||||
|
||||
@@ -200,8 +200,8 @@
|
||||
else
|
||||
dat += "<td>No Assigned Role</td>"
|
||||
*/
|
||||
dat += {"<td>IP: [M.client.address]<br>
|
||||
CID: [M.client.computer_id]</td>
|
||||
dat += {"<td>IP: [M.client ? M.client.address : "Disconnected"]<br>
|
||||
CID: [M.client ? M.client.computer_id : "Disconnected"]</td>
|
||||
"}
|
||||
|
||||
dat += {"<td><A HREF='?src=\ref[src];player_info=[M.ckey]'>[player_has_info(M.ckey) ? "Info" : "N/A"] </A></td>
|
||||
@@ -341,7 +341,7 @@
|
||||
if(M)
|
||||
dat += "<tr><td><a href='?src=\ref[src];adminplayeropts=\ref[M]'>[M.real_name]</a>[M.client ? "" : " <i>(logged out)</i>"][M.stat == 2 ? " <b><font color=red>(DEAD)</font></b>" : ""]</td>"
|
||||
dat += "<td><A href='?src=\ref[usr];priv_msg=\ref[M]'>PM</A></td>"
|
||||
var/turf/mob_loc = get_turf_loc(M)
|
||||
var/turf/mob_loc = get_turf(M)
|
||||
dat += "<td>[mob_loc.loc]</td></tr>"
|
||||
else
|
||||
dat += "<tr><td><i>Head not found!</i></td></tr>"
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
if(new_value == null) return
|
||||
|
||||
if(variable=="luminosity")
|
||||
O.sd_SetLuminosity(new_value)
|
||||
O.ul_SetLuminosity(new_value)
|
||||
else
|
||||
O.vars[variable] = new_value
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
for(var/mob/M in world)
|
||||
if ( istype(M , O.type) )
|
||||
if(variable=="luminosity")
|
||||
M.sd_SetLuminosity(new_value)
|
||||
M.ul_SetLuminosity(new_value)
|
||||
else
|
||||
M.vars[variable] = O.vars[variable]
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
for(var/obj/A in world)
|
||||
if ( istype(A , O.type) )
|
||||
if(variable=="luminosity")
|
||||
A.sd_SetLuminosity(new_value)
|
||||
A.ul_SetLuminosity(new_value)
|
||||
else
|
||||
A.vars[variable] = O.vars[variable]
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
for(var/turf/A in world)
|
||||
if ( istype(A , O.type) )
|
||||
if(variable=="luminosity")
|
||||
A.sd_SetLuminosity(new_value)
|
||||
A.ul_SetLuminosity(new_value)
|
||||
else
|
||||
A.vars[variable] = O.vars[variable]
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
for(var/mob/M in world)
|
||||
if (M.type == O.type)
|
||||
if(variable=="luminosity")
|
||||
M.sd_SetLuminosity(new_value)
|
||||
M.ul_SetLuminosity(new_value)
|
||||
else
|
||||
M.vars[variable] = O.vars[variable]
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
for(var/obj/A in world)
|
||||
if (A.type == O.type)
|
||||
if(variable=="luminosity")
|
||||
A.sd_SetLuminosity(new_value)
|
||||
A.ul_SetLuminosity(new_value)
|
||||
else
|
||||
A.vars[variable] = O.vars[variable]
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
for(var/turf/A in world)
|
||||
if (A.type == O.type)
|
||||
if(variable=="luminosity")
|
||||
A.sd_SetLuminosity(new_value)
|
||||
A.ul_SetLuminosity(new_value)
|
||||
else
|
||||
A.vars[variable] = O.vars[variable]
|
||||
|
||||
|
||||
@@ -531,7 +531,7 @@ var/list/forbidden_varedit_object_types = list(
|
||||
if(variable=="luminosity")
|
||||
var/var_new = input("Enter new number:","Num",O.vars[variable]) as null|num
|
||||
if(var_new == null) return
|
||||
O.sd_SetLuminosity(var_new)
|
||||
O.ul_SetLuminosity(var_new)
|
||||
else
|
||||
var/var_new = input("Enter new number:","Num",O.vars[variable]) as null|num
|
||||
if(var_new==null) return
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
if(src.holder.rank == "Game Master" || src.holder.rank == "Game Admin")
|
||||
log_admin("[key_name(src)] played a local sound [S]")
|
||||
message_admins("[key_name_admin(src)] played a local sound [S]", 1)
|
||||
playsound(get_turf_loc(src.mob), S, 50, 0, 0)
|
||||
playsound(get_turf(src.mob), S, 50, 0, 0)
|
||||
return
|
||||
//feedback_add_details("admin_verb","PLS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
@@ -389,7 +389,7 @@ datum
|
||||
// if(50 to INFINITY)
|
||||
// M:adjustToxLoss(0.1)
|
||||
data++
|
||||
holder.remove_reagent(src.id, 0.1)
|
||||
holder.remove_reagent(src.id, 0.04)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -1819,14 +1819,15 @@ datum
|
||||
if(!data) data = 1
|
||||
data++
|
||||
switch(data)
|
||||
if(1)
|
||||
if(10)
|
||||
M:confused += 2
|
||||
M:drowsyness += 2
|
||||
if(2 to 50)
|
||||
if(11 to 50)
|
||||
M:sleeping += 5
|
||||
if(51 to INFINITY)
|
||||
M:sleeping += 5
|
||||
M:adjustToxLoss(2)
|
||||
holder.remove_reagent(src.id, 0.04)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -2749,12 +2750,47 @@ datum
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
dizzy_adj = 3
|
||||
|
||||
absinthe
|
||||
name = "Absinthe"
|
||||
id = "absinthe"
|
||||
description = "Watch out that the Green Fairy doesn't come for you!"
|
||||
color = "#33EE00" // rgb: lots, ??, ??
|
||||
dizzy_adj = 5
|
||||
slur_start = 25
|
||||
confused_start = 100
|
||||
|
||||
//copy paste from LSD... shoot me
|
||||
on_mob_life(var/mob/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if(!data) data = 1
|
||||
data++
|
||||
M:hallucination += 5
|
||||
if(volume > REAGENTS_OVERDOSE)
|
||||
M:adjustToxLoss(1)
|
||||
// if(data >= 100)
|
||||
// M:adjustToxLoss(0.1)
|
||||
..()
|
||||
return
|
||||
|
||||
rum
|
||||
name = "Rum"
|
||||
id = "rum"
|
||||
description = "Yohoho and all that."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
|
||||
deadrum
|
||||
name = "Deadrum"
|
||||
id = "rum"
|
||||
description = "Popular with the sailors. Not very popular with everyone else."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
M.dizziness +=5
|
||||
if(volume > REAGENTS_OVERDOSE)
|
||||
M:adjustToxLoss(1)
|
||||
return
|
||||
|
||||
vodka
|
||||
name = "Vodka"
|
||||
id = "vodka"
|
||||
|
||||
@@ -684,8 +684,8 @@ datum
|
||||
if(chosen)
|
||||
// Calculate previous position for transition
|
||||
|
||||
var/turf/FROM = get_turf_loc(holder.my_atom) // the turf of origin we're travelling FROM
|
||||
var/turf/TO = get_turf_loc(chosen) // the turf of origin we're travelling TO
|
||||
var/turf/FROM = get_turf(holder.my_atom) // the turf of origin we're travelling FROM
|
||||
var/turf/TO = get_turf(chosen) // the turf of origin we're travelling TO
|
||||
|
||||
playsound(TO, 'phasein.ogg', 100, 1)
|
||||
|
||||
@@ -733,16 +733,16 @@ datum
|
||||
|
||||
var/list/critters = typesof(/obj/effect/critter) - /obj/effect/critter // list of possible critters
|
||||
|
||||
playsound(get_turf_loc(holder.my_atom), 'phasein.ogg', 100, 1)
|
||||
playsound(get_turf(holder.my_atom), 'phasein.ogg', 100, 1)
|
||||
|
||||
for(var/mob/living/carbon/human/M in viewers(get_turf_loc(holder.my_atom), null))
|
||||
for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null))
|
||||
if(M:eyecheck() <= 0)
|
||||
flick("e_flash", M.flash)
|
||||
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
var/chosen = pick(critters)
|
||||
var/obj/effect/critter/C = new chosen
|
||||
C.loc = get_turf_loc(holder.my_atom)
|
||||
C.loc = get_turf(holder.my_atom)
|
||||
if(prob(50))
|
||||
for(var/j = 1, j <= rand(1, 3), j++)
|
||||
step(C, pick(NORTH,SOUTH,EAST,WEST))
|
||||
@@ -759,9 +759,9 @@ datum
|
||||
var/list/borks = typesof(/obj/item/weapon/reagent_containers/food/snacks) - /obj/item/weapon/reagent_containers/food/snacks
|
||||
// BORK BORK BORK
|
||||
|
||||
playsound(get_turf_loc(holder.my_atom), 'phasein.ogg', 100, 1)
|
||||
playsound(get_turf(holder.my_atom), 'phasein.ogg', 100, 1)
|
||||
|
||||
for(var/mob/living/carbon/human/M in viewers(get_turf_loc(holder.my_atom), null))
|
||||
for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null))
|
||||
if(M:eyecheck() <= 0)
|
||||
flick("e_flash", M.flash)
|
||||
|
||||
@@ -769,7 +769,7 @@ datum
|
||||
var/chosen = pick(borks)
|
||||
var/obj/B = new chosen
|
||||
if(B)
|
||||
B.loc = get_turf_loc(holder.my_atom)
|
||||
B.loc = get_turf(holder.my_atom)
|
||||
if(prob(50))
|
||||
for(var/j = 1, j <= rand(1, 3), j++)
|
||||
step(B, pick(NORTH,SOUTH,EAST,WEST))
|
||||
|
||||
@@ -3009,6 +3009,14 @@
|
||||
..()
|
||||
reagents.add_reagent("rum", 100)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/deadrum
|
||||
name = "Deadrum Bumbo"
|
||||
desc = "Tastes a lot sweeter than ordinary rum (that's to help disguise the kick)."
|
||||
icon_state = "deadrumbottle"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("deadrum", 100)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater
|
||||
name = "Flask of Holy Water"
|
||||
desc = "A flask of the chaplain's holy water."
|
||||
@@ -3057,6 +3065,14 @@
|
||||
..()
|
||||
reagents.add_reagent("wine", 100)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe
|
||||
name = "Jailbreaker Verte"
|
||||
desc = "Twenty-fourth century Green Fairy, one sip of this and you just know you're gonna have a good time."
|
||||
icon_state = "absinthebottle"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("absinthe", 100)
|
||||
|
||||
//////////////////////////JUICES AND STUFF ///////////////////////
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice
|
||||
@@ -3727,6 +3743,14 @@
|
||||
icon_state = "glass_brown"
|
||||
name = "Glass of bilk"
|
||||
desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
|
||||
if("absinthe")
|
||||
icon_state = "glass_green"
|
||||
name = "Glass of absinthe"
|
||||
desc = "A glass of the Green Fairy."
|
||||
if("deadrum")
|
||||
icon_state = "glass_brown"
|
||||
name = "Glass of Dead Rum"
|
||||
desc = "Dangerously sweet rum. You won't be getting scurvy any time soon!"
|
||||
else
|
||||
icon_state ="glass_brown"
|
||||
name = "Glass of ..what?"
|
||||
|
||||
+712
-712
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@
|
||||
vision_flags = BLIND
|
||||
|
||||
/obj/item/clothing/glasses/meson
|
||||
name = "Optical Meson Scanner"
|
||||
name = "optical meson scanners"
|
||||
desc = "Used for seeing walls, floors, and stuff through anything."
|
||||
icon_state = "meson"
|
||||
item_state = "glasses"
|
||||
@@ -17,13 +17,13 @@
|
||||
prescription = 1
|
||||
|
||||
/obj/item/clothing/glasses/science
|
||||
name = "Science Goggles"
|
||||
name = "science goggles"
|
||||
desc = "Used for !!SCIENCE!!"
|
||||
icon_state = "purple"
|
||||
item_state = "glasses"
|
||||
|
||||
/obj/item/clothing/glasses/night
|
||||
name = "Night Vision Goggles"
|
||||
name = "night vision goggles"
|
||||
desc = "You can totally see in the dark now!"
|
||||
icon_state = "night"
|
||||
item_state = "glasses"
|
||||
@@ -32,7 +32,7 @@
|
||||
darkness_view = 3
|
||||
|
||||
/obj/item/clothing/glasses/material
|
||||
name = "Optical Material Scanner"
|
||||
name = "optical material scanners"
|
||||
desc = "Very confusing glasses."
|
||||
icon_state = "material"
|
||||
item_state = "glasses"
|
||||
@@ -40,20 +40,20 @@
|
||||
vision_flags = SEE_OBJS
|
||||
|
||||
/obj/item/clothing/glasses/regular
|
||||
name = "Prescription Glasses"
|
||||
name = "prescription glasses"
|
||||
desc = "Made by Nerd. Co."
|
||||
icon_state = "glasses"
|
||||
item_state = "glasses"
|
||||
prescription = 1
|
||||
|
||||
/obj/item/clothing/glasses/regular/hipster
|
||||
name = "Prescription Glasses"
|
||||
name = "prescription glasses"
|
||||
desc = "Made by Uncool. Co."
|
||||
icon_state = "hipster_glasses"
|
||||
item_state = "hipster_glasses"
|
||||
|
||||
/obj/item/clothing/glasses/gglasses
|
||||
name = "Green Glasses"
|
||||
name = "green glasses"
|
||||
desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme."
|
||||
icon_state = "gglasses"
|
||||
item_state = "gglasses"
|
||||
@@ -98,20 +98,20 @@
|
||||
invisa_view = 2
|
||||
|
||||
/obj/item/clothing/glasses/thermal/monocle
|
||||
name = "Thermoncle"
|
||||
desc = "A monocle thermal."
|
||||
name = "thermoncle"
|
||||
desc = "A monocle outfitted with thermals."
|
||||
icon_state = "thermoncle"
|
||||
item_state = "glasses"
|
||||
flags = null //doesn't protect eyes because it's a monocle, duh
|
||||
|
||||
/obj/item/clothing/glasses/thermal/eyepatch
|
||||
name = "Optical Thermal Eyepatch"
|
||||
desc = "An eyepatch with built-in thermal optics"
|
||||
name = "optical thermal eyepatch"
|
||||
desc = "An eyepatch with built-in thermal optics."
|
||||
icon_state = "eyepatch"
|
||||
item_state = "eyepatch"
|
||||
|
||||
/obj/item/clothing/glasses/thermal/jensen
|
||||
name = "Optical Thermal Implants"
|
||||
desc = "A set of implantable lenses designed to augment your vision"
|
||||
name = "optical thermal implants"
|
||||
desc = "A set of implantable lenses designed to augment your vision."
|
||||
icon_state = "thermalimplants"
|
||||
item_state = "syringe_kit"
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
/obj/item/clothing/gloves/swat
|
||||
desc = "These tactical gloves are somewhat fire and impact-resistant."
|
||||
name = "\improper SWAT Gloves"
|
||||
name = "\improper SWAT gloves"
|
||||
icon_state = "black"
|
||||
item_state = "swat_gl"
|
||||
siemens_coefficient = 0
|
||||
|
||||
+153
-153
@@ -1,153 +1,153 @@
|
||||
// HATS. OH MY WHAT A FINE CHAPEAU, GOOD SIR.
|
||||
/obj/item/clothing/head
|
||||
name = "head"
|
||||
icon = 'hats.dmi'
|
||||
body_parts_covered = HEAD
|
||||
slot_flags = SLOT_HEAD
|
||||
|
||||
/obj/item/clothing/head/cakehat
|
||||
name = "cake-hat"
|
||||
desc = "It's tasty looking!"
|
||||
icon_state = "cake0"
|
||||
var/onfire = 0.0
|
||||
var/status = 0
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES
|
||||
var/fire_resist = T0C+1300 //this is the max temp it can stand before you start to cook. although it might not burn away, you take damage
|
||||
|
||||
/obj/item/clothing/head/caphat
|
||||
name = "captain's hat"
|
||||
icon_state = "captain"
|
||||
desc = "It's good being the king."
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE
|
||||
item_state = "caphat"
|
||||
|
||||
/obj/item/clothing/head/centhat
|
||||
name = "\improper CentComm. hat"
|
||||
icon_state = "centcom"
|
||||
desc = "It's good to be emperor."
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE
|
||||
item_state = "centhat"
|
||||
|
||||
/obj/item/clothing/head/deathsquad/beret
|
||||
name = "officer's beret"
|
||||
desc = "An armored beret commonly used by special operations officers."
|
||||
icon_state = "beret_badge"
|
||||
flags = FPRINT|TABLEPASS
|
||||
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
|
||||
/obj/item/clothing/head/powdered_wig
|
||||
name = "powdered wig"
|
||||
desc = "A powdered wig."
|
||||
icon_state = "pwig"
|
||||
item_state = "pwig"
|
||||
|
||||
/obj/item/clothing/head/that
|
||||
name = "top-hat"
|
||||
desc = "It's an amish looking hat."
|
||||
icon_state = "tophat"
|
||||
item_state = "that"
|
||||
flags = FPRINT|TABLEPASS
|
||||
|
||||
|
||||
/obj/item/clothing/head/chefhat
|
||||
name = "chef's hat"
|
||||
desc = "It's a hat used by chefs to keep hair out of your food. Judging by the food in the mess, they don't work."
|
||||
icon_state = "chef"
|
||||
item_state = "chef"
|
||||
desc = "The commander in chef's head wear."
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/redcoat
|
||||
name = "redcoat's hat"
|
||||
icon_state = "redcoat"
|
||||
desc = "<i>'I guess it's a redhead.'</i>"
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/mailman
|
||||
name = "mailman's hat"
|
||||
icon_state = "mailman"
|
||||
desc = "<i>'Right-on-time'</i> mail service head wear."
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/plaguedoctorhat
|
||||
name = "plague doctor's hat"
|
||||
desc = "These were once used by Plague doctors. They're pretty much useless."
|
||||
icon_state = "plaguedoctor"
|
||||
flags = FPRINT | TABLEPASS
|
||||
permeability_coefficient = 0.01
|
||||
|
||||
/obj/item/clothing/head/beret
|
||||
name = "beret"
|
||||
desc = "A beret, a mime's favorite headwear."
|
||||
icon_state = "beret"
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/chaplain_hood
|
||||
name = "chaplain's hood"
|
||||
desc = "It's hood that covers the head. It keeps you warm during the space winters."
|
||||
icon_state = "chaplain_hood"
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR
|
||||
|
||||
/obj/item/clothing/head/nun_hood
|
||||
name = "nun hood"
|
||||
desc = "Maximum piety in this star system."
|
||||
icon_state = "nun_hood"
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR
|
||||
|
||||
/obj/item/clothing/head/hasturhood
|
||||
name = "hastur's hood"
|
||||
desc = "It's unspeakably stylish"
|
||||
icon_state = "hasturhood"
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR
|
||||
|
||||
/obj/item/clothing/head/nursehat
|
||||
name = "nurse's hat"
|
||||
desc = "It allows quick identification of trained medical personnel."
|
||||
icon_state = "nursehat"
|
||||
flags = FPRINT|TABLEPASS
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/cueball
|
||||
name = "cueball helmet"
|
||||
desc = "A large, featureless white orb mean to be worn on your head. How do you even see out of this thing?"
|
||||
icon_state = "cueball"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
|
||||
item_state="cueball"
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/head/secsoft
|
||||
name = "soft cap"
|
||||
desc = "It's baseball hat in tasteful red colour."
|
||||
icon_state = "secsoft"
|
||||
flags = FPRINT|TABLEPASS|HEADCOVERSEYES
|
||||
item_state = "helmet"
|
||||
|
||||
/obj/item/clothing/head/cargosoft
|
||||
name = "cargo cap"
|
||||
desc = "It's a baseball hat in a tasteless yellow colour."
|
||||
icon_state = "cargosoft"
|
||||
flags = FPRINT|TABLEPASS|HEADCOVERSEYES
|
||||
item_state = "helmet"
|
||||
var/flipped = 0
|
||||
|
||||
|
||||
// CHUMP HELMETS: COOKING THEM DESTROYS THE CHUMP HELMET SPAWN.
|
||||
/obj/item/clothing/head/syndicatefake
|
||||
name = "red space-helmet replica"
|
||||
desc = "A plastic replica of a red space space helmet. This is a toy, it is not made for use in space!"
|
||||
icon_state = "syndicate"
|
||||
item_state = "syndicate"
|
||||
see_face = 0.0
|
||||
flags = FPRINT | TABLEPASS | BLOCKHAIR
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
||||
|
||||
/obj/item/clothing/head/helmet/cardborg
|
||||
name = "cardborg helmet"
|
||||
desc = "A helmet made out of a box."
|
||||
icon_state = "cardborg_h"
|
||||
item_state = "cardborg_h"
|
||||
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
see_face = 0.0
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
||||
// HATS. OH MY WHAT A FINE CHAPEAU, GOOD SIR.
|
||||
/obj/item/clothing/head
|
||||
name = "head"
|
||||
icon = 'hats.dmi'
|
||||
body_parts_covered = HEAD
|
||||
slot_flags = SLOT_HEAD
|
||||
|
||||
/obj/item/clothing/head/cakehat
|
||||
name = "cake hat"
|
||||
desc = "It's tasty looking!"
|
||||
icon_state = "cake0"
|
||||
var/onfire = 0.0
|
||||
var/status = 0
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES
|
||||
var/fire_resist = T0C+1300 //this is the max temp it can stand before you start to cook. although it might not burn away, you take damage
|
||||
|
||||
/obj/item/clothing/head/caphat
|
||||
name = "captain's hat"
|
||||
icon_state = "captain"
|
||||
desc = "It's good being the king."
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE
|
||||
item_state = "caphat"
|
||||
|
||||
/obj/item/clothing/head/centhat
|
||||
name = "\improper CentComm. hat"
|
||||
icon_state = "centcom"
|
||||
desc = "It's good to be emperor."
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE
|
||||
item_state = "centhat"
|
||||
|
||||
/obj/item/clothing/head/deathsquad/beret
|
||||
name = "officer's beret"
|
||||
desc = "An armored beret commonly used by special operations officers."
|
||||
icon_state = "beret_badge"
|
||||
flags = FPRINT|TABLEPASS
|
||||
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
|
||||
/obj/item/clothing/head/powdered_wig
|
||||
name = "powdered wig"
|
||||
desc = "A powdered wig."
|
||||
icon_state = "pwig"
|
||||
item_state = "pwig"
|
||||
|
||||
/obj/item/clothing/head/that
|
||||
name = "top hat"
|
||||
desc = "It's an amish looking hat."
|
||||
icon_state = "tophat"
|
||||
item_state = "that"
|
||||
flags = FPRINT|TABLEPASS
|
||||
|
||||
|
||||
/obj/item/clothing/head/chefhat
|
||||
name = "chef's hat"
|
||||
desc = "It's a hat used by chefs to keep hair out of your food. Judging by the food in the mess, they don't work."
|
||||
icon_state = "chef"
|
||||
item_state = "chef"
|
||||
//desc = "The commander in chef's head wear." //Two descriptions, wha? -Deus
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/redcoat
|
||||
name = "redcoat's hat"
|
||||
icon_state = "redcoat"
|
||||
desc = "<i>'I guess it's a redhead.'</i>"
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/mailman
|
||||
name = "mailman's hat"
|
||||
icon_state = "mailman"
|
||||
desc = "<i>'Right-on-time'</i> mail service head wear."
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/plaguedoctorhat
|
||||
name = "plague doctor's hat"
|
||||
desc = "These were once used by plague doctors. They're pretty much useless."
|
||||
icon_state = "plaguedoctor"
|
||||
flags = FPRINT | TABLEPASS
|
||||
permeability_coefficient = 0.01
|
||||
|
||||
/obj/item/clothing/head/beret
|
||||
name = "beret"
|
||||
desc = "A beret, a mime's favorite headwear."
|
||||
icon_state = "beret"
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
/obj/item/clothing/head/chaplain_hood
|
||||
name = "chaplain's hood"
|
||||
desc = "It's hood that covers the head. It keeps you warm during the space winters."
|
||||
icon_state = "chaplain_hood"
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR
|
||||
|
||||
/obj/item/clothing/head/nun_hood
|
||||
name = "nun hood"
|
||||
desc = "Maximum piety in this star system."
|
||||
icon_state = "nun_hood"
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR
|
||||
|
||||
/obj/item/clothing/head/hasturhood
|
||||
name = "hastur's hood"
|
||||
desc = "It's unspeakably stylish!"
|
||||
icon_state = "hasturhood"
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|BLOCKHAIR
|
||||
|
||||
/obj/item/clothing/head/nursehat
|
||||
name = "nurse's hat"
|
||||
desc = "It allows quick identification of trained medical personnel."
|
||||
icon_state = "nursehat"
|
||||
flags = FPRINT|TABLEPASS
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/cueball
|
||||
name = "cueball helmet"
|
||||
desc = "A large, featureless white orb mean to be worn on your head. How do you even see out of this thing?"
|
||||
icon_state = "cueball"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
|
||||
item_state="cueball"
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/head/secsoft
|
||||
name = "security cap"
|
||||
desc = "It's a baseball hat in a tasteful red colour."
|
||||
icon_state = "secsoft"
|
||||
flags = FPRINT|TABLEPASS|HEADCOVERSEYES
|
||||
item_state = "helmet"
|
||||
|
||||
/obj/item/clothing/head/cargosoft
|
||||
name = "cargo cap"
|
||||
desc = "It's a baseball hat in a tasteless yellow colour."
|
||||
icon_state = "cargosoft"
|
||||
flags = FPRINT|TABLEPASS|HEADCOVERSEYES
|
||||
item_state = "helmet"
|
||||
var/flipped = 0
|
||||
|
||||
|
||||
// CHUMP HELMETS: COOKING THEM DESTROYS THE CHUMP HELMET SPAWN.
|
||||
/obj/item/clothing/head/syndicatefake
|
||||
name = "red space helmet replica"
|
||||
desc = "A plastic replica of a red space helmet. This is a toy, it is not made for use in space!"
|
||||
icon_state = "syndicate"
|
||||
item_state = "syndicate"
|
||||
see_face = 0.0
|
||||
flags = FPRINT | TABLEPASS | BLOCKHAIR
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
||||
|
||||
/obj/item/clothing/head/helmet/cardborg
|
||||
name = "cardborg helmet"
|
||||
desc = "A helmet made out of a box."
|
||||
icon_state = "cardborg_h"
|
||||
item_state = "cardborg_h"
|
||||
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
see_face = 0.0
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
||||
|
||||
@@ -1,82 +1,82 @@
|
||||
/obj/item/clothing/head/helmet
|
||||
name = "helmet"
|
||||
desc = "Standard Security gear. Protects the head from impacts."
|
||||
icon_state = "helmet"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES
|
||||
item_state = "helmet"
|
||||
armor = list(melee = 50, bullet = 15, laser = 50,energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
protective_temperature = 500
|
||||
heat_transfer_coefficient = 0.10
|
||||
flags_inv = HIDEEARS|HIDEEYES
|
||||
|
||||
/obj/item/clothing/head/helmet/warden
|
||||
name = "warden's hat"
|
||||
desc = "It's a special helmet issued to the Warden of a securiy force. Protects the head from impacts."
|
||||
icon_state = "wardencap"
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/head/helmet/swat
|
||||
name = "\improper SWAT helmet"
|
||||
desc = "They're often used by highly trained Swat Members."
|
||||
icon_state = "swat"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | HEADCOVERSEYES
|
||||
item_state = "swat"
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
|
||||
flags_inv = HIDEEARS|HIDEEYES
|
||||
|
||||
/obj/item/clothing/head/helmet/thunderdome
|
||||
name = "\improper Thunderdome helmet"
|
||||
desc = "<i>'Let the battle commence!'</i>"
|
||||
icon_state = "thunderdome"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | HEADCOVERSEYES
|
||||
item_state = "thunderdome"
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0)
|
||||
|
||||
/obj/item/clothing/head/helmet/welding
|
||||
name = "welding helmet"
|
||||
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
|
||||
icon_state = "welding"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
see_face = 0.0
|
||||
item_state = "welding"
|
||||
protective_temperature = 1300
|
||||
m_amt = 3000
|
||||
g_amt = 1000
|
||||
var/up = 0
|
||||
armor = list(melee = 10, bullet = 5, laser = 10,energy = 5, bomb = 10, bio = 5, rad = 10)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
||||
|
||||
/obj/item/clothing/head/helmet/that
|
||||
name = "sturdy top-hat"
|
||||
desc = "It's an amish looking armored top hat."
|
||||
icon_state = "tophat"
|
||||
item_state = "that"
|
||||
flags = FPRINT|TABLEPASS
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/head/helmet/greenbandana
|
||||
name = "green bandana"
|
||||
desc = "It's a green bandana with some fine nanotech lining."
|
||||
icon_state = "greenbandana"
|
||||
item_state = "greenbandana"
|
||||
flags = FPRINT|TABLEPASS
|
||||
armor = list(melee = 5, bullet = 5, laser = 5,energy = 5, bomb = 15, bio = 15, rad = 15)
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/head/helmet/riot
|
||||
name = "riot helmet"
|
||||
desc = "It's a helmet specifically designed to protect against close range attacks."
|
||||
icon_state = "riot"
|
||||
item_state = "helmet"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES
|
||||
armor = list(melee = 82, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
|
||||
flags_inv = HIDEEARS
|
||||
|
||||
/obj/item/clothing/head/helmet/cap
|
||||
name = "captain's cap"
|
||||
desc = "You fear to wear it for the negligence it brings."
|
||||
icon_state = "capcap"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = 0
|
||||
/obj/item/clothing/head/helmet
|
||||
name = "helmet"
|
||||
desc = "Standard Security gear. Protects the head from impacts."
|
||||
icon_state = "helmet"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES
|
||||
item_state = "helmet"
|
||||
armor = list(melee = 50, bullet = 15, laser = 50,energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
protective_temperature = 500
|
||||
heat_transfer_coefficient = 0.10
|
||||
flags_inv = HIDEEARS|HIDEEYES
|
||||
|
||||
/obj/item/clothing/head/helmet/warden
|
||||
name = "warden's hat"
|
||||
desc = "It's a special hat issued to the Warden of a securiy force. Protects the head from impacts."
|
||||
icon_state = "wardencap"
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/head/helmet/swat
|
||||
name = "\improper SWAT helmet"
|
||||
desc = "They're often used by highly trained SWAT officers."
|
||||
icon_state = "swat"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | HEADCOVERSEYES
|
||||
item_state = "swat"
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
|
||||
flags_inv = HIDEEARS|HIDEEYES
|
||||
|
||||
/obj/item/clothing/head/helmet/thunderdome
|
||||
name = "\improper Thunderdome helmet"
|
||||
desc = "<i>'Let the battle commence!'</i>"
|
||||
icon_state = "thunderdome"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | HEADCOVERSEYES
|
||||
item_state = "thunderdome"
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0)
|
||||
|
||||
/obj/item/clothing/head/helmet/welding
|
||||
name = "welding helmet"
|
||||
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
|
||||
icon_state = "welding"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
see_face = 0.0
|
||||
item_state = "welding"
|
||||
protective_temperature = 1300
|
||||
m_amt = 3000
|
||||
g_amt = 1000
|
||||
var/up = 0
|
||||
armor = list(melee = 10, bullet = 5, laser = 10,energy = 5, bomb = 10, bio = 5, rad = 10)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
||||
|
||||
/obj/item/clothing/head/helmet/that
|
||||
name = "sturdy top hat"
|
||||
desc = "It's an amish looking armored top hat."
|
||||
icon_state = "tophat"
|
||||
item_state = "that"
|
||||
flags = FPRINT|TABLEPASS
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/head/helmet/greenbandana
|
||||
name = "green bandana"
|
||||
desc = "It's a green bandana with some fine nanotech lining."
|
||||
icon_state = "greenbandana"
|
||||
item_state = "greenbandana"
|
||||
flags = FPRINT|TABLEPASS
|
||||
armor = list(melee = 5, bullet = 5, laser = 5,energy = 5, bomb = 15, bio = 15, rad = 15)
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/head/helmet/riot
|
||||
name = "riot helmet"
|
||||
desc = "It's a helmet specifically designed to protect against close range attacks."
|
||||
icon_state = "riot"
|
||||
item_state = "helmet"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES
|
||||
armor = list(melee = 82, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
|
||||
flags_inv = HIDEEARS
|
||||
|
||||
/obj/item/clothing/head/helmet/cap
|
||||
name = "captain's cap"
|
||||
desc = "You fear to wear it for the negligence it brings."
|
||||
icon_state = "capcap"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = 0
|
||||
|
||||
+584
-584
File diff suppressed because it is too large
Load Diff
+179
-179
@@ -1,180 +1,180 @@
|
||||
// MASK WAS THAT MOVIE WITH THAT GUY WITH THE MESSED UP FACE. WHAT'S HIS NAME . . . JIM CARREY, I THINK.
|
||||
//why is this up here -Pete
|
||||
//also: please someone make this less terrible, why are things that work with internals not all under one parent, why why why why why whyyyyyyyyyyyyyyy
|
||||
|
||||
/obj/item/clothing/mask
|
||||
name = "mask"
|
||||
icon = 'masks.dmi'
|
||||
body_parts_covered = HEAD
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
slot_flags = SLOT_MASK
|
||||
|
||||
/obj/item/clothing/mask/breath
|
||||
desc = "A close-fitting mask that can be connected to an air supply."
|
||||
name = "breath mask"
|
||||
icon_state = "breath"
|
||||
item_state = "breath"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | MASKCOVERSMOUTH
|
||||
w_class = 2
|
||||
protective_temperature = 420
|
||||
heat_transfer_coefficient = 0.90
|
||||
gas_transfer_coefficient = 0.10
|
||||
permeability_coefficient = 0.50
|
||||
|
||||
/obj/item/clothing/mask/breath/medical
|
||||
desc = "A close-fitting sterile mask that can be connected to an air supply."
|
||||
name = "medical mask"
|
||||
icon_state = "medical"
|
||||
item_state = "medical"
|
||||
|
||||
//WHY DOES THIS EXIST
|
||||
/obj/item/clothing/mask/spiderman
|
||||
desc = "A mask of Deadpool!"
|
||||
name = "\improper Deadpool mask"
|
||||
icon_state = "spiderman"
|
||||
item_state = "spiderman"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE|HEADSPACE|MASKCOVERSMOUTH|BLOCKHAIR
|
||||
w_class = 3
|
||||
protective_temperature = 420
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
|
||||
/obj/item/clothing/mask/balaclava
|
||||
name = "balaclava"
|
||||
desc = "LOADSAMONEY"
|
||||
icon_state = "balaclava"
|
||||
item_state = "balaclava"
|
||||
see_face = 0.0
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR
|
||||
w_class = 2
|
||||
|
||||
/obj/item/clothing/mask/luchador
|
||||
name = "Luchador Mask"
|
||||
desc = "Worn by robust fighters, flying high to defeat their foes!"
|
||||
icon_state = "luchag"
|
||||
item_state = "luchag"
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR
|
||||
see_face = 0.0
|
||||
w_class = 2
|
||||
|
||||
/obj/item/clothing/mask/luchador/tecnicos
|
||||
name = "Tecnicos Mask"
|
||||
desc = "Worn by robust fighters who uphold justice and fight honorably."
|
||||
icon_state = "luchador"
|
||||
item_state = "luchador"
|
||||
|
||||
/obj/item/clothing/mask/luchador/rudos
|
||||
name = "Rudos Mask"
|
||||
desc = "Worn by robust fighters who are willing to do anything to win."
|
||||
icon_state = "luchar"
|
||||
item_state = "luchar"
|
||||
|
||||
/obj/item/clothing/mask/muzzle
|
||||
name = "muzzle"
|
||||
desc = "To stop that awful noise."
|
||||
icon_state = "muzzle"
|
||||
item_state = "muzzle"
|
||||
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH
|
||||
w_class = 2
|
||||
gas_transfer_coefficient = 0.90
|
||||
|
||||
/obj/item/clothing/mask/surgical
|
||||
name = "sterile mask"
|
||||
desc = "A sterile mask designed to help prevent the spread of diseases."
|
||||
icon_state = "sterile"
|
||||
item_state = "sterile"
|
||||
w_class = 1
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|MASKCOVERSMOUTH
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.05
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0)
|
||||
|
||||
/obj/item/clothing/mask/fakemoustache
|
||||
name = "fake moustache"
|
||||
desc = "Warning: moustache is fake."
|
||||
icon_state = "fake-moustache"
|
||||
flags = FPRINT|TABLEPASS
|
||||
see_face = 0.0 //Well, it's a disguise, of course.
|
||||
|
||||
//This now uses the alt sprites, like the emergency gasmask. -Pete
|
||||
/obj/item/clothing/mask/gas
|
||||
name = "gas mask"
|
||||
desc = "A face-covering mask that can be connected to an air supply."
|
||||
icon_state = "gas_alt"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE|MASKCOVERSMOUTH|MASKCOVERSEYES
|
||||
flags_inv = HIDEEARS|HIDEEYES
|
||||
w_class = 3.0
|
||||
see_face = 0.0
|
||||
item_state = "gas_alt"
|
||||
protective_temperature = 500
|
||||
heat_transfer_coefficient = 0.01
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
|
||||
/obj/item/clothing/mask/gas/plaguedoctor
|
||||
name = "plague doctor mask"
|
||||
desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply."
|
||||
icon_state = "plaguedoctor"
|
||||
item_state = "gas_mask"
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0)
|
||||
/*
|
||||
/obj/item/clothing/mask/gas/emergency
|
||||
name = "emergency gas mask"
|
||||
desc = "A face-covering mask that can be connected to an air supply. For use in emergencies."
|
||||
icon_state = "gas_alt"
|
||||
item_state = "gas_alt"
|
||||
*/
|
||||
/obj/item/clothing/mask/gas/swat
|
||||
name = "\improper SWAT mask"
|
||||
desc = "A close-fitting tactical mask that can be connected to an air supply."
|
||||
icon_state = "swat"
|
||||
|
||||
/obj/item/clothing/mask/gas/syndicate
|
||||
name = "syndicate mask"
|
||||
desc = "A close-fitting tactical mask that can be connected to an air supply."
|
||||
icon_state = "swat"
|
||||
|
||||
/obj/item/clothing/mask/gas/voice
|
||||
name = "gas mask"
|
||||
//desc = "A face-covering mask that can be connected to an air supply. It seems to house some odd electronics."
|
||||
var/mode = 0// 0==Scouter | 1==Night Vision | 2==Thermal | 3==Meson
|
||||
var/voice = "Unknown"
|
||||
var/vchange = 0//This didn't do anything before. It now checks if the mask has special functions/N
|
||||
origin_tech = "syndicate=4"
|
||||
|
||||
/obj/item/clothing/mask/gas/voice/space_ninja
|
||||
name = "ninja mask"
|
||||
desc = "A close-fitting mask that acts both as an air filter and a post-modern fashion statement."
|
||||
icon_state = "s-ninja"
|
||||
item_state = "s-ninja_mask"
|
||||
vchange = 1
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat
|
||||
name = "clown wig and mask"
|
||||
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
|
||||
icon_state = "clown"
|
||||
item_state = "clown_hat"
|
||||
|
||||
/obj/item/clothing/mask/gas/sexyclown
|
||||
name = "sexy-clown wig and mask"
|
||||
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
|
||||
/obj/item/clothing/mask/gas/mime
|
||||
name = "mime mask"
|
||||
desc = "The traditional mime's mask. It has an eerie facial posture."
|
||||
icon_state = "mime"
|
||||
item_state = "mime"
|
||||
|
||||
/obj/item/clothing/mask/gas/monkeymask
|
||||
name = "monkey mask"
|
||||
desc = "A mask used when acting as a monkey."
|
||||
icon_state = "monkeymask"
|
||||
item_state = "monkeymask"
|
||||
|
||||
/obj/item/clothing/mask/gas/sexymime
|
||||
name = "sexy mime mask"
|
||||
desc = "A traditional female mime's mask."
|
||||
icon_state = "sexymime"
|
||||
// MASK WAS THAT MOVIE WITH THAT GUY WITH THE MESSED UP FACE. WHAT'S HIS NAME . . . JIM CARREY, I THINK.
|
||||
//why is this up here -Pete
|
||||
//also: please someone make this less terrible, why are things that work with internals not all under one parent, why why why why why whyyyyyyyyyyyyyyy
|
||||
|
||||
/obj/item/clothing/mask
|
||||
name = "mask"
|
||||
icon = 'masks.dmi'
|
||||
body_parts_covered = HEAD
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
slot_flags = SLOT_MASK
|
||||
|
||||
/obj/item/clothing/mask/breath
|
||||
desc = "A close-fitting mask that can be connected to an air supply."
|
||||
name = "breath mask"
|
||||
icon_state = "breath"
|
||||
item_state = "breath"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADSPACE | MASKCOVERSMOUTH
|
||||
w_class = 2
|
||||
protective_temperature = 420
|
||||
heat_transfer_coefficient = 0.90
|
||||
gas_transfer_coefficient = 0.10
|
||||
permeability_coefficient = 0.50
|
||||
|
||||
/obj/item/clothing/mask/breath/medical
|
||||
desc = "A close-fitting sterile mask that can be connected to an air supply."
|
||||
name = "medical mask"
|
||||
icon_state = "medical"
|
||||
item_state = "medical"
|
||||
|
||||
//WHY DOES THIS EXIST
|
||||
/obj/item/clothing/mask/spiderman
|
||||
desc = "A mask of Deadpool!"
|
||||
name = "\improper Deadpool mask"
|
||||
icon_state = "spiderman"
|
||||
item_state = "spiderman"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE|HEADSPACE|MASKCOVERSMOUTH|BLOCKHAIR
|
||||
w_class = 3
|
||||
protective_temperature = 420
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
|
||||
/obj/item/clothing/mask/balaclava
|
||||
name = "balaclava"
|
||||
desc = "A black mask that does a good job of keeping your face warm."
|
||||
icon_state = "balaclava"
|
||||
item_state = "balaclava"
|
||||
see_face = 0.0
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR
|
||||
w_class = 2
|
||||
|
||||
/obj/item/clothing/mask/luchador
|
||||
name = "luchador mask"
|
||||
desc = "Worn by robust fighters, flying high to defeat their foes!"
|
||||
icon_state = "luchag"
|
||||
item_state = "luchag"
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|BLOCKHAIR
|
||||
see_face = 0.0
|
||||
w_class = 2
|
||||
|
||||
/obj/item/clothing/mask/luchador/tecnicos
|
||||
name = "tecnicos mask"
|
||||
desc = "Worn by robust fighters who uphold justice and fight honorably."
|
||||
icon_state = "luchador"
|
||||
item_state = "luchador"
|
||||
|
||||
/obj/item/clothing/mask/luchador/rudos
|
||||
name = "rudos mask"
|
||||
desc = "Worn by robust fighters who are willing to do anything to win."
|
||||
icon_state = "luchar"
|
||||
item_state = "luchar"
|
||||
|
||||
/obj/item/clothing/mask/muzzle
|
||||
name = "muzzle"
|
||||
desc = "To stop that awful noise."
|
||||
icon_state = "muzzle"
|
||||
item_state = "muzzle"
|
||||
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH
|
||||
w_class = 2
|
||||
gas_transfer_coefficient = 0.90
|
||||
|
||||
/obj/item/clothing/mask/surgical
|
||||
name = "sterile mask"
|
||||
desc = "A sterile mask designed to help prevent the spread of diseases."
|
||||
icon_state = "sterile"
|
||||
item_state = "sterile"
|
||||
w_class = 1
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|MASKCOVERSMOUTH
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.05
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0)
|
||||
|
||||
/obj/item/clothing/mask/fakemoustache
|
||||
name = "fake moustache"
|
||||
desc = "Warning: moustache is fake."
|
||||
icon_state = "fake-moustache"
|
||||
flags = FPRINT|TABLEPASS
|
||||
see_face = 0.0 //Well, it's a disguise, of course.
|
||||
|
||||
//This now uses the alt sprites, like the emergency gasmask. -Pete
|
||||
/obj/item/clothing/mask/gas
|
||||
name = "gas mask"
|
||||
desc = "A face-covering mask that can be connected to an air supply."
|
||||
icon_state = "gas_alt"
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE|MASKCOVERSMOUTH|MASKCOVERSEYES
|
||||
flags_inv = HIDEEARS|HIDEEYES
|
||||
w_class = 3.0
|
||||
see_face = 0.0
|
||||
item_state = "gas_alt"
|
||||
protective_temperature = 500
|
||||
heat_transfer_coefficient = 0.01
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
|
||||
/obj/item/clothing/mask/gas/plaguedoctor
|
||||
name = "plague doctor mask"
|
||||
desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply."
|
||||
icon_state = "plaguedoctor"
|
||||
item_state = "gas_mask"
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0)
|
||||
/*
|
||||
/obj/item/clothing/mask/gas/emergency
|
||||
name = "emergency gas mask"
|
||||
desc = "A face-covering mask that can be connected to an air supply. For use in emergencies."
|
||||
icon_state = "gas_alt"
|
||||
item_state = "gas_alt"
|
||||
*/
|
||||
/obj/item/clothing/mask/gas/swat
|
||||
name = "\improper SWAT mask"
|
||||
desc = "A close-fitting tactical mask that can be connected to an air supply."
|
||||
icon_state = "swat"
|
||||
|
||||
/obj/item/clothing/mask/gas/syndicate
|
||||
name = "syndicate mask"
|
||||
desc = "A close-fitting tactical mask that can be connected to an air supply."
|
||||
icon_state = "swat"
|
||||
|
||||
/obj/item/clothing/mask/gas/voice
|
||||
name = "gas mask"
|
||||
//desc = "A face-covering mask that can be connected to an air supply. It seems to house some odd electronics."
|
||||
var/mode = 0// 0==Scouter | 1==Night Vision | 2==Thermal | 3==Meson
|
||||
var/voice = "Unknown"
|
||||
var/vchange = 0//This didn't do anything before. It now checks if the mask has special functions/N
|
||||
origin_tech = "syndicate=4"
|
||||
|
||||
/obj/item/clothing/mask/gas/voice/space_ninja
|
||||
name = "ninja mask"
|
||||
desc = "A close-fitting mask that acts both as an air filter and a post-modern fashion statement."
|
||||
icon_state = "s-ninja"
|
||||
item_state = "s-ninja_mask"
|
||||
vchange = 1
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat
|
||||
name = "clown wig and mask"
|
||||
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
|
||||
icon_state = "clown"
|
||||
item_state = "clown_hat"
|
||||
|
||||
/obj/item/clothing/mask/gas/sexyclown
|
||||
name = "sexy-clown wig and mask"
|
||||
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
|
||||
/obj/item/clothing/mask/gas/mime
|
||||
name = "mime mask"
|
||||
desc = "The traditional mime's mask. It has an eerie facial posture."
|
||||
icon_state = "mime"
|
||||
item_state = "mime"
|
||||
|
||||
/obj/item/clothing/mask/gas/monkeymask
|
||||
name = "monkey mask"
|
||||
desc = "A mask used when acting as a monkey."
|
||||
icon_state = "monkeymask"
|
||||
item_state = "monkeymask"
|
||||
|
||||
/obj/item/clothing/mask/gas/sexymime
|
||||
name = "sexy mime mask"
|
||||
desc = "A traditional female mime's mask."
|
||||
icon_state = "sexymime"
|
||||
item_state = "sexymime"
|
||||
+184
-184
@@ -1,185 +1,185 @@
|
||||
/obj/item/clothing/shoes
|
||||
name = "shoes"
|
||||
icon = 'shoes.dmi'
|
||||
desc = "Comfortable-looking shoes."
|
||||
gender = PLURAL //Carn: for grammarically correct text-parsing
|
||||
|
||||
body_parts_covered = FEET
|
||||
slot_flags = SLOT_FEET
|
||||
|
||||
protective_temperature = 500
|
||||
heat_transfer_coefficient = 0.10
|
||||
permeability_coefficient = 0.50
|
||||
slowdown = SHOES_SLOWDOWN
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/syndigaloshes
|
||||
desc = "A pair of brown shoes. They seem to have extra grip."
|
||||
name = "brown shoes"
|
||||
icon_state = "brown"
|
||||
item_state = "brown"
|
||||
permeability_coefficient = 0.05
|
||||
flags = NOSLIP
|
||||
origin_tech = "syndicate=3"
|
||||
var/list/clothing_choices = list()
|
||||
|
||||
/obj/item/clothing/shoes/syndigaloshes/all
|
||||
|
||||
/obj/item/clothing/shoes/black
|
||||
name = "black shoes"
|
||||
icon_state = "black"
|
||||
color = "black"
|
||||
desc = "A pair of black shoes."
|
||||
|
||||
redcoat
|
||||
color = "redcoat" //Exists for washing machines. Is not different from black shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/brown
|
||||
name = "brown shoes"
|
||||
desc = "A pair of brown shoes."
|
||||
icon_state = "brown"
|
||||
color = "brown"
|
||||
|
||||
captain
|
||||
color = "captain" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
hop
|
||||
color = "hop" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
ce
|
||||
color = "chief" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
rd
|
||||
color = "director" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
cmo
|
||||
color = "medical" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
cmo
|
||||
color = "cargo" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/blue
|
||||
name = "blue shoes"
|
||||
icon_state = "blue"
|
||||
color = "blue"
|
||||
|
||||
/obj/item/clothing/shoes/green
|
||||
name = "green shoes"
|
||||
icon_state = "green"
|
||||
color = "green"
|
||||
|
||||
/obj/item/clothing/shoes/yellow
|
||||
name = "yellow shoes"
|
||||
icon_state = "yellow"
|
||||
color = "yellow"
|
||||
|
||||
/obj/item/clothing/shoes/mime
|
||||
name = "mime shoes"
|
||||
icon_state = "mime"
|
||||
color = "mime"
|
||||
|
||||
/obj/item/clothing/shoes/purple
|
||||
name = "purple shoes"
|
||||
icon_state = "purple"
|
||||
color = "purple"
|
||||
|
||||
/obj/item/clothing/shoes/brown
|
||||
name = "brown shoes"
|
||||
icon_state = "brown"
|
||||
color = "brown"
|
||||
|
||||
/obj/item/clothing/shoes/orange
|
||||
name = "orange shoes"
|
||||
icon_state = "orange"
|
||||
var/chained = 0
|
||||
color = "orange"
|
||||
|
||||
/obj/item/clothing/shoes/swat
|
||||
name = "\improper SWAT shoes"
|
||||
desc = "When you want to turn up the heat."
|
||||
icon_state = "swat"
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
|
||||
flags = NOSLIP
|
||||
|
||||
/obj/item/clothing/shoes/combat //Basically SWAT shoes combined with galoshes.
|
||||
name = "combat boots"
|
||||
desc = "When you REALLY want to turn up the heat"
|
||||
icon_state = "swat"
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
|
||||
flags = NOSLIP
|
||||
|
||||
/obj/item/clothing/shoes/space_ninja
|
||||
name = "ninja shoes"
|
||||
desc = "A pair of running shoes. Excellent for running and even better for smashing skulls."
|
||||
icon_state = "s-ninja"
|
||||
protective_temperature = 700
|
||||
permeability_coefficient = 0.01
|
||||
flags = NOSLIP
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
/obj/item/clothing/shoes/white
|
||||
name = "white shoes"
|
||||
icon_state = "white"
|
||||
permeability_coefficient = 0.25
|
||||
color = "white"
|
||||
|
||||
/obj/item/clothing/shoes/sandal
|
||||
desc = "A pair of rather plain, wooden sandals."
|
||||
name = "sandals"
|
||||
icon_state = "wizard"
|
||||
|
||||
/obj/item/clothing/shoes/sandal/marisa
|
||||
desc = "A pair of magic, black shoes."
|
||||
name = "magic shoes"
|
||||
icon_state = "black"
|
||||
|
||||
/obj/item/clothing/shoes/galoshes
|
||||
desc = "Rubber boots"
|
||||
name = "galoshes"
|
||||
icon_state = "galoshes"
|
||||
permeability_coefficient = 0.05
|
||||
flags = NOSLIP
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
|
||||
/obj/item/clothing/shoes/magboots
|
||||
desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle."
|
||||
name = "magboots"
|
||||
icon_state = "magboots0"
|
||||
protective_temperature = 800
|
||||
heat_transfer_coefficient = 0.01
|
||||
var/magpulse = 0
|
||||
// flags = NOSLIP //disabled by default
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes
|
||||
desc = "The prankster's standard-issue clowning shoes. Damn they're huge!"
|
||||
name = "clown shoes"
|
||||
icon_state = "clown"
|
||||
item_state = "clown_shoes"
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
color = "clown"
|
||||
|
||||
/obj/item/clothing/shoes/jackboots
|
||||
name = "jackboots"
|
||||
desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
|
||||
icon_state = "jackboots"
|
||||
item_state = "jackboots"
|
||||
color = "hosred"
|
||||
|
||||
/obj/item/clothing/shoes/purpleboots
|
||||
name = "purple boots"
|
||||
desc = "A pair of flashy purple boots."
|
||||
icon_state = "purpleboots"
|
||||
item_state = "purpleboots"
|
||||
|
||||
/obj/item/clothing/shoes/yellowboots
|
||||
name = "yellow boots"
|
||||
desc = "A pair of flashy yellow boots."
|
||||
icon_state = "yellowboots"
|
||||
item_state = "yellowboots"
|
||||
|
||||
/obj/item/clothing/shoes/whiteboots
|
||||
name = "white boots"
|
||||
desc = "A pair of flashy white boots."
|
||||
icon_state = "whiteboots"
|
||||
item_state = "whiteboots"
|
||||
|
||||
/obj/item/clothing/shoes/fullbrown
|
||||
name = "full brown shoes"
|
||||
icon_state = "fullbrown"
|
||||
/obj/item/clothing/shoes
|
||||
name = "shoes"
|
||||
icon = 'shoes.dmi'
|
||||
desc = "Comfortable-looking shoes."
|
||||
gender = PLURAL //Carn: for grammarically correct text-parsing
|
||||
|
||||
body_parts_covered = FEET
|
||||
slot_flags = SLOT_FEET
|
||||
|
||||
protective_temperature = 500
|
||||
heat_transfer_coefficient = 0.10
|
||||
permeability_coefficient = 0.50
|
||||
slowdown = SHOES_SLOWDOWN
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/syndigaloshes
|
||||
desc = "A pair of brown shoes. They seem to have extra grip."
|
||||
name = "brown shoes"
|
||||
icon_state = "brown"
|
||||
item_state = "brown"
|
||||
permeability_coefficient = 0.05
|
||||
flags = NOSLIP
|
||||
origin_tech = "syndicate=3"
|
||||
var/list/clothing_choices = list()
|
||||
|
||||
/obj/item/clothing/shoes/syndigaloshes/all
|
||||
|
||||
/obj/item/clothing/shoes/black
|
||||
name = "black shoes"
|
||||
icon_state = "black"
|
||||
color = "black"
|
||||
desc = "A pair of black shoes."
|
||||
|
||||
redcoat
|
||||
color = "redcoat" //Exists for washing machines. Is not different from black shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/brown
|
||||
name = "brown shoes"
|
||||
desc = "A pair of brown shoes."
|
||||
icon_state = "brown"
|
||||
color = "brown"
|
||||
|
||||
captain
|
||||
color = "captain" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
hop
|
||||
color = "hop" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
ce
|
||||
color = "chief" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
rd
|
||||
color = "director" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
cmo
|
||||
color = "medical" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
cmo
|
||||
color = "cargo" //Exists for washing machines. Is not different from brown shoes in any way.
|
||||
|
||||
/obj/item/clothing/shoes/blue
|
||||
name = "blue shoes"
|
||||
icon_state = "blue"
|
||||
color = "blue"
|
||||
|
||||
/obj/item/clothing/shoes/green
|
||||
name = "green shoes"
|
||||
icon_state = "green"
|
||||
color = "green"
|
||||
|
||||
/obj/item/clothing/shoes/yellow
|
||||
name = "yellow shoes"
|
||||
icon_state = "yellow"
|
||||
color = "yellow"
|
||||
|
||||
/obj/item/clothing/shoes/mime
|
||||
name = "mime shoes"
|
||||
icon_state = "mime"
|
||||
color = "mime"
|
||||
|
||||
/obj/item/clothing/shoes/purple
|
||||
name = "purple shoes"
|
||||
icon_state = "purple"
|
||||
color = "purple"
|
||||
|
||||
/obj/item/clothing/shoes/brown
|
||||
name = "brown shoes"
|
||||
icon_state = "brown"
|
||||
color = "brown"
|
||||
|
||||
/obj/item/clothing/shoes/orange
|
||||
name = "orange shoes"
|
||||
icon_state = "orange"
|
||||
var/chained = 0
|
||||
color = "orange"
|
||||
|
||||
/obj/item/clothing/shoes/swat
|
||||
name = "\improper SWAT shoes"
|
||||
desc = "When you want to turn up the heat."
|
||||
icon_state = "swat"
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
|
||||
flags = NOSLIP
|
||||
|
||||
/obj/item/clothing/shoes/combat //Basically SWAT shoes combined with galoshes.
|
||||
name = "combat boots"
|
||||
desc = "When you REALLY want to turn up the heat."
|
||||
icon_state = "swat"
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
|
||||
flags = NOSLIP
|
||||
|
||||
/obj/item/clothing/shoes/space_ninja
|
||||
name = "ninja shoes"
|
||||
desc = "A pair of running shoes. Excellent for running and even better for smashing skulls."
|
||||
icon_state = "s-ninja"
|
||||
protective_temperature = 700
|
||||
permeability_coefficient = 0.01
|
||||
flags = NOSLIP
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
/obj/item/clothing/shoes/white
|
||||
name = "white shoes"
|
||||
icon_state = "white"
|
||||
permeability_coefficient = 0.25
|
||||
color = "white"
|
||||
|
||||
/obj/item/clothing/shoes/sandal
|
||||
desc = "A pair of rather plain, wooden sandals."
|
||||
name = "sandals"
|
||||
icon_state = "wizard"
|
||||
|
||||
/obj/item/clothing/shoes/sandal/marisa
|
||||
desc = "A pair of magic, black shoes."
|
||||
name = "magic shoes"
|
||||
icon_state = "black"
|
||||
|
||||
/obj/item/clothing/shoes/galoshes
|
||||
desc = "Rubber boots."
|
||||
name = "galoshes"
|
||||
icon_state = "galoshes"
|
||||
permeability_coefficient = 0.05
|
||||
flags = NOSLIP
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
|
||||
/obj/item/clothing/shoes/magboots
|
||||
desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle."
|
||||
name = "magboots"
|
||||
icon_state = "magboots0"
|
||||
protective_temperature = 800
|
||||
heat_transfer_coefficient = 0.01
|
||||
var/magpulse = 0
|
||||
// flags = NOSLIP //disabled by default
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes
|
||||
desc = "The prankster's standard-issue clowning shoes. Damn they're huge!"
|
||||
name = "clown shoes"
|
||||
icon_state = "clown"
|
||||
item_state = "clown_shoes"
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
color = "clown"
|
||||
|
||||
/obj/item/clothing/shoes/jackboots
|
||||
name = "jackboots"
|
||||
desc = "Nanotrasen issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
|
||||
icon_state = "jackboots"
|
||||
item_state = "jackboots"
|
||||
color = "hosred"
|
||||
|
||||
/obj/item/clothing/shoes/purpleboots
|
||||
name = "purple boots"
|
||||
desc = "A pair of flashy purple boots."
|
||||
icon_state = "purpleboots"
|
||||
item_state = "purpleboots"
|
||||
|
||||
/obj/item/clothing/shoes/yellowboots
|
||||
name = "yellow boots"
|
||||
desc = "A pair of flashy yellow boots."
|
||||
icon_state = "yellowboots"
|
||||
item_state = "yellowboots"
|
||||
|
||||
/obj/item/clothing/shoes/whiteboots
|
||||
name = "white boots"
|
||||
desc = "A pair of flashy white boots."
|
||||
icon_state = "whiteboots"
|
||||
item_state = "whiteboots"
|
||||
|
||||
/obj/item/clothing/shoes/fullbrown
|
||||
name = "full brown shoes"
|
||||
icon_state = "fullbrown"
|
||||
color = "fullbrown"
|
||||
@@ -5,7 +5,7 @@ Space suit parts
|
||||
*/
|
||||
|
||||
/obj/item/clothing/head/helmet/space
|
||||
name = "Space helmet"
|
||||
name = "space helmet"
|
||||
icon_state = "space"
|
||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
|
||||
flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | BLOCKHAIR
|
||||
@@ -17,7 +17,7 @@ Space suit parts
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space
|
||||
name = "Space suit"
|
||||
name = "space suit"
|
||||
desc = "A suit that protects against low pressure environments. Has a big 13 on the back."
|
||||
icon_state = "space"
|
||||
item_state = "s_suit"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/armor/captain
|
||||
name = "Captain's armor"
|
||||
name = "captain's armor"
|
||||
desc = "A bulky, heavy-duty piece of exclusive Nanotrasen armor. YOU are in charge!"
|
||||
icon_state = "caparmor"
|
||||
item_state = "capspacesuit"
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
//Fixing the typos here was a pain. -Deus
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate
|
||||
name = "red space helmet"
|
||||
desc = "Top secret Spess Helmet."
|
||||
desc = "Top secret spess helmet."
|
||||
icon_state = "syndicate"
|
||||
item_state = "syndicate"
|
||||
desc = "Has a tag: Totally not property of an enemy corporation, honest."
|
||||
//desc = "Has a tag: Totally not property of an enemy corporation, honest." Again, two descriptions. -Deus
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
|
||||
@@ -20,106 +22,106 @@
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/green
|
||||
name = "Green Space Helmet"
|
||||
name = "green space helmet"
|
||||
icon_state = "syndicate-helm-green"
|
||||
item_state = "syndicate-helm-green"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/green
|
||||
name = "Green Space Suit"
|
||||
name = "green space suit"
|
||||
icon_state = "syndicate-green"
|
||||
item_state = "syndicate-green"
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/green/dark
|
||||
name = "Dark Green Space Helmet"
|
||||
name = "dark green space helmet"
|
||||
icon_state = "syndicate-helm-green-dark"
|
||||
item_state = "syndicate-helm-green-dark"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/green/dark
|
||||
name = "Dark Green Space Suit"
|
||||
name = "dark green space suit"
|
||||
icon_state = "syndicate-green-dark"
|
||||
item_state = "syndicate-green-dark"
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/orange
|
||||
name = "Orange Space Helmet"
|
||||
name = "orange space helmet"
|
||||
icon_state = "syndicate-helm-orange"
|
||||
item_state = "syndicate-helm-orange"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/orange
|
||||
name = "Orange Space Suit"
|
||||
name = "orange space suit"
|
||||
icon_state = "syndicate-orange"
|
||||
item_state = "syndicate-orange"
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/blue
|
||||
name = "Blue Space Helmet"
|
||||
name = "blue space helmet"
|
||||
icon_state = "syndicate-helm-blue"
|
||||
item_state = "syndicate-helm-blue"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/blue
|
||||
name = "Blue Space Suit"
|
||||
name = "blue space suit"
|
||||
icon_state = "syndicate-blue"
|
||||
item_state = "syndicate-blue"
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black
|
||||
name = "Black Space Helmet"
|
||||
name = "black space helmet"
|
||||
icon_state = "syndicate-helm-black"
|
||||
item_state = "syndicate-helm-black"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black
|
||||
name = "Black Space Suit"
|
||||
name = "black space suit"
|
||||
icon_state = "syndicate-black"
|
||||
item_state = "syndicate-black"
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/green
|
||||
name = "Black Space Helmet"
|
||||
name = "black and green space helmet"
|
||||
icon_state = "syndicate-helm-black-green"
|
||||
item_state = "syndicate-helm-black-green"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/green
|
||||
name = "Black and Green Space Suit"
|
||||
name = "black and green space suit"
|
||||
icon_state = "syndicate-black-green"
|
||||
item_state = "syndicate-black-green"
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/blue
|
||||
name = "Black Space Helmet"
|
||||
name = "black and blue space helmet"
|
||||
icon_state = "syndicate-helm-black-blue"
|
||||
item_state = "syndicate-helm-black-blue"
|
||||
armor = list(melee = 70, bullet = 70, laser = 60, energy = 30, bomb = 30, bio = 50, rad = 50)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/blue
|
||||
name = "Black and Blue Space Suit"
|
||||
name = "black and blue space suit"
|
||||
icon_state = "syndicate-black-blue"
|
||||
item_state = "syndicate-black-blue"
|
||||
armor = list(melee = 70, bullet = 70, laser = 60, energy = 30, bomb = 30, bio = 50, rad = 50)
|
||||
slowdown = 2
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/med
|
||||
name = "Black Space Helmet"
|
||||
name = "medic's space helmet"
|
||||
icon_state = "syndicate-helm-black-med"
|
||||
item_state = "syndicate-helm-black"
|
||||
armor = list(melee = 50, bullet = 40, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/med
|
||||
name = "Green Space Suit"
|
||||
name = "medic's space suit"
|
||||
icon_state = "syndicate-black-med"
|
||||
item_state = "syndicate-black"
|
||||
armor = list(melee = 50, bullet = 40, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100)
|
||||
@@ -128,27 +130,27 @@
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/orange
|
||||
name = "Black Space Helmet"
|
||||
name = "black and orange space helmet"
|
||||
icon_state = "syndicate-helm-black-orange"
|
||||
item_state = "syndicate-helm-black"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/orange
|
||||
name = "Black and Orange Space Suit"
|
||||
name = "black and orange space suit"
|
||||
icon_state = "syndicate-black-orange"
|
||||
item_state = "syndicate-black"
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/red
|
||||
name = "Black Space Helmet"
|
||||
name = "black and red space helmet"
|
||||
icon_state = "syndicate-helm-black-red"
|
||||
item_state = "syndicate-helm-black-red"
|
||||
armor = list(melee = 70, bullet = 70, laser = 60, energy = 30, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/red
|
||||
name = "Black and Red Space Suit"
|
||||
name = "black and red space suit"
|
||||
icon_state = "syndicate-black-red"
|
||||
item_state = "syndicate-black-red"
|
||||
armor = list(melee = 70, bullet = 70, laser = 60, energy = 30, bomb = 30, bio = 30, rad = 30)
|
||||
@@ -157,14 +159,14 @@
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/black/engie
|
||||
name = "Black Space Helmet"
|
||||
name = "black engineering space helmet"
|
||||
icon_state = "syndicate-helm-black-engie"
|
||||
item_state = "syndicate-helm-black"
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 50, bio = 30, rad = 100)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate/black/engie
|
||||
name = "Black Engineering Space Suit"
|
||||
name = "black engineering space suit"
|
||||
icon_state = "syndicate-black-engie"
|
||||
item_state = "syndicate-black"
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 50, bio = 30, rad = 100)
|
||||
@@ -174,7 +176,7 @@
|
||||
|
||||
/obj/item/clothing/head/helmet/space/syndicate/elite
|
||||
name = "black space helmet"
|
||||
desc = "Professionals Have Standards, Be Polite, Be Efficient, Have a plan to kill everyone you meet."
|
||||
desc = "Professionals have standards: be polite, be efficient, have a plan to kill everyone you meet."
|
||||
icon_state = "syndicate-helm-black"
|
||||
item_state = "syndicate-helm-black"
|
||||
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
/obj/item/clothing/head/helmet/space/nasavoid
|
||||
name = "NASA Void Helmet"
|
||||
desc = "A high tech, NASA Centcom branch designed, dark red space suit helmet. Used for AI satellite maintenance."
|
||||
name = "NASA void helmet"
|
||||
desc = "A high tech, NASA Centcom branch designed, dark red space helmet. Used for AI satellite maintenance."
|
||||
icon_state = "void"
|
||||
item_state = "void"
|
||||
see_face = 1
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/nasavoid
|
||||
name = "NASA Voidsuit"
|
||||
name = "NASA voidsuit"
|
||||
icon_state = "void"
|
||||
item_state = "void"
|
||||
desc = "A high tech, NASA Centcom branch designed, dark red Space suit. Used for AI satellite maintenance."
|
||||
desc = "A high tech, NASA Centcom branch designed, dark red space suit. Used for AI satellite maintenance."
|
||||
slowdown = 1
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/warden
|
||||
name = "Warden's jacket"
|
||||
name = "warden's jacket"
|
||||
desc = "An armoured jacket with silver rank pips and livery."
|
||||
icon_state = "warden_jacket"
|
||||
item_state = "armor"
|
||||
|
||||
/obj/item/clothing/suit/armor/riot
|
||||
name = "Riot Suit"
|
||||
name = "riot suit"
|
||||
desc = "A suit of armor with heavy padding to protect against melee attacks. Looks like it might impair movement."
|
||||
icon_state = "riot"
|
||||
item_state = "swat_suit"
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/armor/bulletproof
|
||||
name = "Bulletproof Vest"
|
||||
name = "bulletproof vest"
|
||||
desc = "A vest that excels in protecting the wearer against high-velocity solid projectiles."
|
||||
icon_state = "bulletproof"
|
||||
item_state = "armor"
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/armor/laserproof
|
||||
name = "Ablative Armor Vest"
|
||||
name = "ablative armour vest"
|
||||
desc = "A vest that excels in protecting the wearer against energy projectiles."
|
||||
icon_state = "armor_reflec"
|
||||
item_state = "armor_reflec"
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/obj/item/clothing/suit/storage/gearharness
|
||||
name = "gear harness"
|
||||
desc = "A simple security harness, used for storing small objects"
|
||||
desc = "A simple security harness, used for storing small objects."
|
||||
icon_state = "gearharness"
|
||||
item_state = "gearharness"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
||||
@@ -56,8 +56,8 @@
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive
|
||||
name = "Reactive Teleport Armor"
|
||||
desc = "Someone seperated our Research Director from his own head!"
|
||||
name = "reactive teleport armour"
|
||||
desc = "Someone separated our Research Director from their own head!"
|
||||
var/active = 0.0
|
||||
icon_state = "reactiveoff"
|
||||
item_state = "reactiveoff"
|
||||
@@ -66,7 +66,7 @@
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/storage/armourrigvest
|
||||
name = "armour rig vest"
|
||||
name = "armoured rig vest"
|
||||
desc = "An important looking armoured vest, outfitted with pockets."
|
||||
icon_state = "armourrigvest"
|
||||
item_state = "armourrigvest"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
/obj/item/clothing/suit/bio_suit
|
||||
name = "bio suit"
|
||||
desc = "A suit that protects against biological contamination."
|
||||
desc = "A suit that protects against biological contaminants."
|
||||
icon_state = "bio"
|
||||
item_state = "bio_suit"
|
||||
w_class = 4//bulky item
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/plaguedoctorsuit
|
||||
name = "Plague doctor suit"
|
||||
name = "plague doctor suit"
|
||||
desc = "It protected doctors from the Black Death, back then. You bet your arse it's gonna help you against viruses."
|
||||
icon_state = "plaguedoctor"
|
||||
item_state = "bio_suit"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/clothing/head/bomb_hood
|
||||
name = "bomb hood"
|
||||
desc = "A hood that protect from explosions. Also provides moderate protection."
|
||||
desc = "A hood that protects against explosions."
|
||||
icon_state = "bombsuit"
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 100, bio = 0, rad = 0)
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit
|
||||
name = "bomb suit"
|
||||
desc = "A suit used for safely disposing explosives. Also provides moderate protection."
|
||||
desc = "A suit that protects against explosions."
|
||||
icon_state = "bombsuit"
|
||||
item_state = "bombsuit"
|
||||
w_class = 4//bulky item
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/clothing/head/det_hat
|
||||
name = "hat"
|
||||
name = "detective's hat"
|
||||
desc = "Someone who wears this will look very smart."
|
||||
icon_state = "detective"
|
||||
allowed = list(/obj/item/weapon/reagent_containers/food/snacks/candy_corn, /obj/item/weapon/pen)
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/storage/det_suit
|
||||
name = "coat"
|
||||
name = "detective's coat"
|
||||
desc = "An 18th-century multi-purpose trenchcoat. Someone who wears this means serious business."
|
||||
icon_state = "detective"
|
||||
item_state = "det_suit"
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/det_suit/armor
|
||||
name = "armor"
|
||||
name = "detective's armor"
|
||||
desc = "An armored vest with a detective's badge on it."
|
||||
icon_state = "detective-armor"
|
||||
item_state = "armor"
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
slowdown = 1.5
|
||||
|
||||
/obj/item/clothing/head/helmet/space/fire_helmet
|
||||
name = "Fire Helmet"
|
||||
desc = "A helmet designed to protect against fires in sealed areas, which often create extreme pressures."
|
||||
name = "fire helmet"
|
||||
desc = "A helmet designed to protect against extreme temperature and pressure."
|
||||
flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | BLOCKHAIR
|
||||
see_face = 0.0
|
||||
permeability_coefficient = 0.01
|
||||
@@ -43,14 +43,14 @@
|
||||
|
||||
|
||||
/obj/item/clothing/head/radiation
|
||||
name = "Radiation Hood"
|
||||
name = "radiation hood"
|
||||
icon_state = "rad"
|
||||
desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation"
|
||||
desc = "A hood that protects against radiation. Label: Made with lead, do not eat insulation."
|
||||
flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 20)
|
||||
|
||||
/obj/item/clothing/suit/radiation
|
||||
name = "Radiation suit"
|
||||
name = "radiation suit"
|
||||
desc = "A suit that protects against radiation. Label: Made with lead, do not eat insulation."
|
||||
icon_state = "rad"
|
||||
item_state = "rad_suit"
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
item_state = "tdgreen"
|
||||
|
||||
/obj/item/clothing/suit/armor/swat
|
||||
name = "swat suit"
|
||||
name = "SWAT armour"
|
||||
desc = "A heavily armored suit that protects against moderate damage. Used in special operations."
|
||||
icon_state = "deathsquad"
|
||||
item_state = "swat_suit"
|
||||
@@ -53,7 +53,7 @@
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
|
||||
/obj/item/clothing/suit/storage/officer
|
||||
name = "officer jacket"
|
||||
name = "officer's jacket"
|
||||
desc = "An armored jacket used in special operations."
|
||||
icon_state = "detective"
|
||||
item_state = "det_suit"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/clothing/head/helmet/HoS
|
||||
name = "Head of Security Hat"
|
||||
name = "head of security's hat"
|
||||
desc = "The hat of the Head of Security. For showing the officers who's in charge."
|
||||
icon_state = "hoscap"
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE | HEADCOVERSEYES
|
||||
@@ -7,7 +7,7 @@
|
||||
flags_inv = HIDEEARS
|
||||
|
||||
/obj/item/clothing/head/helmet/HoS/dermal
|
||||
name = "Dermal Armour Patch"
|
||||
name = "dermal armour patch"
|
||||
desc = "You're not quite sure how you manage to take it on and off, but it implants nicely in your head."
|
||||
icon_state = "dermal"
|
||||
item_state = "dermal"
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/obj/item/clothing/suit/armor/hos/jensen
|
||||
name = "armored trenchcoat"
|
||||
desc = "A trenchoat augmented with a special alloy for some protection and style"
|
||||
desc = "A trenchoat augmented with a special alloy for some protection and style."
|
||||
icon_state = "jensencoat"
|
||||
item_state = "jensencoat"
|
||||
flags_inv = 0
|
||||
|
||||
@@ -27,22 +27,22 @@
|
||||
item_state = "labgreen"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/genetics
|
||||
name = "Geneticist Labcoat"
|
||||
name = "geneticist's labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
|
||||
icon_state = "labcoat_gen_open"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/chemist
|
||||
name = "Chemist Labcoat"
|
||||
name = "chemist's labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder."
|
||||
icon_state = "labcoat_chem_open"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/virologist
|
||||
name = "Virologist Labcoat"
|
||||
name = "virologist's labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a green stripe on the shoulder."
|
||||
icon_state = "labcoat_vir_open"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/science
|
||||
name = "Scientist Labcoat"
|
||||
name = "scientist's labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
|
||||
icon_state = "labcoat_tox_open"
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
/obj/item/clothing/suit/bluetag
|
||||
name = "blue laser tag armour"
|
||||
desc = "Blue Pride, Station Wide"
|
||||
desc = "Blue pride, station wide."
|
||||
icon_state = "bluetag"
|
||||
item_state = "bluetag"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
/obj/item/clothing/suit/redtag
|
||||
name = "red laser tag armour"
|
||||
desc = "Pew pew pew"
|
||||
desc = "Pew pew pew!"
|
||||
icon_state = "redtag"
|
||||
item_state = "redtag"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
/obj/item/clothing/suit/storage/chef
|
||||
name = "chef's apron"
|
||||
desc = "An apron used by a high class chef. Has a few pockets for nic-naks."
|
||||
desc = "An apron used by a high class chef. Has a few pockets for knick-knacks."
|
||||
icon_state = "chef"
|
||||
item_state = "chef"
|
||||
gas_transfer_coefficient = 0.90
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
/obj/item/clothing/suit/storage/captunic
|
||||
name = "captain's parade tunic"
|
||||
desc = "Worn by a Captain to show their class."
|
||||
desc = "Worn by a captain to show their class."
|
||||
icon_state = "captunic"
|
||||
item_state = "bio_suit"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
@@ -114,7 +114,7 @@
|
||||
|
||||
/obj/item/clothing/suit/storage/chaplain_hoodie
|
||||
name = "chaplain hoodie"
|
||||
desc = "This suit says to you 'hush'!"
|
||||
desc = "This suit says to you, 'hush'!"
|
||||
icon_state = "chaplain_hoodie"
|
||||
item_state = "chaplain_hoodie"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
@@ -122,7 +122,7 @@
|
||||
|
||||
/obj/item/clothing/suit/hastur
|
||||
name = "\improper Hastur's robes"
|
||||
desc = "Robes not meant to be worn by man"
|
||||
desc = "Robes not meant to be worn by man."
|
||||
icon_state = "hastur"
|
||||
item_state = "hastur"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
/obj/item/clothing/suit/holidaypriest
|
||||
name = "holiday priest"
|
||||
desc = "This is a nice holiday my son."
|
||||
desc = "This is a nice holiday, my son."
|
||||
icon_state = "holidaypriest"
|
||||
item_state = "holidaypriest"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
icon_state = "wizard-fake"
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa
|
||||
name = "Witch Hat"
|
||||
name = "witch hat"
|
||||
desc = "Strange-looking hat-wear, makes you want to cast fireballs."
|
||||
icon_state = "marisa"
|
||||
|
||||
/obj/item/clothing/head/wizard/magus
|
||||
name = "Magus Helm"
|
||||
desc = "A mysterious helmet that hums with an unearthly power"
|
||||
name = "magus helm"
|
||||
desc = "A mysterious helmet that hums with an unearthly power."
|
||||
icon_state = "magus"
|
||||
item_state = "magus"
|
||||
|
||||
@@ -48,14 +48,14 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/marisa
|
||||
name = "Witch Robe"
|
||||
name = "witch robe"
|
||||
desc = "Magic is all about the spell power, ZE!"
|
||||
icon_state = "marisa"
|
||||
item_state = "marisarobe"
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/magusblue
|
||||
name = "Magus Robe"
|
||||
desc = "A set of armoured robes that seem to radiate a dark power"
|
||||
name = "magus robe"
|
||||
desc = "A set of armoured robes that seem to radiate a dark power."
|
||||
icon_state = "magusblue"
|
||||
item_state = "magusblue"
|
||||
|
||||
|
||||
@@ -27,14 +27,14 @@
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/bluesuit
|
||||
name = "Blue Suit"
|
||||
desc = "A classy suit and tie"
|
||||
name = "blue suit"
|
||||
desc = "A classy suit and tie."
|
||||
icon_state = "bluesuit"
|
||||
item_state = "bluesuit"
|
||||
color = "bluesuit"
|
||||
|
||||
/obj/item/clothing/suit/lawyer/bluejacket
|
||||
name = "Blue Suit Jacket"
|
||||
name = "blue suit jacket"
|
||||
desc = "A snappy dress jacket."
|
||||
icon_state = "suitjacket_blue_open"
|
||||
item_state = "suitjacket_blue_open"
|
||||
@@ -42,13 +42,13 @@
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/purpsuit
|
||||
name = "Purple Suit"
|
||||
name = "purple suit"
|
||||
icon_state = "lawyer_purp"
|
||||
item_state = "lawyer_purp"
|
||||
color = "lawyer_purp"
|
||||
|
||||
/obj/item/clothing/suit/lawyer/purpjacket
|
||||
name = "Purple Suit Jacket"
|
||||
name = "purple suit jacket"
|
||||
desc = "A snappy dress jacket."
|
||||
icon_state = "suitjacket_purp"
|
||||
item_state = "suitjacket_purp"
|
||||
|
||||
@@ -104,6 +104,14 @@
|
||||
icon_on = "bluezippoon"
|
||||
icon_off = "bluezippo"
|
||||
|
||||
/obj/item/weapon/lighter/zippo/fluff/riley_rohtin_1 //rawrtaicho: Riley Rohtin
|
||||
name = "Riley's black zippo"
|
||||
desc = "A black zippo lighter, which holds some form of sentimental value."
|
||||
icon = 'custom_items.dmi'
|
||||
icon_state = "blackzippo"
|
||||
icon_on = "blackzippoon"
|
||||
icon_off = "blackzippo"
|
||||
|
||||
/obj/item/weapon/fluff/cado_keppel_1 //sparklysheep: Cado Keppel
|
||||
name = "purple comb"
|
||||
desc = "A pristine purple comb made from flexible plastic. It has a small K etched into its side."
|
||||
@@ -138,6 +146,27 @@
|
||||
icon_state = "shinyflask"
|
||||
volume = 50
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/fluff/listermedbottle //compactninja: Lister Black
|
||||
name = "Pill bottle (anti-depressants)"
|
||||
desc = "Contains pills used to deal with depression. They appear to be prescribed to Lister Black"
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/fluff/listermed( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/fluff/listermed( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/fluff/listermed( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/fluff/listermed( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/fluff/listermed( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/fluff/listermed( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/fluff/listermed( src )
|
||||
/obj/item/weapon/reagent_containers/pill/fluff/listermed
|
||||
name = "anti-depressant pill"
|
||||
desc = "Used to deal with depression."
|
||||
icon_state = "pill9"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("stoxin", 5)
|
||||
reagents.add_reagent("sugar", 10)
|
||||
reagents.add_reagent("ethanol", 5)
|
||||
//////////////////////////////////
|
||||
//////////// Clothing ////////////
|
||||
//////////////////////////////////
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
var/mineralAmtList = list("Uranium" = 5, "Iron" = 5, "Diamond" = 5, "Gold" = 5, "Silver" = 5, "Plasma" = 5/*, "Adamantine" = 5*/)
|
||||
var/mineralSpawnChanceList = list("Uranium" = 5, "Iron" = 50, "Diamond" = 1, "Gold" = 5, "Silver" = 5, "Plasma" = 25/*, "Adamantine" =5*/)//Currently, Adamantine won't spawn as it has no uses. -Durandan
|
||||
var/mineralChance = 10 //means 10% chance of this plot changing to a mineral deposit
|
||||
var/artifactChance = 0.5
|
||||
|
||||
/turf/simulated/mineral/random/New()
|
||||
..()
|
||||
@@ -98,6 +99,11 @@
|
||||
if(M)
|
||||
src = M
|
||||
M.levelupdate()
|
||||
|
||||
else if (prob(artifactChance))
|
||||
//spawn a rare, xeno-archaelogical artifact here
|
||||
new/obj/machinery/artifact(src)
|
||||
|
||||
return
|
||||
|
||||
/turf/simulated/mineral/random/high_chance
|
||||
@@ -193,8 +199,8 @@
|
||||
if(old_icon) W.icon_state = old_icon
|
||||
*/
|
||||
W.opacity = 1
|
||||
W.sd_SetOpacity(0)
|
||||
W.sd_LumReset()
|
||||
W.ul_SetOpacity(0)
|
||||
W.ul_Recalculate()
|
||||
W.levelupdate()
|
||||
return W
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
see_invisible = 15
|
||||
see_in_dark = 100
|
||||
verbs += /mob/dead/observer/proc/dead_tele
|
||||
taj_talk_understand = 1
|
||||
|
||||
if(body)
|
||||
var/turf/location = get_turf(body)//Where is the mob located?
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
/mob/proc/death(gibbed)
|
||||
timeofdeath = world.time
|
||||
var/log_file = file("[time2text(world.timeofday, "statistics/DD-MM-YYYY.txt")]")
|
||||
log_file << "Death | \The [get_area(src)] | [bruteloss], [oxyloss], [toxloss], [fireloss][attack_log && attack_log.len? " | attack_log[attack_log.len]" : ""]"
|
||||
log_file << "Death | \The [get_area(src)] | [bruteloss], [oxyloss], [toxloss], [fireloss][attack_log && attack_log.len? " | [attack_log[attack_log.len]]" : ""]"
|
||||
if(client)
|
||||
client.onDeath()
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@ I kind of like the right click only--the window version can get a little confusi
|
||||
|
||||
vents.Add(temp_vent)
|
||||
|
||||
var/atom/a = get_turf_loc(temp_vent)
|
||||
var/atom/a = get_turf(temp_vent)
|
||||
ventAreas.Add(a.loc)
|
||||
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
for(var/obj/machinery/atmospherics/unary/vent_pump/vent in vents)
|
||||
if(vent.loc.z != loc.z)
|
||||
continue
|
||||
var/atom/a = get_turf_loc(vent)
|
||||
var/atom/a = get_turf(vent)
|
||||
choices.Add(a.loc)
|
||||
var/turf/startloc = loc
|
||||
var/obj/selection = input("Select a destination.", "Duct System") in choices
|
||||
|
||||
@@ -125,8 +125,8 @@
|
||||
G.process()
|
||||
|
||||
if(isturf(loc) && rand(1,1000) == 1) //0.1% chance of playing a scary sound to someone who's in complete darkness
|
||||
var/turf/currentTurf = loc
|
||||
if(!currentTurf.sd_lumcount)
|
||||
var/turf/currentTurf = get_turf(src)
|
||||
if(!max(currentTurf.ul_GetRed(), currentTurf.ul_GetGreen(), currentTurf.ul_GetBlue()))
|
||||
playsound_local(src,pick(scarySounds),50, 1, -1)
|
||||
|
||||
src.moved_recently = max(0, moved_recently-1)
|
||||
@@ -495,7 +495,12 @@
|
||||
if(!breath || (breath.total_moles == 0))
|
||||
if(reagents.has_reagent("inaprovaline"))
|
||||
return
|
||||
adjustOxyLoss(HUMAN_MAX_OXYLOSS)
|
||||
if(health < config.health_threshold_crit)
|
||||
// in crit, we pretend your metabolism has become slower, which
|
||||
// will reduce the rate at which you lose health
|
||||
adjustOxyLoss(round(HUMAN_MAX_OXYLOSS / 2))
|
||||
else
|
||||
adjustOxyLoss(HUMAN_MAX_OXYLOSS)
|
||||
|
||||
oxygen_alert = max(oxygen_alert, 1)
|
||||
|
||||
@@ -820,7 +825,8 @@
|
||||
if(mutantrace == "plant") //couldn't think of a better place to place it, since it handles nutrition -- Urist
|
||||
var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing
|
||||
if(istype(loc,/turf)) //else, there's considered to be no light
|
||||
light_amount = min(10,loc:sd_lumcount) - 5 //hardcapped so it's not abused by having a ton of flashlights
|
||||
var/turf/currentTurf = get_turf(src)
|
||||
light_amount = min(10,max(currentTurf.ul_GetRed(), currentTurf.ul_GetGreen(), currentTurf.ul_GetBlue())) - 5 //hardcapped so it's not abused by having a ton of flashlights
|
||||
if(nutrition < 500) //so they can't store nutrition to survive without light forever
|
||||
nutrition += light_amount
|
||||
if(light_amount > 0) //if there's enough light, heal
|
||||
|
||||
@@ -258,7 +258,7 @@
|
||||
for(var/obj/machinery/atmospherics/unary/vent_pump/vent in vents)
|
||||
if(vent.loc.z != loc.z)
|
||||
continue
|
||||
var/atom/a = get_turf_loc(vent)
|
||||
var/atom/a = get_turf(vent)
|
||||
choices.Add(a.loc)
|
||||
var/turf/startloc = loc
|
||||
var/obj/selection = input("Select a destination.", "Duct System") in choices
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
for(var/obj/machinery/atmospherics/unary/vent_pump/vent in vents)
|
||||
if(vent.loc.z != loc.z)
|
||||
continue
|
||||
var/atom/a = get_turf_loc(vent)
|
||||
var/atom/a = get_turf(vent)
|
||||
choices.Add(a.loc)
|
||||
var/turf/startloc = loc
|
||||
var/obj/selection = input("Select a destination.", "Duct System") in choices
|
||||
|
||||
@@ -673,9 +673,7 @@
|
||||
return health
|
||||
|
||||
/mob/proc/UpdateLuminosity()
|
||||
if(total_luminosity == last_luminosity) return 0//nothing to do here
|
||||
last_luminosity = total_luminosity
|
||||
sd_SetLuminosity(min(total_luminosity,7))//Current hardcode max at 7, should likely be a const somewhere else
|
||||
ul_SetLuminosity(LuminosityRed, LuminosityGreen, LuminosityBlue)//Current hardcode max at 7, should likely be a const somewhere else
|
||||
return 1
|
||||
|
||||
/mob/MouseDrop(mob/M as mob)
|
||||
@@ -715,6 +713,9 @@
|
||||
M.LAssailant = null
|
||||
else
|
||||
M.LAssailant = usr
|
||||
if(istype(src, /obj/machinery/artifact))
|
||||
var/obj/machinery/artifact/A = src
|
||||
A.attack_hand(usr)
|
||||
return
|
||||
|
||||
/atom/verb/examine()
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
var/obj/screen/gun/run/gun_run_icon = null
|
||||
var/obj/screen/gun/mode/gun_setting_icon = null
|
||||
|
||||
var/total_luminosity = 0 //This controls luminosity for mobs, when you pick up lights and such this is edited. If you want the mob to use lights it must update its lum in its life proc or such. Note clamp this value around 7 or such to prevent massive light lag.
|
||||
var/last_luminosity = 0
|
||||
// var/total_luminosity = 0 //This controls luminosity for mobs, when you pick up lights and such this is edited. If you want the mob to use lights it must update its lum in its life proc or such. Note clamp this value around 7 or such to prevent massive light lag.
|
||||
// var/last_luminosity = 0
|
||||
|
||||
/*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob.
|
||||
A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such.
|
||||
|
||||
@@ -448,8 +448,7 @@ datum/preferences
|
||||
// Modify this if you added more jobs and it looks like a mess. Add the jobs in the splitJobs that you want to trigger and intitate a new table.
|
||||
|
||||
if(splitJobs == null)
|
||||
if (ticker.current_state >= GAME_STATE_PLAYING
|
||||
)
|
||||
if (ticker && ticker.current_state >= GAME_STATE_PLAYING)
|
||||
splitJobs = list()
|
||||
else
|
||||
splitJobs = list("Chief Engineer")
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
emote_hear = list("barks", "woofs", "yaps","pants")
|
||||
emote_see = list("shakes its head", "shivers")
|
||||
desc = "It's a corgi."
|
||||
src.sd_SetLuminosity(0)
|
||||
src.ul_SetLuminosity(0)
|
||||
inventory_head.loc = src.loc
|
||||
inventory_head = null
|
||||
else
|
||||
@@ -239,7 +239,7 @@
|
||||
name = "Rudolph the Red-Nosed Corgi"
|
||||
emote_hear = list("barks christmas songs", "yaps")
|
||||
desc = "He has a very shiny nose."
|
||||
src.sd_SetLuminosity(6)
|
||||
src.ul_SetLuminosity(6)
|
||||
if(/obj/item/clothing/head/cargosoft)
|
||||
name = "Corgi Tech [real_name]"
|
||||
speak = list("Needs a stamp!", "Request DENIED!", "Fill these out in triplicate!")
|
||||
|
||||
@@ -354,7 +354,7 @@
|
||||
user << "You start adding cables to the APC frame..."
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 20) && C.amount >= 10)
|
||||
var/turf/T = get_turf_loc(src)
|
||||
var/turf/T = get_turf(src)
|
||||
var/obj/structure/cable/N = T.get_cable_node()
|
||||
if (prob(50) && electrocute_mob(usr, N, N))
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
|
||||
@@ -83,12 +83,12 @@
|
||||
var/area/A = src.loc.loc
|
||||
brightness = A.area_lights_luminosity
|
||||
else
|
||||
brightness = rand(6,9)
|
||||
if(prob(10))
|
||||
brightness = rand(6,7)
|
||||
if(prob(5))
|
||||
broken(1)
|
||||
if("bulb")
|
||||
brightness = 3
|
||||
if(prob(25))
|
||||
brightness = rand(4,5)
|
||||
if(prob(15))
|
||||
broken(1)
|
||||
spawn(1)
|
||||
update()
|
||||
@@ -123,7 +123,7 @@
|
||||
var/oldlum = luminosity
|
||||
|
||||
//luminosity = on * brightness
|
||||
sd_SetLuminosity(on * brightness) // *DAL*
|
||||
ul_SetLuminosity(on * brightness, on * brightness, ( fitting != "bulb" ? on * brightness : round(on*brightness/2) ) ) // *DAL*
|
||||
|
||||
// if the state changed, inc the switching counter
|
||||
if(oldlum != luminosity)
|
||||
@@ -137,7 +137,7 @@
|
||||
status = LIGHT_BURNED
|
||||
icon_state = "[base_state]-burned"
|
||||
on = 0
|
||||
sd_SetLuminosity(0)
|
||||
ul_SetLuminosity(0)
|
||||
active_power_usage = (luminosity * 20)
|
||||
if(on != on_gs)
|
||||
on_gs = on
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
/* Overview of sd_DynamicAreaLighting as modified for SS13
|
||||
*
|
||||
*
|
||||
* Use sd_SetLuminosity(value) to change the luminosity of an atom
|
||||
* Use ul_SetLuminosity(value) to change the luminosity of an atom
|
||||
* rather than setting the luminosity var directly.
|
||||
* Avoid having luminous objects at compile-time since this can mess up
|
||||
* the lighting system during map load. Instead use sd_SetLuminosity() in
|
||||
* the lighting system during map load. Instead use ul_SetLuminosity() in
|
||||
* the atom's New() proc after a small spawn delay.
|
||||
*
|
||||
* Use sd_SetOpacity(value) to change the opacity of an atom (e.g. doors)
|
||||
* Use ul_SetOpacity(value) to change the opacity of an atom (e.g. doors)
|
||||
* rather than setting the opacity var directly. This ensures that lighting
|
||||
* will be blocked/unblocked as necessary.
|
||||
*
|
||||
* If creating a new opaque atom (e.g. a wall) at runtime, create the atom,
|
||||
* set its opacity var to zero, then perform sd_SetOpacity(1)
|
||||
* set its opacity var to zero, then perform ul_SetOpacity(1)
|
||||
* e.g.:
|
||||
*
|
||||
* var/obj/block/B = new(loc)
|
||||
* B.opacity = 0
|
||||
* B.sd_SetOpacity(1)
|
||||
* B.ul_SetOpacity(1)
|
||||
*
|
||||
*
|
||||
* The library creates multiple instances of each /area to split a mapped area
|
||||
@@ -52,13 +52,13 @@ Using sd_DynamicAreaLighting
|
||||
|
||||
1) Luminosity changes at run time.
|
||||
If your program makes changes in luminosity while it is
|
||||
running, you need to use sd_SetLuminosity(new_luminosity)
|
||||
running, you need to use ul_SetLuminosity(new_luminosity)
|
||||
so the library can remove the effect of the old luminosity
|
||||
and apply the new effect.
|
||||
|
||||
2) Opacity changes at run time.
|
||||
As with luminosity changes, you need to use
|
||||
sd_SetOpacity(new_opacity) if your program changes the opacity
|
||||
ul_SetOpacity(new_opacity) if your program changes the opacity
|
||||
of atoms at runtime.
|
||||
|
||||
3) New atoms that change the opacity of a location.
|
||||
@@ -67,17 +67,17 @@ Using sd_DynamicAreaLighting
|
||||
sd_StripLocalLum() to strip the luminosity effect of
|
||||
anything shining on that space, create the new atom, then
|
||||
use sd_ApplyLocalLum() to reapply the luminosity effect.
|
||||
Examine the sd_SetOpacity() proc for an example of the
|
||||
Examine the ul_SetOpacity() proc for an example of the
|
||||
procedure.
|
||||
|
||||
All areas will automatically use the sd_DynamicAreaLighting
|
||||
library when it is included in your project. You may disable
|
||||
lighting effect in an area by specifically setting the area's
|
||||
sd_lighting var to 0. For example:
|
||||
ul_Lighting var to 0. For example:
|
||||
|
||||
area/always_lit
|
||||
luminosity = 1
|
||||
sd_lighting = 0
|
||||
ul_Lighting = 0
|
||||
|
||||
This library chops areas into 5 separate areas of differing
|
||||
light effect, so you may want to modify area Enter(), Exit(),
|
||||
@@ -253,17 +253,17 @@ All atoms have the following procs:
|
||||
IMPORTANT! Each sd_StripLocalLum() call should have a matching
|
||||
sd_ApplyLocalLum() to restore the local effect.
|
||||
|
||||
sd_SetLuminosity(new_luminosity as num)
|
||||
ul_SetLuminosity(new_luminosity as num)
|
||||
Sets the atom's luminosity, making adjustments to the
|
||||
sd_lumcount of local turfs.
|
||||
|
||||
sd_SetOpacity(new_opacity as num)
|
||||
ul_SetOpacity(new_opacity as num)
|
||||
Sets the atom's opacity, making adjustments to the
|
||||
sd_lumcount of local turfs.
|
||||
|
||||
Areas have one additional proc and 4 variables:
|
||||
var
|
||||
sd_lighting
|
||||
ul_Lighting
|
||||
Turn this flag off to prevent sd_DynamicAreaLighting
|
||||
from effecting this area.
|
||||
DEFAULT VALUE: 1 (allow dynamic lighting)
|
||||
@@ -304,7 +304,7 @@ Turfs have these additional procs and vars:
|
||||
Places the turf in the appropriate sd_dark area,
|
||||
depending on its brightness (sd_lumcount).
|
||||
|
||||
sd_LumReset()
|
||||
ul_Recalculate()
|
||||
Resets a turf's lumcount by stripping local luminosity,
|
||||
zeroing the lumcount, then reapplying local luminosity.
|
||||
|
||||
@@ -436,7 +436,7 @@ atom
|
||||
|
||||
return affected
|
||||
|
||||
sd_SetLuminosity(new_luminosity as num)
|
||||
ul_SetLuminosity(new_luminosity as num)
|
||||
/* This proc should be called everytime you want to change the
|
||||
luminosity of an atom instead of setting it directly.
|
||||
|
||||
@@ -448,7 +448,7 @@ atom
|
||||
sd_ApplyLum()
|
||||
|
||||
|
||||
sd_SetOpacity(new_opacity as num)
|
||||
ul_SetOpacity(new_opacity as num)
|
||||
/* if(opacity != new_opacity)
|
||||
var/list/affected = sd_StripLocalLum()
|
||||
opacity = new_opacity
|
||||
@@ -567,7 +567,7 @@ turf
|
||||
sd_lumcount = 0 // the brightness of the turf
|
||||
|
||||
proc
|
||||
sd_LumReset()
|
||||
ul_Recalculate()
|
||||
/* Clear local lum, reset this turf's sd_lumcount, and
|
||||
re-apply local lum*/
|
||||
var/list/affected = sd_StripLocalLum()
|
||||
@@ -580,7 +580,7 @@ turf
|
||||
sd_LumUpdate()
|
||||
set background = 1
|
||||
var/area/Loc = loc
|
||||
if(!istype(Loc) || !Loc.sd_lighting) return
|
||||
if(!istype(Loc) || !Loc.ul_Lighting) return
|
||||
|
||||
// change the turf's area depending on its brightness
|
||||
// restrict light to valid levels
|
||||
@@ -685,7 +685,7 @@ area
|
||||
var
|
||||
/* Turn this flag off to prevent sd_DynamicAreaLighting from affecting
|
||||
this area */
|
||||
sd_lighting = 1
|
||||
ul_Lighting = 1
|
||||
|
||||
/* This var determines if an area is outside (affected by sunlight) or
|
||||
not. */
|
||||
@@ -718,7 +718,7 @@ area
|
||||
..()
|
||||
if(!tag) tag = "[type]"
|
||||
spawn(1) // wait a tick
|
||||
if(sd_lighting)
|
||||
if(ul_Lighting)
|
||||
// see if this area was created by the library
|
||||
if(!findtext(tag, "sd_L"))
|
||||
/* show the dark overlay so areas outside of luminous regions
|
||||
@@ -731,7 +731,7 @@ area
|
||||
|
||||
if(!tag) tag = "[type]"
|
||||
spawn(1) // wait a tick
|
||||
if(sd_lighting)
|
||||
if(ul_Lighting)
|
||||
// see if this area was created by the library
|
||||
if(!sd_created)
|
||||
/* show the dark overlay so areas outside of luminous regions
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
New()
|
||||
spawn(1)
|
||||
src.sd_SetLuminosity(5)
|
||||
src.ul_SetLuminosity(5)
|
||||
|
||||
|
||||
Del()
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
//if it's a crate, move the item into the crate
|
||||
var/turf/T = get_step(A,movedir)
|
||||
for(var/obj/structure/closet/crate/C in T)
|
||||
if(C && C.opened)
|
||||
if(C && C.opened && !istype(A, /obj/structure/closet/crate))
|
||||
A.loc = C.loc
|
||||
break
|
||||
|
||||
|
||||
@@ -0,0 +1,912 @@
|
||||
//Part of ISaidNo's public release around July 2011(ish)
|
||||
//much thanks from everyone
|
||||
|
||||
// this goes in gameticker.dm's setup() proc and works in conjuction with landmarks manually placed on the map
|
||||
/*var/list/artispawn = list()
|
||||
for(var/obj/landmark/S in world)
|
||||
if (S.name == "Artifact spawn")
|
||||
artispawn.Add(S.loc)
|
||||
if(artispawn.len)
|
||||
var/artiamt = rand(2,8)
|
||||
while(artiamt > 0)
|
||||
var/artiloc = pick(artispawn)
|
||||
if (prob(66)) new/obj/machinery/artifact(artiloc)
|
||||
--artiamt*/
|
||||
|
||||
// this is the entirety of artifacts.dm
|
||||
|
||||
// Artifact Research - these are used in the research system, depending on how yours is set up these could probably be
|
||||
// ignored if not incorporatable
|
||||
/*
|
||||
/datum/artiresearch/
|
||||
var/name = "artifact research"
|
||||
var/bonustype = null // What kind of artifact it gives a bonus to identifying
|
||||
var/bonusamtO = 0 // Bonus % to identifying origin
|
||||
var/bonusamtT = 0 // Bonus % to identifying trigger
|
||||
var/bonusamtE = 0 // Bonus % to identifying effect/range
|
||||
var/bonusTime = 0 // Seconds reduced from analysis time
|
||||
|
||||
/datum/artiresearch/ancient1
|
||||
name = "Ancient Artifacts"
|
||||
bonustype = "ancient"
|
||||
bonusamtO = 75
|
||||
bonusamtT = 5
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/martian1
|
||||
name = "Martian Artifacts"
|
||||
bonustype = "martian"
|
||||
bonusamtO = 75
|
||||
bonusamtT = 5
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/crystal1
|
||||
name = "Wizard Artifacts"
|
||||
bonustype = "wizard"
|
||||
bonusamtO = 75
|
||||
bonusamtT = 5
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/eldritch1
|
||||
name = "Eldritch Artifacts"
|
||||
bonustype = "eldritch"
|
||||
bonusamtO = 75
|
||||
bonusamtT = 5
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/precursor1
|
||||
name = "Precursor Artifacts"
|
||||
bonustype = "precursor"
|
||||
bonusamtO = 75
|
||||
bonusamtT = 5
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/general1
|
||||
name = "General Artifacts"
|
||||
bonustype = "all"
|
||||
bonusamtO = 15
|
||||
bonusamtT = 5
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/analyser1
|
||||
name = "Analysis Algorithms"
|
||||
bonustype = "analyser"
|
||||
bonusTime = 10
|
||||
|
||||
/datum/artiresearch/ancient2
|
||||
name = "Ancient Mechanisms"
|
||||
bonustype = "ancient"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 75
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/martian2
|
||||
name = "Martian Bio-triggers"
|
||||
bonustype = "martian"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 75
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/crystal2
|
||||
name = "Wizard Rituals"
|
||||
bonustype = "wizard"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 75
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/eldritch2
|
||||
name = "Eldritch Invocations"
|
||||
bonustype = "eldritch"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 75
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/precursor2
|
||||
name = "Precursor Sequencing"
|
||||
bonustype = "precursor"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 75
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/general2
|
||||
name = "General Activation Procedure"
|
||||
bonustype = "all"
|
||||
bonusamtO = 5
|
||||
bonusamtT = 15
|
||||
bonusamtE = 5
|
||||
|
||||
/datum/artiresearch/analyser2
|
||||
name = "Advanced Analysis Software"
|
||||
bonustype = "analyser"
|
||||
bonusTime = 10
|
||||
|
||||
/datum/artiresearch/ancient3
|
||||
name = "Ancient Technology"
|
||||
bonustype = "ancient"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 15
|
||||
bonusamtE = 80
|
||||
|
||||
/datum/artiresearch/martian3
|
||||
name = "Martian Bioengineering"
|
||||
bonustype = "martian"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 15
|
||||
bonusamtE = 80
|
||||
|
||||
/datum/artiresearch/crystal3
|
||||
name = "Wizard Enchantments"
|
||||
bonustype = "wizard"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 15
|
||||
bonusamtE = 80
|
||||
|
||||
/datum/artiresearch/eldritch3
|
||||
name = "Eldritch Curses"
|
||||
bonustype = "eldritch"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 15
|
||||
bonusamtE = 80
|
||||
|
||||
/datum/artiresearch/precursor3
|
||||
name = "Precursor Circuits"
|
||||
bonustype = "precursor"
|
||||
bonusamtO = 10
|
||||
bonusamtT = 15
|
||||
bonusamtE = 80
|
||||
|
||||
/datum/artiresearch/general3
|
||||
name = "General Power Capacity"
|
||||
bonustype = "all"
|
||||
bonusamtO = 5
|
||||
bonusamtT = 5
|
||||
bonusamtE = 15
|
||||
|
||||
/datum/artiresearch/analyser3
|
||||
name = "High-Grade Analysis Process"
|
||||
bonustype = "analyser"
|
||||
bonusTime = 15
|
||||
*/
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// the actual code for artifacts
|
||||
|
||||
/obj/machinery/artifact
|
||||
name = "alien artifact"
|
||||
desc = "A large alien device."
|
||||
icon = 'anomaly.dmi'
|
||||
icon_state = "ano0"
|
||||
anchored = 0
|
||||
density = 1
|
||||
var/activated = 0 // Whether or not the artifact has been unlocked.
|
||||
var/charged = 1 // Whether the artifact is ready to have it's effect.
|
||||
var/chargetime = 0 // How much time until the artifact is charged.
|
||||
var/recharge = 5 // How long does it take this artifact to recharge?
|
||||
var/origin = null // Used in the randomisation/research of the artifact.
|
||||
var/trigger = "touch" // What activates it?
|
||||
var/triggerX = "none" // Used for more varied triggers
|
||||
var/effecttype = "healing" // What does it do?
|
||||
var/effectmode = "aura" // How does it carry out the effect?
|
||||
var/aurarange = 4 // How far the artifact will extend an aura effect.
|
||||
|
||||
New()
|
||||
..()
|
||||
// Origin and appearance randomisation
|
||||
// cael - need some more icons
|
||||
src.origin = pick("ancient","martian","wizard","eldritch","precursor")
|
||||
switch(src.origin)
|
||||
if("ancient") src.icon_state = pick("ano2")
|
||||
if("martian") src.icon_state = pick("ano4")
|
||||
if("wizard") src.icon_state = pick("ano0","ano1")
|
||||
if("eldritch") src.icon_state = pick("ano3")
|
||||
if("precursor") src.icon_state = pick("ano5")
|
||||
// Low-ish random chance to not look like it's origin
|
||||
if(prob(20)) src.icon_state = pick("ano0","ano1","ano2","ano3","ano4","ano5")
|
||||
// Power randomisation
|
||||
src.trigger = pick("force","energy","chemical","heat")
|
||||
if (src.trigger == "chemical") src.triggerX = pick("hydrogen","corrosive","volatile","toxic")
|
||||
// Ancient Artifacts focus on robotic/technological effects
|
||||
// Martian Artifacts focus on biological effects
|
||||
// Wizard Artifacts focus on weird shit
|
||||
// Eldritch Artifacts are 100% bad news
|
||||
// Precursor Artifacts do everything
|
||||
switch(src.origin)
|
||||
if("ancient") src.effecttype = pick("roboheal","robohurt","cellcharge","celldrain")
|
||||
if("martian") src.effecttype = pick("healing","injure","stun","planthelper")
|
||||
if("wizard") src.effecttype = pick("stun","forcefield","teleport")
|
||||
if("eldritch") src.effecttype = pick("injure","stun","robohurt","celldrain")
|
||||
if("precursor") src.effecttype = pick("healing","injure","stun","roboheal","robohurt","cellcharge","celldrain","planthelper","forcefield","teleport")
|
||||
// Select range based on the power
|
||||
var/canworldpulse = 1
|
||||
switch(src.effecttype)
|
||||
if("healing") src.effectmode = pick("aura","pulse","contact")
|
||||
if("injure") src.effectmode = pick("aura","pulse","contact")
|
||||
if("stun") src.effectmode = pick("aura","pulse","contact")
|
||||
if("roboheal") src.effectmode = pick("aura","pulse","contact")
|
||||
if("robohurt") src.effectmode = pick("aura","pulse","contact")
|
||||
if("cellcharge") src.effectmode = pick("aura","pulse")
|
||||
if("celldrain") src.effectmode = pick("aura","pulse")
|
||||
if("planthelper")
|
||||
src.effectmode = pick("aura","pulse")
|
||||
canworldpulse = 0
|
||||
if("forcefield")
|
||||
src.effectmode = "contact"
|
||||
canworldpulse = 0
|
||||
if("teleport") src.effectmode = pick("pulse","contact")
|
||||
// Recharge timer & range setup
|
||||
if (src.effectmode == "aura") src.aurarange = rand(1,4)
|
||||
if (src.effectmode == "contact")
|
||||
src.recharge = rand(5,15)
|
||||
if (src.effectmode == "pulse")
|
||||
src.aurarange = rand(2,14)
|
||||
src.recharge = rand(5,20)
|
||||
if (canworldpulse == 1 && prob(1))
|
||||
src.effectmode = "worldpulse"
|
||||
src.recharge = rand(40,120)
|
||||
|
||||
attack_hand(var/mob/user as mob)
|
||||
if (istype(user, /mob/living/silicon/ai) || istype(user, /mob/dead/)) return
|
||||
if (istype(user, /mob/living/silicon/robot))
|
||||
if (get_dist(user, src) > 1)
|
||||
user << "\red You can't reach [src] from here."
|
||||
return
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message(text("<b>[]</b> touches [].", user, src), 1)
|
||||
src.add_fingerprint(user)
|
||||
src.Artifact_Contact(user)
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/living/user as mob)
|
||||
/*if (istype(W, /obj/item/weapon/cargotele))
|
||||
W:cargoteleport(src, user)
|
||||
return*/
|
||||
if (src.trigger == "chemical" && istype(W, /obj/item/weapon/reagent_containers/))
|
||||
switch(src.triggerX)
|
||||
if("hydrogen")
|
||||
if (W.reagents.has_reagent("hydrogen") || W.reagents.has_reagent("water")) src.Artifact_Activate()
|
||||
if("corrosive")
|
||||
if (W.reagents.has_reagent("acid") || W.reagents.has_reagent("pacid") || W.reagents.has_reagent("diethylamine")) src.Artifact_Activate()
|
||||
if("volatile")
|
||||
if (W.reagents.has_reagent("plasma") || W.reagents.has_reagent("thermite")) src.Artifact_Activate()
|
||||
if("toxic")
|
||||
if (W.reagents.has_reagent("toxin") || W.reagents.has_reagent("cyanide") || W.reagents.has_reagent("amanitin") || W.reagents.has_reagent("neurotoxin")) src.Artifact_Activate()
|
||||
..()
|
||||
if (src.trigger == "force" && W.force >= 30 && !src.activated) src.Artifact_Activate()
|
||||
if (src.trigger == "energy")
|
||||
if (istype(W,/obj/item/weapon/melee/baton) && W:status) src.Artifact_Activate()
|
||||
if (istype(W,/obj/item/weapon/melee/energy)) src.Artifact_Activate()
|
||||
if (istype(W,/obj/item/weapon/melee/cultblade)) src.Artifact_Activate()
|
||||
if (istype(W,/obj/item/weapon/gun/energy/)) src.Artifact_Activate()
|
||||
if (istype(W,/obj/item/device/multitool)) src.Artifact_Activate()
|
||||
if (istype(W,/obj/item/weapon/card/emag)) src.Artifact_Activate()
|
||||
if (src.trigger == "heat")
|
||||
if (istype(W,/obj/item/weapon/match) && W:lit) src.Artifact_Activate()
|
||||
if (istype(W, /obj/item/weapon/weldingtool) && W:welding) src.Artifact_Activate()
|
||||
if (istype(W, /obj/item/weapon/lighter) && W:lit) src.Artifact_Activate()
|
||||
|
||||
//Bump(atom/A)
|
||||
|
||||
Bumped(M as mob|obj)
|
||||
if (istype(M,/obj/item/weapon/) && src.trigger == "force" && M:throwforce >= 30) src.Artifact_Activate()
|
||||
|
||||
bullet_act(var/obj/item/projectile/P)
|
||||
if (src.trigger == "force")
|
||||
if(istype(P,/obj/item/projectile/bullet)) src.Artifact_Activate()
|
||||
else if(istype(P,/obj/item/projectile/hivebotbullet)) src.Artifact_Activate()
|
||||
if (src.trigger == "energy")
|
||||
if(istype(P,/obj/item/projectile/beam)) src.Artifact_Activate()
|
||||
else if(istype(P,/obj/item/projectile/ion)) src.Artifact_Activate()
|
||||
else if(istype(P,/obj/item/projectile/energy)) src.Artifact_Activate()
|
||||
else if(istype(P,/obj/item/projectile/bluetag)) src.Artifact_Activate()
|
||||
else if(istype(P,/obj/item/projectile/redtag)) src.Artifact_Activate()
|
||||
if (src.trigger == "heat")
|
||||
if(istype(P,/obj/item/projectile/temp)) src.Artifact_Activate()
|
||||
|
||||
ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0) del src
|
||||
if(2.0)
|
||||
if (prob(50)) del src
|
||||
if (src.trigger == "force") src.Artifact_Activate()
|
||||
if (src.trigger == "heat") src.Artifact_Activate()
|
||||
if(3.0)
|
||||
if (src.trigger == "force") src.Artifact_Activate()
|
||||
if (src.trigger == "heat") src.Artifact_Activate()
|
||||
return
|
||||
|
||||
temperature_expose(null, temp, volume)
|
||||
if (src.trigger == "heat") src.Artifact_Activate()
|
||||
|
||||
process()
|
||||
..()
|
||||
if (!src.activated) return
|
||||
if (src.chargetime > 0)
|
||||
src.chargetime--
|
||||
else src.charged = 1
|
||||
if (src.effectmode == "aura")
|
||||
switch(src.effecttype)
|
||||
if("healing")
|
||||
for (var/mob/living/carbon/M in range(src.aurarange,src))
|
||||
if(prob(10)) M << "\blue You feel a soothing energy radiating from something nearby."
|
||||
M.adjustBruteLoss(-1)
|
||||
M.adjustFireLoss(-1)
|
||||
M.adjustToxLoss(-1)
|
||||
M.adjustOxyLoss(-1)
|
||||
M.adjustBrainLoss(-1)
|
||||
if("injure")
|
||||
for (var/mob/living/carbon/M in range(src.aurarange,src))
|
||||
if(prob(10)) M << "\red You feel a painful force radiating from something nearby."
|
||||
M.adjustBruteLoss(1)
|
||||
M.adjustFireLoss(1)
|
||||
M.adjustToxLoss(1)
|
||||
M.adjustOxyLoss(1)
|
||||
M.adjustBrainLoss(1)
|
||||
if("stun")
|
||||
for (var/mob/living/carbon/M in range(src.aurarange,src))
|
||||
if(prob(10)) M << "\red Energy radiating from the [src] is making you feel numb."
|
||||
if(prob(20))
|
||||
M << "\red Your body goes numb for a moment."
|
||||
M.stunned += 2
|
||||
M.weakened += 2
|
||||
M.stuttering += 2
|
||||
if("roboheal")
|
||||
for (var/mob/living/silicon/robot/M in range(src.aurarange,src))
|
||||
if(prob(10)) M << "\blue SYSTEM ALERT: Beneficial energy field detected!"
|
||||
M.adjustBruteLoss(-1)
|
||||
M.adjustFireLoss(-1)
|
||||
M.updatehealth()
|
||||
if("robohurt")
|
||||
for (var/mob/living/silicon/robot/M in range(src.aurarange,src))
|
||||
if(prob(10)) M << "\red SYSTEM ALERT: Harmful energy field detected!"
|
||||
M.adjustBruteLoss(1)
|
||||
M.adjustFireLoss(1)
|
||||
if("cellcharge")
|
||||
for (var/obj/machinery/power/apc/C in range(src.aurarange,src))
|
||||
for (var/obj/item/weapon/cell/B in C.contents)
|
||||
B.charge += 10
|
||||
for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge += 20
|
||||
for (var/mob/living/silicon/robot/M in range(src.aurarange,src))
|
||||
for (var/obj/item/weapon/cell/D in M.contents)
|
||||
D.charge += 10
|
||||
if(prob(10)) M << "\blue SYSTEM ALERT: Energy boosting field detected!"
|
||||
if("celldrain")
|
||||
for (var/obj/machinery/power/apc/C in range(src.aurarange,src))
|
||||
for (var/obj/item/weapon/cell/B in C.contents)
|
||||
B.charge -= 10
|
||||
for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge -= 20
|
||||
for (var/mob/living/silicon/robot/M in range(src.aurarange,src))
|
||||
for (var/obj/item/weapon/cell/D in M.contents)
|
||||
D.charge -= 10
|
||||
if(prob(10)) M << "\red SYSTEM ALERT: Energy draining field detected!"
|
||||
if("planthelper")
|
||||
for (var/obj/machinery/hydroponics/H in range(src.aurarange,src))
|
||||
//makes weeds and shrooms and stuff more potent too
|
||||
if(H.planted)
|
||||
H.waterlevel += 2
|
||||
H.nutrilevel += 2
|
||||
if(H.toxic > 0)
|
||||
H.toxic -= 1
|
||||
H.health += 1
|
||||
if(H.pestlevel > 0)
|
||||
H.pestlevel -= 1
|
||||
if(H.weedlevel > 0)
|
||||
H.weedlevel -= 1
|
||||
H.lastcycle += 5
|
||||
if (src.effectmode == "pulse")
|
||||
if (!src.charged) return
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message(text("<b>[]</b> emits a pulse of energy!", src), 1)
|
||||
switch(src.effecttype)
|
||||
if("healing")
|
||||
for (var/mob/living/carbon/M in range(src.aurarange,src))
|
||||
M << "\blue A wave of energy invigorates you."
|
||||
M.adjustBruteLoss(5)
|
||||
M.adjustFireLoss(5)
|
||||
M.adjustToxLoss(5)
|
||||
M.adjustOxyLoss(5)
|
||||
M.adjustBrainLoss(5)
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("injure")
|
||||
for (var/mob/living/carbon/M in range(src.aurarange,src))
|
||||
M << "\red A wave of energy causes you great pain!"
|
||||
M.adjustBruteLoss(5)
|
||||
M.adjustFireLoss(5)
|
||||
M.adjustToxLoss(5)
|
||||
M.adjustOxyLoss(5)
|
||||
M.adjustBrainLoss(5)
|
||||
M.stunned += 3
|
||||
M.weakened += 3
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("stun")
|
||||
for (var/mob/living/carbon/M in range(src.aurarange,src))
|
||||
M << "\red A wave of energy overwhelms your senses!"
|
||||
M.paralysis += 3
|
||||
M.stunned += 4
|
||||
M.weakened += 4
|
||||
M.stuttering += 4
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("roboheal")
|
||||
for (var/mob/living/silicon/robot/M in range(src.aurarange,src))
|
||||
M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!"
|
||||
M.adjustBruteLoss(-10)
|
||||
M.adjustFireLoss(-10)
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("robohurt")
|
||||
for (var/mob/living/silicon/robot/M in range(src.aurarange,src))
|
||||
M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!"
|
||||
M.adjustBruteLoss(10)
|
||||
M.adjustFireLoss(10)
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("cellcharge")
|
||||
for (var/obj/machinery/power/apc/C in range(src.aurarange,src))
|
||||
for (var/obj/item/weapon/cell/B in C.contents)
|
||||
B.charge += 250
|
||||
for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge += 400
|
||||
for (var/mob/living/silicon/robot/M in range(src.aurarange,src))
|
||||
for (var/obj/item/weapon/cell/D in M.contents)
|
||||
D.charge += 250
|
||||
M << "\blue SYSTEM ALERT: Large energy boost detected!"
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("celldrain")
|
||||
for (var/obj/machinery/power/apc/C in range(src.aurarange,src))
|
||||
for (var/obj/item/weapon/cell/B in C.contents)
|
||||
B.charge -= 500
|
||||
for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge -= 400
|
||||
for (var/mob/living/silicon/robot/M in range(src.aurarange,src))
|
||||
for (var/obj/item/weapon/cell/D in M.contents)
|
||||
D.charge -= 500
|
||||
M << "\red SYSTEM ALERT: Severe energy drain detected!"
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("planthelper")
|
||||
//makes weeds and shrooms and stuff more potent too
|
||||
for (var/obj/machinery/hydroponics/H in range(src.aurarange,src))
|
||||
if(H.planted)
|
||||
H.dead = 0
|
||||
H.waterlevel = 200
|
||||
H.nutrilevel = 200
|
||||
H.toxic = 0
|
||||
H.health = 100
|
||||
H.pestlevel = 0
|
||||
H.weedlevel = 0
|
||||
H.lastcycle = H.cycledelay
|
||||
if("teleport")
|
||||
for (var/mob/living/M in range(src.aurarange,src))
|
||||
var/list/randomturfs = new/list()
|
||||
for(var/turf/T in orange(M, 30))
|
||||
if(!istype(T, /turf/simulated/floor) || T.density)
|
||||
continue
|
||||
randomturfs.Add(T)
|
||||
if(randomturfs.len > 0)
|
||||
M << "\red You are displaced by a strange force!"
|
||||
M.loc = pick(randomturfs)
|
||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
|
||||
sparks.set_up(3, 0, get_turf(src)) //no idea what the 0 is
|
||||
sparks.start()
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if (src.effectmode == "worldpulse")
|
||||
if (!src.charged) return
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message(text("<b>[]</b> emits a powerful burst of energy!", src), 1)
|
||||
switch(src.effecttype)
|
||||
if("healing")
|
||||
for (var/mob/living/carbon/M in world)
|
||||
M << "\blue Waves of soothing energy wash over you."
|
||||
M.adjustBruteLoss(-3)
|
||||
M.adjustFireLoss(-3)
|
||||
M.adjustToxLoss(-3)
|
||||
M.adjustOxyLoss(-3)
|
||||
M.adjustBrainLoss(-3)
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("injure")
|
||||
for (var/mob/living/carbon/M in world)
|
||||
M << "\red A wave of painful energy strikes you!"
|
||||
M.adjustBruteLoss(3)
|
||||
M.adjustFireLoss(3)
|
||||
M.adjustToxLoss(3)
|
||||
M.adjustOxyLoss(3)
|
||||
M.adjustBrainLoss(3)
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("stun")
|
||||
for (var/mob/living/carbon/M in world)
|
||||
M << "\red A powerful force causes you to black out momentarily."
|
||||
M.paralysis += 5
|
||||
M.stunned += 8
|
||||
M.weakened += 8
|
||||
M.stuttering += 8
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("roboheal")
|
||||
for (var/mob/living/silicon/robot/M in world)
|
||||
M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!"
|
||||
M.adjustBruteLoss(-5)
|
||||
M.adjustFireLoss(-5)
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("robohurt")
|
||||
for (var/mob/living/silicon/robot/M in world)
|
||||
M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!"
|
||||
M.adjustBruteLoss(5)
|
||||
M.adjustFireLoss(5)
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("cellcharge")
|
||||
for (var/obj/machinery/power/apc/C in world)
|
||||
for (var/obj/item/weapon/cell/B in C.contents)
|
||||
B.charge += 100
|
||||
for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge += 250
|
||||
for (var/mob/living/silicon/robot/M in world)
|
||||
for (var/obj/item/weapon/cell/D in M.contents)
|
||||
D.charge += 100
|
||||
M << "\blue SYSTEM ALERT: Energy boost detected!"
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("celldrain")
|
||||
for (var/obj/machinery/power/apc/C in world)
|
||||
for (var/obj/item/weapon/cell/B in C.contents)
|
||||
B.charge -= 250
|
||||
for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge -= 250
|
||||
for (var/mob/living/silicon/robot/M in world)
|
||||
for (var/obj/item/weapon/cell/D in M.contents)
|
||||
D.charge -= 250
|
||||
M << "\red SYSTEM ALERT: Energy drain detected!"
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
if("teleport")
|
||||
for (var/mob/living/M in world)
|
||||
var/list/randomturfs = new/list()
|
||||
for(var/turf/T in orange(M, 15))
|
||||
if(!istype(T, /turf/simulated/floor) || T.density)
|
||||
continue
|
||||
randomturfs.Add(T)
|
||||
if(randomturfs.len > 0)
|
||||
M << "\red You are displaced by a strange force!"
|
||||
M.loc = pick(randomturfs)
|
||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
|
||||
sparks.set_up(3, 0, get_turf(src)) //no idea what the 0 is
|
||||
sparks.start()
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
|
||||
/obj/machinery/artifact/proc/Artifact_Activate()
|
||||
src.activated = 1
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message(text("<b>[]</b> activates!", src), 1)
|
||||
var/artioverlay = src.icon_state + "-[rand(1,3)]"
|
||||
src.overlays += image('artifacts.dmi', artioverlay)
|
||||
|
||||
/obj/machinery/artifact/proc/Artifact_Contact(var/mob/user as mob)
|
||||
// Trigger Code
|
||||
if (istype (user,/mob/living/carbon/) && src.trigger == "touch" && !src.activated) src.Artifact_Activate()
|
||||
else if (src.trigger != "touch" && !src.activated) user << "Nothing happens."
|
||||
// Effect Code
|
||||
if (src.effectmode == "contact" && src.activated && src.charged)
|
||||
switch(src.effecttype)
|
||||
if("healing")
|
||||
if (istype(user, /mob/living/carbon/human/))
|
||||
user << "\blue You feel a soothing energy invigorate you."
|
||||
|
||||
var/mob/living/carbon/human/H = user
|
||||
for(var/A in H.organs)
|
||||
var/datum/organ/external/affecting = null
|
||||
if(!H.organs[A]) continue
|
||||
affecting = H.organs[A]
|
||||
if(!istype(affecting, /datum/organ/external)) continue
|
||||
affecting.heal_damage(25, 25) //fixes getting hit after ingestion, killing you when game updates organ health
|
||||
for(var/datum/organ/wound/W in affecting.wounds)
|
||||
W.stopbleeding()
|
||||
W.is_healing = 1
|
||||
//user:heal_organ_damage(25, 25)
|
||||
//
|
||||
user.adjustOxyLoss(-25)
|
||||
user.adjustToxLoss(-25)
|
||||
user.adjustBruteLoss(-25)
|
||||
user.adjustFireLoss(-25)
|
||||
user.adjustBrainLoss(-25)
|
||||
user.radiation -= min(user.radiation, 25)
|
||||
user.nutrition += 50
|
||||
H.bodytemperature = initial(H.bodytemperature)
|
||||
//
|
||||
H.vessel.add_reagent("blood",50)
|
||||
spawn(1)
|
||||
H.fixblood()
|
||||
H.update_body()
|
||||
H.update_face()
|
||||
H.UpdateDamageIcon()
|
||||
//
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
else user << "Nothing happens."
|
||||
if("injure")
|
||||
if (istype(user, /mob/living/carbon/))
|
||||
user << "\red A painful discharge of energy strikes you!"
|
||||
user.adjustOxyLoss(25)
|
||||
user.adjustToxLoss(25)
|
||||
user.adjustBruteLoss(25)
|
||||
user.adjustFireLoss(25)
|
||||
user.adjustBrainLoss(25)
|
||||
user.radiation += 25
|
||||
user.nutrition -= min(50, user.nutrition)
|
||||
user.stunned += 6
|
||||
user.weakened += 6
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
else user << "Nothing happens."
|
||||
if("stun")
|
||||
if (istype(user, /mob/living/carbon/))
|
||||
user << "\red A powerful force overwhelms your consciousness."
|
||||
user.paralysis += 30
|
||||
user.stunned += 45
|
||||
user.weakened += 45
|
||||
user.stuttering += 45
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
else user << "Nothing happens."
|
||||
if("roboheal")
|
||||
if (istype(user, /mob/living/silicon/robot))
|
||||
user << "\blue Your systems report damaged components mending by themselves!"
|
||||
user.adjustBruteLoss(-30)
|
||||
user.adjustFireLoss(-30)
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
else user << "Nothing happens."
|
||||
if("robohurt")
|
||||
if (istype(user, /mob/living/silicon/robot))
|
||||
user << "\red Your systems report severe damage has been inflicted!"
|
||||
user.adjustBruteLoss(40)
|
||||
user.adjustFireLoss(40)
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
else user << "Nothing happens."
|
||||
if("forcefield")
|
||||
var/obj/effect/energy_field/E = new /obj/effect/energy_field(locate(src.x + 2,src.y,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x + 2,src.y + 1,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x + 2,src.y + 2,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x + 2,src.y - 1,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x + 2,src.y - 2,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x - 2,src.y,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x - 2,src.y + 1,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x - 2,src.y + 2,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x - 2,src.y - 1,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x - 2,src.y - 2,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x,src.y + 2,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x + 1,src.y + 2,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x - 1,src.y + 2,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x,src.y - 2,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x + 1,src.y - 2,src.z))
|
||||
E.strength = 1
|
||||
E = new /obj/effect/energy_field(locate(src.x - 1,src.y - 2,src.z))
|
||||
E.strength = 1
|
||||
src.charged = 0
|
||||
src.chargetime = src.recharge
|
||||
spawn (src.recharge)
|
||||
for(var/obj/effect/energy_field/F in range(5,src))
|
||||
del F
|
||||
if("teleport")
|
||||
var/list/randomturfs = new/list()
|
||||
for(var/turf/T in orange(user, 50))
|
||||
if(!istype(T, /turf/simulated/floor) || T.density)
|
||||
continue
|
||||
randomturfs.Add(T)
|
||||
if(randomturfs.len > 0)
|
||||
user << "\red You are suddenly zapped away elsewhere!"
|
||||
user.loc = pick(randomturfs)
|
||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
|
||||
sparks.set_up(3, 0, get_turf(src)) //no idea what the 0 is
|
||||
sparks.start()
|
||||
|
||||
else if (src.effectmode == "contact" && src.activated && !src.charged) user << "The artifact feels warm, but nothing interesting happens."
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*
|
||||
/obj/submachine/artifact_analyser
|
||||
name = "Artifact Analyser"
|
||||
desc = "Studies the structure of artifacts to discover their uses."
|
||||
icon = 'artifacts.dmi'
|
||||
icon_state = "AAn-off"
|
||||
anchored = 1
|
||||
density = 1
|
||||
var/working = 0
|
||||
var/accuO = 0
|
||||
var/accuT = 0
|
||||
var/accuE1 = 0
|
||||
var/accuE2 = 0
|
||||
var/aorigin = "None"
|
||||
var/atrigger = "None"
|
||||
var/aeffect1 = "None"
|
||||
var/aeffect2 = "None"
|
||||
var/list/allorigins = list("Ancient Robots","Martian","Wizard Federation","Extradimensional","Precursor")
|
||||
var/list/alltriggers = list("Contact with Living Organism","Heavy Impact","Contact with Energy Source","Contact with Hydrogen","Contact with Corrosive Substance","Contact with Volatile Substance","Contact with Toxins","Exposure to Heat")
|
||||
var/list/alleffects = list("Healing Device","Anti-biological Weapon","Non-lethal Stunning Trap","Mechanoid Repair Module","Mechanoid Deconstruction Device","Power Generator","Power Drain","Stellar Mineral Attractor","Agriculture Regulator","Shield Generator","Space-Time Displacer")
|
||||
var/list/allranges = list("Constant Short-Range Energy Field","Medium Range Energy Pulses","Long Range Energy Pulses","Extreme Range Energy Pulses","Requires contact with subject")
|
||||
|
||||
attack_hand(var/mob/user as mob)
|
||||
user.machine = src
|
||||
if (!src.working)
|
||||
var/dat = {"<B>Artifact Analyser</B><BR>
|
||||
<HR><BR>
|
||||
<B>Artifact Origin:</B> [aorigin] ([accuO]%)<BR>
|
||||
<B>Activation Trigger:</B> [atrigger] ([accuT]%)<BR>
|
||||
<B>Artifact Function:</B> [aeffect1] ([accuE1]%)<BR>
|
||||
<B>Artifact Range:</B> [aeffect2] ([accuE2]%)<BR><BR>
|
||||
<HR><BR>
|
||||
<A href='?src=\ref[src];ops=1'>Analyse Artifact<BR>
|
||||
<A href='?src=\ref[src];ops=2'>Label Artifact"}
|
||||
user << browse(dat, "window=artanalyser;size=400x500")
|
||||
onclose(user, "artanalyser")
|
||||
else
|
||||
var/dat = {"<B>Artifact Analyser</B><BR>
|
||||
<HR><BR>
|
||||
<B>Please wait. Analysis in progress.</B><BR>"}
|
||||
user << browse(dat, "window=artanalyser;size=450x500")
|
||||
onclose(user, "artanalyser")
|
||||
|
||||
Topic(href, href_list)
|
||||
if(href_list["ops"])
|
||||
var/operation = text2num(href_list["ops"])
|
||||
if(operation == 1) // Analyse Artifact
|
||||
var/findarti = 0
|
||||
for(var/obj/machinery/artifact/A in range(1,src))
|
||||
findarti++
|
||||
if (findarti == 1)
|
||||
for(var/obj/machinery/artifact/A in range(1,src))
|
||||
A.anchored = 1
|
||||
src.working = 1
|
||||
src.icon_state = "AAn-on"
|
||||
var/time = 40
|
||||
for(var/i = artifact_research.starting_tier, i <= artifact_research.max_tiers, i++)
|
||||
for(var/datum/artiresearch/R in artifact_research.researched_items[i])
|
||||
if (R.bonustype == "analyser") time -= R.bonusTime
|
||||
time *= 10
|
||||
for(var/mob/O in hearers(src, null))
|
||||
O.show_message(text("<b>[]</b> states, 'Commencing analysis.'", src), 1)
|
||||
AA_Analyse()
|
||||
spawn(time)
|
||||
for(var/obj/machinery/artifact/A in range(1,src))
|
||||
A.anchored = 0
|
||||
src.working = 0
|
||||
icon_state = "AAn-off"
|
||||
for(var/mob/O in hearers(src, null))
|
||||
O.show_message(text("<b>[]</b> states, 'Analysis complete.'", src), 1)
|
||||
else if (findarti > 1)
|
||||
for(var/mob/O in hearers(src, null))
|
||||
O.show_message(text("<b>[]</b> states, 'Cannot analyse. Too many artifacts nearby.'", src), 1)
|
||||
else
|
||||
for(var/mob/O in hearers(src, null))
|
||||
O.show_message(text("<b>[]</b> states, 'Cannot analyse. No artifact found.'", src), 1)
|
||||
if(operation == 2) // Label Artifact
|
||||
var/input = input(usr, "What do you want to name this artifact?.", "What?", "")
|
||||
if (input)
|
||||
for(var/obj/machinery/artifact/A in range(1,src))
|
||||
A.name = input
|
||||
src.updateUsrDialog()
|
||||
|
||||
proc
|
||||
AA_FailedAnalysis(var/failtype)
|
||||
switch(failtype)
|
||||
if(1)
|
||||
src.aorigin = "Failed to Identify"
|
||||
if (prob(20)) src.aorigin = pick(src.allorigins)
|
||||
if(2)
|
||||
src.atrigger = "Failed to Identify"
|
||||
if (prob(20)) src.atrigger = pick(src.alltriggers)
|
||||
if(3)
|
||||
src.aeffect1 = "Failed to Identify"
|
||||
if (prob(20)) src.aeffect1 = pick(src.alleffects)
|
||||
if(4)
|
||||
src.aeffect2 = "Failed to Identify"
|
||||
if (prob(20)) src.aeffect2 = pick(src.allranges)
|
||||
|
||||
AA_Analyse()
|
||||
src.accuO = rand(0,10)
|
||||
src.accuT = rand(0,10)
|
||||
src.accuE1 = rand(0,10)
|
||||
src.accuE2 = rand(0,10)
|
||||
// Calculate report accuracy
|
||||
for (var/obj/machinery/artifact/A in range(1,src))
|
||||
for(var/i = artifact_research.starting_tier, i <= artifact_research.max_tiers, i++)
|
||||
for(var/datum/artiresearch/R in artifact_research.researched_items[i])
|
||||
if (R.bonustype == A.origin)
|
||||
src.accuO += R.bonusamtO
|
||||
src.accuT += R.bonusamtT
|
||||
src.accuE1 += R.bonusamtE
|
||||
src.accuE2 += R.bonusamtE
|
||||
if (R.bonustype == "all")
|
||||
src.accuO += R.bonusamtO
|
||||
src.accuT += R.bonusamtT
|
||||
src.accuE1 += R.bonusamtE
|
||||
src.accuE2 += R.bonusamtE
|
||||
if (src.accuO > 100) src.accuO = 100
|
||||
if (src.accuT > 100) src.accuT = 100
|
||||
if (src.accuE1 > 100) src.accuE1 = 100
|
||||
if (src.accuE2 > 100) src.accuE2 = 100
|
||||
// Roll to generate report
|
||||
for (var/obj/machinery/artifact/A in range(1,src))
|
||||
if (prob(accuO))
|
||||
switch(A.origin)
|
||||
if("ancient") src.aorigin = "Ancient Robots"
|
||||
if("martian") src.aorigin = "Martian"
|
||||
if("wizard") src.aorigin = "Wizard Federation"
|
||||
if("eldritch") src.aorigin = "Extradimensional"
|
||||
if("precursor") src.aorigin = "Precursor"
|
||||
else src.aorigin = "Unknown Origin"
|
||||
else AA_FailedAnalysis(1)
|
||||
if (prob(accuT))
|
||||
switch(A.trigger)
|
||||
if("touch") src.atrigger = "Contact with Living Organism"
|
||||
if("force") src.atrigger = "Heavy Impact"
|
||||
if("energy") src.atrigger = "Contact with Energy Source"
|
||||
if("chemical")
|
||||
switch(A.triggerX)
|
||||
if("hydrogen") src.atrigger = "Contact with Hydrogen"
|
||||
if("corrosive") src.atrigger = "Contact with Corrosive Substance"
|
||||
if("volatile") src.atrigger = "Contact with Volatile Substance"
|
||||
if("toxin") src.atrigger = "Contact with Toxins"
|
||||
if("heat") src.atrigger = "Exposure to Heat"
|
||||
else src.atrigger = "Unknown Trigger"
|
||||
else AA_FailedAnalysis(2)
|
||||
if (prob(accuE1))
|
||||
switch(A.effecttype)
|
||||
if("healing") src.aeffect1 = "Healing Device"
|
||||
if("injure") src.aeffect1 = "Anti-biological Weapon"
|
||||
if("stun") src.aeffect1 = "Non-lethal Stunning Trap"
|
||||
if("roboheal") src.aeffect1 = "Mechanoid Repair Module"
|
||||
if("robohurt") src.aeffect1 = "Mechanoid Deconstruction Device"
|
||||
if("cellcharge") src.aeffect1 = "Power Generator"
|
||||
if("celldrain") src.aeffect1 = "Power Drain"
|
||||
if("planthelper") src.aeffect1 = "Agriculture Regulator"
|
||||
if("forcefield") src.aeffect1 = "Shield Generator"
|
||||
if("teleport") src.aeffect1 = "Space-Time Displacer"
|
||||
else src.aeffect1 = "Unknown Effect"
|
||||
else AA_FailedAnalysis(3)
|
||||
if (prob(accuE2))
|
||||
switch(A.effectmode)
|
||||
if("aura") src.aeffect2 = "Constant Short-Range Energy Field"
|
||||
if("pulse")
|
||||
if(A.aurarange > 7) src.aeffect2 = "Long Range Energy Pulses"
|
||||
else src.aeffect2 = "Medium Range Energy Pulses"
|
||||
if("worldpulse") src.aeffect2 = "Extreme Range Energy Pulses"
|
||||
if("contact") src.aeffect2 = "Requires contact with subject"
|
||||
else src.aeffect2 = "Unknown Range"
|
||||
else AA_FailedAnalysis(4)
|
||||
*/
|
||||
|
||||
// this was used in QM for a time but it fell into disuse and wasn't removed, the purpose being to check if an artifact
|
||||
// was benevolent or malicious, to determine whether QMs would be paid or punished for shipping it
|
||||
|
||||
/proc/artifact_checkgood(var/obj/machinery/artifact/A)
|
||||
switch(A.effecttype)
|
||||
if("healing") return 1
|
||||
if("injure") return 0
|
||||
if("stun") return 0
|
||||
if("roboheal") return 1
|
||||
if("robohurt") return 0
|
||||
if("cellcharge") return 1
|
||||
if("celldrain") return 1
|
||||
if("planthelper") return 1
|
||||
if("forcefield") return 1
|
||||
if("teleport") return 0
|
||||
Reference in New Issue
Block a user