Move Skull values to Value enumeration

The cost of applying each skull has been broken down and moved to Value.

Skull has been cleaned up and ordered lexicographically.
This commit is contained in:
Jeremy Saklad 2021-06-09 12:56:24 -05:00
parent f1e2f75cf6
commit 245248f320
Signed by: Jeremy Saklad
GPG Key ID: 9CA2149583EDBF84
1 changed files with 194 additions and 21 deletions

View File

@ -35,6 +35,10 @@ class Value(enum.Enum):
# Bone Fragment # Bone Fragment
BONE_FRAGMENT = 1 BONE_FRAGMENT = 1
# Bright Brass Skull
# Merrigans Exchange
BRASS_SKULL = 6250
# Cartographer's Hoard # Cartographer's Hoard
CARTOGRAPHERS_HOARD = 31250 CARTOGRAPHERS_HOARD = 31250
@ -45,23 +49,62 @@ class Value(enum.Enum):
# Volume of Collated Research # Volume of Collated Research
COLLATED_RESEARCH = 250 COLLATED_RESEARCH = 250
# Favours: The Docks
# Various opportunity cards
DOCK_FAVOURS = ACTION
# Eyeless Skull
# No consistent source
EYELESS_SKULL = cp_model.INT32_MAX
# Five-Pointed Ribcage # Five-Pointed Ribcage
# Upwards # Upwards
FIVE_POINTED_RIBCAGE = 9*ACTION + CARTOGRAPHERS_HOARD FIVE_POINTED_RIBCAGE = 9*ACTION + CARTOGRAPHERS_HOARD
# Esteem of the Guild
# Jericho Parade, 2 at a time
GUILD_ESTEEM = (ACTION + 5*DOCK_FAVOURS)/2
# Skull in Coral
# Persephone, 1-2 at a time
CORAL_SKULL = 1.5*(2*ACTION + 3*GUILD_ESTEEM)
# Headless Skeleton # Headless Skeleton
# These are accumulated while acquiring other qualities. # These are accumulated while acquiring other qualities.
HEADLESS_SKELETON = 0 HEADLESS_SKELETON = 0
# Hinterland Scrip
HINTERLAND_SCRIP = 50
# Crate of Incorruptible Biscuits
INCORRUPTIBLE_BISCUITS = 250
# Inkling of Identity
INKLING_OF_IDENTITY = 10
# A Custom-Engraved Skull
# Feast of the Exceptional Rose, sent by one player and accepted by another
ENGRAVED_SKULL = 2*ACTION + 200*INKLING_OF_IDENTITY
# Nevercold Brass Sliver # Nevercold Brass Sliver
NEVERCOLD_BRASS = 1 NEVERCOLD_BRASS = 1
# Pentagrammic Skull
# Upwards
PENTAGRAMMIC_SKULL = 9*ACTION
# Hand-picked Peppercaps
PEPPERCAPS = HINTERLAND_SCRIP
# Knob of Scintillack # Knob of Scintillack
SCINTILLACK = 250 SCINTILLACK = 250
# Searing Enigma # Searing Enigma
SEARING_ENIGMA = 6250 SEARING_ENIGMA = 6250
# Carved Ball of Stygian Ivory
STYGIAN_IVORY = 250
# Preserved Surface Blooms # Preserved Surface Blooms
SURFACE_BLOOMS = 250 SURFACE_BLOOMS = 250
@ -105,6 +148,18 @@ class Value(enum.Enum):
# Helicon House # Helicon House
FLOURISHING_RIBCAGE = ACTION + HUMAN_RIBCAGE + THORNED_RIBCAGE FLOURISHING_RIBCAGE = ACTION + HUMAN_RIBCAGE + THORNED_RIBCAGE
# Time Remaining in the Woods
# Compel Ghillie, 5 at a time
TIME_REMAINING_IN_THE_WOODS = (ACTION + 4*COLLATED_RESEARCH)/5
# Observation: Fox
# Balmoral Woods
FOX_OBSERVATION = 10*ACTION + 8*TIME_REMAINING_IN_THE_WOODS
# Doubled Skull
# Keeper of the Marigold Menagerie
DOUBLED_SKULL = ACTION + FOX_OBSERVATION
# Nodule of Trembling Amber # Nodule of Trembling Amber
TREMBLING_AMBER = 1250 TREMBLING_AMBER = 1250
@ -112,6 +167,10 @@ class Value(enum.Enum):
# Helicon House # Helicon House
RIBCAGE_WITH_EIGHT_SPINES = ACTION + 3*SEARING_ENIGMA + THORNED_RIBCAGE + 3*TREMBLING_AMBER RIBCAGE_WITH_EIGHT_SPINES = ACTION + 3*SEARING_ENIGMA + THORNED_RIBCAGE + 3*TREMBLING_AMBER
# Rubbery Skull
# Flute Street, including travel due to quality cap
RUBBERY_SKULL = 25*ACTION
# Rumour of the Upper River # Rumour of the Upper River
RUMOUR_OF_THE_UPPER_RIVER = 250 RUMOUR_OF_THE_UPPER_RIVER = 250
@ -122,6 +181,18 @@ class Value(enum.Enum):
# Nodule of Warm Amber # Nodule of Warm Amber
WARM_AMBER = 10 WARM_AMBER = 10
# Horned Skull
# Ealing Gardens Butcher
HORNED_SKULL = ACTION + 1000*BONE_FRAGMENT + 5*WARM_AMBER
# Plated Skull
# Ealing Gardens Butcher
PLATED_SKULL = ACTION + 1750*BONE_FRAGMENT + INCORRUPTIBLE_BISCUITS + 25*WARM_AMBER
# Sabre-toothed Skull
# Ealing Gardens Butcher
SABRE_TOOTHED_SKULL = ACTION + 4900*BONE_FRAGMENT + 125*WARM_AMBER
# Warbler Skeleton # Warbler Skeleton
# Ealing Gardens Butcher # Ealing Gardens Butcher
WARBLER_SKELETON = ACTION + 130*BONE_FRAGMENT + 2*WARM_AMBER WARBLER_SKELETON = ACTION + 130*BONE_FRAGMENT + 2*WARM_AMBER
@ -387,41 +458,143 @@ class Torso(enum.Enum):
# Actions that are taken immediately after starting a skeleton. # Actions that are taken immediately after starting a skeleton.
class Skull(enum.Enum): class Skull(enum.Enum):
BRASS_SKULL = Action("Affix a Bright Brass Skull to your (Skeleton Type)", cost = 6450 + Value.ACTION.value, value = 6500, skulls_needed = -1, skulls = 1, implausibility = 2) BAPTIST_SKULL = Action(
"Duplicate the skull of John the Baptist, if you can call that a skull",
cost = Value.ACTION.value + 500*Value.BONE_FRAGMENT.value + 10*Value.PEPPERCAPS.value,
value = 1500,
skulls_needed = -1,
skulls = 1,
counter_church = 2
)
# No consistent source BRASS_SKULL = Action(
# EYELESS_SKULL = Action("Affix an Eyeless Skull to your (Skeleton Type)", cost = cp_model.INT32_MAX, value = 3000, skulls_needed = -1, skulls = 1, menace = 2) "Affix a Bright Brass Skull to your (Skeleton Type)",
cost = Value.ACTION.value + Value.BRASS_SKULL.value + 200*Value.NEVERCOLD_BRASS.value,
value = 6500,
skulls_needed = -1,
skulls = 1,
implausibility = 2
)
# Feast of the Exceptional Rose, 200 Inklings of Identity, action to send and receive it CORAL_SKULL = Action(
# ENGRAVED_SKULL = Action("Affix a Custom-Engraved Skull to your (Skeleton Type)", cost = 2000 + Value.ACTION.value*2, value = 10000, skulls_needed = -1, skulls = 1, exhaustion = 2) "Affix a Skull in Coral to your (Skeleton Type)",
cost = Value.ACTION.value + Value.CORAL_SKULL.value + Value.SCINTILLACK.value,
value = 1750,
skulls_needed = -1,
skulls = 1,
amalgamy = 2
)
HORNED_SKULL = Action("Affix a Horned Skull to your (Skeleton Type)", cost = 1050 + Value.ACTION.value*2, value = 1250, skulls_needed = -1, skulls = 1, antiquity = 1, menace = 2) DOUBLED_SKULL = Action(
"Affix a Doubled Skull to your (Skeleton Type)",
cost = Value.ACTION.value + Value.DOUBLED_SKULL.value,
value = 6250,
skulls_needed = -1,
skulls = 2,
amalgamy = 1,
antiquity = 2
)
SABRE_TOOTHED_SKULL = Action("Affix a Sabre-toothed Skull to your (Skeleton Type)", cost = 6150 + Value.ACTION.value*2, value = 6250, skulls_needed = -1, skulls = 1, antiquity = 1, menace = 1) # Adds Exhaustion
# ENGRAVED_SKULL = Action(
# "Affix a Custom-Engraved Skull to your (Skeleton Type)",
# cost = Value.ACTION.value + Value.ENGRAVED_SKULL.value,
# value = 10000,
# skulls_needed = -1,
# skulls = 1,
# exhaustion = 2
# )
# Upwards EYELESS_SKULL = Action(
PENTAGRAMMIC_SKULL = Action("Affix a Pentagrammic Skull to your (Skeleton Type)", cost = Value.ACTION.value*10, value = 1250, skulls_needed = -1, skulls = 1, amalgamy = 2, menace = 1) "Affix an Eyeless Skull to your (Skeleton Type)",
cost = Value.ACTION.value + Value.EYELESS_SKULL.value,
value = 3000,
skulls_needed = -1,
skulls = 1,
menace = 2
)
PLATED_SKULL = Action("Affix a Plated Skull to your (Skeleton Type)", cost = 2250 + Value.ACTION.value*2, value = 2500, skulls_needed = -1, skulls = 1, menace = 2) HORNED_SKULL = Action(
"Affix a Horned Skull to your (Skeleton Type)",
cost = Value.ACTION.value + Value.HORNED_SKULL.value,
value = 1250,
skulls_needed = -1,
skulls = 1,
antiquity = 1,
menace = 2
)
# Flute Street, including travel due to quality cap # Seeking the Name of Mr. Eaten
RUBBERY_SKULL = Action("Affix a Rubbery Skull to your (Skeleton Type)", cost = Value.ACTION.value*26, value = 600, skulls_needed = -1, skulls = 1, amalgamy = 1) # OWN_SKULL = Action(
# "Duplicate your own skull and affix it here",
# cost = Value.ACTION.value + 1000*Value.BONE_FRAGMENT.value,
# value = -250,
# skulls_needed = -1,
# skulls = 1
# )
# OWN_SKULL = Action("Duplicate your own skull and affix it here", cost = 1000 + Value.ACTION.value, value = -250, skulls_needed = -1, skulls = 1) PENTAGRAMMIC_SKULL = Action(
"Affix a Pentagrammic Skull to your (Skeleton Type)",
cost = Value.ACTION.value + Value.PENTAGRAMMIC_SKULL.value,
value = 1250,
skulls_needed = -1,
skulls = 1,
amalgamy = 2,
menace = 1
)
BAPTIST_SKULL = Action("Duplicate the skull of John the Baptist, if you can call that a skull", cost = 1000 + Value.ACTION.value, value = 1500, skulls_needed = -1, skulls = 1, counter_church = 2) PLATED_SKULL = Action(
"Affix a Plated Skull to your (Skeleton Type)",
cost = Value.ACTION.value + Value.PLATED_SKULL.value,
value = 2500,
skulls_needed = -1,
skulls = 1,
menace = 2
)
# Persephone, 6 actions (Favours: the Docks) for 2 Esteem of the Guild RUBBERY_SKULL = Action(
CORAL_SKULL = Action("Affix a Skull in Coral to your (Skeleton Type)", cost = Value.ACTION.value*25/3, value = 1750, skulls_needed = -1, skulls = 1, amalgamy = 2) "Affix a Rubbery Skull to your (Skeleton Type)",
cost = Value.ACTION.value + Value.RUBBERY_SKULL.value,
value = 600,
skulls_needed = -1,
skulls = 1,
amalgamy = 1
)
VAKE_SKULL = Action("Duplicate the Vake's skull and use it to decorate your (Skeleton Type)", cost = 6000 + Value.ACTION.value, value = 6500, skulls_needed = -1, skulls = 1, menace = 3) SABRE_TOOTHED_SKULL = Action(
"Affix a Sabre-toothed Skull to your (Skeleton Type)",
cost = Value.ACTION.value + Value.SABRE_TOOTHED_SKULL.value,
value = 6250,
skulls_needed = -1,
skulls = 1,
antiquity = 1,
menace = 1
)
# VICTIM_SKULL = Action("Cap this with a victims skull", cost = Value.ACTION.value, value = 250, skulls_needed = -1, skulls = 1) STYGIAN_IVORY = Action(
"Use a Carved Ball of Stygian Ivory to cap off your (Skeleton Type)",
cost = Value.ACTION.value + Value.STYGIAN_IVORY.value,
value = 250,
skulls_needed = -1
)
# Balmoral Woods (also gives Thorned Ribcage) VAKE_SKULL = Action(
DOUBLED_SKULL = Action("Affix a Doubled Skull to your (Skeleton Type)", cost = 2000 + Value.ACTION.value*14, value = 6250, skulls_needed = -1, skulls = 2, amalgamy = 1, antiquity = 2) "Duplicate the Vake's skull and use it to decorate your (Skeleton Type)",
cost = Value.ACTION.value + 6000*Value.BONE_FRAGMENT.value,
value = 6500,
skulls_needed = -1,
skulls = 1,
menace = 3
)
STYGIAN_IVORY = Action("Use a Carved Ball of Stygian Ivory to cap off your (Skeleton Type)", cost = 250 + Value.ACTION.value, value = 250, skulls_needed = -1) # Licentiate
# VICTIM_SKULL = Action(
# "Cap this with a victims skull",
# cost = Value.ACTION.value,
# value = 250,
# skulls_needed = -1,
# skulls = 1
# )
def __str__(self): def __str__(self):
return str(self.value) return str(self.value)