mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-25 08:42:20 +00:00
Our SSOverlays system is outdated, and is likely the cause of many of the issues seen in #18895. It has also been linked to a massive server performance decrease. This brings an updated system from Baystation, hopefully with speed increases. Should be testmerged, ideally with #18895. --------- Co-authored-by: Cody Brittain <cbrittain10@live.com>
76 lines
1.9 KiB
Plaintext
76 lines
1.9 KiB
Plaintext
/obj/structure/hadii_statue
|
|
name = "president Hadii statue"
|
|
desc = "A statue of the current president of the People's Republic of Adhomai, Njadrasanukii Hadii."
|
|
icon = 'icons/obj/hadii_statue.dmi'
|
|
icon_state = "bronze"
|
|
density = TRUE
|
|
anchored = TRUE
|
|
layer = ABOVE_HUMAN_LAYER
|
|
var/toppled = FALSE
|
|
var/outside = FALSE
|
|
var/already_toppled = FALSE
|
|
var/toppling_sound = 'sound/effects/metalhit.ogg'
|
|
var/health = 100
|
|
|
|
/obj/structure/hadii_statue/stone
|
|
icon_state = "stone"
|
|
toppling_sound = 'sound/effects/meteorimpact.ogg'
|
|
|
|
/obj/structure/hadii_statue/Initialize()
|
|
. = ..()
|
|
if(already_toppled)
|
|
topple()
|
|
|
|
/obj/structure/hadii_statue/update_icon()
|
|
ClearOverlays()
|
|
if(toppled)
|
|
icon_state = "[initial(icon_state)]_toppled"
|
|
return
|
|
if(outside)
|
|
AddOverlays("snow")
|
|
|
|
/obj/structure/hadii_statue/ex_act(severity)
|
|
switch(severity)
|
|
if(1.0)
|
|
qdel(src)
|
|
else
|
|
topple()
|
|
|
|
/obj/structure/hadii_statue/proc/topple()
|
|
if(toppled)
|
|
return
|
|
visible_message(SPAN_WARNING("\The [src] topples down!"))
|
|
playsound(src, toppling_sound, 75, 1)
|
|
toppled = TRUE
|
|
update_icon()
|
|
|
|
/obj/structure/hadii_statue/attackby(obj/item/attacking_item, mob/user)
|
|
if(toppled)
|
|
return
|
|
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
|
user.do_attack_animation(src)
|
|
if(attacking_item.force <= 15)
|
|
visible_message(SPAN_WARNING("\The [attacking_item] bounces off \the [src]!"))
|
|
return
|
|
visible_message(SPAN_WARNING("\The [user] strikes \the [src] with \the [attacking_item]!"))
|
|
do_integrity_check(attacking_item.force)
|
|
|
|
/obj/structure/hadii_statue/proc/do_integrity_check(damage)
|
|
if(toppled)
|
|
return
|
|
if(damage)
|
|
health -= damage
|
|
if(health <= 0)
|
|
topple()
|
|
|
|
/obj/structure/hadii_statue/bullet_act(var/obj/item/projectile/Proj)
|
|
if(toppled)
|
|
return
|
|
if(!Proj)
|
|
return
|
|
if(!Proj.damage)
|
|
visible_message(SPAN_WARNING("\The [Proj] bounces off \the [src]!"))
|
|
return
|
|
visible_message(SPAN_WARNING("\The [Proj] hits \the [src]!"))
|
|
do_integrity_check(Proj.damage)
|