From 129965b1c46b24cfe3f437484b993c6f6f36ce80 Mon Sep 17 00:00:00 2001 From: Datraen Date: Tue, 16 Feb 2016 12:58:17 -0500 Subject: [PATCH] Adds a variable to check for grenade loading, makes frags unloadable. --- .../items/weapons/grenades/explosive.dm | 1 + .../items/weapons/grenades/fragmentation.dm | 1 + .../objects/items/weapons/grenades/grenade.dm | 1 + .../guns/launcher/grenade_launcher.dm | 30 +++++++++++-------- .../changelogs/Datraen-GrenadeRestriction.yml | 6 ++++ 5 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 html/changelogs/Datraen-GrenadeRestriction.yml diff --git a/code/game/objects/items/weapons/grenades/explosive.dm b/code/game/objects/items/weapons/grenades/explosive.dm index bef5e09dda..ee1342d1cc 100644 --- a/code/game/objects/items/weapons/grenades/explosive.dm +++ b/code/game/objects/items/weapons/grenades/explosive.dm @@ -40,6 +40,7 @@ //The radius of the circle used to launch projectiles. Lower values mean less projectiles are used but if set too low gaps may appear in the spread pattern var/spread_range = 7 + loadable = null /obj/item/weapon/grenade/explosive/prime() ..() diff --git a/code/game/objects/items/weapons/grenades/fragmentation.dm b/code/game/objects/items/weapons/grenades/fragmentation.dm index f87b55e652..9f10e9b4d4 100644 --- a/code/game/objects/items/weapons/grenades/fragmentation.dm +++ b/code/game/objects/items/weapons/grenades/fragmentation.dm @@ -14,6 +14,7 @@ name = "fragmentation grenade" desc = "A military fragmentation grenade, designed to explode in a deadly shower of fragments." icon_state = "frag" + loadable = null var/num_fragments = 200 //total number of fragments produced by the grenade var/fragment_damage = 15 diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index c5a0607315..8a8536d434 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -12,6 +12,7 @@ var/active = 0 var/det_time = 50 + var/loadable = 1 /obj/item/weapon/grenade/proc/clown_check(var/mob/living/user) if((CLUMSY in user.mutations) && prob(50)) diff --git a/code/modules/projectiles/guns/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/launcher/grenade_launcher.dm index fe27d35790..547dc702cf 100644 --- a/code/modules/projectiles/guns/launcher/grenade_launcher.dm +++ b/code/modules/projectiles/guns/launcher/grenade_launcher.dm @@ -43,13 +43,16 @@ user << "\A [chambered] is chambered." /obj/item/weapon/gun/launcher/grenade/proc/load(obj/item/weapon/grenade/G, mob/user) - if(grenades.len >= max_grenades) - user << "[src] is full." + if(G.loadable) + if(grenades.len >= max_grenades) + user << "[src] is full." + return + user.remove_from_mob(G) + G.loc = src + grenades.Insert(1, G) //add to the head of the list, so that it is loaded on the next pump + user.visible_message("[user] inserts \a [G] into [src].", "You insert \a [G] into [src].") return - user.remove_from_mob(G) - G.loc = src - grenades.Insert(1, G) //add to the head of the list, so that it is loaded on the next pump - user.visible_message("[user] inserts \a [G] into [src].", "You insert \a [G] into [src].") + user << "[G] doesn't seem to fit in the [src]!" /obj/item/weapon/gun/launcher/grenade/proc/unload(mob/user) if(grenades.len) @@ -99,13 +102,16 @@ //load and unload directly into chambered /obj/item/weapon/gun/launcher/grenade/underslung/load(obj/item/weapon/grenade/G, mob/user) - if(chambered) - user << "[src] is already loaded." + if(G.loadable) + if(chambered) + user << "[src] is already loaded." + return + user.remove_from_mob(G) + G.loc = src + chambered = G + user.visible_message("[user] load \a [G] into [src].", "You load \a [G] into [src].") return - user.remove_from_mob(G) - G.loc = src - chambered = G - user.visible_message("[user] load \a [G] into [src].", "You load \a [G] into [src].") + user << "[G] doesn't seem to fit in the [src]!" /obj/item/weapon/gun/launcher/grenade/underslung/unload(mob/user) if(chambered) diff --git a/html/changelogs/Datraen-GrenadeRestriction.yml b/html/changelogs/Datraen-GrenadeRestriction.yml new file mode 100644 index 0000000000..ebc380b1b2 --- /dev/null +++ b/html/changelogs/Datraen-GrenadeRestriction.yml @@ -0,0 +1,6 @@ +author: Datraen + +delete-after: True + +changes: + - tweak: "Fragmentation grenades are no longer launchable."