mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-02-07 06:39:57 +00:00
90 lines
2.5 KiB
Plaintext
90 lines
2.5 KiB
Plaintext
/obj/item/mecha_parts/mecha_equipment/combat_shield
|
|
name = "linear combat shield"
|
|
desc = "A shield generator that forms a rectangular, unidirectionally projectile-blocking wall in front of the exosuit."
|
|
icon_state = "shield"
|
|
origin_tech = list(TECH_PHORON = 3, TECH_MAGNET = 6, TECH_ILLEGAL = 4)
|
|
equip_cooldown = 5
|
|
energy_drain = 20
|
|
range = 0
|
|
|
|
step_delay = 0.2
|
|
|
|
var/obj/item/shield_projector/line/exosuit/my_shield = null
|
|
var/my_shield_type = /obj/item/shield_projector/line/exosuit
|
|
var/icon/drone_overlay
|
|
|
|
equip_type = EQUIP_HULL
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/New()
|
|
..()
|
|
my_shield = new my_shield_type
|
|
my_shield.shield_regen_delay = equip_cooldown
|
|
my_shield.my_tool = src
|
|
return
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/critfail()
|
|
..()
|
|
my_shield.adjust_health(-200)
|
|
return
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/Destroy()
|
|
chassis.overlays -= drone_overlay
|
|
my_shield.forceMove(src)
|
|
my_shield.destroy_shields()
|
|
my_shield.my_tool = null
|
|
my_shield.my_mecha = null
|
|
qdel(my_shield)
|
|
my_shield = null
|
|
..()
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/add_equip_overlay(obj/mecha/M as obj)
|
|
..()
|
|
if(!drone_overlay)
|
|
drone_overlay = new(src.icon, icon_state = "shield_droid")
|
|
M.overlays += drone_overlay
|
|
return
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/attach(obj/mecha/M as obj)
|
|
..()
|
|
if(chassis)
|
|
my_shield.shield_health = 0
|
|
my_shield.my_mecha = chassis
|
|
my_shield.forceMove(chassis)
|
|
return
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/detach()
|
|
chassis.overlays -= drone_overlay
|
|
..()
|
|
my_shield.destroy_shields()
|
|
my_shield.my_mecha = null
|
|
my_shield.shield_health = my_shield.max_shield_health
|
|
my_shield.forceMove(src)
|
|
return
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/handle_movement_action()
|
|
if(chassis)
|
|
my_shield.update_shield_positions()
|
|
return
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/proc/toggle_shield()
|
|
..()
|
|
if(chassis)
|
|
my_shield.attack_self(chassis.occupant)
|
|
if(my_shield.active)
|
|
set_ready_state(0)
|
|
step_delay = 4
|
|
log_message("Activated.")
|
|
else
|
|
set_ready_state(1)
|
|
step_delay = 1
|
|
log_message("Deactivated.")
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/Topic(href, href_list)
|
|
..()
|
|
if(href_list["toggle_shield"])
|
|
toggle_shield()
|
|
return
|
|
|
|
/obj/item/mecha_parts/mecha_equipment/combat_shield/get_equip_info()
|
|
if(!chassis) return
|
|
return "<span style=\"color:[equip_ready?"#0f0":"#f00"];\">*</span> [src.name] - <a href='?src=\ref[src];toggle_shield=1'>[my_shield.active?"Dea":"A"]ctivate</a>" |