mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-28 02:52:28 +00:00
* Find and replace argless atom New() to Initialize(). * Manual replacement of no-arg New() to Initialize(). * Manually replacing remaining New() overrides. * Fixing linter issues with now-removed New() args. * Tidying area init overrides. * Porting Neb's atom subsystem. * Trying to isolate init problems. * Adjusting Init code post-test. * Merging duplicate Initialize() procs. * Merge resolution.
151 lines
4.6 KiB
Plaintext
151 lines
4.6 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"
|
|
step_in = 3
|
|
dir_in = 1 //Facing North.
|
|
health = 250
|
|
maxhealth = 250 //Don't forget to update the /old variant if you change this number.
|
|
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
|
|
wreckage = /obj/effect/decal/mecha_wreckage/gygax
|
|
internal_damage_threshold = 35
|
|
max_equip = 3
|
|
|
|
max_hull_equip = 1
|
|
max_weapon_equip = 2
|
|
max_utility_equip = 2
|
|
max_universal_equip = 1
|
|
max_special_equip = 1
|
|
|
|
starting_components = list(
|
|
/obj/item/mecha_parts/component/hull/lightweight,
|
|
/obj/item/mecha_parts/component/actuator,
|
|
/obj/item/mecha_parts/component/armor/marshal,
|
|
/obj/item/mecha_parts/component/gas,
|
|
/obj/item/mecha_parts/component/electrical
|
|
)
|
|
|
|
overload_possible = 1
|
|
|
|
icon_scale_x = 1.35
|
|
icon_scale_y = 1.35
|
|
|
|
//Not quite sure how to move those yet.
|
|
/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/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
|
|
maxhealth = 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
|
|
max_equip = 4
|
|
step_energy_drain = 5
|
|
mech_faction = MECH_FACTION_SYNDI
|
|
|
|
max_hull_equip = 1
|
|
max_weapon_equip = 2
|
|
max_utility_equip = 2
|
|
max_universal_equip = 1
|
|
max_special_equip = 2
|
|
|
|
starting_equipment = list(
|
|
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot,
|
|
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade/clusterbang,
|
|
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,
|
|
/obj/item/mecha_parts/mecha_equipment/teleporter
|
|
)
|
|
|
|
/obj/mecha/combat/gygax/dark/add_cell(var/obj/item/weapon/cell/C=null)
|
|
if(C)
|
|
C.forceMove(src)
|
|
cell = C
|
|
return
|
|
cell = new /obj/item/weapon/cell/hyper(src)
|
|
|
|
/obj/mecha/combat/gygax/serenity
|
|
desc = "A lightweight exosuit made from a modified Gygax chassis combined with proprietary VeyMed medical tech. It's faster and sturdier than most medical mechs, but much of the armor plating has been stripped out, leaving it more vulnerable than a regular Gygax."
|
|
name = "Serenity"
|
|
icon_state = "medgax"
|
|
initial_icon = "medgax"
|
|
health = 150
|
|
maxhealth = 150
|
|
deflect_chance = 20
|
|
step_in = 2
|
|
damage_absorption = list("brute"=0.9,"fire"=1,"bullet"=0.9,"laser"=0.8,"energy"=0.9,"bomb"=1)
|
|
max_temperature = 20000
|
|
overload_coeff = 1
|
|
wreckage = /obj/effect/decal/mecha_wreckage/gygax/serenity
|
|
max_equip = 3
|
|
step_energy_drain = 8
|
|
cargo_capacity = 2
|
|
max_hull_equip = 1
|
|
max_weapon_equip = 1
|
|
max_utility_equip = 2
|
|
max_universal_equip = 1
|
|
max_special_equip = 1
|
|
|
|
starting_components = list(
|
|
/obj/item/mecha_parts/component/hull,
|
|
/obj/item/mecha_parts/component/actuator,
|
|
/obj/item/mecha_parts/component/armor/lightweight,
|
|
/obj/item/mecha_parts/component/gas,
|
|
/obj/item/mecha_parts/component/electrical
|
|
)
|
|
|
|
var/obj/item/clothing/glasses/hud/health/mech/hud
|
|
|
|
/obj/mecha/combat/gygax/serenity/Initialize()
|
|
. = ..()
|
|
hud = new /obj/item/clothing/glasses/hud/health/mech(src)
|
|
return
|
|
|
|
/obj/mecha/combat/gygax/serenity/moved_inside(var/mob/living/carbon/human/H as mob)
|
|
if(..())
|
|
if(H.glasses)
|
|
occupant_message("<font color='red'>[H.glasses] prevent you from using [src] [hud]</font>")
|
|
else
|
|
H.glasses = hud
|
|
H.recalculate_vis()
|
|
return 1
|
|
else
|
|
return 0
|
|
|
|
/obj/mecha/combat/gygax/serenity/go_out()
|
|
if(ishuman(occupant))
|
|
var/mob/living/carbon/human/H = occupant
|
|
if(H.glasses == hud)
|
|
H.glasses = null
|
|
H.recalculate_vis()
|
|
..()
|
|
return
|
|
|
|
//Meant for random spawns.
|
|
/obj/mecha/combat/gygax/old
|
|
desc = "A lightweight, security exosuit. Popular among private and corporate security. This one is particularly worn looking and likely isn't as sturdy."
|
|
|
|
/obj/mecha/combat/gygax/old/Initialize()
|
|
. = ..()
|
|
health = 25
|
|
maxhealth = 250 //Just slightly worse.
|
|
cell.charge = rand(0, (cell.charge/2)) |