Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fenwork #3

Merged
merged 7 commits into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135,660 changes: 68,886 additions & 66,774 deletions _maps/map_files/coyote_bayou/foxybar.dmm

Large diffs are not rendered by default.

133,809 changes: 67,998 additions & 65,811 deletions _maps/map_files/coyote_bayou/foxybarupper.dmm

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@
#define ORGAN_SLOT_STOMACH "stomach"
#define ORGAN_SLOT_STOMACH_AID "stomach_aid"
#define ORGAN_SLOT_SODIE_ORGAN "sodie_organ"
#define ORGAN_SLOT_BAC "blood_alcohol_content"
#define ORGAN_SLOT_BREATHING_TUBE "breathing_tube"
#define ORGAN_SLOT_EARS "ears"
#define ORGAN_SLOT_EYES "eye_sight"
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/dcs/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,7 @@
#define COMSIG_CARBON_EMBED_REMOVAL "item_embed_remove_safe" // called when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item)

#define COMSIG_CARBON_REAGENT_POST_LIFE "carbon_reagent_post_life" // (datum/source, datum/reagent/R)
#define COMSIG_CARBON_REAGENT_PRE_ADD "carbon_reagent_pre_add" // (datum/source, datum/reagent/R)
// /mob/living/silicon signals
#define COMSIG_ROBOT_UPDATE_ICONS "robot_update_icons" //from base of robot/update_icons(): ()

Expand Down
29 changes: 16 additions & 13 deletions code/__DEFINES/sound.dm
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
//max channel is 1024. Only go lower from here, because byond tends to pick the first availiable channel to play sounds on
#define CHANNEL_LOBBYMUSIC 1024
#define CHANNEL_ADMIN 1023
#define CHANNEL_VOX 1022
#define CHANNEL_JUKEBOX 1021
#define CHANNEL_LOBBYMUSIC 1024
#define CHANNEL_ADMIN 1023
#define CHANNEL_VOX 1022
#define CHANNEL_JUKEBOX 1021
// THERE IS A REASON FOR THIS GAP !! its this -v
#define CHANNEL_JUKEBOX_START 1016 //The gap between this and CHANNEL_JUKEBOX determines the amount of free jukebox channels. This currently allows 6 jukebox channels to exist.
#define CHANNEL_JUSTICAR_ARK 1015
#define CHANNEL_HEARTBEAT 1014 //sound channel for heartbeats
#define CHANNEL_JUSTICAR_ARK 1015
#define CHANNEL_HEARTBEAT 1014 //sound channel for heartbeats
#define CHANNEL_AMBIENT_MUSIC 1013
#define CHANNEL_AMBIENT_SOUND 1012
#define CHANNEL_AMBIENT_LOOP 1011
#define CHANNEL_BICYCLE 1010
#define CHANNEL_AMBIENT_LOOP 1011
#define CHANNEL_BICYCLE 1010

//CIT CHANNELS - TRY NOT TO REGRESS cus i have unbirth set to noplz
#define CHANNEL_PRED 1009
#define CHANNEL_PREY 1008
#define CHANNEL_PREYLOOP_SQUISH 1007
#define CHANNEL_PREYLOOP_HEARTBEAT 1006
#define CHANNEL_PRED 1009
#define CHANNEL_PREY 1008
#define CHANNEL_PREYLOOP_SQUISH 1007
#define CHANNEL_PREYLOOP_HEARTBEAT 1006
#define CHANNELS_RESERVED_ABOVE 1005

///Default range of a sound.
#define SOUND_RANGE 17
Expand Down Expand Up @@ -49,7 +50,9 @@
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED

#define CHANNEL_HIGHEST_AVAILABLE 1010
#define CHANNEL_HIGHEST_AVAILABLE 800 // I think we can live with *just* 800 channels
#define CHANNEL_LOOP_LOWEST 801
#define CHANNEL_LOOP_HIGHEST 1004

#define MAX_INSTRUMENT_CHANNELS (128 * 6)

Expand Down
16 changes: 8 additions & 8 deletions code/_onclick/hud/generic_dextrous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,17 @@
using.hud = src
hotkeybuttons += using
//questbook button
using = new /atom/movable/screen/questbook()
// using = new /atom/movable/screen/questbook()
// using.icon = ui_style
using.screen_loc = ui_questbook_overridden
using.hud = src
hotkeybuttons += using
// using.screen_loc = ui_questbook_overridden
// using.hud = src
// hotkeybuttons += using
//quest scanner button
using = new /atom/movable/screen/scannerpls()
// using = new /atom/movable/screen/scannerpls()
// using.icon = ui_style
using.screen_loc = ui_questscanner
using.hud = src
hotkeybuttons += using
// using.screen_loc = ui_questscanner
// using.hud = src
// hotkeybuttons += using
//Health indicator
healths = new /atom/movable/screen/healths()
healths.hud = src
Expand Down
22 changes: 11 additions & 11 deletions code/_onclick/hud/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -250,17 +250,17 @@
using.hud = src
hotkeybuttons += using

using = new /atom/movable/screen/questbook()
// using.icon = ui_style
using.screen_loc = ui_questbook
using.hud = src
hotkeybuttons += using

using = new /atom/movable/screen/scannerpls()
// using.icon = ui_style
using.screen_loc = ui_questscanner
using.hud = src
hotkeybuttons += using
// using = new /atom/movable/screen/questbook()
// // using.icon = ui_style
// using.screen_loc = ui_questbook
// using.hud = src
// hotkeybuttons += using

// using = new /atom/movable/screen/scannerpls()
// // using.icon = ui_style
// using.screen_loc = ui_questscanner
// using.hud = src
// hotkeybuttons += using

using = new /atom/movable/screen/rest()
using.icon = ui_style
Expand Down
2 changes: 2 additions & 0 deletions code/_onclick/hud/screen_objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,8 @@
icon_state = "act_resist"
layer = HUD_LAYER
plane = HUD_PLANE
alpha = 0
mouse_opacity = 0

/atom/movable/screen/questbook/Click()
if(isliving(usr))
Expand Down
38 changes: 19 additions & 19 deletions code/controllers/subsystem/nightcycle.dm
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,28 @@ SUBSYSTEM_DEF(nightcycle)
wait = 10 SECONDS
// Control vars
var/current_time = DAYTIME
var/current_sun_color = "#FFFFFF"
var/current_sun_power = 230
var/current_sun_color = "#3c3f4b"
var/current_sun_power = 65

// Variables for badmining
var/sunrise_sun_color = "#ffd1b3"
var/sunrise_sun_color = "#3c3f4b"
var/sunrise_sun_power = 65
var/morning_sun_color = "#fba52b"
var/morning_sun_power = 115
var/latemorn_sun_color = "#fba52b"
var/latemorn_sun_power = 155
var/daytime_sun_color = "#faf7cb"
var/daytime_sun_power = 185
var/afternoon_sun_color = "#faf7cb"
var/afternoon_sun_power = 165
var/lateafternoon_sun_color = "#faf7cb"
var/lateafternoon_sun_power = 145
var/sunset_sun_color = "#f5b151"
var/sunset_sun_power = 105
var/fullsunset_sun_color = "#f37588"
var/fullsunset_sun_power = 55
var/nighttime_sun_color = "#28292d"
var/nighttime_sun_power = 1 // dark as shit brooo
var/morning_sun_color = "#3c3f4b"
var/morning_sun_power = 60
var/latemorn_sun_color = "#3c3f4b"
var/latemorn_sun_power = 55
var/daytime_sun_color = "#3c3f4b"
var/daytime_sun_power = 50
var/afternoon_sun_color = "#3c3f4b"
var/afternoon_sun_power = 55
var/lateafternoon_sun_color = "#3c3f4b"
var/lateafternoon_sun_power = 60
var/sunset_sun_color = "#3c3f4b"
var/sunset_sun_power = 65
var/fullsunset_sun_color ="#3c3f4b"
var/fullsunset_sun_power = 70
var/nighttime_sun_color = "#3c3f4b"
var/nighttime_sun_power = 65

/// If defined with any number besides null it will determine how long each cycle lasts.
// var/custom_cycle_wait = 1600 SECONDS
Expand Down
29 changes: 16 additions & 13 deletions code/controllers/subsystem/ticker.dm
Original file line number Diff line number Diff line change
Expand Up @@ -443,21 +443,24 @@ SUBSYSTEM_DEF(ticker)
if(m)
to_chat(world, "<span class='purple'><b>Tip of the round: </b>[html_encode(m)]</span>")


///Sends a game tip to everyone and then queues up another tip.
/datum/controller/subsystem/ticker/proc/send_midround_tip(override)
if(!LAZYLEN(tips_list))
tips_list = world.file2list("strings/tips.txt")
var/m
if(isnull(override) && IsRoundInProgress())//Only send the tip if the round has started. Shouldn't ever be a problem unless something broke.
if(LAZYLEN(tips_list))
m = pick(tips_list)
else if(override)
m = override
if(m)
to_chat(world, "<span class='purple'><b>Tip: </b>[html_encode(m)]</span>")
// Queue up the next tip even if it didn't send one so long as it was an organic tip that wasn't sent by an admin.
if(isnull(override))
addtimer(CALLBACK(src,PROC_REF(send_midround_tip)), midround_tip_interval*(rand(5,15)*0.1))//Random tip interval of +- 50% the average
return
// if(!LAZYLEN(tips_list))
// tips_list = world.file2list("strings/tips.txt")
// var/m
// if(isnull(override) && IsRoundInProgress())//Only send the tip if the round has started. Shouldn't ever be a problem unless something broke.
// if(LAZYLEN(tips_list))
// m = pick(tips_list)
// else if(override)
// m = override
// if(m)
// to_chat(world, "<span class='purple'><b>Tip: </b>[html_encode(m)]</span>")
// // Queue up the next tip even if it didn't send one so long as it was an organic tip that wasn't sent by an admin.
// if(isnull(override))
// addtimer(CALLBACK(src,PROC_REF(send_midround_tip)), midround_tip_interval*(rand(5,15)*0.1))//Random tip interval of +- 50% the average


/datum/controller/subsystem/ticker/proc/check_queue()
var/hpc = CONFIG_GET(number/hard_popcap)
Expand Down
19 changes: 18 additions & 1 deletion code/datums/looping_sounds/_looping_sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
max_loops (num) The max amount of loops to run for.
direct (bool) If true plays directly to provided atoms instead of from them
*/

GLOBAL_LIST_EMPTY(available_sound_channels)

/datum/looping_sound
var/list/atom/output_atoms = list()
var/list/mid_sounds
Expand All @@ -29,11 +32,17 @@
var/extra_range = 0
var/falloff
var/channel
var/managed

var/timerid
var/init_timerid

/datum/looping_sound/New(list/_output_atoms=list(), start_immediately=FALSE, _direct)
if(!LAZYLEN(GLOB.available_sound_channels))
GLOB.available_sound_channels = list()
for(var/i in CHANNEL_LOOP_LOWEST to CHANNEL_LOOP_HIGHEST)
GLOB.available_sound_channels += i

if(!mid_sounds)
WARNING("A looping sound datum was created without sounds to play.")
return
Expand All @@ -43,6 +52,9 @@
if(_direct)
direct = _direct

if(managed)
channel = pick_n_take(GLOB.available_sound_channels)

if(start_immediately)
start()

Expand Down Expand Up @@ -74,9 +86,13 @@
/// Areas use output_atoms differently, as a list of players to play the sound to. If we stop it as normal and kill it, itll stop playing to all mobs who were listening!
/// To sum up: If the output_atoms are *playing* the sound, kill should = true
/// If the output_atoms are *listening* to the sound, kill should = false
/datum/looping_sound/proc/stop(atom/remove_thing, kill = TRUE)
/datum/looping_sound/proc/stop(atom/remove_thing, kill = TRUE, nuke_sound_for_thing = FALSE)
on_stop()
if(remove_thing)
if(managed && isnum(channel) && isliving(remove_thing))
var/mob/they = remove_thing
if(they.client)
they.stop_sound_channel(channel)
output_atoms -= remove_thing
UnregisterSignal(remove_thing, COMSIG_PARENT_PREQDELETED)
if(LAZYLEN(output_atoms) && !kill)
Expand Down Expand Up @@ -122,6 +138,7 @@
else
S.channel = SSsounds.random_available_channel()
if(vary_direction)
S.y = rand(-10, 10)
S.x = rand(-10, 10)
S.z = rand(-10, 10)
if(islist(volume))
Expand Down
57 changes: 56 additions & 1 deletion code/datums/looping_sounds/ambient_sounds.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
direct = TRUE
/// Here used as time between rolls for sounds happening
loop_delay = 5 SECONDS
managed = TRUE

// random bullshit used for testing
/datum/looping_sound/ambient/debug
Expand Down Expand Up @@ -440,7 +441,7 @@
chance = 100
vary = FALSE
vary_direction = TRUE
volume = SOUND_LOOP_VOL_RANGE(100, 100)
volume = SOUND_LOOP_VOL_RANGE(40, 60)
direct = TRUE
loop_delay = 0 SECONDS
mid_sounds = list(
Expand Down Expand Up @@ -544,8 +545,62 @@
volume = SOUND_LOOP_VOL_RANGE(40, 70)
direct = TRUE
loop_delay = 1 MINUTES
channel = CHANNEL_AMBIENT_MUSIC
managed = FALSE
mid_sounds = list(
SOUND_LOOP_ENTRY('modular_coyote/sound/kfmusic/kf-ambimusic-1.ogg', 130 SECONDS, 1),
SOUND_LOOP_ENTRY('modular_coyote/sound/kfmusic/kf-ambimusic-2.ogg', 130 SECONDS, 1),

)

/datum/looping_sound/ambient/fb/parkinglot
chance = 100
vary = FALSE
volume = SOUND_LOOP_VOL_RANGE(70, 90)
direct = TRUE
loop_delay = 2 MINUTES
chance = 100
mid_sounds = list(
SOUND_LOOP_ENTRY('sound/ambience/parkinglotambi.ogg', 124 SECONDS, 1),
)

/datum/looping_sound/ambient/fb/bar
chance = 100
vary = FALSE
volume = SOUND_LOOP_VOL_RANGE(100, 100)
direct = TRUE
chance = 100
loop_delay = 50 SECONDS
mid_sounds = list(
SOUND_LOOP_ENTRY('sound/ambience/barambience.ogg', 69 SECONDS, 1),
SOUND_LOOP_ENTRY('sound/ambience/barambience.ogg', 69 SECONDS, 1),
SOUND_LOOP_ENTRY('sound/ambience/barambience.ogg', 69 SECONDS, 1),
)

/datum/looping_sound/ambient/fb/brownnoise
chance = 100
vary = FALSE
volume = SOUND_LOOP_VOL_RANGE(100, 100)
direct = TRUE
loop_delay = 25 SECONDS
chance = 100
mid_sounds = list(
SOUND_LOOP_ENTRY('sound/f13ambience/brownnoise.ogg', 30 SECONDS, 10),
SOUND_LOOP_ENTRY('sound/f13ambience/brownnoise.ogg', 30 SECONDS, 10),
SOUND_LOOP_ENTRY('sound/f13ambience/brownnoise.ogg', 30 SECONDS, 10),
)


/datum/looping_sound/ambient/fb/fannoise
chance = 100
vary = FALSE
volume = SOUND_LOOP_VOL_RANGE(100, 100)
direct = TRUE
loop_delay = 8 SECONDS
chance = 100
mid_sounds = list(
SOUND_LOOP_ENTRY('sound/f13ambience/fanoffright.ogg', 9 SECONDS, 10),
SOUND_LOOP_ENTRY('sound/f13ambience/fanoffright.ogg', 9 SECONDS, 10),
SOUND_LOOP_ENTRY('sound/f13ambience/fanoffright.ogg', 9 SECONDS, 10),
)

2 changes: 1 addition & 1 deletion code/datums/looping_sounds/item_sounds.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
return null
return ..(starttime, mid_sounds[danger])

/datum/looping_sound/geiger/stop(atom/remove_thing, kill = FALSE)
/datum/looping_sound/geiger/stop(atom/remove_thing, kill = FALSE, nuke_sound_for_thing = FALSE)
. = ..()
last_radiation = 0

Expand Down
3 changes: 3 additions & 0 deletions code/datums/traits/clams.dm
Original file line number Diff line number Diff line change
Expand Up @@ -559,6 +559,7 @@
var/yinglet_love = TRUE

/datum/reagent/consumable/clam_meat/pre_react(mob/living/M, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
. = ..()
if(!HAS_TRAIT(M, TRAIT_CLAM_LOVER))
return
taste_description = span_love("delicious clam")
Expand Down Expand Up @@ -607,6 +608,7 @@
ghoulfriendly = TRUE

/datum/reagent/consumable/clam_juice/pre_react(mob/living/M, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
. = ..()
if(!HAS_TRAIT(M, TRAIT_CLAM_LOVER))
return
taste_description = span_love("clam juice")
Expand All @@ -627,6 +629,7 @@
var/yinglet_love = TRUE

/datum/reagent/consumable/clammato_juice/pre_react(mob/living/M, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
. = ..()
if(!HAS_TRAIT(M, TRAIT_CLAM_LOVER))
return
taste_description = "[span_love("clam")] and tomato juice"
Expand Down
Loading
Loading