mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-24 20:47:43 +01:00
+23
-23
@@ -1049,6 +1049,16 @@ var/global/BSACooldown = 0
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Observer.)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Observer.)", 1)
|
||||
|
||||
// if (href_list["adminauth"])
|
||||
// if ((src.rank in list( "Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
// var/mob/M = locate(href_list["adminauth"])
|
||||
// if (ismob(M) && !M.client.authenticated && !M.client.authenticating)
|
||||
// M.client.verbs -= /client/proc/authorize
|
||||
// M.client.authenticated = text("admin/[]", usr.client.authenticated)
|
||||
// log_admin("[key_name(usr)] authorized [key_name(M)]")
|
||||
// message_admins("\blue [key_name_admin(usr)] authorized [key_name_admin(M)]", 1)
|
||||
// M.client << text("You have been authorized by []", usr.key)
|
||||
|
||||
if (href_list["revive"])
|
||||
if ((src.rank in list( "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||
var/mob/living/M = locate(href_list["revive"])
|
||||
@@ -1904,30 +1914,16 @@ var/global/BSACooldown = 0
|
||||
world << sound('granomalies.ogg')
|
||||
var/turf/T = pick(blobstart)
|
||||
var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 )
|
||||
spawn(rand(50, 300))
|
||||
spawn(rand(100, 600))
|
||||
del(bh)
|
||||
if("timeanomalies")
|
||||
command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert")
|
||||
world << sound('spanomalies.ogg')
|
||||
var/list/turfs = list( )
|
||||
var/turf/picked
|
||||
for(var/turf/T in world)
|
||||
if(T.z == 1 && istype(T,/turf/simulated/floor) && !istype(T,/turf/space))
|
||||
turfs += T
|
||||
for(var/turf/T in world)
|
||||
set background = 1
|
||||
if(prob(20) && T.z == 1 && istype(T,/turf/simulated/floor))
|
||||
spawn(50+rand(0,3000))
|
||||
picked = pick(turfs)
|
||||
var/obj/effect/portal/P = new /obj/effect/portal( T )
|
||||
P.target = picked
|
||||
P.creator = null
|
||||
P.icon = 'objects.dmi'
|
||||
P.failchance = 0
|
||||
P.icon_state = "anom"
|
||||
P.name = "wormhole"
|
||||
spawn(rand(300,600))
|
||||
del(P)
|
||||
|
||||
if("timeanomalies") //dear god this code was awful :P Still needs further optimisation
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","STA")
|
||||
//moved to its own dm so I could split it up and prevent the spawns copying variables over and over
|
||||
//can be found in code\game\game_modes\events\wormholes.dm
|
||||
wormhole_event()
|
||||
|
||||
if("goblob")
|
||||
//feedback_inc("admin_secrets_fun_used",1)
|
||||
//feedback_add_details("admin_secrets_fun_used","BL")
|
||||
@@ -2354,6 +2350,10 @@ var/global/BSACooldown = 0
|
||||
var/dat = "<html><head><title>Options for [M.key]</title></head>"
|
||||
var/foo = " "
|
||||
if (ismob(M) && M.client)
|
||||
// if(!M.client.authenticated && !M.client.authenticating)
|
||||
// foo += text("<A HREF='?src=\ref[src];adminauth=\ref[M]'>Authorize</A> | ")
|
||||
// else
|
||||
// foo += text("<B>Authorized</B> | ")
|
||||
foo += text("<A HREF='?src=\ref[src];prom_demot=\ref[M.client]'>Promote/Demote</A> | ")
|
||||
if(!istype(M, /mob/new_player))
|
||||
if(!ismonkey(M))
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
//verbs += /proc/togglebuildmode --Merged with view variables
|
||||
//verbs += /client/proc/cmd_modify_object_variables --Merged with view variables
|
||||
verbs += /client/proc/togglebuildmodeself
|
||||
|
||||
verbs += /client/proc/debug_master_controller
|
||||
else return
|
||||
|
||||
//Game Admin
|
||||
@@ -445,6 +445,7 @@
|
||||
//verbs -= /client/proc/cmd_switch_radio --removed because tcommsat is staying
|
||||
verbs -= /client/proc/togglebuildmodeself
|
||||
verbs -= /client/proc/kill_airgroup
|
||||
verbs -= /client/proc/debug_master_controller
|
||||
verbs -= /client/proc/admin_deny_shuttle
|
||||
verbs -= /client/proc/cmd_admin_christmas
|
||||
verbs -= /client/proc/editappear
|
||||
|
||||
@@ -7,4 +7,16 @@
|
||||
master_controller.process()
|
||||
if("No")
|
||||
return 0
|
||||
//feedback_add_details("admin_verb","RMC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
/client/proc/debug_master_controller()
|
||||
set category = "Debug"
|
||||
set name = "Debug Master Controller"
|
||||
switch(alert("Debug Master Controller or Failsafe?" ,, "Master Controller" , "Failsafe"))
|
||||
if("Master Controller")
|
||||
debug_variables(master_controller)
|
||||
if("Failsafe")
|
||||
debug_variables(Failsafe)
|
||||
//feedback_add_details("admin_verb","DMC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
@@ -3,8 +3,6 @@
|
||||
set name = "Asay" //Gave this shit a shorter name so you only have to time out "asay" rather than "admin say" to use it --NeoFite
|
||||
set hidden = 1
|
||||
|
||||
// All admins should be authenticated, but... what if?
|
||||
|
||||
if (!src.holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
@@ -24,7 +22,7 @@
|
||||
for (var/mob/M in world)
|
||||
if (M.client && M.client.holder)
|
||||
if (src.holder.rank == "Admin Observer")
|
||||
M << "<span class=\"gfartadmin\"><span class=\"prefix\">ADMIN:</span> <span class=\"name\">[key_name(usr, M)]:</span> <span class=\"message\">[msg]</span></span>"
|
||||
M << "<span class='adminobserver'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, M)]:</EM> <span class='message'>[msg]</span></span>"
|
||||
else
|
||||
M << "<span class='admin'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, M)]</EM> (<A HREF='?src=\ref[M.client.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>"
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
if(!src.holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
//feedback_add_details("admin_verb","CP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
for (var/obj/machinery/atmospherics/plumbing in world)
|
||||
if (plumbing.nodealert)
|
||||
|
||||
@@ -23,4 +23,6 @@
|
||||
if (istype(M, /mob/new_player))
|
||||
continue
|
||||
if (M.stat == 2 || (M.client && M.client.holder && M.client.deadchat)) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above
|
||||
M.show_message(rendered, 2)
|
||||
M.show_message(rendered, 2)
|
||||
|
||||
//feedback_add_details("admin_verb","D") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -505,6 +505,24 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
H.update_clothing()
|
||||
else
|
||||
alert("Invalid mob")
|
||||
//feedback_add_details("admin_verb","GFA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_assume_direct_control(var/mob/M in world)
|
||||
set category = "Admin"
|
||||
set name = "Assume direct control"
|
||||
set desc = "Direct intervention"
|
||||
|
||||
if(M.ckey)
|
||||
if(alert("This mob is being controlled by [M.ckey]. Are you sure you wish to assume control of it? [M.ckey] will be made a ghost.",,"Yes","No") != "Yes")
|
||||
return
|
||||
else
|
||||
var/mob/dead/observer/ghost = new/mob/dead/observer()
|
||||
ghost.ckey = M.ckey;
|
||||
var/mob/adminmob = src.mob
|
||||
M.ckey = src.ckey;
|
||||
if( isobserver(adminmob) )
|
||||
del(adminmob)
|
||||
//feedback_add_details("admin_verb","ADC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
/client/proc/cmd_admin_dress(var/mob/living/carbon/human/M in world)
|
||||
@@ -663,8 +681,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
W.registered_name = M.real_name
|
||||
M.equip_if_possible(W, M.slot_wear_id)
|
||||
|
||||
var/obj/item/weapon/fireaxe/fire_axe = new(M)
|
||||
fire_axe.name = "Fire Axe (Unwielded)"
|
||||
var/obj/item/weapon/twohanded/fireaxe/fire_axe = new(M)
|
||||
M.equip_if_possible(fire_axe, M.slot_r_hand)
|
||||
|
||||
if("masked killer")
|
||||
@@ -679,8 +696,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_if_possible(new /obj/item/weapon/kitchenknife(M), M.slot_l_store)
|
||||
M.equip_if_possible(new /obj/item/weapon/scalpel(M), M.slot_r_store)
|
||||
|
||||
var/obj/item/weapon/fireaxe/fire_axe = new(M)
|
||||
fire_axe.name = "Fire Axe (Unwielded)"
|
||||
var/obj/item/weapon/twohanded/fireaxe/fire_axe = new(M)
|
||||
M.equip_if_possible(fire_axe, M.slot_r_hand)
|
||||
|
||||
for(var/obj/item/carried_item in M.contents)
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
else
|
||||
usr << "You already used up your jukebox monies this round!"
|
||||
del(uploaded_sound)
|
||||
//feedback_add_details("admin_verb","PGS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
/client/proc/play_local_sound(S as sound)
|
||||
@@ -46,6 +47,7 @@
|
||||
message_admins("[key_name_admin(src)] played a local sound [S]", 1)
|
||||
playsound(get_turf_loc(src.mob), S, 50, 0, 0)
|
||||
return
|
||||
//feedback_add_details("admin_verb","PLS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
/*
|
||||
@@ -62,7 +64,7 @@
|
||||
for(var/mob/living/carbon/human/CP in world)
|
||||
if(CP.real_name=="Cuban Pete" && CP.key!="Rosham")
|
||||
CP << "Your body can't contain the rhumba beat"
|
||||
CP.gib(1)
|
||||
CP.gib()
|
||||
|
||||
|
||||
/client/proc/bananaphone()
|
||||
|
||||
@@ -907,7 +907,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
config.allow_random_events = 0
|
||||
usr << "Random events disabled"
|
||||
message_admins("Admin [key_name_admin(usr)] has disabled random events.", 1)
|
||||
feedback_add_details("admin_verb","TRE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
//feedback_add_details("admin_verb","TRE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/rnd_check_designs()
|
||||
set category = "Debug"
|
||||
|
||||
@@ -37,7 +37,6 @@ var/global/sent_syndicate_strike_team = 0
|
||||
|
||||
if (emergency_shuttle.direction == 1 && emergency_shuttle.online == 1)
|
||||
emergency_shuttle.recall()
|
||||
world << "\blue <B>Alert: The shuttle is going back!</B>"
|
||||
|
||||
var/syndicate_commando_number = syndicate_commandos_possible //for selecting a leader
|
||||
var/syndicate_leader_selected = 0 //when the leader is chosen. The last person spawned.
|
||||
@@ -145,7 +144,7 @@ var/global/sent_syndicate_strike_team = 0
|
||||
camera.c_tag = real_name
|
||||
|
||||
var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src)
|
||||
R.set_frequency(NUKE_FREQ) //Same frequency as the syndicate team in Nuke mode.
|
||||
R.set_frequency(NUKE_FREQ) //Same frequency as the syndicate team in Nuke mode. DMTG
|
||||
equip_if_possible(R, slot_ears)
|
||||
equip_if_possible(new /obj/item/clothing/under/syndicate(src), slot_w_uniform)
|
||||
equip_if_possible(new /obj/item/clothing/shoes/swat(src), slot_shoes)
|
||||
|
||||
@@ -436,7 +436,7 @@ datum
|
||||
if(15 to 25)
|
||||
M:drowsyness = max(M:drowsyness, 20)
|
||||
if(25 to INFINITY)
|
||||
M.sleeping = 1
|
||||
M.sleeping += 1
|
||||
M.adjustOxyLoss(-M.getOxyLoss())
|
||||
M.SetWeakened(0)
|
||||
M.SetStunned(0)
|
||||
@@ -2446,7 +2446,7 @@ datum
|
||||
M:drowsyness = max(0,M:drowsyness-3)
|
||||
M:slurring = max(0, M:slurring-3)
|
||||
if(!M:sleeping_willingly)
|
||||
M:sleeping = 0
|
||||
M:sleeping = max(0,M.sleeping - 2)
|
||||
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
|
||||
M.bodytemperature = min(310, M.bodytemperature+5)
|
||||
M.make_jittery(1)
|
||||
@@ -2488,7 +2488,7 @@ datum
|
||||
M:drowsyness = max(0,M:drowsyness-3)
|
||||
M:slurring = max(0, M:slurring-3)
|
||||
if(!M:sleeping_willingly)
|
||||
M:sleeping = 0
|
||||
M:sleeping = max(0,M.sleeping-2)
|
||||
if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
|
||||
M.bodytemperature = min(310, M.bodytemperature-5)
|
||||
M.make_jittery(1)
|
||||
@@ -2507,7 +2507,7 @@ datum
|
||||
M.dizziness = max(0,M.dizziness-2)
|
||||
M:drowsyness = max(0,M:drowsyness-1)
|
||||
if(!M:sleeping_willingly)
|
||||
M:sleeping = 0
|
||||
M.sleeping = max(0,M.sleeping-2)
|
||||
if(M:getToxLoss() && prob(20))
|
||||
M:adjustToxLoss(-1)
|
||||
if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
|
||||
@@ -2542,7 +2542,7 @@ datum
|
||||
M.dizziness +=5
|
||||
M:drowsyness = 0
|
||||
if(!M:sleeping_willingly)
|
||||
M:sleeping = 0
|
||||
M:sleeping = max(0,M.sleeping-2)
|
||||
if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
|
||||
M.bodytemperature = max(310, M.bodytemperature-5)
|
||||
M:nutrition += 1
|
||||
@@ -2559,7 +2559,7 @@ datum
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
M:drowsyness = max(0,M:drowsyness-7)
|
||||
if(!M:sleeping_willingly)
|
||||
M:sleeping = 0
|
||||
M:sleeping = max(0,M.sleeping-1)
|
||||
if (M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature-5)
|
||||
M.make_jittery(1)
|
||||
@@ -2779,7 +2779,7 @@ datum
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
M:drowsyness = max(0,M:drowsyness-7)
|
||||
if(!M:sleeping_willingly)
|
||||
M:sleeping = 0
|
||||
M:sleeping = max(0,M.sleeping-2)
|
||||
if (M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature-5)
|
||||
M.make_jittery(1)
|
||||
@@ -3095,7 +3095,7 @@ datum
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M:drowsyness = max(0,M:drowsyness-3)
|
||||
if(!M:sleeping_willingly)
|
||||
M:sleeping = 0
|
||||
M:sleeping = max(0,M.sleeping-2)
|
||||
if (M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature-5)
|
||||
..()
|
||||
@@ -3112,7 +3112,7 @@ datum
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M:drowsyness = max(0,M:drowsyness-3)
|
||||
if(!M:sleeping_willingly)
|
||||
M:sleeping = 0
|
||||
M:sleeping = max(0,M.sleeping-2)
|
||||
M.make_jittery(1)
|
||||
..()
|
||||
return
|
||||
@@ -3128,7 +3128,7 @@ datum
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
M:drowsyness = max(0,M:drowsyness-3)
|
||||
if(!M:sleeping_willingly)
|
||||
M:sleeping = 0
|
||||
M:sleeping = max(0,M.sleeping - 2)
|
||||
if (M.bodytemperature > 310)
|
||||
M.bodytemperature = max(310, M.bodytemperature-5)
|
||||
..()
|
||||
|
||||
@@ -1887,19 +1887,16 @@
|
||||
del(D)
|
||||
del(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/watercan
|
||||
/obj/item/weapon/reagent_containers/glass/bucket/wateringcan
|
||||
name = "watering can"
|
||||
desc = "A watering can, for all your watering needs."
|
||||
icon = 'hydroponics.dmi'
|
||||
icon_state = "watercan"
|
||||
item_state = "bucket"
|
||||
m_amt = 200
|
||||
g_amt = 0
|
||||
w_class = 3.0
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = list(10,20,30,50,70)
|
||||
volume = 70
|
||||
flags = FPRINT | OPENCONTAINER
|
||||
|
||||
attackby(var/obj/D, mob/user as mob)
|
||||
if(isprox(D))
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/cantister
|
||||
desc = "It's a canister. Mainly used for transporting fuel."
|
||||
@@ -3350,14 +3347,6 @@
|
||||
icon_state = "cubalibreglass"
|
||||
name = "Cuba Libre"
|
||||
desc = "A classic mix of rum and cola."
|
||||
if("irishcream")
|
||||
icon_state = "irishcreamglass"
|
||||
name = "Irish Cream"
|
||||
desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
|
||||
if("cubalibre")
|
||||
icon_state = "cubalibreglass"
|
||||
name = "Cuba Libre"
|
||||
desc = "A classic mix of rum and cola."
|
||||
if("b52")
|
||||
icon_state = "b52glass"
|
||||
name = "B-52"
|
||||
|
||||
@@ -1417,6 +1417,30 @@
|
||||
reagents.add_reagent("nutriment", 28)
|
||||
bitesize = 3
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup
|
||||
name = "chantrelle soup"
|
||||
desc = "A delicious and hearty mushroom soup."
|
||||
icon_state = "mushroomsoup"
|
||||
trash = "snack_bowl"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 10)
|
||||
bitesize = 3
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit
|
||||
name = "plump helmet biscuit"
|
||||
desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced dwarven wheat flour."
|
||||
icon_state = "phelmbiscuit"
|
||||
New()
|
||||
..()
|
||||
if(prob(10))
|
||||
name = "exceptional plump helmet biscuit"
|
||||
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!"
|
||||
reagents.add_reagent("nutriment", 15)
|
||||
bitesize = 2
|
||||
else
|
||||
reagents.add_reagent("nutriment", 5)
|
||||
bitesize = 2
|
||||
/////////////////////////////////////////////////Sliceable////////////////////////////////////////
|
||||
// All the food items that can be sliced into smaller bits like Meatbread and Cheesewheels
|
||||
|
||||
|
||||
@@ -1005,6 +1005,19 @@
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
|
||||
|
||||
/datum/recipe/plumphelmetbiscuit
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet,
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit
|
||||
|
||||
/datum/recipe/mushroomsoup
|
||||
reagents = list("water" = 5, "milk" = 5)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle,
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/mushroomsoup
|
||||
|
||||
//////////////////////////////////////////
|
||||
// bs12 food port stuff
|
||||
|
||||
@@ -284,7 +284,7 @@
|
||||
// seedName = pick(list("1","2","3","4"))
|
||||
// seedAmt = rand(1,4)
|
||||
if(prob(20))
|
||||
icon_state = "asteroid[rand(0,8)]"
|
||||
icon_state = "asteroid[rand(0,12)]"
|
||||
spawn(2)
|
||||
updateMineralOverlays()
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
flick("flash", flash)
|
||||
|
||||
// if (stat == 2 && client)
|
||||
// gib(1)
|
||||
// gib()
|
||||
// return
|
||||
|
||||
// else if (stat == 2 && !client)
|
||||
@@ -105,7 +105,7 @@
|
||||
switch (severity)
|
||||
if (1.0)
|
||||
b_loss += 500
|
||||
gib(1)
|
||||
gib()
|
||||
return
|
||||
|
||||
if (2.0)
|
||||
@@ -741,7 +741,7 @@ In all, this is a lot like the monkey code. /N
|
||||
|
||||
if ("help")
|
||||
if(!sleeping_willingly)
|
||||
sleeping = 0
|
||||
sleeping = max(0,sleeping-5)
|
||||
resting = 0
|
||||
AdjustParalysis(-3)
|
||||
AdjustStunned(-3)
|
||||
@@ -783,7 +783,7 @@ In all, this is a lot like the monkey code. /N
|
||||
<BR><B>Right Hand:</B> <A href='?src=\ref[src];item=r_hand'>[(r_hand ? text("[]", r_hand) : "Nothing")]</A>
|
||||
<BR><B>Head:</B> <A href='?src=\ref[src];item=head'>[(head ? text("[]", head) : "Nothing")]</A>
|
||||
<BR><B>(Exo)Suit:</B> <A href='?src=\ref[src];item=suit'>[(wear_suit ? text("[]", wear_suit) : "Nothing")]</A>
|
||||
<BR><A href='?src=\ref[src];item=pockets'>Empty Pockets</A>
|
||||
<BR><A href='?src=\ref[src];item=pockets'>Empty Pouches</A>
|
||||
<BR><A href='?src=\ref[user];mach_close=mob[name]'>Close</A>
|
||||
<BR>"}
|
||||
user << browse(dat, text("window=mob[name];size=340x480"))
|
||||
|
||||
@@ -380,7 +380,7 @@
|
||||
src.drowsyness--
|
||||
src.eye_blurry = max(2, src.eye_blurry)
|
||||
if (prob(5))
|
||||
src.sleeping = 1
|
||||
src.sleeping += 1
|
||||
src.Paralyse(5)
|
||||
|
||||
confused = max(0, confused - 1)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
flick("flash", flash)
|
||||
/*
|
||||
if (stat == 2 && client)
|
||||
gib(1)
|
||||
gib()
|
||||
return
|
||||
|
||||
else if (stat == 2 && !client)
|
||||
@@ -93,7 +93,7 @@
|
||||
switch (severity)
|
||||
if (1.0)
|
||||
b_loss += 500
|
||||
gib(1)
|
||||
gib()
|
||||
return
|
||||
|
||||
if (2.0)
|
||||
@@ -490,7 +490,7 @@
|
||||
|
||||
if ("help")
|
||||
if(!sleeping_willingly)
|
||||
sleeping = 0
|
||||
sleeping = max(0,sleeping-5)
|
||||
resting = 0
|
||||
AdjustParalysis(-3)
|
||||
AdjustStunned(-3)
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
drowsyness--
|
||||
eye_blurry = max(2, eye_blurry)
|
||||
if (prob(5))
|
||||
sleeping = 1
|
||||
sleeping += 1
|
||||
Paralyse(5)
|
||||
|
||||
confused = max(0, confused - 1)
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
drowsyness--
|
||||
eye_blurry = max(2, eye_blurry)
|
||||
if (prob(5))
|
||||
sleeping = 1
|
||||
sleeping += 1
|
||||
Paralyse(5)
|
||||
|
||||
confused = max(0, confused - 1)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
if(prob(src.getBruteLoss() - 50))
|
||||
src.gib()
|
||||
|
||||
/mob/living/carbon/gib(give_medal,ex_act)
|
||||
/mob/living/carbon/gib()
|
||||
for(var/mob/M in src)
|
||||
if(M in src.stomach_contents)
|
||||
src.stomach_contents.Remove(M)
|
||||
@@ -43,7 +43,7 @@
|
||||
for(var/mob/N in viewers(src, null))
|
||||
if(N.client)
|
||||
N.show_message(text("\red <B>[M] bursts out of [src]!</B>"), 2)
|
||||
. = ..(ex_act)
|
||||
. = ..()
|
||||
|
||||
/mob/living/carbon/attack_hand(mob/M as mob)
|
||||
if (M.hand)
|
||||
@@ -168,9 +168,9 @@
|
||||
/mob/living/carbon/proc/swap_hand()
|
||||
var/obj/item/item_in_hand = src.get_active_hand()
|
||||
if(item_in_hand) //this segment checks if the item in your hand is twohanded.
|
||||
if(item_in_hand.twohanded == 1)
|
||||
if(item_in_hand.wielded == 1)
|
||||
usr << text("Your other hand is too busy holding the []",item_in_hand.name)
|
||||
if(istype(item_in_hand,/obj/item/weapon/twohanded))
|
||||
if(item_in_hand:wielded == 1)
|
||||
usr << "<span class='warning'>Your other hand is too busy holding the [item_in_hand.name]</span>"
|
||||
return
|
||||
src.hand = !( src.hand )
|
||||
if (!( src.hand ))
|
||||
@@ -228,10 +228,10 @@
|
||||
if (istype(src,/mob/living/carbon/human) && src:w_uniform)
|
||||
var/mob/living/carbon/human/H = src
|
||||
H.w_uniform.add_fingerprint(M)
|
||||
src.sleeping = max(0,src.sleeping-5)
|
||||
if(!src.sleeping_willingly)
|
||||
src.sleeping = 0
|
||||
src.resting = 0
|
||||
src.sleeping = max(0,src.sleeping-5)
|
||||
if(src.sleeping == 0)
|
||||
src.resting = 0
|
||||
AdjustParalysis(-3)
|
||||
AdjustStunned(-3)
|
||||
AdjustWeakened(-3)
|
||||
|
||||
@@ -164,7 +164,9 @@
|
||||
|
||||
if ("faint")
|
||||
message = "<B>[src]</B> faints."
|
||||
src.sleeping = 1
|
||||
if(src.sleeping)
|
||||
return //Can't faint while asleep
|
||||
src.sleeping += 10 //Short-short nap
|
||||
m_type = 1
|
||||
|
||||
if ("cough")
|
||||
|
||||
@@ -335,7 +335,7 @@
|
||||
// /obj/item/clothing/head/bomb_hood(src)
|
||||
/*
|
||||
if (stat == 2 && client)
|
||||
gib(1)
|
||||
gib()
|
||||
return
|
||||
|
||||
else if (stat == 2 && !client)
|
||||
@@ -350,7 +350,7 @@
|
||||
if (1.0)
|
||||
b_loss += 500
|
||||
if (!prob(getarmor(null, "bomb")))
|
||||
gib(1,1)
|
||||
gib()
|
||||
return
|
||||
else
|
||||
var/atom/target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src)))
|
||||
@@ -555,8 +555,8 @@
|
||||
return
|
||||
if (!( W.flags & ONBACK ))
|
||||
return
|
||||
if(W.twohanded && W.wielded)
|
||||
usr << "Unwield the [initial(W.name)] first!"
|
||||
if(istype(W,/obj/item/weapon/twohanded) && W:wielded)
|
||||
usr << "<span class='warning'>Unwield the [initial(W.name)] first!</span>"
|
||||
return
|
||||
u_equip(W)
|
||||
back = W
|
||||
@@ -1552,7 +1552,6 @@
|
||||
/obj/effect/equip_e/human/process()
|
||||
if (item)
|
||||
item.add_fingerprint(source)
|
||||
var/item_loc = 0
|
||||
if (!item)
|
||||
switch(place)
|
||||
if("mask")
|
||||
@@ -1615,218 +1614,119 @@
|
||||
//SN src = null
|
||||
del(src)
|
||||
return
|
||||
else
|
||||
switch(place)
|
||||
if("mask")
|
||||
if(target.wear_mask)
|
||||
item_loc = 1
|
||||
if("l_hand")
|
||||
if(target.l_hand)
|
||||
item_loc = 1
|
||||
if("r_hand")
|
||||
if(target.r_hand)
|
||||
item_loc = 1
|
||||
if("gloves")
|
||||
if(target.gloves)
|
||||
item_loc = 1
|
||||
if("eyes")
|
||||
if(target.glasses)
|
||||
item_loc = 1
|
||||
if("l_ear")
|
||||
if(target.l_ear)
|
||||
item_loc = 1
|
||||
if("r_ear")
|
||||
if(target.r_ear)
|
||||
item_loc = 1
|
||||
if("head")
|
||||
if(target.head)
|
||||
item_loc = 1
|
||||
if("shoes")
|
||||
if(target.shoes)
|
||||
item_loc = 1
|
||||
if("belt")
|
||||
if(target.belt)
|
||||
item_loc = 1
|
||||
if("suit")
|
||||
if(target.wear_suit)
|
||||
item_loc = 1
|
||||
if("back")
|
||||
if(target.back)
|
||||
item_loc = 1
|
||||
if("uniform")
|
||||
if(target.w_uniform)
|
||||
item_loc = 1
|
||||
if("s_store")
|
||||
if(target.s_store)
|
||||
item_loc = 1
|
||||
if("h_store")
|
||||
if(target.h_store)
|
||||
item_loc = 1
|
||||
if("id")
|
||||
if(target.wear_id)
|
||||
item_loc = 1
|
||||
if("internal")
|
||||
if (target.internal)
|
||||
item_loc = 1
|
||||
if("handcuff")
|
||||
if (target.handcuffed)
|
||||
item_loc = 1
|
||||
|
||||
var/list/L = list( "syringe", "pill", "drink", "dnainjector", "fuel")
|
||||
if (item && !L.Find(place) && !item_loc)
|
||||
if ((item && !( L.Find(place) )))
|
||||
if(isrobot(source) && place != "handcuff")
|
||||
del(src)
|
||||
return
|
||||
for(var/mob/O in viewers(target, null))
|
||||
O.show_message(text("\red <B>[] is trying to put \a [] on []</B>", source, item, target), 1)
|
||||
else
|
||||
if (place == "syringe")
|
||||
for(var/mob/O in viewers(target, null))
|
||||
O.show_message(text("\red <B>[] is trying to inject []!</B>", source, target), 1)
|
||||
else
|
||||
if (place == "pill")
|
||||
for(var/mob/O in viewers(target, null))
|
||||
O.show_message(text("\red <B>[] is trying to force [] to swallow []!</B>", source, target, item), 1)
|
||||
else
|
||||
if(place == "fuel")
|
||||
for(var/mob/O in viewers(target, null))
|
||||
O.show_message(text("\red [source] is trying to force [target] to eat the [item:content]!"), 1)
|
||||
var/message=null
|
||||
switch(place)
|
||||
if("syringe")
|
||||
message = text("\red <B>[] is trying to inject []!</B>", source, target)
|
||||
if("pill")
|
||||
message = text("\red <B>[] is trying to force [] to swallow []!</B>", source, target, item)
|
||||
if("fuel")
|
||||
message = text("\red [source] is trying to force [target] to eat the [item:content]!")
|
||||
if("drink")
|
||||
message = text("\red <B>[] is trying to force [] to swallow a gulp of []!</B>", source, target, item)
|
||||
if("dnainjector")
|
||||
message = text("\red <B>[] is trying to inject [] with the []!</B>", source, target, item)
|
||||
if("mask")
|
||||
if(istype(target.wear_mask, /obj/item/clothing)&&!target.wear_mask:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.wear_mask, target)
|
||||
else
|
||||
if (place == "drink")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s head!</B>", source, target.wear_mask, target)
|
||||
/* if("headset")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s face!</B>", source, target.w_radio, target) */
|
||||
if("l_hand")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s left hand!</B>", source, target.l_hand, target)
|
||||
if("r_hand")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s right hand!</B>", source, target.r_hand, target)
|
||||
if("gloves")
|
||||
if(istype(target.gloves, /obj/item/clothing)&&!target.gloves:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.gloves, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s hands!</B>", source, target.gloves, target)
|
||||
if("eyes")
|
||||
if(istype(target.glasses, /obj/item/clothing)&&!target.glasses:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.glasses, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s eyes!</B>", source, target.glasses, target)
|
||||
if("l_ear")
|
||||
if(istype(target.l_ear, /obj/item/clothing)&&!target.l_ear:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.l_ear, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s left ear!</B>", source, target.l_ear, target)
|
||||
if("r_ear")
|
||||
if(istype(target.r_ear, /obj/item/clothing)&&!target.r_ear:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.r_ear, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s right ear!</B>", source, target.r_ear, target)
|
||||
if("head")
|
||||
if(istype(target.head, /obj/item/clothing)&&!target.head:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.head, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s head!</B>", source, target.head, target)
|
||||
if("shoes")
|
||||
if(istype(target.shoes, /obj/item/clothing)&&!target.shoes:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.shoes, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s feet!</B>", source, target.shoes, target)
|
||||
if("belt")
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s belt!</B>", source, target.belt, target)
|
||||
if("suit")
|
||||
if(istype(target.wear_suit, /obj/item/clothing)&&!target.wear_suit:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.wear_suit, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s body!</B>", source, target.wear_suit, target)
|
||||
if("back")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s back!</B>", source, target.back, target)
|
||||
if("handcuff")
|
||||
message = text("\red <B>[] is trying to unhandcuff []!</B>", source, target)
|
||||
if("uniform")
|
||||
if(istype(target.w_uniform, /obj/item/clothing)&&!target.w_uniform:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.w_uniform, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s body!</B>", source, target.w_uniform, target)
|
||||
if("s_store")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s suit!</B>", source, target.s_store, target)
|
||||
if("h_store")
|
||||
message = text("\red <B>[] is trying to empty []'s hat!</B>", source, target)
|
||||
if("pockets")
|
||||
for(var/obj/item/weapon/mousetrap/MT in list(target.l_store, target.r_store))
|
||||
if(MT.armed)
|
||||
for(var/mob/O in viewers(target, null))
|
||||
O.show_message(text("\red <B>[] is trying to force [] to swallow a gulp of []!</B>", source, target, item), 1)
|
||||
else
|
||||
if (place == "dnainjector")
|
||||
for(var/mob/O in viewers(target, null))
|
||||
O.show_message(text("\red <B>[] is trying to inject [] with the []!</B>", source, target, item), 1)
|
||||
else
|
||||
var/message = null
|
||||
switch(place)
|
||||
if("mask")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their mask removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) mask</font>")
|
||||
if(istype(target.wear_mask, /obj/item/clothing)&&!target.wear_mask:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.wear_mask, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s head!</B>", source, target.wear_mask, target)
|
||||
/* if("headset")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s face!</B>", source, target.w_radio, target) */
|
||||
if("l_hand")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their left hand item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) left hand item</font>")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s left hand!</B>", source, target.l_hand, target)
|
||||
if("r_hand")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their right hand item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) right hand item</font>")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s right hand!</B>", source, target.r_hand, target)
|
||||
if("gloves")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their gloves removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) gloves</font>")
|
||||
if(istype(target.gloves, /obj/item/clothing)&&!target.gloves:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.gloves, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s hands!</B>", source, target.gloves, target)
|
||||
if("eyes")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their eyewear removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) eyewear</font>")
|
||||
if(istype(target.glasses, /obj/item/clothing)&&!target.glasses:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.glasses, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s eyes!</B>", source, target.glasses, target)
|
||||
if("l_ear")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their left ear item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) left ear item</font>")
|
||||
if(istype(target.l_ear, /obj/item/clothing)&&!target.l_ear:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.l_ear, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s left ear!</B>", source, target.l_ear, target)
|
||||
if("r_ear")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their right ear item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) right ear item</font>")
|
||||
if(istype(target.r_ear, /obj/item/clothing)&&!target.r_ear:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.r_ear, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s right ear!</B>", source, target.r_ear, target)
|
||||
if("head")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their hat removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) hat</font>")
|
||||
if(istype(target.head, /obj/item/clothing)&&!target.head:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.head, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s head!</B>", source, target.head, target)
|
||||
if("shoes")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their shoes removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) shoes</font>")
|
||||
if(istype(target.shoes, /obj/item/clothing)&&!target.shoes:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.shoes, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s feet!</B>", source, target.shoes, target)
|
||||
if("belt")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their belt item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) belt item</font>")
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s belt!</B>", source, target.belt, target)
|
||||
if("suit")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their suit removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) suit</font>")
|
||||
if(istype(target.wear_suit, /obj/item/clothing)&&!target.wear_suit:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.wear_suit, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s body!</B>", source, target.wear_suit, target)
|
||||
if("back")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their back item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) back item</font>")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s back!</B>", source, target.back, target)
|
||||
if("handcuff")
|
||||
message = text("\red <B>[] is trying to unhandcuff []!</B>", source, target)
|
||||
if("uniform")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their uniform removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) uniform</font>")
|
||||
if(istype(target.w_uniform, /obj/item/clothing)&&!target.w_uniform:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.w_uniform, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s body!</B>", source, target.w_uniform, target)
|
||||
if("s_store")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s suit!</B>", source, target.s_store, target)
|
||||
if("h_store")
|
||||
message = text("\red <B>[] is trying to empty []'s hat!</B>", source, target)
|
||||
if("pockets")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their pockets emptied by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to empty [target.name]'s ([target.ckey]) pockets</font>")
|
||||
for(var/obj/item/weapon/mousetrap/MT in list(target.l_store, target.r_store))
|
||||
if(MT.armed)
|
||||
for(var/mob/O in viewers(target, null))
|
||||
if(O == source)
|
||||
O.show_message(text("\red <B>You reach into the [target]'s pockets, but there was a live mousetrap in there!</B>"), 1)
|
||||
else
|
||||
O.show_message(text("\red <B>[source] reaches into [target]'s pockets and sets off a hidden mousetrap!</B>"), 1)
|
||||
target.u_equip(MT)
|
||||
if (target.client)
|
||||
target.client.screen -= MT
|
||||
MT.loc = source.loc
|
||||
MT.triggered(source, source.hand ? "l_hand" : "r_hand")
|
||||
MT.layer = OBJ_LAYER
|
||||
return
|
||||
message = text("\red <B>[] is trying to empty []'s pockets!!</B>", source, target)
|
||||
if("CPR")
|
||||
if (target.cpr_time + 3 >= world.time)
|
||||
//SN src = null
|
||||
del(src)
|
||||
return
|
||||
message = text("\red <B>[] is trying perform CPR on []!</B>", source, target)
|
||||
if("id")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their ID removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) ID</font>")
|
||||
message = text("\red <B>[] is trying to take off [] from []'s uniform!</B>", source, target.wear_id, target)
|
||||
if("internal")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their internals toggled by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to toggle [target.name]'s ([target.ckey]) internals</font>")
|
||||
if (target.internal)
|
||||
message = text("\red <B>[] is trying to remove []'s internals</B>", source, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to set on []'s internals.</B>", source, target)
|
||||
else
|
||||
for(var/mob/M in viewers(target, null))
|
||||
M.show_message(message, 1)
|
||||
if(O == source)
|
||||
O.show_message(text("\red <B>You reach into the [target]'s pockets, but there was a live mousetrap in there!</B>"), 1)
|
||||
else
|
||||
O.show_message(text("\red <B>[source] reaches into [target]'s pockets and sets off a hidden mousetrap!</B>"), 1)
|
||||
target.u_equip(MT)
|
||||
if (target.client)
|
||||
target.client.screen -= MT
|
||||
MT.loc = source.loc
|
||||
MT.triggered(source, source.hand ? "l_hand" : "r_hand")
|
||||
MT.layer = OBJ_LAYER
|
||||
return
|
||||
message = text("\red <B>[] is trying to empty []'s pockets!!</B>", source, target)
|
||||
if("CPR")
|
||||
if (target.cpr_time >= world.time + 3)
|
||||
//SN src = null
|
||||
del(src)
|
||||
return
|
||||
message = text("\red <B>[] is trying perform CPR on []!</B>", source, target)
|
||||
if("id")
|
||||
message = text("\red <B>[] is trying to take off [] from []'s uniform!</B>", source, target.wear_id, target)
|
||||
if("internal")
|
||||
if (target.internal)
|
||||
message = text("\red <B>[] is trying to remove []'s internals</B>", source, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to set on []'s internals.</B>", source, target)
|
||||
for(var/mob/M in viewers(target, null))
|
||||
M.show_message(message, 1)
|
||||
spawn( 40 )
|
||||
done()
|
||||
return
|
||||
@@ -1846,7 +1746,7 @@ It can still be worn/put on as normal.
|
||||
if(source.loc != s_loc) return
|
||||
if(target.loc != t_loc) return
|
||||
if(LinkBlocked(s_loc,t_loc)) return
|
||||
if(item && source.equipped() != item) return
|
||||
if(item && source.equipped() != item) return
|
||||
if ((source.restrained() || source.stat)) return
|
||||
switch(place)
|
||||
if("mask")
|
||||
@@ -2856,4 +2756,4 @@ It can still be worn/put on as normal.
|
||||
else
|
||||
reset_view(0)
|
||||
remoteobserve = null
|
||||
src.tkdisable = 0
|
||||
src.tkdisable = 0
|
||||
|
||||
@@ -545,7 +545,7 @@
|
||||
if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit
|
||||
Paralyse(3) // 3 gives them one second to wake up and run away a bit!
|
||||
if(SA_pp > SA_sleep_min) // Enough to make us sleep as well
|
||||
sleeping = max(sleeping, 4)
|
||||
sleeping = max(src.sleeping+2, 10)
|
||||
else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning
|
||||
if(prob(20) && isbreathing)
|
||||
spawn(0) emote(pick("giggle", "laugh"))
|
||||
@@ -819,7 +819,7 @@
|
||||
drowsyness--
|
||||
eye_blurry = max(2, eye_blurry)
|
||||
if (prob(5))
|
||||
sleeping = 1
|
||||
sleeping += 1
|
||||
Paralyse(5)
|
||||
|
||||
confused = max(0, confused - 1)
|
||||
|
||||
@@ -333,7 +333,7 @@
|
||||
if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit
|
||||
Paralyse(3) // 3 gives them one second to wake up and run away a bit!
|
||||
if(SA_pp > SA_sleep_min) // Enough to make us sleep as well
|
||||
src.sleeping = max(src.sleeping, 2)
|
||||
src.sleeping = max(src.sleeping+2, 10)
|
||||
else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning
|
||||
if(prob(20))
|
||||
spawn(0) emote(pick("giggle", "laugh"))
|
||||
|
||||
@@ -677,6 +677,14 @@
|
||||
|
||||
/mob/living/carbon/monkey/ex_act(severity)
|
||||
flick("flash", flash)
|
||||
/* if (stat == 2 && client)
|
||||
gib()
|
||||
return
|
||||
|
||||
if (stat == 2 && !client)
|
||||
gibs(loc, viruses)
|
||||
del(src)
|
||||
return*/
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
if (stat != 2)
|
||||
|
||||
@@ -11,6 +11,8 @@ var/datum/paiController/paiController // Global handler for pAI candidates
|
||||
comments
|
||||
ready = 0
|
||||
|
||||
|
||||
|
||||
/datum/paiController
|
||||
var/list/pai_candidates = list()
|
||||
var/list/asked = list()
|
||||
@@ -42,20 +44,39 @@ var/datum/paiController/paiController // Global handler for pAI candidates
|
||||
if(href_list["new"])
|
||||
var/datum/paiCandidate/candidate = locate(href_list["candidate"])
|
||||
var/option = href_list["option"]
|
||||
var/t = ""
|
||||
var/maxNameLen = 26
|
||||
|
||||
switch(option)
|
||||
if("name")
|
||||
candidate.name = input("Enter a name for your pAI", "pAI Name", candidate.name) as text
|
||||
t = input("Enter a name for your pAI", "pAI Name", candidate.name) as text
|
||||
if(t)
|
||||
candidate.name = copytext(sanitize(t),1,maxNameLen)
|
||||
if("desc")
|
||||
candidate.description = input("Enter a description for your pAI", "pAI Description", candidate.description) as message
|
||||
t = input("Enter a description for your pAI", "pAI Description", candidate.description) as message
|
||||
if(t)
|
||||
candidate.description = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
|
||||
if("role")
|
||||
candidate.role = input("Enter a role for your pAI", "pAI Role", candidate.role) as text
|
||||
t = input("Enter a role for your pAI", "pAI Role", candidate.role) as text
|
||||
if(t)
|
||||
candidate.role = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
|
||||
if("ooc")
|
||||
candidate.comments = input("Enter any OOC comments", "pAI OOC Comments", candidate.comments) as message
|
||||
|
||||
t = input("Enter any OOC comments", "pAI OOC Comments", candidate.comments) as message
|
||||
if(t)
|
||||
candidate.comments = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
|
||||
if("save")
|
||||
candidate.savefile_save(usr)
|
||||
if("load")
|
||||
candidate.savefile_load(usr)
|
||||
//In case people have saved unsanitized stuff.
|
||||
if(candidate.name)
|
||||
candidate.name = copytext(sanitize(candidate.name),1,maxNameLen)
|
||||
if(candidate.description)
|
||||
candidate.description = copytext(sanitize(candidate.description),1,MAX_MESSAGE_LEN)
|
||||
if(candidate.role)
|
||||
candidate.role = copytext(sanitize(candidate.role),1,MAX_MESSAGE_LEN)
|
||||
if(candidate.comments)
|
||||
candidate.comments = copytext(sanitize(candidate.comments),1,MAX_MESSAGE_LEN)
|
||||
|
||||
if("submit")
|
||||
if(candidate)
|
||||
|
||||
+7
-23
@@ -191,28 +191,16 @@
|
||||
var/obj/item/W = equipped()
|
||||
|
||||
if (W)
|
||||
if(W.twohanded)
|
||||
if(W.wielded)
|
||||
if(hand)
|
||||
var/obj/item/weapon/offhand/O = r_hand
|
||||
del O
|
||||
else
|
||||
var/obj/item/weapon/offhand/O = l_hand
|
||||
del O
|
||||
W.wielded = 0 //Kinda crude, but gets the job done with minimal pain -Agouri
|
||||
W.name = "[initial(W.name)]" //name reset so people don't see world fireaxes with (unwielded) or (wielded) tags
|
||||
W.update_icon()
|
||||
u_equip(W)
|
||||
if (client)
|
||||
client.screen -= W
|
||||
if (W)
|
||||
W.layer = initial(W.layer)
|
||||
if(target)
|
||||
W.loc = target.loc
|
||||
else
|
||||
W.loc = loc
|
||||
W.dropped(src)
|
||||
if (W)
|
||||
W.layer = initial(W.layer)
|
||||
var/turf/T = get_turf(loc)
|
||||
if (istype(T))
|
||||
T.Entered(W)
|
||||
@@ -235,7 +223,7 @@
|
||||
return r_hand
|
||||
|
||||
/mob/proc/get_inactive_hand()
|
||||
if ( ! hand)
|
||||
if (!hand)
|
||||
return l_hand
|
||||
else
|
||||
return r_hand
|
||||
@@ -754,7 +742,7 @@
|
||||
set category = "IC"
|
||||
set src in oview(1)
|
||||
|
||||
if (!( usr ))
|
||||
if ( !usr || usr==src || !istype(src.loc,/turf) ) //if there's no person pulling OR the person is pulling themself OR the object being pulled is inside something: abort!
|
||||
return
|
||||
if (!( anchored ))
|
||||
usr.pulling = src
|
||||
@@ -852,9 +840,9 @@
|
||||
for(var/mob/M in viewers())
|
||||
M.see(message)
|
||||
|
||||
//This is the proc for gibbing a mob. Cannot gib ghosts. Removed the medal reference,
|
||||
//This is the proc for gibbing a mob. Cannot gib ghosts.
|
||||
//added different sort of gibs and animations. N
|
||||
/mob/proc/gib(var/ex_act = 0)
|
||||
/mob/proc/gib()
|
||||
|
||||
if (istype(src, /mob/dead/observer))
|
||||
gibs(loc, viruses)
|
||||
@@ -913,10 +901,6 @@ Currently doesn't work, but should be useful later or at least as a template
|
||||
else
|
||||
gibs(loc, viruses, dna)
|
||||
sleep(15)
|
||||
for(var/obj/item/I in contents)
|
||||
I.loc = get_turf(src)
|
||||
if(ex_act)
|
||||
I.ex_act(ex_act)
|
||||
del(src)
|
||||
|
||||
/*
|
||||
@@ -1038,8 +1022,8 @@ note dizziness decrements automatically in the mob's Life() proc.
|
||||
stat(null, "([x], [y], [z])")
|
||||
stat(null, "CPU: [world.cpu]")
|
||||
stat(null, "Controller: [controllernum]")
|
||||
//if (master_controller)
|
||||
// stat(null, "Loop: [master_controller.loop_freq]")
|
||||
if (master_controller)
|
||||
stat(null, "Current Iteration: [controller_iteration]")
|
||||
|
||||
if (spell_list.len)
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
datum/preferences/preferences = null
|
||||
ready = 0
|
||||
spawning = 0//Referenced when you want to delete the new_player later on in the code.
|
||||
totalPlayers = 0 //Player counts for the Lobby tab
|
||||
totalPlayersReady = 0
|
||||
|
||||
invisibility = 101
|
||||
|
||||
@@ -157,8 +159,8 @@
|
||||
Stat()
|
||||
..()
|
||||
|
||||
statpanel("Game")
|
||||
if(client.statpanel=="Game" && ticker)
|
||||
statpanel("Lobby")
|
||||
if(client.statpanel=="Lobby" && ticker)
|
||||
if(ticker.hide_mode)
|
||||
stat("Game Mode:", "Secret")
|
||||
else
|
||||
@@ -168,14 +170,15 @@
|
||||
stat("Time To Start:", ticker.pregame_timeleft)
|
||||
if((ticker.current_state == GAME_STATE_PREGAME) && !going)
|
||||
stat("Time To Start:", "DELAYED")
|
||||
if((ticker.current_state == GAME_STATE_PLAYING) && going)
|
||||
stat("Round Duration:", "[round(world.time / 36000)]:[(((world.time / 600 % 60)/10) > 1 ? world.time / 600 % 60 : add_zero(world.time / 600 % 60, 2))]:[world.time / 100 % 6][world.time / 100 % 10]")
|
||||
|
||||
statpanel("Lobby")
|
||||
if(client.statpanel=="Lobby" && ticker)
|
||||
if(ticker.current_state == GAME_STATE_PREGAME)
|
||||
stat("Players: [totalPlayers]", "Players Ready: [totalPlayersReady]")
|
||||
totalPlayers = 0
|
||||
totalPlayersReady = 0
|
||||
for(var/mob/new_player/player in world)
|
||||
stat("[player.key]", (player.ready)?("(Playing)"):(null))
|
||||
totalPlayers++
|
||||
if(player.ready)totalPlayersReady++
|
||||
|
||||
Topic(href, href_list[])
|
||||
if(!client) return 0
|
||||
@@ -185,7 +188,6 @@
|
||||
return 1
|
||||
|
||||
if(href_list["ready"])
|
||||
|
||||
if(!ready)
|
||||
ready = 1
|
||||
else
|
||||
@@ -249,6 +251,9 @@
|
||||
else if(!href_list["late_join"])
|
||||
new_player_panel()
|
||||
|
||||
if(href_list["priv_msg"])
|
||||
..() //pass PM calls along to /mob/Topic
|
||||
return
|
||||
|
||||
proc/IsJobAvailable(rank)
|
||||
var/datum/job/job = job_master.GetJob(rank)
|
||||
@@ -362,13 +367,27 @@
|
||||
|
||||
|
||||
proc/LateChoices()
|
||||
var/dat = "<html><body>"
|
||||
var/mills = world.time // 1/10 of a second, not real milliseconds but whatever
|
||||
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something
|
||||
var/mins = (mills % 36000) / 600
|
||||
var/hours = mills / 36000
|
||||
|
||||
var/dat = "<html><body><center>"
|
||||
dat += "Round Duration: [round(hours)]h [round(mins)]m<br>"
|
||||
|
||||
if(emergency_shuttle) //In case Nanotrasen decides reposess CentComm's shuttles.
|
||||
if(emergency_shuttle.direction == 2) //Shuttle is going to centcomm, not recalled
|
||||
dat += "<font color='red'><b>The station has been evacuated.</b></font><br>"
|
||||
if(emergency_shuttle.direction == 1 && emergency_shuttle.timeleft() < 300) //Shuttle is past the point of no recall
|
||||
dat += "<font color='red'>The station is currently undergoing evacuation procedures.</font><br>"
|
||||
|
||||
dat += "Choose from the following open positions:<br>"
|
||||
for(var/datum/job/job in job_master.occupations)
|
||||
if(job && IsJobAvailable(job.title))
|
||||
dat += "<a href='byond://?src=\ref[src];SelectedJob=[job.title]'>[job.title]</a><br>"
|
||||
|
||||
src << browse(dat, "window=latechoices;size=300x640;can_close=0")
|
||||
dat += "</center>"
|
||||
src << browse(dat, "window=latechoices;size=300x640;can_close=1")
|
||||
|
||||
|
||||
proc/create_character()
|
||||
@@ -387,7 +406,6 @@
|
||||
|
||||
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo
|
||||
|
||||
|
||||
new_character.dna.ready_dna(new_character)
|
||||
preferences.copydisabilities(new_character)
|
||||
if(mind)
|
||||
|
||||
@@ -52,6 +52,8 @@
|
||||
return 0
|
||||
|
||||
/mob/proc/say_quote(var/text)
|
||||
if(!text)
|
||||
return "says, \"...\""; //not the best solution, but it will stop a large number of runtimes. The cause is somewhere in the Tcomms code
|
||||
var/ending = copytext(text, length(text))
|
||||
if (src.disease_symptoms & DISEASE_HOARSE)
|
||||
return "rasps, \"[text]\"";
|
||||
@@ -63,7 +65,7 @@
|
||||
return "gibbers, \"[text]\"";
|
||||
if (ending == "?")
|
||||
return "asks, \"[text]\"";
|
||||
else if (ending == "!")
|
||||
if (ending == "!")
|
||||
return "exclaims, \"[text]\"";
|
||||
|
||||
return "says, \"[text]\"";
|
||||
|
||||
@@ -439,13 +439,13 @@
|
||||
usr.pulling = null
|
||||
if("sleep")
|
||||
if(usr.sleeping && usr.sleeping_willingly)
|
||||
usr.sleeping = 0
|
||||
usr.sleeping_willingly = 0
|
||||
return
|
||||
else if(!usr.sleeping)
|
||||
usr.sleeping = 1
|
||||
usr.sleeping = 20 //Short nap
|
||||
usr.sleeping_willingly = 1
|
||||
if("rest")
|
||||
usr.resting = !usr.resting
|
||||
usr.resting = !( usr.resting )
|
||||
//kavala2
|
||||
if("throw")
|
||||
if (!usr.stat && isturf(usr.loc) && !usr.restrained())
|
||||
usr:toggle_throw_mode()
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
/obj/item/weapon/fuel/proc/injest(mob/M as mob)
|
||||
switch(content)
|
||||
if("Anti-Hydrogen")
|
||||
M.gib(1)
|
||||
M.gib()
|
||||
if("Hydrogen")
|
||||
M << "\blue You feel very light, as if you might just float away..."
|
||||
del(src)
|
||||
|
||||
Reference in New Issue
Block a user