Move legs to Appendage enumeration

This continues the transition away from a single action list.
This commit is contained in:
Jeremy Saklad 2021-06-11 14:55:55 -05:00
parent 0a99b5e11b
commit 99afbb0534
Signed by: Jeremy Saklad
GPG Key ID: 9CA2149583EDBF84
1 changed files with 127 additions and 22 deletions

View File

@ -46,6 +46,10 @@ class Value(enum.Enum):
# Cartographer's Hoard # Cartographer's Hoard
CARTOGRAPHERS_HOARD = 31250 CARTOGRAPHERS_HOARD = 31250
# Favours: The Church
# Various opportunity cards
CHURCH_FAVOURS = ACTION
# Collection Note: There's a 'Package' in London # Collection Note: There's a 'Package' in London
# Station VIII Lab # Station VIII Lab
COLLECTION_NOTE = ACTION COLLECTION_NOTE = ACTION
@ -61,6 +65,10 @@ class Value(enum.Enum):
# Ealing Gardens Butcher, 2 at a time # Ealing Gardens Butcher, 2 at a time
CRUSTACEAN_PINCER = (ACTION + DEEP_ZEE_CATCH)/2 CRUSTACEAN_PINCER = (ACTION + DEEP_ZEE_CATCH)/2
# Femur of a Surface Deer
# Dumbwaiter of Balmoral, 25 at a time
DEER_FEMUR = ACTION/25
# Favours: The Docks # Favours: The Docks
# Various opportunity cards # Various opportunity cards
DOCK_FAVOURS = ACTION DOCK_FAVOURS = ACTION
@ -69,6 +77,18 @@ class Value(enum.Enum):
# No consistent source # No consistent source
EYELESS_SKULL = cp_model.INT32_MAX EYELESS_SKULL = cp_model.INT32_MAX
# Holy Relic of the Thigh of Saint Fiacre
# Jericho Locks statue, 2 at a time
FIACRE_THIGH = (ACTION + 4*CHURCH_FAVOURS)/2
# Fin Bones, Collected
# Hunt and dissect Pinewood Shark, 40 at a time
FIN_BONES = (11*ACTION)/40
# Amber-Crusted Fin
# Helicon House
AMBER_FIN = ACTION + 10*FIN_BONES
# Five-Pointed Ribcage # Five-Pointed Ribcage
# Upwards # Upwards
FIVE_POINTED_RIBCAGE = 9*ACTION + CARTOGRAPHERS_HOARD FIVE_POINTED_RIBCAGE = 9*ACTION + CARTOGRAPHERS_HOARD
@ -92,6 +112,10 @@ class Value(enum.Enum):
# Anning and Daughters # Anning and Daughters
FOSSILISED_FORELIMB = 50*HINTERLAND_SCRIP FOSSILISED_FORELIMB = 50*HINTERLAND_SCRIP
# Hedonist
# Handsome Townhouse, 3cp at a time
HEDONIST_CP = ACTION/3
# Human Arm # Human Arm
# These are accumulated while acquiring other qualities. # These are accumulated while acquiring other qualities.
HUMAN_ARM = 0 HUMAN_ARM = 0
@ -110,6 +134,10 @@ class Value(enum.Enum):
# Ealing Gardens statue, 2 at a time # Ealing Gardens statue, 2 at a time
IVORY_HUMERUS = (ACTION + 4*BOHEMIAN_FAVOURS)/2 IVORY_HUMERUS = (ACTION + 4*BOHEMIAN_FAVOURS)/2
# Femur of a Jurassic Beast
# Brawling for yourself, large Bone Market crate, 12 at a time
JURASSIC_FEMUR = (10*ACTION)/12
# Knotted Humerus # Knotted Humerus
# These are accumulated while acquiring other qualities. # These are accumulated while acquiring other qualities.
KNOTTED_HUMERUS = 0 KNOTTED_HUMERUS = 0
@ -117,6 +145,14 @@ class Value(enum.Enum):
# Nevercold Brass Sliver # Nevercold Brass Sliver
NEVERCOLD_BRASS = 1 NEVERCOLD_BRASS = 1
# Parabolan Orange-apple
# Parabolan Base-camp, electricity and hedonism, 2 at a time
ORANGE_APPLE = (2*ACTION + 100*BONE_FRAGMENT + 21*HEDONIST_CP)/2
# Ivory Femur
# Bohemian Sculptress
IVORY_FEMUR = ACTION + 750*BONE_FRAGMENT + 3*ORANGE_APPLE
# Pentagrammic Skull # Pentagrammic Skull
# Upwards # Upwards
PENTAGRAMMIC_SKULL = 9*ACTION PENTAGRAMMIC_SKULL = 9*ACTION
@ -164,6 +200,10 @@ class Value(enum.Enum):
# Plain of Thirsty Grasses # Plain of Thirsty Grasses
PALAEONTOLOGICAL_DISCOVERY = (ACTION + 140*SURVEY)/6 PALAEONTOLOGICAL_DISCOVERY = (ACTION + 140*SURVEY)/6
# Helical Thighbone
# Results of Excavation, 6 at a time
HELICAL_THIGH = (2*PALAEONTOLOGICAL_DISCOVERY)/6
# Leviathan Frame # Leviathan Frame
# Results of Excavation # Results of Excavation
LEVIATHAN_FRAME = 25*PALAEONTOLOGICAL_DISCOVERY LEVIATHAN_FRAME = 25*PALAEONTOLOGICAL_DISCOVERY
@ -206,6 +246,10 @@ class Value(enum.Enum):
# Expedition at Station VIII # Expedition at Station VIII
PRISMATIC_FRAME = ACTION + OIL_OF_COMPANIONSHIP + 98*RUMOUR_OF_THE_UPPER_RIVER PRISMATIC_FRAME = ACTION + OIL_OF_COMPANIONSHIP + 98*RUMOUR_OF_THE_UPPER_RIVER
# Unidentified Thigh Bone
# These are accumulated while acquiring other qualities.
UNIDENTIFIED_THIGH = 0
# Nodule of Warm Amber # Nodule of Warm Amber
WARM_AMBER = 10 WARM_AMBER = 10
@ -241,6 +285,10 @@ class Value(enum.Enum):
# Laboratory Research # Laboratory Research
SKELETON_WITH_SEVEN_NECKS = 16*ACTION + 1000*NEVERCOLD_BRASS + WARBLER_SKELETON SKELETON_WITH_SEVEN_NECKS = 16*ACTION + 1000*NEVERCOLD_BRASS + WARBLER_SKELETON
# Withered Tentacle
# Helicon House, 3 at a time
WITHERED_TENTACLE = (ACTION + 5*WARM_AMBER)/3
# Adds a fully-reified implication using an intermediate Boolean variable. # Adds a fully-reified implication using an intermediate Boolean variable.
def NewIntermediateBoolVar(self, name, expression, domain): def NewIntermediateBoolVar(self, name, expression, domain):
@ -650,6 +698,16 @@ class Appendage(enum.Enum):
amalgamy = 1 amalgamy = 1
) )
AMBER_FIN = Action(
"Attach the Amber-Crusted Fin to your (Skeleton Type)",
cost = Value.ACTION.value + Value.AMBER_FIN.value,
value = 1500,
limbs_needed = -1,
fins = 1,
amalgamy = 1,
menace = 1
)
BAT_WING = Action( BAT_WING = Action(
"Add a Bat Wing to your (Skeleton Type)", "Add a Bat Wing to your (Skeleton Type)",
cost = Value.ACTION.value + Value.BAT_WING.value, cost = Value.ACTION.value + Value.BAT_WING.value,
@ -667,6 +725,32 @@ class Appendage(enum.Enum):
menace = 1 menace = 1
) )
DEER_FEMUR = Action(
"Apply the Femur of a Surface Deer to your (Skeleton Type)",
cost = Value.ACTION.value + Value.DEER_FEMUR.value,
value = 10,
limbs_needed = -1,
legs = 1,
menace = -1
)
# Counter-Church theology from this scales with torso style and is implemented separately
FIACRE_THIGH = Action(
"Affix Saint Fiacre's Thigh Relic to your (Skeleton Type)",
cost = Value.ACTION.value + Value.FIACRE_THIGH.value,
value = 1250,
limbs_needed = -1,
legs = 1
)
FIN_BONES = Action(
"Put Fins on your (Skeleton Type)",
cost = Value.ACTION.value + Value.FIN_BONES.value,
value = 50,
limbs_needed = -1,
fins = 1
)
FOSSILISED_FORELIMB = Action( FOSSILISED_FORELIMB = Action(
"Apply a Fossilised Forelimb to your (Skeleton Type)", "Apply a Fossilised Forelimb to your (Skeleton Type)",
cost = Value.ACTION.value + Value.FOSSILISED_FORELIMB.value, cost = Value.ACTION.value + Value.FOSSILISED_FORELIMB.value,
@ -676,6 +760,15 @@ class Appendage(enum.Enum):
antiquity = 2 antiquity = 2
) )
HELICAL_THIGH = Action(
"Affix the Helical Thighbone to your (Skeleton Type)",
cost = Value.ACTION.value + Value.HELICAL_THIGH.value,
value = 300,
limbs_needed = -1,
legs = 1,
amalgamy = 2
)
HUMAN_ARM = Action( HUMAN_ARM = Action(
"Join a Human Arm to your (Skeleton Type)", "Join a Human Arm to your (Skeleton Type)",
cost = Value.ACTION.value + Value.HUMAN_ARM.value, cost = Value.ACTION.value + Value.HUMAN_ARM.value,
@ -685,6 +778,14 @@ class Appendage(enum.Enum):
menace = -1 menace = -1
) )
IVORY_FEMUR = Action(
"Apply an Ivory Femur to your (Skeleton Type)",
cost = Value.ACTION.value + Value.IVORY_FEMUR.value,
value = 6500,
limbs_needed = -1,
legs = 1
)
IVORY_HUMERUS = Action( IVORY_HUMERUS = Action(
"Apply an Ivory Humerus to your (Skeleton Type)", "Apply an Ivory Humerus to your (Skeleton Type)",
cost = Value.ACTION.value + Value.IVORY_HUMERUS.value, cost = Value.ACTION.value + Value.IVORY_HUMERUS.value,
@ -693,6 +794,15 @@ class Appendage(enum.Enum):
arms = 1 arms = 1
) )
JURASSIC_THIGH = Action(
"Apply a Jurassic Thigh Bone to your (Skeleton Type)",
cost = Value.ACTION.value + Value.JURASSIC_FEMUR.value,
value = 300,
limbs_needed = -1,
legs = 1,
antiquity = 1
)
KNOTTED_HUMERUS = Action( KNOTTED_HUMERUS = Action(
"Apply a Knotted Humerus to your (Skeleton Type)", "Apply a Knotted Humerus to your (Skeleton Type)",
cost = Value.ACTION.value + Value.KNOTTED_HUMERUS.value, cost = Value.ACTION.value + Value.KNOTTED_HUMERUS.value,
@ -712,6 +822,23 @@ class Appendage(enum.Enum):
menace = 1 menace = 1
) )
UNIDENTIFIED_THIGH = Action(
"Apply an Unidentified Thigh Bone to your (Skeleton Type)",
cost = Value.ACTION.value + Value.UNIDENTIFIED_THIGH.value,
value = 100,
limbs_needed = -1,
legs = 1
)
WITHERED_TENTACLE = Action(
"Put a Withered Tentacle on your (Skeleton Type)",
cost = Value.ACTION.value + Value.WITHERED_TENTACLE.value,
value = 250,
limbs_needed = -1,
tentacles = 1,
antiquity = -1
)
def __str__(self): def __str__(self):
return str(self.value) return str(self.value)
@ -750,28 +877,6 @@ def create_data_model():
data['zoological_mania'] = Declaration.AMPHIBIAN data['zoological_mania'] = Declaration.AMPHIBIAN
data['actions'] = [torso.value for torso in Torso] + [skull.value for skull in Skull] + [appendage.value for appendage in Appendage] + [ data['actions'] = [torso.value for torso in Torso] + [skull.value for skull in Skull] + [appendage.value for appendage in Appendage] + [
# Dumbwaiter of Balmoral, 25 at a time
Action("Apply the Femur of a Surface Deer to your (Skeleton Type)", cost = Value.ACTION.value*1.04, value = 10, limbs_needed = -1, legs = 1, menace = -1),
# Accumulated while trying to get other things
Action("Apply an Unidentified Thigh Bone to your (Skeleton Type)", cost = Value.ACTION.value, value = 100, limbs_needed = -1, legs = 1),
# Brawling, 12 at a time
Action("Apply a Jurassic Thigh Bone to your (Skeleton Type)", cost = Value.ACTION.value*(11/6), value = 300, limbs_needed = -1, legs = 1, antiquity = 1),
# Jericho Locks, 5 actions (Favours: the Church) for 2
# Counter-Church theology from this scales with torso style and is implemented separately
Action("Affix Saint Fiacre's Thigh Relic to your (Skeleton Type)", cost = Value.ACTION.value*3.5, value = 1250, limbs_needed = -1, legs = 1),
# Palaeontological Discoveries, Plain of Thirsty Grasses
Action("Affix the Helical Thighbone to your (Skeleton Type)", cost = Value.ACTION.value + Value.SURVEY.value*(70/9), value = 300, limbs_needed = -1, legs = 1, amalgamy = 2),
# Parabolan Orange-Apples, Hedonist, 3cp/action
Action("Apply an Ivory Femur to your (Skeleton Type)", cost = 900 + Value.ACTION.value*15.5, value = 6500, limbs_needed = -1, legs = 1),
# Hunt and dissect Pinewood Shark, 40 at a time
Action("Put Fins on your (Skeleton Type)", cost = Value.ACTION.value*(51/40), value = 50, limbs_needed = -1, fins = 1),
# Combination of 10 Fins
Action("Attach the Amber-Crusted Fin to your (Skeleton Type)", cost = Value.ACTION.value*(15/4), value = 1500, limbs_needed = -1, fins = 1, amalgamy = 1, menace = 1),
# Helicon House, 3 at a time
Action("Put a Withered Tentacle on your (Skeleton Type)", cost = 50/3 + Value.ACTION.value*4/3, value = 250, limbs_needed = -1, tentacles = 1, antiquity = -1),
# Carpenter's Granddaughter, 2 at a time # Carpenter's Granddaughter, 2 at a time
Action("Apply Plaster Tail Bones to your (Skeleton Type)", cost = Value.ACTION.value*1.5 + Value.SURVEY.value*5, value = 250, tails_needed = -1, tails = 1, implausibility = 1), Action("Apply Plaster Tail Bones to your (Skeleton Type)", cost = Value.ACTION.value*1.5 + Value.SURVEY.value*5, value = 250, tails_needed = -1, tails = 1, implausibility = 1),
Action("Apply a Tomb-Lion's Tail to your (Skeleton Type)", cost = 220 + Value.ACTION.value*2, value = 250, tails_needed = -1, tails = 1, antiquity = 1), Action("Apply a Tomb-Lion's Tail to your (Skeleton Type)", cost = 220 + Value.ACTION.value*2, value = 250, tails_needed = -1, tails = 1, antiquity = 1),