From 79d51a57da375367cff7eddd45089dbd4759b906 Mon Sep 17 00:00:00 2001 From: TheDZD Date: Fri, 22 Jul 2016 16:08:17 -0400 Subject: [PATCH] Refactors telegun, mimicgun, and tempgun --- code/modules/projectiles/ammunition/energy.dm | 16 +++++----- code/modules/projectiles/gun.dm | 2 +- code/modules/projectiles/guns/energy.dm | 4 +-- .../projectiles/guns/energy/special.dm | 29 ++++++++++++------- .../projectiles/guns/energy/telegun.dm | 4 ++- .../modules/projectiles/projectile/special.dm | 2 +- 6 files changed, 34 insertions(+), 23 deletions(-) diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index a5dc8c62da3..93e5d5f2bb4 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -104,16 +104,15 @@ /obj/item/ammo_casing/energy/temp projectile_type = /obj/item/projectile/temp - e_cost = 100 fire_sound = 'sound/weapons/pulse3.ogg' + var/temp = 300 /obj/item/ammo_casing/energy/temp/New() ..() BB = null -/obj/item/ammo_casing/energy/temp/newshot(shot_temp, shot_cost) - e_cost = shot_cost - ..(shot_temp) +/obj/item/ammo_casing/energy/temp/newshot() + ..(temp) /obj/item/ammo_casing/energy/meteor projectile_type = /obj/item/projectile/meteor @@ -231,17 +230,18 @@ ..() BB = null -/obj/item/ammo_casing/energy/teleport/newshot(teleport_target) - ..() +/obj/item/ammo_casing/energy/teleport/newshot() + ..(teleport_target) /obj/item/ammo_casing/energy/mimic projectile_type = /obj/item/projectile/mimic fire_sound = 'sound/weapons/bite.ogg' select_name = "gun mimic" + var/mimic_type /obj/item/ammo_casing/energy/mimic/New() ..() BB = null -/obj/item/ammo_casing/energy/mimic/newshot(mimic_type) - ..() +/obj/item/ammo_casing/energy/mimic/newshot() + ..(mimic_type) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 5d0e190ee04..6ede088c4ce 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -161,7 +161,7 @@ return 0 return 1 -obj/item/weapon/gun/proc/newshot(params) +obj/item/weapon/gun/proc/newshot() return /obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index ca6bfd495a6..2d87a32be2b 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -80,13 +80,13 @@ var/obj/item/ammo_casing/energy/shot = ammo_type[select] return power_supply.charge >= shot.e_cost -/obj/item/weapon/gun/energy/newshot(params) +/obj/item/weapon/gun/energy/newshot() if(!ammo_type || !power_supply) return var/obj/item/ammo_casing/energy/shot = ammo_type[select] if(power_supply.charge >= shot.e_cost) //if there's enough power in the power_supply cell... chambered = shot //...prepare a new shot based on the current ammo type selected - chambered.newshot(params) + chambered.newshot() return /obj/item/weapon/gun/energy/process_chamber() diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 6affad6284f..4339cd504e9 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -442,6 +442,7 @@ origin_tech = "combat=3;materials=4;powerstorage=3;magnets=2" ammo_type = list(/obj/item/ammo_casing/energy/temp) + selfcharge = 1 cell_type = /obj/item/weapon/stock_parts/cell var/powercost = "" @@ -461,7 +462,7 @@ return ..() /obj/item/weapon/gun/energy/temperature/newshot() - ..(temperature, e_cost) + ..() /obj/item/weapon/gun/energy/temperature/attack_self(mob/living/user as mob) user.set_machine(src) @@ -493,26 +494,32 @@ return /obj/item/weapon/gun/energy/temperature/process() + ..() + var/obj/item/ammo_casing/energy/temp/T = ammo_type[select] + T.temp = temperature switch(temperature) if(0 to 100) - e_cost = 3000 + T.e_cost = 3000 powercost = "High" if(100 to 250) - e_cost = 2000 + T.e_cost = 2000 powercost = "Medium" if(251 to 300) - e_cost = 1000 + T.e_cost = 1000 powercost = "Low" if(301 to 400) - e_cost = 2000 + T.e_cost = 2000 powercost = "Medium" if(401 to 1000) - e_cost = 3000 + T.e_cost = 3000 powercost = "High" switch(powercost) - if("High") powercostcolor = "orange" - if("Medium") powercostcolor = "green" - else powercostcolor = "blue" + if("High") + powercostcolor = "orange" + if("Medium") + powercostcolor = "green" + else + powercostcolor = "blue" if(target_temperature != temperature) var/difference = abs(target_temperature - temperature) if(difference >= (10 + 40*emagged)) //so emagged temp guns adjust their temperature much more quickly @@ -616,4 +623,6 @@ var/mimic_type = /obj/item/weapon/gun/projectile/automatic/pistol //Setting this to the mimicgun type does exactly what you think it will. /obj/item/weapon/gun/energy/mimicgun/newshot() - ..(mimic_type) + var/obj/item/ammo_casing/energy/mimic/M = ammo_type[select] + M.mimic_type = mimic_type + ..() diff --git a/code/modules/projectiles/guns/energy/telegun.dm b/code/modules/projectiles/guns/energy/telegun.dm index a52a40c7ef2..2155a1cf0a1 100644 --- a/code/modules/projectiles/guns/energy/telegun.dm +++ b/code/modules/projectiles/guns/energy/telegun.dm @@ -38,4 +38,6 @@ teleport_target = L[desc] /obj/item/weapon/gun/energy/telegun/newshot() - ..(teleport_target) + var/obj/item/ammo_casing/energy/teleport/T = ammo_type[select] + T.teleport_target = teleport_target + ..() diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 6fc934cd87e..cd562e00a48 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -55,7 +55,7 @@ /obj/item/projectile/temp/New(loc, shot_temp) ..(loc) - if(shot_temp) + if(!isnull(shot_temp)) temperature = shot_temp switch(temperature) if(501 to INFINITY)