Skip to content
Open
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
3 changes: 3 additions & 0 deletions code/__DEFINES/~darkpack/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -190,5 +190,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_EAT_FOOD "eat_food"
#define TRAIT_CALM_HEART "calm_heart"
#define TRAIT_ACUTE_HEARING "acute_hearing"
#define TRAIT_DISFIGURED_APPEARANCE "disfigured_appearance"
#define TRAIT_GRAVE_SMELL "grave_smell"
#define TRAIT_GLOWING_EYES "glowing_eyes"

// END TRAIT DEFINES
3 changes: 3 additions & 0 deletions code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -695,6 +695,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_DIFFICULT_FRENZY" = TRAIT_DIFFICULT_FRENZY, // DARKPACK EDIT ADD - FRENZY
"TRAIT_DIFFICULT_RAGE" = TRAIT_DIFFICULT_RAGE, // DARKPACK EDIT ADD - FRENZY
"TRAIT_DISCO_DANCER" = TRAIT_DISCO_DANCER, // DARKPACK EDIT ADD
"TRAIT_DISFIGURED_APPEARANCE" = TRAIT_DISFIGURED_APPEARANCE, // DARKPACK EDIT ADD - MERITS_FLAWS - PHYSICAL FLAWS
"TRAIT_DULLFANGS" = TRAIT_DULLFANGS, // DARKPACK EDIT ADD - MERITS_FLAWS
"TRAIT_EAT_FOOD" = TRAIT_EAT_FOOD, // DARKPACK EDIT ADD - MERITS_FLAWS
"TRAIT_EFFICIENT_DIGESTION" = TRAIT_EFFICIENT_DIGESTION, //DARKPACK EDIT ADD
Expand All @@ -708,7 +709,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_FORCED_EMOTION" = TRAIT_FORCED_EMOTION, // DARKPACK EDIT ADD - Melpominee
"TRAIT_FRENETIC_AURA" = TRAIT_FRENETIC_AURA, // DARKPACK EDIT ADD
"TRAIT_GHOST_VISION" = TRAIT_GHOST_VISION, // DARKPACK EDIT ADD - POWERS - (Necromancy)
"TRAIT_GLOWING_EYES" = TRAIT_GLOWING_EYES, // DARKPACK EDIT ADD - MERITS_FLAWS - PHYSICAL FLAWS
"TRAIT_GOLD_WEAKNESS" = TRAIT_GOLD_WEAKNESS, // DARKPACK EDIT ADD - WEREWOLF - (corax)
"TRAIT_GRAVE_SMELL" = TRAIT_GRAVE_SMELL, // DARKPACK EDIT ADD - MERITS_FLAWS - PHYSICAL FLAWS
"TRAIT_GRIP_OF_THE_DAMNED" = TRAIT_GRIP_OF_THE_DAMNED, // DARKPACK EDIT ADD
"TRAIT_GULLET" = TRAIT_GULLET, // DARKPACK EDIT ADD
"TRAIT_HIDDEN_DIABLERIE" = TRAIT_HIDDEN_DIABLERIE, //DARKPACK EDIT ADD
Expand Down
3 changes: 3 additions & 0 deletions code/_globalvars/traits/admin_tooling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_DIFFICULT_FRENZY" = TRAIT_DIFFICULT_FRENZY, // DARKPACK EDIT ADD - FRENZY
"TRAIT_DIFFICULT_RAGE" = TRAIT_DIFFICULT_RAGE, // DARKPACK EDIT ADD - FRENZY
"TRAIT_DISCO_DANCER" = TRAIT_DISCO_DANCER, // DARKPACK EDIT ADD
"TRAIT_DISFIGURED_APPEARANCE" = TRAIT_DISFIGURED_APPEARANCE, // DARKPACK EDIT ADD - MERITS_FLAWS - PHYSICAL FLAWS
"TRAIT_DULLFANGS" = TRAIT_DULLFANGS, // DARKPACK EDIT ADD - MERITS_FLAWS
"TRAIT_EFFICIENT_DIGESTION" = TRAIT_EFFICIENT_DIGESTION, // DARKPACK EDIT ADD
"TRAIT_ENHANCED_MELEE_DODGE" = TRAIT_ENHANCED_MELEE_DODGE, // DARKPACK EDIT ADD
Expand All @@ -390,7 +391,9 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_FERA_RENOWN" = TRAIT_FERA_RENOWN, // DARKPACK EDIT ADD - WEREWOLF
"TRAIT_FRENETIC_AURA" = TRAIT_FRENETIC_AURA, // DARKPACK EDIT ADD
"TRAIT_GHOST_VISION" = TRAIT_GHOST_VISION, // DARKPACK EDIT ADD - POWERS - (Necromancy)
"TRAIT_GLOWING_EYES" = TRAIT_GLOWING_EYES, // DARKPACK EDIT ADD - MERITS_FLAWS - PHYSICAL FLAWS
"TRAIT_GOLD_WEAKNESS" = TRAIT_GOLD_WEAKNESS, // DARKPACK EDIT ADD - WEREWOLF - (corax)
"TRAIT_GRAVE_SMELL" = TRAIT_GRAVE_SMELL, // DARKPACK EDIT ADD - MERITS_FLAWS - PHYSICAL FLAWS
"TRAIT_GRIP_OF_THE_DAMNED" = TRAIT_GRIP_OF_THE_DAMNED, // DARKPACK EDIT ADD
"TRAIT_GULLET" = TRAIT_GULLET, // DARKPACK EDIT ADD
"TRAIT_HIDDEN_DIABLERIE" = TRAIT_HIDDEN_DIABLERIE, //DARKPACK EDIT ADD
Expand Down
1 change: 1 addition & 0 deletions code/controllers/subsystem/processing/quirks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list(
list(/datum/quirk/darkpack/thaumaturgically_inept, /datum/quirk/darkpack/mage_blood), // DARKPACK EDIT ADD - MERITS_FLAWS
list(/datum/quirk/mute, /datum/quirk/darkpack/the_largest_maw), // DARKPACK EDIT ADD - MERITS_FLAWS
list(/datum/quirk/mute, /datum/quirk/darkpack/speech_impediment), // DARKPACK EDIT ADD - MERITS_FLAWS
list(/datum/quirk/darkpack/monstrous, /datum/quirk/darkpack/disfigured), // DARKPACK EDIT ADD - MERITS_FLAWS - PHYSICAL FLAWS
))

GLOBAL_LIST_INIT(quirk_string_blacklist, generate_quirk_string_blacklist())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,12 @@
if(HAS_TRAIT(src, TRAIT_ANIMAL_MUSK))
. += span_warning("[p_they(TRUE)] smell[p_s()] weirdly animal like...<br>")

if(HAS_TRAIT(src, TRAIT_GRAVE_SMELL))
. += span_warning("[p_They()] smell[p_s()] like petrichor and freshly turned soil.<br>")

if((!is_eyes_covered()) && HAS_TRAIT(src, TRAIT_GLOWING_EYES))
. += span_warning("[p_Their()] eyes glow unnaturally!<br>")

if(!(obscured_slots & HIDEFACE))
switch(st_get_stat(STAT_APPEARANCE))
if(0)
Expand All @@ -73,6 +79,8 @@
. += span_rose(span_bold("[pick(five)]<br>"))
if(HAS_TRAIT(src, TRAIT_PERMAFANGS) && !HAS_TRAIT(src, TRAIT_DULLFANGS))
. += span_warning("[p_They()] [p_have()] visible fangs in [p_their()] mouth.<br>")
if(HAS_TRAIT(src, TRAIT_DISFIGURED_APPEARANCE))
. += span_warning("[p_They()] [p_are()] visibly disfigured.<br>")
if(!src.head)
if(HAS_TRAIT(src, TRAIT_THIRD_EYE))
. += span_bolddanger("[p_They()] [p_have()] a third eye on [p_their()] forehead!<br>")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// VTM pg. 481
/datum/quirk/darkpack/disfigured
name = "Disfigured"
desc = {"A hideous disfigurement makes your appearance disturbing and memorable.
The difficulties of all die rolls relating to social interaction are increased by two.
You may not have an Appearance rating greater than 2."}
icon = FA_ICON_FACE_GRIMACE
value = -2
gain_text = span_notice("Your face is disfigured!")
lose_text = span_notice("You feel like you look a lot better.")
failure_message = span_notice("You don't look too bad.")
mob_trait = TRAIT_DISFIGURED_APPEARANCE
excluded_clans = list(VAMPIRE_CLAN_KIASYD, VAMPIRE_CLAN_GARGOYLE, VAMPIRE_CLAN_NOSFERATU, VAMPIRE_CLAN_CAPPADOCIAN, VAMPIRE_CLAN_SAMEDI, VAMPIRE_CLAN_HARBINGER)// Anyone who already gets masq violating faces or other issues like that.
var/appearance_to_subtract

/datum/quirk/darkpack/disfigured/add(client/client_source)
. = ..()
var/mob/living/carbon/human/human_holder = astype(quirk_holder)
if(!human_holder)
return
appearance_to_subtract = human_holder.st_get_stat(STAT_APPEARANCE)-2
if(human_holder.st_get_stat(STAT_APPEARANCE) > 2)
human_holder.st_add_stat_mod(STAT_APPEARANCE, -appearance_to_subtract, "Disfigured")
to_chat(human_holder, span_warning("Your appearance stat has been lowered as you cannot have an appearance value greater than two."))

/datum/quirk/darkpack/disfigured/remove()
. = ..()
var/mob/living/carbon/human/human_holder = astype(quirk_holder)
if(!human_holder)
return
human_holder.st_remove_stat_mod(STAT_APPEARANCE, "Disfigured")
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// VTM pg. 482
/datum/quirk/darkpack/glowing_eyes
name = "Glowing Eyes"
desc = {"You have the stereotypical glowing eyes of vampire legend, giving you a -1 difficulty when intimidating mortals.
However, you MUST constantly disguise your condition, and the glow impairs your vision."}
icon = FA_ICON_EYE
value = -3
gain_text = span_notice("Your eyes glow with an unnatural light!")
lose_text = span_notice("The light in your eyes fades.")
failure_message = span_notice("The light in your eyes fades.")
mob_trait = TRAIT_GLOWING_EYES
allowed_splats = list(SPLAT_KINDRED)
excluded_clans = list(VAMPIRE_CLAN_KIASYD)// They already have masq violating eyes!

/*You have the stereotypical glowing eyes of vampire
legend, which gives you a -1 difficulty on Intimidation
rolls when you’re dealing with mortals. However, the
tradeoffs are many; you must constantly disguise your
condition (no, contacts don’t cut it); the glow impairs
your vision and puts you at +1 difficulty on all sight
based rolls (including the use of ranged weapons); and
the radiance emanating from your eye sockets makes
it difficult to hide (+2 difficulty to Stealth rolls) in the
dark.*/

/datum/quirk/darkpack/glowing_eyes/add(client/client_source)
. = ..()
var/mob/living/carbon/human/human_holder = astype(quirk_holder)
if(!human_holder)
return
ADD_TRAIT(quirk_holder, TRAIT_LUMINESCENT_EYES, QUIRK_TRAIT)
ADD_TRAIT(quirk_holder, TRAIT_MASQUERADE_VIOLATING_EYES, QUIRK_TRAIT)
human_holder.st_add_stat_mod(STAT_PERCEPTION, -1, "Glowing Eyes") // I guess this works. what would count as a sight-based roll is beyond me rn
var/obj/item/clothing/glasses/vampire/sun/new_glasses = new(human_holder.loc) // Give them glasses so they aren't immediately breaching on spawn or anything
human_holder.equip_to_appropriate_slot(new_glasses, TRUE)

/datum/quirk/darkpack/glowing_eyes/remove()
. = ..()
var/mob/living/carbon/human/human_holder = astype(quirk_holder)
if(!human_holder)
return
REMOVE_TRAIT(quirk_holder, TRAIT_LUMINESCENT_EYES, QUIRK_TRAIT)
REMOVE_TRAIT(quirk_holder, TRAIT_MASQUERADE_VIOLATING_EYES, QUIRK_TRAIT)
human_holder.st_remove_stat_mod(STAT_PERCEPTION, "Glowing Eyes")

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// V20 p. 481
/datum/quirk/darkpack/smell_of_the_grave
name = "Smell Of The Grave"
desc = {"You exude an odor of dampness and newly turned earth, which no amount of scents or perfumes will cover.
Mortals in your immediate presence become uncomfortable, so the difficulties of all Social rolls to affect mortals increase by one."}
value = -1
mob_trait = TRAIT_GRAVE_SMELL
gain_text = span_notice("You smell awful.")
lose_text = span_notice("You feel like you smell a lot better.")
allowed_splats = list(SPLAT_KINDRED)
icon = FA_ICON_SPRAY_CAN
failure_message = span_notice("You feel like you smell a lot better.")
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@
return TRUE

var/theirpower = target.st_get_stat(STAT_TEMPORARY_WILLPOWER)
var/mypower = SSroll.storyteller_roll_datum(owner, target, difficulty = theirpower, applic_stats = owner_stat, numerical = TRUE)

//tremere have built-in safeguards to easily dominate their stone servitors
if(HAS_TRAIT(target, TRAIT_WEAK_TO_DOMINATE))
Expand All @@ -114,6 +113,15 @@
if(HAS_TRAIT(target, TRAIT_WEAK_WILLED))
theirpower -= 2

if((!(owner.obscured_slots & HIDEFACE))&(HAS_TRAIT(owner, TRAIT_DISFIGURED_APPEARANCE))) // Are we visibly disfigured?
theirpower += 2

if(!get_kindred_splat(target)) // Is our target mortal?
if(HAS_TRAIT(owner, TRAIT_GRAVE_SMELL)) // Are we stinky?
theirpower += 1
if((HAS_TRAIT(owner, TRAIT_GLOWING_EYES)) && (!owner.is_eyes_covered()) && (STAT_INTIMIDATION in owner_stat)) // Are we intimidating a mortal with uncovered eyes?
theirpower -= 1

//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
Expand All @@ -130,6 +138,9 @@
if(target.conditioner?.resolve())
theirpower += 3

// This var needs to go after everything that changes theirpower.
var/mypower = SSroll.storyteller_roll_datum(owner, target, difficulty = theirpower, applic_stats = owner_stat, numerical = TRUE)

//i've botched so now this person is immune to dominate for the rest of the round
if(mypower < 0)
LAZYADD(parent_disc.botched_targets, WEAKREF(target))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,16 @@
//is the difficulty pre-defined? if not, its probably their willpower.
var/theirpower = difficulty || target.st_get_stat(STAT_TEMPORARY_WILLPOWER)

// Do we have traits to modify our difficulties?
if((!(owner.obscured_slots & HIDEFACE))&(HAS_TRAIT(owner, TRAIT_DISFIGURED_APPEARANCE))) // Are we visibly disfigured?
theirpower += 2 // Increase the difficulty by two.

if(!get_kindred_splat(target)) // Is our target mortal?
if(HAS_TRAIT(owner, TRAIT_GRAVE_SMELL)) // Are we stinky?
theirpower += 1
if((HAS_TRAIT(owner, TRAIT_GLOWING_EYES)) && (!owner.is_eyes_covered()) && (STAT_INTIMIDATION in using_stats)) // Are we intimidating a mortal with uncovered eyes?
theirpower -= 1

var/successes = SSroll.storyteller_roll_datum(owner, target, difficulty = theirpower, applic_stats = using_stats, numerical = TRUE)

//botch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,15 @@
if(used_badge)
involved_social_roll -= 1

if((!(user.obscured_slots & HIDEFACE))&(HAS_TRAIT(user, TRAIT_DISFIGURED_APPEARANCE))) // Are we visibly disfigured?
involved_social_roll += 2

if(!get_kindred_splat(bouncer))// our bouncer is probably mortal, but let's check anyways.
if(HAS_TRAIT(user, TRAIT_GRAVE_SMELL))
involved_social_roll += 1
if((HAS_TRAIT(user, TRAIT_GLOWING_EYES)) && (!user.is_eyes_covered()) && (used_stat == STAT_INTIMIDATION))
involved_social_roll -= 1

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might make sense to genersise this into a "get mortal indtimidation" getter or something as you copypaste similar code into a few other procs.


if(!bypass_roll)
bypass_roll = new()
bypass_roll.bumper_text = "persuade guard"
Expand Down
3 changes: 3 additions & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// DM Environment file for tgstation.dme.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\dwelling\code\area_dwelling.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\dwelling\code\obj_dwelling.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\weather\code\weather.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\powers\code\discipline\healer_valeren.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\powers\code\discipline\mytherceria.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\drugs\code\bloodpacks\bloodpack_adulteration.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\economy\code\stocks_license.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\computers\code\app.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\computers\code\app_types.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\computers\code\computer.dm.
// All manual changes should be made outside the BEGIN_ and END_ blocks.
// New source code should be placed in .dm files: choose File/New --> Code File.

Expand Down Expand Up @@ -7510,7 +7510,9 @@
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\betrayers_mark.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\cast_no_reflection.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\derangement.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\disfigured.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\dulled_bite.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\glowing_eyes.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\grip_of_the_damned.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\hemophiliac.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\horrific_appearance_quirk.dm"
Expand All @@ -7525,6 +7527,7 @@
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\pierced_veil.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\prey_exclusion.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\short.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\smell_of_the_grave.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\speech_impediment.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\territorial.dm"
#include "modular_darkpack\modules\merits_flaws\code\negative_quirks\thaumaturgically_inept.dm"
Expand Down
Loading