From 34f71c489bbc1680f8403cf6ab754064031aafe9 Mon Sep 17 00:00:00 2001 From: CygnusB <39594514+MalricB@users.noreply.github.com> Date: Fri, 31 Jan 2020 19:03:44 -0300 Subject: [PATCH] It's 12 o'clock Darn tootin' pardner --- code/modules/cargo/packs.dm | 38 +- code/modules/projectiles/gun.dm | 6 +- .../projectiles/guns/energy/dueling.dm | 389 ++++++++++++++++++ icons/obj/guns/energy.dmi | Bin 37512 -> 38245 bytes tgstation.dme | 1 + tgstation.lk | 0 6 files changed, 429 insertions(+), 5 deletions(-) create mode 100644 code/modules/projectiles/guns/energy/dueling.dm create mode 100644 tgstation.lk diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 6f85668b..149416bf 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -2924,9 +2924,9 @@ name = "Kinkmate construction kit" cost = 2000 contraband = TRUE - contains = list(/obj/item/vending_refill/kink, - /obj/item/vending_refill/kink, - /obj/item/vending_refill/kink, + contains = list(/obj/item/vending_refill/kink, + /obj/item/vending_refill/kink, + /obj/item/vending_refill/kink, /obj/item/circuitboard/machine/kinkmate) crate_name = "Kinkmate construction kit" @@ -2966,6 +2966,36 @@ crate_name = "captain pen" crate_type = /obj/structure/closet/crate/secure/weapon //It is a combat pen +/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_lethal + name = "Lethal Dueling Pistols" + 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) + crate_name = "dueling pistols (lethal)" + +/datum/supply_pack/misc/dueling_death + name = "Elimination Dueling Pistols" + desc = "It's high noon." + cost = 5000 + hidden = TRUE + contains = list(/obj/item/storage/lockbox/dueling) + crate_name = "dueling pistols (elimination)" + + /datum/supply_pack/misc/exoticfootwear name = "Exotic Footwear Crate" desc = "Popularised by lizards and exotic dancers, the footwear included in this shipment is sure to give your feet the breathing room they deserve. Sweet Kicks Inc. is not responsible for any damage, distress, or @r0u$a1 caused by this shipment." @@ -3006,7 +3036,7 @@ /obj/item/bedsheet/purple, /obj/item/bedsheet/red, /obj/item/bedsheet/yellow, - /obj/item/bedsheet/brown, + /obj/item/bedsheet/brown, /obj/item/bedsheet/black, /obj/item/bedsheet/rainbow) crate_name = "colored bedsheet crate" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 8c44ca45..b0f9a7b4 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -235,7 +235,7 @@ sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread)) else //Smart spread sprd = round((((rand_spr/burst_size) * iteration) - (0.5 + (rand_spr * 0.25))) * (randomized_gun_spread + randomized_bonus_spread)) - + before_firing(target,user) if(!chambered.fire_casing(target, user, params, ,suppressed, zone_override, sprd)) shoot_with_empty_chamber(user) firing_burst = FALSE @@ -281,6 +281,7 @@ to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...") return 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)) shoot_with_empty_chamber(user) return @@ -470,6 +471,9 @@ 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 new file mode 100644 index 00000000..85a65b65 --- /dev/null +++ b/code/modules/projectiles/guns/energy/dueling.dm @@ -0,0 +1,389 @@ +#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 + var/static/next_id = 1 + var/id + +/datum/duel/New() + id = next_id++ + +/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/examine(mob/user) + . = ..() + if(duel) + . += "Its linking number is [duel.id]." + else + . += "ERROR: No linking number on gun." + +/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/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/item/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 + C.update_icon() + +//Projectile + +/obj/item/projectile/energy/duel + name = "dueling beam" + icon_state = "declone" + is_reflectable = FALSE + homing = TRUE + var/setting + var/hugbox = DUEL_HUGBOX_NONE + +/obj/item/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/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 + 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.can_hold = typecacheof(/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 + req_access = list(ACCESS_ARMORY) + +/obj/item/storage/lockbox/dueling/hugbox/stamina + gun_type = /obj/item/gun/energy/dueling/hugbox/stamina + req_access = null \ No newline at end of file diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index a6d5c8a5e1b7e0c74e102c2613d3481a6ebef182..8fafce6afbd1b42470096affc1130c9c14ad9f0c 100644 GIT binary patch delta 20103 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