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
9 changes: 9 additions & 0 deletions code/__DEFINES/~darkpack/book_sources.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// BOOK_SOURCES
/// Content is based on offical white wolf media
#define SOURCE_OFFICAL "Offical"
/// Contents based on media published through white wolf's storytellers vault which makes it akin to secondary canon
#define SOURCE_STORYTELLER_VAULT "Storyteller Vault"
/// Content is based on entirely homebrew (wether made up for ss13 or otherwise)
#define SOURCE_HOMEBREW "Homebrew"

#define WE_MADE_IT_UP "Darkpack 13"
10 changes: 7 additions & 3 deletions code/controllers/subsystem/processing/quirks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -88,14 +88,18 @@ PROCESSING_SUBSYSTEM_DEF(quirks)

for(var/type in quirk_list)
var/datum/quirk/quirk_type = type
// DARKPACK EDIT ADD START - MERITS_FLAWS
// DARKPACK EDIT CHANGE START - MERITS_FLAWS
if(!quirk_type::darkpack_allowed)
continue
if(quirk_type::roleplay_only && !CONFIG_GET(flag/roleplay_only_merits))
continue
// DARKPACK EDIT ADD END

quirk_prototypes[type] = new type
var/datum/quirk/quirk_datum = new type
if(!quirk_datum.soure_book_allowed(CONFIG_GET(string/ttrpg_accurate_cuttoff_merits)))
continue

quirk_prototypes[type] = quirk_datum
// DARKPACK EDIT CHANGE END
quirks[initial(quirk_type.name)] = quirk_type
quirk_points[initial(quirk_type.name)] = initial(quirk_type.value)

Expand Down
3 changes: 3 additions & 0 deletions config/darkpack_config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ LOG_STATS
## Bool for if roleplay only merits/quirks are enabled
ROLEPLAY_ONLY_MERITS 1

## String for how ttrpg accurate our merits must be. Offical, Storyteller Vault, or Homebrew
TTRPG_ACCURATE_CUTOFF_MERITS Homebrew

## Configs for the type of attack we use when we click at a ranged distance. Only one can be enabled at a time.
#DIRECTIONAL_COMBAT
SWING_COMBAT
4 changes: 4 additions & 0 deletions modular_darkpack/master_files/code/datums/datum.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

/datum
/// Lazy list of books/sources of where the type is bassd off of. Page Number indexed by datum. Ex.
var/list/datum/source_book/ttrpg_sources // BOOK_SOURCES
63 changes: 63 additions & 0 deletions modular_darkpack/modules/book_sources/code/source_book_datum.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
GLOBAL_LIST_INIT(source_book_priority, list(
SOURCE_OFFICAL = 1,
SOURCE_STORYTELLER_VAULT = 2,
SOURCE_HOMEBREW = 3,
))

/datum/source_book
var/name
/// Determiner for how accurate it is to whitewolf published media.
var/offical_status
/// Media does not have or care about page numbers
var/ignore_pages = FALSE

/datum/source_book/vtm20
name = "Vampire The Masquerade 20th Anniversary Edition"
offical_status = SOURCE_OFFICAL

/datum/source_book/hunterhunted2
name = "The Hunters Hunted II"
offical_status = SOURCE_OFFICAL

/datum/source_book/ghouls_and_revenants
name = "Ghouls & Revenants"
offical_status = SOURCE_OFFICAL

/datum/source_book/wta20
name = "Werewolf The Apocalypse 20th Anniversary Edition"
offical_status = SOURCE_OFFICAL

/datum/source_book/vampire_wild_west
name = "Vampire The Wild West"
offical_status = SOURCE_STORYTELLER_VAULT

/datum/source_book/homebrew
name = "Homebrew"
offical_status = SOURCE_HOMEBREW

/datum/proc/highest_source_offical_status()
var/highest_book
for(var/datum/source_book/book, page_number in ttrpg_sources)
if(!highest_book || GLOB.source_book_priority[book] < highest_book)
highest_book = GLOB.source_book_priority[book]

return highest_book

/datum/proc/soure_book_allowed(source_cutoff)
var/main_source = highest_source_offical_status()
if(!main_source)
return TRUE

if(GLOB.source_book_priority[main_source] > GLOB.source_book_priority[source_cutoff])
return FALSE

return TRUE


/datum/proc/get_book_sources_readable()
var/books = list()
for(var/datum/source_book/book, page_number in ttrpg_sources)
if(isnum(page_number))
books += "[book::name]: p. [page_number]"
else
books += "[book::name]: [page_number]"
4 changes: 4 additions & 0 deletions modular_darkpack/modules/merits_flaws/code/config.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
/datum/config_entry/flag/roleplay_only_merits
default = TRUE
protection = CONFIG_ENTRY_LOCKED // Config does nothing after initlize. dont trick people into thinking they can edit

/datum/config_entry/string/ttrpg_accurate_cuttoff_merits
default = SOURCE_HOMEBREW
protection = CONFIG_ENTRY_LOCKED // Config does nothing after initlize. dont trick people into thinking they can edit
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
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.."}
*/
ttrpg_sources = list(/datum/source_book/wta20 = 473)
value = -1
mob_trait = TRAIT_ANIMAL_MUSK
icon = FA_ICON_SPRAY_CAN_SPARKLES // icon = FA_ICON_BUGS
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//Vampire The Masquerade 20th Anniversary Edition, 494
/datum/quirk/darkpack/cast_no_reflection
name = "Cast No Reflection"
desc = "You actually cast no reflection, just like the vampires of legend. This can have a detrimental effect when trying to pass as a human."
ttrpg_sources = list(/datum/source_book/vtm20 = 494)
value = -1
mob_trait = TRAIT_NO_MIRROR_REFLECTION
icon = FA_ICON_PERSON_THROUGH_WINDOW
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// V20 p. 481
/datum/quirk/darkpack/dulled_bite
name = "Dulled Bite"
desc = "For some reason your fangs never developed fully, or they may not have manifested at all. When feeding, you need to find some other method of making the blood flow. A number of Caitiff and high Generation vampires often manifest this Flaw."
ttrpg_sources = list(/datum/source_book/vtm20 = 481)
value = -2
mob_trait = TRAIT_DULLFANGS
gain_text = span_notice("Your fangs feel dull.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
name = "One Arm"
desc = "You're missing your an arm. That just ain't right."
icon = FA_ICON_HAND
ttrpg_sources = list(/datum/source_book/wta20 = 474)
value = -3
gain_text = span_warning("You can't feel your arm!")
lose_text = span_notice("Huh? Your arm is back...")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
/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_sources = list(/datum/source_book/vtm20 = 482)
// TTRPG accurate would be -3? But this is also missing the max Appearance lock..
value = -1
mob_trait = TRAIT_PERMAFANGS
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// 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."}
ttrpg_sources = list(/datum/source_book/wta20 = 484)
value = -3
mob_trait = TRAIT_PIERCED_VEIL
icon = FA_ICON_MASKS_THEATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ GLOBAL_LIST_INIT(prey_exclusion_choice, list(
/datum/quirk/darkpack/prey_exclusion
name = "Prey Exclusion"
desc = "You refuse to hunt a certain kind of prey. When joining the game, you'll have to select what type of NPC you cant feed from. Ventrue cannot take this flaw."
ttrpg_sources = list(/datum/source_book/vtm20 = 485)
value = -1
mob_trait = TRAIT_PREY_EXCLUSION
gain_text = span_notice("You feel very picky about what type of person you feed from.")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
//Vampire The Masquerade 20th Anniversary Edition, 485
/datum/quirk/darkpack/speech_impediment
name = "Speech Impediment"
desc = "You have a stammer that hampers verbal communication."
icon = FA_ICON_COMMENT_SLASH
ttrpg_sources = list(/datum/source_book/vtm20 = 485)
value = -1
gain_text = span_danger("You start worrying about what you're saying.")
lose_text = span_notice("You feel easier about talking again.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ GLOBAL_LIST_INIT(territorial_type_choices, init_territorial_type_choices())
/datum/quirk/darkpack/territorial
name = "Territorial"
desc = "You are extremely territorial, and can only feed in one particular area. You react with hostility if another vampire enters your territory without your notice - and if they feed without your permission, violence is sure to break out, as they're taking your food and resources. You are reluctant to leave your territory unless necessary. Your territory is the only area where you may feed."
ttrpg_sources = list(/datum/source_book/vtm20 = 486)
value = -2
mob_trait = TRAIT_VAMPIRE_TERRITORIAL
gain_text = span_notice("You need to protect your hunting grounds, your herd, your territory.")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/datum/quirk/darkpack/vengeful
name = "Vengeful"
desc = "You have a score to settle, incurred either during your mortal days or when you were Embraced. You are obsessed with taking vengeance against a particular individual or group, and it is the overriding priority in every situation. This is a roleplay trait and does not incur any gameplay mechanics - by taking it, you will be expected to roleplay a character obsessed with vengeance."
ttrpg_sources = list(/datum/source_book/vtm20 = 486)
value = -1 // its a 2pt flaw in tabletop but lets be honest bro
gain_text = span_notice("You become obsessed with vengeance.")
lose_text = span_notice("You don't really care about vengeance anymore.")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/datum/quirk/darkpack/victim_of_the_masquerade
name = "Victim of the Masquerade"
desc = "The Camarilla's propaganda machine did a good job with you. Even after your character's Embrace, they refused to believe they are a vampire. They remain convinced there must be some logical explanation for their condition, and spend as much time as possible justifying it. You must make a willpower roll whenever feeding and each time you draw a bloodpoint from your victim. When you fail, your character faints for five seconds while also losing a point in their Humanity. You are expected to roleplay this flaw - such as insisting on eating regular food and not feeding."
ttrpg_sources = list(/datum/source_book/vtm20 = 486)
value = -2
mob_trait = TRAIT_VICTIM_OF_THE_MASQUERADE
gain_text = span_notice("Pff, I'm not a vamprie. Those don't exist.")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// 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.
Expand All @@ -10,6 +9,10 @@
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"}
*/
ttrpg_sources = list(
/datum/source_book/vtm20 = 486,
/datum/source_book/wta20 = 478,
)
value = -1
mob_trait = TRAIT_WEAK_WILLED
icon = FA_ICON_BRAIN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
/datum/quirk/darkpack/illegal_identity
name = "Illegal Identity"
desc = "Illegal immigrant? Died legally? Born a wolf? The cops aren't happy."
ttrpg_sources = list(/datum/source_book/homebrew = WE_MADE_IT_UP)
value = 0
quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_HIDE_FROM_SCAN
icon = FA_ICON_PERSON_CIRCLE_QUESTION
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// W20 p. 476
/datum/quirk/darkpack/beserker
name = "Berserker"
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."}
ttrpg_sources = list(/datum/source_book/wta20 = 476)
value = 2
icon = FA_ICON_ANGRY
allowed_splats = SPLAT_SHIFTERS
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/datum/quirk/darkpack/blush_of_health
name = "Blush of Health"
desc = "Some Kindred are capable of maintaining the illusion of life more convincingly than their peers. With minimal effort, you can appear flushed, warm, and breathing, making it significantly harder for others to identify you as one of the Undead. While active, you seem more alive than before."
ttrpg_sources = list(/datum/source_book/vtm20 = 480)
value = 1
mob_trait = TRAIT_BLUSH_OF_HEALTH
gain_text = span_notice("A faint warmth spreads across your skin as the blush of health settles over you.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
desc = {"You are naturally calm and do not easily fly off the
handle. You receive two extra dice when attempting to
resist a frenzy. Brujah may not take this Merit."}
ttrpg_sources = list(/datum/source_book/vtm20 = 485)
value = 3
mob_trait = TRAIT_CALM_HEART
icon = FA_ICON_HEART
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// 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."}
ttrpg_sources = list(/datum/source_book/vtm20 = 493)
value = 1
mob_trait = TRAIT_DECEPTIVE_AURA
icon = FA_ICON_TEMPERATURE_HIGH
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/datum/quirk/darkpack/eat_food
name = "Eat Food"
desc = "Unlike most of the Undead, you retain the ability to eat and digest food normally, a semblance of your mortal life. While you gain no nourishment from it, you can consume food without the usual revulsion Kindred experience. Be warned: what goes down must come up, eventually."
ttrpg_sources = list(/datum/source_book/vtm20 = 480)
value = 1
mob_trait = TRAIT_EAT_FOOD
gain_text = span_notice("Your stomach stirs as you feel the organ come to life. You can now eat food.")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/datum/quirk/darkpack/efficient_digestion
name = "Efficient Digestion"
desc = "You are able to draw more than the usual amount of nourishment from blood. When feeding, you gain an additional point to your blood pool for every two points of blood you consume."
ttrpg_sources = list(/datum/source_book/vtm20 = 480)
value = 3
mob_trait = TRAIT_EFFICIENT_DIGESTION
gain_text = span_notice("You feel as if you'll be satiated with ease.")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// 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."
ttrpg_sources = list(/datum/source_book/wta20 = 472)
value = 2
mob_trait = TRAIT_FAIR_GLABRO
icon = FA_ICON_PERSON_HALF_DRESS
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//Vampire the Masquerade 20th Anniversary Edition, 493
/datum/quirk/darkpack/hidden_diablerie
name = "Hidden Diablerie"
desc = "The tell-tale black streaks of diablerie do not manifest in your aura."
ttrpg_sources = list(/datum/source_book/vtm20 = 493)
value = 3
mob_trait = TRAIT_HIDDEN_DIABLERIE
allowed_splats = list(SPLAT_KINDRED)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// 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."}
ttrpg_sources = list(/datum/source_book/wta20 = 473)
value = 7
mob_trait = TRAIT_METAMORPH
// I love the greg sam. sa
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
// 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"}
*/
ttrpg_sources = list(
/datum/source_book/ghouls_and_revenants = 137,
/datum/source_book/hunterhunted2 = 43,
)
value = 2
mob_trait = TRAIT_PALE_AURA
icon = FA_ICON_TEMPERATURE_EMPTY
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// 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."}
ttrpg_sources = list(/datum/source_book/wta20 = 475)
value = 1
mob_trait = TRAIT_TIME_SENSE
icon = FA_ICON_STOPWATCH
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
/datum/quirk/darkpack/touch_of_the_wyld
name = "Touch of the Wyld"
desc = "Unlike nearly all other undead, you have no obvious Wyrmtaint. You are invisible to those who have the ability to naturally sense the Wyrm."
ttrpg_sources = list(/datum/source_book/vampire_wild_west = 114)
value = 5
mob_trait = TRAIT_HIDDEN_WYRMTAINT
icon = FA_ICON_TEMPERATURE_HIGH
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// V20 p. 494
/datum/quirk/darkpack/unbondable
name = "Unbondable"
desc = "You are immune to being blood bound. Tremere cannot take this Merit."
ttrpg_sources = list(/datum/source_book/vtm20 = 494)
value = 5
mob_trait = TRAIT_UNBONDABLE
icon = FA_ICON_CHAIN_BROKEN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
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."}
ttrpg_sources = list(/datum/source_book/wta20 = 476)
value = 5
mob_trait = TRAIT_MERIT_UNTAMABLE
icon = FA_ICON_SHIELD_DOG
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Your night vision, however, far surpasses human nocturnal vision."}
// Perception is not real yet.
// You also notice movement more readily. You gain an extra die to all visually-based Perception rolls that involve movement or take place at night."}
ttrpg_sources = list(/datum/source_book/wta20 = 472)
value = 1
mob_trait = TRAIT_TRUE_NIGHT_VISION
icon = FA_ICON_DOG
Expand Down
Loading
Loading