Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
55 changes: 31 additions & 24 deletions code/_onclick/hud/swarmer.dm
Original file line number Diff line number Diff line change
@@ -1,68 +1,75 @@
/obj/screen/swarmer
icon = 'icons/mob/swarmer.dmi'

/obj/screen/swarmer/MouseEntered(location, control, params)
. = ..()
openToolTip(usr, src, params, title = name, content = desc)

/obj/screen/swarmer/MouseExited(location, control, params)
closeToolTip(usr)

/obj/screen/swarmer/fabricate_trap
icon_state = "ui_trap"
name = "Create trap (Costs 4 Resources)"
desc = "Creates a trap that will nonlethally shock any non-swarmer that attempts to cross it. (Costs 4 resources)"
name = "Create Trap (Costs 4 Resources)"
desc = "Creates a trap that will nonlethally shock any non-swarmer that attempts to cross it."

/obj/screen/swarmer/fabricate_trap/Click()
if(isswarmer(usr))
var/mob/living/simple_animal/hostile/swarmer/S = usr
S.create_trap()
var/mob/living/simple_animal/hostile/swarmer/our_swarmer = usr
our_swarmer.create_trap()

/obj/screen/swarmer/barricade
icon_state = "ui_barricade"
name = "Create barricade (Costs 4 Resources)"
desc = "Creates a destructible barricade that will stop any non swarmer from passing it. Also allows disabler beams to pass through. (Costs 4 resources)"
name = "Create Barricade (Costs 4 Resources)"
desc = "Creates a destructible barricade that will stop any non-swarmer from passing it. Also allows disabler beams to pass through."

/obj/screen/swarmer/barricade/Click()
if(isswarmer(usr))
var/mob/living/simple_animal/hostile/swarmer/S = usr
S.create_barricade()
var/mob/living/simple_animal/hostile/swarmer/our_swarmer = usr
our_swarmer.create_barricade()

/obj/screen/swarmer/replicate
icon_state = "ui_replicate"
name = "Replicate (Costs 20 Resources)"
desc = "Creates a drone."
desc = "Creates an autonomous melee drone that will follow you and attack all non-swamers entities in sight. They can be ordered to move to a target location by a middle-click."

/obj/screen/swarmer/replicate/Click()
if(isswarmer(usr))
var/mob/living/simple_animal/hostile/swarmer/S = usr
S.create_swarmer()
var/mob/living/simple_animal/hostile/swarmer/our_swarmer = usr
our_swarmer.create_swarmer()

/obj/screen/swarmer/repair_self
icon_state = "ui_self_repair"
name = "Repair self"
desc = "Repairs damage to our body."
name = "Repair Self"
desc = "Fully repairs damage done to our body after a moderate delay."

/obj/screen/swarmer/repair_self/Click()
if(isswarmer(usr))
var/mob/living/simple_animal/hostile/swarmer/S = usr
S.repair_self()
var/mob/living/simple_animal/hostile/swarmer/our_swarmer = usr
our_swarmer.repair_self()

/obj/screen/swarmer/toggle_light
icon_state = "ui_light"
name = "Toggle light"
desc = "Toggles our inbuilt light on or off."
name = "Toggle Light"
desc = "Toggles our inbuilt light on or off. Follower drones will also synchronize their lights with a master unit."

/obj/screen/swarmer/toggle_light/Click()
if(isswarmer(usr))
var/mob/living/simple_animal/hostile/swarmer/S = usr
S.toggle_light()
var/mob/living/simple_animal/hostile/swarmer/our_swarmer = usr
our_swarmer.toggle_light()

/obj/screen/swarmer/contact_swarmers
icon_state = "ui_contact_swarmers"
name = "Contact swarmers"
name = "Contact Swarmers"
desc = "Sends a message to all other swarmers, should they exist."

/obj/screen/swarmer/contact_swarmers/Click()
if(isswarmer(usr))
var/mob/living/simple_animal/hostile/swarmer/S = usr
S.contact_swarmers()
var/mob/living/simple_animal/hostile/swarmer/our_swarmer = usr
our_swarmer.contact_swarmers()

/datum/hud/swarmer/New(mob/owner)
..()
/datum/hud/living/swarmer/New(mob/owner)
. = ..()
var/obj/screen/using

using = new /obj/screen/swarmer/fabricate_trap()
Expand Down
2 changes: 1 addition & 1 deletion code/modules/swarmers/swarmer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
del_on_death = 1
deathmessage = "explodes with a sharp pop!"
light_color = LIGHT_COLOR_CYAN
hud_type = /datum/hud/swarmer
hud_type = /datum/hud/living/swarmer
speech_span = SPAN_ROBOT
///Resource points, generated by consuming metal/glass
var/resources = 0
Expand Down