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

Merge upstream 14.10.24 #573

Merged
merged 50 commits into from
Oct 14, 2024
Merged
Changes from 1 commit
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
91e14ba
Plasmaman Species Refactor | Jesus Christ This Hurts Edition (#87086)
SmArtKar Oct 12, 2024
993d6dd
Automatic changelog for PR #87086 [ci skip]
tgstation-ci[bot] Oct 12, 2024
a3a91f4
pet emotes, pet bonus adjustment (#87126)
Sadboysuss Oct 12, 2024
0a0d414
Automatic changelog for PR #87126 [ci skip]
tgstation-ci[bot] Oct 12, 2024
58daf1b
snore fix [no gbp] (#87168)
Sadboysuss Oct 12, 2024
cde641f
Automatic changelog for PR #87168 [ci skip]
tgstation-ci[bot] Oct 12, 2024
08ebaa1
fixes ashdrake arena attack not clearing out lavaland walls (#87160)
Ben10Omintrix Oct 12, 2024
abe52df
Automatic changelog for PR #87160 [ci skip]
tgstation-ci[bot] Oct 12, 2024
afd4932
Proofreads nebula virologist fax (#87158)
YakumoChen Oct 12, 2024
49fa660
Automatic changelog for PR #87158 [ci skip]
tgstation-ci[bot] Oct 12, 2024
bd37221
Changes incorrect override in untie shoes spell (#87183)
SmArtKar Oct 12, 2024
59f698f
Automatic changelog for PR #87183 [ci skip]
tgstation-ci[bot] Oct 12, 2024
f106b8f
Fix automatic map votes requiring manual map voting config (#87164)
FlufflesTheDog Oct 12, 2024
6639857
Better ghost tray scan (#87143)
Jewelry-x Oct 12, 2024
68e1465
Automatic changelog for PR #87143 [ci skip]
tgstation-ci[bot] Oct 12, 2024
e378b00
Removes gas mask fov, pepperspray now applies tint to masks until was…
spiders24110 Oct 12, 2024
eb593b0
Automatic changelog for PR #87102 [ci skip]
tgstation-ci[bot] Oct 12, 2024
3b444ff
DNA Infusers now check for a datum trait instead of whether non-livin…
Ghommie Oct 12, 2024
f89e9f3
Automatic changelog for PR #87154 [ci skip]
tgstation-ci[bot] Oct 12, 2024
1fa9958
All chainsaws can behead (#87145)
Sadboysuss Oct 12, 2024
26f9d63
Automatic changelog for PR #87145 [ci skip]
tgstation-ci[bot] Oct 12, 2024
3c30e56
Option to Offload non-technical PR discussion to a Discord Thread (#8…
Cyberboss Oct 12, 2024
f5825f7
Fish feed to the Library vending machine, rescue hook to the mining o…
Ghommie Oct 12, 2024
4b8a530
Automatic changelog for PR #87110 [ci skip]
tgstation-ci[bot] Oct 12, 2024
6658d9f
Pyro/Cryokinesis cast range is the same as the projectile's range. Py…
necromanceranne Oct 12, 2024
b1ab674
Automatic changelog for PR #87144 [ci skip]
tgstation-ci[bot] Oct 12, 2024
b6b9d78
Automatic changelog compile [ci skip]
tgstation-ci[bot] Oct 13, 2024
a76084b
Helmet and visor sounds (#87165)
Sadboysuss Oct 13, 2024
daca181
Automatic changelog for PR #87165 [ci skip]
tgstation-ci[bot] Oct 13, 2024
4298025
fix merge skew with cat folder [no gbp] (#87186)
Sadboysuss Oct 13, 2024
2a365a4
Fixes incorrect use of pronoun macros in multiple lives component (#8…
SmArtKar Oct 13, 2024
a253a3f
Automatic changelog for PR #87185 [ci skip]
tgstation-ci[bot] Oct 13, 2024
c3ce1c6
Offering an item displays a balloon alert to viewers (#87174)
Sadboysuss Oct 13, 2024
a5104c3
Automatic changelog for PR #87174 [ci skip]
tgstation-ci[bot] Oct 13, 2024
d12fca5
[NO GBP] Prevents ghosts from cutting tethers (#87194)
SmArtKar Oct 13, 2024
8d43cbf
Automatic changelog for PR #87194 [ci skip]
tgstation-ci[bot] Oct 13, 2024
0b02c2a
gas analyzer handling sounds (#87190)
Sadboysuss Oct 13, 2024
db034fb
Automatic changelog for PR #87190 [ci skip]
tgstation-ci[bot] Oct 13, 2024
8de35ca
you can use lizards to get lizard organs in the dna infuser (#87204)
carlarctg Oct 13, 2024
d123008
Automatic changelog for PR #87204 [ci skip]
tgstation-ci[bot] Oct 13, 2024
4452aa0
Makes the 1643 error more explicit (#87172)
MrMelbert Oct 14, 2024
55ded2d
[NO GBP] Fixes a small typo for adjusting kitsune masks (#87195)
Hardly3D Oct 14, 2024
d36865d
Automatic changelog for PR #87195 [ci skip]
tgstation-ci[bot] Oct 14, 2024
1f3382a
Automatic changelog compile [ci skip]
tgstation-ci[bot] Oct 14, 2024
aba9f59
Improvements to mech sound logic (#87184)
Jewelry-x Oct 14, 2024
29b618c
Automatic changelog for PR #87184 [ci skip]
tgstation-ci[bot] Oct 14, 2024
2b0485d
Adds a flipping skillchip, the Chipped quirk, a chip connector implan…
carlarctg Oct 14, 2024
c012027
Automatic changelog for PR #87082 [ci skip]
tgstation-ci[bot] Oct 14, 2024
79365eb
Webhook: Prevent connection errors to game servers from blocking disc…
MrsTonedOne Oct 14, 2024
252581e
Merge branch 'master-upstream' into merge-upstream
larentoun Oct 14, 2024
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
Prev Previous commit
Next Next commit
DNA Infusers now check for a datum trait instead of whether non-livin…
…g objects are edible and have the GORE food type. (tgstation#87154)
Ghommie authored Oct 12, 2024
commit 3b444ffd72c4070329a18b7b13cd8d71e0d32d54
2 changes: 2 additions & 0 deletions code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
@@ -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.
1 change: 1 addition & 0 deletions code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
@@ -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,
9 changes: 9 additions & 0 deletions code/datums/components/food/edible.dm
Original file line number Diff line number Diff line change
@@ -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,
@@ -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,
@@ -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
8 changes: 2 additions & 6 deletions code/game/machinery/dna_infuser/dna_infuser.dm
Original file line number Diff line number Diff line change
@@ -210,7 +210,6 @@

/// Verify that the given infusion source/mob is a dead creature.
/obj/machinery/dna_infuser/proc/is_valid_infusion(atom/movable/target, mob/user)
var/datum/component/edible/food_comp = IS_EDIBLE(target)
if(infusing_from)
balloon_alert(user, "empty the machine first!")
return FALSE
@@ -219,11 +218,8 @@
if(living_target.stat != DEAD)
balloon_alert(user, "only dead creatures!")
return FALSE
else if(food_comp)
if(!(food_comp.foodtypes & GORE))
balloon_alert(user, "only creatures!")
return FALSE
else
else if(!HAS_TRAIT(target, TRAIT_VALID_DNA_INFUSION))
balloon_alert(user, "only creatures!")
return FALSE
return TRUE

3 changes: 3 additions & 0 deletions code/modules/fishing/fish/_fish.dm
Original file line number Diff line number Diff line change
@@ -173,6 +173,9 @@
ADD_TRAIT(src, TRAIT_UNCOMPOSTABLE, REF(src)) //Composting a food that is not real food wouldn't work anyway.
START_PROCESSING(SSobj, src)

//Adding this because not all fish have the gore foodtype that makes them automatically eligible for dna infusion.
ADD_TRAIT(src, TRAIT_VALID_DNA_INFUSION, INNATE_TRAIT)

//stops new fish from being able to reproduce right away.
breeding_wait = world.time + (breeding_timeout * NEW_FISH_BREEDING_TIMEOUT_MULT)
last_feeding = world.time - (feeding_frequency * NEW_FISH_LAST_FEEDING_MULT)
2 changes: 1 addition & 1 deletion code/modules/fishing/fish/types/freshwater.dm
Original file line number Diff line number Diff line change
@@ -175,7 +175,7 @@

/obj/item/fish/tadpole/Initialize(mapload, apply_qualities = TRUE)
. = ..()
AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, rand(2.5, 3 MINUTES))
AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, rand(2 MINUTES, 3 MINUTES))
RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks))
RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth))

2 changes: 1 addition & 1 deletion code/modules/unit_tests/_unit_tests.dm
Original file line number Diff line number Diff line change
@@ -135,6 +135,7 @@
#include "dcs_get_id_from_elements.dm"
#include "designs.dm"
#include "dismemberment.dm"
#include "dna_infusion.dm"
#include "door_access.dm"
#include "dragon_expiration.dm"
#include "drink_icons.dm"
@@ -211,7 +212,6 @@
#include "operating_table.dm"
#include "orderable_items.dm"
#include "organ_bodypart_shuffle.dm"
#include "organ_set_bonus.dm"
#include "organs.dm"
#include "orphaned_genturf.dm"
#include "outfit_sanity.dm"
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
///Check that input types that aren't living mobs have the TRAIT_VALID_DNA_INFUSION trait
/datum/unit_test/valid_dna_infusion

/datum/unit_test/valid_dna_infusion/Run()
for(var/datum/infuser_entry/infuser_entry as anything in flatten_list(GLOB.infuser_entries))
for(var/input_type as anything in infuser_entry.input_obj_or_mob)
if(ispath(input_type, /mob/living))
continue
var/atom/movable/movable = allocate(input_type)
if(!HAS_TRAIT(movable, TRAIT_VALID_DNA_INFUSION))
//TEST_FAIL() doesn't early return the unit test so we can keep checking.
TEST_FAIL("[input_type] is in the 'input_obj_or_mob' list for [infuser_entry.type] but doesn't have TRAIT_VALID_DNA_INFUSION.")

/// Checks that all "organ_set_bonus" status effects have unique "id" vars.
/// Required to ensure that the status effects are treated as "unique".
/datum/unit_test/organ_set_bonus_id