mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-25 17:41:56 +00:00
This pr adds a tank, reserved for a future event and adminbus. Sprites were made by kyres1. Adds some sounds to certain mecha actions, like loading crates or using a drill. Ports padded caps from baystation.
102 lines
3.2 KiB
Plaintext
102 lines
3.2 KiB
Plaintext
/obj/mecha/combat/gygax
|
|
desc = "A lightweight, security exosuit. Popular among private and corporate security."
|
|
name = "Gygax"
|
|
icon_state = "gygax"
|
|
initial_icon = "gygax"
|
|
w_class = 15
|
|
step_in = 3
|
|
dir_in = 1 //Facing North.
|
|
health = 300
|
|
deflect_chance = 15
|
|
damage_absorption = list("brute"=0.75,"fire"=1,"bullet"=0.8,"laser"=0.7,"energy"=0.85,"bomb"=1)
|
|
max_temperature = 25000
|
|
infra_luminosity = 6
|
|
var/overload = 0
|
|
var/overload_coeff = 2
|
|
wreckage = /obj/effect/decal/mecha_wreckage/gygax
|
|
internal_damage_threshold = 35
|
|
|
|
/obj/mecha/combat/gygax/dark
|
|
desc = "A lightweight exosuit used by Heavy Asset Protection. A significantly upgraded Gygax security mech."
|
|
name = "Dark Gygax"
|
|
icon_state = "darkgygax"
|
|
initial_icon = "darkgygax"
|
|
health = 400
|
|
deflect_chance = 25
|
|
damage_absorption = list("brute"=0.6,"fire"=0.8,"bullet"=0.6,"laser"=0.5,"energy"=0.65,"bomb"=0.8)
|
|
max_temperature = 45000
|
|
overload_coeff = 1
|
|
wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark
|
|
step_energy_drain = 5
|
|
|
|
/obj/mecha/combat/gygax/dark/Initialize()
|
|
.= ..()
|
|
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
|
|
ME.attach(src)
|
|
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang
|
|
ME.attach(src)
|
|
ME = new /obj/item/mecha_parts/mecha_equipment/teleporter
|
|
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()
|
|
cell = new /obj/item/weapon/cell/hyper(src)
|
|
|
|
/obj/mecha/combat/gygax/verb/overload()
|
|
set category = "Exosuit Interface"
|
|
set name = "Toggle leg actuators overload"
|
|
set src = usr.loc
|
|
set popup_menu = 0
|
|
if(usr!=src.occupant)
|
|
return
|
|
if(overload)
|
|
overload = 0
|
|
step_in = initial(step_in)
|
|
step_energy_drain = initial(step_energy_drain)
|
|
src.occupant_message("<font color='blue'>You disable leg actuators overload.</font>")
|
|
else
|
|
overload = 1
|
|
step_in = min(1, round(step_in/2))
|
|
step_energy_drain = step_energy_drain*overload_coeff
|
|
src.occupant_message("<font color='red'>You enable leg actuators overload.</font>")
|
|
src.log_message("Toggled leg actuators overload.")
|
|
return
|
|
|
|
/obj/mecha/combat/gygax/do_move(direction)
|
|
if(!..()) return
|
|
if(overload)
|
|
health--
|
|
if(health < initial(health) - initial(health)/3)
|
|
overload = 0
|
|
step_in = initial(step_in)
|
|
step_energy_drain = initial(step_energy_drain)
|
|
src.occupant_message("<font color='red'>Leg actuators damage threshold exceded. Disabling overload.</font>")
|
|
return
|
|
|
|
|
|
/obj/mecha/combat/gygax/get_stats_part()
|
|
var/output = ..()
|
|
output += "<b>Leg actuators overload: [overload?"on":"off"]</b>"
|
|
return output
|
|
|
|
/obj/mecha/combat/gygax/get_commands()
|
|
var/output = {"<div class='wr'>
|
|
<div class='header'>Special</div>
|
|
<div class='links'>
|
|
<a href='?src=\ref[src];toggle_leg_overload=1'>Toggle leg actuators overload</a>
|
|
</div>
|
|
</div>
|
|
"}
|
|
output += ..()
|
|
return output
|
|
|
|
/obj/mecha/combat/gygax/Topic(href, href_list)
|
|
..()
|
|
if (href_list["toggle_leg_overload"])
|
|
src.overload()
|
|
return
|