Merge remote-tracking branch 'VOREStation/master' into upstream-merge-7576

This commit is contained in:
Unknown
2020-08-28 13:30:54 -04:00
500 changed files with 14619 additions and 9723 deletions

View File

@@ -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'\
)

View File

@@ -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

View File

@@ -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, ";")

View File

@@ -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")

View File

@@ -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.
. = ..()

View File

@@ -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.
. = ..()

View File

@@ -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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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

View File

@@ -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)"

View File

@@ -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,

View File

@@ -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"

View File

@@ -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()

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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()
..()

View File

@@ -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.

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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,
)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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>"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -509,4 +509,4 @@
/obj/machinery/computer/secure_data/detective_computer
icon_state = "messyfiles"
#undef FIELD
#undef FIELD

View File

@@ -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)

View File

@@ -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

View File

@@ -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()
..()

View File

@@ -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))

View File

@@ -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,

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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()
..()

View File

@@ -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.

View File

@@ -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")

View File

@@ -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)

View File

@@ -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

View File

@@ -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"

View File

@@ -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?"

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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))

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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)
..()

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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>

View File

@@ -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))

View File

@@ -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)

View File

@@ -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"

View File

@@ -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))

View File

@@ -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

View File

@@ -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

View File

@@ -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")

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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"

View File

@@ -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

View File

@@ -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)

View File

@@ -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"

View File

@@ -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)

View File

@@ -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"

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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.

View File

@@ -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,

View File

@@ -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()

View File

@@ -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

View File

@@ -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()
. = ..()

View File

@@ -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

View File

@@ -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

View File

@@ -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