From d4d315b447ab33cfd31aab9468bb904a4e4d0fb2 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 27 Jan 2020 02:51:01 -0700 Subject: [PATCH 1/7] :^) --- .../projectiles/guns/energy/dueling.dm | 376 ++++++++++++++++++ icons/obj/guns/energy.dmi | Bin 38098 -> 40160 bytes tgstation.dme | 1 + 3 files changed, 377 insertions(+) create mode 100644 code/modules/projectiles/guns/energy/dueling.dm diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm new file mode 100644 index 0000000000..cea2fd580d --- /dev/null +++ b/code/modules/projectiles/guns/energy/dueling.dm @@ -0,0 +1,376 @@ +#define DUEL_IDLE 1 +#define DUEL_PREPARATION 2 +#define DUEL_READY 3 +#define DUEL_COUNTDOWN 4 +#define DUEL_FIRING 5 + +//paper rock scissors +#define DUEL_SETTING_A "wide" +#define DUEL_SETTING_B "cone" +#define DUEL_SETTING_C "pinpoint" + +#define DUEL_HUGBOX_NONE 0 //dismember head +#define DUEL_HUGBOX_LETHAL 1 //200 damage to chest +#define DUEL_HUGBOX_NONLETHAL 2 //stamcrit + +/datum/duel + var/obj/item/gun/energy/dueling/gun_A + var/obj/item/gun/energy/dueling/gun_B + var/state = DUEL_IDLE + var/required_distance = 5 + var/list/confirmations = list() + var/list/fired = list() + var/countdown_length = 10 + var/countdown_step = 0 + +/datum/duel/proc/try_begin() + //Check if both guns are held and if so begin. + var/mob/living/A = get_duelist(gun_A) + var/mob/living/B = get_duelist(gun_B) + if(!A || !B) + message_duelists("To begin the duel, both participants need to be holding paired dueling pistols.") + return + begin() + +/datum/duel/proc/begin() + state = DUEL_PREPARATION + confirmations.Cut() + fired.Cut() + countdown_step = countdown_length + + message_duelists("Set your gun setting and move [required_distance] steps away from your opponent.") + + START_PROCESSING(SSobj,src) + +/datum/duel/proc/get_duelist(obj/gun) + var/mob/living/G = gun.loc + if(!istype(G) || !G.is_holding(gun)) + return null + return G + +/datum/duel/proc/message_duelists(message) + var/mob/living/LA = get_duelist(gun_A) + if(LA) + to_chat(LA,message) + var/mob/living/LB = get_duelist(gun_B) + if(LB) + to_chat(LB,message) + +/datum/duel/proc/other_gun(obj/item/gun/energy/dueling/G) + return G == gun_A ? gun_B : gun_A + +/datum/duel/proc/end() + message_duelists("Duel finished. Re-engaging safety.") + STOP_PROCESSING(SSobj,src) + state = DUEL_IDLE + +/datum/duel/process() + switch(state) + if(DUEL_PREPARATION) + if(check_positioning()) + confirm_positioning() + else if (!get_duelist(gun_A) && !get_duelist(gun_B)) + end() + if(DUEL_READY) + if(!check_positioning()) + back_to_prep() + else if(confirmations.len == 2) + confirm_ready() + if(DUEL_COUNTDOWN) + if(!check_positioning()) + back_to_prep() + else + countdown_step() + if(DUEL_FIRING) + if(check_fired()) + end() + +/datum/duel/proc/back_to_prep() + message_duelists("Positions invalid. Please move to valid positions [required_distance] steps aways from each other to continue.") + state = DUEL_PREPARATION + confirmations.Cut() + countdown_step = countdown_length + +/datum/duel/proc/confirm_positioning() + message_duelists("Position confirmed. Confirm readiness by pulling the trigger once.") + state = DUEL_READY + +/datum/duel/proc/confirm_ready() + message_duelists("Readiness confirmed. Starting countdown. Commence firing at zero mark.") + state = DUEL_COUNTDOWN + +/datum/duel/proc/countdown_step() + countdown_step-- + if(countdown_step == 0) + state = DUEL_FIRING + message_duelists("Fire!") + else + message_duelists("[countdown_step]!") + +/datum/duel/proc/check_fired() + if(fired.len == 2) + return TRUE + //Let's say if gun was dropped/stowed the user is finished + if(!get_duelist(gun_A)) + return TRUE + if(!get_duelist(gun_B)) + return TRUE + return FALSE + +/datum/duel/proc/check_positioning() + var/mob/living/A = get_duelist(gun_A) + var/mob/living/B = get_duelist(gun_B) + if(!A || !B) + return FALSE + if(!isturf(A.loc) || !isturf(B.loc)) + return FALSE + if(get_dist(A,B) != required_distance) + return FALSE + for(var/turf/T in getline(get_turf(A),get_turf(B))) + if(is_blocked_turf(T,TRUE)) + return FALSE + return TRUE + +/obj/item/gun/energy/dueling + name = "dueling pistol" + desc = "High-tech dueling pistol. Launches chaff and projectile according to preset settings." + icon_state = "dueling_pistol" + item_state = "gun" + ammo_x_offset = 2 + w_class = WEIGHT_CLASS_SMALL + ammo_type = list(/obj/item/ammo_casing/energy/duel) + automatic_charge_overlays = FALSE + var/unlocked = FALSE + var/setting = DUEL_SETTING_A + var/datum/duel/duel + var/mutable_appearance/setting_overlay + var/hugbox = DUEL_HUGBOX_NONE + +/obj/item/gun/energy/dueling/hugbox + hugbox = DUEL_HUGBOX_LETHAL + +/obj/item/gun/energy/dueling/hugbox/stamina + hugbox = DUEL_HUGBOX_NONLETHAL + +/obj/item/gun/energy/dueling/Initialize() + . = ..() + setting_overlay = mutable_appearance(icon,setting_iconstate()) + add_overlay(setting_overlay) + +/obj/item/gun/energy/dueling/proc/setting_iconstate() + switch(setting) + if(DUEL_SETTING_A) + return "duel_red" + if(DUEL_SETTING_B) + return "duel_green" + if(DUEL_SETTING_C) + return "duel_blue" + return "duel_red" + +/obj/item/gun/energy/dueling/attack_self(mob/living/user) + . = ..() + if(duel.state == DUEL_IDLE) + duel.try_begin() + else + toggle_setting(user) + +/obj/item/gun/energy/dueling/proc/toggle_setting(mob/living/user) + switch(setting) + if(DUEL_SETTING_A) + setting = DUEL_SETTING_B + if(DUEL_SETTING_B) + setting = DUEL_SETTING_C + if(DUEL_SETTING_C) + setting = DUEL_SETTING_A + to_chat(user,"You switch [src] setting to [setting] mode.") + update_icon() + +/obj/item/gun/energy/dueling/update_icon(force_update) + . = ..() + if(setting_overlay) + cut_overlay(setting_overlay) + setting_overlay.icon_state = setting_iconstate() + add_overlay(setting_overlay) + +/obj/item/gun/energy/dueling/Destroy() + . = ..() + if(duel.gun_A == src) + duel.gun_A = null + if(duel.gun_B == src) + duel.gun_B = null + duel = null + +/obj/item/gun/energy/dueling/can_trigger_gun(mob/living/user) + . = ..() + switch(duel.state) + if(DUEL_FIRING) + return . && !duel.fired[src] + if(DUEL_READY) + return . + else + to_chat(user,"[src] is locked. Wait for FIRE signal before shooting.") + return FALSE + +/obj/item/gun/energy/dueling/proc/is_duelist(mob/living/L) + if(!istype(L)) + return FALSE + if(!L.is_holding(duel.other_gun(src))) + return FALSE + return TRUE + +/obj/item/gun/energy/dueling/process_fire(atom/target, mob/living/user, message, params, zone_override, bonus_spread) + if(duel.state == DUEL_READY) + duel.confirmations[src] = TRUE + to_chat(user,"You confirm your readiness.") + return + else if(!is_duelist(target)) //I kinda want to leave this out just to see someone shoot a bystander or missing. + to_chat(user,"[src] safety system prevents shooting anyone but your designated opponent.") + return + else + duel.fired[src] = TRUE + . = ..() + +/obj/item/gun/energy/dueling/before_firing(target,user) + var/obj/item/ammo_casing/energy/duel/D = chambered + D.setting = setting + D.hugbox = hugbox + +/obj/effect/temp_visual/dueling_chaff + icon = 'icons/effects/effects.dmi' + icon_state = "shield-old" + duration = 30 + var/setting + +/obj/effect/temp_visual/dueling_chaff/update_icon() + . = ..() + switch(setting) + if(DUEL_SETTING_A) + color = "red" + if(DUEL_SETTING_B) + color = "green" + if(DUEL_SETTING_C) + color = "blue" + +//Casing + +/obj/item/ammo_casing/energy/duel + e_cost = 0 + projectile_type = /obj/projectile/energy/duel + var/setting + var/hugbox = DUEL_HUGBOX_NONE + +/obj/item/ammo_casing/energy/duel/ready_proj(atom/target, mob/living/user, quiet, zone_override) + . = ..() + var/obj/projectile/energy/duel/D = BB + D.setting = setting + D.hugbox = hugbox + D.update_icon() + +/obj/item/ammo_casing/energy/duel/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from) + . = ..() + var/obj/effect/temp_visual/dueling_chaff/C = new(get_turf(user)) + C.setting = setting + D.hugbox = hugbox + C.update_icon() + +//Projectile + +/obj/projectile/energy/duel + name = "dueling beam" + icon_state = "declone" + reflectable = FALSE + homing = TRUE + var/setting + var/hugbox = DUEL_HUGBOX_NONE + +/obj/projectile/energy/duel/update_icon() + . = ..() + switch(setting) + if(DUEL_SETTING_A) + color = "red" + if(DUEL_SETTING_B) + color = "green" + if(DUEL_SETTING_C) + color = "blue" + +/obj/projectile/energy/duel/on_hit(atom/target, blocked) + . = ..() + var/turf/T = get_turf(target) + var/obj/effect/temp_visual/dueling_chaff/C = locate() in T + if(C) + var/counter_setting + switch(setting) + if(DUEL_SETTING_A) + counter_setting = DUEL_SETTING_B + if(DUEL_SETTING_B) + counter_setting = DUEL_SETTING_C + if(DUEL_SETTING_C) + counter_setting = DUEL_SETTING_A + if(C.setting == counter_setting) + return BULLET_ACT_BLOCK + + var/mob/living/L = target + if(!istype(target)) + return BULLET_ACT_BLOCK + + switch(hugbox) + if(DUEL_HUGBOX_NONE) + var/obj/item/bodypart/B = L.get_bodypart(BODY_ZONE_HEAD) + B.dismember() + qdel(B) + if(DUEL_HUGBOX_LETHAL) + L.adjustBruteLoss(180) + L.death() //Die, powergamers. + if(DUEL_HUGBOX_NONLETHAL) + L.adjustStaminaLoss(200, forced = TRUE) //Die, powergamers x 2 + L.Knockdown(100, override_hardstun = 100) //For good measure. + +//Storage case. +/obj/item/storage/lockbox/dueling + name = "dueling pistol case" + desc = "Let's solve this like gentlespacemen." + icon_state = "medalbox+l" + item_state = "syringe_kit" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + w_class = WEIGHT_CLASS_NORMAL + req_access = list(ACCESS_CAPTAIN) + icon_locked = "medalbox+l" + icon_closed = "medalbox" + icon_broken = "medalbox+b" + var/gun_type = /obj/item/gun/energy/dueling + +/obj/item/storage/lockbox/dueling/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_SMALL + STR.max_items = 2 + STR.set_holdable(list(/obj/item/gun/energy/dueling)) + +/obj/item/storage/lockbox/dueling/update_icon() + cut_overlays() + var/locked = SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED) + if(locked) + icon_state = "medalbox+l" + else + icon_state = "medalbox" + if(open) + icon_state += "open" + if(broken) + icon_state += "+b" + +/obj/item/storage/lockbox/dueling/PopulateContents() + . = ..() + var/obj/item/gun/energy/dueling/gun_A = new gun_type(src) + var/obj/item/gun/energy/dueling/gun_B = new gun_type(src) + var/datum/duel/D = new + gun_A.duel = D + gun_B.duel = D + D.gun_A = gun_A + D.gun_B = gun_B + +/obj/item/storage/lockbox/dueling/hugbox + gun_type = /obj/item/gun/energy/dueling/hugbox + +/obj/item/storage/lockbox/dueling/hugbox/stamina + gun_type = /obj/item/gun/energy/dueling/hugbox/stamina diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index bba3efc951f7d40084862c95599449b3632d4c58..c30e8aa6bda84a6387124d82ad32473fcffd3251 100644 GIT binary patch literal 40160 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 z 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 diff --git a/tgstation.dme b/tgstation.dme index 8fda1f85cb..83c3fd82ed 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2626,6 +2626,7 @@ #include "code\modules\projectiles\guns\ballistic\revolver.dm" #include "code\modules\projectiles\guns\ballistic\shotgun.dm" #include "code\modules\projectiles\guns\ballistic\toy.dm" +#include "code\modules\projectiles\guns\energy\dueling.dm" #include "code\modules\projectiles\guns\energy\energy_gun.dm" #include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" #include "code\modules\projectiles\guns\energy\laser.dm" From 4883b365765c2d7342842d6df986b2318670fd53 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 27 Jan 2020 02:55:32 -0700 Subject: [PATCH 2/7] compile --- code/modules/projectiles/gun.dm | 7 ++++++- code/modules/projectiles/guns/energy/dueling.dm | 14 +++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 531c6082b0..fe5c4a1bbf 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -237,7 +237,7 @@ sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread), 1) else //Smart spread sprd = round((((rand_spr/burst_size) * iteration) - (0.5 + (rand_spr * 0.25))) * (randomized_gun_spread + randomized_bonus_spread), 1) - + before_firing(target,user) if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd, src)) shoot_with_empty_chamber(user) firing_burst = FALSE @@ -281,6 +281,7 @@ else if(chambered) sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread)) + before_firing(target,user) if(!chambered.fire_casing(target, user, params, , suppressed, zone_override, sprd, src)) shoot_with_empty_chamber(user) return @@ -466,6 +467,10 @@ qdel(pin) pin = new /obj/item/firing_pin +//Happens before the actual projectile creation +/obj/item/gun/proc/before_firing(atom/target,mob/user) + return + ///////////// // ZOOMING // ///////////// diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm index cea2fd580d..d286584eec 100644 --- a/code/modules/projectiles/guns/energy/dueling.dm +++ b/code/modules/projectiles/guns/energy/dueling.dm @@ -255,13 +255,13 @@ /obj/item/ammo_casing/energy/duel e_cost = 0 - projectile_type = /obj/projectile/energy/duel + projectile_type = /obj/item/projectile/energy/duel var/setting var/hugbox = DUEL_HUGBOX_NONE /obj/item/ammo_casing/energy/duel/ready_proj(atom/target, mob/living/user, quiet, zone_override) . = ..() - var/obj/projectile/energy/duel/D = BB + var/obj/item/projectile/energy/duel/D = BB D.setting = setting D.hugbox = hugbox D.update_icon() @@ -275,15 +275,15 @@ //Projectile -/obj/projectile/energy/duel +/obj/item/projectile/energy/duel name = "dueling beam" icon_state = "declone" - reflectable = FALSE + is_reflectable = FALSE homing = TRUE var/setting var/hugbox = DUEL_HUGBOX_NONE -/obj/projectile/energy/duel/update_icon() +/obj/item/projectile/energy/duel/update_icon() . = ..() switch(setting) if(DUEL_SETTING_A) @@ -293,7 +293,7 @@ if(DUEL_SETTING_C) color = "blue" -/obj/projectile/energy/duel/on_hit(atom/target, blocked) +/obj/item/projectile/energy/duel/on_hit(atom/target, blocked) . = ..() var/turf/T = get_turf(target) var/obj/effect/temp_visual/dueling_chaff/C = locate() in T @@ -345,7 +345,7 @@ var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_w_class = WEIGHT_CLASS_SMALL STR.max_items = 2 - STR.set_holdable(list(/obj/item/gun/energy/dueling)) + STR.can_hold = typecacheof(/obj/item/gun/energy/dueling) /obj/item/storage/lockbox/dueling/update_icon() cut_overlays() From 1e19ec2c507fae03dae70d93b6c15e1964ac0cf5 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 27 Jan 2020 02:59:27 -0700 Subject: [PATCH 3/7] bad var --- code/modules/projectiles/guns/energy/dueling.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm index d286584eec..b1d7ab7166 100644 --- a/code/modules/projectiles/guns/energy/dueling.dm +++ b/code/modules/projectiles/guns/energy/dueling.dm @@ -270,7 +270,6 @@ . = ..() var/obj/effect/temp_visual/dueling_chaff/C = new(get_turf(user)) C.setting = setting - D.hugbox = hugbox C.update_icon() //Projectile From fa2cc0cfdfb2b85cea0922f58d9c395867927f03 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 27 Jan 2020 03:39:27 -0700 Subject: [PATCH 4/7] adds --- _maps/map_files/generic/CentCom.dmm | 2 ++ code/modules/cargo/packs/misc.dm | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index a0467cde6c..905b2cdb1b 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -506,6 +506,7 @@ "bx" = ( /obj/structure/table, /obj/machinery/readybutton, +/obj/item/storage/lockbox/dueling/hugbox/stamina, /turf/open/floor/holofloor/basalt, /area/holodeck/rec_center/thunderdome) "by" = ( @@ -522,6 +523,7 @@ /area/holodeck/rec_center/thunderdome) "bA" = ( /obj/machinery/readybutton, +/obj/item/storage/lockbox/dueling/hugbox/stamina, /obj/effect/turf_decal/tile/red{ dir = 1 }, diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index 898f82c6ce..bd7385d29b 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -214,6 +214,34 @@ for(var/i in 1 to 9) new /obj/item/coin/silver(.) +/datum/supply_pack/misc/dueling_stam + name = "Dueling Pistols" + desc = "Resolve all your quarrels with some nonlethal fun." + cost = 2000 + contains = list(/obj/item/storage/lockbox/dueling/hugbox/stamina, + /obj/item/storage/lockbox/dueling/hugbox/stamina, + /obj/item/storage/lockbox/dueling/hugbox/stamina, + /obj/item/storage/lockbox/dueling/hugbox/stamina, + /obj/item/storage/lockbox/dueling/hugbox/stamina) + crate_name = "dueling pistols" + +/datum/supply_pack/misc/dueling_stam + name = "Lethal Dueling Pistols" + desc = "Resolve all your quarrels with some nonlethal fun." + cost = 3000 + contains = list(/obj/item/storage/lockbox/dueling/hugbox, + /obj/item/storage/lockbox/dueling/hugbox, + /obj/item/storage/lockbox/dueling/hugbox, + crate_name = "dueling pistols" + +/datum/supply_pack/misc/dueling_stam + name = "Elimination Dueling Pistols" + desc = "It's high noon." + cost = 5000 + hidden = TRUE + contains = list(/obj/item/storage/lockbox/dueling) + crate_name = "dueling pistols" + ////////////////////////////////////////////////////////////////////////////// //////////////////////////////// Misc Supplies /////////////////////////////// ////////////////////////////////////////////////////////////////////////////// From 68227dcdb1caf85ea7281d3c45df757091bc9d15 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 27 Jan 2020 03:53:50 -0700 Subject: [PATCH 5/7] Update misc.dm --- code/modules/cargo/packs/misc.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index bd7385d29b..fc5311a0d2 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -225,16 +225,16 @@ /obj/item/storage/lockbox/dueling/hugbox/stamina) crate_name = "dueling pistols" -/datum/supply_pack/misc/dueling_stam +/datum/supply_pack/misc/dueling_lethal name = "Lethal Dueling Pistols" desc = "Resolve all your quarrels with some nonlethal fun." cost = 3000 contains = list(/obj/item/storage/lockbox/dueling/hugbox, /obj/item/storage/lockbox/dueling/hugbox, - /obj/item/storage/lockbox/dueling/hugbox, + /obj/item/storage/lockbox/dueling/hugbox) crate_name = "dueling pistols" -/datum/supply_pack/misc/dueling_stam +/datum/supply_pack/misc/dueling_death name = "Elimination Dueling Pistols" desc = "It's high noon." cost = 5000 From 91e8bec81a630febcdb857e1c8e3f7727e8ec6af Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 27 Jan 2020 17:45:13 -0700 Subject: [PATCH 6/7] woops --- code/modules/cargo/packs/misc.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index fc5311a0d2..368c3a9144 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -227,8 +227,9 @@ /datum/supply_pack/misc/dueling_lethal name = "Lethal Dueling Pistols" - desc = "Resolve all your quarrels with some nonlethal fun." + desc = "Settle your differences the true spaceman way." cost = 3000 + contraband = TRUE contains = list(/obj/item/storage/lockbox/dueling/hugbox, /obj/item/storage/lockbox/dueling/hugbox, /obj/item/storage/lockbox/dueling/hugbox) From c665d971c0f59d7dd61196f0c567256e9b30b456 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 27 Jan 2020 17:45:35 -0700 Subject: [PATCH 7/7] Update misc.dm --- code/modules/cargo/packs/misc.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index 368c3a9144..ca2d2009ee 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -233,7 +233,7 @@ contains = list(/obj/item/storage/lockbox/dueling/hugbox, /obj/item/storage/lockbox/dueling/hugbox, /obj/item/storage/lockbox/dueling/hugbox) - crate_name = "dueling pistols" + crate_name = "dueling pistols (lethal)" /datum/supply_pack/misc/dueling_death name = "Elimination Dueling Pistols" @@ -241,7 +241,7 @@ cost = 5000 hidden = TRUE contains = list(/obj/item/storage/lockbox/dueling) - crate_name = "dueling pistols" + crate_name = "dueling pistols (elimination)" ////////////////////////////////////////////////////////////////////////////// //////////////////////////////// Misc Supplies ///////////////////////////////