diff --git a/code/__DEFINES/~darkpack/auras.dm b/code/__DEFINES/~darkpack/auras.dm index 36089be022f3..663c4938eafb 100644 --- a/code/__DEFINES/~darkpack/auras.dm +++ b/code/__DEFINES/~darkpack/auras.dm @@ -15,7 +15,7 @@ #define AURA_HAPPY COLOR_VIVID_RED // Vermillion #define AURA_HATEFUL COLOR_BLACK // Black #define AURA_IDEALISTIC COLOR_YELLOW // Yellow -#define AURA_INNOCENT COLOR_WHITE // White +#define AURA_INNOCENT COLOR_OFF_WHITE // White #define AURA_LOVESTRUCK COLOR_BLUE // Blue #define AURA_OBSESSED COLOR_GREEN // Green #define AURA_SAD COLOR_SILVER // Silver diff --git a/code/__DEFINES/~darkpack/splats.dm b/code/__DEFINES/~darkpack/splats.dm index 1106992bae2b..694818303b91 100644 --- a/code/__DEFINES/~darkpack/splats.dm +++ b/code/__DEFINES/~darkpack/splats.dm @@ -9,6 +9,7 @@ //#define SPLAT_FERA "splat_fera" #define SPLAT_GAROU "splat_garou" #define SPLAT_CORAX "splat_corax" // DARKPACK TODO - CORAX +#define SPLAT_SHIFTERS list(SPLAT_GAROU, SPLAT_CORAX) #define SPLAT_ALL list(SPLAT_NONE, SPLAT_KINDRED, SPLAT_GHOUL, SPLAT_KINFOLK, SPLAT_GAROU) diff --git a/code/__DEFINES/~darkpack/traits/declarations.dm b/code/__DEFINES/~darkpack/traits/declarations.dm index bd8236c9c0e1..0ee1c1e8ff39 100644 --- a/code/__DEFINES/~darkpack/traits/declarations.dm +++ b/code/__DEFINES/~darkpack/traits/declarations.dm @@ -42,8 +42,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_CHARMER "charmer" // Mutates the apperance of auras -#define TRAIT_COLD_AURA "cold_aura" -#define TRAIT_WARM_AURA "warm_aura" +#define TRAIT_PALE_AURA "pale_aura" +#define TRAIT_DECEPTIVE_AURA "deceptive_aura" #define TRAIT_FRENETIC_AURA "frenetic_aura" #define TRAIT_BLUSH_OF_HEALTH "blush_of_health" @@ -88,8 +88,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_VTM_MORALITY "vtm_morality" /// Uses Vampire: The Masquerade Clans/Bloodlines #define TRAIT_VTM_CLANS "vtm_clans" -/// This species drinks blood -#define TRAIT_BLOOD_DRINKER "blood_drinker" /// Does not biologically age, and so has a disconnected biological and chronological age #define TRAIT_UNAGING "unaging" // Does the mob have ghostsight? @@ -149,11 +147,21 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_SURGERY_INAPPLICABLE "surgery_inapplicable" // BELOW ARE ALL MERITS/FLAWS #define TRAIT_ILLEGAL_IDENTITY "illegal_identity" // GOVERNMENT +#define TRAIT_ANIMAL_MUSK "animal_musk" #define TRAIT_PERMAFANGS "permafangs" #define TRAIT_ORGANOVORE "organovore" #define TRAIT_SANGUINE_INCONGRUITY "sanguine_incongruity" #define TRAIT_MONSTROUS "monstrous" #define TRAIT_HORRIFIC_APPEARANCE "horrific_appearance" + #define TRAIT_STILLNESS_OF_DEATH "stillness_of_death" +#define TRAIT_PIERCED_VEIL "pierced_veil" +#define TRAIT_WEAK_WILLED "weak_willed" +#define TRAIT_TIME_SENSE "time_sense" +#define TRAIT_METAMORPH "metamorph" +#define TRAIT_MERIT_UNTAMABLE "merit_untamable" +#define TRAIT_FAIR_GLABRO "fair_glabro" + + // END TRAIT DEFINES diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 4ffa2b3abda0..12005102ce5b 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -665,7 +665,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SPACE_ANT_IMMUNITY" = TRAIT_SPACE_ANT_IMMUNITY, "TRAIT_BRAIN_TRAUMA_IMMUNITY" = TRAIT_BRAIN_TRAUMA_IMMUNITY, "TRAIT_NECROPOLIS_WORSHIP" = TRAIT_NECROPOLIS_WORSHIP, - "TRAIT_BLOOD_DRINKER" = TRAIT_BLOOD_DRINKER, // DARKPACK EDIT ADD + "TRAIT_ANIMAL_MUSK" = TRAIT_ANIMAL_MUSK, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_BLOODY_LOVER" = TRAIT_BLOODY_LOVER, // DARKPACK EDIT ADD "TRAIT_BLOODY_SUCKER" = TRAIT_BLOODY_SUCKER, // DARKPACK EDIT ADD "TRAIT_BLUSH_OF_HEALTH" = TRAIT_BLUSH_OF_HEALTH, // DARKPACK EDIT ADD @@ -673,13 +673,13 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_CAN_ENTER_TORPOR" = TRAIT_CAN_ENTER_TORPOR, // DARKPACK EDIT ADD "TRAIT_CHARMER" = TRAIT_CHARMER, // DARKPACK EDIT ADD "TRAIT_COFFIN_THERAPY" = TRAIT_COFFIN_THERAPY, // DARKPACK EDIT ADD - "TRAIT_COLD_AURA" = TRAIT_COLD_AURA, // DARKPACK EDIT ADD + "TRAIT_PALE_AURA" = TRAIT_PALE_AURA, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_CONSENSUAL_FEEDING_ONLY" = TRAIT_CONSENSUAL_FEEDING_ONLY, // DARKPACK EDIT ADD "TRAIT_DEFICIENT_VITAE" = TRAIT_DEFICIENT_VITAE, // DARKPACK EDIT ADD "TRAIT_DIABLERIE" = TRAIT_DIABLERIE, // DARKPACK EDIT ADD "TRAIT_DISCO_DANCER" = TRAIT_DISCO_DANCER, // DARKPACK EDIT ADD "TRAIT_ENHANCED_MELEE_DODGE" = TRAIT_ENHANCED_MELEE_DODGE, // DARKPACK EDIT ADD - "TRAIT_FAKE_SOULLESS" = TRAIT_FAKE_SOULLESS, // DARKPACK EDIT ADD + "TRAIT_FAIR_GLABRO" = TRAIT_FAIR_GLABRO, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_FEEDING_RESTRICTION" = TRAIT_FEEDING_RESTRICTION, // DARKPACK EDIT ADD "TRAIT_FERA_FUR" = TRAIT_FERA_FUR, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_FORCED_EMOTION" = TRAIT_FORCED_EMOTION, // DARKPACK EDIT ADD - Melpominee @@ -700,6 +700,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_LOUD_HOWLER" = TRAIT_LOUD_HOWLER, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_MASQUERADE_VIOLATING_EYES" = TRAIT_MASQUERADE_VIOLATING_EYES, // DARKPACK EDIT ADD "TRAIT_MASQUERADE_VIOLATING_FACE" = TRAIT_MASQUERADE_VIOLATING_FACE, // DARKPACK EDIT ADD + "TRAIT_MERIT_UNTAMABLE" = TRAIT_MERIT_UNTAMABLE, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_NEEDS_BLOOD" = TRAIT_NEEDS_BLOOD, //DARKPACK EDIT ADD - Hunger and Frenzy "TRAIT_NO_EYE_CONTACT" = TRAIT_NO_EYE_CONTACT, // DARKPACK EDIT ADD "TRAIT_ORGANOVORE" = TRAIT_ORGANOVORE, // DARKPACK EDIT ADD - Nagaraja @@ -726,6 +727,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_STAKE_IMMUNE" = TRAIT_STAKE_IMMUNE, // DARKPACK EDIT ADD "TRAIT_STAKE_RESISTANT" = TRAIT_STAKE_RESISTANT, // DARKPACK EDIT ADD "TRAIT_TIMEWARPER" = TRAIT_TIMEWARPER, // DARKPACK EDIT ADD + "TRAIT_TIME_SENSE" = TRAIT_TIME_SENSE, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_TORPOR" = TRAIT_TORPOR, // DARKPACK EDIT ADD "TRAIT_TOUGH_FLESH" = TRAIT_TOUGH_FLESH, // DARKPACK EDIT ADD "TRAIT_TRANSFORM_UPDATES_ICON" = TRAIT_TRANSFORM_UPDATES_ICON, // DARKPACK EDIT ADD - WEREWOLF @@ -737,13 +739,16 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_VITAE_ADDICTION" = TRAIT_VITAE_ADDICTION, // DARKPACK EDIT ADD "TRAIT_VTM_CLANS" = TRAIT_VTM_CLANS, // DARKPACK EDIT ADD "TRAIT_VTM_MORALITY" = TRAIT_VTM_MORALITY, // DARKPACK EDIT ADD - "TRAIT_WARM_AURA" = TRAIT_WARM_AURA, // DARKPACK EDIT ADD + "TRAIT_DECEPTIVE_AURA" = TRAIT_DECEPTIVE_AURA, // DARKPACK EDIT ADD "TRAIT_WEAK_TO_DOMINATE" = TRAIT_WEAK_TO_DOMINATE, // DARKPACK EDIT ADD - POWERS - (Dominate) + "TRAIT_WEAK_WILLED" = TRAIT_WEAK_WILLED, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_WTA_GAROU_AUSPICE" = TRAIT_WTA_GAROU_AUSPICE, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_WTA_GAROU_BREED" = TRAIT_WTA_GAROU_BREED, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_WTA_GAROU_TRIBE" = TRAIT_WTA_GAROU_TRIBE, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_WYRMTAINTED" = TRAIT_WYRMTAINTED, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_WYRMTAINTED_SPRITE" = TRAIT_WYRMTAINTED_SPRITE, // DARKPACK EDIT ADD - WEREWOLF + "TRAIT_METAMORPH" = TRAIT_METAMORPH, // DARKPACK EDIT ADD - MERITS/FLAWS + "TRAIT_PIERCED_VEIL" = TRAIT_PIERCED_VEIL, // DARKPACK EDIT ADD - MERITS/FLAWS ), /mob/living/carbon = list( "TRAIT_BRAINLESS_CARBON" = TRAIT_BRAINLESS_CARBON, diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index d46153ce8df3..a1ecf1a54f8b 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -356,7 +356,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_LEFT_EYE_SCAR" = TRAIT_LEFT_EYE_SCAR, "TRAIT_RIGHT_EYE_SCAR" = TRAIT_RIGHT_EYE_SCAR, "TRAIT_CARPOTOXIN_IMMUNE" = TRAIT_CARPOTOXIN_IMMUNE, - "TRAIT_BLOOD_DRINKER" = TRAIT_BLOOD_DRINKER, // DARKPACK EDIT ADD + "TRAIT_ANIMAL_MUSK" = TRAIT_ANIMAL_MUSK, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_BLOODY_LOVER" = TRAIT_BLOODY_LOVER, // DARKPACK EDIT ADD "TRAIT_BLOODY_SUCKER" = TRAIT_BLOODY_SUCKER, // DARKPACK EDIT ADD "TRAIT_BLUSH_OF_HEALTH" = TRAIT_BLUSH_OF_HEALTH, // DARKPACK EDIT ADD @@ -364,13 +364,13 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_CAN_ENTER_TORPOR" = TRAIT_CAN_ENTER_TORPOR, // DARKPACK EDIT ADD "TRAIT_CHARMER" = TRAIT_CHARMER, // DARKPACK EDIT ADD "TRAIT_COFFIN_THERAPY" = TRAIT_COFFIN_THERAPY, // DARKPACK EDIT ADD - "TRAIT_COLD_AURA" = TRAIT_COLD_AURA, // DARKPACK EDIT ADD + "TRAIT_PALE_AURA" = TRAIT_PALE_AURA, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_CONSENSUAL_FEEDING_ONLY" = TRAIT_CONSENSUAL_FEEDING_ONLY, // DARKPACK EDIT ADD "TRAIT_DEFICIENT_VITAE" = TRAIT_DEFICIENT_VITAE, // DARKPACK EDIT ADD "TRAIT_DIABLERIE" = TRAIT_DIABLERIE, // DARKPACK EDIT ADD "TRAIT_DISCO_DANCER" = TRAIT_DISCO_DANCER, // DARKPACK EDIT ADD "TRAIT_ENHANCED_MELEE_DODGE" = TRAIT_ENHANCED_MELEE_DODGE, // DARKPACK EDIT ADD - "TRAIT_FAKE_SOULLESS" = TRAIT_FAKE_SOULLESS, // DARKPACK EDIT ADD + "TRAIT_FAIR_GLABRO" = TRAIT_FAIR_GLABRO, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_FEEDING_RESTRICTION" = TRAIT_FEEDING_RESTRICTION, // DARKPACK EDIT ADD "TRAIT_FERA_FUR" = TRAIT_FERA_FUR, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_FRENETIC_AURA" = TRAIT_FRENETIC_AURA, // DARKPACK EDIT ADD @@ -390,6 +390,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_LOUD_HOWLER" = TRAIT_LOUD_HOWLER, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_MASQUERADE_VIOLATING_EYES" = TRAIT_MASQUERADE_VIOLATING_EYES, // DARKPACK EDIT ADD "TRAIT_MASQUERADE_VIOLATING_FACE" = TRAIT_MASQUERADE_VIOLATING_FACE, // DARKPACK EDIT ADD + "TRAIT_MERIT_UNTAMABLE" = TRAIT_MERIT_UNTAMABLE, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_NEEDS_BLOOD" = TRAIT_NEEDS_BLOOD, //DARKPACK EDIT ADD - Hunger and Frenzy "TRAIT_NON_INT" = TRAIT_NON_INT, // DARKPACK EDIT ADD "TRAIT_NO_EYE_CONTACT" = TRAIT_NO_EYE_CONTACT, // DARKPACK EDIT ADD @@ -398,6 +399,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_PAINFUL_VAMPIRE_KISS" = TRAIT_PAINFUL_VAMPIRE_KISS, // DARKPACK EDIT ADD "TRAIT_PASSDOOR" = TRAIT_PASSDOOR, // DARKPACK EDIT ADD "TRAIT_PASS_THROUGH_WALLS" = TRAIT_PASS_THROUGH_WALLS, // DARKPACK EDIT ADD + "TRAIT_PERMAFANGS" = TRAIT_PERMAFANGS, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_RAZOR_CLAWS" = TRAIT_RAZOR_CLAWS, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_REJECTED_BY_TECHNOLOGY" = TRAIT_REJECTED_BY_TECHNOLOGY, // DARKPACK EDIT ADD "TRAIT_REPELLED_BY_HOLINESS" = TRAIT_REPELLED_BY_HOLINESS, // DARKPACK EDIT ADD @@ -410,6 +412,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_STAKE_IMMUNE" = TRAIT_STAKE_IMMUNE, // DARKPACK EDIT ADD "TRAIT_STAKE_RESISTANT" = TRAIT_STAKE_RESISTANT, // DARKPACK EDIT ADD "TRAIT_TIMEWARPER" = TRAIT_TIMEWARPER, // DARKPACK EDIT ADD + "TRAIT_TIME_SENSE" = TRAIT_TIME_SENSE, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_TORPOR" = TRAIT_TORPOR, // DARKPACK EDIT ADD "TRAIT_TOUGH_FLESH" = TRAIT_TOUGH_FLESH, // DARKPACK EDIT ADD "TRAIT_TRANSFORM_UPDATES_ICON" = TRAIT_TRANSFORM_UPDATES_ICON, // DARKPACK EDIT ADD - WEREWOLF @@ -420,13 +423,16 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_VITAE_ADDICTION" = TRAIT_VITAE_ADDICTION, // DARKPACK EDIT ADD "TRAIT_VTM_CLANS" = TRAIT_VTM_CLANS, // DARKPACK EDIT ADD "TRAIT_VTM_MORALITY" = TRAIT_VTM_MORALITY, // DARKPACK EDIT ADD - "TRAIT_WARM_AURA" = TRAIT_WARM_AURA, // DARKPACK EDIT ADD + "TRAIT_DECEPTIVE_AURA" = TRAIT_DECEPTIVE_AURA, // DARKPACK EDIT ADD "TRAIT_WEAK_TO_DOMINATE" = TRAIT_WEAK_TO_DOMINATE, // DARKPACK EDIT ADD - POWERS - (Dominate) + "TRAIT_WEAK_WILLED" = TRAIT_WEAK_WILLED, // DARKPACK EDIT ADD - MERITS/FLAWS "TRAIT_WTA_GAROU_AUSPICE" = TRAIT_WTA_GAROU_AUSPICE, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_WTA_GAROU_BREED" = TRAIT_WTA_GAROU_BREED, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_WTA_GAROU_TRIBE" = TRAIT_WTA_GAROU_TRIBE, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_WYRMTAINTED" = TRAIT_WYRMTAINTED, // DARKPACK EDIT ADD - WEREWOLF "TRAIT_WYRMTAINTED_SPRITE" = TRAIT_WYRMTAINTED_SPRITE, // DARKPACK EDIT ADD - WEREWOLF + "TRAIT_METAMORPH" = TRAIT_METAMORPH, // DARKPACK EDIT ADD - MERITS/FLAWS + "TRAIT_PIERCED_VEIL" = TRAIT_PIERCED_VEIL, // DARKPACK EDIT ADD - MERITS/FLAWS ), /obj/item = list( "TRAIT_APC_SHOCKING" = TRAIT_APC_SHOCKING, diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 63effdc09f57..8b9b85cd7fc0 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -26,6 +26,7 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list( list(/datum/quirk/settler, /datum/quirk/freerunning), list(/datum/quirk/numb, /datum/quirk/selfaware), list(/datum/quirk/empath, /datum/quirk/evil), + list(/datum/quirk/darkpack/weak_willed, /datum/quirk/darkpack/untamable), // DARKPACK EDIT ADD - MERITS/FLAWS )) GLOBAL_LIST_INIT(quirk_string_blacklist, generate_quirk_string_blacklist()) diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index 7de2877e519f..081e4682178f 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -39,9 +39,10 @@ SUBSYSTEM_DEF(statpanels) "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]", "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss", world.timezone)]", "Round Time: [ROUND_TIME()]", - "Local City Time: [SSticker.round_start_timeofday ? "[station_time_timestamp("hh:mm MMM")] [CURRENT_STATION_YEAR]" : "The round hasn't started yet!"]", + // "Station Time: [station_time_timestamp()]", // DARKPACK EDIT REMOVAL - MERITS/FLAWS - (Time sense) "Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)", - "---", // DARKPACK EDIT ADD + "\n", // DARKPACK EDIT ADD + "Canon: [GLOB.canon_event ? "Yes" : "No"]", // DARKPACK EDIT ADD "Masquerade: [SSmasquerade.get_description()]", // DARKPACK EDIT ADD ) diff --git a/code/datums/quirks/negative_quirks/scarred_eye.dm b/code/datums/quirks/negative_quirks/scarred_eye.dm index 3bead4bb248b..e7920e767c22 100644 --- a/code/datums/quirks/negative_quirks/scarred_eye.dm +++ b/code/datums/quirks/negative_quirks/scarred_eye.dm @@ -1,5 +1,5 @@ /datum/quirk/item_quirk/scarred_eye - name = "Scarred Eye" + name = "One Eye" // DARKPACK EDIT CHANGE - MERITS/FLAWS desc = "An accident in your past has cost you one of your eyes, but you got a cool eyepatch. Yarr!" icon = FA_ICON_EYE_SLASH value = -2 @@ -9,6 +9,7 @@ hardcore_value = 2 quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE mail_goodies = list(/obj/item/reagent_containers/cup/glass/bottle/rum, /obj/item/clothing/mask/bandana/red) + darkpack_allowed = TRUE // DARKPACK EDIT ADD - MERITS/FLAWS /datum/quirk_constant_data/eye_scarring associated_typepath = /datum/quirk/item_quirk/scarred_eye diff --git a/code/modules/client/preferences/scarred_eye.dm b/code/modules/client/preferences/scarred_eye.dm index 6cb0286fe86e..5905a13e2bec 100644 --- a/code/modules/client/preferences/scarred_eye.dm +++ b/code/modules/client/preferences/scarred_eye.dm @@ -14,7 +14,7 @@ if (!.) return FALSE - return "Scarred Eye" in preferences.all_quirks + return /datum/quirk/item_quirk/scarred_eye::name in preferences.all_quirks // DARKPACK EDIT CHANGE /datum/preference/choiced/scarred_eye/apply_to_human(mob/living/carbon/human/target, value) return diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index e08d49af9ed8..ac04ac4ff886 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -184,12 +184,10 @@ var/mob/living/carbon/human/husrc = src // gross istypesrc but easier than refactoring even further for now if(husrc.skin_tone == "albino") apparent_blood_volume -= (BLOOD_VOLUME_NORMAL * 0.25) // knocks you down a few pegs - if(HAS_TRAIT(user, TRAIT_COLD_AURA)) - apparent_blood_volume -= (BLOOD_VOLUME_NORMAL * 0.25) - if(HAS_TRAIT(user, TRAIT_WARM_AURA)) - apparent_blood_volume += (BLOOD_VOLUME_NORMAL * 0.25) + // DARKPACK EDIT ADD START if(HAS_TRAIT(user, TRAIT_BLUSH_OF_HEALTH)) apparent_blood_volume += (BLOOD_VOLUME_NORMAL * 0.50) + // DAKRPACK EDIT ADD END switch(apparent_blood_volume) if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) . += span_warning("[t_He] [t_has] pale skin.") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a423c9eb0877..c11ff10f6310 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -924,7 +924,11 @@ /// Adds this list to the output to the stat browser /mob/proc/get_status_tab_items() - . = list("") //we want to offset unique stuff from standard stuff + // DARKPACK EDIT CHANGE START - MERITS/FLAWS - (Time sense) + . = list() + . += get_time_status() + . += "" //we want to offset unique stuff from standard stuff + // DARKPACK EDIT CHANGE END SEND_SIGNAL(src, COMSIG_MOB_GET_STATUS_TAB_ITEMS, .) return . diff --git a/modular_darkpack/master_files/code/modules/mob/living/carbon/examine.dm b/modular_darkpack/master_files/code/modules/mob/living/carbon/examine.dm index ee9e001d6988..646fba113a5b 100644 --- a/modular_darkpack/master_files/code/modules/mob/living/carbon/examine.dm +++ b/modular_darkpack/master_files/code/modules/mob/living/carbon/examine.dm @@ -54,6 +54,9 @@ if(HAS_TRAIT(src, TRAIT_SERPENTIS_SKIN) && !(HIDEJUMPSUIT)) // 'hidden by modest clothing' . += span_danger("[p_They()] [p_are()] covered in... scales!?
") + if(HAS_TRAIT(src, TRAIT_ANIMAL_MUSK)) + . += span_warning("[p_they(TRUE)] smell[p_s()] weirdly animal like...
") + if(!(obscured_slots & HIDEFACE)) switch(st_get_stat(STAT_APPEARANCE)) if(0) diff --git a/modular_darkpack/modules/merits_flaws/code/_darkpack_quirk.dm b/modular_darkpack/modules/merits_flaws/code/_darkpack_quirk.dm index 1a4bca060dcf..b64b641edb48 100644 --- a/modular_darkpack/modules/merits_flaws/code/_darkpack_quirk.dm +++ b/modular_darkpack/modules/merits_flaws/code/_darkpack_quirk.dm @@ -26,6 +26,8 @@ if(splat.id in allowed_splats) has_allowed_splat = TRUE break + if(!new_holder.splats && (SPLAT_NONE in allowed_splats)) + has_allowed_splat = TRUE if(!has_allowed_splat) return FALSE @@ -50,7 +52,8 @@ return TRUE var/datum/splat/splat_path = GLOB.splat_prototypes[mob_splat] - var/splat_id = splat_path?.id + // If splat is null, just assume we have no splat. + var/splat_id = splat_path?.id ? splat_path.id : SPLAT_NONE if(forbidden_splats && (splat_id in forbidden_splats)) return FALSE diff --git a/modular_darkpack/modules/merits_flaws/code/negative_quirks/animal_musk.dm b/modular_darkpack/modules/merits_flaws/code/negative_quirks/animal_musk.dm new file mode 100644 index 000000000000..0f683a469923 --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/negative_quirks/animal_musk.dm @@ -0,0 +1,12 @@ +// W20 p. 473 +/datum/quirk/darkpack/animal_musk + name = "Animal Musk" + // A little unsure who to do the logic on the social roll rn. + desc = {"(This is roleplay/flavor text at the moment) You have the odor of an animal, even in Homid form. + Whenever you are indoors or in a crowd of people, you make all Social rolls at a +2 difficulty. + Outdoors or in situations where you can distance yourself from humans, your odor is not noticeable. + Wolves (and lupus-born Garou) take little notice of this Flaw.."} + value = -1 + mob_trait = TRAIT_ANIMAL_MUSK + icon = FA_ICON_SPRAY_CAN_SPARKLES // icon = FA_ICON_BUGS + allowed_splats = SPLAT_SHIFTERS diff --git a/modular_darkpack/modules/quirks/code/negative_quirks/derangement.dm b/modular_darkpack/modules/merits_flaws/code/negative_quirks/derangement.dm similarity index 93% rename from modular_darkpack/modules/quirks/code/negative_quirks/derangement.dm rename to modular_darkpack/modules/merits_flaws/code/negative_quirks/derangement.dm index 725eacac0f8b..e6d96a9051e4 100644 --- a/modular_darkpack/modules/quirks/code/negative_quirks/derangement.dm +++ b/modular_darkpack/modules/merits_flaws/code/negative_quirks/derangement.dm @@ -1,7 +1,7 @@ #define FLOOR_DISAPPEAR 3 SECONDS -/datum/quirk/derangement +/datum/quirk/darkpack/derangement name = "Derangement" desc = "Suffer from a permanent, incurable derangement that alters your perception." icon = FA_ICON_HOUSE_MEDICAL_CIRCLE_EXCLAMATION @@ -11,17 +11,16 @@ value = -8 hardcore_value = 6 quirk_flags = QUIRK_PROCESSES - darkpack_allowed = TRUE mob_trait = TRAIT_SHIFTY_EYES // they're deranged, so give them the trait that tells people around them about their crazy eyes mail_goodies = list(/obj/effect/spawner/random/contraband/narcotics) // happy pills! :) var/process_interval = 3 SECONDS var/list/derangements COOLDOWN_DECLARE(next_process) -/datum/quirk/derangement/add() +/datum/quirk/darkpack/derangement/add() derangements = subtypesof(/datum/hallucination/malk) -/datum/quirk/derangement/process(seconds_per_tick) +/datum/quirk/darkpack/derangement/process(seconds_per_tick) if(!quirk_holder.client) return if(!COOLDOWN_FINISHED(src, next_process)) @@ -36,7 +35,7 @@ // largely taken from https://github.com/The-Final-Nights/The-Final-Nights/pull/287 // based on the work of maaacha -/datum/quirk/derangement/proc/handle_malk_floors() +/datum/quirk/darkpack/derangement/proc/handle_malk_floors() if(!quirk_holder?.client) return //Floors go crazy go stupid @@ -47,7 +46,7 @@ continue handle_malk_floor(floor) -/datum/quirk/derangement/proc/handle_malk_floor(turf/open/floor) +/datum/quirk/darkpack/derangement/proc/handle_malk_floor(turf/open/floor) var/mutable_appearance/fake_floor = image(floor.icon, floor, floor.icon_state, floor.layer) quirk_holder?.client.images += fake_floor var/offset = pick(-3,-2, -1, 1, 2, 3) @@ -55,11 +54,11 @@ animate(fake_floor, pixel_y = offset, time = disappearfirst, flags = ANIMATION_RELATIVE) addtimer(CALLBACK(src, PROC_REF(malk_floor_stage1), quirk_holder, offset, fake_floor), disappearfirst, TIMER_CLIENT_TIME) -/datum/quirk/derangement/proc/malk_floor_stage1(mob/living/malk, offset, mutable_appearance/fake_floor) +/datum/quirk/darkpack/derangement/proc/malk_floor_stage1(mob/living/malk, offset, mutable_appearance/fake_floor) animate(fake_floor, pixel_y = -offset, time = FLOOR_DISAPPEAR, flags = ANIMATION_RELATIVE) addtimer(CALLBACK(src, PROC_REF(malk_floor_stage2), malk, fake_floor), FLOOR_DISAPPEAR, TIMER_CLIENT_TIME) -/datum/quirk/derangement/proc/malk_floor_stage2(mob/living/malk, mutable_appearance/fake_floor) +/datum/quirk/darkpack/derangement/proc/malk_floor_stage2(mob/living/malk, mutable_appearance/fake_floor) malk.client?.images -= fake_floor /datum/hallucination/malk diff --git a/modular_darkpack/modules/merits_flaws/code/horrific_appearance_quirk.dm b/modular_darkpack/modules/merits_flaws/code/negative_quirks/horrific_appearance_quirk.dm similarity index 100% rename from modular_darkpack/modules/merits_flaws/code/horrific_appearance_quirk.dm rename to modular_darkpack/modules/merits_flaws/code/negative_quirks/horrific_appearance_quirk.dm diff --git a/modular_darkpack/modules/merits_flaws/code/monstrous_quirk.dm b/modular_darkpack/modules/merits_flaws/code/negative_quirks/monstrous_quirk.dm similarity index 100% rename from modular_darkpack/modules/merits_flaws/code/monstrous_quirk.dm rename to modular_darkpack/modules/merits_flaws/code/negative_quirks/monstrous_quirk.dm diff --git a/modular_darkpack/modules/merits_flaws/code/organovore.dm b/modular_darkpack/modules/merits_flaws/code/negative_quirks/organovore.dm similarity index 100% rename from modular_darkpack/modules/merits_flaws/code/organovore.dm rename to modular_darkpack/modules/merits_flaws/code/negative_quirks/organovore.dm diff --git a/modular_darkpack/modules/merits_flaws/code/permanent_fangs.dm b/modular_darkpack/modules/merits_flaws/code/negative_quirks/permanent_fangs.dm similarity index 85% rename from modular_darkpack/modules/merits_flaws/code/permanent_fangs.dm rename to modular_darkpack/modules/merits_flaws/code/negative_quirks/permanent_fangs.dm index 8ee8a3d81f9a..d4463c3c5acd 100644 --- a/modular_darkpack/modules/merits_flaws/code/permanent_fangs.dm +++ b/modular_darkpack/modules/merits_flaws/code/negative_quirks/permanent_fangs.dm @@ -1,6 +1,8 @@ +// V20 p. 482 /datum/quirk/darkpack/permafangs name = "Permanent Fangs" desc = "Your fangs do not retract, making it impossible for you to hide your true nature. While some mortals may think you've had your teeth filed or are wearing prosthetics, sooner or later you're going to run into someone who knows what you truly are." + // TTRPG accurate would be -3? But this is also missing the max Appearance lock.. value = -1 mob_trait = TRAIT_PERMAFANGS gain_text = span_notice("Your fangs become stuck.") diff --git a/modular_darkpack/modules/merits_flaws/code/negative_quirks/pierced_veil.dm b/modular_darkpack/modules/merits_flaws/code/negative_quirks/pierced_veil.dm new file mode 100644 index 000000000000..c05a8d72e10f --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/negative_quirks/pierced_veil.dm @@ -0,0 +1,10 @@ +// W20 p. 484 +/datum/quirk/darkpack/pierced_veil + name = "Pierced Veil" + // A little unsure who to do the logic on the social roll rn. + desc = {"Unlike most Garou, your Crinos form does not trigger the Delirium in mortals. + This makes you particularly vulnerable to werewolf hunters, who may find it less difficult to pursue you back to your caern, putting the members of your sept in considerable danger."} + value = -3 + mob_trait = TRAIT_PIERCED_VEIL + icon = FA_ICON_MASKS_THEATER + allowed_splats = SPLAT_SHIFTERS diff --git a/modular_darkpack/modules/merits_flaws/code/negative_quirks/weak_willed.dm b/modular_darkpack/modules/merits_flaws/code/negative_quirks/weak_willed.dm new file mode 100644 index 000000000000..bc2c12965d19 --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/negative_quirks/weak_willed.dm @@ -0,0 +1,16 @@ +// W20 p. 478, V20 p. 486 +/datum/quirk/darkpack/weak_willed + name = "Weak Willed" + desc = {"You have little resistance to attempts to dominate or intimidate you. + Domination-focused Powers such as Dominate automatically succeed against you. + Your difficulties to resist mind-altering spells or magic, are increased by two."} + /* Need to implement the other effects still..... + desc = {"You have little resistance to attempts to dominate or intimidate you. + Domination-focused Powers such as Dominate, Staredown, Roll Over, etc. automatically succeed against you. + Your difficulties to resist Social Talents such as Intimidation or Leadership, as well as mind-altering spells or magic, are increased by two. + Your Willpower may never rise above 4"} + */ + value = -1 + mob_trait = TRAIT_WEAK_WILLED + icon = FA_ICON_BRAIN + diff --git a/modular_darkpack/modules/merits_flaws/code/illegal_identity.dm b/modular_darkpack/modules/merits_flaws/code/neutral_quirks/illegal_identity.dm similarity index 98% rename from modular_darkpack/modules/merits_flaws/code/illegal_identity.dm rename to modular_darkpack/modules/merits_flaws/code/neutral_quirks/illegal_identity.dm index 07688d52bdc5..7011d373b5b4 100644 --- a/modular_darkpack/modules/merits_flaws/code/illegal_identity.dm +++ b/modular_darkpack/modules/merits_flaws/code/neutral_quirks/illegal_identity.dm @@ -1,3 +1,4 @@ +// Homebrew? /datum/quirk/darkpack/illegal_identity name = "Illegal Identity" desc = "Illegal immigrant? Died legally? Born a wolf? The cops aren't happy." diff --git a/modular_darkpack/modules/quirks/code/quirks.dm b/modular_darkpack/modules/merits_flaws/code/old_quirks.dm similarity index 100% rename from modular_darkpack/modules/quirks/code/quirks.dm rename to modular_darkpack/modules/merits_flaws/code/old_quirks.dm diff --git a/modular_darkpack/modules/merits_flaws/code/positive_quirks/beserk.dm b/modular_darkpack/modules/merits_flaws/code/positive_quirks/beserk.dm new file mode 100644 index 000000000000..debce1198337 --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/positive_quirks/beserk.dm @@ -0,0 +1,23 @@ +/* DARKPACK TODO - FRENZY +// W20 p. 473 +/datum/quirk/darkpack/metamorph + name = "Metamorph" + desc = {"You have uncanny control over your inner anger, and can use your Rage as most Garou cannot. + You can enter a berserk frenzy at will, ignoring your wound penalties. + You still suffer the consequences of any actions committed in the throes of frenzy. + When circumstances might cause you to frenzy, you must make a standard roll to see if you do so or not."} + value = 2 + icon = FA_ICON_ANGRY + allowed_splats = SPLAT_SHIFTERS + +/datum/quirk/darkpack/metamorph/add(client/client_source) + . = ..() + add_verb(quirk_holder, /mob/living/carbon/human/proc/manual_frenzy) + +/datum/quirk/darkpack/metamorph/remove() + . = ..() + remove_verb(quirk_holder, /mob/living/carbon/human/proc/manual_frenzy) + +/mob/living/carbon/human/proc/manual_frenzy() + return +*/ diff --git a/modular_darkpack/modules/merits_flaws/code/positive_quirks/deceptive_aura.dm b/modular_darkpack/modules/merits_flaws/code/positive_quirks/deceptive_aura.dm new file mode 100644 index 000000000000..58ff2d253c8d --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/positive_quirks/deceptive_aura.dm @@ -0,0 +1,8 @@ +// V20 p. 493 +/datum/quirk/darkpack/deceptive_aura + name = "Deceptive Aura" + desc = {"Your aura is unnaturally bright and colorful for a vampire. You register as a mortal on all attempts to read your aura."} + value = 1 + mob_trait = TRAIT_DECEPTIVE_AURA + icon = FA_ICON_TEMPERATURE_HIGH + allowed_splats = list(SPLAT_KINDRED) diff --git a/modular_darkpack/modules/merits_flaws/code/positive_quirks/fair_glabro.dm b/modular_darkpack/modules/merits_flaws/code/positive_quirks/fair_glabro.dm new file mode 100644 index 000000000000..508eef62a44d --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/positive_quirks/fair_glabro.dm @@ -0,0 +1,8 @@ +// W20 p. 472 +/datum/quirk/darkpack/fair_glabro + name = "Fair Glabro" + desc = "You have a Glabro form that can pass for human, though it's still larger than normal people. You have no penalties to Social Attributes in Glabro form." + value = 2 + mob_trait = TRAIT_FAIR_GLABRO + icon = FA_ICON_PERSON_HALF_DRESS + allowed_splats = list(SPLAT_GAROU) diff --git a/modular_darkpack/modules/merits_flaws/code/giovanni_sanguine_incongruity.dm b/modular_darkpack/modules/merits_flaws/code/positive_quirks/giovanni_sanguine_incongruity.dm similarity index 100% rename from modular_darkpack/modules/merits_flaws/code/giovanni_sanguine_incongruity.dm rename to modular_darkpack/modules/merits_flaws/code/positive_quirks/giovanni_sanguine_incongruity.dm diff --git a/modular_darkpack/modules/merits_flaws/code/positive_quirks/metamorph.dm b/modular_darkpack/modules/merits_flaws/code/positive_quirks/metamorph.dm new file mode 100644 index 000000000000..b71e7626b970 --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/positive_quirks/metamorph.dm @@ -0,0 +1,18 @@ +// W20 p. 473 +/datum/quirk/darkpack/metamorph + name = "Metamorph" + desc = {"Shapechanging for you is as easy as breathing. + You do not need to roll to change forms, nor is it necessary to spend a Rage point for an instantaneous shift. + You make your changes as if you scored five successes on your roll to shift forms. + If you lose consciousness from wounds or for some other reason, you may roll Wits + Primal Urge (difficulty 8) to choose which form you assume rather than reverting to breed form."} + value = 7 + mob_trait = TRAIT_METAMORPH + // I love the greg sam. sa + icon = FA_ICON_BUG + allowed_splats = SPLAT_SHIFTERS + +/datum/storyteller_roll/metamorph + bumper_text = "metamorph" + applicable_stats = (STAT_WITS) // + PRIMAL_URGE + difficulty = 8 + roll_output_type = ROLL_PRIVATE diff --git a/modular_darkpack/modules/merits_flaws/code/positive_quirks/pale_aura.dm b/modular_darkpack/modules/merits_flaws/code/positive_quirks/pale_aura.dm new file mode 100644 index 000000000000..ab605f190a8a --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/positive_quirks/pale_aura.dm @@ -0,0 +1,12 @@ +// Ghouls & Revenants p. 137, HH p. 43 +/datum/quirk/darkpack/pale_aura + name = "Pale Aura" + desc = {"Any color your character's aura takes has a pale cast to it, as though he was a vampire."} + /*{"Any color your character's aura takes has a pale cast to it, as though he was a vampire. + Unless her player gains five chapter two or more successes on an Aura Perception roll, + any vampire discerns your character's aura as one belonging to the Kindred"} + */ + value = 2 + mob_trait = TRAIT_PALE_AURA + icon = FA_ICON_TEMPERATURE_EMPTY + allowed_splats = list(SPLAT_NONE, SPLAT_GHOUL) diff --git a/modular_darkpack/modules/merits_flaws/code/stillness_of_death.dm b/modular_darkpack/modules/merits_flaws/code/positive_quirks/stillness_of_death.dm similarity index 100% rename from modular_darkpack/modules/merits_flaws/code/stillness_of_death.dm rename to modular_darkpack/modules/merits_flaws/code/positive_quirks/stillness_of_death.dm diff --git a/modular_darkpack/modules/merits_flaws/code/positive_quirks/time_sense.dm b/modular_darkpack/modules/merits_flaws/code/positive_quirks/time_sense.dm new file mode 100644 index 000000000000..132718fd3b99 --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/positive_quirks/time_sense.dm @@ -0,0 +1,21 @@ +// W20 p. 475 +/datum/quirk/darkpack/time_sense + name = "Time Sense" + desc = {"You have an innate sense of time and are able to estimate the passage of time accurately without using a watch or other mechanical device, + even after long periods of unconsciousness. This allows you to know (among other things) what phase the moon is in."} + value = 1 + mob_trait = TRAIT_TIME_SENSE + icon = FA_ICON_STOPWATCH + +/mob/proc/get_time_status() + . = list() + . += "Local City Time: [SSticker.round_start_timeofday ? "[station_time_timestamp("hh:mm MMM")] [CURRENT_STATION_YEAR]" : "The round hasn't started yet!"]" + +/mob/living/get_time_status() + . = list() + if(HAS_TRAIT(src, TRAIT_TIME_SENSE)) + . += "Local City Time: [station_time_timestamp("hh:mm MMM")] [CURRENT_STATION_YEAR]" + . += "Phase of moon: [GLOB.moon_state]" + else + . += "Local City Time: [CURRENT_STATION_YEAR]? Get a watch." + diff --git a/modular_darkpack/modules/merits_flaws/code/positive_quirks/untamable.dm b/modular_darkpack/modules/merits_flaws/code/positive_quirks/untamable.dm new file mode 100644 index 000000000000..913de0114813 --- /dev/null +++ b/modular_darkpack/modules/merits_flaws/code/positive_quirks/untamable.dm @@ -0,0 +1,11 @@ +// W20 p. 476 +/datum/quirk/darkpack/untamable + name = "Untamable" + desc = {"You are a wild soul who has never bent to the leash. + You are immune to vampiric Domination (but not emotional manipulations via Presence)"} + // Change this line when we add these gifts. + // You are immune to vampiric Domination (but not emotional manipulations via Presence) and these Gifts will not work on you: Roll Over, Obedience, and Mastery."} + value = 5 + mob_trait = TRAIT_MERIT_UNTAMABLE + icon = FA_ICON_SHIELD_DOG + allowed_splats = SPLAT_SHIFTERS diff --git a/modular_darkpack/modules/powers/code/discipline/auspex/aura_component.dm b/modular_darkpack/modules/powers/code/discipline/auspex/aura_component.dm index a32fdb1b386f..60e9d95332c9 100644 --- a/modular_darkpack/modules/powers/code/discipline/auspex/aura_component.dm +++ b/modular_darkpack/modules/powers/code/discipline/auspex/aura_component.dm @@ -62,7 +62,7 @@ holder.appearance = aura_appearance var/mob/parent_mob = parent - if(get_kindred_splat(parent_mob)) + if(HAS_TRAIT(parent, TRAIT_PALE_AURA) && !HAS_TRAIT(parent, TRAIT_DECEPTIVE_AURA)) var/icon/temporary_icon_holder = holder.appearance var/mutable_appearance/aura_image = mutable_appearance(temporary_icon_holder, "aura", AUSPEX_LAYER, parent_mob, GAME_PLANE) @@ -99,11 +99,11 @@ static_image.appearance_flags |= RESET_COLOR holder.add_overlay(static_image) - if(get_ghoul_splat(parent_mob)) + if(!HAS_TRAIT(parent, TRAIT_PALE_AURA) && get_ghoul_splat(parent_mob)) var/icon/temporary_icon_holder = icon('modular_darkpack/modules/powers/icons/auras.dmi', "aurablotch") var/mutable_appearance/aura_blotches = mutable_appearance(temporary_icon_holder, "aurablotch", AUSPEX_LAYER+0.02, parent_mob, GAME_PLANE) - var/list/hsv_color_value = rgb2hsv(aura_appearance.color) + var/list/hsv_color_value = rgb2hsv(holder.color) hsv_color_value[2] = hsv_color_value[2] * 0.7 // Reduce saturation for ghouls var/icon/icon_mask = getIconMask(aura_blotches) diff --git a/modular_darkpack/modules/powers/code/discipline/dementation.dm b/modular_darkpack/modules/powers/code/discipline/dementation.dm index 8d3a90df4ad1..3cd215f5d794 100644 --- a/modular_darkpack/modules/powers/code/discipline/dementation.dm +++ b/modular_darkpack/modules/powers/code/discipline/dementation.dm @@ -7,7 +7,7 @@ /datum/discipline/dementation/post_gain() . = ..() - owner.add_quirk(/datum/quirk/derangement) + owner.add_quirk(/datum/quirk/darkpack/derangement) /datum/discipline_power/dementation name = "Dementation power name" diff --git a/modular_darkpack/modules/powers/code/discipline/dominate/dominate.dm b/modular_darkpack/modules/powers/code/discipline/dominate/dominate.dm index 2c8398f3ea74..83a0326b9441 100644 --- a/modular_darkpack/modules/powers/code/discipline/dominate/dominate.dm +++ b/modular_darkpack/modules/powers/code/discipline/dominate/dominate.dm @@ -107,12 +107,15 @@ var/mypower = SSroll.storyteller_roll(owner_stat, difficulty = theirpower, roller = owner, numerical = TRUE) //tremere have built-in safeguards to easily dominate their stone servitors - var/mob/living/carbon/human/human_target = target if(HAS_TRAIT(target, TRAIT_WEAK_TO_DOMINATE)) theirpower -= 2 + if(HAS_TRAIT(target, TRAIT_WEAK_WILLED)) + theirpower -= 2 + //wearing dark sunglasses makes it harder for the Dominator to capture the victim's gaze and raises difficulty -- V20 'Dominate' section titled 'Eye Contact' var/total_tint = 0 + var/mob/living/carbon/human/human_target = target for(var/obj/item/clothing/worn_item in human_target.get_equipped_items(INCLUDE_ABSTRACT)) total_tint += worn_item.tint @@ -136,9 +139,13 @@ var/datum/splat/vampire/kindred/target_splat = get_kindred_splat(target) if(target_splat) if(owner_splat.generation > target_splat.generation) - to_chat(owner, span_warning("Your fail to dominate [target], as their blood is more potent than yours!")) + to_chat(owner, span_warning("You fail to dominate [target], as their blood is more potent than yours!")) return FALSE + if(HAS_TRAIT(target, TRAIT_MERIT_UNTAMABLE)) + to_chat(owner, span_warning("You fail to dominate [target], they are an untamable beast!")) + return FALSE + if(numerical == TRUE) return mypower diff --git a/modular_darkpack/modules/powers/code/discipline/melpominee.dm b/modular_darkpack/modules/powers/code/discipline/melpominee.dm index 8530d45912dd..7fce7cbd8719 100644 --- a/modular_darkpack/modules/powers/code/discipline/melpominee.dm +++ b/modular_darkpack/modules/powers/code/discipline/melpominee.dm @@ -350,14 +350,14 @@ listener.overlays_standing[MUTATIONS_LAYER] = song_overlay listener.apply_overlay(MUTATIONS_LAYER) if(cumulative_our_power[listener] >= 20) - listener.add_quirk(/datum/quirk/derangement) + listener.add_quirk(/datum/quirk/darkpack/derangement) if(cumulative_list[listener] <= cumulative_our_power[listener]-6) - if(listener.add_quirk(/datum/quirk/derangement)) + if(listener.add_quirk(/datum/quirk/darkpack/derangement)) addtimer(CALLBACK(src, PROC_REF(remove_derangement), listener), 1 SCENES) /datum/discipline_power/melpominee/sirens_beckoning/proc/remove_derangement(mob/living/carbon/listener) - listener.remove_quirk(/datum/quirk/derangement) + listener.remove_quirk(/datum/quirk/darkpack/derangement) /datum/discipline_power/melpominee/sirens_beckoning/deactivate(mob/living/carbon/target) . = ..() diff --git a/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm b/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm index 839b6e4bb325..32264cf723b0 100644 --- a/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm +++ b/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm @@ -36,6 +36,9 @@ check_flags = DISC_CHECK_CONSCIOUS vitae_cost = 0 +/datum/discipline_power/temporis/hourglass_of_the_mind/post_gain() + ADD_TRAIT(owner, TRAIT_TIME_SENSE, DISCIPLINE_TRAIT) + /datum/discipline_power/temporis/hourglass_of_the_mind/activate() . = ..() to_chat(owner, "[station_time_timestamp("hh:mm:ss")]") diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/splats/ghoul_splat/ghoul_splat.dm b/modular_darkpack/modules/vampire_the_masquerade/code/splats/ghoul_splat/ghoul_splat.dm index 44ba3138d2ca..8f4f711b17ad 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/splats/ghoul_splat/ghoul_splat.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/splats/ghoul_splat/ghoul_splat.dm @@ -36,4 +36,4 @@ continue owner.give_st_power(discipline, 1) if(ispath(discipline, /datum/discipline/dementation)) - owner.add_quirk(/datum/quirk/derangement) + owner.add_quirk(/datum/quirk/darkpack/derangement) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/splats/kindred_splat/kindred_splat.dm b/modular_darkpack/modules/vampire_the_masquerade/code/splats/kindred_splat/kindred_splat.dm index 2e7e00a88a7e..b1c83a8c5c3a 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/splats/kindred_splat/kindred_splat.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/splats/kindred_splat/kindred_splat.dm @@ -15,7 +15,8 @@ TRAIT_VTM_MORALITY, TRAIT_VTM_CLANS, TRAIT_UNAGING, - TRAIT_DRINKS_BLOOD + TRAIT_DRINKS_BLOOD, + TRAIT_PALE_AURA, ) splat_actions = list( /datum/action/cooldown/mob_cooldown/give_vitae, diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/fera_species.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/fera_species.dm index 6a084af0f920..40b7cee7e220 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/fera_species.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/fera_species.dm @@ -48,8 +48,7 @@ human_who_gained_species.add_offsets(type, w_add = mob_pixel_w, z_add = mob_pixel_z) - for(var/key, value in form_bonus_stats) - human_who_gained_species.st_add_stat_mod(key, value, type) + add_buffs(human_who_gained_species) /datum/species/human/shifter/on_species_loss(mob/living/carbon/human/human, datum/species/new_species, pref_load) . = ..() @@ -58,9 +57,23 @@ human.remove_offsets(type) + clear_buffs(human) + +/datum/species/human/shifter/proc/add_buffs(mob/living/carbon/human/human) + for(var/key, value in form_bonus_stats) + if(!should_add_buff(human, key, value)) + continue + human.st_add_stat_mod(key, value, type) + +/datum/species/human/shifter/proc/should_add_buff(mob/living/carbon/human/human, datum/st_stat/buff_type, amount) + return TRUE + +/datum/species/human/shifter/proc/clear_buffs(mob/living/carbon/human/human) for(var/key, value in form_bonus_stats) human.st_remove_stat_mod(key, type) +/datum/species/human/shifter/proc/is_veil_breaching_form(mob/living/carbon/human/human) + return veil_breaching_form /// Fetch the mobs fur color from their features. /datum/species/human/shifter/proc/get_fur_color(mob/living/carbon/human/human) @@ -137,20 +150,28 @@ fallback_icon = 'modular_darkpack/modules/werewolf_the_apocalypse/icons/garou_forms/glabro.dmi' veil_breaching_form = TRUE +/datum/species/human/shifter/bestial/should_add_buff(mob/living/carbon/human/human, datum/st_stat/buff_type, amount) + . = ..() + // Raw string check instead of a define or type path is pretty bleak + if(HAS_TRAIT(human, TRAIT_FAIR_GLABRO) && (buff_type::subcategory == "Social") && (amount < 0)) + return FALSE + +/datum/species/human/shifter/bestial/is_veil_breaching_form(mob/living/carbon/human/human) + if(HAS_TRAIT(human, TRAIT_FAIR_GLABRO)) + return FALSE + return ..() + /datum/species/human/shifter/bestial/on_species_gain(mob/living/carbon/human/human_who_gained_species, datum/species/old_species, pref_load, regenerate_icons) . = ..() human_who_gained_species.update_mob_height() human_who_gained_species.update_transform(1.25) - - human_who_gained_species.remove_overlay(BODY_ADJ_LAYER) - - var/fur_color = get_fur_color(human_who_gained_species) - var/mob_icon = get_mob_icon(human_who_gained_species) - - human_who_gained_species.overlays_standing[BODY_ADJ_LAYER] = list(image(mob_icon, fur_color)) - - human_who_gained_species.apply_overlay(BODY_ADJ_LAYER) + if(!HAS_TRAIT(human_who_gained_species, TRAIT_FAIR_GLABRO)) + human_who_gained_species.remove_overlay(BODY_ADJ_LAYER) + var/fur_color = get_fur_color(human_who_gained_species) + var/mob_icon = get_mob_icon(human_who_gained_species) + human_who_gained_species.overlays_standing[BODY_ADJ_LAYER] = list(image(mob_icon, fur_color)) + human_who_gained_species.apply_overlay(BODY_ADJ_LAYER) /datum/species/human/shifter/bestial/on_species_loss(mob/living/carbon/human/human, datum/species/new_species, pref_load) . = ..() diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/fera_splat.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/fera_splat.dm index 523dbddf83ca..ef55593288ba 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/fera_splat.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/fera_splat.dm @@ -140,7 +140,7 @@ COOLDOWN_START(src, passive_healing_cd, 1 TURNS) var/datum/species/human/shifter/shifter_species = owner.dna.species if(istype(shifter_species)) - if(shifter_species.veil_breaching_form && !shifter_species.causes_delerium) + if(shifter_species.is_veil_breaching_form(owner) && (!shifter_species.causes_delerium || HAS_TRAIT(owner, TRAIT_PIERCED_VEIL))) SEND_SIGNAL(owner, COMSIG_MASQUERADE_VIOLATION) // Being used to represent meditating in your caern diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/transformation.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/transformation.dm index 5988945b512a..966652e34c66 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/transformation.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/splats/transformation.dm @@ -19,7 +19,9 @@ to_chat(owner, span_warning("Your shifting is on cooldown for one turn.")) return - if(ispath(get_breed_form_species(), form_to_transform)) + if(HAS_TRAIT(owner, TRAIT_METAMORPH)) + requires_roll = FALSE + else if(ispath(get_breed_form_species(), form_to_transform)) requires_roll = FALSE else if(costs_rage) if(adjust_rage(-1, TRUE)) @@ -38,7 +40,7 @@ transform_roll.difficulty = form_to_transform::shift_difficulty switch(transform_roll.st_roll(owner, owner, PRIMAL_URGE_PLACEHOLDER)) if(ROLL_SUCCESS) - EMPTY_BLOCK_GUARD + pass() if(ROLL_FAILURE, ROLL_BOTCH) return @@ -60,6 +62,15 @@ addtimer(CALLBACK(src, PROC_REF(transform_finish), form_to_transform, time_to_transform), time_to_transform * 0.9) /datum/splat/werewolf/shifter/proc/revert_to_breed_form() + if(HAS_TRAIT(owner, TRAIT_METAMORPH)) + var/datum/storyteller_roll/metamorph/roll_datum = new() + if(roll_datum.st_roll(owner, bonus = PRIMAL_URGE_PLACEHOLDER) == ROLL_SUCCESS) + // First valid use of timeout discovered (we dont want to be able to hold it out) + var/choice = tgui_input_list(owner, "Revert to your choosen form", "Metamorph", transformation_list, get_breed_form_species(), 1 TURNS) + if(choice in transformation_list) + transform_fera(choice, force = TRUE) + return + transform_fera(get_breed_form_species(), force = TRUE) /datum/splat/werewolf/shifter/proc/transform_finish(form_to_transform, time_taken = DOGGY_ANIMATION_TIME) diff --git a/tgstation.dme b/tgstation.dme index 5fa60003c0be..6cd8e7d3d468 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7317,12 +7317,24 @@ #include "modular_darkpack\modules\matrix\code\job.dm" #include "modular_darkpack\modules\matrix\code\matrix.dm" #include "modular_darkpack\modules\merits_flaws\code\_darkpack_quirk.dm" -#include "modular_darkpack\modules\merits_flaws\code\giovanni_sanguine_incongruity.dm" -#include "modular_darkpack\modules\merits_flaws\code\horrific_appearance_quirk.dm" -#include "modular_darkpack\modules\merits_flaws\code\illegal_identity.dm" -#include "modular_darkpack\modules\merits_flaws\code\monstrous_quirk.dm" -#include "modular_darkpack\modules\merits_flaws\code\organovore.dm" -#include "modular_darkpack\modules\merits_flaws\code\permanent_fangs.dm" +#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\animal_musk.dm" +#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\derangement.dm" +#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\horrific_appearance_quirk.dm" +#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\monstrous_quirk.dm" +#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\organovore.dm" +#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\permanent_fangs.dm" +#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\pierced_veil.dm" +#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\weak_willed.dm" +#include "modular_darkpack\modules\merits_flaws\code\neutral_quirks\illegal_identity.dm" +#include "modular_darkpack\modules\merits_flaws\code\positive_quirks\beserk.dm" +#include "modular_darkpack\modules\merits_flaws\code\positive_quirks\deceptive_aura.dm" +#include "modular_darkpack\modules\merits_flaws\code\positive_quirks\fair_glabro.dm" +#include "modular_darkpack\modules\merits_flaws\code\positive_quirks\giovanni_sanguine_incongruity.dm" +#include "modular_darkpack\modules\merits_flaws\code\positive_quirks\metamorph.dm" +#include "modular_darkpack\modules\merits_flaws\code\positive_quirks\pale_aura.dm" +#include "modular_darkpack\modules\merits_flaws\code\positive_quirks\stillness_of_death.dm" +#include "modular_darkpack\modules\merits_flaws\code\positive_quirks\time_sense.dm" +#include "modular_darkpack\modules\merits_flaws\code\positive_quirks\untamable.dm" #include "modular_darkpack\modules\merits_flaws\code\stillness_of_death.dm" #include "modular_darkpack\modules\mob_spawners\code\citizen.dm" #include "modular_darkpack\modules\movie_theatre\code\areas.dm" @@ -7497,7 +7509,6 @@ #include "modular_darkpack\modules\powers\code\discipline\vicissitude\surgeries\sex_change.dm" #include "modular_darkpack\modules\powers\code\discipline\vicissitude\surgeries\skin_colour_change.dm" #include "modular_darkpack\modules\preferences\height_preference.dm" -#include "modular_darkpack\modules\quirks\code\negative_quirks\derangement.dm" #include "modular_darkpack\modules\radios\code\admin_verb.dm" #include "modular_darkpack\modules\radios\code\radio.dm" #include "modular_darkpack\modules\radios\code\transceiver.dm"