diff --git a/code/datums/spells/mind_transfer.dm b/code/datums/spells/mind_transfer.dm index e1b9d3174a8..c08318ed3b7 100644 --- a/code/datums/spells/mind_transfer.dm +++ b/code/datums/spells/mind_transfer.dm @@ -4,10 +4,10 @@ school = "transmutation" charge_max = 600 - clothes_req = 1 + clothes_req = 0 invocation = "GIN'YU CAPAN" invocation_type = "whisper" - range = 7 + range = 1 var/list/protected_roles = list("Wizard","Changeling","Cultist") //which roles are immune to the spell var/list/compatible_mobs = list(/mob/living/carbon/human,/mob/living/carbon/monkey) //which types of mobs are affected by the spell. NOTE: change at your own risk var/base_spell_loss_chance = 20 //base probability of the wizard losing a spell in the process diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm index a187e54f361..671036683a5 100644 --- a/code/datums/spells/wizard.dm +++ b/code/datums/spells/wizard.dm @@ -54,7 +54,7 @@ invocation_type = "shout" range = 1 - destroys = "disintegrate" + destroys = "gib" sparks_spread = 1 sparks_amt = 4 diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 2bbc91c689e..7ee52ef1bcc 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -9,18 +9,17 @@ var/unacidable = 0 //universal "unacidabliness" var, here so you can use it in any obj. animate_movement = 2 var/throwforce = 1 - proc - handle_internal_lifeform(mob/lifeform_inside_me, breath_request) - //Return: (NONSTANDARD) - // null if object handles breathing logic for lifeform - // datum/air_group to tell lifeform to process using that breath return - //DEFAULT: Take air from turf to give to have mob process - if(breath_request>0) - return remove_air(breath_request) - else - return null + proc/handle_internal_lifeform(mob/lifeform_inside_me, breath_request) + //Return: (NONSTANDARD) + // null if object handles breathing logic for lifeform + // datum/air_group to tell lifeform to process using that breath return + //DEFAULT: Take air from turf to give to have mob process + if(breath_request>0) + return remove_air(breath_request) + else + return null - initialize() + proc/initialize() /obj/signpost icon = 'stationobjs.dmi' diff --git a/code/defines/obj/clothing/head.dm b/code/defines/obj/clothing/head.dm index 8b46f54130a..fbc4fe96da6 100644 --- a/code/defines/obj/clothing/head.dm +++ b/code/defines/obj/clothing/head.dm @@ -13,7 +13,7 @@ desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation" radiation_protection = 0.35 flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH - armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 0, rad = 100) + armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 60, rad = 100) /obj/item/clothing/head/bomb_hood name = "bomb hood" @@ -153,30 +153,6 @@ armor = list(melee = 75, bullet = 10, laser = 50, taser = 10, bomb = 25, bio = 10, rad = 0) protective_temperature = 500 heat_transfer_coefficient = 0.10 - var/obj/item/clothing/glasses/hud/security/shud = null - - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if((istype(W,/obj/item/clothing/glasses/hud/security)) && (!istype(src, /obj/item/clothing/head/helmet/space)) && (!shud)) - user.remove_from_mob(W) - shud = W - W.loc = src - user << "You attach the [W.name] to the [src.name]." - desc = "Standard Security gear. This helmet has a [shud.name] attached to it." - return - ..() - - - attack_self(mob/user as mob) - if(shud) - shud.loc = get_turf(src) - user << "You take the [shud.name] off of the [src.name]." - shud = null - desc = "Standard Security gear." - return - ..() - - /obj/item/clothing/head/secsoft name = "Soft Cap" @@ -195,38 +171,6 @@ permeability_coefficient = 0.01 armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 25, rad = 25) -/obj/item/clothing/head/helmet/space/engineering - name = "Engineering space helmet" - desc = "A special helmet designed for work in a hazardous, low-pressure environment. Painted in Engineering Orange to designate its department of origin." - icon_state = "helm_engineering0" - item_state = "helm-orange" - var/brightness_on = 4 - var/on = 0 - radiation_protection = 0.25 - armor = list(melee = 40, bullet = 30, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - -/obj/item/clothing/head/helmet/space/command - name = "Command space helmet" - desc = "A special helmet designed to work in a hazardous, low-pressure environment. Painted in Command Blue to designate its department of origin." - icon_state = "helm-command" - item_state = "helm-command" - radiation_protection = 0.25 - armor = list(melee = 40, bullet = 30, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - -/obj/item/clothing/head/helmet/space/command/chief_engineer - name = "Chief engineer space helmet" - desc = "A special helmet designed to work in a hazardous, low-pressure environment. Bears the insignia of the chief engineer." - icon_state = "helm_ce0" - item_state = "helm-ce" - var/brightness_on = 4 - var/on = 0 - -/obj/item/clothing/head/helmet/space/command/chief_medical_officer - name = "Chief medical offier space helmet" - desc = "A special helmet designed to work in a hazardous, low-pressure environment. Bears the insignia of the chief medical officer." - icon_state = "helm-cmo" - item_state = "helm-cmo" - /obj/item/clothing/head/helmet/space/capspace name = "space helmet" icon_state = "capspace" @@ -237,13 +181,6 @@ permeability_coefficient = 0.01 armor = list(melee = 60, bullet = 50, laser = 50, taser = 25, bomb = 50, bio = 20, rad = 20) -/obj/item/clothing/head/helmet/space/rig - desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." - name = "rig helmet" - icon_state = "rig" - item_state = "rig_helm" - radiation_protection = 0.25 - armor = list(melee = 40, bullet = 30, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) /obj/item/clothing/head/helmet/space/syndicate name = "red space helmet" @@ -275,15 +212,15 @@ icon_state = "syndicate-helm-green-dark" item_state = "syndicate-helm-green-dark" -/*/obj/item/clothing/head/helmet/space/syndicate/orange +/obj/item/clothing/head/helmet/space/syndicate/orange name = "Orange Space Helmet" icon_state = "syndicate-helm-orange" - item_state = "syndicate-helm-orange"*/ //As I said: Best used for engineering suits + item_state = "syndicate-helm-orange" -/*/obj/item/clothing/head/helmet/space/syndicate/blue +/obj/item/clothing/head/helmet/space/syndicate/blue name = "Blue Space Helmet" icon_state = "syndicate-helm-blue" - item_state = "syndicate-helm-blue"*/ + item_state = "syndicate-helm-blue" /obj/item/clothing/head/helmet/space/syndicate/black name = "Black Space Helmet" @@ -300,10 +237,10 @@ icon_state = "syndicate-helm-black-blue" item_state = "syndicate-helm-black-blue" -/*/obj/item/clothing/head/helmet/space/syndicate/black/med +/obj/item/clothing/head/helmet/space/syndicate/black/med name = "Black Space Helmet" icon_state = "syndicate-helm-black-med" - item_state = "syndicate-helm-black"*/ + item_state = "syndicate-helm-black" /obj/item/clothing/head/helmet/space/syndicate/black/orange name = "Black Space Helmet" @@ -315,10 +252,10 @@ icon_state = "syndicate-helm-black-red" item_state = "syndicate-helm-black-red" -/*/obj/item/clothing/head/helmet/space/syndicate/black/engie +obj/item/clothing/head/helmet/space/syndicate/black/engie name = "Black Space Helmet" icon_state = "syndicate-helm-black-engie" - item_state = "syndicate-helm-black"*/ + item_state = "syndicate-helm-black" /obj/item/clothing/head/syndicatefake name = "red space helmet replica" diff --git a/code/defines/obj/clothing/suit.dm b/code/defines/obj/clothing/suit.dm index c2498e645e8..a99263bc083 100644 --- a/code/defines/obj/clothing/suit.dm +++ b/code/defines/obj/clothing/suit.dm @@ -451,51 +451,33 @@ slowdown = 3 armor = list(melee = 20, bullet = 15, laser = 10, taser = 3, bomb = 15, bio = 30, rad = 40) -/obj/item/clothing/suit/space/engineering - name = "Engineering space suit" - desc = "Much like its generic counterpart, the spacesuit is painted a bright orange color to designate its department of origin." - icon_state = "suit-orange" - item_state = "suit-orange" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/satchel,/obj/item/device/t_scanner) + +/obj/item/clothing/head/helmet/space/rig + name = "Rig helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." + icon_state = "rig-engineering" + item_state = "rig_helm" armor = list(melee = 40, bullet = 30, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - slowdown = 2 - radiation_protection = 0.50 - -/obj/item/clothing/suit/space/command - name = "Command space suit" - desc = "Much like its generic counterpart, the spacesuit is painted a dark blue color to designate its department of origin." - icon_state = "suit-command" - item_state = "suit-command" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/gun/energy) - armor = list(melee = 40, bullet = 30, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - slowdown = 2 - radiation_protection = 0.25 - -/obj/item/clothing/suit/space/command/chief_engineer - name = "Chief engineer suit" - desc = "Much like its generic counterpart, the spacesuit is painted a black and dark yellow color to designate its department of origin." - icon_state = "suit-ce" - item_state = "syndicate-black" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/satchel,/obj/item/device/t_scanner,/obj/item/weapon/gun/energy) - radiation_protection = 0.50 - -/obj/item/clothing/suit/space/command/chief_medical_officer - name = "Chief medical officer suit" - desc = "Much like its generic counterpart, the spacesuit is marked with the red cross to designate its department of origin." - icon_state = "suit-cmo" - item_state = "syndicate-black" - radiation_protection = 0.25 + allowed = list(/obj/item/device/flashlight) +/obj/item/clothing/head/helmet/space/rig/mining + icon_state = "rig-mining" + item_state = "rig_helm" /obj/item/clothing/suit/space/rig name = "Rig suit" desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." - icon_state = "rig" + icon_state = "rig-engineering" item_state = "rig_suit" radiation_protection = 0.50 slowdown = 2 armor = list(melee = 40, bullet = 30, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/satchel) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/satchel,/obj/item/device/t_scanner) + +/obj/item/clothing/suit/space/rig/mining + icon_state = "rig-mining" + item_state = "rig_suit" + /obj/item/clothing/suit/space/syndicate name = "red space suit" @@ -531,15 +513,15 @@ icon_state = "syndicate-green-dark" item_state = "syndicate-green-dark" -/*/obj/item/clothing/suit/space/syndicate/orange +/obj/item/clothing/suit/space/syndicate/orange name = "Orange Space Suit" icon_state = "syndicate-orange" - item_state = "syndicate-orange"*/ //Best used as an engineering suit, nyoro~n ;3 As is the other stuff below + item_state = "syndicate-orange" -/*/obj/item/clothing/suit/space/syndicate/blue +/obj/item/clothing/suit/space/syndicate/blue name = "Blue Space Suit" icon_state = "syndicate-blue" - item_state = "syndicate-blue"*/ + item_state = "syndicate-blue" /obj/item/clothing/suit/space/syndicate/black name = "Black Space Suit" @@ -556,10 +538,10 @@ icon_state = "syndicate-black-blue" item_state = "syndicate-black-blue" -/*/obj/item/clothing/suit/space/syndicate/black/med +/obj/item/clothing/suit/space/syndicate/black/med name = "Green Space Suit" icon_state = "syndicate-black-med" - item_state = "syndicate-black"*/ + item_state = "syndicate-black" /obj/item/clothing/suit/space/syndicate/black/orange name = "Black and Orange Space Suit" @@ -571,10 +553,10 @@ icon_state = "syndicate-black-red" item_state = "syndicate-black-red" -/*/obj/item/clothing/suit/space/syndicate/black/engie +/obj/item/clothing/suit/space/syndicate/black/engie name = "Black Engineering Space Suit" icon_state = "syndicate-black-engie" - item_state = "syndicate-black"*/ + item_state = "syndicate-black" /obj/item/clothing/suit/syndicatefake name = "red space suit replica" diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 1a043f563df..5d115a53304 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -26,6 +26,16 @@ m_amt = 1000 origin_tech = "materials=2" +/obj/item/weapon/sord + name = "SORD" + desc = "This thing is so unspeakably shitty you are having a hard time even holding it." + icon_state = "sord" + item_state = "sord" + flags = FPRINT | ONBELT | TABLEPASS + force = 2 + throwforce = 1 + w_class = 3 + /obj/item/weapon/bodybag name = "body bag" desc = "Bag mixed with a bit of body." diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 7e439c6ccfc..9f5925f0b58 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -1,5 +1,3 @@ - - /datum/game_mode var list/datum/mind/cult = list() @@ -11,7 +9,7 @@ /proc/is_convertable_to_cult(datum/mind/mind) if(!istype(mind)) return 0 - if(istype(mind.current, /mob/living/carbon/human) && !(mind.assigned_role in list("Captain", "Head of Security", "Security Officer", "Detective", "Chaplain", "Warden"))) return 0 + if(istype(mind.current, /mob/living/carbon/human) && (mind.assigned_role in list("Captain", "Head of Security", "Security Officer", "Detective", "Chaplain", "Warden"))) return 0 for(var/obj/item/weapon/implant/loyalty/L in mind.current) if(L && L.implanted) return 0 diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index a3378a795fa..7ce7bc636ef 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -258,7 +258,6 @@ datum/objective/steal "a pair of magboots" = /obj/item/clothing/shoes/magboots, "the station blueprints" = /obj/item/blueprints, "thermal optics" = /obj/item/clothing/glasses/thermal, - "a mining rig suit" = /obj/item/clothing/suit/space/rig, "a nasa voidsuit" = /obj/item/clothing/suit/space/nasavoid, "28 moles of plasma (full tank)" = /obj/item/weapon/tank, ) diff --git a/code/game/jobs/jobprocs.dm b/code/game/jobs/jobprocs.dm index 502eb9e86fa..8671e364007 100644 --- a/code/game/jobs/jobprocs.dm +++ b/code/game/jobs/jobprocs.dm @@ -325,7 +325,7 @@ src.equip_if_possible(new /obj/item/clothing/head/helmet/warden(src), slot_head) src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) - src.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses) + src.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(src), slot_glasses) src.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(src), slot_wear_mask) src.equip_if_possible(new /obj/item/weapon/gun/energy/taser(src), slot_s_store) src.equip_if_possible(new /obj/item/weapon/handcuffs(src), slot_in_backpack) @@ -354,7 +354,7 @@ src.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(src), slot_wear_mask) src.equip_if_possible(new /obj/item/weapon/storage/backpack/security (src), slot_back) src.equip_if_possible(new /obj/item/weapon/storage/box(src.back), slot_in_backpack) - src.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses) + src.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(src), slot_glasses) src.equip_if_possible(new /obj/item/weapon/handcuffs(src), slot_in_backpack) src.equip_if_possible(new /obj/item/weapon/gun/energy(src), slot_s_store) src.equip_if_possible(new /obj/item/device/flash(src), slot_l_store) diff --git a/code/game/machinery/computer/explosive.dm b/code/game/machinery/computer/explosive.dm index 8f7428b12f3..72d269acddd 100644 --- a/code/game/machinery/computer/explosive.dm +++ b/code/game/machinery/computer/explosive.dm @@ -74,15 +74,15 @@ if(href_list["inject1"]) var/obj/item/weapon/implant/I = locate(href_list["inject1"]) - I.trigger(1) + I.activate(1) else if(href_list["inject5"]) var/obj/item/weapon/implant/I = locate(href_list["inject5"]) - I.trigger(5) + I.activate(5) else if(href_list["inject10"]) var/obj/item/weapon/implant/I = locate(href_list["inject10"]) - I.trigger(10) + I.activate(10) else if(href_list["lock"]) if(src.allowed(usr)) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 7208eeedbc5..1bc044eb5d2 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -32,29 +32,11 @@ HELMET = new /obj/item/clothing/head/helmet/space/ MASK = new /obj/item/clothing/mask/breath -/obj/machinery/suit_storage_unit/engineering_unit - SUIT = new /obj/item/clothing/suit/space/engineering - HELMET = new /obj/item/clothing/head/helmet/space/engineering - MASK = new /obj/item/clothing/mask/breath - -/obj/machinery/suit_storage_unit/chief_engineer_unit - SUIT = new /obj/item/clothing/suit/space/command/chief_engineer - HELMET = new /obj/item/clothing/head/helmet/space/command/chief_engineer - MASK = new /obj/item/clothing/mask/breath - -/obj/machinery/suit_storage_unit/chief_medical_officer_unit - SUIT = new /obj/item/clothing/suit/space/command/chief_medical_officer - HELMET = new /obj/item/clothing/head/helmet/space/command/chief_medical_officer - MASK = new /obj/item/clothing/mask/breath - -/obj/machinery/suit_storage_unit/command_unit - SUIT = new /obj/item/clothing/suit/space/command - HELMET = new /obj/item/clothing/head/helmet/space/command - MASK = new /obj/item/clothing/mask/breath /obj/machinery/suit_storage_unit/New() src.update_icon() + /obj/machinery/suit_storage_unit/update_icon() var/hashelmet = 0 var/hassuit = 0 @@ -67,6 +49,7 @@ hashuman = 1 icon_state = text("suitstorage[][][][][][][][][]",hashelmet,hassuit,hashuman,src.isopen,src.islocked,src.isUV,src.ispowered,src.isbroken,src.issuperUV) + /obj/machinery/suit_storage_unit/power_change() if( powered() ) src.ispowered = 1 @@ -81,6 +64,7 @@ src.dump_everything() src.update_icon() + /obj/machinery/suit_storage_unit/ex_act(severity) switch(severity) if(1.0) @@ -89,13 +73,14 @@ del(src) return if(2.0) - if (prob(50)) + if(prob(50)) src.dump_everything() del(src) return else return + /obj/machinery/suit_storage_unit/attack_hand(mob/user as mob) var/dat if(..()) @@ -156,6 +141,7 @@ onclose(user, "suit_storage_unit") return + /obj/machinery/suit_storage_unit/Topic(href, href_list) //I fucking HATE this proc if(..()) return @@ -202,6 +188,7 @@ src.add_fingerprint(usr) return + /obj/machinery/suit_storage_unit/proc/toggleUV(mob/user as mob) var/protected = 0 var/mob/living/carbon/human/H = user @@ -227,6 +214,7 @@ src.issuperUV = 1 return + /obj/machinery/suit_storage_unit/proc/togglesafeties(mob/user as mob) var/protected = 0 var/mob/living/carbon/human/H = user @@ -247,6 +235,7 @@ user << "You push the button. The coloured LED next to it changes." src.safetieson = !src.safetieson + /obj/machinery/suit_storage_unit/proc/dispense_helmet(mob/user as mob) if(!src.HELMET) return //Do I even need this sanity check? Nyoro~n @@ -255,6 +244,7 @@ src.HELMET = null return + /obj/machinery/suit_storage_unit/proc/dispense_suit(mob/user as mob) if(!src.SUIT) return @@ -263,6 +253,7 @@ src.SUIT = null return + /obj/machinery/suit_storage_unit/proc/dispense_mask(mob/user as mob) if(!src.MASK) return @@ -271,6 +262,7 @@ src.MASK = null return + /obj/machinery/suit_storage_unit/proc/dump_everything() src.islocked = 0 //locks go free if(src.SUIT) @@ -286,6 +278,7 @@ src.eject_occupant(OCCUPANT) return + /obj/machinery/suit_storage_unit/proc/toggle_open(mob/user as mob) if(src.islocked || src.isUV) user << "Unable to open unit." @@ -296,6 +289,7 @@ src.isopen = !src.isopen return + /obj/machinery/suit_storage_unit/proc/toggle_lock(mob/user as mob) if(src.OCCUPANT && src.safetieson) user << "The Unit's safety protocols disallow locking when a biological form is detected inside its compartments." @@ -305,6 +299,7 @@ src.islocked = !src.islocked return + /obj/machinery/suit_storage_unit/proc/start_UV(mob/user as mob) if(src.isUV || src.isopen) //I'm bored of all these sanity checks return @@ -383,11 +378,13 @@ user << "Test. You gave him 8 damage" return*/ + /obj/machinery/suit_storage_unit/proc/cycletimeleft() if(src.cycletime_left >= 1) src.cycletime_left-- return src.cycletime_left + /obj/machinery/suit_storage_unit/proc/eject_occupant(mob/user as mob) if (src.islocked) return @@ -412,6 +409,7 @@ src.update_icon() return + /obj/machinery/suit_storage_unit/verb/get_out() set name = "Eject Suit Storage Unit" set category = "Object" @@ -425,6 +423,7 @@ src.update_icon() return + /obj/machinery/suit_storage_unit/verb/move_inside() set name = "Hide in Suit Storage Unit" set category = "Object" @@ -463,6 +462,7 @@ src.OCCUPANT = null //Testing this as a backup sanity test return + /obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob) if(!src.ispowered) return @@ -551,9 +551,11 @@ src.updateUsrDialog() return + /obj/machinery/suit_storage_unit/attack_ai(mob/user as mob) return src.attack_hand(user) + /obj/machinery/suit_storage_unit/attack_paw(mob/user as mob) user << "The console controls are far too complicated for your tiny brain!" return diff --git a/code/game/objects/closets/secure/security.dm b/code/game/objects/closets/secure/security.dm index 98f70dcf93b..9d10345c459 100644 --- a/code/game/objects/closets/secure/security.dm +++ b/code/game/objects/closets/secure/security.dm @@ -8,7 +8,7 @@ new /obj/item/device/flash(src) new /obj/item/clothing/suit/armor/vest(src) new /obj/item/clothing/head/helmet(src) - new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/weapon/melee/baton(src) return @@ -30,6 +30,7 @@ new /obj/item/clothing/gloves/black( src ) new /obj/item/weapon/storage/lglo_kit( src ) new /obj/item/weapon/fcardholder( src ) + new /obj/item/weapon/clipboard( src ) new /obj/item/device/detective_scanner( src ) return @@ -56,7 +57,7 @@ new /obj/item/device/flash( src ) new /obj/item/clothing/under/rank/head_of_security( src ) new /obj/item/clothing/shoes/brown( src ) - new /obj/item/clothing/glasses/sunglasses( src ) + new /obj/item/clothing/glasses/sunglasses/sechud( src ) new /obj/item/clothing/suit/armor/hos( src ) new /obj/item/clothing/head/helmet( src ) new /obj/item/weapon/storage/flashbang_kit(src) diff --git a/code/game/objects/devices/flash.dm b/code/game/objects/devices/flash.dm index 39eec630f2f..ba536cdaeed 100644 --- a/code/game/objects/devices/flash.dm +++ b/code/game/objects/devices/flash.dm @@ -46,22 +46,28 @@ flick("e_flash", M.flash) if(ishuman(M)) - var/revsafe = 0 - for(var/obj/item/weapon/implant/loyalty/L in M) - if(L && L.implanted) - revsafe = 1 - break - if(M.mind.has_been_rev) - revsafe = 1 - if(!revsafe) - if(user.mind in ticker.mode.head_revolutionaries) - ticker.mode.add_revolutionary(M.mind) + if(user.mind in ticker.mode.head_revolutionaries) + var/revsafe = 0 + for(var/obj/item/weapon/implant/loyalty/L in M) + if(L && L.implanted) + revsafe = 1 + break + if(M.mind.has_been_rev) + revsafe = 2 + if(!revsafe) M.mind.has_been_rev = 1 + ticker.mode.add_revolutionary(M.mind) + else if(revsafe == 1) + user << "\red Something seems to be blocking the flash!" + else + user << "\red This mind seems resistant to the flash!" else flashfail = 1 - else if(isrobot(M)) + else if(issilicon(M)) M.weakened = max(user.weakened, rand(5,10)) + + if(isrobot(user)) spawn(0) var/atom/movable/overlay/animation = new(user.loc) animation.layer = user.layer + 1 diff --git a/code/game/objects/devices/flashlight.dm b/code/game/objects/devices/flashlight.dm index 9d393c1a500..d84299e05cb 100644 --- a/code/game/objects/devices/flashlight.dm +++ b/code/game/objects/devices/flashlight.dm @@ -104,6 +104,7 @@ user.sd_SetLuminosity(user.luminosity - brightness_on) src.sd_SetLuminosity(brightness_on) +/* /obj/item/clothing/head/helmet/space/engineering/verb/toggle() set name = "Toggle Helmet Light" set category = "Object" @@ -164,3 +165,4 @@ usr.sd_SetLuminosity(usr.luminosity - brightness_on) src.sd_SetLuminosity(brightness_on) +*/ \ No newline at end of file diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 57aa1762977..6b21bf726c7 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -7,11 +7,16 @@ allow_reagents = 0 proc trigger(emote, source as mob) + activate() implanted(source as mob) get_data() - trigger() + trigger(emote, source as mob) + return + + + activate() return @@ -81,30 +86,6 @@ ID (1-100): +
"} return dat - Topic(href, href_list) - ..() - if (usr.stat) - return - var/obj/item/weapon/implantpad/IP = (locate(/obj/item/weapon/implantpad) in usr) - if(IP) - if(IP.case) - if(IP.case.imp == src) - usr.machine = src - if (href_list["id"]) - src.id += text2num(href_list["id"]) - src.id = min(100, src.id) - src.id = max(1, src.id) - if (istype(src.loc, /mob)) - attack_self(src.loc) - else - for(var/mob/M in viewers(1, src)) - if (M.client) - src.attack_self(M) - src.add_fingerprint(usr) - return - usr << browse(null, "window=implantpad") - return - /obj/item/weapon/implant/explosive @@ -126,6 +107,11 @@ ID (1-100): return dat + activate(var/cause) + if((!cause) || (!src.imp_in)) return 0 + //explode here + + /obj/item/weapon/implant/chem name = "chem" @@ -158,10 +144,10 @@ the implant may become unstable and either pre-maturely inject the subject or si R.my_atom = src - trigger(var/number = 0) - if((!number) || (!src.imp_in)) return 0 + activate(var/cause) + if((!cause) || (!src.imp_in)) return 0 var/mob/living/carbon/R = src.imp_in - src.reagents.trans_to(R, number) + src.reagents.trans_to(R, cause) R << "You hear a faint *beep*." if(!src.reagents.total_volume) R << "You hear a faint click from your chest." diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 7a4dd84d770..62910591e24 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -41,11 +41,12 @@ else health_text = "[round(src.occupant.health,0.1)]" - var/dat = {"Implanter Status
- Current occupant: [src.occupant ? "
Name: [src.occupant]
Health: [health_text]
" : "None"]
- Implants: [src.implant_list.len ? "[implant_list.len]" : "Replenish"]
- [src.ready ? "Implant" : "Recharging"]
- "} + var/dat ="Implanter Status
" + + dat +="Current occupant: [src.occupant ? "
Name: [src.occupant]
Health: [health_text]
" : "None"]
" + dat += "Implants: [src.implant_list.len ? "[implant_list.len]" : "Replenish"]
" + if(src.occupant) + dat += "[src.ready ? "Implant" : "Recharging"]
" user.machine = src user << browse(dat, "window=implant") onclose(user, "implant") @@ -54,11 +55,12 @@ Topic(href, href_list) if((get_dist(src, usr) <= 1) || istype(usr, /mob/living/silicon/ai)) if(href_list["implant"]) - injecting = 1 - go_out() - ready = 0 - spawn(injection_cooldown) - ready = 1 + if(src.occupant) + injecting = 1 + go_out() + ready = 0 + spawn(injection_cooldown) + ready = 1 if(href_list["replenish"]) ready = 0 diff --git a/code/game/objects/items/weapons/implants/implantpad.dm b/code/game/objects/items/weapons/implants/implantpad.dm index 24a5443737e..dfa54a6bf32 100644 --- a/code/game/objects/items/weapons/implants/implantpad.dm +++ b/code/game/objects/items/weapons/implants/implantpad.dm @@ -74,17 +74,17 @@ onclose(user, "implantpad") return -/* + Topic(href, href_list) ..() if (usr.stat) return - if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) + if ((usr.contents.Find(src)) || ((in_range(src, usr) && istype(src.loc, /turf)))) usr.machine = src - if (href_list["id"]) + if (href_list["tracking_id"]) if ((istype(src.case, /obj/item/weapon/implantcase) && istype(src.case.imp, /obj/item/weapon/implant/tracking))) var/obj/item/weapon/implant/tracking/T = src.case.imp - T.id += text2num(href_list["id"]) + T.id += text2num(href_list["tracking_id"]) T.id = min(100, T.id) T.id = max(1, T.id) if (istype(src.loc, /mob)) @@ -98,4 +98,4 @@ else usr << browse(null, "window=implantpad") return - return*/ \ No newline at end of file + return \ No newline at end of file diff --git a/code/game/objects/tank.dm b/code/game/objects/tank.dm index d8e9ac7a0de..cf5f5c8064f 100644 --- a/code/game/objects/tank.dm +++ b/code/game/objects/tank.dm @@ -36,13 +36,13 @@ name = "Void Jetpack (oxygen)" desc = "It works well in a void." icon_state = "voidjetpack0" - item_state = "jetpack" + item_state = "jetpack-void" /obj/item/weapon/tank/jetpack/black_jetpack name = "Black Jetpack (oxygen)" desc = "A black model of jetpacks." icon_state = "black_jetpack0" - item_state = "black_jetpack" + item_state = "jetpack-black" /obj/item/weapon/tank/oxygen name = "Gas Tank (Oxygen)" diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm index 6c6ca67acfb..044110247ab 100644 --- a/code/game/shuttle_engines.dm +++ b/code/game/shuttle_engines.dm @@ -35,8 +35,3 @@ /obj/structure/shuttle/engine/router name = "router" icon_state = "router" -/obj/machinery/shuttle/engine/heater -/obj/machinery/shuttle/engine/propulsion -/obj/item/clothing/suit/armor/powered -/obj/item/clothing/head/helmet/powered -/obj/machinery/shuttle/engine/propulsion/burst \ No newline at end of file diff --git a/code/defines/obj/clothing/glasses.dm b/code/modules/clothing/glasses/glasses.dm similarity index 64% rename from code/defines/obj/clothing/glasses.dm rename to code/modules/clothing/glasses/glasses.dm index 28a18918652..341b1050cae 100644 --- a/code/defines/obj/clothing/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -1,16 +1,31 @@ -// GLASSES - /obj/item/clothing/glasses name = "glasses" icon = 'glasses.dmi' w_class = 2.0 flags = GLASSESCOVERSEYES + var + vision_flags = 0 + darkness_view = 0//Base human is 2 + invisa_view = 0 + +/* +SEE_SELF // can see self, no matter what +SEE_MOBS // can see all mobs, no matter what +SEE_OBJS // can see all objs, no matter what +SEE_TURFS // can see all turfs (and areas), no matter what +SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are + // in a lit area (via pixel_x,y or smooth movement), can see those pixels +BLIND // can't see anything +*/ + /obj/item/clothing/glasses/blindfold name = "blindfold" desc = "Makes you like...blind." icon_state = "blindfold" item_state = "blindfold" + vision_flags = BLIND + /obj/item/clothing/glasses/meson name = "Optical Meson Scanner" @@ -18,6 +33,9 @@ icon_state = "meson" item_state = "glasses" origin_tech = "magnets=2;engineering=2" + vision_flags = SEE_TURFS + darkness_view = -2 + /obj/item/clothing/glasses/night name = "Night Vision Goggles" @@ -25,13 +43,18 @@ icon_state = "night" item_state = "glasses" origin_tech = "magnets=2" + vision_flags = SEE_TURFS + darkness_view = 3 + /obj/item/clothing/glasses/material name = "Optical Material Scanner" - desc = "Veru confusing glasses." + desc = "Very confusing glasses." icon_state = "material" item_state = "glasses" origin_tech = "magnets=3;engineering=3" + vision_flags = SEE_OBJS + /obj/item/clothing/glasses/regular name = "Prescription Glasses" @@ -39,19 +62,33 @@ icon_state = "glasses" item_state = "glasses" + /obj/item/clothing/glasses/gglasses name = "Green Glasses" desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme." icon_state = "gglasses" item_state = "gglasses" + /obj/item/clothing/glasses/sunglasses desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." name = "Sunglasses" icon_state = "sun" item_state = "sunglasses" protective_temperature = 1300 -// var/already_worn = 0 + darkness_view = -1 + +/obj/item/clothing/glasses/sunglasses/sechud + name = "HUDSunglasses" + desc = "Sunglasses with a HUD." + icon_state = "sunhud" + var/obj/item/clothing/glasses/hud/security/hud = null + + New() + ..() + src.hud = new/obj/item/clothing/glasses/hud/security(src) + return + /obj/item/clothing/glasses/thermal name = "Optical Thermal Scanner" @@ -59,6 +96,8 @@ icon_state = "thermal" item_state = "glasses" origin_tech = "magnets=3" + vision_flags = SEE_MOBS + invisa_view = 2 /obj/item/clothing/glasses/thermal/monocle name = "Thermoncle" @@ -66,30 +105,12 @@ icon_state = "thermoncle" 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" icon_state = "eyepatch" item_state = "eyepatch" -/proc/RoundHealth(health) - switch(health) - if(100 to INFINITY) - return "health100" - if(70 to 100) - return "health80" - if(50 to 70) - return "health60" - if(30 to 50) - return "health40" - if(20 to 30) - return "health25" - if(5 to 15) - return "health10" - if(1 to 5) - return "health1" - if(-99 to 0) - return "health0" - else - return "health-100" - return "0" \ No newline at end of file + + diff --git a/code/game/objects/items/clothing/hud.dm b/code/modules/clothing/glasses/hud.dm similarity index 62% rename from code/game/objects/items/clothing/hud.dm rename to code/modules/clothing/glasses/hud.dm index ad1dfc36ec6..26985353656 100644 --- a/code/game/objects/items/clothing/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -14,8 +14,54 @@ name = "Health Scanner HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." icon_state = "healthhud" + proc + RoundHealth(health) + RoundHealth(health) + switch(health) + if(100 to INFINITY) + return "health100" + if(70 to 100) + return "health80" + if(50 to 70) + return "health60" + if(30 to 50) + return "health40" + if(20 to 30) + return "health25" + if(5 to 15) + return "health10" + if(1 to 5) + return "health1" + if(-99 to 0) + return "health0" + else + return "health-100" + return "0" + + + process_hud(var/mob/M) + if(!M) return + if(!M.client) return + var/client/C = M.client + var/icon/tempHud = 'hud.dmi' + for(var/mob/living/carbon/human/patient in view(M)) + var/foundVirus = 0 + for(var/datum/disease/D in patient.viruses) + if(!D.hidden[SCANNER]) + foundVirus++ + if(patient.virus2) + foundVirus++ + C.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]") + if(patient.stat == 2) + C.images += image(tempHud,patient,"huddead") + else if(patient.alien_egg_flag) + C.images += image(tempHud,patient,"hudxeno") + else if(foundVirus) + C.images += image(tempHud,patient,"hudill") + else + C.images += image(tempHud,patient,"hudhealthy") /obj/item/clothing/glasses/hud/security @@ -23,6 +69,7 @@ desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status." icon_state = "securityhud" + process_hud(var/mob/M) if(!M) return if(!M.client) return diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 3a895400855..1e874f496ea 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -15,8 +15,7 @@ src << browse(null, "window=spideros")//Just in case. var/location = loc explosion(location, 1, 2, 3, 4) - //src.flags = 0 - //reagents.handle_reactions() //No magic stomach for corpses. + canmove = 0 if(src.client) src.blind.layer = 0 @@ -27,13 +26,10 @@ hand = 1 drop_item() hand = h - if (istype(wear_suit, /obj/item/clothing/suit/armor/a_i_a_ptank)) - var/obj/item/clothing/suit/armor/a_i_a_ptank/A = wear_suit - bombers += "[key] has detonated a suicide bomb. Temp = [A.part4.air_contents.temperature-T0C]." - // world << "Detected that [src.key] is wearing a bomb" debug stuff - if(A.status && prob(90)) - // world << "Bomb has ignited?" - A.part4.ignite() + //This is where the suicide assemblies checks would go + for (var/obj/item/weapon/implant/I in src) + if (I.implanted) + I.activate(10) if (client) spawn(10) @@ -44,27 +40,9 @@ if(mind) mind.store_memory("Time of death: [tod]", 0) sql_report_death(src) - //src.icon_state = "dead" + //Calls the rounds wincheck, mainly for wizard, malf, and changeling now ticker.mode.check_win() - - /* - if (ticker.mode.name == "Corporate Restructuring" && ticker.target != src) - src.unlock_medal("Expendable", 1) - - //For restructuring - if (ticker.mode.name == "Corporate Restructuring" || ticker.mode.name == "revolution") - ticker.check_win() - - if (ticker.mode.name == "wizard" && src == ticker.killer) - world << "Research Station Victory" - world << "The Wizard has been killed! The wizards federation has been taught an important lesson." - ticker.processing = 0 - sleep(100) - world << "\blue Rebooting due to end of game" - world.Reboot() - */ //TODO: FIX - //Traitor's dead! Oh no! if (ticker.mode.name == "traitor" && src.mind && src.mind.special_role == "traitor") message_admins("\red Traitor [key_name_admin(src)] has died.") diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 4ed97a7e388..10881a3c3b4 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -87,43 +87,6 @@ ..() //for organs -/* -................................................ ..........................._,-~"¯¯"~-, -.................................................. ................__„-~"¯¯:::,-~~-,_::::"- -.................................................. ..........„~"¯::::::::::::::"::::::::::::::::::::::\ -.................................................. .__„„„-"::::::::::::::::::::::::::::::::::::::::::::::"~-, -..........................................__-~"::,-':::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::~-, -..........................._______~"___-~"::::::::::::::::::::::::::::::::::::::::::::: ::: :: :::::::::::"-, -......................,~"::::::::::::::¯¯::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::,: | -....................:/:::::::::::::::::__-~":::::::::::::::::::::::::::::::::::::::::::::::::_,-~":'\'-,:\:|:\|::\|\::\:| -...................,'::::::::,-~~"~"_::',::|::::::::::::::::::::::::::::::::::: :: :::,~ ':\'-,::',"-\::'':"::::::::\|:|/ -..............._,-'"~----":::/,~"¯"-:|::|::|:::::::::::::::::::::::::::::::::::,~"::\'-,:\;;'-';;;;;;;;;;;,-'::\::|/ -............,-'::::::::::::::::'-\~"O¯_/::,'::|:::::::::::::::::::::::::::::::::,-',::\'-,:|::";;;;;;;;;;;;,-':\:'-,::\ -............|:::::::::::::::::-,_'~'::::,-'::,':::::::::::::::::::::::::::::,-':\'-,:\'-,';;';;;;;;;;;;;;;,-':\:::'\-,|'' -............|::,-~"::::::::::::::"~~":::,-'::::::::::::::::::::::::_,-~':\'-,|:"'";;;;;;;;;;;;;;,-'¯::'-,:',\| -.........../::/::::::::::::::::::::::::::::::::::::::::::::_,„-~"¯\:\'-,|;''-';;;;;;;;;;;;;;;;;;,-'--,::\-:\:\| -........./::::|:::::::::::::::::::::::::::::::::::::::::,-';;'-';;;;',/;\/;;;;;;;;;;;;;;;;;;;;,-,|:::\-,:|\|..\| -......./:::::::\:::::::::::::::::::::::::::::::::::::,-';;;;;;;;;;;;;;;;;;;;;;;;;;;,-~'''("-,\:::|\:|::'' -......,':::::::,'::::::::::::::::::::::::::::::::: :,-'/;;;;;;;;;;;;;;;;;;;;;;;;;,--'::::::/"~' -.....,'::::::::|:::::::::::::::::::::::::::::,„-~"::|;;;;;;;;;;;;;;;;;;;;;,-'::::::::,'::::/ -..../:::::::::|:::::::::::::„---~~""¯¯¯::',:::::,';;;;;;;;;;;;;;;;;;;,'::::::::: :: |_,-' -..,'::::::::::::",:,-~"¯::::::::"-,::::::::::|:::/;;;;;;;;;;;;;;;;;;;,':::::::|::::,' -./:::::::::::::::|:::::::::::::::::::"-,:::::::\:::|¯¯¯"""~-,~,_/::::::::,':::/ -::::::::::::::::::::::::::::::::::::::"~-,_::|::\: : : : : : |: : \::::::::/:/ -::::::::::::::::::::::::::::::",:::::::::::::"-':::\: : : : : : |: : :\::::::\ APRIL FOOLS LOVE UHANGAY -::::::::::::::::::::::::::::::::",:::::::::::::: ::::\: : : : : : \: : : |:::::;;\ -::::::::::::::::::"-,:::::::::::::::",:::::::::::::::/|\ ,: : : : : : : |::::,'/|::::| -:::::::::::::::::::::"-,:::::::::::::::"-,_::::::::::\|:/|,: : : : : : : |::: |'-,/|:::| -::::::::::::::::::::::::"~-,_::::::::::::::"~-,_:::"-,/|/\::::::::::: \::: \"-/|::| -:::::::::::::::::::::::::::::::"~-,__:::::::::::',"-,:::"_|/\:|\: : : : \::\":/|\| -::::::::::::::::::::::::::::::::::::::::"~-,_:::::\:::\:::"~/_:|:|\: : : '-,\::"::,'\ -:::::::::::::::::::::::::::::::::::::::::::::::"-,_:'-,::\:::::::"-,|:||\,-, : '-,\:::|-'- -:::::::::::::::::::::::::::::::::::::::::::::::::: ::,-,'"-:"~,:::::"/_/::|-/\--';;\:::/: ||\-, -:::::::::::::::::::::::::::::::::::::::::::::::::: :/...'-,::::::"~„::::"-,/_:|:/\:/|/|/|_/:| -:::::::::::::::::::::::::::::::::::::::::::::::::: |......"-,::::::::"~-:::::""~~~"¯:::| -:::::::::::::::::::::::::::::::::::::::::::::::::: |........."-,_::::::::::::::::::::::::::::/ -:::::::::::::::::::::::::::::::::::::::::::::::::\ .............."~--„_____„„-~~" -*/ /mob/living/carbon/human proc @@ -138,6 +101,7 @@ oxyloss = max(oxyloss, 0) fireloss = max(fireloss, 0) + update_mind() if(!mind && client) mind = new @@ -147,6 +111,7 @@ mind.assigned_role = "Assistant" mind.key = key + handle_disabilities() if (disabilities & 2) if ((prob(1) && paralysis < 1 && r_epil < 1)) @@ -193,8 +158,8 @@ if(3) emote("drool") - handle_mutations_and_radiation() + handle_mutations_and_radiation() if(fireloss) if(mutations & COLD_RESISTANCE || (prob(1) && prob(75))) heal_organ_damage(0,1) @@ -320,9 +285,8 @@ //if (internals) //should be unnecessary, uncomment if it isn't. -raftaf0 // internals.icon_state = "internal1" return internal.remove_air_volume(volume_needed) - else - if (internals) - internals.icon_state = "internal0" + else if(internals) + internals.icon_state = "internal0" return null update_canmove() @@ -826,49 +790,44 @@ if(!druggy) see_invisible = 0 - else if (istype(glasses, /obj/item/clothing/glasses/meson)) + else if(istype(glasses, /obj/item/clothing/glasses/meson)) sight |= SEE_TURFS if(!druggy) see_invisible = 0 - else if (istype(glasses, /obj/item/clothing/glasses/night)) + else if(istype(glasses, /obj/item/clothing/glasses/night)) see_in_dark = 5 if(!druggy) see_invisible = 0 - else if (istype(glasses, /obj/item/clothing/glasses/thermal)) + else if(istype(glasses, /obj/item/clothing/glasses/thermal)) sight |= SEE_MOBS if(!druggy) see_invisible = 2 - else if (istype(glasses, /obj/item/clothing/glasses/material)) + else if(istype(glasses, /obj/item/clothing/glasses/material)) sight |= SEE_OBJS if (!druggy) see_invisible = 0 - else if (istype(glasses, /obj/item/clothing/glasses/hud/health)) + else if(istype(glasses, /obj/item/clothing/glasses/hud/health)) if(client) - - var/icon/tempHud = 'hud.dmi' - for(var/mob/living/carbon/human/patient in view(src)) - - var/foundVirus = 0 - for(var/datum/disease/D in patient.viruses) - if(!D.hidden[SCANNER]) - foundVirus++ - - if(patient.virus2) - foundVirus++ - - client.images += image(tempHud,patient,"hud[RoundHealth(patient.health)]") - if(patient.stat == 2) - client.images += image(tempHud,patient,"huddead") - else if(patient.alien_egg_flag) - client.images += image(tempHud,patient,"hudxeno") - else if(foundVirus) - client.images += image(tempHud,patient,"hudill") - else - client.images += image(tempHud,patient,"hudhealthy") + glasses:process_hud(src) if (!druggy) see_invisible = 0 - else if (stat != 2) + else if(istype(glasses, /obj/item/clothing/glasses/hud/security)) + if(client) + glasses:process_hud(src) + if (!druggy) + see_invisible = 0 + + else if(istype(glasses, /obj/item/clothing/glasses/sunglasses)) + see_in_dark = 1 + if(istype(glasses, /obj/item/clothing/glasses/sunglasses/sechud)) + if(client) + if(glasses:hud) + glasses:hud:process_hud(src) + if (!druggy) + see_invisible = 0 + + else if(stat != 2) sight &= ~SEE_TURFS sight &= ~SEE_MOBS sight &= ~SEE_OBJS @@ -887,23 +846,23 @@ if(!seer) see_invisible = 0 - else if (istype(glasses, /obj/item/clothing/glasses/sunglasses)) - see_in_dark = 1 - else if (istype(head, /obj/item/clothing/head/helmet/welding)) + else if(istype(head, /obj/item/clothing/head/helmet/welding)) if(!head:up && tinted_weldhelh) see_in_dark = 1 - if(istype(glasses, /obj/item/clothing/glasses/hud/security)) - if(client) - glasses:process_hud(src) - if(!druggy) - see_invisible = 0 - else if((istype(head, /obj/item/clothing/head/helmet)) && (!istype(head, /obj/item/clothing/head/helmet/space))) - if(client) - if(head:shud) - head:shud:process_hud(src) - if(!druggy) - see_invisible = 0 +/* + if (istype(glasses, /obj/item/clothing/glasses)) + sight = glasses.vision_flags + see_in_dark = 2 + glasses.darkness_view + see_invisible = invisa_view + + if(istype(glasses, /obj/item/clothing/glasses/hud)) + if(client) + glasses:process_hud(src) +*/ +//Should finish this up later + + if (sleep) sleep.icon_state = text("sleep[]", sleeping) if (rest) rest.icon_state = text("rest[]", resting) diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/modules/mob/living/silicon/pai/hud.dm index 6a038e46777..4f664e0b4ab 100644 --- a/code/modules/mob/living/silicon/pai/hud.dm +++ b/code/modules/mob/living/silicon/pai/hud.dm @@ -48,4 +48,26 @@ else if(foundVirus) client.images += image(tempHud,patient,"hudill") else - client.images += image(tempHud,patient,"hudhealthy") \ No newline at end of file + client.images += image(tempHud,patient,"hudhealthy") + +/mob/living/silicon/pai/proc/RoundHealth(health) + switch(health) + if(100 to INFINITY) + return "health100" + if(70 to 100) + return "health80" + if(50 to 70) + return "health60" + if(30 to 50) + return "health40" + if(20 to 30) + return "health25" + if(5 to 15) + return "health10" + if(1 to 5) + return "health1" + if(-99 to 0) + return "health0" + else + return "health-100" + return "0" \ No newline at end of file diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index 322f7acec6f..a8b337101ae 100644 Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 6c1704e0124..33aedc2fe3e 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index 1872a6916ef..53b42da8bb3 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index e66440deadb..a06e108fb80 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index e8bf4e3a40f..15316c98abc 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 8e122252418..00e8aaa8d2f 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 169d7905f63..89b933e9860 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index b2cbab68122..2e2c9fe140f 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 06cced8a352..bf8e2b275c8 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 63b14bc6376..829003ee2c2 100644 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -525,7 +525,7 @@ "ake" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/security/hos) "akf" = (/obj/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/security/hos) "akg" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/security/main) -"akh" = (/obj/table,/obj/item/device/timer,/obj/item/clothing/glasses/hud/security,/turf/simulated/floor,/area/security/main) +"akh" = (/obj/table,/obj/item/device/timer,/turf/simulated/floor,/area/security/main) "aki" = (/obj/table,/obj/item/device/radio,/turf/simulated/floor,/area/security/main) "akj" = (/obj/stool/chair{dir = 8},/obj/landmark/start{name = "Security Officer"},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/security/main) "akk" = (/obj/machinery/camera{c_tag = "Security"; dir = 8; network = "SS13"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/closet/wardrobe/red,/turf/simulated/floor,/area/security/main) @@ -563,7 +563,7 @@ "akQ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor,/area/security/warden) "akR" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/security/warden) "akS" = (/obj/stool/chair{dir = 4},/obj/landmark/start{name = "Warden"},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_x = 25; pixel_y = 20},/turf/simulated/floor,/area/security/warden) -"akT" = (/obj/table/reinforced,/obj/machinery/door/window/westright{name = "Warden's Desk"; req_access_txt = "3"},/obj/machinery/door/window/eastleft{name = "Warden's Desk"},/obj/window/reinforced,/obj/item/clothing/mask/gas/emergency,/obj/item/clothing/glasses/thermal,/obj/item/clothing/glasses/hud/security,/turf/simulated/floor,/area/security/warden) +"akT" = (/obj/table/reinforced,/obj/machinery/door/window/westright{name = "Warden's Desk"; req_access_txt = "3"},/obj/machinery/door/window/eastleft{name = "Warden's Desk"},/obj/window/reinforced,/obj/item/clothing/glasses/thermal,/turf/simulated/floor,/area/security/warden) "akU" = (/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/main) "akV" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) "akW" = (/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) @@ -573,7 +573,7 @@ "ala" = (/obj/disposalpipe/segment,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) "alb" = (/obj/closet/extinguisher{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/main) "alc" = (/obj/table,/obj/item/weapon/paper/sop,/turf/simulated/floor,/area/security/main) -"ald" = (/obj/table,/obj/item/device/flash,/obj/item/clothing/glasses/hud/security,/turf/simulated/floor,/area/security/main) +"ald" = (/obj/table,/obj/item/device/flash,/turf/simulated/floor,/area/security/main) "ale" = (/obj/stool/chair{dir = 4},/turf/simulated/floor,/area/security/main) "alf" = (/obj/machinery/computer/secure_data,/turf/simulated/floor,/area/security/main) "alg" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/brig) @@ -1249,7 +1249,7 @@ "aya" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/maintenance/fpmaint) "ayb" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "EVA_airlock_pump"; exterior_door_tag = "EVA_airlock_exterior"; id_tag = "EVA_airlock_control"; interior_door_tag = "EVA_airlock_interior"; pixel_x = -24; pixel_y = 0; sensor_tag = "EVA_airlock_sensor"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "ayc" = (/obj/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/ai_monitored/storage/eva) -"ayd" = (/obj/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/black_jetpack,/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) +"ayd" = (/obj/rack{dir = 8; layer = 2.9},/obj/machinery/atmospherics/pipe/simple,/obj/item/weapon/tank/jetpack,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) "aye" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/ai_monitored/storage/eva) "ayf" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/ai_monitored/storage/eva) "ayg" = (/obj/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) @@ -1363,8 +1363,8 @@ "aAk" = (/obj/machinery/atmospherics/pipe/simple,/obj/disposalpipe/segment{dir = 4},/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aAl" = (/obj/disposalpipe/segment{dir = 4},/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/rack{dir = 1},/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aAm" = (/obj/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) -"aAn" = (/obj/machinery/suit_storage_unit/engineering_unit{name = "Engineering Suit Storage Unit"},/obj/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "EVA South-East"; dir = 1},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/ai_monitored/storage/eva) -"aAo" = (/obj/machinery/suit_storage_unit/engineering_unit{name = "Engineering Suit Storage Unit"},/obj/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/ai_monitored/storage/eva) +"aAn" = (/obj/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "EVA South-East"; dir = 1},/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/ai_monitored/storage/eva) +"aAo" = (/obj/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple,/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/ai_monitored/storage/eva) "aAp" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/ai_monitored/storage/eva) "aAq" = (/obj/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/ai_monitored/storage/eva) "aAr" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/machinery/camera{c_tag = "EVA South-East"; dir = 1},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/ai_monitored/storage/eva) @@ -1492,7 +1492,7 @@ "aCJ" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aCK" = (/obj/machinery/atmospherics/pipe/manifold,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aCL" = (/obj/reagent_dispensers/watertank,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) -"aCM" = (/obj/machinery/suit_storage_unit/command_unit{name = "Command Suit Storage Unit"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) +"aCM" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aCN" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "aCO" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "aCP" = (/obj/machinery/atmospherics/pipe/simple{dir = 5},/obj/disposalpipe/segment{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -5303,7 +5303,7 @@ "bXY" = (/obj/machinery/field_generator,/turf/simulated/floor/plating,/area/engine/engineering) "bXZ" = (/obj/machinery/emitter,/turf/simulated/floor/plating,/area/engine/engineering) "bYa" = (/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering) -"bYb" = (/obj/window/reinforced{dir = 4},/obj/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/suit_storage_unit/engineering_unit{pixel_x = 0},/turf/simulated/floor,/area/engine/engineering) +"bYb" = (/obj/window/reinforced{dir = 4},/obj/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/simulated/floor,/area/engine/engineering) "bYc" = (/obj/machinery/power/smes,/obj/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engine_smes) "bYd" = (/obj/machinery/power/smes,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engine_smes) "bYe" = (/obj/machinery/power/smes,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engine_smes) @@ -5317,7 +5317,7 @@ "bYm" = (/obj/machinery/computer/atmos_alert,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/engine/chiefs_office) "bYn" = (/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/engine/chiefs_office) "bYo" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/engine/chiefs_office) -"bYp" = (/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/suit_storage_unit/chief_engineer_unit,/turf/simulated/floor,/area/engine/chiefs_office) +"bYp" = (/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/engine/chiefs_office) "bYq" = (/obj/machinery/power/apc{dir = 1; name = "CE office APC"; pixel_x = 0; pixel_y = 25},/obj/secure_closet/engineering_chief{req_access_txt = "0"},/obj/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/engine/chiefs_office) "bYr" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/window/reinforced,/obj/window/reinforced{dir = 8},/obj/cable{d2 = 8; icon_state = "0-8"},/obj/cable,/turf/simulated/floor/plating,/area/engine/chiefs_office) "bYs" = (/turf/simulated/floor,/area/engine/engineering) @@ -5445,7 +5445,7 @@ "caK" = (/obj/machinery/power/apc{dir = 8; name = "Aft Maintenance APC"; pixel_x = -25; pixel_y = 0},/obj/cable,/turf/simulated/floor/plating,/area/maintenance/aft) "caL" = (/obj/table,/obj/machinery/cell_charger,/obj/machinery/camera{c_tag = "Engineering SMES Room"; dir = 4; network = "SS13"},/turf/simulated/floor,/area/engine/engineering) "caM" = (/obj/table,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/module/power_control,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/engine/engineering) -"caN" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/rack{dir = 8; layer = 2.9},/obj/item/clothing/head/helmet/welding{pixel_x = -3; pixel_y = 5},/turf/simulated/floor,/area/engine/engineering) +"caN" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/engine/engineering) "caO" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/table,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/clothing/gloves/yellow,/turf/simulated/floor,/area/engine/engineering) "caP" = (/obj/machinery/dispenser,/turf/simulated/floor,/area/engine/engineering) "caQ" = (/obj/grille,/obj/window/reinforced{dir = 8},/obj/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) @@ -7796,8 +7796,8 @@ "cTV" = (/turf/simulated/floor,/area/mine/storage) "cTW" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/mine/storage) "cTX" = (/obj/grille,/obj/window/reinforced{dir = 8},/obj/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/storage) -"cTY" = (/obj/rack,/obj/item/clothing/suit/space/rig,/obj/item/clothing/head/helmet/space/rig,/obj/item/clothing/mask/breath,/turf/simulated/floor,/area/mine/eva) -"cTZ" = (/obj/rack,/obj/item/clothing/suit/space/rig,/obj/item/clothing/head/helmet/space/rig,/obj/item/clothing/mask/breath,/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/mine/eva) +"cTY" = (/obj/rack,/obj/item/clothing/suit/space/rig/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/mining,/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/mine/eva) +"cTZ" = (/obj/rack,/obj/item/clothing/suit/space/rig/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/mining,/turf/simulated/floor,/area/mine/eva) "cUa" = (/obj/reagent_dispensers/fueltank,/turf/simulated/floor,/area/mine/eva) "cUb" = (/obj/table,/obj/item/weapon/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/mine/west_outpost) "cUc" = (/obj/machinery/door/airlock/glass{name = "Mining Outpost Break Room"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) @@ -9232,7 +9232,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSacSacO aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRZcOJcOJcOJcOJcOJcOJcOJcOJcSacSacSacSacSacSacSacOJcOJcOJcOJcOJcOJcSacSacSacSacSacSacSacSacSacQncQncQncQncQncQncQncQncTecTfcTgcQncQncQncPQcOQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOQcOQcOQcPQcPQcPQcPQcPQcPQcPQcOQcOQcOQcOQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOQcOQcPQcTccThcTicTjcThcTicTccQncQncQncQncQncQncQncQncQncQncQnaaacOPaaaaaaaaaaaaaaaaaaaaacOQcOQcOQcOQcOQcPQcPQcQncRBcQncQncQncSgcShcSicQncQncQncQncQncQncQncRGcRGcPQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSacSacOJcOJcOJcOJcOJcOJcSacSacSacSacSacSacSacOJcOJcOJcOJcOJcOJcSacSacSacSacQncQncTkcTkcTkcTkcTkcTkcTlcTmcTmcTncTkcTkcTkcTkcQncQncQncPQcOQcOQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOQcOQcOQcOQcPQcPQcQncQncQncQncQncPQcPQcPQcPQcPQcOQcOQcOQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOQcOQcPQcTccTocTpcTjcTocTpcTccTqcTqcTqcTrcTscTtcTqcQncQncQncQncQnaaaaaaaaaaaaaaaaaaaaaaaaaaacOQcOQcOQcPQcPQcQncQncQncQncQncQncSjcSkcTucQncQncQncQncQncQncQncQncQncPQcPQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRZcSacOJcOJcOJcOJcOJcOJcSacSacSacSacSacSacSacOJcOJcOJcOJcOJcSacSacPQcQncQncQncTkcTvcTwcTxcTycTzcTAcTBcTBcTBcTCcTDcTwcTCcQncQncQncPQcPQcPQcPQcOQcOQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOQcOQcOQcPQcPQcQncQncQncQncQncQncQncQncQncQncPQcPQcPQcPQcPQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOQcOQcOQcPQcTccTjcTEcTjcTjcTEcTjcTFcTFcTGcTHcTHcTHcTIcQncQncQncQncQncQnaaaaaaaaaaaaaaaaaaaaaaaaaaacPQcPQcPQcQncQncQncQncQncQncQncQncTJcTKcTLcTMcTKcTKcQncQncQncQncQncQncPQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRZcSacSacOJcOJcOJcSacSacSacSacSacSacSacSacOJcOJcOJcSacSacOQcPQcQncQncQncTkcTNcTwcTOcTPcTwcTwcTwcTwcTwcTQcTwcTwcTQcQncQncQncQncQncQncPQcPQcPQcOQcOQcOQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOQcOQcPQcPQcRmcQncQncQncQncQncQncQncQncQncQncQncQncQncQncQncPQcPQcOQcOQcOQcOQcOQcOQcOQcOQcOQcOQcOQcPQcTccTRcTpcTScTTcTUcTjcTFcTFcTVcTVcTVcTWcTXcQncQncQncQncQncQnaaaaaaaaaaaaaaaaaaaaaaaaaaacQncQncQncQncQncQncQncQncQncQncQncTJcTYcTZcTYcUacTKcQncQncQncQncQncRYcRmcPQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRZcSacSacOJcOJcOJcSacSacSacSacSacSacSacSacOJcOJcOJcSacSacOQcPQcQncQncQncTkcTNcTwcTOcTPcTwcTwcTwcTwcTwcTQcTwcTwcTQcQncQncQncQncQncQncPQcPQcPQcOQcOQcOQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOQcOQcPQcPQcRmcQncQncQncQncQncQncQncQncQncQncQncQncQncQncQncPQcPQcOQcOQcOQcOQcOQcOQcOQcOQcOQcOQcOQcPQcTccTRcTpcTScTTcTUcTjcTFcTFcTVcTVcTVcTWcTXcQncQncQncQncQncQnaaaaaaaaaaaaaaaaaaaaaaaaaaacQncQncQncQncQncQncQncQncQncQncQncTJcTYcTZcTZcUacTKcQncQncQncQncQncRYcRmcPQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSacSacOJcOJcOJcSacSacSacSacSacSacSacSacSacSacSacSacSacOQcPQcQncQncQncTkcUbcTwcTwcUccTwcTwcTwcTwcTwcTCcUdcUdcTCcQncQncQncQncQncQncQncQncPQcPQcPQcPQcOQcOQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOQcOQcPQcPQcQncRBcQncQncQncQncQncQncQncQncQncQncQncQncQncQncQncQncPQcPQcPQcPQcOQcOQcOQcOQcOQcOQcOQcOQcPQcTccUecUfcUgcUhcUicTjcTFcTFcUjcUkcUlcUmcUncQncQncQncQncQncOPaaaaaacOPaaaaaaaaaaaacOPaaaaaaaaacQncQncQncQncQncUocUocUpcUqcTJcUrcUscUscUtcTKcTKcTKcTKcQncQncQncQncPQcPQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSacRZcSacSacSacSacSacSacSacSacSacSacSacSacSacSacOQcPQcPQcQncQncTkcUucTwcTwcTycTwcTwcTwcTwcUvcTkcTkcTkcTkcSgcSicQncQncQncQncQncQncQncQncQncPQcOQcOQcOQcOQcOQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOQcOQcOQcPQcQncQncQncQncQncQncQncQncQncQncQncSgcSicQncQncQncQncQncQncQncQncQncPQcPQcOQcOQcOQcOQcOQcTccTccTccTccUwcUxcUycUwcUzcTjcUAcUAcUAcUAcUBcUCcTqcUDcUEcQncQnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOPcQncQncUFcUqcUGcUGcUHcUIcUJcUKcUKcULcUMcUKcUNcUOcQncQncQncQncRocPQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSacSacRZcSacSacSacRZcSacSacSacSacSacOQcOQcPQcQncQncTkcUdcTwcTwcTPcUPcUQcURcTwcUScUTcUUcUVcUWcSycSzcUXcSBcSBcSBcSBcSBcSCcQncQncQncRGcOQcOQcOQcOQcOQcOQcOQcOQcOAcOAcOAcOQcOQcOQcOQcPQcPQcQncQncSGcSrcSrcSrcSrcSrcSrcSrcSxcSycSzcSAcSBcSBcSBcSCcQncQncQncQncQncPQcOQcOQcOQcOQcOQcTccUYcUZcVacUGcVbcVccVdcUGcUGcVecVfcUGcVdcVccVbcVecUGcVgcVhcVicVjcVkcVkcVkcVkcVkcVkcVkcVkcVkcVkcVkcVkcVkcVlcUpcVmcVncVocUGcVpcVqcVrcVscUKcUKcUKcVtcUKcUKcVtcQncQncQncQncRocPQcOQcOQcOAcOAcOAcOAcOAcOAcOAcOAcOAcOAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/tgstation.dme b/tgstation.dme index c33c945d774..3c99cbada2b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -80,6 +80,8 @@ #define FILE_DIR "code/modules/admin/verbs" #define FILE_DIR "code/modules/assembly" #define FILE_DIR "code/modules/chemical" +#define FILE_DIR "code/modules/clothing" +#define FILE_DIR "code/modules/clothing/glasses" #define FILE_DIR "code/modules/critters" #define FILE_DIR "code/modules/critters/hivebots" #define FILE_DIR "code/modules/food" @@ -272,7 +274,6 @@ #include "code\defines\obj\clothing\costume.dm" #include "code\defines\obj\clothing\ears.dm" #include "code\defines\obj\clothing\gimmick.dm" -#include "code\defines\obj\clothing\glasses.dm" #include "code\defines\obj\clothing\gloves.dm" #include "code\defines\obj\clothing\head.dm" #include "code\defines\obj\clothing\jumpsuit.dm" @@ -566,7 +567,6 @@ #include "code\game\objects\items\robot_parts.dm" #include "code\game\objects\items\shock_kit.dm" #include "code\game\objects\items\trash.dm" -#include "code\game\objects\items\clothing\hud.dm" #include "code\game\objects\items\clothing\powerarmor.dm" #include "code\game\objects\items\clothing\powerarmorcomponents.dm" #include "code\game\objects\items\weapons\AI_modules.dm" @@ -676,6 +676,8 @@ #include "code\modules\chemical\Chemistry-Reagents.dm" #include "code\modules\chemical\Chemistry-Recipes.dm" #include "code\modules\chemical\Chemistry-Tools.dm" +#include "code\modules\clothing\glasses\glasses.dm" +#include "code\modules\clothing\glasses\hud.dm" #include "code\modules\critters\adefine.dm" #include "code\modules\critters\critterAI.dm" #include "code\modules\critters\critters.dm"