Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Commit 4c7d381

Browse files
authored
[BOUNTY] Liquids try #3: Return of the pee (#22169)
* pee * strange reagent fix * smell mop * throwing? * evaporation + more effects * Update pyrotechnic_reagents.dm * doors/airlocks * smell mop * Update liquid_groups.dm * borbop changes * breathing in liquids * fixes liquids going into dense tiles * increases mopcap to 45 * liquids fixes * lol * more liquid stuff * fixes this * more changes * fix all this stupid stuff * fix phantom pixel * liquid pump fix * gives you better ability to scoop things up * fix liquid pump * BUUURN BABY BURN + blud * slipping reaction checking * change liquid push reaction * removes liquid_fire_power
1 parent 9acc635 commit 4c7d381

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+3144
-41
lines changed

code/__DEFINES/atmospherics.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ GLOBAL_LIST_INIT(atmos_adjacent_savings, list(0,0))
303303
#define LAVALAND_DEFAULT_ATMOS "o2=14;n2=23;TEMP=300"
304304
#define ICEMOON_DEFAULT_ATMOS "o2=14;n2=23;TEMP=180"
305305
#define JUNGLELAND_DEFAULT_ATMOS "o2=44;n2=164;TEMP=300" //yogs edit
306+
#define OCEAN_DEFAULT_ATMOS "o2=10;co2=10;TEMP=293.15"
306307

307308
//ATMOSIA GAS MONITOR TAGS
308309
#define ATMOS_GAS_MONITOR_INPUT_O2 "o2_in"

code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,4 @@
4444
#define COMSIG_ATOM_SECONDARY_TOOL_ACT(tooltype) "tool_secondary_act_[tooltype]"
4545
// We have the same returns here as COMSIG_ATOM_TOOL_ACT
4646
// #define COMPONENT_BLOCK_TOOL_ATTACK (1<<0)
47+
#define COMSIG_ATOM_DOOR_OPEN "atom_door_open"

code/__DEFINES/dcs/signals/signals_turf.dm

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,13 @@
4747
#define COMSIG_TURF_IGNITED "turf_ignited"
4848
///Prevents hotspots and turf fires
4949
#define SUPPRESS_FIRE (1<<0)
50+
51+
///called on liquid creation
52+
#define COMSIG_TURF_LIQUIDS_CREATION "turf_liquids_creation"
53+
54+
#define COMSIG_TURF_MOB_FALL "turf_mob_fall"
55+
56+
///this is called whenever a turf is destroyed
57+
#define COMSIG_TURF_DESTROY "turf_destroy"
58+
///this is called whenever a turfs air is updated
59+
#define COMSIG_TURF_UPDATE_AIR "turf_air_change"

code/__DEFINES/icon_smoothing.dm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,8 @@ DEFINE_BITFIELD(smoothing_junction, list(
165165
#define SMOOTH_GROUP_BAMBOO_WALLS S_TURF(17) //![/turf/closed/wall/mineral/bamboo, /obj/structure/falsewall/bamboo]
166166
#define SMOOTH_GROUP_PLASTINUM_WALLS S_TURF(18) //![turf/closed/indestructible/riveted/plastinum]
167167
#define SMOOTH_GROUP_CLOCKWORK_WALLS S_TURF(19) //![/turf/closed/wall/clockwork, /obj/structure/falsewall/brass]
168+
#define SMOOTH_GROUP_ELEVATED_PLASTEEL S_TURF(20)
169+
#define SMOOTH_GROUP_LOWERED_PLASTEEL S_TURF(21)
168170

169171
#define SMOOTH_GROUP_PAPERFRAME S_OBJ(21) ///obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe
170172

@@ -208,6 +210,8 @@ DEFINE_BITFIELD(smoothing_junction, list(
208210

209211
#define SMOOTH_GROUP_GAS_TANK S_OBJ(72)
210212

213+
#define SMOOTH_GROUP_WATER S_OBJ(73) ///obj/effect/abstract/liquid_turf
214+
211215

212216
/// Performs the work to set smoothing_groups and canSmoothWith.
213217
/// An inlined function used in both turf/Initialize and atom/Initialize.

code/__DEFINES/movespeed_modification.dm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,5 @@
8383
#define MOVESPEED_ID_RESIN_FOAM "RESIN_FOAM"
8484

8585
#define MOVESPEED_ID_SYNTH_SUSPICION "SYNTH_SUSPICION"
86+
87+
#define MOVESPEED_ID_LIQUID "LIQUID"

code/__DEFINES/subsystems.dm

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,3 +332,13 @@
332332
//Wardrobe callback master list indexes
333333
#define WARDROBE_CALLBACK_INSERT 1
334334
#define WARDROBE_CALLBACK_REMOVE 2
335+
336+
///liquid defines
337+
#define SSLIQUIDS_RUN_TYPE_TURFS 1
338+
#define SSLIQUIDS_RUN_TYPE_GROUPS 2
339+
#define SSLIQUIDS_RUN_TYPE_IMMUTABLES 3
340+
#define SSLIQUIDS_RUN_TYPE_EVAPORATION 4
341+
#define SSLIQUIDS_RUN_TYPE_FIRE 5
342+
#define SSLIQUIDS_RUN_TYPE_OCEAN 6
343+
#define SSLIQUIDS_RUN_TYPE_TEMPERATURE 7
344+
#define SSLIQUIDS_RUN_TYPE_CACHED_EDGES 8

code/__DEFINES/traits.dm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,3 +285,6 @@
285285

286286
///reduces the cooldown of all used /datum/action/cooldown by 25%
287287
#define TRAIT_FAST_COOLDOWNS "short_spell_cooldowns"
288+
289+
/// One can breath under water, you get me?
290+
#define TRAIT_WATER_BREATHING "water_breathing"

code/__DEFINES/turfs.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#define CHANGETURF_DEFER_CHANGE (1<<0)
22
#define CHANGETURF_IGNORE_AIR (1<<1) // This flag prevents changeturf from gathering air from nearby turfs to fill the new turf with an approximation of local air
33
#define CHANGETURF_FORCEOP (1<<2)
4-
#define CHANGETURF_SKIP (1<<3) // A flag for PlaceOnTop to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE
4+
#define CHANGETURF_SKIP (1<<3) // A flag for place_on_top to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE
55
#define CHANGETURF_INHERIT_AIR (1<<4) // Inherit air from previous turf. Implies CHANGETURF_IGNORE_AIR
66
#define CHANGETURF_RECALC_ADJACENT (1<<5) //Immediately recalc adjacent atmos turfs instead of queuing.
77
#define CHANGETURF_TRAPDOOR_INDUCED (1<<6) // Caused by a trapdoor, for trapdoor to know that this changeturf was caused by itself
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#define WATER_HEIGH_DIFFERENCE_SOUND_CHANCE 50
2+
#define WATER_HEIGH_DIFFERENCE_DELTA_SPLASH 7 //Delta needed for the splash effect to be made in 1 go
3+
4+
#define REQUIRED_MEMBER_PROCESSES 10
5+
6+
#define REQUIRED_EVAPORATION_PROCESSES 20
7+
#define EVAPORATION_CHANCE 50
8+
9+
#define REQUIRED_FIRE_PROCESSES 10
10+
#define REQUIRED_FIRE_POWER_PER_UNIT 5
11+
#define FIRE_BURN_PERCENT 10
12+
13+
#define REQUIRED_OCEAN_PROCESSES 5
14+
15+
#define PARTIAL_TRANSFER_AMOUNT 0.3
16+
17+
#define LIQUID_MUTUAL_SHARE 1
18+
#define LIQUID_NOT_MUTUAL_SHARE 2
19+
20+
#define LIQUID_GIVER 1
21+
#define LIQUID_TAKER 2
22+
23+
//Required amount of a reagent to be simulated on turf exposures from liquids (to prevent gaming the system with cheap dillutions)
24+
#define LIQUID_REAGENT_THRESHOLD_TURF_EXPOSURE 5
25+
26+
//Threshold at which the difference of height makes us need to climb/blocks movement/allows to fall down
27+
#define TURF_HEIGHT_BLOCK_THRESHOLD 20
28+
29+
#define LIQUID_HEIGHT_DIVISOR 10
30+
31+
#define ONE_LIQUIDS_HEIGHT LIQUID_HEIGHT_DIVISOR
32+
33+
#define LIQUID_ATTRITION_TO_STOP_ACTIVITY 2
34+
35+
//Percieved heat capacity for calculations with atmos sharing
36+
#define REAGENT_HEAT_CAPACITY 5
37+
38+
#define LIQUID_STATE_PUDDLE 1
39+
#define LIQUID_STATE_ANKLES 2
40+
#define LIQUID_STATE_WAIST 3
41+
#define LIQUID_STATE_SHOULDERS 4
42+
#define LIQUID_STATE_FULLTILE 5
43+
#define TOTAL_LIQUID_STATES 5
44+
#define LYING_DOWN_SUBMERGEMENT_STATE_BONUS 2
45+
46+
#define LIQUID_STATE_FOR_HEAT_EXCHANGERS LIQUID_STATE_WAIST
47+
48+
#define LIQUID_ANKLES_LEVEL_HEIGHT 8
49+
#define LIQUID_WAIST_LEVEL_HEIGHT 19
50+
#define LIQUID_SHOULDERS_LEVEL_HEIGHT 29
51+
#define LIQUID_FULLTILE_LEVEL_HEIGHT 39
52+
53+
#define LIQUID_FIRE_STATE_NONE 0
54+
#define LIQUID_FIRE_STATE_SMALL 1
55+
#define LIQUID_FIRE_STATE_MILD 2
56+
#define LIQUID_FIRE_STATE_MEDIUM 3
57+
#define LIQUID_FIRE_STATE_HUGE 4
58+
#define LIQUID_FIRE_STATE_INFERNO 5
59+
60+
//Threshold at which we "choke" on the water, instead of holding our breath
61+
#define OXYGEN_DAMAGE_CHOKING_THRESHOLD 15
62+
63+
#define IMMUTABLE_LIQUID_SHARE 1
64+
65+
#define LIQUID_RECURSIVE_LOOP_SAFETY 255
66+
67+
//Height at which we consider the tile "full" and dont drop liquids on it from the upper Z level
68+
#define LIQUID_HEIGHT_CONSIDER_FULL_TILE 50
69+
70+
#define LIQUID_GROUP_DECAY_TIME 3
71+
72+
//Scaled with how much a person is submerged
73+
#define SUBMERGEMENT_REAGENTS_TOUCH_AMOUNT 60
74+
75+
#define CHOKE_REAGENTS_INGEST_ON_FALL_AMOUNT 4
76+
77+
#define CHOKE_REAGENTS_INGEST_ON_BREATH_AMOUNT 2
78+
79+
#define SUBMERGEMENT_PERCENT(carbon, liquids) min(1,(!MOBILITY_STAND ? liquids.liquid_group.group_overlay_state+LYING_DOWN_SUBMERGEMENT_STATE_BONUS : liquids.liquid_group.group_overlay_state)/TOTAL_LIQUID_STATES)
80+
81+
#define LIQUID_PROTECTION "liquid_protection"
82+
83+
GLOBAL_LIST_INIT(liquid_blacklist, list(
84+
/datum/reagent/sorium,
85+
/datum/reagent/liquid_dark_matter
86+
))

code/game/area/areas.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -878,7 +878,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
878878
CRASH("Bad op: area/drop_location() called")
879879

880880
/// A hook so areas can modify the incoming args (of what??)
881-
/area/proc/PlaceOnTopReact(list/new_baseturfs, turf/fake_turf_type, flags)
881+
/area/proc/place_on_topReact(list/new_baseturfs, turf/fake_turf_type, flags)
882882
return flags
883883

884884
/// Called when a living mob that spawned here, joining the round, receives the player client.

0 commit comments

Comments
 (0)