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

Water Reagent Changes (mainly the ocean) #1162

Merged
merged 1 commit into from
Jan 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 3 additions & 1 deletion code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
#define TRAIT_INQUISITION "Member of the Otavan Inquisition"
#define TRAIT_GOODTRAINER "Good Trainer"
#define TRAIT_OUTDOORSMAN "Outdoorsman"
#define TRAIT_SEA_DRINKER "Denizen of the Deep"

//Hearthstone port (Tracking)
#define TRAIT_PERFECT_TRACKER "Perfect Tracker" //Will always find any tracks and analyzes them perfectly.
Expand Down Expand Up @@ -179,7 +180,8 @@ GLOBAL_LIST_INIT(roguetraits, list(
TRAIT_DEPRAVED = span_info("The languid scent of Her debauchery is known to me, and I can detect its sordid presence upon others."),
TRAIT_SILVER_BLESSED = span_info("I am anointed with holy silver, which preserves me from curses that bite."),
TRAIT_GOODTRAINER = span_info("I am a good teacher, and when it comes to weaponry I can train others to be just as skilled as I am."),
TRAIT_OUTDOORSMAN = span_info("My experience in the wilds allows me to fall asleep on surfaces like treebranches as if they were beds.")
TRAIT_OUTDOORSMAN = span_info("My experience in the wilds allows me to fall asleep on surfaces like treebranches as if they were beds."),
TRAIT_SEA_DRINKER = span_info("As a denizen of the deep, I can drink salty ocean water safely.")
))

// trait accessor defines
Expand Down
2 changes: 1 addition & 1 deletion code/datums/gods/patrons/divine_pantheon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
domain = "God of the Ocean, Storms and the Tide"
desc = "The strongest of the Ten; when awakened, the world flooded for a thousand daes and a thousand nights before he was put to slumber. Resting fitfully did Dendor split from his skull like a gaping wound. Communes rarely with his followers, only offering glimpses in dreams. Gifted primordial Man water. "
worshippers = "Men of the Sea, Primitive Aquatics"
mob_traits = list(TRAIT_ABYSSOR_SWIM)
mob_traits = list(TRAIT_ABYSSOR_SWIM, TRAIT_SEA_DRINKER)
t1 = /obj/effect/proc_holder/spell/invoked/abyssor_bends
t2 = /obj/effect/proc_holder/spell/invoked/abyssheal
t3 = /obj/effect/proc_holder/spell/invoked/call_mossback
Expand Down
8 changes: 4 additions & 4 deletions code/game/turfs/open/water.dm
Original file line number Diff line number Diff line change
Expand Up @@ -233,13 +233,13 @@

/turf/open/water/bath
name = "water"
desc = "Soothing water, although don't drink the soap."
desc = "Soothing water, with soapy bubbles on the surface."
icon = 'icons/turf/roguefloor.dmi'
icon_state = "bathtileW"
water_level = 2
water_color = "#FFFFFF"
slowdown = 3
water_reagent = /datum/reagent/water/gross
water_reagent = /datum/reagent/water/bathwater

/turf/open/water/bath/Initialize()
. = ..()
Expand Down Expand Up @@ -393,7 +393,7 @@
slowdown = 4
swim_skill = TRUE
wash_in = TRUE
water_reagent = /datum/reagent/water/gross
water_reagent = /datum/reagent/water/salty

/turf/open/water/ocean/deep
name = "salt water"
Expand All @@ -404,7 +404,7 @@
water_color = "#3e7459"
slowdown = 8
swim_skill = TRUE
wash_in = FALSE
wash_in = TRUE

/turf/open/water/pond
name = "pond"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
(+1 Endurance)"
species_traits = list(EYECOLOR,LIPS,STUBBLE,MUTCOLORS)
species_traits = list(EYECOLOR,LIPS,STUBBLE,MUTCOLORS)
inherent_traits = list(TRAIT_WATERBREATHING)
inherent_traits = list(TRAIT_WATERBREATHING, TRAIT_SEA_DRINKER)
possible_ages = ALL_AGES_LIST
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | RACE_SWAP | SLIME_EXTRACT
limbs_icon_m = 'icons/roguetown/mob/bodies/m/mt.dmi'
Expand Down
48 changes: 47 additions & 1 deletion code/modules/reagents/chemistry/reagents/other_reagents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
..()

/datum/reagent/water/gross
taste_description = "lead"
taste_description = "something vile"
color = "#98934bc6"

/datum/reagent/water/gross/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
Expand All @@ -93,6 +93,52 @@
M.adjustToxLoss(1)
M.add_nausea(12) //Over 8 units will cause puking

/datum/chemical_reaction/grosswaterboil //boiling water purifies it
name = "gross water purification"
id = /datum/reagent/water
results = list(/datum/reagent/water = 1)
required_reagents = list(/datum/reagent/water/gross = 1)
required_temp = 375

/datum/reagent/water/bathwater
taste_description = "bathwater"
color = "#c9e5eec6"

/datum/reagent/water/salty
taste_description = "salt"
color = "#417ac5c6"

/datum/reagent/water/salty/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
if(method == INGEST) // Make sure you DRANK the salty water before losing hydration
..()

/datum/reagent/water/salty/on_mob_life(mob/living/carbon/M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(!HAS_TRAIT(H, TRAIT_NOHUNGER)&&!HAS_TRAIT(H, TRAIT_SEA_DRINKER))
H.adjust_hydration(-6) //saltwater dehydrates more than it hydrates
else if(HAS_TRAIT(H, TRAIT_SEA_DRINKER))
H.adjust_hydration(hydration) //saltwater dehydrates more than it hydrates
..()

/datum/chemical_reaction/saltwaterify
name = "saltwater"
id = /datum/reagent/water/salty
results = list(/datum/reagent/water/salty = 2)
required_reagents = list(/datum/reagent/water/salty = 1, /datum/reagent/water = 1)

/datum/chemical_reaction/saltwaterboil //boiling water purifies it
name = "saltwater purification"
id = /datum/reagent/water
results = list(/datum/reagent/water = 1)
required_reagents = list(/datum/reagent/water/salty = 1)
required_temp = 375

/datum/chemical_reaction/saltwaterboil/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
new /obj/item/reagent_containers/powder/salt(location)
new /obj/item/reagent_containers/powder/salt(location)
new /obj/item/reagent_containers/powder/salt(location)

/*
* Water reaction to turf
Expand Down
Loading