Skip to content

Commit

Permalink
Merge upstream 23.05.2024 (#278)
Browse files Browse the repository at this point in the history
## About The Pull Request

Merge upstream
  • Loading branch information
larentoun committed May 23, 2024
2 parents 75b7061 + 5246a35 commit c0fd31f
Show file tree
Hide file tree
Showing 128 changed files with 1,799 additions and 1,064 deletions.
2 changes: 2 additions & 0 deletions RUN_SERVER.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@echo off
call "%~dp0\tools\build\build.bat" --wait-on-error server %*
1 change: 1 addition & 0 deletions _maps/map_files/Birdshot/birdshot.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -76062,6 +76062,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/north,
/mob/living/basic/spider/giant/sgt_araneus,
/turf/open/floor/stone,
/area/station/command/heads_quarters/hos)
"yaG" = (
Expand Down
1 change: 0 additions & 1 deletion _maps/map_files/IceBoxStation/IceBoxStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -32093,7 +32093,6 @@
},
/obj/item/pen,
/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
/obj/machinery/door/airlock,
/turf/open/floor/iron,
/area/station/command/bridge)
"jJV" = (
Expand Down
1 change: 1 addition & 0 deletions _maps/map_files/MetaStation/MetaStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -19251,6 +19251,7 @@
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/obj/structure/window/spawner/directional/south,
/turf/open/floor/iron,
/area/station/hallway/secondary/service)
"hcv" = (
Expand Down
15 changes: 12 additions & 3 deletions _maps/map_files/Mining/Lavaland.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -645,6 +645,15 @@
},
/turf/open/misc/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"ey" = (
/obj/structure/lattice/catwalk/mining,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/item/toy/plush/shark{
desc = "A plushie depicting a somewhat cartoonish shark. The tag calls it a 'hákarl', noting that it was made by an obscure furniture manufacturer in old Scandinavia. This one seems to have some cable wiring sticking out of its mouth."
},
/turf/open/lava/smooth/lava_land_surface,
/area/lavaland/surface/outdoors)
"ez" = (
/obj/structure/chair/comfy/teal{
dir = 4
Expand Down Expand Up @@ -2869,7 +2878,7 @@
/area/mine/laborcamp/production)
"ps" = (
/obj/structure/cable,
/obj/machinery/power/smes/full,
/obj/machinery/power/smes/super/full,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/mine/maintenance/service)
Expand Down Expand Up @@ -5038,7 +5047,7 @@
/turf/open/floor/plating/lavaland_atmos,
/area/lavaland/surface/outdoors)
"Ee" = (
/obj/machinery/power/smes/full,
/obj/machinery/power/smes/super/full,
/obj/structure/cable,
/turf/open/floor/plating,
/area/mine/maintenance/labor)
Expand Down Expand Up @@ -29901,7 +29910,7 @@ Xw
aj
aj
aj
cU
ey
aj
aj
aj
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,7 @@
#define REGION_RESEARCH "Research"
/// Used to seed the accesses_by_region list in SSid_access. A list of all research regional accesses that are overseen by the RD.
#define REGION_ACCESS_RESEARCH list( \
ACCESS_AI_UPLOAD, \
ACCESS_GENETICS, \
ACCESS_MECH_SCIENCE, \
ACCESS_MINISAT, \
Expand Down
5 changes: 5 additions & 0 deletions code/__DEFINES/ai/ai_blackboard.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@
///can this mob heal?
#define BB_BASIC_MOB_HEALER "BB_basic_mob_healer"

///the owner we will try to play with
#define BB_OWNER_TARGET "BB_owner_target"
///the list of interactions we can have with the owner
#define BB_INTERACTIONS_WITH_OWNER "BB_interactions_with_owner"


/// Store a single or list of emotes at this key
#define BB_EMOTE_KEY "BB_emotes"
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,8 @@
/// called when a spawner spawns a mob
#define COMSIG_SPAWNER_SPAWNED "spawner_spawned"

/// Called when a spawner spawns a mob in a turf peel, but we need to use the default case.
#define COMSIG_SPAWNER_SPAWNED_DEFAULT "spawner_spawned_default"

/// called when a ghost clicks a spawner role: (mob/living)
#define COMSIG_GHOSTROLE_SPAWNED "ghostrole_spawned"
8 changes: 6 additions & 2 deletions code/__DEFINES/dcs/signals/signals_mod.dm
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
//MODsuit signals
/// Called when a module is selected to be the active one from on_select(obj/item/mod/module/module)
#define COMSIG_MOD_MODULE_SELECTED "mod_module_selected"
/// Called when a MOD deploys one or more of its parts.
/// Called when a MOD user deploys one or more of its parts.
#define COMSIG_MOD_DEPLOYED "mod_deployed"
/// Called when a MOD retracts one or more of its parts.
/// Called when a MOD user retracts one or more of its parts.
#define COMSIG_MOD_RETRACTED "mod_retracted"
/// Called when a MOD deploys a part.
#define COMSIG_MOD_PART_DEPLOYED "mod_part_deployed"
/// Called when a MOD retracts a part.
#define COMSIG_MOD_PART_RETRACTED "mod_part_retracted"
/// Called when a MOD is finished toggling itself.
#define COMSIG_MOD_TOGGLED "mod_toggled"
/// Called when a MOD activation is called from toggle_activate(mob/user)
Expand Down
22 changes: 14 additions & 8 deletions code/__DEFINES/mod.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
/// The default cell drain of a modsuit. The standard modsuit active power usage drains this much energy per modsuit second.
#define DEFAULT_CHARGE_DRAIN (0.005 * STANDARD_CELL_CHARGE) // A standard cell lasts 200 seconds with this on active power usage, while a high power one lasts 2,000 seconds.

/// Default time for a part to seal
/// Default time for a part of the suit to seal.
#define MOD_ACTIVATION_STEP_TIME (2 SECONDS)

/// Passive module, just acts when put in naturally.
Expand All @@ -23,21 +23,17 @@
/// This module can be used while the suit is off
#define MODULE_ALLOW_INACTIVE (1<<2)

//Defines used by the theme for clothing flags and similar
#define CONTROL_LAYER "control_layer"
#define HELMET_FLAGS "helmet_flags"
#define CHESTPLATE_FLAGS "chestplate_flags"
#define GAUNTLETS_FLAGS "gauntlets_flags"
#define BOOTS_FLAGS "boots_flags"

#define UNSEALED_LAYER "unsealed_layer"
#define SEALED_LAYER "sealed_layer"
#define UNSEALED_CLOTHING "unsealed_clothing"
#define SEALED_CLOTHING "sealed_clothing"
#define UNSEALED_INVISIBILITY "unsealed_invisibility"
#define SEALED_INVISIBILITY "sealed_invisibility"
#define UNSEALED_COVER "unsealed_cover"
#define SEALED_COVER "sealed_cover"
#define CAN_OVERSLOT "can_overslot"
#define UNSEALED_MESSAGE "unsealed_message"
#define SEALED_MESSAGE "sealed_message"

//Defines used to override MOD clothing's icon and worn icon files in the skin.
#define MOD_ICON_OVERRIDE "mod_icon_override"
Expand All @@ -49,6 +45,16 @@
#define MODLINK_FREQ_CHARLIE "CHRL"
#define MODLINK_FREQ_CENTCOM "CC"

//Default text for different messages for the user.
#define HELMET_UNSEAL_MESSAGE "hisses open"
#define HELMET_SEAL_MESSAGE "hisses closed"
#define CHESTPLATE_UNSEAL_MESSAGE "releases your chest"
#define CHESTPLATE_SEAL_MESSAGE "cinches tightly around your chest"
#define GAUNTLET_UNSEAL_MESSAGE "become loose around your fingers"
#define GAUNTLET_SEAL_MESSAGE "tighten around your fingers and wrists"
#define BOOT_UNSEAL_MESSAGE "relax their grip on your legs"
#define BOOT_SEAL_MESSAGE "seal around your feet"

/// Global list of all /datum/mod_theme
GLOBAL_LIST_INIT(mod_themes, setup_mod_themes())
/// Global list of all ids associated to a /datum/mod_link instance
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
#define CHAT_GHOSTLAWS (1<<11)
#define CHAT_LOGIN_LOGOUT (1<<12)

#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_BANKCARD|CHAT_GHOSTLAWS|CHAT_LOGIN_LOGOUT)
#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_PRAYER|CHAT_PULLR|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_BANKCARD|CHAT_GHOSTLAWS|CHAT_LOGIN_LOGOUT)

#define PARALLAX_INSANE "Insane"
#define PARALLAX_HIGH "High"
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/surgery.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
#define ORGAN_HIDDEN (1<<9)
/// Has the organ already been inserted inside someone
#define ORGAN_VIRGIN (1<<10)
/// ALWAYS show this when scanned by advanced scanners, even if it is totally healthy
#define ORGAN_PROMINENT (1<<11)

/// Helper to figure out if a limb is organic
#define IS_ORGANIC_LIMB(limb) (limb.bodytype & BODYTYPE_ORGANIC)
Expand Down
43 changes: 43 additions & 0 deletions code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,49 @@ GLOBAL_LIST_INIT(skin_tone_names, list(
else
return precise_zone

///Returns a list of strings for a given slot flag.
/proc/parse_slot_flags(slot_flags)
var/list/slot_strings = list()
if(slot_flags & ITEM_SLOT_BACK)
slot_strings += "back"
if(slot_flags & ITEM_SLOT_MASK)
slot_strings += "mask"
if(slot_flags & ITEM_SLOT_NECK)
slot_strings += "neck"
if(slot_flags & ITEM_SLOT_HANDCUFFED)
slot_strings += "handcuff"
if(slot_flags & ITEM_SLOT_LEGCUFFED)
slot_strings += "legcuff"
if(slot_flags & ITEM_SLOT_BELT)
slot_strings += "belt"
if(slot_flags & ITEM_SLOT_ID)
slot_strings += "id"
if(slot_flags & ITEM_SLOT_EARS)
slot_strings += "ear"
if(slot_flags & ITEM_SLOT_EYES)
slot_strings += "glasses"
if(slot_flags & ITEM_SLOT_GLOVES)
slot_strings += "glove"
if(slot_flags & ITEM_SLOT_HEAD)
slot_strings += "head"
if(slot_flags & ITEM_SLOT_FEET)
slot_strings += "shoe"
if(slot_flags & ITEM_SLOT_OCLOTHING)
slot_strings += "oversuit"
if(slot_flags & ITEM_SLOT_ICLOTHING)
slot_strings += "undersuit"
if(slot_flags & ITEM_SLOT_SUITSTORE)
slot_strings += "suit storage"
if(slot_flags & (ITEM_SLOT_LPOCKET|ITEM_SLOT_RPOCKET))
slot_strings += "pocket"
if(slot_flags & ITEM_SLOT_HANDS)
slot_strings += "hand"
if(slot_flags & ITEM_SLOT_DEX_STORAGE)
slot_strings += "dextrous storage"
if(slot_flags & ITEM_SLOT_BACKPACK)
slot_strings += "backpack"
return slot_strings

///Returns the direction that the initiator and the target are facing
/proc/check_target_facings(mob/living/initiator, mob/living/target)
/*This can be used to add additional effects on interactions between mobs depending on how the mobs are facing each other, such as adding a crit damage to blows to the back of a guy's head.
Expand Down
3 changes: 3 additions & 0 deletions code/__HELPERS/spatial_info.dm
Original file line number Diff line number Diff line change
Expand Up @@ -468,5 +468,8 @@
if(possible_spawn in inner)
continue
peel += possible_spawn

if(!length(peel))
return center //Offer the center only as a default case when we don't have a valid circle.
return peel

6 changes: 2 additions & 4 deletions code/_onclick/ai.dm
Original file line number Diff line number Diff line change
Expand Up @@ -255,10 +255,8 @@
return CLICK_ACTION_SUCCESS

/obj/machinery/power/apc/attack_ai_secondary(mob/living/silicon/user, list/modifiers)
if(!can_use(user, loud = TRUE))
return

togglelock(user)
if(can_use(user, loud = TRUE))
togglelock(user)
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN

/* AI Turrets */
Expand Down
21 changes: 21 additions & 0 deletions code/datums/ai/basic_mobs/basic_subtrees/play_with_owners.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/datum/ai_planning_subtree/find_and_hunt_target/play_with_owner
target_key = BB_OWNER_TARGET
hunting_behavior = /datum/ai_behavior/hunt_target/play_with_owner
finding_behavior = /datum/ai_behavior/find_hunt_target/find_owner
hunt_targets = list(/mob/living)
hunt_chance = 80
hunt_range = 9

/datum/ai_behavior/find_hunt_target/find_owner
action_cooldown = 1 MINUTES
behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION

/datum/ai_behavior/find_hunt_target/find_owner/valid_dinner(mob/living/source, atom/friend, radius, datum/ai_controller/controller, seconds_per_tick)
return (friend != source) && (source.faction.Find(REF(friend))) && can_see(source, friend, radius)

/datum/ai_behavior/hunt_target/play_with_owner

/datum/ai_behavior/hunt_target/play_with_owner/target_caught(mob/living/hunter, atom/hunted)
var/list/interactions_list = hunter.ai_controller.blackboard[BB_INTERACTIONS_WITH_OWNER]
var/interaction_message = length(interactions_list) ? pick(interactions_list) : "Plays with"
hunter.manual_emote("[interaction_message] [hunted]!")
4 changes: 2 additions & 2 deletions code/datums/components/echolocation.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/datum/component/echolocation
/// Radius of our view.
var/echo_range = 4
/// Time between echolocations.
var/cooldown_time = 1.8 SECONDS
/// Time between echolocations. IMPORTANT!! The effective time in local and the effective time in live are very different. The second is noticeably slower,
var/cooldown_time = 1 SECONDS
/// Time for the image to start fading out.
var/image_expiry_time = 1.4 SECONDS
/// Time for the image to fade in.
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/riding/riding_mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
return ..()

/datum/component/riding/creature/driver_move(atom/movable/movable_parent, mob/living/user, direction)
if(!COOLDOWN_FINISHED(src, vehicle_move_cooldown))
if(!COOLDOWN_FINISHED(src, vehicle_move_cooldown) || !Process_Spacemove())
return COMPONENT_DRIVER_BLOCK_MOVE
if(!keycheck(user))
if(ispath(keytype, /obj/item))
Expand Down
2 changes: 2 additions & 0 deletions code/datums/components/spawner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@
picked_spot = pick(turf_peel(spawn_distance, spawn_distance_exclude, spawner.loc, view_based = TRUE))
if(!picked_spot)
picked_spot = pick(circle_range_turfs(spawner.loc, spawn_distance))
if(picked_spot == spawner.loc)
SEND_SIGNAL(spawner, COMSIG_SPAWNER_SPAWNED_DEFAULT)
created = new chosen_mob_type(picked_spot)
else if (spawn_distance >= 1)
picked_spot = pick(circle_range_turfs(spawner.loc, spawn_distance))
Expand Down
2 changes: 1 addition & 1 deletion code/datums/mood_events/generic_negative_events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@
mood_change = -3
timeout = 5 MINUTES

/datum/mood_event/amulette_insanity
/datum/mood_event/amulet_insanity
description = "I sEe THe LiGHt, It mUsT BE stOPPed"
mood_change = -6
timeout = 5 MINUTES
Expand Down
28 changes: 0 additions & 28 deletions code/datums/quirks/positive_quirks/night_vision.dm

This file was deleted.

4 changes: 2 additions & 2 deletions code/datums/wounds/_wounds.dm
Original file line number Diff line number Diff line change
Expand Up @@ -215,13 +215,13 @@
var/msg = span_danger("[victim]'s [limb.plaintext_zone] [occur_text]!")
var/vis_dist = COMBAT_MESSAGE_RANGE

if(severity > WOUND_SEVERITY_MODERATE)
if(severity > WOUND_SEVERITY_SEVERE)
msg = "<b>[msg]</b>"
vis_dist = DEFAULT_MESSAGE_RANGE

victim.visible_message(msg, span_userdanger("Your [limb.plaintext_zone] [occur_text]!"), vision_distance = vis_dist)
if(sound_effect)
playsound(L.owner, sound_effect, sound_volume + (20 * severity), TRUE)
playsound(L.owner, sound_effect, sound_volume + (20 * severity), TRUE, falloff_exponent = SOUND_FALLOFF_EXPONENT + 2, ignore_walls = FALSE, falloff_distance = 0)

wound_injury(old_wound, attack_direction = attack_direction)
if(!demoted)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,3 +134,13 @@
name = "Mothic Pantry Pack"
item_path = /obj/item/storage/box/mothic_cans_sauces
cost_per_order = 120

/datum/orderable_item/milk_eggs/armorfish
name = "Cleaned Armorfish"
item_path = /obj/item/food/fishmeat/armorfish
cost_per_order = 30

/datum/orderable_item/milk_eggs/moonfish
name = "Moonfish"
item_path = /obj/item/food/fishmeat/moonfish
cost_per_order = 30
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,13 @@
name = "Grounding Solution"
item_path = /obj/item/reagent_containers/condiment/grounding_solution
cost_per_order = 30

/datum/orderable_item/reagents/honey
name = "Honey"
item_path = /obj/item/reagent_containers/condiment/honey
cost_per_order = 125 //its high quality honey :)

/datum/orderable_item/reagents/mayonnaise
name = "Mayonnaise"
item_path = /obj/item/reagent_containers/condiment/mayonnaise
cost_per_order = 30
Loading

0 comments on commit c0fd31f

Please sign in to comment.