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

organ refactor #6869

Draft
wants to merge 41 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
7e0a8bb
stop doing target zones like organ tags, jfc; also, starting refactor…
silicons Nov 17, 2024
41b2bb1
reorg files
silicons Nov 17, 2024
8629a39
Changes
silicons Nov 17, 2024
f19befa
redoing everything again lol
silicons Nov 17, 2024
1cac1fb
fix
silicons Nov 19, 2024
38e8a8c
remap that
silicons Nov 19, 2024
c262ecb
fix
silicons Nov 19, 2024
542eec6
sigh
silicons Nov 19, 2024
f9a66e3
Merge remote-tracking branch 'upstream/master' into organs
silicons Nov 20, 2024
57ae6b7
fixes
silicons Nov 20, 2024
1716b07
get rid of old crap
silicons Nov 22, 2024
68a1f06
stubs
silicons Nov 22, 2024
89b2e40
that
silicons Nov 23, 2024
b275b6b
flags
silicons Nov 23, 2024
2583d2d
flags handled that way now
silicons Nov 23, 2024
3aafe21
stop with the copypaste, don't make mobs die twice as fast lmfao
silicons Nov 23, 2024
9e4aa3b
hatred.
silicons Nov 23, 2024
93ad232
Merge remote-tracking branch 'citrp/master' into organs
silicons Nov 23, 2024
a0bcf13
a
silicons Nov 23, 2024
be28c04
sigh
silicons Nov 23, 2024
e82c005
what to do with has organ i wonder
silicons Nov 23, 2024
da210eb
stub
silicons Nov 24, 2024
17ffd0f
Fix
silicons Nov 25, 2024
053fa3e
Merge branch 'organs' of https://github.com/silicons/Citadel-Station-…
silicons Nov 25, 2024
538ffaf
that
silicons Nov 25, 2024
cc4718c
things
silicons Nov 25, 2024
4813891
translations
silicons Nov 25, 2024
71d4286
all that
silicons Nov 25, 2024
3bfec9e
split things
silicons Nov 25, 2024
faf26bf
use that
silicons Nov 25, 2024
a329c3a
fix
silicons Nov 25, 2024
35263b2
api
silicons Nov 25, 2024
83b8e53
that
silicons Nov 25, 2024
a667a4b
hrm.
silicons Nov 25, 2024
b6e2b84
Merge remote-tracking branch 'upstream/master' into organs
silicons Nov 26, 2024
6ccc5af
Merge remote-tracking branch 'upstream/master' into organs
silicons Nov 28, 2024
3aed4b0
Screaming
silicons Nov 28, 2024
fcf3cc3
e
silicons Nov 29, 2024
0264dcc
Merge remote-tracking branch 'citrp/master' into organs
silicons Nov 30, 2024
fc151df
Merge remote-tracking branch 'upstream/master' into organs
silicons Dec 10, 2024
e7414fb
awful
silicons Dec 10, 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
58 changes: 45 additions & 13 deletions citadel.dme
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@
#include "code\__DEFINES\mobs\silicon_privileges.dm"
#include "code\__DEFINES\mobs\sprite_accessories.dm"
#include "code\__DEFINES\mobs\stat.dm"
#include "code\__DEFINES\mobs\target_zone.dm"
#include "code\__DEFINES\mobs\wounds.dm"
#include "code\__DEFINES\objects\objects.dm"
#include "code\__DEFINES\objects\type_generation.dm"
Expand Down Expand Up @@ -542,7 +543,7 @@
#include "code\controllers\configuration\entries\urls.dm"
#include "code\controllers\configuration_old\configuration.dm"
#include "code\controllers\configuration_old\configuration_vr.dm"
#include "code\controllers\observer_listener\atom\observer.dm"
#include "code\controllers\repository\biologies.dm"
#include "code\controllers\repository\designs.dm"
#include "code\controllers\repository\flooring.dm"
#include "code\controllers\repository\guidebook.dm"
Expand Down Expand Up @@ -790,7 +791,6 @@
#include "code\datums\components\_component.dm"
#include "code\datums\components\anti_magic.dm"
#include "code\datums\components\connect_loc_behalf.dm"
#include "code\datums\components\cyberpsychosis.dm"
#include "code\datums\components\gps_signal.dm"
#include "code\datums\components\horror_aura.dm"
#include "code\datums\components\jousting.dm"
Expand Down Expand Up @@ -2059,6 +2059,7 @@
#include "code\game\rendering\legacy\rigmech.dm"
#include "code\game\rendering\legacy\robot.dm"
#include "code\game\rendering\legacy\spell_screen_objects.dm"
#include "code\game\rendering\legacy\zone_sel.dm"
#include "code\game\rendering\legacy\intents\throwing.dm"
#include "code\game\rendering\legacy\objects\waypoint_tracker.dm"
#include "code\game\rendering\parallax\parallax.dm"
Expand Down Expand Up @@ -2477,6 +2478,21 @@
#include "code\modules\awaymissions\pamphlet.dm"
#include "code\modules\awaymissions\trigger.dm"
#include "code\modules\awaymissions\zlevel.dm"
#include "code\modules\biology\biology.dm"
#include "code\modules\biology\biology_mob_state.dm"
#include "code\modules\biology\biology_organ_state.dm"
#include "code\modules\biology\types\crystalline.dm"
#include "code\modules\biology\types\organic.dm"
#include "code\modules\biology\types\simple.dm"
#include "code\modules\biology\types\synthetic.dm"
#include "code\modules\biology\types\organic\chimeric.dm"
#include "code\modules\biology\types\organic\diona.dm"
#include "code\modules\biology\types\organic\phoronoid.dm"
#include "code\modules\biology\types\organic\plant.dm"
#include "code\modules\biology\types\organic\promethean.dm"
#include "code\modules\biology\types\organic\replicant.dm"
#include "code\modules\biology\types\organic\xenomorph.dm"
#include "code\modules\biology\types\synthetic\nanoswarm.dm"
#include "code\modules\blob2\_defines.dm"
#include "code\modules\blob2\announcement.dm"
#include "code\modules\blob2\blobs\base_blob.dm"
Expand Down Expand Up @@ -3609,7 +3625,6 @@
#include "code\modules\mob\mobility.dm"
#include "code\modules\mob\movement.dm"
#include "code\modules\mob\perspective.dm"
#include "code\modules\mob\physiology.dm"
#include "code\modules\mob\pulling.dm"
#include "code\modules\mob\say.dm"
#include "code\modules\mob\say_vr.dm"
Expand Down Expand Up @@ -3684,6 +3699,7 @@
#include "code\modules\mob\living\living-defense-legacy.dm"
#include "code\modules\mob\living\living-defense.dm"
#include "code\modules\mob\living\living-inventory.dm"
#include "code\modules\mob\living\living-physiology.dm"
#include "code\modules\mob\living\living.dm"
#include "code\modules\mob\living\living_defines.dm"
#include "code\modules\mob\living\living_powers.dm"
Expand All @@ -3693,7 +3709,6 @@
#include "code\modules\mob\living\mobility.dm"
#include "code\modules\mob\living\movement.dm"
#include "code\modules\mob\living\offense.dm"
#include "code\modules\mob\living\organs.dm"
#include "code\modules\mob\living\resist.dm"
#include "code\modules\mob\living\say.dm"
#include "code\modules\mob\living\status_procs.dm"
Expand All @@ -3713,8 +3728,11 @@
#include "code\modules\mob\living\bot\secbot.dm"
#include "code\modules\mob\living\bot\SLed209bot.dm"
#include "code\modules\mob\living\carbon\breathe.dm"
#include "code\modules\mob\living\carbon\carbon-death.dm"
#include "code\modules\mob\living\carbon\carbon-defense.dm"
#include "code\modules\mob\living\carbon\carbon-hands.dm"
#include "code\modules\mob\living\carbon\carbon-life.dm"
#include "code\modules\mob\living\carbon\carbon-organs.dm"
#include "code\modules\mob\living\carbon\carbon.dm"
#include "code\modules\mob\living\carbon\carbon_defense.dm"
#include "code\modules\mob\living\carbon\carbon_defines.dm"
Expand All @@ -3725,8 +3743,6 @@
#include "code\modules\mob\living\carbon\give.dm"
#include "code\modules\mob\living\carbon\health.dm"
#include "code\modules\mob\living\carbon\inventory.dm"
#include "code\modules\mob\living\carbon\life.dm"
#include "code\modules\mob\living\carbon\organs.dm"
#include "code\modules\mob\living\carbon\perspective.dm"
#include "code\modules\mob\living\carbon\physiology.dm"
#include "code\modules\mob\living\carbon\rendering.dm"
Expand Down Expand Up @@ -3773,6 +3789,8 @@
#include "code\modules\mob\living\carbon\human\human-damage.dm"
#include "code\modules\mob\living\carbon\human\human-defense-legacy.dm"
#include "code\modules\mob\living\carbon\human\human-defense.dm"
#include "code\modules\mob\living\carbon\human\human-life-legacy.dm"
#include "code\modules\mob\living\carbon\human\human-login-legacy.dm"
#include "code\modules\mob\living\carbon\human\human.dm"
#include "code\modules\mob\living\carbon\human\human_attackhand.dm"
#include "code\modules\mob\living\carbon\human\human_defines.dm"
Expand All @@ -3783,10 +3801,6 @@
#include "code\modules\mob\living\carbon\human\human_resist.dm"
#include "code\modules\mob\living\carbon\human\human_species.dm"
#include "code\modules\mob\living\carbon\human\inventory.dm"
#include "code\modules\mob\living\carbon\human\inventory_legacy.dm"
#include "code\modules\mob\living\carbon\human\life.dm"
#include "code\modules\mob\living\carbon\human\login.dm"
#include "code\modules\mob\living\carbon\human\logout.dm"
#include "code\modules\mob\living\carbon\human\MedicalSideEffects.dm"
#include "code\modules\mob\living\carbon\human\mobility.dm"
#include "code\modules\mob\living\carbon\human\movement.dm"
Expand All @@ -3811,6 +3825,9 @@
#include "code\modules\mob\living\carbon\human\traits\trait_groups.dm"
#include "code\modules\mob\living\carbon\human\traits\weaver_objs.dm"
#include "code\modules\mob\living\carbon\human\traits\weaver_recipies.dm"
#include "code\modules\mob\living\physiology\global_physiology.dm"
#include "code\modules\mob\living\physiology\local_physiology.dm"
#include "code\modules\mob\living\physiology\physiology_modifier.dm"
#include "code\modules\mob\living\silicon\damage_procs.dm"
#include "code\modules\mob\living\silicon\death.dm"
#include "code\modules\mob\living\silicon\emote.dm"
Expand Down Expand Up @@ -4248,22 +4265,36 @@
#include "code\modules\nifsoft\software\13_soulcatcher.dm"
#include "code\modules\nifsoft\software\14_commlink.dm"
#include "code\modules\nifsoft\software\15_misc.dm"
#include "code\modules\organs\organ-legacy-damage.dm"
#include "code\modules\organs\organ-legacy-eating.dm"
#include "code\modules\organs\organ-legacy-health.dm"
#include "code\modules\organs\organ-legacy.dm"
#include "code\modules\organs\organ-mappings.dm"
#include "code\modules\organs\organ-tick.dm"
#include "code\modules\organs\organ.dm"
#include "code\modules\organs\external\external-wound.dm"
#include "code\modules\organs\external\external.dm"
#include "code\modules\organs\external\external_icons.dm"
#include "code\modules\organs\external\robolimbs.dm"
#include "code\modules\organs\external\wound.dm"
#include "code\modules\organs\external\species\adherent.dm"
#include "code\modules\organs\external\species\alraune.dm"
#include "code\modules\organs\external\species\diona.dm"
#include "code\modules\organs\external\species\naramadi.dm"
#include "code\modules\organs\external\species\shadekin.dm"
#include "code\modules\organs\external\species\skrell.dm"
#include "code\modules\organs\external\species\slime.dm"
#include "code\modules\organs\external\species\teshari.dm"
#include "code\modules\organs\external\species\unathi.dm"
#include "code\modules\organs\external\species\werebeast.dm"
#include "code\modules\organs\external\species\xenos.dm"
#include "code\modules\organs\external\subtypes\standard.dm"
#include "code\modules\organs\external\subtypes\standard_vr.dm"
#include "code\modules\organs\external\subtypes\standard-arm.dm"
#include "code\modules\organs\external\subtypes\standard-chest.dm"
#include "code\modules\organs\external\subtypes\standard-foot.dm"
#include "code\modules\organs\external\subtypes\standard-groin.dm"
#include "code\modules\organs\external\subtypes\standard-hand.dm"
#include "code\modules\organs\external\subtypes\standard-head.dm"
#include "code\modules\organs\external\subtypes\standard-leg.dm"
#include "code\modules\organs\external\subtypes\stump.dm"
#include "code\modules\organs\external\wounds\amputation.dm"
#include "code\modules\organs\external\wounds\brute.dm"
Expand All @@ -4280,7 +4311,6 @@
#include "code\modules\organs\internal\species\alraune.dm"
#include "code\modules\organs\internal\species\diona.dm"
#include "code\modules\organs\internal\species\replicant.dm"
#include "code\modules\organs\internal\species\shadekin.dm"
#include "code\modules\organs\internal\species\slime.dm"
#include "code\modules\organs\internal\species\subspecies_graver.dm"
#include "code\modules\organs\internal\species\subspecies_spacer.dm"
Expand Down Expand Up @@ -4848,6 +4878,7 @@
#include "code\modules\species\species_getters.dm"
#include "code\modules\species\species_helpers.dm"
#include "code\modules\species\species_hud.dm"
#include "code\modules\species\species_organ_entry.dm"
#include "code\modules\species\species_shapeshift.dm"
#include "code\modules\species\outsider\celestials.dm"
#include "code\modules\species\outsider\replicant.dm"
Expand All @@ -4861,6 +4892,7 @@
#include "code\modules\species\protean\protean_blob.dm"
#include "code\modules\species\protean\protean_powers.dm"
#include "code\modules\species\shadekin\blackeyed.dm"
#include "code\modules\species\shadekin\shadekin-organs.dm"
#include "code\modules\species\shadekin\shadekin.dm"
#include "code\modules\species\shadekin\shadekin_abilities.dm"
#include "code\modules\species\shadekin\shadekin_hud.dm"
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/controllers/spatial_grids.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* todo: /atom/movable/recover_spatial_grid(), macro should have components remade using that.
*/
#define TYPE_REGISTER_SPATIAL_GRID(TYPEPATH, GRID) \
##TYPEPATH{} \
##TYPEPATH/Initialize(...) { \
. = ..(); \
if(. == INITIALIZE_HINT_QDEL) { \
Expand Down
12 changes: 7 additions & 5 deletions code/__DEFINES/mobs/biology.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//* This file is explicitly licensed under the MIT license. *//
//* Copyright (c) 2024 silicons *//
//* Copyright (c) 2024 Citadel Station Developers *//

//* biology flags
//* biology flags *//

/// humanlike, organic, normal biology
#define BIOLOGY_TYPE_HUMAN (1<<0)
Expand All @@ -13,12 +13,14 @@
#define BIOLOGY_TYPE_CHIMERA (1<<3)
/// protean
#define BIOLOGY_TYPE_NANITES (1<<4)
/// diona (legally not plant)
#define BIOLOGY_TYPE_DIONA (1<<5)
/// plant
#define BIOLOGY_TYPE_PLANT (1<<5)
#define BIOLOGY_TYPE_PLANT (1<<6)
/// crystalline (adherent)
#define BIOLOGY_TYPE_CRYSTALLINE (1<<6)
#define BIOLOGY_TYPE_CRYSTALLINE (1<<7)

#define BIOLOGY_TYPES_FLESHY (BIOLOGY_TYPE_HUMAN | BIOLOGY_TYPE_CHIMERA | BIOLOGY_TYPE_PLANT | BIOLOGY_TYPE_SLIME)
#define BIOLOGY_TYPES_FLESHY (BIOLOGY_TYPE_HUMAN | BIOLOGY_TYPE_CHIMERA | BIOLOGY_TYPE_PLANT | BIOLOGY_TYPE_DIONA| BIOLOGY_TYPE_SLIME)
#define BIOLOGY_TYPES_SYNTHETIC (BIOLOGY_TYPE_SYNTH | BIOLOGY_TYPE_NANITES)
#define BIOLOGY_TYPES_ALL (ALL)

Expand Down
27 changes: 24 additions & 3 deletions code/__DEFINES/mobs/life.dm
Original file line number Diff line number Diff line change
@@ -1,17 +1,38 @@
//* This file is explicitly licensed under the MIT license. *//
//* Copyright (c) 2023 Citadel Station developers. *//
//* Copyright (c) 2023 Citadel Station Developers *//

//* This file is called 'life', but realistically is the resting place of all things metabolism, health, and related. *//

//? Health - Core
/** Round damage values to this value
//* Health / Damage Simulation *//

/**
* Round damage values to this value
* Atom damage uses this too!
*/
#define DAMAGE_PRECISION 0.01
/**
* Round damage tier values to this value
* Atom damage uses this too!
*/
#define DAMAGE_TIER_PRECISION 0.01
/**
* Round armor values to this value
* Atom damage uses this too!
*/
#define ARMOR_PRECISION 0.001
/**
* Round armor tier values to this value
* Atom damage uses this too!
*/
#define ARMOR_TIER_PRECISION 0.01

//* Life Ticking *//

/// Should tick physical processes
#define LIFE_TICK_PHYSICAL (1<<0)
/// Should tick biological processes
#define LIFE_TICK_BIOLOGICAL (1<<1)

//* Health - Environmental Interactions *//

/// % of temperature recovered when going towards favorable
Expand Down
101 changes: 100 additions & 1 deletion code/__DEFINES/mobs/organs.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,103 @@
//! *ALL DEFINES RELATED TO ORGANS GO HERE* !//
//* Organ Flags *//

/// This organ is abstract.
///
/// * Do not allow adding / removing by players.
/// * Do not allow players to interact with it by any means, including by scanning it.
#define ORGAN_FLAG_ABSTRACT (1<<0)
#warn impl

Check warning on line 8 in code/__DEFINES/mobs/organs.dm

View workflow job for this annotation

GitHub Actions / Run Linters

#warn impl

#warn DEFINE_BITFIELD

Check warning on line 10 in code/__DEFINES/mobs/organs.dm

View workflow job for this annotation

GitHub Actions / Run Linters

#warn DEFINE_BITFIELD

//* Organ Discovery Flags *//

/// Does not show up on simple scanners like cyborg analyzers.
#define ORGAN_DISCOVERY_NO_SIMPLE_SCAN (1<<0)
/// Does not show up on advanced imaging like body scanners.
#define ORGAN_DISCOVERY_NO_ADVANCED_SCAN (1<<1)
#warn impl

Check warning on line 18 in code/__DEFINES/mobs/organs.dm

View workflow job for this annotation

GitHub Actions / Run Linters

#warn impl

#warn DEFINE_BITFIELD

Check warning on line 20 in code/__DEFINES/mobs/organs.dm

View workflow job for this annotation

GitHub Actions / Run Linters

#warn DEFINE_BITFIELD

//* Organ Keys *//
//* Organ keys are strings used to key the 'keyed_organs' list on carbons. *//
//* *//
//* While usually arbitrary for an organ, they do have attached connotations of *//
//* what the organ will be casted to when fetched. As an example, ORGAN_KEY_BRAIN *//
//* will always be an organ of /obj/item/organ/internal/brain type. *//
//* *//
//* Organ keys should always be annotated in the below list with their expected type. *//

//* Bodyparts *//

#warn tag all the ext organs these describe!!!!

Check warning on line 33 in code/__DEFINES/mobs/organs.dm

View workflow job for this annotation

GitHub Actions / Run Linters

#warn tag all the ext organs these describe!!!!
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_HEAD "head"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_CHEST "chest"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_LEFT_ARM "left_arm"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_LEFT_HAND "left_hand"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_RIGHT_ARM "right_arm"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_RIGHT_HAND "right_hand"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_GROIN "groin"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_LEFT_LEG "left_leg"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_LEFT_FOOT "left_foot"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_RIGHT_LEG "right_leg"
/// External organ key for standard set.
/// * Type: /obj/item/organ/external
#define ORGAN_KEY_EXT_RIGHT_FOOT "right_foot"

//* Common *//

/// The key for brain organs.
/// * Type: /obj/item/organ/internal/brain
#define ORGAN_KEY_BRAIN "brain"
/// The key for lung organs.
/// * Type: /obj/item/organ/internal/lungs
#define ORGAN_KEY_LUNGS "lungs"
/// The key for eye organs.
/// * Type: /obj/item/organ/internal/eyes
#define ORGAN_KEY_EYES "eyes"

//* Species - Shadekin *//

/// The key for shadekin dimensional nodes
/// * Type: /obj/item/organ/internal/shadekin/dimensional_cluster
#define ORGAN_KEY_SHADEKIN_DIMENSIONAL_CLUSTER "shadekin-dimensional-cluster"

//* Species - Xenomorph *//

/// The key for xenomorph plasma vessels.
/// * Type: /obj/item/organ/internal/xenomorph/plasmavessel
#define ORGAN_KEY_XENOMORPH_PLASMA_VESSEL "xeno-plasma-vessel"

#warn hook / implement

Check warning on line 92 in code/__DEFINES/mobs/organs.dm

View workflow job for this annotation

GitHub Actions / Run Linters

#warn hook / implement

//* Organ Default Lists *//
//* Used in lists to overrule a host biology's default organ lists. *//

/// Omit this organ.
#define ORGAN_DEFAULT_OMIT "omit"

//! legacy below !//

//These control the damage thresholds for the various ways of removing limbs
#define DROPLIMB_THRESHOLD_EDGE 5
Expand Down
Loading
Loading