mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 00:23:29 +01:00
Merge pull request #1380 from tigercat2000/freeze
Admin-freeze refactor and fixes.
This commit is contained in:
@@ -5,88 +5,83 @@
|
||||
//////Allows admin's to right click on any mob/mech and freeze them in place.///
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/client/proc/freeze(mob/living/M as mob in mob_list)
|
||||
var/global/list/frozen_mob_list = list()
|
||||
/client/proc/freeze(var/mob/living/M as mob in mob_list)
|
||||
set category = "Special Verbs"
|
||||
set name = "Freeze"
|
||||
if(!holder)
|
||||
src << "Only administrators may use this command."
|
||||
src << "<font color='red'>Error: Freeze: Only administrators may use this command.</font>"
|
||||
return
|
||||
if(!mob)
|
||||
return
|
||||
if(!istype(M))
|
||||
alert("Cannot freeze a ghost")
|
||||
return
|
||||
if(usr)
|
||||
if (usr.client)
|
||||
if(usr.client.holder)
|
||||
if (istype(M, /mob/living/carbon/slime))
|
||||
if(!M.paralysis)
|
||||
M.adjustToxLoss(2147483647)
|
||||
M.AdjustParalysis(2147483647)
|
||||
var/adminomaly = new/obj/effect/overlay/adminoverlay
|
||||
spawn(50)
|
||||
M.overlays += adminomaly
|
||||
M << "<b><font color= red>You have been frozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>"
|
||||
message_admins("\blue [key_name_admin(usr)] froze [key_name(M)]")
|
||||
log_admin("[key_name(usr)] froze [key_name(M)]")
|
||||
else if (M.paralysis)
|
||||
M.AdjustParalysis(-2147483647)
|
||||
M.blinded = 0
|
||||
M.lying = 0
|
||||
M.stat = 0
|
||||
M << "<b> <font color= red>You have been unfrozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>"
|
||||
message_admins("\blue [key_name_admin(usr)] unfroze [key_name(M)]")
|
||||
log_admin("[key_name(usr)] unfroze [key_name(M)]")
|
||||
M.revive()
|
||||
else if (istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/FM = M
|
||||
if(!istype(M)) return
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
if(M in frozen_mob_list)
|
||||
M.admin_unFreeze(src)
|
||||
else
|
||||
M.admin_Freeze(src)
|
||||
|
||||
if(!FM.paralysis)
|
||||
FM.anchored = 1
|
||||
FM.frozen = 1
|
||||
FM.AdjustParalysis(2147483647)
|
||||
var/adminomaly = new/obj/effect/overlay/adminoverlay
|
||||
spawn(50)
|
||||
FM.overlays += adminomaly
|
||||
FM << "<b><font color= red>You have been frozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>"
|
||||
message_admins("\blue [key_name_admin(usr)] froze [key_name(FM)]")
|
||||
log_admin("[key_name(usr)] froze [key_name(FM)]")
|
||||
else if (M.paralysis)
|
||||
FM.anchored = 0
|
||||
FM.frozen = 0
|
||||
FM.AdjustParalysis(-2147483647)
|
||||
FM.blinded = 0
|
||||
FM.lying = 0
|
||||
FM.stat = 0
|
||||
///mob freeze procs
|
||||
|
||||
FM << "<b> <font color= red>You have been unfrozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>"
|
||||
message_admins("\blue [key_name_admin(usr)] unfroze [key_name(FM)]")
|
||||
log_admin("[key_name(usr)] unfroze [key_name(FM)]")
|
||||
/mob/living/var/frozen = 0 //used for preventing attacks on admin-frozen mobs
|
||||
/mob/living/var/admin_prev_sleeping = 0 //used for keeping track of previous sleeping value with admin freeze
|
||||
|
||||
else
|
||||
/mob/living/proc/admin_Freeze(var/client/admin)
|
||||
if(istype(admin))
|
||||
src << "<b><font color= red>You have been frozen by <a href='?priv_msg=\ref[admin]'>[admin.key]</a></b></font>"
|
||||
message_admins("\blue [key_name_admin(admin)] froze [key_name(src)]")
|
||||
log_admin("[key_name(admin)] froze [key_name(src)]")
|
||||
|
||||
if(!M.paralysis)
|
||||
M.anchored = 1
|
||||
M.AdjustParalysis(2147483647)
|
||||
var/adminomaly = new/obj/effect/overlay/adminoverlay
|
||||
spawn(50)
|
||||
M.overlays += adminomaly
|
||||
M << "<b><font color= red>You have been frozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>"
|
||||
message_admins("\blue [key_name_admin(usr)] froze [key_name(M)]")
|
||||
log_admin("[key_name(usr)] froze [key_name(M)]")
|
||||
else if (M.paralysis)
|
||||
M.anchored = 0
|
||||
M.AdjustParalysis(-2147483647)
|
||||
M.blinded = 0
|
||||
M.lying = 0
|
||||
M.stat = 0
|
||||
var/obj/effect/overlay/adminoverlay/AO = new
|
||||
src.overlays += AO
|
||||
|
||||
M << "<b> <font color= red>You have been unfrozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>"
|
||||
message_admins("\blue [key_name_admin(usr)] unfroze [key_name(M)]")
|
||||
log_admin("[key_name(usr)] unfroze [key_name(M)]")
|
||||
anchored = 1
|
||||
frozen = 1
|
||||
admin_prev_sleeping = sleeping
|
||||
sleeping += 20000
|
||||
if(!(src in frozen_mob_list))
|
||||
frozen_mob_list += src
|
||||
|
||||
/mob/living/proc/admin_unFreeze(var/client/admin)
|
||||
if(istype(admin))
|
||||
src << "<b><font color= red>You have been unfrozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>"
|
||||
message_admins("\blue [key_name_admin(admin)] unfroze [key_name(src)]")
|
||||
log_admin("[key_name(admin)] unfroze [key_name(src)]")
|
||||
|
||||
update_icons()
|
||||
|
||||
anchored = 0
|
||||
frozen = 0
|
||||
sleeping = admin_prev_sleeping
|
||||
admin_prev_sleeping = null
|
||||
if(src in frozen_mob_list)
|
||||
frozen_mob_list -= src
|
||||
|
||||
|
||||
/client/proc/freezemecha(obj/mecha/O as obj in mechas_list)
|
||||
/mob/living/carbon/slime/admin_Freeze(admin)
|
||||
..(admin)
|
||||
adjustToxLoss(1010101010) //arbitrary large value
|
||||
|
||||
/mob/living/carbon/slime/admin_unFreeze(admin)
|
||||
..(admin)
|
||||
adjustToxLoss(-1010101010)
|
||||
stat = 0
|
||||
revive()
|
||||
|
||||
|
||||
/mob/living/simple_animal/var/admin_prev_health = null
|
||||
|
||||
/mob/living/simple_animal/admin_Freeze(admin)
|
||||
..(admin)
|
||||
admin_prev_health = health
|
||||
health = 0
|
||||
|
||||
/mob/living/simple_animal/admin_unFreeze(admin)
|
||||
..(admin)
|
||||
revive()
|
||||
overlays.Cut()
|
||||
|
||||
//////////////////////////Freeze Mech
|
||||
|
||||
/client/proc/freezemecha(var/obj/mecha/O as obj in mechas_list)
|
||||
set category = "Special Verbs"
|
||||
set name = "Freeze Mech"
|
||||
if(!holder)
|
||||
|
||||
@@ -80,7 +80,5 @@
|
||||
|
||||
var/lastFart = 0 // Toxic fart cooldown.
|
||||
|
||||
var/frozen = 0 //used for preventing attacks on admin-frozen people
|
||||
|
||||
var/fire_dmi = 'icons/mob/OnFire.dmi'
|
||||
var/fire_sprite = "Standing"
|
||||
Reference in New Issue
Block a user