mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Merge remote-tracking branch 'VOREStation/master' into upstream-merge-7576
This commit is contained in:
@@ -70,7 +70,9 @@
|
||||
// Restricted, military, or mercenary aligned locations like the armory, the merc ship/base, BSD, etc.
|
||||
#define AMBIENCE_HIGHSEC list(\
|
||||
'sound/ambience/highsec/highsec1.ogg',\
|
||||
'sound/ambience/highsec/highsec2.ogg'\
|
||||
'sound/ambience/highsec/highsec2.ogg',\
|
||||
'sound/ambience/highsec/highsec3.ogg',\
|
||||
'sound/ambience/highsec/highsec4.ogg'\
|
||||
)
|
||||
|
||||
// Ruined structures found on the surface or in the caves.
|
||||
@@ -108,14 +110,19 @@
|
||||
#define AMBIENCE_GENERIC list(\
|
||||
'sound/ambience/generic/generic1.ogg',\
|
||||
'sound/ambience/generic/generic2.ogg',\
|
||||
'sound/ambience/generic/generic3.ogg',\
|
||||
'sound/ambience/generic/generic4.ogg'\
|
||||
'sound/ambience/generic/generic3.ogg'\
|
||||
)
|
||||
// 'sound/ambience/generic/generic4.ogg'\ // VOREStation Edit: Comment out entry 4 as this doesn't fit on Virgo, and we have our own weather system.
|
||||
|
||||
// Sounds of PA announcements, presumably involving shuttles?
|
||||
#define AMBIENCE_ARRIVALS list(\
|
||||
'sound/ambience/arrivals/arrivals1.ogg',\
|
||||
'sound/ambience/arrivals/arrivals2.ogg'\
|
||||
'sound/ambience/arrivals/arrivals2.ogg',\
|
||||
'sound/ambience/arrivals/arrivals3.ogg',\
|
||||
'sound/ambience/arrivals/arrivals4.ogg',\
|
||||
'sound/ambience/arrivals/arrivals5.ogg',\
|
||||
'sound/ambience/arrivals/arrivals6.ogg',\
|
||||
'sound/ambience/arrivals/arrivals7.ogg'\
|
||||
)
|
||||
|
||||
// Sounds suitable for being inside dark, tight corridors in the underbelly of the station.
|
||||
@@ -124,7 +131,11 @@
|
||||
'sound/ambience/maintenance/maintenance2.ogg',\
|
||||
'sound/ambience/maintenance/maintenance3.ogg',\
|
||||
'sound/ambience/maintenance/maintenance4.ogg',\
|
||||
'sound/ambience/maintenance/maintenance5.ogg'\
|
||||
'sound/ambience/maintenance/maintenance5.ogg',\
|
||||
'sound/ambience/maintenance/maintenance6.ogg',\
|
||||
'sound/ambience/maintenance/maintenance7.ogg',\
|
||||
'sound/ambience/maintenance/maintenance8.ogg',\
|
||||
'sound/ambience/maintenance/maintenance9.ogg'\
|
||||
)
|
||||
|
||||
// Life support machinery at work, keeping everyone breathing.
|
||||
@@ -136,7 +147,9 @@
|
||||
|
||||
// Creepy AI/borg stuff.
|
||||
#define AMBIENCE_AI list(\
|
||||
'sound/ambience/ai/ai1.ogg'\
|
||||
'sound/ambience/ai/ai1.ogg',\
|
||||
'sound/ambience/ai/ai2.ogg',\
|
||||
'sound/ambience/ai/ai3.ogg'\
|
||||
)
|
||||
|
||||
// Peaceful sounds when floating in the void.
|
||||
@@ -179,4 +192,32 @@
|
||||
// For the memes.
|
||||
#define AMBIENCE_AESTHETIC list(\
|
||||
'sound/ambience/vaporwave.ogg'\
|
||||
)
|
||||
|
||||
#define AMBIENCE_OUTPOST list(\
|
||||
'sound/ambience/expoutpost/expoutpost1.ogg',\
|
||||
'sound/ambience/expoutpost/expoutpost2.ogg',\
|
||||
'sound/ambience/expoutpost/expoutpost3.ogg',\
|
||||
'sound/ambience/expoutpost/expoutpost4.ogg'\
|
||||
)
|
||||
|
||||
#define AMBIENCE_SUBSTATION list(\
|
||||
'sound/ambience/substation/substation1.ogg',\
|
||||
'sound/ambience/substation/substation2.ogg'\
|
||||
)
|
||||
|
||||
#define AMBIENCE_HANGAR list(\
|
||||
'sound/ambience/hangar/hangar1.ogg',\
|
||||
'sound/ambience/hangar/hangar2.ogg',\
|
||||
'sound/ambience/hangar/hangar3.ogg',\
|
||||
'sound/ambience/hangar/hangar4.ogg',\
|
||||
'sound/ambience/hangar/hangar5.ogg',\
|
||||
'sound/ambience/hangar/hangar6.ogg'\
|
||||
)
|
||||
|
||||
#define AMBIENCE_ATMOS list(\
|
||||
'sound/ambience/engineering/engineering1.ogg',\
|
||||
'sound/ambience/engineering/engineering2.ogg',\
|
||||
'sound/ambience/engineering/engineering3.ogg',\
|
||||
'sound/ambience/atmospherics/atmospherics1.ogg'\
|
||||
)
|
||||
@@ -49,6 +49,7 @@
|
||||
#define DIGSITE_TECHNICAL 4
|
||||
#define DIGSITE_TEMPLE 5
|
||||
#define DIGSITE_WAR 6
|
||||
#define DIGSITE_MIDDEN 7
|
||||
|
||||
#define EFFECT_TOUCH 0
|
||||
#define EFFECT_AURA 1
|
||||
|
||||
@@ -205,16 +205,18 @@ var/list/gamemode_cache = list()
|
||||
|
||||
var/static/enter_allowed = 1
|
||||
|
||||
var/static/use_irc_bot = 0
|
||||
var/static/use_node_bot = 0
|
||||
var/static/irc_bot_port = 0
|
||||
var/static/irc_bot_host = ""
|
||||
var/static/irc_bot_export = 0 // whether the IRC bot in use is a Bot32 (or similar) instance; Bot32 uses world.Export() instead of nudge.py/libnudge
|
||||
var/static/main_irc = ""
|
||||
var/static/admin_irc = ""
|
||||
var/static/python_path = "" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix
|
||||
var/static/use_lib_nudge = 0 //Use the C library nudge instead of the python nudge.
|
||||
var/static/use_overmap = 0
|
||||
var/use_irc_bot = 0
|
||||
var/use_node_bot = 0
|
||||
var/irc_bot_port = 0
|
||||
var/irc_bot_host = ""
|
||||
var/irc_bot_export = 0 // whether the IRC bot in use is a Bot32 (or similar) instance; Bot32 uses world.Export() instead of nudge.py/libnudge
|
||||
var/main_irc = ""
|
||||
var/admin_irc = ""
|
||||
var/python_path = "" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix
|
||||
var/use_lib_nudge = 0 //Use the C library nudge instead of the python nudge.
|
||||
var/use_overmap = 0
|
||||
|
||||
var/static/list/engine_map // Comma separated list of engines to choose from. Blank means fully random.
|
||||
|
||||
// Event settings
|
||||
var/static/expected_round_length = 3 * 60 * 60 * 10 // 3 hours
|
||||
@@ -787,6 +789,9 @@ var/list/gamemode_cache = list()
|
||||
|
||||
if("use_overmap")
|
||||
config.use_overmap = 1
|
||||
|
||||
if("engine_map")
|
||||
config.engine_map = splittext(value, ",")
|
||||
/*
|
||||
if("station_levels")
|
||||
using_map.station_levels = text2numlist(value, ";")
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
//
|
||||
|
||||
/datum/configuration
|
||||
var/static/list/engine_map // Comma separated list of engines to choose from. Blank means fully random.
|
||||
var/static/time_off = FALSE
|
||||
var/static/pto_job_change = FALSE
|
||||
var/static/limit_interns = -1 //Unlimited by default
|
||||
@@ -42,8 +41,6 @@
|
||||
config.chat_webhook_url = value
|
||||
if ("chat_webhook_key")
|
||||
config.chat_webhook_key = value
|
||||
if ("engine_map")
|
||||
config.engine_map = splittext(value, ",")
|
||||
if ("fax_export_dir")
|
||||
config.fax_export_dir = value
|
||||
if ("items_survive_digestion")
|
||||
|
||||
@@ -6,6 +6,12 @@ SUBSYSTEM_DEF(mapping)
|
||||
|
||||
var/list/map_templates = list()
|
||||
var/dmm_suite/maploader = null
|
||||
var/obj/effect/landmark/engine_loader/engine_loader
|
||||
var/list/shelter_templates = list()
|
||||
|
||||
/datum/controller/subsystem/mapping/Recover()
|
||||
flags |= SS_NO_INIT // Make extra sure we don't initialize twice.
|
||||
shelter_templates = SSmapping.shelter_templates
|
||||
|
||||
/datum/controller/subsystem/mapping/Initialize(timeofday)
|
||||
if(subsystem_initialized)
|
||||
@@ -17,7 +23,15 @@ SUBSYSTEM_DEF(mapping)
|
||||
if(config.generate_map)
|
||||
// Map-gen is still very specific to the map, however putting it here should ensure it loads in the correct order.
|
||||
using_map.perform_map_generation()
|
||||
|
||||
|
||||
loadEngine()
|
||||
preloadShelterTemplates() // VOREStation EDIT: Re-enable Shelter Capsules
|
||||
// Mining generation probably should be here too
|
||||
// TODO - Other stuff related to maps and areas could be moved here too. Look at /tg
|
||||
// Lateload Code related to Expedition areas.
|
||||
if(using_map) // VOREStation Edit: Re-enable this.
|
||||
loadLateMaps()
|
||||
..()
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/load_map_templates()
|
||||
for(var/T in subtypesof(/datum/map_template))
|
||||
@@ -27,3 +41,84 @@ SUBSYSTEM_DEF(mapping)
|
||||
template = new T()
|
||||
map_templates[template.name] = template
|
||||
return TRUE
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/loadEngine()
|
||||
if(!engine_loader)
|
||||
return // Seems this map doesn't need an engine loaded.
|
||||
|
||||
var/turf/T = get_turf(engine_loader)
|
||||
if(!isturf(T))
|
||||
to_world_log("[log_info_line(engine_loader)] not on a turf! Cannot place engine template.")
|
||||
return
|
||||
|
||||
// Choose an engine type
|
||||
var/datum/map_template/engine/chosen_type = null
|
||||
if (LAZYLEN(config.engine_map))
|
||||
var/chosen_name = pick(config.engine_map)
|
||||
chosen_type = map_templates[chosen_name]
|
||||
if(!istype(chosen_type))
|
||||
error("Configured engine map [chosen_name] is not a valid engine map name!")
|
||||
if(!istype(chosen_type))
|
||||
var/list/engine_types = list()
|
||||
for(var/map in map_templates)
|
||||
var/datum/map_template/engine/MT = map_templates[map]
|
||||
if(istype(MT))
|
||||
engine_types += MT
|
||||
chosen_type = pick(engine_types)
|
||||
to_world_log("Chose Engine Map: [chosen_type.name]")
|
||||
admin_notice("<span class='danger'>Chose Engine Map: [chosen_type.name]</span>", R_DEBUG)
|
||||
|
||||
// Annihilate movable atoms
|
||||
engine_loader.annihilate_bounds()
|
||||
//CHECK_TICK //Don't let anything else happen for now
|
||||
// Actually load it
|
||||
chosen_type.load(T)
|
||||
|
||||
// VOREStation Edit Start: Enable This
|
||||
/datum/controller/subsystem/mapping/proc/loadLateMaps()
|
||||
var/list/deffo_load = using_map.lateload_z_levels
|
||||
var/list/maybe_load = using_map.lateload_single_pick
|
||||
|
||||
for(var/list/maplist in deffo_load)
|
||||
if(!islist(maplist))
|
||||
error("Lateload Z level [maplist] is not a list! Must be in a list!")
|
||||
continue
|
||||
for(var/mapname in maplist)
|
||||
var/datum/map_template/MT = map_templates[mapname]
|
||||
if(!istype(MT))
|
||||
error("Lateload Z level \"[mapname]\" is not a valid map!")
|
||||
continue
|
||||
MT.load_new_z(centered = FALSE)
|
||||
CHECK_TICK
|
||||
|
||||
if(LAZYLEN(maybe_load))
|
||||
var/picklist = pick(maybe_load)
|
||||
|
||||
if(!picklist) //No lateload maps at all
|
||||
return
|
||||
|
||||
if(!islist(picklist)) //So you can have a 'chain' of z-levels that make up one away mission
|
||||
error("Randompick Z level [picklist] is not a list! Must be in a list!")
|
||||
return
|
||||
|
||||
for(var/map in picklist)
|
||||
var/datum/map_template/MT = map_templates[map]
|
||||
if(!istype(MT))
|
||||
error("Randompick Z level \"[map]\" is not a valid map!")
|
||||
else
|
||||
MT.load_new_z(centered = FALSE)
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/preloadShelterTemplates()
|
||||
for(var/item in subtypesof(/datum/map_template/shelter))
|
||||
var/datum/map_template/shelter/shelter_type = item
|
||||
if(!(initial(shelter_type.mappath)))
|
||||
continue
|
||||
var/datum/map_template/shelter/S = new shelter_type()
|
||||
|
||||
shelter_templates[S.shelter_id] = S
|
||||
// VOREStation Edit End: Re-enable this
|
||||
|
||||
/datum/controller/subsystem/mapping/stat_entry(msg)
|
||||
if (!Debug2)
|
||||
return // Only show up in stat panel if debugging is enabled.
|
||||
. = ..()
|
||||
@@ -1,124 +0,0 @@
|
||||
//
|
||||
// Mapping subsystem handles initialization of random map elements at server start
|
||||
// On VOREStation that means loading our random roundstart engine!
|
||||
//
|
||||
SUBSYSTEM_DEF(mapping)
|
||||
name = "Mapping"
|
||||
init_order = INIT_ORDER_MAPPING
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
var/list/map_templates = list()
|
||||
var/dmm_suite/maploader = null
|
||||
var/obj/effect/landmark/engine_loader/engine_loader
|
||||
var/list/shelter_templates = list()
|
||||
|
||||
/datum/controller/subsystem/mapping/Recover()
|
||||
flags |= SS_NO_INIT // Make extra sure we don't initialize twice.
|
||||
shelter_templates = SSmapping.shelter_templates
|
||||
|
||||
/datum/controller/subsystem/mapping/Initialize(timeofday)
|
||||
if(subsystem_initialized)
|
||||
return
|
||||
world.max_z_changed() // This is to set up the player z-level list, maxz hasn't actually changed (probably)
|
||||
maploader = new()
|
||||
load_map_templates()
|
||||
|
||||
if(config.generate_map)
|
||||
// Map-gen is still very specific to the map, however putting it here should ensure it loads in the correct order.
|
||||
using_map.perform_map_generation()
|
||||
|
||||
loadEngine()
|
||||
preloadShelterTemplates()
|
||||
// Mining generation probably should be here too
|
||||
// TODO - Other stuff related to maps and areas could be moved here too. Look at /tg
|
||||
if(using_map)
|
||||
loadLateMaps()
|
||||
..()
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/load_map_templates()
|
||||
for(var/T in subtypesof(/datum/map_template))
|
||||
var/datum/map_template/template = T
|
||||
if(!(initial(template.mappath))) // If it's missing the actual path its probably a base type or being used for inheritence.
|
||||
continue
|
||||
template = new T()
|
||||
map_templates[template.name] = template
|
||||
return TRUE
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/loadEngine()
|
||||
if(!engine_loader)
|
||||
return // Seems this map doesn't need an engine loaded.
|
||||
|
||||
var/turf/T = get_turf(engine_loader)
|
||||
if(!isturf(T))
|
||||
to_world_log("[log_info_line(engine_loader)] not on a turf! Cannot place engine template.")
|
||||
return
|
||||
|
||||
// Choose an engine type
|
||||
var/datum/map_template/engine/chosen_type = null
|
||||
if (LAZYLEN(config.engine_map))
|
||||
var/chosen_name = pick(config.engine_map)
|
||||
chosen_type = map_templates[chosen_name]
|
||||
if(!istype(chosen_type))
|
||||
error("Configured engine map [chosen_name] is not a valid engine map name!")
|
||||
if(!istype(chosen_type))
|
||||
var/list/engine_types = list()
|
||||
for(var/map in map_templates)
|
||||
var/datum/map_template/engine/MT = map_templates[map]
|
||||
if(istype(MT))
|
||||
engine_types += MT
|
||||
chosen_type = pick(engine_types)
|
||||
to_world_log("Chose Engine Map: [chosen_type.name]")
|
||||
admin_notice("<span class='danger'>Chose Engine Map: [chosen_type.name]</span>", R_DEBUG)
|
||||
|
||||
// Annihilate movable atoms
|
||||
engine_loader.annihilate_bounds()
|
||||
//CHECK_TICK //Don't let anything else happen for now
|
||||
// Actually load it
|
||||
chosen_type.load(T)
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/loadLateMaps()
|
||||
var/list/deffo_load = using_map.lateload_z_levels
|
||||
var/list/maybe_load = using_map.lateload_single_pick
|
||||
|
||||
for(var/list/maplist in deffo_load)
|
||||
if(!islist(maplist))
|
||||
error("Lateload Z level [maplist] is not a list! Must be in a list!")
|
||||
continue
|
||||
for(var/mapname in maplist)
|
||||
var/datum/map_template/MT = map_templates[mapname]
|
||||
if(!istype(MT))
|
||||
error("Lateload Z level \"[mapname]\" is not a valid map!")
|
||||
continue
|
||||
MT.load_new_z(centered = FALSE)
|
||||
CHECK_TICK
|
||||
|
||||
if(LAZYLEN(maybe_load))
|
||||
var/picklist = pick(maybe_load)
|
||||
|
||||
if(!picklist) //No lateload maps at all
|
||||
return
|
||||
|
||||
if(!islist(picklist)) //So you can have a 'chain' of z-levels that make up one away mission
|
||||
error("Randompick Z level [picklist] is not a list! Must be in a list!")
|
||||
return
|
||||
|
||||
for(var/map in picklist)
|
||||
var/datum/map_template/MT = map_templates[map]
|
||||
if(!istype(MT))
|
||||
error("Randompick Z level \"[map]\" is not a valid map!")
|
||||
else
|
||||
MT.load_new_z(centered = FALSE)
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/preloadShelterTemplates()
|
||||
for(var/item in subtypesof(/datum/map_template/shelter))
|
||||
var/datum/map_template/shelter/shelter_type = item
|
||||
if(!(initial(shelter_type.mappath)))
|
||||
continue
|
||||
var/datum/map_template/shelter/S = new shelter_type()
|
||||
|
||||
shelter_templates[S.shelter_id] = S
|
||||
|
||||
/datum/controller/subsystem/mapping/stat_entry(msg)
|
||||
if (!Debug2)
|
||||
return // Only show up in stat panel if debugging is enabled.
|
||||
. = ..()
|
||||
@@ -78,6 +78,7 @@ var/global/datum/controller/subsystem/ticker/ticker
|
||||
/datum/controller/subsystem/ticker/proc/pregame_welcome()
|
||||
to_world("<span class='boldannounce notice'><em>Welcome to the pregame lobby!</em></span>")
|
||||
to_world("<span class='boldannounce notice'>Please set up your character and select ready. The round will start in [pregame_timeleft] seconds.</span>")
|
||||
world << sound('sound/misc/server-ready.ogg', volume = 100)
|
||||
|
||||
// Called during GAME_STATE_PREGAME (RUNLEVEL_LOBBY)
|
||||
/datum/controller/subsystem/ticker/proc/pregame_tick()
|
||||
@@ -434,7 +435,7 @@ var/global/datum/controller/subsystem/ticker/ticker
|
||||
var/captainless=1
|
||||
for(var/mob/living/carbon/human/player in player_list)
|
||||
if(player && player.mind && player.mind.assigned_role)
|
||||
if(player.mind.assigned_role == "Colony Director")
|
||||
if(player.mind.assigned_role == "Site Manager")
|
||||
captainless=0
|
||||
if(!player_is_antag(player.mind, only_offstation_roles = 1))
|
||||
job_master.EquipRank(player, player.mind.assigned_role, 0)
|
||||
|
||||
@@ -218,7 +218,7 @@ var/global/list/PDA_Manifest = list()
|
||||
heads[++heads.len] = list("name" = name, "rank" = rank, "active" = isactive)
|
||||
department = 1
|
||||
depthead = 1
|
||||
if(rank=="Colony Director" && heads.len != 1)
|
||||
if(rank=="Site Manager" && heads.len != 1)
|
||||
heads.Swap(1,heads.len)
|
||||
|
||||
if(SSjob.is_job_in_department(real_rank, DEPARTMENT_SECURITY))
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
var/volume = 100
|
||||
var/max_loops
|
||||
var/direct
|
||||
var/vary
|
||||
var/extra_range
|
||||
var/opacity_check
|
||||
var/pref_check
|
||||
|
||||
@@ -89,7 +91,7 @@
|
||||
continue
|
||||
SEND_SOUND(thing, S)
|
||||
else
|
||||
playsound(thing, S, volume, ignore_walls = !opacity_check, preference = pref_check)
|
||||
playsound(thing, S, volume, vary, extra_range, ignore_walls = !opacity_check, preference = pref_check)
|
||||
|
||||
/datum/looping_sound/proc/get_sound(starttime, _mid_sounds)
|
||||
if(!_mid_sounds)
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/looping_sound/supermatter
|
||||
mid_sounds = list('sound/machines/sm/supermatter1.ogg'=1,'sound/machines/sm/supermatter2.ogg'=1,'sound/machines/sm/supermatter3.ogg'=1)
|
||||
mid_length = 10
|
||||
volume = 1
|
||||
mid_sounds = list('sound/machines/sm/loops/calm.ogg'=1)
|
||||
mid_length = 60
|
||||
volume = 40
|
||||
extra_range = 10
|
||||
pref_check = /datum/client_preference/supermatter_hum
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -28,25 +29,74 @@
|
||||
|
||||
|
||||
/datum/looping_sound/deep_fryer
|
||||
start_sound = 'sound/machines/fryer/deep_fryer_immerse.ogg' //my immersions
|
||||
start_sound = 'sound/machines/kitchen/fryer/deep_fryer_immerse.ogg' //my immersions
|
||||
start_length = 10
|
||||
mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1)
|
||||
mid_sounds = list('sound/machines/kitchen/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/kitchen/fryer/deep_fryer_2.ogg' = 1)
|
||||
mid_length = 2
|
||||
end_sound = 'sound/machines/fryer/deep_fryer_emerge.ogg'
|
||||
end_sound = 'sound/machines/kitchen/fryer/deep_fryer_emerge.ogg'
|
||||
volume = 15
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/looping_sound/microwave
|
||||
start_sound = 'sound/machines/microwave/microwave-start.ogg'
|
||||
start_sound = 'sound/machines/kitchen/microwave/microwave-start.ogg'
|
||||
start_length = 10
|
||||
mid_sounds = list('sound/machines/microwave/microwave-mid1.ogg'=10, 'sound/machines/microwave/microwave-mid2.ogg'=1)
|
||||
mid_sounds = list('sound/machines/kitchen/microwave/microwave-mid1.ogg'=10, 'sound/machines/kitchen/microwave/microwave-mid2.ogg'=1)
|
||||
mid_length = 10
|
||||
end_sound = 'sound/machines/microwave/microwave-end.ogg'
|
||||
end_sound = 'sound/machines/kitchen/microwave/microwave-end.ogg'
|
||||
volume = 90
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/looping_sound/oven
|
||||
start_sound = 'sound/machines/kitchen/oven/oven-start.ogg'
|
||||
start_length = 10
|
||||
mid_sounds = list('sound/machines/kitchen/oven/oven-mid1.ogg'=10)
|
||||
mid_length = 40
|
||||
end_sound = 'sound/machines/kitchen/oven/oven-stop.ogg'
|
||||
volume = 50
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/looping_sound/grill
|
||||
start_sound = 'sound/machines/kitchen/grill/grill-start.ogg'
|
||||
start_length = 10
|
||||
mid_sounds = list('sound/machines/kitchen/grill/grill-mid1.ogg'=10)
|
||||
mid_length = 40
|
||||
end_sound = 'sound/machines/kitchen/grill/grill-stop.ogg'
|
||||
volume = 50
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/looping_sound/mixer
|
||||
start_sound = 'sound/machines/kitchen/mixer/mixer-start.ogg'
|
||||
start_length = 10
|
||||
mid_sounds = list('sound/machines/kitchen/mixer/mixer-mid1.ogg'=10)
|
||||
mid_length = 10
|
||||
end_sound = 'sound/machines/kitchen/mixer/mixer-stop.ogg'
|
||||
volume = 50
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/looping_sound/cerealmaker
|
||||
start_sound = 'sound/machines/kitchen/cerealmaker/cerealmaker-start.ogg'
|
||||
start_length = 10
|
||||
mid_sounds = list('sound/machines/kitchen/cerealmaker/cerealmaker-mid1.ogg'=10)
|
||||
mid_length = 60
|
||||
end_sound = 'sound/machines/kitchen/cerealmaker/cerealmaker-stop.ogg'
|
||||
volume = 50
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/looping_sound/candymaker
|
||||
start_sound = 'sound/machines/kitchen/candymaker/candymaker-start.ogg'
|
||||
start_length = 10
|
||||
mid_sounds = list('sound/machines/kitchen/candymaker/candymaker-mid1.ogg'=10)
|
||||
mid_length = 40
|
||||
end_sound = 'sound/machines/kitchen/candymaker/candymaker-stop.ogg'
|
||||
volume = 20
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/datum/looping_sound/air_pump
|
||||
start_sound = 'sound/machines/air_pump/airpumpstart.ogg'
|
||||
start_length = 10
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
/obj/item/clothing/under/lawyer/bluesuit,
|
||||
/obj/item/clothing/under/lawyer/purpsuit,
|
||||
/obj/item/clothing/shoes/black = 2,
|
||||
/obj/item/clothing/shoes/leather,
|
||||
/obj/item/clothing/shoes/laceup/brown,
|
||||
/obj/item/clothing/accessory/wcoat
|
||||
)
|
||||
name = "Formalwear (Suits)"
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
/obj/item/clothing/under/pants/chaps,
|
||||
/obj/item/clothing/under/pants/chaps/black,
|
||||
/obj/item/clothing/under/harness,
|
||||
/obj/item/clothing/shoes/leather,
|
||||
/obj/item/clothing/shoes/laceup/brown,
|
||||
/obj/item/clothing/shoes/boots/jungle,
|
||||
/obj/item/clothing/shoes/boots/jackboots,
|
||||
/obj/item/clothing/shoes/boots/cowboy,
|
||||
|
||||
@@ -54,19 +54,12 @@
|
||||
containertype = /obj/structure/largecrate
|
||||
containername = "cooking oil tank crate"
|
||||
|
||||
/datum/supply_pack/randomised/hospitality/
|
||||
group = "Hospitality"
|
||||
|
||||
/datum/supply_pack/randomised/hospitality/pizza
|
||||
/datum/supply_pack/hospitality/pizza
|
||||
name = "Surprise pack of five pizzas"
|
||||
contains = list(
|
||||
/obj/random/pizzabox,
|
||||
/obj/random/pizzabox,
|
||||
/obj/random/pizzabox,
|
||||
/obj/random/pizzabox,
|
||||
/obj/random/pizzabox,
|
||||
/obj/random/pizzabox = 5,
|
||||
/obj/item/weapon/material/knife/plastic
|
||||
)
|
||||
name = "Surprise pack of five pizzas"
|
||||
cost = 15
|
||||
containertype = /obj/structure/closet/crate/freezer/centauri
|
||||
containername = "Pizza crate"
|
||||
@@ -83,4 +76,8 @@
|
||||
)
|
||||
cost = 10
|
||||
containertype = /obj/structure/closet/crate/allico
|
||||
containername = "crate of gifts"
|
||||
containername = "crate of gifts"
|
||||
|
||||
/datum/supply_pack/randomised/hospitality/
|
||||
group = "Hospitality"
|
||||
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
throw_speed = 1
|
||||
throw_range = 20
|
||||
drop_sound = 'sound/items/drop/rubber.ogg'
|
||||
pickup_sound = 'sound/items/pickup/rubber.ogg'
|
||||
|
||||
afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
|
||||
user.drop_item()
|
||||
|
||||
@@ -79,6 +79,8 @@
|
||||
/obj/item/weapon/disk
|
||||
name = "disk"
|
||||
icon = 'icons/obj/discs_vr.dmi' //VOREStation Edit
|
||||
drop_sound = 'sound/items/drop/disk.ogg'
|
||||
pickup_sound = 'sound/items/pickup/disk.ogg'
|
||||
|
||||
/obj/item/weapon/disk/nuclear
|
||||
name = "nuclear authentication disk"
|
||||
|
||||
@@ -6,7 +6,7 @@ var/datum/antagonist/mutineer/mutineers
|
||||
role_text_plural = "Mutineers"
|
||||
id = MODE_MUTINEER
|
||||
antag_indicator = "mutineer"
|
||||
restricted_jobs = list("Colony Director")
|
||||
restricted_jobs = list("Site Manager")
|
||||
|
||||
/datum/antagonist/mutineer/New(var/no_reference)
|
||||
..()
|
||||
@@ -39,7 +39,7 @@ var/datum/antagonist/mutineer/mutineers
|
||||
proc/get_head_loyalist_candidates()
|
||||
var/list/candidates[0]
|
||||
for(var/mob/loyalist in player_list)
|
||||
if(loyalist.mind && loyalist.mind.assigned_role == "Colony Director")
|
||||
if(loyalist.mind && loyalist.mind.assigned_role == "Site Manager")
|
||||
candidates.Add(loyalist.mind)
|
||||
return candidates
|
||||
|
||||
@@ -47,7 +47,7 @@ var/datum/antagonist/mutineer/mutineers
|
||||
var/list/candidates[0]
|
||||
for(var/mob/mutineer in player_list)
|
||||
if(mutineer.client.prefs.be_special & BE_MUTINEER)
|
||||
for(var/job in command_positions - "Colony Director")
|
||||
for(var/job in command_positions - "Site Manager")
|
||||
if(mutineer.mind && mutineer.mind.assigned_role == job)
|
||||
candidates.Add(mutineer.mind)
|
||||
return candidates
|
||||
|
||||
@@ -14,7 +14,7 @@ var/datum/antagonist/ert/ert
|
||||
and before taking extreme actions, please try to also contact the administration! \
|
||||
Think through your actions and make the roleplay immersive! <b>Please remember all \
|
||||
rules aside from those without explicit exceptions apply to the ERT.</b>"
|
||||
leader_welcome_text = "As leader of the Emergency Response Team, you answer only to the Company, and have authority to override the Colony Director where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the Colony Director where possible, however."
|
||||
leader_welcome_text = "As leader of the Emergency Response Team, you answer only to the Company, and have authority to override the Site Manager where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the Site Manager where possible, however."
|
||||
landmark_id = "Response Team"
|
||||
id_type = /obj/item/weapon/card/id/centcom/ERT
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
bantype = "changeling"
|
||||
feedback_tag = "changeling_objective"
|
||||
avoid_silicons = TRUE
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Colony Director")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Site Manager")
|
||||
welcome_text = "Use say \"#g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them."
|
||||
antag_sound = 'sound/effects/antag_notice/ling_alert.ogg'
|
||||
flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE
|
||||
|
||||
@@ -13,8 +13,8 @@ var/datum/antagonist/cultist/cult
|
||||
bantype = "cultist"
|
||||
restricted_jobs = list("Chaplain")
|
||||
avoid_silicons = TRUE
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Colony Director")
|
||||
roundstart_restricted = list("Internal Affairs Agent", "Head of Security", "Colony Director")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Site Manager")
|
||||
roundstart_restricted = list("Internal Affairs Agent", "Head of Security", "Site Manager")
|
||||
role_type = BE_CULTIST
|
||||
feedback_tag = "cult_objective"
|
||||
antag_indicator = "cult"
|
||||
|
||||
@@ -11,7 +11,7 @@ var/datum/antagonist/traitor/infiltrator/infiltrators
|
||||
role_text = "Infiltrator"
|
||||
role_text_plural = "Infiltrators"
|
||||
welcome_text = "To speak on your team's private channel, use :t."
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Colony Director")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Site Manager")
|
||||
flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE
|
||||
can_speak_aooc = TRUE
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@ var/datum/antagonist/revolutionary/revs
|
||||
faction_invisible = 1
|
||||
|
||||
avoid_silicons = TRUE
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Colony Director", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer")
|
||||
roundstart_restricted = list("Internal Affairs Agent", "Colony Director", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Site Manager", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer")
|
||||
roundstart_restricted = list("Internal Affairs Agent", "Site Manager", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer")
|
||||
|
||||
/datum/antagonist/revolutionary/New()
|
||||
..()
|
||||
|
||||
@@ -4,7 +4,7 @@ var/datum/antagonist/traitor/traitors
|
||||
/datum/antagonist/traitor
|
||||
id = MODE_TRAITOR
|
||||
antag_sound = 'sound/effects/antag_notice/traitor_alert.ogg'
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Colony Director")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Site Manager")
|
||||
flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE
|
||||
can_speak_aooc = FALSE // If they want to plot and plan as this sort of traitor, they'll need to do it ICly.
|
||||
|
||||
|
||||
@@ -280,6 +280,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/centcom/bathroom
|
||||
name = "\improper CentCom Bathroom"
|
||||
icon_state = "centcom_crew"
|
||||
sound_env = SMALL_ENCLOSED
|
||||
|
||||
//SYNDICATES
|
||||
|
||||
@@ -736,6 +737,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "Substation"
|
||||
icon_state = "substation"
|
||||
sound_env = SMALL_ENCLOSED
|
||||
ambience = AMBIENCE_SUBSTATION
|
||||
|
||||
/area/maintenance/substation/engineering // Probably will be connected to engineering SMES room, as wires cannot be crossed properly without them sharing powernets.
|
||||
name = "Engineering Substation"
|
||||
@@ -950,7 +952,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
sound_env = MEDIUM_SOFTFLOOR
|
||||
|
||||
/area/crew_quarters/captain
|
||||
name = "\improper Command - Colony Director's Office"
|
||||
name = "\improper Command - Site Manager's Office"
|
||||
icon_state = "captain"
|
||||
sound_env = MEDIUM_SOFTFLOOR
|
||||
|
||||
@@ -1207,6 +1209,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/crew_quarters/recreation_area_restroom
|
||||
name = "\improper Recreation Area Restroom"
|
||||
icon_state = "recreation_area_restroom"
|
||||
sound_env = SMALL_ENCLOSED
|
||||
|
||||
/area/crew_quarters/pool
|
||||
name = "\improper Pool"
|
||||
@@ -1232,6 +1235,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/crew_quarters/barrestroom
|
||||
name = "\improper Cafeteria Restroom"
|
||||
icon_state = "bar"
|
||||
sound_env = SMALL_ENCLOSED
|
||||
|
||||
/area/crew_quarters/theatre
|
||||
name = "\improper Theatre"
|
||||
@@ -1381,6 +1385,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "\improper Atmospherics"
|
||||
icon_state = "atmos"
|
||||
sound_env = LARGE_ENCLOSED
|
||||
ambience = AMBIENCE_ATMOS
|
||||
|
||||
/area/engineering/atmos/monitoring
|
||||
name = "\improper Atmospherics Monitoring Room"
|
||||
@@ -1603,6 +1608,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/crew_quarters/medical_restroom
|
||||
name = "\improper Medbay Restroom"
|
||||
icon_state = "medbay_restroom"
|
||||
sound_env = SMALL_ENCLOSED
|
||||
|
||||
/area/medical/patients_rooms
|
||||
name = "\improper Patient's Rooms"
|
||||
@@ -1796,6 +1802,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/security/security_bathroom
|
||||
name = "\improper Security - Restroom"
|
||||
icon_state = "security_bathroom"
|
||||
sound_env = SMALL_ENCLOSED
|
||||
|
||||
/area/security/security_cell_hallway
|
||||
name = "\improper Security - Cell Hallway"
|
||||
@@ -1944,6 +1951,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/rnd/research_restroom
|
||||
name = "\improper Research Restroom"
|
||||
icon_state = "research_restroom"
|
||||
sound_env = SMALL_ENCLOSED
|
||||
|
||||
/area/rnd/research_storage
|
||||
name = "\improper Research Storage"
|
||||
|
||||
@@ -488,7 +488,7 @@
|
||||
// Use for objects performing visible actions
|
||||
// message is output to anyone who can see, e.g. "The [src] does something!"
|
||||
// blind_message (optional) is what blind people will hear e.g. "You hear something!"
|
||||
/atom/proc/visible_message(var/message, var/blind_message)
|
||||
/atom/proc/visible_message(var/message, var/blind_message, var/list/exclude_mobs = null)
|
||||
|
||||
//VOREStation Edit
|
||||
var/list/see
|
||||
@@ -501,6 +501,8 @@
|
||||
|
||||
var/list/seeing_mobs = see["mobs"]
|
||||
var/list/seeing_objs = see["objs"]
|
||||
if(LAZYLEN(exclude_mobs))
|
||||
seeing_mobs -= exclude_mobs
|
||||
|
||||
for(var/obj in seeing_objs)
|
||||
var/obj/O = obj
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
force = 30
|
||||
throwforce = 10
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
drop_sound = 'sound/items/drop/sword.ogg'
|
||||
pickup_sound = 'sound/items/pickup/sword.ogg'
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
edge = 1
|
||||
sharp = 1
|
||||
|
||||
@@ -564,7 +564,7 @@ datum
|
||||
|
||||
captainslaser
|
||||
steal_target = /obj/item/weapon/gun/energy/captain
|
||||
explanation_text = "Steal the Colony Director's antique laser gun."
|
||||
explanation_text = "Steal the Site Manager's antique laser gun."
|
||||
weight = 20
|
||||
|
||||
get_points(var/job)
|
||||
|
||||
@@ -427,11 +427,11 @@ datum/objective/steal
|
||||
var/target_name
|
||||
|
||||
var/global/possible_items[] = list(
|
||||
"the Colony Director's antique laser gun" = /obj/item/weapon/gun/energy/captain,
|
||||
"the Site Manager's antique laser gun" = /obj/item/weapon/gun/energy/captain,
|
||||
"a hand teleporter" = /obj/item/weapon/hand_tele,
|
||||
"an RCD" = /obj/item/weapon/rcd,
|
||||
"a jetpack" = /obj/item/weapon/tank/jetpack,
|
||||
"a colony director's jumpsuit" = /obj/item/clothing/under/rank/captain,
|
||||
"a site manager's jumpsuit" = /obj/item/clothing/under/rank/captain,
|
||||
"a functional AI" = /obj/item/device/aicard,
|
||||
"a pair of magboots" = /obj/item/clothing/shoes/magboots,
|
||||
"the station blueprints" = /obj/item/blueprints,
|
||||
@@ -445,7 +445,7 @@ datum/objective/steal
|
||||
"a head of security's jumpsuit" = /obj/item/clothing/under/rank/head_of_security,
|
||||
"a head of personnel's jumpsuit" = /obj/item/clothing/under/rank/head_of_personnel,
|
||||
"the hypospray" = /obj/item/weapon/reagent_containers/hypospray/vial,
|
||||
"the colony director's pinpointer" = /obj/item/weapon/pinpointer,
|
||||
"the site manager's pinpointer" = /obj/item/weapon/pinpointer,
|
||||
"an ablative armor vest" = /obj/item/clothing/suit/armor/laserproof,
|
||||
)
|
||||
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
/var/const/access_captain = 20
|
||||
/datum/access/captain
|
||||
id = access_captain
|
||||
desc = "Colony Director"
|
||||
desc = "Site Manager"
|
||||
region = ACCESS_REGION_COMMAND
|
||||
|
||||
/var/const/access_all_personal_lockers = 21
|
||||
|
||||
@@ -5,7 +5,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
//////////////////////////////////
|
||||
|
||||
/datum/job/captain
|
||||
title = "Colony Director"
|
||||
title = "Site Manager"
|
||||
flag = CAPTAIN
|
||||
departments = list(DEPARTMENT_COMMAND)
|
||||
sorting_order = 3 // Above everyone.
|
||||
@@ -26,11 +26,10 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
ideal_character_age = 70 // Old geezer captains ftw
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/captain
|
||||
job_description = "The Colony Director manages the other Command Staff, and through them the rest of the station. Though they have access to everything, \
|
||||
they do not understand everything, and are expected to delegate tasks to the appropriate crew member. The Colony Director is expected to \
|
||||
job_description = "The Site Manager manages the other Command Staff, and through them the rest of the station. Though they have access to everything, \
|
||||
they do not understand everything, and are expected to delegate tasks to the appropriate crew member. The Site Manager is expected to \
|
||||
have an understanding of Standard Operating Procedure, and is subject to it, and legal action, in the same way as every other crew member."
|
||||
alt_titles = list("Site Manager" = /datum/alt_title/site_manager,
|
||||
"Overseer" = /datum/alt_title/overseer)
|
||||
alt_titles = list("Overseer"= /datum/alt_title/overseer)
|
||||
|
||||
/*
|
||||
/datum/job/captain/equip(var/mob/living/carbon/human/H)
|
||||
@@ -44,9 +43,6 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
|
||||
|
||||
// Captain Alt Titles
|
||||
/datum/alt_title/site_manager
|
||||
title = "Site Manager"
|
||||
|
||||
/datum/alt_title/overseer
|
||||
title = "Overseer"
|
||||
|
||||
@@ -63,7 +59,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "the Colony Director"
|
||||
supervisors = "the Site Manager"
|
||||
selection_color = "#1D1D4F"
|
||||
req_admin_notify = 1
|
||||
minimal_player_age = 10
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "the Colony Director"
|
||||
supervisors = "the Site Manager"
|
||||
selection_color = "#7F6E2C"
|
||||
req_admin_notify = 1
|
||||
economic_modifier = 10
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "the Colony Director"
|
||||
supervisors = "the Site Manager"
|
||||
selection_color = "#026865"
|
||||
req_admin_notify = 1
|
||||
economic_modifier = 10
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "the Colony Director"
|
||||
supervisors = "the Site Manager"
|
||||
selection_color = "#AD6BAD"
|
||||
req_admin_notify = 1
|
||||
economic_modifier = 15
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "the Colony Director"
|
||||
supervisors = "the Site Manager"
|
||||
selection_color = "#8E2929"
|
||||
req_admin_notify = 1
|
||||
economic_modifier = 10
|
||||
|
||||
@@ -394,7 +394,7 @@ var/global/datum/controller/occupations/job_master
|
||||
var/datum/gear/G = gear_datums[thing]
|
||||
if(!G) //Not a real gear datum (maybe removed, as this is loaded from their savefile)
|
||||
continue
|
||||
|
||||
|
||||
var/permitted
|
||||
// Check if it is restricted to certain roles
|
||||
if(G.allowed_roles)
|
||||
@@ -435,13 +435,13 @@ var/global/datum/controller/occupations/job_master
|
||||
|
||||
// Set up their account
|
||||
job.setup_account(H)
|
||||
|
||||
|
||||
// Equip job items.
|
||||
job.equip(H, H.mind ? H.mind.role_alt_title : "")
|
||||
|
||||
|
||||
// Stick their fingerprints on literally everything
|
||||
job.apply_fingerprints(H)
|
||||
|
||||
|
||||
// Only non-silicons get post-job-equip equipment
|
||||
if(!(job.mob_type & JOB_SILICON))
|
||||
H.equip_post_job()
|
||||
@@ -487,11 +487,11 @@ var/global/datum/controller/occupations/job_master
|
||||
return H.Robotize()
|
||||
if(job.mob_type & JOB_SILICON_AI)
|
||||
return H
|
||||
|
||||
|
||||
// TWEET PEEP
|
||||
if(rank == "Colony Director")
|
||||
if(rank == "Site Manager")
|
||||
var/sound/announce_sound = (ticker.current_state <= GAME_STATE_SETTING_UP) ? null : sound('sound/misc/boatswain.ogg', volume=20)
|
||||
captain_announcement.Announce("All hands, [alt_title ? alt_title : "Colony Director"] [H.real_name] on deck!", new_sound = announce_sound, zlevel = H.z)
|
||||
captain_announcement.Announce("All hands, [alt_title ? alt_title : "Site Manager"] [H.real_name] on deck!", new_sound = announce_sound, zlevel = H.z)
|
||||
|
||||
//Deferred item spawning.
|
||||
if(spawn_in_storage && spawn_in_storage.len)
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
M.forceMove(src)
|
||||
occupant = M
|
||||
update_icon() //icon_state = "body_scanner_1" //VOREStation Edit - Health display for consoles with light and such.
|
||||
playsound(src, 'sound/machines/medbayscanner1.ogg', 50) // Beepboop you're being scanned. <3
|
||||
add_fingerprint(user)
|
||||
qdel(G)
|
||||
SStgui.update_uis(src)
|
||||
@@ -101,6 +102,7 @@
|
||||
O.forceMove(src)
|
||||
occupant = O
|
||||
update_icon() //icon_state = "body_scanner_1" //VOREStation Edit - Health display for consoles with light and such.
|
||||
playsound(src, 'sound/machines/medbayscanner1.ogg', 50) // Beepboop you're being scanned. <3
|
||||
add_fingerprint(user)
|
||||
SStgui.update_uis(src)
|
||||
|
||||
@@ -332,6 +334,7 @@
|
||||
if("print_p")
|
||||
var/atom/target = console ? console : src
|
||||
visible_message("<span class='notice'>[target] rattles and prints out a sheet of paper.</span>")
|
||||
playsound(src, 'sound/machines/printer.ogg', 50, 1)
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(target))
|
||||
var/name = occupant ? occupant.name : "Unknown"
|
||||
P.info = "<CENTER><B>Body Scan - [name]</B></CENTER><BR>"
|
||||
|
||||
@@ -95,7 +95,6 @@
|
||||
BIOGEN_ITEM("Cash Bag", /obj/item/weapon/storage/bag/cash, 1, 400),
|
||||
BIOGEN_ITEM("Chemistry Bag", /obj/item/weapon/storage/bag/chemistry, 1, 400),
|
||||
BIOGEN_ITEM("Workboots", /obj/item/clothing/shoes/boots/workboots, 1, 400),
|
||||
BIOGEN_ITEM("Leather Shoes", /obj/item/clothing/shoes/leather, 1, 400),
|
||||
BIOGEN_ITEM("Leather Chaps", /obj/item/clothing/under/pants/chaps, 1, 400),
|
||||
BIOGEN_ITEM("Leather Coat", /obj/item/clothing/suit/leathercoat, 1, 500),
|
||||
BIOGEN_ITEM("Leather Jacket", /obj/item/clothing/suit/storage/toggle/brown_jacket, 1, 500),
|
||||
@@ -307,4 +306,4 @@
|
||||
build_eff = man_rating
|
||||
eat_eff = bin_rating
|
||||
|
||||
#undef BIOGENITEM
|
||||
#undef BIOGENITEM
|
||||
|
||||
@@ -357,7 +357,7 @@
|
||||
state("Tank instability detected. Please step away from the device.")
|
||||
else
|
||||
ping("Simulation complete!")
|
||||
playsound(src, "sound/effects/printer.ogg", 50, 1)
|
||||
playsound(src, "sound/machines/printer.ogg", 50, 1)
|
||||
var/obj/item/weapon/paper/P = new(get_turf(src))
|
||||
P.name = "Explosive Simulator printout"
|
||||
P.info = simulation_results
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
return
|
||||
|
||||
else if((occupant.health >= heal_level || occupant.health == occupant.getMaxHealth()) && (!eject_wait))
|
||||
playsound(src, 'sound/machines/ding.ogg', 50, 1)
|
||||
playsound(src, 'sound/machines/medbayscanner1.ogg', 50, 1)
|
||||
audible_message("\The [src] signals that the cloning process is complete.")
|
||||
connected_message("Cloning Process Complete.")
|
||||
locked = 0
|
||||
|
||||
@@ -342,6 +342,7 @@
|
||||
cloneresult = pod.growclone(C)
|
||||
if(cloneresult)
|
||||
set_temp("Initiating cloning cycle...", "success")
|
||||
playsound(src, 'sound/machines/medbayscanner1.ogg', 100, 1)
|
||||
records.Remove(C)
|
||||
qdel(C)
|
||||
menu = MENU_MAIN
|
||||
|
||||
@@ -509,4 +509,4 @@
|
||||
/obj/machinery/computer/secure_data/detective_computer
|
||||
icon_state = "messyfiles"
|
||||
|
||||
#undef FIELD
|
||||
#undef FIELD
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
if(..())
|
||||
return
|
||||
if(!allowed(user))
|
||||
to_chat(user, "<span class='warning'>You don't have the required access to use this console.</span>")
|
||||
return
|
||||
user.set_machine(src)
|
||||
tgui_interact(user)
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
var/secured_wires = 0
|
||||
var/datum/wires/airlock/wires = null
|
||||
|
||||
var/open_sound_powered = 'sound/machines/airlock.ogg'
|
||||
var/open_sound_powered = 'sound/machines/door/covert1o.ogg'
|
||||
var/open_sound_unpowered = 'sound/machines/airlockforced.ogg'
|
||||
var/close_sound_powered = 'sound/machines/airlockclose.ogg'
|
||||
var/close_sound_powered = 'sound/machines/door/covert1c.ogg'
|
||||
var/denied_sound = 'sound/machines/deniedbeep.ogg'
|
||||
var/bolt_up_sound = 'sound/machines/boltsup.ogg'
|
||||
var/bolt_down_sound = 'sound/machines/boltsdown.ogg'
|
||||
@@ -112,40 +112,54 @@
|
||||
icon = 'icons/obj/doors/Doorcom.dmi'
|
||||
req_one_access = list(access_heads)
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_com
|
||||
open_sound_powered = 'sound/machines/door/cmd3o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/cmd3c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/security
|
||||
name = "Security Airlock"
|
||||
icon = 'icons/obj/doors/Doorsec.dmi'
|
||||
req_one_access = list(access_security)
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_sec
|
||||
open_sound_powered = 'sound/machines/door/sec1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/sec1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/engineering
|
||||
name = "Engineering Airlock"
|
||||
icon = 'icons/obj/doors/Dooreng.dmi'
|
||||
req_one_access = list(access_engine)
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_eng
|
||||
open_sound_powered = 'sound/machines/door/eng1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/eng1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/engineeringatmos
|
||||
name = "Atmospherics Airlock"
|
||||
icon = 'icons/obj/doors/Doorengatmos.dmi'
|
||||
req_one_access = list(access_atmospherics)
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_eat
|
||||
open_sound_powered = 'sound/machines/door/eng1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/eng1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/medical
|
||||
name = "Medical Airlock"
|
||||
icon = 'icons/obj/doors/Doormed.dmi'
|
||||
req_one_access = list(access_medical)
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_med
|
||||
open_sound_powered = 'sound/machines/door/med1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/med1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/maintenance
|
||||
name = "Maintenance Access"
|
||||
icon = 'icons/obj/doors/Doormaint.dmi'
|
||||
//req_one_access = list(access_maint_tunnels) //VOREStation Edit - Maintenance is open access
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_mai
|
||||
open_sound_powered = 'sound/machines/door/door2o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/door2c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/maintenance/cargo
|
||||
icon = 'icons/obj/doors/Doormaint_cargo.dmi'
|
||||
req_one_access = list(access_cargo)
|
||||
open_sound_powered = 'sound/machines/door/door2o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/door2c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/maintenance/command
|
||||
icon = 'icons/obj/doors/Doormaint_command.dmi'
|
||||
@@ -153,6 +167,8 @@
|
||||
|
||||
/obj/machinery/door/airlock/maintenance/common
|
||||
icon = 'icons/obj/doors/Doormaint_common.dmi'
|
||||
open_sound_powered = 'sound/machines/door/hall3o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/hall3c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/maintenance/engi
|
||||
icon = 'icons/obj/doors/Doormaint_engi.dmi'
|
||||
@@ -177,6 +193,8 @@
|
||||
name = "External Airlock"
|
||||
icon = 'icons/obj/doors/Doorext.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_ext
|
||||
open_sound_powered = 'sound/machines/door/space1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/space1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/external/glass/bolted
|
||||
icon_state = "door_locked" // So it looks visibly bolted in map editor
|
||||
@@ -193,12 +211,15 @@
|
||||
opacity = 0
|
||||
glass = 1
|
||||
req_one_access = list(access_external_airlocks)
|
||||
open_sound_powered = 'sound/machines/door/space1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/space1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass
|
||||
name = "Glass Airlock"
|
||||
icon = 'icons/obj/doors/Doorglass.dmi'
|
||||
hitsound = 'sound/effects/Glasshit.ogg'
|
||||
open_sound_powered = 'sound/machines/windowdoor.ogg'
|
||||
open_sound_powered = 'sound/machines/door/hall1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/hall1c.ogg'
|
||||
maxhealth = 300
|
||||
explosion_resistance = 5
|
||||
opacity = 0
|
||||
@@ -209,12 +230,16 @@
|
||||
icon = 'icons/obj/doors/Doorele.dmi'
|
||||
req_one_access = list(access_cent_general)
|
||||
opacity = 1
|
||||
open_sound_powered = 'sound/machines/door/cmd3o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/cmd3c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_centcom
|
||||
name = "Airlock"
|
||||
icon = 'icons/obj/doors/Dooreleglass.dmi'
|
||||
opacity = 0
|
||||
glass = 1
|
||||
open_sound_powered = 'sound/machines/door/cmd3o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/cmd3c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/vault
|
||||
name = "Vault"
|
||||
@@ -224,6 +249,8 @@
|
||||
secured_wires = 1
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites.
|
||||
req_one_access = list(access_heads_vault)
|
||||
open_sound_powered = 'sound/machines/door/vault1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/vault1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/vault/bolted
|
||||
icon_state = "door_locked"
|
||||
@@ -242,6 +269,9 @@
|
||||
opacity = 1
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_hatch
|
||||
req_one_access = list(access_maint_tunnels)
|
||||
open_sound_powered = 'sound/machines/door/hatchopen.ogg'
|
||||
close_sound_powered = 'sound/machines/door/hatchclose.ogg'
|
||||
open_sound_unpowered = 'sound/machines/door/hatchforced.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/maintenance_hatch
|
||||
name = "Maintenance Hatch"
|
||||
@@ -250,6 +280,9 @@
|
||||
opacity = 1
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_mhatch
|
||||
req_one_access = list(access_maint_tunnels)
|
||||
open_sound_powered = 'sound/machines/door/hatchopen.ogg'
|
||||
close_sound_powered = 'sound/machines/door/hatchclose.ogg'
|
||||
open_sound_unpowered = 'sound/machines/door/hatchforced.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_command
|
||||
name = "Command Airlock"
|
||||
@@ -261,6 +294,8 @@
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_com
|
||||
glass = 1
|
||||
req_one_access = list(access_heads)
|
||||
open_sound_powered = 'sound/machines/door/cmd1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/cmd1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_engineering
|
||||
name = "Engineering Airlock"
|
||||
@@ -272,6 +307,8 @@
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_eng
|
||||
glass = 1
|
||||
req_one_access = list(access_engine)
|
||||
open_sound_powered = 'sound/machines/door/eng1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/eng1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_engineeringatmos
|
||||
name = "Atmospherics Airlock"
|
||||
@@ -283,6 +320,8 @@
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_eat
|
||||
glass = 1
|
||||
req_one_access = list(access_atmospherics)
|
||||
open_sound_powered = 'sound/machines/door/eng1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/eng1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_security
|
||||
name = "Security Airlock"
|
||||
@@ -294,6 +333,8 @@
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_sec
|
||||
glass = 1
|
||||
req_one_access = list(access_security)
|
||||
open_sound_powered = 'sound/machines/door/sec1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/sec1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_medical
|
||||
name = "Medical Airlock"
|
||||
@@ -305,23 +346,31 @@
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_med
|
||||
glass = 1
|
||||
req_one_access = list(access_medical)
|
||||
open_sound_powered = 'sound/machines/door/med1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/med1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/mining
|
||||
name = "Mining Airlock"
|
||||
icon = 'icons/obj/doors/Doormining.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_min
|
||||
req_one_access = list(access_mining)
|
||||
open_sound_powered = 'sound/machines/door/cgo1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/cgo1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/atmos
|
||||
name = "Atmospherics Airlock"
|
||||
icon = 'icons/obj/doors/Dooratmo.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_atmo
|
||||
req_one_access = list(access_atmospherics)
|
||||
open_sound_powered = 'sound/machines/door/eng1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/eng1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/research
|
||||
name = "Research Airlock"
|
||||
icon = 'icons/obj/doors/Doorresearch.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_research
|
||||
open_sound_powered = 'sound/machines/door/sci1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/sci1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_research
|
||||
name = "Research Airlock"
|
||||
@@ -333,6 +382,8 @@
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_research
|
||||
glass = 1
|
||||
req_one_access = list(access_research)
|
||||
open_sound_powered = 'sound/machines/door/sci1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/sci1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_mining
|
||||
name = "Mining Airlock"
|
||||
@@ -344,6 +395,8 @@
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_min
|
||||
glass = 1
|
||||
req_one_access = list(access_mining)
|
||||
open_sound_powered = 'sound/machines/door/cgo1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/cgo1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_atmos
|
||||
name = "Atmospherics Airlock"
|
||||
@@ -355,6 +408,8 @@
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_atmo
|
||||
glass = 1
|
||||
req_one_access = list(access_atmospherics)
|
||||
open_sound_powered = 'sound/machines/door/eng1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/eng1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/gold
|
||||
name = "Gold Airlock"
|
||||
@@ -435,6 +490,8 @@
|
||||
icon = 'icons/obj/doors/Doorsci.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_science
|
||||
req_one_access = list(access_research)
|
||||
open_sound_powered = 'sound/machines/door/sci1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/sci1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/glass_science
|
||||
name = "Glass Airlocks"
|
||||
@@ -443,6 +500,8 @@
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_science
|
||||
glass = 1
|
||||
req_one_access = list(access_research)
|
||||
open_sound_powered = 'sound/machines/door/sci1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/sci1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/highsecurity
|
||||
name = "Secure Airlock"
|
||||
@@ -451,6 +510,8 @@
|
||||
secured_wires = 1
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity
|
||||
req_one_access = list(access_heads_vault)
|
||||
open_sound_powered = 'sound/machines/door/secure1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/secure1c.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/voidcraft
|
||||
name = "voidcraft hatch"
|
||||
@@ -460,11 +521,15 @@
|
||||
opacity = 0
|
||||
glass = 1
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft
|
||||
open_sound_powered = 'sound/machines/door/shuttle1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/shuttle1c.ogg'
|
||||
|
||||
// Airlock opens from top-bottom instead of left-right.
|
||||
/obj/machinery/door/airlock/voidcraft/vertical
|
||||
icon = 'icons/obj/doors/shuttledoors_vertical.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft/vertical
|
||||
open_sound_powered = 'sound/machines/door/shuttle1o.ogg'
|
||||
close_sound_powered = 'sound/machines/door/shuttle1c.ogg'
|
||||
|
||||
|
||||
/datum/category_item/catalogue/anomalous/precursor_a/alien_airlock
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
appearance_flags = 0
|
||||
var/obj/machinery/filler_object/filler1
|
||||
var/obj/machinery/filler_object/filler2
|
||||
open_sound_powered = 'sound/machines/door/WideOpen.ogg'
|
||||
close_sound_powered = 'sound/machines/door/WideClose.ogg'
|
||||
|
||||
/obj/machinery/door/airlock/multi_tile/New()
|
||||
..()
|
||||
|
||||
@@ -810,6 +810,7 @@ GLOBAL_LIST_BOILERPLATE(allCasters, /obj/machinery/newscaster)
|
||||
var/scribble=""
|
||||
var/scribble_page = null
|
||||
drop_sound = 'sound/items/drop/wrapper.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wrapper.ogg'
|
||||
|
||||
obj/item/weapon/newspaper/attack_self(mob/user as mob)
|
||||
if(ishuman(user))
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
/obj/item/clothing/shoes/brown = 5,
|
||||
/obj/item/clothing/shoes/laceup = 5,
|
||||
/obj/item/clothing/shoes/green = 5,
|
||||
/obj/item/clothing/shoes/leather = 5,
|
||||
/obj/item/clothing/shoes/laceup/brown = 5,
|
||||
/obj/item/clothing/shoes/orange = 5,
|
||||
/obj/item/clothing/shoes/purple = 5,
|
||||
/obj/item/clothing/shoes/red = 5,
|
||||
@@ -228,7 +228,7 @@
|
||||
/obj/item/clothing/shoes/brown = 50,
|
||||
/obj/item/clothing/shoes/laceup = 50,
|
||||
/obj/item/clothing/shoes/green = 50,
|
||||
/obj/item/clothing/shoes/leather = 50,
|
||||
/obj/item/clothing/shoes/laceup/brown = 50,
|
||||
/obj/item/clothing/shoes/orange = 50,
|
||||
/obj/item/clothing/shoes/purple = 50,
|
||||
/obj/item/clothing/shoes/red = 50,
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
name = "rolled-up poster"
|
||||
desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface."
|
||||
icon_state = "rolled_poster"
|
||||
drop_sound = 'sound/items/drop/wrapper.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wrapper.ogg'
|
||||
var/serial_number = null
|
||||
|
||||
var/poster_type = /obj/structure/sign/poster
|
||||
|
||||
@@ -11,7 +11,9 @@ Portals do have some specific requirements when mapping them in;
|
||||
- Each side must face opposite directions, e.g. if side A faces SOUTH, side B must face NORTH.
|
||||
- Clarification on the above - you will be moved in the direction that the portal faces.
|
||||
If Side A faces south, you will be moved south. Dirs are 1/2/4/8, 1: NORTH, 2: SOUTH, 4: EAST, 8: WEST.
|
||||
- You must have 1 tile of 'buffer' space between turfs or you may see odd visual distortions. If things look weird, move your 'portals' back by one tile.
|
||||
To further explain: If your cave entrance is on the NORTH side of the map on ENTRY side, and SOUTH side on EXIT side:
|
||||
You will need to set the ENTRY side's dir to 2, IE SOUTH, as that's the direction you will moving coming FROM the EXIT side.
|
||||
IE: Directions should be set based on the direction of travel.
|
||||
- Each side must have the same orientation, e.g. horizontal on both sides, or vertical on both sides.
|
||||
- Portals can be made to be longer than 1x1 with `/obj/effect/map_effect/portal/line`s,
|
||||
but both sides must have the same length.
|
||||
@@ -344,4 +346,4 @@ when portals are shortly lived, or when portals are made to be obvious with spec
|
||||
|
||||
/obj/effect/map_effect/portal/line/side_b
|
||||
name = "portal line B"
|
||||
icon_state = "portal_line_side_b"
|
||||
icon_state = "portal_line_side_b"
|
||||
|
||||
@@ -91,8 +91,16 @@
|
||||
|
||||
var/icon/default_worn_icon //Default on-mob icon
|
||||
var/worn_layer //Default on-mob layer
|
||||
|
||||
var/drop_sound = 'sound/items/drop/device.ogg' // drop sound - this is the default
|
||||
|
||||
// Pickup/Drop/Equip/Throw Sounds
|
||||
///Used when thrown into a mob
|
||||
var/mob_throw_hit_sound
|
||||
// Sound used when equipping the items into a valid slot.
|
||||
var/equip_sound
|
||||
// pickup sound - this is the default
|
||||
var/pickup_sound = 'sound/items/pickup/device.ogg'
|
||||
// drop sound - this is the default
|
||||
var/drop_sound = 'sound/items/drop/device.ogg'
|
||||
|
||||
var/tip_timer // reference to timer id for a tooltip we might open soon
|
||||
|
||||
@@ -278,10 +286,29 @@
|
||||
/obj/item/proc/moved(mob/user as mob, old_loc as turf)
|
||||
return
|
||||
|
||||
/obj/item/proc/get_volume_by_throwforce_and_or_w_class() // This is used for figuring out how loud our sounds are for throwing.
|
||||
if(throwforce && w_class)
|
||||
return CLAMP((throwforce + w_class) * 5, 30, 100)// Add the item's throwforce to its weight class and multiply by 5, then clamp the value between 30 and 100
|
||||
else if(w_class)
|
||||
return CLAMP(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/item/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
if(drop_sound)
|
||||
playsound(src, drop_sound, 50, 0, preference = /datum/client_preference/drop_sounds)
|
||||
if(isliving(hit_atom)) //Living mobs handle hit sounds differently.
|
||||
var/volume = get_volume_by_throwforce_and_or_w_class()
|
||||
if (throwforce > 0)
|
||||
if (mob_throw_hit_sound)
|
||||
playsound(hit_atom, mob_throw_hit_sound, volume, TRUE, -1)
|
||||
else if(hitsound)
|
||||
playsound(hit_atom, hitsound, volume, TRUE, -1)
|
||||
else
|
||||
playsound(hit_atom, 'sound/weapons/genhit.ogg', volume, TRUE, -1)
|
||||
else
|
||||
playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1)
|
||||
else
|
||||
playsound(src, drop_sound, 30, preference = /datum/client_preference/drop_sounds)
|
||||
|
||||
// apparently called whenever an item is removed from a slot, container, or anything else.
|
||||
/obj/item/proc/dropped(mob/user as mob)
|
||||
@@ -318,6 +345,13 @@
|
||||
user.position_hud_item(src,slot)
|
||||
if(user.client) user.client.screen |= src
|
||||
if(user.pulling == src) user.stop_pulling()
|
||||
if((slot_flags & slot))
|
||||
if(equip_sound)
|
||||
playsound(src, equip_sound, 30)
|
||||
else
|
||||
playsound(src, drop_sound, 30)
|
||||
else if(slot == slot_l_hand || slot == slot_r_hand)
|
||||
playsound(src, pickup_sound, 20, preference = /datum/client_preference/pickup_sounds)
|
||||
return
|
||||
|
||||
//Defines which slots correspond to which slot flags
|
||||
|
||||
@@ -51,6 +51,8 @@ var/list/civilian_cartridges = list(
|
||||
icon_state = "cart"
|
||||
item_state = "electronic"
|
||||
w_class = ITEMSIZE_TINY
|
||||
drop_sound = 'sound/items/drop/component.ogg'
|
||||
pickup_sound = 'sound/items/pickup/component.ogg'
|
||||
|
||||
var/obj/item/radio/integrated/radio = null
|
||||
var/access_security = 0
|
||||
|
||||
@@ -239,6 +239,8 @@
|
||||
desc = "A pen-sized light, used by medical staff."
|
||||
icon_state = "penlight"
|
||||
item_state = "pen"
|
||||
drop_sound = 'sound/items/drop/accessory.ogg'
|
||||
pickup_sound = 'sound/items/pickup/accessory.ogg'
|
||||
slot_flags = SLOT_EARS
|
||||
brightness_on = 2
|
||||
w_class = ITEMSIZE_TINY
|
||||
@@ -330,6 +332,8 @@
|
||||
var/on_damage = 7
|
||||
var/produce_heat = 1500
|
||||
power_use = 0
|
||||
drop_sound = 'sound/items/drop/gloves.ogg'
|
||||
pickup_sound = 'sound/items/pickup/gloves.ogg'
|
||||
|
||||
/obj/item/device/flashlight/flare/New()
|
||||
fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds.
|
||||
|
||||
@@ -7,13 +7,15 @@
|
||||
/obj/item/device/multitool
|
||||
name = "multitool"
|
||||
desc = "Used for pulsing wires to test which to cut. Not recommended by doctors."
|
||||
description_info = "You can use this on airlocks or APCs to try to hack them without cutting wires."
|
||||
icon_state = "multitool"
|
||||
force = 5.0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throwforce = 5.0
|
||||
throw_range = 15
|
||||
throw_speed = 3
|
||||
desc = "You can use this on airlocks or APCs to try to hack them without cutting wires."
|
||||
drop_sound = 'sound/items/drop/multitool.ogg'
|
||||
pickup_sound = 'sound/items/pickup/multitool.ogg'
|
||||
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
channels = list("Command" = 1)
|
||||
|
||||
/obj/item/device/encryptionkey/heads/captain
|
||||
name = "colony director's encryption key"
|
||||
name = "site manager's encryption key"
|
||||
icon_state = "cap_cypherkey"
|
||||
channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1)
|
||||
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
var/obj/item/device/encryptionkey/keyslot2 = null
|
||||
var/ks1type = null
|
||||
var/ks2type = null
|
||||
|
||||
drop_sound = 'sound/items/drop/component.ogg'
|
||||
pickup_sound = 'sound/items/pickup/component.ogg'
|
||||
|
||||
/obj/item/device/radio/headset/New()
|
||||
..()
|
||||
@@ -173,13 +176,13 @@
|
||||
|
||||
|
||||
/obj/item/device/radio/headset/heads/captain
|
||||
name = "colony director's headset"
|
||||
name = "site manager's headset"
|
||||
desc = "The headset of the boss."
|
||||
icon_state = "com_headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/captain
|
||||
|
||||
/obj/item/device/radio/headset/heads/captain/alt
|
||||
name = "colony director's bowman headset"
|
||||
name = "site manager's bowman headset"
|
||||
desc = "The headset of the boss."
|
||||
icon_state = "com_headset_alt"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/captain
|
||||
@@ -255,13 +258,13 @@
|
||||
|
||||
/obj/item/device/radio/headset/heads/hop
|
||||
name = "head of personnel's headset"
|
||||
desc = "The headset of the guy who will one day be Colony Director."
|
||||
desc = "The headset of the guy who will one day be Site Manager."
|
||||
icon_state = "com_headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/hop
|
||||
|
||||
/obj/item/device/radio/headset/heads/hop/alt
|
||||
name = "head of personnel's bowman headset"
|
||||
desc = "The headset of the guy who will one day be Colony Director."
|
||||
desc = "The headset of the guy who will one day be Site Manager."
|
||||
icon_state = "com_headset_alt"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/hop
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
flags = NOBLUDGEON
|
||||
var/list/accept_mobs = list(/mob/living/simple_mob/animal/passive/lizard, /mob/living/simple_mob/animal/passive/mouse, /mob/living/simple_mob/animal/sif/leech, /mob/living/simple_mob/animal/sif/frostfly, /mob/living/simple_mob/animal/sif/glitterfly)
|
||||
var/contains = 0 // 0 = nothing, 1 = money, 2 = animal, 3 = spiderling
|
||||
drop_sound = 'sound/items/drop/glass.ogg'
|
||||
pickup_sound = 'sound/items/pickup/glass.ogg'
|
||||
|
||||
/obj/item/glass_jar/New()
|
||||
..()
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
var/heal_brute = 0
|
||||
var/heal_burn = 0
|
||||
var/apply_sounds
|
||||
drop_sound = 'sound/items/drop/box.ogg'
|
||||
drop_sound = 'sound/items/drop/cardboardbox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
|
||||
|
||||
var/upgrade_to // The type path this stack can be upgraded to.
|
||||
|
||||
@@ -155,6 +156,7 @@
|
||||
no_variants = FALSE
|
||||
apply_sounds = list('sound/effects/rip1.ogg','sound/effects/rip2.ogg')
|
||||
drop_sound = 'sound/items/drop/gloves.ogg'
|
||||
pickup_sound = 'sound/items/pickup/gloves.ogg'
|
||||
|
||||
upgrade_to = /obj/item/stack/medical/advanced/bruise_pack
|
||||
|
||||
@@ -230,6 +232,7 @@
|
||||
no_variants = FALSE
|
||||
apply_sounds = list('sound/effects/ointment.ogg')
|
||||
drop_sound = 'sound/items/drop/herb.ogg'
|
||||
pickup_sound = 'sound/items/pickup/herb.ogg'
|
||||
|
||||
/obj/item/stack/medical/ointment/attack(mob/living/carbon/M as mob, mob/user as mob)
|
||||
if(..())
|
||||
@@ -379,6 +382,7 @@
|
||||
amount = 5
|
||||
max_amount = 5
|
||||
drop_sound = 'sound/items/drop/hat.ogg'
|
||||
pickup_sound = 'sound/items/pickup/hat.ogg'
|
||||
|
||||
var/list/splintable_organs = list(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_GROIN, BP_TORSO) //List of organs you can splint, natch.
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
throwforce = 15.0
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
drop_sound = 'sound/items/drop/metalweapon.ogg'
|
||||
pickup_sound = 'sound/items/pickup/metalweapon.ogg'
|
||||
matter = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 2)
|
||||
max_amount = 60
|
||||
attack_verb = list("hit", "bludgeoned", "whacked")
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
var/is_reinforced = 0
|
||||
default_type = "glass"
|
||||
drop_sound = 'sound/items/drop/glass.ogg'
|
||||
pickup_sound = 'sound/items/pickup/glass.ogg'
|
||||
|
||||
/obj/item/stack/material/glass/attack_self(mob/user as mob)
|
||||
construct_window(user)
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
singular_name = "human skin piece"
|
||||
icon_state = "sheet-hide"
|
||||
no_variants = FALSE
|
||||
drop_sound = 'sound/items/drop/clothing.ogg'
|
||||
drop_sound = 'sound/items/drop/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
|
||||
/obj/item/stack/animalhide/human
|
||||
amount = 50
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
max_amount = 60
|
||||
drop_sound = 'sound/items/drop/axe.ogg'
|
||||
pickup_sound = 'sound/items/pickup/axe.ogg'
|
||||
|
||||
/obj/item/stack/tile/New()
|
||||
..()
|
||||
@@ -39,6 +40,7 @@
|
||||
origin_tech = list(TECH_BIO = 1)
|
||||
no_variants = FALSE
|
||||
drop_sound = 'sound/items/drop/herb.ogg'
|
||||
pickup_sound = 'sound/items/pickup/herb.ogg'
|
||||
/*
|
||||
* Wood
|
||||
*/
|
||||
@@ -54,6 +56,7 @@
|
||||
flags = 0
|
||||
no_variants = FALSE
|
||||
drop_sound = 'sound/items/drop/wooden.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wooden.ogg'
|
||||
|
||||
/obj/item/stack/tile/wood/sif
|
||||
name = "alien wood tile"
|
||||
@@ -83,7 +86,8 @@
|
||||
throw_range = 20
|
||||
flags = 0
|
||||
no_variants = FALSE
|
||||
drop_sound = 'sound/items/drop/clothing.ogg'
|
||||
drop_sound = 'sound/items/drop/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
|
||||
/obj/item/stack/tile/carpet/teal
|
||||
name = "teal carpet"
|
||||
|
||||
@@ -458,8 +458,8 @@
|
||||
toysay = "Dude, I see colors..."
|
||||
|
||||
/obj/item/toy/figure/captain
|
||||
name = "Colony Director action figure"
|
||||
desc = "A \"Space Life\" brand Colony Director action figure."
|
||||
name = "Site Manager action figure"
|
||||
desc = "A \"Space Life\" brand Site Manager action figure."
|
||||
icon_state = "captain"
|
||||
toysay = "How do I open this display case?"
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
w_class = ITEMSIZE_SMALL
|
||||
desc = "This is rubbish."
|
||||
drop_sound = 'sound/items/drop/wrapper.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wrapper.ogg'
|
||||
var/age = 0
|
||||
|
||||
/obj/item/trash/New(var/newloc, var/_age)
|
||||
@@ -75,6 +76,7 @@
|
||||
name = "Moghes Imported Sissalik Jerky tin"
|
||||
icon_state = "unathitinred"
|
||||
drop_sound = 'sound/items/drop/soda.ogg'
|
||||
pickup_sound = 'sound/items/pickup/soda.ogg'
|
||||
|
||||
/obj/item/trash/syndi_cakes
|
||||
name = "syndi cakes box"
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
icon = 'icons/obj/tools.dmi'
|
||||
icon_state = "rcd"
|
||||
item_state = "rcd"
|
||||
drop_sound = 'sound/items/drop/gun.ogg'
|
||||
pickup_sound = 'sound/items/pickup/gun.ogg'
|
||||
flags = NOBLUDGEON
|
||||
force = 10
|
||||
throwforce = 10
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
desc = "a red pillar candle. Its specially-formulated fuel-oxidizer wax mixture allows continued combustion in airless environments."
|
||||
icon = 'icons/obj/candle.dmi'
|
||||
icon_state = "candle1"
|
||||
drop_sound = 'sound/items/drop/gloves.ogg'
|
||||
pickup_sound = 'sound/items/pickup/gloves.ogg'
|
||||
w_class = ITEMSIZE_TINY
|
||||
light_color = "#E09D37"
|
||||
var/wax = 2000
|
||||
|
||||
@@ -34,7 +34,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
origin_tech = list(TECH_MATERIAL = 1)
|
||||
slot_flags = SLOT_EARS
|
||||
attack_verb = list("burnt", "singed")
|
||||
drop_sound = null
|
||||
drop_sound = 'sound/items/drop/food.ogg'
|
||||
pickup_sound = 'sound/items/pickup/food.ogg'
|
||||
|
||||
/obj/item/weapon/flame/match/process()
|
||||
if(isliving(loc))
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
var/colour = "red"
|
||||
var/open = 0
|
||||
drop_sound = 'sound/items/drop/glass.ogg'
|
||||
pickup_sound = 'sound/items/pickup/glass.ogg'
|
||||
|
||||
/obj/item/weapon/lipstick/purple
|
||||
name = "purple lipstick"
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
if(istype(M,/mob/living))
|
||||
var/mob/living/L = M
|
||||
L.apply_effect(rand(5,20), IRRADIATE, check_protection = 0)
|
||||
L.apply_damage(max(2,L.getCloneLoss()), CLONE)
|
||||
L.apply_damage(max(2,L.getCloneLoss()), CLONE)
|
||||
|
||||
if (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
|
||||
if (buf.types & DNA2_BUF_UI)
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
/obj/item/weapon/dnainjector/xraymut
|
||||
name = "\improper DNA injector (Xray)"
|
||||
desc = "Finally you can see what the Colony Director does."
|
||||
desc = "Finally you can see what the Site Manager does."
|
||||
datatype = DNA2_BUF_SE
|
||||
value = 0xFFF
|
||||
//block = 8
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90)
|
||||
attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed")
|
||||
drop_sound = 'sound/items/drop/gascan.ogg'
|
||||
pickup_sound = 'sound/items/pickup/gascan.ogg'
|
||||
|
||||
var/spray_particles = 3
|
||||
var/spray_amount = 10 //units of liquid per particle
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "gift1"
|
||||
item_state = "gift1"
|
||||
drop_sound = 'sound/items/drop/box.ogg'
|
||||
drop_sound = 'sound/items/drop/cardboardbox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
|
||||
|
||||
/obj/item/weapon/a_gift/New()
|
||||
..()
|
||||
@@ -125,6 +126,8 @@
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "wrap_paper"
|
||||
var/amount = 20.0
|
||||
drop_sound = 'sound/items/drop/wrapper.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wrapper.ogg'
|
||||
|
||||
/obj/item/weapon/wrapping_paper/attackby(obj/item/weapon/W as obj, mob/living/user as mob)
|
||||
..()
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve
|
||||
desc = "Use of this weapon may constiute a war crime in your area, consult your local Colony Director."
|
||||
desc = "Use of this weapon may constiute a war crime in your area, consult your local Site Manager."
|
||||
name = "clusterbang"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang"
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
origin_tech = list(TECH_MATERIAL = 1)
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 500)
|
||||
drop_sound = 'sound/items/drop/accessory.ogg'
|
||||
pickup_sound = 'sound/items/pickup/accessory.ogg'
|
||||
var/elastic
|
||||
var/dispenser = 0
|
||||
var/breakouttime = 1200 //Deciseconds = 120s = 2 minutes
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
var/list/files = list( )
|
||||
drop_sound = 'sound/items/drop/card.ogg'
|
||||
pickup_sound = 'sound/items/pickup/card.ogg'
|
||||
|
||||
/obj/item/weapon/card/data
|
||||
name = "data disk"
|
||||
@@ -30,6 +31,8 @@
|
||||
var/data = "null"
|
||||
var/special = null
|
||||
item_state = "card-id"
|
||||
drop_sound = 'sound/items/drop/disk.ogg'
|
||||
pickup_sound = 'sound/items/pickup/disk.ogg'
|
||||
|
||||
/obj/item/weapon/card/data/verb/label(t as text)
|
||||
set name = "Label Disk"
|
||||
|
||||
@@ -138,13 +138,13 @@
|
||||
preserve_item = 1
|
||||
|
||||
/obj/item/weapon/card/id/gold/captain
|
||||
assignment = "Colony Director"
|
||||
rank = "Colony Director"
|
||||
assignment = "Site Manager"
|
||||
rank = "Site Manager"
|
||||
|
||||
/obj/item/weapon/card/id/gold/captain/spare
|
||||
name = "\improper Colony Director's spare ID"
|
||||
name = "\improper Site Manager's spare ID"
|
||||
desc = "The spare ID of the High Lord himself."
|
||||
registered_name = "Colony Director"
|
||||
registered_name = "Site Manager"
|
||||
|
||||
/obj/item/weapon/card/id/synthetic
|
||||
name = "\improper Synthetic ID"
|
||||
|
||||
@@ -1136,7 +1136,7 @@
|
||||
|
||||
Remember the order:<br>
|
||||
<b>Disk, Code, Safety, Timer, Disk, RUN!</b><br><br>
|
||||
Intelligence Analysts believe that normal corporate procedure is for the Colony Director to secure the nuclear authentication disk.<br><br>
|
||||
Intelligence Analysts believe that normal corporate procedure is for the Site Manager to secure the nuclear authentication disk.<br><br>
|
||||
|
||||
Good luck!
|
||||
</body>
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
* Utensils
|
||||
*/
|
||||
/obj/item/weapon/material/kitchen/utensil
|
||||
drop_sound = 'sound/items/drop/knife.ogg'
|
||||
pickup_sound = 'sound/items/pickup/knife.ogg'
|
||||
w_class = ITEMSIZE_TINY
|
||||
thrown_force_divisor = 1
|
||||
origin_tech = list(TECH_MATERIAL = 1)
|
||||
@@ -104,6 +106,7 @@
|
||||
dulled_divisor = 0.75 // Still a club
|
||||
thrown_force_divisor = 1 // as above
|
||||
drop_sound = 'sound/items/drop/wooden.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wooden.ogg'
|
||||
|
||||
/obj/item/weapon/material/kitchen/rollingpin/attack(mob/living/M as mob, mob/living/user as mob)
|
||||
if ((CLUMSY in user.mutations) && prob(50))
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
force_divisor = 0.25 // 15 when wielded with hardness 60 (steel)
|
||||
thrown_force_divisor = 0.25 // 5 when thrown with weight 20 (steel)
|
||||
drop_sound = 'sound/items/drop/knife.ogg'
|
||||
pickup_sound = 'sound/items/pickup/knife.ogg'
|
||||
|
||||
/obj/item/weapon/material/butterfly/update_force()
|
||||
if(active)
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
attack_verb = list("chopped", "torn", "cut")
|
||||
applies_material_colour = 0
|
||||
drop_sound = 'sound/items/drop/axe.ogg'
|
||||
pickup_sound = 'sound/items/pickup/axe.ogg'
|
||||
|
||||
/obj/item/weapon/material/knife/machete/hatchet/unathiknife
|
||||
name = "duelling knife"
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
drop_sound = 'sound/items/drop/sword.ogg'
|
||||
pickup_sound = 'sound/items/pickup/sword.ogg'
|
||||
|
||||
/obj/item/weapon/material/sword/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
|
||||
if(unique_parry_check(user, attacker, damage_source) && prob(50))
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
var/base_icon
|
||||
var/base_name
|
||||
var/unwielded_force_divisor = 0.25
|
||||
hitsound = "swing_hit"
|
||||
drop_sound = 'sound/items/drop/sword.ogg'
|
||||
pickup_sound = 'sound/items/pickup/sword.ogg'
|
||||
|
||||
/obj/item/weapon/material/twohanded/update_held_icon()
|
||||
var/mob/living/M = loc
|
||||
@@ -96,6 +99,7 @@
|
||||
applies_material_colour = 0
|
||||
can_cleave = TRUE
|
||||
drop_sound = 'sound/items/drop/axe.ogg'
|
||||
pickup_sound = 'sound/items/pickup/axe.ogg'
|
||||
|
||||
/obj/item/weapon/material/twohanded/fireaxe/update_held_icon()
|
||||
var/mob/living/M = loc
|
||||
@@ -152,6 +156,7 @@
|
||||
edge = 0
|
||||
sharp = 1
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
mob_throw_hit_sound = 'sound/weapons/pierce.ogg'
|
||||
attack_verb = list("attacked", "poked", "jabbed", "torn", "gored")
|
||||
default_material = "glass"
|
||||
applies_material_colour = 0
|
||||
|
||||
@@ -279,6 +279,8 @@
|
||||
sharp = 1
|
||||
edge = 1
|
||||
colorable = TRUE
|
||||
drop_sound = 'sound/items/drop/sword.ogg'
|
||||
pickup_sound = 'sound/items/pickup/sword.ogg'
|
||||
|
||||
|
||||
projectile_parry_chance = 65
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
var/flippable = 0
|
||||
var/side = 0 //0 = right, 1 = left
|
||||
drop_sound = 'sound/items/drop/backpack.ogg'
|
||||
pickup_sound = 'sound/items/pickup/backpack.ogg'
|
||||
|
||||
|
||||
/obj/item/weapon/storage/backpack/equipped(var/mob/user, var/slot)
|
||||
@@ -92,7 +93,7 @@
|
||||
icon_state = "securitypack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/captain
|
||||
name = "colony director's backpack"
|
||||
name = "site manager's backpack"
|
||||
desc = "It's a special backpack made exclusively for officers."
|
||||
icon_state = "captainpack"
|
||||
|
||||
@@ -154,7 +155,7 @@
|
||||
icon_state = "duffle_syndieammo"
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/captain
|
||||
name = "colony director's dufflebag"
|
||||
name = "site manager's dufflebag"
|
||||
desc = "A large dufflebag for holding extra captainly goods."
|
||||
icon_state = "duffle_captain"
|
||||
|
||||
@@ -249,7 +250,7 @@
|
||||
icon_state = "satchel_hyd"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/cap
|
||||
name = "colony director's satchel"
|
||||
name = "site manager's satchel"
|
||||
desc = "An exclusive satchel for officers."
|
||||
icon_state = "satchel-cap"
|
||||
item_state_slots = list(slot_r_hand_str = "captainpack", slot_l_hand_str = "captainpack")
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
use_to_pickup = 1
|
||||
slot_flags = SLOT_BELT
|
||||
drop_sound = 'sound/items/drop/backpack.ogg'
|
||||
pickup_sound = 'sound/items/pickup/backpack.ogg'
|
||||
|
||||
// -----------------------------
|
||||
// Trash bag
|
||||
@@ -35,6 +36,7 @@
|
||||
icon_state = "trashbag0"
|
||||
item_state_slots = list(slot_r_hand_str = "trashbag", slot_l_hand_str = "trashbag")
|
||||
drop_sound = 'sound/items/drop/wrapper.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wrapper.ogg'
|
||||
|
||||
w_class = ITEMSIZE_LARGE
|
||||
max_w_class = ITEMSIZE_SMALL
|
||||
@@ -62,6 +64,7 @@
|
||||
icon = 'icons/obj/trash.dmi'
|
||||
icon_state = "plasticbag"
|
||||
drop_sound = 'sound/items/drop/wrapper.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wrapper.ogg'
|
||||
|
||||
w_class = ITEMSIZE_LARGE
|
||||
max_w_class = ITEMSIZE_SMALL
|
||||
|
||||
@@ -8,8 +8,10 @@
|
||||
max_w_class = ITEMSIZE_NORMAL
|
||||
slot_flags = SLOT_BELT
|
||||
attack_verb = list("whipped", "lashed", "disciplined")
|
||||
equip_sound = 'sound/items/toolbelt_equip.ogg'
|
||||
drop_sound = 'sound/items/drop/toolbelt.ogg'
|
||||
pickup_sound = 'sound/items/pickup/toolbelt.ogg'
|
||||
sprite_sheets = list(SPECIES_TESHARI = 'icons/mob/species/seromi/belt.dmi')
|
||||
drop_sound = 'sound/items/drop/leather.ogg'
|
||||
|
||||
var/show_above_suit = 0
|
||||
|
||||
|
||||
@@ -30,7 +30,8 @@
|
||||
max_w_class = ITEMSIZE_SMALL
|
||||
max_storage_space = INVENTORY_BOX_SPACE
|
||||
use_sound = 'sound/items/storage/box.ogg'
|
||||
drop_sound = 'sound/items/drop/box.ogg'
|
||||
drop_sound = 'sound/items/drop/cardboardbox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
|
||||
|
||||
// BubbleWrap - A box can be folded up to make card
|
||||
/obj/item/weapon/storage/box/attack_self(mob/user as mob)
|
||||
@@ -137,6 +138,8 @@
|
||||
icon_state = "blankshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/blank = 8)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/blanks/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/blank = 16)
|
||||
@@ -147,6 +150,8 @@
|
||||
icon_state = "beanshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 8)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/beanbags/large/New()
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 16)
|
||||
@@ -157,6 +162,8 @@
|
||||
icon_state = "lethalshellshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g = 8)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/shotgunammo/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g = 16)
|
||||
@@ -167,6 +174,8 @@
|
||||
icon_state = "lethalslug_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/pellet = 8)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/shotgunshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/pellet = 16)
|
||||
@@ -177,6 +186,8 @@
|
||||
icon_state = "illumshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/flash = 8)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/flashshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/flash = 16)
|
||||
@@ -187,6 +198,8 @@
|
||||
icon_state = "stunshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 8)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/stunshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 16)
|
||||
@@ -197,6 +210,8 @@
|
||||
icon_state = "blankshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/practice = 8)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/practiceshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/practice = 16)
|
||||
@@ -207,6 +222,8 @@
|
||||
icon_state = "empshot_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/emp = 8)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/empshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/emp = 16)
|
||||
@@ -217,6 +234,8 @@
|
||||
icon_state = "lethalslug_box"
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/flechette = 8)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/flechetteshells/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/flechette = 16)
|
||||
@@ -225,6 +244,8 @@
|
||||
name = "box of 14.5mm shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
starts_with = list(/obj/item/ammo_casing/a145 = 7)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/sniperammo/highvel
|
||||
name = "box of 14.5mm sabot shells"
|
||||
@@ -236,42 +257,56 @@
|
||||
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.</B>"
|
||||
icon_state = "flashbang"
|
||||
starts_with = list(/obj/item/weapon/grenade/flashbang = 7)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/emps
|
||||
name = "box of emp grenades"
|
||||
desc = "A box containing 5 military grade EMP grenades.<br> WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur."
|
||||
icon_state = "emp"
|
||||
starts_with = list(/obj/item/weapon/grenade/empgrenade = 7)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/empslite
|
||||
name = "box of low yield emp grenades"
|
||||
desc = "A box containing 5 low yield EMP grenades.<br> WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur."
|
||||
icon_state = "emp"
|
||||
starts_with = list(/obj/item/weapon/grenade/empgrenade/low_yield = 7)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/smokes
|
||||
name = "box of smoke bombs"
|
||||
desc = "A box containing 7 smoke bombs."
|
||||
icon_state = "flashbang"
|
||||
starts_with = list(/obj/item/weapon/grenade/smokebomb = 7)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/anti_photons
|
||||
name = "box of anti-photon grenades"
|
||||
desc = "A box containing 7 experimental photon disruption grenades."
|
||||
icon_state = "flashbang"
|
||||
starts_with = list(/obj/item/weapon/grenade/anti_photon = 7)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/frags
|
||||
name = "box of fragmentation grenades (WARNING)"
|
||||
desc = "A box containing 7 military grade fragmentation grenades.<br> WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use."
|
||||
icon_state = "frag"
|
||||
starts_with = list(/obj/item/weapon/grenade/explosive = 7)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/frags_half_box
|
||||
name = "box of fragmentation grenades (WARNING)"
|
||||
desc = "A box containing 4 military grade fragmentation grenades.<br> WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use."
|
||||
icon_state = "frag"
|
||||
starts_with = list(/obj/item/weapon/grenade/explosive = 4)
|
||||
drop_sound = 'sound/items/drop/ammobox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/metalfoam
|
||||
name = "box of metal foam grenades."
|
||||
@@ -434,6 +469,8 @@
|
||||
slot_flags = SLOT_BELT
|
||||
can_hold = list(/obj/item/weapon/flame/match)
|
||||
starts_with = list(/obj/item/weapon/flame/match = 10)
|
||||
drop_sound = 'sound/items/drop/matchbox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/matchbox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/box/matches/attackby(var/obj/item/weapon/flame/match/W, var/mob/user)
|
||||
if(istype(W) && !W.lit && !W.burnt)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
max_storage_space = ITEMSIZE_COST_NORMAL * 4
|
||||
use_sound = 'sound/items/storage/briefcase.ogg'
|
||||
drop_sound = 'sound/items/drop/backpack.ogg'
|
||||
pickup_sound = 'sound/items/pickup/backpack.ogg'
|
||||
|
||||
/obj/item/weapon/storage/briefcase/clutch
|
||||
name = "clutch purse"
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
icon_state = "donutbox6"
|
||||
name = "donut box"
|
||||
var/icon_type = "donut"
|
||||
drop_sound = 'sound/items/drop/cardboardbox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/fancy/update_icon(var/itemremoved = 0)
|
||||
var/total_contents = contents.len - itemremoved
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
throw_range = 8
|
||||
max_storage_space = ITEMSIZE_COST_SMALL * 7 // 14
|
||||
var/list/icon_variety
|
||||
drop_sound = 'sound/items/drop/box.ogg'
|
||||
drop_sound = 'sound/items/drop/cardboardbox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/firstaid/Initialize()
|
||||
. = ..()
|
||||
@@ -175,6 +176,7 @@
|
||||
icon_state = "pill_canister"
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
drop_sound = 'sound/items/drop/pillbottle.ogg'
|
||||
pickup_sound = 'sound/items/pickup/pillbottle.ogg'
|
||||
item_state_slots = list(slot_r_hand_str = "contsolid", slot_l_hand_str = "contsolid")
|
||||
w_class = ITEMSIZE_SMALL
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/dice,/obj/item/weapon/paper)
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
origin_tech = list(TECH_COMBAT = 1)
|
||||
attack_verb = list("robusted")
|
||||
use_sound = 'sound/items/storage/toolbox.ogg'
|
||||
drop_sound = 'sound/items/drop/metalboots.ogg'
|
||||
drop_sound = 'sound/items/drop/toolbox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/toolbox.ogg'
|
||||
|
||||
/obj/item/weapon/storage/toolbox/emergency
|
||||
name = "emergency toolbox"
|
||||
|
||||
@@ -42,6 +42,9 @@
|
||||
slot_flags = SLOT_ID
|
||||
|
||||
var/obj/item/weapon/card/id/front_id = null
|
||||
|
||||
drop_sound = 'sound/items/drop/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
|
||||
/obj/item/weapon/storage/wallet/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
. = ..(W, new_location)
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
throwforce = 7
|
||||
flags = NOCONDUCT
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
drop_sound = 'sound/items/drop/metalweapon.ogg'
|
||||
pickup_sound = 'sound/items/pickup/metalweapon.ogg'
|
||||
origin_tech = list(TECH_COMBAT = 2)
|
||||
attack_verb = list("beaten")
|
||||
var/lightcolor = "#FF6A00"
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
desc = "This shouldn't be here, ahelp it."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
w_class = ITEMSIZE_SMALL
|
||||
drop_sound = 'sound/items/drop/weldingtool.ogg'
|
||||
pickup_sound = 'sound/items/pickup/weldingtool.ogg'
|
||||
var/helpforce = 0 //For help intent things
|
||||
|
||||
/obj/item/weapon/surgical/attack(mob/M, mob/user)
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
item_state = "classic_baton"
|
||||
slot_flags = SLOT_BELT
|
||||
force = 10
|
||||
drop_sound = 'sound/items/drop/crowbar.ogg'
|
||||
pickup_sound = 'sound/items/pickup/crowbar.ogg'
|
||||
|
||||
/obj/item/weapon/melee/classic_baton/attack(mob/M as mob, mob/living/user as mob)
|
||||
if ((CLUMSY in user.mutations) && prob(50))
|
||||
@@ -49,6 +51,8 @@
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
force = 3
|
||||
drop_sound = 'sound/items/drop/crowbar.ogg'
|
||||
pickup_sound = 'sound/items/pickup/crowbar.ogg'
|
||||
var/on = 0
|
||||
|
||||
/obj/item/weapon/melee/telebaton/attack_self(mob/user as mob)
|
||||
|
||||
@@ -11,6 +11,7 @@ var/list/global/tank_gauge_cache = list()
|
||||
SPECIES_TESHARI = 'icons/mob/species/seromi/back.dmi'
|
||||
)
|
||||
drop_sound = 'sound/items/drop/gascan.ogg'
|
||||
pickup_sound = 'sound/items/pickup/gascan.ogg'
|
||||
|
||||
var/gauge_icon = "indicator_tank"
|
||||
var/last_gauge_pressure
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "taperoll"
|
||||
w_class = ITEMSIZE_TINY
|
||||
drop_sound = 'sound/items/drop/box.ogg'
|
||||
drop_sound = 'sound/items/drop/cardboardbox.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
|
||||
|
||||
toolspeed = 2 //It is now used in surgery as a not awful, but probably dangerous option, due to speed.
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "combitool"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
drop_sound = 'sound/items/drop/multitool.ogg'
|
||||
pickup_sound = 'sound/items/pickup/multitool.ogg'
|
||||
|
||||
var/list/spawn_tools = list(
|
||||
/obj/item/weapon/tool/screwdriver,
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50)
|
||||
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
|
||||
usesound = 'sound/items/crowbar.ogg'
|
||||
drop_sound = 'sound/items/drop/sword.ogg'
|
||||
drop_sound = 'sound/items/drop/crowbar.ogg'
|
||||
pickup_sound = 'sound/items/pickup/crowbar.ogg'
|
||||
toolspeed = 1
|
||||
|
||||
/obj/item/weapon/tool/crowbar/is_crowbar()
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
throw_range = 5
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
usesound = 'sound/items/screwdriver.ogg'
|
||||
drop_sound = 'sound/items/drop/scrap.ogg'
|
||||
drop_sound = 'sound/items/drop/screwdriver.ogg'
|
||||
pickup_sound = 'sound/items/pickup/screwdriver.ogg'
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 75)
|
||||
attack_verb = list("stabbed")
|
||||
sharp = 1
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG.
|
||||
var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel.
|
||||
toolspeed = 1
|
||||
drop_sound = 'sound/items/drop/scrap.ogg'
|
||||
drop_sound = 'sound/items/drop/weldingtool.ogg'
|
||||
pickup_sound = 'sound/items/pickup/weldingtool.ogg'
|
||||
|
||||
/obj/item/weapon/weldingtool/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
attack_verb = list("pinched", "nipped")
|
||||
hitsound = 'sound/items/wirecutter.ogg'
|
||||
usesound = 'sound/items/wirecutter.ogg'
|
||||
drop_sound = 'sound/items/drop/knife.ogg'
|
||||
drop_sound = 'sound/items/drop/wirecutter.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wirecutter.ogg'
|
||||
sharp = 1
|
||||
edge = 1
|
||||
toolspeed = 1
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
|
||||
usesound = 'sound/items/ratchet.ogg'
|
||||
toolspeed = 1
|
||||
drop_sound = 'sound/items/drop/sword.ogg'
|
||||
drop_sound = 'sound/items/drop/wrench.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wrench.ogg'
|
||||
|
||||
/obj/item/weapon/tool/wrench/is_wrench()
|
||||
return TRUE
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
attack_verb = list("whipped")
|
||||
hitsound = 'sound/weapons/towelwhip.ogg'
|
||||
desc = "A soft cotton towel."
|
||||
drop_sound = 'sound/items/drop/clothing.ogg'
|
||||
drop_sound = 'sound/items/drop/cloth.ogg'
|
||||
pickup_sound = 'sound/items/pickup/cloth.ogg'
|
||||
|
||||
/obj/item/weapon/towel/equipped(var/M, var/slot)
|
||||
..()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user