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

Updating from Neb dev #15

Closed
wants to merge 36 commits into from
Closed
Changes from 2 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
baa528c
Make ammo magazines lazy-initialize
out-of-phaze Feb 23, 2024
9ed8c48
Merge pull request #3730 from out-of-phaze/optimization/lazy-ammo
MistakeNot4892 Jun 18, 2024
702df7e
Automatic changelog generation for PR #3730 [ci skip]
NebulaSS13Bot Jun 18, 2024
84c4ca4
Move Heist gamemode into its own modpack
out-of-phaze Jun 16, 2024
88c4123
Genericize heist objectives
out-of-phaze Jun 16, 2024
20e8906
Move crossfire gamemode into modpack
out-of-phaze Jun 16, 2024
9c28f6f
Include Heist and mixed gamemode modpacks
out-of-phaze Jun 16, 2024
fdbd77b
Merge pull request #4114 from out-of-phaze/codequality/heist-modpack
MistakeNot4892 Jun 18, 2024
1185d44
Move Ninja antagonist and gamemode into a modpack
out-of-phaze Jun 15, 2024
c7e4dce
Merge pull request #4107 from out-of-phaze/codequality/ninja-modpack
MistakeNot4892 Jun 19, 2024
20d95a7
Fixes and expansions for skeletal limbs.
MistakeNot4892 Jun 18, 2024
be37949
Automatic changelog generation [ci skip]
NebulaSS13Bot Jun 19, 2024
112441a
Merge pull request #4122 from MistakeNot4892/feature/skellymans
out-of-phaze Jun 19, 2024
6297725
Make diagonal movement on by default
out-of-phaze Jun 19, 2024
febc7d6
Remove unnecessary uses of unsafe var access operator
out-of-phaze Jun 19, 2024
8d420a1
Added beggar knights to Shaded Hills.
MistakeNot4892 Jun 17, 2024
ae9a484
Expand DME validation to include modpacks
out-of-phaze Jun 16, 2024
0e5c2c1
Fix issues found in modpacks
out-of-phaze Jun 16, 2024
230d9ed
You can now dip items into turf liquids, wells and barrels.
MistakeNot4892 Jun 17, 2024
15deea6
Added debounce to on_reagent_change().
MistakeNot4892 Jun 17, 2024
45e8f30
Automatic changelog generation for PR #4120 [ci skip]
NebulaSS13Bot Jun 19, 2024
a959e3c
Automatic changelog generation [ci skip]
NebulaSS13Bot Jun 20, 2024
5590a2a
Added shrine and associated jobs to Shaded Hills.
MistakeNot4892 Jun 19, 2024
67f3291
Travel* back to travell*.
MistakeNot4892 Jun 20, 2024
4490e0d
Removed DNA and replaced it with mob_snapshot.
MistakeNot4892 Jun 20, 2024
94984e0
Merge pull request #3882 from MistakeNot4892/removal/dna
out-of-phaze Jun 20, 2024
b04da0c
Updating comment and adding migration for human repath.
MistakeNot4892 Jun 16, 2024
14c99d4
Repaths /mob/living/carbon/human to /mob/living/human.
MistakeNot4892 Jun 20, 2024
811438c
Add log wall frames/low walls
out-of-phaze Jun 20, 2024
3895efb
Add low log walls to fantasy map
out-of-phaze Jun 20, 2024
1e9a927
Merge pull request #4113 from MistakeNot4892/rework/carbon_final_removal
out-of-phaze Jun 20, 2024
2728152
Move Revolution gamemode into a modpack
out-of-phaze Jun 20, 2024
a5a4834
Merge pull request #4132 from out-of-phaze/codequality/rev-modpack
MistakeNot4892 Jun 20, 2024
b9133ff
Merge pull request #4130 from out-of-phaze/feature/low-log
MistakeNot4892 Jun 20, 2024
e64a30b
Merge pull request #4127 from out-of-phaze/tweak/default-diagonal
MistakeNot4892 Jun 21, 2024
17c8eef
Merge pull request #4126 from MistakeNot4892/feature/shrine
out-of-phaze Jun 21, 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
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -26,6 +26,9 @@ sql/test_db
*.code-workspace
.history

# git/kdiff4
*.orig

# swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
@@ -52,4 +55,4 @@ lib/*.so
__pycache__

# Running OpenDream locally
nebula.json
nebula.json
65 changes: 0 additions & 65 deletions code/__defines/dna.dm

This file was deleted.

21 changes: 21 additions & 0 deletions code/__defines/genetics.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#define GENE_COND_COLD_RESISTANCE /decl/genetic_condition/superpower/cold_resist
#define GENE_COND_XRAY /decl/genetic_condition/superpower/xray
#define GENE_COND_SPACE_RESISTANCE /decl/genetic_condition/superpower/space_resist
#define GENE_COND_NO_BREATH /decl/genetic_condition/superpower/no_breath
#define GENE_COND_REMOTE_TALK /decl/genetic_condition/superpower/remotetalk
#define GENE_COND_RUNNING /decl/genetic_condition/superpower/running
#define GENE_COND_REMOTE_VIEW /decl/genetic_condition/superpower/remoteview
#define GENE_COND_SHAPESHIFTER /decl/genetic_condition/superpower/morph
#define GENE_COND_NO_FINGERPRINTS /decl/genetic_condition/superpower/noprints

#define GENE_COND_CLUMSY /decl/genetic_condition/disability/clumsy
#define GENE_COND_NEARSIGHTED /decl/genetic_condition/disability/nearsighted
#define GENE_COND_EPILEPSY /decl/genetic_condition/disability/epilepsy
#define GENE_COND_COUGHING /decl/genetic_condition/disability/coughing
#define GENE_COND_TOURETTES /decl/genetic_condition/disability/tourettes
#define GENE_COND_NERVOUS /decl/genetic_condition/disability/nervous
#define GENE_COND_BLINDED /decl/genetic_condition/disability/blinded
#define GENE_COND_MUTED /decl/genetic_condition/disability/muted
#define GENE_COND_DEAFENED /decl/genetic_condition/disability/deafened

#define GENE_COND_HUSK /decl/genetic_condition/husk
23 changes: 11 additions & 12 deletions code/__defines/mobs.dm
Original file line number Diff line number Diff line change
@@ -64,18 +64,17 @@
#define ROBOT_NOTIFICATION_MODULE_RESET 4

// Appearance change flags
#define APPEARANCE_UPDATE_DNA BITFLAG(0)
#define APPEARANCE_RACE (BITFLAG(1)|APPEARANCE_UPDATE_DNA)
#define APPEARANCE_GENDER BITFLAG(2)
#define APPEARANCE_BODY (BITFLAG(3)|APPEARANCE_UPDATE_DNA)
#define APPEARANCE_SKIN BITFLAG(4)
#define APPEARANCE_HAIR BITFLAG(5)
#define APPEARANCE_HAIR_COLOR BITFLAG(6)
#define APPEARANCE_FACIAL_HAIR BITFLAG(7)
#define APPEARANCE_FACIAL_HAIR_COLOR BITFLAG(8)
#define APPEARANCE_EYE_COLOR BITFLAG(9)
#define APPEARANCE_RACE BITFLAG(0)
#define APPEARANCE_GENDER BITFLAG(1)
#define APPEARANCE_BODY BITFLAG(2)
#define APPEARANCE_SKIN BITFLAG(3)
#define APPEARANCE_HAIR BITFLAG(4)
#define APPEARANCE_HAIR_COLOR BITFLAG(5)
#define APPEARANCE_FACIAL_HAIR BITFLAG(6)
#define APPEARANCE_FACIAL_HAIR_COLOR BITFLAG(7)
#define APPEARANCE_EYE_COLOR BITFLAG(8)
#define APPEARANCE_ALL_HAIR (APPEARANCE_HAIR|APPEARANCE_HAIR_COLOR|APPEARANCE_FACIAL_HAIR|APPEARANCE_FACIAL_HAIR_COLOR)
#define APPEARANCE_ALL (APPEARANCE_UPDATE_DNA|APPEARANCE_RACE|APPEARANCE_GENDER|APPEARANCE_BODY|APPEARANCE_SKIN|APPEARANCE_EYE_COLOR|APPEARANCE_ALL_HAIR)
#define APPEARANCE_ALL (APPEARANCE_RACE|APPEARANCE_GENDER|APPEARANCE_BODY|APPEARANCE_SKIN|APPEARANCE_EYE_COLOR|APPEARANCE_ALL_HAIR)

// Click cooldown
#define DEFAULT_ATTACK_COOLDOWN 8 //Default timeout for aggressive actions
@@ -348,7 +347,7 @@ var/global/list/dexterity_levels = list(
#define NEUTER_ANIMATE "animate singular neutral"

// Equipment Overlays Indices //
#define HO_MUTATIONS_LAYER 1
#define HO_CONDITION_LAYER 1
#define HO_SKIN_LAYER 2
#define HO_DAMAGE_LAYER 3
#define HO_SURGERY_LAYER 4 //bs12 specific.
4 changes: 2 additions & 2 deletions code/_helpers/medical_scans.dm
Original file line number Diff line number Diff line change
@@ -88,9 +88,9 @@
for(var/organ_name in root_bodytype.has_organ)
if(!GET_INTERNAL_ORGAN(H, organ_name))
scan["missing_organs"] += organ_name
if(H.sdisabilities & BLINDED)
if(H.has_genetic_condition(GENE_COND_BLINDED))
scan["blind"] = TRUE
if(H.sdisabilities & NEARSIGHTED)
if(H.has_genetic_condition(GENE_COND_NEARSIGHTED))
scan["nearsight"] = TRUE
return scan

1 change: 0 additions & 1 deletion code/controllers/subsystems/initialization/misc.dm
Original file line number Diff line number Diff line change
@@ -4,6 +4,5 @@ SUBSYSTEM_DEF(misc)
flags = SS_NO_FIRE

/datum/controller/subsystem/misc/Initialize()
setupgenetics()
transfer_controller = new
. = ..()
133 changes: 133 additions & 0 deletions code/datums/genetics/genetic_conditions.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
/decl/genetic_condition
/// Descriptive name, used in VV panel.
var/name
/// Verb to be added or removed on activate/deactivate
var/grant_verb
/// Message shown when the gene is activated.
var/activation_message
/// Message shown when the gene is deactivated.
var/deactivation_message
/// State to use for underlays.
var/underlay_state
/// Icon to pull mob underlays from.
var/underlay_icon = 'icons/effects/genetics.dmi'
/// Type that this gene can apply to.
var/expected_type = /mob/living/carbon/human
/// Required return result from isSynthetic() for the gene to activate, if not null.
var/check_synthetic = FALSE
/// Set to FALSE if mob snapshots should not include this condition.
var/is_heritable = TRUE

/decl/genetic_condition/proc/activate_condition(mob/living/M)
if(istype(M, expected_type) && M.can_have_genetic_conditions())
if(!isnull(check_synthetic) && M.isSynthetic() != check_synthetic)
return FALSE
if(grant_verb)
M.verbs |= grant_verb
if(activation_message)
to_chat(M, SPAN_NOTICE(activation_message))
return TRUE
return FALSE

/decl/genetic_condition/proc/deactivate_condition(mob/living/M)
if(istype(M, expected_type) && M.can_have_genetic_conditions())
if(!isnull(check_synthetic) && M.isSynthetic() != check_synthetic)
return FALSE
if(grant_verb)
M.verbs -= grant_verb
if(deactivation_message)
to_chat(M, SPAN_NOTICE(deactivation_message))
return TRUE
return FALSE

/decl/genetic_condition/proc/get_mob_overlay()
if(underlay_icon && underlay_state)
return overlay_image(underlay_icon, underlay_state)

/decl/genetic_condition/superpower
abstract_type = /decl/genetic_condition/superpower

/decl/genetic_condition/superpower/no_breath
name = "No Breathing"
activation_message = "You feel no need to breathe."

/decl/genetic_condition/superpower/remoteview
name = "Remote Viewing"
grant_verb = /mob/living/carbon/human/proc/remoteobserve
activation_message = "Your mind expands."

/decl/genetic_condition/superpower/running
name = "Super Speed"
activation_message = "Your leg muscles pulsate."

/decl/genetic_condition/superpower/remotetalk
name = "Telepathy"
grant_verb = /mob/living/carbon/human/proc/remotesay
activation_message = "You expand your mind outwards."

/decl/genetic_condition/superpower/morph
name = "Morph"
grant_verb = /mob/living/carbon/human/proc/morph
activation_message = "Your skin feels strange."

/decl/genetic_condition/superpower/cold_resist
name = "Cold Resistance"
underlay_state = "fire_s"
activation_message = "Your body is filled with warmth."

/decl/genetic_condition/superpower/noprints
name = "No Prints"
activation_message = "Your fingers feel numb."

/decl/genetic_condition/superpower/xray
name = "X-Ray Vision"
activation_message = "The walls suddenly disappear."

/decl/genetic_condition/superpower/space_resist
name = "Space Resistance"
activation_message = "Your skin feels strange."

/decl/genetic_condition/disability
abstract_type = /decl/genetic_condition/disability

/decl/genetic_condition/disability/clumsy
name = "Clumsy"

/decl/genetic_condition/disability/nearsighted
name = "Nearsighted"

/decl/genetic_condition/disability/epilepsy
name = "Epilepsy"

/decl/genetic_condition/disability/coughing
name = "Coughing"

/decl/genetic_condition/disability/tourettes
name = "Tourettes"

/decl/genetic_condition/disability/nervous
name = "Nervous"

/decl/genetic_condition/disability/blinded
name = "Blinded"
check_synthetic = null

/decl/genetic_condition/disability/muted
name = "Mute"
check_synthetic = null

/decl/genetic_condition/disability/deafened
name = "Deafened"
check_synthetic = null

/decl/genetic_condition/husk
name = "Husk"

/decl/genetic_condition/husk/activate_condition(mob/living/M)
. = ..()
if(.)
SET_FACIAL_HAIR_STYLE(M, /decl/sprite_accessory/facial_hair/shaved, TRUE)
SET_HAIR_STYLE(M, /decl/sprite_accessory/hair/bald, TRUE)
for(var/obj/item/organ/external/E in M.get_external_organs())
E.status |= ORGAN_DISFIGURED
M.update_body(TRUE)
4 changes: 4 additions & 0 deletions code/datums/repositories/decls.dm
Original file line number Diff line number Diff line change
@@ -117,24 +117,28 @@ var/global/repository/decls/decls_repository = new
. += decl

/repository/decls/proc/get_decls_of_type_unassociated(var/decl_prototype)
RETURN_TYPE(/list)
. = fetched_decl_instances[decl_prototype]
if(!.)
. = get_decls_unassociated(typesof(decl_prototype))
fetched_decl_instances[decl_prototype] = .

/repository/decls/proc/get_decls_of_subtype_unassociated(var/decl_prototype)
RETURN_TYPE(/list)
. = fetched_decl_subinstances[decl_prototype]
if(!.)
. = get_decls_unassociated(subtypesof(decl_prototype))
fetched_decl_subinstances[decl_prototype] = .

/repository/decls/proc/get_decls_of_type(var/decl_prototype)
RETURN_TYPE(/list)
. = fetched_decl_types[decl_prototype]
if(!.)
. = get_decls(typesof(decl_prototype))
fetched_decl_types[decl_prototype] = .

/repository/decls/proc/get_decls_of_subtype(var/decl_prototype)
RETURN_TYPE(/list)
. = fetched_decl_subtypes[decl_prototype]
if(!.)
. = get_decls(subtypesof(decl_prototype))
2 changes: 0 additions & 2 deletions code/game/antagonist/antagonist_create.dm
Original file line number Diff line number Diff line change
@@ -90,8 +90,6 @@
if (newname)
player.real_name = newname
player.SetName(player.real_name)
if(player.dna)
player.dna.real_name = newname
if(player.mind) player.mind.name = player.name
// Update any ID cards.
update_access(player)
10 changes: 2 additions & 8 deletions code/game/atoms.dm
Original file line number Diff line number Diff line change
@@ -511,17 +511,11 @@
if(atom_flags & ATOM_FLAG_NO_BLOOD)
return FALSE

if(!blood_DNA || !istype(blood_DNA, /list)) //if our list of DNA doesn't exist yet (or isn't a list) initialize it.
if(!islist(blood_DNA)) //if our list of DNA doesn't exist yet (or isn't a list) initialize it.
blood_DNA = list()

was_bloodied = 1
blood_color = COLOR_BLOOD_HUMAN
if(istype(M))
if (!istype(M.dna, /datum/dna))
M.dna = new /datum/dna()
M.dna.real_name = M.real_name
M.check_dna()
blood_color = M.get_blood_color()
blood_color = istype(M) ? M.get_blood_color() : COLOR_BLOOD_HUMAN
return TRUE

/**
Loading