From f47131fbb2cdd87fc2f926b4057eaa79ab777bc7 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Fri, 12 Feb 2016 14:52:50 -0500 Subject: [PATCH] Refactors Bot Weapon Identification --- code/game/machinery/bots/ed209bot.dm | 15 ++------------- code/game/machinery/bots/secbot.dm | 15 ++------------- code/game/objects/items.dm | 2 ++ code/game/objects/items/weapons/melee/misc.dm | 3 +++ .../game/objects/items/weapons/swords_axes_etc.dm | 1 + code/modules/projectiles/gun.dm | 1 + code/modules/projectiles/guns/energy/laser.dm | 3 +++ code/modules/projectiles/guns/energy/special.dm | 2 ++ 8 files changed, 16 insertions(+), 26 deletions(-) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index bb6ca81b8e6..99ff5796acc 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -38,16 +38,6 @@ bot_type_name = "ED-209" bot_filter = RADIO_SECBOT - //List of weapons that secbots will not arrest for - var/safe_weapons = list(\ - /obj/item/weapon/gun/energy/laser/bluetag,\ - /obj/item/weapon/gun/energy/laser/redtag,\ - /obj/item/weapon/gun/energy/laser/practice,\ - /obj/item/weapon/melee/classic_baton/telescopic,\ - /obj/item/weapon/gun/energy/kinetic_accelerator,\ - /obj/item/weapon/gun/energy/floragun) - - /obj/item/weapon/ed209_assembly name = "\improper ED-209 assembly" desc = "Some sort of bizarre assembly." @@ -395,9 +385,8 @@ Auto Patrol[]"}, continue /obj/machinery/bot/ed209/proc/check_for_weapons(var/obj/item/slot_item) - if(istype(slot_item, /obj/item/weapon/gun) || istype(slot_item, /obj/item/weapon/melee)) - if(!(slot_item.type in safe_weapons)) - return 1 + if(slot_item && slot_item.needs_permit) + return 1 return 0 /obj/machinery/bot/ed209/explode() diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 8e34b0ae19e..729ce464b8c 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -31,16 +31,6 @@ bot_type_name = "Secbot" bot_filter = RADIO_SECBOT - //List of weapons that secbots will not arrest for - var/safe_weapons = list(\ - /obj/item/weapon/gun/energy/laser/bluetag,\ - /obj/item/weapon/gun/energy/laser/redtag,\ - /obj/item/weapon/gun/energy/laser/practice,\ - /obj/item/weapon/melee/classic_baton/telescopic,\ - /obj/item/weapon/gun/energy/kinetic_accelerator,\ - /obj/item/weapon/gun/energy/floragun) - - /obj/machinery/bot/secbot/beepsky name = "Officer Beepsky" desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey." @@ -378,9 +368,8 @@ Auto Patrol: []"}, else continue /obj/machinery/bot/secbot/proc/check_for_weapons(var/obj/item/slot_item) - if(istype(slot_item, /obj/item/weapon/gun) || istype(slot_item, /obj/item/weapon/melee)) - if(!(slot_item.type in safe_weapons)) - return 1 + if(slot_item && slot_item.needs_permit) + return 1 return 0 /obj/machinery/bot/secbot/explode() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index bd0c2a4fc5a..1ccb002abb9 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -49,6 +49,8 @@ var/list/allowed = null //suit storage stuff. var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers. + var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use. + var/strip_delay = DEFAULT_ITEM_STRIP_DELAY var/put_on_delay = DEFAULT_ITEM_PUTON_DELAY diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 1edaeb26eb7..7e95235ff4a 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -1,3 +1,6 @@ +/obj/item/weapon/melee + needs_permit = 1 + /obj/item/weapon/melee/chainofcommand name = "chain of command" desc = "A tool used by great men to placate the frothing masses." diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 63f10e1d574..edf0c77e131 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -77,6 +77,7 @@ item_state = null slot_flags = SLOT_BELT w_class = 2 + needs_permit = 0 force = 0 on = 0 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index c1eb0f1ebee..d44fb37f20b 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -19,6 +19,7 @@ throw_range = 5 force = 5.0 origin_tech = "combat=1" + needs_permit = 1 attack_verb = list("struck", "hit", "bashed") var/fire_sound = 'sound/weapons/Gunshot.ogg' diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index ed4ca6eeeed..1558304b191 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -15,6 +15,7 @@ desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." projectile_type = "/obj/item/projectile/practice" clumsy_check = 0 + needs_permit = 0 obj/item/weapon/gun/energy/laser/retro name ="retro laser gun" @@ -107,6 +108,7 @@ obj/item/weapon/gun/energy/laser/retro projectile_type = "/obj/item/projectile/lasertag/blue" origin_tech = "combat=1;magnets=2" clumsy_check = 0 + needs_permit = 0 self_recharge = 1 @@ -124,6 +126,7 @@ obj/item/weapon/gun/energy/laser/retro projectile_type = "/obj/item/projectile/lasertag/red" origin_tech = "combat=1;magnets=2" clumsy_check = 0 + needs_permit = 0 self_recharge = 1 diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 9bb7d479de5..7093eb7202a 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -41,6 +41,7 @@ origin_tech = "materials=2;biotech=3;powerstorage=3" modifystate = "floramut" var/mode = 0 //0 = mutate, 1 = yield boost + needs_permit = 0 self_recharge = 1 @@ -202,6 +203,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. fire_sound = 'sound/weapons/Kenetic_accel.ogg' charge_cost = 5000 cell_type = "/obj/item/weapon/stock_parts/cell/emproof" + needs_permit = 0 // Aparently these are safe to carry? I'm sure Golliaths would disagree. fire_delay = 16 //Because guncode is bad and you can bug the reload for rapid fire otherwise. var/recently_fired = 0