mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 03:57:48 +01:00
Merge branch 'master' into weapon-removal
This commit is contained in:
@@ -160,7 +160,8 @@ var/list/admin_verbs_fun = list(
|
||||
/client/proc/roll_dices,
|
||||
/datum/admins/proc/call_supply_drop,
|
||||
/datum/admins/proc/call_drop_pod,
|
||||
/client/proc/smite,
|
||||
// /client/proc/smite, //Replaced by player_effects
|
||||
/client/proc/player_effects,
|
||||
/client/proc/admin_lightning_strike,
|
||||
/client/proc/resize, //VOREStation Add,
|
||||
/client/proc/cmd_admin_droppod_deploy,
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
// Station ranks
|
||||
#define RANK_HEADS "Heads"
|
||||
#define RANK_SECURITY "Security"
|
||||
#define RANK_ENGINEERING "Engineering"
|
||||
#define RANK_RESEARCH "Research"
|
||||
#define RANK_MEDICAL "Medical"
|
||||
#define RANK_CE_STATION_ENGINEER "CE_Station_Engineer"
|
||||
#define RANK_CE_ATMOSPHERIC_TECH "CE_Atmospheric_Tech"
|
||||
#define RANK_CE_SHAFT_MINER "CE_Shaft_Miner"
|
||||
#define RANK_CHEMIST_RD_CMO "Chemist_RD_CMO"
|
||||
#define RANK_GENETIST_RD_CMO "Geneticist_RD_CMO"
|
||||
#define RANK_MD_CMO "MD_CMO"
|
||||
#define RANK_SCIENTIST_RD "Scientist_RD"
|
||||
#define RANK_AI_CYBORG "AI_Cyborg"
|
||||
#define RANK_DETECTIVE_HOS "Detective_HoS"
|
||||
#define RANK_VIROLOGIST_RD_CMO "Virologist_RD_CMO"
|
||||
|
||||
var/savefile/Banlistjob
|
||||
|
||||
|
||||
@@ -61,82 +78,82 @@ var/savefile/Banlistjob
|
||||
if (temp)
|
||||
UpdateTime()
|
||||
bantimestamp = CMinutes + minutes
|
||||
if(rank == "Heads")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Personnel")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Site Manager")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Security")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
|
||||
if(rank == RANK_HEADS)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_PERSONNEL)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SITE_MANAGER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_SECURITY)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
return 1
|
||||
if(rank == "Security")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Security")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Warden")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Detective")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Security Officer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg")
|
||||
if(rank == RANK_SECURITY)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_SECURITY)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_WARDEN)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_DETECTIVE)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SECURITY_OFFICER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG)
|
||||
return 1
|
||||
if(rank == "Engineering")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Engineer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Atmospheric Technician")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg")
|
||||
if(rank == RANK_ENGINEERING)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ENGINEER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ATMOSPHERIC_TECHNICIAN)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG)
|
||||
return 1
|
||||
if(rank == "Research")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Scientist")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Geneticist")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
|
||||
if(rank == RANK_RESEARCH)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SCIENTIST)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_GENETICIST)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
|
||||
return 1
|
||||
if(rank == "Medical")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Geneticist")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Medical Doctor")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chemist")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg")
|
||||
if(rank == RANK_MEDICAL)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_GENETICIST)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_MEDICAL_DOCTOR)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHEMIST)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG)
|
||||
return 1
|
||||
if(rank == "CE_Station_Engineer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Engineer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
|
||||
if(rank == RANK_CE_STATION_ENGINEER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ENGINEER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
|
||||
return 1
|
||||
if(rank == "CE_Atmospheric_Tech")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Atmospheric Technician")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
|
||||
if(rank == RANK_CE_ATMOSPHERIC_TECH)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ATMOSPHERIC_TECHNICIAN)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
|
||||
return 1
|
||||
if(rank == "CE_Shaft_Miner")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Shaft Miner")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Engineer")
|
||||
if(rank == RANK_CE_SHAFT_MINER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SHAFT_MINER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_ENGINEER)
|
||||
return 1
|
||||
if(rank == "Chemist_RD_CMO")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chemist")
|
||||
if(rank == RANK_CHEMIST_RD_CMO)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHEMIST)
|
||||
return 1
|
||||
if(rank == "Geneticist_RD_CMO")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Geneticist")
|
||||
if(rank == RANK_GENETIST_RD_CMO)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_GENETICIST)
|
||||
return 1
|
||||
if(rank == "MD_CMO")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Medical Doctor")
|
||||
if(rank == RANK_MD_CMO)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_MEDICAL_DOCTOR)
|
||||
return 1
|
||||
if(rank == "Scientist_RD")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Scientist")
|
||||
if(rank == RANK_SCIENTIST_RD)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_SCIENTIST)
|
||||
return 1
|
||||
if(rank == "AI_Cyborg")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Cyborg")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "AI")
|
||||
if(rank == RANK_AI_CYBORG)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CYBORG)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_AI)
|
||||
return 1
|
||||
if(rank == "Detective_HoS")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Detective")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Head of Security")
|
||||
if(rank == RANK_DETECTIVE_HOS)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_DETECTIVE)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_HEAD_OF_SECURITY)
|
||||
return 1
|
||||
if(rank == "Virologist_RD_CMO")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Chief Medical Officer")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Research Director")
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, "Virologist")
|
||||
if(rank == RANK_VIROLOGIST_RD_CMO)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_RESEARCH_DIRECTOR)
|
||||
AddBanjob(ckey, computerid, reason, bannedby, temp, minutes, JOB_ALT_VIROLOGIST)
|
||||
return 1
|
||||
|
||||
Banlistjob.cd = "/base"
|
||||
@@ -272,3 +289,19 @@ var/savefile/Banlistjob
|
||||
Banlistjob.cd = "/base"
|
||||
for (var/A in Banlistjob.dir)
|
||||
RemoveBanjob(A, "full")
|
||||
|
||||
#undef RANK_HEADS
|
||||
#undef RANK_SECURITY
|
||||
#undef RANK_ENGINEERING
|
||||
#undef RANK_RESEARCH
|
||||
#undef RANK_MEDICAL
|
||||
#undef RANK_CE_STATION_ENGINEER
|
||||
#undef RANK_CE_ATMOSPHERIC_TECH
|
||||
#undef RANK_CE_SHAFT_MINER
|
||||
#undef RANK_CHEMIST_RD_CMO
|
||||
#undef RANK_GENETIST_RD_CMO
|
||||
#undef RANK_MD_CMO
|
||||
#undef RANK_SCIENTIST_RD
|
||||
#undef RANK_AI_CYBORG
|
||||
#undef RANK_DETECTIVE_HOS
|
||||
#undef RANK_VIROLOGIST_RD_CMO
|
||||
|
||||
@@ -0,0 +1,655 @@
|
||||
/client/proc/player_effects(var/mob/target in mob_list)
|
||||
set name = "Player Effects"
|
||||
set desc = "Modify a player character with various 'special treatments' from a list."
|
||||
set category = "Fun"
|
||||
if(!check_rights(R_FUN))
|
||||
return
|
||||
|
||||
var/datum/eventkit/player_effects/spawner = new()
|
||||
spawner.target = target
|
||||
spawner.user = src.mob
|
||||
spawner.tgui_interact(src.mob)
|
||||
|
||||
/datum/eventkit/player_effects
|
||||
var/mob/target //The target of the effects
|
||||
var/mob/user
|
||||
|
||||
/datum/eventkit/player_effects/New()
|
||||
. = ..()
|
||||
|
||||
/datum/eventkit/player_effects/tgui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "PlayerEffects", "Player Effects")
|
||||
ui.open()
|
||||
|
||||
/datum/eventkit/player_effects/Destroy()
|
||||
. = ..()
|
||||
|
||||
/datum/eventkit/player_effects/tgui_static_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
data["real_name"] = target.name;
|
||||
data["player_ckey"] = target.ckey;
|
||||
data["target_mob"] = target;
|
||||
|
||||
|
||||
return data
|
||||
|
||||
/datum/eventkit/player_effects/tgui_state(mob/user)
|
||||
return GLOB.tgui_admin_state
|
||||
|
||||
/datum/eventkit/player_effects/tgui_act(action)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
if(!check_rights_for(usr.client, R_SPAWN))
|
||||
return
|
||||
|
||||
log_and_message_admins("[key_name(user)] used player effect: [action] on [target.ckey] playing [target.name]")
|
||||
|
||||
switch(action)
|
||||
|
||||
////////////SMITES/////////////
|
||||
if("break_legs")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/broken_legs = 0
|
||||
var/obj/item/organ/external/left_leg = Tar.get_organ(BP_L_LEG)
|
||||
if(left_leg && left_leg.fracture())
|
||||
broken_legs++
|
||||
var/obj/item/organ/external/right_leg = Tar.get_organ(BP_R_LEG)
|
||||
if(right_leg && right_leg.fracture())
|
||||
broken_legs++
|
||||
if(!broken_legs)
|
||||
to_chat(user,"[target] didn't have any breakable legs, sorry.")
|
||||
|
||||
if("bluespace_artillery")
|
||||
bluespace_artillery(target,src)
|
||||
|
||||
if("spont_combustion")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.adjust_fire_stacks(10)
|
||||
Tar.IgniteMob()
|
||||
Tar.visible_message("<span class='danger'>[target] bursts into flames!</span>")
|
||||
|
||||
if("lightning_strike")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/turf/T = get_step(get_step(target, NORTH), NORTH)
|
||||
T.Beam(target, icon_state="lightning[rand(1,12)]", time = 5)
|
||||
Tar.electrocute_act(75,def_zone = BP_HEAD)
|
||||
target.visible_message("<span class='danger'>[target] is struck by lightning!</span>")
|
||||
|
||||
if("shadekin_attack")
|
||||
var/turf/Tt = get_turf(target) //Turf for target
|
||||
|
||||
if(target.loc != Tt)
|
||||
return //Too hard to attack someone in something
|
||||
|
||||
var/turf/Ts //Turf for shadekin
|
||||
|
||||
//Try to find nondense turf
|
||||
for(var/direction in cardinal)
|
||||
var/turf/T = get_step(target,direction)
|
||||
if(T && !T.density)
|
||||
Ts = T //Found shadekin spawn turf
|
||||
if(!Ts)
|
||||
return //Didn't find shadekin spawn turf
|
||||
|
||||
var/mob/living/simple_mob/shadekin/red/shadekin = new(Ts)
|
||||
//Abuse of shadekin
|
||||
shadekin.real_name = shadekin.name
|
||||
shadekin.init_vore()
|
||||
shadekin.ability_flags |= 0x1
|
||||
shadekin.phase_shift()
|
||||
shadekin.ai_holder.give_target(target)
|
||||
shadekin.ai_holder.hostile = FALSE
|
||||
shadekin.ai_holder.mauling = TRUE
|
||||
shadekin.Life()
|
||||
//Remove when done
|
||||
spawn(10 SECONDS)
|
||||
if(shadekin)
|
||||
shadekin.death()
|
||||
|
||||
if("shadekin_vore")
|
||||
var/static/list/kin_types = list(
|
||||
"Red Eyes (Dark)" = /mob/living/simple_mob/shadekin/red/dark,
|
||||
"Red Eyes (Light)" = /mob/living/simple_mob/shadekin/red/white,
|
||||
"Red Eyes (Brown)" = /mob/living/simple_mob/shadekin/red/brown,
|
||||
"Blue Eyes (Dark)" = /mob/living/simple_mob/shadekin/blue/dark,
|
||||
"Blue Eyes (Light)" = /mob/living/simple_mob/shadekin/blue/white,
|
||||
"Blue Eyes (Brown)" = /mob/living/simple_mob/shadekin/blue/brown,
|
||||
"Purple Eyes (Dark)" = /mob/living/simple_mob/shadekin/purple/dark,
|
||||
"Purple Eyes (Light)" = /mob/living/simple_mob/shadekin/purple/white,
|
||||
"Purple Eyes (Brown)" = /mob/living/simple_mob/shadekin/purple/brown,
|
||||
"Yellow Eyes (Dark)" = /mob/living/simple_mob/shadekin/yellow/dark,
|
||||
"Yellow Eyes (Light)" = /mob/living/simple_mob/shadekin/yellow/white,
|
||||
"Yellow Eyes (Brown)" = /mob/living/simple_mob/shadekin/yellow/brown,
|
||||
"Green Eyes (Dark)" = /mob/living/simple_mob/shadekin/green/dark,
|
||||
"Green Eyes (Light)" = /mob/living/simple_mob/shadekin/green/white,
|
||||
"Green Eyes (Brown)" = /mob/living/simple_mob/shadekin/green/brown,
|
||||
"Orange Eyes (Dark)" = /mob/living/simple_mob/shadekin/orange/dark,
|
||||
"Orange Eyes (Light)" = /mob/living/simple_mob/shadekin/orange/white,
|
||||
"Orange Eyes (Brown)" = /mob/living/simple_mob/shadekin/orange/brown,
|
||||
"Rivyr (Unique)" = /mob/living/simple_mob/shadekin/blue/rivyr)
|
||||
var/kin_type = tgui_input_list(usr, "Select the type of shadekin for [target] nomf","Shadekin Type Choice", kin_types)
|
||||
if(!kin_type || !target)
|
||||
return
|
||||
|
||||
|
||||
kin_type = kin_types[kin_type]
|
||||
|
||||
var/myself = tgui_alert(usr, "Control the shadekin yourself or delete pred and prey after?","Control Shadekin?",list("Control","Cancel","Delete"))
|
||||
if(!myself || myself == "Cancel" || !target)
|
||||
return
|
||||
|
||||
var/turf/Tt = get_turf(target)
|
||||
|
||||
if(target.loc != Tt)
|
||||
return //Can't nom when not exposed
|
||||
|
||||
//Begin abuse
|
||||
target.transforming = TRUE //Cheap hack to stop them from moving
|
||||
var/mob/living/simple_mob/shadekin/shadekin = new kin_type(Tt)
|
||||
shadekin.real_name = shadekin.name
|
||||
shadekin.init_vore()
|
||||
shadekin.can_be_drop_pred = TRUE
|
||||
shadekin.dir = SOUTH
|
||||
shadekin.ability_flags |= 0x1
|
||||
shadekin.phase_shift() //Homf
|
||||
shadekin.energy = initial(shadekin.energy)
|
||||
//For fun
|
||||
sleep(1 SECOND)
|
||||
shadekin.dir = WEST
|
||||
sleep(1 SECOND)
|
||||
shadekin.dir = EAST
|
||||
sleep(1 SECOND)
|
||||
shadekin.dir = SOUTH
|
||||
sleep(1 SECOND)
|
||||
shadekin.audible_message("<b>[shadekin]</b> belches loudly!", runemessage = "URRRRRP")
|
||||
sleep(2 SECONDS)
|
||||
shadekin.phase_shift()
|
||||
target.transforming = FALSE //Undo cheap hack
|
||||
|
||||
if(myself == "Control") //Put admin in mob
|
||||
shadekin.ckey = target.ckey
|
||||
|
||||
else //Permakin'd
|
||||
to_chat(target,"<span class='danger'>You're carried off into The Dark by the [shadekin]. Who knows if you'll find your way back?</span>")
|
||||
target.ghostize()
|
||||
qdel(target)
|
||||
qdel(shadekin)
|
||||
|
||||
|
||||
if("redspace_abduct")
|
||||
redspace_abduction(target, src)
|
||||
|
||||
if("autosave")
|
||||
fake_autosave(target, src)
|
||||
|
||||
if("autosave2")
|
||||
fake_autosave(target, src, TRUE)
|
||||
|
||||
if("adspam")
|
||||
if(target.client)
|
||||
target.client.create_fake_ad_popup_multiple(/obj/screen/popup/default, 15)
|
||||
|
||||
if("peppernade")
|
||||
var/obj/item/weapon/grenade/chem_grenade/teargas/grenade = new /obj/item/weapon/grenade/chem_grenade/teargas
|
||||
grenade.loc = target.loc
|
||||
to_chat(target,"<span class='warning'>GRENADE?!</span>")
|
||||
grenade.detonate()
|
||||
|
||||
if("spicerequest")
|
||||
var/obj/item/weapon/reagent_containers/food/condiment/spacespice/spice = new /obj/item/weapon/reagent_containers/food/condiment/spacespice
|
||||
spice.loc = target.loc
|
||||
to_chat(target,"A bottle of spices appears at your feet... be careful what you wish for!")
|
||||
|
||||
if("terror")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.fear = 200
|
||||
|
||||
if("terror_aoe")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
for(var/mob/living/carbon/human/L in orange(Tar.client.view, Tar))
|
||||
L.fear = 200
|
||||
Tar.fear = 200
|
||||
|
||||
if("spin")
|
||||
var/speed = tgui_input_number(user, "Spin speed (minimum 0.1):", "Speed")
|
||||
if(speed < 0.1)
|
||||
return
|
||||
var/loops = tgui_input_number(user, "Number of loops (-1 for infinite):", "Loops")
|
||||
var/direction_ask = tgui_alert(user, "Clockwise or Anti-Clockwise", "Direction", list("Clockwise", "Anti-Clockwise", "Cancel"))
|
||||
var/direction
|
||||
if(direction_ask == "Clockwise")
|
||||
direction = 1
|
||||
if(direction_ask == "Anti-Clockwise")
|
||||
direction = 0
|
||||
if(direction_ask == "Cancel")
|
||||
return
|
||||
target.SpinAnimation(speed, loops, direction)
|
||||
|
||||
if("squish")
|
||||
var/is_squished = target.tf_scale_x || target.tf_scale_y
|
||||
playsound(target, 'sound/items/hooh.ogg', 50, 1)
|
||||
if(!is_squished)
|
||||
target.SetTransform(null, (target.size_multiplier * 1.2), (target.size_multiplier * 0.5))
|
||||
else
|
||||
target.ClearTransform()
|
||||
target.update_transform()
|
||||
|
||||
////////MEDICAL//////////////
|
||||
|
||||
if("appendicitis")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(istype(Tar))
|
||||
Tar.appendicitis()
|
||||
|
||||
if("damage_organ")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/list/organs = list()
|
||||
for(var/obj/item/organ/I in Tar.organs)
|
||||
organs |= I
|
||||
for(var/obj/item/organ/I in Tar.internal_organs)
|
||||
organs |= I
|
||||
var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to damage:", "Organs", organs)
|
||||
if(!our_organ)
|
||||
return
|
||||
var/effect = tgui_alert(user, "What do you want to do to the Organ", "Effect", list("Damage", "Kill", "Bruise", "Cancel"))
|
||||
if(effect == "Cancel")
|
||||
return
|
||||
if(effect == "Damage")
|
||||
var/organ_damage = tgui_input_number(user, "Add how much damage? It is currently at [our_organ.damage].", "Damage")
|
||||
our_organ.damage = max((our_organ.damage - organ_damage), 0)
|
||||
if(effect == "Kill")
|
||||
our_organ.die()
|
||||
if(effect == "Bruise")
|
||||
our_organ.bruise()
|
||||
|
||||
if("assist_organ")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/list/organs = list()
|
||||
for(var/obj/item/organ/I in Tar.organs)
|
||||
organs |= I
|
||||
for(var/obj/item/organ/I in Tar.internal_organs)
|
||||
organs |= I
|
||||
var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to become assisted:", "Organs", organs)
|
||||
if(!our_organ)
|
||||
return
|
||||
our_organ.mechassist()
|
||||
|
||||
if("robot_organ")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/list/organs = list()
|
||||
for(var/obj/item/organ/I in Tar.organs)
|
||||
organs |= I
|
||||
for(var/obj/item/organ/I in Tar.internal_organs)
|
||||
organs |= I
|
||||
var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to become robotic:", "Organs", organs)
|
||||
if(!our_organ)
|
||||
return
|
||||
our_organ.robotize()
|
||||
|
||||
if("repair_organ")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/list/organs = list()
|
||||
for(var/obj/item/organ/I in Tar.organs)
|
||||
organs |= I
|
||||
for(var/obj/item/organ/I in Tar.internal_organs)
|
||||
organs |= I
|
||||
var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to heal:", "Organs", organs)
|
||||
if(!our_organ)
|
||||
return
|
||||
var/effect = tgui_alert(user, "What do you want to do to the Organ", "Effect", list("Heal", "Rejuvenate", "Cancel"))
|
||||
if(effect == "Cancel")
|
||||
return
|
||||
if(effect == "Heal")
|
||||
var/organ_damage = tgui_input_number(user, "Add how much damage? It is currently at [our_organ.damage].", "Damage")
|
||||
our_organ.damage = max((our_organ.damage - organ_damage), 0)
|
||||
if(effect == "Rejuvenate")
|
||||
our_organ.rejuvenate()
|
||||
|
||||
if("drop_organ")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/list/organs = list()
|
||||
for(var/obj/item/organ/I in Tar.organs)
|
||||
organs |= I
|
||||
for(var/obj/item/organ/I in Tar.internal_organs)
|
||||
organs |= I
|
||||
var/obj/item/organ/our_organ = tgui_input_list(user, "Choose an organ to damage:", "Organs", organs)
|
||||
if(!our_organ)
|
||||
return
|
||||
our_organ.removed()
|
||||
|
||||
if("break_bone")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/list/organs = list()
|
||||
for(var/obj/item/organ/external/E in Tar.organs)
|
||||
organs |= E
|
||||
var/obj/item/organ/external/our_organ = tgui_input_list(user, "Choose an bone to break:", "Organs", organs)
|
||||
if(!our_organ)
|
||||
return
|
||||
our_organ.fracture()
|
||||
|
||||
if("stasis")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
if(Tar.in_stasis)
|
||||
Tar.Stasis(0)
|
||||
else
|
||||
Tar.Stasis(100000)
|
||||
|
||||
////////ABILITIES//////////////
|
||||
|
||||
if("vent_crawl")
|
||||
var/mob/living/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/proc/ventcrawl
|
||||
|
||||
if("darksight")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/current_darksight = Tar.species.darksight
|
||||
var/change_sight = tgui_input_number(user, "What level do you wish to set their darksight to? It is currently [current_darksight].", "Darksight")
|
||||
if(change_sight)
|
||||
Tar.species.darksight = change_sight
|
||||
|
||||
if("cocoon")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/enter_cocoon
|
||||
|
||||
if("transformation")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_hair
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_hair_colors
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_gender
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_wings
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_tail
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_ears
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/lleill_select_shape //designed for non-shapeshifter mobs
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/lleill_select_colour
|
||||
|
||||
if("set_size")
|
||||
var/mob/living/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/proc/set_size
|
||||
|
||||
if("lleill_energy")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/energy_max = tgui_input_number(user, "What should their max lleill energy be set to? It is currently [Tar.species.lleill_energy_max].", "Max energy")
|
||||
Tar.species.lleill_energy_max = energy_max
|
||||
var/energy_new = tgui_input_number(user, "What should their current lleill energy be set to? It is currently [Tar.species.lleill_energy].", "Max energy")
|
||||
Tar.species.lleill_energy = energy_new
|
||||
|
||||
if("lleill_invisibility")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/lleill_invisibility
|
||||
|
||||
if("beast_form")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/lleill_beast_form
|
||||
|
||||
if("lleill_transmute")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/lleill_transmute
|
||||
|
||||
if("lleill_alchemy")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/lleill_alchemy
|
||||
|
||||
if("lleill_drain")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/carbon/human/proc/lleill_contact
|
||||
|
||||
if("brutal_pred")
|
||||
var/mob/living/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/proc/shred_limb
|
||||
|
||||
if("trash_eater")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.verbs |= /mob/living/proc/eat_trash
|
||||
Tar.verbs |= /mob/living/proc/toggle_trash_catching
|
||||
|
||||
|
||||
////////INVENTORY//////////////
|
||||
|
||||
if("drop_all")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/confirm = tgui_alert(user, "Make [Tar] drop everything?", "Message", list("Yes", "No"))
|
||||
if(confirm != "Yes")
|
||||
return
|
||||
|
||||
for(var/obj/item/W in Tar)
|
||||
if(istype(W, /obj/item/weapon/implant/backup) || istype(W, /obj/item/device/nif)) //VOREStation Edit - There's basically no reason to remove either of these
|
||||
continue //VOREStation Edit
|
||||
Tar.drop_from_inventory(W)
|
||||
|
||||
if("drop_specific")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
|
||||
var/list/items = Tar.get_equipped_items()
|
||||
var/item_to_drop = tgui_input_list(user, "Choose item to force drop:", "Drop Specific Item", items)
|
||||
if(item_to_drop)
|
||||
Tar.drop_from_inventory(item_to_drop)
|
||||
|
||||
if("drop_held")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.drop_l_hand()
|
||||
Tar.drop_r_hand()
|
||||
|
||||
if("list_all")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.get_equipped_items()
|
||||
|
||||
if("give_item")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
if(!user.client.holder)
|
||||
return
|
||||
var/obj/item/X = user.client.holder.marked_datum
|
||||
if(!istype(X))
|
||||
return
|
||||
Tar.put_in_hands(X)
|
||||
|
||||
if("equip_item")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
if(!user.client.holder)
|
||||
return
|
||||
var/obj/item/X = user.client.holder.marked_datum
|
||||
if(!istype(X))
|
||||
return
|
||||
if(Tar.equip_to_appropriate_slot(X))
|
||||
return
|
||||
else
|
||||
Tar.equip_to_storage(X)
|
||||
|
||||
////////ADMIN//////////////
|
||||
|
||||
if("quick_nif")
|
||||
var/mob/living/carbon/human/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
var/input_NIF
|
||||
if(!Tar.get_organ(BP_HEAD))
|
||||
to_chat(user,"<span class='warning'>Target is unsuitable.</span>")
|
||||
return
|
||||
if(Tar.nif)
|
||||
to_chat(user,"<span class='warning'>Target already has a NIF.</span>")
|
||||
return
|
||||
if(Tar.species.flags & NO_SCAN)
|
||||
var/obj/item/device/nif/S = /obj/item/device/nif/bioadap
|
||||
input_NIF = initial(S.name)
|
||||
new /obj/item/device/nif/bioadap(Tar)
|
||||
else
|
||||
var/list/NIF_types = typesof(/obj/item/device/nif)
|
||||
var/list/NIFs = list()
|
||||
|
||||
for(var/NIF_type in NIF_types)
|
||||
var/obj/item/device/nif/S = NIF_type
|
||||
NIFs[capitalize(initial(S.name))] = NIF_type
|
||||
|
||||
var/list/show_NIFs = sortList(NIFs) // the list that will be shown to the user to pick from
|
||||
|
||||
input_NIF = tgui_input_list(user, "Pick the NIF type","Quick NIF", show_NIFs)
|
||||
var/chosen_NIF = NIFs[capitalize(input_NIF)]
|
||||
|
||||
if(chosen_NIF)
|
||||
new chosen_NIF(Tar)
|
||||
else
|
||||
new /obj/item/device/nif(Tar)
|
||||
log_and_message_admins("[key_name(user)] Quick NIF'd [Tar.real_name] with a [input_NIF].")
|
||||
|
||||
if("resize")
|
||||
user.client.resize(target)
|
||||
|
||||
if("teleport")
|
||||
var/where = tgui_alert(user, "Where to teleport?", "Where?", list("To Me", "To Mob", "To Area", "Cancel"))
|
||||
if(where == "Cancel")
|
||||
return
|
||||
if(where == "To Me")
|
||||
user.client.Getmob(target)
|
||||
if(where == "To Mob")
|
||||
var/mob/selection = tgui_input_list(usr, "Select a mob to jump [target] to:", "Jump to mob", mob_list)
|
||||
target.on_mob_jump()
|
||||
target.forceMove(get_turf(selection))
|
||||
log_admin("[key_name(user)] jumped [target] to [selection]")
|
||||
if(where == "To Area")
|
||||
var/area/A
|
||||
A = tgui_input_list(user, "Pick an area to teleport [target] to:", "Jump to Area", return_sorted_areas())
|
||||
target.on_mob_jump()
|
||||
target.forceMove(pick(get_area_turfs(A)))
|
||||
log_admin("[key_name(user)] jumped [target] to [A]")
|
||||
|
||||
if("gib")
|
||||
var/death = tgui_alert(user, "Are you sure you want to destroy [target]?", "Gib?", list("KILL", "Cancel"))
|
||||
if(death == "KILL")
|
||||
target.gib()
|
||||
|
||||
if("dust")
|
||||
var/death = tgui_alert(user, "Are you sure you want to destroy [target]?", "Dust?", list("KILL", "Cancel"))
|
||||
if(death == "KILL")
|
||||
target.dust()
|
||||
|
||||
if("paralyse")
|
||||
var/mob/living/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
user.client.holder.paralyze_mob(Tar)
|
||||
|
||||
if("subtle_message")
|
||||
user.client.cmd_admin_subtle_message(target)
|
||||
|
||||
if("direct_narrate")
|
||||
user.client.cmd_admin_direct_narrate(target)
|
||||
|
||||
if("player_panel")
|
||||
user.client.holder.show_player_panel(target)
|
||||
|
||||
if("view_variables")
|
||||
user.client.debug_variables(target)
|
||||
|
||||
if("orbit")
|
||||
if(!user.client.holder.marked_datum)
|
||||
return
|
||||
var/atom/movable/X = user.client.holder.marked_datum
|
||||
X.orbit(target)
|
||||
|
||||
if("ai")
|
||||
if(!istype(target, /mob/living))
|
||||
to_chat(usr, span_notice("This can only be used on instances of type /mob/living"))
|
||||
return
|
||||
var/mob/living/L = target
|
||||
if(L.client || L.teleop)
|
||||
to_chat(usr, span_warning("This cannot be used on player mobs!"))
|
||||
return
|
||||
|
||||
if(L.ai_holder) //Cleaning up the original ai
|
||||
var/ai_holder_old = L.ai_holder
|
||||
L.ai_holder = null
|
||||
qdel(ai_holder_old) //Only way I could make #TESTING - Unable to be GC'd to stop. del() logs show it works.
|
||||
L.ai_holder_type = tgui_input_list(usr, "Choose AI holder", "AI Type", typesof(/datum/ai_holder/))
|
||||
L.initialize_ai_holder()
|
||||
L.faction = sanitize(tgui_input_text(usr, "Please input AI faction", "AI faction", "neutral"))
|
||||
L.a_intent = tgui_input_list(usr, "Please choose AI intent", "AI intent", list(I_HURT, I_HELP))
|
||||
if(tgui_alert(usr, "Make mob wake up? This is needed for carbon mobs.", "Wake mob?", list("Yes", "No")) == "Yes")
|
||||
L.AdjustSleeping(-100)
|
||||
|
||||
|
||||
////////FIXES//////////////
|
||||
|
||||
if("rejuvenate")
|
||||
var/mob/living/Tar = target
|
||||
if(!istype(Tar))
|
||||
return
|
||||
Tar.rejuvenate()
|
||||
|
||||
if("popup-box")
|
||||
var/message = tgui_input_text(user, "Write a message to send to the user with a space for them to reply without using the text box:", "Message")
|
||||
if(!message)
|
||||
return
|
||||
log_admin("[key_name(user)] sent message to [target]: [message]")
|
||||
var/reply = tgui_input_text(target, "An admin has sent you a message: [message]", "Reply")
|
||||
if(!reply)
|
||||
return
|
||||
log_and_message_admins("[key_name(target)] replied to [user]'s message: [reply].")
|
||||
|
||||
if("stop-orbits")
|
||||
for(var/datum/orbit/X in target.orbiters)
|
||||
X.orbiter.stop_orbit()
|
||||
@@ -230,38 +230,38 @@
|
||||
if(ishuman(M))
|
||||
M_job = M.job
|
||||
else if(isslime(M))
|
||||
M_job = "slime"
|
||||
M_job = JOB_SLIME
|
||||
else if(issmall(M))
|
||||
M_job = "Monkey"
|
||||
M_job = JOB_MONKEY
|
||||
else if(isalien(M))
|
||||
M_job = "Alien"
|
||||
M_job = JOB_ALIEN
|
||||
else
|
||||
M_job = "Carbon-based"
|
||||
M_job = JOB_CARBON_BASED
|
||||
|
||||
else if(issilicon(M)) //silicon
|
||||
if(isAI(M))
|
||||
M_job = "AI"
|
||||
M_job = JOB_AI
|
||||
else if(ispAI(M))
|
||||
M_job = "pAI"
|
||||
M_job = JOB_PAI
|
||||
else if(isrobot(M))
|
||||
M_job = "Cyborg"
|
||||
M_job = JOB_CYBORG
|
||||
else
|
||||
M_job = "Silicon-based"
|
||||
M_job = JOB_SILICON_BASED
|
||||
|
||||
else if(isanimal(M)) //simple animals
|
||||
if(iscorgi(M))
|
||||
M_job = "Corgi"
|
||||
M_job = JOB_CORGI
|
||||
else
|
||||
M_job = "Animal"
|
||||
M_job = JOB_ANIMAL
|
||||
|
||||
else
|
||||
M_job = "Living"
|
||||
M_job = JOB_LIVING
|
||||
|
||||
else if(istype(M,/mob/new_player))
|
||||
M_job = "New player"
|
||||
M_job = JOB_NEW_PLAYER
|
||||
|
||||
else if(isobserver(M))
|
||||
M_job = "Ghost"
|
||||
M_job = JOB_GHOST
|
||||
|
||||
M_job = replacetext(M_job, "'", "")
|
||||
M_job = replacetext(M_job, "\"", "")
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
continue
|
||||
H.Paralyse(5)
|
||||
if(H.wear_id)
|
||||
var/obj/item/card/id/id = H.get_idcard()
|
||||
for(var/A in id.access)
|
||||
var/obj/item/weapon/card/id/id = H.get_idcard()
|
||||
for(var/A in id.GetAccess())
|
||||
if(A == access_security)
|
||||
security++
|
||||
if(!security)
|
||||
|
||||
@@ -600,10 +600,10 @@
|
||||
jobs += "</tr><tr align='center'>"
|
||||
counter = 0
|
||||
|
||||
if(jobban_isbanned(M, "Internal Affairs Agent"))
|
||||
jobs += "<td width='20%'><a href='?src=\ref[src];[HrefToken()];jobban3=Internal Affairs Agent;jobban4=\ref[M]'><font color=red>Internal Affairs Agent</font></a></td>"
|
||||
if(jobban_isbanned(M, JOB_INTERNAL_AFFAIRS_AGENT))
|
||||
jobs += "<td width='20%'><a href='?src=\ref[src];[HrefToken()];jobban3="+JOB_INTERNAL_AFFAIRS_AGENT+";jobban4=\ref[M]'><font color=red>"+JOB_INTERNAL_AFFAIRS_AGENT+"</font></a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='?src=\ref[src];[HrefToken()];jobban3=Internal Affairs Agent;jobban4=\ref[M]'>Internal Affairs Agent</a></td>"
|
||||
jobs += "<td width='20%'><a href='?src=\ref[src];[HrefToken()];jobban3="+JOB_INTERNAL_AFFAIRS_AGENT+";jobban4=\ref[M]'>"+JOB_INTERNAL_AFFAIRS_AGENT+"</a></td>"
|
||||
|
||||
jobs += "</tr></table>"
|
||||
|
||||
@@ -629,7 +629,7 @@
|
||||
|
||||
//Antagonist (Orange)
|
||||
counter = 0
|
||||
var/isbanned_dept = jobban_isbanned(M, "Syndicate")
|
||||
var/isbanned_dept = jobban_isbanned(M, JOB_SYNDICATE)
|
||||
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
|
||||
jobs += "<tr bgcolor='ffeeaa'><th colspan='[length(all_antag_types)]'><a href='?src=\ref[src];[HrefToken()];jobban3=Syndicate;jobban4=\ref[M]'>Antagonist Positions</a></th></tr><tr align='center'>"
|
||||
|
||||
@@ -652,7 +652,7 @@
|
||||
|
||||
//Misc 'roles'
|
||||
counter = 0
|
||||
var/list/misc_roles = list("Dionaea", "Graffiti", "Custom loadout", "pAI", "GhostRoles", "AntagHUD")
|
||||
var/list/misc_roles = list(JOB_DIONAEA, JOB_GRAFFITI, JOB_CUSTOM_LOADOUT, JOB_PAI, JOB_GHOSTROLES, JOB_ANTAGHUD)
|
||||
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
|
||||
jobs += "<tr bgcolor='ccccff'><th colspan='[length(misc_roles)]'>Other Roles</th></tr><tr align='center'>"
|
||||
for(var/entry in misc_roles)
|
||||
|
||||
@@ -293,7 +293,7 @@
|
||||
id.icon_state = "gold"
|
||||
id.access = get_all_accesses().Copy()
|
||||
id.registered_name = H.real_name
|
||||
id.assignment = "Site Manager"
|
||||
id.assignment = JOB_SITE_MANAGER
|
||||
id.name = "[id.registered_name]'s ID Card ([id.assignment])"
|
||||
H.equip_to_slot_or_del(id, slot_wear_id)
|
||||
H.update_inv_wear_id()
|
||||
|
||||
@@ -229,13 +229,13 @@
|
||||
var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to add", "Channels", available_channels)
|
||||
if(!selected_radio_channel || selected_radio_channel == "Cancel")
|
||||
break
|
||||
if(selected_radio_channel == "Special Ops")
|
||||
if(selected_radio_channel == CHANNEL_SPECIAL_OPS)
|
||||
target.radio.centComm = 1
|
||||
if(selected_radio_channel == "Raider")
|
||||
if(selected_radio_channel == CHANNEL_RAIDER)
|
||||
qdel(target.radio.keyslot)
|
||||
target.radio.keyslot = new /obj/item/encryptionkey/raider(target)
|
||||
target.radio.syndie = 1
|
||||
if(selected_radio_channel == "Mercenary")
|
||||
if(selected_radio_channel == CHANNEL_MERCENARY)
|
||||
qdel(target.radio.keyslot)
|
||||
target.radio.keyslot = new /obj/item/encryptionkey/syndicate(target)
|
||||
target.radio.syndie = 1
|
||||
@@ -249,10 +249,10 @@
|
||||
var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to remove", "Channels", target.radio.channels)
|
||||
if(!selected_radio_channel || selected_radio_channel == "Cancel")
|
||||
break
|
||||
if(selected_radio_channel == "Special Ops")
|
||||
if(selected_radio_channel == CHANNEL_SPECIAL_OPS)
|
||||
target.radio.centComm = 0
|
||||
target.module.channels -= selected_radio_channel
|
||||
if((selected_radio_channel == "Mercenary" || selected_radio_channel == "Raider") && !(target.module.channels["Raider"] || target.module.channels["Mercenary"]))
|
||||
if((selected_radio_channel == CHANNEL_MERCENARY || selected_radio_channel == CHANNEL_RAIDER) && !(target.module.channels[CHANNEL_RAIDER] || target.module.channels[CHANNEL_MERCENARY]))
|
||||
qdel(target.radio.keyslot)
|
||||
target.radio.keyslot = null
|
||||
target.radio.syndie = 0
|
||||
@@ -345,9 +345,9 @@
|
||||
continue
|
||||
target.module_reset(FALSE)
|
||||
if(MODIFIY_ROBOT_TOGGLE_STATION_ACCESS)
|
||||
if(target?.idcard?.access)
|
||||
var/obj/item/card/id/synthetic/card = target.idcard
|
||||
if(access_synth in card.access)
|
||||
if(target?.idcard?.GetAccess())
|
||||
var/obj/item/weapon/card/id/synthetic/card = target.idcard
|
||||
if(access_synth in card.GetAccess())
|
||||
card.access -= get_all_station_access()
|
||||
card.access -= access_synth
|
||||
to_chat(usr, "<span class='danger'>You revoke station access from [target].</span>")
|
||||
@@ -356,9 +356,9 @@
|
||||
card.access |= access_synth
|
||||
to_chat(usr, "<span class='danger'>You grant station access to [target].</span>")
|
||||
if(MODIFIY_ROBOT_TOGGLE_CENT_ACCESS)
|
||||
if(target?.idcard?.access)
|
||||
var/obj/item/card/id/synthetic/card = target.idcard
|
||||
if(access_cent_specops in card.access)
|
||||
if(target?.idcard?.GetAccess())
|
||||
var/obj/item/weapon/card/id/synthetic/card = target.idcard
|
||||
if(access_cent_specops in card.GetAccess())
|
||||
card.access -= get_all_centcom_access()
|
||||
to_chat(usr, "<span class='danger'>You revoke central access from [target].</span>")
|
||||
else
|
||||
|
||||
@@ -432,8 +432,8 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
return
|
||||
if(samejob == "Yes")
|
||||
charjob = record_found.fields["real_rank"]
|
||||
else if(samejob == USELESS_JOB) //VOREStation Edit - Visitor not Assistant
|
||||
charjob = USELESS_JOB //VOREStation Edit - Visitor not Assistant
|
||||
else if(samejob == JOB_ALT_VISITOR) //VOREStation Edit - Visitor not Assistant
|
||||
charjob = JOB_ALT_VISITOR //VOREStation Edit - Visitor not Assistant
|
||||
else
|
||||
records = tgui_alert(src,"No data core entry detected. Would you like add them to the manifest, and sec/med/HR records?","Records",list("No", "Yes", "Cancel"))
|
||||
if(!records || records == "Cancel")
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
return
|
||||
|
||||
if(job_master && ticker)
|
||||
var/datum/job/job = job_master.GetJob("AI")
|
||||
var/datum/job/job = job_master.GetJob(JOB_AI)
|
||||
if(!job)
|
||||
to_chat(usr, "Unable to locate the AI job")
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user