From 840f39cb7ec4c1fa3e225fae7c933097fe8eb91f Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Mon, 15 Jan 2018 21:34:08 -0500 Subject: [PATCH] Cleanup implementation of some traits Better implemented this way rather than with snowflake species vars (which are getting wiped on synths, so synths end up not being able to use these sometimes) --- code/modules/mob/living/carbon/human/human.dm | 14 +--------- .../carbon/human/species/station/blank_vr.dm | 5 +--- .../human/species/station/prometheans_vr.dm | 2 +- .../station/station_special_abilities_vr.dm | 2 +- .../species/station/station_special_vr.dm | 7 ++--- .../human/species/station/station_vr.dm | 5 ++-- .../species/station/traits_vr/neutral.dm | 26 ++++++++++++------- .../species/station/traits_vr/positive.dm | 6 ++++- 8 files changed, 31 insertions(+), 36 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 68ef935806..69c6b8ad6f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1173,19 +1173,7 @@ vessel.remove_reagent("blood", vessel.total_volume - species.blood_volume) vessel.maximum_volume = species.blood_volume fixblood() - species.update_attack_types() //VOREStation Edit Start Required for any trait that updates unarmed_types in setup. - if(species.gets_food_nutrition != 1) //Bloodsucker trait. Tacking this on here. - verbs |= /mob/living/carbon/human/proc/bloodsuck - if(species.can_drain_prey) - verbs |= /mob/living/carbon/human/proc/succubus_drain //Succubus drain trait. - verbs |= /mob/living/carbon/human/proc/succubus_drain_finialize - verbs |= /mob/living/carbon/human/proc/succubus_drain_lethal - if(species.hard_vore_enabled) //Hardvore verb. - verbs |= /mob/living/carbon/human/proc/shred_limb - if(species.can_fly) - verbs |= /mob/living/proc/flying_toggle //Flying wings! - verbs |= /mob/living/proc/start_wings_hovering - //VOREStation Edit End + species.update_attack_types() //VOREStation Edit - Required for any trait that updates unarmed_types in setup. // Rebuild the HUD. If they aren't logged in then login() should reinstantiate it for them. if(client && client.screen) diff --git a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm index bc2cf2d1a4..cfa512be54 100644 --- a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm @@ -1,11 +1,8 @@ /datum/species //var/vore_numbing = 0 - var/gets_food_nutrition = 1 // If this is set to 0, the person can't get nutrrition from food. - var/can_drain_prey = 0 //Determines if the person can use the succubus drain or not. - var/hard_vore_enabled = 0 //Determines if the person has the hardvore verb or not. + var/gets_food_nutrition = 1 // If this is set to 0, the person can't get nutrition from food. var/metabolism = 0.0015 - var/can_fly = 0 //Determines if the species can fly if they have wings. var/lightweight = 0 //Oof! Nonhelpful bump stumbles. var/trashcan = 0 //It's always sunny in the wrestling ring. diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm index 3816a1721e..8baa490800 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm @@ -18,7 +18,7 @@ /mob/living/carbon/human/proc/regenerate, /mob/living/proc/set_size, /mob/living/carbon/human/proc/succubus_drain, - /mob/living/carbon/human/proc/succubus_drain_finialize, + /mob/living/carbon/human/proc/succubus_drain_finalize, /mob/living/carbon/human/proc/succubus_drain_lethal, /mob/living/carbon/human/proc/slime_feed ) 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 ec0a819799..a56946030d 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 @@ -672,7 +672,7 @@ -/mob/living/carbon/human/proc/succubus_drain_finialize() +/mob/living/carbon/human/proc/succubus_drain_finalize() set name = "Drain/Feed Finalization" set desc = "Toggle to allow for draining to be prolonged. Turn this on to make it so prey will be knocked out/die while being drained, or you will feed yourself to the prey's selected stomach if you're feeding them. Can be toggled at any time." set category = "Abilities" 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 2aa0dc0942..f5cb361465 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 @@ -14,7 +14,6 @@ slowdown = -0.2 //scuttly, but not as scuttly as a tajara or a teshari. brute_mod = 0.8 //About as tanky to brute as a Unathi. They'll probably snap and go feral when hurt though. burn_mod = 1.15 //As vulnerable to burn as a Tajara. - can_fly = 1 //They have wings by default. var/base_species = "Xenochimera" num_alternate_languages = 2 @@ -27,10 +26,12 @@ /mob/living/carbon/human/proc/sonar_ping, /mob/living/carbon/human/proc/purge_impurities, /mob/living/carbon/human/proc/succubus_drain, - /mob/living/carbon/human/proc/succubus_drain_finialize, + /mob/living/carbon/human/proc/succubus_drain_finalize, /mob/living/carbon/human/proc/succubus_drain_lethal, /mob/living/carbon/human/proc/bloodsuck, - /mob/living/carbon/human/proc/shred_limb) //Xenochimera get all the special verbs since they can't select traits. + /mob/living/carbon/human/proc/shred_limb, + /mob/living/proc/flying_toggle, + /mob/living/proc/start_wings_hovering) //Xenochimera get all the special verbs since they can't select traits. min_age = 18 max_age = 80 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 ca459dfd4c..e10018ce94 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 @@ -120,8 +120,7 @@ secondary_langs = list(LANGUAGE_BIRDSONG) name_language = LANGUAGE_BIRDSONG color_mult = 1 - can_fly = 1 - inherent_verbs = list(/mob/living/carbon/human/proc/shred_limb) + inherent_verbs = list(/mob/living/carbon/human/proc/shred_limb,/mob/living/proc/flying_toggle,/mob/living/proc/start_wings_hovering) min_age = 18 max_age = 80 @@ -376,7 +375,7 @@ datum/species/harpy secondary_langs = list(LANGUAGE_BIRDSONG) name_language = null color_mult = 1 - can_fly = 1 + inherent_verbs = list(/mob/living/proc/flying_toggle,/mob/living/proc/start_wings_hovering) min_age = 18 max_age = 80 diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 61b70505f9..6eb0d9b6a7 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -18,13 +18,7 @@ cost = 0 var_changes = list("metabolic_rate" = 2, "hunger_factor" = 0.5, "metabolism" = 0.010) //Big boy level excludes = list(/datum/trait/metabolism_up, /datum/trait/metabolism_down) -/* -/datum/trait/vore_numbing - name = "Prey Numbing" - desc = "Adds a 'Digest (Numbing)' belly mode, to douse prey in numbing enzymes during digestion." - cost = 0 - var_changes = list("vore_numbing" = TRUE) -*/ + /datum/trait/cold_discomfort name = "Hot-Blooded" desc = "You are too hot at the standard 20C. 18C is more suitable. Rolling down your jumpsuit or being unclothed helps." @@ -71,17 +65,29 @@ cost = 0 var_changes = list("gets_food_nutrition" = 0) //The verb is given in human.dm -/datum/trait/succubus_drain //Completely RP only trait. +/datum/trait/bloodsucker/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/carbon/human/proc/bloodsuck + +/datum/trait/succubus_drain name = "Succubus Drain" desc = "Makes you able to gain nutrition from draining prey in your grasp." cost = 0 - var_changes = list("can_drain_prey" = 1) //The verb is given in human.dm + +/datum/trait/succubus_drain/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/carbon/human/proc/succubus_drain + H.verbs |= /mob/living/carbon/human/proc/succubus_drain_finalize + H.verbs |= /mob/living/carbon/human/proc/succubus_drain_lethal /datum/trait/hard_vore name = "Brutal Predation" desc = "Allows you to tear off limbs & tear out internal organs." cost = 0 //I would make this cost a point, since it has some in game value, but there are easier, less damaging ways to perform the same functions. - var_changes = list("hard_vore_enabled" = 1) //The verb is given in human.dm + +/datum/trait/hard_vore/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/carbon/human/proc/shred_limb /datum/trait/trashcan name = "Trash Can" 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 173b80f021..3d29aad827 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 @@ -124,7 +124,11 @@ name = "Winged Flight" desc = "Allows you to fly by using your wings." cost = 2 //Some in game value. - var_changes = list("can_fly" = 1) + +/datum/trait/winged_flight/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/proc/flying_toggle + H.verbs |= /mob/living/proc/start_wings_hovering /datum/trait/hardfeet name = "Hard Feet"