mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
Merge branch 'master' of github.com:Baystation12/Baystation12
This commit is contained in:
@@ -2385,14 +2385,20 @@
|
||||
set category = "Server"
|
||||
set desc="Delay the game start"
|
||||
set name="Delay"
|
||||
if (!ticker || ticker.current_state != GAME_STATE_PREGAME)
|
||||
if (!ticker || (ticker.current_state != GAME_STATE_PREGAME && ticker.current_state != GAME_STATE_FINISHED))
|
||||
return alert("Too late... The game has already started!", null, null, null, null, null)
|
||||
going = !( going )
|
||||
if (!( going ))
|
||||
world << "<b>The game start has been delayed.</b>"
|
||||
if(ticker.current_state == GAME_STATE_FINISHED)
|
||||
world << "<b>The game end has been delayed.</b>"
|
||||
else
|
||||
world << "<b>The game start has been delayed.</b>"
|
||||
log_admin("[key_name(usr)] delayed the game.")
|
||||
else
|
||||
world << "<b>The game will start soon.</b>"
|
||||
if(ticker.current_state == GAME_STATE_FINISHED)
|
||||
world << "<b>The game will end soon.</b>"
|
||||
else
|
||||
world << "<b>The game will start soon.</b>"
|
||||
log_admin("[key_name(usr)] removed the delay.")
|
||||
|
||||
/obj/admins/proc/adjump()
|
||||
@@ -2588,6 +2594,7 @@
|
||||
log_admin("[key_name(usr)] toggled tinted_weldhelh.")
|
||||
message_admins("[key_name_admin(usr)] toggled tinted_weldhelh.", 1)
|
||||
|
||||
/*
|
||||
/obj/admins/proc/toggleguests()
|
||||
set category = "Server"
|
||||
set desc="Guests can't enter"
|
||||
@@ -2599,6 +2606,7 @@
|
||||
world << "<B>Guests may now enter the game.</B>"
|
||||
log_admin("[key_name(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.")
|
||||
message_admins("\blue [key_name_admin(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.", 1)
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -134,6 +134,8 @@
|
||||
verbs += /client/proc/enable_mapping_debug
|
||||
verbs += /client/proc/everyone_random
|
||||
verbs += /client/proc/only_one // Fateweaver suggested I do this - Doohl
|
||||
verbs += /client/proc/callprocgen
|
||||
verbs += /client/proc/callprocobj
|
||||
|
||||
if (holder.level >= 5)//Game Admin********************************************************************
|
||||
verbs += /obj/admins/proc/view_txt_log
|
||||
@@ -168,6 +170,8 @@
|
||||
verbs += /client/proc/triple_ai
|
||||
verbs += /client/proc/object_talk
|
||||
verbs += /client/proc/strike_team
|
||||
verbs += /client/proc/admin_invis
|
||||
verbs += /client/proc/cmd_admin_godmode
|
||||
|
||||
if (holder.level >= 4)//Badmin********************************************************************
|
||||
verbs += /obj/admins/proc/adrev //toggle admin revives
|
||||
@@ -203,6 +207,7 @@
|
||||
verbs += /client/proc/admin_cancel_shuttle
|
||||
verbs += /obj/admins/proc/show_traitor_panel
|
||||
verbs += /client/proc/cmd_admin_dress
|
||||
verbs += /client/proc/cmd_admin_christmas
|
||||
verbs += /client/proc/respawn_character
|
||||
verbs += /client/proc/spawn_xeno
|
||||
verbs += /proc/possess
|
||||
@@ -231,7 +236,7 @@
|
||||
if (holder.level >= 0)//Mod********************************************************************
|
||||
verbs += /obj/admins/proc/toggleAI //Toggle the AI
|
||||
verbs += /obj/admins/proc/toggleenter //Toggle enterting
|
||||
verbs += /obj/admins/proc/toggleguests //Toggle guests entering
|
||||
// verbs += /obj/admins/proc/toggleguests //Toggle guests entering
|
||||
verbs += /obj/admins/proc/toggleooc //toggle ooc
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
@@ -336,6 +341,7 @@
|
||||
verbs -= /client/proc/admin_cancel_shuttle
|
||||
verbs -= /obj/admins/proc/show_traitor_panel
|
||||
verbs -= /client/proc/cmd_admin_dress
|
||||
verbs -= /client/proc/cmd_admin_christmas
|
||||
verbs -= /client/proc/respawn_character
|
||||
verbs -= /client/proc/spawn_xeno
|
||||
verbs -= /proc/possess
|
||||
@@ -352,7 +358,7 @@
|
||||
verbs -= /client/proc/cmd_admin_create_centcom_report
|
||||
verbs -= /obj/admins/proc/toggleAI //Toggle the AI
|
||||
verbs -= /obj/admins/proc/toggleenter //Toggle enterting
|
||||
verbs -= /obj/admins/proc/toggleguests //Toggle guests entering
|
||||
// verbs -= /obj/admins/proc/toggleguests //Toggle guests entering
|
||||
verbs -= /obj/admins/proc/toggleooc //toggle ooc
|
||||
verbs -= /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs -= /obj/admins/proc/voteres //toggle votes
|
||||
@@ -395,6 +401,11 @@
|
||||
verbs -= /client/proc/toggle_hear_radio
|
||||
verbs -= /client/proc/tension_report
|
||||
verbs -= /client/proc/cmd_admin_change_custom_event
|
||||
verbs -= /client/proc/admin_invis
|
||||
verbs -= /client/proc/callprocgen
|
||||
verbs -= /client/proc/callprocobj
|
||||
verbs -= /client/proc/cmd_admin_godmode
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -693,6 +704,7 @@
|
||||
verbs += /client/proc/cmd_admin_subtle_message
|
||||
verbs += /client/proc/cmd_admin_pm
|
||||
verbs += /client/proc/cmd_admin_gib_self
|
||||
verbs += /client/proc/admin_invis
|
||||
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /obj/admins/proc/toggleooc //toggle ooc
|
||||
@@ -717,3 +729,32 @@
|
||||
verbs += /obj/admins/proc/toggleooc //toggle ooc
|
||||
verbs += /client/proc/cmd_admin_say//asay
|
||||
return
|
||||
|
||||
/client/proc/admin_invis()
|
||||
set category = "Admin"
|
||||
set name = "Invisibility"
|
||||
if(!src.holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
src.admin_invis =! src.admin_invis
|
||||
if(src.mob)
|
||||
var/mob/m = src.mob//probably don't need this cast, but I'm too lazy to check if /client.mob is of type /mob or not
|
||||
m.update_clothing()
|
||||
log_admin("[key_name(usr)] has turned their invisibility [src.admin_invis ? "ON" : "OFF"]")
|
||||
message_admins("[key_name_admin(usr)] has turned their invisibility [src.admin_invis ? "ON" : "OFF"]", 1)
|
||||
|
||||
/client/proc/cmd_admin_godmode(mob/M as mob in world)
|
||||
set category = "Admin"
|
||||
set name = "Toggle Godmode"
|
||||
if(!src.holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
if (M.nodamage == 1)
|
||||
M.nodamage = 0
|
||||
usr << "\blue Toggled OFF"
|
||||
else
|
||||
M.nodamage = 1
|
||||
usr << "\blue Toggled ON"
|
||||
|
||||
log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.nodamage ? "On" : "Off")]")
|
||||
message_admins("[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.nodamage ? "On" : "Off")]", 1)
|
||||
|
||||
@@ -31,7 +31,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
/client/proc/callproc()
|
||||
set category = "Debug"
|
||||
set name = "Advanced ProcCall"
|
||||
set name = "Advanced ProcCall (TG Version)"
|
||||
if(!authenticated || !holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
@@ -117,6 +117,96 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
returnval = call(procname)(arglist(lst)) // Pass the lst as an argument list to the proc
|
||||
usr << "\blue Proc returned: [returnval ? returnval : "null"]"
|
||||
|
||||
/client/proc/callprocgen()
|
||||
set category = "Debug"
|
||||
set name = "ProcCall (BS12 Version)"
|
||||
if(!src.holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
|
||||
var/class = null
|
||||
var/returnval = null
|
||||
var/procname = input("Procpath (in full)","path", null)
|
||||
|
||||
var/argNum = input("Number of arguments:","Number",null) as num //input("Arguments","Arguments:", null)
|
||||
var/list/argL = new/list()
|
||||
|
||||
var/i
|
||||
for(i=0; i<argNum; i++)
|
||||
class = input("Type of Argument #[i]","Variable Type", "text") in list("text","num","type","reference","icon","file","cancel")
|
||||
switch(class)
|
||||
if("cancel")
|
||||
return
|
||||
|
||||
if("text")
|
||||
argL.Add( input("Enter new text:","Text",null) as text )
|
||||
|
||||
if("num")
|
||||
argL.Add( input("Enter new number:","Num",null) as num )
|
||||
|
||||
if("type")
|
||||
argL.Add( input("Enter type:","Type",null) in typesof(/obj,/mob,/area,/turf) )
|
||||
|
||||
if("reference")
|
||||
argL.Add( input("Select reference:","Reference",null) as mob|obj|turf|area in world )
|
||||
|
||||
if("icon")
|
||||
argL.Add( input("Pick icon:","Icon",null) as icon )
|
||||
|
||||
if("file")
|
||||
argL.Add( input("Pick file:","File",null) as file )
|
||||
|
||||
usr << "\blue Calling '[procname]'"
|
||||
returnval = call(procname)(arglist(argL))
|
||||
|
||||
usr << "\blue Proc returned: [returnval ? returnval : "null"]"
|
||||
|
||||
|
||||
/client/proc/callprocobj(var/target as obj|mob|area|turf in world)
|
||||
set category = "Debug"
|
||||
set name = "Object ProcCall (BS12 Version)"
|
||||
if(!src.holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
|
||||
var/class = null
|
||||
var/returnval = null
|
||||
var/procname = input("Procpath (e.g. just \"update\" for lights)","path:", null)
|
||||
|
||||
var/argNum = input("Number of arguments:","Number",null) as num //input("Arguments","Arguments:", null)
|
||||
var/list/argL = new/list()
|
||||
|
||||
var/i
|
||||
for(i=0; i<argNum; i++)
|
||||
class = input("Type of Argument #[i]","Variable Type", "text") in list("text","num","type","reference","icon","file","cancel")
|
||||
switch(class)
|
||||
if("cancel")
|
||||
return
|
||||
|
||||
if("text")
|
||||
argL.Add( input("Enter new text:","Text",null) as text )
|
||||
|
||||
if("num")
|
||||
argL.Add( input("Enter new number:","Num",null) as num )
|
||||
|
||||
if("type")
|
||||
argL.Add( input("Enter type:","Type",null) in typesof(/obj,/mob,/area,/turf) )
|
||||
|
||||
if("reference")
|
||||
argL.Add( input("Select reference:","Reference",null) as mob|obj|turf|area in world )
|
||||
|
||||
if("icon")
|
||||
argL.Add( input("Pick icon:","Icon",null) as icon )
|
||||
|
||||
if("file")
|
||||
argL.Add( input("Pick file:","File",null) as file )
|
||||
|
||||
usr << "\blue Calling '[procname]' on '[target]'"
|
||||
returnval = call(target,procname)(arglist(argL))
|
||||
|
||||
usr << "\blue Proc returned: [returnval ? returnval : "null"]"
|
||||
|
||||
|
||||
/client/proc/Cell()
|
||||
set category = "Debug"
|
||||
set name = "Air Status in Location"
|
||||
@@ -427,7 +517,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_if_possible(new /obj/item/clothing/under/det(M), M.slot_w_uniform)
|
||||
M.equip_if_possible(new /obj/item/clothing/shoes/black(M), M.slot_shoes)
|
||||
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/det_suit(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/storage/det_suit(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/glasses/thermal/monocle(M), M.slot_glasses)
|
||||
M.equip_if_possible(new /obj/item/clothing/head/det_hat(M), M.slot_head)
|
||||
|
||||
@@ -438,7 +528,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
if ("tournament chef") //Steven Seagal FTW
|
||||
M.equip_if_possible(new /obj/item/clothing/under/rank/chef(M), M.slot_w_uniform)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/chef(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/storage/chef(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/shoes/black(M), M.slot_shoes)
|
||||
M.equip_if_possible(new /obj/item/clothing/head/chefhat(M), M.slot_head)
|
||||
|
||||
@@ -501,7 +591,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_if_possible(new /obj/item/clothing/head/chaplain_hood(M), M.slot_head)
|
||||
M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears)
|
||||
M.equip_if_possible(new /obj/item/clothing/glasses/thermal/monocle(M), M.slot_glasses)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/chaplain_hoodie(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/storage/chaplain_hoodie(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(M), M.slot_l_store)
|
||||
M.equip_if_possible(new /obj/item/weapon/bikehorn(M), M.slot_r_store)
|
||||
|
||||
@@ -524,7 +614,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_if_possible(new /obj/item/clothing/head/helmet/welding(M), M.slot_head)
|
||||
M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears)
|
||||
M.equip_if_possible(new /obj/item/clothing/glasses/thermal/monocle(M), M.slot_glasses)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/apron(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/storage/apron(M), M.slot_wear_suit)
|
||||
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)
|
||||
|
||||
@@ -542,7 +632,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_if_possible(new /obj/item/clothing/gloves/black(M), M.slot_gloves)
|
||||
M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears)
|
||||
M.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(M), M.slot_glasses)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/wcoat(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/storage/wcoat(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/weapon/melee/energy/sword(M), M.slot_l_store)
|
||||
M.equip_if_possible(new /obj/item/weapon/cloaking_device(M), M.slot_r_store)
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
var/global/gimmick_hat = null
|
||||
|
||||
// irreversable, for now
|
||||
/client/proc/cmd_admin_christmas()
|
||||
set category = "Fun"
|
||||
set name = "Christmas Time"
|
||||
|
||||
if(!authenticated || !holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
|
||||
if(!gimmick_hat)
|
||||
log_admin("[usr.key] has started Christmas!")
|
||||
message_admins("<font color='blue'>[usr.key] has started Christmas!</font>")
|
||||
|
||||
// handle pre-existing hats
|
||||
gimmick_hat = "santahat"
|
||||
else
|
||||
log_admin("[usr.key] has stopped Christmas!")
|
||||
message_admins("<font color='blue'>[usr.key] has stopped Christmas!</font>")
|
||||
|
||||
// handle pre-existing hats
|
||||
gimmick_hat = null
|
||||
@@ -118,22 +118,6 @@
|
||||
if(K && K.client && K.client.holder && K.key != usr.key && K.key != M.key)
|
||||
K << "<B><font color='blue'>PM: [key_name(usr, K)]->[key_name(M, K)]:</B> \blue [t]</font>"
|
||||
|
||||
/client/proc/cmd_admin_godmode(mob/M as mob in world)
|
||||
set category = "Special Verbs"
|
||||
set name = "Godmode"
|
||||
if(!authenticated || !holder)
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
if (M.nodamage == 1)
|
||||
M.nodamage = 0
|
||||
usr << "\blue Toggled OFF"
|
||||
else
|
||||
M.nodamage = 1
|
||||
usr << "\blue Toggled ON"
|
||||
|
||||
log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.nodamage ? "On" : "Off")]")
|
||||
message_admins("[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.nodamage ? "On" : "Off")]", 1)
|
||||
|
||||
/client/proc/cmd_admin_mute(mob/M as mob in world)
|
||||
set category = "Special Verbs"
|
||||
set name = "Admin Mute"
|
||||
|
||||
@@ -55,6 +55,21 @@
|
||||
item_state = "armor_reflec"
|
||||
armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/storage/gearharness
|
||||
name = "gear harness"
|
||||
desc = "A simple security harness, used for storing small objects"
|
||||
icon_state = "gearharness"
|
||||
item_state = "gearharness"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
||||
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
|
||||
|
||||
/obj/item/clothing/suit/storage/armourrigvest
|
||||
name = "armour rig vest"
|
||||
desc = "An important looking armoured vest, outfitted with pockets."
|
||||
icon_state = "armourrigvest"
|
||||
item_state = "armourrigvest"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
||||
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
armor = list(melee = 50, bullet = 5, laser = 25,energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/det_suit
|
||||
/obj/item/clothing/suit/storage/det_suit
|
||||
name = "coat"
|
||||
desc = "An 18th-century multi-purpose trenchcoat. Someone who wears this means serious business."
|
||||
icon_state = "detective"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
/obj/item/clothing/suit/labcoat
|
||||
/obj/item/clothing/suit/storage/labcoat
|
||||
name = "labcoat"
|
||||
desc = "A suit that protects against minor chemical spills."
|
||||
icon_state = "labcoat_open"
|
||||
@@ -10,34 +10,34 @@
|
||||
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/labcoat/cmo
|
||||
/obj/item/clothing/suit/storage/labcoat/cmo
|
||||
name = "chief medical officer's labcoat"
|
||||
desc = "Bluer than the standard model."
|
||||
icon_state = "labcoat_cmo_open"
|
||||
item_state = "labcoat_cmo"
|
||||
|
||||
/obj/item/clothing/suit/labcoat/mad
|
||||
/obj/item/clothing/suit/storage/labcoat/mad
|
||||
name = "The Mad's labcoat"
|
||||
desc = "It makes you look capable of konking someone on the noggin and shooting them into space."
|
||||
icon_state = "labgreen_open"
|
||||
item_state = "labgreen"
|
||||
|
||||
/obj/item/clothing/suit/labcoat/genetics
|
||||
/obj/item/clothing/suit/storage/labcoat/genetics
|
||||
name = "Geneticist Labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
|
||||
icon_state = "labcoat_gen_open"
|
||||
|
||||
/obj/item/clothing/suit/labcoat/chemist
|
||||
/obj/item/clothing/suit/storage/labcoat/chemist
|
||||
name = "Chemist Labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder."
|
||||
icon_state = "labcoat_chem_open"
|
||||
|
||||
/obj/item/clothing/suit/labcoat/virologist
|
||||
/obj/item/clothing/suit/storage/labcoat/virologist
|
||||
name = "Virologist Labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder."
|
||||
icon_state = "labcoat_vir_open"
|
||||
|
||||
/obj/item/clothing/suit/labcoat/science
|
||||
/obj/item/clothing/suit/storage/labcoat/science
|
||||
name = "Scientist Labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
|
||||
icon_state = "labcoat_tox_open"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
|
||||
|
||||
/obj/item/clothing/suit/wcoat
|
||||
/obj/item/clothing/suit/storage/wcoat
|
||||
name = "waistcoat"
|
||||
desc = "For some classy, murderous fun."
|
||||
icon_state = "vest"
|
||||
@@ -14,18 +14,18 @@
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
|
||||
|
||||
/obj/item/clothing/suit/apron
|
||||
/obj/item/clothing/suit/storage/apron
|
||||
name = "apron"
|
||||
desc = "A basic blue apron."
|
||||
desc = "A basic blue apron. It has a large pocket you can store things in."
|
||||
icon_state = "apron"
|
||||
item_state = "apron"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
allowed = list (/obj/item/weapon/plantbgone,/obj/item/device/analyzer/plant_analyzer,/obj/item/seeds,/obj/item/nutrient,/obj/item/weapon/minihoe)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/chef
|
||||
/obj/item/clothing/suit/storage/chef
|
||||
name = "Chef's apron"
|
||||
desc = "An apron used by a high class chef."
|
||||
desc = "An apron used by a high class chef. Has a few pockets for nic-naks."
|
||||
icon_state = "chef"
|
||||
item_state = "chef"
|
||||
gas_transfer_coefficient = 0.90
|
||||
@@ -36,7 +36,7 @@
|
||||
allowed = list (/obj/item/weapon/kitchenknife,/obj/item/weapon/butch)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/chef/classic
|
||||
/obj/item/clothing/suit/storage/chef/classic
|
||||
name = "A classic chef's apron."
|
||||
desc = "A basic, dull, white chef's apron."
|
||||
icon_state = "apronchef"
|
||||
@@ -68,7 +68,7 @@
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/captunic
|
||||
/obj/item/clothing/suit/storage/captunic
|
||||
name = "captain's parade tunic"
|
||||
desc = "Worn by a Captain to show their class."
|
||||
icon_state = "captunic"
|
||||
@@ -84,7 +84,7 @@
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
|
||||
|
||||
|
||||
/obj/item/clothing/suit/chaplain_hoodie
|
||||
/obj/item/clothing/suit/storage/chaplain_hoodie
|
||||
name = "chaplain hoodie"
|
||||
desc = "This suit says to you 'hush'!"
|
||||
icon_state = "chaplain_hoodie"
|
||||
|
||||
@@ -435,8 +435,9 @@
|
||||
if (S.active)
|
||||
shielded = 2
|
||||
break
|
||||
|
||||
if (shielded == 2 || alien_invis)
|
||||
if(client && client.admin_invis)
|
||||
invisibility = 100
|
||||
else if (shielded == 2 || alien_invis)
|
||||
invisibility = 2
|
||||
//New stealth. Hopefully doesn't lag too much. /N
|
||||
if(istype(loc, /turf))//If they are standing on a turf.
|
||||
@@ -634,6 +635,16 @@
|
||||
|
||||
if ("hurt")
|
||||
var/damage = rand(1, 9)
|
||||
|
||||
var/attack_verb
|
||||
switch(M.mutantrace)
|
||||
if("lizard")
|
||||
attack_verb = "scratch"
|
||||
if("plant")
|
||||
attack_verb = "slash"
|
||||
else
|
||||
attack_verb = "punch"
|
||||
|
||||
if (prob(90))
|
||||
if (M.mutations & HULK)//HULK SMASH
|
||||
damage += 14
|
||||
@@ -642,10 +653,9 @@
|
||||
step_away(src,M,15)
|
||||
sleep(3)
|
||||
step_away(src,M,15)
|
||||
|
||||
playsound(loc, "punch", 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has punched []!</B>", M, src), 1)
|
||||
visible_message("\red <B>[M] has [attack_verb]ed [src]!</B>")
|
||||
if (damage > 9||prob(5))//Regular humans have a very small chance of weakening an alien.
|
||||
if (weakened < 10)
|
||||
weakened = rand(1,5)
|
||||
@@ -658,7 +668,7 @@
|
||||
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has attempted to punch []!</B>", M, src), 1)
|
||||
O.show_message(text("\red <B>[] has attempted to [attack_verb] []!</B>", M, src), 1)
|
||||
|
||||
if ("disarm")
|
||||
if (!lying)
|
||||
|
||||
@@ -249,7 +249,9 @@
|
||||
else
|
||||
m_select.screen_loc = null
|
||||
|
||||
if (alien_invis)
|
||||
if(client && client.admin_invis)
|
||||
invisibility = 100
|
||||
else if (alien_invis)
|
||||
invisibility = 2
|
||||
if(istype(loc, /turf))//If they are standing on a turf.
|
||||
AddCamoOverlay(loc)//Overlay camo.
|
||||
@@ -414,6 +416,14 @@
|
||||
|
||||
else
|
||||
var/damage = rand(1, 9)
|
||||
var/attack_verb
|
||||
switch(M.mutantrace)
|
||||
if("lizard")
|
||||
attack_verb = "scratch"
|
||||
if("plant")
|
||||
attack_verb = "slash"
|
||||
else
|
||||
attack_verb = "punch"
|
||||
if (prob(90))
|
||||
if (M.mutations & HULK)
|
||||
damage += 5
|
||||
@@ -425,7 +435,7 @@
|
||||
playsound(loc, "punch", 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has punched []!</B>", M, src), 1)
|
||||
O.show_message(text("\red <B>[] has [attack_verb]ed []!</B>", M, src), 1)
|
||||
if (damage > 4.9)
|
||||
if (weakened < 10)
|
||||
weakened = rand(10, 15)
|
||||
@@ -438,7 +448,7 @@
|
||||
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has attempted to punch []!</B>", M, src), 1)
|
||||
O.show_message(text("\red <B>[] has attempted to [attack_verb] []!</B>", M, src), 1)
|
||||
return
|
||||
|
||||
/mob/living/carbon/alien/larva/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
|
||||
|
||||
@@ -30,8 +30,11 @@
|
||||
else
|
||||
usr << "\blue [src.name] has a \icon[src.wear_suit] [src.wear_suit.name] on."
|
||||
|
||||
if (src.ears)
|
||||
usr << "\blue [src.name] has a \icon[src.ears] [src.ears.name] by [t_his] mouth."
|
||||
if (src.l_ear)
|
||||
usr << "\blue [src.name] has a \icon[src.l_ear] [src.l_ear.name] on [t_his] left ear."
|
||||
|
||||
if (src.r_ear)
|
||||
usr << "\blue [src.name] has a \icon[src.r_ear] [src.r_ear.name] on [t_his] right ear."
|
||||
|
||||
if (src.wear_mask)
|
||||
if (src.wear_mask.blood_DNA)
|
||||
|
||||
@@ -271,10 +271,20 @@
|
||||
src.other += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "ears"
|
||||
using.name = "l_ear"
|
||||
using.dir = EAST
|
||||
using.icon = ui_style
|
||||
using.icon_state = "ears"
|
||||
using.screen_loc = ui_ears
|
||||
using.screen_loc = ui_lear
|
||||
using.layer = 19
|
||||
src.other += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "r_ear"
|
||||
using.dir = WEST
|
||||
using.icon = ui_style
|
||||
using.icon_state = "ears"
|
||||
using.screen_loc = ui_rear
|
||||
using.layer = 19
|
||||
src.other += using
|
||||
|
||||
|
||||
@@ -30,7 +30,8 @@
|
||||
var/obj/item/clothing/gloves/gloves = null
|
||||
var/obj/item/clothing/glasses/glasses = null
|
||||
var/obj/item/clothing/head/head = null
|
||||
var/obj/item/clothing/ears/ears = null
|
||||
var/obj/item/clothing/ears/l_ear = null
|
||||
var/obj/item/clothing/ears/r_ear = null
|
||||
var/obj/item/weapon/card/id/wear_id = null
|
||||
var/obj/item/weapon/r_store = null
|
||||
var/obj/item/weapon/l_store = null
|
||||
@@ -252,7 +253,7 @@
|
||||
b_loss = b_loss/1.5
|
||||
f_loss = f_loss/1.5
|
||||
|
||||
if (!istype(ears, /obj/item/clothing/ears/earmuffs))
|
||||
if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
|
||||
ear_damage += 30
|
||||
ear_deaf += 120
|
||||
|
||||
@@ -260,7 +261,7 @@
|
||||
b_loss += 30
|
||||
if (!prob(getarmor(null, "bomb")))
|
||||
b_loss = b_loss/2
|
||||
if (!istype(ears, /obj/item/clothing/ears/earmuffs))
|
||||
if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
|
||||
ear_damage += 15
|
||||
ear_deaf += 60
|
||||
if (prob(50) && !shielded)
|
||||
@@ -363,8 +364,10 @@
|
||||
del(face_standing)
|
||||
del(face_lying)
|
||||
|
||||
else if (W == ears)
|
||||
ears = null
|
||||
else if (W == l_ear)
|
||||
l_ear = null
|
||||
else if (W == r_ear)
|
||||
r_ear = null
|
||||
else if (W == shoes)
|
||||
shoes = null
|
||||
else if (W == belt)
|
||||
@@ -523,15 +526,41 @@
|
||||
if(istype(W,/obj/item/clothing/head/kitty))
|
||||
W.update_icon(src)
|
||||
W.equipped(src, text)
|
||||
if("ears")
|
||||
if (ears)
|
||||
if("l_ear")
|
||||
if (l_ear)
|
||||
if (emptyHand)
|
||||
ears.DblClick()
|
||||
l_ear.DblClick()
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/ears) ) && !( istype(W, /obj/item/device/radio/headset) ))
|
||||
else if(emptyHand)
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/ears) ) && !( istype(W, /obj/item/device/radio/headset) ) && W.w_class != 1)
|
||||
return
|
||||
if(istype(W,/obj/item/clothing/ears) && W:twoeared && r_ear)
|
||||
return
|
||||
u_equip(W)
|
||||
ears = W
|
||||
l_ear = W
|
||||
if(istype(W,/obj/item/clothing/ears) && W:twoeared)
|
||||
var/obj/item/clothing/ears/offear/O = new(W)
|
||||
O.loc = src
|
||||
equip_if_possible(O, slot_ears)
|
||||
W.equipped(src, text)
|
||||
if("r_ear")
|
||||
if (r_ear)
|
||||
if (emptyHand)
|
||||
r_ear.DblClick()
|
||||
return
|
||||
else if(emptyHand)
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/ears) ) && !( istype(W, /obj/item/device/radio/headset) ) && W.w_class != 1)
|
||||
return
|
||||
if(istype(W,/obj/item/clothing/ears) && W:twoeared && l_ear)
|
||||
return
|
||||
u_equip(W)
|
||||
r_ear = W
|
||||
if(istype(W,/obj/item/clothing/ears) && W:twoeared)
|
||||
var/obj/item/clothing/ears/offear/O = new(W)
|
||||
O.loc = src
|
||||
equip_if_possible(O, slot_ears)
|
||||
W.equipped(src, text)
|
||||
if("i_clothing")
|
||||
if (w_uniform)
|
||||
@@ -865,8 +894,11 @@
|
||||
var/t1 = glasses.icon_state
|
||||
overlays += image("icon" = 'eyes.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||
// Ears
|
||||
if (ears)
|
||||
var/t1 = ears.icon_state
|
||||
if (l_ear)
|
||||
var/t1 = l_ear.icon_state
|
||||
overlays += image("icon" = 'ears.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||
if (r_ear)
|
||||
var/t1 = r_ear.icon_state
|
||||
overlays += image("icon" = 'ears.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||
// Shoes
|
||||
if (shoes)
|
||||
@@ -928,9 +960,9 @@
|
||||
if (wear_suit)
|
||||
if (wear_suit.blood_DNA)
|
||||
var/icon/stain_icon = null
|
||||
if (istype(wear_suit, /obj/item/clothing/suit/armor/vest || /obj/item/clothing/suit/wcoat))
|
||||
if (istype(wear_suit, /obj/item/clothing/suit/armor/vest || /obj/item/clothing/suit/storage/wcoat))
|
||||
stain_icon = icon('blood.dmi', "armorblood[!lying ? "" : "2"]")
|
||||
else if (istype(wear_suit, /obj/item/clothing/suit/det_suit || /obj/item/clothing/suit/labcoat))
|
||||
else if (istype(wear_suit, /obj/item/clothing/suit/storage/det_suit || /obj/item/clothing/suit/storage/labcoat))
|
||||
stain_icon = icon('blood.dmi', "coatblood[!lying ? "" : "2"]")
|
||||
else
|
||||
stain_icon = icon('blood.dmi', "suitblood[!lying ? "" : "2"]")
|
||||
@@ -974,6 +1006,8 @@
|
||||
if(istype(head,/obj/item/clothing/head/kitty))
|
||||
head_icon = (( lying ) ? head:mob2 : head:mob)
|
||||
overlays += image("icon" = head_icon, "layer" = MOB_LAYER)
|
||||
if(gimmick_hat)
|
||||
overlays += image("icon" = icon('gimmick_head.dmi', "[gimmick_hat][!lying ? "" : "2"]"), "layer" = MOB_LAYER)
|
||||
if (head.blood_DNA)
|
||||
var/icon/stain_icon = icon('blood.dmi', "helmetblood[!lying ? "" : "2"]")
|
||||
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
||||
@@ -1080,6 +1114,14 @@
|
||||
NinjaStealthMalf()
|
||||
else
|
||||
invisibility = 0
|
||||
|
||||
if(client && client.admin_invis)
|
||||
invisibility = 100
|
||||
else if (shielded == 2)
|
||||
invisibility = 2
|
||||
else
|
||||
invisibility = 0
|
||||
|
||||
/*
|
||||
for (var/mob/M in viewers(1, src))//For the love of god DO NOT REFRESH EVERY SECOND - Mport
|
||||
if ((M.client && M.machine == src))
|
||||
@@ -1413,11 +1455,16 @@
|
||||
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("ears")
|
||||
if(istype(target.ears, /obj/item/clothing)&&!target.ears:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.ears, 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 ears!</B>", source, target.ears, target)
|
||||
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)
|
||||
@@ -1643,12 +1690,19 @@ It can still be worn/put on as normal.
|
||||
item.layer = 20
|
||||
target.head = item
|
||||
item.loc = target
|
||||
if("ears")
|
||||
if (target.ears)
|
||||
if(istype(target.ears, /obj/item/clothing)&& !target.ears:canremove)
|
||||
if("l_ear")
|
||||
if (target.l_ear)
|
||||
if(istype(target.l_ear, /obj/item/clothing)&& !target.l_ear:canremove)
|
||||
return
|
||||
var/obj/item/W = target.ears
|
||||
var/obj/item/W = target.l_ear
|
||||
target.u_equip(W)
|
||||
|
||||
if(istype(W,/obj/item/clothing/ears/offear))
|
||||
W = target.r_ear
|
||||
if(istype(W, /obj/item/clothing/ears) && W:twoeared)
|
||||
if (target.client)
|
||||
target.client.screen -= target.r_ear
|
||||
target.u_equip(target.r_ear)
|
||||
if (target.client)
|
||||
target.client.screen -= W
|
||||
if (W)
|
||||
@@ -1657,18 +1711,53 @@ It can still be worn/put on as normal.
|
||||
W.layer = initial(W.layer)
|
||||
W.add_fingerprint(source)
|
||||
else
|
||||
if (istype(item, /obj/item/clothing/ears))
|
||||
if (istype(item, /obj/item/clothing/ears) || istype(item, /obj/item/device/radio/headset) || item.w_class == 1)
|
||||
source.drop_item()
|
||||
loc = target
|
||||
item.layer = 20
|
||||
target.ears = item
|
||||
item.loc = target
|
||||
else if (istype(item, /obj/item/device/radio/headset))
|
||||
if(istype(item, /obj/item/clothing/ears) && item:twoeared && target.r_ear)
|
||||
loc = target.loc
|
||||
else
|
||||
loc = target
|
||||
item.layer = 20
|
||||
target.l_ear = item
|
||||
item.loc = target
|
||||
if(istype(item, /obj/item/clothing/ears) && item:twoeared)
|
||||
var/obj/item/clothing/ears/offear/O = new(item)
|
||||
O.loc = target
|
||||
target.equip_if_possible(O, target.slot_ears)
|
||||
if("r_ear")
|
||||
if (target.r_ear)
|
||||
if(istype(target.r_ear, /obj/item/clothing)&& !target.r_ear:canremove)
|
||||
return
|
||||
var/obj/item/W = target.r_ear
|
||||
target.u_equip(W)
|
||||
|
||||
if(istype(W,/obj/item/clothing/ears/offear))
|
||||
W = target.l_ear
|
||||
if(istype(W, /obj/item/clothing/ears) && W:twoeared)
|
||||
if (target.client)
|
||||
target.client.screen -= target.r_ear
|
||||
target.u_equip(target.l_ear)
|
||||
if (target.client)
|
||||
target.client.screen -= W
|
||||
if (W)
|
||||
W.loc = target.loc
|
||||
W.dropped(target)
|
||||
W.layer = initial(W.layer)
|
||||
W.add_fingerprint(source)
|
||||
else
|
||||
if (istype(item, /obj/item/clothing/ears) || istype(item, /obj/item/device/radio/headset) || item.w_class == 1)
|
||||
source.drop_item()
|
||||
loc = target
|
||||
item.layer = 20
|
||||
target.ears = item
|
||||
item.loc = target
|
||||
if(istype(item, /obj/item/clothing/ears) && item:twoeared && target.r_ear)
|
||||
loc = target.loc
|
||||
else
|
||||
loc = target
|
||||
item.layer = 20
|
||||
target.r_ear = item
|
||||
item.loc = target
|
||||
if(istype(item, /obj/item/clothing/ears) && item:twoeared)
|
||||
var/obj/item/clothing/ears/offear/O = new/obj/item/clothing/ears/offear(item)
|
||||
O.loc = target
|
||||
target.equip_if_possible(O, target.slot_ears)
|
||||
if("shoes")
|
||||
if (target.shoes)
|
||||
if(istype(target.shoes, /obj/item/clothing)&& !target.shoes:canremove)
|
||||
@@ -1975,7 +2064,8 @@ It can still be worn/put on as normal.
|
||||
<BR><B>Right Hand:</B> <A href='?src=\ref[src];item=r_hand'>[(r_hand ? r_hand : "Nothing")]</A>
|
||||
<BR><B>Gloves:</B> <A href='?src=\ref[src];item=gloves'>[(gloves ? gloves : "Nothing")]</A>
|
||||
<BR><B>Eyes:</B> <A href='?src=\ref[src];item=eyes'>[(glasses ? glasses : "Nothing")]</A>
|
||||
<BR><B>Ears:</B> <A href='?src=\ref[src];item=ears'>[(ears ? ears : "Nothing")]</A>
|
||||
<BR><B>Left Ear:</B> <A href='?src=\ref[src];item=l_ear'>[(l_ear ? l_ear : "Nothing")]</A>
|
||||
<BR><B>Right Ear:</B> <A href='?src=\ref[src];item=r_ear'>[(r_ear ? r_ear : "Nothing")]</A>
|
||||
<BR><B>Head:</B> <A href='?src=\ref[src];item=head'>[(head ? head : "Nothing")]</A>
|
||||
<BR><B>Shoes:</B> <A href='?src=\ref[src];item=shoes'>[(shoes ? shoes : "Nothing")]</A>
|
||||
<BR><B>Belt:</B> <A href='?src=\ref[src];item=belt'>[(belt ? belt : "Nothing")]</A>
|
||||
@@ -2199,7 +2289,7 @@ It can still be worn/put on as normal.
|
||||
|
||||
|
||||
/mob/living/carbon/human/abiotic(var/full_body = 0)
|
||||
if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.ears || src.gloves)))
|
||||
if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.l_ear || src.r_ear || src.gloves)))
|
||||
return 1
|
||||
|
||||
if((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )))
|
||||
|
||||
@@ -73,10 +73,19 @@
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='red'>Punched [src.name] ([src.ckey])</font>")
|
||||
src.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been punched by [M.name] ([M.ckey])</font>")
|
||||
|
||||
var/attack_verb
|
||||
switch(M.mutantrace)
|
||||
if("lizard")
|
||||
attack_verb = "scratch"
|
||||
if("plant")
|
||||
attack_verb = "slash"
|
||||
else
|
||||
attack_verb = "punch"
|
||||
|
||||
var/damage = rand(0, 9)
|
||||
if(!damage)
|
||||
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
|
||||
visible_message("\red <B>[M] has attempted to punch [src]!</B>")
|
||||
visible_message("\red <B>[M] has attempted to [attack_verb] [src]!</B>")
|
||||
return 0
|
||||
var/datum/organ/external/affecting = get_organ(ran_zone(M.zone_sel.selecting))
|
||||
var/armor_block = run_armor_check(affecting, "melee")
|
||||
@@ -84,7 +93,7 @@
|
||||
if(M.mutations & HULK) damage += 5
|
||||
playsound(loc, "punch", 25, 1, -1)
|
||||
|
||||
visible_message("\red <B>[M] has punched [src]!</B>")
|
||||
visible_message("\red <B>[M] has [attack_verb]ed [src]!</B>")
|
||||
|
||||
apply_damage(damage, BRUTE, affecting, armor_block)
|
||||
if(damage >= 9)
|
||||
|
||||
@@ -551,9 +551,12 @@
|
||||
if(glasses)
|
||||
if(glasses.protective_temperature > temp)
|
||||
fire_prot += (glasses.protective_temperature/10)
|
||||
if(ears)
|
||||
if(ears.protective_temperature > temp)
|
||||
fire_prot += (ears.protective_temperature/10)
|
||||
if(l_ear)
|
||||
if(l_ear.protective_temperature > temp)
|
||||
fire_prot += (l_ear.protective_temperature/10)
|
||||
if(r_ear)
|
||||
if(r_ear.protective_temperature > temp)
|
||||
fire_prot += (r_ear.protective_temperature/10)
|
||||
if(wear_suit)
|
||||
if(wear_suit.protective_temperature > temp)
|
||||
fire_prot += (wear_suit.protective_temperature/10)
|
||||
@@ -730,7 +733,7 @@
|
||||
|
||||
if ((sdisabilities & 1 || istype(glasses, /obj/item/clothing/glasses/blindfold)))
|
||||
blinded = 1
|
||||
if ((sdisabilities & 4 || istype(ears, /obj/item/clothing/ears/earmuffs)))
|
||||
if ((sdisabilities & 4 || istype(l_ear, /obj/item/clothing/ears/earmuffs) || istype(r_ear, /obj/item/clothing/ears/earmuffs)))
|
||||
ear_deaf = 1
|
||||
|
||||
if (eye_blurry > 0)
|
||||
|
||||
@@ -494,6 +494,15 @@
|
||||
else
|
||||
var/damage = rand(1, 9)
|
||||
|
||||
var/attack_verb
|
||||
switch(M.mutantrace)
|
||||
if("lizard")
|
||||
attack_verb = "scratch"
|
||||
if("plant")
|
||||
attack_verb = "slash"
|
||||
else
|
||||
attack_verb = "punch"
|
||||
|
||||
attacked += 10
|
||||
if (prob(90))
|
||||
if (M.mutations & HULK)
|
||||
@@ -513,7 +522,7 @@
|
||||
playsound(loc, "punch", 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has punched []!</B>", M, src), 1)
|
||||
O.show_message(text("\red <B>[] has [attack_verb]ed []!</B>", M, src), 1)
|
||||
|
||||
bruteloss += damage
|
||||
updatehealth()
|
||||
@@ -521,7 +530,7 @@
|
||||
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has attempted to punch []!</B>", M, src), 1)
|
||||
O.show_message(text("\red <B>[] has attempted to [attack_verb] []!</B>", M, src), 1)
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -248,10 +248,19 @@
|
||||
src.other += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "ears"
|
||||
using.name = "left ear"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "ears"
|
||||
using.screen_loc = ui_ears
|
||||
using.screen_loc = ui_lear
|
||||
using.layer = 19
|
||||
using.overlays += blocked
|
||||
src.other += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "right ear"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "ears"
|
||||
using.screen_loc = ui_rear
|
||||
using.layer = 19
|
||||
using.overlays += blocked
|
||||
src.other += using
|
||||
|
||||
@@ -179,10 +179,19 @@
|
||||
help_shake_act(M)
|
||||
else
|
||||
if (M.a_intent == "hurt")
|
||||
var/attack_verb
|
||||
switch(M.mutantrace)
|
||||
if("lizard")
|
||||
attack_verb = "scratch"
|
||||
if("plant")
|
||||
attack_verb = "slash"
|
||||
else
|
||||
attack_verb = "punch"
|
||||
|
||||
if ((prob(75) && health > 0))
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has punched [name]!</B>", M), 1)
|
||||
O.show_message(text("\red <B>[] has [attack_verb]ed [name]!</B>", M), 1)
|
||||
|
||||
playsound(loc, "punch", 25, 1, -1)
|
||||
var/damage = rand(5, 10)
|
||||
@@ -201,7 +210,7 @@
|
||||
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has attempted to punch [name]!</B>", M), 1)
|
||||
O.show_message(text("\red <B>[] has attempted to [attack_verb] [name]!</B>", M), 1)
|
||||
else
|
||||
if (M.a_intent == "grab")
|
||||
if (M == src)
|
||||
@@ -406,6 +415,11 @@
|
||||
else
|
||||
icon_state = "monkey0"
|
||||
|
||||
if(client && client.admin_invis)
|
||||
invisibility = 100
|
||||
else
|
||||
invisibility = 0
|
||||
|
||||
if (wear_mask)
|
||||
if (istype(wear_mask, /obj/item/clothing/mask))
|
||||
var/t1 = wear_mask.icon_state
|
||||
|
||||
@@ -3,8 +3,12 @@
|
||||
if (issilicon(src)) return 1
|
||||
if (!ishuman(src)) return
|
||||
var/mob/living/carbon/human/H = src
|
||||
if (H.ears)
|
||||
var/obj/item/device/radio/headset/dongle = H.ears
|
||||
if (H.l_ear || H.r_ear)
|
||||
var/obj/item/device/radio/headset/dongle
|
||||
if(istype(H.l_ear,/obj/item/device/radio/headset))
|
||||
dongle = H.l_ear
|
||||
else
|
||||
dongle = H.r_ear
|
||||
if(!istype(dongle)) return
|
||||
if(dongle.translate_binary) return 1
|
||||
|
||||
@@ -12,8 +16,12 @@
|
||||
if (isalien(src)) return 1
|
||||
if (!ishuman(src)) return
|
||||
var/mob/living/carbon/human/H = src
|
||||
if (H.ears)
|
||||
var/obj/item/device/radio/headset/dongle = H.ears
|
||||
if (H.l_ear || H.r_ear)
|
||||
var/obj/item/device/radio/headset/dongle
|
||||
if(istype(H.l_ear,/obj/item/device/radio/headset))
|
||||
dongle = H.l_ear
|
||||
else
|
||||
dongle = H.r_ear
|
||||
if(!istype(dongle)) return
|
||||
if(dongle.translate_hive) return 1
|
||||
|
||||
@@ -75,8 +83,8 @@
|
||||
var/channel_prefix = copytext(message, 1, 3)
|
||||
|
||||
var/list/keys = list(
|
||||
":r" = "right hand",
|
||||
":l" = "left hand",
|
||||
":r" = "right ear",
|
||||
":l" = "left ear",
|
||||
":i" = "intercom",
|
||||
":h" = "department",
|
||||
":c" = "Command",
|
||||
@@ -156,33 +164,39 @@
|
||||
|
||||
switch (message_mode)
|
||||
if ("headset")
|
||||
if (src:ears)
|
||||
src:ears.talk_into(src, message)
|
||||
used_radios += src:ears
|
||||
if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
|
||||
src:l_ear.talk_into(src, message)
|
||||
used_radios += src:l_ear
|
||||
else if (src:r_ear)
|
||||
src:r_ear.talk_into(src, message)
|
||||
used_radios += src:r_ear
|
||||
|
||||
message_range = 1
|
||||
italics = 1
|
||||
|
||||
if ("secure headset")
|
||||
if (src:ears)
|
||||
src:ears.talk_into(src, message, 1)
|
||||
used_radios += src:ears
|
||||
if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
|
||||
src:l_ear.talk_into(src, message, 1)
|
||||
used_radios += src:l_ear
|
||||
else if (src:r_ear)
|
||||
src:r_ear.talk_into(src, message, 1)
|
||||
used_radios += src:r_ear
|
||||
|
||||
message_range = 1
|
||||
italics = 1
|
||||
|
||||
if ("right hand")
|
||||
if (r_hand)
|
||||
r_hand.talk_into(src, message)
|
||||
used_radios += src:r_hand
|
||||
if ("right ear")
|
||||
if (src:r_ear)
|
||||
src:r_ear.talk_into(src, message)
|
||||
used_radios += src:r_ear
|
||||
|
||||
message_range = 1
|
||||
italics = 1
|
||||
|
||||
if ("left hand")
|
||||
if (l_hand)
|
||||
l_hand.talk_into(src, message)
|
||||
used_radios += src:l_hand
|
||||
if ("left ear")
|
||||
if (src:l_ear)
|
||||
src:l_ear.talk_into(src, message)
|
||||
used_radios += src:l_ear
|
||||
|
||||
message_range = 1
|
||||
italics = 1
|
||||
@@ -213,9 +227,12 @@
|
||||
return
|
||||
|
||||
if ("department")
|
||||
if (src:ears)
|
||||
src:ears.talk_into(src, message, message_mode)
|
||||
used_radios += src:ears
|
||||
if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
|
||||
src:l_ear.talk_into(src, message, message_mode)
|
||||
used_radios += src:l_ear
|
||||
else if (src:r_ear)
|
||||
src:r_ear.talk_into(src, message, message_mode)
|
||||
used_radios += src:r_ear
|
||||
message_range = 1
|
||||
italics = 1
|
||||
if ("pAI")
|
||||
@@ -234,9 +251,12 @@
|
||||
else
|
||||
//world << "SPECIAL HEADSETS"
|
||||
if (message_mode in radiochannels)
|
||||
if (src:ears)
|
||||
src:ears.talk_into(src, message, message_mode)
|
||||
used_radios += src:ears
|
||||
if (src:l_ear && istype(src:l_ear,/obj/item/device/radio))
|
||||
src:l_ear.talk_into(src, message, message_mode)
|
||||
used_radios += src:l_ear
|
||||
else if (src:r_ear)
|
||||
src:r_ear.talk_into(src, message, message_mode)
|
||||
used_radios += src:r_ear
|
||||
message_range = 1
|
||||
italics = 1
|
||||
/////SPECIAL HEADSETS END
|
||||
|
||||
@@ -700,11 +700,17 @@
|
||||
alert(src,"You have been banned.\nReason : [isbanned]","Ban","Ok")
|
||||
del(src)
|
||||
|
||||
/*
|
||||
if (!guests_allowed && IsGuestKey(key))
|
||||
log_access("Failed Login: [src] - Guests not allowed")
|
||||
message_admins("\blue Failed Login: [src] - Guests not allowed")
|
||||
alert(src,"You cannot play here.\nReason : Guests not allowed","Guests not allowed","Ok")
|
||||
del(src)
|
||||
*/
|
||||
|
||||
if(IsGuestKey(src.key))
|
||||
alert(src,"Baystation12 doesn't allow guest accounts to play. Please go to http://www.byond.com/ and register for a key.","Guest","OK")
|
||||
del(src)
|
||||
|
||||
if (((world.address == address || !(address)) && !(host)))
|
||||
host = key
|
||||
@@ -803,6 +809,8 @@
|
||||
else
|
||||
gibs(loc, viruses)
|
||||
sleep(15)
|
||||
for(var/obj/item/I in src.contents)
|
||||
I.loc = get_turf(src)
|
||||
del(src)
|
||||
|
||||
/*
|
||||
@@ -838,6 +846,8 @@ Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N
|
||||
sleep(15)
|
||||
if(isrobot(src)&&src:mmi)//Is a robot and it has an mmi.
|
||||
del(src:mmi)//Delete the MMI first so that it won't go popping out.
|
||||
for(var/obj/item/I in src.contents)
|
||||
I.loc = get_turf(src)
|
||||
del(src)
|
||||
|
||||
/*
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
special_check(var/mob/living/carbon/human/M)
|
||||
/* if(ishuman(M))
|
||||
if(istype(M.w_uniform, /obj/item/clothing/under/det) && istype(M.head, /obj/item/clothing/head/det_hat) && istype(M.wear_suit, /obj/item/clothing/suit/det_suit))
|
||||
if(istype(M.w_uniform, /obj/item/clothing/under/det) && istype(M.head, /obj/item/clothing/head/det_hat) && istype(M.wear_suit, /obj/item/clothing/suit/storage/det_suit))
|
||||
return 1
|
||||
M << "\red You just don't feel cool enough to use this gun looking like that."
|
||||
return 0 */
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
else
|
||||
else if (!isnull(I)) // As per code/game/atom_procs.dm, this shouldn't even be required, but for some reason is. -- Abi79
|
||||
user.drop_item()
|
||||
|
||||
I.loc = src
|
||||
|
||||
@@ -442,7 +442,7 @@ datum
|
||||
build_path = "/obj/item/weapon/aiModule/asimov"
|
||||
|
||||
nanotrasen
|
||||
name = "Core Module Design (Nanotrasen)"
|
||||
name = "Core Module Design (NT Default)"
|
||||
desc = "Allows for the construction of a NanoTrasen AI Core Module."
|
||||
id = "nanotrasen_module"
|
||||
req_tech = list("programming" = 3, "materials" = 6)
|
||||
|
||||
Reference in New Issue
Block a user