mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 20:47:10 +01:00
Fixes some issues in floor cluwne code
This commit is contained in:
@@ -2,25 +2,30 @@
|
||||
set category = "Event"
|
||||
set name = "Unleash Floor Cluwne"
|
||||
set desc = "Pick a specific target or just let it select randomly and spawn the floor cluwne mob on the station. Be warned: spawning more than one may cause issues!"
|
||||
var/target
|
||||
var/mob/living/carbon/human/target
|
||||
|
||||
if(!check_rights(R_EVENT))
|
||||
return
|
||||
|
||||
var/confirm = alert("Are you sure you want to release a floor cluwne and kill alot of people?", "Confirm Massacre", "Yes", "No")
|
||||
var/confirm = alert("Are you sure you want to release a floor cluwne and kill a lot of people?", "Confirm Massacre", "Yes", "No")
|
||||
if(confirm == "Yes")
|
||||
|
||||
var/turf/T = get_turf(usr)
|
||||
target = input("Any specific target in mind? Please note only live, non cluwned, human targets are valid.", "Target", target) as null|anything in GLOB.player_list
|
||||
if(isnull(target))
|
||||
var/list/potential_targets = list()
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(!istype(M, /mob/living/carbon/human))
|
||||
continue
|
||||
if(M.mind.assigned_role == "Cluwne")
|
||||
continue
|
||||
var/mob/living/carbon/human/H = M
|
||||
potential_targets += H
|
||||
for(var/mob/M in potential_targets)
|
||||
if(!potential_targets.len) //You're probably the only player on this damn station, spawn it yourself
|
||||
to_chat(src, "<span class='notice'>No valid targets!</span>")
|
||||
return
|
||||
if(target && ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
var/mob/living/simple_animal/hostile/floor_cluwne/FC = new /mob/living/simple_animal/hostile/floor_cluwne(T)
|
||||
FC.Acquire_Victim(H)
|
||||
else
|
||||
new /mob/living/simple_animal/hostile/floor_cluwne(T)
|
||||
log_admin("[key_name(usr)] spawned floor cluwne.")
|
||||
message_admins("[key_name(usr)] spawned floor cluwne.")
|
||||
else
|
||||
return
|
||||
target = input("Any specific target in mind? Please note only live, non cluwned, human targets are valid.", "Target", target) as null|anything in potential_targets
|
||||
var/mob/living/simple_animal/hostile/floor_cluwne/FC = new /mob/living/simple_animal/hostile/floor_cluwne(T)
|
||||
if(target)
|
||||
FC.Acquire_Victim(target)
|
||||
log_admin("[key_name(usr)] spawned floor cluwne[target ? ", initially targetting [target]": null].")
|
||||
message_admins("[key_name(usr)] spawned floor cluwne[target ? ", initially targetting [target]": null].")
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
var/area/tp = teleportlocs[area]
|
||||
forceMove(pick(get_area_turfs(tp.type)))
|
||||
|
||||
if(!current_victim && !admincluwne)
|
||||
if((!current_victim && !admincluwne) || QDELETED(current_victim))
|
||||
Acquire_Victim()
|
||||
|
||||
if(stage && !manifested)
|
||||
@@ -147,6 +147,8 @@
|
||||
var/list/players_copy = GLOB.player_list.Copy()
|
||||
while(players_copy.len)
|
||||
var/mob/living/carbon/human/H = pick_n_take(players_copy)
|
||||
if(!ishuman(H))
|
||||
continue
|
||||
|
||||
if(specific)
|
||||
H = specific
|
||||
@@ -158,7 +160,7 @@
|
||||
current_victim = H
|
||||
return target = current_victim
|
||||
|
||||
if(H && ishuman(H) && H.stat != DEAD && H != current_victim && !isLivingSSD(H) && H.client && !H.get_int_organ(/obj/item/organ/internal/honktumor/cursed) && !is_type_in_typecache(get_area(H.loc), invalid_area_typecache))
|
||||
if(H && H.stat != DEAD && H != current_victim && !isLivingSSD(H) && H.client && !H.get_int_organ(/obj/item/organ/internal/honktumor/cursed) && !is_type_in_typecache(get_area(H.loc), invalid_area_typecache))
|
||||
current_victim = H
|
||||
interest = 0
|
||||
return target = current_victim
|
||||
@@ -195,6 +197,8 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/floor_cluwne/proc/On_Stage()
|
||||
var/mob/living/carbon/human/H = current_victim
|
||||
if(!H)
|
||||
Acquire_Victim()
|
||||
switch(stage)
|
||||
|
||||
if(STAGE_HAUNT)
|
||||
|
||||
Reference in New Issue
Block a user