mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 04:51:32 +01:00
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:
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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,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> [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
|
||||
@@ -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> [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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user