mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 03:57:48 +01:00
Make the Statue NOT entirely immortal.
This commit is contained in:
@@ -22,8 +22,8 @@
|
||||
environment_smash = 2
|
||||
can_be_antagged = 1
|
||||
speed = -1
|
||||
maxHealth = 50000
|
||||
health = 50000
|
||||
maxHealth = 3000
|
||||
health = 3000
|
||||
status_flags = CANPUSH
|
||||
// investigates = 1
|
||||
a_intent = I_HURT
|
||||
@@ -92,9 +92,20 @@
|
||||
else
|
||||
visible_message("<span class='warning'>[src] is too strong to be banished!</span>")
|
||||
Paralyse(rand(8,15))
|
||||
if(istype(O, /obj/item/weapon/pickaxe) || istype(O, /obj/item/weapon/pickaxe/plasmacutter) || (O.force >= 20 && O.damtype == BRUTE)) //Heavy objects or distinctly rock-breaking tools.
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/bullet_act(var/obj/item/projectile/Proj)
|
||||
if((Proj.damage_type == BRUTE && Proj.damage >= 10) || (Proj.damage_type == BURN && Proj.damage >= 50))
|
||||
..(Proj)
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/death()
|
||||
new /obj/item/stack/material/marble(loc)
|
||||
var/chunks_to_spawn = rand(2,5)
|
||||
for(var/I = 1 to chunks_to_spawn)
|
||||
new /obj/item/stack/material/marble(get_turf(loc))
|
||||
new /obj/item/cursed_marble(get_turf(loc))
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/hostile/statue/Move(turf/NewLoc)
|
||||
if(can_be_seen(NewLoc))
|
||||
@@ -368,20 +379,20 @@
|
||||
to_chat(user, "<span class='warning'>You rub the slab in hopes a wandering spirit wishes to inhabit it. [src] starts to sparkle!</span>")
|
||||
icon_state = "sheet-snowbrick"
|
||||
searching = 1
|
||||
request_player()
|
||||
request_player(user)
|
||||
spawn(60 SECONDS)
|
||||
reset_search()
|
||||
|
||||
|
||||
/obj/item/cursed_marble/proc/request_player()
|
||||
/obj/item/cursed_marble/proc/request_player(var/mob/user)
|
||||
for(var/mob/observer/dead/O in player_list)
|
||||
if(!O.MayRespawn())
|
||||
continue
|
||||
if(O.client)
|
||||
if(O.client.prefs.be_special & BE_ALIEN)
|
||||
question(O.client)
|
||||
question(O.client, user)
|
||||
|
||||
/obj/item/cursed_marble/proc/question(var/client/C)
|
||||
/obj/item/cursed_marble/proc/question(var/client/C, var/mob/user)
|
||||
spawn(0)
|
||||
if(!C)
|
||||
return
|
||||
@@ -391,7 +402,7 @@
|
||||
if(!C || 2 == searching)
|
||||
return //handle logouts that happen whilst the alert is waiting for a response, and responses issued after a brain has been located.
|
||||
if(response == "Yes")
|
||||
transfer_personality(C.mob)
|
||||
transfer_personality(C.mob, user)
|
||||
else if(response == "Never for this round")
|
||||
C.prefs.be_special ^= BE_ALIEN
|
||||
|
||||
@@ -403,12 +414,14 @@
|
||||
for (var/mob/M in viewers(T))
|
||||
M.show_message("<span class='warning'>[src] fades. Maybe it will spark another time.</span>")
|
||||
|
||||
/obj/item/cursed_marble/proc/transfer_personality(var/mob/candidate)
|
||||
/obj/item/cursed_marble/proc/transfer_personality(var/mob/candidate, var/mob/user)
|
||||
announce_ghost_joinleave(candidate, 0, "They are a statue now.")
|
||||
src.searching = 2
|
||||
var/mob/living/simple_animal/hostile/statue/S = new(get_turf(src))
|
||||
S.client = candidate.client
|
||||
to_chat(S, "<b>You are \a [S], brought into existence on [station_name()] by [usr]! Obey all their orders.</b>")
|
||||
if(user)
|
||||
S.creator = user
|
||||
to_chat(S, "<b>You are \a [S], brought into existence on [station_name()] by [user]! Obey all their orders.</b>")
|
||||
S.mind.assigned_role = "The Statue"
|
||||
visible_message("<span class='warning'>The slab suddenly takes the shape of a humanoid!</span>")
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user