Bone-Market-Solver/bonemarketsolver/data/skulls.py
Jeremy Saklad b4319464a1
feat: Add Segmented Ribcage to skulls
This skull is unique for requiring a specific torso style, and for
adding additional limb slots.
2022-06-03 19:54:34 -05:00

164 lines
5.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

__all__ = ['Skull']
__author__ = "Jeremy Saklad"
from enum import Enum
from .costs import Cost
from ..objects.action import Action
class Skull(Enum):
"""An action that is taken immediately after starting a skeleton."""
__slots__ = '_value_', '_name_', '__objclass__'
BAPTIST_SKULL = Action(
"Duplicate the skull of John the Baptist, if you can call that a skull",
cost = Cost.ACTION.value + 500*Cost.BONE_FRAGMENT.value + 10*Cost.PEPPERCAPS.value,
value = 1250,
skulls_needed = -1,
skulls = 1,
counter_church = 1
)
BRASS_SKULL = Action(
"Affix a Bright Brass Skull to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.BRASS_SKULL.value + 200*Cost.NEVERCOLD_BRASS.value,
value = 6500,
skulls_needed = -1,
skulls = 1,
implausibility = 2
)
CORAL_SKULL = Action(
"Affix a Skull in Coral to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.CORAL_SKULL.value + Cost.SCINTILLACK.value,
value = 1750,
skulls_needed = -1,
skulls = 1,
amalgamy = 2
)
DOUBLED_SKULL = Action(
"Affix a Doubled Skull to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.DOUBLED_SKULL.value,
value = 6250,
skulls_needed = -1,
skulls = 2,
amalgamy = 1,
antiquity = 2
)
# Adds Exhaustion
ENGRAVED_SKULL = Action(
"Affix a Custom-Engraved Skull to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.ENGRAVED_SKULL.value,
value = 10000,
skulls_needed = -1,
skulls = 1,
exhaustion = 2
)
EYELESS_SKULL = Action(
"Affix an Eyeless Skull to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.EYELESS_SKULL.value,
value = 3000,
skulls_needed = -1,
skulls = 1,
menace = 2
)
HORNED_SKULL = Action(
"Affix a Horned Skull to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.HORNED_SKULL.value,
value = 1250,
skulls_needed = -1,
skulls = 1,
antiquity = 1,
menace = 2
)
# Seeking the Name of Mr. Eaten
OWN_SKULL = Action(
"Duplicate your own skull and affix it here",
cost = Cost.ACTION.value + 1000*Cost.BONE_FRAGMENT.value,
value = -250,
skulls_needed = -1,
skulls = 1
)
PENTAGRAMMIC_SKULL = Action(
"Affix a Pentagrammic Skull to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.PENTAGRAMMIC_SKULL.value,
value = 1250,
skulls_needed = -1,
skulls = 1,
amalgamy = 2,
menace = 1
)
PLATED_SKULL = Action(
"Affix a Plated Skull to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.PLATED_SKULL.value,
value = 2500,
skulls_needed = -1,
skulls = 1,
menace = 2
)
RUBBERY_SKULL = Action(
"Affix a Rubbery Skull to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.RUBBERY_SKULL.value,
value = 600,
skulls_needed = -1,
skulls = 1,
amalgamy = 1
)
SABRE_TOOTHED_SKULL = Action(
"Affix a Sabre-toothed Skull to your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.SABRE_TOOTHED_SKULL.value,
value = 6250,
skulls_needed = -1,
skulls = 1,
antiquity = 1,
menace = 1
)
# Requires Torso Style 110
SEGMENTED_RIBCAGE = Action(
'Affix a Segmented Ribcage as the "skull"',
cost = Cost.ACTION.value + Cost.SEGMENTED_RIBCAGE.value,
value = 250,
skulls_needed = -1,
limbs_needed = 4,
segments = 1
)
STYGIAN_IVORY = Action(
"Use a Carved Ball of Stygian Ivory to cap off your (Skeleton Type)",
cost = Cost.ACTION.value + Cost.STYGIAN_IVORY.value,
value = 250,
skulls_needed = -1
)
# Value, implausibility, and partially menace scale with repetition and are implemented separately
VAKE_SKULL = Action(
"Duplicate the Vake's skull and use it to decorate your (Skeleton Type)",
cost = Cost.ACTION.value + 6000*Cost.BONE_FRAGMENT.value,
skulls_needed = -1,
skulls = 1,
menace = 1
)
# Licentiate
VICTIM_SKULL = Action(
"Cap this with a victims skull",
cost = Cost.ACTION.value,
value = 250,
skulls_needed = -1,
skulls = 1
)
def __str__(self):
return str(self.value)