Buffs mecha weapons and more (#4269)

-separates the mecha weapons dmi in three different dmis for each type of weapon
-buffs the ion cannon, by having its ion being 5x more effective than the regular ion gun
-buffs the damage from the mecha smg
-adds new weapons such as the gatling laser, gatling xray, mounted tesla cannon, mounted anti-material rifle, mounted gyrojet autocannon, mounted anti-material cannon and possible more
-increases the equipment slot for mechas to 4 from 3
-adds some of the new weapons design to the mech fabricator
-changes the weapons names to be more generic
This commit is contained in:
Alberyk
2018-02-21 21:11:03 +01:00
committed by Werner
parent 46857f29ac
commit 8506fb41ea
17 changed files with 352 additions and 225 deletions
+3
View File
@@ -659,6 +659,9 @@
#include "code\game\mecha\equipment\tracking_beacon.dm"
#include "code\game\mecha\equipment\tools\medical_tools.dm"
#include "code\game\mecha\equipment\tools\tools.dm"
#include "code\game\mecha\equipment\weapons\mecha_ballistics.dm"
#include "code\game\mecha\equipment\weapons\mecha_energy.dm"
#include "code\game\mecha\equipment\weapons\mecha_grenades.dm"
#include "code\game\mecha\equipment\weapons\weapons.dm"
#include "code\game\mecha\medical\medical.dm"
#include "code\game\mecha\medical\odysseus.dm"
+2 -2
View File
@@ -15,7 +15,6 @@
var/overload_coeff = 2
wreckage = /obj/effect/decal/mecha_wreckage/gygax
internal_damage_threshold = 35
max_equip = 3
/obj/mecha/combat/gygax/dark
desc = "A lightweight exosuit used by Heavy Asset Protection. A significantly upgraded Gygax security mech."
@@ -28,7 +27,6 @@
max_temperature = 45000
overload_coeff = 1
wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark
max_equip = 4
step_energy_drain = 5
/obj/mecha/combat/gygax/dark/New()
@@ -41,6 +39,8 @@
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/repair_droid
ME.attach(src)
return
/obj/mecha/combat/gygax/dark/add_cell()
-1
View File
@@ -21,7 +21,6 @@
internal_damage_threshold = 25
force = 45
w_class = 35
max_equip = 4
/obj/mecha/combat/marauder/seraph
desc = "Heavy-duty, command-type exosuit. This is a custom model, utilized only by high-ranking military personnel."
+2 -2
View File
@@ -546,7 +546,7 @@
/obj/item/mecha_parts/mecha_equipment/armor_booster/anticcw_armor_booster //what is that noise? A BAWWW from TK mutants.
name = "\improper CCW armor booster"
name = "close-combat armor booster"
desc = "Close-combat armor booster. Boosts exosuit armor against armed melee attacks. Requires energy to operate."
icon_state = "mecha_abooster_ccw"
origin_tech = list(TECH_MATERIAL = 3)
@@ -569,7 +569,7 @@
/obj/item/mecha_parts/mecha_equipment/armor_booster/antiproj_armor_booster
name = "\improper RW armor booster"
name = "ranged-weaponry armor booster"
desc = "Ranged-weaponry armor booster. Boosts exosuit armor against ranged attacks. Completely blocks taser shots, but requires energy to operate."
icon_state = "mecha_abooster_proj"
origin_tech = list(TECH_MATERIAL = 4)
+1 -1
View File
@@ -1,7 +1,7 @@
/obj/item/mecha_parts/mecha_tracking
name = "Exosuit tracking beacon"
name = "exosuit tracking beacon"
desc = "Device used to transmit exosuit data."
icon = 'icons/obj/device.dmi'
icon_state = "motion2"
@@ -0,0 +1,89 @@
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic
name = "general ballistic weapon"
var/projectile_energy_cost
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_equip_info()
return "[..()]\[[src.projectiles]\][(src.projectiles < initial(src.projectiles))?" - <a href='?src=\ref[src];rearm=1'>Rearm</a>":null]"
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/proc/rearm()
if(projectiles < initial(projectiles))
var/projectiles_to_add = initial(projectiles) - projectiles
while(chassis.get_charge() >= projectile_energy_cost && projectiles_to_add)
projectiles++
projectiles_to_add--
chassis.use_power(projectile_energy_cost)
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
log_message("Rearmed [src.name].")
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/Topic(href, href_list)
..()
if (href_list["rearm"])
src.rearm()
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
name = "mounted shotgun"
desc = "A weapon for combat exosuits. The LBX AC 10 \"Scattershot\" shoots a spread of pellets."
icon_state = "mecha_scatter"
equip_cooldown = 20
projectile = /obj/item/projectile/bullet/pellet
fire_sound = 'sound/weapons/Gunshot.ogg'
fire_volume = 80
projectiles = 40
deviation = 0.7
projectile_energy_cost = 25
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg
name = "mounted machine gun"
desc = "A weapon for combat exosuits. The Ultra AC 2 is a mounted machine-gun that shoots a rapid, three shot burst."
icon_state = "mecha_uac2"
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/rifle/a556
fire_sound = 'sound/weapons/gunshot_saw.ogg'
projectiles = 300
projectiles_per_shot = 3
deviation = 0.3
projectile_energy_cost = 20
fire_cooldown = 2
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/incendiary
name = "mounted incendiary carbine"
desc = "A weapon for combat exosuits. The HP-13 incendiary carbine is designated to fire incendiary shells."
icon_state = "mecha_carbine"
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/shotgun/incendiary
fire_sound = 'sound/weapons/Gunshot.ogg'
projectiles = 50
projectile_energy_cost = 40
deviation = 0.7
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/sniper
name = "mounted anti-material rifle"
desc = "A weapon for combat exosuits. A large mounted cannon that shoots anti-material shells."
icon_state = "mecha_mime"
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/rifle/a145
fire_sound = 'sound/weapons/Gunshot_DMR.ogg'
projectiles = 5
projectile_energy_cost = 750
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/gyro
name = "mounted gyrojet autocannon"
desc = "A weapon for combat exosuits. A mounted gun that shoots explosive bullets."
icon_state = "mecha_grenadelnchr"
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/gyro/law
fire_sound = 'sound/effects/Explosion1.ogg'
projectiles = 10
projectile_energy_cost = 750
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/cannon
name = "mounted anti-material cannon"
desc = "A weapon for combat exosuits. A large mounted cannon that shoots anti-material shells."
icon_state = "mecha_grenadelnchr"
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/cannon
fire_sound = 'sound/effects/Explosion1.ogg'
projectiles = 3
projectile_energy_cost = 950
@@ -0,0 +1,107 @@
/obj/item/mecha_parts/mecha_equipment/weapon/energy
name = "general energy weapon"
auto_rearm = 1
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
equip_cooldown = 8
name = "mounted laser carbine"
desc = "A weapon for combat exosuits. The CH-PS \"Immolator\" laser shoots basic lasers."
icon_state = "mecha_laser"
energy_drain = 30
projectile = /obj/item/projectile/beam/midlaser
fire_sound = 'sound/weapons/Laser.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/gatling
name = "mounted gatling laser"
desc = "A weapon for combat exosuits. Shoots a burst of basic lasers."
energy_drain = 45
projectiles_per_shot = 8
deviation = 0.7
fire_time = 5
projectiles_per_shot = 5
deviation = 0.5
fire_cooldown = 10
fire_time = 10
/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser
equip_cooldown = 30
name = "jury-rigged welder-laser"
desc = "While not regulation, this inefficient weapon can be attached to working exo-suits in desperate, or malicious, times."
icon_state = "mecha_laser"
energy_drain = 80
projectile = /obj/item/projectile/beam
fire_sound = 'sound/weapons/Laser.ogg'
required_type = list(/obj/mecha/combat, /obj/mecha/working)
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy
equip_cooldown = 15
name = "mounted laser cannon"
desc = "A weapon for combat exosuits. The CH-LC \"Solaris\" laser cannon is designated to shoot heavy lasers."
icon_state = "mecha_laser"
energy_drain = 60
projectile = /obj/item/projectile/beam/heavylaser
fire_sound = 'sound/weapons/lasercannonfire.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion
equip_cooldown = 40
name = "heavy ion cannon"
desc = "A weapon for combat exosuits. The mkIV ion heavy cannon shoots ion bolts designated to disable mechanical threats."
icon_state = "mecha_ion"
energy_drain = 120
projectile = /obj/item/projectile/ion/heavy
fire_sound = 'sound/weapons/Laser.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse
equip_cooldown = 30
name = "heavy pulse cannon"
icon_state = "mecha_pulse"
desc = "A weapon for combat exosuits. The eZ-13 mk2 heavy pulse rifle shoots powerful pulse-based beams, capable of destroying structures."
energy_drain = 120
origin_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 6, TECH_POWER = 4)
projectile = /obj/item/projectile/beam/pulse/heavy
fire_sound = 'sound/weapons/marauder.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser
name = "mounted taser carbine"
desc = "A weapon for combat exosuits. The PBT \"Pacifier\" taser shoots non-lethal stunning beams."
icon_state = "mecha_taser"
energy_drain = 20
equip_cooldown = 8
projectile = /obj/item/projectile/beam/stun
fire_sound = 'sound/weapons/Taser.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma
name = "heavy plasma cutter"
desc = "The mkII heavy plasma cutter is a large mining tool capable of expelling concentrated plasma bursts, useful for crushing rocks."
icon_state = "mecha_plasmacutter"
energy_drain = 60
equip_cooldown = 25
projectile = /obj/item/projectile/beam/plasmacutter
fire_sound = 'sound/weapons/plasma_cutter.ogg'
required_type = list(/obj/mecha/combat, /obj/mecha/working)
/obj/item/mecha_parts/mecha_equipment/weapon/energy/xray
name = "gatling xray gun"
desc = "A weapon for combat exosuits. Shoots a burst of armor penetrating xray beams."
icon_state = "mecha_xray"
energy_drain = 60
equip_cooldown = 25
projectiles_per_shot = 5
deviation = 0.5
fire_cooldown = 10
fire_time = 10
projectile = /obj/item/projectile/beam/xray
fire_sound = 'sound/weapons/laser3.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla
name = "mounted tesla cannon"
desc = "A weapon for combat exosuits. Shoots a burst of electric projectiles."
icon_state = "mecha_tesla"
energy_drain = 100
equip_cooldown = 25
projectiles_per_shot = 5
deviation = 0.5
fire_cooldown = 3
fire_time = 15
projectile = /obj/item/projectile/energy/tesla
fire_sound = 'sound/magic/LightningShock.ogg'
@@ -0,0 +1,72 @@
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack
var/missile_speed = 2
var/missile_range = 30
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/Fire(atom/movable/AM, atom/target)
AM.throw_at(target,missile_range, missile_speed, chassis)
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive
name = "missile rack"
desc = "A weapon for combat exosuits. The SRM-8 missile rack is loaded with explosive missiles."
icon_state = "mecha_missilerack"
projectile = /obj/item/missile
fire_sound = 'sound/effects/bang.ogg'
projectiles = 8
projectile_energy_cost = 1000
equip_cooldown = 60
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive/Fire(atom/movable/AM, atom/target)
var/obj/item/missile/M = AM
M.primed = 1
..()
/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, 1, 2, 4)
qdel(src)
else
..()
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang
name = "grenade launcher"
desc = "A weapon for combat exosuits. The SGL-6 grenade launche is designated to launch primed flashbangs."
icon_state = "mecha_grenadelnchr"
projectile = /obj/item/weapon/grenade/flashbang
fire_sound = 'sound/effects/bang.ogg'
projectiles = 6
missile_speed = 1.5
projectile_energy_cost = 800
equip_cooldown = 60
var/det_time = 20
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/Fire(atom/movable/AM, atom/target)
..()
var/obj/item/weapon/grenade/F = AM
spawn(det_time)
F.prime()
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang//Because I am a heartless bastard -Sieve
name = "clusterbang grenade launcher"
projectile = /obj/item/weapon/grenade/flashbang/clusterbang
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited/get_equip_info()//Limited version of the clusterbang launcher that can't reload
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span>&nbsp;[chassis.selected==src?"<b>":"<a href='?src=\ref[chassis];select_equip=\ref[src]'>"][src.name][chassis.selected==src?"</b>":"</a>"]\[[src.projectiles]\]"
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited/rearm()
return//Extra bit of security
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/frag
name = "fragmentation grenade launcher"
desc = "A weapon for combat exosuits. Launches primed fragmentation grenades."
icon_state = "mecha_grenadelnchr"
projectile = /obj/item/weapon/grenade/frag
fire_sound = 'sound/effects/bang.ogg'
projectiles = 3
det_time = 5
+2 -207
View File
@@ -10,6 +10,7 @@
var/fire_sound //Sound played while firing.
var/fire_volume = 50 //How loud it is played.
var/auto_rearm = 0 //Does the weapon reload itself after each shot?
var/fire_time = 5 //used to stop mechas from hitting themselves with their own bullets
required_type = list(/obj/mecha/combat, /obj/mecha/working/hoverpod/combatpod)
/obj/item/mecha_parts/mecha_equipment/weapon/action_checks(atom/target)
@@ -52,211 +53,5 @@
if(chassis && istype(chassis.occupant,/mob/living/carbon/human))
var/mob/living/carbon/human/H = chassis.occupant
def_zone = H.zone_sel.selecting
H.setMoveCooldown(fire_time)
P.launch(target, def_zone)
/obj/item/mecha_parts/mecha_equipment/weapon/energy
name = "general energy weapon"
auto_rearm = 1
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
equip_cooldown = 8
name = "\improper CH-PS \"Immolator\" laser"
desc = "A weapon for combat exosuits. Shoots basic lasers."
icon_state = "mecha_laser"
energy_drain = 30
projectile = /obj/item/projectile/beam
fire_sound = 'sound/weapons/Laser.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser
equip_cooldown = 30
name = "jury-rigged welder-laser"
desc = "While not regulation, this inefficient weapon can be attached to working exo-suits in desperate, or malicious, times."
icon_state = "mecha_laser"
energy_drain = 80
projectile = /obj/item/projectile/beam
fire_sound = 'sound/weapons/Laser.ogg'
required_type = list(/obj/mecha/combat, /obj/mecha/working)
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy
equip_cooldown = 15
name = "\improper CH-LC \"Solaris\" laser cannon"
desc = "A weapon for combat exosuits. Shoots heavy lasers."
icon_state = "mecha_laser"
energy_drain = 60
projectile = /obj/item/projectile/beam/heavylaser
fire_sound = 'sound/weapons/lasercannonfire.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion
equip_cooldown = 40
name = "mkIV ion heavy cannon"
desc = "A weapon for combat exosuits. Shoots ion bolts designated to disable mechanical threats."
icon_state = "mecha_ion"
energy_drain = 120
projectile = /obj/item/projectile/ion
fire_sound = 'sound/weapons/Laser.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse
equip_cooldown = 30
name = "eZ-13 mk2 heavy pulse rifle"
icon_state = "mecha_pulse"
desc = "A weapon for combat exosuits. Shoots powerful pulse-based beams, capable of destroying structures."
energy_drain = 120
origin_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 6, TECH_POWER = 4)
projectile = /obj/item/projectile/beam/pulse/heavy
fire_sound = 'sound/weapons/marauder.ogg'
/obj/item/projectile/beam/pulse/heavy
name = "heavy pulse laser"
icon_state = "pulse1_bl"
var/life = 20
/obj/item/projectile/beam/pulse/heavy/Bump(atom/A)
A.bullet_act(src, def_zone)
src.life -= 10
if(life <= 0)
qdel(src)
return
/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser
name = "\improper PBT \"Pacifier\" mounted taser"
desc = "A weapon for combat exosuits. Shoots non-lethal stunning beams."
icon_state = "mecha_taser"
energy_drain = 20
equip_cooldown = 8
projectile = /obj/item/projectile/beam/stun
fire_sound = 'sound/weapons/Taser.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma
name = "mkII heavy plasma cutter"
desc = "A large mining tool capable of expelling concentrated plasma bursts, useful for crushing rocks."
icon_state = "mecha_plasmacutter"
energy_drain = 60
equip_cooldown = 25
projectile = /obj/item/projectile/beam/plasmacutter
fire_sound = 'sound/weapons/plasma_cutter.ogg'
required_type = list(/obj/mecha/combat, /obj/mecha/working)
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic
name = "general ballisic weapon"
var/projectile_energy_cost
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_equip_info()
return "[..()]\[[src.projectiles]\][(src.projectiles < initial(src.projectiles))?" - <a href='?src=\ref[src];rearm=1'>Rearm</a>":null]"
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/proc/rearm()
if(projectiles < initial(projectiles))
var/projectiles_to_add = initial(projectiles) - projectiles
while(chassis.get_charge() >= projectile_energy_cost && projectiles_to_add)
projectiles++
projectiles_to_add--
chassis.use_power(projectile_energy_cost)
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
log_message("Rearmed [src.name].")
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/Topic(href, href_list)
..()
if (href_list["rearm"])
src.rearm()
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
name = "\improper LBX AC 10 \"Scattershot\""
desc = "A weapon for combat exosuits. Shoots a spread of pellets."
icon_state = "mecha_scatter"
equip_cooldown = 20
projectile = /obj/item/projectile/bullet/pellet
fire_sound = 'sound/weapons/Gunshot.ogg'
fire_volume = 80
projectiles = 40
deviation = 0.7
projectile_energy_cost = 25
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg
name = "\improper Ultra AC 2"
desc = "A weapon for combat exosuits. Shoots a rapid, three shot burst."
icon_state = "mecha_uac2"
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/pistol/medium
fire_sound = 'sound/weapons/Gunshot.ogg'
projectiles = 300
projectiles_per_shot = 3
deviation = 0.3
projectile_energy_cost = 20
fire_cooldown = 2
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/incendiary
name = "\improper HP-13 incendiary carbine"
desc = "A weapon for combat exosuits. Shoots incendiary shells."
icon_state = "mecha_carbine"
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/shotgun/incendiary
fire_sound = 'sound/weapons/Gunshot.ogg'
projectiles = 50
projectile_energy_cost = 40
deviation = 0.7
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack
var/missile_speed = 2
var/missile_range = 30
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/Fire(atom/movable/AM, atom/target)
AM.throw_at(target,missile_range, missile_speed, chassis)
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive
name = "\improper SRM-8 missile rack"
desc = "A weapon for combat exosuits. Shoots explosive missiles."
icon_state = "mecha_missilerack"
projectile = /obj/item/missile
fire_sound = 'sound/effects/bang.ogg'
projectiles = 8
projectile_energy_cost = 1000
equip_cooldown = 60
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive/Fire(atom/movable/AM, atom/target)
var/obj/item/missile/M = AM
M.primed = 1
..()
/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, 1, 2, 4)
qdel(src)
else
..()
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang
name = "\improper SGL-6 grenade launcher"
desc = "A weapon for combat exosuits. Launches primed flashbangs."
icon_state = "mecha_grenadelnchr"
projectile = /obj/item/weapon/grenade/flashbang
fire_sound = 'sound/effects/bang.ogg'
projectiles = 6
missile_speed = 1.5
projectile_energy_cost = 800
equip_cooldown = 60
var/det_time = 20
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/Fire(atom/movable/AM, atom/target)
..()
var/obj/item/weapon/grenade/flashbang/F = AM
spawn(det_time)
F.prime()
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang//Because I am a heartless bastard -Sieve
name = "\improper SOP-6 grenade launcher"
desc = "A weapon for combat exosuits. Launches primed clusterbangs."
projectile = /obj/item/weapon/grenade/flashbang/clusterbang
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited/get_equip_info()//Limited version of the clusterbang launcher that can't reload
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span>&nbsp;[chassis.selected==src?"<b>":"<a href='?src=\ref[chassis];select_equip=\ref[src]'>"][src.name][chassis.selected==src?"</b>":"</a>"]\[[src.projectiles]\]"
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited/rearm()
return//Extra bit of security
+1 -1
View File
@@ -81,7 +81,7 @@
var/list/equipment = new
var/obj/item/mecha_parts/mecha_equipment/selected
var/max_equip = 3
var/max_equip = 4
var/datum/mecha_events/events
var/lastcrash
var/crash_cooldown = 30
-1
View File
@@ -12,7 +12,6 @@
infra_luminosity = 6
wreckage = /obj/effect/decal/mecha_wreckage/hoverpod
cargo_capacity = 5
max_equip = 3
var/datum/effect_system/ion_trail/ion_trail
var/stabilization_enabled = 1
@@ -66,6 +66,18 @@
target.ex_act(2)
..()
/obj/item/projectile/beam/pulse/heavy
name = "heavy pulse laser"
icon_state = "pulse1_bl"
var/life = 20
/obj/item/projectile/beam/pulse/heavy/Bump(atom/A)
A.bullet_act(src, def_zone)
src.life -= 10
if(life <= 0)
qdel(src)
return
/obj/item/projectile/beam/emitter
name = "emitter beam"
icon_state = "emitter"
@@ -15,6 +15,10 @@
name = "ion pulse"
pulse_range = 0
/obj/item/projectile/ion/heavy
name = "heavy ion pulse"
pulse_range = 5
/obj/item/projectile/bullet/gyro
name ="explosive bolt"
icon_state= "bolter"
@@ -175,6 +179,18 @@
damage_type = HALLOSS
muzzle_type = /obj/effect/projectile/bullet/muzzle
/obj/item/projectile/bullet/cannon
name ="armor-piercing shell"
icon = 'icons/obj/grenade.dmi'
icon_state = "shell"
damage = 90
armor_penetration = 80
penetrating = 1
/obj/item/projectile/bullet/cannon/on_impact(var/atom/A)
explosion(A, 2, 3, 4, 4)
..()
//magic
/obj/item/projectile/magic
+38 -10
View File
@@ -467,12 +467,12 @@
build_path = /obj/item/mecha_parts/mecha_equipment/generator
/datum/design/item/mecha/taser
name = "PBT \"Pacifier\" mounted taser"
name = "Mounted taser carbine"
id = "mech_taser"
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser
/datum/design/item/mecha/lmg
name = "Ultra AC 2"
name = "Mounted machine gun"
id = "mech_lmg"
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg
@@ -481,13 +481,13 @@
// *** Weapon modules
/datum/design/item/mecha/weapon/scattershot
name = "LBX AC 10 \"Scattershot\""
name = "Mounted shotgun"
id = "mech_scattershot"
req_tech = list(TECH_COMBAT = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
/datum/design/item/mecha/weapon/laser
name = "CH-PS \"Immolator\" laser"
name = "Mounted laser carbine"
id = "mech_laser"
req_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
@@ -500,25 +500,53 @@
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser
/datum/design/item/mecha/weapon/laser_heavy
name = "CH-LC \"Solaris\" laser cannon"
name = "Mounted laser cannon"
id = "mech_laser_heavy"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy
/datum/design/item/mecha/weapon/ion
name = "mkIV ion heavy cannon"
name = "Heavy ion cannon"
id = "mech_ion"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion
/datum/design/item/mecha/weapon/laser_gatling
name = "Mounted gatling laser"
id = "laser_gatling"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/gatling
materials = list(DEFAULT_WALL_MATERIAL = 20000, "gold" = 6000)
/datum/design/item/mecha/weapon/xray_gatling
name = "Gatling xray gun"
id = "xray_gatling"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 4, TECH_MATERIAL = 5, TECH_ILLEGAL = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/xray
materials = list(DEFAULT_WALL_MATERIAL = 20000, "gold" = 6000, "phoron" = 6000)
/datum/design/item/mecha/weapon/tesla_gun
name = "Mounted tesla cannon"
id = "tesla_gun"
req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 5, TECH_MATERIAL = 5)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla
materials = list(DEFAULT_WALL_MATERIAL = 20000, "silver" = 6000, "phoron" = 6000)
/datum/design/item/mecha/weapon/gyro_gun
name = "Mounted gyrojet autocannon"
id = "gyro_gun"
req_tech = list(TECH_COMBAT = 6, TECH_MAGNET = 5, TECH_MATERIAL = 6, TECH_ILLEGAL = 5)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/gyro
materials = list(DEFAULT_WALL_MATERIAL = 20000, "silver" = 6000, "phoron" = 6000, "diamond" = 7500)
/datum/design/item/mecha/weapon/grenade_launcher
name = "SGL-6 grenade launcher"
name = "Grenade launcher"
id = "mech_grenade_launcher"
req_tech = list(TECH_COMBAT = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang
/datum/design/item/mecha/weapon/clusterbang_launcher
name = "SOP-6 grenade launcher"
name = "Clusterbang Grenade launcher"
desc = "A weapon that violates the Geneva Convention at 6 rounds per minute."
id = "clusterbang_launcher"
req_tech = list(TECH_COMBAT= 5, TECH_MATERIAL = 5, TECH_ILLEGAL = 3)
@@ -526,7 +554,7 @@
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited
/datum/design/item/mecha/weapon/plasma_cutter
name = "mkII heavy plasma cutter"
name = "Heavy plasma cutter"
desc = "A large mining tool capable of expelling concentrated plasma bursts, useful for crushing rocks."
id = "mecha_plasmacutter"
req_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 4, TECH_ENGINEERING = 4)
@@ -534,7 +562,7 @@
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma
/datum/design/item/mecha/weapon/incendiary
name = "HP-13 incendiary carbine"
name = "Mounted incendiary carbine"
desc = "A weapon for combat exosuits. Shoots incendiary shells."
id = "mecha_incendiary"
req_tech = list(TECH_COMBAT= 4, TECH_MATERIAL = 4, TECH_PHORON = 3)
+7
View File
@@ -0,0 +1,7 @@
author: Alberyk
delete-after: True
changes:
- tweak: "Exosuits weapons should be more effective now."
- tweak: "Increased exosuit equipment capacity to 4."
- rscadd: "Added new exosuit weapons."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB