From d02e370830767c06c5f7b559f30924f970636953 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 21 Jul 2014 19:02:38 +0930 Subject: [PATCH] Integrated crossbows/pneumatic cannons into launcher gun type, added back sprites. --- baystation12.dme | 3 +- code/modules/admin/verbs/vox_raiders.dm | 2 +- code/modules/projectiles/gun.dm | 2 +- code/modules/projectiles/guns/alien.dm | 105 +++------ .../guns/projectile/{bow.dm => crossbow.dm} | 212 ++++++++---------- .../projectiles/guns/projectile/launcher.dm | 91 ++++++++ .../projectiles/guns/projectile/pneumatic.dm | 130 +++++------ icons/mob/back.dmi | Bin 36425 -> 38973 bytes maps/tgstation2.dmm | 4 +- 9 files changed, 279 insertions(+), 270 deletions(-) rename code/modules/projectiles/guns/projectile/{bow.dm => crossbow.dm} (61%) create mode 100644 code/modules/projectiles/guns/projectile/launcher.dm diff --git a/baystation12.dme b/baystation12.dme index 365ed1718bb..cc76085482a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1158,7 +1158,8 @@ #include "code\modules\projectiles\guns\energy\stun.dm" #include "code\modules\projectiles\guns\energy\temperature.dm" #include "code\modules\projectiles\guns\projectile\automatic.dm" -#include "code\modules\projectiles\guns\projectile\bow.dm" +#include "code\modules\projectiles\guns\projectile\crossbow.dm" +#include "code\modules\projectiles\guns\projectile\launcher.dm" #include "code\modules\projectiles\guns\projectile\pistol.dm" #include "code\modules\projectiles\guns\projectile\pneumatic.dm" #include "code\modules\projectiles\guns\projectile\revolver.dm" diff --git a/code/modules/admin/verbs/vox_raiders.dm b/code/modules/admin/verbs/vox_raiders.dm index d100720102c..9f736e3ae40 100644 --- a/code/modules/admin/verbs/vox_raiders.dm +++ b/code/modules/admin/verbs/vox_raiders.dm @@ -18,7 +18,7 @@ var/global/vox_tick = 1 equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. equip_to_slot_or_del(new /obj/item/device/chameleon(src), slot_l_store) - var/obj/item/weapon/spikethrower/W = new(src) + var/obj/item/weapon/gun/launcher/spikethrower/W = new(src) equip_to_slot_or_del(W, slot_r_hand) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index b1b3df0672e..3d4ea67c3ba 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -218,7 +218,7 @@ //Point blank shooting if on harm intent or target we were targeting. if(user.a_intent == "hurt") user.visible_message("\red \The [user] fires \the [src] point blank at [M]!") - in_chamber.damage *= 1.3 + if(istype(in_chamber)) in_chamber.damage *= 1.3 Fire(M,user) return else if(target && M in target) diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm index f1928730908..855312da7e4 100644 --- a/code/modules/projectiles/guns/alien.dm +++ b/code/modules/projectiles/guns/alien.dm @@ -1,19 +1,5 @@ //Vox pinning weapon. - -//Ammo. -/obj/item/weapon/spike - name = "alloy spike" - desc = "It's about a foot of weird silver metal with a wicked point." - sharp = 1 - edge = 0 - throwforce = 5 - w_class = 2 - icon = 'icons/obj/weapons.dmi' - icon_state = "metal-rod" - item_state = "bolt" - -//Launcher. -/obj/item/weapon/spikethrower +/obj/item/weapon/gun/launcher/spikethrower name = "Vox spike thrower" desc = "A vicious alien projectile weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive." @@ -22,97 +8,60 @@ var/spike_gen_time = 100 var/max_spikes = 3 var/spikes = 3 - var/obj/item/weapon/spike/spike - var/fire_force = 30 - - //Going to make an effort to get this compatible with the threat targetting system. - var/tmp/list/mob/living/target - var/tmp/mob/living/last_moved_mob - + release_force = 30 icon = 'icons/obj/gun.dmi' icon_state = "spikethrower3" item_state = "spikethrower" + fire_sound_text = "a strange noise" + fire_sound = 'sound/weapons/bladeslice.ogg' -/obj/item/weapon/spikethrower/New() +/obj/item/weapon/gun/launcher/spikethrower/New() ..() processing_objects.Add(src) last_regen = world.time -/obj/item/weapon/spikethrower/Del() +/obj/item/weapon/gun/launcher/spikethrower/Del() processing_objects.Remove(src) ..() -/obj/item/weapon/spikethrower/process() +/obj/item/weapon/gun/launcher/spikethrower/process() if(spikes < max_spikes && world.time > last_regen + spike_gen_time) spikes++ last_regen = world.time update_icon() -/obj/item/weapon/spikethrower/examine() +/obj/item/weapon/gun/launcher/spikethrower/examine() ..() usr << "It has [spikes] [spikes == 1 ? "spike" : "spikes"] remaining." -/obj/item/weapon/spikethrower/update_icon() +/obj/item/weapon/gun/launcher/spikethrower/update_icon() icon_state = "spikethrower[spikes]" -/obj/item/weapon/spikethrower/afterattack(atom/A as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) - if(flag) return - if(user && user.client && user.client.gun_mode && !(A in target)) - //TODO: Make this compatible with targetting (prolly have to actually make it a gun subtype, ugh.) - //PreFire(A,user,params) - else - Fire(A,user,params) - -/obj/item/weapon/spikethrower/attack(mob/living/M as mob, mob/living/user as mob, def_zone) - - if (M == user && user.zone_sel.selecting == "mouth") - M.visible_message("\red [user] attempts without success to fit [src] into their mouth.") - return - - if (spikes > 0) - if(user.a_intent == "hurt") - user.visible_message("\red \The [user] fires \the [src] point blank at [M]!") - Fire(M,user) - return - else if(target && M in target) - Fire(M,user) - return - else - return ..() - -/obj/item/weapon/spikethrower/proc/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) - - add_fingerprint(user) - - var/turf/curloc = get_turf(user) - var/turf/targloc = get_turf(target) - if (!istype(targloc) || !istype(curloc)) - return +/obj/item/weapon/gun/launcher/spikethrower/emp_act(severity) + return +/obj/item/weapon/gun/launcher/spikethrower/special_check(user) if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user - if(H.species && H.species.name != "Vox") - user << "\red The weapon does not respond to you!" - return - else - user << "\red The weapon does not respond to you!" - return + if(H.species && H.species.name != "Vox" && H.species.name != "Vox Armalis") + user << "\red \The [src] does not respond to you!" + return 0 + return 1 - if(spikes <= 0) - user << "\red The weapon has nothing to fire!" - return +/obj/item/weapon/gun/launcher/spikethrower/update_release_force() + return - if(!spike) - spike = new(src) //Create a spike. - spike.add_fingerprint(user) - spikes-- +/obj/item/weapon/gun/launcher/spikethrower/load_into_chamber() + if(in_chamber) return 1 + if(spikes < 1) return 0 - user.visible_message("\red [user] fires [src]!", "\red You fire [src]!") - spike.loc = get_turf(src) - spike.throw_at(target,10,fire_force) - spike = null - update_icon() + spikes-- + in_chamber = new /obj/item/weapon/spike(src) + return 1 + +/obj/item/weapon/gun/launcher/spikethrower/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) + if(..()) update_icon() //This gun only functions for armalis. The on-sprite is too huge to render properly on other sprites. /obj/item/weapon/gun/energy/noisecannon diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/crossbow.dm similarity index 61% rename from code/modules/projectiles/guns/projectile/bow.dm rename to code/modules/projectiles/guns/projectile/crossbow.dm index 912b5f2f1ee..e9bfb12b84c 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/crossbow.dm @@ -1,3 +1,5 @@ +//AMMUNITION + /obj/item/weapon/arrow name = "bolt" @@ -14,6 +16,17 @@ /obj/item/weapon/arrow/proc/removed() //Helper for metal rods falling apart. return +/obj/item/weapon/spike + name = "alloy spike" + desc = "It's about a foot of weird silver metal with a wicked point." + sharp = 1 + edge = 0 + throwforce = 5 + w_class = 2 + icon = 'icons/obj/weapons.dmi' + icon_state = "metal-rod" + item_state = "bolt" + /obj/item/weapon/arrow/quill name = "vox quill" @@ -36,86 +49,50 @@ S.loc = get_turf(src) src.Del() -/obj/item/weapon/crossbow +/obj/item/weapon/gun/launcher/crossbow name = "powered crossbow" desc = "A 2557AD twist on an old classic. Pick up that can." - icon = 'icons/obj/weapons.dmi' icon_state = "crossbow" item_state = "crossbow-solid" - w_class = 5.0 - flags = FPRINT | TABLEPASS | CONDUCT - slot_flags = SLOT_BELT | SLOT_BACK + fire_sound = 'sound/weapons/punchmiss.ogg' // TODO: Decent THWOK noise. + ejectshell = 0 // No spent shells. + mouthshoot = 1 // No suiciding with this weapon, causes runtimes. + fire_sound_text = "a solid thunk" + fire_delay = 25 - w_class = 3.0 + var/tension = 0 // Current draw on the bow. + var/max_tension = 5 // Highest possible tension. + var/release_speed = 5 // Speed per unit of tension. + var/obj/item/weapon/cell/cell = null // Used for firing superheated rods. + var/current_user // Used to check if the crossbow has changed hands since being drawn. - var/tension = 0 // Current draw on the bow. - var/max_tension = 5 // Highest possible tension. - var/release_speed = 5 // Speed per unit of tension. - var/mob/living/current_user = null // Used to see if the person drawing the bow started drawing it. - var/obj/item/weapon/arrow = null // Nocked arrow. - var/obj/item/weapon/cell/cell = null // Used for firing special projectiles like rods. +/obj/item/weapon/gun/launcher/crossbow/emp_act(severity) + if(cell && severity) + cell.use(100*severity) -/obj/item/weapon/crossbow/attackby(obj/item/W as obj, mob/user as mob) - if(!arrow) - if (istype(W,/obj/item/weapon/arrow)) - user.drop_item() - arrow = W - arrow.loc = src - user.visible_message("[user] slides [arrow] into [src].","You slide [arrow] into [src].") - icon_state = "crossbow-nocked" - return - else if(istype(W,/obj/item/stack/rods)) - var/obj/item/stack/rods/R = W - R.use(1) - arrow = new /obj/item/weapon/arrow/rod(src) - arrow.fingerprintslast = src.fingerprintslast - arrow.loc = src - icon_state = "crossbow-nocked" - user.visible_message("[user] haphazardly jams [arrow] into [src].","You jam [arrow] into [src].") - if(cell) - if(cell.charge >= 500) - user << "[arrow] plinks and crackles as it begins to glow red-hot." - arrow.throwforce = 15 - arrow.icon_state = "metal-rod-superheated" - cell.use(500) - return +/obj/item/weapon/gun/launcher/crossbow/special_check(user) + if(tension <= 0) + user << "\red \The [src] is not drawn back!" + return 0 + return 1 - if(istype(W, /obj/item/weapon/cell)) - if(!cell) - user.drop_item() - W.loc = src - cell = W - user << "You jam [cell] into [src] and wire it to the firing coil." - if(arrow) - if(istype(arrow,/obj/item/weapon/arrow/rod) && arrow.throwforce < 15 && cell.charge >= 500) - user << "[arrow] plinks and crackles as it begins to glow red-hot." - arrow.throwforce = 15 - arrow.icon_state = "metal-rod-superheated" - cell.use(500) - else - user << "[src] already has a cell installed." +/obj/item/weapon/gun/launcher/crossbow/update_release_force() + release_force = tension*release_speed - else if(istype(W, /obj/item/weapon/screwdriver)) - if(cell) - var/obj/item/C = cell - C.loc = get_turf(user) - cell = null - user << "You jimmy [cell] out of [src] with [W]." - else - user << "[src] doesn't have a cell installed." +/obj/item/weapon/gun/launcher/crossbow/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) - else - ..() + if(!..()) return //Only do this on a successful shot. + icon_state = "crossbow" -/obj/item/weapon/crossbow/attack_self(mob/living/user as mob) +/obj/item/weapon/gun/launcher/crossbow/attack_self(mob/living/user as mob) if(tension) - if(arrow) - user.visible_message("[user] relaxes the tension on [src]'s string and removes [arrow].","You relax the tension on [src]'s string and remove [arrow].") - var/obj/item/weapon/arrow/A = arrow - A.loc = get_turf(src) + if(in_chamber && in_chamber.loc == src) //Just in case they click it the tick after firing. + user.visible_message("[user] relaxes the tension on [src]'s string and removes [in_chamber].","You relax the tension on [src]'s string and remove [in_chamber].") + in_chamber.loc = get_turf(src) + var/obj/item/weapon/arrow/A = in_chamber + in_chamber = null A.removed(user) - arrow = null else user.visible_message("[user] relaxes the tension on [src]'s string.","You relax the tension on [src]'s string.") tension = 0 @@ -123,9 +100,9 @@ else draw(user) -/obj/item/weapon/crossbow/proc/draw(var/mob/user as mob) +/obj/item/weapon/gun/launcher/crossbow/proc/draw(var/mob/user as mob) - if(!arrow) + if(!in_chamber) user << "You don't have anything nocked to [src]." return @@ -133,14 +110,13 @@ return current_user = user - user.visible_message("[user] begins to draw back the string of [src].","You begin to draw back the string of [src].") tension = 1 - spawn(25) increase_tension(user) + spawn(25) increase_tension(user) //TODO: This needs to be changed to something less shit. -/obj/item/weapon/crossbow/proc/increase_tension(var/mob/user as mob) +/obj/item/weapon/gun/launcher/crossbow/proc/increase_tension(var/mob/user as mob) - if(!arrow || !tension || current_user != user) //Arrow has been fired, bow has been relaxed or user has changed. + if(!in_chamber || !tension || current_user != user) //Arrow has been fired, bow has been relaxed or user has changed. return tension++ @@ -153,60 +129,62 @@ user.visible_message("[usr] draws back the string of [src]!","You continue drawing back the string of [src]!") spawn(25) increase_tension(user) -/obj/item/weapon/crossbow/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) +/obj/item/weapon/gun/launcher/crossbow/attackby(obj/item/W as obj, mob/user as mob) + if(!in_chamber) + if (istype(W,/obj/item/weapon/arrow)) + user.drop_item() + in_chamber = W + in_chamber.loc = src + user.visible_message("[user] slides [in_chamber] into [src].","You slide [in_chamber] into [src].") + icon_state = "crossbow-nocked" + return + else if(istype(W,/obj/item/stack/rods)) + var/obj/item/stack/rods/R = W + R.use(1) + in_chamber = new /obj/item/weapon/arrow/rod(src) + in_chamber.fingerprintslast = src.fingerprintslast + in_chamber.loc = src + icon_state = "crossbow-nocked" + user.visible_message("[user] jams [in_chamber] into [src].","You jam [in_chamber] into [src].") + superheat_rod(user) + return - if (istype(target, /obj/item/weapon/storage/backpack )) - src.dropped() - return + if(istype(W, /obj/item/weapon/cell)) + if(!cell) + user.drop_item() + W.loc = src + cell = W + user << "You jam [cell] into [src] and wire it to the firing coil." + superheat_rod(user) + else + user << "[src] already has a cell installed." - else if (target.loc == user.loc) - return + else if(istype(W, /obj/item/weapon/screwdriver)) + if(cell) + var/obj/item/C = cell + C.loc = get_turf(user) + user << "You jimmy [cell] out of [src] with [W]." + cell = null + else + user << "[src] doesn't have a cell installed." - else if (locate (/obj/structure/table, src.loc)) - return - - else if(target == user) - return - - if(!tension) - user << "You haven't drawn back the bolt!" - return 0 - - if (!arrow) - user << "You have no arrow nocked to [src]!" - return 0 else - spawn(0) Fire(target,user,params) + ..() -/obj/item/weapon/crossbow/proc/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) +/obj/item/weapon/gun/launcher/crossbow/proc/superheat_rod(var/mob/user) - add_fingerprint(user) + if(!user || !cell || !in_chamber) return + if(cell.charge < 500) return + if(in_chamber.throwforce >= 15) return + if(!istype(in_chamber,/obj/item/weapon/arrow/rod)) return - var/turf/curloc = get_turf(user) - var/turf/targloc = get_turf(target) - if (!istype(targloc) || !istype(curloc)) - return + user << "[in_chamber] plinks and crackles as it begins to glow red-hot." + in_chamber.throwforce = 15 + in_chamber.icon_state = "metal-rod-superheated" + cell.use(500) - user.visible_message("[user] releases [src] and sends [arrow] streaking toward [target]!","You release [src] and send [arrow] streaking toward [target]!") - - var/obj/item/weapon/arrow/A = arrow - A.loc = get_turf(user) - A.throw_at(target,10,tension*release_speed) - arrow = null - tension = 0 - icon_state = "crossbow" - -/obj/item/weapon/crossbow/dropped(mob/user) - if(arrow) - var/obj/item/weapon/arrow/A = arrow - A.loc = get_turf(src) - A.removed(user) - arrow = null - tension = 0 - icon_state = "crossbow" // Crossbow construction. - /obj/item/weapon/crossbowframe name = "crossbow frame" desc = "A half-finished crossbow." @@ -283,7 +261,7 @@ else if(istype(W,/obj/item/weapon/screwdriver)) if(buildstate == 5) user << "\blue You secure the crossbow's various parts." - new /obj/item/weapon/crossbow(get_turf(src)) + new /obj/item/weapon/gun/launcher/crossbow(get_turf(src)) del(src) return else diff --git a/code/modules/projectiles/guns/projectile/launcher.dm b/code/modules/projectiles/guns/projectile/launcher.dm new file mode 100644 index 00000000000..c367780a5e8 --- /dev/null +++ b/code/modules/projectiles/guns/projectile/launcher.dm @@ -0,0 +1,91 @@ +/obj/item/weapon/gun/launcher + + name = "launcher" + desc = "A device that launches things." + icon = 'icons/obj/weapons.dmi' + w_class = 5.0 + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BACK + + var/release_force = 0 + var/fire_sound_text = "a launcher firing" + +//Check if we're drawing and if the bow is loaded. +/obj/item/weapon/gun/launcher/load_into_chamber() + return (!isnull(in_chamber)) + +//This should not fit in a combat belt or holster. +/obj/item/weapon/gun/launcher/isHandgun() + return 0 + +//Launchers are mechanical, no other impact. +/obj/item/weapon/gun/launcher/emp_act(severity) + return + +//This normally uses a proc on projectiles and our ammo is not strictly speaking a projectile. +/obj/item/weapon/gun/launcher/can_hit(var/mob/living/target as mob, var/mob/living/user as mob) + return + +//Override this to avoid a runtime with suicide handling. +/obj/item/weapon/gun/launcher/attack(mob/living/M as mob, mob/living/user as mob, def_zone) + if (M == user && user.zone_sel.selecting == "mouth") + user << "\red Shooting yourself with \a [src] is pretty tricky. You can't seem to manage it." + return + ..() + +/obj/item/weapon/gun/launcher/proc/update_release_force() + return 0 + +/obj/item/weapon/gun/launcher/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) + + if (!user.IsAdvancedToolUser()) + user << "\red You don't have the dexterity to do this!" + return 0 + + add_fingerprint(user) + + //Make sure target turfs both exist. + var/turf/curloc = get_turf(user) + var/turf/targloc = get_turf(target) + if (!istype(targloc) || !istype(curloc)) + return 0 + + if(!special_check(user)) + return 0 + + if (!ready_to_fire()) + if (world.time % 3) //to prevent spam + user << "[src] is not ready to fire again!" + return 0 + + if(!load_into_chamber()) //CHECK + return click_empty(user) + + if(!in_chamber) + return 0 + + update_release_force() + + playsound(user, fire_sound, 50, 1) + user.visible_message("[user] fires [src][reflex ? " by reflex":""]!", \ + "You fire [src][reflex ? "by reflex":""]!", \ + "You hear [fire_sound_text]!") + + in_chamber.loc = get_turf(user) + in_chamber.throw_at(target,10,release_force) + + sleep(1) + + in_chamber = null + + update_icon() + + if(user.hand) + user.update_inv_l_hand() + else + user.update_inv_r_hand() + + return 1 + +/obj/item/weapon/gun/launcher/attack_self(mob/living/user as mob) + return \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/pneumatic.dm b/code/modules/projectiles/guns/projectile/pneumatic.dm index 43c1fed24aa..6d1855b8a7d 100644 --- a/code/modules/projectiles/guns/projectile/pneumatic.dm +++ b/code/modules/projectiles/guns/projectile/pneumatic.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/storage/pneumatic +/obj/item/weapon/gun/launcher/pneumatic name = "pneumatic cannon" desc = "A large gas-powered cannon." icon = 'icons/obj/gun.dmi' @@ -6,27 +6,28 @@ item_state = "pneumatic" w_class = 5.0 flags = FPRINT | TABLEPASS | CONDUCT - slot_flags = SLOT_BELT - max_w_class = 3 - max_combined_w_class = 20 + fire_sound_text = "a loud whoosh of moving air" + fire_delay = 50 + fire_sound = 'sound/weapons/tablehit1.ogg' + var/fire_pressure // Used in fire checks/pressure checks. + var/max_w_class = 3 // Hopper intake size. + var/max_combined_w_class = 20 // Total internal storage size. var/obj/item/weapon/tank/tank = null // Tank of gas for use in firing the cannon. var/obj/item/weapon/storage/tank_container = new() // Something to hold the tank item so we don't accidentally fire it. var/pressure_setting = 10 // Percentage of the gas in the tank used to fire the projectile. var/possible_pressure_amounts = list(5,10,20,25,50) // Possible pressure settings. var/minimum_tank_pressure = 10 // Minimum pressure to fire the gun. - var/cooldown = 0 // Whether or not we're cooling down. - var/cooldown_time = 50 // Time between shots. var/force_divisor = 400 // Force equates to speed. Speed/5 equates to a damage multiplier for whoever you hit. // For reference, a fully pressurized oxy tank at 50% gas release firing a health // analyzer with a force_divisor of 10 hit with a damage multiplier of 3000+. -/obj/item/weapon/storage/pneumatic/New() +/obj/item/weapon/gun/launcher/pneumatic/New() ..() tank_container.tag = "gas_tank_holder" -/obj/item/weapon/storage/pneumatic/verb/set_pressure() //set amount of tank pressure. +/obj/item/weapon/gun/launcher/pneumatic/verb/set_pressure() //set amount of tank pressure. - set name = "Set valve pressure" + set name = "Set Valve Pressure" set category = "Object" set src in range(0) var/N = input("Percentage of tank used per shot:","[src]") as null|anything in possible_pressure_amounts @@ -34,9 +35,9 @@ pressure_setting = N usr << "You dial the pressure valve to [pressure_setting]%." -/obj/item/weapon/storage/pneumatic/verb/eject_tank() //Remove the tank. +/obj/item/weapon/gun/launcher/pneumatic/verb/eject_tank() //Remove the tank. - set name = "Eject tank" + set name = "Eject Tank" set category = "Object" set src in range(0) @@ -50,7 +51,7 @@ else usr << "There's no tank in [src]." -/obj/item/weapon/storage/pneumatic/attackby(obj/item/W as obj, mob/user as mob) +/obj/item/weapon/gun/launcher/pneumatic/attackby(obj/item/W as obj, mob/user as mob) if(!tank && istype(W,/obj/item/weapon/tank)) user.drop_item() tank = W @@ -59,10 +60,43 @@ icon_state = "pneumatic-tank" item_state = "pneumatic-tank" user.update_icons() - else - ..() + else if(W.w_class <= max_w_class) -/obj/item/weapon/storage/pneumatic/examine() + var/total_stored = 0 + for(var/obj/item/O in src.contents) + total_stored += O.w_class + if(total_stored + W.w_class <= max_combined_w_class) + user.drop_item(W) + W.loc = src + user << "You shove [W] into the hopper." + else + user << "That won't fit into the hopper - it's full." + return + else + user << "That won't fit into the hopper." + +/obj/item/weapon/gun/launcher/pneumatic/attack_self(mob/user as mob) + + if(contents.len > 0) + var/obj/item/removing = contents[contents.len] + if(removing == in_chamber) + in_chamber = null + + removing.loc = get_turf(src) + user.put_in_hands(removing) + user << "You remove [removing] from the hopper." + else + user << "There is nothing to remove in \the [src]." + return + +/obj/item/weapon/gun/launcher/pneumatic/load_into_chamber() + if(!contents.len) + return 0 + + in_chamber = contents[1] + return !isnull(in_chamber) + +/obj/item/weapon/gun/launcher/pneumatic/examine() set src in view() ..() if (!(usr in view(2)) && usr!=src.loc) return @@ -72,76 +106,32 @@ else usr << "Nothing is attached to the tank valve!" -/obj/item/weapon/storage/pneumatic/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) - if (istype(target, /obj/item/weapon/storage/backpack )) - return - - else if (target.loc == user.loc) - return - - else if (locate (/obj/structure/table, src.loc)) - return - - else if(target == user) - return - - if (length(contents) == 0) - user << "There's nothing in [src] to fire!" - return 0 - else - spawn(0) Fire(target,user,params) - -/obj/item/weapon/storage/pneumatic/attack(mob/living/M as mob, mob/living/user as mob, def_zone) - if (length(contents) > 0) - if(user.a_intent == "hurt") - user.visible_message("\red \The [user] fires \the [src] point blank at [M]!") - Fire(M,user) - return - else - Fire(M,user) - return - -/obj/item/weapon/storage/pneumatic/proc/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) +/obj/item/weapon/gun/launcher/pneumatic/special_check(user) if (!tank) user << "There is no gas tank in [src]!" return 0 - if (cooldown) - user << "The chamber hasn't built up enough pressure yet!" - return 0 - - add_fingerprint(user) - - var/turf/curloc = get_turf(user) - var/turf/targloc = get_turf(target) - if (!istype(targloc) || !istype(curloc)) - return - - var/fire_pressure = (tank.air_contents.return_pressure()/100)*pressure_setting - + fire_pressure = (tank.air_contents.return_pressure()/100)*pressure_setting if (fire_pressure < minimum_tank_pressure) user << "There isn't enough gas in the tank to fire [src]." return 0 - var/obj/item/object = contents[1] - var/speed = ((fire_pressure*tank.volume)/object.w_class)/force_divisor //projectile speed. - if(speed>80) speed = 80 //damage cap. + return 1 - user.visible_message("[user] fires [src] and launches [object] at [target]!","You fire [src] and launch [object] at [target]!") +/obj/item/weapon/gun/launcher/pneumatic/update_release_force() + if(!in_chamber) return + release_force = ((fire_pressure*tank.volume)/in_chamber.w_class)/force_divisor //projectile speed. + if(release_force >80) release_force = 80 //damage cap. - src.remove_from_storage(object,user.loc) - object.throw_at(target,10,speed) +/obj/item/weapon/gun/launcher/pneumatic/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) + + if(!tank || !..()) return //Only do this on a successful shot. var/lost_gas_amount = tank.air_contents.total_moles*(pressure_setting/100) var/datum/gas_mixture/removed = tank.air_contents.remove(lost_gas_amount) user.loc.assume_air(removed) - cooldown = 1 - spawn(cooldown_time) - cooldown = 0 - user << "[src]'s gauge informs you it's ready to be fired again." - //Constructable pneumatic cannon. /obj/item/weapon/cannonframe @@ -215,7 +205,7 @@ if(!src || !T.isOn()) return playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1) user << "\blue You weld the valve into place." - new /obj/item/weapon/storage/pneumatic(get_turf(src)) + new /obj/item/weapon/gun/launcher/pneumatic(get_turf(src)) del(src) return else diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index ba5a2bc5406bf973eb0cbb06685d0f27f353985d..95df7c430f84a77d57f244065901c63b7fe3abe5 100644 GIT binary patch literal 38973 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 literal 36425 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%0AFHglqk$2ScWMl&8q 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 kub-{zY4P85hU;)N>hoVAhuf(d5b*Ee11;4O