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 #90

Merged
merged 73 commits into from
Sep 14, 2024
Merged
Changes from 70 commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
d0a3206
Automatic changelog generation [ci skip]
NebulaSS13Bot Sep 8, 2024
de17f6f
Adds shearable and milkable extension, adds sheep.
MistakeNot4892 Sep 6, 2024
90a2e52
Adds sheep to cargo.
MistakeNot4892 Sep 6, 2024
f2f7926
Adding shears.
MistakeNot4892 Sep 6, 2024
0930317
Fixing copypasta error.
MistakeNot4892 Sep 6, 2024
e4416c8
Fixing issue with milking param order.
MistakeNot4892 Sep 6, 2024
a7f3c50
Diyaab are shearable now.
MistakeNot4892 Sep 6, 2024
64b4f83
Fixing copypasta issues with shears.
MistakeNot4892 Sep 6, 2024
b47bcc4
Fixing copypasta error with fleece.
MistakeNot4892 Sep 7, 2024
88df64e
Adjusting sheep PR post-rebase.
MistakeNot4892 Sep 7, 2024
4b3d195
Adding a town bell.
MistakeNot4892 Sep 4, 2024
1efc7a9
Requested changes and updated animated icon for the bell.
MistakeNot4892 Sep 6, 2024
1bf7ddc
Adding z-level aware coord system.
MistakeNot4892 Sep 6, 2024
24764bc
Automatic changelog generation for PR #4437 [ci skip]
NebulaSS13Bot Sep 8, 2024
71f35ee
Automatic changelog generation for PR #4436 [ci skip]
NebulaSS13Bot Sep 8, 2024
fbc9bb9
Adding lockpicks.
MistakeNot4892 Sep 4, 2024
413dc17
Automatic changelog generation [ci skip]
NebulaSS13Bot Sep 9, 2024
c483c4f
Adding recipes and ores for producing sulfuric acid.
Dhul-Qarnayn Sep 9, 2024
f5bbfe3
Generalizing allergies/intolerances and adding many allergen flags.
MistakeNot4892 Sep 2, 2024
3278e82
Failing to lockpick will damage the pick instead of instantly destroy…
MistakeNot4892 Sep 6, 2024
bc67162
Ported/integrated Polaris allergic reaction handling.
MistakeNot4892 Sep 9, 2024
2977b84
Ensuring parent calls on reagent effect procs.
MistakeNot4892 Sep 9, 2024
bca7dc4
Reworking bookcases.
MistakeNot4892 Sep 9, 2024
2cf017c
Converting bookcase Initialize() overrides to use WillContain().
MistakeNot4892 Sep 9, 2024
1e8ca09
Remove unused smell_clean_time variable from detergent pods
out-of-phaze Sep 9, 2024
7df3329
Implement destination tagger clear_previous_tags()
out-of-phaze Sep 9, 2024
61918a8
Switch supply shuttle status to natural language time
out-of-phaze Sep 9, 2024
6c2f448
Use unused has_organs helper
out-of-phaze Sep 9, 2024
ab23872
Remove deprecated handle_type var on tool heads
out-of-phaze Sep 9, 2024
81a1b4d
Remove unused imbue var on talismans
out-of-phaze Sep 9, 2024
4c47cfe
Implement unused expected_type var on state_machine
out-of-phaze Sep 9, 2024
5f29e79
Remove defunct capture points objective
out-of-phaze Sep 9, 2024
6b7f407
Implement storage.expected_type
out-of-phaze Sep 9, 2024
df004fb
Remove unused check_mob nuke mode proc
out-of-phaze Sep 9, 2024
64136df
Implement securitron hostility decl access_check variable
out-of-phaze Sep 9, 2024
ec0e9b5
Remove unused gripper can_use_held_item variable
out-of-phaze Sep 9, 2024
51fb240
Readd name and job labels to PDAs
out-of-phaze Sep 9, 2024
643f0a4
Implement unused base_type var on state machines
out-of-phaze Sep 9, 2024
03b222d
Fix qdel churn from stacks as machinery components
out-of-phaze Jul 20, 2024
95cd924
Cache part rating in broadcaster get_broadcast_strength
out-of-phaze Jul 20, 2024
f0e4bdf
Fix ailment treatment priority
out-of-phaze Sep 9, 2024
e1513b3
Fix removing ailments via VV
out-of-phaze Sep 9, 2024
d871fa4
Remove ailments on rejuv
out-of-phaze Sep 9, 2024
7b5deb5
Fix double-spending of ointment when treating wounds
out-of-phaze Sep 9, 2024
382a2b7
Merge pull request #4441 from MistakeNot4892/tweak/vitriol
out-of-phaze Sep 11, 2024
346ef4b
Automatic changelog generation for PR #4441 [ci skip]
NebulaSS13Bot Sep 11, 2024
b4cd5a2
Merge pull request #4433 from MistakeNot4892/feature/lockpicks
out-of-phaze Sep 11, 2024
fd5623c
Incrementing SDMM version in dmdoc workflow to support 515.
MistakeNot4892 Sep 11, 2024
ab89077
Fix ambiguous 'in' ordering detected by OpenDream
out-of-phaze Sep 9, 2024
6241f86
Elevate AmbiguousInOrder to error
out-of-phaze Sep 9, 2024
be64a18
Automatic changelog generation [ci skip]
NebulaSS13Bot Sep 12, 2024
330b9f2
Merge pull request #4447 from out-of-phaze/codequality/unused-remove-…
MistakeNot4892 Sep 13, 2024
912f225
Various fixes to exodus main level
Atermonera Sep 12, 2024
2705dda
Automatic changelog generation for PR #4449 [ci skip]
NebulaSS13Bot Sep 13, 2024
25ce85b
Merge pull request #4443 from MistakeNot4892/rework/bookcase
out-of-phaze Sep 13, 2024
bbc38a8
Merge pull request #4448 from MistakeNot4892/tweak/sdmm
out-of-phaze Sep 13, 2024
8542e37
Merge pull request #4422 from MistakeNot4892/feature/allergies
out-of-phaze Sep 13, 2024
f4264a8
Automatic changelog generation for PR #4443 [ci skip]
NebulaSS13Bot Sep 13, 2024
fa406d5
Automatic changelog generation for PR #4422 [ci skip]
NebulaSS13Bot Sep 13, 2024
f4b6bec
Automatic changelog generation [ci skip]
NebulaSS13Bot Sep 14, 2024
8713fcd
Fix drinking from wells and wall fountains
out-of-phaze Sep 14, 2024
c851caa
Fix wall fountains not refilling with water
out-of-phaze Sep 14, 2024
955f949
Make autofill wells drain away contaminants
out-of-phaze Sep 14, 2024
36f0f32
Adjust mundane fountain atom_flags
out-of-phaze Sep 14, 2024
5fe328d
Fix job starting money calculation
out-of-phaze Sep 13, 2024
a3ed1e6
Adjust finance skill starting money bonus
out-of-phaze Sep 13, 2024
9f16dba
Adjust get_total_starting_money variable names
out-of-phaze Sep 13, 2024
6795c77
Merge pull request #4453 from NebulaSS13/stable
MistakeNot4892 Sep 14, 2024
0abf9e9
Merge pull request #4454 from NebulaSS13/staging
MistakeNot4892 Sep 14, 2024
870f697
Merge branch 'dev' of github.com:NebulaSS13/Nebula into fork/pyrelight
MistakeNot4892 Sep 14, 2024
2bf4b09
Added sheep, churn and alembic to Shaded Hills map.
MistakeNot4892 Sep 14, 2024
29dc0b3
Shrine Keeper gets a key to the catacombs.
MistakeNot4892 Sep 14, 2024
760cca3
Increased undead health and lowered windup speed.
MistakeNot4892 Sep 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
2 changes: 1 addition & 1 deletion .github/workflows/generate_documentation.yml
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ on:
workflow_dispatch:

env:
SPACEMAN_DMM_VERSION: suite-1.7.2
SPACEMAN_DMM_VERSION: suite-1.9

jobs:
generate_documentation:
1 change: 1 addition & 0 deletions code/___opendream_linting.dm
Original file line number Diff line number Diff line change
@@ -31,4 +31,5 @@
#pragma UnsafeClientAccess disabled
#pragma SuspiciousSwitchCase error
#pragma AssignmentInConditional error
#pragma AmbiguousInOrder error
#endif
81 changes: 54 additions & 27 deletions code/__defines/chemistry.dm
Original file line number Diff line number Diff line change
@@ -14,33 +14,60 @@

#define CHEM_SYNTH_ENERGY 500 // How much energy does it take to synthesize 1 unit of chemical, in Joules.

#define CE_STABLE "stable" // Stabilizing brain, pulse and breathing
#define CE_ANTIBIOTIC "antibiotic" // Spaceacilin
#define CE_BLOODRESTORE "bloodrestore" // Iron/nutriment
#define CE_PAINKILLER "painkiller" // Reduces the impact of shock/pain
#define CE_ALCOHOL "alcohol" // Liver filtering
#define CE_ALCOHOL_TOXIC "alcotoxic" // Liver damage
#define CE_SPEEDBOOST "gofast" // Stimulants
#define CE_SLOWDOWN "goslow" // Slowdown
#define CE_PULSE "xcardic" // increases or decreases heart rate
#define CE_NOPULSE "heartstop" // stops heartbeat
#define CE_ANTITOX "antitox" // Removes toxins
#define CE_OXYGENATED "oxygen" // Helps oxygenate the brain.
#define CE_BRAIN_REGEN "brainfix" // Allows the brain to recover after injury
#define CE_TOXIN "toxins" // Generic toxins, stops autoheal.
#define CE_BREATHLOSS "breathloss" // Breathing depression, makes you need more air
#define CE_MIND "mindbending" // Stabilizes or wrecks mind. Used for hallucinations
#define CE_CRYO "cryogenic" // Prevents damage from being frozen
#define CE_BLOCKAGE "blockage" // Gets in the way of blood circulation, higher the worse
#define CE_SQUEAKY "squeaky" // Helium voice. Squeak squeak.
#define CE_THIRDEYE "thirdeye" // Gives xray vision.
#define CE_SEDATE "sedate" // Applies sedation effects, i.e. paralysis, inability to use items, etc.
#define CE_ENERGETIC "energetic" // Speeds up stamina recovery.
#define CE_VOICELOSS "whispers" // Lowers the subject's voice to a whisper
#define CE_GLOWINGEYES "eyeglow" // Causes eyes to glow.

#define CE_REGEN_BRUTE "bruteheal" // Causes brute damage to regenerate.
#define CE_REGEN_BURN "burnheal" // Causes burn damage to regenerate.
/// Stabilizing brain, pulse and breathing
#define CE_STABLE "stable"
/// Spaceacilin
#define CE_ANTIBIOTIC "antibiotic"
/// Iron/nutriment
#define CE_BLOODRESTORE "bloodrestore"
/// Reduces the impact of shock/pain
#define CE_PAINKILLER "painkiller"
/// Liver filtering
#define CE_ALCOHOL "alcohol"
/// Liver damage
#define CE_ALCOHOL_TOXIC "alcotoxic"
/// Stimulants
#define CE_SPEEDBOOST "gofast"
/// Slowdown
#define CE_SLOWDOWN "goslow"
/// increases or decreases heart rate
#define CE_PULSE "xcardic"
/// stops heartbeat
#define CE_NOPULSE "heartstop"
/// Removes toxins
#define CE_ANTITOX "antitox"
/// Helps oxygenate the brain.
#define CE_OXYGENATED "oxygen"
/// Allows the brain to recover after injury
#define CE_BRAIN_REGEN "brainfix"
/// Generic toxins, stops autoheal.
#define CE_TOXIN "toxins"
/// Breathing depression, makes you need more air
#define CE_BREATHLOSS "breathloss"
/// Stabilizes or wrecks mind. Used for hallucinations
#define CE_MIND "mindbending"
/// Prevents damage from being frozen
#define CE_CRYO "cryogenic"
/// Gets in the way of blood circulation, higher the worse
#define CE_BLOCKAGE "blockage"
/// Helium voice. Squeak squeak.
#define CE_SQUEAKY "squeaky"
/// Gives xray vision.
#define CE_THIRDEYE "thirdeye"
/// Applies sedation effects, i.e. paralysis, inability to use items, etc.
#define CE_SEDATE "sedate"
/// Speeds up stamina recovery.
#define CE_ENERGETIC "energetic"
/// Lowers the subject's voice to a whisper
#define CE_VOICELOSS "whispers"
/// Causes eyes to glow.
#define CE_GLOWINGEYES "eyeglow"
/// Causes brute damage to regenerate.
#define CE_REGEN_BRUTE "bruteheal"
/// Causes burn damage to regenerate.
#define CE_REGEN_BURN "burnheal"
/// Anaphylaxis etc.
#define CE_ALLERGEN "allergyreaction"

#define GET_CHEMICAL_EFFECT(X, C) (LAZYACCESS(X.chem_effects, C) || 0)

22 changes: 16 additions & 6 deletions code/__defines/cooking.dm
Original file line number Diff line number Diff line change
@@ -6,9 +6,19 @@
#define FOOD_PREPARED 0
#define FOOD_COOKED 1

#define INGREDIENT_FLAG_PLAIN 0
#define INGREDIENT_FLAG_MEAT BITFLAG(0)
#define INGREDIENT_FLAG_FISH BITFLAG(1)
#define INGREDIENT_FLAG_VEGETABLE BITFLAG(2)
#define INGREDIENT_FLAG_DAIRY BITFLAG(3)
#define INGREDIENT_FLAG_EGG BITFLAG(4)
#define ALLERGEN_NONE 0
#define ALLERGEN_MEAT BITFLAG(0)
#define ALLERGEN_FISH BITFLAG(1)
#define ALLERGEN_VEGETABLE BITFLAG(2)
#define ALLERGEN_DAIRY BITFLAG(3)
#define ALLERGEN_EGG BITFLAG(4)
#define ALLERGEN_FRUIT BITFLAG(5)
#define ALLERGEN_GLUTEN BITFLAG(6)
#define ALLERGEN_SOY BITFLAG(7)
#define ALLERGEN_CAFFEINE BITFLAG(8)
#define ALLERGEN_FUNGI BITFLAG(9)
#define ALLERGEN_NUTS BITFLAG(10)
#define ALLERGEN_ALLIUM BITFLAG(11)
#define ALLERGEN_STIMULANT BITFLAG(12)

#define INGREDIENT_FLAGS_ALL (ALLERGEN_MEAT|ALLERGEN_FISH|ALLERGEN_VEGETABLE|ALLERGEN_DAIRY|ALLERGEN_EGG|ALLERGEN_FRUIT|ALLERGEN_GLUTEN|ALLERGEN_SOY|ALLERGEN_CAFFEINE|ALLERGEN_NUTS|ALLERGEN_ALLIUM|ALLERGEN_STIMULANT)
15 changes: 14 additions & 1 deletion code/__defines/mobs.dm
Original file line number Diff line number Diff line change
@@ -418,4 +418,17 @@ var/global/list/dexterity_levels = list(
// Used in organ stance calc.
#define LIMB_UNUSABLE 2
#define LIMB_DAMAGED 1
#define LIMB_IMPAIRED 0.5
#define LIMB_IMPAIRED 0.5

// Used by allergy effects.
#define ALLERGEN_REACTION_NONE 0
#define ALLERGEN_REACTION_PHYS_DMG BITFLAG(0)
#define ALLERGEN_REACTION_BURN_DMG BITFLAG(1)
#define ALLERGEN_REACTION_TOX_DMG BITFLAG(2)
#define ALLERGEN_REACTION_OXY_DMG BITFLAG(3)
#define ALLERGEN_REACTION_EMOTE BITFLAG(4)
#define ALLERGEN_REACTION_PAIN BITFLAG(5)
#define ALLERGEN_REACTION_WEAKEN BITFLAG(6)
#define ALLERGEN_REACTION_BLURRY BITFLAG(7)
#define ALLERGEN_REACTION_SLEEPY BITFLAG(8)
#define ALLERGEN_REACTION_CONFUSE BITFLAG(9)
1 change: 1 addition & 0 deletions code/__defines/tools.dm
Original file line number Diff line number Diff line change
@@ -16,6 +16,7 @@
// Misc tools.
#define TOOL_PEN /decl/tool_archetype/pen
#define TOOL_STAMP /decl/tool_archetype/stamp
#define TOOL_SHEARS /decl/tool_archetype/shears

// Surgical tools.
#define TOOL_SCALPEL /decl/tool_archetype/scalpel
45 changes: 45 additions & 0 deletions code/_helpers/turfs.dm
Original file line number Diff line number Diff line change
@@ -211,3 +211,48 @@
return list(new_turf, source)

return new_turf

/proc/get_dir_z_text(turf/origin, turf/target)

origin = get_turf(origin)
target = get_turf(target)

if(!istype(origin) || !istype(target) || !(origin.z in SSmapping.get_connected_levels(target.z, include_lateral = TRUE)))
return "somewhere"
if(origin == target)
return "right next to you"

var/datum/level_data/origin_level = SSmapping.levels_by_z[origin.z]
var/datum/level_data/target_level = SSmapping.levels_by_z[target.z]

if(origin_level.z_volume_level_z < target_level.z_volume_level_z)
. += "above and to"
else if(origin_level.z_volume_level_z > target_level.z_volume_level_z)
. += "below and to"

var/origin_x = origin.x + origin_level.z_volume_level_x
var/origin_y = origin.y + origin_level.z_volume_level_y
var/target_x = target.x + target_level.z_volume_level_x
var/target_y = target.y + target_level.z_volume_level_y

if(origin_x == target_x)
if(origin_y > target_y)
. += "the south"
else
. += "the north"
else if(origin_y == target_y)
if(origin_x > target_x)
. += "the west"
else
. += "the east"
else
if(origin_x > target_x)
if(origin_y > target_y)
. += "the southwest"
else
. += "the northwest"
else
if(origin_y > target_y)
. += "the southeast"
else
. += "the northeast"
48 changes: 27 additions & 21 deletions code/_onclick/item_attack.dm
Original file line number Diff line number Diff line change
@@ -29,14 +29,14 @@ avoid code duplication. This includes items that may sometimes act as a standard
add_fingerprint(user)
return A.attackby(src, user, click_params)

/atom/proc/attackby(obj/item/W, mob/user, var/click_params)
/atom/proc/attackby(obj/item/used_item, mob/user, var/click_params)
if(storage)
if(isrobot(user) && (W == user.get_active_held_item()))
if(isrobot(user) && (used_item == user.get_active_held_item()))
return //Robots can't store their modules.
if(!storage.can_be_inserted(W, user))
if(!storage.can_be_inserted(used_item, user))
return
W.add_fingerprint(user)
return storage.handle_item_insertion(user, W)
used_item.add_fingerprint(user)
return storage.handle_item_insertion(user, used_item, click_params = click_params)
return FALSE

/atom/movable/attackby(obj/item/W, mob/user)
@@ -57,36 +57,42 @@ avoid code duplication. This includes items that may sometimes act as a standard
/mob/living/attackby(obj/item/used_item, mob/user)
if(!ismob(user))
return TRUE

if(!QDELETED(used_item) && user.a_intent == I_HELP)
var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, user.get_target_zone())
if(length(E?.ailments))
for(var/datum/ailment/ailment in E.ailments)
if(ailment.treated_by_item(used_item))
ailment.was_treated_by_item(used_item, user, src)
return TRUE

if(user.a_intent != I_HURT)
if(can_operate(src, user) != OPERATE_DENY && used_item.do_surgery(src,user)) //Surgery
return TRUE
if(try_butcher_in_place(user, used_item))
return TRUE

if(istype(used_item, /obj/item/chems) && ATOM_IS_OPEN_CONTAINER(used_item) && has_extension(src, /datum/extension/milkable))
var/datum/extension/milkable/milkable = get_extension(src, /datum/extension/milkable)
if(milkable.handle_milked(used_item, user))
return TRUE

if(used_item.edge && has_extension(src, /datum/extension/shearable))
var/datum/extension/shearable/shearable = get_extension(src, /datum/extension/shearable)
if(shearable.handle_sheared(used_item, user))
return TRUE

var/oldhealth = current_health
. = used_item.use_on_mob(src, user)
if(used_item.get_attack_force(user) && istype(ai) && current_health < oldhealth)
ai.retaliate(user)

/mob/living/human/attackby(obj/item/I, mob/user)

. = ..()
if(.)
if(user.a_intent != I_HELP)
return
var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, user.get_target_zone())
if(!E)
return
for(var/datum/ailment/ailment in E.ailments)
if(ailment.treated_by_item(I))
ailment.was_treated_by_item(I, user, src)
return

else if(user == src && user.get_target_zone() == BP_MOUTH && can_devour(I, silent = TRUE))
if(!. && user == src && user.get_target_zone() == BP_MOUTH && can_devour(used_item, silent = TRUE))
var/obj/item/blocked = src.check_mouth_coverage()
if(blocked)
to_chat(user, SPAN_WARNING("\The [blocked] is in the way!"))
else
devour(I)
devour(used_item)
return TRUE


Loading