Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Sadboysuss committed Oct 10, 2024
2 parents 4359d1a + ee8eee1 commit 0eecc13
Show file tree
Hide file tree
Showing 78 changed files with 653 additions and 320 deletions.
2 changes: 0 additions & 2 deletions code/__DEFINES/dcs/signals/signals_fish.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@
#define COMSIG_FISH_EATEN_BY_OTHER_FISH "fish_eaten_by_other_fish"
///From /obj/item/fish/generate_reagents_to_add, which returns a holder when the fish is eaten or composted for example: (list/reagents)
#define COMSIG_GENERATE_REAGENTS_TO_ADD "generate_reagents_to_add"
///From /obj/item/fish/feed: (fed_reagents, fed_reagent_type)
#define COMSIG_FISH_FED "fish_on_fed"
///From /obj/item/fish/update_size_and_weight: (new_size, new_weight)
#define COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT "fish_update_size_and_weight"
///From /obj/item/fish/update_fish_force: (weight_rank, bonus_malus)
Expand Down
4 changes: 4 additions & 0 deletions code/__DEFINES/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@

#define INTERACTION_SOUND_RANGE_MODIFIER -3
#define EQUIP_SOUND_VOLUME 30
#define LIQUID_SLOSHING_SOUND_VOLUME 10
#define PICKUP_SOUND_VOLUME 15
#define DROP_SOUND_VOLUME 20
#define YEET_SOUND_VOLUME 90
Expand Down Expand Up @@ -189,3 +190,6 @@ GLOBAL_LIST_INIT(announcer_keys, list(
#define SFX_LIQUID_POUR "liquid_pour"
#define SFX_SNORE_FEMALE "snore_female"
#define SFX_SNORE_MALE "snore_male"
#define SFX_PLASTIC_BOTTLE_LIQUID_SLOSH "plastic_bottle_liquid_slosh"
#define SFX_DEFAULT_LIQUID_SLOSH "default_liquid_slosh"
#define SFX_PLATE_ARMOR_RUSTLE "plate_armor_rustle"
13 changes: 13 additions & 0 deletions code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1010,6 +1010,15 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_FISH_SHOULD_TWOHANDED "fish_should_twohanded"
///This fish won't be killed when cooked.
#define TRAIT_FISH_SURVIVE_COOKING "fish_survive_cooking"
/**
* This fish has been fed teslium without the electrogenesis having trait.
* Gives the electrogenesis, but at halved output, and it hurts the fish over time.
*/
#define TRAIT_FISH_ON_TESLIUM "fish_on_teslium"
/// This fish has been fed growth serum or something and will grow 5 times faster, up to 50% weight and size gain when fed.
#define TRAIT_FISH_QUICK_GROWTH "fish_quick_growth"
/// This fish has been fed mutagen or something. Evolutions will have more than twice the probability
#define TRAIT_FISH_MUTAGENIC "fish_mutagenic"

/// Trait given to angelic constructs to let them purge cult runes
#define TRAIT_ANGELIC "angelic"
Expand Down Expand Up @@ -1086,6 +1095,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define STATION_TRAIT_UNIQUE_AI "station_trait_unique_ai"
#define STATION_TRAIT_UNNATURAL_ATMOSPHERE "station_trait_unnatural_atmosphere"
#define STATION_TRAIT_VENDING_SHORTAGE "station_trait_vending_shortage"
#define STATION_TRAIT_SPIKED_DRINKS "station_trait_spiked_drinks"

///Deathmatch traits
#define TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS "deathmath_explosive_implants"
Expand Down Expand Up @@ -1311,6 +1321,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
///Trait which allows mobs to parry mining mob projectiles
#define TRAIT_MINING_PARRYING "mining_parrying"

///Trait which silences all chemical reactions in its container
#define TRAIT_SILENT_REACTIONS "silent_reactions"

/**
*
* This trait is used in some interactions very high in the interaction chain to allow
Expand Down
4 changes: 2 additions & 2 deletions code/__HELPERS/game.dm
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@
* Tips that starts with the @ character won't be html encoded. That's necessary for any tip containing markup tags,
* just make sure they don't also have html characters like <, > and ' which will be garbled.
*/
/proc/send_tip_of_the_round(target, selected_tip)
/proc/send_tip_of_the_round(target, selected_tip, source = "Tip of the round")
var/message
if(selected_tip)
message = selected_tip
Expand All @@ -320,4 +320,4 @@
message = html_encode(message)
else
message = copytext(message, 2)
to_chat(target, span_purple(examine_block("<span class='oocplain'><b>Tip of the round: </b>[message]</span>")))
to_chat(target, span_purple(examine_block("<span class='oocplain'><b>[source]: </b>[message]</span>")))
5 changes: 5 additions & 0 deletions code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_WADDLING" = TRAIT_WADDLING,
"TRAIT_WAS_RENAMED" = TRAIT_WAS_RENAMED,
"TRAIT_WEATHER_IMMUNE" = TRAIT_WEATHER_IMMUNE,
"TRAIT_SILENT_REACTIONS" = TRAIT_SILENT_REACTIONS,
),
/datum/controller/subsystem/economy = list(
"TRAIT_MARKET_CRASHING" = TRAIT_MARKET_CRASHING,
Expand Down Expand Up @@ -111,6 +112,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"STATION_TRAIT_UNIQUE_AI" = STATION_TRAIT_UNIQUE_AI,
"STATION_TRAIT_UNNATURAL_ATMOSPHERE" = STATION_TRAIT_UNNATURAL_ATMOSPHERE,
"STATION_TRAIT_VENDING_SHORTAGE" = STATION_TRAIT_VENDING_SHORTAGE,
"STATION_TRAIT_SPIKED_DRINKS" = STATION_TRAIT_SPIKED_DRINKS,
),
/datum/deathmatch_lobby = list(
"TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS" = TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS,
Expand Down Expand Up @@ -628,14 +630,17 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_FISH_FLOPPING" = TRAIT_FISH_FLOPPING,
"TRAIT_FISH_FROM_CASE" = TRAIT_FISH_FROM_CASE,
"TRAIT_FISH_INK_ON_COOLDOWN" = TRAIT_FISH_INK_ON_COOLDOWN,
"TRAIT_FISH_MUTAGENIC" = TRAIT_FISH_MUTAGENIC,
"TRAIT_FISH_NO_HUNGER" = TRAIT_FISH_NO_HUNGER,
"TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING,
"TRAIT_FISH_ON_TESLIUM" = TRAIT_FISH_ON_TESLIUM,
"TRAIT_FISH_RECESSIVE" = TRAIT_FISH_RECESSIVE,
"TRAIT_FISH_SELF_REPRODUCE" = TRAIT_FISH_SELF_REPRODUCE,
"TRAIT_FISH_SHOULD_TWOHANDED" = TRAIT_FISH_SHOULD_TWOHANDED,
"TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS,
"TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER,
"TRAIT_FISH_SURVIVE_COOKING" = TRAIT_FISH_SURVIVE_COOKING,
"TRAIT_FISH_QUICK_GROWTH" = TRAIT_FISH_QUICK_GROWTH,
"TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE,
"TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY,
"TRAIT_FISH_WELL_COOKED" = TRAIT_FISH_WELL_COOKED,
Expand Down
4 changes: 4 additions & 0 deletions code/_globalvars/traits/admin_tooling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_SCARY_FISHERMAN" = TRAIT_SCARY_FISHERMAN,
"TRAIT_SNOWSTORM_IMMUNE" = TRAIT_SNOWSTORM_IMMUNE,
"TRAIT_WEATHER_IMMUNE" = TRAIT_WEATHER_IMMUNE,
"TRAIT_SILENT_REACTIONS" = TRAIT_SILENT_REACTIONS,
),
/mob = list(
"TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING,
Expand Down Expand Up @@ -349,14 +350,17 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_FISH_FED_LUBE" = TRAIT_FISH_FED_LUBE,
"TRAIT_FISH_FROM_CASE" = TRAIT_FISH_FROM_CASE,
"TRAIT_FISH_INK_ON_COOLDOWN" = TRAIT_FISH_INK_ON_COOLDOWN,
"TRAIT_FISH_MUTAGENIC" = TRAIT_FISH_MUTAGENIC,
"TRAIT_FISH_NO_HUNGER" = TRAIT_FISH_NO_HUNGER,
"TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING,
"TRAIT_FISH_ON_TESLIUM" = TRAIT_FISH_ON_TESLIUM,
"TRAIT_FISH_RECESSIVE" = TRAIT_FISH_RECESSIVE,
"TRAIT_FISH_SELF_REPRODUCE" = TRAIT_FISH_SELF_REPRODUCE,
"TRAIT_FISH_SHOULD_TWOHANDED" = TRAIT_FISH_SHOULD_TWOHANDED,
"TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS,
"TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER,
"TRAIT_FISH_SURVIVE_COOKING" = TRAIT_FISH_SURVIVE_COOKING,
"TRAIT_FISH_QUICK_GROWTH" = TRAIT_FISH_QUICK_GROWTH,
"TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE,
"TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY,
"TRAIT_YUCKY_FISH" = TRAIT_YUCKY_FISH,
Expand Down
3 changes: 2 additions & 1 deletion code/datums/components/fish_growth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
return
var/datum/fish_evolution/evolution = GLOB.fish_evolutions[result_type]
evolution.RegisterSignal(parent, COMSIG_FISH_BEFORE_GROWING, TYPE_PROC_REF(/datum/fish_evolution, growth_checks))
evolution.register_fish(parent)

/datum/component/fish_growth/UnregisterFromParent()
UnregisterSignal(parent, list(COMSIG_FISH_LIFE, COMSIG_FISH_BEFORE_GROWING))
Expand All @@ -55,6 +54,8 @@
return
var/deciseconds_elapsed = seconds_per_tick * 10
var/growth = growth_rate * deciseconds_elapsed
if(HAS_TRAIT(source, TRAIT_FISH_QUICK_GROWTH))
growth *= 2
if(SEND_SIGNAL(source, COMSIG_FISH_BEFORE_GROWING, seconds_per_tick, growth) & COMPONENT_DONT_GROW)
return
maturation += growth
Expand Down
12 changes: 9 additions & 3 deletions code/datums/elements/venomous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
element_flags = ELEMENT_BESPOKE
argument_hash_start_idx = 2
///Path of the reagent added
var/poison_type
var/reagents
///Details of how we inject our venom
var/injection_flags
///How much of the reagent added. if it's a list, it'll pick a range with the range being list(lower_value, upper_value)
Expand All @@ -17,7 +17,7 @@

/datum/element/venomous/Attach(datum/target, poison_type, amount_added, injection_flags = NONE, thrown_effect = FALSE)
. = ..()
src.poison_type = poison_type
src.reagents = poison_type
src.amount_added = amount_added
src.injection_flags = injection_flags
src.thrown_effect = thrown_effect
Expand All @@ -41,4 +41,10 @@
final_amount_added = rand(amount_added[1], amount_added[2])
else
final_amount_added = amount_added
target.reagents?.add_reagent(poison_type, final_amount_added)

var/datum/reagents/tmp_holder = new/datum/reagents(50)
tmp_holder.my_atom = src
tmp_holder.add_reagent(reagents, final_amount_added)

tmp_holder.expose(target, INJECT, 1, FALSE)
qdel(tmp_holder)
9 changes: 9 additions & 0 deletions code/datums/station_traits/negative_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -756,4 +756,13 @@
advisory_string += "The ongoing blizzard has interfered with our surveillance equipment, and we cannot provide an accurate threat summary at this time. We advise you to stay safe and avoid traversing the area around the station."
return advisory_string

/datum/station_trait/spiked_drinks
name = "Spiked Drinks"
trait_type = STATION_TRAIT_NEGATIVE
weight = 3
cost = STATION_TRAIT_COST_LOW
show_in_report = TRUE
report_message = "Due to a mishap at the Robust Softdrinks Megafactory, some drinks may contain traces of ethanol or psychoactive chemicals."
trait_to_give = STATION_TRAIT_SPIKED_DRINKS

#undef GLOW_NEBULA
31 changes: 31 additions & 0 deletions code/game/objects/items/cardboard_cutouts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -360,3 +360,34 @@
applied_name = "Private Security Officer"
applied_desc = "A cardboard cutout of a private security officer."
mob_spawner = /obj/effect/mob_spawn/corpse/human/nanotrasensoldier

/datum/cardboard_cutout/heretic
name = "Heretic"
applied_name = "Unknown"
applied_desc = "A cardboard cutout of a Heretic."
outfit = /datum/outfit/heretic_hallucination

/datum/cardboard_cutout/changeling
name = "Changeling"
applied_name = "Unknown"
applied_desc = "A cardboard cutout of a Changeling."
outfit = /datum/outfit/changeling

/datum/cardboard_cutout/pirate
name = "Pirate"
applied_name = "Unknown"
applied_desc = "A cardboard cutout of a space pirate."
outfit = /datum/outfit/pirate/space/captain/cardboard

/datum/cardboard_cutout/ninja
name = "Space Ninja"
applied_name = "Unknown"
applied_desc = "A cardboard cutout of a space ninja."
outfit = /datum/outfit/ninja

/datum/cardboard_cutout/abductor
name = "Abductor Agent"
applied_name = "Unknown"
applied_desc = "A cardboard cutout of an abductor agent."
species = /datum/species/abductor
outfit = /datum/outfit/abductor/agent/cardboard
16 changes: 16 additions & 0 deletions code/game/objects/items/extinguisher.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
worn_icon_state = "fire_extinguisher"
inhand_icon_state = "fire_extinguisher"
hitsound = 'sound/items/weapons/smash.ogg'
pickup_sound = 'sound/items/handling/gas_tank/gas_tank_pick_up.ogg'
drop_sound = 'sound/items/handling/gas_tank/gas_tank_drop.ogg'
obj_flags = CONDUCTS_ELECTRICITY
throwforce = 10
w_class = WEIGHT_CLASS_NORMAL
Expand Down Expand Up @@ -47,6 +49,9 @@
var/cooling_power = 2
/// Icon state when inside a tank holder.
var/tank_holder_icon_state = "holder_extinguisher"
///The sound a fire extinguisher makes when picked up, dropped if there is liquid inside.
var/fire_extinguisher_reagent_sloshing_sound = SFX_DEFAULT_LIQUID_SLOSH


/obj/item/extinguisher/Initialize(mapload)
. = ..()
Expand All @@ -66,6 +71,17 @@
context[SCREENTIP_CONTEXT_ALT_LMB] = "Empty"
return CONTEXTUAL_SCREENTIP_SET

/obj/item/extinguisher/dropped(mob/user, silent)
. = ..()
if(fire_extinguisher_reagent_sloshing_sound && reagents.total_volume > 0)
playsound(src, fire_extinguisher_reagent_sloshing_sound, LIQUID_SLOSHING_SOUND_VOLUME, vary = TRUE, ignore_walls = FALSE)

/obj/item/extinguisher/equipped(mob/user, slot, initial = FALSE)
. = ..()
if((slot & ITEM_SLOT_HANDS) && fire_extinguisher_reagent_sloshing_sound && reagents.total_volume > 0)
playsound(src, fire_extinguisher_reagent_sloshing_sound, LIQUID_SLOSHING_SOUND_VOLUME, vary = TRUE, ignore_walls = FALSE)


/obj/item/extinguisher/empty
starting_water = FALSE

Expand Down
21 changes: 21 additions & 0 deletions code/game/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -558,4 +558,25 @@
'sound/creatures/cat/cat_purr3.ogg',
'sound/creatures/cat/cat_purr4.ogg',
)
if(SFX_DEFAULT_LIQUID_SLOSH)
soundin = pick(
'sound/items/handling/reagent_containers/default/default_liquid_slosh1.ogg',
'sound/items/handling/reagent_containers/default/default_liquid_slosh2.ogg',
'sound/items/handling/reagent_containers/default/default_liquid_slosh3.ogg',
'sound/items/handling/reagent_containers/default/default_liquid_slosh4.ogg',
'sound/items/handling/reagent_containers/default/default_liquid_slosh5.ogg',
)
if(SFX_PLASTIC_BOTTLE_LIQUID_SLOSH)
soundin = pick(
'sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh1.ogg',
'sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh2.ogg',
)
if(SFX_PLATE_ARMOR_RUSTLE)
soundin = pick_weight(list(
'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle1.ogg' = 8, //longest sound is rarer.
'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle2.ogg' = 23,
'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle3.ogg' = 23,
'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle4.ogg' = 23,
'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle5.ogg' = 23,
))
return soundin
13 changes: 9 additions & 4 deletions code/game/turfs/open/chasm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@


/turf/open/chasm/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
underlay_appearance.icon = 'icons/turf/floors.dmi'
underlay_appearance.icon_state = "basalt"
underlay_appearance.icon = /turf/open/misc/asteroid/basalt::icon
underlay_appearance.icon_state = /turf/open/misc/asteroid/basalt::icon_state
return TRUE

/turf/open/chasm/attackby(obj/item/C, mob/user, params, area/area_restriction)
Expand Down Expand Up @@ -100,6 +100,11 @@
light_power = 0.65
light_color = LIGHT_COLOR_PURPLE

/turf/open/chasm/icemoon/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
underlay_appearance.icon = /turf/open/misc/asteroid/snow/icemoon::icon
underlay_appearance.icon_state = /turf/open/misc/asteroid/snow/icemoon::icon_state
return TRUE

// Chasms for the jungle, with planetary atmos and a different icon
/turf/open/chasm/jungle
icon = 'icons/turf/floors/junglechasm.dmi'
Expand All @@ -109,8 +114,8 @@
baseturfs = /turf/open/chasm/jungle

/turf/open/chasm/jungle/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
underlay_appearance.icon = 'icons/turf/floors.dmi'
underlay_appearance.icon_state = "dirt"
underlay_appearance.icon = /turf/open/misc/dirt::icon
underlay_appearance.icon_state = /turf/open/misc/dirt::icon_state
return TRUE

// Chasm that doesn't do any z-level nonsense and just kills/stores whoever steps into it.
Expand Down
11 changes: 6 additions & 5 deletions code/game/turfs/open/lava.dm
Original file line number Diff line number Diff line change
Expand Up @@ -178,11 +178,6 @@
/turf/open/lava/singularity_pull(S, current_size)
return

/turf/open/lava/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
underlay_appearance.icon = 'icons/turf/floors.dmi'
underlay_appearance.icon_state = "basalt"
return TRUE

/turf/open/lava/GetHeatCapacity()
. = 700000

Expand Down Expand Up @@ -341,6 +336,12 @@
underfloor_accessibility = 2 //This avoids strangeness when routing pipes / wires along catwalks over lava
immerse_overlay_color = "#F98511"

/// Smooth lava needs to take after basalt in order to blend better. If you make a /turf/open/lava/smooth subtype for an area NOT surrounded by basalt; you should override this proc.
/turf/open/lava/smooth/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
underlay_appearance.icon = /turf/open/misc/asteroid/basalt::icon
underlay_appearance.icon_state = /turf/open/misc/asteroid/basalt::icon_state
return TRUE

/turf/open/lava/smooth/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
planetary_atmos = TRUE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@
/obj/item/abductor/silencer = 1
)

/datum/outfit/abductor/agent/cardboard
name = "Abductor Agent"
head = /obj/item/clothing/head/helmet/abductor
suit = /obj/item/clothing/suit/armor/abductor/vest
l_hand = /obj/item/melee/baton/abductor
belt = /obj/item/storage/belt/military/abductor/full

/datum/outfit/abductor/scientist
name = "Abductor Scientist"

Expand Down
Loading

0 comments on commit 0eecc13

Please sign in to comment.