Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
2604a0c
Combines Start + Mark + Grasp
Xander3359 Feb 22, 2025
2e92886
Removes passives and knowledge ritual from tree
Xander3359 Feb 24, 2025
370ecf1
Removes side pathing
Xander3359 Feb 27, 2025
99ecadb
re-orders the spells
Xander3359 Feb 27, 2025
46c3c8c
First half of knowledge tweaks
Xander3359 Mar 9, 2025
697997e
Merge branch 'master' of https://github.com/tgstation/tgstation into …
Xander3359 Mar 11, 2025
2bb6b85
Second part of knowledge tweaks
Xander3359 Mar 11, 2025
7dce87a
Tweaks more knowledges, makes crimson cleave
Xander3359 Mar 13, 2025
0bba7ff
Last couple changes
Xander3359 Mar 17, 2025
9a6261e
gazer laser
Xander3359 Mar 19, 2025
5172899
gazer laser + 2 tile cosmic
Xander3359 Mar 20, 2025
e89bf77
Finishes most of the basic changes
Xander3359 Mar 21, 2025
59e5e85
fix typo
Xander3359 Mar 21, 2025
ae17d89
unlimited blades when trait
Xander3359 Mar 21, 2025
6ead87a
Clean up a few more knowledge
Xander3359 Mar 27, 2025
5884841
finishes the last knowledge tweaks
Xander3359 Mar 27, 2025
967463a
replace unique ability
Xander3359 Mar 28, 2025
af80d4a
Merge branch 'master' of https://github.com/tgstation/tgstation into …
Xander3359 Mar 28, 2025
e60c8e6
adjust sanity
Xander3359 Mar 28, 2025
01dd8f5
Adds the passives (except cosmic)
Xander3359 Apr 4, 2025
8b3b9cc
Make sure it compiles
Xander3359 Apr 4, 2025
fa06e54
Fix a few things knowledge
Xander3359 Apr 6, 2025
1150061
Cosmic passive
Xander3359 Apr 10, 2025
a974c4d
Finish Cosmic Passive
Xander3359 Apr 11, 2025
aca96e3
Cosmic + Heretic Armor
Xander3359 Apr 12, 2025
789ef87
stargazer laser, only missing closing
Xander3359 Apr 18, 2025
e7032a0
Adds some of the armor passives
Xander3359 Apr 21, 2025
acef386
Merge branch 'master' of https://github.com/tgstation/tgstation into …
Xander3359 Apr 21, 2025
8acea67
resolve merge conflict
Xander3359 Apr 21, 2025
030c11f
Finish the moon robes mechanics
Xander3359 Apr 23, 2025
4b36cc5
Merge branch 'master' of https://github.com/tgstation/tgstation into …
Xander3359 Apr 23, 2025
96208c7
fix 160x160
Xander3359 Apr 23, 2025
9c7f93d
spell adjustments and clean up
Xander3359 Apr 23, 2025
a5093e6
passive tracking + RoK
Xander3359 Apr 23, 2025
da8820b
stargazer sound + moon armor hud
Xander3359 Apr 27, 2025
69afb10
Moon heretic UI
Xander3359 Apr 30, 2025
61506eb
few more bugfix and rebalance
Xander3359 Apr 30, 2025
c54fa1c
fix mood runtime and moon armor
Xander3359 Apr 30, 2025
e1163a6
element fix and wearer.death
Xander3359 Apr 30, 2025
fd77a56
suit should stop icon
Xander3359 May 1, 2025
9c9de7e
should wrap up the last couple knowledge changes
Xander3359 May 4, 2025
deecf13
organizes all the sides into tiers
Xander3359 May 5, 2025
fc5b37f
Builds the drafting system + some UI
Xander3359 May 7, 2025
5f649bc
rust armor animation
Xander3359 May 8, 2025
1ce482d
Guaranteed draft picks
Xander3359 May 11, 2025
0c7c0ee
see description
Xander3359 May 15, 2025
c3fc3b9
rust overlay
Xander3359 May 15, 2025
ec2d11d
grace period for the animation
Xander3359 May 15, 2025
0ba724d
fix ash jaunt
Xander3359 May 18, 2025
81a2f82
Merge branch 'master' of https://github.com/tgstation/tgstation into …
Xander3359 May 18, 2025
df70a84
restore circle wave star blast
Xander3359 May 18, 2025
9bd9487
amulet toggle, moon pacifism
Xander3359 May 18, 2025
f24d84b
star mark effect change
Xander3359 May 24, 2025
35d3c05
remove teleport, fix mark
Xander3359 May 24, 2025
98d4da9
Revert "remove teleport, fix mark"
Xander3359 May 24, 2025
27023c1
Revert "star mark effect change"
Xander3359 May 24, 2025
ea060ae
cosmic expansion 30 seconds
Xander3359 May 24, 2025
10d83d1
star touch delete both runes
Xander3359 May 27, 2025
5888016
rust overlay using render target
Xander3359 May 27, 2025
f55f7a1
trying to make the UI
Xander3359 May 28, 2025
9186a2c
make changing heretic points a setter so we can update the UI & imple…
Arturlang May 28, 2025
58d84cc
use max not min whoops
Arturlang May 28, 2025
4f58c7e
implement a path info tab
Arturlang May 28, 2025
2303e82
adds ash ui flavour
Arturlang May 29, 2025
be46160
add a new tgui proc for only updating ui_data & more ui stuff
Arturlang May 31, 2025
157b3a9
Adds the text for each path
Xander3359 Jun 1, 2025
85fa08b
fix excess margin and buying stuff adding points
Arturlang Jun 1, 2025
1326746
possible way to check for researched powers
Arturlang Jun 2, 2025
18a7232
implement buying for knowledge shop and category differentation
Arturlang Jun 2, 2025
26bb59d
fix cost
Xander3359 Jun 4, 2025
1615a2e
implement preview ability display
Arturlang Jun 8, 2025
5a7a75b
lock robes
Xander3359 Jun 9, 2025
d5a9b04
rust object overlay
Xander3359 Jun 9, 2025
a8fcbbf
add initial passive ui, don't use static data, add default ability di…
Arturlang Jun 9, 2025
df93402
remove old vars
Arturlang Jun 9, 2025
ba8274b
maidmirror + suit for armor
Xander3359 Jun 11, 2025
fe40b34
xray, drafted_knowledge, passive names
Xander3359 Jun 12, 2025
0379832
refactor determine_drafted_knowledge, add descs to antag panel, side …
Arturlang Jun 12, 2025
dd657aa
make draft picking fail more lenient and not simply crash out the ent…
Arturlang Jun 12, 2025
cba142b
update the error text for the pick fail
Arturlang Jun 12, 2025
d87fecb
fix ascension dm-side
Arturlang Jun 15, 2025
c3585f7
add per-path styles
Arturlang Jun 23, 2025
b550441
change xray from influences
Xander3359 Jun 25, 2025
06896cf
moon emotes and nohunger
Xander3359 Jun 26, 2025
74dac7b
Merge branch 'master' of https://github.com/tgstation/tgstation into …
Xander3359 Jun 26, 2025
786bfd5
Merge branch 'master' of https://github.com/tgstation/tgstation into …
Xander3359 Jun 26, 2025
b345801
fix dmis
Xander3359 Jun 26, 2025
24920a0
cross check
Xander3359 Jun 26, 2025
635669a
compilable
Xander3359 Jun 26, 2025
4d6dad2
refactors heretic knowledge to be categorized
Arturlang Jul 1, 2025
cdd316a
fix not generating starting knowledges
Arturlang Jul 1, 2025
05d3726
fix more runtimes and define for node_side
Arturlang Jul 1, 2025
2630694
moon robe attack messages
Xander3359 Jul 1, 2025
f93053b
Merge branch 'Heretic-Knowledge-Rework' of https://github.com/Xander3…
Xander3359 Jul 1, 2025
08c9106
more fixes
Arturlang Jul 1, 2025
459f19b
better shop unlocking logic
Arturlang Jul 2, 2025
488c205
drafts are now properly hidden
Arturlang Jul 2, 2025
da83705
blade break 12 points
Xander3359 Jul 3, 2025
b052863
flesh armor placeholder + gain
Xander3359 Jul 4, 2025
21d99c7
save the current path as a datum on the antag datum, generate knowled…
Arturlang Jul 7, 2025
8baa226
leeching path is removed for rust heretics, change around math for pa…
Arturlang Jul 7, 2025
b17774d
Merge commit '9294ef0df15b03f99f7f426489a8758978dc18d3' into Heretic-…
Arturlang Jul 8, 2025
fa2cd13
start cleaning robes code
Xander3359 Jul 9, 2025
2b16efe
robust robes code
Xander3359 Jul 9, 2025
083d246
adds robe side effects
Xander3359 Jul 10, 2025
9101979
a
EnterTheJake Jul 11, 2025
0066a29
fix duplicate alert for blade breaking removal and fix ascension message
Arturlang Jul 12, 2025
99404e2
star gaze
EnterTheJake Jul 13, 2025
683f581
lore shaenangans
EnterTheJake Jul 13, 2025
190fe28
remove moves to update_data_for_all_viewers in unrelated code
Arturlang Jul 13, 2025
0db6b39
Merge branch 'Heretic-Knowledge-Rework' of https://github.com/xander3…
EnterTheJake Jul 13, 2025
a0dfd8c
flesh_animated
EnterTheJake Jul 17, 2025
df409de
refactor how HKT_BAN and HKT_NEXT is handled to use ID's to allow for…
Arturlang Jul 14, 2025
4f7865c
remove unneeded comment
Arturlang Jul 14, 2025
0e6637e
comment man bad
Arturlang Jul 14, 2025
c514fd2
use better solution for draft depth change and start work on fixing t…
Arturlang Jul 15, 2025
2006fb1
fix linter issues
Arturlang Jul 15, 2025
b1fb10a
revert changes to genesis_call.dme
Arturlang Jul 15, 2025
1272a42
add missed trait to traits by type
Arturlang Jul 15, 2025
758508e
Revert "revert changes to genesis_call.dme"
Arturlang Jul 16, 2025
f24ae26
Revert "a"
Arturlang Jul 16, 2025
7227f5c
git update index chmod +x
Arturlang Jul 16, 2025
9951f97
run prettier on AntagInfoHeretic.scss
Arturlang Jul 16, 2025
1c04b04
probably fixes half the linter errors
Arturlang Jul 16, 2025
29beb77
melbert review
Xander3359 Jul 16, 2025
fe52e71
maid in the mirror and remove trail
Xander3359 Jul 16, 2025
6c8b1c1
fix rituals unit test
Xander3359 Jul 16, 2025
56b71dc
comment out the knowledge unit test until i fix it
Arturlang Jul 16, 2025
918d5d2
map icon unit test
Xander3359 Jul 16, 2025
89ba6d3
remove unwanted diff
Arturlang Jul 16, 2025
c5d64a6
balloon alert for > 12 blade breaking lost
Arturlang Jul 16, 2025
053873c
fix TRAIT_UNLIMITED_BLADES cleanup, fix knowledge points being added …
Arturlang Jul 16, 2025
b068192
lionhunter rifle is now drafting tier 2
Arturlang Jul 16, 2025
551e254
changes how rifle/reroll are added to the shop, fix rifle not appeari…
Arturlang Jul 16, 2025
7b0f308
fix leeching walk the passive dealing oxyloss
Arturlang Jul 16, 2025
537ff9f
negative stun reduction too
Arturlang Jul 16, 2025
d914f3f
heal_overall_damage does not heal stamina even when it really should …
Arturlang Jul 16, 2025
f8e9c5a
crucible fix, flesh armor, rust fix, all armor fix
Xander3359 Jul 17, 2025
c9b7c8e
crucible 2 min cooldown + icon
Xander3359 Jul 17, 2025
51f1200
link `TRAIT_HERETIC_SUMMON` to the antag datum instead
Absolucy Jul 18, 2025
78e34d1
simplify `/obj/effect/forcefield/wizard/heretic/CanAllowThrough()`
Absolucy Jul 18, 2025
b92ed9f
use `?.` for moon ringleader AOE stuff
Absolucy Jul 18, 2025
83a27cd
fix objective report for heretics
Arturlang Jul 18, 2025
947e7d2
imagine if i build my code before pushing it
Arturlang Jul 15, 2025
b636b87
Merge commit 'abea4bb2d885235e3b2c5cc9e9932517eb5c9401' into Heretic-…
Arturlang Jul 20, 2025
aca93d3
Merge remote-tracking branch 'origin/master' into Heretic-Laser-Gator
Arturlang Jul 20, 2025
13667a3
use correct typecasting for heretic lock passive
Arturlang Jul 20, 2025
c401cb4
fix percetomatrix diff
Arturlang Jul 20, 2025
9a4bba8
fix inventory states for the percetomatrix too
Arturlang Jul 20, 2025
e4d92e2
nerfs moon healing globally, first spell is now 2 cost
Arturlang Jul 22, 2025
77be9fd
shuttle call, moon heal, ash spirit, no blade armor
Xander3359 Jul 22, 2025
c41b4e5
sand rustable and sooner blade break prevention
Xander3359 Jul 22, 2025
62d83d2
rebalance the odds of drafts
Xander3359 Jul 23, 2025
9e77727
bug fix for on body transfer
Arturlang Jul 26, 2025
6a0305f
reworks blade heretic robes curse, changes others a bit to make them …
Arturlang Jul 26, 2025
182ce80
fix moon ascension killing heretics
Arturlang Jul 27, 2025
3061dae
add seconds between ticks to moon ascension calc
Arturlang Jul 27, 2025
a3ed5d1
heretic aura and some balance
Xander3359 Jul 29, 2025
0edc8f5
use consistent source and check for it
Arturlang Jul 29, 2025
821360c
use correct define
Arturlang Jul 29, 2025
78f5045
possible way make caretaker better
Arturlang Jul 29, 2025
d8a848b
moon robes/blades cost glass instead of iron, lunar parade takes 50 d…
Arturlang Jul 29, 2025
7a6645e
better desc
Arturlang Jul 30, 2025
e405daf
fix drain overlay showing without book
Xander3359 Jul 30, 2025
b04cc80
fix drain overlay, make transmutation rune not do wallpierce sound & …
Arturlang Jul 30, 2025
e9a90c4
fix heretic passive upgrading
Arturlang Jul 30, 2025
73d39dd
draft backgrounds use side path background, tree knowledges now have …
Arturlang Jul 30, 2025
c1091d8
linter fix
Arturlang Jul 30, 2025
767cedc
isnull lets 0 past
Arturlang Jul 31, 2025
e50e211
flesh robes now deal critical wounds to non-heretics wearing them, lo…
Arturlang Jul 31, 2025
650f166
add 2 more calls to update heretic aura just in case
Arturlang Jul 31, 2025
554737b
antag datum isn't guaranteed for on_finished_recipe
Arturlang Aug 1, 2025
456f162
Merge branch 'master' into temp-pr-branch
Bruh-24 Aug 2, 2025
bf53586
Merge branch 'Alliance-codeBase:master' into temp-pr-branch
Bruh-24 Aug 3, 2025
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
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
# In the event that people are to be informed of changes
# to the same file or dir, add them to the end of under Multiple Owners


# SHOULD BE CLEAN, OK? JUST BECAUSE!

34 changes: 34 additions & 0 deletions code/__DEFINES/antagonists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -105,15 +105,49 @@
#define HKT_NEXT "next"
#define HKT_BAN "ban"
#define HKT_DEPTH "depth"
#define HKT_PURCHASED_DEPTH "purchased_depth"
#define HKT_ROUTE "route"
#define HKT_UI_BGR "ui_bgr"
#define HKT_COST "cost"
/// Only present for already researched knowledge.
#define HKT_INSTANCE "instance"
#define HKT_CATEGORY "category"
/// unique identifier most commonly used for identifying what knowledge is researchable
#define HKT_ID "id"

#define BGR_SIDE "node_side"

/// Defines are used in /proc/has_living_heart() to report if the heretic has no heart period, no living heart, or has a living heart.
#define HERETIC_NO_HEART_ORGAN -1
#define HERETIC_NO_LIVING_HEART 0
#define HERETIC_HAS_LIVING_HEART 1

#define HERETIC_DRAFT_TIER_MAX 5

/// The default drain speed for heretic rift's, anything below this will be considered a fast drain, and be very noticeable and cause a overlay
#define HERETIC_RIFT_DEFAULT_DRAIN_SPEED 10 SECONDS

/// Sources of knowledge purchased for heretics, used for positioning in the UI
#define HERETIC_KNOWLEDGE_TREE "tree"
#define HERETIC_KNOWLEDGE_SHOP "shop"
#define HERETIC_KNOWLEDGE_DRAFT "draft"
#define HERETIC_KNOWLEDGE_START "start"

/// defines for the depths of the heretic knowledge tree nodes
#define HKT_DEPTH_START 2
#define HKT_DEPTH_TIER_1 3
#define HKT_DEPTH_DRAFT_1 4
#define HKT_DEPTH_TIER_2 5
#define HKT_DEPTH_DRAFT_2 6
#define HKT_DEPTH_ROBES 7
#define HKT_DEPTH_TIER_3 8
#define HKT_DEPTH_DRAFT_3 9
#define HKT_DEPTH_ARMOR 10
#define HKT_DEPTH_TIER_4 11
#define HKT_DEPTH_DRAFT_4 12
#define HKT_DEPTH_ASCENSION 13


/// A define used in ritual priority for heretics.
#define MAX_KNOWLEDGE_PRIORITY 100

Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/dcs/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
#define CALTROP_SILENT (1 << 2)
#define CALTROP_NOSTUN (1 << 3)
#define CALTROP_NOCRAWL (1 << 4)
#define CALTROP_ANTS (1 << 5)

//Ingredient type in datum/component/ingredients_holder
#define CUSTOM_INGREDIENT_TYPE_EDIBLE 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,8 @@

/// Called on the atom being hit, from /datum/component/anti_magic/on_attack() : (obj/item/weapon, mob/user, antimagic_flags)
#define COMSIG_ATOM_HOLYATTACK "atom_holyattacked"

/// Called from [/mob/living/proc/send_item_attack_message()]: (&signal_message, &signal_self, &signal_blind)
#define COMSIG_SEND_ITEM_ATTACK_MESSAGE "send_item_attack_message"
/// Return value if the hitby messages are changed.
#define SIGNAL_MESSAGE_MODIFIED (1<<0)
2 changes: 2 additions & 0 deletions code/__DEFINES/dcs/signals/signals_food.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
//Food

// Eating stuff
/// From datum/component/edible/proc/TakeBite: (atom/owner)
#define COMSIG_FOOD_BIT "food_bit"
/// From datum/component/edible/proc/TakeBite: (mob/living/eater, mob/feeder, bitecount, bitesize)
#define COMSIG_FOOD_EATEN "food_eaten"
#define DESTROY_FOOD (1<<0)
Expand Down
8 changes: 8 additions & 0 deletions code/__DEFINES/dcs/signals/signals_heretic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,11 @@

/// For [/datum/status_effect/protective_blades] to signal when it is triggered
#define COMSIG_BLADE_BARRIER_TRIGGERED "blade_barrier_triggered"

/// at the end of determine_drafted_knowledge
#define COMSIG_HERETIC_SHOP_SETUP "heretic_shop_finished"

/// called on the antagonist datum, upgrades the passive to level 2
#define COMSIG_HERETIC_PASSIVE_UPGRADE_FIRST "heretic_passive_upgrade_first"
/// called on the antagonist datum, upgrades the passive to level 3
#define COMSIG_HERETIC_PASSIVE_UPGRADE_FINAL "heretic_passive_upgrade_final"
2 changes: 2 additions & 0 deletions code/__DEFINES/dcs/signals/signals_object.dm
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,8 @@
#define COMSIG_ITEM_DRIED "item_dried"
///from base of obj/item/dropped(): (mob/user)
#define COMSIG_ITEM_DROPPED "item_drop"
///a mob has just dropped an item
#define COMSIG_MOB_DROPPED_ITEM "mob_dropped_item"
///from base of obj/item/pickup(): (/mob/taker)
#define COMSIG_ITEM_PICKUP "item_pickup"
///from base of obj/item/on_outfit_equip(): (mob/equipper, visuals_only, slot)
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/dcs/signals/signals_status_effect.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/// From /datum/status_effect/fire_handler/fire_stacks/tick()
#define COMSIG_FIRE_STACKS_UPDATED "fire_stacks_updated"
2 changes: 2 additions & 0 deletions code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,8 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list(

#define is_simian(A) (isgorilla(A) || ismonkey(A))

#define isstargazer(A) (istype(A, /mob/living/basic/heretic_summon/star_gazer))

/// returns whether or not the atom is either a basic mob OR simple animal
#define isanimal_or_basicmob(A) (istype(A, /mob/living/simple_animal) || istype(A, /mob/living/basic))

Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/obj_flags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
#define NO_BLOOD_ON_ITEM (1 << 19)
/// Whether this item should skip the /datum/component/fantasy applied on spawn on the RPG event. Used on things like stacks
#define SKIP_FANTASY_ON_SPAWN (1<<20)
/// If the item can attack people despite the attacker being a pacifist
#define BYPASSES_PACIFISM (1<<21)

// Flags for the clothing_flags var on /obj/item/clothing

Expand Down
42 changes: 30 additions & 12 deletions code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_EMOTEMUTE "emotemute"
#define TRAIT_DEAF "deaf"
#define TRAIT_FAT "fat"
/// If you are fat, you no longer get the slowdown from it
#define TRAIT_FAT_IGNORE_SLOWDOWN "fat_ignore_slowdown"
/// Always hungry. They can eat as much as they want without eating slowdown.
#define TRAIT_GLUTTON "glutton"
#define TRAIT_HUSK "husk"
Expand Down Expand Up @@ -180,6 +182,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_NUKEIMMUNE "nuke_immunity"
/// Can't be given viruses
#define TRAIT_VIRUSIMMUNE "virus_immunity"
/// Stepping on ants wont cause damage
#define TRAIT_SPACE_ANT_IMMUNITY "space_ant_immunity"
/// Won't become a husk under any circumstances
#define TRAIT_UNHUSKABLE "trait_unhuskable"
/// Reduces the chance viruses will spread to this mob, and if the mob has a virus, slows its advancement
Expand Down Expand Up @@ -456,6 +460,14 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_HALLUCINATION_IMMUNE "hallucination_immune"
/// Increases chance of getting special traumas, makes them harder to cure
#define TRAIT_SPECIAL_TRAUMA_BOOST "special_trauma_boost"

//---- Brain trauma resists
/// Unable to gain any brain trauma whatsoever
#define TRAIT_BRAIN_TRAUMA_IMMUNITY "brain_trauma_immunity"

/// Prevents death from having too much brain damage
#define TRAIT_BRAIN_DAMAGE_NODEATH "brain_damage_nodeath"

#define TRAIT_SPACEWALK "spacewalk"
/// Mobs with this trait still breathe gas in and out but aren't harmed by lacking any particular gas mix. (You can still be hurt by TOO MUCH of a specific gas).
#define TRAIT_NO_BREATHLESS_DAMAGE "spacebreathing"
Expand Down Expand Up @@ -634,6 +646,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_NO_GUN_AKIMBO "no_gun_akimbo"
/// Mobs with this trait cannot be hit by projectiles, meaning the projectiles will just go through.
#define TRAIT_UNHITTABLE_BY_PROJECTILES "unhittable_by_projectiles"
/// Mobs with this trait can never be hit by laser projectiles, meaning the projectiles will just go through.
#define TRAIT_UNHITTABLE_BY_LASERS "unhittable_by_lasers"

/// Mobs with this trait do care about a few grisly things, such as digging up graves. They also really do not like bringing people back to life or tending wounds, but love autopsies and amputations.
#define TRAIT_MORBID "morbid"
Expand Down Expand Up @@ -871,8 +885,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_ROD_ATTRACT_SHINY_LOVERS "rod_attract_shiny_lovers"
/// This rod can be used to fish on lava
#define TRAIT_ROD_LAVA_USABLE "rod_lava_usable"
/// This rod was infused by a heretic, making it awesome and improving influence gain
#define TRAIT_ROD_MANSUS_INFUSED "rod_infused"
/// Stuff that can go inside fish cases and aquariums
#define TRAIT_AQUARIUM_CONTENT "aquarium_content"
/// If the item can be used as a bit.
Expand Down Expand Up @@ -921,10 +933,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_NO_STRIP "no_strip"
/// Disallows this item from being pricetagged with a barcode
#define TRAIT_NO_BARCODES "no_barcode"
/// Allows heretics to cast their spells.
#define TRAIT_ALLOW_HERETIC_CASTING "allow_heretic_casting"
/// Designates a heart as a living heart for a heretic.
#define TRAIT_LIVING_HEART "living_heart"
/// Prevents the same person from being chosen multiple times for kidnapping objective
#define TRAIT_HAS_BEEN_KIDNAPPED "has_been_kidnapped"
/// An item still plays its hitsound even if it has 0 force, instead of the tap
Expand All @@ -942,6 +950,22 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Items with this trait will not appear when examined.
#define TRAIT_EXAMINE_SKIP "examine_skip"

//---- Heretic Traits
/// Hides the heretic overlay that outs them as the heretic
#define TRAIT_HERETIC_AURA_HIDDEN "heretic_aura_hidden"
/// This rod was infused by a heretic, making it awesome and improving influence gain
#define TRAIT_ROD_MANSUS_INFUSED "rod_infused"
/// Allows heretics to cast their spells.
#define TRAIT_ALLOW_HERETIC_CASTING "allow_heretic_casting"
/// Designates a heart as a living heart for a heretic.
#define TRAIT_LIVING_HEART "living_heart"
/// Trait given to all participants in a heretic arena
#define TRAIT_ELDRITCH_ARENA_PARTICIPANT "eldritch_arena_participant"
/// Trait given to heretic summons, making them immune to heretic spells
#define TRAIT_HERETIC_SUMMON "heretic_summon"
/// Lock heretic grasp no longer goes on cooldown when opening things
#define TRAIT_LOCK_GRASP_UPGRADED "lock_grasp_upgraded"

//quirk traits
#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance"
#define TRAIT_ANOSMIA "anosmia"
Expand Down Expand Up @@ -1375,9 +1399,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Trait given to anything linked to, not necessarily allied to, the mansus
#define TRAIT_MANSUS_TOUCHED "mansus_touched"

/// Trait given to all participants in a heretic arena
#define TRAIT_ELDRITCH_ARENA_PARTICIPANT "eldritch_arena_participant"

// These traits are used in IS_X() as an OR, and is utilized for pseudoantags (such as deathmatch or domains) so they don't need to actually get antag status.
// To specifically and only get the antag datum, GET_X() exists now.
#define TRAIT_ACT_AS_CULTIST "act_as_cultist"
Expand Down Expand Up @@ -1504,9 +1525,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
///A trait given to users as a mutex to prevent repeated unresolved attempts to christen a shuttle
#define TRAIT_ATTEMPTING_CHRISTENING "attempting_christening"

///Trait given to heretic summons, making them immune to heretic spells
#define TRAIT_HERETIC_SUMMON "heretic_summon"

///trait given to mobs that are difficult to tame through mounting
#define TRAIT_MOB_DIFFICULT_TO_MOUNT "difficult_to_mount"

Expand Down
10 changes: 8 additions & 2 deletions code/__DEFINES/traits/sources.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,6 @@
#define SHOES_TRAIT "shoes"
/// Trait inherited by implants
#define IMPLANT_TRAIT "implant"
/// Traits given by the heretic arena spell
#define HERETIC_ARENA_TRAIT "heretic_arena"
#define GLASSES_TRAIT "glasses"
/// inherited from riding vehicles
#define VEHICLE_TRAIT "vehicle"
Expand Down Expand Up @@ -102,6 +100,14 @@
/// Trait given by being recruited as a nuclear operative
#define NUKE_OP_MINION_TRAIT "nuke-op-minion"

//---- Heretic Traits Sources
/// Traits given by the heretic arena spell
#define HERETIC_ARENA_TRAIT "heretic_arena"
/// Trait given by researching any final knowledge before ascension
#define FINAL_KNOWLEDGE_TRAIT "final_knowledge"
/// Trait given by getting too many knowledge points
#define HELLA_KNOWLEDGE_TRAIT "hella_knowledge"

/// Trait given to you by shapeshifting
#define SHAPESHIFT_TRAIT "shapeshift_trait"

Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/turfs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
#define RUST_RESISTANCE_REINFORCED 2
#define RUST_RESISTANCE_TITANIUM 3
#define RUST_RESISTANCE_ORGANIC 4
/// Should not be rustable. EVER. Includes thing like space, lava, chasms, admin walls
#define RUST_RESISTANCE_ABSOLUTE 5

/// Turf will be passable if density is 0
Expand Down
11 changes: 11 additions & 0 deletions code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_SPINNING" = TRAIT_SPINNING,
"TRAIT_STICKERED" = TRAIT_STICKERED,
"TRAIT_UNHITTABLE_BY_PROJECTILES" = TRAIT_UNHITTABLE_BY_PROJECTILES,
"TRAIT_UNHITTABLE_BY_LASERS" = TRAIT_UNHITTABLE_BY_LASERS,
"TRAIT_UNLINKABLE_FISHING_SPOT" = TRAIT_UNLINKABLE_FISHING_SPOT,
"TRAIT_TETHER_ATTACHED" = TRAIT_TETHER_ATTACHED,
),
Expand Down Expand Up @@ -143,6 +144,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
/datum/wound = list(
"TRAIT_WOUND_SCANNED" = TRAIT_WOUND_SCANNED,
),
/datum/antagonist/heretic = list(
"TRAIT_LOCK_GRASP_UPGRADED" = TRAIT_LOCK_GRASP_UPGRADED,
),
/obj = list(
"TRAIT_CONTRABAND" = TRAIT_CONTRABAND,
"TRAIT_SPEED_POTIONED" = TRAIT_SPEED_POTIONED,
Expand Down Expand Up @@ -637,6 +641,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_PREVENT_BLINK_LOOPS" = TRAIT_PREVENT_BLINK_LOOPS,
"TRAIT_NO_EYELIDS" = TRAIT_NO_EYELIDS,
"TRAIT_CARPOTOXIN_IMMUNE" = TRAIT_CARPOTOXIN_IMMUNE,
"TRAIT_FAT_IGNORE_SLOWDOWN" = TRAIT_FAT_IGNORE_SLOWDOWN,
"TRAIT_SPACE_ANT_IMMUNITY" = TRAIT_SPACE_ANT_IMMUNITY,
"TRAIT_BRAIN_TRAUMA_IMMUNITY" = TRAIT_BRAIN_TRAUMA_IMMUNITY,
),
/mob/dead/observer = list(
"TRAIT_NO_OBSERVE" = TRAIT_NO_OBSERVE,
Expand Down Expand Up @@ -682,6 +689,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_UNCOMPOSTABLE" = TRAIT_UNCOMPOSTABLE,
"TRAIT_UNIQUE_AQUARIUM_CONTENT" = TRAIT_UNIQUE_AQUARIUM_CONTENT,
"TRAIT_WIELDED" = TRAIT_WIELDED,
"TRAIT_HERETIC_AURA_HIDDEN" = TRAIT_HERETIC_AURA_HIDDEN,
),
/obj/item/ammo_casing = list(
"TRAIT_DART_HAS_INSERT" = TRAIT_DART_HAS_INSERT,
Expand Down Expand Up @@ -755,6 +763,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_LIVING_HEART" = TRAIT_LIVING_HEART,
"TRAIT_USED_ORGAN" = TRAIT_USED_ORGAN,
),
/obj/item/organ/brain = list(
"TRAIT_BRAIN_DAMAGE_NODEATH" = TRAIT_BRAIN_DAMAGE_NODEATH,
),
/obj/item/organ/liver = list(
"TRAIT_BALLMER_SCIENTIST" = TRAIT_BALLMER_SCIENTIST,
"TRAIT_COMEDY_METABOLISM" = TRAIT_COMEDY_METABOLISM,
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 @@ -7,6 +7,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_CATCH_AND_RELEASE" = TRAIT_CATCH_AND_RELEASE,
"TRAIT_KEEP_TOGETHER" = TRAIT_KEEP_TOGETHER,
"TRAIT_UNHITTABLE_BY_PROJECTILES" = TRAIT_UNHITTABLE_BY_PROJECTILES,
"TRAIT_UNHITTABLE_BY_LASERS" = TRAIT_UNHITTABLE_BY_LASERS,
),
/atom/movable = list(
"TRAIT_ASHSTORM_IMMUNE" = TRAIT_ASHSTORM_IMMUNE,
Expand Down
5 changes: 4 additions & 1 deletion code/_onclick/item_attack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@
return FALSE

var/final_force = CALCULATE_FORCE(src, attack_modifiers)
if(damtype != STAMINA && final_force && HAS_TRAIT(user, TRAIT_PACIFISM))
if(damtype != STAMINA && final_force && HAS_TRAIT(user, TRAIT_PACIFISM) && !(item_flags & BYPASSES_PACIFISM))
to_chat(user, span_warning("You don't want to harm other living beings!"))
return FALSE

Expand Down Expand Up @@ -475,6 +475,9 @@
return clamp(w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100

/mob/living/proc/send_item_attack_message(obj/item/weapon, mob/living/user, hit_area, def_zone)
if(SEND_SIGNAL(user, COMSIG_SEND_ITEM_ATTACK_MESSAGE) & SIGNAL_MESSAGE_MODIFIED)
return TRUE

if(!weapon.force && !length(weapon.attack_verb_simple) && !length(weapon.attack_verb_continuous))
return

Expand Down
6 changes: 3 additions & 3 deletions code/controllers/subsystem/throwing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ SUBSYSTEM_DEF(throwing)

qdel(src)

/// Returns the mob thrower, or null
/// Returns the thrower, or null
/datum/thrownthing/proc/get_thrower()
. = thrower?.resolve()
if(isnull(.))
Expand All @@ -144,11 +144,11 @@ SUBSYSTEM_DEF(throwing)
return

var/atom/movable/actual_target = initial_target?.resolve()
var/mob/mob_thrower = get_thrower()
var/atom/thrower = get_thrower()

if(dist_travelled) //to catch sneaky things moving on our tile while we slept
for(var/atom/movable/obstacle as anything in get_turf(thrownthing))
if (obstacle == thrownthing || (obstacle == mob_thrower && !ismob(thrownthing)))
if(obstacle == thrownthing || (obstacle == thrower && !ismob(thrownthing)))
continue
if(ismob(obstacle) && thrownthing.pass_flags & PASSMOB && (obstacle != actual_target))
continue
Expand Down
18 changes: 13 additions & 5 deletions code/datums/brain_damage/brain_trauma.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,22 @@
/datum/brain_trauma
var/name = "Brain Trauma"
var/desc = "A trauma caused by brain damage, which causes issues to the patient."
var/scan_desc = "generic brain trauma" //description when detected by a health scanner
var/mob/living/carbon/owner //the poor bastard
var/obj/item/organ/brain/brain //the poor bastard's brain
/// Description when detected by a health scanner
var/scan_desc = "generic brain trauma"
/// The poor bastard
var/mob/living/carbon/owner
/// The poor bastard's brain
var/obj/item/organ/brain/brain
/// Message sent in chat when trauma is gained
var/gain_text = span_notice("You feel traumatized.")
/// Message sent in chat when trauma is lost
var/lose_text = span_notice("You no longer feel traumatized.")
/// If the trauma can be gained, checked in can_gain_trauma
var/can_gain = TRUE
var/random_gain = TRUE //can this be gained through random traumas?
var/resilience = TRAUMA_RESILIENCE_BASIC //how hard is this to cure?
/// If this trauma can be gained randomly
var/random_gain = TRUE
/// How hard is this to cure?
var/resilience = TRAUMA_RESILIENCE_BASIC

/// Tracks abstract types of brain traumas, useful for determining traumas that should not exist
var/abstract_type = /datum/brain_trauma
Expand Down
Loading
Loading