From 12f1bb1de8b9525d401bdf1778af902f9d367972 Mon Sep 17 00:00:00 2001 From: Ty-Omaha Date: Mon, 15 Jul 2019 08:43:05 -0400 Subject: [PATCH 01/37] power --- code/modules/events/grid_check.dm | 4 ++++ code/modules/power/power.dm | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm index d8d1f46ad9b..18e8404cb3c 100644 --- a/code/modules/events/grid_check.dm +++ b/code/modules/events/grid_check.dm @@ -45,6 +45,8 @@ continue if(C.cell) C.cell.charge = 0 + for(var/obj/machinery/power/P in GLOB.machines) + P.malfunction = TRUE /proc/power_restore(var/announce = 1) var/list/skipped_areas = list(/area/turret_protected/ai) @@ -67,6 +69,8 @@ S.input_attempt = S.last_input_attempt S.update_icon() S.power_change() + for(var/obj/machinery/power/P in GLOB.machines) + P.malfunction = FALSE /proc/power_restore_quick(var/announce = 1) if(announce) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 33741d1475b..0ee03a2b272 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -15,6 +15,7 @@ use_power = NO_POWER_USE idle_power_usage = 0 active_power_usage = 0 + var/malfunction = FALSE /obj/machinery/power/Destroy() disconnect_from_network() @@ -30,7 +31,7 @@ // Non-machines should use add_delayedload(), delayed_surplus(), newavail() /obj/machinery/power/proc/add_avail(amount) - if(powernet) + if(powernet && !malfunction) powernet.newavail += amount return TRUE else From e042d114ddca1d231a1f7477dd6b16e1b1b40de6 Mon Sep 17 00:00:00 2001 From: Ty-Omaha Date: Mon, 15 Jul 2019 09:06:59 -0400 Subject: [PATCH 02/37] lol --- code/modules/events/grid_check.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm index 18e8404cb3c..15b20c6286e 100644 --- a/code/modules/events/grid_check.dm +++ b/code/modules/events/grid_check.dm @@ -46,6 +46,9 @@ if(C.cell) C.cell.charge = 0 for(var/obj/machinery/power/P in GLOB.machines) + var/area/current_area = get_area(P) + if((current_area.type in skipped_areas_apc) || !is_station_level(P.z)) + continue P.malfunction = TRUE /proc/power_restore(var/announce = 1) @@ -70,6 +73,9 @@ S.update_icon() S.power_change() for(var/obj/machinery/power/P in GLOB.machines) + var/area/current_area = get_area(P) + if((current_area.type in skipped_areas_apc) || !is_station_level(P.z)) + continue P.malfunction = FALSE /proc/power_restore_quick(var/announce = 1) From b9d9b3c88d7b63c1d665a2ccdbec8bb0b7524c3d Mon Sep 17 00:00:00 2001 From: Ty-Omaha Date: Mon, 15 Jul 2019 09:10:00 -0400 Subject: [PATCH 03/37] k --- code/modules/events/grid_check.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm index 15b20c6286e..a1668c58e3a 100644 --- a/code/modules/events/grid_check.dm +++ b/code/modules/events/grid_check.dm @@ -47,7 +47,7 @@ C.cell.charge = 0 for(var/obj/machinery/power/P in GLOB.machines) var/area/current_area = get_area(P) - if((current_area.type in skipped_areas_apc) || !is_station_level(P.z)) + if((current_area.type in skipped_areas_apc) || (current_area.type in skipped_areas) || !is_station_level(P.z)) continue P.malfunction = TRUE @@ -74,7 +74,7 @@ S.power_change() for(var/obj/machinery/power/P in GLOB.machines) var/area/current_area = get_area(P) - if((current_area.type in skipped_areas_apc) || !is_station_level(P.z)) + if((current_area.type in skipped_areas_apc) || (current_area.type in skipped_areas) || !is_station_level(P.z)) continue P.malfunction = FALSE From c8ccc3bb94fa3b420531d75d2602378db9f231eb Mon Sep 17 00:00:00 2001 From: Ty-Omaha Date: Mon, 15 Jul 2019 09:10:41 -0400 Subject: [PATCH 04/37] k 2 --- code/modules/events/grid_check.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm index a1668c58e3a..67881662db5 100644 --- a/code/modules/events/grid_check.dm +++ b/code/modules/events/grid_check.dm @@ -73,9 +73,6 @@ S.update_icon() S.power_change() for(var/obj/machinery/power/P in GLOB.machines) - var/area/current_area = get_area(P) - if((current_area.type in skipped_areas_apc) || (current_area.type in skipped_areas) || !is_station_level(P.z)) - continue P.malfunction = FALSE /proc/power_restore_quick(var/announce = 1) From 47a63e3a5116c0b798161428fa2b398e9ae6379e Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Mon, 29 Jul 2019 01:42:51 +0200 Subject: [PATCH 05/37] Added a few tips and fixed a bug --- code/game/gamemodes/nuclear/nuclearbomb.dm | 10 +++++++--- code/game/objects/items/weapons/defib.dm | 2 +- code/modules/vehicle/ambulance.dm | 4 ++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 09de3f917bd..1afa03d8b8d 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -76,14 +76,18 @@ var/bomb_set if(panel_open && (istype(O, /obj/item/multitool) || istype(O, /obj/item/wirecutters))) return attack_hand(user) - - if(extended) - if(istype(O, /obj/item/disk/nuclear)) + + if(istype(O, /obj/item/disk/nuclear)) + if(extended) + if(O.flags & NODROP) + to_chat(user, "\The [O] is stuck to your hand!") usr.drop_item() O.loc = src auth = O add_fingerprint(user) return attack_hand(user) + else + to_chat(user, "You need to deploy \the [src] first. Right click on the sprite, select 'Make Deployable' then click on \the [src] with an empty hand.") if(anchored) switch(removal_stage) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index fbdc403d758..45309b381c0 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -45,7 +45,7 @@ /obj/item/defibrillator/examine(mob/user) ..(user) - to_chat(user,"Ctrl-click to remove the paddles from the defibrillator.") + to_chat(user, "Ctrl-click to remove the paddles from the defibrillator.") /obj/item/defibrillator/proc/update_power() if(bcell) diff --git a/code/modules/vehicle/ambulance.dm b/code/modules/vehicle/ambulance.dm index 6b15018de49..f3d3bc33e11 100644 --- a/code/modules/vehicle/ambulance.dm +++ b/code/modules/vehicle/ambulance.dm @@ -102,6 +102,10 @@ anchored = FALSE throw_pressure_limit = INFINITY //Throwing an ambulance trolley can kill the process scheduler. +/obj/structure/bed/amb_trolley/examine(mob/user) + . = ..() + to_chat(user, "Drag \the [src]'s sprite over the ambulance to (de)attach it.") + /obj/structure/bed/amb_trolley/MouseDrop(obj/over_object as obj) ..() if(istype(over_object, /obj/vehicle/ambulance)) From ab94782f56281b1a2fe26482e0b202a59107b288 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Mon, 29 Jul 2019 21:07:12 +0200 Subject: [PATCH 06/37] Fire axe code refactor + tooltip --- .../crates_lockers/closets/fireaxe.dm | 351 +++++++++--------- 1 file changed, 171 insertions(+), 180 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm index acedb317bb3..640583adaf2 100644 --- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm +++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm @@ -6,203 +6,194 @@ icon_state = "fireaxe1000" icon_closed = "fireaxe1000" icon_opened = "fireaxe1100" - anchored = 1 - density = 0 + anchored = TRUE + density = FALSE armor = list(melee = 50, bullet = 50, laser = 50, energy = 100, bomb = 10, bio = 100, rad = 100) - var/localopened = 0 //Setting this to keep it from behaviouring like a normal closet and obstructing movement in the map. -Agouri - opened = 1 - var/hitstaken = 0 - locked = 1 - var/smashed = 0 + var/localopened = FALSE //Setting this to keep it from behaviouring like a normal closet and obstructing movement in the map. -Agouri + opened = TRUE + var/hitstaken = FALSE + locked = TRUE + var/smashed = FALSE - attackby(var/obj/item/O as obj, var/mob/living/user as mob) //Marker -Agouri - //..() //That's very useful, Erro +/obj/structure/closet/fireaxecabinet/examine(mob/user) + . = ..() + to_chat(user, "Use a multitool to lock/unlock it.") - var/hasaxe = 0 //gonna come in handy later~ - if(fireaxe) - hasaxe = 1 - - if(isrobot(user) || src.locked) - if(istype(O, /obj/item/multitool)) - to_chat(user, "Resetting circuitry...") - playsound(user, 'sound/machines/lockreset.ogg', 50, 1) - if(do_after(user, 20 * O.toolspeed, target = src)) - src.locked = 0 - to_chat(user, " You disable the locking modules.") - update_icon() - return - else if(istype(O, /obj/item)) - user.changeNext_move(CLICK_CD_MELEE) - var/obj/item/W = O - if(src.smashed || src.localopened) - if(localopened) - localopened = 0 - icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() - return - else - user.do_attack_animation(src) - playsound(user, 'sound/effects/Glasshit.ogg', 100, 1) //We don't want this playing every time - if(W.force < 15) - to_chat(user, "The cabinet's protective glass glances off the hit.") - else - src.hitstaken++ - if(src.hitstaken == 4) - playsound(user, 'sound/effects/glassbr3.ogg', 100, 1) //Break cabinet, receive goodies. Cabinet's fucked for life after that. - src.smashed = 1 - src.locked = 0 - src.localopened = 1 +/obj/structure/closet/fireaxecabinet/attackby(var/obj/item/O as obj, var/mob/living/user as mob) //Marker -Agouri + if(isrobot(user) || locked) + if(istype(O, /obj/item/multitool)) + to_chat(user, "Resetting circuitry...") + playsound(user, 'sound/machines/lockreset.ogg', 50, 1) + if(do_after(user, 20 * O.toolspeed, target = src)) + locked = FALSE + to_chat(user, " You disable the locking modules.") update_icon() return - if(istype(O, /obj/item/twohanded/fireaxe) && src.localopened) - if(!fireaxe) - if(O:wielded) - to_chat(user, "Unwield the axe first.") - return - fireaxe = O - user.drop_item(O) - src.contents += O - to_chat(user, "You place the fire axe back in the [src.name].") - update_icon() - else - if(src.smashed) - return - else - localopened = !localopened - if(localopened) - icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() - else - icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() - else - if(src.smashed) - return - if(istype(O, /obj/item/multitool)) + else if(istype(O, /obj/item)) + user.changeNext_move(CLICK_CD_MELEE) + var/obj/item/W = O + if(smashed || localopened) if(localopened) - localopened = 0 - icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() - return - else - to_chat(user, "Resetting circuitry...") - sleep(50) - src.locked = 1 - to_chat(user, "You re-enable the locking modules.") - playsound(user, 'sound/machines/lockenable.ogg', 50, 1) - if(do_after(user, 20 * O.toolspeed, target = src)) - src.locked = 1 - to_chat(user, " You re-enable the locking modules.") - return + localopened = FALSE + update_icon_closing() + return + else + user.do_attack_animation(src) + playsound(user, 'sound/effects/Glasshit.ogg', 100, 1) //We don't want this playing every time + if(W.force < 15) + to_chat(user, "The cabinet's protective glass glances off the hit.") + else + hitstaken++ + if(hitstaken == 4) + playsound(user, 'sound/effects/glassbr3.ogg', 100, 1) //Break cabinet, receive goodies. Cabinet's fucked for life after that. + smashed = TRUE + locked = FALSE + localopened = TRUE + update_icon() + return + if(istype(O, /obj/item/twohanded/fireaxe) && localopened) + if(!fireaxe) + var/obj/item/twohanded/fireaxe/F = O + if(F.wielded) + to_chat(user, "Unwield the axe first.") + return + if(!user.canUnEquip(F, FALSE)) + to_chat(user, "\The [src] stays stuck to your hands!") + return + fireaxe = F + user.drop_item(F) + contents += F + to_chat(user, "You place the fire axe back in the [name].") + update_icon() + else + if(smashed) + return else localopened = !localopened if(localopened) - icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() + update_icon_opening() else - icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() - - - - - attack_hand(mob/user as mob) - - var/hasaxe = 0 - if(fireaxe) - hasaxe = 1 - - if(src.locked) - to_chat(user, "The cabinet won't budge!") + update_icon_closing() + else + if(smashed) return - if(localopened) - if(fireaxe) - user.put_in_hands(fireaxe) - fireaxe = null - to_chat(user, "You take the fire axe from the [name].") - src.add_fingerprint(user) - update_icon() - else - if(src.smashed) - return - else - localopened = !localopened - if(localopened) - src.icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() - else - src.icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() - - else - localopened = !localopened //I'm pretty sure we don't need an if(src.smashed) in here. In case I'm wrong and it fucks up teh cabinet, **MARKER**. -Agouri + if(istype(O, /obj/item/multitool)) if(localopened) - src.icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() + localopened = FALSE + update_icon_closing() + return else - src.icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed) - spawn(10) update_icon() - - attack_tk(mob/user as mob) - if(localopened && fireaxe) - fireaxe.forceMove(loc) - to_chat(user, "You telekinetically remove the fire axe.") - fireaxe = null - update_icon() - return - attack_hand(user) - - verb/toggle_openness() //nice name, huh? HUH?! -Erro //YEAH -Agouri - set name = "Open/Close" - set category = "Object" - - if(isrobot(usr) || src.locked || src.smashed) - if(src.locked) - to_chat(usr, "The cabinet won't budge!") - else if(src.smashed) - to_chat(usr, "The protective glass is broken!") - return - - localopened = !localopened - update_icon() - - verb/remove_fire_axe() - set name = "Remove Fire Axe" - set category = "Object" - - if(isrobot(usr)) - return - - if(localopened) - if(fireaxe) - usr.put_in_hands(fireaxe) - fireaxe = null - to_chat(usr, "You take the Fire axe from the [name].") - else - to_chat(usr, "The [src.name] is empty.") + to_chat(user, "Resetting circuitry...") + playsound(user, 'sound/machines/lockenable.ogg', 50, 1) + if(do_after(user, 20 * O.toolspeed, target = src)) + locked = TRUE + to_chat(user, " You re-enable the locking modules.") + return else - to_chat(usr, "The [src.name] is closed.") - update_icon() - - attack_ai(mob/user as mob) - if(src.smashed) - to_chat(user, "The security of the cabinet is compromised.") - return - else - locked = !locked - if(locked) - to_chat(user, "Cabinet locked.") + localopened = !localopened + if(localopened) + update_icon_opening() else - to_chat(user, "Cabinet unlocked.") + update_icon_closing() - update_icon() //Template: fireaxe[has fireaxe][is opened][hits taken][is smashed]. If you want the opening or closing animations, add "opening" or "closing" right after the numbers - var/hasaxe = 0 +/obj/structure/closet/fireaxecabinet/attack_hand(mob/user as mob) + if(locked) + to_chat(user, "The cabinet won't budge!") + return + if(localopened) if(fireaxe) - hasaxe = 1 - icon_state = text("fireaxe[][][][]",hasaxe,src.localopened,src.hitstaken,src.smashed) + user.put_in_hands(fireaxe) + fireaxe = null + to_chat(user, "You take the fire axe from the [name].") + add_fingerprint(user) + update_icon() + else + if(smashed) + return + else + localopened = !localopened + if(localopened) + update_icon_opening() + else + update_icon_closing() - open() + else + localopened = !localopened //I'm pretty sure we don't need an if(smashed) in here. In case I'm wrong and it fucks up teh cabinet, **MARKER**. -Agouri + if(localopened) + update_icon_opening() + else + update_icon_closing() + +/obj/structure/closet/fireaxecabinet/attack_tk(mob/user as mob) + if(localopened && fireaxe) + fireaxe.forceMove(loc) + to_chat(user, "You telekinetically remove the fire axe.") + fireaxe = null + update_icon() + return + attack_hand(user) + +/obj/structure/closet/fireaxecabinet/verb/toggle_openness() //nice name, huh? HUH?! -Erro //YEAH -Agouri + set name = "Open/Close" + set category = "Object" + + if(isrobot(usr) || locked || smashed) + if(locked) + to_chat(usr, "The cabinet won't budge!") + else if(smashed) + to_chat(usr, "The protective glass is broken!") return - close() - return \ No newline at end of file + localopened = !localopened + update_icon() + +/obj/structure/closet/fireaxecabinet/verb/remove_fire_axe() + set name = "Remove Fire Axe" + set category = "Object" + + if(isrobot(usr)) + return + + if(localopened) + if(fireaxe) + usr.put_in_hands(fireaxe) + fireaxe = null + to_chat(usr, "You take the Fire axe from the [name].") + else + to_chat(usr, "The [name] is empty.") + else + to_chat(usr, "The [name] is closed.") + update_icon() + +/obj/structure/closet/fireaxecabinet/attack_ai(mob/user as mob) + if(smashed) + to_chat(user, "The security of the cabinet is compromised.") + return + else + locked = !locked + if(locked) + to_chat(user, "Cabinet locked.") + else + to_chat(user, "Cabinet unlocked.") + +/obj/structure/closet/fireaxecabinet/proc/update_icon_opening() + var/hasaxe = fireaxe != null + icon_state = "fireaxe[hasaxe][localopened][hitstaken][smashed]opening" + spawn(10) + update_icon() + +/obj/structure/closet/fireaxecabinet/proc/update_icon_closing() + var/hasaxe = fireaxe != null + icon_state = "fireaxe[hasaxe][localopened][hitstaken][smashed]closing" + spawn(10) + update_icon() + +/obj/structure/closet/fireaxecabinet/update_icon() //Template: fireaxe[has fireaxe][is opened][hits taken][is smashed]. If you want the opening or closing animations, add "opening" or "closing" right after the numbers + var/hasaxe = fireaxe != null + icon_state = "fireaxe[hasaxe][localopened][hitstaken][smashed]" + +/obj/structure/closet/fireaxecabinet/open() + return + +/obj/structure/closet/fireaxecabinet/close() + return \ No newline at end of file From 0ab00bb9ffc1240bfec3abf414146becb87124f5 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Mon, 29 Jul 2019 21:18:42 +0200 Subject: [PATCH 07/37] More refactor + wrong item used fix --- .../crates_lockers/closets/fireaxe.dm | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm index 640583adaf2..d22f0a59a61 100644 --- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm +++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm @@ -55,15 +55,14 @@ if(!fireaxe) var/obj/item/twohanded/fireaxe/F = O if(F.wielded) - to_chat(user, "Unwield the axe first.") + to_chat(user, "Unwield \the [F] first.") return - if(!user.canUnEquip(F, FALSE)) - to_chat(user, "\The [src] stays stuck to your hands!") + if(!user.unEquip(F, FALSE)) + to_chat(user, "\The [F] stays stuck to your hands!") return fireaxe = F - user.drop_item(F) contents += F - to_chat(user, "You place the fire axe back in the [name].") + to_chat(user, "You place \the [F] back in the [name].") update_icon() else if(smashed) @@ -103,8 +102,9 @@ if(localopened) if(fireaxe) user.put_in_hands(fireaxe) + to_chat(user, "You take \the [fireaxe] from the [src].") fireaxe = null - to_chat(user, "You take the fire axe from the [name].") + add_fingerprint(user) update_icon() else @@ -127,7 +127,7 @@ /obj/structure/closet/fireaxecabinet/attack_tk(mob/user as mob) if(localopened && fireaxe) fireaxe.forceMove(loc) - to_chat(user, "You telekinetically remove the fire axe.") + to_chat(user, "You telekinetically remove \the [fireaxe].") fireaxe = null update_icon() return @@ -157,12 +157,12 @@ if(localopened) if(fireaxe) usr.put_in_hands(fireaxe) + to_chat(usr, "You take \the [fireaxe] from the [src].") fireaxe = null - to_chat(usr, "You take the Fire axe from the [name].") else - to_chat(usr, "The [name] is empty.") + to_chat(usr, "The [src] is empty.") else - to_chat(usr, "The [name] is closed.") + to_chat(usr, "The [src] is closed.") update_icon() /obj/structure/closet/fireaxecabinet/attack_ai(mob/user as mob) From 19f90acdd006a8ecdec282a690e4031a648fab83 Mon Sep 17 00:00:00 2001 From: Eman Date: Tue, 30 Jul 2019 17:19:35 +0200 Subject: [PATCH 08/37] Blobbernaut major changes Blobbernauts can now be controlled by players through a prompt whicha appears when they are spawned by blobs. Blobbernauts have been nerfed, they now have less health, deal less damage and cannot break walls anymore. Blobbernauts now regenerate health overtime when standing on blob structures. Blobbernauts and blobs can now communicate with each other. Blob's "Produce Blobbernaut" ability has been made more expensive to use, now costing 40 resources instead of 20. --- code/_onclick/hud/blob_overmind.dm | 4 +-- code/game/gamemodes/blob/blobs/blob_mobs.dm | 37 ++++++++++++++++++--- code/game/gamemodes/blob/overmind.dm | 2 +- code/game/gamemodes/blob/powers.dm | 11 ++++-- 4 files changed, 44 insertions(+), 10 deletions(-) diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index 1e8f99814df..0b223fc0b9e 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -49,8 +49,8 @@ /obj/screen/blob/Blobbernaut icon_state = "ui_blobbernaut" - name = "Produce Blobbernaut (20)" - desc = "Produces a strong, but dumb blobbernaut from a factory blob for 20 resources.
The factory blob will be destroyed in the process." + name = "Produce Blobbernaut (40)" + desc = "Produces a strong, intelligent blobbernaut from a factory blob for 40 resources.
The factory blob will be destroyed in the process." /obj/screen/blob/Blobbernaut/Click() if(isovermind(usr)) diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index bf2143b9784..abb27f94dac 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -163,10 +163,10 @@ icon_state = "blobbernaut" icon_living = "blobbernaut" icon_dead = "blobbernaut_dead" - health = 240 - maxHealth = 240 - melee_damage_lower = 20 - melee_damage_upper = 20 + health = 200 + maxHealth = 200 + melee_damage_lower = 10 + melee_damage_upper = 15 obj_damage = 60 attacktext = "hits" attack_sound = 'sound/effects/blobattack.ogg' @@ -175,18 +175,45 @@ maxbodytemp = 360 force_threshold = 10 mob_size = MOB_SIZE_LARGE - environment_smash = ENVIRONMENT_SMASH_RWALLS + environment_smash = ENVIRONMENT_SMASH_STRUCTURES pressure_resistance = 100 //100 kPa difference required to push throw_pressure_limit = 120 //120 kPa difference required to throw see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE +/mob/living/simple_animal/hostile/blob/blobbernaut/Life(seconds, times_fired) + if(stat != DEAD && (getBruteLoss() || getFireLoss())) // Heal on blob structures + if (locate(/obj/structure/blob) in get_turf(src)) + adjustBruteLoss(-0.5) + adjustFireLoss(-0.5) + /mob/living/simple_animal/hostile/blob/blobbernaut/blob_act() return +/mob/living/simple_animal/hostile/blob/blobbernaut/New() + ..() + if(name == "blobbernaut") + name = text("blobbernaut ([rand(1, 1000)])") + /mob/living/simple_animal/hostile/blob/blobbernaut/death(gibbed) // Only execute the below if we successfully died . = ..() if(!.) return FALSE flick("blobbernaut_death", src) + +/mob/living/simple_animal/hostile/blob/blobbernaut/verb/communicate_overmind() + set category = "Blobbernaut" + set name = "Blob Telepathy" + set desc = "Send a message to the Overmind" + + if(stat != DEAD) + blob_talk() + +/mob/living/simple_animal/hostile/blob/blobbernaut/proc/blob_talk() + var/message = input(src, "Announce to the overmind", "Blob Telepathy") + var/rendered = "Blob Telepathy, [name]([overmind]) states, \"[message]\"" + if(message) + for(var/mob/M in GLOB.mob_list) + if(isovermind(M) || isobserver(M) || istype((M), /mob/living/simple_animal/hostile/blob/blobbernaut)) + M.show_message(rendered, 2) \ No newline at end of file diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index 4489aaf707b..d4d9dc15c58 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -84,7 +84,7 @@ var/rendered = "Blob Telepathy, [name]([blob_reagent_datum.name]) [verb] \"[message]\"" for(var/mob/M in GLOB.mob_list) - if(isovermind(M) || isobserver(M)) + if(isovermind(M) || isobserver(M) || istype((M), /mob/living/simple_animal/hostile/blob/blobbernaut)) M.show_message(rendered, 2) /mob/camera/blob/emote(act, m_type = 1, message = null, force) diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index 2743277edb7..3124d7585ff 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -207,7 +207,7 @@ /mob/camera/blob/verb/create_blobbernaut() set category = "Blob" - set name = "Create Blobbernaut (20)" + set name = "Create Blobbernaut (40)" set desc = "Create a powerful blob-being, a Blobbernaut" var/turf/T = get_turf(src) @@ -224,7 +224,7 @@ to_chat(src, "Unable to use this blob, find a factory blob.") return - if(!can_buy(20)) + if(!can_buy(40)) return var/mob/living/simple_animal/hostile/blob/blobbernaut/blobber = new /mob/living/simple_animal/hostile/blob/blobbernaut (get_turf(B)) @@ -233,6 +233,13 @@ blobber.color = blob_reagent_datum.complementary_color blobber.overmind = src blob_mobs.Add(blobber) + spawn() + var/list/candidates = pollCandidates("Do you want to play as a blobbernaut?", ROLE_BLOB, 1) + if(candidates.len) + var/mob/C = pick(candidates) + if(C) + blobber.key = C.key + to_chat(blobber, "You are a blobbernaut! You must assist all blob lifeforms in their mission to consume everything!") return From cf46e2b7cee32e0913eb23ff73ab81c27a76929a Mon Sep 17 00:00:00 2001 From: Eman Date: Tue, 30 Jul 2019 21:32:57 +0200 Subject: [PATCH 09/37] Small changes Blobbernauts regenerate health slower. -0.25 from -0.5 per tick. The prompt to play as a blobbernaut now only lasts 15 seconds instead of 30. --- code/game/gamemodes/blob/blobs/blob_mobs.dm | 4 ++-- code/game/gamemodes/blob/powers.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index abb27f94dac..aec24116f33 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -184,8 +184,8 @@ /mob/living/simple_animal/hostile/blob/blobbernaut/Life(seconds, times_fired) if(stat != DEAD && (getBruteLoss() || getFireLoss())) // Heal on blob structures if (locate(/obj/structure/blob) in get_turf(src)) - adjustBruteLoss(-0.5) - adjustFireLoss(-0.5) + adjustBruteLoss(-0.25) + adjustFireLoss(-0.25) /mob/living/simple_animal/hostile/blob/blobbernaut/blob_act() return diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index 3124d7585ff..f19e23e0d98 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -234,7 +234,7 @@ blobber.overmind = src blob_mobs.Add(blobber) spawn() - var/list/candidates = pollCandidates("Do you want to play as a blobbernaut?", ROLE_BLOB, 1) + var/list/candidates = pollCandidates("Do you want to play as a blobbernaut?", ROLE_BLOB, 1, 150) if(candidates.len) var/mob/C = pick(candidates) if(C) From 51c1780f77ff56242fa3ee818b999f317a8623e6 Mon Sep 17 00:00:00 2001 From: Eman Date: Thu, 1 Aug 2019 13:39:14 +0200 Subject: [PATCH 10/37] Increased the resources needed to create blobbernauts --- code/_onclick/hud/blob_overmind.dm | 4 ++-- code/game/gamemodes/blob/powers.dm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index 0b223fc0b9e..c1f14fc625d 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -49,8 +49,8 @@ /obj/screen/blob/Blobbernaut icon_state = "ui_blobbernaut" - name = "Produce Blobbernaut (40)" - desc = "Produces a strong, intelligent blobbernaut from a factory blob for 40 resources.
The factory blob will be destroyed in the process." + name = "Produce Blobbernaut (60)" + desc = "Produces a strong, intelligent blobbernaut from a factory blob for 60 resources.
The factory blob will be destroyed in the process." /obj/screen/blob/Blobbernaut/Click() if(isovermind(usr)) diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index f19e23e0d98..2348155fc11 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -207,7 +207,7 @@ /mob/camera/blob/verb/create_blobbernaut() set category = "Blob" - set name = "Create Blobbernaut (40)" + set name = "Create Blobbernaut (60)" set desc = "Create a powerful blob-being, a Blobbernaut" var/turf/T = get_turf(src) @@ -224,7 +224,7 @@ to_chat(src, "Unable to use this blob, find a factory blob.") return - if(!can_buy(40)) + if(!can_buy(60)) return var/mob/living/simple_animal/hostile/blob/blobbernaut/blobber = new /mob/living/simple_animal/hostile/blob/blobbernaut (get_turf(B)) From e34116b75c57c75a3ed52b1898477802cc6cb82f Mon Sep 17 00:00:00 2001 From: farie82 Date: Wed, 7 Aug 2019 08:40:59 +0200 Subject: [PATCH 11/37] returns for the ending code --- code/game/gamemodes/nuclear/nuclearbomb.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 1afa03d8b8d..6fdf50362a1 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -81,6 +81,7 @@ var/bomb_set if(extended) if(O.flags & NODROP) to_chat(user, "\The [O] is stuck to your hand!") + return usr.drop_item() O.loc = src auth = O @@ -88,6 +89,7 @@ var/bomb_set return attack_hand(user) else to_chat(user, "You need to deploy \the [src] first. Right click on the sprite, select 'Make Deployable' then click on \the [src] with an empty hand.") + return if(anchored) switch(removal_stage) From 39c9e9abde31372d445656bd039b6c39625bbc73 Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 11 Aug 2019 18:56:32 -0400 Subject: [PATCH 12/37] Reworks Plasmamen --- code/__DEFINES/atmospherics.dm | 1 + code/datums/action.dm | 16 + code/datums/outfits/plasmamen.dm | 136 ++++ code/datums/supplypacks.dm | 16 +- code/game/gamemodes/cult/cult_items.dm | 15 - code/game/gamemodes/cult/talisman.dm | 7 +- code/game/gamemodes/nuclear/nuclear.dm | 6 +- code/game/machinery/cloning.dm | 6 + .../objects/items/stacks/sheets/leather.dm | 5 +- .../objects/items/weapons/tanks/tank_types.dm | 22 +- code/modules/client/client procs.dm | 4 +- code/modules/clothing/spacesuits/plasmamen.dm | 582 +++++------------- .../under/jobs/plasmamen/civilian_service.dm | 86 +++ .../under/jobs/plasmamen/engineering.dm | 15 + .../clothing/under/jobs/plasmamen/medsci.dm | 41 ++ .../under/jobs/plasmamen/plasmamen.dm | 50 ++ .../clothing/under/jobs/plasmamen/security.dm | 14 + code/modules/customitems/item_defines.dm | 115 +--- .../living/carbon/human/species/plasmaman.dm | 219 +++---- icons/mob/species/plasmaman/helmet.dmi | Bin 48682 -> 0 bytes icons/mob/species/plasmaman/mask.dmi | Bin 3791 -> 2374 bytes icons/mob/species/plasmaman/suit.dmi | Bin 62729 -> 0 bytes icons/obj/clothing/species/plasmaman/hats.dmi | Bin 28754 -> 0 bytes .../obj/clothing/species/plasmaman/suits.dmi | Bin 23733 -> 0 bytes paradise.dme | 6 + 25 files changed, 669 insertions(+), 693 deletions(-) create mode 100644 code/datums/outfits/plasmamen.dm create mode 100644 code/modules/clothing/under/jobs/plasmamen/civilian_service.dm create mode 100644 code/modules/clothing/under/jobs/plasmamen/engineering.dm create mode 100644 code/modules/clothing/under/jobs/plasmamen/medsci.dm create mode 100644 code/modules/clothing/under/jobs/plasmamen/plasmamen.dm create mode 100644 code/modules/clothing/under/jobs/plasmamen/security.dm delete mode 100644 icons/mob/species/plasmaman/helmet.dmi delete mode 100644 icons/mob/species/plasmaman/suit.dmi delete mode 100644 icons/obj/clothing/species/plasmaman/hats.dmi delete mode 100644 icons/obj/clothing/species/plasmaman/suits.dmi diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 67eea12291a..99bcf54272c 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -123,6 +123,7 @@ #define TANK_RUPTURE_PRESSURE (40.*ONE_ATMOSPHERE) //Tank spills all contents into atmosphere #define TANK_FRAGMENT_PRESSURE (50.*ONE_ATMOSPHERE) //Boom 3x3 base explosion #define TANK_FRAGMENT_SCALE (10.*ONE_ATMOSPHERE) //+1 for each SCALE kPa aboe threshold +#define TANK_DEFAULT_RELEASE_PRESSURE 16 // Atmos alarm defines #define ATMOS_ALARM_NONE 0 diff --git a/code/datums/action.dm b/code/datums/action.dm index a5f63cc6fe4..f9122811ad0 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -196,6 +196,22 @@ /datum/action/item_action/toggle_helmet_light name = "Toggle Helmet Light" +/datum/action/item_action/toggle_welding_screen + name = "Toggle Welding Screen" + +/datum/action/item_action/toggle_welding_screen/Trigger() + var/obj/item/clothing/head/hardhat/weldhat/H = target + if(istype(H)) + H.toggle_welding_screen(owner) + +/datum/action/item_action/toggle_welding_screen/plasmaman + name = "Toggle Welding Screen" + +/datum/action/item_action/toggle_welding_screen/plasmaman/Trigger() + var/obj/item/clothing/head/helmet/space/plasmaman/H = target + if(istype(H)) + H.toggle_welding_screen(owner) + /datum/action/item_action/toggle_helmet_mode name = "Toggle Helmet Mode" diff --git a/code/datums/outfits/plasmamen.dm b/code/datums/outfits/plasmamen.dm new file mode 100644 index 00000000000..594a5802c34 --- /dev/null +++ b/code/datums/outfits/plasmamen.dm @@ -0,0 +1,136 @@ +/datum/outfit/plasmaman + name = "Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman + uniform = /obj/item/clothing/under/plasmaman + r_hand= /obj/item/tank/plasma/plasmaman/belt/full + mask = /obj/item/clothing/mask/breath + +/datum/outfit/plasmaman/bar + name = "Bartender Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/white + uniform = /obj/item/clothing/under/plasmaman/enviroslacks + +/datum/outfit/plasmaman/chef + name = "Chef Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/white + uniform = /obj/item/clothing/under/plasmaman/chef + +/datum/outfit/plasmaman/botany + name = "Botany Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/botany + uniform = /obj/item/clothing/under/plasmaman/botany + +/datum/outfit/plasmaman/librarian + name = "Librarian Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/librarian + uniform = /obj/item/clothing/under/plasmaman/librarian + +/datum/outfit/plasmaman/chaplain + name = "Chaplain Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/chaplain + uniform = /obj/item/clothing/under/plasmaman/chaplain + +/datum/outfit/plasmaman/janitor + name = "Janitor Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/janitor + uniform = /obj/item/clothing/under/plasmaman/janitor + +/datum/outfit/plasmaman/security + name = "Security Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/security + uniform = /obj/item/clothing/under/plasmaman/security + +/datum/outfit/plasmaman/detective + name = "Detective Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/white + uniform = /obj/item/clothing/under/plasmaman/enviroslacks + l_ear = /obj/item/radio/headset/headset_sec + +/datum/outfit/plasmaman/warden + name = "Warden Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/security/warden + uniform = /obj/item/clothing/under/plasmaman/security/warden + +/datum/outfit/plasmaman/cargo + name = "Cargo Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/cargo + uniform = /obj/item/clothing/under/plasmaman/cargo + +/datum/outfit/plasmaman/mining + name = "Mining Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/mining + uniform = /obj/item/clothing/under/plasmaman/mining + +/datum/outfit/plasmaman/medical + name = "Medical Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/medical + uniform = /obj/item/clothing/under/plasmaman/medical + +/datum/outfit/plasmaman/viro + name = "Virology Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/viro + uniform = /obj/item/clothing/under/plasmaman/viro + +/datum/outfit/plasmaman/chemist + name = "Chemist Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/chemist + uniform = /obj/item/clothing/under/plasmaman/chemist + +/datum/outfit/plasmaman/genetics + name = "Genetics Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/genetics + uniform = /obj/item/clothing/under/plasmaman/genetics + +/datum/outfit/plasmaman/science + name = "Science Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/science + uniform = /obj/item/clothing/under/plasmaman/science + +/datum/outfit/plasmaman/robotics + name = "Robotics Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/robotics + uniform = /obj/item/clothing/under/plasmaman/robotics + +/datum/outfit/plasmaman/engineering + name = "Engineering Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/engineering + uniform = /obj/item/clothing/under/plasmaman/engineering + +/datum/outfit/plasmaman/atmospherics + name = "Atmospherics Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/atmospherics + uniform = /obj/item/clothing/under/plasmaman/atmospherics + +/datum/outfit/plasmaman/mime + name = "Plasmamime" + + head = /obj/item/clothing/head/helmet/space/plasmaman/mime + uniform = /obj/item/clothing/under/plasmaman/mime + mask = /obj/item/clothing/mask/gas/mime + +/datum/outfit/plasmaman/clown + name = "Plasmaclown" + + head = /obj/item/clothing/head/helmet/space/plasmaman/clown + uniform = /obj/item/clothing/under/plasmaman/clown + mask = /obj/item/clothing/mask/gas/clown_hat \ No newline at end of file diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 7a63fa1571f..9345387e304 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -160,12 +160,16 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine containername = "vox life support supplies crate" /datum/supply_packs/emergency/plasmamansupport - name = "Plasmaman Life Support Supplies" - contains = list(/obj/item/clothing/mask/breath, - /obj/item/tank/emergency_oxygen/plasma, - /obj/item/clothing/suit/space/eva/plasmaman, - /obj/item/clothing/head/helmet/space/eva/plasmaman) - cost = 75 + name = "Plasmaman Supply Kit" + contains = list(/obj/item/clothing/under/plasmaman, + /obj/item/clothing/under/plasmaman, + /obj/item/tank/plasma/plasmaman/belt/full, + /obj/item/tank/plasma/plasmaman/belt/full, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/breath, + /obj/item/clothing/head/helmet/space/plasmaman, + /obj/item/clothing/head/helmet/space/plasmaman) + cost = 20 containertype = /obj/structure/closet/crate/secure/plasma containername = "plasmaman life support supplies crate" access = access_eva diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index e4274d18d49..fe0980a24cd 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -344,21 +344,6 @@ else to_chat(C, "The veil cannot be torn here!") -/obj/item/clothing/suit/space/eva/plasmaman/cultist - name = "plasmaman cultist armor" - icon_state = "plasmaman_cult" - item_state = "plasmaman_cult" - desc = "A bulky suit of armour, menacing with red energy. It looks like it would fit a plasmaman." - slowdown = 1 - armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - -/obj/item/clothing/head/helmet/space/eva/plasmaman/cultist - name = "plasmaman cultist helmet" - icon_state = "plasmamanCult_helmet0" - base_state = "plasmamanCult_helmet" - desc = "A helmet designed by cultists. It glows menacingly with unearthly flames." - armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - /obj/item/melee/cultblade/ghost name = "eldritch sword" force = 15 diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 92fc09490ec..3658a57fb98 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -279,11 +279,8 @@ var/mob/living/carbon/human/H = user user.visible_message("Otherworldly armor suddenly appears on [user]!", \ "You speak the words of the talisman, arming yourself!") - if(isplasmaman(H)) - H.equip_to_slot(new /obj/item/clothing/suit/space/eva/plasmaman/cultist(H), slot_wear_suit) - H.equip_to_slot(new /obj/item/clothing/head/helmet/space/eva/plasmaman/cultist(H), slot_head) - else - H.equip_to_slot_or_del(new /obj/item/clothing/suit/hooded/cultrobes/alt(user), slot_wear_suit) + + H.equip_to_slot_or_del(new /obj/item/clothing/suit/hooded/cultrobes/alt(user), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(user), slot_shoes) H.put_in_hands(new /obj/item/melee/cultblade(user)) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 4e9d507c9ea..fc6ebcc1549 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -292,11 +292,9 @@ proc/issyndicate(mob/living/M as mob) if("Plasmaman") synd_mob.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/syndicate(synd_mob), slot_wear_mask) - synd_mob.equip_to_slot(new /obj/item/clothing/suit/space/eva/plasmaman/nuclear(synd_mob), slot_wear_suit) - synd_mob.equip_to_slot(new /obj/item/clothing/head/helmet/space/eva/plasmaman/nuclear(synd_mob), slot_head) synd_mob.equip_or_collect(new /obj/item/tank/plasma/plasmaman(synd_mob), slot_s_store) - synd_mob.equip_or_collect(new /obj/item/plasmensuit_cartridge(synd_mob), slot_in_backpack) - synd_mob.equip_or_collect(new /obj/item/plasmensuit_cartridge(synd_mob), slot_in_backpack) + synd_mob.equip_or_collect(new /obj/item/extinguisher_refill(synd_mob), slot_in_backpack) + synd_mob.equip_or_collect(new /obj/item/extinguisher_refill(synd_mob), slot_in_backpack) synd_mob.internal = synd_mob.get_item_by_slot(slot_s_store) synd_mob.update_action_buttons_icon() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 1d05204e381..1ce0bcd97e7 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -178,6 +178,12 @@ if(occupant && occupant.stat != DEAD) to_chat(user, "Current clone cycle is [round(get_completion())]% complete.") +/obj/machinery/clonepod/return_air() //non-reactive air + var/datum/gas_mixture/GM = new + GM.nitrogen = MOLES_O2STANDARD + MOLES_N2STANDARD + GM.temperature = T20C + return GM + /obj/machinery/clonepod/proc/get_completion() . = (100 * ((occupant.health + 100) / (heal_level + 100))) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index db7c08b1863..aebe5097174 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -133,12 +133,9 @@ var/global/list/datum/stack_recipe/sinew_recipes = list ( \ can_strengthen_clothing = typecacheof(list( /obj/item/clothing/suit/space/hardsuit/mining, /obj/item/clothing/head/helmet/space/hardsuit/mining, - /obj/item/clothing/suit/space/eva/plasmaman/miner, - /obj/item/clothing/head/helmet/space/eva/plasmaman/miner, /obj/item/clothing/suit/hooded/explorer, /obj/item/clothing/head/hooded/explorer, - /obj/item/clothing/suit/space/eva/plasmaman/explorer, - /obj/item/clothing/head/helmet/space/eva/plasmaman/explorer + /obj/item/clothing/head/helmet/space/plasmaman/mining )) /obj/item/stack/sheet/animalhide/goliath_hide/afterattack(atom/target, mob/user, proximity_flag) diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index d3814b1af98..2df0eaf1da3 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -110,9 +110,12 @@ obj/item/tank/oxygen/empty/New() air_contents.toxins = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) /obj/item/tank/plasma/plasmaman - desc = "The lifeblood of plasmamen. Warning: Extremely flammable, do not inhale (unless you're a plasman)." - icon_state = "plasma_fr" - distribute_pressure = ONE_ATMOSPHERE*O2STANDARD + name = "plasma internals tank" + desc = "A tank of plasma gas designed specifically for use as internals, particularly for plasma-based lifeforms. If you're not a Plasmaman, you probably shouldn't use this." + icon_state = "plasmaman_tank" + item_state = "plasmaman_tank" + force = 10 + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE /obj/item/tank/plasma/plasmaman/examine(mob/user) if(..(user, 0)) @@ -120,6 +123,19 @@ obj/item/tank/oxygen/empty/New() to_chat(user, text("The meter on the [src.name] indicates you are almost out of plasma!")) user << sound('sound/effects/alert.ogg') + +/obj/item/tank/plasma/plasmaman/belt + icon_state = "plasmaman_tank_belt" + item_state = "plasmaman_tank_belt" + slot_flags = SLOT_BELT + force = 5 + volume = 6 + w_class = WEIGHT_CLASS_SMALL + +/obj/item/tank/plasma/plasmaman/belt/full/New() + ..() + air_contents.toxins = (10 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C) + /* * Emergency Oxygen */ diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 4e59dc2c1cf..d429330bd62 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -143,7 +143,7 @@ if("5") karma_purchase(karma,45,"species","Slime People") if("6") - karma_purchase(karma,100,"species","Plasmaman") + karma_purchase(karma,45,"species","Plasmaman") if("7") karma_purchase(karma,30,"species","Drask") if(href_list["KarmaRefund"]) @@ -406,7 +406,7 @@ if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them. to_chat(src, "Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you.") - + //This is down here because of the browse() calls in tooltip/New() if(!tooltips) tooltips = new /datum/tooltip(src) diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index e355aead650..e792a4d19fc 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -1,427 +1,185 @@ -// PLASMEN SHIT -// CAN'T WEAR UNLESS YOU'RE A PINK SKELETON -/obj/item/clothing/suit/space/eva/plasmaman - name = "plasmaman suit" - desc = "A special containment suit designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies." - allowed = list(/obj/item/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword/saber,/obj/item/restraints/handcuffs,/obj/item/tank) - slowdown = 0 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 20) - heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - flags_inv = HIDEGLOVES|HIDESHOES - max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT - icon = 'icons/obj/clothing/species/plasmaman/suits.dmi' - species_restricted = list("Plasmaman") - sprite_sheets = list( - "Plasmaman" = 'icons/mob/species/plasmaman/suit.dmi' - ) - flags = STOPSPRESSUREDMAGE - icon_state = "plasmaman_suit" - item_state = "plasmaman_suit" +//I just want the light feature of the hardsuit helmet +/obj/item/clothing/head/helmet/space/plasmaman + name = "plasma envirosuit helmet" + desc = "A special containment helmet that allows plasma-based lifeforms to exist safely in an oxygenated environment. It is space-worthy, and may be worn in tandem with other EVA gear." + icon_state = "plasmaman-helm" + item_state = "plasmaman-helm" + strip_delay = 80 + flash_protect = 2 + tint = 2 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0) + resistance_flags = FIRE_PROOF + var/brightness_on = 4 //luminosity when the light is on + var/on = FALSE + var/visor_icon = "envisor" + actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_welding_screen/plasmaman) + visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES + visor_flags_inv = HIDEEYES|HIDEFACE|HIDEFACIALHAIR - var/next_extinguish = 0 - var/extinguish_cooldown = 10 SECONDS - var/max_extinguishes = 5 - var/extinguishes_left = 5 // Yeah yeah, reagents, blah blah blah. This should be simple. - -/obj/item/clothing/suit/space/eva/plasmaman/proc/Extinguish(var/mob/user) - var/mob/living/carbon/human/H=user - if(extinguishes_left) - if(next_extinguish > world.time) - return - - next_extinguish = world.time + extinguish_cooldown - extinguishes_left-- - to_chat(user, "You hear a soft click and a hiss from your suit as it automatically extinguishes the fire.") - if(!extinguishes_left) - to_chat(user, "Onboard auto-extinguisher depleted, refill with a cartridge.") - playsound(src.loc, 'sound/effects/spray.ogg', 10, 1, -3) - H.ExtinguishMob() - -/obj/item/clothing/suit/space/eva/plasmaman/attackby(var/obj/item/A as obj, mob/user as mob, params) +/obj/item/clothing/head/helmet/space/plasmaman/New() ..() - if(istype(A, /obj/item/plasmensuit_cartridge)) //This suit can only be reloaded by the appropriate cartridges, and only if it's got no more extinguishes left. - if(!extinguishes_left) - extinguishes_left = max_extinguishes //Full replenishment from the cartridge. - to_chat(user, "You replenish \the [src] with the cartridge.") - qdel(A) + visor_toggling() + update_icon() + +/obj/item/clothing/head/helmet/space/plasmaman/AltClick(mob/user) + if(user.canUseTopic(src, BE_CLOSE)) + toggle_welding_screen(user) + +/obj/item/clothing/head/helmet/space/plasmaman/proc/toggle_welding_screen(mob/living/user) + if(weldingvisortoggle(user)) + if(on) + to_chat(user, "Your helmet's torch can't pass through your welding visor!") + on = FALSE + playsound(src, 'sound/mecha/mechmove03.ogg', 50, 1) //Visors don't just come from nothing + update_icon() else - to_chat(user, "The suit must be depleted before it can be refilled.") + playsound(src, 'sound/mecha/mechmove03.ogg', 50, 1) //Visors don't just come from nothing + update_icon() -/obj/item/clothing/suit/space/eva/plasmaman/examine(mob/user) - ..(user) - to_chat(user, "There are [extinguishes_left] extinguisher canisters left in this suit.") - -/obj/item/plasmensuit_cartridge //Can be used to refill Plasmaman suits when they run out of autoextinguishes. - name = "auto-extinguisher cartridge" - desc = "A tiny and light fibreglass-framed auto-extinguisher cartridge." - icon = 'icons/obj/items.dmi' - icon_state = "miniFE0" - item_state = "miniFE" - hitsound = null //Ultralight and - flags = null //non-conductive - force = 0 - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL //Fits in boxes. - materials = list() - attack_verb = list("tapped") - -/obj/item/clothing/head/helmet/space/eva/plasmaman - name = "plasmaman helmet" - desc = "A special containment helmet designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies." - flags = STOPSPRESSUREDMAGE - icon = 'icons/obj/clothing/species/plasmaman/hats.dmi' - species_restricted = list("Plasmaman") - sprite_sheets = list( - "Plasmaman" = 'icons/mob/species/plasmaman/helmet.dmi' - ) - icon_state = "plasmaman_helmet0" - item_state = "plasmaman_helmet0" - var/base_state = "plasmaman_helmet" - var/brightness_on = 4 //luminosity when on - var/on = 0 +/obj/item/clothing/head/helmet/space/plasmaman/update_icon() + cut_overlays() + add_overlay(visor_icon) + ..() actions_types = list(/datum/action/item_action/toggle_helmet_light) -/obj/item/clothing/head/helmet/space/eva/plasmaman/attack_self(mob/user) - toggle_light(user) - -/obj/item/clothing/head/helmet/space/eva/plasmaman/proc/toggle_light(mob/user) +/obj/item/clothing/head/helmet/space/plasmaman/attack_self(mob/user) on = !on - icon_state = "[base_state][on]" + icon_state = "[initial(icon_state)][on ? "-light":""]" + item_state = icon_state + user.update_inv_head() //So the mob overlay updates if(on) - set_light(brightness_on) + if(!up) + to_chat(user, "Your helmet's torch can't pass through your welding visor!") + set_light(0) + else + set_light(brightness_on) else set_light(0) - if(istype(user,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - H.update_inv_head() - for(var/X in actions) - var/datum/action/A = X + var/datum/action/A=X A.UpdateButtonIcon() -/obj/item/clothing/head/helmet/space/eva/plasmaman/extinguish_light() - if(on) - toggle_light() - visible_message("[src]'s light fades and turns off.") - -// ENGINEERING -/obj/item/clothing/suit/space/eva/plasmaman/atmostech - name = "plasmaman atmospheric suit" - icon_state = "plasmamanAtmos_suit" - armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0) - max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - -/obj/item/clothing/head/helmet/space/eva/plasmaman/atmostech - name = "plasmaman atmospheric helmet" - icon_state = "plasmamanAtmos_helmet0" - base_state = "plasmamanAtmos_helmet" - armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0) - max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - flash_protect = 2 - -/obj/item/clothing/suit/space/eva/plasmaman/engineer - name = "plasmaman engineer suit" - icon_state = "plasmamanEngineer_suit" - armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) - -/obj/item/clothing/head/helmet/space/eva/plasmaman/engineer - name = "plasmaman engineer helmet" - icon_state = "plasmamanEngineer_helmet0" - base_state = "plasmamanEngineer_helmet" - armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) - flash_protect = 2 - -/obj/item/clothing/suit/space/eva/plasmaman/engineer/ce - name = "plasmaman chief engineer suit" - icon_state = "plasmaman_CE" - max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - - -/obj/item/clothing/head/helmet/space/eva/plasmaman/engineer/ce - name = "plasmaman chief engineer helmet" - icon_state = "plasmaman_CE_helmet0" - base_state = "plasmaman_CE_helmet" - max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - flash_protect = 2 - -//SERVICE -/obj/item/clothing/suit/space/eva/plasmaman/assistant - name = "plasmaman assistant suit" - icon_state = "plasmamanAssistant_suit" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/assistant - name = "plasmaman assistant helmet" - icon_state = "plasmamanAssistant_helmet0" - base_state = "plasmamanAssistant_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/botanist - name = "plasmaman botanist suit" - icon_state = "plasmamanBotanist_suit" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/botanist - name = "plasmaman botanist helmet" - icon_state = "plasmamanBotanist_helmet0" - base_state = "plasmamanBotanist_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/chaplain - name = "plasmaman chaplain suit" - icon_state = "plasmamanChaplain_suit" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/chaplain - name = "plasmaman chaplain helmet" - icon_state = "plasmamanChaplain_helmet0" - base_state = "plasmamanChaplain_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/clown - name = "plasmaman clown suit" - icon_state = "plasmaman_Clown" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/clown - name = "plasmaman clown helmet" - icon_state = "plasmaman_Clown_helmet0" - base_state = "plasmaman_Clown_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/mime - name = "plasmaman mime suit" - icon_state = "plasmaman_Mime" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/mime - name = "plasmaman mime helmet" - icon_state = "plasmaman_Mime_helmet0" - base_state = "plasmaman_Mime_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/service - name = "plasmaman service suit" - icon_state = "plasmamanService_suit" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/service - name = "plasmaman service helmet" - icon_state = "plasmamanService_helmet0" - base_state = "plasmamanService_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/janitor - name = "plasmaman janitor suit" - icon_state = "plasmamanJanitor_suit" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/janitor - name = "plasmaman janitor helmet" - icon_state = "plasmamanJanitor_helmet0" - base_state = "plasmamanJanitor_helmet" - - -//CARGO - -/obj/item/clothing/suit/space/eva/plasmaman/cargo - name = "plasmaman cargo suit" - icon_state = "plasmamanCargo_suit" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/cargo - name = "plasmaman cargo helmet" - icon_state = "plasmamanCargo_helmet0" - base_state = "plasmamanCargo_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/miner - name = "plasmaman miner suit" - icon_state = "plasmamanMiner_suit" - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50) - slowdown = 1 - -/obj/item/clothing/head/helmet/space/eva/plasmaman/miner - name = "plasmaman miner helmet" - icon_state = "plasmamanMiner_helmet0" - base_state = "plasmamanMiner_helmet" - armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50) - -/obj/item/clothing/suit/space/eva/plasmaman/explorer - name = "plasmaman explorer suit" - icon_state = "plasmamanExplorer_suit" - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 50) - -/obj/item/clothing/head/helmet/space/eva/plasmaman/explorer - name = "plasmaman explorer helmet" - icon_state = "plasmamanExplorer_helmet0" - base_state = "plasmamanExplorer_helmet" - armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 50) - -// MEDSCI - -/obj/item/clothing/suit/space/eva/plasmaman/medical - name = "plasmaman medical suit" - icon_state = "plasmamanMedical_suit" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/medical - name = "plasmaman medical helmet" - icon_state = "plasmamanMedical_helmet0" - base_state = "plasmamanMedical_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/medical/paramedic - name = "plasmaman paramedic suit" - icon_state = "plasmaman_Paramedic" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/paramedic - name = "plasmaman paramedic helmet" - icon_state = "plasmaman_Paramedic_helmet0" - base_state = "plasmaman_Paramedic_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/medical/chemist - name = "plasmaman chemist suit" - icon_state = "plasmaman_Chemist" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/chemist - name = "plasmaman chemist helmet" - icon_state = "plasmaman_Chemist_helmet0" - base_state = "plasmaman_Chemist_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/medical/cmo - name = "plasmaman chief medical officer suit" - icon_state = "plasmaman_CMO" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/cmo - name = "plasmaman chief medical officer helmet" - icon_state = "plasmaman_CMO_helmet0" - base_state = "plasmaman_CMO_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/medical/coroner - name = "plasmaman coroner suit" - icon_state = "plasmaman_Coroner" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/coroner - name = "plasmaman coroner helmet" - icon_state = "plasmaman_Coroner_helmet0" - base_state = "plasmaman_Coroner_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/medical/virologist - name = "plasmaman virologist suit" - icon_state = "plasmaman_Virologist" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/virologist - name = "plasmaman virologist helmet" - icon_state = "plasmaman_Virologist_helmet0" - base_state = "plasmaman_Virologist_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/science - name = "plasmaman scientist suit" - icon_state = "plasmamanScience_suit" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/science - name = "plasmaman scientist helmet" - icon_state = "plasmamanScience_helmet0" - base_state = "plasmamanScience_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/science/geneticist - name = "plasmaman geneticist suit" - icon_state = "plasmaman_Geneticist" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/science/geneticist - name = "plasmaman geneticist helmet" - icon_state = "plasmaman_Geneticist_helmet0" - base_state = "plasmaman_Geneticist_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/science/rd - name = "plasmaman research director suit" - icon_state = "plasmaman_RD" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/science/rd - name = "plasmaman research director helmet" - icon_state = "plasmaman_RD_helmet0" - base_state = "plasmaman_RD_helmet" - -//MAGISTRATE -/obj/item/clothing/suit/space/eva/plasmaman/magistrate - name = "plasmaman magistrate suit" - icon_state = "plasmaman_HoS" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/magistrate - name = "plasmaman magistrate helmet" - icon_state = "plasmaman_HoS_helmet0" - base_state = "plasmaman_HoS_helmet" - -//NT REP -/obj/item/clothing/suit/space/eva/plasmaman/nt_rep - name = "plasmaman NT representative suit" - icon_state = "plasmaman_rep" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/nt_rep - name = "plasmaman NT representative helmet" - icon_state = "plasmaman_rep_helmet0" - base_state = "plasmaman_rep_helmet" - -//SECURITY - -/obj/item/clothing/suit/space/eva/plasmaman/security - name = "plasmaman security suit" - icon_state = "plasmamanSecurity_suit" - armor = list(melee = 15, bullet = 15, laser = 15, energy = 10, bomb = 10, bio = 100, rad = 50) - -/obj/item/clothing/head/helmet/space/eva/plasmaman/security - name = "plasmaman security helmet" - icon_state = "plasmamanSecurity_helmet0" - base_state = "plasmamanSecurity_helmet" - armor = list(melee = 15, bullet = 15, laser = 15, energy = 10, bomb = 10, bio = 100, rad = 50) - -/obj/item/clothing/suit/space/eva/plasmaman/security/hos - name = "plasmaman head of security suit" - icon_state = "plasmaman_HoS" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/security/hos - name = "plasmaman head of security helmet" - icon_state = "plasmaman_HoS_helmet0" - base_state = "plasmaman_HoS_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/security/hop - name = "plasmaman head of personnel suit" - icon_state = "plasmaman_HoP" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/security/hop - name = "plasmaman head of personnel helmet" - icon_state = "plasmaman_HoP_helmet0" - base_state = "plasmaman_HoP_helmet" - -/obj/item/clothing/suit/space/eva/plasmaman/security/captain - name = "plasmaman captain suit" - icon_state = "plasmaman_Captain" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/security/captain - name = "plasmaman captain helmet" - icon_state = "plasmaman_Captain_helmet0" - base_state = "plasmaman_Captain_helmet" - - -//IAA/LAWYER -/obj/item/clothing/suit/space/eva/plasmaman/lawyer - name = "plasmaman lawyer suit" - icon_state = "plasmamanlawyer_suit" - -/obj/item/clothing/head/helmet/space/eva/plasmaman/lawyer - name = "plasmaman lawyer helmet" - icon_state = "plasmamanlawyer_helmet0" - base_state = "plasmamanlawyer_helmet" - -//NUKEOPS - -/obj/item/clothing/suit/space/eva/plasmaman/nuclear - name = "blood red plasmaman suit" - icon_state = "plasmaman_Nukeops" - armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword/saber,/obj/item/restraints/handcuffs) - -/obj/item/clothing/head/helmet/space/eva/plasmaman/nuclear - name = "blood red plasmaman helmet" - icon_state = "plasmaman_Nukeops_helmet0" - base_state = "plasmaman_Nukeops_helmet" - armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) - -//WIZARD -/obj/item/clothing/suit/space/eva/plasmaman/wizard - name = "robed plasmaman suit" - icon_state = "plasmamanWizardBlue_suit" - magical = TRUE - -/obj/item/clothing/head/helmet/space/eva/plasmaman/wizard - name = "wizard hat" - icon_state = "plasmamanWizardBlue_helmet0" - base_state = "plasmamanWizardBlue_helmet" - magical = TRUE +/obj/item/clothing/head/helmet/space/plasmaman/security + name = "security plasma envirosuit helmet" + desc = "A plasmaman containment helmet designed for security officers, protecting them from being flashed and burning alive, along-side other undesirables." + icon_state = "security_envirohelm" + item_state = "security_envirohelm" + armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0) + +/obj/item/clothing/head/helmet/space/plasmaman/security/warden + name = "warden's plasma envirosuit helmet" + desc = "A plasmaman containment helmet designed for the warden, a pair of white stripes being added to differeciate them from other members of security." + icon_state = "warden_envirohelm" + item_state = "warden_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/medical + name = "medical's plasma envirosuit helmet" + desc = "An envriohelmet designed for plasmaman medical doctors, having two stripes down it's length to denote as much" + icon_state = "doctor_envirohelm" + item_state = "doctor_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/genetics + name = "geneticist's plasma envirosuit helmet" + desc = "A plasmaman envirohelmet designed for geneticists." + icon_state = "geneticist_envirohelm" + item_state = "geneticist_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/viro + name = "virology plasma envirosuit helmet" + desc = "The helmet worn by the safest people on the station, those who are completely immune to the monstrosities they create." + icon_state = "virologist_envirohelm" + item_state = "virologist_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/chemist + name = "chemistry plasma envirosuit helmet" + desc = "A plasmaman envirosuit designed for chemists, two orange stripes going down it's face." + icon_state = "chemist_envirohelm" + item_state = "chemist_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/science + name = "science plasma envirosuit helmet" + desc = "A plasmaman envirohelmet designed for scientists." + icon_state = "scientist_envirohelm" + item_state = "scientist_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/robotics + name = "robotics plasma envirosuit helmet" + desc = "A plasmaman envirohelmet designed for roboticists." + icon_state = "roboticist_envirohelm" + item_state = "roboticist_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/engineering + name = "engineering plasma envirosuit helmet" + desc = "A space-worthy helmet specially designed for engineer plasmamen, the usual purple stripes being replaced by engineering's orange." + icon_state = "engineer_envirohelm" + item_state = "engineer_envirohelm" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 10) + +/obj/item/clothing/head/helmet/space/plasmaman/atmospherics + name = "atmospherics plasma envirosuit helmet" + desc = "A space-worthy helmet specially designed for atmos technician plasmamen, the usual purple stripes being replaced by engineering's blue." + icon_state = "atmos_envirohelm" + item_state = "atmos_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/cargo + name = "cargo plasma envirosuit helmet" + desc = "An plasmaman envirohelmet designed for cargo techs and quartermasters." + icon_state = "cargo_envirohelm" + item_state = "cargo_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/mining + name = "mining plasma envirosuit helmet" + desc = "A khaki helmet given to plasmamen miners operating on lavaland." + icon_state = "explorer_envirohelm" + item_state = "explorer_envirohelm" + visor_icon = "explorer_envisor" + +/obj/item/clothing/head/helmet/space/plasmaman/chaplain + name = "chaplain's plasma envirosuit helmet" + desc = "An envirohelmet specially designed for only the most pious of plasmamen." + icon_state = "chap_envirohelm" + item_state = "chap_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/white + name = "white plasma envirosuit helmet" + desc = "A generic white envirohelm." + icon_state = "white_envirohelm" + item_state = "white_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/librarian + name = "librarian's plasma envirosuit helmet" + desc = "A slight modification on a tradiational voidsuit helmet, this helmet was Nano-Trasen's first solution to the *logistical problems* that come with employing plasmamen. Despite their limitations, these helmets still see use by historian and old-styled plasmamen alike." + icon_state = "prototype_envirohelm" + item_state = "prototype_envirohelm" + actions_types = list(/datum/action/item_action/toggle_welding_screen/plasmaman) + visor_icon = "prototype_envisor" + +/obj/item/clothing/head/helmet/space/plasmaman/botany + name = "botany plasma envirosuit helmet" + desc = "A green and blue envirohelmet designating it's wearer as a botanist. While not specially designed for it, it would protect against minor planet-related injuries." + icon_state = "botany_envirohelm" + item_state = "botany_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/janitor + name = "janitor's plasma envirosuit helmet" + desc = "A grey helmet bearing a pair of purple stripes, designating the wearer as a janitor." + icon_state = "janitor_envirohelm" + item_state = "janitor_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/mime + name = "mime envirosuit helmet" + desc = "The make-up is painted on, it's a miracle it doesn't chip. It's not very colourful." + icon_state = "mime_envirohelm" + item_state = "mime_envirohelm" + visor_icon = "mime_envisor" + +/obj/item/clothing/head/helmet/space/plasmaman/clown + name = "clown envirosuit helmet" + desc = "The make-up is painted on, it's a miracle it doesn't chip. 'HONK!'" + icon_state = "clown_envirohelm" + item_state = "clown_envirohelm" + visor_icon = "clown_envisor" \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm new file mode 100644 index 00000000000..79253894d12 --- /dev/null +++ b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm @@ -0,0 +1,86 @@ +/obj/item/clothing/under/plasmaman/cargo + name = "cargo plasma envirosuit" + desc = "A joint envirosuit used by plasmamen quartermasters and cargo techs alike, due to the logistical problems of differenciating the two with the length of their pant legs." + icon_state = "cargo_envirosuit" + item_state = "cargo_envirosuit" + item_color = "cargo_envirosuit" + +/obj/item/clothing/under/plasmaman/mining + name = "mining plasma envirosuit" + desc = "An air-tight khaki suit designed for operations on lavaland by plasmamen." + icon_state = "explorer_envirosuit" + item_state = "explorer_envirosuit" + item_color = "explorer_envirosuit" + + +/obj/item/clothing/under/plasmaman/chef + name = "chef's plasma envirosuit" + desc = "A white plasmaman envirosuit designed for cullinary practices. One might question why a member of a species that doesn't need to eat would become a chef." + icon_state = "chef_envirosuit" + item_state = "chef_envirosuit" + item_color = "chef_envirosuit" + +/obj/item/clothing/under/plasmaman/enviroslacks + name = "enviroslacks" + desc = "The pet project of a particularly posh plasmaman, this custom suit was quickly appropriated by Nano-Trasen for it's detectives, lawyers, and bar-tenders alike." + icon_state = "enviroslacks" + item_state = "enviroslacks" + item_color = "enviroslacks" + +/obj/item/clothing/under/plasmaman/chaplain + name = "chaplain's plasma envirosuit" + desc = "An envirosuit specially designed for only the most pious of plasmamen." + icon_state = "chap_envirosuit" + item_state = "chap_envirosuit" + item_color = "chap_envirosuit" + +/obj/item/clothing/under/plasmaman/librarian + name = "librarian's plasma envirosuit" + desc = "Made out of a modified voidsuit, this suit was Nano-Trasen's first solution to the *logistical problems* that come with employing plasmamen. Due to the modifications, the suit is no longer space-worthy. Despite their limitations, these suits are still in used by historian and old-styled plasmamen alike." + icon_state = "prototype_envirosuit" + item_state = "prototype_envirosuit" + item_color = "prototype_envirosuit" + +/obj/item/clothing/under/plasmaman/janitor + name = "janitor's plasma envirosuit" + desc = "A grey and purple envirosuit designated for plasmamen janitors." + icon_state = "janitor_envirosuit" + item_state = "janitor_envirosuit" + item_color = "janitor_envirosuit" + +/obj/item/clothing/under/plasmaman/botany + name = "botany envirosuit" + desc = "A green and blue envirosuit designed to protect plasmamen from minor plant-related injuries." + icon_state = "botany_envirosuit" + item_state = "botany_envirosuit" + item_color = "botany_envirosuit" + + +/obj/item/clothing/under/plasmaman/mime + name = "mime envirosuit" + desc = "It's not very colourful." + icon_state = "mime_envirosuit" + item_state = "mime_envirosuit" + item_color = "mime_envirosuit" + +/obj/item/clothing/under/plasmaman/clown + name = "clown envirosuit" + desc = "'HONK!'" + icon_state = "clown_envirosuit" + item_state = "clown_envirosuit" + item_color = "clown_envirosuit" + +/obj/item/clothing/under/plasmaman/clown/Extinguish(mob/living/carbon/human/H) + if(!istype(H)) + return + + if(H.on_fire) + if(extinguishes_left) + if(next_extinguish > world.time) + return + next_extinguish = world.time + extinguish_cooldown + extinguishes_left-- + H.visible_message("[H]'s suit spews out a tonne of space lube!", "Your suit spews out a tonne of space lube!") + H.ExtinguishMob() + new /obj/effect/particle_effect/foam(loc) //Truely terrifying. + return FALSE diff --git a/code/modules/clothing/under/jobs/plasmamen/engineering.dm b/code/modules/clothing/under/jobs/plasmamen/engineering.dm new file mode 100644 index 00000000000..1429ef28929 --- /dev/null +++ b/code/modules/clothing/under/jobs/plasmamen/engineering.dm @@ -0,0 +1,15 @@ +/obj/item/clothing/under/plasmaman/engineering + name = "engineering plasma envirosuit" + desc = "An air-tight suit designed to be used by plasmamen exployed as engineers, the usual purple stripes being replaced by engineer's orange. It protects the user from fire and acid damage." + icon_state = "engineer_envirosuit" + item_state = "engineer_envirosuit" + item_color = "engineer_envirosuit" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 10) + +/obj/item/clothing/under/plasmaman/atmospherics + name = "atmospherics plasma envirosuit" + desc = "An air-tight suit designed to be used by plasmamen exployed as atmos technicians, the usual purple stripes being replaced by atmos's blue." + icon_state = "atmos_envirosuit" + item_state = "atmos_envirosuit" + item_color = "atmos_envirosuit" + diff --git a/code/modules/clothing/under/jobs/plasmamen/medsci.dm b/code/modules/clothing/under/jobs/plasmamen/medsci.dm new file mode 100644 index 00000000000..5aa61e7faf7 --- /dev/null +++ b/code/modules/clothing/under/jobs/plasmamen/medsci.dm @@ -0,0 +1,41 @@ +/obj/item/clothing/under/plasmaman/medical + name = "medical plasma envirosuit" + desc = "A suit designed for the station's more plasma-based doctors." + icon_state = "doctor_envirosuit" + item_state = "doctor_envirosuit" + item_color = "doctor_envirosuit" + +/obj/item/clothing/under/plasmaman/science + name = "science plasma envirosuit" + desc = "A plasmaman envirosuit designed for scientists." + icon_state = "scientist_envirosuit" + item_state = "scientist_envirosuit" + item_color = "scientist_envirosuit" + +/obj/item/clothing/under/plasmaman/robotics + name = "robotics plasma envirosuit" + desc = "A plasmaman envirosuit designed for roboticists." + icon_state = "roboticist_envirosuit" + item_state = "roboticist_envirosuit" + item_color = "roboticist_envirosuit" + +/obj/item/clothing/under/plasmaman/viro + name = "virology plasma envirosuit" + desc = "The suit worn by the safest people on the station, those who are completely immune to the monstrosities they create." + icon_state = "virologist_envirosuit" + item_state = "virologist_envirosuit" + item_color = "virologist_envirosuit" + +/obj/item/clothing/under/plasmaman/genetics + name = "genetics plasma envirosuit" + desc = "A plasmaman envirosuit designed for geneticists." + icon_state = "geneticist_envirosuit" + item_state = "geneticist_envirosuit" + item_color = "geneticist_envirosuit" + +/obj/item/clothing/under/plasmaman/chemist + name = "chemistry plasma envirosuit" + desc = "A plasmaman envirosuit designed for chemists." + icon_state = "chemist_envirosuit" + item_state = "chemist_envirosuit" + item_color = "chemist_envirosuit" diff --git a/code/modules/clothing/under/jobs/plasmamen/plasmamen.dm b/code/modules/clothing/under/jobs/plasmamen/plasmamen.dm new file mode 100644 index 00000000000..80bbb109361 --- /dev/null +++ b/code/modules/clothing/under/jobs/plasmamen/plasmamen.dm @@ -0,0 +1,50 @@ +/obj/item/clothing/under/plasmaman + name = "plasma envirosuit" + desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy." + icon_state = "plasmaman" + item_state = "plasmaman" + item_color = "plasmaman" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0) + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + strip_delay = 80 + var/next_extinguish = 0 + var/extinguish_cooldown = 100 + var/extinguishes_left = 5 + + +/obj/item/clothing/under/plasmaman/examine(mob/user) + . = ..() + . += "There are [extinguishes_left] extinguisher charges left in this suit." + +/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H) + if(!istype(H)) + return + + if(H.on_fire) + if(extinguishes_left) + if(next_extinguish > world.time) + return + next_extinguish = world.time + extinguish_cooldown + extinguishes_left-- + H.visible_message("[H]'s suit automatically extinguishes [H.p_them()]!","Your suit automatically extinguishes you.") + H.ExtinguishMob() + new /obj/effect/particle_effect/water(get_turf(H)) + return FALSE + +/obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params) + if (istype(E, /obj/item/extinguisher_refill)) + if (extinguishes_left == 5) + to_chat(user, "The inbuilt extinguisher is full.") + return + else + extinguishes_left = 5 + to_chat(user, "You refill the suit's built-in extinguisher, using up the cartridge.") + qdel(E) + else + return ..() + +/obj/item/extinguisher_refill + name = "envirosuit extinguisher cartridge" + desc = "A cartridge loaded with a compressed extinguisher mix, used to refill the automatic extinguisher on plasma envirosuits." + icon_state = "plasmarefill" + icon = 'icons/obj/device.dmi' \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/plasmamen/security.dm b/code/modules/clothing/under/jobs/plasmamen/security.dm new file mode 100644 index 00000000000..e4332d5f5dd --- /dev/null +++ b/code/modules/clothing/under/jobs/plasmamen/security.dm @@ -0,0 +1,14 @@ +/obj/item/clothing/under/plasmaman/security + name = "security plasma envirosuit" + desc = "A plasmaman containment suit designed for security officers, offering a limited amount of extra protection." + icon_state = "security_envirosuit" + item_state = "security_envirosuit" + item_color = "security_envirosuit" + armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0) + +/obj/item/clothing/under/plasmaman/security/warden + name = "warden plasma envirosuit" + desc = "A plasmaman containment suit designed for the warden, white stripes being added to differeciate them from other members of security." + icon_state = "warden_envirosuit" + item_state = "warden_envirosuit" + item_color = "warden_envirosuit" diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index c7ad35e5f47..b7f395afce0 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -10,6 +10,9 @@ ////////// Usable Items ////////// ////////////////////////////////// +#define USED_MOD_HELM 1 +#define USED_MOD_SUIT 2 + /obj/item/fluff var/used = 0 @@ -401,118 +404,6 @@ return to_chat(user, "You can't modify [target]!") -#define USED_MOD_HELM 1 -#define USED_MOD_SUIT 2 - -/obj/item/fluff/shadey_plasman_modkit - name = "plasmaman suit modkit" - desc = "A kit containing nanites that are able to modify the look of a plasmaman suit and helmet without exposing the wearer to hostile environments." - icon_state = "modkit" - w_class = WEIGHT_CLASS_SMALL - force = 0 - throwforce = 0 - -/obj/item/fluff/shadey_plasman_modkit/afterattack(atom/target, mob/user, proximity) - if(!proximity || !ishuman(user) || user.incapacitated()) - return - var/mob/living/carbon/human/H = user - - if(istype(target, /obj/item/clothing/head/helmet/space/eva/plasmaman)) - if(used & USED_MOD_HELM) - to_chat(H, "The kit's helmet modifier has already been used.") - return - to_chat(H, "You modify the appearance of [target].") - used |= USED_MOD_HELM - - var/obj/item/clothing/head/helmet/space/eva/plasmaman/P = target - P.name = "plasma containment helmet" - P.desc = "A purpose-built containment helmet designed to keep plasma in, and everything else out." - P.icon_state = "plasmaman_halo_helmet[P.on]" - P.base_state = "plasmaman_halo_helmet" - - if(P == H.head) - H.update_inv_head() - return - if(istype(target, /obj/item/clothing/suit/space/eva/plasmaman)) - if(used & USED_MOD_SUIT) - to_chat(user, "The kit's suit modifier has already been used.") - return - to_chat(H, "You modify the appearance of [target].") - used |= USED_MOD_SUIT - - var/obj/item/clothing/suit/space/eva/plasmaman/P = target - P.name = "plasma containment suit" - P.desc = "A feminine containment suit designed to keep plasma in, and everything else out. It's even got an overskirt." - P.icon_state = "plasmaman_halo" - - if(P == H.wear_suit) - H.update_inv_wear_suit() - return - to_chat(user, "You can't modify [target]!") - -/obj/item/fluff/lighty_plasman_modkit // LightFire53: Ikelos - name = "plasmaman suit modkit" - desc = "A kit containing nanites that are able to modify the look of a plasmaman suit and helmet without exposing the wearer to hostile environments." - icon_state = "modkit" - w_class = 2 - force = 0 - throwforce = 0 - var/picked_color = null - var/list/helmets = list( - "Blue" = "plasmaman_ikelosdefault_helmet", - "Gold" = "plasmaman_ikelosgold_helmet", - "Red" = "plasmaman_ikelossecurity_helmet") - var/list/suits = list( - "Blue" = "plasmaman_ikelosdefault", - "Gold" = "plasmaman_ikelosgold", - "Red" = "plasmaman_ikelossecurity") - -/obj/item/fluff/lighty_plasman_modkit/afterattack(atom/target, mob/user, proximity) - if(!proximity || !ishuman(user) || user.incapacitated()) - return - var/mob/living/carbon/human/H = user - - if(istype(target, /obj/item/clothing/head/helmet/space/eva/plasmaman)) - if(used & USED_MOD_HELM) - to_chat(H, "The kit's helmet modifier has already been used.") - return - - picked_color = input(H, "Which color would you like to paint [target]?", "Recolor") as null|anything in helmets - var/obj/item/clothing/head/helmet/space/eva/plasmaman/P = target - - if(!picked_color) - return - P.icon_state = helmets[picked_color] + "[P.on]" - P.base_state = helmets[picked_color] - - to_chat(H, "You modify the appearance of [target].") - P.icon = 'icons/obj/custom_items.dmi' - used |= USED_MOD_HELM - - if(P == H.head) - H.update_inv_head() - return - if(istype(target, /obj/item/clothing/suit/space/eva/plasmaman)) - if(used & USED_MOD_SUIT) - to_chat(user, "The kit's suit modifier has already been used.") - return - picked_color = input(H, "Which color would you like to paint [target]?", "Recolor") as null|anything in suits - var/obj/item/clothing/suit/space/eva/plasmaman/P = target - - if(!picked_color) - return - P.icon_state = suits[picked_color] - - to_chat(H, "You modify the appearance of [target].") - P.icon = 'icons/obj/custom_items.dmi' - used |= USED_MOD_SUIT - - if(P == H.wear_suit) - H.update_inv_wear_suit() - return - to_chat(user, "You can't modify [target]!") - - /obj/item/fluff/merchant_sallet_modkit //Travelling Merchant: Trav Noble. This is what they spawn in with name = "SG Helmet modkit" desc = "A modkit that can make most helmets look like a Shellguard Helmet." diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm index 785d737aec2..ac2538a34b1 100644 --- a/code/modules/mob/living/carbon/human/species/plasmaman.dm +++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm @@ -6,21 +6,19 @@ dangerous_existence = TRUE //So so much //language = "Clatter" - species_traits = list(IS_WHITELISTED, NO_BLOOD, NOTRANSSTING) + species_traits = list(IS_WHITELISTED, RADIMMUNE, NO_BLOOD, NOTRANSSTING) forced_heartattack = TRUE // Plasmamen have no blood, but they should still get heart-attacks skinned_type = /obj/item/stack/sheet/mineral/plasma // We're low on plasma, R&D! *eyes plasmaman co-worker intently* dietflags = DIET_OMNI reagent_tag = PROCESS_ORG - //default_mutations=list(SKELETON) // This screws things up - butt_sprite = "plasma" breathid = "tox" - heat_level_1 = 350 // Heat damage level 1 above this point. - heat_level_2 = 400 // Heat damage level 2 above this point. - heat_level_3 = 500 // Heat damage level 3 above this point. + burn_mod = 1.5 + heatmod = 1.5 + brute_mod = 1.5 //Has default darksight of 2. @@ -48,136 +46,97 @@ message = replacetext(message, "s", stutter("ss")) return message -/datum/species/plasmaman/after_equip_job(datum/job/J, mob/living/carbon/human/H) - var/assigned_role = H.mind && H.mind.assigned_role ? H.mind.assigned_role : "Civilian" - // Unequip existing suits and hats. - H.unEquip(H.wear_suit) - H.unEquip(H.head) - if(assigned_role != "Clown") - H.unEquip(H.wear_mask) - - H.equip_or_collect(new /obj/item/clothing/mask/breath(H), slot_wear_mask) - var/suit=/obj/item/clothing/suit/space/eva/plasmaman/assistant - var/helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/assistant - var/tank_slot = slot_s_store - var/tank_slot_name = "suit storage" - - switch(assigned_role) - if("Scientist","Roboticist") - suit=/obj/item/clothing/suit/space/eva/plasmaman/science - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/science - if("Geneticist") - suit=/obj/item/clothing/suit/space/eva/plasmaman/science/geneticist - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/science/geneticist - if("Research Director") - suit=/obj/item/clothing/suit/space/eva/plasmaman/science/rd - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/science/rd - if("Station Engineer", "Mechanic") - suit=/obj/item/clothing/suit/space/eva/plasmaman/engineer - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/engineer - if("Chief Engineer") - suit=/obj/item/clothing/suit/space/eva/plasmaman/engineer/ce - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/engineer/ce - if("Life Support Specialist") - suit=/obj/item/clothing/suit/space/eva/plasmaman/atmostech - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/atmostech - if("Detective") - suit=/obj/item/clothing/suit/space/eva/plasmaman/security - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/security - if("Warden","Security Officer","Security Pod Pilot") - suit=/obj/item/clothing/suit/space/eva/plasmaman/security - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/security - if("Internal Affairs Agent") - suit=/obj/item/clothing/suit/space/eva/plasmaman/lawyer - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/lawyer - if("Magistrate") - suit=/obj/item/clothing/suit/space/eva/plasmaman/magistrate - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/magistrate - if("Head of Security", "Special Operations Officer") - suit=/obj/item/clothing/suit/space/eva/plasmaman/security/hos - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/security/hos - if("Captain", "Blueshield") - suit=/obj/item/clothing/suit/space/eva/plasmaman/security/captain - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/security/captain - if("Head of Personnel") - suit=/obj/item/clothing/suit/space/eva/plasmaman/security/hop - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/security/hop - if("Nanotrasen Representative", "Nanotrasen Navy Officer") - suit = /obj/item/clothing/suit/space/eva/plasmaman/nt_rep - helm = /obj/item/clothing/head/helmet/space/eva/plasmaman/nt_rep - if("Medical Doctor","Brig Physician","Virologist") - suit=/obj/item/clothing/suit/space/eva/plasmaman/medical - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/medical - if("Paramedic") - suit=/obj/item/clothing/suit/space/eva/plasmaman/medical/paramedic - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/paramedic - if("Chemist") - suit=/obj/item/clothing/suit/space/eva/plasmaman/medical/chemist - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/chemist - if("Chief Medical Officer") - suit=/obj/item/clothing/suit/space/eva/plasmaman/medical/cmo - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/cmo - if("Coroner") - suit=/obj/item/clothing/suit/space/eva/plasmaman/medical/coroner - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/coroner - if("Virologist") - suit=/obj/item/clothing/suit/space/eva/plasmaman/medical/virologist - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/medical/virologist - if("Bartender", "Chef") - suit=/obj/item/clothing/suit/space/eva/plasmaman/service - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/service - if("Cargo Technician", "Quartermaster") - suit=/obj/item/clothing/suit/space/eva/plasmaman/cargo - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/cargo - if("Shaft Miner") - suit=/obj/item/clothing/suit/space/eva/plasmaman/explorer - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/explorer - if("Botanist") - suit=/obj/item/clothing/suit/space/eva/plasmaman/botanist - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/botanist +/datum/species/plasmaman/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE) + var/current_job = J.title + var/datum/outfit/plasmaman/O = new /datum/outfit/plasmaman + switch(current_job) if("Chaplain") - suit=/obj/item/clothing/suit/space/eva/plasmaman/chaplain - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/chaplain - if("Janitor") - suit=/obj/item/clothing/suit/space/eva/plasmaman/janitor - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/janitor - if("Civilian", "Barber") - suit=/obj/item/clothing/suit/space/eva/plasmaman/assistant - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/assistant - if("Clown") - suit=/obj/item/clothing/suit/space/eva/plasmaman/clown - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/clown - if("Mime") - suit=/obj/item/clothing/suit/space/eva/plasmaman/mime - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/mime - if("Syndicate Officer") - suit=/obj/item/clothing/suit/space/eva/plasmaman/nuclear - helm=/obj/item/clothing/head/helmet/space/eva/plasmaman/nuclear + O = new /datum/outfit/plasmaman/chaplain - if((H.mind.special_role == SPECIAL_ROLE_WIZARD) || (H.mind.special_role == SPECIAL_ROLE_WIZARD_APPRENTICE)) - H.equip_to_slot(new /obj/item/clothing/suit/space/eva/plasmaman/wizard(H), slot_wear_suit) - H.equip_to_slot(new /obj/item/clothing/head/helmet/space/eva/plasmaman/wizard(H), slot_head) - else - H.equip_or_collect(new suit(H), slot_wear_suit) - H.equip_or_collect(new helm(H), slot_head) - H.equip_or_collect(new /obj/item/tank/plasma/plasmaman(H), tank_slot) // Bigger plasma tank from Raggy. - H.equip_or_collect(new /obj/item/plasmensuit_cartridge(H), slot_in_backpack) - H.equip_or_collect(new /obj/item/plasmensuit_cartridge(H), slot_in_backpack) //Two refill cartridges for their suit. Can fit in boxes. - to_chat(H, "You are now running on plasma internals from the [H.s_store] in your [tank_slot_name]. You must breathe plasma in order to survive, and are extremely flammable.") - H.internal = H.get_item_by_slot(tank_slot) + if("Librarian") + O = new /datum/outfit/plasmaman/librarian + + if("Janitor") + O = new /datum/outfit/plasmaman/janitor + + if("Botanist") + O = new /datum/outfit/plasmaman/botany + + if("Bartender", "Internal Affairs Agent", "Magistrate", "Nanotrasen Representative", "Nanotrasen Navy Officer", "Head of Personnel", "Captain", "Blueshield") + O = new /datum/outfit/plasmaman/bar + + if("Chef") + O = new /datum/outfit/plasmaman/chef + + if("Security Officer", "Security Pod Pilot", "Head of Security", "Special Operations Officer") + O = new /datum/outfit/plasmaman/security + + if("Detective") + O = new /datum/outfit/plasmaman/detective + + if("Warden") + O = new /datum/outfit/plasmaman/warden + + if("Cargo Technician", "Quartermaster") + O = new /datum/outfit/plasmaman/cargo + + if("Shaft Miner") + O = new /datum/outfit/plasmaman/mining + + if("Medical Doctor", "Brig Physician", "Paramedic", "Coroner", "Chief Medical Officer") + O = new /datum/outfit/plasmaman/medical + + if("Chemist") + O = new /datum/outfit/plasmaman/chemist + + if("Geneticist") + O = new /datum/outfit/plasmaman/genetics + + if("Roboticist") + O = new /datum/outfit/plasmaman/robotics + + if("Virologist") + O = new /datum/outfit/plasmaman/viro + + if("Scientist", "Research Director") + O = new /datum/outfit/plasmaman/science + + if("Station Engineer", "Mechanic", "Chief Engineer") + O = new /datum/outfit/plasmaman/engineering + + if("Atmospheric Technician") + O = new /datum/outfit/plasmaman/atmospherics + + if("Mime") + O = new /datum/outfit/plasmaman/mime + + if("Clown") + O = new /datum/outfit/plasmaman/clown + + H.equipOutfit(O, visualsOnly) + H.internal = H.get_item_by_slot(H.r_hand) H.update_action_buttons_icon() + return 0 /datum/species/plasmaman/handle_life(mob/living/carbon/human/H) - if(!istype(H.wear_suit, /obj/item/clothing/suit/space/eva/plasmaman) || !istype(H.head, /obj/item/clothing/head/helmet/space/eva/plasmaman)) - var/datum/gas_mixture/environment = H.loc.return_air() - if(environment && environment.oxygen && environment.oxygen >= OXYCONCEN_PLASMEN_IGNITION) //Plasmamen so long as there's enough oxygen (0.5 moles, same as it takes to burn gaseous plasma). - H.adjust_fire_stacks(0.5) - if(!H.on_fire && H.fire_stacks > 0) - H.visible_message("[H]'s body reacts with the atmosphere and bursts into flames!","Your body reacts with the atmosphere and bursts into flame!") - H.IgniteMob() + var/datum/gas_mixture/environment = H.loc.return_air() + var/atmos_sealed = FALSE + if (H.wear_suit && H.head && istype(H.wear_suit, /obj/item/clothing) && istype(H.head, /obj/item/clothing)) + var/obj/item/clothing/CS = H.wear_suit + var/obj/item/clothing/CH = H.head + if (CS.flags & CH.flags & STOPSPRESSUREDMAGE) + atmos_sealed = TRUE + if((!istype(H.w_uniform, /obj/item/clothing/under/plasmaman) || !istype(H.head, /obj/item/clothing/head/helmet/space/plasmaman)) && !atmos_sealed) + if(environment) + if(environment.total_moles()) + if(environment.oxygen && environment.oxygen >= OXYCONCEN_PLASMEN_IGNITION) //Same threshhold that extinguishes fire + H.adjust_fire_stacks(0.5) + if(!H.on_fire && H.fire_stacks > 0) + H.visible_message("[H]'s body reacts with the atmosphere and bursts into flames!","Your body reacts with the atmosphere and bursts into flame!") + H.IgniteMob() else - if(H.on_fire && H.fire_stacks > 0) - var/obj/item/clothing/suit/space/eva/plasmaman/P = H.wear_suit + if(H.fire_stacks) + var/obj/item/clothing/under/plasmaman/P = H.w_uniform if(istype(P)) P.Extinguish(H) H.update_fire() diff --git a/icons/mob/species/plasmaman/helmet.dmi b/icons/mob/species/plasmaman/helmet.dmi deleted file mode 100644 index bd5465857d8bf0ddee3f0dab8e47cc4a03c92c60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48682 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 F_&<}Ure6R6 diff --git a/icons/mob/species/plasmaman/mask.dmi b/icons/mob/species/plasmaman/mask.dmi index 1acdc5e581ffff9c6fa965ffed0c5dde0454280b..73ff04e92885d456678cd253953c68f903ca4848 100644 GIT binary patch literal 2374 zcmbVOXH*kf5)Pp*MMQe&MWl$71%d^TBB3`CQ0X9@&;um22MQ=n5SHE_1f=PslZ1dQ zC?e+35_**c0s$047dCJI?At$k&f6b%=G>Wc&&>U1zB~7&l?8-@6~qbv062_|3~Xq+ zg0>P^m}oNH!(E7`(%`lZ;ResbJVJeg!+nFG06$SCY;YW zo1LPVYvj)Td&f6n3gvFsZJ&?)qEY@Ob7@;{cOfkf(l~B`QK+TYs4lkvQmT+=zua&X)+I0VR%WqNI( zk|6zxPTINy7!@6CH5D4)^y`)>VXoezZm@Ivd|j_HVI(PuOyE~K1&9l$)eja5idmJU z>Qyce33N_k<1c%AV$Tl0e?GG)(Nv+pVgU{d^Eb7YTZ%Y4ZHxDRsI<4Ybv?l@1~9%` zQj4Xpt@rvFH^t2k1Y8lmS68bl$ivEbP+Z%vgno1hu00`qK4UVQpq}>OnY)(MtZ$38 z#$oT2;83cWkFhQj0i4!uATi^A|`pVcOz^Z@aHQiB(qnkd{K|HSLNa-q%GBwK|2_#c$hnGlnH98NBfb zB857{?e%$=W|q1FhTp@{#7_Vlb3e?nC%~A8-blTkS_A$M!0h5L-T!T`61abD@V~JC zUoKbr?47I)!`P>knY!-ovGQ!XUkOCRc*8l2n=_StV|zP*yyF0EwFsG`lIC`LOTQel zMv?G}0Y`uM8gX@XZ)qjOj>4sRZcy7q{%n;gUW37FfVJkY4(0dCff_(TPn$a5{BW3j!J96y~h0}=jbM^dWoCL)NhC-oNqQV&f!KAM` z316j@GEv*KBpiFf>!-PiqhQmI`C?k~3%eaFD{hQ{qT0Mnt*1)~5npy-|AYY)M3+TE zX21Wy^k6WU)O4k?vf^U>d!o!thL#XXuIC7Zii*mLA0=f|4URx?r42ft#(8^r<<3#* zmgl>}v@5!ROh7sYAYIAD$mh)fjkKL8;c5-UgnkL0Gynhrl+U(;4F6y zY0)2pQ7iQ1NfG~0_!E)XT`lz7*q9n+?DX{1#ImiyzC~l5Y|j}Hh{Fd^#_C`ZD3-?y z^9RxbDf`jo#mML%b_>9bbyEpPx=7AmcK!dOVQdGOf_;39s8niwWu-*+Ql_Yo&_jKF zeZPPJv-8eY43y0V2j>v#Gm}ZGhGa>;8BU$FL{9hw1wrnV^3?~uf8rU%`vFd9*ecFJ zS8es&3E#M?TF9Q*FHR(pLVlh`;Nr|(2ode^mlxwCe}DfnJhOA7-gnXhO9}c0!PvaP z0^P`_r>HK%X!V;&Ve=MwW)H_Da$>*fKsICUjoz^=dw!n~5plRZlb`8=f{ng8wcArO z*N=<@hjt6|@$;*I!KC5hwGmVjWdX$x4q7zOC}v!~nVJba9{!XHKR%yadv-O#$zBH? zdM)Vuf~_rIebpE_aZDcQ+$-PjbmaJ@dFw3_={vo}!qwSd=xOfFFkNWqWKpRRHx(5ncv#(hegCF&5+J6bFG1MC`r-IPyDtX9L9FeO&5Zq3L@$vCh_=294Ya4b%==2_KlA?}duD1!_j=^MJQ+yuyr7=)6D4s5%?JIpFhUH%E~@4J@YP1ZxW~O@VK* x$>+u_6j6?|R@YgPzcerY^!oiVW$G^J<8HX-7MY;nw2u+M_<@B%vz}|>zX0wYdvX8( literal 3791 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 diff --git a/icons/mob/species/plasmaman/suit.dmi b/icons/mob/species/plasmaman/suit.dmi deleted file mode 100644 index c4d1a7a2b3cb78737d0bb41a2892617e6ed47df6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62729 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

hASMSMoIy7 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 OLF&pnPivmMeDhxrFuB_R diff --git a/icons/obj/clothing/species/plasmaman/suits.dmi b/icons/obj/clothing/species/plasmaman/suits.dmi deleted file mode 100644 index 78ddd94dedb7cea911505160f2715063f8f6cb0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23733 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 Date: Sun, 11 Aug 2019 23:23:43 -0400 Subject: [PATCH 13/37] commit 2 --- _maps/map_files/cyberiad/z2.dmm | 2 - code/__DEFINES/sight.dm | 7 +++ code/datums/action.dm | 8 --- code/modules/clothing/clothing.dm | 35 +++++++++++++ code/modules/clothing/glasses/glasses.dm | 46 +++++++----------- code/modules/clothing/head/misc_special.dm | 4 ++ code/modules/clothing/masks/gasmask.dm | 32 ++---------- code/modules/clothing/spacesuits/plasmamen.dm | 23 +++++++-- .../plasmamen/{plasmamen.dm => _plasmamen.dm} | 10 ++-- code/modules/mob/living/carbon/carbon.dm | 1 + icons/mob/belt.dmi | Bin 14923 -> 15099 bytes icons/mob/species/plasmaman/helmet.dmi | Bin 0 -> 25320 bytes icons/mob/species/plasmaman/uniform.dmi | Bin 0 -> 11381 bytes icons/obj/clothing/species/plasmaman/hats.dmi | Bin 0 -> 2825 bytes .../clothing/species/plasmaman/uniform.dmi | Bin 0 -> 3092 bytes icons/obj/device.dmi | Bin 43719 -> 44249 bytes icons/obj/tank.dmi | Bin 11232 -> 11565 bytes paradise.dme | 2 +- 18 files changed, 97 insertions(+), 73 deletions(-) rename code/modules/clothing/under/jobs/plasmamen/{plasmamen.dm => _plasmamen.dm} (90%) create mode 100644 icons/mob/species/plasmaman/helmet.dmi create mode 100644 icons/mob/species/plasmaman/uniform.dmi create mode 100644 icons/obj/clothing/species/plasmaman/hats.dmi create mode 100644 icons/obj/clothing/species/plasmaman/uniform.dmi diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index d04bf394f26..e619a998d41 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -3248,8 +3248,6 @@ /area/shuttle/assault_pod) "iw" = ( /obj/structure/rack, -/obj/item/clothing/suit/space/eva/plasmaman/wizard, -/obj/item/clothing/head/helmet/space/eva/plasmaman/wizard, /obj/item/clothing/mask/breath, /obj/item/clothing/mask/breath/vox, /obj/item/tank/plasma/plasmaman, diff --git a/code/__DEFINES/sight.dm b/code/__DEFINES/sight.dm index 54162cd0f96..58f557c4b75 100644 --- a/code/__DEFINES/sight.dm +++ b/code/__DEFINES/sight.dm @@ -32,3 +32,10 @@ #define SECHUD 1 #define MEDHUD 2 #define ANTAGHUD 3 + +//for clothing visor toggles, these determine which vars to toggle +#define VISOR_FLASHPROTECT (1<<0) +#define VISOR_TINT (1<<1) +#define VISOR_VISIONFLAGS (1<<2) //all following flags only matter for glasses +#define VISOR_DARKNESSVIEW (1<<3) +#define VISOR_INVISVIEW (1<<4) \ No newline at end of file diff --git a/code/datums/action.dm b/code/datums/action.dm index f9122811ad0..6a2f02c2562 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -196,14 +196,6 @@ /datum/action/item_action/toggle_helmet_light name = "Toggle Helmet Light" -/datum/action/item_action/toggle_welding_screen - name = "Toggle Welding Screen" - -/datum/action/item_action/toggle_welding_screen/Trigger() - var/obj/item/clothing/head/hardhat/weldhat/H = target - if(istype(H)) - H.toggle_welding_screen(owner) - /datum/action/item_action/toggle_welding_screen/plasmaman name = "Toggle Welding Screen" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 4bbf68b4b7f..1de1fd694af 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -18,8 +18,10 @@ var/flash_protect = 0 //What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS var/tint = 0 //Sets the item's level of visual impairment tint, normally set to the same as flash_protect var/up = 0 //but seperated to allow items to protect but not impair vision, like space helmets + var/visor_flags = 0 //flags that are added/removed when an item is adjusted up/down var/visor_flags_inv = 0 //same as visor_flags, but for flags_inv + var/visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | VISOR_VISIONFLAGS | VISOR_DARKNESSVIEW | VISOR_INVISVIEW //what to toggle when toggled with weldingvisortoggle() var/toggle_message = null var/alt_toggle_message = null @@ -30,6 +32,39 @@ var/species_disguise = null var/magical = FALSE +/obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc. + if(!can_use(user)) + return FALSE + + visor_toggling() + + to_chat(user, "You adjust \the [src] [up ? "up" : "down"].") + + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.head_update(src, forced = 1) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + return TRUE + +/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags + up = !up + flags ^= visor_flags + flags_inv ^= visor_flags_inv + flags_cover ^= initial(flags_cover) + icon_state = "[initial(icon_state)][up ? "up" : ""]" + if(visor_vars_to_toggle & VISOR_FLASHPROTECT) + flash_protect ^= initial(flash_protect) + if(visor_vars_to_toggle & VISOR_TINT) + tint ^= initial(tint) + +/obj/item/clothing/proc/can_use(mob/user) + if(user && ismob(user)) + if(!user.incapacitated()) + return TRUE + return FALSE + //BS12: Species-restricted clothing check. /obj/item/clothing/mob_can_equip(M as mob, slot) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index d965166fdb2..457df3fac8a 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -30,6 +30,21 @@ return return ..() +/obj/item/clothing/glasses/visor_toggling() + ..() + if(visor_vars_to_toggle & VISOR_VISIONFLAGS) + vision_flags ^= initial(vision_flags) + if(visor_vars_to_toggle & VISOR_DARKNESSVIEW) + see_in_dark ^= initial(see_in_dark) + if(visor_vars_to_toggle & VISOR_INVISVIEW) + invis_view ^= initial(invis_view) + +/obj/item/clothing/glasses/weldingvisortoggle(mob/user) + . = ..() + if(. && user) + user.update_sight() + user.update_inv_glasses() + /obj/item/clothing/glasses/meson name = "Optical Meson Scanner" desc = "Used for seeing walls, floors, and stuff through anything." @@ -324,40 +339,15 @@ actions_types = list(/datum/action/item_action/toggle) flash_protect = 2 tint = 2 - + visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT sprite_sheets = list( "Vox" = 'icons/mob/species/vox/eyes.dmi', "Drask" = 'icons/mob/species/drask/eyes.dmi', "Grey" = 'icons/mob/species/grey/eyes.dmi' ) -/obj/item/clothing/glasses/welding/attack_self() - toggle() - -/obj/item/clothing/glasses/welding/proc/toggle() - if(up) - up = !up - flags_cover |= GLASSESCOVERSEYES - flags_inv |= HIDEEYES - icon_state = initial(icon_state) - to_chat(usr, "You flip the [src] down to protect your eyes.") - flash_protect = 2 - tint = initial(tint) //better than istype - else - up = !up - flags_cover &= ~GLASSESCOVERSEYES - flags_inv &= ~HIDEEYES - icon_state = "[initial(icon_state)]up" - to_chat(usr, "You push the [src] up out of your face.") - flash_protect = 0 - tint = 0 - var/mob/living/carbon/user = usr - user.update_tint() - user.update_inv_glasses() - - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() +/obj/item/clothing/glasses/welding/attack_self(mob/user) + weldingvisortoggle(user) /obj/item/clothing/glasses/welding/superior name = "superior welding goggles" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 35f346402f9..0501171d650 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -24,6 +24,7 @@ armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) flags_inv = (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) actions_types = list(/datum/action/item_action/toggle) + visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE burn_state = FIRE_PROOF sprite_sheets = list( @@ -34,6 +35,9 @@ "Grey" = 'icons/mob/species/grey/helmet.dmi' ) +/obj/item/clothing/head/welding/attack_self(mob/user) + weldingvisortoggle(user) + /obj/item/clothing/head/welding/flamedecal name = "flame decal welding helmet" desc = "A welding helmet adorned with flame decals, and several cryptic slogans of varying degrees of legibility." diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 289250befac..db7295809b1 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -33,34 +33,12 @@ armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) origin_tech = "materials=2;engineering=3" actions_types = list(/datum/action/item_action/toggle) + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE + flags_cover = MASKCOVERSEYES + visor_flags_inv = HIDEEYES -/obj/item/clothing/mask/gas/welding/attack_self() - toggle() - -/obj/item/clothing/mask/gas/welding/proc/toggle() - if(up) - up = !src.up - flags_cover |= (MASKCOVERSEYES) - flags_inv |= (HIDEEYES) - icon_state = initial(icon_state) - to_chat(usr, "You flip the [src] down to protect your eyes.") - flash_protect = 2 - tint = 2 - else - up = !up - flags_cover &= ~(MASKCOVERSEYES) - flags_inv &= ~(HIDEEYES) - icon_state = "[initial(icon_state)]up" - to_chat(usr, "You push the [src] up out of your face.") - flash_protect = 0 - tint = 0 - var/mob/living/carbon/user = usr - user.update_tint() - user.update_inv_wear_mask() //so our mob-overlays update - - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() +/obj/item/clothing/mask/gas/welding/attack_self(mob/user) + weldingvisortoggle(user) /obj/item/clothing/mask/gas/explorer name = "explorer gas mask" diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index e792a4d19fc..60a0c754438 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -11,22 +11,39 @@ resistance_flags = FIRE_PROOF var/brightness_on = 4 //luminosity when the light is on var/on = FALSE + var/smile = FALSE + var/smile_color = "#FF0000" var/visor_icon = "envisor" + var/smile_state = "envirohelm_smile" actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_welding_screen/plasmaman) visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES - visor_flags_inv = HIDEEYES|HIDEFACE|HIDEFACIALHAIR + visor_flags_inv = HIDEEYES|HIDEFACE + icon = 'icons/obj/clothing/species/plasmaman/hats.dmi' + species_restricted = list("Plasmaman") + sprite_sheets = list("Plasmaman" = 'icons/mob/species/plasmaman/helmet.dmi') /obj/item/clothing/head/helmet/space/plasmaman/New() ..() visor_toggling() update_icon() + cut_overlays() /obj/item/clothing/head/helmet/space/plasmaman/AltClick(mob/user) - if(user.canUseTopic(src, BE_CLOSE)) + if(!user.incapacitated() && Adjacent(user)) toggle_welding_screen(user) +/obj/item/clothing/head/helmet/space/plasmaman/visor_toggling() //handles all the actual toggling of flags + up = !up + flags ^= visor_flags + flags_inv ^= visor_flags_inv + icon_state = "[initial(icon_state)]" + if(visor_vars_to_toggle & VISOR_FLASHPROTECT) + flash_protect ^= initial(flash_protect) + if(visor_vars_to_toggle & VISOR_TINT) + tint ^= initial(tint) + /obj/item/clothing/head/helmet/space/plasmaman/proc/toggle_welding_screen(mob/living/user) if(weldingvisortoggle(user)) if(on) diff --git a/code/modules/clothing/under/jobs/plasmamen/plasmamen.dm b/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm similarity index 90% rename from code/modules/clothing/under/jobs/plasmamen/plasmamen.dm rename to code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm index 80bbb109361..7659805f3a2 100644 --- a/code/modules/clothing/under/jobs/plasmamen/plasmamen.dm +++ b/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm @@ -1,16 +1,18 @@ /obj/item/clothing/under/plasmaman name = "plasma envirosuit" desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy." - icon_state = "plasmaman" - item_state = "plasmaman" - item_color = "plasmaman" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0) body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS strip_delay = 80 var/next_extinguish = 0 var/extinguish_cooldown = 100 var/extinguishes_left = 5 - + icon = 'icons/obj/clothing/species/plasmaman/uniform.dmi' + species_restricted = list("Plasmaman") + sprite_sheets = list("Plasmaman" = 'icons/mob/species/plasmaman/uniform.dmi') + icon_state = "plasmaman" + item_state = "plasmaman" + item_color = "plasmaman" /obj/item/clothing/under/plasmaman/examine(mob/user) . = ..() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a8dbaa7ac2f..82b98a3732e 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1128,6 +1128,7 @@ so that different stomachs can handle things in different ways VB*/ var/obj/item/clothing/C = I if(C.tint || initial(C.tint)) update_tint() + update_sight() if(I.flags_inv & HIDEMASK || forced) update_inv_wear_mask() update_inv_head() diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index a1e80aa5e6528b55cd5c727fed74154957891c71..5c272f8c8e9e082f7fc4fb18d9340121bef09c45 100644 GIT binary patch literal 15099 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 literal 14923 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 diff --git a/icons/mob/species/plasmaman/helmet.dmi b/icons/mob/species/plasmaman/helmet.dmi new file mode 100644 index 0000000000000000000000000000000000000000..bfc863116a8c84495f1aface379f8740efd71a3f GIT binary patch literal 25320 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 literal 0 HcmV?d00001 diff --git a/icons/mob/species/plasmaman/uniform.dmi b/icons/mob/species/plasmaman/uniform.dmi new file mode 100644 index 0000000000000000000000000000000000000000..74e4f5ed23d029b78493cc0f20a84a4c3730bd61 GIT binary patch literal 11381 zcmZvCbzD?Y*X{v^28p4&LApy~2nD1Om5`KFQb8IVx+J7TTBH<7>6oEG8dN}P1`rUC z?mBnW_x=S#Pede6A*0Y}dtQ}*Zr$I`@Km-5)sg|a?5ddJpFh4c|9L$;h zX0uKJzXl*cdJAtcJl z$tffx)Y{sbnVDIr^*MU0G$Vq#*_($eYa z=@SzZtE;OZ2!<#QmPo-ix0WU8vRd&Es2uqI_t1}-+3jo%qfZYWE+y+u^0ks+c;Fbb}R?H6p#i{@p z0st>dfj3`(B5>*fQ1u!J5(fZ-Cqr#O+7qd7PXHjTS5Z!qot5{#(cL@#G!B~Ck8K~^ zm3kg)hW31BBV$QnoXlWV$nxYXFTU{UJF*^`f zK3Dk(v@RX^lmzhJB0&Hw-jrlpI<|c}Yic(Tix%oNbSXjw)#4ePCyu7?dMn*C+G8nIT z%Rpjo@_>|-l$n{Cf`WpJlQRqs*U{1OaCK#3VtVxG5yn-z0ie7bGEPSJi-H0KfqDR# z007YK8bpF%I{2P|0AuqV09F8?3IKuuz!eu4l*j}nB*09G_Ftb5F}K0;GSa&Tz*eUn zFb4o=_tby0>^0bjnccS-6JSg6l!%OB zmUD|*$fbwbnzq&!og8u-Zg~eTY#&E8`pra1JmEy2Qn9+bsmU0+cg-oxMY+Mggk4Dv zBRzy4dWS#A2P##kQtEG$%o`SKIQ>E$FtgWtjzxNLbA{Lp&oaz~CTs}+*Z?hc z6=UD*-$8L!sg5te!Q0s?O#E9MzeI<)HO2jD=I8U+bFrXb9W7J!x@m z;YPdCbi z&5Fdx1;3d8ysgh-92+YBVCdE0sK|qgVXJ#J(x2kVB%CGsM&R)K}5vq{fv2C&aJ)h+~gs^x8wfr0Pb-1nJlheG|*^ z4R2gZctPOY;+UDHR(P|^`|v)lBC-l)(}#84iZ5M?yaQ3Z#T-) zk%tP1kfw!yDZ46|cqW4%ehVvFR#gzU+OG2roVyWPq5_(l>zAJ+6=P#VeqI6x@K}^ zs3s9bHTO?T$V83@^i3_;TJsVYn>a4kDV;P`QBT#<5V!}U;GrOSPQx-cOiaawKM<~G zZD_N=zhVW4p?=s7J^Q&Rc(cH?V*0i!?n1|DgbI_I+|liZBLhz-(yTE;!7?OQD_*Qs z8`$~{SDkGSADj4*srsh!p~c$>c-+Shn2MnxR;DOeRkbzm zAprG@cy>WdD8MGvpcS-*Zz zjq*zF0{@m@n*L8}j_wlvgSj|oh=l>+6Vb$q4}yHDG_$_YsSfpmJ8WzkeatXFKRN7E zo;qdLQ46fpgSJW&^A0~$rw|W0#wOy9bq|BN#viBY) zQYAzYEq&iOd>4nXX-$i<(xmpqt9WxAw$%RcyZO&CZZdK`e$)BYgYGz3K@_FsX9f~$ znskr2djIvDNcJ%n2r*H28=E|?D^&EZO(TszADa8=xc^WnrQ7%e;`wrQR_xy@qEwV8 zwpQ>Ea?Pw64sUwwRst%z^qU_aB;zUq;)uKV`>nLIW+?x3K-d}5Z$AB=ggdXCX;sJ{ z{$&OssW7y>V%1aa+d+v-EM=29_*&y>_x(HAaq)!xH%mk4RIpaEaF86``*&Vi2!Asu>_$)6KFxJ>B0KCyur){IMLg(3uGLi>

1{|Sfx@gqF6dj>pa{6@Qdk!m5R>TLi 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 literal 0 HcmV?d00001 diff --git a/icons/obj/clothing/species/plasmaman/hats.dmi b/icons/obj/clothing/species/plasmaman/hats.dmi new file mode 100644 index 0000000000000000000000000000000000000000..95eb5c61a141bf1fea69f59ba5ce38c76b56009f GIT binary patch literal 2825 zcmYLL2{_bU7yl1Mh#^rQU!-13WEmBuF=I`{3|`t9EtZB%GG(8ckTfb4Nm-*sWcdim zGM1!>QRzUWH_A;_Sw|TF09E(H zF21svDeLVUx-=60P}Rf{nqQKZ2*`K?0E#7%xTUt1c*tb3%lY!bpmBE@XlhO&J7^! zxhDpJ=DSXnm6hNkKsyR>Mgc4q`yc@*EG(R+0YGwym}06g|Zo0you;cya()QSar2%yZ?K;IaN)pT>U_q(Sfi-=3y z3Pwub0RZ?>Z7f3dtsewz2WK=iz;B1Lva;&x>Oc^nQmIlx4wwTX!r$(e9Rb1nqW%ON zSl>frIxODrINl{V`rPFUm+%*GkpK{z|Lm_Ls4gpY1?H8@YKkC%nQ0WJ8PfZbwt$5xouDJaZwtf9u`Z;QWuyQ zO%6%@{sdF#zu)JzLfX`UNB7ym={`QF_mlOJO7?%A?Y8On)>xgs_tJm;03G=XZs&hm z$@Q{cm~%BbufAl~sn5UyZI*9xHdcjRAOnN|x_sQj1ZVROVKQ*|y$h+$IJ3+Idx)&? z{rYRTX(;zcn}TjhdATn+#O?@Fi|;Y!GWKB?qVv&x=snfa@!8(teKnC+dlr^(ozV3| zkBgfEYES^M!Oz{r(JwZCAx{N2(x8)e?#S&#v}Sm)nbBp-rm&av?mP4Kwe(+`Yy$=! zwHlzZE?)Q|1(7h{{4x1|6P_BMjc!RoE5B|}L4OIaJxbbg`joT!I!EBA$g9Ho^uUyEb43C*)#u_!IiT(egPoAT=d zflbpb{uVjAEBtoLqiaaj$B!D;HHQ25G!$S}J#zalKAkKk&8P(@Y*r3a!Z||2Zq9X$ zMvOLex2UfBq-DcZ3w3UDX>uBk`*4YS8TTMGP^xiiYIxNEXM>}K@Y*-AY>vm<6j5;> z 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 literal 0 HcmV?d00001 diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index f48f0e9f07a570930260e4109c17c65c51d8733e..d0b9c69a98ec2e156dfbe4ecae3aecc5e657b6f5 100644 GIT binary patch delta 22401 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 rtJ_-X3@ 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 delta 21912 zcmaHSbzD?m_wJz)q@)`xqy&|c8o&Takw#zumF~_tq@W0>lqd*@NC^WXAvJ`QNOuk; z4MPtxagXo&z3+X0_j5n@4~7%_>|A@T^*n3si3!q<5z^O}L4_bgQ=hxfyq|bEdiXfH zy8%EzM#;OLgekf69erH}99tu1+Kpdk?p%)(X7hG{tG*VW9KFw0`8Gq~>>$`0serI1JPC!s;R&LFXD5w{;l3Aqy)^v5dNFo;;gA%bw_A2U3RF^4+=+61 zN|$4nXxW99!ShSAwsd@(X@Ar-Hs0R(W_6vW+t~r6B3W*Kv*jhIva1Evuy%chPRt`S zGPZ6{n(`~wkQ2)%X0s$~Gith(yPh#-eY^X;m&NIpGRk-IEQsx4aNJAYyhn>Ne*7+C z>}XYN7*y>%AR_sk}sKZgN4+=SDONt1I;dce;9Blmc4-P zUMm^BY~+L4H)@_H_vqMP);Tfvyz{Nqt!7{mccJ~Bo%tKS`ir$F;QH*abM2mRUAXj` zuog3VYEbhDblq5~ehoqkJg8Uvk;F)Fk<^&@SZf7MQa zMQK{LcUu+53E9OjTsx-~YxU`B%{>Wys_Eyw$!s)V!Bt=qrZy#{B>hV(k)w0<#+8aF zmUiax`h}`j_OWk*KA|`}rA(~x0e)_js%K4qXn23mMSXwWLHkF&Y%cub%?Bd_PYwD2 zUuGxiNDfUM$1|jSY9Zyjg=D9YJDRlFSx>c}#0QPOp-{crYn?gV5wPGlsIuL7y?M`_P9xW?0}F5893Ix|E9NmiIfnkeNxT&^v{*A!CY2r&f)fsA>S|!)r_a=9BmSh zsQ5U(oYse@9ChSxY2<|Im%48G`2^X1@i`qN{i&rdB*Ye>CTMOaS8_}L9lzPA z9E0Cp_*YO3bN+PcwaZYCGMyQ<_R9QEZY#B`F6gOe3zLM_jrW7i8u9mSrOwQ`Fk?eRv} zLTI-NpSvaHUcee}=M?u+5ZmDj&*~Y^>J-naFa3AzEV8X-m2mqg$JH+Dn(b|#)vj1c zV<&!>H^l$$a~yvQ=7DCO zoxMth4|%aZ$jsO#F8lqrre;r4>ebZu#szsM-daPVPSy2)MmFtd*pOOoKk~*j^9Bdq zQtf=D#2Xw_FK)k_BatF!dC2050D0`*dCQ5~vsup~SLScqkB)_`@Vt}FO2@pqioQ`2 zdcfTZFJj+0Wia{hlSVshzSVQ#z%k@tw?i3u{5$>DJ8-uT{G^xY_K3o+A#E&d05c1( z-ln%`#7VA?&V-j*x*`FOlfBmG4k#{!JCc}0rPv{`TBtTIR{KKF^_s-pd-vwY%bx&Y z?;hKG;7@(Y$;p$0D4Z4s^R!ZW^v^9tE8+Fc zM8ak#)8Ce;fLYx$8$^C24j5sm7s9cB{~h{Yoqq;c7MoB3I8(zY{?{O`a}y0)1L%PQi4V#lQz8yTTaQ;Bqxypu`_`@TkSAGIuveCujZ}7g>-faR&9@ z-)^Y8wrgN;Pm%RJAW^>)(GghXGV#a}AGR3=o^2hYersEgOR9DcsT~w=r16K4s3;yc z(#^R_h#)c*{M#jARb46YY07|cdhm1&+lJY@-`}O~JP(8kTh=Y)E_jxgmk%~e%gC@P zh?j?j1lWs(G3$=4h#ri!{J2rF;~2*lP#Rz{^hM`$nQVXu-RG9`EDY**qb^BH^F&9p zXClkaBO0cVmEcy@*88Yi<@O%;KDnbCSCyq(-7Iw5k-Ezpxti2NQw-xR>R{hTr97MB z5s~<@i{t~y68QNKP!IhS(5}@pl)&*qoW#!78eKv3wbL~uBO;%~VeM(YQeQ$$IDgar!03rCz>x%!Gf(c96n zsCIR%gV@uVroG@;%||Rr!0?F{R&7pHQ0crMhj#=YZJPOPPn*e8s~;3aOcVR{z_y(< znlMQISO*^&=<_#K*!Rw*GezEb_KQVvxP*IfXvlMZNN=XpV;Vd?l=C{4Ji?$8hgS3^ zEStdP-<%|2Q)I;p3N3^*8A+oVb{0v`tLXw^`(?`UqW74rmmK~oW90(J# z#ZP_i!_t&}1@(3uuS7>j17Q}A%Q?|~=hU(6w-`Abh#j4trou}E%yLw2M;xbasM86F zfU>exr^`4a&~M#!L7M|+Rixsm8n`3DVRJTh>wyq)AXl9PD0y6MJo2x(YW16hKd!Xz z<6CMx5TPHdM9!k?LpXzH1Ih4b*p3lO$JJd!12E*r)+-SLPIk6g^v=Sr7t>DF)=kOt zR%x+H$i~kvP&;u*&mTJ6^_IMYGUxG1oWZBq(cd78N|Xz?u_4ucS;wz0UFslavx3W`=N$t=F)Ffv2M=PvG;JvbWH#7_Jn44iIrt8B8FAQb&>^m z4VpX*i(|i@Y@Q`M!s(9yRMgpN`3gb^QM=f=!u*eSjg8s7{#?u-ml3;o^Fs8PyMP4d zCHk*)$MAdb4t~FX9>FC3xXCGy{g_8(*NjkJ1)fSOiL*MJAn$7w?EkXWttuhwE@Qe> z=02|Wj;fD6-Nlmfl*Z~T2PRua2oXSc>$Va}VTMo2QBdP7+V8@4CF;Yj#JSpNhoAxmE((*s+&H*GE^iF9 zVZ+09%68G7Kp2t@6&7w#9aKjf(vk@)?IQ!iNXW99N0Ep}Z46C>tb_!hx9)wp*Qr)Z z))xNr$mD6;&dRZs_-Lu6GuM&n1J*CzE4}0U16*nOb9V=;@oR@5+A#}{56*Qr^ez^`i|PP8agPPSx#V@nbri!33<6D9o#T(4-@Hj`-BxkZdBBuPixN>+9#Xo@D0 zQhT~rD%ulRK|*Iw)y9K*>t@oNMN9t&``Sw$Pf6 zG%6Wax+jJ`>&Cg=QQbwP!6WmZQS@iR<7fnc#{&(yn+>C@n|ipfMJ%Muu;QX0sQcF0 zEI21}N~Z;jI=_+!h!1r3?2GDm?`n*}NvcF%J>q=?uI9sCQ57`VYkwSv$agP>fTEK8 zC1#PV&ZBccSP16hh9>GaKbPmgHkXP!qi7hoWbw0(IBAeGg^YyPQttTtGDEs;EhJP< zReiYn6Lw{qjfcj5j79goRM%xB@P)q`RgzRsO07Z@RO(?&^7GTZXYN4QWTi8ihb0M* zoNqB`N%1fPE?i!Au*iHdiT!3iIHF8>8E3^`u!DYCA=vgZg+Q=^kE3y z+EpCyV$f<@okonJ;Pi*J=#; zMHD3?z=s*@b2Gcaxct=q$?m6nDjTC!CMrP^Fgz`=)}ePg%=FWef*zou-GbBB7Yv_9 z1QW^HW~mJK$*u^V4_hAln8FU$_Yy`+9&ap+ZS2AihLBb06=wiFQ{A_PgVvv8HLzj;gu zMvnSg4_^Mvk8NNtt0x^>Y&-8m^_uoEh1=Y4i63(BB&8)2+%SPnG!)IVpQEN$(bj&o zJRd{Yn-}{0Ok_qCRTNJylalUF*V58%2#~7GA98b?;W}6w@#bd@%{Rt{ zeY-iz*H;2)IRNDt856m#L_Xnb*P2qrANNSLbwgk z^V35<9tr>=B4=O;*JP`gl*7GeLwPz9ql{LMoVWacPTY#%EBtwU^O1;9e3ao;ZML{Jx1V!4m&k$RnRtOzulk{#(Oe2{RrrJS4OpVjFb>=&}jm_`Qthy@5 zMZL}{_v%{8sgN9ik`YlP2vGD|ie+SdR);h+H|Hv~tOK8Kj3KphvKK7}Tz zf`d9NL&!H88N`tgrLq|XP_|nE%i9HUB%6~b`9%nLp##D{Rw?M7i1#s>CaI~ZDF@7XU}#%|4q1Tl8Ik*6Sx7$y6OCCCcy3<=nj~af^z&?j4GYI=h801(%+{}EfW{UjS0*}~e8EGJh&^puG1=sVB z?9k^FRl?n2g3w}^l6=lWs8I|4w3aIYEv5 z&9X&9PdzEg1O%fP)nc0qzF;X|?gNo(Z zP`nPfcQ=5{g?JQfQJcJYWZw;PYWPNkS#Eb~%8w`Wwb$WasgdXFYZmJ4;RB z5fc^{u79iWmJETsBCzR)ccCr_SRa=OcJ}t>z?ta*UInM6i&2b^(s$NbcD_7wr{~R{KnIn`Nu*MbtQeyTU`X(EFpPtatz#p%$GX<&4 z-Zp~Hf#?E~o$YD^`Q$r88-ed25g}!UZbvMAHMtCqShWqA4}XDEpl%fzm#lm8 zNh8B=6@lR1Qddi+|EwdoTnHl|K(F^v(X9U>IU%(DOs$TdVScBXe`kB6&zVm?ep~3S z^FoZG=r9e9mxA8Ihm3ps`{h9=XD^Am{m2CL6F@O*j|#9J_@P#}D_T2s{Uv6!LE%2T zo-=fb0F0vge|uN|!`2|(KXw&WDLw(Zg;blby#?W$6*4Osa;L02>}+g7A0OO% zwN0g26m)Tax#yM+)TP*jgmw&ycs*MA4H_i!V$mRqg)~zf`O`0R>$Yit|5?xw+P+?* z{_J%BON9~@txgqkOpKg!MlW{sCqtm|>SQkabNx5wV-qt$#aa0-s> z2OE)uc(+|OP-{`KnQw_6tYPbU{{Shfo5e>3yeq%JETsDrce1Y&wl$o`VU24};%_79 zLaW**acxIVFP`ftUj=E^uv`&?2<8zDfI0?45KdMe&Fh>GzqHMhFd`=w4ZCei9df#s zzuP60RpWEq5;pG~G})>|E;RAqqZ7&J=b9sHUcVs$On=x? z(6hopO5pay1c!8xR05CE%V=75+l8MmTKe#FV%vab7B*VJ=Mx4j{(@{$b z3d~U!nV>HBfLrF01Y8AWn2%wJ7jw9@MDtUTGii@rT&wMo?eCi>7HK@}72GEJ_*qJ+ z8|1Te$u!{h=vH@C=j|zPkHVcx-~Nurq~#SPFcMA_6gf^K>&KfFeVgrl0UNxRiB7lYgGF%o(~1ffZGC-PB|KWXkAyO&Tya7t7kmc#-Y$(O!&`avxlNG-w7 zkRJzx1#kbL(u@*N2c5E%HN^R>t{+7V_d{^;9`PL+)n>csmh6WfwS7CCUE9P8j`A{k zH+&%Mf|Fa@w}hsitUJ~>jhf@R=fl?IBfeyir;<>BCLiY7<3BJ)bvq2y7s7c3mk9H; zk)9>}l_+Di7bx?}P0e}#`VREb}sgho886S3}@3lW{-2m_*GVp_kgu-ADa^@7hODzlk5&2E0arP8#eS!j9s zXNn1Sz1Rm+*^#Q355Y5$MzsCHbzDzok-Nze(a=L4;_5Z7s=kZtUc8 zOc+;;H{jCtZQ-hs!cztO!-|^qtFK5r0HAl$?%~e%HS?3Up{i{W-+_SvjRy}%9zHrb zJ6Xwk^Y-n<%$t7CVM@_$5BIU07+Tr=1TuhrTmE`UwRvW00QPW2$0>?G_e|*e#3fKW z^Yr3iiK7FkXW|%Qe4l1LTK$sfrF&c^5{l;U?H>CzlzD{MqpBPS`uU^T7vRy-q7>Mw z7b)%e@ZWdu;wd#yrh~VXKOx8*-@8s2wL~%0o&F*2BJV_-P_pUi# zpRX3Yl)H2xZD(idvm;Qp4wWe-o`C%l#AZC~95G<+o@t3=%}@uPI8b}278A_3gT(XG zvsz`cBqr~h#cml6GD!{vG0|PzxHJ@`&ow6Stx<{&FbXNvKopxHtnm~znVWi+Sse4v0I_?mzdmf$&JyMfdG zsQ6>}d*J@^gi-5ocKtE4>~9hPSF_>m6S{K_P{C!h8y)699(rwwJ8Q7krmEgozO~`~ z`SB1V6KCE#^!t>EjE$;py>@V{cdLGADwNjQnC9ZfJ<(;ou3u{RJ;Bb{ll9>0eMGRo z!sn;Y1Z%C7+Hl6sT-PnXZ4s-sFkT9nURQXNlg^#b5ofSJA#69VPfVf-YnbWYx=<^H z&l!DcK6n01VrXO5$>--kU34**HAz87AGtoZJ^h*<@YS9F&MAq&;eqg`(lP8F&WfsO zrp}+N>`*=vf4bq9QUGRby7+9&@(Sr?Rn^H^bq!@5q#gSs4pWxkxc$DDXKe;q7a{;= zw}omrtw(hsmvt@0I~o!LBf~o~+Oo)IHh@UJT}t{+^IOtP(63eYeLu7rXJ-b54_TNS zr(gF$X3Dwj53cpn7ObGzwK%j{N}rjLq`W*AcE&%;Qi#FR3hYo>9q0UM@^fdTp>AJ& zq344v^7lsRHNsCi@BUBs&I6AD7POGtyU1fziK2COM_%tV!|>x{G{*X51^$lh`eX6f zMLA5lvGDs&3pdJE$VPF*&Z;sP$1#X&DY*aWN%`P+xUkhN&9pH zn9k_8Th-gP;Na=eRD>M8P|_Pue68luTRaMv%iwwZp+^^sdjH*(GyKM-{DpinVrvY4 zedHhKMoIBdjH@aS)#XczgT8lV4MPnwyow8`XZS6tbZdKk8%`<)ps0;w)t^ z?O7m*^IFOe&J;{Yqe2xFTx$~vy9<81`DjywafEAf`(*8_$eZo?RHkQwc-yPn+mmca z9Rd{}KX|~gE>lVm_$}W3Y9{>h?AA?!%2coAZr@tc?s$`Gfz>qPMD9)USFtvH!Wq%w z?LJ<@m^S4qqzG>K`?kUCbeb0v>D1yUWl$j*8ovVnOkwDJ@2I^__0q09Tv@hgmPKP! za$`MsbWTf#eJb%UUc8X2LHqWbOu?XyKRxgje9`T?GXh_>C&A1%JU(S=jk%;5&3}5h zPc>4yC3zp%$rmT5sTyi*%2MfoY4w-{nV~({8kLXd$U=6SsemxmNJ^XjY*oL-Y40CME;16$Uz|BS_GKm1Z(Y%z-d`;3+ifl)wo(-n82aLI`3Hm!%Pi+wUWngp$pJ5Q zc<$qFzY6?>65!9LK=z!mBk;S_*Rw=hD)1fDd!FVyV8zOO=SP11%g!h{U0S=o3<{uj ziwO2)#C=91e#S?5bKII~ww{ zOj()F$a%D_W`LPx_iUOrpec+50K+Qm`xfSo(ET|pmXDA_d2#GhJ;hHcUO|A@|3%tZ zM_~8!v|c%0; z(-$dMqVL>xzTKq!MIM4BD+n1EmAz}^&!kmCOr3wmQJ|jAY2IYymtkN!8}D0TU~fnzplHeH0(IM0^KAbleV}`-y=!*(d;*b z#_YUzCGtPAC(6ctO?(5EcR4VoN00W!kh~5BG}`M|{(g)wStIjkEx9=5i#CFyFI`Xa z`?IY=jTAqYHj6S4>Ze1DrY~-nk{pa+yn*TOj!6fNcVg&YqqBOMq+6))>u2I@aa~XV zCOkZxn!c2F1zW$b?crg$#LhA|?6_j{i}ft+$H%M2ryqm2!P^I$69xt-*-VwC{p2=@ zBXU0@lH`4-^_A7*KoRA&hZjzNj;)UrYwcUs2QYOc@Ge$Fh)U+<sar3d3`&ux_ld)AT)h`j%LU0LbyXSMTNMw@m#&{jIBDSpa8V>{oU=$o8p`wv=N#{bOCH$gtXV zHsB=Dm`-pdh>|az)9%!7^ve8k;nVLfv-i#K3xC=exua>!)!rl5bGGn4QAOD z?QTC-Yd_qe{-8YM<9H+{c(Nq?m|D#0zVO9Mxz?3m1jWQyV4KtNF}1#`Zp~R=<|d7z zw9>xmOG}RX6ib@OB`3SkhPQQJyXVsyq;VU}iry&$LaJA&gM8fLxOMW=oiYNoI%|A* zZLqykmZ#5BUx#cai<7fSFN9U_SiU-utpGM)DlRxRe zlte9wTm!``BqED!P6*_WFBPw~mDTjW|Jq*#7%mJOKxU!7=F5t+byqiD_nr%D0Fh7B zv!8T~`5sDm8>AafVmJtH(>3!xjbywG0GK+>^|>joWBlZoD6-!6f;(b*bvsx~M-P9< z&ZB%xW)*lZb1Iu-0tLB-btiIY=Ud;^3JZ`!%1qJv)FIQAn4ej_wOGk7bg{_hGwvI?YDTKx?8}1ZZw9{+ zPV4CL{omK`#2mRp6;OUV;`bgvP+&*`wl^K$DNKP_`})I#p}>(S=hk7`K=xNH zug0uek+-YPw84549~i+8+b0*YLj{`Xp=gt-y$IQNU++_0iO7J(s+LB6_%K!XVOc^G z{d>Zsba~~HfB>MUeDZlFVArgvG9uz(WsvW*h{)U0W&<*HRP3>sh02UGAexI_v1-b~ zg-YE_MW*Q9li$N*(Ti$>x?+J(zP?WP?HwB#g7@Osz__+#-?a0)gn#94JYB1 zc3{{LKahvhgp-+?;jN4SD6%Qq0Qx4KDU`>>=JTU1%DXVUs;EZ9m8@qQv?t=OR=KCV zg_dL8bzk2~wnr4z(=x^GT91DL^pB+t*hU5V(@lzGIqRJu2b& z0esYIbBd@*f0@mtrDeNIa&p7ltN@58ES#3^D8(gMo#L@)h9uJs!Lp}En8c~p)`4me zwCL%Z^jE(xszrQL-j3H-(v$S0!Kwai-QZeSAW!UO=H`h`VZs$Xua8{wBhY zoz3>qO7BZ!zyK7-OYWhJh!bl8(vr1Vj1AXn5p+Tc6Y>+c8%dkm7J6ktz(Xh6o@@x> zZ=RN$*1x|YD5z>$<00rY`c*jInZqWyrTOH*$D%QW)AjKb-zeU}f@ire3%N>?3=yt( zA79n`D0Wv}ovh54`VE%A+L|R-nw1%s$1!C1^^*qrurTqcfLmGS|KfJ< zDoj(TsMFBUc&sPmqsQuKX$P)IGD307_HZ()00tE`jr14%dtXgD`0`pA@aw0cG+|MU zt{&&Z0E_1;Cag`PZLBtwDiH6Oa2&#~q83}lg4V7bE`)>GpZC?%F12Cl#1Kra{19ij zaNZa=C!F6|9Om`&W%l?D^01j)^itWWIz(i0o)3#ke)5y?-P^YdLteZJeov1tL0?>e zYW{UQNl1?^gwE@k*>i}%^t1*pLqsO^4USFne=(n49jgPmc~e`5SU zPY{eM=z?BEcXn#T!uBLJlEX<}|D{L&P~O0igpD{wk2oFH{EncY3&XHHZjJ@YIg>}0o|x{C!3*+nOacUTINH;>7s49 zso@Xnbj0bJY$;m96f7~Wo3pPpSMnndJf4r)-DzbY3-j0*6-Q9=?Z^Y|5O-F<%ChA5 zF*{peX=SDONb>3F+E_P30I>ruzM7wfSUiot|McnSnM&|u3p!cYpg&KG-7x^WJ@fK; z)0<1`G{wdxgW`ro^AKI}x3d46hy(x4#PLO~<-_%0)@O^bkYkVhp(VYw&hGA3Xl;`X zp#VCb63d+;c<1?CP7L4PaW!r}hQEpy1pcjupn(eE)Mi)r`TcZd`N02><{ zIqy@R$(27(a5XPl-saJ=PVKUGfsbbx^S&RXF~b08Fu9PZf@7tY2G8&Ze;fIea*p{b zbsU@cpqRGr#wcB`dSd%aR#9?ywd~l%!bK=jPD_}*15Hjz#4#5;dwyWHVK>GX_{wBT zn-zMLKIC|7Hi)Vt5l0U=WThnMRr(<{)mT^L%DSiW)x6JK{ouT1e z%SWHc^t)?=f!5WcHNIk^5i= z#I{xs%B;?_V?!%CDQi#SPfxn_@UOU}X@oz>J{d01e|`|>rZffT!$J4p#`4(NS-$_- zAr5zVOxS2EvuP#ouIp?;r$vRqw21_~4Fj#EyqPlT68nVofzG!a$6M zQYcOQdue}pOIPr$3KYK)I;yQWTAipxYz`5XDHN2r`VU)RiJJ`}IGr|};6`SN7qJOk z(FpvhqqPV~n1CZ*KtO$CIg4<-SmQr@4foCKigBq$VYiISs3cDA4hEC;ack^se{B5> z7JTG_WH^v@n^uYElHP3B$x@y{E@mtChwiqq^R0lW#RP?47FT$bg1$>aA^=qFVEgYd zq(iYsA)r(=AOVZ}yAbre@|R0nFPEBF#2{0eAjM-1x#Dl1Kp1E6tT~eEZ1QfF{uBfT zET94YB|XwemW=h8YGJ4E(A>)}AvWYw=u~R#mPghQ@TrO)fIwXIAO6r)pZDM@Kg{!O z+0%K_wmT00!RjMN!DlDMf3QdUCfyP%X(^&N&blQ=43nKf6ap`a-|g^K0I(ZldeujI zAkNdW-s=EbJvY>B7A%{91&=l-B4AV}tE&#bKPo-mktK&#aAND=ZvYvnaz{hKs`sDt zbD5PDeyXFu7p$=Ip$Us6wC z2|8T=<5yd;t2tA2j~3NOvg0u5UgNv1GeNRW=L?L{cyNKS=SU=T1rw)|1K zqxVt9XzYl4Yai`c{;u}+58{|+ya>ae2?;uIq#G$yiW}fEp7k?NY7P|uA=R3#pL<_J zN9SJd{dkXqRsHX7Gv-|Mw6qmHa$hd(^vEJyD~kD01i$6iF%R57ii>@79=l#wmH*|- zLNgUVIUq;tpovE6=|J6+gfK5)VVrY)WhtAmWz$$X>b%@==w5j0vv6S6gD-iq-SQ7P zxVDg(nAnkXsRO*RJdyKG(Y5G0qRBK1wMa78tAH`|fm9TR7D^1vdiyq_8jaxAO1thW zKg%nD!rlBB{J;^1kZ+aL}WI&Pf z2Z|IK$;nZW!MS|p%7gsqHqC69RLIVCDa{9}+S=!BL0j9+_9s&^f1mlpyNJgV2ZC67 z^syWm`qpUpL-Eb~_fG7mx*2kUbk%OI zw9xJfjU4{NJ5Vqn3p`KmS}gpvB4>F%aBrxtG$O0mplkd1%C7V0FJC63QNzQAxVOiZ zQh4?d*XrMp(-h)Wv-rZDa_*^B2yKZ%k;)#Kbdul0auo!ut**Pz0SMU6ICcMq*FtWF^sU|=PRIFzp^ zdooBiJ|dqy`LU@<#b>o2!piv)fTL*$g^Q6&9){VWT#5~tOSiA;Zf|x&%YCqu$x5nf z&DwdFm6d2&=O+k*!GmV&GmJ~jCmKY|NLcV-`O0YV0%Y$#Dg<*a_hRKUWfn{PH=mEJ zlB@iUJ7><1(;C$4e>Gm+^53K=%tM<=JQTTH^qH=- z;4@(+!cu;qcxrpg@ALsV1TIx?!(rl^h+R*F07G~fW&{Q}419{7T5~c1Mh?zELz0la zE}_f>_N+FVf?zr}{DJdUwW-+EU8#rq`fsGHx~<+V$Rx|6a7Gd+Ho1N05n5wN-;08Q z4q)KUhA)Grxc*re|HXv-z(4a6SK8Q0g>>sXw&dBaPs4GgGIqVM+P|7HDidn#3p-i^ zyP?3GqAtU^bLGK@-?anxf_XuJTh{UU^t4Ob&>7EUqIijGLoSz;1CXbOO7SOxH*f8@ zm@1u$=D-!HmzI}FJ@Df~d0NB-$hMq2hl)9H;Fn(sC z*~n;GEW3mOcO>OKl5zUDXHk74C@66u-D1XB@2A=Lqjfe(^Wz43FwCUXLe<0LnwNKl zRs(61gmh$srBV7d3_*#cnrx>;TL(&Ph!Zm{Q}Lzx>o=kFZ+tLer;;6yhV7nKLl(Qm zwp>o^Nowhvq?o2vha2Rj?H&BsgTTkh^;vMUhf|otimZ!CfnA0XP~vE#iO{OV7Rz5Pb;lH=~JXE_~gl*H}3*; zViQrFVOFoY%9Gb$9t-vbjW8D&KV&qP0O7m5+J8j_N)jlD5eHJE8eTAC%IipOJ>2`r zV4ojWVq83Qq9y+v_#peZ88D3)`?vpmm+k`d2Ce@rXT<8NIbeZ3_B|hX@xg-!x*chT zB*+CU+M5G-CJ9_fGL6z8_W<;ylRih?1T(osznWH9jaOr&?*)roP>W54im1h=WhlrR zua5QkC4MV^Lfg!!L0wp|BO?i+1q$2a4=@lZbzM-9tvi+ClR^HN2tKsk7-=EQ^Fa6h zl#HvS?eMjpDJ>ZOKy(9JNGj*Gq+v;%%0rJM)P9jcqB6(;Sk&1K_(w{qDT1r3o;$e^ z&`-gd7&zU7(iY5^ia`|qi0yBM@%%TOSolJH#2Qc9#oqO#YMN0=K#yS_qF z?liB034u0iXBaJ1lI<}wT9k>DBwKx!1i6AQ)l~;n!1z^;e4}$vbR89P+&~isWtp+^ zpq)9%S7ob+6Ns7akga+34=8)m^u-02*^EevI9;3L{?WmjzZd(< zJR>uE9_)-9v5-;tZ2uGhN+H-jz28Sm5*`k?%rgLxoAeygiiM4?_wOq1$kT>LIY6D! zDr8)xm3b%sv>mW!Y}yU06B|aEonWAWdU8vQtoyi8qYdT262|P zSLX(-dMv;8__LucB9!A7B$tMm=wFa{iogi8|U(FtK{BuMkyB+stuz-Q^?U3~+pmL%A z+P043>k5vkejbJ;vHOd=b$KU!;%gB@J^Y7LXJF@X{8eCl0$ImsgsR>0Dg9tjtAFSk z?ta(Bx6ZReVs>Xz7^xT?6Ej6u_eqSk$aAs%9OS!-SMuObPaE!?2SrD}b}XEHTrnZN zLH?YaiVRSTi1e)dwROBd${JGR^6^|5O1Dh??5Or5<@QXStPJ>7o1t@W-QUD>XwaR# z9eha^#)UXJwEI{TZ(fNqr1&Za6wmwnq@?ws`B5E!+}w-%8cKnKZhxIRO2q+Ex#Tz! zJt@+s4F=1~1JwB}xYk>9i9)a62Mw|jmIz@&08dL8>|+^r@mz*{UIsCm{U!e9BLjoo z7Frq9meH(&x*3t#U8<#PIH@W0h#&;cI)vZpZ2SAjBAs|nszs0j&rM4uAT2$@MtDky z7pK%1+IpY(L(X@dC3zvY2mPUbjbc+|^<g?D-&S67IEp>kABSkJ_-Q#BZx*jB9a}`JT!l z^sfz-z-I#%=}2;NAkM}6w%%Do70r^MSxUKB%4PeUHg4kVQI&mvJKxJZxDBfMuhwX4 zDt~vZ2$*_onu2CyOWcbeK`V!;FLYjBUj3h*X@x-07GfC+9aqP@9z9;Fjwqk45sV+Q zqpfV+&4yc*whqyjOt~N6Ez@^IfaR5yMOaRGXJ4QCzf;P#zQhq7Um`V)!|oCv_m81m z(i;im?p&+udM`rtWl_el^R4Bfz>dlzAe9xx57t#v!`dvU0I|nazqh|XyT4mX-{RqXV65}}tLCi;s2(OFdv11(!V zV5O+a0rwP!ewU@(l)}Xfy)@Q9%!p=i-;oZJqx|%88{2j^<&JuQN!dG_w6b@_-d$|( z*6v75tfZ}XLX%QnD{zTX=y7m zAvhLq-X}?Uop<`3sYC@@8hBx30)X!@++st-}OO%H0L$EZcbJ?Ml$8z zcO<;_gQ|zztAG9AJCZIZ34p7fjm0tkDO~pDrnp(t|9YRY54i@O%=Xlk@=DA4Zbim3 zZl*P6QN?G3IOv0uO6I?e=|AO7MlpxdVM=@S0Scmx#Y0TM!%On*jw0f;|KcM5{Uf@F zEoAO|{?ov(b!}8UZ#n(uvzIevpln|Ex6{lU*BXD=5qvh-?%q8b>4DBz#{coh@fz-9 z-66uvuQdT3sxot=aGII(?CcWwBI?kp_#a1RN#c!P>+Z&)(Y_G9?sslK+%{SJ6p?iX zzC6_=M+@Fpb3qMY$p+Z%1;5@5?xtM`AKL}AV^ig5ZBiz*lB2O8i5OWzj^6)v1U?D< z*Ns|o^9u0JZD!$MIR8y-?51cXoM5H*o#xqj@DJ^-zkV?$d-diXwkZf{R20^U-gsf0 z^J*R$B53tId&K{t&u;L;+dIO*FXAf1_k_MoNDeLjRi+elJdvYU(8B~p)QSGEg5#ONhPHvH%1WV)o7J*8PW&c9|H3Vxj2>*UeCK_qbv`r5{ z2NjR(M-aKuXiH%97e)kt_LEOa%uyXplhbkN303DcG)xJ<-QR*KUH_DVHUb{DVpc^M zw)|PcMs^fxf89BY-vs@s@UthO>lB-`%zmGXDxLDFLOUYgKomy*B+}@tK?$F4bY|(A zXpS&J%a-6~AEo1a=}!}=a(_)D>>WlB?s`PW5roN9ZYp{Nt0Ri4?$<-f8g}XmBv7IE zJm@}tbeKWpV%$GT{Lgze5!xaOmCC+wuv@`qbskHOpFFlSx&(1`MG;)jh#P;>{9F24 zG3QPzck7Do7j0n;DWrc9@=>;Dq4E@)0ZFR<2ir5;A7Hb2p5Ao>#2r#k{a(t47I=KdJB#pdNKA)pDO9_QWpw#bV z-lXz-ibWlwp zE3TPPCbik_$|XT5;!c&p{fi+Gs1T9vwJkqxDF5#*w1VXT7O(a)I{60u&Yk|hQHZlp zKloo={)*mk27;G(cl?Y)O!6-Q+4p^34H=rV{rA3Y#~28`{^7k6lwtoXS=g_2Hu*Z# zEyBx{#MsR^Xgki}db81{gxJnTzt+fw55>#q*8#uW#&_!&INXUt@N#@T-Fd;E_CLvx zizM$D#XUi`7LkfH#w#|!W!6-PmTQo0el7Q0x#3RsD0F5`i&{{#3D6L^YDoU!ogJC7W2Ph&VvGoqUyfn)Ng63qP$ zZ)8}){1xDXS>nMIJW>QiK1UDa`Jc_G!a)3NwmATux2rZU{(_!E6pyU?nL?x-NAv$@ z4?tVsAUIO5AuQAe@<%F-bzt~1^OD$CuY9-&-*3%H>=T{=9TEFArSf< zIV$+$e;7LS3nLD#5XwG)PN1-?hL;9R;q8cY53Hfo)BElQ=^k0Z&t6T=00iksPm{9V zu!7Ll#s8NS{}l%+FvPp5O@{Lm{$Q$+jO&Eg{oCexU4AOcVjDUqi)=z5$+C|FnB3FL zF0sl!dK+T?{C{g;=;K2?A6d4d>S%1juIBZZDH^E%mYfY)GcmTrTj@Pl?V3d^n8n!Q z3cq#_{+G1Wql*CzNS+zhL>Qn&O%h}hOH#>|Ov<{)1pYsaN&4_4bRzaY7GPu_3iq<) z1xZ22Jpc3bndCoh+T|G6Q7QHMAMTVsT7;TLbN}T7{)VakPMsGbkwg-L?>WZ#9g4qn zMvA8BXl3I(e9@ri;m&oGA1U~svM~Iw(}qUMG6*xf+qe1q%98?4cRS>C@}7nNce^-c zU($31|I&`YFWTw0vYR?w2O8+a~!pz|Rv>MbmWcGGeT*lcsfERuLL%4sAcZ!0~+VTyW zqJS$Sf7zKswPIJBV^Me~%wJsj!`|_XP!tE0jF1)U#M-2MPkq>28sAoiR$WUhjWZaourEEM0pc(v^gZ6a_^DsUnKfq)P`8xJXf|dM#9uCQ`Bi zsnQfsycB~Fsv59h1c4x3X^KFQ7P|CMqy$LvO?>ZnfA9Ox?k}@5J3F%{J7>=GJO`{1 zk4a+R2xS3tq)SJB^_Bf=;l%8%VO!mIs~@=`<^nSHoQ7vDKZrKAzjurHh_(cz;M?*< zvaRx0N1{g&MtZ@-*0VQeQ$u4$<8Y#!|4t5AiL`9dJsTS19-%#}AGd4Wr#1zdFOdFa zZZqIuzoU*u#6?|L6j^IT6f~XR5DA9?(EANZm34zhl`#T6iZLkrE4ViVELsF#`p5&^ zO)u#UFa~tM*VGB;2g6)h^ltiAa9yv|f#<(X9OylPiTm6YzRuJZ zgUMgIJ>n!fn?at3WVBrx9i z0d!Ln=Wo2dwESgZPeRjGx%oH$Z)>0jc?xiM{}J#YZX@*5P<&dz(3N1t(`7D|f2yTs zC%*R{aBD2Kma0&B@cR>A91A?Ut#@?^Hiex2)1B9uICX{MYTWWrFT2k5ygZL*n`pP8X1Rd+hKI;?cQM7MU_j@VeOg zaJ#kG?Ok(c#_Kfc;m-UUJEl|haM6V$K%2U*)&+p?g_s)kzy&0KY|YeaRa~@ZQ3)N3 z1Y0^GUeTFuojVgo+wzrg2ZxsPcB~E|hi*2S5i9(9^|8xSE+~%E3xc*JY5tmrR-%SA z&BoecWgRZaN?wK?dYGZb5qQqEr=4Qb5VMa3`q_oGAF`BF)MnGIfl>O+^%dXGuhxmP zC%Oy@_9VVLIG>8l**UlRHcv&}bkpZ-OMs*T7qBe&?ijLKv_c;D9{%HC63Ebo`4 zYafVPc{h%7^w(pzRvHNro3Hgp;M(my%iO;_;kx&*@~x8B@K{|$efn3c_Kr>? zFG7C(xqem-s9oXNhORZ=v-Y;Pj!SRP24cQi5%uGS$gg_u95>J!-hKT_>Y8}r{4`^7 zUKi5K+$M#6wP6m+T%{o2al!gZ2gmz5mVVY4VQr&!Q-Y(o1_@Dxym@HscQi?PxDF4n<{;RYq8=|noFUb$+U zV<`%c=6glE8t6`WeGe7;^Ty2y!l)Y_7+5or|Vbx1^_{7kYk>EnFE!Ni?2}L5|jbyR?GM9FM+6 z=gP{Ni*E~W(0Oil&CU^POs_f9Xdzvs9%9(@8b;O+12*ihVL zpGe5o{lS>|Ig0xGNf@i8u-iEURAzqK=Q(QS0=CoEuAHq3q~J>#Nw9Nc>UGr|di6?K zLg|iU#jS`PjX=Nc?*KQprQ!UZ56F&=)P!DJYoV`0hdFbPd6Cl8MFj7NK0AFg*?qj6 zu%~5(zTE^BX1Hpyz07c(2gL7Pbg4_tujP)c?y&KIN_Y$gV#0}FnD!nDGF2r8b2}&! z`*vJkZqfXjspWAK%h~Gw=RLJ&WYv;4Nn%4PqH4Z+|5hU(VB)hGC!B{mCpxrNXQU09 zAhj#TrR4dz2Y)A-v)SIs8c%Fso8qU}>kOrZ_)V6$W<0$O4wS=5>NvyMAL+{*`REhEiV1c&iiU*uo?r*%l`Eg z@8U8Lk~Z%1EUAP&EFF=Jn+H{!$=le5&?J#-T@{{jWv*iJ?(Psqi-iACxOse5T&}YS zNA$0gbf$$67|$@!BF)BY-s!9a>x7GCOZNf3{>mcG`yoRy`^Z0bH8%JED72JaNm!Ge zCH{;st=bN}4YxoRG&ni#x$$B225pt6ySp1DAQ1g-oRWW8ymbbBQ&Rbs`0=y$aa>7= z*E3GyBS@3)zY4#T`xw@(pNHZevLha)Rq|Qdf7>V|+26m(ss6(r^~bi*@ntM~Fo7Z&SsSif7rFVzUkJn6liw+oG+C$)OwKXe zl0I*zB@zdSanRx0WFNEYU~5p#bG#{`psp-^sY_l#(uy2Je1R}EB;#fQ@Iz~@mnH*=x9ur z)ruZ!v*yG*F5Kl5v?)?skr&nm&>9g22^g--jyHYK(yZ<|V_BrzQnSnoR_sYqknk{A zBOhq-^dATlWGaDS6v7JdD9xP_(no{Bgg5JX)Iv9o*Z!yyFit+)q=SXIZ{z!MCeZ0p z>_rz%7laJ_^)WUuqdHmO}6u((u^s|Ebv-3Er{G$p8YQ5!ea!!xt2p&6Dk>_iKkqpwQdD5bf=snZi^vx_r4L*( zrswC<0GXJu;q0vTdayM?GSn&3Y6|K#GklZ?UX%#^CTmK%=6>t zD^73W_=PpQzY;}CONfQ{a((xze&go<}oQAIk%P|5&n^PVzv7$MexSTj+hbThs=*`W`>z`>X$y=4z`1Q?SnhrD(3k zi4TyEXgX~#0Rj);B^g19Yg7$1gC+OM9atKqt5{l|qKE-qdZTC0cEdCeMZu|fQ|icR z2?S)dsR+v|Uog*Rvr<4gUp_k}s)HW74)wCGxGC0ZgFZ5Y4LgepSbPubR^(}habUVx zF7o{H`S=l<;{g%KhujE6@jiAdS_20{1|ehh8XST58qD=?DGZ87U7_oMOZt$T_21%K zO~~Be5zOjHmL7J{s(7~|kKO9G%?PlvTZ!z=-J82gdh<_FBag7I_eqRhGW10{0+lBL z+e|m=xBI4!hF|JTgXrr`y=$VZz0d`H24C3g4qPUwI(Ko zbo_qPRcqSDo{$}Ri3R2#zyRsM@()9{nlFG&&m|my;01OB|G6_=W%+81$bf z`Vz7`(ztx=sW`12t0P8WBlYwk#{_1L%^6W#`~fv1R?KVzsJ#8xOQE39(c(eGSSR-K zi_2U}Rper)O24MB%qKID{o=$@or#TlK{f66b=eR#REa}(iMGm9zukX`3!62T2Z*24 zFA7-dX)XcKw={-cKvF`=UPPdgHu znI0Ez(y5E@)-_^ISc-cs4pcm_b6W>l6F~50jj=dPG#9xd+OlFv=-GepA#e2dnf)Q+ z6OUf;cKoqWoX+cWBKb+cQYvq!S^p`#6Fe5j`5(*36GNaWRk7rh?w$q}YX@Yh4C zEq5k&&|b&9`l*Q#EKonHjW-w97&IcK42KfXYrj6zViihzJ&qP(yr;T4J2!SUvpURD zd6CHVu`PlfoK&+rVc(*JZdZjM-S(pbx`VNzQp!3RZ6!`8JpEtbrwR-g7Z=^by`3u* zD_(bPhPyTkv*{hVmZ;ff^V-47)zZ?^Jk{*Unr-Sk9b6VjTp*PgVfuG@n72>wAgrOG zA+obu9-y8q(X}>N<Hgd5{npDGP&_@<>|KmRpZg;)AJQM6_DLy$9p2E;~wGS?io zJ3urv=F~|D^Qh$`#%6ME&Me7Dzih3m_tu&8wyAd~b;`oDb>36KI8xXTH2rax`X&bn z)txlRMD({!tnOs_(|X&QE#+OKCbEe&jzmJ-?iO9)wK_&+t%c7YVu4f|U7%A=W7RcF zfq$;H>|;YgZip_ZFnzK6x`r488K}a`r!gEH9N}6>WmQ#UJz>_trnVq$kiYbUNvy6m z{w1JY&Nmz3vSvBh-lZ*`yTNR=_r$8~s1AuFx1ZZXCF=`F)R^kh-rg8=t)~BYE(AgD zLY0spcXYC{y9$pCc&nLOw|L#&{zwnl$vl3|#}$5jQT&~=E(-*8&*@!c`x?ac_R{ZP za(*nkfp^4BS3A3GOD+Zk1W1~eUX)uIx+LZ$WCcN(GY_1ghM$Y|%Ad!jlZ;r{Ajl*i Y_O6gheIwI-0`v=+8eTBKpL2`+KlPdSKL7v# diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi index 72cce42bd7970e5e24603b7ff231e652d3fb333e..7496d65027c5270315abbc3d1b23278c3e2bee86 100644 GIT binary patch literal 11565 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 O1Mb2gZ>9O2dOdu literal 11232 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 Date: Mon, 12 Aug 2019 00:07:22 -0400 Subject: [PATCH 14/37] final commit --- code/datums/outfits/plasmamen.dm | 2 +- .../living/carbon/human/species/plasmaman.dm | 4 +- .../mob/living/carbon/human/update_icons.dm | 39 +++++++++--------- icons/mob/species/plasmaman/uniform.dmi | Bin 11381 -> 11383 bytes 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/code/datums/outfits/plasmamen.dm b/code/datums/outfits/plasmamen.dm index 594a5802c34..c756a3d30ea 100644 --- a/code/datums/outfits/plasmamen.dm +++ b/code/datums/outfits/plasmamen.dm @@ -3,7 +3,7 @@ head = /obj/item/clothing/head/helmet/space/plasmaman uniform = /obj/item/clothing/under/plasmaman - r_hand= /obj/item/tank/plasma/plasmaman/belt/full + r_hand = /obj/item/tank/plasma/plasmaman/belt/full mask = /obj/item/clothing/mask/breath /datum/outfit/plasmaman/bar diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm index ac2538a34b1..0f158f6f9f0 100644 --- a/code/modules/mob/living/carbon/human/species/plasmaman.dm +++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm @@ -114,9 +114,9 @@ O = new /datum/outfit/plasmaman/clown H.equipOutfit(O, visualsOnly) - H.internal = H.get_item_by_slot(H.r_hand) + H.internal = H.r_hand H.update_action_buttons_icon() - return 0 + return FALSE /datum/species/plasmaman/handle_life(mob/living/carbon/human/H) var/datum/gas_mixture/environment = H.loc.return_air() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 73a76e00420..988f4159612 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -931,27 +931,28 @@ var/global/list/damage_icon_parts = list() if(inv) inv.update_icon() if(wear_mask && (istype(wear_mask, /obj/item/clothing/mask) || istype(wear_mask, /obj/item/clothing/accessory))) - var/obj/item/organ/external/head/head_organ = get_organ("head") - var/datum/sprite_accessory/alt_heads/alternate_head - if(head_organ.alt_head && head_organ.alt_head != "None") - alternate_head = GLOB.alt_heads_list[head_organ.alt_head] + if(!(slot_wear_mask in check_obscured_slots())) + var/obj/item/organ/external/head/head_organ = get_organ("head") + var/datum/sprite_accessory/alt_heads/alternate_head + if(head_organ.alt_head && head_organ.alt_head != "None") + alternate_head = GLOB.alt_heads_list[head_organ.alt_head] - var/mutable_appearance/standing - var/icon/mask_icon = new(wear_mask.icon) - if(wear_mask.icon_override) - mask_icon = new(wear_mask.icon_override) - standing = mutable_appearance(wear_mask.icon_override, "[wear_mask.icon_state][(alternate_head && ("[wear_mask.icon_state]_[alternate_head.suffix]" in mask_icon.IconStates())) ? "_[alternate_head.suffix]" : ""]", layer = -FACEMASK_LAYER) - else if(wear_mask.sprite_sheets && wear_mask.sprite_sheets[dna.species.name]) - mask_icon = new(wear_mask.sprite_sheets[dna.species.name]) - standing = mutable_appearance(wear_mask.sprite_sheets[dna.species.name], "[wear_mask.icon_state][(alternate_head && ("[wear_mask.icon_state]_[alternate_head.suffix]" in mask_icon.IconStates())) ? "_[alternate_head.suffix]" : ""]", layer = -FACEMASK_LAYER) - else - standing = mutable_appearance('icons/mob/mask.dmi', "[wear_mask.icon_state][(alternate_head && ("[wear_mask.icon_state]_[alternate_head.suffix]" in mask_icon.IconStates())) ? "_[alternate_head.suffix]" : ""]", layer = -FACEMASK_LAYER) + var/mutable_appearance/standing + var/icon/mask_icon = new(wear_mask.icon) + if(wear_mask.icon_override) + mask_icon = new(wear_mask.icon_override) + standing = mutable_appearance(wear_mask.icon_override, "[wear_mask.icon_state][(alternate_head && ("[wear_mask.icon_state]_[alternate_head.suffix]" in mask_icon.IconStates())) ? "_[alternate_head.suffix]" : ""]", layer = -FACEMASK_LAYER) + else if(wear_mask.sprite_sheets && wear_mask.sprite_sheets[dna.species.name]) + mask_icon = new(wear_mask.sprite_sheets[dna.species.name]) + standing = mutable_appearance(wear_mask.sprite_sheets[dna.species.name], "[wear_mask.icon_state][(alternate_head && ("[wear_mask.icon_state]_[alternate_head.suffix]" in mask_icon.IconStates())) ? "_[alternate_head.suffix]" : ""]", layer = -FACEMASK_LAYER) + else + standing = mutable_appearance('icons/mob/mask.dmi', "[wear_mask.icon_state][(alternate_head && ("[wear_mask.icon_state]_[alternate_head.suffix]" in mask_icon.IconStates())) ? "_[alternate_head.suffix]" : ""]", layer = -FACEMASK_LAYER) - if(!istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA) - var/image/bloodsies = image("icon" = dna.species.blood_mask, "icon_state" = "maskblood") - bloodsies.color = wear_mask.blood_color - standing.overlays += bloodsies - overlays_standing[FACEMASK_LAYER] = standing + if(!istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA) + var/image/bloodsies = image("icon" = dna.species.blood_mask, "icon_state" = "maskblood") + bloodsies.color = wear_mask.blood_color + standing.overlays += bloodsies + overlays_standing[FACEMASK_LAYER] = standing apply_overlay(FACEMASK_LAYER) diff --git a/icons/mob/species/plasmaman/uniform.dmi b/icons/mob/species/plasmaman/uniform.dmi index 74e4f5ed23d029b78493cc0f20a84a4c3730bd61..89931b8147dc182955eadfe22029e4930f201bd8 100644 GIT binary patch delta 268 zcmV+n0rUR#Soc`4rviWVdQ@0+L}hbha%pgMX>V=-0C=38)WJ@}FboFZbMq9{c1OUt zazUHW4(t^slX|Toi6h%vx3{MSB(60#Tk@wriR7%?m)-0B&~D%M;ew*XrG0Ln?(Rb~ zQfI@|Y#u{1AoYX&G-_Ztm8+USGh`@7U4^D2(V2$kB#?2gAO3%472{dRZbvK^64o=> z0yTnkSbQc9P`v_AKB1AY7^(SKj|GjQ+f4_|ZZwZ3?%l5AXe>S>{LcTm*asAHheeQ{ zeFRHS1<@G6E#8@q0Ihwb;r S^99?kZ@uL4Vra9Y1JWpiz=oy( delta 268 zcmV+n0rUR%SoK)2rviWTdQ@0+L}hbha%pgMX>V=-0C=30lub?pF$_l6lT$?P9`Uzj zgIZNx&?_L5aWjUA9XW1?-kupiVp+VirT6qDQS5bm-tP8?xOv%!GioE@_!J*+ZbLUw zZ^PU?+=p&J%7gth&A@OjS9OF|pa8Ez*ORtI4Bb(o;8NfHkqv*-Ny#p+$Y)Y%C$g)~ z1ll8ej5I*?@p$y`EfKO&Gmn&!(I`2s`Dn$dEZ`{FY4ws!)MKc;iT^_Hz~l@{pjkWu zawbM}g@6@lu8_| Date: Mon, 12 Aug 2019 00:09:27 -0400 Subject: [PATCH 15/37] woops, forgot this --- code/game/objects/items/weapons/tanks/tank_types.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 2df0eaf1da3..f7b8d59528e 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -129,7 +129,7 @@ obj/item/tank/oxygen/empty/New() item_state = "plasmaman_tank_belt" slot_flags = SLOT_BELT force = 5 - volume = 6 + volume = 25 w_class = WEIGHT_CLASS_SMALL /obj/item/tank/plasma/plasmaman/belt/full/New() From 9db058cf5ad6e2246a96df165b8a3d860593fce1 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Mon, 12 Aug 2019 22:09:00 +0200 Subject: [PATCH 16/37] changes as requested --- code/game/gamemodes/nuclear/nuclearbomb.dm | 6 +++--- code/modules/vehicle/ambulance.dm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 1afa03d8b8d..250a7beb0f2 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -79,10 +79,10 @@ var/bomb_set if(istype(O, /obj/item/disk/nuclear)) if(extended) - if(O.flags & NODROP) + if(!user.unEquip(O)) to_chat(user, "\The [O] is stuck to your hand!") - usr.drop_item() - O.loc = src + return + O.forceMove(src) auth = O add_fingerprint(user) return attack_hand(user) diff --git a/code/modules/vehicle/ambulance.dm b/code/modules/vehicle/ambulance.dm index f3d3bc33e11..ac225003c52 100644 --- a/code/modules/vehicle/ambulance.dm +++ b/code/modules/vehicle/ambulance.dm @@ -104,7 +104,7 @@ /obj/structure/bed/amb_trolley/examine(mob/user) . = ..() - to_chat(user, "Drag \the [src]'s sprite over the ambulance to (de)attach it.") + to_chat(user, "Drag [src]'s sprite over the ambulance to (de)attach it.") /obj/structure/bed/amb_trolley/MouseDrop(obj/over_object as obj) ..() From 41eddf8e0aa47ea6db3d781f605ee8410df457ee Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Mon, 12 Aug 2019 22:12:56 +0200 Subject: [PATCH 17/37] fucked up git stuff. Fixed now --- code/game/gamemodes/nuclear/nuclearbomb.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index ea06847e358..d2b5fe486ae 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -85,7 +85,8 @@ var/bomb_set O.forceMove(src) auth = O add_fingerprint(user) - return attack_hand(user) + attack_hand(user) + return else to_chat(user, "You need to deploy \the [src] first. Right click on the sprite, select 'Make Deployable' then click on \the [src] with an empty hand.") return From 8c717f6433ca6d6c8c970d6a7ffc71eaed80f3c0 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Mon, 12 Aug 2019 22:14:22 +0200 Subject: [PATCH 18/37] revert that seperation... man git is weird today --- code/game/gamemodes/nuclear/nuclearbomb.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index d2b5fe486ae..ea06847e358 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -85,8 +85,7 @@ var/bomb_set O.forceMove(src) auth = O add_fingerprint(user) - attack_hand(user) - return + return attack_hand(user) else to_chat(user, "You need to deploy \the [src] first. Right click on the sprite, select 'Make Deployable' then click on \the [src] with an empty hand.") return From 619774a63f855aa4da5f967e5cbea2eeb19fce2a Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 18 Aug 2019 09:13:25 +0200 Subject: [PATCH 19/37] airlock tip --- code/game/machinery/doors/airlock.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index cf580edd5ea..3b1b2d24098 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -516,6 +516,7 @@ About the new airlock wires panel: else to_chat(user, "There's a [note.name] pinned to the front...") note.examine(user) + to_chat(user, "Use an empty hand on the airlock on grab mode to remove [note.name].") if(panel_open) switch(security_level) From ddd89e318bb85ef9ed4ee4cd96151432106c009c Mon Sep 17 00:00:00 2001 From: Shadow Date: Mon, 19 Aug 2019 16:35:20 -0500 Subject: [PATCH 20/37] LET THERE BE LIFE! --- code/modules/mob/living/silicon/ai/life.dm | 4 ++-- code/modules/nano/interaction/base.dm | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 06043025f7c..5b93402d9e5 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -107,6 +107,8 @@ aiRestorePowerRoutine = 0 update_blind_effects() update_sight() + to_chat(src, "Here are your current laws:") + src.show_laws() return switch(PRP) @@ -126,8 +128,6 @@ theAPC.attack_ai(src) apc_override = 0 aiRestorePowerRoutine = 3 - to_chat(src, "Here are your current laws:") - src.show_laws() //WHY THE FUCK IS THIS HERE sleep(50) theAPC = null diff --git a/code/modules/nano/interaction/base.dm b/code/modules/nano/interaction/base.dm index e4e5dd1a33b..e7f06137781 100644 --- a/code/modules/nano/interaction/base.dm +++ b/code/modules/nano/interaction/base.dm @@ -24,6 +24,8 @@ return STATUS_UPDATE // Ghosts can view updates /mob/living/silicon/ai/shared_nano_interaction() + if(apc_override) + return STATUS_INTERACTIVE if(lacks_power()) return STATUS_CLOSE if(check_unable(1, 0)) From e48d5f5a929fd6f07f500c2da6f213625aff535a Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Wed, 21 Aug 2019 19:27:09 +0200 Subject: [PATCH 21/37] drop_item instead of unEquip --- code/game/gamemodes/nuclear/nuclearbomb.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index ea06847e358..b11c43299ad 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -79,7 +79,7 @@ var/bomb_set if(istype(O, /obj/item/disk/nuclear)) if(extended) - if(!user.unEquip(O)) + if(!user.drop_item()) to_chat(user, "\The [O] is stuck to your hand!") return O.forceMove(src) From 9b9d5461ef9e37f3cfc63fd4ae70bd9b00350b0c Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sat, 24 Aug 2019 03:58:05 -0400 Subject: [PATCH 22/37] Re-organizes Lavaland Files; Makes some Balacne tweaks --- .../objects/items/weapons/tanks/jetpack.dm | 9 + code/game/objects/structures/signs.dm | 8 +- .../spacesuits/rig/modules/utility.dm | 2 +- code/modules/mining/abandonedcrates.dm | 6 +- code/modules/mining/coins.dm | 153 --- .../mining/{ => equipment}/explorer_gear.dm | 0 .../mining/equipment/lazarus_injector.dm | 122 ++ .../mining/equipment/mineral_scanner.dm | 116 ++ code/modules/mining/equipment/mining_tools.dm | 142 ++ .../mining/equipment/regenerative_core.dm | 139 ++ code/modules/mining/equipment/resonator.dm | 116 ++ code/modules/mining/equipment/vendor_items.dm | 14 + .../mining/equipment/wormhole_jaunter.dm | 77 ++ code/modules/mining/equipment_locker.dm | 1151 ----------------- code/modules/mining/machine_processing.dm | 2 +- code/modules/mining/machine_redemption.dm | 391 ++++++ code/modules/mining/machine_vending.dm | 311 +++++ code/modules/mining/mine_items.dm | 209 +-- code/modules/mining/minebot.dm | 19 +- code/modules/mining/{ore.dm => ores_coins.dm} | 161 ++- .../simple_animal/hostile/mining/hivelord.dm | 102 -- paradise.dme | 17 +- 22 files changed, 1640 insertions(+), 1627 deletions(-) delete mode 100644 code/modules/mining/coins.dm rename code/modules/mining/{ => equipment}/explorer_gear.dm (100%) create mode 100644 code/modules/mining/equipment/lazarus_injector.dm create mode 100644 code/modules/mining/equipment/mineral_scanner.dm create mode 100644 code/modules/mining/equipment/mining_tools.dm create mode 100644 code/modules/mining/equipment/regenerative_core.dm create mode 100644 code/modules/mining/equipment/resonator.dm create mode 100644 code/modules/mining/equipment/vendor_items.dm create mode 100644 code/modules/mining/equipment/wormhole_jaunter.dm delete mode 100644 code/modules/mining/equipment_locker.dm create mode 100644 code/modules/mining/machine_redemption.dm create mode 100644 code/modules/mining/machine_vending.dm rename code/modules/mining/{ore.dm => ores_coins.dm} (70%) diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index c047fc82abd..72394db2733 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -163,6 +163,15 @@ to_chat(user, "The meter on [src] indicates you are almost out of air!") playsound(user, 'sound/effects/alert.ogg', 50, 1) +/obj/item/tank/jetpack/carbondioxide/mining + name = "mining jetpack" + icon_state = "jetpack-mining" + item_state = "jetpack-mining" + origin_tech = "materials=4;magnets=4;engineering=5" + desc = "A tank of compressed carbon dioxide for miners to use as propulsion in local space. The compact size allows for easy storage at the cost of capacity." + volume = 40 + throw_range = 7 + w_class = WEIGHT_CLASS_NORMAL //same as syndie harness /obj/item/tank/jetpack/rig name = "jetpack" diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index 345d35cb4aa..6d41209aa94 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -145,6 +145,12 @@ name = "\improper RADIOACTIVE AREA" desc = "A warning sign which reads 'RADIOACTIVE AREA'." +/obj/structure/sign/xeno_warning_mining + name = "DANGEROUS ALIEN LIFE" + desc = "A sign that warns would be travellers of hostile alien life in the vicinity." + icon = 'icons/obj/mining.dmi' + icon_state = "xeno_warning" + /obj/structure/sign/redcross name = "medbay" desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here.'" @@ -210,7 +216,7 @@ desc = "A glowing dragon invites you in." icon_state = "chinese" -/obj/structure/sign/science +/obj/structure/sign/science name = "\improper SCIENCE!" desc = "A warning sign which reads 'SCIENCE!'" icon_state = "science1" diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm index bfb326eae1d..e87e35a0dea 100644 --- a/code/modules/clothing/spacesuits/rig/modules/utility.dm +++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm @@ -56,7 +56,7 @@ interface_desc = "A diamond-tipped industrial drill." suit_overlay_active = "mounted-drill" suit_overlay_inactive = "mounted-drill" - device_type = /obj/item/pickaxe/diamonddrill + device_type = /obj/item/pickaxe/drill/diamonddrill /obj/item/rig_module/device/orescanner name = "ore scanner module" diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index e96fd0e867b..3e4d4d143ec 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -40,9 +40,11 @@ if(21 to 25) for(var/i in 1 to 5) new /obj/item/poster/random_contraband(src) - if(26 to 35) + if(26 to 30) for(var/i in 1 to 3) new /obj/item/reagent_containers/glass/beaker/noreact(src) + if(31 to 35) + new /obj/item/seeds/firelemon(src) if(36 to 40) new /obj/item/melee/baton(src) if(41 to 45) @@ -109,7 +111,7 @@ if(90) new /obj/item/organ/internal/heart(src) if(91) - new /obj/item/soulstone(src) + new /obj/item/soulstone/anybody(src) if(92) new /obj/item/katana(src) if(93) diff --git a/code/modules/mining/coins.dm b/code/modules/mining/coins.dm deleted file mode 100644 index 70d920cd38f..00000000000 --- a/code/modules/mining/coins.dm +++ /dev/null @@ -1,153 +0,0 @@ -/*****************************Coin********************************/ - -/obj/item/coin - icon = 'icons/obj/economy.dmi' - name = "coin" - icon_state = "coin__heads" - flags = CONDUCT - force = 1 - throwforce = 2 - w_class = WEIGHT_CLASS_TINY - var/string_attached - var/list/sideslist = list("heads","tails") - var/cmineral = null - var/cooldown = 0 - var/credits = 10 - -/obj/item/coin/New() - pixel_x = rand(0,16)-8 - pixel_y = rand(0,8)-8 - - icon_state = "coin_[cmineral]_[sideslist[1]]" - if(cmineral) - name = "[cmineral] coin" - -/obj/item/coin/gold - cmineral = "gold" - icon_state = "coin_gold_heads" - materials = list(MAT_GOLD = 400) - credits = 160 - -/obj/item/coin/silver - cmineral = "silver" - icon_state = "coin_silver_heads" - materials = list(MAT_SILVER = 400) - credits = 40 - -/obj/item/coin/diamond - cmineral = "diamond" - icon_state = "coin_diamond_heads" - materials = list(MAT_DIAMOND = 400) - credits = 120 - -/obj/item/coin/iron - cmineral = "iron" - icon_state = "coin_iron_heads" - materials = list(MAT_METAL = 400) - credits = 20 - -/obj/item/coin/plasma - cmineral = "plasma" - icon_state = "coin_plasma_heads" - materials = list(MAT_PLASMA = 400) - credits = 80 - -/obj/item/coin/uranium - cmineral = "uranium" - icon_state = "coin_uranium_heads" - materials = list(MAT_URANIUM = 400) - credits = 160 - -/obj/item/coin/clown - cmineral = "bananium" - icon_state = "coin_bananium_heads" - materials = list(MAT_BANANIUM = 400) - credits = 600 //makes the clown cri - -/obj/item/coin/mime - cmineral = "tranquillite" - icon_state = "coin_tranquillite_heads" - materials = list(MAT_TRANQUILLITE = 400) - credits = 600 //makes the mime cri - -/obj/item/coin/adamantine - cmineral = "adamantine" - icon_state = "coin_adamantine_heads" - credits = 400 - -/obj/item/coin/mythril - cmineral = "mythril" - icon_state = "coin_mythril_heads" - credits = 400 - -/obj/item/coin/twoheaded - cmineral = "iron" - icon_state = "coin_iron_heads" - desc = "Hey, this coin's the same on both sides!" - sideslist = list("heads") - credits = 20 - -/obj/item/coin/antagtoken - name = "antag token" - icon_state = "coin_valid_valid" - cmineral = "valid" - desc = "A novelty coin that helps the heart know what hard evidence cannot prove." - sideslist = list("valid", "salad") - credits = 20 - -/obj/item/coin/antagtoken/syndicate - name = "syndicate coin" - credits = 160 - -/obj/item/coin/attackby(obj/item/W as obj, mob/user as mob, params) - if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W - if(string_attached) - to_chat(user, "There already is a string attached to this coin.") - return - - if(CC.use(1)) - overlays += image('icons/obj/economy.dmi',"coin_string_overlay") - string_attached = 1 - to_chat(user, "You attach a string to the coin.") - else - to_chat(user, "You need one length of cable to attach a string to the coin.") - return - - else if(istype(W,/obj/item/wirecutters)) - if(!string_attached) - ..() - return - - var/obj/item/stack/cable_coil/CC = new/obj/item/stack/cable_coil(user.loc) - CC.amount = 1 - CC.update_icon() - overlays = list() - string_attached = null - to_chat(user, "You detach the string from the coin.") - else if(istype(W,/obj/item/weldingtool)) - var/obj/item/weldingtool/WT = W - if(WT.welding && WT.remove_fuel(0, user)) - var/typelist = list("iron" = /obj/item/clothing/gloves/ring, - "silver" = /obj/item/clothing/gloves/ring/silver, - "gold" = /obj/item/clothing/gloves/ring/gold, - "plasma" = /obj/item/clothing/gloves/ring/plasma, - "uranium" = /obj/item/clothing/gloves/ring/uranium) - var/typekey = typelist[cmineral] - if(ispath(typekey)) - to_chat(user, "You make [src] into a ring.") - new typekey(get_turf(loc)) - qdel(src) - else ..() - -/obj/item/coin/attack_self(mob/user as mob) - if(cooldown < world.time - 15) - var/coinflip = pick(sideslist) - cooldown = world.time - flick("coin_[cmineral]_flip", src) - icon_state = "coin_[cmineral]_[coinflip]" - playsound(user.loc, 'sound/items/coinflip.ogg', 50, 1) - if(do_after(user, 15, target = src)) - user.visible_message("[user] has flipped [src]. It lands on [coinflip].", \ - "You flip [src]. It lands on [coinflip].", \ - "You hear the clattering of loose change.") diff --git a/code/modules/mining/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm similarity index 100% rename from code/modules/mining/explorer_gear.dm rename to code/modules/mining/equipment/explorer_gear.dm diff --git a/code/modules/mining/equipment/lazarus_injector.dm b/code/modules/mining/equipment/lazarus_injector.dm new file mode 100644 index 00000000000..dcd0916d876 --- /dev/null +++ b/code/modules/mining/equipment/lazarus_injector.dm @@ -0,0 +1,122 @@ +/**********************Lazarus Injector**********************/ +/obj/item/lazarus_injector + name = "lazarus injector" + desc = "An injector with a cocktail of nanomachines and chemicals, this device can seemingly raise animals from the dead, making them become friendly to the user. Unfortunately, the process is useless on higher forms of life and incredibly costly, so these were hidden in storage until an executive thought they'd be great motivation for some of their employees." + icon = 'icons/obj/hypo.dmi' + icon_state = "lazarus_hypo" + item_state = "hypo" + origin_tech = "biotech=4;magnets=6" + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 5 + var/loaded = 1 + var/malfunctioning = 0 + var/revive_type = SENTIENCE_ORGANIC //So you can't revive boss monsters or robots with it + +/obj/item/lazarus_injector/afterattack(atom/target, mob/user, proximity_flag) + if(!loaded) + return + if(istype(target, /mob/living) && proximity_flag) + if(istype(target, /mob/living/simple_animal)) + var/mob/living/simple_animal/M = target + if(M.sentience_type != revive_type) + to_chat(user, "[src] does not work on this sort of creature.") + return + if(M.stat == DEAD) + M.faction = list("neutral") + M.revive() + M.can_collar = 1 + if(istype(target, /mob/living/simple_animal/hostile)) + var/mob/living/simple_animal/hostile/H = M + if(malfunctioning) + H.faction |= list("lazarus", "\ref[user]") + H.robust_searching = 1 + H.friends += user + H.attack_same = 1 + log_game("[user] has revived hostile mob [target] with a malfunctioning lazarus injector") + else + H.attack_same = 0 + loaded = 0 + user.visible_message("[user] injects [M] with [src], reviving it.") + playsound(src,'sound/effects/refill.ogg',50,1) + icon_state = "lazarus_empty" + return + else + to_chat(user, "[src] is only effective on the dead.") + return + else + to_chat(user, "[src] is only effective on lesser beings.") + return + +/obj/item/lazarus_injector/emag_act(mob/user) + if(!malfunctioning) + malfunctioning = 1 + to_chat(user, "You override [src]'s safety protocols.") + +/obj/item/lazarus_injector/emp_act() + if(!malfunctioning) + malfunctioning = 1 + +/obj/item/lazarus_injector/examine(mob/user) + ..(user) + if(!loaded) + to_chat(user, "[src] is empty.") + if(malfunctioning) + to_chat(user, "The display on [src] seems to be flickering.") + +/*********************Mob Capsule*************************/ + +/obj/item/mobcapsule + name = "lazarus capsule" + desc = "It allows you to store and deploy lazarus-injected creatures easier." + icon = 'icons/obj/mobcap.dmi' + icon_state = "mobcap0" + w_class = WEIGHT_CLASS_TINY + throw_range = 20 + var/mob/living/simple_animal/captured = null + var/colorindex = 0 + +/obj/item/mobcapsule/Destroy() + if(captured) + captured.ghostize() + QDEL_NULL(captured) + return ..() + +/obj/item/mobcapsule/attack(var/atom/A, mob/user, prox_flag) + if(!istype(A, /mob/living/simple_animal) || isbot(A)) + return ..() + capture(A, user) + return 1 + +/obj/item/mobcapsule/proc/capture(var/mob/target, var/mob/U as mob) + var/mob/living/simple_animal/T = target + if(captured) + to_chat(U, "Capture failed!: The capsule already has a mob registered to it!") + else + if(istype(T) && "neutral" in T.faction) + T.forceMove(src) + T.name = "[U.name]'s [initial(T.name)]" + T.cancel_camera() + name = "Lazarus Capsule: [initial(T.name)]" + to_chat(U, "You placed a [T.name] inside the Lazarus Capsule!") + captured = T + else + to_chat(U, "You can't capture that mob!") + +/obj/item/mobcapsule/throw_impact(atom/A, mob/user) + ..() + if(captured) + dump_contents(user) + +/obj/item/mobcapsule/proc/dump_contents(mob/user) + if(captured) + captured.forceMove(get_turf(src)) + captured = null + +/obj/item/mobcapsule/attack_self(mob/user) + colorindex += 1 + if(colorindex >= 6) + colorindex = 0 + icon_state = "mobcap[colorindex]" + update_icon() \ No newline at end of file diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm new file mode 100644 index 00000000000..6a706ca523f --- /dev/null +++ b/code/modules/mining/equipment/mineral_scanner.dm @@ -0,0 +1,116 @@ +/**********************Mining Scanner**********************/ +/obj/item/mining_scanner + desc = "A scanner that checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear material scanners for optimal results." + name = "manual mining scanner" + icon = 'icons/obj/device.dmi' + icon_state = "mining1" + item_state = "analyzer" + w_class = WEIGHT_CLASS_SMALL + flags = CONDUCT + slot_flags = SLOT_BELT + var/cooldown = 0 + origin_tech = "engineering=1;magnets=1" + +/obj/item/mining_scanner/attack_self(mob/user) + if(!user.client) + return + if(!cooldown) + cooldown = 1 + spawn(40) + cooldown = 0 + var/list/mobs = list() + mobs |= user + mineral_scan_pulse(mobs, get_turf(user)) + + +//Debug item to identify all ore spread quickly +/obj/item/mining_scanner/admin + +/obj/item/mining_scanner/admin/attack_self(mob/user) + for(var/turf/simulated/mineral/M in world) + if(M.scan_state) + M.icon_state = M.scan_state + qdel(src) + +/obj/item/t_scanner/adv_mining_scanner + desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear meson scanners for optimal results. This one has an extended range." + name = "advanced automatic mining scanner" + icon_state = "mining0" + item_state = "analyzer" + w_class = WEIGHT_CLASS_SMALL + flags = CONDUCT + slot_flags = SLOT_BELT + var/cooldown = 35 + var/on_cooldown = 0 + var/range = 7 + var/meson = TRUE + origin_tech = "engineering=3;magnets=3" + +/obj/item/t_scanner/adv_mining_scanner/cyborg + flags = CONDUCT | NODROP + +/obj/item/t_scanner/adv_mining_scanner/material + meson = FALSE + desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear material scanners for optimal results. This one has an extended range." + +/obj/item/t_scanner/adv_mining_scanner/lesser + name = "automatic mining scanner" + desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear meson scanners for optimal results." + range = 4 + cooldown = 50 + +/obj/item/t_scanner/adv_mining_scanner/lesser/material + desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear material scanners for optimal results." + meson = FALSE + +/obj/item/t_scanner/adv_mining_scanner/scan() + if(!on_cooldown) + on_cooldown = 1 + spawn(cooldown) + on_cooldown = 0 + var/turf/t = get_turf(src) + var/list/mobs = recursive_mob_check(t, client_check = 1, sight_check = 0, include_radio = 0) + if(!mobs.len) + return + if(meson) + mineral_scan_pulse(mobs, t, range) + else + mineral_scan_pulse_material(mobs, t, range) + +//For use with mesons +/proc/mineral_scan_pulse(list/mobs, turf/T, range = world.view) + var/list/minerals = list() + for(var/turf/simulated/mineral/M in range(range, T)) + if(M.scan_state) + minerals += M + if(minerals.len) + for(var/mob/user in mobs) + if(user.client) + var/client/C = user.client + for(var/turf/simulated/mineral/M in minerals) + var/turf/F = get_turf(M) + var/image/I = image('icons/turf/mining.dmi', loc = F, icon_state = M.scan_state, layer = 18) + C.images += I + spawn(30) + if(C) + C.images -= I + +//For use with material scanners +/proc/mineral_scan_pulse_material(list/mobs, turf/T, range = world.view) + var/list/minerals = list() + for(var/turf/simulated/mineral/M in range(range, T)) + if(M.scan_state) + minerals += M + if(minerals.len) + for(var/turf/simulated/mineral/M in minerals) + var/obj/effect/temp_visual/mining_overlay/C = new/obj/effect/temp_visual/mining_overlay(M) + C.icon_state = M.scan_state + +/obj/effect/temp_visual/mining_overlay + layer = 18 + icon = 'icons/turf/mining.dmi' + anchored = 1 + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + duration = 30 + pixel_x = -4 + pixel_y = -4 \ No newline at end of file diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm new file mode 100644 index 00000000000..4d47f88e065 --- /dev/null +++ b/code/modules/mining/equipment/mining_tools.dm @@ -0,0 +1,142 @@ +/*****************Pickaxes & Drills & Shovels****************/ +/obj/item/pickaxe + name = "pickaxe" + icon = 'icons/obj/items.dmi' + icon_state = "pickaxe" + flags = CONDUCT + slot_flags = SLOT_BELT + force = 15 + throwforce = 10 + item_state = "pickaxe" + w_class = WEIGHT_CLASS_BULKY + materials = list(MAT_METAL=2000) //one sheet, but where can you make them? + origin_tech = "materials=2;engineering=3" + attack_verb = list("hit", "pierced", "sliced", "attacked") + var/list/digsound = list('sound/effects/picaxe1.ogg','sound/effects/picaxe2.ogg','sound/effects/picaxe3.ogg') + var/drill_verb = "picking" + sharp = 1 + var/excavation_amount = 100 + usesound = 'sound/effects/picaxe1.ogg' + toolspeed = 1 + +/obj/item/pickaxe/proc/playDigSound() + playsound(src, pick(digsound),20,1) + +/obj/item/pickaxe/emergency + name = "emergency disembarkation tool" + desc = "For extracting yourself from rough landings." + +/obj/item/pickaxe/safety + name = "safety pickaxe" + desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon." + force = 1 + throwforce = 1 + attack_verb = list("ineffectively hit") + +/obj/item/pickaxe/mini + name = "compact pickaxe" + desc = "A smaller, compact version of the standard pickaxe." + icon_state = "minipick" + force = 10 + throwforce = 7 + w_class = WEIGHT_CLASS_NORMAL + materials = list(MAT_METAL = 1000) + +/obj/item/pickaxe/silver + name = "silver-plated pickaxe" + icon_state = "spickaxe" + item_state = "spickaxe" + origin_tech = "materials=3;engineering=4" + toolspeed = 0.5 //mines faster than a normal pickaxe, bought from mining vendor + desc = "A silver-plated pickaxe that mines slightly faster than standard-issue." + force = 17 + +/obj/item/pickaxe/gold + name = "golden pickaxe" + icon_state = "gpickaxe" + item_state = "gpickaxe" + origin_tech = "materials=4;engineering=4" + toolspeed = 0.4 + desc = "A gold-plated pickaxe that mines faster than standard-issue." + force = 18 + +/obj/item/pickaxe/diamond + name = "diamond-tipped pickaxe" + icon_state = "dpickaxe" + item_state = "dpickaxe" + origin_tech = "materials=5;engineering=4" + toolspeed = 0.3 + desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt." + force = 19 + +/obj/item/pickaxe/drill + name = "mining drill" + icon_state = "handdrill" + item_state = "jackhammer" + digsound = list('sound/weapons/drill.ogg') + toolspeed = 0.6 //available from roundstart, faster than a pickaxe. + hitsound = 'sound/weapons/drill.ogg' + usesound = 'sound/weapons/drill.ogg' + origin_tech = "materials=2;powerstorage=2;engineering=3" + desc = "An electric mining drill for the especially scrawny." + +/obj/item/pickaxe/drill/cyborg + name = "cyborg mining drill" + desc = "An integrated electric mining drill." + flags = NODROP + +/obj/item/pickaxe/drill/diamonddrill + name = "diamond-tipped mining drill" + icon_state = "diamonddrill" + origin_tech = "materials=6;powerstorage=4;engineering=4" + desc = "Yours is the drill that will pierce the heavens!" + toolspeed = 0.2 + +/obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version! + name = "diamond-tipped cyborg mining drill" //To inherit the NODROP flag, and easier to change borg specific drill mechanics. + icon_state = "diamonddrill" + toolspeed = 0.2 + +/obj/item/pickaxe/drill/jackhammer + name = "sonic jackhammer" + icon_state = "jackhammer" + item_state = "jackhammer" + origin_tech = "materials=6;powerstorage=4;engineering=5;magnets=4" + digsound = list('sound/weapons/sonic_jackhammer.ogg') + hitsound = 'sound/weapons/sonic_jackhammer.ogg' + usesound = 'sound/weapons/sonic_jackhammer.ogg' + desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls." + toolspeed = 0.1 //the epitome of powertools. extremely fast mining, laughs at puny walls + +/obj/item/shovel + name = "shovel" + desc = "A large tool for digging and moving dirt." + icon = 'icons/obj/items.dmi' + icon_state = "shovel" + flags = CONDUCT + slot_flags = SLOT_BELT + force = 8 + throwforce = 4 + item_state = "shovel" + w_class = WEIGHT_CLASS_NORMAL + materials = list(MAT_METAL=50) + origin_tech = "materials=2;engineering=2" + attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked") + usesound = 'sound/effects/shovel_dig.ogg' + toolspeed = 1 + +/obj/item/shovel/spade + name = "spade" + desc = "A small tool for digging and moving dirt." + icon_state = "spade" + item_state = "spade" + force = 5 + throwforce = 7 + w_class = WEIGHT_CLASS_SMALL + +/obj/item/shovel/safety + name = "safety shovel" + desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon." + force = 1 + throwforce = 1 + attack_verb = list("ineffectively hit") \ No newline at end of file diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm new file mode 100644 index 00000000000..2d96c46d161 --- /dev/null +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -0,0 +1,139 @@ +/*********************Hivelord stabilizer****************/ +/obj/item/hivelordstabilizer + name = "hivelord stabilizer" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle19" + desc = "Inject a hivelord core with this stabilizer to preserve its healing powers indefinitely." + w_class = WEIGHT_CLASS_TINY + origin_tech = "biotech=3" + +/obj/item/hivelordstabilizer/afterattack(obj/item/organ/internal/M, mob/user) + . = ..() + var/obj/item/organ/internal/hivelord_core/C = M + if(!istype(C, /obj/item/organ/internal/hivelord_core)) + to_chat(user, "The stabilizer only works on certain types of monster organs, generally regenerative in nature.") + return ..() + + C.preserved() + to_chat(user, "You inject the [M] with the stabilizer. It will no longer go inert.") + qdel(src) + +/************************Hivelord core*******************/ +/obj/item/organ/internal/hivelord_core + name = "hivelord remains" + desc = "All that remains of a hivelord. It can be used to help keep your body going, but it will rapidly decay into uselessness." + icon_state = "roro core 2" + flags = NOBLUDGEON + slot = "hivecore" + force = 0 + actions_types = list(/datum/action/item_action/organ_action/use) + var/inert = 0 + var/preserved = 0 + +/obj/item/organ/internal/hivelord_core/New() + ..() + addtimer(CALLBACK(src, .proc/inert_check), 2400) + +/obj/item/organ/internal/hivelord_core/proc/inert_check() + if(!preserved) + go_inert() + +/obj/item/organ/internal/hivelord_core/proc/preserved(implanted = 0) + inert = FALSE + preserved = TRUE + update_icon() + desc = "All that remains of a hivelord. It is preserved, allowing you to use it to heal completely without danger of decay." + if(implanted) + feedback_add_details("hivelord_core", "[type]|implanted") + else + feedback_add_details("hivelord_core", "[type]|stabilizer") + +/obj/item/organ/internal/hivelord_core/proc/go_inert() + inert = TRUE + name = "decayed regenerative core" + desc = "All that remains of a hivelord. It has decayed, and is completely useless." + feedback_add_details("hivelord_core", "[src.type]|inert") + update_icon() + +/obj/item/organ/internal/hivelord_core/ui_action_click() + if(inert) + to_chat(owner, "[src] breaks down as it tries to activate.") + else + owner.revive() + qdel(src) + +/obj/item/organ/internal/hivelord_core/on_life() + ..() + if(owner.health < HEALTH_THRESHOLD_CRIT) + ui_action_click() + +///Handles applying the core, logging and status/mood events. +/obj/item/organ/internal/hivelord_core/proc/applyto(atom/target, mob/user) + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if(inert) + to_chat(user, "[src] has decayed and can no longer be used to heal.") + return + else + if(H.stat == DEAD) + to_chat(user, "[src] is useless on the dead.") + return + if(H != user) + H.visible_message("[user] forces [H] to apply [src]... Black tendrils entangle and reinforce [H.p_them()]!") + feedback_add_details("hivelord_core","[src.type]|used|other") + else + to_chat(user, "You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?") + feedback_add_details("hivelord_core","[src.type]|used|self") + H.revive() + user.drop_item() + qdel(src) + +/obj/item/organ/internal/hivelord_core/afterattack(atom/target, mob/user, proximity_flag) + . = ..() + if(proximity_flag) + applyto(target, user) + +/obj/item/organ/internal/hivelord_core/attack_self(mob/user) + applyto(user, user) + +/obj/item/organ/internal/hivelord_core/insert(mob/living/carbon/M, special = 0) + ..() + if(!preserved && !inert) + preserved(TRUE) + owner.visible_message("[src] stabilizes as it's inserted.") + +/obj/item/organ/internal/hivelord_core/remove(mob/living/carbon/M, special = 0) + if(!inert && !special) + owner.visible_message("[src] rapidly decays as it's removed.") + go_inert() + return ..() + +/obj/item/organ/internal/hivelord_core/prepare_eat() + return null + +/*************************Legion core********************/ +/obj/item/organ/internal/hivelord_core/legion + name = "legion's soul" + desc = "A strange rock that crackles with power. It can be used to heal completely, but it will rapidly decay into uselessness." + icon_state = "legion_soul" + +/obj/item/organ/internal/hivelord_core/legion/New() + ..() + update_icon() + +/obj/item/organ/internal/hivelord_core/legion/update_icon() + icon_state = inert ? "legion_soul_inert" : "legion_soul" + cut_overlays() + if(!inert && !preserved) + add_overlay("legion_soul_crackle") + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/organ/internal/hivelord_core/legion/go_inert() + ..() + desc = "[src] has become inert. It has decayed, and is completely useless." + +/obj/item/organ/internal/hivelord_core/legion/preserved(implanted = 0) + ..() + desc = "[src] has been stabilized. It is preserved, allowing you to use it to heal completely without danger of decay." \ No newline at end of file diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm new file mode 100644 index 00000000000..4c7c4e599ef --- /dev/null +++ b/code/modules/mining/equipment/resonator.dm @@ -0,0 +1,116 @@ +/**********************Resonator**********************/ +/obj/item/resonator + name = "resonator" + icon = 'icons/obj/items.dmi' + icon_state = "resonator" + item_state = "resonator" + origin_tech = "magnets=3;engineering=3" + desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It can also be activated without a target to create a field at the user's location, to act as a delayed time trap. It's more effective in a vaccuum." + w_class = WEIGHT_CLASS_NORMAL + force = 15 + throwforce = 10 + var/burst_time = 30 + var/fieldlimit = 4 + var/list/fields = list() + var/quick_burst_mod = 0.8 + +/obj/item/resonator/upgraded + name = "upgraded resonator" + desc = "An upgraded version of the resonator that can produce more fields at once." + icon_state = "resonator_u" + origin_tech = "materials=4;powerstorage=3;engineering=3;magnets=3" + fieldlimit = 6 + quick_burst_mod = 1 + +/obj/item/resonator/attack_self(mob/user) + if(burst_time == 50) + burst_time = 30 + to_chat(user, "You set the resonator's fields to detonate after 3 seconds.") + else + burst_time = 50 + to_chat(user, "You set the resonator's fields to detonate after 5 seconds.") + +/obj/item/resonator/proc/CreateResonance(target, mob/user) + var/turf/T = get_turf(target) + var/obj/effect/temp_visual/resonance/R = locate(/obj/effect/temp_visual/resonance) in T + if(R) + R.damage_multiplier = quick_burst_mod + R.burst() + return + if(LAZYLEN(fields) < fieldlimit) + new /obj/effect/temp_visual/resonance(T, user, src, burst_time) + user.changeNext_move(CLICK_CD_MELEE) + +/obj/item/resonator/pre_attackby(atom/target, mob/user, params) + if(check_allowed_items(target, 1)) + CreateResonance(target, user) + return TRUE + +//resonance field, crushes rock, damages mobs +/obj/effect/temp_visual/resonance + name = "resonance field" + desc = "A resonating field that significantly damages anything inside of it when the field eventually ruptures. More damaging in low pressure environments." + icon = 'icons/effects/effects.dmi' + icon_state = "shield1" + layer = ABOVE_ALL_MOB_LAYER + duration = 50 + var/resonance_damage = 20 + var/damage_multiplier = 1 + var/creator + var/obj/item/resonator/res + +/obj/effect/temp_visual/resonance/New(loc, set_creator, set_resonator, set_duration) + duration = set_duration + . = ..() + creator = set_creator + res = set_resonator + if(res) + res.fields += src + playsound(src,'sound/weapons/resonator_fire.ogg',50,1) + transform = matrix() * 0.75 + animate(src, transform = matrix() * 1.5, time = duration) + deltimer(timerid) + timerid = addtimer(CALLBACK(src, .proc/burst), duration, TIMER_STOPPABLE) + +/obj/effect/temp_visual/resonance/Destroy() + if(res) + res.fields -= src + res = null + creator = null + return ..() + +/obj/effect/temp_visual/resonance/proc/check_pressure(turf/proj_turf) + if(!proj_turf) + proj_turf = get_turf(src) + resonance_damage = initial(resonance_damage) + if(lavaland_equipment_pressure_check(proj_turf)) + name = "strong [initial(name)]" + resonance_damage *= 3 + else + name = initial(name) + resonance_damage *= damage_multiplier + +/obj/effect/temp_visual/resonance/proc/burst() + var/turf/T = get_turf(src) + new /obj/effect/temp_visual/resonance_crush(T) + if(ismineralturf(T)) + var/turf/simulated/mineral/M = T + M.gets_drilled(creator) + check_pressure(T) + playsound(T,'sound/weapons/resonator_blast.ogg',50,1) + for(var/mob/living/L in T) + if(creator) + add_attack_logs(creator, L, "Resonance field'ed") + to_chat(L, "[src] ruptured with you in it!") + L.apply_damage(resonance_damage, BRUTE) + qdel(src) + +/obj/effect/temp_visual/resonance_crush + icon_state = "shield1" + layer = ABOVE_ALL_MOB_LAYER + duration = 4 + +/obj/effect/temp_visual/resonance_crush/New() + ..() + transform = matrix()*1.5 + animate(src, transform = matrix() * 0.1, alpha = 50, time = 4) \ No newline at end of file diff --git a/code/modules/mining/equipment/vendor_items.dm b/code/modules/mining/equipment/vendor_items.dm new file mode 100644 index 00000000000..8868d4655b5 --- /dev/null +++ b/code/modules/mining/equipment/vendor_items.dm @@ -0,0 +1,14 @@ +/**********************Mining Equipment Vendor Items**************************/ +//misc stuff you can buy from the vendor that has special code but doesn't really need its own file + +/**********************Facehugger toy**********************/ +/obj/item/clothing/mask/facehugger/toy + item_state = "facehugger_inactive" + desc = "A toy often used to play pranks on other miners by putting it in their beds. It takes a bit to recharge after latching onto something." + throwforce = 0 + real = 0 + sterile = 1 + tint = 3 //Makes it feel more authentic when it latches on + +/obj/item/clothing/mask/facehugger/toy/Die() + return diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm new file mode 100644 index 00000000000..7ab7276bb9e --- /dev/null +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -0,0 +1,77 @@ +/**********************Jaunter**********************/ +/obj/item/wormhole_jaunter + name = "wormhole jaunter" + desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to bluespace for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least.\nThanks to modifications provided by the Free Golems, this jaunter can be worn on the belt to provide protection from chasms." + icon = 'icons/obj/items.dmi' + icon_state = "Jaunter" + item_state = "electronic" + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 5 + origin_tech = "bluespace=2" + slot_flags = SLOT_BELT + +/obj/item/wormhole_jaunter/attack_self(mob/user) + user.visible_message("[user.name] activates the [name]!") + activate(user, TRUE) + +/obj/item/wormhole_jaunter/proc/turf_check(mob/user) + var/turf/device_turf = get_turf(user) + if(!device_turf || !is_teleport_allowed(device_turf.z)) + to_chat(user, "You're having difficulties getting the [name] to work.") + return FALSE + return TRUE + +/obj/item/wormhole_jaunter/proc/get_destinations(mob/user) + var/list/destinations = list() + + for(var/obj/item/radio/beacon/B in world) + var/turf/T = get_turf(B) + if(is_station_level(T.z)) + destinations += B + + return destinations + +/obj/item/wormhole_jaunter/proc/activate(mob/user, adjacent) + if(!turf_check(user)) + return + + var/list/L = get_destinations(user) + if(!L.len) + to_chat(user, "The [name] found no beacons in the world to anchor a wormhole to.") + return + var/chosen_beacon = pick(L) + var/obj/effect/portal/jaunt_tunnel/J = new(get_turf(src), get_turf(chosen_beacon), src, 100) + if(adjacent) + try_move_adjacent(J) + else + J.teleport(user) + playsound(src,'sound/effects/sparks4.ogg',50,1) + qdel(src) + +/obj/item/wormhole_jaunter/proc/chasm_react(mob/user) + if(user.get_item_by_slot(slot_belt) == src) + to_chat(user, "Your [name] activates, saving you from the chasm!") + activate(user, FALSE) + else + to_chat(user, "[src] is not attached to your belt, preventing it from saving you from the chasm. RIP.") + +/obj/effect/portal/jaunt_tunnel + name = "jaunt tunnel" + icon = 'icons/effects/effects.dmi' + icon_state = "bhole3" + desc = "A stable hole in the universe made by a wormhole jaunter. Turbulent doesn't even begin to describe how rough passage through one of these is, but at least it will always get you somewhere near a beacon." + failchance = 0 + +/obj/effect/portal/jaunt_tunnel/teleport(atom/movable/M) + . = ..() + if(.) + // KERPLUNK + playsound(M,'sound/weapons/resonator_blast.ogg', 50, 1) + if(iscarbon(M)) + var/mob/living/carbon/L = M + L.Weaken(6) + if(ishuman(L)) + shake_camera(L, 20, 1) + addtimer(CALLBACK(L, /mob/living/carbon.proc/vomit), 20) \ No newline at end of file diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm deleted file mode 100644 index ef7a74f5d60..00000000000 --- a/code/modules/mining/equipment_locker.dm +++ /dev/null @@ -1,1151 +0,0 @@ -/**********************Ore Redemption Unit**************************/ -//Turns all the various mining machines into a single unit to speed up mining and establish a point system - -/obj/machinery/mineral/ore_redemption - name = "ore redemption machine" - desc = "A machine that accepts ore and instantly transforms it into workable material sheets. Points for ore are generated based on type and can be redeemed at a mining equipment vendor." - icon = 'icons/obj/machines/mining_machines.dmi' - icon_state = "ore_redemption" - density = TRUE - anchored = TRUE - input_dir = NORTH - output_dir = SOUTH - req_access = list(access_mineral_storeroom) - speed_process = TRUE - layer = BELOW_OBJ_LAYER - var/req_access_reclaim = access_mining_station - var/obj/item/card/id/inserted_id - var/points = 0 - var/ore_pickup_rate = 15 - var/sheet_per_ore = 1 - var/point_upgrade = 1 - var/list/ore_values = list("sand" = 1, "iron" = 1, "plasma" = 15, "silver" = 16, "gold" = 18, "titanium" = 30, "uranium" = 30, "diamond" = 50, "bluespace crystal" = 50, "bananium" = 60, "tranquillite" = 60) - var/message_sent = FALSE - var/list/ore_buffer = list() - var/datum/research/files - var/obj/item/disk/design_disk/inserted_disk - var/list/supply_consoles = list("Science", "Robotics", "Research Director's Desk", "Mechanic", "Engineering" = list("metal", "glass", "plasma"), "Chief Engineer's Desk" = list("metal", "glass", "plasma"), "Atmospherics" = list("metal", "glass", "plasma"), "Bar" = list("uranium", "plasma"), "Virology" = list("plasma", "uranium", "gold")) - -/obj/machinery/mineral/ore_redemption/New() - ..() - AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE), INFINITY, FALSE, /obj/item/stack) - files = new /datum/research/smelter(src) - component_parts = list() - component_parts += new /obj/item/circuitboard/ore_redemption(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/manipulator(null) - component_parts += new /obj/item/stock_parts/micro_laser(null) - component_parts += new /obj/item/assembly/igniter(null) - component_parts += new /obj/item/stock_parts/console_screen(null) - RefreshParts() - -/obj/machinery/mineral/ore_redemption/upgraded/New() - ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/ore_redemption(null) - component_parts += new /obj/item/stock_parts/matter_bin/super(null) - component_parts += new /obj/item/stock_parts/manipulator/pico(null) - component_parts += new /obj/item/stock_parts/micro_laser/ultra(null) - component_parts += new /obj/item/assembly/igniter(null) - component_parts += new /obj/item/stock_parts/console_screen(null) - RefreshParts() - -/obj/machinery/mineral/ore_redemption/golem - req_access = list(access_free_golems) - req_access_reclaim = access_free_golems - -/obj/machinery/mineral/ore_redemption/golem/New() - ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/ore_redemption/golem(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/manipulator(null) - component_parts += new /obj/item/stock_parts/micro_laser(null) - component_parts += new /obj/item/assembly/igniter(null) - component_parts += new /obj/item/stock_parts/console_screen(null) - RefreshParts() - -/obj/machinery/mineral/ore_redemption/Destroy() - QDEL_NULL(files) - GET_COMPONENT(materials, /datum/component/material_container) - materials.retrieve_all() - return ..() - -/obj/machinery/mineral/ore_redemption/RefreshParts() - var/ore_pickup_rate_temp = 15 - var/point_upgrade_temp = 1 - var/sheet_per_ore_temp = 1 - for(var/obj/item/stock_parts/matter_bin/B in component_parts) - sheet_per_ore_temp = 0.65 + (0.35 * B.rating) - for(var/obj/item/stock_parts/manipulator/M in component_parts) - ore_pickup_rate_temp = 15 * M.rating - for(var/obj/item/stock_parts/micro_laser/L in component_parts) - point_upgrade_temp = 0.65 + (0.35 * L.rating) - ore_pickup_rate = ore_pickup_rate_temp - point_upgrade = point_upgrade_temp - sheet_per_ore = sheet_per_ore_temp - -/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/stack/ore/O) - - ore_buffer -= O - - if(O && O.refined_type) - points += O.points * point_upgrade * O.amount - - GET_COMPONENT(materials, /datum/component/material_container) - var/material_amount = materials.get_item_material_amount(O) - - if(!material_amount) - qdel(O) //no materials, incinerate it - - else if(!materials.has_space(material_amount * sheet_per_ore * O.amount)) //if there is no space, eject it - unload_mineral(O) - - else - materials.insert_item(O, sheet_per_ore) //insert it - qdel(O) - -/obj/machinery/mineral/ore_redemption/proc/can_smelt_alloy(datum/design/D) - if(D.make_reagents.len) - return FALSE - - var/build_amount = 0 - - GET_COMPONENT(materials, /datum/component/material_container) - for(var/mat_id in D.materials) - var/M = D.materials[mat_id] - var/datum/material/redemption_mat = materials.materials[mat_id] - - if(!M || !redemption_mat) - return FALSE - - var/smeltable_sheets = round(redemption_mat.amount / M) - - if(!smeltable_sheets) - return FALSE - - if(!build_amount) - build_amount = smeltable_sheets - - build_amount = min(build_amount, smeltable_sheets) - - return build_amount - -/obj/machinery/mineral/ore_redemption/proc/process_ores(list/ores_to_process) - var/current_amount = 0 - for(var/ore in ores_to_process) - if(current_amount >= ore_pickup_rate) - break - smelt_ore(ore) - -/obj/machinery/mineral/ore_redemption/proc/send_console_message() - if(!is_station_level(z)) - return - message_sent = TRUE - var/area/A = get_area(src) - var/msg = "Now available in [A]:
" - - var/has_minerals = FALSE - var/mineral_name = null - GET_COMPONENT(materials, /datum/component/material_container) - for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - var/mineral_amount = M.amount / MINERAL_MATERIAL_AMOUNT - mineral_name = capitalize(M.name) - if(mineral_amount) - has_minerals = TRUE - msg += "[mineral_name]: [mineral_amount] sheets
" - - if(!has_minerals) - return - - for(var/obj/machinery/requests_console/D in allConsoles) - if(D.department in src.supply_consoles) - if(supply_consoles[D.department] == null || (mineral_name in supply_consoles[D.department])) - D.createMessage("Ore Redemption Machine", "New Minerals Available!", msg, 1) - -/obj/machinery/mineral/ore_redemption/process() - if(panel_open || !powered()) - return - var/atom/input = get_step(src, input_dir) - var/obj/structure/ore_box/OB = locate() in input - if(OB) - input = OB - - for(var/obj/item/stack/ore/O in input) - if(QDELETED(O)) - continue - ore_buffer |= O - O.forceMove(src) - CHECK_TICK - - if(LAZYLEN(ore_buffer)) - message_sent = FALSE - process_ores(ore_buffer) - else if(!message_sent) - send_console_message() - -/obj/machinery/mineral/ore_redemption/attackby(obj/item/W, mob/user, params) - if(exchange_parts(user, W)) - return - if(default_unfasten_wrench(user, W)) - return - if(default_deconstruction_screwdriver(user, "ore_redemption-open", "ore_redemption", W)) - updateUsrDialog() - return - if(default_deconstruction_crowbar(W)) - return - - if(!powered()) - return - if(istype(W, /obj/item/card/id)) - var/obj/item/card/id/I = user.get_active_hand() - if(istype(I) && !istype(inserted_id)) - if(!user.drop_item()) - return - I.forceMove(src) - inserted_id = I - interact(user) - return - - if(ismultitool(W) && panel_open) - input_dir = turn(input_dir, -90) - output_dir = turn(output_dir, -90) - to_chat(user, "You change [src]'s I/O settings, setting the input to [dir2text(input_dir)] and the output to [dir2text(output_dir)].") - return - - if(istype(W, /obj/item/disk/design_disk)) - if(user.drop_item()) - W.forceMove(src) - inserted_disk = W - interact(user) - return TRUE - - return ..() - -/obj/machinery/mineral/ore_redemption/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/mineral/ore_redemption/interact(mob/user) - var/dat = "This machine only accepts ore. Gibtonite and Slag are not accepted.

" - dat += "Current unclaimed points: [points]
" - - if(inserted_id) - dat += "You have [inserted_id.mining_points] mining points collected. Eject ID.
" - dat += "Claim points.

" - else - dat += "No ID inserted. Insert ID.

" - - GET_COMPONENT(materials, /datum/component/material_container) - for(var/mat_id in materials.materials) - var/datum/material/M = materials.materials[mat_id] - if(M.amount) - var/sheet_amount = M.amount / MINERAL_MATERIAL_AMOUNT - dat += "[capitalize(M.name)]: [sheet_amount] " - if(sheet_amount >= 1) - dat += "Release
" - else - dat += "Release
" - - dat += "
Alloys:
" - - for(var/v in files.known_designs) - var/datum/design/D = files.known_designs[v] - if(can_smelt_alloy(D)) - dat += "[D.name]: Smelt
" - else - dat += "[D.name]: Smelt
" - - dat += "

Mineral Value List:
[get_ore_values()]
" - - if(inserted_disk) - dat += "Eject disk
" - dat += "
Uploadable designs:
" - - if(inserted_disk.blueprint) - var/datum/design/D = inserted_disk.blueprint - if(D.build_type & SMELTER) - dat += "Name: [D.name] Upload to smelter" - - dat += "

" - else - dat += "Insert design disk

" - - var/datum/browser/popup = new(user, "ore_redemption_machine", "Ore Redemption Machine", 400, 500) - popup.set_content(dat) - popup.open() - return - -/obj/machinery/mineral/ore_redemption/proc/get_ore_values() - var/dat = "" - for(var/ore in ore_values) - var/value = ore_values[ore] - dat += "" - dat += "
[capitalize(ore)][value * point_upgrade]
" - return dat - -/obj/machinery/mineral/ore_redemption/Topic(href, href_list) - if(..()) - return - GET_COMPONENT(materials, /datum/component/material_container) - if(href_list["eject_id"]) - usr.put_in_hands(inserted_id) - inserted_id = null - if(href_list["claim"]) - if(inserted_id) - if(req_access_reclaim in inserted_id.access) - inserted_id.mining_points += points - points = 0 - else - to_chat(usr, "Required access not found.") - else if(href_list["insert_id"]) - var/obj/item/card/id/I = usr.get_active_hand() - if(istype(I)) - if(!usr.drop_item()) - return - I.forceMove(src) - inserted_id = I - else - to_chat(usr, "Not a valid ID!") - if(href_list["eject_disk"]) - if(inserted_disk) - inserted_disk.forceMove(loc) - inserted_disk = null - if(href_list["insert_disk"]) - var/obj/item/disk/design_disk/D = usr.get_active_hand() - if(istype(D)) - if(!usr.drop_item()) - return - D.forceMove(src) - inserted_disk = D - if(href_list["upload"]) - if(inserted_disk && inserted_disk.blueprint) - files.AddDesign2Known(inserted_disk.blueprint) - - if(href_list["release"]) - if(check_access(inserted_id) || allowed(usr)) //Check the ID inside, otherwise check the user - var/mat_id = href_list["release"] - if(!materials.materials[mat_id]) - return - - var/datum/material/mat = materials.materials[mat_id] - var/stored_amount = mat.amount / MINERAL_MATERIAL_AMOUNT - - if(!stored_amount) - return - - var/desired = input("How many sheets?", "How many sheets to eject?", 1) as null|num - var/sheets_to_remove = round(min(desired,50,stored_amount)) - - var/out = get_step(src, output_dir) - materials.retrieve_sheets(sheets_to_remove, mat_id, out) - - else - to_chat(usr, "Required access not found.") - - if(href_list["alloy"]) - var/alloy_id = href_list["alloy"] - var/datum/design/alloy = files.FindDesignByID(alloy_id) - if((check_access(inserted_id) || allowed(usr)) && alloy) - var/desired = input("How many sheets?", "How many sheets would you like to smelt?", 1) as null|num - if(desired < 1) // Stops an exploit that lets you build negative alloys and get free materials - return - var/smelt_amount = can_smelt_alloy(alloy) - var/amount = round(min(desired,50,smelt_amount)) - materials.use_amount(alloy.materials, amount) - - var/output = new alloy.build_path(src) - if(istype(output, /obj/item/stack/sheet)) - var/obj/item/stack/sheet/mineral/produced_alloy = output - produced_alloy.amount = amount - unload_mineral(produced_alloy) - else - unload_mineral(output) - - else - to_chat(usr, "Required access not found.") - updateUsrDialog() - -/obj/machinery/mineral/ore_redemption/ex_act(severity, target) - do_sparks(5, 1, src) - if(severity == 1) - if(prob(50)) - qdel(src) - else if(severity == 2) - if(prob(25)) - qdel(src) - -/obj/machinery/mineral/ore_redemption/power_change() - ..() - update_icon() - if(inserted_id && !powered()) - visible_message("The ID slot indicator light flickers on [src] as it spits out a card before powering down.") - inserted_id.forceMove(loc) - -/obj/machinery/mineral/ore_redemption/update_icon() - if(powered()) - icon_state = initial(icon_state) - else - icon_state = "[initial(icon_state)]-off" - -/**********************Mining Equipment Locker**************************/ - -/obj/machinery/mineral/equipment_vendor - name = "mining equipment vendor" - desc = "An equipment vendor for miners, points collected at an ore redemption machine can be spent here." - icon = 'icons/obj/machines/mining_machines.dmi' - icon_state = "mining" - density = 1 - anchored = 1.0 - var/obj/item/card/id/inserted_id - var/list/prize_list = list( //if you add something to this, please, for the love of god, sort it by price/type. use tabs and not spaces. - new /datum/data/mining_equipment("1 Marker Beacon", /obj/item/stack/marker_beacon, 10), - new /datum/data/mining_equipment("10 Marker Beacons", /obj/item/stack/marker_beacon/ten, 100), - new /datum/data/mining_equipment("30 Marker Beacons", /obj/item/stack/marker_beacon/thirty, 300), - new /datum/data/mining_equipment("Whiskey", /obj/item/reagent_containers/food/drinks/bottle/whiskey, 100), - new /datum/data/mining_equipment("Absinthe", /obj/item/reagent_containers/food/drinks/bottle/absinthe/premium, 100), - new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150), - new /datum/data/mining_equipment("Soap", /obj/item/soap/nanotrasen, 200), - new /datum/data/mining_equipment("Laser Pointer", /obj/item/laser_pointer, 300), - new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), - new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/hivelordstabilizer, 400), - new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000), - new /datum/data/mining_equipment("Point Transfer Card", /obj/item/card/mining_point_card, 500), - new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 400), - new /datum/data/mining_equipment("Shelter Capsule", /obj/item/survivalcapsule, 400), - new /datum/data/mining_equipment("GAR Meson Scanners", /obj/item/clothing/glasses/meson/gar, 500), - new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500), - new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/autoinjector/survival, 500), - new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 600), - new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600), - new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750), - new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/kinetic_crusher, 750), - new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), - new /datum/data/mining_equipment("Advanced Scanner", /obj/item/t_scanner/adv_mining_scanner, 800), - new /datum/data/mining_equipment("Resonator", /obj/item/resonator, 800), - new /datum/data/mining_equipment("Fulton Pack", /obj/item/extraction_pack, 1000), - new /datum/data/mining_equipment("Lazarus Injector", /obj/item/lazarus_injector, 1000), - new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/pickaxe/silver, 1000), - new /datum/data/mining_equipment("Mining Conscription Kit", /obj/item/storage/backpack/duffel/mining_conscript, 1500), - new /datum/data/mining_equipment("Jetpack", /obj/item/tank/jetpack/carbondioxide/mining, 2000), - new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/storage/box/mininghardsuit, 2000), - new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/pickaxe/diamond, 2000), - new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500), - new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), - new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000), - new /datum/data/mining_equipment("Nanotrasen Minebot", /obj/item/mining_drone_cube, 800), - new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400), - new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400), - new /datum/data/mining_equipment("Minebot Cooldown Upgrade", /obj/item/borg/upgrade/modkit/cooldown/minebot, 600), - new /datum/data/mining_equipment("Minebot AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000), - new /datum/data/mining_equipment("KA Minebot Passthrough", /obj/item/borg/upgrade/modkit/minebot_passthrough, 100), - new /datum/data/mining_equipment("Lazarus Capsule", /obj/item/mobcapsule, 800), - new /datum/data/mining_equipment("Lazarus Capsule belt", /obj/item/storage/belt/lazarus, 200), - new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 100), - new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 150), - new /datum/data/mining_equipment("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250), - new /datum/data/mining_equipment("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300), - new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000), - new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), - new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000), - new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000) - ) - -/obj/machinery/mineral/equipment_vendor/golem - name = "golem ship equipment vendor" - -/obj/machinery/mineral/equipment_vendor/golem/New() - ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/mining_equipment_vendor/golem(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/console_screen(null) - RefreshParts() - -/obj/machinery/mineral/equipment_vendor/golem/Initialize() - . = ..() - desc += "\nIt seems a few selections have been added." - prize_list += list( - new /datum/data/mining_equipment("Extra Id", /obj/item/card/id/golem, 250), - new /datum/data/mining_equipment("Science Backpack", /obj/item/storage/backpack/science, 250), - new /datum/data/mining_equipment("Full Toolbelt", /obj/item/storage/belt/utility/full/multitool, 250), - new /datum/data/mining_equipment("Monkey Cube", /obj/item/reagent_containers/food/snacks/monkeycube, 250), - new /datum/data/mining_equipment("Royal Cape of the Liberator", /obj/item/bedsheet/rd/royal_cape, 500), - new /datum/data/mining_equipment("Grey Slime Extract", /obj/item/slime_extract/grey, 1000), - new /datum/data/mining_equipment("KA Trigger Modification Kit", /obj/item/borg/upgrade/modkit/trigger_guard, 1000), - new /datum/data/mining_equipment("Shuttle Console Board", /obj/item/circuitboard/shuttle/golem_ship, 2000), - new /datum/data/mining_equipment("The Liberator's Legacy", /obj/item/storage/box/rndboards, 2000) - - ) - -/datum/data/mining_equipment - var/equipment_name = "generic" - var/equipment_path = null - var/cost = 0 - -/datum/data/mining_equipment/New(name, path, equipment_cost) - equipment_name = name - equipment_path = path - cost = equipment_cost - -/obj/machinery/mineral/equipment_vendor/New() - ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/mining_equipment_vendor(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/console_screen(null) - RefreshParts() - -/obj/machinery/mineral/equipment_vendor/power_change() - ..() - update_icon() - if(inserted_id && !powered()) - visible_message("The ID slot indicator light flickers on \the [src] as it spits out a card before powering down.") - inserted_id.forceMove(loc) - -/obj/machinery/mineral/equipment_vendor/update_icon() - if(powered()) - icon_state = initial(icon_state) - else - icon_state = "[initial(icon_state)]-off" - -/obj/machinery/mineral/equipment_vendor/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/mineral/equipment_vendor/attack_ghost(mob/user) - interact(user) - -/obj/machinery/mineral/equipment_vendor/interact(mob/user) - user.set_machine(src) - - var/dat - dat +="
" - if(istype(inserted_id)) - dat += "You have [inserted_id.mining_points] mining points collected. Eject ID.
" - else - dat += "No ID inserted. Insert ID.
" - dat += "
" - dat += "
Equipment point cost list:
" - for(var/datum/data/mining_equipment/prize in prize_list) - dat += "" - dat += "
[prize.equipment_name][prize.cost]Purchase
" - var/datum/browser/popup = new(user, "miningvendor", "Mining Equipment Vendor", 400, 350) - popup.set_content(dat) - popup.open() - -/obj/machinery/mineral/equipment_vendor/Topic(href, href_list) - if(..()) - return 1 - - if(href_list["choice"]) - if(istype(inserted_id)) - if(href_list["choice"] == "eject") - inserted_id.loc = loc - inserted_id.verb_pickup() - inserted_id = null - else if(href_list["choice"] == "insert") - var/obj/item/card/id/I = usr.get_active_hand() - if(istype(I)) - if(!usr.drop_item()) - return - I.loc = src - inserted_id = I - else - to_chat(usr, "No valid ID.") - - if(href_list["purchase"]) - if(istype(inserted_id)) - var/datum/data/mining_equipment/prize = locate(href_list["purchase"]) - if(!prize || !(prize in prize_list) || prize.cost > inserted_id.mining_points) - return - - inserted_id.mining_points -= prize.cost - new prize.equipment_path(src.loc) - updateUsrDialog() - -/obj/machinery/mineral/equipment_vendor/attackby(obj/item/I, mob/user, params) - if(default_deconstruction_screwdriver(user, "mining-open", "mining", I)) - updateUsrDialog() - return - if(panel_open) - if(istype(I, /obj/item/crowbar)) - if(inserted_id) - inserted_id.forceMove(loc) //Prevents deconstructing the ORM from deleting whatever ID was inside it. - default_deconstruction_crowbar(I) - return 1 - if(istype(I, /obj/item/mining_voucher)) - if(!powered()) - return - else - RedeemVoucher(I, user) - return - if(istype(I,/obj/item/card/id)) - if(!powered()) - return - else - var/obj/item/card/id/C = usr.get_active_hand() - if(istype(C) && !istype(inserted_id)) - if(!usr.drop_item()) - return - C.forceMove(src) - inserted_id = C - interact(user) - return - ..() - -/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer) - var/items = list("Survival Capsule and Explorer's Webbing", "Resonator Kit", "Minebot Kit", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit") - - var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in items - if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer) - return - - var/drop_location = drop_location() - switch(selection) - if("Survival Capsule and Explorer's Webbing") - new /obj/item/storage/belt/mining(drop_location) - if("Resonator Kit") - new /obj/item/extinguisher/mini(drop_location) - new /obj/item/resonator(drop_location) - if("Minebot Kit") - new /obj/item/mining_drone_cube(drop_location) - new /obj/item/weldingtool/hugetank(drop_location) - new /obj/item/clothing/head/welding(drop_location) - if("Extraction and Rescue Kit") - new /obj/item/extraction_pack(drop_location) - new /obj/item/fulton_core(drop_location) - new /obj/item/stack/marker_beacon/thirty(drop_location) - if("Crusher Kit") - new /obj/item/extinguisher/mini(drop_location) - new /obj/item/twohanded/kinetic_crusher(drop_location) - if("Mining Conscription Kit") - new /obj/item/storage/backpack/duffel/mining_conscript(drop_location) - - qdel(voucher) - -/obj/machinery/mineral/equipment_vendor/ex_act(severity, target) - do_sparks(5, 1, src) - if(prob(50 / severity) && severity < 3) - qdel(src) - -/**********************Mining Equipment Locker Items**************************/ - -/**********************Mining Equipment Voucher**********************/ - -/obj/item/mining_voucher - name = "mining voucher" - desc = "A token to redeem a piece of equipment. Use it on a mining equipment vendor." - icon = 'icons/obj/items.dmi' - icon_state = "mining_voucher" - w_class = WEIGHT_CLASS_TINY - -/**********************Mining Point Card**********************/ - -/obj/item/card/mining_point_card - name = "mining point card" - desc = "A small card preloaded with mining points. Swipe your ID card over it to transfer the points, then discard." - icon_state = "data" - var/points = 500 - -/obj/item/card/mining_point_card/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/card/id)) - if(points) - var/obj/item/card/id/C = I - C.mining_points += points - to_chat(user, "You transfer [points] points to [C].") - points = 0 - else - to_chat(user, "There's no points left on [src].") - ..() - -/obj/item/card/mining_point_card/examine(mob/user) - ..(user) - to_chat(user, "There's [points] points on the card.") - -/**********************Conscription Kit**********************/ - -/obj/item/card/id/mining_access_card - name = "mining access card" - desc = "A small card, that when used on any ID, will add mining access." - icon_state = "data_1" - -/obj/item/card/id/mining_access_card/afterattack(atom/movable/AM, mob/user, proximity) - . = ..() - if(istype(AM, /obj/item/card/id) && proximity) - var/obj/item/card/id/I = AM - I.access |= list(access_mining, access_mining_station, access_mineral_storeroom, access_cargo) - to_chat(user, "You upgrade [I] with mining access.") - qdel(src) - -/obj/item/storage/backpack/duffel/mining_conscript - name = "mining conscription kit" - desc = "A kit containing everything a crewmember needs to support a shaft miner in the field." - -/obj/item/storage/backpack/duffel/mining_conscript/New() - ..() - new /obj/item/clothing/glasses/meson(src) - new /obj/item/t_scanner/adv_mining_scanner/lesser(src) - new /obj/item/storage/bag/ore(src) - new /obj/item/clothing/suit/hooded/explorer(src) - new /obj/item/encryptionkey/headset_cargo(src) - new /obj/item/clothing/mask/gas/explorer(src) - new /obj/item/card/id/mining_access_card(src) - new /obj/item/gun/energy/kinetic_accelerator(src) - new /obj/item/kitchen/knife/combat/survival(src) - new /obj/item/flashlight/seclite(src) - -/**********************Jaunter**********************/ - -/obj/item/wormhole_jaunter - name = "wormhole jaunter" - desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to bluespace for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least.\nThanks to modifications provided by the Free Golems, this jaunter can be worn on the belt to provide protection from chasms." - icon = 'icons/obj/items.dmi' - icon_state = "Jaunter" - item_state = "electronic" - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 5 - origin_tech = "bluespace=2" - slot_flags = SLOT_BELT - -/obj/item/wormhole_jaunter/attack_self(mob/user) - user.visible_message("[user.name] activates the [name]!") - activate(user, TRUE) - -/obj/item/wormhole_jaunter/proc/turf_check(mob/user) - var/turf/device_turf = get_turf(user) - if(!device_turf || !is_teleport_allowed(device_turf.z)) - to_chat(user, "You're having difficulties getting the [name] to work.") - return FALSE - return TRUE - -/obj/item/wormhole_jaunter/proc/get_destinations(mob/user) - var/list/destinations = list() - - for(var/obj/item/radio/beacon/B in world) - var/turf/T = get_turf(B) - if(is_station_level(T.z)) - destinations += B - - return destinations - -/obj/item/wormhole_jaunter/proc/activate(mob/user, adjacent) - if(!turf_check(user)) - return - - var/list/L = get_destinations(user) - if(!L.len) - to_chat(user, "The [name] found no beacons in the world to anchor a wormhole to.") - return - var/chosen_beacon = pick(L) - var/obj/effect/portal/jaunt_tunnel/J = new(get_turf(src), get_turf(chosen_beacon), src, 100) - if(adjacent) - try_move_adjacent(J) - else - J.teleport(user) - playsound(src,'sound/effects/sparks4.ogg',50,1) - qdel(src) - -/obj/item/wormhole_jaunter/proc/chasm_react(mob/user) - if(user.get_item_by_slot(slot_belt) == src) - to_chat(user, "Your [name] activates, saving you from the chasm!
") - activate(user, FALSE) - else - to_chat(user, "[src] is not attached to your belt, preventing it from saving you from the chasm. RIP.") - -/obj/effect/portal/jaunt_tunnel - name = "jaunt tunnel" - icon = 'icons/effects/effects.dmi' - icon_state = "bhole3" - desc = "A stable hole in the universe made by a wormhole jaunter. Turbulent doesn't even begin to describe how rough passage through one of these is, but at least it will always get you somewhere near a beacon." - failchance = 0 - -/obj/effect/portal/jaunt_tunnel/teleport(atom/movable/M) - . = ..() - if(.) - // KERPLUNK - playsound(M,'sound/weapons/resonator_blast.ogg', 50, 1) - if(iscarbon(M)) - var/mob/living/carbon/L = M - L.Weaken(6) - if(ishuman(L)) - shake_camera(L, 20, 1) - addtimer(CALLBACK(L, /mob/living/carbon.proc/vomit), 20) - -/**********************Resonator**********************/ - -/obj/item/resonator - name = "resonator" - icon = 'icons/obj/items.dmi' - icon_state = "resonator" - item_state = "resonator" - origin_tech = "magnets=3;engineering=3" - desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It can also be activated without a target to create a field at the user's location, to act as a delayed time trap. It's more effective in a vaccuum." - w_class = WEIGHT_CLASS_NORMAL - force = 15 - throwforce = 10 - var/burst_time = 30 - var/fieldlimit = 4 - var/list/fields = list() - var/quick_burst_mod = 0.8 - -/obj/item/resonator/upgraded - name = "upgraded resonator" - desc = "An upgraded version of the resonator that can produce more fields at once." - icon_state = "resonator_u" - origin_tech = "materials=4;powerstorage=3;engineering=3;magnets=3" - fieldlimit = 6 - quick_burst_mod = 1 - -/obj/item/resonator/attack_self(mob/user) - if(burst_time == 50) - burst_time = 30 - to_chat(user, "You set the resonator's fields to detonate after 3 seconds.") - else - burst_time = 50 - to_chat(user, "You set the resonator's fields to detonate after 5 seconds.") - -/obj/item/resonator/proc/CreateResonance(target, mob/user) - var/turf/T = get_turf(target) - var/obj/effect/temp_visual/resonance/R = locate(/obj/effect/temp_visual/resonance) in T - if(R) - R.damage_multiplier = quick_burst_mod - R.burst() - return - if(LAZYLEN(fields) < fieldlimit) - new /obj/effect/temp_visual/resonance(T, user, src, burst_time) - user.changeNext_move(CLICK_CD_MELEE) - -/obj/item/resonator/pre_attackby(atom/target, mob/user, params) - if(check_allowed_items(target, 1)) - CreateResonance(target, user) - return TRUE - -/obj/effect/temp_visual/resonance - name = "resonance field" - desc = "A resonating field that significantly damages anything inside of it when the field eventually ruptures. More damaging in low pressure environments." - icon = 'icons/effects/effects.dmi' - icon_state = "shield1" - duration = 50 - var/resonance_damage = 20 - var/damage_multiplier = 1 - var/creator - var/obj/item/resonator/res - -/obj/effect/temp_visual/resonance/New(loc, set_creator, set_resonator, set_duration) - duration = set_duration - . = ..() - creator = set_creator - res = set_resonator - if(res) - res.fields += src - playsound(src,'sound/weapons/resonator_fire.ogg',50,1) - transform = matrix() * 0.75 - animate(src, transform = matrix() * 1.5, time = duration) - deltimer(timerid) - timerid = addtimer(CALLBACK(src, .proc/burst), duration, TIMER_STOPPABLE) - -/obj/effect/temp_visual/resonance/Destroy() - if(res) - res.fields -= src - res = null - creator = null - return ..() - -/obj/effect/temp_visual/resonance/proc/check_pressure(turf/proj_turf) - if(!proj_turf) - proj_turf = get_turf(src) - resonance_damage = initial(resonance_damage) - if(lavaland_equipment_pressure_check(proj_turf)) - name = "strong [initial(name)]" - resonance_damage *= 3 - else - name = initial(name) - resonance_damage *= damage_multiplier - -/obj/effect/temp_visual/resonance/proc/burst() - var/turf/T = get_turf(src) - new /obj/effect/temp_visual/resonance_crush(T) - if(ismineralturf(T)) - var/turf/simulated/mineral/M = T - M.gets_drilled(creator) - check_pressure(T) - playsound(T,'sound/weapons/resonator_blast.ogg',50,1) - for(var/mob/living/L in T) - if(creator) - add_attack_logs(creator, L, "Resonance field'ed") - to_chat(L, "[src] ruptured with you in it!") - L.apply_damage(resonance_damage, BRUTE) - qdel(src) - -/obj/effect/temp_visual/resonance_crush - icon_state = "shield1" - layer = ABOVE_ALL_MOB_LAYER - duration = 4 - -/obj/effect/temp_visual/resonance_crush/New() - ..() - transform = matrix()*1.5 - animate(src, transform = matrix() * 0.1, alpha = 50, time = 4) - -/**********************Facehugger toy**********************/ - -/obj/item/clothing/mask/facehugger/toy - item_state = "facehugger_inactive" - desc = "A toy often used to play pranks on other miners by putting it in their beds. It takes a bit to recharge after latching onto something." - throwforce = 0 - real = 0 - sterile = 1 - tint = 3 //Makes it feel more authentic when it latches on - -/obj/item/clothing/mask/facehugger/toy/Die() - return - - -/**********************Mining drone cube**********************/ - -/obj/item/mining_drone_cube - name = "mining drone cube" - desc = "Compressed mining drone, ready for deployment. Just press the button to activate!" - w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/aibots.dmi' - icon_state = "minedronecube" - item_state = "electronic" - -/obj/item/mining_drone_cube/attack_self(mob/user) - user.visible_message("\The [src] suddenly expands into a fully functional mining drone!", \ - "You press center button on \the [src]. The device suddenly expands into a fully functional mining drone!") - new /mob/living/simple_animal/hostile/mining_drone(get_turf(src)) - qdel(src) - -/**********************Lazarus Injector**********************/ - -/obj/item/lazarus_injector - name = "lazarus injector" - desc = "An injector with a cocktail of nanomachines and chemicals, this device can seemingly raise animals from the dead, making them become friendly to the user. Unfortunately, the process is useless on higher forms of life and incredibly costly, so these were hidden in storage until an executive thought they'd be great motivation for some of their employees." - icon = 'icons/obj/hypo.dmi' - icon_state = "lazarus_hypo" - item_state = "hypo" - origin_tech = "biotech=4;magnets=6" - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 5 - var/loaded = 1 - var/malfunctioning = 0 - var/revive_type = SENTIENCE_ORGANIC //So you can't revive boss monsters or robots with it - -/obj/item/lazarus_injector/afterattack(atom/target, mob/user, proximity_flag) - if(!loaded) - return - if(istype(target, /mob/living) && proximity_flag) - if(istype(target, /mob/living/simple_animal)) - var/mob/living/simple_animal/M = target - if(M.sentience_type != revive_type) - to_chat(user, "[src] does not work on this sort of creature.") - return - if(M.stat == DEAD) - M.faction = list("neutral") - M.revive() - M.can_collar = 1 - if(istype(target, /mob/living/simple_animal/hostile)) - var/mob/living/simple_animal/hostile/H = M - if(malfunctioning) - H.faction |= list("lazarus", "\ref[user]") - H.robust_searching = 1 - H.friends += user - H.attack_same = 1 - log_game("[user] has revived hostile mob [target] with a malfunctioning lazarus injector") - else - H.attack_same = 0 - loaded = 0 - user.visible_message("[user] injects [M] with [src], reviving it.") - playsound(src,'sound/effects/refill.ogg',50,1) - icon_state = "lazarus_empty" - return - else - to_chat(user, "[src] is only effective on the dead.") - return - else - to_chat(user, "[src] is only effective on lesser beings.") - return - -/obj/item/lazarus_injector/emag_act(mob/user) - if(!malfunctioning) - malfunctioning = 1 - to_chat(user, "You override [src]'s safety protocols.") - -/obj/item/lazarus_injector/emp_act() - if(!malfunctioning) - malfunctioning = 1 - -/obj/item/lazarus_injector/examine(mob/user) - ..(user) - if(!loaded) - to_chat(user, "[src] is empty.") - if(malfunctioning) - to_chat(user, "The display on [src] seems to be flickering.") - -/**********************Mining Scanner**********************/ - -/obj/item/mining_scanner - desc = "A scanner that checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear material scanners for optimal results." - name = "manual mining scanner" - icon = 'icons/obj/device.dmi' - icon_state = "mining1" - item_state = "analyzer" - w_class = WEIGHT_CLASS_SMALL - flags = CONDUCT - slot_flags = SLOT_BELT - var/cooldown = 0 - origin_tech = "engineering=1;magnets=1" - -/obj/item/mining_scanner/attack_self(mob/user) - if(!user.client) - return - if(!cooldown) - cooldown = 1 - spawn(40) - cooldown = 0 - var/list/mobs = list() - mobs |= user - mineral_scan_pulse(mobs, get_turf(user)) - - -//Debug item to identify all ore spread quickly -/obj/item/mining_scanner/admin - -/obj/item/mining_scanner/admin/attack_self(mob/user) - for(var/turf/simulated/mineral/M in world) - if(M.scan_state) - M.icon_state = M.scan_state - qdel(src) - -/obj/item/t_scanner/adv_mining_scanner - desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear meson scanners for optimal results. This one has an extended range." - name = "advanced automatic mining scanner" - icon_state = "mining0" - item_state = "analyzer" - w_class = WEIGHT_CLASS_SMALL - flags = CONDUCT - slot_flags = SLOT_BELT - var/cooldown = 35 - var/on_cooldown = 0 - var/range = 7 - var/meson = TRUE - origin_tech = "engineering=3;magnets=3" - -/obj/item/t_scanner/adv_mining_scanner/cyborg - flags = CONDUCT | NODROP - -/obj/item/t_scanner/adv_mining_scanner/material - meson = FALSE - desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear material scanners for optimal results. This one has an extended range." - -/obj/item/t_scanner/adv_mining_scanner/lesser - name = "automatic mining scanner" - desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear meson scanners for optimal results." - range = 4 - cooldown = 50 - -/obj/item/t_scanner/adv_mining_scanner/lesser/material - desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Wear material scanners for optimal results." - meson = FALSE - -/obj/item/t_scanner/adv_mining_scanner/scan() - if(!on_cooldown) - on_cooldown = 1 - spawn(cooldown) - on_cooldown = 0 - var/turf/t = get_turf(src) - var/list/mobs = recursive_mob_check(t, client_check = 1, sight_check = 0, include_radio = 0) - if(!mobs.len) - return - if(meson) - mineral_scan_pulse(mobs, t, range) - else - mineral_scan_pulse_material(mobs, t, range) - -//For use with mesons -/proc/mineral_scan_pulse(list/mobs, turf/T, range = world.view) - var/list/minerals = list() - for(var/turf/simulated/mineral/M in range(range, T)) - if(M.scan_state) - minerals += M - if(minerals.len) - for(var/mob/user in mobs) - if(user.client) - var/client/C = user.client - for(var/turf/simulated/mineral/M in minerals) - var/turf/F = get_turf(M) - var/image/I = image('icons/turf/mining.dmi', loc = F, icon_state = M.scan_state, layer = 18) - C.images += I - spawn(30) - if(C) - C.images -= I - -//For use with material scanners -/proc/mineral_scan_pulse_material(list/mobs, turf/T, range = world.view) - var/list/minerals = list() - for(var/turf/simulated/mineral/M in range(range, T)) - if(M.scan_state) - minerals += M - if(minerals.len) - for(var/turf/simulated/mineral/M in minerals) - var/obj/effect/temp_visual/mining_overlay/C = new/obj/effect/temp_visual/mining_overlay(M) - C.icon_state = M.scan_state - -/obj/effect/temp_visual/mining_overlay - layer = 18 - icon = 'icons/turf/mining.dmi' - anchored = 1 - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - duration = 30 - pixel_x = -4 - pixel_y = -4 - -/**********************Xeno Warning Sign**********************/ -/obj/structure/sign/xeno_warning_mining - name = "DANGEROUS ALIEN LIFE" - desc = "A sign that warns would be travellers of hostile alien life in the vicinity." - icon = 'icons/obj/mining.dmi' - icon_state = "xeno_warning" - -/**********************Mining Jetpack**********************/ -/obj/item/tank/jetpack/carbondioxide/mining - name = "mining jetpack" - icon_state = "jetpack-mining" - item_state = "jetpack-mining" - origin_tech = "materials=4;magnets=4;engineering=5" - desc = "A tank of compressed carbon dioxide for miners to use as propulsion in local space. The compact size allows for easy storage at the cost of capacity." - volume = 40 - throw_range = 7 - w_class = WEIGHT_CLASS_NORMAL //same as syndie harness - -/*********************Hivelord stabilizer****************/ - -/obj/item/hivelordstabilizer - name = "hivelord stabilizer" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle19" - desc = "Inject a hivelord core with this stabilizer to preserve its healing powers indefinitely." - w_class = WEIGHT_CLASS_TINY - origin_tech = "biotech=3" - -/obj/item/hivelordstabilizer/afterattack(obj/item/organ/internal/M, mob/user) - var/obj/item/organ/internal/hivelord_core/C = M - if(!istype(C, /obj/item/organ/internal/hivelord_core)) - to_chat(user, "The stabilizer only works on hivelord cores.") - return ..() - C.preserved = 1 - to_chat(user, "You inject the hivelord core with the stabilizer. It will no longer go inert.") - qdel(src) \ No newline at end of file diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 03b8404b1f0..46daf596f8c 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -7,7 +7,7 @@ var/output_dir = SOUTH /obj/machinery/mineral/proc/unload_mineral(atom/movable/S) - S.forceMove(loc) + S.forceMove(drop_location()) var/turf/T = get_step(src,output_dir) if(T) S.forceMove(T) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm new file mode 100644 index 00000000000..696be4c6bfb --- /dev/null +++ b/code/modules/mining/machine_redemption.dm @@ -0,0 +1,391 @@ +/**********************Ore Redemption Unit**************************/ +//Turns all the various mining machines into a single unit to speed up mining and establish a point system + +/obj/machinery/mineral/ore_redemption + name = "ore redemption machine" + desc = "A machine that accepts ore and instantly transforms it into workable material sheets. Points for ore are generated based on type and can be redeemed at a mining equipment vendor." + icon = 'icons/obj/machines/mining_machines.dmi' + icon_state = "ore_redemption" + density = TRUE + anchored = TRUE + input_dir = NORTH + output_dir = SOUTH + req_access = list(access_mineral_storeroom) + speed_process = TRUE + layer = BELOW_OBJ_LAYER + var/req_access_reclaim = access_mining_station + var/obj/item/card/id/inserted_id + var/points = 0 + var/ore_pickup_rate = 15 + var/sheet_per_ore = 1 + var/point_upgrade = 1 + var/list/ore_values = list("sand" = 1, "iron" = 1, "plasma" = 15, "silver" = 16, "gold" = 18, "titanium" = 30, "uranium" = 30, "diamond" = 50, "bluespace crystal" = 50, "bananium" = 60, "tranquillite" = 60) + var/message_sent = FALSE + var/list/ore_buffer = list() + var/datum/research/files + var/obj/item/disk/design_disk/inserted_disk + var/list/supply_consoles = list("Science", "Robotics", "Research Director's Desk", "Mechanic", "Engineering" = list("metal", "glass", "plasma"), "Chief Engineer's Desk" = list("metal", "glass", "plasma"), "Atmospherics" = list("metal", "glass", "plasma"), "Bar" = list("uranium", "plasma"), "Virology" = list("plasma", "uranium", "gold")) + +/obj/machinery/mineral/ore_redemption/New() + ..() + AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE), INFINITY, FALSE, /obj/item/stack) + files = new /datum/research/smelter(src) + component_parts = list() + component_parts += new /obj/item/circuitboard/ore_redemption(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/manipulator(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + component_parts += new /obj/item/assembly/igniter(null) + component_parts += new /obj/item/stock_parts/console_screen(null) + RefreshParts() + +/obj/machinery/mineral/ore_redemption/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/ore_redemption(null) + component_parts += new /obj/item/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/assembly/igniter(null) + component_parts += new /obj/item/stock_parts/console_screen(null) + RefreshParts() + +/obj/machinery/mineral/ore_redemption/golem + req_access = list(access_free_golems) + req_access_reclaim = access_free_golems + +/obj/machinery/mineral/ore_redemption/golem/New() + ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/ore_redemption/golem(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/manipulator(null) + component_parts += new /obj/item/stock_parts/micro_laser(null) + component_parts += new /obj/item/assembly/igniter(null) + component_parts += new /obj/item/stock_parts/console_screen(null) + RefreshParts() + +/obj/machinery/mineral/ore_redemption/Destroy() + QDEL_NULL(files) + GET_COMPONENT(materials, /datum/component/material_container) + materials.retrieve_all() + return ..() + +/obj/machinery/mineral/ore_redemption/RefreshParts() + var/ore_pickup_rate_temp = 15 + var/point_upgrade_temp = 1 + var/sheet_per_ore_temp = 1 + for(var/obj/item/stock_parts/matter_bin/B in component_parts) + sheet_per_ore_temp = 0.65 + (0.35 * B.rating) + for(var/obj/item/stock_parts/manipulator/M in component_parts) + ore_pickup_rate_temp = 15 * M.rating + for(var/obj/item/stock_parts/micro_laser/L in component_parts) + point_upgrade_temp = 0.65 + (0.35 * L.rating) + ore_pickup_rate = ore_pickup_rate_temp + point_upgrade = point_upgrade_temp + sheet_per_ore = sheet_per_ore_temp + +/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/stack/ore/O) + + ore_buffer -= O + + if(O && O.refined_type) + points += O.points * point_upgrade * O.amount + + GET_COMPONENT(materials, /datum/component/material_container) + var/material_amount = materials.get_item_material_amount(O) + + if(!material_amount) + qdel(O) //no materials, incinerate it + + else if(!materials.has_space(material_amount * sheet_per_ore * O.amount)) //if there is no space, eject it + unload_mineral(O) + + else + materials.insert_item(O, sheet_per_ore) //insert it + qdel(O) + +/obj/machinery/mineral/ore_redemption/proc/can_smelt_alloy(datum/design/D) + if(D.make_reagents.len) + return FALSE + + var/build_amount = 0 + + GET_COMPONENT(materials, /datum/component/material_container) + for(var/mat_id in D.materials) + var/M = D.materials[mat_id] + var/datum/material/redemption_mat = materials.materials[mat_id] + + if(!M || !redemption_mat) + return FALSE + + var/smeltable_sheets = round(redemption_mat.amount / M) + + if(!smeltable_sheets) + return FALSE + + if(!build_amount) + build_amount = smeltable_sheets + + build_amount = min(build_amount, smeltable_sheets) + + return build_amount + +/obj/machinery/mineral/ore_redemption/proc/process_ores(list/ores_to_process) + var/current_amount = 0 + for(var/ore in ores_to_process) + if(current_amount >= ore_pickup_rate) + break + smelt_ore(ore) + +/obj/machinery/mineral/ore_redemption/proc/send_console_message() + if(!is_station_level(z)) + return + message_sent = TRUE + var/area/A = get_area(src) + var/msg = "Now available in [A]:
" + + var/has_minerals = FALSE + var/mineral_name = null + GET_COMPONENT(materials, /datum/component/material_container) + for(var/mat_id in materials.materials) + var/datum/material/M = materials.materials[mat_id] + var/mineral_amount = M.amount / MINERAL_MATERIAL_AMOUNT + mineral_name = capitalize(M.name) + if(mineral_amount) + has_minerals = TRUE + msg += "[mineral_name]: [mineral_amount] sheets
" + + if(!has_minerals) + return + + for(var/obj/machinery/requests_console/D in allConsoles) + if(D.department in src.supply_consoles) + if(supply_consoles[D.department] == null || (mineral_name in supply_consoles[D.department])) + D.createMessage("Ore Redemption Machine", "New Minerals Available!", msg, 1) + +/obj/machinery/mineral/ore_redemption/process() + if(panel_open || !powered()) + return + var/atom/input = get_step(src, input_dir) + var/obj/structure/ore_box/OB = locate() in input + if(OB) + input = OB + + for(var/obj/item/stack/ore/O in input) + if(QDELETED(O)) + continue + ore_buffer |= O + O.forceMove(src) + CHECK_TICK + + if(LAZYLEN(ore_buffer)) + message_sent = FALSE + process_ores(ore_buffer) + else if(!message_sent) + send_console_message() + +/obj/machinery/mineral/ore_redemption/attackby(obj/item/W, mob/user, params) + if(exchange_parts(user, W)) + return + if(default_unfasten_wrench(user, W)) + return + if(default_deconstruction_screwdriver(user, "ore_redemption-open", "ore_redemption", W)) + updateUsrDialog() + return + if(default_deconstruction_crowbar(W)) + return + + if(!powered()) + return + if(istype(W, /obj/item/card/id)) + var/obj/item/card/id/I = user.get_active_hand() + if(istype(I) && !istype(inserted_id)) + if(!user.drop_item()) + return + I.forceMove(src) + inserted_id = I + interact(user) + return + + if(ismultitool(W) && panel_open) + input_dir = turn(input_dir, -90) + output_dir = turn(output_dir, -90) + to_chat(user, "You change [src]'s I/O settings, setting the input to [dir2text(input_dir)] and the output to [dir2text(output_dir)].") + return + + if(istype(W, /obj/item/disk/design_disk)) + if(user.drop_item()) + W.forceMove(src) + inserted_disk = W + interact(user) + return TRUE + + return ..() + +/obj/machinery/mineral/ore_redemption/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/mineral/ore_redemption/interact(mob/user) + var/dat = "This machine only accepts ore. Gibtonite and Slag are not accepted.

" + dat += "Current unclaimed points: [points]
" + + if(inserted_id) + dat += "You have [inserted_id.mining_points] mining points collected. Eject ID.
" + dat += "Claim points.

" + else + dat += "No ID inserted. Insert ID.

" + + GET_COMPONENT(materials, /datum/component/material_container) + for(var/mat_id in materials.materials) + var/datum/material/M = materials.materials[mat_id] + if(M.amount) + var/sheet_amount = M.amount / MINERAL_MATERIAL_AMOUNT + dat += "[capitalize(M.name)]: [sheet_amount] " + if(sheet_amount >= 1) + dat += "Release
" + else + dat += "Release
" + + dat += "
Alloys:
" + + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(can_smelt_alloy(D)) + dat += "[D.name]: Smelt
" + else + dat += "[D.name]: Smelt
" + + dat += "
Mineral Value List:
[get_ore_values()]
" + + if(inserted_disk) + dat += "Eject disk
" + dat += "
Uploadable designs:
" + + if(inserted_disk.blueprint) + var/datum/design/D = inserted_disk.blueprint + if(D.build_type & SMELTER) + dat += "Name: [D.name] Upload to smelter" + + dat += "

" + else + dat += "Insert design disk

" + + var/datum/browser/popup = new(user, "ore_redemption_machine", "Ore Redemption Machine", 400, 500) + popup.set_content(dat) + popup.open() + return + +/obj/machinery/mineral/ore_redemption/proc/get_ore_values() + var/dat = "" + for(var/ore in ore_values) + var/value = ore_values[ore] + dat += "" + dat += "
[capitalize(ore)][value * point_upgrade]
" + return dat + +/obj/machinery/mineral/ore_redemption/Topic(href, href_list) + if(..()) + return + GET_COMPONENT(materials, /datum/component/material_container) + if(href_list["eject_id"]) + usr.put_in_hands(inserted_id) + inserted_id = null + if(href_list["claim"]) + if(inserted_id) + if(req_access_reclaim in inserted_id.access) + inserted_id.mining_points += points + points = 0 + else + to_chat(usr, "Required access not found.") + else if(href_list["insert_id"]) + var/obj/item/card/id/I = usr.get_active_hand() + if(istype(I)) + if(!usr.drop_item()) + return + I.forceMove(src) + inserted_id = I + else + to_chat(usr, "Not a valid ID!") + if(href_list["eject_disk"]) + if(inserted_disk) + inserted_disk.forceMove(loc) + inserted_disk = null + if(href_list["insert_disk"]) + var/obj/item/disk/design_disk/D = usr.get_active_hand() + if(istype(D)) + if(!usr.drop_item()) + return + D.forceMove(src) + inserted_disk = D + if(href_list["upload"]) + if(inserted_disk && inserted_disk.blueprint) + files.AddDesign2Known(inserted_disk.blueprint) + + if(href_list["release"]) + if(check_access(inserted_id) || allowed(usr)) //Check the ID inside, otherwise check the user + var/mat_id = href_list["release"] + if(!materials.materials[mat_id]) + return + + var/datum/material/mat = materials.materials[mat_id] + var/stored_amount = mat.amount / MINERAL_MATERIAL_AMOUNT + + if(!stored_amount) + return + + var/desired = input("How many sheets?", "How many sheets to eject?", 1) as null|num + var/sheets_to_remove = round(min(desired,50,stored_amount)) + + var/out = get_step(src, output_dir) + materials.retrieve_sheets(sheets_to_remove, mat_id, out) + + else + to_chat(usr, "Required access not found.") + + if(href_list["alloy"]) + var/alloy_id = href_list["alloy"] + var/datum/design/alloy = files.FindDesignByID(alloy_id) + if((check_access(inserted_id) || allowed(usr)) && alloy) + var/desired = input("How many sheets?", "How many sheets would you like to smelt?", 1) as null|num + if(desired < 1) // Stops an exploit that lets you build negative alloys and get free materials + return + var/smelt_amount = can_smelt_alloy(alloy) + var/amount = round(min(desired,50,smelt_amount)) + materials.use_amount(alloy.materials, amount) + + var/output = new alloy.build_path(src) + if(istype(output, /obj/item/stack/sheet)) + var/obj/item/stack/sheet/mineral/produced_alloy = output + produced_alloy.amount = amount + unload_mineral(produced_alloy) + else + unload_mineral(output) + + else + to_chat(usr, "Required access not found.") + updateUsrDialog() + +/obj/machinery/mineral/ore_redemption/ex_act(severity, target) + do_sparks(5, 1, src) + if(severity == 1) + if(prob(50)) + qdel(src) + else if(severity == 2) + if(prob(25)) + qdel(src) + +/obj/machinery/mineral/ore_redemption/power_change() + ..() + update_icon() + if(inserted_id && !powered()) + visible_message("The ID slot indicator light flickers on [src] as it spits out a card before powering down.") + inserted_id.forceMove(loc) + +/obj/machinery/mineral/ore_redemption/update_icon() + if(powered()) + icon_state = initial(icon_state) + else + icon_state = "[initial(icon_state)]-off" \ No newline at end of file diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm new file mode 100644 index 00000000000..4851ac5b7c3 --- /dev/null +++ b/code/modules/mining/machine_vending.dm @@ -0,0 +1,311 @@ +/**********************Mining Equipment Locker**************************/ + +/obj/machinery/mineral/equipment_vendor + name = "mining equipment vendor" + desc = "An equipment vendor for miners, points collected at an ore redemption machine can be spent here." + icon = 'icons/obj/machines/mining_machines.dmi' + icon_state = "mining" + density = 1 + anchored = 1.0 + var/obj/item/card/id/inserted_id + var/list/prize_list = list( //if you add something to this, please, for the love of god, sort it by price/type. use tabs and not spaces. + new /datum/data/mining_equipment("1 Marker Beacon", /obj/item/stack/marker_beacon, 10), + new /datum/data/mining_equipment("10 Marker Beacons", /obj/item/stack/marker_beacon/ten, 100), + new /datum/data/mining_equipment("30 Marker Beacons", /obj/item/stack/marker_beacon/thirty, 300), + new /datum/data/mining_equipment("Whiskey", /obj/item/reagent_containers/food/drinks/bottle/whiskey, 100), + new /datum/data/mining_equipment("Absinthe", /obj/item/reagent_containers/food/drinks/bottle/absinthe/premium, 100), + new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150), + new /datum/data/mining_equipment("Soap", /obj/item/soap/nanotrasen, 200), + new /datum/data/mining_equipment("Laser Pointer", /obj/item/laser_pointer, 300), + new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), + new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/hivelordstabilizer, 400), + new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000), + new /datum/data/mining_equipment("Point Transfer Card", /obj/item/card/mining_point_card, 500), + new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 400), + new /datum/data/mining_equipment("Shelter Capsule", /obj/item/survivalcapsule, 400), + new /datum/data/mining_equipment("GAR Meson Scanners", /obj/item/clothing/glasses/meson/gar, 500), + new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500), + new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/autoinjector/survival, 500), + new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 600), + new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600), + new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750), + new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/kinetic_crusher, 750), + new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), + new /datum/data/mining_equipment("Advanced Scanner", /obj/item/t_scanner/adv_mining_scanner, 800), + new /datum/data/mining_equipment("Resonator", /obj/item/resonator, 800), + new /datum/data/mining_equipment("Fulton Pack", /obj/item/extraction_pack, 1000), + new /datum/data/mining_equipment("Lazarus Injector", /obj/item/lazarus_injector, 1000), + new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/pickaxe/silver, 1000), + new /datum/data/mining_equipment("Mining Conscription Kit", /obj/item/storage/backpack/duffel/mining_conscript, 1500), + new /datum/data/mining_equipment("Jetpack", /obj/item/tank/jetpack/carbondioxide/mining, 2000), + new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/storage/box/mininghardsuit, 2000), + new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/pickaxe/diamond, 2000), + new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500), + new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), + new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000), + new /datum/data/mining_equipment("Nanotrasen Minebot", /obj/item/mining_drone_cube, 800), + new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400), + new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400), + new /datum/data/mining_equipment("Minebot Cooldown Upgrade", /obj/item/borg/upgrade/modkit/cooldown/minebot, 600), + new /datum/data/mining_equipment("Minebot AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000), + new /datum/data/mining_equipment("KA Minebot Passthrough", /obj/item/borg/upgrade/modkit/minebot_passthrough, 100), + new /datum/data/mining_equipment("Lazarus Capsule", /obj/item/mobcapsule, 800), + new /datum/data/mining_equipment("Lazarus Capsule belt", /obj/item/storage/belt/lazarus, 200), + new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 100), + new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 150), + new /datum/data/mining_equipment("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250), + new /datum/data/mining_equipment("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300), + new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000), + new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), + new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000), + new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000) + ) + +/obj/machinery/mineral/equipment_vendor/golem + name = "golem ship equipment vendor" + +/obj/machinery/mineral/equipment_vendor/golem/New() + ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/mining_equipment_vendor/golem(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/console_screen(null) + RefreshParts() + +/obj/machinery/mineral/equipment_vendor/golem/Initialize() + . = ..() + desc += "\nIt seems a few selections have been added." + prize_list += list( + new /datum/data/mining_equipment("Extra Id", /obj/item/card/id/golem, 250), + new /datum/data/mining_equipment("Science Backpack", /obj/item/storage/backpack/science, 250), + new /datum/data/mining_equipment("Full Toolbelt", /obj/item/storage/belt/utility/full/multitool, 250), + new /datum/data/mining_equipment("Monkey Cube", /obj/item/reagent_containers/food/snacks/monkeycube, 250), + new /datum/data/mining_equipment("Royal Cape of the Liberator", /obj/item/bedsheet/rd/royal_cape, 500), + new /datum/data/mining_equipment("Grey Slime Extract", /obj/item/slime_extract/grey, 1000), + new /datum/data/mining_equipment("KA Trigger Modification Kit", /obj/item/borg/upgrade/modkit/trigger_guard, 1000), + new /datum/data/mining_equipment("Shuttle Console Board", /obj/item/circuitboard/shuttle/golem_ship, 2000), + new /datum/data/mining_equipment("The Liberator's Legacy", /obj/item/storage/box/rndboards, 2000) + + ) + +/datum/data/mining_equipment + var/equipment_name = "generic" + var/equipment_path = null + var/cost = 0 + +/datum/data/mining_equipment/New(name, path, equipment_cost) + equipment_name = name + equipment_path = path + cost = equipment_cost + +/obj/machinery/mineral/equipment_vendor/New() + ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/mining_equipment_vendor(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/console_screen(null) + RefreshParts() + +/obj/machinery/mineral/equipment_vendor/power_change() + ..() + update_icon() + if(inserted_id && !powered()) + visible_message("The ID slot indicator light flickers on \the [src] as it spits out a card before powering down.") + inserted_id.forceMove(loc) + +/obj/machinery/mineral/equipment_vendor/update_icon() + if(powered()) + icon_state = initial(icon_state) + else + icon_state = "[initial(icon_state)]-off" + +/obj/machinery/mineral/equipment_vendor/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/mineral/equipment_vendor/attack_ghost(mob/user) + interact(user) + +/obj/machinery/mineral/equipment_vendor/interact(mob/user) + user.set_machine(src) + + var/dat + dat +="
" + if(istype(inserted_id)) + dat += "You have [inserted_id.mining_points] mining points collected. Eject ID.
" + else + dat += "No ID inserted. Insert ID.
" + dat += "
" + dat += "
Equipment point cost list:
" + for(var/datum/data/mining_equipment/prize in prize_list) + dat += "" + dat += "
[prize.equipment_name][prize.cost]Purchase
" + var/datum/browser/popup = new(user, "miningvendor", "Mining Equipment Vendor", 400, 350) + popup.set_content(dat) + popup.open() + +/obj/machinery/mineral/equipment_vendor/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["choice"]) + if(istype(inserted_id)) + if(href_list["choice"] == "eject") + inserted_id.loc = loc + inserted_id.verb_pickup() + inserted_id = null + else if(href_list["choice"] == "insert") + var/obj/item/card/id/I = usr.get_active_hand() + if(istype(I)) + if(!usr.drop_item()) + return + I.loc = src + inserted_id = I + else + to_chat(usr, "No valid ID.") + + if(href_list["purchase"]) + if(istype(inserted_id)) + var/datum/data/mining_equipment/prize = locate(href_list["purchase"]) + if(!prize || !(prize in prize_list) || prize.cost > inserted_id.mining_points) + return + + inserted_id.mining_points -= prize.cost + new prize.equipment_path(src.loc) + updateUsrDialog() + +/obj/machinery/mineral/equipment_vendor/attackby(obj/item/I, mob/user, params) + if(default_deconstruction_screwdriver(user, "mining-open", "mining", I)) + updateUsrDialog() + return + if(panel_open) + if(istype(I, /obj/item/crowbar)) + if(inserted_id) + inserted_id.forceMove(loc) //Prevents deconstructing the ORM from deleting whatever ID was inside it. + default_deconstruction_crowbar(I) + return 1 + if(istype(I, /obj/item/mining_voucher)) + if(!powered()) + return + else + RedeemVoucher(I, user) + return + if(istype(I,/obj/item/card/id)) + if(!powered()) + return + else + var/obj/item/card/id/C = usr.get_active_hand() + if(istype(C) && !istype(inserted_id)) + if(!usr.drop_item()) + return + C.forceMove(src) + inserted_id = C + interact(user) + return + ..() + +/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer) + var/items = list("Survival Capsule and Explorer's Webbing", "Resonator Kit", "Minebot Kit", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit") + + var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in items + if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer) + return + + var/drop_location = drop_location() + switch(selection) + if("Survival Capsule and Explorer's Webbing") + new /obj/item/storage/belt/mining(drop_location) + if("Resonator Kit") + new /obj/item/extinguisher/mini(drop_location) + new /obj/item/resonator(drop_location) + if("Minebot Kit") + new /obj/item/mining_drone_cube(drop_location) + new /obj/item/weldingtool/hugetank(drop_location) + new /obj/item/clothing/head/welding(drop_location) + if("Extraction and Rescue Kit") + new /obj/item/extraction_pack(drop_location) + new /obj/item/fulton_core(drop_location) + new /obj/item/stack/marker_beacon/thirty(drop_location) + if("Crusher Kit") + new /obj/item/extinguisher/mini(drop_location) + new /obj/item/twohanded/kinetic_crusher(drop_location) + if("Mining Conscription Kit") + new /obj/item/storage/backpack/duffel/mining_conscript(drop_location) + + qdel(voucher) + +/obj/machinery/mineral/equipment_vendor/ex_act(severity, target) + do_sparks(5, 1, src) + if(prob(50 / severity) && severity < 3) + qdel(src) + +/**********************Mining Equipment Locker Items**************************/ + +/**********************Mining Equipment Voucher**********************/ + +/obj/item/mining_voucher + name = "mining voucher" + desc = "A token to redeem a piece of equipment. Use it on a mining equipment vendor." + icon = 'icons/obj/items.dmi' + icon_state = "mining_voucher" + w_class = WEIGHT_CLASS_TINY + +/**********************Mining Point Card**********************/ + +/obj/item/card/mining_point_card + name = "mining point card" + desc = "A small card preloaded with mining points. Swipe your ID card over it to transfer the points, then discard." + icon_state = "data" + var/points = 500 + +/obj/item/card/mining_point_card/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/card/id)) + if(points) + var/obj/item/card/id/C = I + C.mining_points += points + to_chat(user, "You transfer [points] points to [C].") + points = 0 + else + to_chat(user, "There's no points left on [src].") + ..() + +/obj/item/card/mining_point_card/examine(mob/user) + ..(user) + to_chat(user, "There's [points] points on the card.") + +/**********************Conscription Kit**********************/ + +/obj/item/card/id/mining_access_card + name = "mining access card" + desc = "A small card, that when used on any ID, will add mining access." + icon_state = "data_1" + +/obj/item/card/id/mining_access_card/afterattack(atom/movable/AM, mob/user, proximity) + . = ..() + if(istype(AM, /obj/item/card/id) && proximity) + var/obj/item/card/id/I = AM + I.access |= list(access_mining, access_mining_station, access_mineral_storeroom, access_cargo) + to_chat(user, "You upgrade [I] with mining access.") + qdel(src) + +/obj/item/storage/backpack/duffel/mining_conscript + name = "mining conscription kit" + desc = "A kit containing everything a crewmember needs to support a shaft miner in the field." + +/obj/item/storage/backpack/duffel/mining_conscript/New() + ..() + new /obj/item/clothing/glasses/meson(src) + new /obj/item/t_scanner/adv_mining_scanner/lesser(src) + new /obj/item/storage/bag/ore(src) + new /obj/item/clothing/suit/hooded/explorer(src) + new /obj/item/encryptionkey/headset_cargo(src) + new /obj/item/clothing/mask/gas/explorer(src) + new /obj/item/card/id/mining_access_card(src) + new /obj/item/gun/energy/kinetic_accelerator(src) + new /obj/item/kitchen/knife/combat/survival(src) + new /obj/item/flashlight/seclite(src) \ No newline at end of file diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 87b919ea238..f350633a4c2 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -75,157 +75,6 @@ desc = "A mining lantern." brightness_on = 6 // luminosity when on -/*****************************Pickaxe********************************/ - -/obj/item/pickaxe - name = "pickaxe" - icon = 'icons/obj/items.dmi' - icon_state = "pickaxe" - flags = CONDUCT - slot_flags = SLOT_BELT - force = 15 - throwforce = 10 - item_state = "pickaxe" - w_class = WEIGHT_CLASS_BULKY - materials = list(MAT_METAL=2000) //one sheet, but where can you make them? - origin_tech = "materials=2;engineering=3" - attack_verb = list("hit", "pierced", "sliced", "attacked") - var/list/digsound = list('sound/effects/picaxe1.ogg','sound/effects/picaxe2.ogg','sound/effects/picaxe3.ogg') - var/drill_verb = "picking" - sharp = 1 - var/excavation_amount = 100 - usesound = 'sound/effects/picaxe1.ogg' - toolspeed = 1 - -/obj/item/pickaxe/proc/playDigSound() - playsound(src, pick(digsound),20,1) - -/obj/item/pickaxe/emergency - name = "emergency disembarkation tool" - desc = "For extracting yourself from rough landings." - -/obj/item/pickaxe/safety - name = "safety pickaxe" - desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon." - force = 1 - throwforce = 1 - attack_verb = list("ineffectively hit") - -/obj/item/pickaxe/mini - name = "compact pickaxe" - desc = "A smaller, compact version of the standard pickaxe." - icon_state = "minipick" - force = 10 - throwforce = 7 - w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL = 1000) - -/obj/item/pickaxe/silver - name = "silver-plated pickaxe" - icon_state = "spickaxe" - item_state = "spickaxe" - origin_tech = "materials=3;engineering=4" - desc = "A silver-plated pickaxe that mines slightly faster than standard-issue." - toolspeed = 0.75 - -/obj/item/pickaxe/gold - name = "golden pickaxe" - icon_state = "gpickaxe" - item_state = "gpickaxe" - origin_tech = "materials=4;engineering=4" - desc = "A gold-plated pickaxe that mines faster than standard-issue." - toolspeed = 0.6 - -/obj/item/pickaxe/diamond - name = "diamond-tipped pickaxe" - icon_state = "dpickaxe" - item_state = "dpickaxe" - origin_tech = "materials=5;engineering=4" - desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt." - toolspeed = 0.5 - -/obj/item/pickaxe/drill - name = "mining drill" - icon_state = "handdrill" - item_state = "jackhammer" - digsound = list('sound/weapons/drill.ogg') - hitsound = 'sound/weapons/drill.ogg' - usesound = 'sound/weapons/drill.ogg' - origin_tech = "materials=2;powerstorage=2;engineering=3" - desc = "An electric mining drill for the especially scrawny." - toolspeed = 0.5 - -/obj/item/pickaxe/drill/cyborg - name = "cyborg mining drill" - desc = "An integrated electric mining drill." - flags = NODROP - -/obj/item/pickaxe/drill/diamonddrill - name = "diamond-tipped mining drill" - icon_state = "diamonddrill" - origin_tech = "materials=6;powerstorage=4;engineering=4" - desc = "Yours is the drill that will pierce the heavens!" - toolspeed = 0.25 - -/obj/item/pickaxe/diamonddrill/traitor //Pocket-sized traitor diamond drill. - name = "supermatter drill" - icon_state = "smdrill" - origin_tech = "materials=6;powerstorage=4;engineering=4;syndicate=3" - desc = "Microscopic supermatter crystals cover the head of this tiny drill." - w_class = WEIGHT_CLASS_SMALL - -/obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version! - name = "diamond-tipped cyborg mining drill" //To inherit the NODROP flag, and easier to change borg specific drill mechanics. - icon_state = "diamonddrill" - toolspeed = 0.25 - -/obj/item/pickaxe/drill/jackhammer - name = "sonic jackhammer" - icon_state = "jackhammer" - item_state = "jackhammer" - origin_tech = "materials=6;powerstorage=4;engineering=5;magnets=4" - digsound = list('sound/weapons/sonic_jackhammer.ogg') - hitsound = 'sound/weapons/sonic_jackhammer.ogg' - usesound = 'sound/weapons/sonic_jackhammer.ogg' - desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls." - toolspeed = 0.1 - -/*****************************Shovel********************************/ - -/obj/item/shovel - name = "shovel" - desc = "A large tool for digging and moving dirt." - icon = 'icons/obj/items.dmi' - icon_state = "shovel" - flags = CONDUCT - slot_flags = SLOT_BELT - force = 8 - throwforce = 4 - item_state = "shovel" - w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=50) - origin_tech = "materials=2;engineering=2" - attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked") - usesound = 'sound/effects/shovel_dig.ogg' - toolspeed = 1 - -/obj/item/shovel/spade - name = "spade" - desc = "A small tool for digging and moving dirt." - icon_state = "spade" - item_state = "spade" - force = 5 - throwforce = 7 - w_class = WEIGHT_CLASS_SMALL - toolspeed = 2 - -/obj/item/shovel/safety - name = "safety shovel" - desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon." - force = 1 - throwforce = 1 - attack_verb = list("ineffectively hit") - /**********************Mining car (Crate like thing, not the rail car)**************************/ /obj/structure/closet/crate/miningcar @@ -234,60 +83,4 @@ icon_state = "miningcar" density = 1 icon_opened = "miningcaropen" - icon_closed = "miningcar" - -/*********************Mob Capsule*************************/ - -/obj/item/mobcapsule - name = "lazarus capsule" - desc = "It allows you to store and deploy lazarus-injected creatures easier." - icon = 'icons/obj/mobcap.dmi' - icon_state = "mobcap0" - w_class = WEIGHT_CLASS_TINY - throw_range = 20 - var/mob/living/simple_animal/captured = null - var/colorindex = 0 - -/obj/item/mobcapsule/Destroy() - if(captured) - captured.ghostize() - QDEL_NULL(captured) - return ..() - -/obj/item/mobcapsule/attack(var/atom/A, mob/user, prox_flag) - if(!istype(A, /mob/living/simple_animal) || isbot(A)) - return ..() - capture(A, user) - return 1 - -/obj/item/mobcapsule/proc/capture(var/mob/target, var/mob/U as mob) - var/mob/living/simple_animal/T = target - if(captured) - to_chat(U, "Capture failed!: The capsule already has a mob registered to it!") - else - if(istype(T) && "neutral" in T.faction) - T.forceMove(src) - T.name = "[U.name]'s [initial(T.name)]" - T.cancel_camera() - name = "Lazarus Capsule: [initial(T.name)]" - to_chat(U, "You placed a [T.name] inside the Lazarus Capsule!") - captured = T - else - to_chat(U, "You can't capture that mob!") - -/obj/item/mobcapsule/throw_impact(atom/A, mob/user) - ..() - if(captured) - dump_contents(user) - -/obj/item/mobcapsule/proc/dump_contents(mob/user) - if(captured) - captured.forceMove(get_turf(src)) - captured = null - -/obj/item/mobcapsule/attack_self(mob/user) - colorindex += 1 - if(colorindex >= 6) - colorindex = 0 - icon_state = "mobcap[colorindex]" - update_icon() + icon_closed = "miningcar" \ No newline at end of file diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 2ff2a686439..e7036ad4f2f 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -303,6 +303,7 @@ qdel(src) //AI + /obj/item/slimepotion/sentience/mining name = "minebot AI upgrade" desc = "Can be used to grant sentience to minebots." @@ -325,5 +326,21 @@ if(M.stored_gun) M.stored_gun.overheat_time += base_cooldown_add +/**********************Mining drone cube**********************/ + +/obj/item/mining_drone_cube + name = "mining drone cube" + desc = "Compressed mining drone, ready for deployment. Just press the button to activate!" + w_class = WEIGHT_CLASS_SMALL + icon = 'icons/obj/aibots.dmi' + icon_state = "minedronecube" + item_state = "electronic" + +/obj/item/mining_drone_cube/attack_self(mob/user) + user.visible_message("\The [src] suddenly expands into a fully functional mining drone!", \ + "You press center button on \the [src]. The device suddenly expands into a fully functional mining drone!") + new /mob/living/simple_animal/hostile/mining_drone(get_turf(src)) + qdel(src) + #undef MINEDRONE_COLLECT -#undef MINEDRONE_ATTACK +#undef MINEDRONE_ATTACK \ No newline at end of file diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ores_coins.dm similarity index 70% rename from code/modules/mining/ore.dm rename to code/modules/mining/ores_coins.dm index 236bcec1231..120dacad800 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ores_coins.dm @@ -303,8 +303,165 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ qdel(src) -/obj/item/stack/ore/ex_act() - return +/obj/item/stack/ore/ex_act(severity) + if(!severity || severity >= 2) + return + qdel(src) + + +/*****************************Coin********************************/ + +/obj/item/coin + icon = 'icons/obj/economy.dmi' + name = "coin" + icon_state = "coin__heads" + flags = CONDUCT + force = 1 + throwforce = 2 + w_class = WEIGHT_CLASS_TINY + var/string_attached + var/list/sideslist = list("heads","tails") + var/cmineral = null + var/cooldown = 0 + var/credits = 10 + +/obj/item/coin/New() + pixel_x = rand(0,16)-8 + pixel_y = rand(0,8)-8 + + icon_state = "coin_[cmineral]_[sideslist[1]]" + if(cmineral) + name = "[cmineral] coin" + +/obj/item/coin/gold + cmineral = "gold" + icon_state = "coin_gold_heads" + materials = list(MAT_GOLD = 400) + credits = 160 + +/obj/item/coin/silver + cmineral = "silver" + icon_state = "coin_silver_heads" + materials = list(MAT_SILVER = 400) + credits = 40 + +/obj/item/coin/diamond + cmineral = "diamond" + icon_state = "coin_diamond_heads" + materials = list(MAT_DIAMOND = 400) + credits = 120 + +/obj/item/coin/iron + cmineral = "iron" + icon_state = "coin_iron_heads" + materials = list(MAT_METAL = 400) + credits = 20 + +/obj/item/coin/plasma + cmineral = "plasma" + icon_state = "coin_plasma_heads" + materials = list(MAT_PLASMA = 400) + credits = 80 + +/obj/item/coin/uranium + cmineral = "uranium" + icon_state = "coin_uranium_heads" + materials = list(MAT_URANIUM = 400) + credits = 160 + +/obj/item/coin/clown + cmineral = "bananium" + icon_state = "coin_bananium_heads" + materials = list(MAT_BANANIUM = 400) + credits = 600 //makes the clown cri + +/obj/item/coin/mime + cmineral = "tranquillite" + icon_state = "coin_tranquillite_heads" + materials = list(MAT_TRANQUILLITE = 400) + credits = 600 //makes the mime cri + +/obj/item/coin/adamantine + cmineral = "adamantine" + icon_state = "coin_adamantine_heads" + credits = 400 + +/obj/item/coin/mythril + cmineral = "mythril" + icon_state = "coin_mythril_heads" + credits = 400 + +/obj/item/coin/twoheaded + cmineral = "iron" + icon_state = "coin_iron_heads" + desc = "Hey, this coin's the same on both sides!" + sideslist = list("heads") + credits = 20 + +/obj/item/coin/antagtoken + name = "antag token" + icon_state = "coin_valid_valid" + cmineral = "valid" + desc = "A novelty coin that helps the heart know what hard evidence cannot prove." + sideslist = list("valid", "salad") + credits = 20 + +/obj/item/coin/antagtoken/syndicate + name = "syndicate coin" + credits = 160 + +/obj/item/coin/attackby(obj/item/W as obj, mob/user as mob, params) + if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/CC = W + if(string_attached) + to_chat(user, "There already is a string attached to this coin.") + return + + if(CC.use(1)) + overlays += image('icons/obj/economy.dmi',"coin_string_overlay") + string_attached = 1 + to_chat(user, "You attach a string to the coin.") + else + to_chat(user, "You need one length of cable to attach a string to the coin.") + return + + else if(istype(W,/obj/item/wirecutters)) + if(!string_attached) + ..() + return + + var/obj/item/stack/cable_coil/CC = new/obj/item/stack/cable_coil(user.loc) + CC.amount = 1 + CC.update_icon() + overlays = list() + string_attached = null + to_chat(user, "You detach the string from the coin.") + else if(istype(W,/obj/item/weldingtool)) + var/obj/item/weldingtool/WT = W + if(WT.welding && WT.remove_fuel(0, user)) + var/typelist = list("iron" = /obj/item/clothing/gloves/ring, + "silver" = /obj/item/clothing/gloves/ring/silver, + "gold" = /obj/item/clothing/gloves/ring/gold, + "plasma" = /obj/item/clothing/gloves/ring/plasma, + "uranium" = /obj/item/clothing/gloves/ring/uranium) + var/typekey = typelist[cmineral] + if(ispath(typekey)) + to_chat(user, "You make [src] into a ring.") + new typekey(get_turf(loc)) + qdel(src) + else ..() + +/obj/item/coin/attack_self(mob/user as mob) + if(cooldown < world.time - 15) + var/coinflip = pick(sideslist) + cooldown = world.time + flick("coin_[cmineral]_flip", src) + icon_state = "coin_[cmineral]_[coinflip]" + playsound(user.loc, 'sound/items/coinflip.ogg', 50, 1) + if(do_after(user, 15, target = src)) + user.visible_message("[user] has flipped [src]. It lands on [coinflip].", \ + "You flip [src]. It lands on [coinflip].", \ + "You hear the clattering of loose change.") #undef GIBTONITE_QUALITY_LOW #undef GIBTONITE_QUALITY_MEDIUM diff --git a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm index c90a06a9fb8..43d239c59ce 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm @@ -55,80 +55,6 @@ return FALSE mouse_opacity = MOUSE_OPACITY_ICON -/obj/item/organ/internal/hivelord_core - name = "hivelord remains" - desc = "All that remains of a hivelord, it seems to be what allows it to break pieces of itself off without being hurt... its healing properties will soon become inert if not used quickly." - icon_state = "roro core 2" - flags = NOBLUDGEON - slot = "hivecore" - force = 0 - actions_types = list(/datum/action/item_action/organ_action/use) - var/inert = 0 - var/preserved = 0 - -/obj/item/organ/internal/hivelord_core/New() - ..() - addtimer(CALLBACK(src, .proc/inert_check), 2400) - -/obj/item/organ/internal/hivelord_core/proc/inert_check() - if(owner) - preserved(implanted = 1) - else if(preserved) - preserved() - else - go_inert() - -/obj/item/organ/internal/hivelord_core/proc/preserved(implanted = 0) - inert = FALSE - preserved = TRUE - update_icon() - - if(implanted) - feedback_add_details("hivelord_core", "[type]|implanted") - else - feedback_add_details("hivelord_core", "[type]|stabilizer") - - -/obj/item/organ/internal/hivelord_core/proc/go_inert() - inert = TRUE - desc = "The remains of a hivelord that have become useless, having been left alone too long after being harvested." - feedback_add_details("hivelord_core", "[src.type]|inert") - update_icon() - -/obj/item/organ/internal/hivelord_core/ui_action_click() - owner.revive() - qdel(src) - -/obj/item/organ/internal/hivelord_core/on_life() - ..() - if(owner.health < HEALTH_THRESHOLD_CRIT) - ui_action_click() - -/obj/item/organ/internal/hivelord_core/afterattack(atom/target, mob/user, proximity_flag) - if(proximity_flag && ishuman(target)) - var/mob/living/carbon/human/H = target - if(inert) - to_chat(user, "[src] has become inert, its healing properties are no more.") - return - else - if(H.stat == DEAD) - to_chat(user, "[src] are useless on the dead.") - return - if(H != user) - H.visible_message("[user] forces [H] to apply [src]... They quickly regenerate all injuries!") - feedback_add_details("hivelord_core","[src.type]|used|other") - else - to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") - feedback_add_details("hivelord_core","[src.type]|used|self") - playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1) - H.revive() - user.drop_item() - qdel(src) - ..() - -/obj/item/organ/internal/hivelord_core/prepare_eat() - return null - /mob/living/simple_animal/hostile/asteroid/hivelordbrood name = "hivelord brood" desc = "A fragment of the original Hivelord, rallying behind its original. One isn't much of a threat, but..." @@ -326,34 +252,6 @@ H.forceMove(L) qdel(src) -/obj/item/organ/internal/hivelord_core/legion - name = "legion's soul" - desc = "A strange rock that still crackles with power... its \ - healing properties will soon become inert if not used quickly." - icon_state = "legion_soul" - -/obj/item/organ/internal/hivelord_core/legion/New() - ..() - update_icon() - -/obj/item/organ/internal/hivelord_core/legion/update_icon() - icon_state = inert ? "legion_soul_inert" : "legion_soul" - overlays.Cut() - if(!inert && !preserved) - overlays += image(icon, "legion_soul_crackle") - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - -/obj/item/organ/internal/hivelord_core/legion/go_inert() - . = ..() - desc = "[src] has become inert, it crackles no more and is useless for \ - healing injuries." - -/obj/item/organ/internal/hivelord_core/legion/preserved(implanted = 0) - ..() - desc = "[src] has been stabilized. It no longer crackles with power, but it's healing properties are preserved indefinitely." - /obj/item/legion_skull name = "legion's head" desc = "The once living, now empty eyes of the former human's skull cut deep into your soul." diff --git a/paradise.dme b/paradise.dme index 6b632ad1916..7fd96ea1caf 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1642,23 +1642,30 @@ #include "code\modules\martial_arts\sleeping_carp.dm" #include "code\modules\martial_arts\wrestleing.dm" #include "code\modules\mining\abandonedcrates.dm" -#include "code\modules\mining\coins.dm" -#include "code\modules\mining\equipment_locker.dm" -#include "code\modules\mining\explorer_gear.dm" #include "code\modules\mining\fulton.dm" #include "code\modules\mining\machine_processing.dm" +#include "code\modules\mining\machine_redemption.dm" #include "code\modules\mining\machine_stacking.dm" #include "code\modules\mining\machine_unloading.dm" +#include "code\modules\mining\machine_vending.dm" #include "code\modules\mining\mine_items.dm" #include "code\modules\mining\minebot.dm" #include "code\modules\mining\mint.dm" #include "code\modules\mining\money_bag.dm" -#include "code\modules\mining\ore.dm" +#include "code\modules\mining\ores_coins.dm" #include "code\modules\mining\satchel_ore_boxdm.dm" #include "code\modules\mining\shelters.dm" +#include "code\modules\mining\equipment\explorer_gear.dm" #include "code\modules\mining\equipment\kinetic_crusher.dm" +#include "code\modules\mining\equipment\lazarus_injector.dm" #include "code\modules\mining\equipment\marker_beacons.dm" +#include "code\modules\mining\equipment\mineral_scanner.dm" +#include "code\modules\mining\equipment\mining_tools.dm" +#include "code\modules\mining\equipment\regenerative_core.dm" +#include "code\modules\mining\equipment\resonator.dm" #include "code\modules\mining\equipment\survival_pod.dm" +#include "code\modules\mining\equipment\vendor_items.dm" +#include "code\modules\mining\equipment\wormhole_jaunter.dm" #include "code\modules\mining\laborcamp\laborshuttle.dm" #include "code\modules\mining\laborcamp\laborstacker.dm" #include "code\modules\mining\lavaland\ash_flora.dm" @@ -2444,4 +2451,4 @@ #include "goon\code\datums\browserOutput.dm" #include "interface\interface.dm" #include "interface\skin.dmf" -// END_INCLUDE \ No newline at end of file +// END_INCLUDE From d6b85396c28368e9514484e1fe6cb7a018e876f4 Mon Sep 17 00:00:00 2001 From: Tayyyyyyy Date: Sat, 24 Aug 2019 11:53:06 -0700 Subject: [PATCH 23/37] Fix parallax null turf runtime --- code/_onclick/hud/parallax.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index 3dde11b975d..e60200b967a 100644 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -152,6 +152,8 @@ /datum/hud/proc/update_parallax() var/client/C = mymob.client var/turf/posobj = get_turf(C.eye) + if(!posobj) + return var/area/areaobj = posobj.loc // Update the movement direction of the parallax if necessary (for shuttles) From 7867bd8b71ab1f738c042d3c93dda7a9a512646e Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 25 Aug 2019 01:36:40 -0400 Subject: [PATCH 24/37] Fixes Stuns --- code/modules/mob/living/carbon/human/status_procs.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/carbon/human/status_procs.dm b/code/modules/mob/living/carbon/human/status_procs.dm index 30653023751..379eb183292 100644 --- a/code/modules/mob/living/carbon/human/status_procs.dm +++ b/code/modules/mob/living/carbon/human/status_procs.dm @@ -7,19 +7,19 @@ /mob/living/carbon/human/SetStunned(amount, updating = 1, force = 0) if(dna.species) amount = amount * dna.species.stun_mod - ..() + return ..() /mob/living/carbon/human/SetWeakened(amount, updating = 1, force = 0) if(dna.species) amount = amount * dna.species.stun_mod - ..() + return ..() /mob/living/carbon/human/SetParalysis(amount, updating = 1, force = 0) if(dna.species) amount = amount * dna.species.stun_mod - ..() + return ..() /mob/living/carbon/human/SetSleeping(amount, updating = 1, no_alert = FALSE) if(dna.species) amount = amount * dna.species.stun_mod - ..() \ No newline at end of file + return ..() \ No newline at end of file From ab155d4ca4875dec24318da8791191e13da47492 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 25 Aug 2019 08:59:36 +0200 Subject: [PATCH 25/37] Implants now work again --- code/modules/surgery/organs/augments_arms.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index bab7dc94e0d..9342b3afd29 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -85,7 +85,7 @@ holder = item - holder.flags |= NODROP | DROPDEL + holder.flags |= NODROP holder.unacidable = 1 holder.slot_flags = null holder.w_class = WEIGHT_CLASS_HUGE From 50d4bb4527aed66e2005a200f9c689a9f8be93bc Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 25 Aug 2019 03:22:47 -0400 Subject: [PATCH 26/37] Automatic changelog generation for PR #12081 [ci skip] --- html/changelogs/AutoChangeLog-pr-12081.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12081.yml diff --git a/html/changelogs/AutoChangeLog-pr-12081.yml b/html/changelogs/AutoChangeLog-pr-12081.yml new file mode 100644 index 00000000000..931893453db --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12081.yml @@ -0,0 +1,4 @@ +author: "farie82" +delete-after: True +changes: + - bugfix: "Implants like the IPC charging work again. They won't get deleted after first use" From e2d6f10c4bfdca0f8ae5b74f3d006a1e921a20da Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 25 Aug 2019 05:11:03 -0400 Subject: [PATCH 27/37] Automatic changelog generation for PR #12079 [ci skip] --- html/changelogs/AutoChangeLog-pr-12079.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12079.yml diff --git a/html/changelogs/AutoChangeLog-pr-12079.yml b/html/changelogs/AutoChangeLog-pr-12079.yml new file mode 100644 index 00000000000..06e129f082d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12079.yml @@ -0,0 +1,4 @@ +author: "Fox McCloud" +delete-after: True +changes: + - bugfix: "Fixes stuns and weakens related to reagents" From 2db9ad67b3b3b858ed84920ec2cffbf009ad8943 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 25 Aug 2019 06:37:24 -0400 Subject: [PATCH 28/37] Automatic changelog generation for PR #11862 [ci skip] --- html/changelogs/AutoChangeLog-pr-11862.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11862.yml diff --git a/html/changelogs/AutoChangeLog-pr-11862.yml b/html/changelogs/AutoChangeLog-pr-11862.yml new file mode 100644 index 00000000000..ecd4aa0fa8b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11862.yml @@ -0,0 +1,4 @@ +author: "Ty-Omaha" +delete-after: True +changes: + - bugfix: "Fixed a bug where hotwiring solar panels would allow for the station to remain powered in the Grid Check power failure event." From 371dc95b8fe7ef8f72e36c1422a1d72103d395de Mon Sep 17 00:00:00 2001 From: Shadow-Quill <44811257+Shadow-Quill@users.noreply.github.com> Date: Sun, 25 Aug 2019 12:30:49 -0500 Subject: [PATCH 29/37] Update life.dm LET THERE NOT BE SRCs! --- code/modules/mob/living/silicon/ai/life.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 5b93402d9e5..51d5820d2bf 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -108,7 +108,7 @@ update_blind_effects() update_sight() to_chat(src, "Here are your current laws:") - src.show_laws() + show_laws() return switch(PRP) From 3d3af66be2a79a878041e6bb9fad119c78366268 Mon Sep 17 00:00:00 2001 From: Eman Date: Fri, 2 Aug 2019 15:59:05 +0200 Subject: [PATCH 30/37] Blobbernauts now lose health if they are not at max health outside of blob structures. --- code/game/gamemodes/blob/blobs/blob_mobs.dm | 5 ++++- code/game/gamemodes/blob/powers.dm | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index aec24116f33..f15f1dc742c 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -183,9 +183,12 @@ /mob/living/simple_animal/hostile/blob/blobbernaut/Life(seconds, times_fired) if(stat != DEAD && (getBruteLoss() || getFireLoss())) // Heal on blob structures - if (locate(/obj/structure/blob) in get_turf(src)) + if(locate(/obj/structure/blob) in get_turf(src)) adjustBruteLoss(-0.25) adjustFireLoss(-0.25) + else + adjustBruteLoss(0.2) // If you are at full health, you won't lose health. You'll need it. However the moment anybody sneezes on you, the decaying will begin. + adjustFireLoss(0.2) /mob/living/simple_animal/hostile/blob/blobbernaut/blob_act() return diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index 2348155fc11..810ff50851a 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -240,6 +240,7 @@ if(C) blobber.key = C.key to_chat(blobber, "You are a blobbernaut! You must assist all blob lifeforms in their mission to consume everything!") + to_chat(blobber, "You heal while standing on blob structures, however you will decay slowly if you are damaged outside of the blob.") return From 8905aa5b791abce249dd155694056acbe09b3343 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 25 Aug 2019 16:39:09 -0400 Subject: [PATCH 31/37] Automatic changelog generation for PR #11948 [ci skip] --- html/changelogs/AutoChangeLog-pr-11948.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11948.yml diff --git a/html/changelogs/AutoChangeLog-pr-11948.yml b/html/changelogs/AutoChangeLog-pr-11948.yml new file mode 100644 index 00000000000..a7048eee037 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11948.yml @@ -0,0 +1,9 @@ +author: "EmanTheAlmighty" +delete-after: True +changes: + - rscadd: "Blobbernauts can now be controlled by players through a prompt which appears when they are spawned by blobs." + - rscadd: "Blobbernauts and blobs can now communicate with each other." + - rscadd: "Blobbernauts now regenerate health overtime when standing on blob structures." + - rscadd: "Blobbernauts will slowly lose health if they are not standing on blob structures while not at full health. +balance: Blobbernauts have been nerfed, they now have less health, deal less damage and cannot break walls anymore. +balance: Blob's \"Produce Blobbernaut\" ability has been made more expensive to use, now costing 60 resources instead of 20." From 21155b69401af8f3e4fe6608dcc5b8612ce6d503 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 25 Aug 2019 16:39:32 -0400 Subject: [PATCH 32/37] Automatic changelog generation for PR #12066 [ci skip] --- html/changelogs/AutoChangeLog-pr-12066.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12066.yml diff --git a/html/changelogs/AutoChangeLog-pr-12066.yml b/html/changelogs/AutoChangeLog-pr-12066.yml new file mode 100644 index 00000000000..71c585e6514 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12066.yml @@ -0,0 +1,11 @@ +author: "Fox McCloud" +delete-after: True +changes: + - tweak: "Ores can be destroyed by devastating explosions" + - tweak: "silver, gold, and diamond pickaxes do a bit more damage and mine faster than before" + - tweak: "drills slightly slower, but diamond drills slightly faster" + - tweak: "Spade is the same speed as a shovel" + - tweak: "Hivelord stabilizer will now make a hivelord core/legion soul stabilize and be preserved, even if it was previously inert" + - tweak: "can use a hivelord core in your active hand to apply it to yourself" + - rscadd: "soulstone in the abandoned locked crates can now be used by anyone" + - rscadd: "Adds firelemon seeds to the abandoned locked crates as potential loot" From b2a0efc0266d3828bfee3aae8fa1b96609120610 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 25 Aug 2019 16:53:50 -0400 Subject: [PATCH 33/37] Automatic changelog generation for PR #11941 [ci skip] --- html/changelogs/AutoChangeLog-pr-11941.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11941.yml diff --git a/html/changelogs/AutoChangeLog-pr-11941.yml b/html/changelogs/AutoChangeLog-pr-11941.yml new file mode 100644 index 00000000000..5654ca5bdcf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11941.yml @@ -0,0 +1,10 @@ +author: "farie82" +delete-after: True +changes: + - rscadd: "Adds tip text to the examine text of the ambulance trolley about how to attach it" + - rscadd: "Adds tip text to the nuke when trying to use the NAD before deploying it" + - rscadd: "Adds tip text to the fire axe cabinet about how to lock/unlock it" + - rscadd: "Adds tip text to airlocks if they have a note on them about how to remove the note" + - bugfix: "Can't put the NAD in the nuke now when it has the NODROP flag" + - bugfix: "Locking a fire axe cabinet is less weird now. No odd 5 seconds sleep" + - bugfix: "Can't put a nodrop fire axe in fire axe cabinets now. Duping them" From c22edf26dbcc0486cb251c2058a21020691c8666 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 25 Aug 2019 17:38:02 -0400 Subject: [PATCH 34/37] Automatic changelog generation for PR #12038 [ci skip] --- html/changelogs/AutoChangeLog-pr-12038.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12038.yml diff --git a/html/changelogs/AutoChangeLog-pr-12038.yml b/html/changelogs/AutoChangeLog-pr-12038.yml new file mode 100644 index 00000000000..f241cfc6c23 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12038.yml @@ -0,0 +1,4 @@ +author: "Shadow-Quill" +delete-after: True +changes: + - bugfix: "AIs not being able to restore their own power if in an area with an APC." From dd346515e531186a059ead772553c6d5a398b3db Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 25 Aug 2019 17:42:48 -0400 Subject: [PATCH 35/37] additional suits --- code/datums/outfits/plasmamen.dm | 46 +++++++++++++++- code/modules/clothing/spacesuits/plasmamen.dm | 50 +++++++++++++++++- .../under/jobs/plasmamen/_plasmamen.dm | 3 ++ .../under/jobs/plasmamen/civilian_service.dm | 21 ++++++++ .../under/jobs/plasmamen/engineering.dm | 7 +++ .../clothing/under/jobs/plasmamen/medsci.dm | 14 +++++ .../clothing/under/jobs/plasmamen/security.dm | 7 +++ .../living/carbon/human/species/plasmaman.dm | 31 +++++++++-- icons/mob/species/plasmaman/helmet.dmi | Bin 25320 -> 35017 bytes icons/mob/species/plasmaman/uniform.dmi | Bin 11383 -> 46219 bytes icons/obj/clothing/species/plasmaman/hats.dmi | Bin 2825 -> 4234 bytes .../clothing/species/plasmaman/uniform.dmi | Bin 3092 -> 4609 bytes 12 files changed, 171 insertions(+), 8 deletions(-) diff --git a/code/datums/outfits/plasmamen.dm b/code/datums/outfits/plasmamen.dm index c756a3d30ea..c14eafd08f2 100644 --- a/code/datums/outfits/plasmamen.dm +++ b/code/datums/outfits/plasmamen.dm @@ -15,7 +15,7 @@ /datum/outfit/plasmaman/chef name = "Chef Plasmaman" - head = /obj/item/clothing/head/helmet/space/plasmaman/white + head = /obj/item/clothing/head/helmet/space/plasmaman/chef uniform = /obj/item/clothing/under/plasmaman/chef /datum/outfit/plasmaman/botany @@ -61,6 +61,12 @@ head = /obj/item/clothing/head/helmet/space/plasmaman/security/warden uniform = /obj/item/clothing/under/plasmaman/security/warden +/datum/outfit/plasmaman/hos + name = "Head of Security Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/security/hos + uniform = /obj/item/clothing/under/plasmaman/security/hos + /datum/outfit/plasmaman/cargo name = "Cargo Plasmaman" @@ -79,6 +85,12 @@ head = /obj/item/clothing/head/helmet/space/plasmaman/medical uniform = /obj/item/clothing/under/plasmaman/medical +/datum/outfit/plasmaman/cmo + name = "Chief Medical Officer Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/cmo + uniform = /obj/item/clothing/under/plasmaman/cmo + /datum/outfit/plasmaman/viro name = "Virology Plasmaman" @@ -103,6 +115,12 @@ head = /obj/item/clothing/head/helmet/space/plasmaman/science uniform = /obj/item/clothing/under/plasmaman/science +/datum/outfit/plasmaman/rd + name = "Research Director Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/rd + uniform = /obj/item/clothing/under/plasmaman/rd + /datum/outfit/plasmaman/robotics name = "Robotics Plasmaman" @@ -115,6 +133,12 @@ head = /obj/item/clothing/head/helmet/space/plasmaman/engineering uniform = /obj/item/clothing/under/plasmaman/engineering +/datum/outfit/plasmaman/ce + name = "Chief Engineer Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/engineering/ce + uniform = /obj/item/clothing/under/plasmaman/engineering/ce + /datum/outfit/plasmaman/atmospherics name = "Atmospherics Plasmaman" @@ -133,4 +157,22 @@ head = /obj/item/clothing/head/helmet/space/plasmaman/clown uniform = /obj/item/clothing/under/plasmaman/clown - mask = /obj/item/clothing/mask/gas/clown_hat \ No newline at end of file + mask = /obj/item/clothing/mask/gas/clown_hat + +/datum/outfit/plasmaman/hop + name = "Head of Personnel Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/hop + uniform = /obj/item/clothing/under/plasmaman/hop + +/datum/outfit/plasmaman/captain + name = "Captain Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/captain + uniform = /obj/item/clothing/under/plasmaman/captain + +/datum/outfit/plasmaman/blueshield + name = "Blueshield Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/blueshield + uniform = /obj/item/clothing/under/plasmaman/blueshield \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 60a0c754438..fef732ed01b 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -93,12 +93,24 @@ icon_state = "warden_envirohelm" item_state = "warden_envirohelm" +/obj/item/clothing/head/helmet/space/plasmaman/security/hos + name = "security plasma envirosuit helmet" + desc = "A plasmaman containment helmet designed for the head of security." + icon_state = "hos_envirohelm" + item_state = "hos_envirohelm" + /obj/item/clothing/head/helmet/space/plasmaman/medical name = "medical's plasma envirosuit helmet" desc = "An envriohelmet designed for plasmaman medical doctors, having two stripes down it's length to denote as much" icon_state = "doctor_envirohelm" item_state = "doctor_envirohelm" +/obj/item/clothing/head/helmet/space/plasmaman/cmo + name = "chief medical officer's plasma envirosuit helmet" + desc = "An envriohelmet designed for plasmaman employed as the cheif medical officer." + icon_state = "cmo_envirohelm" + item_state = "cmo_envirohelm" + /obj/item/clothing/head/helmet/space/plasmaman/genetics name = "geneticist's plasma envirosuit helmet" desc = "A plasmaman envirohelmet designed for geneticists." @@ -123,6 +135,12 @@ icon_state = "scientist_envirohelm" item_state = "scientist_envirohelm" +/obj/item/clothing/head/helmet/space/plasmaman/rd + name = "research director plasma envirosuit helmet" + desc = "A plasmaman envirohelmet designed for the research director." + icon_state = "rd_envirohelm" + item_state = "rd_envirohelm" + /obj/item/clothing/head/helmet/space/plasmaman/robotics name = "robotics plasma envirosuit helmet" desc = "A plasmaman envirohelmet designed for roboticists." @@ -136,6 +154,12 @@ item_state = "engineer_envirohelm" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 10) +/obj/item/clothing/head/helmet/space/plasmaman/engineering/ce + name = "chief engineer's plasma envirosuit helmet" + desc = "A space-worthy helmet specially designed for chief engineer employed plasmamen." + icon_state = "ce_envirohelm" + item_state = "ce_envirohelm" + /obj/item/clothing/head/helmet/space/plasmaman/atmospherics name = "atmospherics plasma envirosuit helmet" desc = "A space-worthy helmet specially designed for atmos technician plasmamen, the usual purple stripes being replaced by engineering's blue." @@ -167,6 +191,12 @@ icon_state = "white_envirohelm" item_state = "white_envirohelm" +/obj/item/clothing/head/helmet/space/plasmaman/chef + name = "chef plasma envirosuit helmet" + desc = "An envirohelm designed for plasmamen chefs." + icon_state = "chef_envirohelm" + item_state = "chef_envirohelm" + /obj/item/clothing/head/helmet/space/plasmaman/librarian name = "librarian's plasma envirosuit helmet" desc = "A slight modification on a tradiational voidsuit helmet, this helmet was Nano-Trasen's first solution to the *logistical problems* that come with employing plasmamen. Despite their limitations, these helmets still see use by historian and old-styled plasmamen alike." @@ -199,4 +229,22 @@ desc = "The make-up is painted on, it's a miracle it doesn't chip. 'HONK!'" icon_state = "clown_envirohelm" item_state = "clown_envirohelm" - visor_icon = "clown_envisor" \ No newline at end of file + visor_icon = "clown_envisor" + +/obj/item/clothing/head/helmet/space/plasmaman/hop + name = "head of personnel envirosuit helmet" + desc = "A plasmaman envirohelm that reeks of bureaucracy." + icon_state = "hop_envirohelm" + item_state = "hop_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/captain + name = "captain envirosuit helmet" + desc = "A plasmaman envirohelm designed with the insignia and markings befitting a captain." + icon_state = "cap_envirohelm" + item_state = "cap_envirohelm" + +/obj/item/clothing/head/helmet/space/plasmaman/blueshield + name = "blueshield envirosuit helmet" + desc = "A plasmaman envirohelm designed for the blueshield." + icon_state = "bs_envirohelm" + item_state = "bs_envirohelm" \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm b/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm index 7659805f3a2..617e0284848 100644 --- a/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm +++ b/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm @@ -29,6 +29,9 @@ next_extinguish = world.time + extinguish_cooldown extinguishes_left-- H.visible_message("[H]'s suit automatically extinguishes [H.p_them()]!","Your suit automatically extinguishes you.") + if(!extinguishes_left) + to_chat(H, "Onboard auto-extinguisher depleted, refill with a cartridge.") + playsound(H.loc, 'sound/effects/spray.ogg', 10, 1, -3) H.ExtinguishMob() new /obj/effect/particle_effect/water(get_turf(H)) return FALSE diff --git a/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm index 79253894d12..69697d3be6f 100644 --- a/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm +++ b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm @@ -84,3 +84,24 @@ H.ExtinguishMob() new /obj/effect/particle_effect/foam(loc) //Truely terrifying. return FALSE + +/obj/item/clothing/under/plasmaman/hop + name = "head of personnel envirosuit" + desc = "An envirosuit designed for plasmamen employed as the head of personnel." + icon_state = "hop_envirosuit" + item_state = "hop_envirosuit" + item_color = "hop_envirosuit" + +/obj/item/clothing/under/plasmaman/captain + name = "captain envirosuit" + desc = "An envirosuit designed for plasmamen employed as the captain." + icon_state = "cap_envirosuit" + item_state = "cap_envirosuit" + item_color = "cap_envirosuit" + +/obj/item/clothing/under/plasmaman/blueshield + name = "blueshield envirosuit" + desc = "An envirosuit designed for plasmamen employed as the blueshield." + icon_state = "bs_envirosuit" + item_state = "bs_envirosuit" + item_color = "bs_envirosuit" \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/plasmamen/engineering.dm b/code/modules/clothing/under/jobs/plasmamen/engineering.dm index 1429ef28929..e83eef2917c 100644 --- a/code/modules/clothing/under/jobs/plasmamen/engineering.dm +++ b/code/modules/clothing/under/jobs/plasmamen/engineering.dm @@ -6,6 +6,13 @@ item_color = "engineer_envirosuit" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 10) +/obj/item/clothing/under/plasmaman/engineering/ce + name = "chief engineer plasma envirosuit" + desc = "An air-tight suit designed to be used by plasmamen exployed as the chief engineer" + icon_state = "ce_envirosuit" + item_state = "ce_envirosuit" + item_color = "ce_envirosuit" + /obj/item/clothing/under/plasmaman/atmospherics name = "atmospherics plasma envirosuit" desc = "An air-tight suit designed to be used by plasmamen exployed as atmos technicians, the usual purple stripes being replaced by atmos's blue." diff --git a/code/modules/clothing/under/jobs/plasmamen/medsci.dm b/code/modules/clothing/under/jobs/plasmamen/medsci.dm index 5aa61e7faf7..69e14c0e878 100644 --- a/code/modules/clothing/under/jobs/plasmamen/medsci.dm +++ b/code/modules/clothing/under/jobs/plasmamen/medsci.dm @@ -5,6 +5,13 @@ item_state = "doctor_envirosuit" item_color = "doctor_envirosuit" +/obj/item/clothing/under/plasmaman/cmo + name = "cmo plasma envirosuit" + desc = "A suit designed for the station's more plasma-based chief medical officer." + icon_state = "cmo_envirosuit" + item_state = "cmo_envirosuit" + item_color = "cmo_envirosuit" + /obj/item/clothing/under/plasmaman/science name = "science plasma envirosuit" desc = "A plasmaman envirosuit designed for scientists." @@ -12,6 +19,13 @@ item_state = "scientist_envirosuit" item_color = "scientist_envirosuit" +/obj/item/clothing/under/plasmaman/rd + name = "science plasma envirosuit" + desc = "A plasmaman envirosuit designed for the research director." + icon_state = "rd_envirosuit" + item_state = "rd_envirosuit" + item_color = "rd_envirosuit" + /obj/item/clothing/under/plasmaman/robotics name = "robotics plasma envirosuit" desc = "A plasmaman envirosuit designed for roboticists." diff --git a/code/modules/clothing/under/jobs/plasmamen/security.dm b/code/modules/clothing/under/jobs/plasmamen/security.dm index e4332d5f5dd..d6f85da06f7 100644 --- a/code/modules/clothing/under/jobs/plasmamen/security.dm +++ b/code/modules/clothing/under/jobs/plasmamen/security.dm @@ -12,3 +12,10 @@ icon_state = "warden_envirosuit" item_state = "warden_envirosuit" item_color = "warden_envirosuit" + +/obj/item/clothing/under/plasmaman/security/hos + name = "head of security plasma envirosuit" + desc = "A plasmaman containment suit designed for the head of security." + icon_state = "hos_envirosuit" + item_state = "hos_envirosuit" + item_color = "hos_envirosuit" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm index 0f158f6f9f0..b75132c7bc6 100644 --- a/code/modules/mob/living/carbon/human/species/plasmaman.dm +++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm @@ -62,13 +62,13 @@ if("Botanist") O = new /datum/outfit/plasmaman/botany - if("Bartender", "Internal Affairs Agent", "Magistrate", "Nanotrasen Representative", "Nanotrasen Navy Officer", "Head of Personnel", "Captain", "Blueshield") + if("Bartender", "Internal Affairs Agent", "Magistrate", "Nanotrasen Representative", "Nanotrasen Navy Officer") O = new /datum/outfit/plasmaman/bar if("Chef") O = new /datum/outfit/plasmaman/chef - if("Security Officer", "Security Pod Pilot", "Head of Security", "Special Operations Officer") + if("Security Officer", "Security Pod Pilot", "Special Operations Officer") O = new /datum/outfit/plasmaman/security if("Detective") @@ -77,15 +77,21 @@ if("Warden") O = new /datum/outfit/plasmaman/warden + if("Head of Security") + O = new /datum/outfit/plasmaman/hos + if("Cargo Technician", "Quartermaster") O = new /datum/outfit/plasmaman/cargo if("Shaft Miner") O = new /datum/outfit/plasmaman/mining - if("Medical Doctor", "Brig Physician", "Paramedic", "Coroner", "Chief Medical Officer") + if("Medical Doctor", "Brig Physician", "Paramedic", "Coroner") O = new /datum/outfit/plasmaman/medical + if("Chief Medical Officer") + O = new /datum/outfit/plasmaman/cmo + if("Chemist") O = new /datum/outfit/plasmaman/chemist @@ -98,12 +104,18 @@ if("Virologist") O = new /datum/outfit/plasmaman/viro - if("Scientist", "Research Director") + if("Scientist") O = new /datum/outfit/plasmaman/science - if("Station Engineer", "Mechanic", "Chief Engineer") + if("Research Director") + O = new /datum/outfit/plasmaman/rd + + if("Station Engineer", "Mechanic") O = new /datum/outfit/plasmaman/engineering + if("Chief Engineer") + O = new /datum/outfit/plasmaman/ce + if("Atmospheric Technician") O = new /datum/outfit/plasmaman/atmospherics @@ -113,6 +125,15 @@ if("Clown") O = new /datum/outfit/plasmaman/clown + if("Head of Personnel") + O = new /datum/outfit/plasmaman/hop + + if("Captain") + O = new /datum/outfit/plasmaman/captain + + if("Blueshield") + O = new /datum/outfit/plasmaman/blueshield + H.equipOutfit(O, visualsOnly) H.internal = H.r_hand H.update_action_buttons_icon() diff --git a/icons/mob/species/plasmaman/helmet.dmi b/icons/mob/species/plasmaman/helmet.dmi index bfc863116a8c84495f1aface379f8740efd71a3f..ebcb096aa7b6fa2ace33881d0b1ead1c5d155873 100644 GIT binary patch literal 35017 zcmd42XIv9ozxE$MKtx2h(wmBkfHdhK1XRF6@4Xml(mT=uq9R?SDkUIIItbDsC{23r zB}nfj5JDiyJcE1hyPR|XpU?B^f6fcdWQHVb)~vOD-?^@9Le*83XwEU8gFqlOj~_kM zgg{8y0QdM0H^zf+9DTI)-5*-I!CY;f-EEy5ArSAB)C3vFX2J7{)+bjU-pyTA z(-ly7b^U?soBIh&;csqI{E=KywbRdC8UBHteD_z-^}WY--ZMxx)lzBpb>8LsDd|C5 z%`lUhFR>7s`g>zKa_hl(_Am)~8}lW~#%wQTy-rr=cLlZUw;62Ajr3MFuhZMitvQ(s zt8*-x-O+p)ZlzsPVN9X-Ih@}?`@@NAc4j)zeFK%?XvLVlwd@*_L!xpvyMxk8i0_Ag zLnT7)nc-`p^wbYr%J&tNVV{EH8rd(OdztB+pxH;AsUfZqSIle4UM;?E#hqOS6G-8! zq{7@U{;+UCWJw;Gcv5Bcdw82ddj9!wG} zb)W7&G3uKCux9e{;_;>gOYlN{)3b9v$g4|a$!Ucrt`4&9ImW9A?iQ0vrO#viE3)N` z-;>N91?i*VHY$1}>rO9dPKGXcwm%?{F;RWkrzDIoLm*cnj~~iwd#7y9_i{dNww}OuY--WC*$B)ZBkzg*r=z5jJb$W6C1m<}w`KFxMW_KYbz+}v{%ieQ^ zxH;|HC$m3cFrt3;+UtuytX#-mYIdPrtdiNw@adj8eU}jeAK=$szq_~PZr$`@z z{q-C+-Z-C*+u2WuEWhC?vA{H|O&xfsACWCBj|pZc*RN~{eoUm4O#@o+h={2L-MS}F zx|hml9G`?ewYMVA#|7Y^+Ri93?<@o1b6I>xnLP z6jGU6X`XD8hub2+fv<|Ub?Zr4LDuUZKkh$m|8-ccV_|XawEfllc6LIaV%VnS&>RzZ z#8(m)r6CoXcH0*csw3ZF+C2d&iBXL$<88NOYnNbcVq$xP1BqWg5hQddqd)f11o&qq z(ag2J#~ywDnniNn{hon=K~`>Vb1Jid$(~o&e1m%{>X&Nd!GZhNuV3%L`#u0cktpAw+yKhYDJoi@PxC`~mevBTmN3Xy z!IYSi`wpl0>I^fDy@t(J7@g&Wlfdr<8J*~PuTWh>9$al{3&=LDc zERe{ElA(xR>CbquEcRGUP05zwAwD?0f?C_hr?#enmQCt8v4`>LF7|WGuo+Rn&_xKs zP*kmt=J*LH@bXvQ1KJKNg@FvKzO~2n!*DT?Tj;E)%4fo+)`&F+~fzn1Yit$PZmXHf< z_xX%k)4G+1zv{3`xxaIms(e$IPeSbo(WYQ892Ou_nO1%#d0o4>&fd22%~`=pT(5i0 zVvoq7p``_LjE(5V*{lb@Yabh?G*n#nbMqY=9xn9;qN|^&(t;f$EL-yCY4LWb`}pPG z^Te#uo{3kt(7Zj0O*vI6o=w`b6dZ?7S=0m(eb%#xEl;dLWwT&nfm*lALYvFURu$Rq z!H}A;$GUdcGd1u7xrhMfz$qtWDtH*f)FqhM^>v)01D>^CLJ^?lg}wdlNgh|4_x+L4 z(fqU%-Mq<3LrlwMHE=h#hgbADYyaRHjB!!B#6$yIRa$|scHf9h=Q#U|cuf{@N0F*f zOBb>!--WhFD`Sr;S$gSNyT)P=e%3;Y$MSYU{lSo-?n{j--|TA01Q32wa;=AzLDS9Rw=5%bfvon$cZ z4S1aL5gGmcv)5R!{tq0yxN-n_&3N{W-q3Az)#wH7&lVA3u6zeVkxaqNTC24bb?n!A zwMB+U*Uno-ScscfwHHC6;^UH{Y24~aZgcZXW*immj^F&ER`;Z5Y15kl>dj*GOzD9i z?7S`K*vGC&CC4+Reyq_ZuSm~EI_Ma`5x>AleS^22hM8PN)d|pQQPc6B5;-@y$r${R zj3%mLTKPwR#x89R87$B-oytZhj$<@wfU)d4FAAR6d* zmm!*%RSGl;y#>$oqbOQ2to&dq*Cac^i4ryipVWELmMW?l?O-u|XU=er!o0U+`F!Xy zJ`pm;TMxTp+U0pxkto38#?nfT)$|)-ZtL;=K;DWn-+)|<5c0(73W#|1y8l%R$TfN#3lcXEetx zbjB|i+DcMzei$E`Au9{AOlIuCK0~%`5Oqx{Kf!W8P}YyDUey{&XmN~6?F`>~Pgx!H z;7L_uk3dcpl@eN6q=E=oZ*}pO=RDt^KRmMOfsbQ24zC!NO!KYy(5dKGw7X_~ zJbwMoB}UpCo3pi+-z%I5X2g{qiCz^wucJC2pZo3e?nDk`*4$_v>adZvn{@WaD+>E% zs0rs`XTi^pGRZ<1Hea3Sbw}yR3HQRX1`->}EAJuh={pIq{@iTJ>$i44MK!syq)Wbs z4}tSZ$I`I#@dh$KMpRt&#%G#zq)<28r|vZNR_UUm_Y!fVqq?_l-gMKApt$5HN3dPB z38{Vv?kKA&itMbovfLu21?WT;)&%?v@b`89whjxwQ%;1A9}r*hIyHnvcSgHyXI$QZ zGNS?1Wro?~6aS6oe4sQZJ(16-jjs>&11y^-_Zq?4n!s(Ts$f)Q+G>02RdTGGIp}4vPiQ$Bs`@rY`0g=e3hiWARbtp>XTN-W?c{`T(!m~`^)|}$ z@ZdI~u`UE$TzzYOkMB8tbBpp?)j~97W!*qCCx1*R?L${*xO|u}5d50!5WdVy3xV~0DH3R?it^_{&iLY-?VFFx!#hhj%`c|43_S9>$ zhS6(!X1t3RW*+HqE^DZ5_eWNWG$~bOs??vcoCf9`L|!Fu%s3L_)1w`g7V2lIP5D_1 z)ZlMf$z@>*n{$jz)>zfx9chYa_#cc$&pk+YNScExX6o$vWv7%>(RCUh0i{Y`>(6R4 z+oQMN9UYVlQ3wOFPzItujiC=uUt_{uuj$t!AKu<_eQG*De^5Toez3N{cvV%SICVSs zVGwocJZXt7b>RcDD9QJLEVI<)L~Pt^B<4Z>Y7Y{8IlPf&I14e`8?ni}bwQ(zQ0qU! z49=w8g@g-N1u5?OY``@&|FCYgskd<>m_Z)~H;H&ZP?GNRs(^hz+0g=g^X+zb4hKBy zKk?A{Xk_au*!lZs#KY~e2p|geAXN)MT;@B{vM8qADqch^ECl(GQcNc zgbP+g))d!z@QnXG#E`KnUsaGBSL8RJRya zEk)Acax24(;CE$}Y6bc^Ln!lshH3C@lU;wG++@J6Sl=Yr_GKpXer)7G>AuG+Tw0{? zeD%YpaN0UYvu_Ep$(i6~wJlwaz@Fh6Mn-@6tBK~=wM-WIG#>`>lk=k<|2bx+El!TC;|Gn!} z5S5{%fcoGpi^sc{hJu9T#QV=w@O0AJb=#b`CWN6YntVP4X`o*_jTCq3dxEZFnKPaArTXZtIHW=86ef_srd zcc9j9YU=T*F324YB~{0$-_$rwT!(&`f~#xwpHdyjI03AQP35s)o%_<{M}KtHSpFJw zhVD+$22lrnY*J{lG1rDGwQ*hc-u}{LCvdKCsu1-Ms>Ah=Hgn`aiAnAq;6biSMqq`s%y2Hmp?UYY(thz$z3 zmN;EL{+q7A{q}7$b*qm2HP&VEF6DuCK`eoiRVp&#pZ3j2jZ1c;G`#tyE-~YvyO}p{ zK+zX7iFnqkdv$}A$5oPm|Kj5EmrIQv+}5o5$v%jr3(pr51SY64eUycWt&>#JOwKW9(iLQT{tB5+rSM2rYbc8 zToNkq8Ap3^e%z*!;Y74DnzeIS0SL)Fzp^nS!3D{zYqZX6A#vMm5MyPh%a!Oy_><d+j9cdroZUE_TcyXIgMTWo+TYUdbrOa zahyug4bde28)*R|2j#8TnyBU6vS5@e@M(jOR)ltTr-lCNa{D}Z9h#$ayu(V=de3j4 zqk}VgrGWT|-az|ByzUzr`3DckB3>027tfyJp4WpRiv6;C@k(?$&tu4&96gQxkXBog z7uMELkXl<7Lp4#H_90CTi}sDa*AF&;niW%1$(LwvDQHBrKC#)ciH2?KV&YGOjt*ty z_T6*Echa*PVI}JtGY(49$x)(};*hOC(mw((9FT^|BNCY3B{kVek#;!*ib*=4y@C-yW%pU#?m<)^zZ4ULQ*GYNg@xG(~ZEX;eH_k9P8 zWimSR5d*9jfGxl+7f3A1^u`=q-hh|lXnoHeqaIu~NWPaMQ&d#(t%6kjzu{IOVfD?~ ze)8ACf_%Hoq#L_KzS=Z$Iru zOql>2E3z27!%72UJi?af|5WXrE%t;q%61U|kN4nD5)`GB&-+|n+g=;pPzfLSQaDvs zi!2*o62a}9pSIIge!zl@24~!DfZ$q7G%_-pU@niZDRVo00l{|a8A|Z*?d4}u20#E3 zHO(#_(Qs|h!e;~7{^^*ujsyXgJDH$VjgjM?`lD595$~@5&Q*Vig}J7`J!1;%E}$%- z4YZ{?@ySi^&t2%1oDI?$-6|Lbxe0`0VgL~EwVg9BBQsS-<_U6V``1yU8lt_Z za*t@1ghRx|Jv4<05B+gyz%H&0$DzCdf$MBJm%mU-38Y}@ux+`-&Wgh?eE?U}lw1*= zo&&`SbaEZ_3ZLw$w=??5C`vt6b7%*pcIbV>!^7hj_GE2+{c}Mi17*r}^fz+9*5JXkub=&kXCA)trQZFU6a=l$a9q4!xAb01GvFG%$_SnQpjSaoxLrxmeyAtyl?Z8z*n#ulw-hH;MgZ)9_WjUgB5H|3a++^B1GrrE>ovkG2iGmr? z?2ur2>v(v}G4j%y(tjZq33)Lhk{5FB4EAX%-n%yQMnITwJq)LH6dIU=e z*kfXek-kqUFEWx{KEPL1R(={n>4=TNji01Q(#(#GD1a*qeLc{KL9Phr7ubzYe50hx zz}uyK7ed!Z+#y#Nyc@4pS2r%h|K_Dx=bSaXdPjOyL5rGI4&cvMg|!8$YS1l(t}>Wq zrT2ZeCS6Bz&F)6Hkc@*EU9a>Baz~)v{4c1wyWJQYi3MKauzao9BQ5V}kqN0Nn~Ny` zI4u|%R`fA4HoN3{=_Me=+v75F-~5@2ayOt z)9kD)XUq9`@S@%W$8!*{cEs^1Il0INqTzsly?5^F&6{t)p&t=mUUyc>5YB3B5>`(elUl`_2R9yd21uY6FGsD8wUj((WElJ@b64viXort zDH;Op`lID0!BHL{#wD&K>RvHq-h9ak4q_cnK3buW0WZn-=q}oj@;e zkXK(E85yyh5`$(Cv6lz%hykYEyz|d%J3>9Et`%}&1X|V%Mt|#SF0TI@fz8$O6wuPI z*YxhTs~5kK%@KmB!_JwEnU8U{d<=U#DV6#sxZPvYChP6!(KxN~{7xVpY_HESzt7*T zw7pWH@FFmmxf$)IyGqTB_rns-vm~4`{lBSZFHT`f5JuJoG<16dmCnA?>&;3~k;GiU zM(SqkO|vABEqq2X+q5vp;btS53#U5Y{r^aF4h4WLZtUuzV&u`0zP`BwVJa0MR?9f* zXnnBbx2`Ebs)HQo9%pR9&sA$izF7eDj|WE={HR-6T>SD;*g7B8XEe4V%f+R{y+ml# zoc$xa9u|jw@vB%mMJSFwEFXnI0JG_Pwy0S&=0Y~lYD^R2nw@#yW9vZ=; z6OgO9lnB05YA%tnM{6z_&WR>cjP7Y=cP1`_Ke9HITQK-aQ`Bu)`ShQgB=}nfn1Em> z$10;!tr~1V?zCgoF`?cg9~6B-ZFy>*H+y(zrD(&=Ne@)fvdObg4=_bo^0r&ppMc*b zTwG?aW1L-oIUdcg*;%K}y(2zWf_>;f+{y=L@$j6u7g|r)G~kA~3Mtp;iD)0QvO;3& zPoP6K*e*{C{Mn-H-WYsIc5z?B3*?w3 ze05|#9+g;=syolOClImHpbgCu*n@2f%cYN{E(ad%h0+I<+ao(^2#gZFY-v9T zal794AV+?UvR$5ny^T5GXaJok3UflkMo{{eroGB023u?`<5OtoS}atBJK#`R0f$XX zq>%#p>^y>O>laX`7OC3jBK(g{DF3(|4a7VjJ5I?^o&JVG%q2b}2;#i|9T|HpW-<*Dzp8iVu zzyWBsbbcE%Rn*WR;rp*bm=d(@5k#t=`Zk5X;ft%!NK4kv-l-y)T&(CoZS5B-jt*xH zgTHYS(R0o*+9S*(;4t2=J(YyUj+X4!+PlVjhp5`zW@Q49v-_cLU9{QB)vac_8- z)kM(p2@l*KE!wMs@CiW{^*tz8v3Om{l6m4=p59GVq5f$_DC>YuwP9tW4P@QH*UQfo9}s|tJz3y(>DXmm zvhDTtA3N9~ut4kSF|d3RO9I5$DP>7!DP9y+Uq^$4(<9uof&Be z_p4fOw%j6ZCKd0GejWLl^~<%OF~$X2Qx3?<+ig(El1GX4jmbchszk1WE8^sb!Pdgr zO6np!^zSS{EeeU)+t zOQWdjjr;-u(6Xs?|;?<-@WBF_QV#4fNNP#$vh&$}&*faPG>6FRdwSHB)Pek{9@7I0rfQ((qswmQpQ~iv4`= z5@A04%E8XuU6T0Z6SF=>hQOO#Ttm}^JFr5>`tQb;{5sm&Ejx|`wgvjAg}LM4>59W! zVh)qfaiE@7-D!L-{mYkkVPWSY!reeL;yEHs$K(CL<7Yr~P|q7SAYlLGjA3VIWyM1~ z;#M&*hX*#y5T#QMvEcy{sWom~`kDZHUzGJ`FZ^~U(M+-=QhzMjJ<+tSe(SMD47~2m zDAL6xAs*w@@=lw`IT@JxOk^IMQ%%h~3|#39s(&1hL@NcQIl~`vNc<5c4?SVLP+{Bs zMWCTnn@Ow3Q*73}_->+9H8H)0jJ?WvnxXjU71JAUXM()(PTifE3)u__Jh1$MUI%tO zN6mXYmM#S@y^adSQ@X|1XnU<$T9HM0G;rgTfPf=*4BgYJ<_D9|c%c#2PzNH%K;Vh+ z`?XtKqc>ldrh&@Qy`yM{CQ$BrC=v@W1%txZFNp2w``2VyB-EgNdEq_99njR2kYg_W z|NY=q$8Yz*K?l=EgJN7O*`VF}7N&lgYVV`3-vT;@4h))fB z70E=*O*;9FHc-WQY&+;m;;~@5ChX(3fHp`Vt%$>@@3C7H6k5Rgu=s!FjxV6o{w+aj z$+K?6a9ta;%3bSb*4;P4T6(rTd9&jTpPC?i2`)R>cyz+;CAQ2sy>i#{w0mkgMkgON z^HsP#9ugJ~u_G~@b#Y@SVVe1Vd74X5oqW7%cBcUNVxQefd5=B2^IMZ0KTY96?vr={ zkGh#tAd+c;#(&qZbUPUv9py>$QH#b6`$jDya%cbIrh8>7AYXlYDVR{i8d9@`7$4;V z?v?d?t>!8KY`T%Dn39#cDxwpB@^UDEOYg(K_NDt=^iPJqkFQ;f~WUz3?>YUp3Sm`Ziq}k9L{n#_R}qPT{DB*aFBE z1~t?0fQlopIr7L?R=o3Laf=_8imi@z&-}$AGcz(GBW&4Ak9coFQ}*TN)@GVi%_-G| z`nj{3hP7k`>5^Ur9CV3Fc5TxH%>JOH{{)D&J-567t`_kzG2g+;jo1~h+cz6@75fHo zg?A%I$2|{iTLf%V0;L_0IQ`Yb@oL}9n+r(@VPxM5mjuw3biIb={ss_C`+|OW%u7ju zfK7zgt)s?A2ebj*MbNw48bj5kb=b!Cv==ZJ*!RKra&I0v=HFcK`e^NZC|P}k+lf~f z8gh`Oub0VZF8GlT45`R-kuC(i{`4u6I!F2OQi)n)Tg{r*&aM~c;0)B|6i%vLcnhGA zH*em66>9&SZ;<_k^2C=oTm-uebF}q-QEO`~iqeY2iR6-i9HNhM@dE;|6xq5sG4bH> z<4@Ikm@nIvnW-x6%u_6Zo(Hg$GwEavfzSG>UH=`CXaWZRg=B{N=^2wn!G2nD0fGcX zt^bg^0K4P4j1V_Gpd_R&QlfVb^;tMbacU`Y0RggfbaZhw>=vqq7Knc+TQ4(P!|=%% zGZPc!+$-v@-mAq>h2PyZwGMT;KRkj|z=@w$n`NIY)G;DOY~m2FS5KK4bPfz8S~?L{ znjde#T_+by*8z7u`Sx`9yIP&O@xN3csiVg_kveu1tU{zbJUmCCpE`Dgp-WsZZh;N? z4&MgFp>s|xu>&SP23ME4+&$MZ+W&=z0W)} zeJa3maB@z`rZM#=vUWrBE>KVDF_xWytJ1ceSKw-?I3ZBBi=a!kYvTr6!mqR4`a;C8 z$yE#k+-N6T0(Kc%yN>#dM=0AgI`qMb0(2N!%MZX)OFIICzu}}=w>%OU5}i{`XJ75^ zW#29?w4bZAtiqnOj7;fbPrPq{aIwCz0Xoq~ezISuN0yP1?LmJTf$t(b8f@8Z+uE(a z`umc7TuEszdwcjG)qz-9{d)YNx&9o*aZIU39GU2iU1k{m`v#f$l9}$|$5$ZSwA9YB zb{jFjAH11;3PD^w<(F|@xm!B|K!U4BydklR{_wqfT}pmkuTYC*XmDg@@;ay zT9lKMmXze;hv}WDFI%T6-{?C<3>wfH)OPco&Ub&Dm+-4Y9VD{luVB>dX@arrW&d@n zDmoOv2um--CcF9b@I-#IM1GWZywCjj!R4BpB{tN@8uqlu2O8%u=H4Dt#mcD9ogn@x zNm(=hh7$STP@=?<{3e3-cvE5EBfJ2G6nfi;8_PxB?&X+M>D&D#X-6IH~n_aBy8zBp}e&??B#&(-VHYeVCqIX#e!7hQ_6mlrhD^ z4Ha;Rz-A9`{00olIrj)|uDSr~RUS9)z|Wtr6EP)f66hh;-hj#k5FPv|8*E+#k*%T> zMr^xRC0f^&!_W^85CK`~aLPog+tJqT!fma(I2_J?vVy8e+z%g3;Mvu`;p2ZFlk~2UoR9laV0-0uZo3Q5fS{s64gGOaTZDWhx4TKON%Tc) z9_AMt?qI}96F><3m8J@V@(FS5Kd(C_k!yP~>AP(tu%PE}s^l}%JAQM4&w^fe1%Cis z^%7L)m&4F)n{wFs2Fd=T<|B`m_Vyp7|2Ns^G%OVjP8(W^R$z_c4rpX4MPZ^W_5{TP zmlg!k9L!VO$I*lMDMLWQCcvC?2sX?EU?P%rbdFY6n1Gu=b~JgA3|wxQ2Qw zC0OZC4EEng0O;|IgfeZEN8vXVPelR0ijb9~^VvscJS)m=jbTs7 z`lA9O;=zCtgZgu>xVv^;c?!~X|-`b@%+38YI|}z$vaTFMs^E6?M23N`r;Xno(p*hV(UHRWfV}uz^62ca^|>D_ z`(@lyqN_nE54qH7-L0%?z4Ua&oTt7{o%qkMJ7ma6qQN={DpDXrfE#qeGyjGW({WpO zqeT`LgeMvsg5n+F`a{oML|;i0cnX)8%MotQzbqbd_JH8 z)IrofS#zO*q0NAOr#z?jn&T950dAA-PGn)lJ;yKcaD$ikiAXkVYd#RWh#EYm?L}$; zAf~{42~%-!Es;?mlBvhq7~oQt=k5F!>#wIiqW`V!=z{aX>cFx{(%-A<)}_(#c=R|TUQT)b2@>WI*a&3vm@mDc zI~x)f7Irj-l(jG%`9n7OTiE{_NPt>w9Qa}Iv$tR3?lrQl%vTXLr}Y$+h+Fh20H}X- z3B0Cig#27Pj&8$Cn*c~#!yjtBWtGIO-@?YugnMAk=AuW=uKK{ym!E+7>ybc`O5mcU zvgjo4ZSbG$@OMGS)Jz}6Jfok_&0Yk)-Xm#n{t%cMWTaLN{Y=YB)t-*fX=qTU;GdQ7wFW)w+UHzZZD*m%R^3Kf%f?)V<1*NdJ=RIs@q+2pv zg)s|Li01Tr(0Iz+Psy|SQZy9$R_F;K#JZnm9Haqo-4;zm#%NN?J$C7!qI!4ZRDbwy zJ`Gs#H~hGl-5k4ZD)Ii5(h7L(H&rT`={-?GjFSCB7~EFo_$me%=T8E%09!O?aQ^(#?E5`653 z6LkAXUbj{9IKnYI2ZvAvzo~Vk8c{To>svXK*d40+(NW}STKnrsLP0HqRE+~h!22*N zJHq6BQ`ku&Ee|n0Cq0s4uJ+J)+ADwtn`#D26?g*{l5%;&?|%lhM{%0n)x~ywBZ)=f z$>he=(~xchKq;E%&Yc^gk})j8pB}5IR)D8?dZ$oboix1o5M2LgG-EGwgUcW< z;T)1Rk}trNM2hG`)LyFS8N~=j3o#1m`DkX*u=2M}Mohwzc4z;Q%UPT5nY0+f`L8Pn zAf#gLq`Zt8*&-a^Dl3k{+u(tk9Ji`?my=;2aex1_Bv3hwjDcgne5{uwFdz0HBTq^Q zcc~fZ%UqY-5=M{@a67OG|E`gjLujVhl-`Oib7fbl6_qY)a3>`lbW_+Iw&Dv@6#m<) z2_@Usr}Ng_Gk@#qv$12+=X0PxR%qA*su-lsFp6bWi4WHIgECRJP3Nzk5==a&(k<6h zD`@XbnpX(5+Z|8P1ZvXvlQrwVd#3Hvx$`8ZkWZX!(h`8_&XjVpSi+}HW-E7WsYkP_ zVN`|dck;Cdq-tspQ9*3~G@d5Y0CmL}YfB;^gsZA22Jb^{^{-dWc+xeGIM>$sKFXJV(iH=y#IODM zZGbbW9M*6^DVsbb_k+fccH0Fr7hlO232#yq?i^_S?CZ<@{Q1@0G0yJCym-f5H?glS z>cNt!pcZq|VgTPc7A>eM%4uw5_oM87d*yfNCL?Eg^%b|4CT=6P#KrM=SQ>94Ba;Dh zfjN)~_Chu`HVmrPAP|)zw#B|qYp_Il-%EDl<4?oO3Q~JhQ=cpSH~;28g|b2BIj$I% zYdK>&bV=WlOoS5cboY}}TBr0cx3hAbc0XJHOp{|zCfv?2Qut0@d-?pXi;K&mem&W% z+0+2=$$+AwqO1tUj>YkgsNsJEb{<&oj9>p*2j|fv>D*SZbMhZAAg6|A0XL^JZI{j-r*i!Og`k~*_x7?IQ3*4~oAL2@!ceJP!q zP%s}f_*Xnz>32L^&!!Pvo$Ty*oh-W-(Z{qed11G}v#)F==14i;SLWJ4?O>Cq7LwQH zPSY%?%d1rb>cDTW$!QTd+FM|i$#3`gO62Q>Bd;3(7UFX?n<9N8=>2^I&Dtc8OeDvT zf-C>DZ;t(Bm%j=RT1W-?qzg;?R@Z&~8Z?zKGrMzH&&gBANQrCq*Gd=j9Ty$l_x$9L;%=X02#jVcL~07};6hav+Em&^bHHhld7JXZ zqdC#Gqu?>h@dS9RiiX;rps;q9cjyBWe3Rb0$Z zER2jkO{168qj|SS3V=@H_Ln};UgJms{>2HK+CYI;rS3G+I2n%da|}3I{vAkC{wJrQ74*leNsbJI} z{mi#NH~LwighGvHE#i+e{7vtu>vQ-@FVIMU$)6KJPj`+J=x8o08JO%*4uiI$DZI@A z5Ur%|uRs-wA3(5I=6lW=3M2a`~5-%{N12K?9I zeQAAPii<6*$Jn*6EW-gJ178WKTUGt5btVQ1^f`E}OLa!n^0L)eWSYtd)TjLe0b>tl zX(XrB84jgHd*>KCK(zy+prD|wt!-|c0vo}me`kO!t*n&W4&8!0^{PMTbm#aDO{m;c zgNcL$P_Wtl7kKhM1-h4Hj7|EY5KtLnOab78jmyM=51sIp3SqD9*E{J9DtyimLfsds zNG7&i{nW?5Ns=v={i&# zi%cs66(f3orx>2wx912U1us9N8T_D5+zdnshLW+ae6yl+zO2^6fi!JVN8sAf`JsSs zhH<~sRI^PxGgW$aj-#fo(|Fw@CyB>~-~v~K z9!i_Cn{5{y`B6K5sn0jxA@eTmt_GDhZctA}w`E4;DN0wpbS69{o`B!TN!iI)1kXit z*biXoxxc;4!bzJK?fy*vB=GPH3H7BH|AK}=F@L#NMCXz3obE@%Lh-cfxcu-#nxS1l#(I2(mB{hadN7{YB-L{Y5K{mxCZ=W0Je-4jV3|@Uv-tbvx2*RKN?r?uTs<67Rn62gf&aO z!U#)NlusUko$W>Dd>4)8zjn*>wsE(+`T2et5t5=XbThLsbF%^R^F6-OwC7jp-jSPr zlLiO|o+ww*Z~LNdFO`0b+4mu1!4yz8^S2S>+0k7cNLPE=X5-Sit0I*;E}$5x@d?nb zTSqz(MQ0t4c|t>7c7^RWpo6C=QXi0Ubbd{D{S$oNxCw|ulRS4DLw!JaOhJl-OIof7 z=WhC?HNd!s_%|Hh>$awPGTrlS*A(8yJuN>)Ox?B~(qeK)$TA)uL^%v{)QLT?pR+Vo zNl;4wmaq-O6mkFhXkIRWv@Z^LAw?bFMj~zIAGXg=q(E$QpIofIm_%iKCW1l{JL9R)$+UF2K?`U7eLC%P&V`KALB8*qKcL`Bt8HdOjHrcSU2zu zXzVMJ*>n)u_lCAP119~IxBPm3$H((hOFp_7eMPnp_l^}tOgRyhY>5tea8988*0e(B z%`PT!FY^6f>E3#$?nRCgzh?#nqZmLwmBcB)pZZu{e)p?PMCuNBwe5i~q=BwjN{Dfy zuo--C8;lH_y11DWwADTB$c3NqL(Df{o$=?YKW552Ph*;Q@FBCzVaG?eb-vK25*19%Uwd?C)*0UPx0&`j%93f+5g1y6 z#X3JPGqHW#&GE*bg72L{k%lIRBQf*7U(g+WRluzDlwxCy>r~V4D~8 zj;cO~vviumCIjc>=xBP{9`LhHIz*MOZKLATrh#5r+OFi8lYNx>$YVb-kt3;(f-mbG zFmSNgQo>Z!f=G*Y1esH3BI(uMY&-|0kfKo80||ZSa!zl z7Zghq(y9>#r!q+;$?Fz-M@O-$_HwT~k?u*12ecYq(Sz0!6^xOcwQL0^Ea4`qu|RKA zgH@}Dwlh&$suuF47;mqsXYEx-pJ`jRC*-oKG#7Ai|IF&E(q3iI3jVEG<#Kx`8zlh& zZgY_&%pmrO02ZQi z%`_h1HFE>c5Uj#&{EyNzGBWxWbcfDG_xJZhR+Z%UOVav0fE_82ZECjxlQHYbTrd|` zwEHNl*_{+4XKiZw)^{p-#Mrgjk|4Xc9O4w^zIpk)Ab@~4k$uxOzQmLQ7@9F816b6- z4KBCB41&6KGLnz~n%E^q`s$#78}?V0{`vTu4A3?qpq~IA0`Ercz+Z+B-jj|2*r?3P z8;DixG6F9);2Q(`plg@E0o=ej0R>DLEeDaX7t611sNP+qAfDQ8m1# z#(p|P=9OR(cr0=UW4e3S;)5*VlIxYD-$Iaaiffr9jVE~WV`gx+e}rMC;B!~^_Dr6e zeEbJofRa^i7f=%5v7vmBmpsEvo}dg3SvJeti(pG`K@pGE{}Pe@U#V%rEV>u}l<<_m ziQ%B{NwX6#DqHmpzal3uPXZ2}rX$-3o!?fGh{d3Hy{SN8wzTQrZq|}7%4kYcUA^gq zR&W2|lECSp^R<)l&a%@%|R=+bL(1b z#&LZ%^NV>!WHY{%F6-^qCJYKt!=HEfG|9=yZ|D_Sf<1k-zPnYS+9=9{cB<+>7U%CR zTlejsqYg|dKFtpdVW50_{>(!qi&Is`&mI#5kULI&52XOa28F%g9~olNi+P=9`p4Jm zg`M*5<}h#Jn<#;w{{P?rJX^%+S${HvuH3d86<>a~5dCQ6>!%`*ggSh^709LF)9`>tICow?0$!JYDe!hc3Q8v z#%eoN0p-D*H?tnQ(^y-_ajh{={by0}>-!vJJ%A(KT=dvy)gmX8sG3VT{8=W=R%Lbm znY4S!hKXG(t0h+0g@tdoA*jlp7kV+5Np3(I=p^HrZAUz#;apo-t;J!xtP!IDO11MM zkzta*UMr1eVod8w2i@Sm!b0v?DE6PAJDw=*_@6!se)FRRedIqp@km6|y}T7`~7 zcjg%%eVjZFv8V+1<#dltrPi6kQ}3c`4c55r(MA?eunx z<>e_hQe#T|#iTNrNuPQY(9?toOYv5SvgJCXhDW@6)`AETe%7OXtlMWjJ%U>3>I*upWYp35QV=Td362Wk>+V&JdN&mBy zDHuQ8ygy0UPD43XEb{z3xnSPE;Ea~t*p`hvR4W<_kN)m;PmF!S<_UD!M5IKeVjH)m z*av6vKexaP-sygMiQu@$cGZY;D~@T41vXQ# zqyAQEqaRXNKuL=;fqe!t5*)kZ~-aD$P zZ|(ODAfTXv2ueo<1r?+>DWQlcMO1`H4GPjb(g_JFf>aTa-lTV=7a{Zx0g)OYbdVMT zflxwn7XJ2r-+k`5(bWDQxgP_>C7={z*w0nhO+z!J!-1#tQ?nSubl1F~_rcXIb&L4+& z{wze`wCn3!yOGn7Q8^Cu6XnrW7=78TG)n6=@Y{~Mk{zh!A(hcdqv(fuD9Dd4No3*E zBkV!y)rOSsaB{rnL;LT=W$6`pjaiB}#N_FMJ;(_EoA!K5wQGN7I#!Vc5~z0`dnx3Q z3@o2-E9COlYh-~;43w}+qV(jHnUPvF+8Hk=5PE~{i0I9a<`tTIfVY9=a zJ)X-E$aCWt@D#6+2j4%4HbjUXcarJ456C-FNuO4S71a9F?%# zGJ?B>(rf?v?{}$6dvpgYH$@gi@Vy@{z$M9N7;RJBXI^*+yH*}K%I6?{qqh$z<6+CChQC{Anl*kAkCkD31#_Mv(HHv#GY z?2DI@Po75=cnjNQ-f^qv{QwW))aDh+B$HIqBO7Jur%^`T@Jn}8u2=oEiD0Sy zp(H=Zu}b@aipTHg6>5>nSJf*GJcOjK-+>jHe&u1>Tm=t1r#1{`;I>@8ZUle3N$Df! z-L7i+-t~(Ev?2{W=DMAC{(mj70u7zSfzjMvlBcQ8K`?IBdz~^rKs;p1HT-wJ(mv)H z$%qRMw^WErtKuGCHfVJHEinT%*e|ldthNsPe2#KGI-me$6U;~7pQCH4b||0RizWZH z@w7=~|D3dGNTZ7qd{)ft#`g3-mKfOhpMjHtkLDiOT54MWW{)*+!XCKO{LHzlB97aU zf`&w;cMVz{k~mjq7nNu; z%pIj*oMAtBxZKKfrcvyU=5PD@Evw|t)LcBcE@J*`33FlT0CV2Br0Wx8G0sCpWFAS_ zAUDVCoc|$CYH=`{{yvfv=%-uSu#HX(IrJ*`7K5 zW5i%DetLfxAG5@q>2)Xeo>3}vpMAA93FT(Y+Jj?|A(Q1?2SErp`}e^`YB)J$-Voc)NArl3$ACTd6NWe(Y_FH$9rIG3c+_MMb*Sdh>nd zy!+;<4s7C1N4F1<;8^TQncm$FvB<#B(x1EqGw(PF z61`$iZ?wH&1e7#T;8bo;opE3aj3z$=B`rs=j{{SAZEQZw{1fHN+M%yi8K#L3SVR(i z4{iOK!nZ_`z`XOkl#>0a}-38|CdUeLqe(fd8lQUGj#TH+GeXI0UZPPOVfFeu|WaS`4 zR>VmM2f|YiIH-;ZSx%{n*{KLnlHLVID&Tl&osNI*K?O&o_N~fk$0^?8p8MFA_cC^N z=@Zk{vmumB0bP+*%WtOqhDVrJ2rb?RZ78DzRLb6F=roQew$1{Fbb}t862-f7)Z@YA zv;)>gY5ruk;m)~2Yx(?vI}n(IuDgkz>dirrz%?d?pw=O`N%x5UgMK*2JXUnQ`HUWJ zEAW(t8dt6(R7;{HLrs*0K%^rPYYUwxkjg>UJy}rrv(#Zvr86t-4@H0rbkVfdg+r?2 zz)uE#UAZ&U@R?0<;m0L6x>9Tnk572vcwa+OF%ZgF1f##9LxTI5S#>bnLq@bf68|VD zRrZpf29q~vR|IE%y6P$&Vuo}F*#|dBSemrJ(E?l0MLn(_N^9#6EhcIH?h3sbrr6N{ z>NQ06DbAqBSf0>ia%ZZK#GHSm&;=azPCnsj%rr^V=RtZV4on)NyfPV}OdFOhgQ3Ce zg_Pu>PMLB<(Fof0&ImFNwcb=NTji8o;Aytnjn8dn7H;#?ULW^eo=k zK^bK-=qCHQ@ohZ$N;^h)VQP4&Y$7R3ND#Jof7EHb@0WUUtHI=J1GJpZhV|HAoLc^q ze+A{WA^(GSyuV@@>AC`s>j)@&@2~@Io9B5-@_d2t{f^<{*j*di;)yKul=8_=qj)mX z1RzH0!u2zbPFtq^YV<26UV~VyoFR|aKt4@UWu;63yMU~I4@q|&_-E3xVZwtO7VyRV zh>8)IGwo{h#k-!KKlHY12QZtG)Ok9cTk=OLrHM9_cM#d};{1iaxGe1&A1>T+2V)4F zV*9ppOIVIn!vb>Y1df~9b^1YQ;$FMMp^>;|w8nd*HN!fwgiayW_Xv{#HCaXiEawG( z6F*9xED7$%lW`jA>+kb^bYx*pe%Ht(Lr^gp*)I1>8vA|9vlvn~;*U1uuDv6T`K$dd zA;irTm*hgRI4$M(id>0`UaqByxJB~f5Tx)JU4^{7e?sMtVO7B~2$0d*%Jn==!Aimd zdrb!TyYu(4cf(VjeU^BPJnjbPvps zbwBf8#Ki#jPg>~IaZSTB-Z`^CUi#sF8Hfgow9cf49Zj4vmz~!-j}e<|GbmzlFGbe+ z5swcc!VH&NQ?x4Udj(iUh_hJgXzFwY4H309&l=p^A3E+c-Uk|R#(o)$TPyUwF4TY{O zw5>l*IKx58M`AWw)*TK?HT9l9r*!Gx9rwml{|XXLFYA0rN8hUjrudLB*LqJ6^!V{P zKa;sOFPY9llyU92ocpl>Hyvm;6dv4%h%YzDDa|AovLQQl7Z6qTh9^*NQjS zbqM#=gcJA?ukonwJpf_JO(d(UAA;|>51rDU-Qc2MihoHj||wJeXg+b6T2QVyuW}%g14#kd9$z zHF+zaMH#(IX}Y-zxwfZ!b%zqEYT(|v9_d2+S@Ea4i9nLy=B%vcLWDra6qW+pKV1-> z;$QBnFF9LiTWZlK`O8=-a7A;g^X$X{;4q;+=s#(_6$8fP!ve-~f=g{%^{kVJQy7Ipod=D!?F7cxPoSyNJHp4!RDmW}2ex%nt4)G-Lwn=Ao4N3e`Il>Av9|;@^li(Kmj_&m!6aXfh zeRrvu6KEirrb^h{nQg{}0Iw$M7gScvwM*=IdI1~ID30|R9j7!N#*2QZrhz)Gx=51; zi~t6!62M3qF|M^%1~6U_>OP_;qc77axyb?R>hIqZ%*oDPTi4zS;vG&0`Jtr>Ow^v7 z`3%DAFTSwN)I%$fk}EJeQMx5j`c7&*#P(DcLAR28YPxf;Nq1dM;^UnhDAwn(k-){A z8JtDEw49jyeFa#}WB~)uD%nAgbX?`&PNH=p>dk`7xgR}^8smDQ32k`!=E@TYie);} z@z}i4kTBu8H-!d6G?o<8UTncMmS(bFY_Vu8nSOs!>`{CSxdU-?atrk3A>58RZYrc@ z`rQIy(pz+=9TBF#r-u}*`CTr*9&lzP+58;7bIutk8kzuxHv$gQr@JdCh{o+DXBj~| zWJSgA;Vt6fuAYre-W%Yv$H{w_-4PPfqcNZ8^Jnc;^xm=1sqZK=*t`=Xu9cSry%V#G zcrHt?B1_U(BJyOpI_lryH_c0O8>lvGBWJ~O>s3~&|EA?3j&zZ4YAlfi;trkEi6>mX zq(+Ajou?=TLel)@7r;SP1@^?&owSS0-9%Rx5MgM%e@$%v02w&COS*dcU&b8r^c}1} zzJxGfxRqN(TjjEpYjge&_(Oa7)yw;OVB_NQ7qKJrg|e;vo_z<&$D8+N-Da>(Q@^lO=3BMvUHKQkqCsS{SwNuDaN6dYq&d`$q zcXHd}B4@X??(ZR|+mij#gJ4sEWnF4=X`1uo1kFt2i*KLQ0GBwB{DE_SPYQdc_Vtmu zo zY?%3D4txFJKmnc-OIc?D@#vm78Z;=JPh%1lZr|%Kw)Dx zHZ}_@tKHE=4s>|u9sT%URZemxjYqbl`FoUUXQKf>Eg_~w@p7$BPq$nm)C>;9@PR-gXsoL4Rl{}mf6gb3K zP8}OE!6WTfj0-f7_sqwNO~UT+Oy45|B}QYGx+K6PajSvMv@}oz)qBK(h*=Y;BaF@b zF^Nav3quB8isJN|hX;761>8Ms!mlc94Nykxt187ut&e-ZR!<8W7IKos^sL!W*iTGM*kc-#S5kZUQz`2>fYY6?d|PfV`35xDr=FP{@)?u%-f?m^0$MTr z(<8tF^=VK`xN-aYx48J+Fi0m|(8F6jz72U?&V+!QKE(3!as@#6^KAY{`173y$oT!$ zt5@B~Cj|2roHRv!fTEJUTX|?%88_d}o4C=4>M|xKCOk6e>tHaMUYO{51E_3tNnDXE zc{Ixb54KuK_gt2gkZ?J|+dR~%cabhiCF@_#B*J_1B4uA*AxkkG5we$Gu%0{dEl(Y- zS2S;!pmyGbN?EsxN5|l7+c5vSH6z1RPQYF%nsV{*cp{O3{yhrplf=5BY0YNq#V4HD1(s_AxCuKs!$|~ z;ns9>v}Vf7kQ9mkjSPcsNYkARVOjCA2hE6tlUYf-u%M!&i@|Bc&y8|-=}KPVzO=9X z=;StUen$-q!n2nzyFOmv5R?UAwO#YdT}1s>UFgP!{V>l5oIgl_m-qc?aq_0$E|A3! z8Q^hdYMEHU!wm5k3rjq3DN)ll{(!F ztUq7|Q2-0g>^N<+@Nk!>PXKh?0eG3Y=}jzD4KUWX8C1M?{XzCk2nyo5?uqQ#zg+6n zuq0|FvOo@}D{U5N1Gb+u9M4|V>Zf6P1q!=>@&Nx&Gq9VSAN}`+XmiIN6$KNUm4TRe zBLlAnAz&kCxpKwlNfWSys#5(nEs}!i>FFnaz=HA?M7(<}fb$GxmuH}Du?N*lT!5iY z6%`^=WNXznOhp{{8hQ0nR(j0Ppw4;Cbx>pK=GXfL+JO5&Kz#uHh+0n) ztvE^fb`vS7_iZ%SF_TK1&JHxVI9~s+A~_^_m?{eBm;Vzm^xx=v<6W(|T10kK_PbhC z)A8rOT)L^B>PHxvJ~@li4peb;zxfZ9M!zip$%%3Gi1rNC`85TY2dYvX-F97*{I&M} zH*(g3bWQmSki`d}b4pHXPqH2wR&Fj}T#mmj!8>u% z(&WmozEuc!9D)BKN2XW}sywNGA?Z0k@|0{}_M4)1lEbJ0c~o@r8ucvN!xKGnb~|AJ zu+;R$sZU%tC4gY0-JgzLC%pQFalUd-sedxOh;x^;HwM}BR3z`34^VDLZjT+*(gjMOwl4Hjxm%4Y8+)JC8>~t9YDX6=m3fS z_RQ7m%Np@{aU#)NY-FBlws$1=2g|Ntg>LA>dXk0vWmJ z(+CSoHqHX5pZ=MBFO2V}a8)}FN3x|AhtO6PNpA8LcCpd)Q4G*tw7HE0Dgqu9z;s@o zdexvrL@0Qx5!9ozJcC|tEqonf$-G;X#_BBQ@iUvDpB<+u zoPgn~F%(w(P#f#MFj#WMmvW*hZ)*c7{t)NR>AbzF8ChmO!MV21!Nw;0h0{aV$d{dU ziSnpkn(dvxBxkPamcwO)GXm(p@dHlwcbui!D)LQw9DVB#tR=wwt131zUd^lPteW8V zWQLaih1qM-;8AF;#TT3Ys&XrO3y`~BQLnz}lSV3CvlaAFT@Mq=D{gK3p3KkCZl`** zYvf@Dm97^sk>nG^bg6gwHX4t)Xfr8AC!DZ`hxqB;n)MY1(ZgYjS+`pl7K--Bj~Ya6 z6dZE^K0&8GH8SncOuW2Wlsv1o1Oa6)f`dGj7veq49rcN@K)Wb9GdcJhIXJZ$n<^;y z)CtNWpdmUbJc@Y{r;}5tK5u>8uzI$Rdk@lM|EY_DU z=AJGYTcE25U}c+J%ov?HY0k4Y#fh4C_4)b!7vPzxP;&pnVzEMrtqlI32V%WhcqF82 z*ars<*-fxd?jHC@WFI)!D)iC4|a-A+Nuvdc0}E#^%P4>#6JCTmUbJd=5r_ z+evJ<#azx_MtTxcNh5E!h!c{EhpDd(N!4tg=6(I)NcEa4c^wftmQJRMp4rng_sEbH z`Dm7m3v@N0Gc7e#h0A=YrQ8UempX8!Kb_Yu+SO}0@N6?rllY#i-!$*!7w7e>yLpI} z+bVEN>1Ic9=F3iGI|Zzc>JI)xbIb7|LPA1&q{=8z!VUh_=9h9#s`XL~oL~?4tBI0S z0eCexC#peEMH+O(m-&Kl52b*Bz;;;Yq&Ekp_4i|a7WveXiLyUWuI#Q7wtnZ#GcJmB^!C?|4SepNy3M97Rj@0`%~U&0_?ml5ZVI}7_f7+ zx-=>G=aovW2T;!H&VFD^r2r62DfNg(LzDNQ6YL@8JUd$~723ofP&YW-5I#hh&liJ7UMwLR4?!)l{P-yj=8LrAYlClI)b7_#r*$y?@gfAL&B#+SV&AHc|l zK82J#?5i*<;Hz(Cb@Hii{3zPkUjgUR``M>Jf#pxTy;=#MNV|a2((fn$3<~dM)J`wF z77j31|E2JXSsifgag)$YWWEzW#YP?~rlDv!6~3Sncn^Irefkh;7uCs`z4i+>3YQY{ z7Tvg8h2#? zGP_*Lu}ak@B~|G>HmNiBRY`1e zyeMaf*O6$Kr#!I1W2HL8X$P&S!cZUU-G~%m>S?xr+`{*Mz6qeL+1M!%5E5z^?P*SY zCM*Ug)nu)9L+F_^;8*mrqbA3@x8#{?pRF=L+tT1P(yUJb9j8c?8^j@E1|lEfRY7(D z3IZGPkumH@SnNsam&B^4@N3;6l&l&b!v@I%4|7_(U&}MB#2qkKoT}t0wZyZC@q}c3#L{LQWEXCo6R(zdmQHxu}#SY+V9K3#;y@@{@Ag0bS^EvV@#o zz&tzFUxusWgzuv5ZAtumeKVA!?U)k$jis99o2cQi!stJOI$Po9Wk@VWt~e}=D^ zY?FUdFV{As*+pkXXMu+tUlmg9YTt1fbjx#F@T!k%rtBA&eLve~{r>9^2|y$xuc=|h z5OlyDwSi-$Km$l?2XzzAA=^+J<#tai>e<_6k%(jHfUCU6`g;WB7X;I6;f?Ae;}Wxf zyx`YPk#JzFv3iH;mgu)X#C90Pb9ENBDfO!Tnwtwesf;Bb&$G2GM!zw3^XHi<$a~Y3 zcIJ_ifeS!{WZL&k2c6wwnrOhcTvzqYJJwj`!G{!;0tW8IPn!2cD|t@GYPKnWxV-(! zU&NIU1lYSmMZY+?%k%xVfSb9Kzs)MhmUz4T7Wt$duGzt2|A(ueH}YrP-k@rzb~pLM zhl#rm!EmELY9VT$1d}R1hjo68f{{fz-!tv)=`$;r><1yiVHxFuj+klMPDx==qLXGC zh7rU$W--57%Qx%))(|lbK`tO(T)QQAoO&0c*zgsK**gP$M%h;SCDl2s=)q;eg$My4 zg1T1-Kq9@AH`OkykbgUsr9zyfB6Zbo7Nn3QD=V#Jvgw9=>?D$9sb*DlxCeF2D!H~w z%^RlBx6+^|fXN?8dUY3D!M5AFQI>g@5WJBt!voZWXQkPe+!|W|if$y1*vkPT2_yGo zO-;@9GPSU1Y%(y1Qc|%7qT|SJ-ytj`6R6X*Q_S(s+n`)e43v z61P#cn^o#HYxAM$S%C%LeQ|*hXyG6b74;7m;!S>!ro6ICZG2$ueDszp?kgD(_}bdq zW?98D`{NQ>$Q~U|5d0ajSitx~C5a9MEEC+^uzd69i}U4(wJ)P@3Ti@2fC>4O7-v;U zh3LFLo(nX5q)?~$q-5c-4;B{_v)mqo%q$I5pkpgxMs%mh5Hds)ZwPu_p}fX)>skL} z#a9ZT)Y23Z->*pJq>_Fk;|wW(8Z8>d<_~8IGnf!0zIm@B{wbH0$OEyG`S;5-5Gr;< z&4sLgabo{}aH1jFWvtUr-Ys|8BC#<(UEP8qM*ddd)K7(}WDkNE22;{w5X0iMbFQg| z3J6-a?EGQQ$kQ8N% zXiWK?yFd>lAU`X&Xyo{caS9PrI+w~uf2D6W1~OyAL#`MMhO4wxhW7T%NS?-T!O17! zr2#o7+eC8rz2O~Xe@%`76Ip+uy5Pm;Mb}V%7sBk!<}UK!li)B`WjK_1EKqc=_j;j8 z;yH!bQjbl;TbYGsC{K;TT6)L9(31~eAM7)$t|3hPcgR!jd(3ZH89$+T2EeZSZ``Zw ztLQ>xTTD-%XEw6lNkNnzQd);3rO__vr`V1yj}`?LZ@n(Jy!N@#ddmUCj<|v^@L>Q- zh|B(Ai!}1SgSb`aq&JWckY2yOfk8J`Jz`Nhh++3QiZ`!N0^8C$ra3qFFI5s4x&5$C z;JDeb!-<4^w)+r}4K3GikN_w~9w2M?V7n!mTVLnK= zzfrz*aolD4n}>sc^a3^?Bu&Ahr2DWV%za{l%$Gk;iF8W(t`iook@`;IF;~p*XGOkRpYBiM&7e- z(TcoAVAJ3c5?5BK7}HJmF|9RB2!H(k)Cs#T$}$ob*~NXDitY!9s7DpCKN{5;52+L|X= z;2c(jX@gHZ_urj|=*9Ze<9yF(b+Jy(CDhT++spgSah6-FBXkSZ>!KU+xjJg_oHHr7 zBO>8|2UW|nvLl)4jHl)J4zl{-QR^n}#@hSVbeY?6>Gu9k)XnzlyMO)5)DmS}VV`MH58clr=5k(sZ^=e>KI{?;4dDqf>*0ys>%_5WLlg9K8 znM=^OLuxPd_2<21I@@y6!li&l2QsdUXU(=gjY*Svd54pM(8hvYApgzH--W6Gg0ay! zHSeb8?nJc9)mQ4R^fEJXc{<(u#;>(;7bLe-q?^zo}bMNPp_rT-PSf+Ucj&yIXOrHCn+QN>82@!X!b?x|PXjB_`ti`U1#wN?8>(bC(X_F+j% zes=c5RF6utKJ*g&@^y}X?j2InI9x#l;DoqbXBr!8#76em$+ix|6xR&cO;`Uoc()Qq zVD)Tc+$JFEe^OnU&gdF>w=Sa5P69Y-Q3Yugry z@K>QT5t4v{s?7p)sq;#z znQ`|1Y*5qrU!lyQOa?X1*Ew_w&E{GHO9h7d_R%}G7|~plV`-|fyRP#rvdbsRHNv2e zWTBSJK}C`99$2KbE13t?s{($dM)g<;er*5~?$WfQq{Q2dR%y8Yupbxfo2 zB~Q^$v1%gtt<-2QgEMU=8@JDYt0H%0j8VNhLD;IWYQ4-duq05=6F)e5eUzocQHka-fh@8!~+Ht3}M$ zuV-M3_= zJ=Tjq=SK9`;}{y;MAZtQ7S>0uz>TMS9Fk3&dvcso+f0x(JVJlyX5CIIB`oHhlu5qr z$eqh6jqr<=Sx_9J#AqobqIB}ckk5JsVfAckGiYuB-GIX=-ka1Cz!o<5GT#5`dB zeD;AQe72{n=6({Sj8J#{Y;Lb=#s}JW546RGI0wD>YI9O+we~}$-I&<*H`Kn3y6?Vm zBVTR`lK+MmvYlJyUO0FA)6`FECQp*R1aw*NzdXTVwmao|GDr47>zqdC+?AyUgiN*2y|rU#jwg1^ktnHd25<Tt zkig`_U4!o1-93GItH2y|p9{SD90H*oP&r|0H+Y2fKM9VA_{dD@h(zlsm)v)`MQ_#; zt2$m@!rGa}B2$e1H9hUlcRsjng~3Yi4f&L;mStx?UUfci*qj1$po;_qK_H7FV!f)u zZnu9*9OC)I0Psaa0bexef)f3aUPF-R@~uuxiC*A(IS}2LTo9igDX%fq8Yza4Qg0ra z+LKa#{&mlzUP=h;kCj5bsESY@MFWfnC#Bx$0#v@Y$(@+rM8Z|FG}*)&24uK6IucKO zNV_Yi?`GugE=m8fp*i~(hk?k(h5Uko`i2t6tF!0aQXS+rjZEGxgvU>BJ)%t*bgE4d zE4~PgJqZX6$?PU!YUd}+s;5m=fB09AJuT$H`iA0dtg(Af|D9CP$sw+wi&@{FYFPtg z`F)gpAc<BsisMf6mJ#HS8>FHga`BQBoHl!Ell)hos}no?lhoFG~lKNUcDA%zCN?hD5N~#OSf~r6{2PiK2Xx6J1w#Kj{fSP~MDB zTH!Ga220!vptGi%tXZeNmhs^n-zNpQUe(L;SRx9Mc#W(c^_R>n7BqkkYlb zBf;-Xdnowj;%#OX-6idz{miSk0i&Ao$C0p;g1?cql`wNCbX)D_|%eor1&qzT2w z1g$f@Z@#8i4I$p!YRzQOHKa59zm>v@ze*wWrZX6EX>KN)TPDxa2`OkSID zlGJItjkcg~u&aY6!TefDg*sHwU8b8+(oyd4>F4;x0_u<Zi;21uFbK*awX-{K@9XU-H!!)+48JfCb-;zKo8ao$`Fa~|pv$h?(&Jq8F5i-wE zJ>eP~OO)B#+yNh+v&!wj><|f;$ru=3#(+(f$|Hi%hlJ2!sGQD|8KxY@ih$-@Vg*6#>vw1x#Jrm8rMiA@}cRk zLde1YT7+;MCzm>M01;lQ9j^FGcZvYr0S|6E#PY4w*RM&!-sJ~S;crH4aHv{mh{VTq zd6ZWx+#VOWMO5XS2eyx62Kh5s2bNOMQ>SAMka7d`*QhN4Yr1)C!m-}PLW+7rR2r_qCtd5CRrOk-v5 zRDo@P%Ix{4#ZiVVU8KMHFGn>5sul`}Mo)_nW7|P5a|L6|t?4={DY~X4(|G*a2tDG$ zfN#9GnL=h--<^kmomgw37q-y-6D}AGV?qG!Eu_?DG+le5Ei2{D#8D+NaB4hxJn%$A z;|B81r@Ug{0~zA&FR!Du6davSZHzTsc_Z3Bw{C1$@wkR7_xa*q*RM1XEoAQG6GG2R z>gOSCBMm&KaILfy)O-{-n+(((_iAUF>#%+c2$B*VBh`njOhIECRbn7x3p2%4vxUV( zfF6$taum6Rg?tJ9etrV0Cw2>~Lm8Y3K3}aBEqAZ8D*DyT@Tc%$K17!uZ+UWlrfUPr z2fG2)A23}zOOapXe}1;T7N2EL+Q`ij)(3iQg_@5t zDp6{)FHW34d2e01dYzUR-^iE4muLtIV?zKty7QH_n?3(F&bMy98JdS3n;!i;|3Qva zjcEi*KCbM%F>R;qzfepgQSt3k@hxy-U#%IzMA?2I{GA%+i;)uVIt5%?F9rUK3q@ zCTcj@U!`vnK%Bb$u2PZak$<9#{u=oJ*kpcfHH9_Ea1gtuAQ*Bw9=B#G<$;|B^?PM7 zT{W*T|C*$vGTkc4*!27&MX{ZTB36)J^mqYCYE zKl%5_$lTler+akmpT|JKRdgXO9YQDIvZWu*1{WD(ddP1#`cwPuTg<5dlY{U`&++BR zAOlGU459PF9~iUGdC}DY8+u3Ss8tToAxGowTM5)kRV}^gg4M87-|-XQwcmLNf9ch? z_koQN`PU=oK?OsMXJ=cMmCdyOdAsAc1mr~pF{}VntgXG>n=U>6)b7G`kM1l;!l8{1 z=~9-=JEgP$yQl!zMf@MD42BsT&{7W01cVMP5Iem0_QHWNjh5Y9sUH$HUPIX8=^OqA z(!YPXMO%7f3jLePY6u&=o-6nJ?=O zKIAw#+RFe6u{Qm_T=F+xFC(R$&mYi&Dj(dy3PAA9`$20}~P?TG|W0g5{^U=AhD&r66 oN)J4ufspaiPyYil4!6mmpoYi0D_$uKAmGgXRm|S~FSD1`+5i9m literal 25320 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 diff --git a/icons/mob/species/plasmaman/uniform.dmi b/icons/mob/species/plasmaman/uniform.dmi index 89931b8147dc182955eadfe22029e4930f201bd8..6667746c4386eefd998568689feda145bf928f6f 100644 GIT binary patch literal 46219 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 delta 2741 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 VL!Y&pNbz|CJlxQ(RnEaF{{^>hiv9oq diff --git a/icons/obj/clothing/species/plasmaman/uniform.dmi b/icons/obj/clothing/species/plasmaman/uniform.dmi index 81f0ad2933e422579eb53045ab55d715e83ddd2f..bc3f4d59a500aed7c0b615f4b6d8edb5c351fe32 100644 GIT binary patch literal 4609 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 From 812b3b3ccd60fc663d6f991acf98b3c9d1d33654 Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 25 Aug 2019 17:48:15 -0400 Subject: [PATCH 36/37] woops. --- code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm b/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm index 617e0284848..5c38361e0b2 100644 --- a/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm +++ b/code/modules/clothing/under/jobs/plasmamen/_plasmamen.dm @@ -15,8 +15,8 @@ item_color = "plasmaman" /obj/item/clothing/under/plasmaman/examine(mob/user) - . = ..() - . += "There are [extinguishes_left] extinguisher charges left in this suit." + ..() + to_chat(user, "There are [extinguishes_left] extinguisher charges left in this suit.") /obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H) if(!istype(H)) From 2c587b58e0916b3bae191c4c511048c94e21c04f Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 25 Aug 2019 18:07:56 -0400 Subject: [PATCH 37/37] Automatic changelog generation for PR #11987 [ci skip] --- html/changelogs/AutoChangeLog-pr-11987.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11987.yml diff --git a/html/changelogs/AutoChangeLog-pr-11987.yml b/html/changelogs/AutoChangeLog-pr-11987.yml new file mode 100644 index 00000000000..e7ed3c0b338 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11987.yml @@ -0,0 +1,13 @@ +author: "Fox McCloud" +delete-after: True +changes: + - tweak: "Plasmamen dramatically overhauled." + - rscadd: "Plasmamen can be cloned without burning to death in the clonepod" + - rscdel: "Plasmamen no longer start with spacesuits" + - rscadd: "Plasmamen start off with jumpsuits that seal to protect against oxygen. This allows for you to customize their appearance more" + - tweak: "Plasmamen helmets now allow you to see a Plasmaman's actual face; should be able to see their eye color and mouth color now" + - tweak: "Plasmamen take 50% extra brute and burn" + - rscadd: "Plasmamen are immune to radiation" + - tweak: "Plasmamen start out with a small tank that can fit on a belt or in a pocket; it should be enough to last an entire shift" + - rscadd: "Plasmaman helmets now have built in welding goggles" + - tweak: "Plasmaman karma cost lowered from 100 to 45"