Skip to content

Commit

Permalink
Merge upstream 14.10.24 (#576)
Browse files Browse the repository at this point in the history
## About The Pull Request
Теперь не сквашнимся
  • Loading branch information
larentoun authored Oct 14, 2024
2 parents e599154 + 252581e commit 47e2458
Show file tree
Hide file tree
Showing 129 changed files with 1,855 additions and 289 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/discord_discussions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Discord Discussions

on:
pull_request_target:
types:
- opened
- reopened
- edited
- labeled
- closed
branches:
- master

concurrency:
group: "discord-discussions-${{ github.head_ref }}"
cancel-in-progress: true

jobs:
manage-discord-discussion:
name: Manage Discord Discussion
runs-on: ubuntu-latest
if: contains(github.event.pull_request.labels.*.name, 'Discord Discussion')
steps:
- name: Fail if vars.DISCORD_DISCUSSIONS_CHANNEL_ID is unset
if: ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID == '' }}
run: |
echo "vars.DISCORD_DISCUSSIONS_CHANNEL_ID (${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }}) must be set to use this label!"
exit 1
- name: Setup dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
dotnet-quality: ga

- name: Checkout
uses: actions/checkout@v4

- name: Build Tgstation.DiscordDiscussions
run: dotnet publish -c Release -o discord_discussions_bins tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj

- name: Generate App Token
id: app-token-generation
uses: getsentry/action-github-app-token@d4b5da6c5e37703f8c3b3e43abb5705b46e159cc
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}

- name: Run Tgstation.DiscordDiscussions
run: dotnet discord_discussions_bins/Tgstation.DiscordDiscussions.dll ${{ steps.app-token-generation.outputs.token }} ${{ github.repository_owner }} ${{ github.event.repository.name }} ${{ github.event.pull_request.number }} ${{ github.event.pull_request.merged && 'merged' || github.event.pull_request.state }} ${{ secrets.DISCORD_DISCUSSIONS_TOKEN }} ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }} ${{ github.event.action == 'reopened' && 'true' || 'false' }} ${{ vars.DISCORD_JOIN_LINK }}
env:
GITHUB_PULL_REQUEST_TITLE: ${{ github.event.pull_request.title }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,10 @@ Temporary Items
/tools/MapAtmosFixer/MapAtmosFixer/bin/*
/tools/CreditsTool/bin/*
/tools/CreditsTool/obj/*
/tools/Tgstation.DiscordDiscussions/.vs/*
/tools/Tgstation.DiscordDiscussions/bin/*
/tools/Tgstation.DiscordDiscussions/obj/*
/tools/Tgstation.DiscordDiscussions/Properties/launchSettings.json

#GitHub Atom
.atom-build.json
Expand Down
8 changes: 4 additions & 4 deletions code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@
#define ORGAN_SLOT_ADAMANTINE_RESONATOR "adamantine_resonator"
#define ORGAN_SLOT_APPENDIX "appendix"
#define ORGAN_SLOT_BRAIN "brain"
#define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop"
#define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun"
#define ORGAN_SLOT_BRAIN_CEREBELLUM "brain_antidrop"
#define ORGAN_SLOT_BRAIN_CNS "brain_antistun"
#define ORGAN_SLOT_BREATHING_TUBE "breathing_tube"
#define ORGAN_SLOT_EARS "ears"
#define ORGAN_SLOT_EYES "eye_sight"
Expand Down Expand Up @@ -163,8 +163,8 @@ GLOBAL_LIST_INIT(organ_process_order, list(
ORGAN_SLOT_VOICE,
ORGAN_SLOT_ADAMANTINE_RESONATOR,
ORGAN_SLOT_HEART_AID,
ORGAN_SLOT_BRAIN_ANTIDROP,
ORGAN_SLOT_BRAIN_ANTISTUN,
ORGAN_SLOT_BRAIN_CEREBELLUM,
ORGAN_SLOT_BRAIN_CNS,
ORGAN_SLOT_PARASITE_EGG,
ORGAN_SLOT_MONSTER_CORE,
ORGAN_SLOT_XENO_PLASMAVESSEL,
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/combat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,8 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
/// ex_act() with EXPLODE_DEVASTATE severity will gib mobs with less than this much bomb armor
#define EXPLODE_GIB_THRESHOLD 50

#define EMP_HEAVY 1
#define EMP_LIGHT 2
#define EMP_HEAVY 1

#define GRENADE_CLUMSY_FUMBLE 1
#define GRENADE_NONCLUMSY_FUMBLE 2
Expand Down
4 changes: 4 additions & 0 deletions code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,10 @@
///from /mob/say_dead(): (mob/speaker, message)
#define COMSIG_MOB_DEADSAY "mob_deadsay"
#define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0)
///from /mob/living/check_cooldown(): ()
#define COMSIG_MOB_EMOTE_COOLDOWN_CHECK "mob_emote_cd"
/// make a wild guess
#define COMPONENT_EMOTE_COOLDOWN_BYPASS (1<<0)
///from /mob/living/emote(): ()
#define COMSIG_MOB_EMOTE "mob_emote"
///from base of mob/swap_hand(): (obj/item/currently_held_item)
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -197,3 +197,6 @@ GLOBAL_LIST_INIT(announcer_keys, list(
#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"
#define SFX_PIG_OINK "pig_oink"
#define SFX_VISOR_UP "visor_up"
#define SFX_VISOR_DOWN "visor_down"
7 changes: 6 additions & 1 deletion code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_RESISTHEAT "resist_heat"
/// Trait for when you can no longer gain body heat
#define TRAIT_HYPOTHERMIC "body_hypothermic"
/// This non-living object is valid to be used in dna infusers
#define TRAIT_VALID_DNA_INFUSION "valid_dna_infusion"
///For when you've gotten a power from a dna vault
#define TRAIT_USED_DNA_VAULT "used_dna_vault"
/// For when you want to be able to touch hot things, but still want fire to be an issue.
Expand All @@ -139,7 +141,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_NOFIRE "nonflammable"
#define TRAIT_NOFIRE_SPREAD "no_fire_spreading"
/// Prevents plasmamen from self-igniting if only their helmet is missing
#define TRAIT_NOSELFIGNITION_HEAD_ONLY "no_selfignition_head_only"
#define TRAIT_HEAD_ATMOS_SEALED "no_selfignition_head_only"
#define TRAIT_NOGUNS "no_guns"
///Can toss a guns like a badass, causing additional damage/effect to their enemies
#define TRAIT_TOSS_GUN_HARD "toss_gun_hard"
Expand Down Expand Up @@ -288,6 +290,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Applied into wounds when they're scanned with the wound analyzer, halves time to treat them manually.
#define TRAIT_WOUND_SCANNED "wound_scanned"

/// Owner will ignore any fire protection when calculating fire damage
#define TRAIT_IGNORE_FIRE_PROTECTION "ignore_fire_protection"

#define TRAIT_NODEATH "nodeath"
#define TRAIT_NOHARDCRIT "nohardcrit"
#define TRAIT_NOSOFTCRIT "nosoftcrit"
Expand Down
4 changes: 3 additions & 1 deletion code/__byond_version_compat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@

// Unable to compile this version thanks to mutable appearance changes
#if (DM_VERSION == 515 && DM_BUILD == 1643)
#error This version of BYOND cannot compile this project. Visit www.byond.com/download/build to download an older version or update (if possible).
#error This specific version of BYOND (515.1643) cannot compile this project.
#error If 515.1643 IS NOT the latest version of BYOND, then you should simply update as normal.
#error But if 515.1643 IS the latest version of BYOND, i.e. you can't update, then you MUST visit www.byond.com/download/build and downgrade to 515.1642.
#endif

// Keep savefile compatibilty at minimum supported level
Expand Down
16 changes: 16 additions & 0 deletions code/_globalvars/lists/quirks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,19 @@ GLOBAL_LIST_INIT(paraplegic_choice, list(
"Default" = FALSE,
"Amputee" = TRUE,
))

///chipped Quirk
GLOBAL_LIST_INIT(quirk_chipped_choice, list(
"Basketsoft 3000" = /obj/item/skillchip/basketweaving,
"WINE" = /obj/item/skillchip/wine_taster,
"Hedge 3" = /obj/item/skillchip/bonsai,
"Skillchip adapter" = /obj/item/skillchip/useless_adapter,
"N16H7M4R3" = /obj/item/skillchip/light_remover,
"3NTR41LS" = /obj/item/skillchip/entrails_reader,
"GENUINE ID Appraisal Now!" = /obj/item/skillchip/appraiser,
"Le S48R4G3" = /obj/item/skillchip/sabrage,
"Integrated Intuitive Thinking and Judging" = /obj/item/skillchip/intj,
"F0RC3 4DD1CT10N" = /obj/item/skillchip/drunken_brawler,
"\"Space Station 13: The Musical\"" = /obj/item/skillchip/musical,
"Mast-Angl-Er skillchip" = /obj/item/skillchip/master_angler,
))
4 changes: 3 additions & 1 deletion code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_CHASM_STOPPER" = TRAIT_CHASM_STOPPER,
"TRAIT_COMBAT_MODE_SKIP_INTERACTION" = TRAIT_COMBAT_MODE_SKIP_INTERACTION,
"TRAIT_DEL_ON_SPACE_DUMP" = TRAIT_DEL_ON_SPACE_DUMP,
"TRAIT_VALID_DNA_INFUSION" = TRAIT_VALID_DNA_INFUSION,
"TRAIT_FISH_CASE_COMPATIBILE" = TRAIT_FISH_CASE_COMPATIBILE,
"TRAIT_FROZEN" = TRAIT_FROZEN,
"TRAIT_HAS_LABEL" = TRAIT_HAS_LABEL,
Expand Down Expand Up @@ -365,7 +366,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_NOHUNGER" = TRAIT_NOHUNGER,
"TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE,
"TRAIT_NOMOBSWAP" = TRAIT_NOMOBSWAP,
"TRAIT_NOSELFIGNITION_HEAD_ONLY" = TRAIT_NOSELFIGNITION_HEAD_ONLY,
"TRAIT_HEAD_ATMOS_SEALED" = TRAIT_HEAD_ATMOS_SEALED,
"TRAIT_NOSOFTCRIT" = TRAIT_NOSOFTCRIT,
"TRAIT_NO_AUGMENTS" = TRAIT_NO_AUGMENTS,
"TRAIT_NO_BLOOD_OVERLAY" = TRAIT_NO_BLOOD_OVERLAY,
Expand Down Expand Up @@ -561,6 +562,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_SPEECH_BOOSTER" = TRAIT_SPEECH_BOOSTER,
"TRAIT_MINING_PARRYING" = TRAIT_MINING_PARRYING,
"TRAIT_ILLUSORY_EFFECT" = TRAIT_ILLUSORY_EFFECT,
"TRAIT_IGNORE_FIRE_PROTECTION" = TRAIT_IGNORE_FIRE_PROTECTION,
),
/obj/item = list(
"TRAIT_APC_SHOCKING" = TRAIT_APC_SHOCKING,
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/traits/admin_tooling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_XRAY_HEARING" = TRAIT_XRAY_HEARING,
"TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION,
"TRAIT_MINING_PARRYING" = TRAIT_MINING_PARRYING,
"TRAIT_IGNORE_FIRE_PROTECTION" = TRAIT_IGNORE_FIRE_PROTECTION,
),
/obj/item = list(
"TRAIT_APC_SHOCKING" = TRAIT_APC_SHOCKING,
Expand Down
14 changes: 10 additions & 4 deletions code/datums/actions/mobs/lava_swoop.dm
Original file line number Diff line number Diff line change
Expand Up @@ -144,11 +144,17 @@
for(var/turf/T in walled)
drakewalls += new /obj/effect/temp_visual/drakewall(T) // no people with lava immunity can just run away from the attack for free
var/list/indestructible_turfs = list()
for(var/turf/T in RANGE_TURFS(2, center))
if(isindestructiblefloor(T))

for(var/turf/turf_target as anything in RANGE_TURFS(2, center))
if(isindestructiblefloor(turf_target))
continue
if(isindestructiblewall(turf_target))
indestructible_turfs += turf_target
continue
if(isindestructiblewall(T))
indestructible_turfs += T
if(ismineralturf(turf_target))
var/turf/closed/mineral/mineral_turf = turf_target
mineral_turf.gets_drilled(owner)

SLEEP_CHECK_DEATH(1 SECONDS, owner) // give them a bit of time to realize what attack is actually happening

var/list/turfs = RANGE_TURFS(2, center)
Expand Down
88 changes: 88 additions & 0 deletions code/datums/components/clothing_dirt.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
/// This component applies tint to clothing when its exposed to pepperspray, used in /obj/item/clothing/mask/gas.

/datum/component/clothing_dirt
/// Amount of dirt stacks on the clothing
var/dirtiness = 0

/datum/component/clothing_dirt/Initialize()
if(!isclothing(parent))
return COMPONENT_INCOMPATIBLE

/datum/component/clothing_dirt/RegisterWithParent()
RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine))
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip))
RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop))
RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean))
RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE)

/datum/component/clothing_dirt/UnregisterFromParent()
var/obj/item/clothing/clothing = parent
clothing.tint -= dirtiness
if(iscarbon(clothing.loc))
var/mob/living/carbon/wearer = clothing.loc
wearer.update_tint()
UnregisterSignal(wearer, COMSIG_ATOM_EXPOSE_REAGENTS)
else
UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS)
UnregisterSignal(parent, list(
COMSIG_ATOM_EXAMINE,
COMSIG_ITEM_EQUIPPED,
COMSIG_MOB_UNEQUIPPED_ITEM,
COMSIG_COMPONENT_CLEAN_ACT,
))
return ..()

/datum/component/clothing_dirt/proc/on_equip(datum/source, mob/user, slot)
SIGNAL_HANDLER
var/obj/item/clothing/clothing = parent
if (!(slot & clothing.slot_flags))
return
UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS)
RegisterSignal(user, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE)

/datum/component/clothing_dirt/proc/on_drop(datum/source, mob/holder)
SIGNAL_HANDLER
UnregisterSignal(holder, COMSIG_ATOM_EXPOSE_REAGENTS)
RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE)

/datum/component/clothing_dirt/proc/on_examine(datum/source, mob/user, list/examine_list)
SIGNAL_HANDLER
if (dirtiness > 0)
examine_list += span_warning("It appears to be covered in some oily substance. Won't see much while wearing it until you wash it off.")

/datum/component/clothing_dirt/proc/on_expose(atom/target, list/reagents, datum/reagents/source, methods)
SIGNAL_HANDLER

var/mob/living/carbon/wearer
if(iscarbon(target))
wearer = target
if(is_protected(wearer))
return

var/datum/reagent/consumable/condensedcapsaicin/pepper = locate() in reagents
if(isnull(pepper))
return

var/obj/item/clothing/clothing = parent
if (methods & (TOUCH | VAPOR))
clothing.tint -= dirtiness
dirtiness = min(dirtiness + round(reagents[pepper] / 5), 3)
clothing.tint += dirtiness
if(!isnull(wearer))
wearer.update_tint()

/datum/component/clothing_dirt/proc/is_protected(mob/living/carbon/wearer)
return wearer.head && (wearer.head.flags_cover & PEPPERPROOF)

/datum/component/clothing_dirt/proc/on_clean(datum/target, clean_types)
SIGNAL_HANDLER
var/obj/item/clothing/clothing = parent
var/mob/living/carbon/wearer
if(iscarbon(clothing.loc))
wearer = clothing.loc

if (clean_types & (CLEAN_WASH|CLEAN_SCRUB))
clothing.tint -= dirtiness
dirtiness = 0
if(!isnull(wearer))
wearer.update_tint()
9 changes: 9 additions & 0 deletions code/datums/components/food/edible.dm
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,9 @@ Behavior that's still missing from this component that original food items had t
else if(isturf(parent) || isstructure(parent))
RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(TryToEatIt))

if(foodtypes & GORE)
ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src))

/datum/component/edible/UnregisterFromParent()
UnregisterSignal(parent, list(
COMSIG_ATOM_ATTACK_ANIMAL,
Expand All @@ -114,6 +117,9 @@ Behavior that's still missing from this component that original food items had t

qdel(GetComponent(/datum/component/connect_loc_behalf))

if(foodtypes & GORE)
REMOVE_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src))

/datum/component/edible/InheritComponent(
datum/component/edible/old_comp,
i_am_original,
Expand All @@ -138,6 +144,9 @@ Behavior that's still missing from this component that original food items had t
tastes = old_comp.tastes
eatverbs = old_comp.eatverbs

if(foodtypes & GORE)
ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src))

// only edit if we're OG
if(!i_am_original)
return
Expand Down
4 changes: 2 additions & 2 deletions code/datums/components/heart_eater.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
/datum/mutation/human/adaptation/thermal,
/datum/mutation/human/chameleon,
/datum/mutation/human/cryokinesis,
/datum/mutation/human/cryokinesis/pyrokinesis,
/datum/mutation/human/pyrokinesis,
/datum/mutation/human/dwarfism,
/datum/mutation/human/geladikinesis/ash,
/datum/mutation/human/cindikinesis,
/datum/mutation/human/insulated,
/datum/mutation/human/telekinesis,
/datum/mutation/human/telepathy,
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/multiple_lives.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
/datum/component/multiple_lives/proc/on_examine(mob/living/source, mob/user, list/examine_list)
SIGNAL_HANDLER
if(isobserver(user) || source == user)
examine_list += "[source.p_Theyve()] [lives_left] extra lives left."
examine_list += "[source.p_They()] [source.p_have()] [lives_left] extra lives left."

/datum/component/multiple_lives/InheritComponent(datum/component/multiple_lives/new_comp , lives_left)
src.lives_left += new_comp ? new_comp.lives_left : lives_left
Expand Down
Loading

0 comments on commit 47e2458

Please sign in to comment.