From f25a5d674e245d4e176ce772d48ad3f952481fd2 Mon Sep 17 00:00:00 2001 From: vcordie Date: Sun, 29 Jan 2017 16:25:02 -0500 Subject: [PATCH] Makes the srm-8 rocket pods have a bit more oomph (#23390) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So, this really changes the way the rocket pods work now. So now they're proper projectiles, which means they keep going until they hit something, then they go boom. Downside of this, the sprite looks really silly now, as rockets spin about like a discoball in flight. I have no idea how to fix that. When they hit a non living target, they explode with 0 1 2, if it hits a living target, it explodes with 0 0 2. and the projectile now does 30 brute damage as well, meaning direct hits on mobs do 60 brute damage, plus a 50% chance to knock out and 7% chance to sever a limb. Should actually buff that considering you can only fire a rocket once every 2 seconds it seems like. But, this is good for now. 🆑 vcordie tweak: The SRM-8 Rocket Pods have been loaded with new explosives designed to do maximum damage to terrain. These explosives are less effective on people, however. /🆑 --- code/game/gamemodes/sandbox/h_sandbox.dm | 2 +- code/game/mecha/combat/marauder.dm | 6 +-- code/game/mecha/equipment/weapons/weapons.dm | 41 ++++++------------- code/modules/admin/verbs/debug.dm | 2 +- .../modules/projectiles/projectile/special.dm | 15 +++++++ .../modules/research/designs/mecha_designs.dm | 2 +- 6 files changed, 33 insertions(+), 35 deletions(-) diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index 74a70bf2ca0..f06b273d900 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -28,7 +28,7 @@ var/hsboxspawn = 1 var/global/list/spawn_forbidden = list( /obj/item/tk_grab, /obj/item/weapon/implant, // not implanter, the actual thing that is inside you /obj/item/assembly,/obj/item/device/onetankbomb, /obj/item/radio, /obj/item/device/pda/ai, - /obj/item/device/uplink, /obj/item/smallDelivery, /obj/item/missile,/obj/item/projectile, + /obj/item/device/uplink, /obj/item/smallDelivery, /obj/item/projectile, /obj/item/borg/sight,/obj/item/borg/stun,/obj/item/weapon/robot_module) /datum/hSB/proc/update() diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index fd1021b8b69..ea0e3075255 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -34,7 +34,7 @@ ..() var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse(src) ME.attach(src) - ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack(src) + ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src) ME.attach(src) ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src) ME.attach(src) @@ -58,7 +58,7 @@ var/obj/item/mecha_parts/mecha_equipment/ME ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src) ME.attach(src) - ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack(src) + ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src) ME.attach(src) ME = new /obj/item/mecha_parts/mecha_equipment/teleporter(src) ME.attach(src) @@ -81,7 +81,7 @@ ME.attach(src) ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src) ME.attach(src) - ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack(src) + ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src) ME.attach(src) ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src) ME.attach(src) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 4b493a752ad..07109a45c22 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -278,6 +278,18 @@ randomspread = 1 projectile_delay = 2 +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack + name = "\improper SRM-8 missile rack" + desc = "A weapon for combat exosuits. Shoots light explosive missiles." + icon_state = "mecha_missilerack" + origin_tech = "combat=5;materials=4;engineering=4" + projectile = /obj/item/projectile/bullet/srmrocket + fire_sound = 'sound/weapons/grenadelaunch.ogg' + projectiles = 8 + projectile_energy_cost = 1000 + equip_cooldown = 60 + + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher var/missile_speed = 2 var/missile_range = 30 @@ -298,35 +310,6 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/proc/proj_init(var/obj/O) return -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack - name = "\improper SRM-8 missile rack" - desc = "A weapon for combat exosuits. Shoots light explosive missiles." - icon_state = "mecha_missilerack" - origin_tech = "combat=5;materials=4;engineering=4" - projectile = /obj/item/missile - fire_sound = 'sound/weapons/grenadelaunch.ogg' - projectiles = 8 - projectile_energy_cost = 1000 - equip_cooldown = 60 - -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack/proj_init(var/obj/item/missile/M) - M.primed = 1 - var/turf/T = get_turf(src) - message_admins("[ADMIN_LOOKUP(chassis.occupant)] fired a [src] in [ADMIN_COORDJMP(T)]",0,1) - log_game("[key_name(chassis.occupant)] fired a [src] [COORD(T)]") - -/obj/item/missile - icon = 'icons/obj/grenade.dmi' - icon_state = "missile" - var/primed = null - throwforce = 15 - -/obj/item/missile/throw_impact(atom/hit_atom) - if(primed) - explosion(hit_atom, 0, 0, 2, 4, 0) - qdel(src) - else - ..() /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang name = "\improper SGL-6 grenade launcher" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 537f9701604..cfe320c4074 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -301,7 +301,7 @@ var/list/TYPES_SHORTCUTS = list( /obj/item/weapon = "WEAPON", /obj/machinery/atmospherics = "ATMOS_MECH", /obj/machinery/portable_atmospherics = "PORT_ATMOS", - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack = "MECHA_MISSILE_RACK", + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = "MECHA_MISSILE_RACK", /obj/item/mecha_parts/mecha_equipment = "MECHA_EQUIP", /obj/item/organ = "ORGAN", /obj/item = "ITEM", diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 7a68d887067..d1b7610f3f8 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -64,6 +64,21 @@ S.take_overall_damage(anti_armour_damage*0.75, anti_armour_damage*0.25) return 1 +/obj/item/projectile/bullet/srmrocket + name ="SRM-8 Rocket" + desc = "Boom" + icon = 'icons/obj/grenade.dmi' + icon_state = "missile" + damage = 30 + +/obj/item/projectile/bullet/srmrocket/on_hit(atom/target, blocked=0) + ..() + if(!isliving(target)) //if the target isn't alive, so is a wall or something + explosion(target, 0, 1, 2, 4) + else + explosion(target, 0, 0, 2, 4) + return 1 + /obj/item/projectile/temp name = "freeze beam" icon_state = "ice_2" diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index ebfece1ddbc..e4d862bc7a8 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -211,7 +211,7 @@ id = "mech_missile_rack" build_type = MECHFAB req_tech = list("combat" = 6, "materials" = 5, "engineering" = 5) - build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack materials = list(MAT_METAL=22000,MAT_GOLD=6000,MAT_SILVER=8000) construction_time = 100 category = list("Exosuit Equipment")