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
Rhials committed Jan 31, 2025
2 parents 9991626 + fff5774 commit 97130bd
Show file tree
Hide file tree
Showing 554 changed files with 4,409 additions and 2,360 deletions.
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
/code/controllers/master.dm @LemonInTheDark
/code/controllers/subsystem.dm @LemonInTheDark
/code/controllers/subsystem/air.dm @LemonInTheDark
/code/controllers/subsystem/timer.dm @MrStonedOne
/code/controllers/subsystem/timer.dm @LemonInTheDark

# Mothblocks

Expand Down
2 changes: 1 addition & 1 deletion .github/alternate_byond_versions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
# 500.1337: runtimestation
# 516.1638: runtimestation;516
# Lowest supported version
515.1627: runtimestation
515.1642: runtimestation
# Beta version
516.1648: runtimestation;516
21 changes: 5 additions & 16 deletions .github/workflows/ci_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -197,31 +197,20 @@ jobs:
name: Integration Tests
needs: collect_data

strategy:
fail-fast: false
matrix:
map: ${{ fromJSON(needs.collect_data.outputs.maps).paths }}

uses: ./.github/workflows/run_integration_tests.yml
uses: ./.github/workflows/perform_regular_version_tests.yml
with:
map: ${{ matrix.map }}
maps: ${{ needs.collect_data.outputs.maps }}
max_required_byond_client: ${{needs.collect_data.outputs.max_required_byond_client}}

run_alternate_tests:
if: needs.collect_data.outputs.alternate_tests != '[]'
name: Alternate Tests
needs: collect_data
strategy:
fail-fast: false
matrix:
setup: ${{ fromJSON(needs.collect_data.outputs.alternate_tests) }}

uses: ./.github/workflows/run_integration_tests.yml
uses: ./.github/workflows/perform_alternate_version_tests.yml
with:
map: ${{ matrix.setup.map }}
major: ${{ matrix.setup.major }}
minor: ${{ matrix.setup.minor }}
max_required_byond_client: ${{ matrix.setup.max_client_version || needs.collect_data.outputs.max_required_byond_client }}
alternate_tests: ${{ needs.collect_data.outputs.alternate_tests }}
default_max_required_byond_client: ${{ needs.collect_data.outputs.max_required_byond_client }}

compare_screenshots:
if: needs.collect_data.outputs.alternate_tests == '[]' || needs.run_alternate_tests.result == 'success'
Expand Down
28 changes: 26 additions & 2 deletions .github/workflows/gbp.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,34 @@
name: GBP
name: Label and GBP
on:
pull_request_target:
types: [closed, opened]
types: [closed, opened, synchronize]
jobs:
# labeler must run before gbp because gbp calculates itself based on labels
labeler:
runs-on: ubuntu-latest
if: github.event.action == 'opened' || github.event.action == 'synchronize'
permissions:
pull-requests: write # to apply labels
issues: write # to apply labels
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run Auto Labeler
uses: actions/github-script@v7
with:
script: |
const { get_updated_label_set } = await import('${{ github.workspace }}/tools/pull_request_hooks/autoLabel.js');
const new_labels = await get_updated_label_set({ github, context });
github.rest.issues.setLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: new_labels,
});
console.log(`Labels updated: ${new_labels}`);
gbp:
runs-on: ubuntu-latest
if: github.event.action == 'opened' || github.event.action == 'closed'
steps:
- name: "Check for ACTION_ENABLER secret and pass true to output if it exists to be checked by later steps"
id: value_holder
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/perform_alternate_version_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Run Alternate BYOND Version Tests
on:
workflow_call:
inputs:
alternate_tests:
required: true
type: string
default_max_required_byond_client:
required: true
type: string

jobs:
run:
uses: ./.github/workflows/run_integration_tests.yml

strategy:
fail-fast: false
matrix:
setup: ${{ fromJSON(inputs.alternate_tests) }}

with:
map: ${{ matrix.setup.map }}
major: ${{ matrix.setup.major }}
minor: ${{ matrix.setup.minor }}
max_required_byond_client: ${{ matrix.setup.max_client_version || inputs.default_max_required_byond_client }}
23 changes: 23 additions & 0 deletions .github/workflows/perform_regular_version_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Run Regular BYOND Version Tests
on:
workflow_call:
inputs:
maps:
required: true
type: string
max_required_byond_client:
required: true
type: string

jobs:
run:
uses: ./.github/workflows/run_integration_tests.yml

strategy:
fail-fast: false
matrix:
map: ${{ fromJSON(inputs.maps).paths }}

with:
map: ${{ matrix.map }}
max_required_byond_client: ${{ inputs.max_required_byond_client }}
6 changes: 6 additions & 0 deletions .github/workflows/run_integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ on:

jobs:
run_integration_tests:
# If `inputs.major` is specified, this will output `Run Tests (major.minor; map; max)`.
# For example, `Run Tests (515.1627; runtimestation; 515)`.
#
# Otherwise, it will output `Run Tests (map; max)`.
# For example, `Run Tests (runtimestation; 515)`.
name: Run Tests (${{ inputs.major && format('{0}.{1}; ', inputs.major, inputs.minor) || '' }}${{ inputs.map }}; ${{ inputs.max_required_byond_client }})
runs-on: ubuntu-latest
timeout-minutes: 15
services:
Expand Down
2 changes: 1 addition & 1 deletion .tgs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
version: 1
# The BYOND version to use (kept in sync with dependencies.sh by the "TGS Test Suite" CI job)
# Must be interpreted as a string, keep quoted
byond: "515.1637"
byond: "515.1647"
# Folders to create in "<instance_path>/Configuration/GameStaticFiles/"
static_files:
# Config directory should be static
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/Basketball/greytide_worldwide.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -704,7 +704,7 @@
/obj/effect/turf_decal/box/red/corners{
dir = 1
},
/mob/living/simple_animal/hostile/retaliate/goose/vomit,
/mob/living/basic/goose/vomit,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/centcom/basketball)
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/Deltastation/DeltaStation2.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -36288,7 +36288,7 @@
dir = 8
},
/obj/effect/turf_decal/tile/neutral/fourcorners,
/mob/living/simple_animal/hostile/retaliate/goose/vomit,
/mob/living/basic/goose/vomit,
/turf/open/floor/iron/dark,
/area/station/service/abandoned_gambling_den)
"jap" = (
Expand Down
4 changes: 2 additions & 2 deletions _maps/map_files/IceBoxStation/IceBoxStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -38588,7 +38588,7 @@
/area/mine/laborcamp)
"kYF" = (
/obj/structure/light_construct/directional/west,
/mob/living/simple_animal/hostile/retaliate/goose/vomit,
/mob/living/basic/goose/vomit,
/turf/open/floor/wood,
/area/station/maintenance/port/aft)
"kYI" = (
Expand Down Expand Up @@ -186552,7 +186552,7 @@ iDt
iDt
ppY
iDt
gFX
btU
btU
vfZ
btU
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/MetaStation/MetaStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -14361,7 +14361,7 @@
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"fgn" = (
/mob/living/simple_animal/hostile/retaliate/goose/vomit,
/mob/living/basic/goose/vomit,
/turf/open/floor/wood,
/area/station/maintenance/port/aft)
"fgu" = (
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/wawastation/wawastation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -39018,7 +39018,7 @@
"nMj" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/mapping_helpers/broken_floor,
/mob/living/simple_animal/hostile/retaliate/goose/vomit,
/mob/living/basic/goose/vomit,
/turf/open/floor/plating,
/area/station/maintenance/central/greater)
"nMk" = (
Expand Down
8 changes: 8 additions & 0 deletions code/__DEFINES/ai/ai_blackboard.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@
#define BB_BANE_BATMAN "BB_bane_batman"
//yep that's it

/// Are we a panicking goose?
#define BB_GOOSE_PANICKED "BB_goose_panicked"
/// Are we a panicking goose?
#define BB_GOOSE_VOMIT_CHANCE "BB_goose_vomit_chance"

//Hunting BB keys
///key that holds our current hunting target
#define BB_CURRENT_HUNTING_TARGET "BB_current_hunting_target"
Expand Down Expand Up @@ -140,6 +145,9 @@
/// Blackboard key for a held item
#define BB_SIMPLE_CARRY_ITEM "BB_SIMPLE_CARRY_ITEM"

///key holding a range to look for stuff in
#define BB_SEARCH_RANGE "BB_search_range"

///Mob the MOD is trying to attach to
#define BB_MOD_TARGET "BB_mod_target"
///The implant the AI was created from
Expand Down
19 changes: 19 additions & 0 deletions code/__DEFINES/bitrunning.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,22 @@

/// Camera network bitrunner bodycams are on
#define BITRUNNER_CAMERA_NET "bitrunner"

/**
* Bitrunner Domain External Load Restriction Bitflags
*/
/// Domain forbids external sources from loading items onto avatars
#define DOMAIN_FORBIDS_ITEMS (1<<0)
/// Domain forbids external sources from loading abilities onto avatars
#define DOMAIN_FORBIDS_ABILITIES (1<<1)

/// Combination flag for blocking anything from being loaded onto avatars by external sources
#define DOMAIN_FORBIDS_ALL ALL

/**
* COMSIG_BITRUNNER_STOCKING_GEAR Return Bitflags
*/
/// Something failed to load
#define BITRUNNER_GEAR_LOAD_FAILED (1<<0)
/// The domain restrictions blocked something from loading
#define BITRUNNER_GEAR_LOAD_BLOCKED (1<<1)
2 changes: 2 additions & 0 deletions code/__DEFINES/bodyparts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,5 @@
#define LIMB_COLOR_CARP_INFUSION 20
/// Base priority for atom colors, gets atom priorities added to it
#define LIMB_COLOR_ATOM_COLOR 30
/// Voidwalker effect color priority
#define LIMB_COLOR_VOIDWALKER_CURSE 40
2 changes: 1 addition & 1 deletion code/__DEFINES/construction/material.dm
Original file line number Diff line number Diff line change
Expand Up @@ -102,5 +102,5 @@
#define MATERIAL_LIST_OPTIMAL_AMOUNT "optimal_amount"
///The key to access the multiplier used to selectively control effects and modifiers of a material.
#define MATERIAL_LIST_MULTIPLIER "multiplier"
///A macro that ensures some multiplicative modifiers higher than 1 don't become lower than 1 and viceversa because of the multiplier.
///A macro that ensures some multiplicative modifiers higher than 1 don't become lower than 1 and vice-versa because of the multiplier.
#define GET_MATERIAL_MODIFIER(modifier, multiplier) (modifier >= 1 ? 1 + ((modifier) - 1) * (multiplier) : (modifier)**(multiplier))
2 changes: 2 additions & 0 deletions code/__DEFINES/dcs/signals/signals_ai_controller.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@

///sent from ai controllers when they possess a pawn: (datum/ai_controller/source_controller)
#define COMSIG_AI_CONTROLLER_POSSESSED_PAWN "ai_controller_possessed_pawn"
///sent from ai controllers when they stop possessing a pawn: (datum/ai_controller/source_controller)
#define COMSIG_AI_CONTROLLER_UNPOSSESSED_PAWN "ai_controller_unpossessed_pawn"
///sent from ai controllers when they pick behaviors: (list/datum/ai_behavior/old_behaviors, list/datum/ai_behavior/new_behaviors)
#define COMSIG_AI_CONTROLLER_PICKED_BEHAVIORS "ai_controller_picked_behaviors"
///sent from ai controllers when a behavior is inserted into the queue: (list/new_arguments)
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/dcs/signals/signals_bitrunning.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@
/// from /obj/machienry/quantum_server/station_spawn()
#define COMSIG_BITRUNNER_STATION_SPAWN "bitrunner_station_spawn"

/// from /obj/machinery/quantum_server/stock_gear(): (mob/living/carbon/human/avatar, external_load_flags)
#define COMSIG_BITRUNNER_STOCKING_GEAR "bitrunner_stocking_gear"

// Ladder

/// from /obj/structure/hololadder/disconnect()
Expand Down
3 changes: 2 additions & 1 deletion code/__DEFINES/dcs/signals/signals_mod.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
/// Called when a MOD deploys a part. (mob/user, datum/mod_part/part)
#define COMSIG_MOD_PART_DEPLOYED "mod_part_deployed"
/// Called when a MOD retracts a part. (mob/user, datum/mod_part/part)
#define COMSIG_MOD_PART_RETRACTED "mod_part_retracted"
#define COMSIG_MOD_PART_RETRACTING "mod_part_retracting"
#define MOD_CANCEL_RETRACTION (1 << 0)
/// Called when a MOD seals/unseals a part. (datum/mod_part/part)
#define COMSIG_MOD_PART_SEALED "mod_part_sealed"
/// Called when a MOD is finished toggling itself.
Expand Down
4 changes: 3 additions & 1 deletion code/__DEFINES/dcs/signals/signals_object.dm
Original file line number Diff line number Diff line change
Expand Up @@ -329,9 +329,11 @@

// /obj/item/gun signals

///called in /obj/item/gun/try_fire_gun (user, src, target, flag, params)
#define COMSIG_MOB_TRYING_TO_FIRE_GUN "mob_trying_to_fire_gun"
///called in /obj/item/gun/fire_gun (user, target, flag, params)
#define COMSIG_GUN_TRY_FIRE "gun_try_fire"
#define COMPONENT_CANCEL_GUN_FIRE (1<<0)
#define COMPONENT_CANCEL_GUN_FIRE (1<<0) /// Also returned to cancel COMSIG_MOB_TRYING_TO_FIRE_GUN
///called in /obj/item/gun/process_fire (src, target, params, zone_override, bonus_spread_values)
#define COMSIG_MOB_FIRED_GUN "mob_fired_gun"
#define MIN_BONUS_SPREAD_INDEX 1
Expand Down
19 changes: 3 additions & 16 deletions code/__DEFINES/dcs/signals/signals_reagent.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,13 @@
///from base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left)
#define COMSIG_ON_MULTIPLE_LIVES_RESPAWN "on_multiple_lives_respawn"

///from base of [/datum/reagents/proc/add_reagent] - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react)
#define COMSIG_REAGENTS_PRE_ADD_REAGENT "reagents_pre_add_reagent"
/// Prevents the reagent from being added.
#define COMPONENT_CANCEL_REAGENT_ADD (1<<0)
///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react)
#define COMSIG_REAGENTS_NEW_REAGENT "reagents_new_reagent"
///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react)
#define COMSIG_REAGENTS_ADD_REAGENT "reagents_add_reagent"
///from base of [/datum/reagents/proc/del_reagent]: (/datum/reagent)
#define COMSIG_REAGENTS_DEL_REAGENT "reagents_del_reagent"
///from base of [/datum/reagents/proc/remove_reagent]: (/datum/reagent, amount)
#define COMSIG_REAGENTS_REM_REAGENT "reagents_rem_reagent"
///from base of [/datum/reagents/proc/clear_reagents]: ()
#define COMSIG_REAGENTS_CLEAR_REAGENTS "reagents_clear_reagents"
///from base of [/datum/reagents/proc/update_total()]
#define COMSIG_REAGENTS_HOLDER_UPDATED "reagents_update_total"
///from base of [/datum/reagents/proc/set_temperature]: (new_temp, old_temp)
#define COMSIG_REAGENTS_TEMP_CHANGE "reagents_temp_change"
///from base of [/datum/reagents/proc/handle_reactions]: (num_reactions)
#define COMSIG_REAGENTS_REACTED "reagents_reacted"
///from base of [/datum/reagents/proc/process]: (num_reactions)
#define COMSIG_REAGENTS_REACTION_STEP "reagents_time_step"

///from base of [/atom/proc/expose_reagents]: (/atom, /list, methods, volume_modifier, show_message)
#define COMSIG_REAGENTS_EXPOSE_ATOM "reagents_expose_atom"
///from base of [/obj/proc/expose_reagents]: (/obj, /list, methods, volume_modifier, show_message)
Expand Down
36 changes: 24 additions & 12 deletions code/__DEFINES/reagents.dm
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
#define INJECTABLE (1<<0) // Makes it possible to add reagents through droppers and syringes.
#define DRAWABLE (1<<1) // Makes it possible to remove reagents through syringes.

#define REFILLABLE (1<<2) // Makes it possible to add reagents through any reagent container.
#define DRAINABLE (1<<3) // Makes it possible to remove reagents through any reagent container.
#define DUNKABLE (1<<4) // Allows items to be dunked into this container for transfering reagents. Used in conjunction with the dunkable component.

#define TRANSPARENT (1<<5) // Used on containers which you want to be able to see the reagents of.
#define AMOUNT_VISIBLE (1<<6) // For non-transparent containers that still have the general amount of reagents in them visible.
#define NO_REACT (1<<7) // Applied to a reagent holder, the contents will not react with each other.
#define REAGENT_HOLDER_INSTANT_REACT (1<<8) // Applied to a reagent holder, all of the reactions in the reagents datum will be instant. Meant to be used for things like smoke effects where reactions aren't meant to occur
//Methods to interact with reagents in the holder
/// Makes it possible to add reagents through droppers and syringes.
#define INJECTABLE (1<<0)
/// Makes it possible to remove reagents through syringes.
#define DRAWABLE (1<<1)
/// Makes it possible to add reagents through any reagent container.
#define REFILLABLE (1<<2)
/// Makes it possible to remove reagents through any reagent container.
#define DRAINABLE (1<<3)
/// Allows items to be dunked into this container for transfering reagents. Used in conjunction with the dunkable component.
#define DUNKABLE (1<<4)

//Methods to examine reagents in the container
/// Used on containers which you want to be able to see the reagents of.
#define TRANSPARENT (1<<5)
/// For non-transparent containers that still have the general amount of reagents in them visible.
#define AMOUNT_VISIBLE (1<<6)

//Reaction flags
/// Applied to a reagent holder, the contents will not react with each other.
#define NO_REACT (1<<7)
/// Applied to a reagent holder, all of the reactions in the reagents datum will be instant. Meant to be used for things like smoke effects where reactions aren't meant to occur
#define REAGENT_HOLDER_INSTANT_REACT (1<<8)
///If the holder is "alive" (i.e. mobs and organs) - If this flag is applied to a holder it will cause reagents to split upon addition to the object
#define REAGENT_HOLDER_ALIVE (1<<9)

//Special properties
///If the holder a sealed container - Used if you don't want reagent contents boiling out (plasma, specifically, in which case it only bursts out when at ignition temperatures)
#define SEALED_CONTAINER (1<<10)

// Is an open container for all intents and purposes.
#define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT)

Expand Down
Loading

0 comments on commit 97130bd

Please sign in to comment.