From 8a5bbd61830b60b92163e1247d33b6dd1e2c65aa Mon Sep 17 00:00:00 2001 From: Casey Date: Thu, 25 Aug 2022 18:59:46 -0400 Subject: [PATCH 1/4] Changes "Water Breather" to "Aquatic" and reworks the trait to make it more vore-centric --- code/modules/mob/_modifiers/modifiers_vr.dm | 33 +++++++ .../station/station_special_abilities_vr.dm | 91 +++++++++++++++++++ .../species/station/station_special_vr.dm | 4 + .../human/species/station/station_vr.dm | 8 +- .../species/station/traits_vr/positive.dm | 13 ++- .../species/station/xenochimera_trait_vr.dm | 17 +++- vorestation.dme | 1 + 7 files changed, 158 insertions(+), 9 deletions(-) create mode 100644 code/modules/mob/_modifiers/modifiers_vr.dm diff --git a/code/modules/mob/_modifiers/modifiers_vr.dm b/code/modules/mob/_modifiers/modifiers_vr.dm new file mode 100644 index 0000000000..a56bc5d2e0 --- /dev/null +++ b/code/modules/mob/_modifiers/modifiers_vr.dm @@ -0,0 +1,33 @@ +/datum/modifier/underwater_stealth + name = "underwater stealth" + desc = "You are currently underwater, rendering it more difficult to see you and enabling you to move quicker, thanks to your aquatic nature." + + on_created_text = "You sink under the water." + on_expired_text = "You come out from the water." + + stacks = MODIFIER_STACK_FORBID + + slowdown = -1.5 //A bit faster when actually submerged fully in water, as you're not waddling through it. + siemens_coefficient = 1.5 //You are, however, underwater. Getting shocked will hurt. + + outgoing_melee_damage_percent = 0.75 //You are swinging a sword under water...Good luck. + accuracy = -50 //You're underwater. Good luck shooting a gun. (Makes shots as if you were 3.33 tiles further.) + evasion = 30 //You're underwater and a bit harder to hit. + +/datum/modifier/underwater_stealth/on_applied() + holder.alpha = 50 + return + +/datum/modifier/underwater_stealth/on_expire() + holder.alpha = 255 + return + +/datum/modifier/underwater_stealth/tick() + if(holder.stat == DEAD) + expire(silent = TRUE) //If you're dead you float to the top. + if(istype(holder.loc, /turf/simulated/floor/water)) + var/turf/simulated/floor/water/water_floor = holder.loc + if(water_floor.depth < 1) //You're not in deep enough water anymore. + expire(silent = FALSE) + else + expire(silent = FALSE) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm index bce4336830..126491bdff 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm @@ -1065,3 +1065,94 @@ C.update_transform() //egg_contents -= src C.contents -= src +<<<<<<< HEAD +======= + +/mob/living/carbon/human/proc/water_stealth() + set name = "Dive under water / Resurface" + set desc = "Dive under water, allowing for you to be stealthy and move faster." + set category = "Abilities" + + if(last_special > world.time) + return + last_special = world.time + 50 //No spamming! + + if(has_modifier_of_type(/datum/modifier/underwater_stealth)) + to_chat(src, "You resurface!") + remove_modifiers_of_type(/datum/modifier/underwater_stealth) + return + + if(!isturf(loc)) //We have no turf. + to_chat(src, "There is no water for you to dive into!") + return + + if(istype(src.loc, /turf/simulated/floor/water)) + var/turf/simulated/floor/water/water_floor = src.loc + if(water_floor.depth >= 1) //Is it deep enough? + add_modifier(/datum/modifier/underwater_stealth) //No duration. It'll remove itself when they exit the water! + to_chat(src, "You dive into the water!") + visible_message("[src] dives into the water!") + else + to_chat(src, "The water here is not deep enough to dive into!") + return + + else + to_chat(src, "There is no water for you to dive into!") + return + +/mob/living/carbon/human/proc/underwater_devour() + set name = "Devour From Water" + set desc = "Grab something in the water with you and devour them with your selected stomach." + set category = "Abilities" + + if(last_special > world.time) + return + last_special = world.time + 50 //No spamming! + + if(stat == DEAD || paralysis || weakened || stunned) + to_chat(src, "You cannot do that while in your current state.") + return + + if(!(src.vore_selected)) + to_chat(src, "No selected belly found.") + return + + + if(!has_modifier_of_type(/datum/modifier/underwater_stealth)) + to_chat(src, "You must be underwater to do this!!") + return + + var/list/targets = list() //Shameless copy and paste. If it ain't broke don't fix it! + + for(var/turf/T in range(1, src)) + if(istype(T, /turf/simulated/floor/water)) + for(var/mob/living/L in T) + if(L == src) //no eating yourself. 1984. + continue + if(L.devourable) + targets += L + + if(!(targets.len)) + to_chat(src, "No eligible targets found.") + return + + var/mob/living/target = tgui_input_list(src, "Please select a target.", "Victim", targets) + + if(!target) + return + + to_chat(target, "Something begins to circle around you in the water!") //Dun dun... + var/starting_loc = target.loc + + if(do_after(src, 50)) + if(target.loc != starting_loc) + to_chat(target, "You got away from whatever that was...") + to_chat(src, "They got away.") + return + if(target.buckled) //how are you buckled in the water?! + target.buckled.unbuckle_mob() + target.visible_message("\The [target] suddenly disappears, being dragged into the water!",\ + "You are dragged below the water and feel yourself slipping directly into \the [src]'s [vore_selected]!") + to_chat(src, "You successfully drag \the [target] into the water, slipping them into your [vore_selected].") + target.forceMove(src.vore_selected) +>>>>>>> df05951dd6... Merge pull request #13573 from Cameron653/AQUATIC_LIFE diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index e736ee29f4..609093b8c6 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -25,12 +25,16 @@ inherent_verbs = list( /mob/living/carbon/human/proc/reconstitute_form, /mob/living/carbon/human/proc/sonar_ping, +<<<<<<< HEAD /mob/living/carbon/human/proc/tie_hair, /mob/living/proc/flying_toggle, /mob/living/proc/flying_vore_toggle, /mob/living/proc/start_wings_hovering, /mob/living/carbon/human/proc/lick_wounds) //Xenochimera get all the special verbs since they can't select traits. // CHOMPEdit: Lick Wounds Verb +======= + /mob/living/carbon/human/proc/tie_hair) +>>>>>>> df05951dd6... Merge pull request #13573 from Cameron653/AQUATIC_LIFE virus_immune = 1 // They practically ARE one. min_age = 18 diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm index f53ff7c588..6eea9bc061 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm @@ -85,7 +85,7 @@ name_language = LANGUAGE_SKRELLIAN color_mult = 1 assisted_langs = list(LANGUAGE_EAL, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX) - inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair, /mob/living/carbon/human/proc/water_stealth, /mob/living/carbon/human/proc/underwater_devour) min_age = 18 max_age = 110 @@ -113,6 +113,7 @@ appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR water_breather = TRUE + water_movement = -4 //Negates shallow. Halves deep. flesh_color = "#AFA59E" base_color = "#777777" @@ -311,7 +312,7 @@ deform = 'icons/mob/human_races/r_def_skrell_vr.dmi' color_mult = 1 min_age = 18 - inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair) + inherent_verbs = list(/mob/living/carbon/human/proc/tie_hair, /mob/living/carbon/human/proc/water_stealth, /mob/living/carbon/human/proc/underwater_devour) reagent_tag = null allergens = null assisted_langs = list(LANGUAGE_EAL, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX) @@ -320,6 +321,9 @@ wikilink="https://wiki.chompstation13.net/index.php?title=Skrell" genders = list(MALE, FEMALE, PLURAL, NEUTER) + water_breather = TRUE + water_movement = -4 //Negates shallow. Halves deep. + /datum/species/zaddat spawn_flags = SPECIES_CAN_JOIN min_age = 18 diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index be507a7c78..bea432f1ac 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -175,11 +175,16 @@ H.verbs |= /mob/living/carbon/human/proc/weave_item H.verbs |= /mob/living/carbon/human/proc/set_silk_color -/datum/trait/positive/water_breather - name = "Water Breather" - desc = "You can breathe under water." +/datum/trait/positive/aquatic + name = "Aquatic" + desc = "You can breathe under water and can traverse water more efficiently. Additionally, you can eat others in the water." cost = 1 - var_changes = list("water_breather" = 1) + var_changes = list("water_breather" = 1, "water_movement" = -4) //Negate shallow water. Half the speed in deep water. + +/datum/trait/positive/aquatic/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/carbon/human/proc/water_stealth + H.verbs |= /mob/living/carbon/human/proc/underwater_devour /datum/trait/positive/cocoon_tf name = "Cocoon Spinner" diff --git a/code/modules/mob/living/carbon/human/species/station/xenochimera_trait_vr.dm b/code/modules/mob/living/carbon/human/species/station/xenochimera_trait_vr.dm index 2f2adc4487..6c8baec241 100644 --- a/code/modules/mob/living/carbon/human/species/station/xenochimera_trait_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/xenochimera_trait_vr.dm @@ -54,15 +54,26 @@ category = 0 custom_only = FALSE -/datum/trait/positive/water_breather/xenochimera +/datum/trait/positive/aquatic/xenochimera sort = TRAIT_SORT_SPECIES allowed_species = list(SPECIES_XENOCHIMERA) - name = "Xenochimera: Water Breather" - desc = "You can breathe under water." + name = "Xenochimera: Aquatic" + desc = "You can breathe under water and can traverse water more efficiently. Additionally, you can eat others in the water." cost = 0 category = 0 + excludes = list(/datum/trait/positive/winged_flight/xenochimera) custom_only = FALSE +<<<<<<< HEAD +======= +/datum/trait/positive/winged_flight/xenochimera + name = "Xenochhimera: Winged Flight" + desc = "Allows you to fly by using your wings. Don't forget to bring them!" + cost = 0 + excludes = list(/datum/trait/positive/aquatic/xenochimera) + custom_only = FALSE + +>>>>>>> df05951dd6... Merge pull request #13573 from Cameron653/AQUATIC_LIFE /* // Commented out in lieu of finding a better solution. /datum/trait/neutral/coldadapt/xenochimera sort = TRAIT_SORT_SPECIES diff --git a/vorestation.dme b/vorestation.dme index 9ec4174195..2c28b140c9 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2858,6 +2858,7 @@ #include "code\modules\mob\_modifiers\medical.dm" #include "code\modules\mob\_modifiers\modifiers.dm" #include "code\modules\mob\_modifiers\modifiers_misc.dm" +#include "code\modules\mob\_modifiers\modifiers_vr.dm" #include "code\modules\mob\_modifiers\traits.dm" #include "code\modules\mob\_modifiers\traits_phobias.dm" #include "code\modules\mob\_modifiers\unholy.dm" From 43b526db71a9c1a47dfa807f87e41a74ed54fc48 Mon Sep 17 00:00:00 2001 From: Nadyr <41974248+Darlantanis@users.noreply.github.com> Date: Sun, 28 Aug 2022 19:20:17 -0400 Subject: [PATCH 2/4] powder that makes you say yes --- .../human/species/station/station_special_abilities_vr.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm index 126491bdff..1a7f06be8f 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm @@ -1065,8 +1065,6 @@ C.update_transform() //egg_contents -= src C.contents -= src -<<<<<<< HEAD -======= /mob/living/carbon/human/proc/water_stealth() set name = "Dive under water / Resurface" @@ -1155,4 +1153,3 @@ "You are dragged below the water and feel yourself slipping directly into \the [src]'s [vore_selected]!") to_chat(src, "You successfully drag \the [target] into the water, slipping them into your [vore_selected].") target.forceMove(src.vore_selected) ->>>>>>> df05951dd6... Merge pull request #13573 from Cameron653/AQUATIC_LIFE From 0d550ed47c7b8cd400271753d18340f635efe642 Mon Sep 17 00:00:00 2001 From: Nadyr <41974248+Darlantanis@users.noreply.github.com> Date: Sun, 28 Aug 2022 19:21:18 -0400 Subject: [PATCH 3/4] powder that makes you say yes --- .../carbon/human/species/station/station_special_vr.dm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index 609093b8c6..4e49351b96 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -25,16 +25,9 @@ inherent_verbs = list( /mob/living/carbon/human/proc/reconstitute_form, /mob/living/carbon/human/proc/sonar_ping, -<<<<<<< HEAD /mob/living/carbon/human/proc/tie_hair, - /mob/living/proc/flying_toggle, - /mob/living/proc/flying_vore_toggle, - /mob/living/proc/start_wings_hovering, /mob/living/carbon/human/proc/lick_wounds) //Xenochimera get all the special verbs since they can't select traits. // CHOMPEdit: Lick Wounds Verb -======= - /mob/living/carbon/human/proc/tie_hair) ->>>>>>> df05951dd6... Merge pull request #13573 from Cameron653/AQUATIC_LIFE virus_immune = 1 // They practically ARE one. min_age = 18 From aa34e962467952a7bc6677b2ddf6581d373d859f Mon Sep 17 00:00:00 2001 From: Nadyr <41974248+Darlantanis@users.noreply.github.com> Date: Sun, 28 Aug 2022 19:22:10 -0400 Subject: [PATCH 4/4] powder that makes you say yes --- .../carbon/human/species/station/xenochimera_trait_vr.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/xenochimera_trait_vr.dm b/code/modules/mob/living/carbon/human/species/station/xenochimera_trait_vr.dm index 6c8baec241..663e6eec76 100644 --- a/code/modules/mob/living/carbon/human/species/station/xenochimera_trait_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/xenochimera_trait_vr.dm @@ -64,8 +64,6 @@ excludes = list(/datum/trait/positive/winged_flight/xenochimera) custom_only = FALSE -<<<<<<< HEAD -======= /datum/trait/positive/winged_flight/xenochimera name = "Xenochhimera: Winged Flight" desc = "Allows you to fly by using your wings. Don't forget to bring them!" @@ -73,7 +71,6 @@ excludes = list(/datum/trait/positive/aquatic/xenochimera) custom_only = FALSE ->>>>>>> df05951dd6... Merge pull request #13573 from Cameron653/AQUATIC_LIFE /* // Commented out in lieu of finding a better solution. /datum/trait/neutral/coldadapt/xenochimera sort = TRAIT_SORT_SPECIES