Merge branch 'master' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-24-08e
@@ -31,16 +31,16 @@ Space Station 13 is a paranoia-laden round-based roleplaying game set against th
|
||||
- If you feel like feedback on a controversial PR is required, you are free to open a [feature request](https://github.com/Bubberstation/Bubberstation/issues/new/choose) under the repository issues page and reference the PR number.
|
||||
|
||||
**3. The Licensing is Non-negotiable**
|
||||
- You are free to take, redistribute, modify, and readapt any code or commit found on this repository.
|
||||
- All code files are under **GNU AGPL V3**
|
||||
- You are free to take, redistribute, modify, and readapt any code or commit found on this repository.
|
||||
- All code files are under **GNU AGPL V3**
|
||||
- All asset files (images and sound) are **CC-BY-SA 3.0** unless otherwise stated
|
||||
- The license information, including the MIT license and its exceptions, can be found at the bottom of this readme.
|
||||
- The license information, including the MIT license and its exceptions, can be found at the bottom of this readme.
|
||||
- What does this mean to our contributors? **The** [GNU AGPL V3](https://www.gnu.org/licenses/agpl-3.0.html) **licensing on this codebase is non-negotiable** and **irrevocable** the moment you open a PR. We are incapable of privatizing this codebase and you are incapable of restricting your code contributions even if you close the PR. Do not open a contribution if you do not feel comfortable with your code being permanent across the entirety of the community. **All contributions are preserved in commit history**
|
||||
- What does this mean to our spriters and sound designers? [CC-BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/) **is the only license that this project will accept**
|
||||
- It is prohibited to use the attribution requirement to [suggest that you endorse or support a particular use](https://creativecommons.org/faq/#do-i-need-to-be-aware-of-anything-else-when-providing-attribution) of your assets.
|
||||
- You are entitled to credit yourself with comments and you are entitled to waive the attribution requirement choosing not to be identified as the creator if you wish.
|
||||
- If you do not like how your assets were modified or used, it is required that the other person [remove the attribution information upon request](https://wiki.creativecommons.org/wiki/License_Versions#Licensors_may_request_removal_of_attribution).
|
||||
- Modifications or adaptions must disclose the source, the author, and [any changes you've made](https://wiki.creativecommons.org/wiki/License_Versions#Modifications_and_adaptations_must_be_indicated).
|
||||
- Modifications or adaptions must disclose the source, the author, and [any changes you've made](https://wiki.creativecommons.org/wiki/License_Versions#Modifications_and_adaptations_must_be_indicated).
|
||||
- Goonstation code is incompatible with this codebase and will not be accepted.
|
||||
|
||||
*Credit: [Goonstation contribution guidelines](https://hackmd.io/@goonstation/docs/%2F%40goonstation%2Fcontribute#What-if-I-change-my-mind-about-my-contributions-being-published)*
|
||||
|
||||
@@ -293,7 +293,7 @@
|
||||
},
|
||||
/area/station/medical/medbay/central)
|
||||
"aei" = (
|
||||
/turf/closed/wall,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/station/maintenance/eva_shed/starboard)
|
||||
"aez" = (
|
||||
/obj/structure/chair/stool/directional/west,
|
||||
@@ -46222,13 +46222,11 @@
|
||||
/obj/machinery/door/airlock/hatch{
|
||||
name = "Port EVA Shed"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/access/all/command/general,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/effect/mapping_helpers/airlock/unres{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
|
||||
/turf/open/floor/catwalk_floor/iron_smooth,
|
||||
/area/station/maintenance/eva_shed/port)
|
||||
"mXO" = (
|
||||
@@ -74511,13 +74509,11 @@
|
||||
/obj/machinery/door/airlock/hatch{
|
||||
name = "Starboard EVA Shed"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/access/all/command/general,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/effect/mapping_helpers/airlock/unres{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
|
||||
/turf/open/floor/catwalk_floor/iron_smooth,
|
||||
/area/station/maintenance/eva_shed/starboard)
|
||||
"uHB" = (
|
||||
@@ -83060,6 +83056,9 @@
|
||||
},
|
||||
/turf/open/floor/iron/smooth_large,
|
||||
/area/station/cargo/storage)
|
||||
"xbS" = (
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/station/maintenance/port/upper)
|
||||
"xcf" = (
|
||||
/obj/structure/flora/grass/jungle,
|
||||
/obj/structure/flora/bush/grassy,
|
||||
@@ -84528,8 +84527,8 @@
|
||||
/turf/open/floor/iron/smooth,
|
||||
/area/station/engineering/atmos)
|
||||
"xxv" = (
|
||||
/turf/closed/wall,
|
||||
/area/station/maintenance/eva_shed/port)
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/station/maintenance/starboard/upper)
|
||||
"xxJ" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
@@ -86413,6 +86412,7 @@
|
||||
pixel_x = 6;
|
||||
pixel_y = -6
|
||||
},
|
||||
/obj/item/storage/box/firingpins,
|
||||
/turf/open/floor/engine,
|
||||
/area/station/ai_monitored/security/armory)
|
||||
"ybE" = (
|
||||
@@ -118528,10 +118528,10 @@ iLQ
|
||||
iLQ
|
||||
odJ
|
||||
odJ
|
||||
jqn
|
||||
jqn
|
||||
xbS
|
||||
xbS
|
||||
mXy
|
||||
jqn
|
||||
xbS
|
||||
iqF
|
||||
iqF
|
||||
iqF
|
||||
@@ -119042,7 +119042,7 @@ ttw
|
||||
ttw
|
||||
ttw
|
||||
ttw
|
||||
xxv
|
||||
aoM
|
||||
pcM
|
||||
cIK
|
||||
ska
|
||||
@@ -119299,10 +119299,10 @@ ttw
|
||||
ttw
|
||||
ttw
|
||||
ttw
|
||||
xxv
|
||||
aoM
|
||||
wcM
|
||||
xxv
|
||||
xxv
|
||||
aoM
|
||||
aoM
|
||||
qVs
|
||||
qVs
|
||||
qVs
|
||||
@@ -119556,7 +119556,7 @@ ttw
|
||||
ttw
|
||||
ttw
|
||||
ttw
|
||||
xxv
|
||||
aoM
|
||||
ska
|
||||
aoM
|
||||
lwq
|
||||
@@ -122639,11 +122639,11 @@ ttw
|
||||
ttw
|
||||
ttw
|
||||
ttw
|
||||
usB
|
||||
usB
|
||||
usB
|
||||
xxv
|
||||
xxv
|
||||
xxv
|
||||
uHz
|
||||
usB
|
||||
xxv
|
||||
iqF
|
||||
iqF
|
||||
iqF
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
#define MEDAL_DEBT_EXTINGUISHED "Debt Extinguished"
|
||||
#define MEDAL_SISYPHUS "Sisyphus"
|
||||
#define MEDAL_ARCHMAGE "Archmage"
|
||||
#define MEDAL_CIGARETTES "Cigarettes"
|
||||
#define MEDAL_THEORETICAL_LIMITS "All Within Theoretical Limits"
|
||||
|
||||
//Skill medal hub IDs
|
||||
|
||||
@@ -175,6 +175,10 @@ SUBSYSTEM_DEF(polling)
|
||||
UNTIL(new_poll.finished)
|
||||
if(!(amount_to_pick > 0))
|
||||
return new_poll.signed_up
|
||||
if(length(new_poll.signed_up) < amount_to_pick)
|
||||
return new_poll.signed_up
|
||||
if(length(new_poll.signed_up) < amount_to_pick)
|
||||
return new_poll.signed_up
|
||||
|
||||
//BUBBERSTATION CHANGE START: ANTAG TICKETS INTEGRATION
|
||||
var/list/candidate_tickets = candidates_to_tickets(new_poll.signed_up)
|
||||
|
||||
@@ -232,3 +232,9 @@
|
||||
desc = "Successfully carry a boulder from Lavaland all the way to Centcom, without ever dropping it. We must imagine you're happy to unlock this."
|
||||
database_id = MEDAL_SISYPHUS
|
||||
icon_state = "sisyphus"
|
||||
|
||||
/datum/award/achievement/misc/cigarettes
|
||||
name = "Unhealthy snacks"
|
||||
desc = "You were curious to taste it. And then another. You must have more!"
|
||||
database_id = MEDAL_CIGARETTES
|
||||
icon_state = "cigarettes"
|
||||
|
||||
@@ -25,11 +25,6 @@
|
||||
icon_state = "sixpack"
|
||||
layers = EXTERNAL_ADJACENT
|
||||
|
||||
///A creampie drawn on the head
|
||||
/datum/bodypart_overlay/simple/creampie
|
||||
icon_state = "creampie_human"
|
||||
layers = EXTERNAL_FRONT
|
||||
|
||||
///bags drawn beneath the eyes
|
||||
/datum/bodypart_overlay/simple/bags
|
||||
icon_state = "bags"
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
GLOBAL_LIST_INIT(creamable, typecacheof(list(
|
||||
/mob/living/carbon/human,
|
||||
/mob/living/basic/pet/dog/corgi,
|
||||
/mob/living/silicon/ai)))
|
||||
|
||||
/**
|
||||
* Creamed component
|
||||
* Face decal component
|
||||
*
|
||||
* For when you have pie on your face
|
||||
* For when you have some dirt on your face
|
||||
*/
|
||||
/datum/component/creamed
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
|
||||
/// Creampie overlay we use for non-carbon mobs
|
||||
|
||||
/datum/component/face_decal
|
||||
dupe_mode = COMPONENT_DUPE_HIGHLANDER
|
||||
/// Overlay we use for non-carbon mobs
|
||||
var/mutable_appearance/normal_overlay
|
||||
/// Creampie bodypart overlay we use for carbon mobs
|
||||
var/datum/bodypart_overlay/simple/creampie/bodypart_overlay
|
||||
/// Cached head for carbons, to ensure proper removal of the creampie overlay
|
||||
/// Bodypart overlay we use for carbon mobs
|
||||
var/datum/bodypart_overlay/simple/bodypart_overlay
|
||||
/// Cached head for carbons, to ensure proper removal of our overlay
|
||||
var/obj/item/bodypart/my_head
|
||||
/// Base icon state we use for the effect
|
||||
var/icon_state
|
||||
/// Layers for the bodypart_overlay to draw on
|
||||
var/layers
|
||||
/// Color that the overlay is modified by
|
||||
var/color
|
||||
|
||||
/datum/component/creamed/Initialize()
|
||||
if(!is_type_in_typecache(parent, GLOB.creamable))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
/datum/component/face_decal/Initialize(icon_state, layers, color)
|
||||
src.icon_state = icon_state
|
||||
src.layers = layers
|
||||
src.color = color
|
||||
|
||||
SEND_SIGNAL(parent, COMSIG_MOB_CREAMED, src)
|
||||
|
||||
add_memory_in_range(parent, 7, /datum/memory/witnessed_creampie, protagonist = parent)
|
||||
|
||||
/datum/component/creamed/Destroy(force)
|
||||
/datum/component/face_decal/Destroy(force)
|
||||
. = ..()
|
||||
normal_overlay = null
|
||||
my_head = null
|
||||
QDEL_NULL(bodypart_overlay)
|
||||
|
||||
/datum/component/creamed/RegisterWithParent()
|
||||
/datum/component/face_decal/RegisterWithParent()
|
||||
if(iscarbon(parent))
|
||||
var/mob/living/carbon/human/carbon_parent = parent
|
||||
my_head = carbon_parent.get_bodypart(BODY_ZONE_HEAD)
|
||||
@@ -39,32 +39,38 @@ GLOBAL_LIST_INIT(creamable, typecacheof(list(
|
||||
qdel(src)
|
||||
return
|
||||
bodypart_overlay = new()
|
||||
bodypart_overlay.layers = layers
|
||||
if(carbon_parent.bodyshape & BODYSHAPE_SNOUTED) //stupid, but external organ bodytypes are not stored on the limb
|
||||
bodypart_overlay.icon_state = "creampie_lizard"
|
||||
bodypart_overlay.icon_state = "[icon_state]_lizard"
|
||||
else if(my_head.bodyshape & BODYSHAPE_MONKEY)
|
||||
bodypart_overlay.icon_state = "creampie_monkey"
|
||||
bodypart_overlay.icon_state = "[icon_state]_monkey"
|
||||
else
|
||||
bodypart_overlay.icon_state = "creampie_human"
|
||||
bodypart_overlay.icon_state = "[icon_state]_human"
|
||||
if (!isnull(color))
|
||||
bodypart_overlay.draw_color = color
|
||||
my_head.add_bodypart_overlay(bodypart_overlay)
|
||||
RegisterSignals(my_head, list(COMSIG_BODYPART_REMOVED, COMSIG_QDELETING), PROC_REF(lost_head))
|
||||
carbon_parent.add_mood_event("creampie", /datum/mood_event/creampie)
|
||||
carbon_parent.update_body_parts()
|
||||
else if(iscorgi(parent))
|
||||
normal_overlay = mutable_appearance('icons/mob/effects/creampie.dmi', "creampie_corgi")
|
||||
else if(isAI(parent))
|
||||
normal_overlay = mutable_appearance('icons/mob/effects/creampie.dmi', "creampie_ai")
|
||||
else
|
||||
normal_overlay = get_normal_overlay()
|
||||
|
||||
RegisterSignals(parent, list(
|
||||
COMSIG_COMPONENT_CLEAN_ACT,
|
||||
COMSIG_COMPONENT_CLEAN_FACE_ACT),
|
||||
PROC_REF(clean_up)
|
||||
)
|
||||
if(normal_overlay)
|
||||
|
||||
if (!isnull(normal_overlay))
|
||||
if (!isnull(color))
|
||||
normal_overlay.color = color
|
||||
var/atom/atom_parent = parent
|
||||
RegisterSignal(atom_parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(update_overlays))
|
||||
atom_parent.update_appearance()
|
||||
|
||||
/datum/component/creamed/UnregisterFromParent()
|
||||
/datum/component/face_decal/proc/get_normal_overlay()
|
||||
return
|
||||
|
||||
/datum/component/face_decal/UnregisterFromParent()
|
||||
UnregisterSignal(parent, list(
|
||||
COMSIG_COMPONENT_CLEAN_ACT,
|
||||
COMSIG_COMPONENT_CLEAN_FACE_ACT))
|
||||
@@ -78,7 +84,6 @@ GLOBAL_LIST_INIT(creamable, typecacheof(list(
|
||||
my_head = null
|
||||
if(iscarbon(parent))
|
||||
var/mob/living/carbon/carbon_parent = parent
|
||||
carbon_parent.clear_mood_event("creampie")
|
||||
carbon_parent.update_body_parts()
|
||||
if(normal_overlay)
|
||||
var/atom/atom_parent = parent
|
||||
@@ -86,8 +91,8 @@ GLOBAL_LIST_INIT(creamable, typecacheof(list(
|
||||
atom_parent.update_appearance()
|
||||
normal_overlay = null
|
||||
|
||||
///Callback to remove pieface
|
||||
/datum/component/creamed/proc/clean_up(datum/source, clean_types)
|
||||
///Callback to remove our decal
|
||||
/datum/component/face_decal/proc/clean_up(datum/source, clean_types)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(!(clean_types & CLEAN_TYPE_BLOOD))
|
||||
@@ -97,14 +102,47 @@ GLOBAL_LIST_INIT(creamable, typecacheof(list(
|
||||
return COMPONENT_CLEANED
|
||||
|
||||
/// Ensures normal_overlay overlay in case the mob is not a carbon
|
||||
/datum/component/creamed/proc/update_overlays(atom/parent_atom, list/overlays)
|
||||
/datum/component/face_decal/proc/update_overlays(atom/parent_atom, list/overlays)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(normal_overlay)
|
||||
overlays += normal_overlay
|
||||
|
||||
/// Removes creampie when the head gets dismembered
|
||||
/datum/component/creamed/proc/lost_head(obj/item/bodypart/source, mob/living/carbon/owner, dismembered)
|
||||
/// Removes the decal when the head gets dismembered
|
||||
/datum/component/face_decal/proc/lost_head(obj/item/bodypart/source, mob/living/carbon/owner, dismembered)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
qdel(src)
|
||||
|
||||
/// Creampie subtype, handling signals and mood logic
|
||||
|
||||
GLOBAL_LIST_INIT(creamable, typecacheof(list(
|
||||
/mob/living/carbon/human,
|
||||
/mob/living/basic/pet/dog/corgi,
|
||||
/mob/living/silicon/ai)))
|
||||
|
||||
/datum/component/face_decal/creampie/Initialize()
|
||||
. = ..()
|
||||
if(!is_type_in_typecache(parent, GLOB.creamable))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
SEND_SIGNAL(parent, COMSIG_MOB_CREAMED, src)
|
||||
add_memory_in_range(parent, 7, /datum/memory/witnessed_creampie, protagonist = parent)
|
||||
|
||||
/datum/component/face_decal/creampie/get_normal_overlay()
|
||||
if(iscorgi(parent))
|
||||
return mutable_appearance('icons/mob/effects/creampie.dmi', "[icon_state]_corgi")
|
||||
|
||||
if(isAI(parent))
|
||||
return mutable_appearance('icons/mob/effects/creampie.dmi', "[icon_state]_ai")
|
||||
|
||||
/datum/component/face_decal/creampie/RegisterWithParent()
|
||||
. = ..()
|
||||
if(iscarbon(parent))
|
||||
var/mob/living/carbon/human/carbon_parent = parent
|
||||
carbon_parent.add_mood_event("creampie", /datum/mood_event/creampie)
|
||||
|
||||
/datum/component/face_decal/creampie/UnregisterFromParent()
|
||||
. = ..()
|
||||
if(iscarbon(parent))
|
||||
var/mob/living/carbon/carbon_parent = parent
|
||||
carbon_parent.clear_mood_event("creampie")
|
||||
@@ -40,6 +40,8 @@ Behavior that's still missing from this component that original food items had t
|
||||
var/volume = 50
|
||||
///The flavortext for taste (haha get it flavor text)
|
||||
var/list/tastes
|
||||
///Whether to tell the examiner that this is edible or not.
|
||||
var/show_examine = TRUE
|
||||
|
||||
/datum/component/edible/Initialize(
|
||||
list/initial_reagents,
|
||||
@@ -55,6 +57,7 @@ Behavior that's still missing from this component that original food items had t
|
||||
datum/callback/on_consume,
|
||||
datum/callback/check_liked,
|
||||
reagent_purity = 0.5,
|
||||
show_examine = TRUE,
|
||||
)
|
||||
if(!isatom(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
@@ -70,12 +73,13 @@ Behavior that's still missing from this component that original food items had t
|
||||
src.on_consume = on_consume
|
||||
src.tastes = string_assoc_list(tastes)
|
||||
src.check_liked = check_liked
|
||||
src.show_examine = show_examine
|
||||
|
||||
setup_initial_reagents(initial_reagents, reagent_purity)
|
||||
|
||||
/datum/component/edible/RegisterWithParent()
|
||||
RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(examine))
|
||||
RegisterSignals(parent, COMSIG_ATOM_ATTACK_ANIMAL, PROC_REF(UseByAnimal))
|
||||
RegisterSignal(parent, COMSIG_ATOM_ATTACK_ANIMAL, PROC_REF(UseByAnimal))
|
||||
RegisterSignal(parent, COMSIG_ATOM_CHECKPARTS, PROC_REF(OnCraft))
|
||||
RegisterSignal(parent, COMSIG_ATOM_CREATEDBY_PROCESSING, PROC_REF(OnProcessed))
|
||||
RegisterSignal(parent, COMSIG_FOOD_INGREDIENT_ADDED, PROC_REF(edible_ingredient_added))
|
||||
@@ -212,7 +216,8 @@ Behavior that's still missing from this component that original food items had t
|
||||
SIGNAL_HANDLER
|
||||
|
||||
var/atom/owner = parent
|
||||
|
||||
if(!show_examine)
|
||||
return
|
||||
if(foodtypes)
|
||||
var/list/types = bitfield_to_list(foodtypes, FOOD_FLAGS)
|
||||
examine_list += span_notice("It is [LOWER_TEXT(english_list(types))].")
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
//SKYRAT EDIT CHANGE BEGIN
|
||||
//playsound(source = user,soundin = tmp_sound,vol = 50, vary = vary, ignore_walls = sound_wall_ignore) - SKYRAT EDIT - ORIGINAL
|
||||
if(istype(src, /datum/emote/living/lewd))
|
||||
play_lewd_sound(user, tmp_sound, sound_volume, vary, pref_to_check = /datum/preference/toggle/erp/sounds)
|
||||
conditional_pref_sound(user, tmp_sound, sound_volume, vary, pref_to_check = /datum/preference/toggle/erp/sounds)
|
||||
else
|
||||
playsound(source = user, soundin = tmp_sound, vol = sound_volume, vary = vary, ignore_walls = sound_wall_ignore)
|
||||
//SKYRAT EDIT CHANGE END
|
||||
|
||||
@@ -132,9 +132,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
//////////////////
|
||||
//FINE SMOKABLES//
|
||||
//////////////////
|
||||
|
||||
/obj/item/cigarette
|
||||
name = "cigarette"
|
||||
desc = "A roll of tobacco and nicotine."
|
||||
desc = "A roll of tobacco and nicotine. It is not food."
|
||||
icon = 'icons/obj/cigarettes.dmi'
|
||||
icon_state = "cigoff"
|
||||
inhand_icon_state = "cigon" //gets overriden during intialize(), just have it for unit test sanity.
|
||||
@@ -183,6 +184,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
VAR_PRIVATE/obj/effect/abstract/particle_holder/mob_smoke
|
||||
/// How long the current mob has been smoking this cigarette
|
||||
VAR_FINAL/how_long_have_we_been_smokin = 0 SECONDS
|
||||
/// Which people ate cigarettes and how many
|
||||
var/static/list/cigarette_eaters = list()
|
||||
|
||||
var/pollution_type = /datum/pollutant/smoke //SKYRAT EDIT ADDITION /// What type of pollution does this produce on smoking, changed to weed pollution sometimes
|
||||
|
||||
@@ -199,12 +202,37 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
icon_state = icon_off
|
||||
inhand_icon_state = inhand_icon_off
|
||||
|
||||
// "It is called a cigarette"
|
||||
AddComponent(/datum/component/edible,\
|
||||
initial_reagents = list_reagents,\
|
||||
food_flags = null,\
|
||||
foodtypes = JUNKFOOD,\
|
||||
volume = 50,\
|
||||
eat_time = 0 SECONDS,\
|
||||
tastes = list("a never before experienced flavour.", "finally sitting down after standing your entire life"),\
|
||||
eatverbs = list("taste"),\
|
||||
bite_consumption = 50,\
|
||||
junkiness = 0,\
|
||||
reagent_purity = null,\
|
||||
on_consume = CALLBACK(src, PROC_REF(on_consume)),\
|
||||
show_examine = FALSE, \
|
||||
)
|
||||
|
||||
/obj/item/cigarette/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
QDEL_NULL(mob_smoke)
|
||||
QDEL_NULL(cig_smoke)
|
||||
return ..()
|
||||
|
||||
/obj/item/cigarette/proc/on_consume(mob/living/eater, mob/living/feeder)
|
||||
if(isnull(eater.client))
|
||||
return
|
||||
var/ckey = eater.client.ckey
|
||||
// We must have more!
|
||||
cigarette_eaters[ckey]++
|
||||
if(cigarette_eaters[ckey] >= 500)
|
||||
eater.client.give_award(/datum/award/achievement/misc/cigarettes)
|
||||
|
||||
/obj/item/cigarette/equipped(mob/equipee, slot)
|
||||
. = ..()
|
||||
if(!(slot & ITEM_SLOT_MASK))
|
||||
|
||||
@@ -827,7 +827,6 @@
|
||||
return (isfloorturf(surface) || iswallturf(surface))
|
||||
|
||||
/obj/item/toy/crayon/spraycan/suicide_act(mob/living/user)
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/used = min(charges_left, 10)
|
||||
if(is_capped || !actually_paints || !use_charges(user, 10, FALSE))
|
||||
user.visible_message(span_suicide("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, but nothing happens!"))
|
||||
@@ -842,7 +841,7 @@
|
||||
set_painting_tool_color(COLOR_SILVER)
|
||||
update_appearance()
|
||||
if(actually_paints)
|
||||
H.update_lips("spray_face", paint_color)
|
||||
user.AddComponent(/datum/component/face_decal, "spray", EXTERNAL_ADJACENT, paint_color)
|
||||
reagents.trans_to(user, used, volume_multiplier, transferred_by = user, methods = VAPOR)
|
||||
return OXYLOSS
|
||||
|
||||
@@ -897,7 +896,7 @@
|
||||
flash_color(carbon_target, flash_color=paint_color, flash_time=40)
|
||||
if(ishuman(carbon_target) && actually_paints)
|
||||
var/mob/living/carbon/human/human_target = carbon_target
|
||||
human_target.update_lips("spray_face", paint_color)
|
||||
human_target.AddComponent(/datum/component/face_decal, "spray", EXTERNAL_ADJACENT, paint_color)
|
||||
use_charges(user, 10, FALSE)
|
||||
var/fraction = min(1, . / reagents.maximum_volume)
|
||||
reagents.expose(carbon_target, VAPOR, fraction * volume_multiplier)
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
living_target_getting_hit.visible_message(span_warning("[living_target_getting_hit] is creamed by [src]!"), span_userdanger("You've been creamed by [src]!"))
|
||||
playsound(living_target_getting_hit, SFX_DESECRATION, 50, TRUE)
|
||||
if(is_creamable && is_type_in_typecache(hit_atom, GLOB.creamable))
|
||||
hit_atom.AddComponent(/datum/component/creamed, src)
|
||||
hit_atom.AddComponent(/datum/component/face_decal/creampie, "creampie", EXTERNAL_FRONT)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/food/pie/cream/nostun
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
wound_bonus = 20
|
||||
demolition_mod = 1.25
|
||||
grind_results = list(/datum/reagent/lead = 20)
|
||||
pickup_sound = 'sound/items/lead_pipe_pickup.ogg'
|
||||
drop_sound = 'sound/items/lead_pipe_drop.ogg'
|
||||
hitsound = 'sound/items/lead_pipe_hit.ogg'
|
||||
|
||||
//A good battery early in the shift. Source of lead & sulfuric acid reagents.
|
||||
//Add lead material to this once implemented.
|
||||
|
||||
@@ -348,6 +348,8 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \
|
||||
icon_state = "sheet-hairlesshide"
|
||||
inhand_icon_state = null
|
||||
merge_type = /obj/item/stack/sheet/hairlesshide
|
||||
pickup_sound = 'sound/items/skin_pick_up.ogg'
|
||||
drop_sound = 'sound/items/skin_drop.ogg'
|
||||
|
||||
/obj/item/stack/sheet/hairlesshide/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -361,6 +363,8 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \
|
||||
icon_state = "sheet-wetleather"
|
||||
inhand_icon_state = null
|
||||
merge_type = /obj/item/stack/sheet/wethide
|
||||
pickup_sound = 'sound/items/skin_pick_up.ogg'
|
||||
drop_sound = 'sound/items/skin_drop.ogg'
|
||||
/// Reduced when exposed to high temperatures
|
||||
var/wetness = 30
|
||||
/// Kelvin to start drying
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
user.visible_message(span_suicide("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, spraying paint across [user.p_their()] teeth!"))
|
||||
user.say("WITNESS ME!!", forced="spraycan suicide")
|
||||
playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 5)
|
||||
suicider.update_lips("spray_face", paint_color)
|
||||
suicider.AddComponent(/datum/component/face_decal, "spray", EXTERNAL_ADJACENT, paint_color)
|
||||
return OXYLOSS
|
||||
|
||||
/obj/effect/decal/cleanable/traitor_rune
|
||||
|
||||
@@ -108,13 +108,11 @@
|
||||
/obj/structure/closet/secure_closet/security/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/suit/armor/vest/alt/sec(src)
|
||||
new /obj/item/storage/toolbox/guncase/skyrat/rom_flech(src) //SKYRAT EDIT ADDITION
|
||||
new /obj/item/clothing/head/helmet/sec(src)
|
||||
new /obj/item/radio/headset/headset_sec(src)
|
||||
new /obj/item/radio/headset/headset_sec/alt(src)
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
|
||||
new /obj/item/flashlight/seclite(src)
|
||||
new /obj/item/choice_beacon/security_pistol(src) //SKYRAT EDIT ADDITION
|
||||
new /obj/item/clothing/gloves/tackler/security(src) // SKYRAT EDIT CHANGE - Gives Them The Blue Ones - ORIGINAL: new /obj/item/clothing/gloves/tackler(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/security/sec
|
||||
|
||||
@@ -782,7 +782,10 @@
|
||||
|
||||
/turf/closed/mineral/gibtonite/attackby(obj/item/attacking_item, mob/living/user, params)
|
||||
var/previous_stage = stage
|
||||
if(istype(attacking_item, /obj/item/mining_scanner) || istype(attacking_item, /obj/item/t_scanner/adv_mining_scanner) && stage == GIBTONITE_ACTIVE)
|
||||
if(istype(attacking_item, /obj/item/goliath_infuser_hammer) && stage == GIBTONITE_ACTIVE)
|
||||
user.visible_message(span_notice("[user] digs [attacking_item] to [src]..."), span_notice("Your tendril hammer instictively digs and wraps around [src] to stop it..."))
|
||||
defuse(user)
|
||||
else if(istype(attacking_item, /obj/item/mining_scanner) || istype(attacking_item, /obj/item/t_scanner/adv_mining_scanner) && stage == GIBTONITE_ACTIVE)
|
||||
user.visible_message(span_notice("[user] holds [attacking_item] to [src]..."), span_notice("You use [attacking_item] to locate where to cut off the chain reaction and attempt to stop it..."))
|
||||
defuse(user)
|
||||
..()
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
/datum/heretic_knowledge/summon/rusty
|
||||
name = "Rusted Ritual"
|
||||
desc = "Allows you to transmute a pool of vomit, some cable coil, and 5 sheets of titanium into a Rust Walker. \
|
||||
desc = "Allows you to transmute a pool of vomit, some cable coil, and 10 sheets of iron into a Rust Walker. \
|
||||
Rust Walkers excel at spreading rust and are moderately strong in combat."
|
||||
gain_text = "I combined my knowledge of creation with my desire for corruption. The Marshal knew my name, and the Rusted Hills echoed out."
|
||||
next_knowledge = list(
|
||||
@@ -95,7 +95,7 @@
|
||||
)
|
||||
required_atoms = list(
|
||||
/obj/effect/decal/cleanable/vomit = 1,
|
||||
/obj/item/stack/sheet/mineral/titanium = 5,
|
||||
/obj/item/stack/sheet/iron = 10,
|
||||
/obj/item/stack/cable_coil = 15,
|
||||
)
|
||||
mob_to_summon = /mob/living/basic/heretic_summon/rust_walker
|
||||
|
||||
@@ -101,6 +101,7 @@
|
||||
name = "tactical combat helmet"
|
||||
desc = "A tactical black helmet, sealed from outside hazards with a plate of glass and not much else."
|
||||
icon_state = "marine_command"
|
||||
base_icon_state = "marine_command"
|
||||
inhand_icon_state = "marine_helmet"
|
||||
armor_type = /datum/armor/helmet_marine
|
||||
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
|
||||
@@ -126,14 +127,17 @@
|
||||
/obj/item/clothing/head/helmet/marine/security
|
||||
name = "marine heavy helmet"
|
||||
icon_state = "marine_security"
|
||||
base_icon_state = "marine_security"
|
||||
|
||||
/obj/item/clothing/head/helmet/marine/engineer
|
||||
name = "marine utility helmet"
|
||||
icon_state = "marine_engineer"
|
||||
base_icon_state = "marine_engineer"
|
||||
|
||||
/obj/item/clothing/head/helmet/marine/medic
|
||||
name = "marine medic helmet"
|
||||
icon_state = "marine_medic"
|
||||
base_icon_state = "marine_medic"
|
||||
|
||||
/obj/item/clothing/head/helmet/marine/pmc
|
||||
icon_state = "marine"
|
||||
|
||||
@@ -116,6 +116,7 @@
|
||||
icon = 'icons/obj/aquarium/supplies.dmi'
|
||||
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
custom_materials = list(/datum/material/plastic = COIN_MATERIAL_AMOUNT)
|
||||
var/layer_mode = AQUARIUM_LAYER_MODE_BOTTOM
|
||||
var/beauty = 150
|
||||
|
||||
@@ -124,26 +125,30 @@
|
||||
AddComponent(/datum/component/aquarium_content, icon, beauty = beauty)
|
||||
|
||||
/obj/item/aquarium_prop/rocks
|
||||
name = "rocks"
|
||||
name = "decorative rocks"
|
||||
desc = "A bunch of tiny plastic rocks for decorating an aquarium. Surely you could have just used real pebbles?"
|
||||
icon_state = "rocks"
|
||||
|
||||
/obj/item/aquarium_prop/seaweed_top
|
||||
name = "dense seaweeds"
|
||||
icon_state = "seaweeds_front"
|
||||
layer_mode = AQUARIUM_LAYER_MODE_TOP
|
||||
|
||||
/obj/item/aquarium_prop/seaweed
|
||||
name = "seaweeds"
|
||||
name = "fake seaweed"
|
||||
desc = "Little plastic sheets with weighted bottoms, designed to look like underwater foliage. They can be used to spruce up an aquarium."
|
||||
icon_state = "seaweeds_back"
|
||||
layer_mode = AQUARIUM_LAYER_MODE_BOTTOM
|
||||
|
||||
/obj/item/aquarium_prop/seaweed/top
|
||||
desc = "A bunch of artificial plants for an aquarium."
|
||||
icon_state = "seaweeds_front"
|
||||
layer_mode = AQUARIUM_LAYER_MODE_TOP
|
||||
|
||||
/obj/item/aquarium_prop/sand
|
||||
name = "aquarium sand"
|
||||
desc = "A plastic board for lining the bottom of an aquarium. It's got a bumpy patterned surface vaguely reminiscent of yellow sand."
|
||||
icon_state = "sand"
|
||||
layer_mode = AQUARIUM_LAYER_MODE_BEHIND_GLASS
|
||||
|
||||
/obj/item/aquarium_prop/treasure
|
||||
name = "tiny treasure chest"
|
||||
desc = "A very small plastic treaure chest, with nothing inside. You could put this in an aquarium, and it'll look like very small pirates hid treasure in there. Wouldn't that be nice?"
|
||||
icon_state = "treasure"
|
||||
layer_mode = AQUARIUM_LAYER_MODE_BOTTOM
|
||||
|
||||
|
||||
@@ -223,6 +223,7 @@ GLOBAL_LIST_EMPTY(security_officer_distribution)
|
||||
suit_store = /obj/item/gun/energy/disabler
|
||||
backpack_contents = list(
|
||||
/obj/item/evidencebag = 1,
|
||||
/obj/item/choice_beacon/security_pistol = 1, //SKYRAT ADDITION
|
||||
/obj/item/flashlight/seclite = 1, // BUBBER EDIT ADDITION
|
||||
)
|
||||
belt = /obj/item/modular_computer/pda/security
|
||||
|
||||
@@ -8,12 +8,18 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
|
||||
icon_state = "hilbertshotel"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
//SKYRAT EDIT ADDITION - GHOST HOTEL UPDATE
|
||||
var/list/static/hotel_maps = list("Generic", "Apartment")
|
||||
//SKYRAT EDIT ADDITION - GHOST HOTEL UPDATE + EXTRA STUFF
|
||||
var/list/static/hotel_maps = list("Generic", "Apartment", "Beach Condo", "Station Side", "Library")
|
||||
//standart - hilber's hotel room
|
||||
//apartment - see /datum/map_template/ghost_cafe_rooms
|
||||
var/datum/map_template/ghost_cafe_rooms/ghost_cafe_rooms_apartment
|
||||
//SKYRAT EDIT END
|
||||
//beach condo - Beach themed apartment
|
||||
//stationside - a station-themed hotel room
|
||||
var/datum/map_template/ghost_cafe_rooms/apartment/ghost_cafe_rooms_apartment
|
||||
var/datum/map_template/ghost_cafe_rooms/beach_condo/ghost_cafe_rooms_beach_condo
|
||||
var/datum/map_template/ghost_cafe_rooms/stationside/ghost_cafe_rooms_stationside
|
||||
var/datum/map_template/ghost_cafe_rooms/library/ghost_cafe_rooms_library
|
||||
//Skyrat EDIT END
|
||||
|
||||
var/datum/map_template/hilbertshotel/hotelRoomTemp
|
||||
var/datum/map_template/hilbertshotel/empty/hotelRoomTempEmpty
|
||||
var/datum/map_template/hilbertshotel/lore/hotelRoomTempLore
|
||||
@@ -34,7 +40,11 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
|
||||
hotelRoomTempLore = new()
|
||||
//SKYRAT EDIT ADDITION - GHOST HOTEL UPDATE
|
||||
ghost_cafe_rooms_apartment = new()
|
||||
ghost_cafe_rooms_beach_condo = new()
|
||||
ghost_cafe_rooms_stationside = new()
|
||||
ghost_cafe_rooms_library = new()
|
||||
//SKYRAT EDIT END
|
||||
|
||||
var/area/currentArea = get_area(src)
|
||||
if(currentArea.type == /area/ruin/space/has_grav/powered/hilbertresearchfacility/secretroom)
|
||||
ruinSpawned = TRUE
|
||||
@@ -176,9 +186,22 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
|
||||
if(ruinSpawned && roomNumber == GLOB.hhMysteryRoomNumber)
|
||||
load_from = hotelRoomTempLore
|
||||
//SKYRAT EDIT ADDITION START - GHOST HOTEL UPDATE
|
||||
//else if(chosen_room == "Apartment")
|
||||
// load_from = ghost_cafe_rooms_apartment
|
||||
//SKYRAT EDIT ADDITION END
|
||||
|
||||
//BUBBER EDIT ADDITION START - GHOST HOTEL UPDATE
|
||||
else if(chosen_room == "Apartment")
|
||||
load_from = ghost_cafe_rooms_apartment
|
||||
//SKYRAT EDIT ADDITION END
|
||||
|
||||
else if(chosen_room == "Beach Condo")
|
||||
load_from = ghost_cafe_rooms_beach_condo
|
||||
|
||||
else if(chosen_room == "Station Side")
|
||||
load_from = ghost_cafe_rooms_stationside
|
||||
else if(chosen_room == "Library")
|
||||
load_from = ghost_cafe_rooms_library
|
||||
//BUBBER EDIT ADDITION END
|
||||
|
||||
load_from.load(bottom_left)
|
||||
activeRooms["[roomNumber]"] = roomReservation
|
||||
@@ -377,7 +400,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
|
||||
to_chat(user, span_warning("Drats! Your vision is too poor to use this!"))
|
||||
return CLICK_ACTION_BLOCKING
|
||||
|
||||
to_chat(user, span_notice("You peak through the door's bluespace peephole..."))
|
||||
to_chat(user, span_notice("You peek through the door's bluespace peephole..."))
|
||||
user.reset_perspective(parentSphere)
|
||||
var/datum/action/peephole_cancel/PHC = new
|
||||
user.overlay_fullscreen("remote_view", /atom/movable/screen/fullscreen/impaired, 1)
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
ai_movement = /datum/ai_movement/jps
|
||||
idle_behavior = /datum/idle_behavior/idle_random_walk
|
||||
planning_subtrees = list(
|
||||
/datum/ai_planning_subtree/find_and_hunt_target/corpses,
|
||||
/datum/ai_planning_subtree/find_and_hunt_target/corpses/human,
|
||||
/datum/ai_planning_subtree/travel_to_point/and_clear_target,
|
||||
/datum/ai_planning_subtree/simple_find_target,
|
||||
/datum/ai_planning_subtree/attack_obstacle_in_path,
|
||||
|
||||
@@ -30,14 +30,14 @@
|
||||
/datum/ai_behavior/find_hunt_target/find_slime_food/valid_dinner(mob/living/basic/slime/hunter, mob/living/dinner, radius, datum/ai_controller/controller, seconds_per_tick)
|
||||
|
||||
if(REF(dinner) in hunter.faction) //Don't eat our friends...
|
||||
return
|
||||
return FALSE
|
||||
|
||||
var/static/list/slime_faction = list(FACTION_SLIME)
|
||||
if(faction_check(slime_faction, dinner.faction)) //Don't try to eat slimy things, no matter how hungry we are. Anyone else can be betrayed.
|
||||
return
|
||||
return FALSE
|
||||
|
||||
if(!hunter.can_feed_on(dinner, check_adjacent = FALSE)) //Are they tasty to slimes?
|
||||
return
|
||||
return FALSE
|
||||
|
||||
//If we are retaliating on someone edible, lets eat them instead
|
||||
if(dinner == controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET])
|
||||
@@ -73,6 +73,7 @@
|
||||
|
||||
/datum/ai_behavior/hunt_target/unarmed_attack_target/slime/finish_action(datum/ai_controller/controller, succeeded, hunting_target_key, hunting_cooldown_key)
|
||||
. = ..()
|
||||
var/mob/living/living_pawn = controller.pawn
|
||||
if(living_pawn.buckled)
|
||||
var/mob/living/basic/slime/slime_pawn = controller.pawn
|
||||
var/atom/target = controller.blackboard[hunting_target_key]
|
||||
if(!slime_pawn.can_feed_on(target))
|
||||
controller.clear_blackboard_key(hunting_target_key)
|
||||
|
||||
@@ -31,11 +31,11 @@
|
||||
/datum/ai_planning_subtree/find_and_hunt_target/find_slime_food/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
|
||||
var/mob/living/living_pawn = controller.pawn
|
||||
if(living_pawn.buckled)
|
||||
return FALSE
|
||||
return
|
||||
|
||||
//Slimes don't want to hunt if they are neither rabid, hungry or feeling attack right now
|
||||
if( (controller.blackboard[BB_SLIME_HUNGER_LEVEL] == SLIME_HUNGER_NONE) && !controller.blackboard[BB_SLIME_RABID] && isnull(controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET]))
|
||||
return FALSE
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
/mob/living/basic/slime/proc/on_slime_pre_attack(mob/living/basic/slime/our_slime, atom/target, proximity, modifiers)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(LAZYACCESS(modifiers, RIGHT_CLICK) && isliving(target) && target != src && usr == src)
|
||||
if(LAZYACCESS(modifiers, RIGHT_CLICK) && isliving(target) && target != src)
|
||||
if(our_slime.can_feed_on(target))
|
||||
our_slime.start_feeding(target)
|
||||
return COMPONENT_HOSTILE_NO_ATTACK
|
||||
|
||||
@@ -432,7 +432,7 @@ Difficulty: Hard
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/hierophant/celebrate_kill(mob/living/L)
|
||||
visible_message(span_hierophant_warning("\"[pick(kill_phrases)]\""))
|
||||
visible_message(span_hierophant_warning("[src] obliterates [L]!"),span_userdanger("You absorb [L]'s life force, restoring your health!"))
|
||||
visible_message(span_hierophant_warning("[src] absorbs [L]'s life force!"),span_userdanger("You absorb [L]'s life force, restoring your health!"))
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/hierophant/CanAttack(atom/the_target)
|
||||
. = ..()
|
||||
|
||||
@@ -239,8 +239,6 @@
|
||||
for(var/obj/item/head_item as anything in list(owner.glasses, owner.ears, owner.wear_mask, owner.head))
|
||||
owner.dropItemToGround(head_item, force = TRUE)
|
||||
|
||||
qdel(owner.GetComponent(/datum/component/creamed)) //clean creampie overlay flushed emoji
|
||||
|
||||
//Handle dental implants
|
||||
for(var/datum/action/item_action/activate_pill/pill_action in owner.actions)
|
||||
pill_action.Remove(owner)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "LT3"
|
||||
delete-after: True
|
||||
changes:
|
||||
- spellcheck: "Sneak a peek of Hilbert's Hotel, not a sneak peak"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "aKromatopzia"
|
||||
delete-after: True
|
||||
changes:
|
||||
- image: "more teshari clothing sprites"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "SkyratBot"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "fixes blob spore and slime AI endlessly attacking the dead"
|
||||
@@ -0,0 +1,5 @@
|
||||
author: "projectkepler-ru"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Helmet pepperspray not working because of an NRI sabotage on the supplyline, the IDMA Force has now succesfully repelled the attack and has shifted focus toward trying to identify the suspect involved in this attack"
|
||||
- bugfix: "weird suppresor overlay shenanigan"
|
||||
@@ -749,3 +749,54 @@
|
||||
- bugfix: bein able to buy the MCR, please stop
|
||||
- rscdel: obliterated powerstation from the blueshift. it should no longer be present
|
||||
now
|
||||
2024-08-24:
|
||||
projectkepler-ru:
|
||||
- bugfix: erronously the c10 speedloader was normal sized
|
||||
- rscadd: you can now buy sidearm crate again
|
||||
- code_imp: Frangible slug is re-coded to work abit differently
|
||||
2024-08-25:
|
||||
EspeciallyStrange:
|
||||
- bugfix: m45a5 guncase not spawning with an ammo pouch, I neglected this
|
||||
- bugfix: the various guncase not being the pistol sized one
|
||||
- rscadd: renoster shotgun purchasable
|
||||
- balance: flechette ammo slightly easier to re-print
|
||||
Kepteyn:
|
||||
- rscadd: adds three new dorm rooms to hilbert's hotel options.
|
||||
LT3:
|
||||
- qol: Blacksmith anvil noises can be toggled with ambience sound preference
|
||||
SkyratBot:
|
||||
- spellcheck: Hierophant no longer lies about obliterating someone
|
||||
- qol: goliath arm can defuse gibonite by bumping or direct click
|
||||
- bugfix: Marine helmets no longer change their sprite to security helmets when
|
||||
their flashlight is toggled
|
||||
- balance: Rusted Ritual now requries 10 sheets of Iron instead of Titanium.
|
||||
- bugfix: Aquarium decorations now contain plastic.
|
||||
- spellcheck: Added item descriptions for aquarium decorations.
|
||||
plsleavemealon:
|
||||
- qol: Lets ethereals have custom food preferences
|
||||
projectkepler-ru:
|
||||
- bugfix: frangible slug literally doing nothing to window and grille
|
||||
- bugfix: frangible slug should now no longer 1 shot borg or mech
|
||||
- balance: combat shotgun recoil removed, instead, they just get a delay
|
||||
- balance: bolt action delay on the ceremonial rifle reduced from 2 second to 6
|
||||
ticks instead
|
||||
2024-08-26:
|
||||
LT3:
|
||||
- bugfix: Flannel shirts actually cover your body when buttoned up
|
||||
SkyratBot:
|
||||
- rscadd: Achievement for eating 500 cigarettes
|
||||
- balance: Cigarettes are now edible
|
||||
- code_imp: Adds a variable to hide the food examine on the edible element
|
||||
- bugfix: wet hides and hairless hides no longer make metal clanging noises when
|
||||
picked up/dropped
|
||||
- bugfix: SSPolling no longer fills in the candidate list with empty entries to
|
||||
guarantee it returns a list size of amount_to_pick
|
||||
grungussuss:
|
||||
- sound: lead pipe has sound
|
||||
projectkepler-ru:
|
||||
- balance: the effect of frangible slug on non-airlock is now halved
|
||||
- balance: NTC lose their gunbeacon, instead, they get a unique pistol intended
|
||||
for incapacitating target and for self defense.
|
||||
- balance: m45a5 has less painful wait period
|
||||
- bugfix: gun not being in pistol case when they should be
|
||||
- rscadd: 10mm AP, HP speedloader to the tech
|
||||
|
||||
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 248 KiB After Width: | Height: | Size: 251 KiB |
@@ -1,2 +1,2 @@
|
||||
/datum/species/ethereal/allows_food_preferences()
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 280 KiB |
@@ -528,7 +528,7 @@
|
||||
/datum/greyscale_config/scarf/worn/teshari
|
||||
name = "Scarf (Worn, Teshari)"
|
||||
icon_file = 'modular_skyrat/modules/GAGS/icons/neck/neck_teshari.dmi'
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* SUITS
|
||||
@@ -1407,15 +1407,15 @@ digi
|
||||
/datum/greyscale_config/teshari/thickrobe
|
||||
name = "Teshari Thick Robe"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/teshari_fallbacks/thickrobe.json'
|
||||
|
||||
|
||||
/datum/greyscale_config/teshari/thickrobe/wiz
|
||||
name = "Teshari Wizard Robe"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/teshari_fallbacks/wizrobe.json'
|
||||
|
||||
|
||||
/datum/greyscale_config/teshari/thickrobe/jacket
|
||||
name = "Teshari Jacket"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/teshari_fallbacks/jacket.json'
|
||||
|
||||
|
||||
/datum/greyscale_config/teshari/thickrobe/longcoat
|
||||
name = "Teshari Longcoat"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/teshari_fallbacks/longcoat.json'
|
||||
@@ -1436,6 +1436,10 @@ digi
|
||||
name = "Teshari Cloak"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/teshari_fallbacks/cloak.json'
|
||||
|
||||
/datum/greyscale_config/teshari/mantle
|
||||
name = "Teshari Mantle"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/teshari_fallbacks/mantle.json'
|
||||
|
||||
/datum/greyscale_config/teshari/tie
|
||||
name = "Teshari Tie"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/teshari_fallbacks/tie.json'
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -2,7 +2,7 @@
|
||||
"": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe0i",
|
||||
"icon_state": "thickrobe0ii",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
@@ -20,7 +20,7 @@
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe2ii",
|
||||
"icon_state": "thickrobe-cuffs",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 4 ]
|
||||
}
|
||||
|
||||
@@ -6,6 +6,12 @@
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe-skirtii",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe1ii",
|
||||
@@ -20,7 +26,7 @@
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe2ii",
|
||||
"icon_state": "thickrobe-cuffs",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 4 ]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "mantle0",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "mantle1",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6,6 +6,12 @@
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe-skirti",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe1i",
|
||||
@@ -20,7 +26,7 @@
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe2ii",
|
||||
"icon_state": "thickrobe-cuffs",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 4 ]
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe0iii",
|
||||
"icon_state": "thickrobe-skirti",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
@@ -26,7 +26,7 @@
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "thickrobe2ii",
|
||||
"icon_state": "thickrobe-cuffs",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 4 ]
|
||||
},
|
||||
|
||||
@@ -76,8 +76,8 @@
|
||||
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
|
||||
|
||||
/obj/item/gun/ballistic/shotgun/riot
|
||||
name = "classic woodstock shotgun"
|
||||
desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control."
|
||||
name = "woodstock shotgun"
|
||||
desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control. Often found in the hand of a lavaland hunter. Vaguely reminds you of hunting back in Sol does it not?"
|
||||
fire_delay = 6 //We slighly bump this up because thats a good idea
|
||||
sawn_desc = "Come with me if you want to live."
|
||||
|
||||
@@ -91,16 +91,14 @@
|
||||
inhand_icon_state = "shotgun_combat"
|
||||
inhand_x_dimension = 32
|
||||
inhand_y_dimension = 32
|
||||
fire_delay = 5
|
||||
fire_delay = 7
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
recoil = 2
|
||||
|
||||
/obj/item/gun/ballistic/shotgun/automatic/combat/compact
|
||||
name = "\improper Peacekeeper compact combat shotgun"
|
||||
desc = "A tactical variant of the peacekeeper combat shotgun used by NT Raiding Parties and Space Marines. It has a gyroscopic stabilizer on it, letting you fire one handed."
|
||||
fire_delay = 5
|
||||
weapon_weight = WEAPON_LIGHT
|
||||
recoil = 1 //so that its not spammed a lot
|
||||
|
||||
/obj/item/gun/grenadelauncher
|
||||
icon = 'modular_skyrat/modules/aesthetics/guns/icons/guns.dmi'
|
||||
|
||||
@@ -34,11 +34,13 @@
|
||||
|
||||
mail_goodies = list(
|
||||
/obj/item/storage/fancy/cigarettes/cigars/havana = 10,
|
||||
/obj/item/stack/spacecash/c500 = 3,
|
||||
/obj/item/stack/spacecash/c500 = 30,
|
||||
/obj/item/disk/nuclear/fake/obvious = 2,
|
||||
/obj/item/clothing/head/collectable/captain = 4,
|
||||
/obj/item/gun/energy/disabler/smoothbore = 1,
|
||||
/obj/item/gun/energy/disabler/smoothbore = 5,
|
||||
/obj/item/restraints/legcuffs/bola/energy = 10,
|
||||
/obj/item/ammo_box/magazine/caflechette/ripper = 20,
|
||||
/obj/item/ammo_box/magazine/caflechette = 10,
|
||||
)
|
||||
|
||||
veteran_only = TRUE
|
||||
@@ -62,6 +64,7 @@
|
||||
head = /obj/item/clothing/head/beret/blueshield
|
||||
box = /obj/item/storage/box/survival/security
|
||||
belt = /obj/item/modular_computer/pda/blueshield
|
||||
suit_store = /obj/item/gun/energy/e_gun
|
||||
|
||||
id_trim = /datum/id_trim/job/blueshield
|
||||
|
||||
|
||||
@@ -44,4 +44,4 @@
|
||||
new /obj/item/mod/control/pre_equipped/blueshield(src)
|
||||
new /obj/item/storage/box/glasseskit(src)
|
||||
new /obj/item/storage/medkit/brute(src)
|
||||
new /obj/item/storage/toolbox/guncase/skyrat/blueshield_cmg(src)
|
||||
new /obj/item/storage/toolbox/guncase/skyrat/pistol/blueshield_cmg(src)
|
||||
|
||||
@@ -13,6 +13,18 @@
|
||||
/obj/item/hilbertshotel/ghostdojo/attack_robot(mob/living/user)
|
||||
attack_hand(user)
|
||||
|
||||
/datum/map_template/ghost_cafe_rooms
|
||||
/datum/map_template/ghost_cafe_rooms/apartment
|
||||
name = "Apartment"
|
||||
mappath = "modular_skyrat/modules/hotel_rooms/apartment.dmm"
|
||||
|
||||
/datum/map_template/ghost_cafe_rooms/beach_condo
|
||||
name = "Beach Condo"
|
||||
mappath = "modular_skyrat/modules/hotel_rooms/beach_condo.dmm"
|
||||
|
||||
/datum/map_template/ghost_cafe_rooms/stationside
|
||||
name = "Station Side"
|
||||
mappath = "modular_skyrat/modules/hotel_rooms/stationside.dmm"
|
||||
|
||||
/datum/map_template/ghost_cafe_rooms/library
|
||||
name = "Library"
|
||||
mappath = "modular_skyrat/modules/hotel_rooms/library.dmm"
|
||||
|
||||
@@ -218,10 +218,20 @@
|
||||
icon_state = "helmetalt_blue"
|
||||
base_icon_state = "helmetalt_blue"
|
||||
supports_variations_flags = CLOTHING_SNOUTED_VARIATION_NO_NEW_ICON
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
supports_variations_flags = CLOTHING_SNOUTED_VARIATION_NO_NEW_ICON
|
||||
flags_cover = HEADCOVERSEYES | PEPPERPROOF
|
||||
visor_flags_cover = HEADCOVERSEYES | PEPPERPROOF
|
||||
var/flipped_visor = FALSE
|
||||
|
||||
/obj/item/clothing/head/helmet/alt/click_alt(mob/user)
|
||||
flipped_visor = !flipped_visor
|
||||
balloon_alert(user, "visor flipped")
|
||||
// base_icon_state is modified for seclight attachment component
|
||||
base_icon_state = "[initial(base_icon_state)][flipped_visor ? "-novisor" : ""]"
|
||||
icon_state = base_icon_state
|
||||
if (flipped_visor)
|
||||
flags_cover &= ~HEADCOVERSEYES | PEPPERPROOF
|
||||
else
|
||||
flags_cover |= HEADCOVERSEYES | PEPPERPROOF
|
||||
update_appearance()
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
//Standard helmet
|
||||
/obj/item/clothing/head/helmet/sec
|
||||
@@ -230,7 +240,6 @@
|
||||
icon_state = "security_helmet"
|
||||
base_icon_state = "security_helmet"
|
||||
clothing_flags = SNUG_FIT | STACKABLE_HELMET_EXEMPT
|
||||
flags_cover = HEADCOVERSEYES|EARS_COVERED
|
||||
dog_fashion = null
|
||||
supports_variations_flags = CLOTHING_SNOUTED_VARIATION_NO_NEW_ICON
|
||||
|
||||
@@ -238,7 +247,6 @@
|
||||
/obj/item/clothing/head/helmet/sec/futuristic
|
||||
icon_state = "security_helmet_future"
|
||||
base_icon_state = "security_helmet_future"
|
||||
flags_cover = HEADCOVERSEYES | PEPPERPROOF
|
||||
supports_variations_flags = CLOTHING_SNOUTED_VARIATION_NO_NEW_ICON
|
||||
|
||||
/obj/item/clothing/head/helmet/sec/futuristic/blue
|
||||
|
||||
@@ -0,0 +1,747 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"br" = (
|
||||
/turf/open/misc/beach/sand,
|
||||
/area/misc/hilbertshotel)
|
||||
"bI" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"bO" = (
|
||||
/obj/structure/chair{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"bW" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/turf_decal/siding/white{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/knife/kitchen,
|
||||
/turf/open/floor/iron/kitchen,
|
||||
/area/misc/hilbertshotel)
|
||||
"cj" = (
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/obj/item/toy/plush/carpplushie,
|
||||
/turf/open/water/beach,
|
||||
/area/misc/hilbertshotel)
|
||||
"ct" = (
|
||||
/turf/closed/wall/mineral/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"cC" = (
|
||||
/obj/structure/dresser,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"cW" = (
|
||||
/turf/open/misc/beach/coast{
|
||||
dir = 4
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"dI" = (
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/turf/open/misc/beach/coast{
|
||||
dir = 5
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"dS" = (
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"en" = (
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/turf/open/water/beach,
|
||||
/area/misc/hilbertshotel)
|
||||
"eH" = (
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/turf/open/misc/beach/coast{
|
||||
dir = 1
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"fy" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/warm/directional/west,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"fA" = (
|
||||
/turf/closed/wall/mineral/sandstone,
|
||||
/area/misc/hilbertshotel)
|
||||
"hj" = (
|
||||
/obj/machinery/door/morgue,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"hX" = (
|
||||
/obj/structure/fluff/beach_umbrella,
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/turf/open/misc/beach/coast{
|
||||
dir = 1
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"ib" = (
|
||||
/turf/open/misc/beach/coast/corner{
|
||||
dir = 8
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"iQ" = (
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/turf/open/misc/beach/coast{
|
||||
dir = 9
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"jO" = (
|
||||
/obj/effect/turf_decal/siding{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/morgue,
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/misc/hilbertshotel)
|
||||
"jU" = (
|
||||
/obj/machinery/door/airlock/wood,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"kh" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"kW" = (
|
||||
/obj/structure/closet/crate/bin,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/light_switch/directional/west,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"mH" = (
|
||||
/obj/machinery/jukebox{
|
||||
req_access = null
|
||||
},
|
||||
/turf/open/misc/beach/sand,
|
||||
/area/misc/hilbertshotel)
|
||||
"na" = (
|
||||
/obj/effect/turf_decal/siding/wood,
|
||||
/turf/open/floor/carpet/lone,
|
||||
/area/misc/hilbertshotel)
|
||||
"nb" = (
|
||||
/obj/item/kirbyplants/random,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"ny" = (
|
||||
/obj/effect/turf_decal/siding/wood/corner{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"oM" = (
|
||||
/obj/structure/bed/double/pod,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/spawner/random/bedsheet/double,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"oX" = (
|
||||
/obj/effect/turf_decal/siding/wood/corner,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"ph" = (
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/turf/open/misc/beach/sand,
|
||||
/area/misc/hilbertshotel)
|
||||
"qh" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"ra" = (
|
||||
/turf/closed/indestructible/rock,
|
||||
/area/misc/hilbertshotel)
|
||||
"rm" = (
|
||||
/turf/open/floor/iron/stairs/old{
|
||||
dir = 1
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"rV" = (
|
||||
/obj/structure/closet/cabinet,
|
||||
/obj/effect/turf_decal/siding/wood/end{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"tR" = (
|
||||
/obj/machinery/shower/directional/east,
|
||||
/obj/structure/drain/big,
|
||||
/obj/item/soap/deluxe,
|
||||
/obj/structure/curtain,
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/misc/hilbertshotel)
|
||||
"wa" = (
|
||||
/obj/structure/chair{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"wo" = (
|
||||
/obj/structure/closet/secure_closet/freezer/kitchen/all_access,
|
||||
/obj/effect/spawner/random/food_or_drink/three_course_meal,
|
||||
/obj/effect/spawner/random/food_or_drink/three_course_meal,
|
||||
/obj/effect/spawner/random/food_or_drink/three_course_meal,
|
||||
/obj/effect/spawner/random/food_or_drink/three_course_meal,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"wL" = (
|
||||
/obj/item/kirbyplants/random,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"yc" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/sign/painting/large/library{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"yH" = (
|
||||
/turf/closed/indestructible/hoteldoor{
|
||||
icon_state = "door_closed";
|
||||
icon = 'icons/obj/doors/puzzledoor/default.dmi'
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"Bo" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/microwave{
|
||||
pixel_x = -2;
|
||||
pixel_y = 6
|
||||
},
|
||||
/turf/open/floor/iron/kitchen,
|
||||
/area/misc/hilbertshotel)
|
||||
"Bs" = (
|
||||
/obj/effect/turf_decal/siding/wood,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"CM" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/bed/dogbed,
|
||||
/obj/item/toy/plush/shark,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"Dg" = (
|
||||
/obj/structure/toilet{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/window/spawner/directional/north,
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/misc/hilbertshotel)
|
||||
"EI" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/light/warm/directional/north,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"FJ" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 5
|
||||
},
|
||||
/obj/item/kirbyplants/random,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"FN" = (
|
||||
/obj/machinery/door/airlock/sandstone{
|
||||
name = "Beach Cabin"
|
||||
},
|
||||
/obj/effect/turf_decal/sand,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"Gj" = (
|
||||
/obj/item/toy/beach_ball,
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/turf/open/water/beach,
|
||||
/area/misc/hilbertshotel)
|
||||
"Gm" = (
|
||||
/obj/structure/chair/sofa/middle{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/sand,
|
||||
/turf/open/misc/beach/sand,
|
||||
/area/misc/hilbertshotel)
|
||||
"GB" = (
|
||||
/obj/structure/chair{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/siding/wood/corner{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"GD" = (
|
||||
/obj/effect/turf_decal/siding/white{
|
||||
dir = 9
|
||||
},
|
||||
/obj/machinery/light/floor{
|
||||
alpha = 0;
|
||||
invisibility = 100;
|
||||
light_range = 10;
|
||||
nightshift_light_power = 10
|
||||
},
|
||||
/turf/open/floor/iron/kitchen,
|
||||
/area/misc/hilbertshotel)
|
||||
"HH" = (
|
||||
/turf/open/floor/carpet/cyan,
|
||||
/area/misc/hilbertshotel)
|
||||
"HK" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/reagent_containers/cup/rag,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"Ib" = (
|
||||
/turf/open/misc/beach/coast{
|
||||
dir = 1
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"Ig" = (
|
||||
/obj/effect/turf_decal/siding/wood,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"IM" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 5
|
||||
},
|
||||
/obj/item/flashlight/lamp/green{
|
||||
pixel_x = 5;
|
||||
pixel_y = 14
|
||||
},
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"Jm" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/pizzabox/margherita{
|
||||
pixel_y = 11
|
||||
},
|
||||
/obj/item/storage/cans/sixbeer,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"KQ" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"Lg" = (
|
||||
/obj/effect/turf_decal/siding/wood,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"Lp" = (
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/turf/open/misc/beach/coast/corner{
|
||||
dir = 8
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"Lv" = (
|
||||
/obj/structure/sink/directional/north,
|
||||
/obj/structure/mirror/directional/south,
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/misc/hilbertshotel)
|
||||
"LF" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/light_switch/directional/north,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"MB" = (
|
||||
/obj/effect/turf_decal/siding/white{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/iron/kitchen,
|
||||
/area/misc/hilbertshotel)
|
||||
"ML" = (
|
||||
/obj/effect/turf_decal/siding/wood/end{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light/floor,
|
||||
/obj/machinery/light_switch/directional/south,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"MP" = (
|
||||
/obj/structure/chair{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"Pe" = (
|
||||
/obj/structure/chair/sofa/left{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/sand,
|
||||
/turf/open/misc/beach/sand,
|
||||
/area/misc/hilbertshotel)
|
||||
"PJ" = (
|
||||
/turf/open/misc/beach/coast/corner{
|
||||
dir = 4
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"Qg" = (
|
||||
/obj/structure/chair/sofa/right{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/sand,
|
||||
/turf/open/misc/beach/sand,
|
||||
/area/misc/hilbertshotel)
|
||||
"Qz" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"QG" = (
|
||||
/obj/structure/curtain/cloth/fancy,
|
||||
/turf/closed/indestructible/fakeglass,
|
||||
/area/misc/hilbertshotel)
|
||||
"Rr" = (
|
||||
/obj/machinery/light/floor{
|
||||
alpha = 0;
|
||||
invisibility = 100;
|
||||
light_range = 10;
|
||||
nightshift_light_power = 10
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/misc/hilbertshotel)
|
||||
"RL" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/chair/comfy/teal{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light_switch/directional/east,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"SS" = (
|
||||
/obj/effect/light_emitter/interlink,
|
||||
/turf/open/misc/beach/coast/corner{
|
||||
dir = 4
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"Yg" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 6
|
||||
},
|
||||
/obj/structure/closet/cabinet,
|
||||
/obj/item/hairbrush{
|
||||
pixel_x = 2;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/serviette_pack,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"ZE" = (
|
||||
/obj/effect/turf_decal/siding/wood,
|
||||
/obj/machinery/light/warm/dim/directional/south,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/misc/hilbertshotel)
|
||||
|
||||
(1,1,1) = {"
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
en
|
||||
en
|
||||
dI
|
||||
Lp
|
||||
br
|
||||
fA
|
||||
fA
|
||||
fA
|
||||
fA
|
||||
fA
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
ra
|
||||
en
|
||||
cj
|
||||
en
|
||||
en
|
||||
iQ
|
||||
SS
|
||||
br
|
||||
fA
|
||||
rV
|
||||
ct
|
||||
tR
|
||||
Dg
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
en
|
||||
en
|
||||
eH
|
||||
br
|
||||
rm
|
||||
FN
|
||||
ML
|
||||
ct
|
||||
Rr
|
||||
Lv
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
en
|
||||
iQ
|
||||
SS
|
||||
br
|
||||
fA
|
||||
fA
|
||||
hj
|
||||
ct
|
||||
jO
|
||||
ct
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
en
|
||||
eH
|
||||
br
|
||||
fA
|
||||
fA
|
||||
cC
|
||||
bI
|
||||
ct
|
||||
yc
|
||||
nb
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
iQ
|
||||
PJ
|
||||
br
|
||||
QG
|
||||
CM
|
||||
ny
|
||||
ZE
|
||||
ct
|
||||
EI
|
||||
na
|
||||
yH
|
||||
ra
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
hX
|
||||
HH
|
||||
HH
|
||||
QG
|
||||
oM
|
||||
dS
|
||||
Ig
|
||||
jU
|
||||
KQ
|
||||
Bs
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
dI
|
||||
cW
|
||||
ib
|
||||
QG
|
||||
IM
|
||||
RL
|
||||
Yg
|
||||
ct
|
||||
LF
|
||||
wL
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
en
|
||||
en
|
||||
Ib
|
||||
fA
|
||||
fA
|
||||
ct
|
||||
ct
|
||||
ct
|
||||
hj
|
||||
ct
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
en
|
||||
en
|
||||
Ib
|
||||
Pe
|
||||
QG
|
||||
bO
|
||||
wa
|
||||
fy
|
||||
qh
|
||||
kW
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
en
|
||||
en
|
||||
eH
|
||||
Gm
|
||||
QG
|
||||
Jm
|
||||
HK
|
||||
oX
|
||||
kh
|
||||
Qz
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
ra
|
||||
en
|
||||
Gj
|
||||
en
|
||||
en
|
||||
eH
|
||||
Qg
|
||||
QG
|
||||
MP
|
||||
GB
|
||||
Lg
|
||||
GD
|
||||
MB
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
en
|
||||
iQ
|
||||
SS
|
||||
mH
|
||||
fA
|
||||
fA
|
||||
FJ
|
||||
wo
|
||||
bW
|
||||
Bo
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
ra
|
||||
en
|
||||
en
|
||||
iQ
|
||||
SS
|
||||
ph
|
||||
ph
|
||||
br
|
||||
fA
|
||||
fA
|
||||
fA
|
||||
fA
|
||||
fA
|
||||
fA
|
||||
ra
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
ra
|
||||
"}
|
||||
@@ -0,0 +1,812 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"ar" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"aC" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/mop/advanced,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"aS" = (
|
||||
/obj/structure/chair/stool/bar/directional/north,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"bw" = (
|
||||
/obj/structure/chair/wood{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"bz" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"cy" = (
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"cz" = (
|
||||
/obj/structure/chair/wood{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"cD" = (
|
||||
/obj/structure/sink/kitchen{
|
||||
desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
|
||||
name = "old sink";
|
||||
pixel_y = 23
|
||||
},
|
||||
/obj/structure/mop_bucket,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"dw" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 9
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"dS" = (
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"dT" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"eO" = (
|
||||
/obj/structure/steam_vent,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"fa" = (
|
||||
/obj/structure/chair/wood{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"fi" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"gQ" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"ho" = (
|
||||
/obj/structure/table/wood/fancy,
|
||||
/obj/item/pizzabox/infinite,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"ik" = (
|
||||
/obj/structure/closet/wardrobe/botanist,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"iL" = (
|
||||
/obj/effect/turf_decal/siding/wood,
|
||||
/obj/effect/decal/cleanable/dirt/dust,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"jr" = (
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"jx" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 5
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"jT" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/caution/stand_clear,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"kh" = (
|
||||
/obj/structure/table/wood/poker,
|
||||
/obj/effect/decal/cleanable/dirt/dust,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"kD" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"kS" = (
|
||||
/obj/effect/decal/cleanable/dirt/dust,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"kW" = (
|
||||
/obj/machinery/chem_dispenser/drinks/beer/fullupgrade,
|
||||
/obj/structure/table/wood/poker,
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/obj/machinery/light/small/directional/north,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"lU" = (
|
||||
/obj/machinery/door/airlock/maintenance_hatch{
|
||||
name = "Maintenance Hatch"
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"lY" = (
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/dark/full,
|
||||
/turf/open/floor/iron/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"md" = (
|
||||
/obj/structure/table/wood/poker,
|
||||
/obj/item/storage/box/drinkingglasses,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"mK" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"nA" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/closed/indestructible/steel,
|
||||
/area/misc/hilbertshotel)
|
||||
"oZ" = (
|
||||
/turf/closed/indestructible/steel,
|
||||
/area/misc/hilbertshotel)
|
||||
"pm" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/light/small/broken/directional/north,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"pv" = (
|
||||
/obj/effect/turf_decal/siding/wood,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"pD" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"qn" = (
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"st" = (
|
||||
/obj/structure/grille/broken,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"tZ" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/obj/effect/decal/cleanable/vomit/old,
|
||||
/obj/structure/toilet{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"uX" = (
|
||||
/obj/structure/table/wood/poker,
|
||||
/obj/item/stack/spacecash/c1000,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"wb" = (
|
||||
/obj/structure/chair/wood{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"wl" = (
|
||||
/obj/machinery/vending/cigarette/beach,
|
||||
/obj/effect/turf_decal/tile/dark/full,
|
||||
/obj/machinery/light/warm/directional/east,
|
||||
/turf/open/floor/iron/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"wu" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/crowbar,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"wS" = (
|
||||
/obj/structure/chair/sofa/left/brown,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"xT" = (
|
||||
/obj/structure/table/wood/poker,
|
||||
/obj/item/stack/spacecash/c1000,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"zA" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/soap/deluxe,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/item/storage/box/lights/mixed,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"zY" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/caution/stand_clear{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"Ae" = (
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"AE" = (
|
||||
/obj/structure/closet/wardrobe/botanist,
|
||||
/obj/item/weldingtool/advanced,
|
||||
/obj/item/wrench,
|
||||
/obj/item/screwdriver,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"AO" = (
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/light/small/broken/directional/east,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"BF" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/light/small/directional/north,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"BR" = (
|
||||
/obj/effect/decal/cleanable/dirt/dust,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"Dc" = (
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"DR" = (
|
||||
/obj/structure/chair/stool/bar/directional/north,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"DX" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 6
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"Ea" = (
|
||||
/obj/item/stack/cable_coil/cut,
|
||||
/mob/living/basic/mouse,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"EX" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"Fl" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/sink/directional/south,
|
||||
/obj/structure/mirror/broken/directional/north,
|
||||
/obj/machinery/light/small/dim/directional/west,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"FN" = (
|
||||
/obj/effect/turf_decal/siding/wood,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/light/small/broken/directional/west,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"Gv" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/turf/closed/indestructible/steel,
|
||||
/area/misc/hilbertshotel)
|
||||
"HL" = (
|
||||
/obj/structure/table/wood/poker,
|
||||
/obj/item/stack/spacecash/c10,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"HO" = (
|
||||
/obj/structure/table/wood/poker,
|
||||
/obj/effect/spawner/random/trash/soap,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"Ib" = (
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"Ix" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/stack/sheet/iron/fifty,
|
||||
/obj/item/stack/sheet/mineral/wood/fifty,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"Je" = (
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/machinery/light/warm/directional/east,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"JW" = (
|
||||
/obj/machinery/vending/boozeomat/all_access,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"LC" = (
|
||||
/obj/machinery/portable_atmospherics/canister/air,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"Mf" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/stack/spacecash/c10,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"Mj" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/light/small/directional/west,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"Mk" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"Mp" = (
|
||||
/turf/closed/wall/space{
|
||||
space_lit = 1
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"MO" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/warm/directional/west,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"Np" = (
|
||||
/obj/structure/chair/sofa/middle/brown,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"NX" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"Oh" = (
|
||||
/turf/closed/indestructible/hoteldoor{
|
||||
icon_state = "closed";
|
||||
icon = 'modular_skyrat/modules/aesthetics/airlock/icons/airlocks/station2/glass.dmi'
|
||||
},
|
||||
/area/misc/hilbertshotel)
|
||||
"Py" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"PK" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"QJ" = (
|
||||
/obj/machinery/light/small/dim/directional/east,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"Rr" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"RM" = (
|
||||
/obj/machinery/vending/coffee,
|
||||
/obj/effect/turf_decal/tile/dark/full,
|
||||
/turf/open/floor/iron/large,
|
||||
/area/misc/hilbertshotel)
|
||||
"RP" = (
|
||||
/obj/machinery/chem_dispenser/drinks/fullupgrade,
|
||||
/obj/structure/table/wood/poker,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"SS" = (
|
||||
/obj/structure/chair/stool/bar/directional/west,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"SV" = (
|
||||
/obj/structure/disposalpipe/trunk,
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/turf/open/floor/iron,
|
||||
/area/misc/hilbertshotel)
|
||||
"Tj" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"Tu" = (
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small/directional/south,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"Ul" = (
|
||||
/obj/structure/table/wood/poker,
|
||||
/obj/item/reagent_containers/cup/glass/shaker,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"UQ" = (
|
||||
/obj/machinery/vending/boozeomat/all_access,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"UU" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"Wh" = (
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"Wl" = (
|
||||
/obj/structure/chair/wood{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
"Wt" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt/dust,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"WI" = (
|
||||
/obj/machinery/door/airlock/maintenance_hatch{
|
||||
name = "Maintenance Hatch"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"WN" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/storage/pill_bottle/maintenance_pill/full,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"WX" = (
|
||||
/obj/structure/chair/sofa/right/brown,
|
||||
/turf/open/floor/wood,
|
||||
/area/misc/hilbertshotel)
|
||||
"YW" = (
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/misc/hilbertshotel)
|
||||
"Zq" = (
|
||||
/obj/structure/chair/wood{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/wood/parquet,
|
||||
/area/misc/hilbertshotel)
|
||||
|
||||
(1,1,1) = {"
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
oZ
|
||||
Oh
|
||||
ar
|
||||
ar
|
||||
ar
|
||||
MO
|
||||
ar
|
||||
jT
|
||||
ar
|
||||
ar
|
||||
ar
|
||||
MO
|
||||
ar
|
||||
Oh
|
||||
oZ
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
oZ
|
||||
Oh
|
||||
dT
|
||||
dT
|
||||
dT
|
||||
dT
|
||||
dT
|
||||
NX
|
||||
dT
|
||||
dT
|
||||
dT
|
||||
SV
|
||||
jx
|
||||
Oh
|
||||
oZ
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
oZ
|
||||
Oh
|
||||
Je
|
||||
jr
|
||||
jr
|
||||
jr
|
||||
fi
|
||||
zY
|
||||
jr
|
||||
jr
|
||||
DX
|
||||
Rr
|
||||
dw
|
||||
Oh
|
||||
oZ
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
lU
|
||||
oZ
|
||||
wl
|
||||
RM
|
||||
lY
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
oZ
|
||||
Mf
|
||||
Ix
|
||||
wu
|
||||
oZ
|
||||
Mj
|
||||
eO
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
UQ
|
||||
HL
|
||||
oZ
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
oZ
|
||||
SS
|
||||
Tj
|
||||
Py
|
||||
WI
|
||||
Tj
|
||||
bz
|
||||
LC
|
||||
oZ
|
||||
uX
|
||||
HO
|
||||
FN
|
||||
Zq
|
||||
bw
|
||||
oZ
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
oZ
|
||||
BF
|
||||
Tj
|
||||
Tj
|
||||
oZ
|
||||
Tj
|
||||
bz
|
||||
Py
|
||||
WI
|
||||
EX
|
||||
cy
|
||||
iL
|
||||
Ae
|
||||
Ae
|
||||
oZ
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
oZ
|
||||
ik
|
||||
AE
|
||||
oZ
|
||||
oZ
|
||||
Tj
|
||||
Mk
|
||||
dS
|
||||
oZ
|
||||
cy
|
||||
fa
|
||||
pv
|
||||
Wl
|
||||
wb
|
||||
oZ
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
st
|
||||
Ea
|
||||
bz
|
||||
UU
|
||||
oZ
|
||||
YW
|
||||
qn
|
||||
Dc
|
||||
Tu
|
||||
oZ
|
||||
oZ
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
oZ
|
||||
Fl
|
||||
WI
|
||||
Mk
|
||||
Mk
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
Wt
|
||||
cz
|
||||
WX
|
||||
kS
|
||||
PK
|
||||
Mp
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
oZ
|
||||
tZ
|
||||
nA
|
||||
pm
|
||||
WN
|
||||
oZ
|
||||
Ul
|
||||
Ib
|
||||
md
|
||||
aS
|
||||
cy
|
||||
Np
|
||||
EX
|
||||
PK
|
||||
Mp
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
Gv
|
||||
Gv
|
||||
Gv
|
||||
WI
|
||||
oZ
|
||||
oZ
|
||||
RP
|
||||
Wh
|
||||
kh
|
||||
aS
|
||||
fa
|
||||
wS
|
||||
cy
|
||||
PK
|
||||
Mp
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
oZ
|
||||
cD
|
||||
gQ
|
||||
Tj
|
||||
zA
|
||||
oZ
|
||||
kW
|
||||
pD
|
||||
xT
|
||||
DR
|
||||
kD
|
||||
kS
|
||||
ho
|
||||
PK
|
||||
Mp
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
oZ
|
||||
mK
|
||||
QJ
|
||||
gQ
|
||||
aC
|
||||
oZ
|
||||
JW
|
||||
BR
|
||||
Tj
|
||||
AO
|
||||
cz
|
||||
oZ
|
||||
PK
|
||||
PK
|
||||
Mp
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
oZ
|
||||
Mp
|
||||
Mp
|
||||
Mp
|
||||
"}
|
||||
@@ -42,11 +42,11 @@
|
||||
|
||||
switch(gender)
|
||||
if(MALE)
|
||||
play_lewd_sound(get_turf(src), pick('modular_skyrat/modules/modular_items/lewd_items/sounds/final_m1.ogg',
|
||||
conditional_pref_sound(get_turf(src), pick('modular_skyrat/modules/modular_items/lewd_items/sounds/final_m1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/final_m2.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/final_m3.ogg'), 50, TRUE, pref_to_check = /datum/preference/toggle/erp/sounds)
|
||||
if(FEMALE)
|
||||
play_lewd_sound(get_turf(src), pick('modular_skyrat/modules/modular_items/lewd_items/sounds/final_f1.ogg',
|
||||
conditional_pref_sound(get_turf(src), pick('modular_skyrat/modules/modular_items/lewd_items/sounds/final_f1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/final_f2.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/final_f3.ogg'), 50, TRUE, pref_to_check = /datum/preference/toggle/erp/sounds)
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
return
|
||||
speech_args[SPEECH_MESSAGE] = pick((prob(moans_alt_probability) && LAZYLEN(moans_alt)) ? moans_alt : moans)
|
||||
if(moan_sounds)
|
||||
play_lewd_sound(loc, pick(moan_sounds), chokes_wearer ? moan_volume_choking : moan_volume, 1, -1)
|
||||
conditional_pref_sound(loc, pick(moan_sounds), chokes_wearer ? moan_volume_choking : moan_volume, 1, -1)
|
||||
|
||||
// Change the size of the gag
|
||||
/obj/item/clothing/mask/ballgag/attack_self(mob/user)
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
return
|
||||
|
||||
speech_args[SPEECH_MESSAGE] = pick((prob(moans_alt_probability) && LAZYLEN(moans_alt)) ? moans_alt : moans)
|
||||
play_lewd_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f1.ogg',
|
||||
conditional_pref_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f2.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f3.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f4.ogg'), 70, 1, -1)
|
||||
@@ -261,7 +261,7 @@
|
||||
/obj/item/clothing/mask/gas/bdsm_mask/proc/toggle(mob/living/carbon/user)
|
||||
mask_on = !mask_on
|
||||
to_chat(user, span_notice("You turn the air filter [mask_on ? "on. Use with caution!" : "off. Now it's safe to wear."]"))
|
||||
play_lewd_sound(user, mask_on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
conditional_pref_sound(user, mask_on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
update_icon_state()
|
||||
update_mob_action_buttonss()
|
||||
update_icon()
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/obj/item/clothing/suit/corset/click_alt(mob/user)
|
||||
laced_tight = !laced_tight
|
||||
to_chat(user, span_notice("You [laced_tight ? "tighten" : "loosen"] the corset, making it far [laced_tight ? "harder" : "easier"] to breathe."))
|
||||
play_lewd_sound(user, laced_tight ? 'sound/items/handling/cloth_pickup.ogg' : 'sound/items/handling/cloth_drop.ogg', 40, TRUE)
|
||||
conditional_pref_sound(user, laced_tight ? 'sound/items/handling/cloth_pickup.ogg' : 'sound/items/handling/cloth_drop.ogg', 40, TRUE)
|
||||
. = CLICK_ACTION_SUCCESS
|
||||
if(laced_tight)
|
||||
slowdown = TIGHT_SLOWDOWN
|
||||
|
||||
@@ -76,14 +76,14 @@
|
||||
if(user_client == "speech")
|
||||
if(muzzle == TRUE)
|
||||
muzzle = FALSE
|
||||
play_lewd_sound(usr, 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
conditional_pref_sound(usr, 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
to_chat(usr, span_notice("Speech switch off"))
|
||||
if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src)
|
||||
REMOVE_TRAIT(usr, TRAIT_MUTE, CLOTHING_TRAIT)
|
||||
//to_chat(U, span_purple("Your mouth is free. you breathe out with relief."))
|
||||
else
|
||||
muzzle = TRUE
|
||||
play_lewd_sound(usr, 'sound/weapons/magin.ogg', 40, TRUE)
|
||||
conditional_pref_sound(usr, 'sound/weapons/magin.ogg', 40, TRUE)
|
||||
to_chat(usr, span_notice("Speech switch on"))
|
||||
if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src)
|
||||
ADD_TRAIT(usr, TRAIT_MUTE, CLOTHING_TRAIT)
|
||||
@@ -91,14 +91,14 @@
|
||||
if(user_client == "hearing")
|
||||
if(earmuffs == TRUE)
|
||||
earmuffs = FALSE
|
||||
play_lewd_sound(usr, 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
conditional_pref_sound(usr, 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
to_chat(usr, span_notice("Hearing switch off"))
|
||||
if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src)
|
||||
REMOVE_TRAIT(usr, TRAIT_DEAF, CLOTHING_TRAIT)
|
||||
//to_chat(U, span_purple("Finally you can hear the world around again."))
|
||||
else
|
||||
earmuffs = TRUE
|
||||
play_lewd_sound(usr, 'sound/weapons/magin.ogg', 40, TRUE)
|
||||
conditional_pref_sound(usr, 'sound/weapons/magin.ogg', 40, TRUE)
|
||||
to_chat(usr, span_notice("Hearing switch on"))
|
||||
if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src)
|
||||
ADD_TRAIT(usr, TRAIT_DEAF, CLOTHING_TRAIT)
|
||||
@@ -107,14 +107,14 @@
|
||||
var/mob/living/carbon/human/user = usr
|
||||
if(prevent_vision == TRUE)
|
||||
prevent_vision = FALSE
|
||||
play_lewd_sound(usr, 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
conditional_pref_sound(usr, 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
to_chat(usr, span_notice("Vision switch off"))
|
||||
if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src)
|
||||
user.cure_blind("deprivation_helmet_[REF(src)]")
|
||||
//to_chat(U, span_purple("Helmet no longer restricts your vision."))
|
||||
else
|
||||
prevent_vision = TRUE
|
||||
play_lewd_sound(usr, 'sound/weapons/magin.ogg', 40, TRUE)
|
||||
conditional_pref_sound(usr, 'sound/weapons/magin.ogg', 40, TRUE)
|
||||
to_chat(usr, span_notice("Vision switch on"))
|
||||
if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src)
|
||||
user.become_blind("deprivation_helmet_[REF(src)]")
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
|
||||
/obj/item/clothing/suit/straight_jacket/kinky_sleepbag/proc/fold(mob/user, src)
|
||||
bag_fold = !bag_fold
|
||||
play_lewd_sound(user, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 40, TRUE)
|
||||
conditional_pref_sound(user, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 40, TRUE)
|
||||
if(bag_fold == TRUE)
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
slot_flags = NONE
|
||||
@@ -182,7 +182,7 @@
|
||||
/obj/item/clothing/suit/straight_jacket/kinky_sleepbag/process(seconds_per_tick)
|
||||
if(time_to_sound_left <= 0)
|
||||
if(tt <= 0)
|
||||
play_lewd_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 100, TRUE)
|
||||
conditional_pref_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 100, TRUE)
|
||||
tt = rand(15, 35) //to do random funny sounds when character inside that thing.
|
||||
else
|
||||
tt -= seconds_per_tick
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
to_chat(user, span_warning("You need to put the strapon around your waist before you can use it!"))
|
||||
|
||||
/obj/item/clothing/strapon/proc/toggle(mob/living/carbon/human/user)
|
||||
play_lewd_sound(user, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 40, TRUE)
|
||||
conditional_pref_sound(user, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 40, TRUE)
|
||||
var/obj/item/held = user.get_active_held_item()
|
||||
var/obj/item/unheld = user.get_inactive_held_item()
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
if(prob(40))
|
||||
hit_mob.try_lewd_autoemote(pick("twitch_s", "moan"))
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
conditional_pref_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang2.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang3.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang4.ogg',
|
||||
@@ -227,7 +227,7 @@
|
||||
if(prob(70))
|
||||
hit_mob.try_lewd_autoemote(pick("gasp", "moan"))
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
conditional_pref_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang2.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang3.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang4.ogg',
|
||||
@@ -246,7 +246,7 @@
|
||||
if(prob(60))
|
||||
hit_mob.try_lewd_autoemote(pick("twitch_s", "moan", "shiver"))
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
conditional_pref_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang2.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang3.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang4.ogg',
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* play_lewd_sound is similar to `playsound` but it does not pass through walls, doesn't play for ghosts, and checks for prefs.
|
||||
* conditional_pref_sound is similar to `playsound` but it does not pass through walls, doesn't play for ghosts, and checks for prefs.
|
||||
* This is useful if we have something like the organic interface content, which everyone may not want to hear.
|
||||
*
|
||||
* source - Origin of sound.
|
||||
@@ -14,7 +14,7 @@
|
||||
* falloff_distance - Distance at which falloff begins. Sound is at peak volume (in regards to falloff) aslong as it is in this range.
|
||||
* pref_to_check - the path of the pref that we want to check
|
||||
*/
|
||||
/proc/play_lewd_sound(
|
||||
/proc/conditional_pref_sound(
|
||||
atom/source,
|
||||
soundin,
|
||||
vol as num,
|
||||
@@ -63,7 +63,7 @@
|
||||
listening_mob.playsound_local(turf_source, soundin, vol, vary, frequency, falloff_exponent, channel, pressure_affected, sound_to_play, maxdistance, falloff_distance, 1, use_reverb)
|
||||
. += listening_mob
|
||||
|
||||
/// The looping sound datum but we check for prefs and use `play_lewd_sound` instead of `playsound`
|
||||
/// The looping sound datum but we check for prefs and use `conditional_pref_sound` instead of `playsound`
|
||||
/datum/looping_sound/lewd
|
||||
/// What preference are we going to check with our looping sound when we play it for people?
|
||||
var/pref_to_check = /datum/preference/toggle/erp/sex_toy_sounds
|
||||
@@ -76,7 +76,7 @@
|
||||
SEND_SOUND(parent, sound_to_play)
|
||||
return
|
||||
|
||||
play_lewd_sound(
|
||||
conditional_pref_sound(
|
||||
parent,
|
||||
sound_to_play,
|
||||
volume,
|
||||
|
||||
@@ -47,11 +47,11 @@
|
||||
var/datum/reagents/applied_reagents = new/datum/reagents(50)
|
||||
applied_reagents.add_reagent(/datum/reagent/consumable/cum, cum_volume)
|
||||
user.visible_message(span_warning("[user] cums into [target]!"), span_danger("You cum into [target]!"))
|
||||
play_lewd_sound(target, SFX_DESECRATION, 50, TRUE)
|
||||
conditional_pref_sound(target, SFX_DESECRATION, 50, TRUE)
|
||||
applied_reagents.trans_to(target, cum_volume)
|
||||
else
|
||||
user.visible_message(span_warning("[user] cums on [target]!"), span_danger("You cum on [target]!"))
|
||||
play_lewd_sound(target, SFX_DESECRATION, 50, TRUE)
|
||||
conditional_pref_sound(target, SFX_DESECRATION, 50, TRUE)
|
||||
affected_human.add_cum_splatter_floor(get_turf(target))
|
||||
|
||||
log_combat(user, target, "came on")
|
||||
|
||||
@@ -101,22 +101,22 @@
|
||||
if(EGGVIB_OFF)
|
||||
vibration_mode = EGGVIB_LOW
|
||||
toy_on = TRUE
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
soundloop1.start()
|
||||
if(EGGVIB_LOW)
|
||||
vibration_mode = EGGVIB_MEDIUM
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
soundloop1.stop()
|
||||
soundloop2.start()
|
||||
if(EGGVIB_MEDIUM)
|
||||
vibration_mode = EGGVIB_HIGH
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
soundloop2.stop()
|
||||
soundloop3.start()
|
||||
if(EGGVIB_HIGH)
|
||||
vibration_mode = EGGVIB_OFF
|
||||
toy_on = FALSE
|
||||
play_lewd_sound(loc, 'sound/weapons/magout.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magout.ogg', 20, TRUE)
|
||||
soundloop3.stop()
|
||||
|
||||
/obj/item/clothing/sextoy/eggvib/lewd_equipped(mob/living/carbon/human/user, slot, initial)
|
||||
@@ -335,13 +335,13 @@
|
||||
switch(vibration_mode)
|
||||
if(EGGVIB_LOW)
|
||||
vibration_mode = EGGVIB_MEDIUM
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
if(EGGVIB_MEDIUM)
|
||||
vibration_mode = EGGVIB_HIGH
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
if(EGGVIB_HIGH)
|
||||
vibration_mode = EGGVIB_LOW
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
|
||||
#undef EGGVIB_OFF
|
||||
#undef EGGVIB_LOW
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
to_chat(user, span_notice("You start to open the condom pack..."))
|
||||
if(!do_after(user, 1.5 SECONDS, target = user))
|
||||
return
|
||||
play_lewd_sound(src.loc, 'sound/items/poster_ripped.ogg', 50, TRUE)
|
||||
conditional_pref_sound(src.loc, 'sound/items/poster_ripped.ogg', 50, TRUE)
|
||||
var/obj/item/clothing/sextoy/condom/removed_condom = new /obj/item/clothing/sextoy/condom
|
||||
|
||||
user.put_in_hands(removed_condom)
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
target.try_lewd_autoemote(pick(possible_emotes))
|
||||
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
conditional_pref_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang2.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang3.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang4.ogg',
|
||||
@@ -405,7 +405,7 @@ GLOBAL_LIST_INIT(dildo_colors, list(//mostly neon colors
|
||||
|
||||
/// Code for taking out/putting away the other end of the toy when one end is in you
|
||||
/obj/item/clothing/sextoy/dildo/double_dildo/proc/toggle(mob/living/carbon/human/user)
|
||||
play_lewd_sound(user, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 40, TRUE)
|
||||
conditional_pref_sound(user, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 40, TRUE)
|
||||
|
||||
if(!end_in_hand)
|
||||
take_in_hand(user)
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
target.add_mood_event("tickled", /datum/mood_event/tickled)
|
||||
carbon_target?.adjust_arousal(3)
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, \
|
||||
conditional_pref_sound(loc, \
|
||||
pick(
|
||||
'sound/items/handling/cloth_drop.ogg', // I duplicate this part of code because im useless shitcoder that can't make it work properly without tons of repeating code blocks
|
||||
'sound/items/handling/cloth_pickup.ogg', // If you can make it better - go ahead, modify it, please.
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
target.adjust_arousal(6)
|
||||
target.adjust_pleasure(9)
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
conditional_pref_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/bang1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang2.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang3.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/bang4.ogg',
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
//we're below minimum, turn off
|
||||
shocker_on = FALSE
|
||||
update_appearance()
|
||||
play_lewd_sound(src, activate_sound, 75, TRUE, -1)
|
||||
conditional_pref_sound(src, activate_sound, 75, TRUE, -1)
|
||||
|
||||
/obj/item/kinky_shocker/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -91,7 +91,7 @@
|
||||
if(cell && cell.charge >= cell_hit_cost)
|
||||
shocker_on = !shocker_on
|
||||
to_chat(user, span_notice("You turn the shocker [shocker_on? "on. Buzz!" : "off."]"))
|
||||
play_lewd_sound(user, shocker_on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
conditional_pref_sound(user, shocker_on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
else
|
||||
shocker_on = FALSE
|
||||
if(!cell)
|
||||
@@ -221,7 +221,7 @@
|
||||
return
|
||||
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, 'sound/weapons/taserhit.ogg', 70, 1, -1)
|
||||
conditional_pref_sound(loc, 'sound/weapons/taserhit.ogg', 70, 1, -1)
|
||||
deductcharge(cell_hit_cost)
|
||||
if(prob(80))
|
||||
target.try_lewd_autoemote(pick("twitch", "twitch_s", "shiver", "scream"))
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
/obj/item/clothing/mask/leatherwhip/proc/handle_speech(datum/source, list/speech_args)
|
||||
SIGNAL_HANDLER
|
||||
speech_args[SPEECH_MESSAGE] = pick((prob(moans_alt_probability) && LAZYLEN(moans_alt)) ? moans_alt : moans)
|
||||
play_lewd_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f1.ogg',
|
||||
conditional_pref_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f2.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f3.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/under_moan_f4.ogg'), 70, 1, -1)
|
||||
@@ -193,7 +193,7 @@
|
||||
target.apply_status_effect(/datum/status_effect/subspace)
|
||||
target.Paralyze(1)//don't touch it. It's domination tool, it should have ability to put someone on kneels. I already inserted check for PREF YOU CAN'T ABUSE THIS ITEM
|
||||
target.adjust_pain(5)
|
||||
play_lewd_sound(loc, 'sound/weapons/whip.ogg', 100)
|
||||
conditional_pref_sound(loc, 'sound/weapons/whip.ogg', 100)
|
||||
else
|
||||
message = (user == target) ? pick("knocks [target.p_them()]self down with [src]",
|
||||
"gently uses [src] to knock [target.p_them()]self on the ground") \
|
||||
@@ -205,7 +205,7 @@
|
||||
target.apply_status_effect(/datum/status_effect/subspace)
|
||||
target.Paralyze(1)
|
||||
target.adjust_pain(3)
|
||||
play_lewd_sound(loc, 'sound/weapons/whip.ogg', 60)
|
||||
conditional_pref_sound(loc, 'sound/weapons/whip.ogg', 60)
|
||||
|
||||
if(BODY_ZONE_HEAD)
|
||||
message = (user == target) ? pick("wraps [src] around [target.p_their()] neck, choking [target.p_them()]self",
|
||||
@@ -216,7 +216,7 @@
|
||||
target.try_lewd_autoemote(pick("gasp", "choke", "moan"))
|
||||
carbon_target?.adjust_arousal(3)
|
||||
target.adjust_pain(5)
|
||||
play_lewd_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 80)
|
||||
conditional_pref_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 80)
|
||||
|
||||
if(BODY_ZONE_PRECISE_GROIN)
|
||||
if(!carbon_target?.is_bottomless())
|
||||
@@ -236,7 +236,7 @@
|
||||
target.apply_status_effect(/datum/status_effect/spanked)
|
||||
if(HAS_TRAIT(target, TRAIT_MASOCHISM) || HAS_TRAIT(target, TRAIT_BIMBO))
|
||||
target.add_mood_event("pervert spanked", /datum/mood_event/perv_spanked)
|
||||
play_lewd_sound(loc, 'sound/weapons/whip.ogg', 60)
|
||||
conditional_pref_sound(loc, 'sound/weapons/whip.ogg', 60)
|
||||
|
||||
else
|
||||
message = (user == target) ? pick("roughly flogs [target.p_them()]self with [src]",
|
||||
@@ -253,7 +253,7 @@
|
||||
target.apply_status_effect(/datum/status_effect/spanked)
|
||||
if(HAS_TRAIT(target, TRAIT_MASOCHISM) || HAS_TRAIT(target, TRAIT_BIMBO))
|
||||
target.add_mood_event("pervert spanked", /datum/mood_event/perv_spanked)
|
||||
play_lewd_sound(loc, 'sound/weapons/whip.ogg', 100)
|
||||
conditional_pref_sound(loc, 'sound/weapons/whip.ogg', 100)
|
||||
else
|
||||
if(current_whip_type == "hard")
|
||||
message = (user == target) ? pick("disciplines [target.p_them()]self with [src]",
|
||||
@@ -265,7 +265,7 @@
|
||||
target.apply_status_effect(/datum/status_effect/subspace)
|
||||
target.do_jitter_animation()
|
||||
target.adjust_pain(7)
|
||||
play_lewd_sound(loc, 'sound/weapons/whip.ogg', 100)
|
||||
conditional_pref_sound(loc, 'sound/weapons/whip.ogg', 100)
|
||||
|
||||
else
|
||||
message = (user == target) ? pick("whips [target.p_them()]self with [src]",
|
||||
@@ -280,7 +280,7 @@
|
||||
target.do_jitter_animation()
|
||||
target.adjust_pain(4)
|
||||
carbon_target?.adjust_arousal(5)
|
||||
play_lewd_sound(loc, 'sound/weapons/whip.ogg', 60)
|
||||
conditional_pref_sound(loc, 'sound/weapons/whip.ogg', 60)
|
||||
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
target.try_lewd_autoemote(pick("twitch_s", "moan"))
|
||||
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/vibrate.ogg', (vibration_mode == MAGIC_WAND_MODE_LOW ? 10 : (vibration_mode == MAGIC_WAND_MODE_HIGH ? 30 : 20)), TRUE, pref_to_check = /datum/preference/toggle/erp/sex_toy_sounds)
|
||||
conditional_pref_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/vibrate.ogg', (vibration_mode == MAGIC_WAND_MODE_LOW ? 10 : (vibration_mode == MAGIC_WAND_MODE_HIGH ? 30 : 20)), TRUE, pref_to_check = /datum/preference/toggle/erp/sex_toy_sounds)
|
||||
|
||||
/obj/item/clothing/sextoy/magic_wand/attack_self(mob/user)
|
||||
toggle_mode()
|
||||
@@ -208,7 +208,7 @@
|
||||
/// Toggle between toy modes in a specific order
|
||||
/obj/item/clothing/sextoy/magic_wand/proc/toggle_mode()
|
||||
if(vibration_mode != "high")
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
|
||||
switch(vibration_mode)
|
||||
if("off")
|
||||
@@ -226,7 +226,7 @@
|
||||
vibration_mode = MAGIC_WAND_MODE_HIGH
|
||||
|
||||
if("high")
|
||||
play_lewd_sound(loc, 'sound/weapons/magout.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magout.ogg', 20, TRUE)
|
||||
soundloop3.stop()
|
||||
vibration_mode = MAGIC_WAND_MODE_OFF
|
||||
|
||||
|
||||
@@ -317,15 +317,15 @@
|
||||
switch(tightness)
|
||||
if(ROPE_TIGHTNESS_HIGH)
|
||||
tightness = ROPE_TIGHTNESS_LOW
|
||||
play_lewd_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 25)
|
||||
conditional_pref_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 25)
|
||||
balloon_alert(user, span_notice("You slightly tightened the ropes"))
|
||||
if(ROPE_TIGHTNESS_LOW)
|
||||
tightness = ROPE_TIGHTNESS_MED
|
||||
play_lewd_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 50)
|
||||
conditional_pref_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 50)
|
||||
balloon_alert(user, span_notice("You moderately tightened the ropes"))
|
||||
if(ROPE_TIGHTNESS_MED)
|
||||
tightness = ROPE_TIGHTNESS_HIGH
|
||||
play_lewd_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 75)
|
||||
conditional_pref_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/latex.ogg', 75)
|
||||
balloon_alert(user, span_notice("You strongly tightened the ropes"))
|
||||
|
||||
#undef ROPE_TIGHTNESS_LOW
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
"spanks [target] with [src], making a loud slapping noise",
|
||||
"slaps [target]'s thighs with [src]")
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/slap.ogg', 100, 1, -1)
|
||||
conditional_pref_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/slap.ogg', 100, 1, -1)
|
||||
if(prob(40))
|
||||
target.try_lewd_autoemote(pick("twitch_s", "moan", "blush", "gasp"))
|
||||
if(prob(10))
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
if(prob(50))
|
||||
attacked.try_lewd_autoemote(pick("twitch_s" , "gasp", "shiver"))
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/vax1.ogg',
|
||||
conditional_pref_sound(loc, pick('modular_skyrat/modules/modular_items/lewd_items/sounds/vax1.ogg',
|
||||
'modular_skyrat/modules/modular_items/lewd_items/sounds/vax2.ogg'), 70, TRUE)
|
||||
|
||||
#undef CANDLE_LUMINOSITY
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
else
|
||||
return
|
||||
user.visible_message(span_purple("[user] [message]!"))
|
||||
play_lewd_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/vibrate.ogg', 10, TRUE)
|
||||
conditional_pref_sound(loc, 'modular_skyrat/modules/modular_items/lewd_items/sounds/vibrate.ogg', 10, TRUE)
|
||||
|
||||
/obj/item/clothing/sextoy/vibrator/attack_self(mob/user, obj/item/attack_item)
|
||||
toggle_mode()
|
||||
@@ -208,22 +208,22 @@
|
||||
if(VIB_OFF)
|
||||
vibration_mode = VIB_LOW
|
||||
toy_on = TRUE
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
soundloop1.start()
|
||||
if(VIB_LOW)
|
||||
vibration_mode = VIB_MEDIUM
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
soundloop1.stop()
|
||||
soundloop2.start()
|
||||
if(VIB_MEDIUM)
|
||||
vibration_mode = VIB_HIGH
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
soundloop2.stop()
|
||||
soundloop3.start()
|
||||
if(VIB_HIGH)
|
||||
vibration_mode = VIB_OFF
|
||||
toy_on = FALSE
|
||||
play_lewd_sound(loc, 'sound/weapons/magout.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magout.ogg', 20, TRUE)
|
||||
soundloop3.stop()
|
||||
|
||||
#undef DEFAULT_AROUSAL_INCREASE
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/obj/item/clothing/sextoy/vibroring/attack_self(mob/user)
|
||||
toy_on = !toy_on
|
||||
to_chat(user, span_notice("You turn the vibroring [toy_on ? "on. Brrrr..." : "off."]"))
|
||||
play_lewd_sound(user, toy_on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
conditional_pref_sound(user, toy_on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE)
|
||||
update_icon_state()
|
||||
update_icon()
|
||||
switch(toy_on)
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
add_fingerprint(user)
|
||||
update_icon_state()
|
||||
update_icon()
|
||||
play_lewd_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
conditional_pref_sound(loc, 'sound/weapons/magin.ogg', 20, TRUE)
|
||||
|
||||
//Place the mob in the desired position after buckling
|
||||
/obj/structure/chair/x_stand/post_buckle_mob(mob/living/affected_mob)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
icon_state = "38"
|
||||
multiple_sprites = AMMO_BOX_PER_BULLET
|
||||
ammo_band_icon = "+38_ammo_band"
|
||||
|
||||
multitype = FALSE
|
||||
custom_premium_price = 50
|
||||
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
@@ -98,3 +98,27 @@
|
||||
desc = "Designed to quickly reload revolvers."
|
||||
ammo_type = /obj/item/ammo_casing/c10mm/fire
|
||||
ammo_band_color = "#c41d1a"
|
||||
|
||||
/obj/item/ammo_box/c10mm/speedloader/ap
|
||||
|
||||
name = "speed loader (10mm Auto Armor Penetrating)"
|
||||
desc = "Designed to quickly reload revolvers."
|
||||
ammo_type = /obj/item/ammo_casing/c10mm/ap
|
||||
ammo_band_color = "#1ac43f"
|
||||
|
||||
/obj/item/ammo_box/c10mm/speedloader/hp
|
||||
|
||||
name = "speed loader (10mm Auto Hollow Point)"
|
||||
desc = "Designed to quickly reload revolvers."
|
||||
ammo_type = /obj/item/ammo_casing/c10mm/hp
|
||||
ammo_band_color = "#df00ae"
|
||||
|
||||
/obj/item/ammo_box/magazine/firefly
|
||||
name = "pistol magazine (.117 Incapacitator)"
|
||||
icon = 'modular_skyrat/modules/modular_weapons/icons/obj/company_and_or_faction_based/nanotrasen_system_inc/ammo.dmi'
|
||||
multiple_sprites = AMMO_BOX_FULL_EMPTY
|
||||
icon_state = "firefly"
|
||||
multitype = FALSE
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/antitide
|
||||
max_ammo = 10
|
||||
caliber = CALIBER_SHOTGUN
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg'
|
||||
pin = /obj/item/firing_pin
|
||||
spawn_magazine_type = /obj/item/ammo_box/magazine/m9mm/rubber
|
||||
suppressor_x_offset = -2
|
||||
suppressor_y_offset = -1
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/nt_glock/give_manufacturer_examine()
|
||||
AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN)
|
||||
@@ -59,9 +61,43 @@
|
||||
burst_size = 3
|
||||
spawn_magazine_type = /obj/item/ammo_box/magazine/m9mm/stendo
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/nt_glock/empty
|
||||
//Magistrate Pistol
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/firefly
|
||||
name = "MX-7C Stun Pistol"
|
||||
|
||||
weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/firefly/empty
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/firefly/PopulateContents()
|
||||
new weapon_to_spawn (src)
|
||||
|
||||
generate_items_inside(list(
|
||||
/obj/item/ammo_box/magazine/firefly = 3,
|
||||
), src)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/firefly
|
||||
name = "\improper MX-7C 'Firefly'"
|
||||
desc = "NanoTrasen Experimental Model 7 Compact, A rare pistol chambered in a .117 electrode cartridge. It has has a small magazine capacity."
|
||||
icon = 'modular_skyrat/modules/modular_weapons/icons/obj/company_and_or_faction_based/nanotrasen_system_inc/pistol.dmi'
|
||||
icon_state = "firefly"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
spread = 10
|
||||
fire_sound = 'sound/weapons/gun/pistol/shot_alt.ogg'
|
||||
rack_sound = 'sound/weapons/gun/pistol/rack.ogg'
|
||||
lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg'
|
||||
bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg'
|
||||
pin = /obj/item/firing_pin
|
||||
spawn_magazine_type = /obj/item/ammo_box/magazine/firefly
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/firefly
|
||||
can_suppress = FALSE
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/firefly/give_manufacturer_examine()
|
||||
AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/firefly/empty
|
||||
spawnwithmagazine = FALSE
|
||||
|
||||
|
||||
// Revolver
|
||||
|
||||
/obj/item/gun/ballistic/revolver/nt_revolver
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#define AMMO_MATS_SHOTGUN list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 4) // not quite as thick as a half-sheet
|
||||
|
||||
#define AMMO_MATS_SHOTGUN_FLECH list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 2,\
|
||||
/datum/material/titanium = SMALL_MATERIAL_AMOUNT * 2)
|
||||
/datum/material/glass = SMALL_MATERIAL_AMOUNT * 2)
|
||||
|
||||
#define AMMO_MATS_SHOTGUN_HIVE list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 2,\
|
||||
/datum/material/silver = SMALL_MATERIAL_AMOUNT * 1)
|
||||
|
||||
@@ -86,26 +86,27 @@
|
||||
AddElement(/datum/element/manufacturer_examine, COMPANY_ROMTECH)
|
||||
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/m1911_gold
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/m1911_gold
|
||||
name = "golden m1911 .460 ceres"
|
||||
weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/m1911/gold
|
||||
extra_to_spawn = /obj/item/ammo_box/magazine/m45
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/m1911/PopulateContents()
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/m1911/PopulateContents()
|
||||
new weapon_to_spawn (src)
|
||||
|
||||
generate_items_inside(list(
|
||||
/obj/item/ammo_box/c45 = 2,
|
||||
), src)
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/m45a5
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/m45a5
|
||||
name = "heavy pistol .460 magnum"
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/m45a5/PopulateContents()
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/m45a5/PopulateContents()
|
||||
new /obj/item/gun/ballistic/automatic/pistol/m45a5(src)
|
||||
new /obj/item/ammo_box/magazine/m45a5(src)
|
||||
new /obj/item/ammo_box/magazine/m45a5(src)
|
||||
new /obj/item/ammo_box/magazine/m45a5(src)
|
||||
new /obj/item/storage/pouch/ammo(src)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/m45a5
|
||||
name = "M4A5"
|
||||
@@ -114,7 +115,7 @@
|
||||
icon_state = "m45a5"
|
||||
fire_sound = 'modular_skyrat/modules/modular_weapons/sounds/pistol_heavy.ogg'
|
||||
force = 15
|
||||
fire_delay = 1.8 SECONDS
|
||||
fire_delay = 1 SECONDS
|
||||
special_mags = TRUE
|
||||
recoil = 3
|
||||
|
||||
|
||||
@@ -143,7 +143,8 @@
|
||||
burst_size = 2
|
||||
fire_delay = 2
|
||||
spread = 5
|
||||
pin = /obj/item/firing_pin/alert_level
|
||||
// pin = /obj/item/firing_pin/alert_level this does work but it's a conceptual failure
|
||||
pin = /obj/item/firing_pin
|
||||
fire_sound = 'modular_skyrat/modules/modular_weapons/sounds/smg_light.ogg'
|
||||
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/caflechette
|
||||
@@ -154,13 +155,15 @@
|
||||
/// how long does it take to extend/collapse the stock
|
||||
var/toggle_time = 1 SECONDS
|
||||
/// what's our spread with our extended stock (mild varedit compatibility I Guess)?
|
||||
var/unfolded_spread = 5
|
||||
var/unfolded_spread = 2
|
||||
/// what's our spread with a folded stock (see above comment)?
|
||||
var/folded_spread = 20
|
||||
var/folded_spread = 15
|
||||
/// Do we have any recoil if it's folded?
|
||||
var/folded_recoil = 5
|
||||
var/folded_recoil = 3
|
||||
///Do we lose any recoil when it's not?
|
||||
var/unfolded_recoil = 0
|
||||
///Shuld this gun be one handed anyway?
|
||||
var/one_handed_always = TRUE
|
||||
/obj/item/gun/ballistic/automatic/rom_flech/examine(mob/user)
|
||||
. = ..()
|
||||
. += span_notice("<b>Alt-click</b> to [folded ? "extend" : "collapse"] the stock.")
|
||||
@@ -191,10 +194,15 @@
|
||||
spread = folded_spread
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
recoil = folded_recoil
|
||||
weapon_weight = WEAPON_LIGHT
|
||||
else
|
||||
spread = unfolded_spread
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
recoil = unfolded_recoil
|
||||
if(one_handed_always)
|
||||
weapon_weight = WEAPON_LIGHT
|
||||
else
|
||||
weapon_weight = WEAPON_HEAVY
|
||||
update_icon()
|
||||
|
||||
/obj/item/gun/ballistic/automatic/rom_flech/update_overlays()
|
||||
@@ -207,11 +215,11 @@
|
||||
/obj/item/gun/ballistic/automatic/rom_flech/empty
|
||||
spawnwithmagazine = FALSE
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/rom_flech
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/rom_flech
|
||||
name = "CMG-1 Rifle Case"
|
||||
weapon_to_spawn = /obj/item/gun/ballistic/automatic/rom_flech/empty
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/rom_flech/PopulateContents()
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/rom_flech/PopulateContents()
|
||||
new weapon_to_spawn (src)
|
||||
|
||||
generate_items_inside(list(
|
||||
@@ -228,25 +236,25 @@
|
||||
lefthand_file = 'modular_skyrat/modules/modular_weapons/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_lefthand.dmi'
|
||||
righthand_file = 'modular_skyrat/modules/modular_weapons/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_righthand.dmi'
|
||||
inhand_icon_state = "infanterie_evil"
|
||||
bolt_type = BOLT_TYPE_LOCKING
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
weapon_weight = WEAPON_LIGHT
|
||||
burst_size = 3
|
||||
spread = 0
|
||||
pin = /obj/item/firing_pin
|
||||
|
||||
unfolded_spread = 0
|
||||
folded_spread = 7
|
||||
folded_recoil = 2
|
||||
unfolded_recoil = 0
|
||||
one_handed_always = 1
|
||||
|
||||
/obj/item/gun/ballistic/automatic/rom_flech/blueshield/empty
|
||||
spawnwithmagazine = FALSE
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/blueshield_cmg
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/blueshield_cmg
|
||||
name = "CMG-2C Rifle Case"
|
||||
weapon_to_spawn = /obj/item/gun/ballistic/automatic/rom_flech/blueshield/empty
|
||||
|
||||
/obj/item/storage/toolbox/guncase/skyrat/blueshield_cmg/PopulateContents()
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/blueshield_cmg/PopulateContents()
|
||||
new weapon_to_spawn (src)
|
||||
|
||||
generate_items_inside(list(
|
||||
|
||||
|
After Width: | Height: | Size: 427 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -54,7 +54,6 @@
|
||||
head = /obj/item/clothing/head/nanotrasen_consultant
|
||||
backpack_contents = list(
|
||||
/obj/item/melee/baton/telescopic = 1,
|
||||
/obj/item/choice_beacon/ntc = 1,
|
||||
/obj/item/gun/energy/e_gun/mini = 1,
|
||||
)
|
||||
|
||||
@@ -152,4 +151,4 @@
|
||||
new /obj/item/storage/photo_album/personal(src)
|
||||
new /obj/item/bedsheet/centcom(src)
|
||||
new /obj/item/storage/bag/garment/nanotrasen_consultant(src)
|
||||
new /obj/item/choice_beacon/station_magistrate(src)
|
||||
new /obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/firefly(src)
|
||||
|
||||
@@ -79,8 +79,8 @@
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
/obj/structure/reagent_anvil/hammer_act(mob/living/user, obj/item/tool)
|
||||
//regardless, we will make a sound
|
||||
playsound(src, 'modular_skyrat/modules/reagent_forging/sound/forge.ogg', 50, TRUE, ignore_walls = FALSE)
|
||||
//regardless, we will make a sound (if the user has the pref enabled)
|
||||
conditional_pref_sound(src, 'modular_skyrat/modules/reagent_forging/sound/forge.ogg', 50, TRUE, pref_to_check = /datum/preference/toggle/sound_ambience)
|
||||
|
||||
//do we have an incomplete item to hammer out? if so, here is our block of code
|
||||
var/obj/item/forging/incomplete/locate_incomplete = locate() in contents
|
||||
|
||||
@@ -82,6 +82,7 @@
|
||||
)
|
||||
crate_name = "Carwo 'Renoster' Shotgun Crate"
|
||||
|
||||
|
||||
/datum/supply_pack/security/armory/sindano
|
||||
name = "Carwo 'Sindano' Submachinegun Crate"
|
||||
desc = "Three entirely proprietary Sindano kits, chambered in .35 Sol Short. Each kit contains three empty magazines and a box each of incapacitator and lethal rounds."
|
||||
@@ -118,8 +119,8 @@
|
||||
desc = "Two CMG-1, chambered in experimental steel flechette."
|
||||
cost = CARGO_CRATE_VALUE * 20
|
||||
contains = list(
|
||||
/obj/item/storage/toolbox/guncase/skyrat/rom_flech,
|
||||
/obj/item/storage/toolbox/guncase/skyrat/rom_flech,
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/rom_flech,
|
||||
/obj/item/storage/toolbox/guncase/skyrat/pistol/rom_flech,
|
||||
)
|
||||
crate_name = "RomTech CMG-1 Crate"
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
var/static/list/selectable_gun_types = list(
|
||||
"Energy Revolver" = /obj/item/gun/energy/e_gun/blueshield,
|
||||
".457 Romulus Revolver" = /obj/item/storage/toolbox/guncase/skyrat/hos_revolver,
|
||||
".460 Rowland Magnum Pistol" = /obj/item/storage/toolbox/guncase/skyrat/m45a5
|
||||
".460 Rowland Magnum Pistol" = /obj/item/storage/toolbox/guncase/skyrat/pistol/m45a5
|
||||
)
|
||||
|
||||
return selectable_gun_types
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/datum/supply_pack/goody/m1911
|
||||
name = "Authentic SR Sector M1911"
|
||||
desc = "Old but gold, the classic pistol from the golden age of SR, whatever that place is. The M1911 chambered in .460 Ceres. It is sure to give anyone daring to fight you, a second thought. Note that this is a reproduction model by Romulus Federation and may be commonly found in the hand of a Kayit"
|
||||
contains = list(/obj/item/storage/toolbox/guncase/skyrat/m1911_gold = 1,
|
||||
contains = list(/obj/item/storage/toolbox/guncase/skyrat/pistol/m1911_gold = 1,
|
||||
)
|
||||
cost = PAYCHECK_COMMAND * 25 //The pistol is more expensive than rifle because of portability. Not Lethality
|
||||
access_view = ACCESS_WEAPONS
|
||||
@@ -36,4 +36,16 @@
|
||||
/datum/supply_pack/goody/nt_shotgun
|
||||
name = "NanoTrasen Woodstock Shotgun"
|
||||
desc = "A classic Shotgun used by hunters, police and frontiersmen alike, now at an affordable price."
|
||||
cost = PAYCHECK_COMMAND * 20
|
||||
contains = list(/obj/item/gun/ballistic/shotgun/riot, /obj/item/storage/pouch/ammo, /obj/item/storage/belt/bandolier, /obj/item/ammo_box/advanced/s12gauge/hunter)
|
||||
|
||||
/datum/supply_pack/goody/rensoter_shotgun
|
||||
name = "Renoster Shotgun Single-Pack"
|
||||
desc = "A common modern shotgun used by Solarian State Police."
|
||||
contains = list(/obj/item/gun/ballistic/shotgun/riot/sol, /obj/item/storage/pouch/ammo, /obj/item/storage/belt/bandolier, /obj/item/ammo_box/advanced/s12gauge/rubber)
|
||||
cost = PAYCHECK_COMMAND * 22
|
||||
|
||||
/datum/supply_pack/goody/double_barrel
|
||||
name = "Double-barreled Shotgun Single-Pack"
|
||||
desc = "Lost your beloved bunny to a demonic invasion? Clown broke in and stole your beloved gun? No worries! Get a new gun as long as you can pay the absurd fees."
|
||||
cost = PAYCHECK_COMMAND * 14 //This is outclassed by peacekeeper combat shotgun
|
||||
|
||||
@@ -68,18 +68,21 @@
|
||||
design_ids += "m9mm_mag_ihdf"
|
||||
design_ids += "ca_flechballpoint"
|
||||
design_ids += "m9mm_mag"
|
||||
design_ids += "c10mm_rincin"
|
||||
design_ids += "s12g_antitide"
|
||||
. = ..()
|
||||
|
||||
/datum/techweb_node/exotic_ammo/New()
|
||||
design_ids += "s12g_incinslug"
|
||||
design_ids += "ca_flechripper"
|
||||
design_ids += "sol_bolt_to_rifle"
|
||||
design_ids += "c10mm_rhp"
|
||||
design_ids += "c10mm_rap"
|
||||
. = ..()
|
||||
|
||||
/datum/techweb_node/syndicate_basic/New()
|
||||
design_ids += "s12g_magnum"
|
||||
design_ids += "s12g_express"
|
||||
design_ids += "s12g_antitide"
|
||||
design_ids += "s12g_ion"
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -433,6 +433,42 @@
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/c10mm_rincin
|
||||
name = "10mm Auto Speedloader Fireshot (Lethal)"
|
||||
desc = "A speedloader in 10mm Auto."
|
||||
id = "c10mm_rincin"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 15)
|
||||
build_path = /obj/item/ammo_box/c10mm/speedloader/fire
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/c10mm_rhp
|
||||
name = "10mm Auto Speedloader Hollow Point (Very Lethal)"
|
||||
desc = "A speedloader in 10mm Auto."
|
||||
id = "c10mm_rhp"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 15)
|
||||
build_path = /obj/item/ammo_box/c10mm/speedloader/hp
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
/datum/design/c10mm_rap
|
||||
name = "10mm Auto Speedloader Armor Piercing (Very Lethal)"
|
||||
desc = "A speedloader in 10mm Auto."
|
||||
id = "c10mm_rap"
|
||||
build_type = PROTOLATHE | AWAY_LATHE
|
||||
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/silver = SHEET_MATERIAL_AMOUNT * 15)
|
||||
build_path = /obj/item/ammo_box/c10mm/speedloader/ap
|
||||
category = list(
|
||||
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
|
||||
|
||||
//IDMA Gun Stuff
|
||||
/datum/design/caflechette
|
||||
name = "Flechette Rifle Magazine (lethal)"
|
||||
|
||||
@@ -231,22 +231,22 @@
|
||||
icon = 'modular_skyrat/modules/shotgunrebalance/icons/projectiles.dmi'
|
||||
icon_state = "stardust"
|
||||
damage = 15
|
||||
stamina = 10
|
||||
stamina = 33
|
||||
damage_falloff_tile = 0.2
|
||||
stamina_falloff_tile = 0.3
|
||||
wound_bonus = 15
|
||||
bare_wound_bonus = 15
|
||||
wound_bonus = 40
|
||||
bare_wound_bonus = 40
|
||||
stutter = 3 SECONDS
|
||||
jitter = 5 SECONDS
|
||||
eyeblur = 1 SECONDS
|
||||
sharpness = NONE
|
||||
range = 12
|
||||
embed_type = /datum/embed_data/shotgun_buckshot/antitide
|
||||
reflectable = FALSE
|
||||
reflectable = NONE
|
||||
|
||||
/datum/embed_data/shotgun_buckshot/antitide
|
||||
embed_chance = 200
|
||||
pain_chance = 90
|
||||
pain_chance = 95
|
||||
fall_chance = 10
|
||||
jostle_chance = 10
|
||||
ignore_throwspeed_threshold = TRUE
|
||||
@@ -269,18 +269,17 @@
|
||||
damage = 15 //I'd kill you if you manage to kill someone with this shit
|
||||
wound_bonus = 30
|
||||
bare_wound_bonus = 30
|
||||
demolition_mod = 5
|
||||
demolition_mod = 2
|
||||
|
||||
/obj/projectile/bullet/frangible_slug/on_hit(atom/target, blocked = 0, pierce_hit)
|
||||
. = ..()
|
||||
if(istype(target, /obj/structure/window) || istype(target, /obj/machinery/door/airlock))
|
||||
if(istype(target, /obj/structure/window) || istype(target, /obj/machinery/door/airlock) || istype(target, /obj/structure/grille) || istype(target,/obj/structure/door_assembly))
|
||||
if(isobj(target))
|
||||
demolition_mod = 50
|
||||
damage = 30
|
||||
else
|
||||
demolition_mod = 5
|
||||
demolition_mod = 2
|
||||
damage = 15
|
||||
return ..()
|
||||
|
||||
/obj/item/ammo_casing/shotgun/hunter
|
||||
name = "hunter slug shell"
|
||||
|
||||
@@ -40,6 +40,11 @@
|
||||
#define CLOAK_COLORPIXEL_X_2 12
|
||||
#define CLOAK_COLORPIXEL_Y_2 22
|
||||
|
||||
#define MANTLE_COLORPIXEL_X_1 10
|
||||
#define MANTLE_COLORPIXEL_Y_1 20
|
||||
#define MANTLE_COLORPIXEL_X_2 15
|
||||
#define MANTLE_COLORPIXEL_Y_2 20
|
||||
|
||||
#define UNDER_COLORPIXEL_X_1 15
|
||||
#define UNDER_COLORPIXEL_Y_1 17
|
||||
#define UNDER_COLORPIXEL_X_2 10
|
||||
@@ -47,26 +52,28 @@
|
||||
#define UNDER_COLORPIXEL_X_3 15
|
||||
#define UNDER_COLORPIXEL_Y_3 10
|
||||
|
||||
#define THICKROBE_COLORPIXEL_X_1 16
|
||||
#define THICKROBE_COLORPIXEL_Y_1 9
|
||||
#define WIZARDROBE_COLORPIXEL_X_1 16
|
||||
#define WIZARDROBE_COLORPIXEL_Y_1 9
|
||||
#define JACKET_COLORPIXEL_X_1 14
|
||||
#define JACKET_COLORPIXEL_Y_1 20
|
||||
#define JACKET_COLORPIXEL_Y_1 16
|
||||
#define LONGCOAT_COLORPIXEL_X_1 13
|
||||
#define LONGCOAT_COLORPIXEL_Y_1 20
|
||||
#define THICKROBE_COLORPIXEL_X_1 16
|
||||
#define THICKROBE_COLORPIXEL_Y_1 9
|
||||
#define THICKROBE_COLORPIXEL_X_2 14
|
||||
#define THICKROBE_COLORPIXEL_Y_2 19
|
||||
#define JACKET_COLORPIXEL_X_2 14
|
||||
#define JACKET_COLORPIXEL_Y_2 21
|
||||
#define WIZARDROBE_COLORPIXEL_X_2 14
|
||||
#define WIZARDROBE_COLORPIXEL_Y_2 19
|
||||
#define THICKROBE_COLORPIXEL_X_3 13
|
||||
#define THICKROBE_COLORPIXEL_Y_3 19
|
||||
#define THICKROBE_COLORPIXEL_X_4 24
|
||||
#define THICKROBE_COLORPIXEL_X_4 8
|
||||
#define THICKROBE_COLORPIXEL_Y_4 16
|
||||
#define LONGCOAT_COLORPIXEL_X_4 19
|
||||
#define LONGCOAT_COLORPIXEL_Y_4 17
|
||||
#define JACKET_COLORPIXEL_X_4 10
|
||||
#define JACKET_COLORPIXEL_Y_4 17
|
||||
#define JACKET_COLORPIXEL_X_4 9
|
||||
#define JACKET_COLORPIXEL_Y_4 15
|
||||
#define THICKROBE_COLORPIXEL_X_5 16
|
||||
#define THICKROBE_COLORPIXEL_Y_5 12
|
||||
#define WIZARDROBE_COLORPIXEL_X_5 16
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
/obj/item/clothing/neck/cloak
|
||||
species_clothing_color_coords = list(list(CLOAK_COLORPIXEL_X_1, CLOAK_COLORPIXEL_Y_1), list(CLOAK_COLORPIXEL_X_2, CLOAK_COLORPIXEL_Y_2))
|
||||
greyscale_config_worn_teshari_fallback = /datum/greyscale_config/teshari/cloak
|
||||
|
||||
/obj/item/clothing/neck/mantle
|
||||
species_clothing_color_coords = list(list(MANTLE_COLORPIXEL_X_1, MANTLE_COLORPIXEL_Y_1), list(MANTLE_COLORPIXEL_X_2, MANTLE_COLORPIXEL_Y_2))
|
||||
greyscale_config_worn_teshari_fallback = /datum/greyscale_config/teshari/mantle
|
||||
|
||||
/obj/item/clothing/neck/tie
|
||||
species_clothing_color_coords = list(list(TIE_COLORPIXEL_X_1, TIE_COLORPIXEL_Y_1))
|
||||
@@ -38,8 +42,8 @@
|
||||
species_clothing_color_coords = list(list(LONGCOAT_COLORPIXEL_X_1, LONGCOAT_COLORPIXEL_Y_1), list(THICKROBE_COLORPIXEL_X_2, THICKROBE_COLORPIXEL_Y_2), list(THICKROBE_COLORPIXEL_X_3, THICKROBE_COLORPIXEL_Y_3), list(LONGCOAT_COLORPIXEL_X_4, LONGCOAT_COLORPIXEL_Y_4))
|
||||
greyscale_config_worn_teshari_fallback = /datum/greyscale_config/teshari/thickrobe/longcoat
|
||||
|
||||
/obj/item/clothing/suit/jacket/leather
|
||||
species_clothing_color_coords = list(list(JACKET_COLORPIXEL_X_1, JACKET_COLORPIXEL_Y_1), list(THICKROBE_COLORPIXEL_X_2, THICKROBE_COLORPIXEL_Y_2), list(THICKROBE_COLORPIXEL_X_3, THICKROBE_COLORPIXEL_Y_3), list(JACKET_COLORPIXEL_X_4, JACKET_COLORPIXEL_Y_4))
|
||||
/obj/item/clothing/suit/jacket
|
||||
species_clothing_color_coords = list(list(JACKET_COLORPIXEL_X_1, JACKET_COLORPIXEL_Y_1), list(JACKET_COLORPIXEL_X_2, JACKET_COLORPIXEL_Y_2), list(THICKROBE_COLORPIXEL_X_3, THICKROBE_COLORPIXEL_Y_3), list(JACKET_COLORPIXEL_X_4, JACKET_COLORPIXEL_Y_4))
|
||||
greyscale_config_worn_teshari_fallback = /datum/greyscale_config/teshari/thickrobe/jacket
|
||||
|
||||
/obj/item/clothing/suit/armor
|
||||
@@ -173,3 +177,12 @@
|
||||
/obj/item/clothing/suit/toggle/suspenders
|
||||
greyscale_config_worn_teshari = /datum/greyscale_config/suspenders/worn/teshari
|
||||
|
||||
// Unique clothing here
|
||||
|
||||
/obj/item/clothing/suit/kimjacket
|
||||
species_clothing_color_coords = list(list(JACKET_COLORPIXEL_X_1, JACKET_COLORPIXEL_Y_1), list(JACKET_COLORPIXEL_X_2, JACKET_COLORPIXEL_Y_2), list(THICKROBE_COLORPIXEL_X_3, THICKROBE_COLORPIXEL_Y_3), list(JACKET_COLORPIXEL_X_4, JACKET_COLORPIXEL_Y_4))
|
||||
greyscale_config_worn_teshari_fallback = /datum/greyscale_config/teshari/thickrobe/jacket
|
||||
|
||||
/obj/item/clothing/suit/discoblazer
|
||||
species_clothing_color_coords = list(list(JACKET_COLORPIXEL_X_1, JACKET_COLORPIXEL_Y_1), list(JACKET_COLORPIXEL_X_2, JACKET_COLORPIXEL_Y_2), list(THICKROBE_COLORPIXEL_X_3, THICKROBE_COLORPIXEL_Y_3), list(JACKET_COLORPIXEL_X_4, JACKET_COLORPIXEL_Y_4))
|
||||
greyscale_config_worn_teshari_fallback = /datum/greyscale_config/teshari/thickrobe/jacket
|
||||
|
||||
@@ -64,3 +64,7 @@ toolbox_open.ogg - made by sadboysuss
|
||||
toolbox_rustle.ogg - made by sadboysuss
|
||||
medkit_rustle.ogg - made by sadboysuss
|
||||
} - license: CC-by-SA
|
||||
|
||||
lead_pipe_hit.ogg - jixaw-metal-pipe-falling-sound.mp3 by thenotcheeseman -- https://freesound.org/s/679206/ -- License: Creative Commons 0
|
||||
lead_pipe_drop.ogg - jixaw-metal-pipe-falling-sound.mp3 by thenotcheeseman -- https://freesound.org/s/679206/ -- License: Creative Commons 0
|
||||
lead_pipe_pickup.ogg - Metal pipe hitting the ground.flac by CGEffex -- https://freesound.org/s/93962/ -- License: Attribution 4.0
|
||||
|
||||