Move tail values to Value
The cost of applying each tail has been broken down and moved to value. Skipping tails remains slightly flawed, and will be cleaned up in the future. Appendage has once again been cleaned up and sorted lexicographically. Removing and skipping tails remain at the bottom, as they must be done after adding tails. Due to integer overflow issues, both Value.EYELESS_SKULL and Value.OBSIDIAN_TAIL now have a value of cp_model.INT32_MAX/2. If this issue recurs, dividing by successively larger powers of 2 may be necessary.
This commit is contained in:
parent
276ead2fbb
commit
1204909151
@ -75,7 +75,7 @@ class Value(enum.Enum):
|
||||
|
||||
# Eyeless Skull
|
||||
# No consistent source
|
||||
EYELESS_SKULL = cp_model.INT32_MAX
|
||||
EYELESS_SKULL = cp_model.INT32_MAX/2
|
||||
|
||||
# Holy Relic of the Thigh of Saint Fiacre
|
||||
# Jericho Locks statue, 2 at a time
|
||||
@ -145,6 +145,10 @@ class Value(enum.Enum):
|
||||
# Nevercold Brass Sliver
|
||||
NEVERCOLD_BRASS = 1
|
||||
|
||||
# Obsidian Chitin Tail
|
||||
# No consistent source
|
||||
OBSIDIAN_TAIL = cp_model.INT32_MAX/2
|
||||
|
||||
# Parabolan Orange-apple
|
||||
# Parabolan Base-camp, electricity and hedonism, 2 at a time
|
||||
ORANGE_APPLE = (2*ACTION + 100*BONE_FRAGMENT + 21*HEDONIST_CP)/2
|
||||
@ -188,6 +192,10 @@ class Value(enum.Enum):
|
||||
# Laboratory Research
|
||||
SURVEY = 6*ACTION/25
|
||||
|
||||
# Plaster Tail Bones
|
||||
# Carpenter's Granddaughter, 2 at a time
|
||||
PLASTER_TAIL_BONES = (ACTION + 10*SURVEY)/2
|
||||
|
||||
# Human Ribcage
|
||||
# Ealing Gardens
|
||||
HUMAN_RIBCAGE = ACTION + 15*SURVEY
|
||||
@ -242,6 +250,10 @@ class Value(enum.Enum):
|
||||
# Rumour of the Upper River
|
||||
RUMOUR_OF_THE_UPPER_RIVER = 250
|
||||
|
||||
# Jet Black Stinger
|
||||
# Hunting with Sophia's, 5 at a time
|
||||
BLACK_STINGER = (ACTION + 5*RUMOUR_OF_THE_UPPER_RIVER)/5
|
||||
|
||||
# Prismatic Frame
|
||||
# Expedition at Station VIII
|
||||
PRISMATIC_FRAME = ACTION + OIL_OF_COMPANIONSHIP + 98*RUMOUR_OF_THE_UPPER_RIVER
|
||||
@ -277,6 +289,10 @@ class Value(enum.Enum):
|
||||
# Ealing Gardens Butcher, 2 at a time
|
||||
TERROR_BIRD_WING = (ACTION + 100*BONE_FRAGMENT + 25*WARM_AMBER)/2
|
||||
|
||||
# Tomb-Lion's Tail
|
||||
# Ealing Gardens Butcher
|
||||
TOMB_LION_TAIL = ACTION + 200*BONE_FRAGMENT + 2*WARM_AMBER
|
||||
|
||||
# Warbler Skeleton
|
||||
# Ealing Gardens Butcher
|
||||
WARBLER_SKELETON = ACTION + 130*BONE_FRAGMENT + 2*WARM_AMBER
|
||||
@ -725,6 +741,14 @@ class Appendage(enum.Enum):
|
||||
menace = -1
|
||||
)
|
||||
|
||||
BLACK_STINGER = Action("Apply a Jet Black Stinger to your (Skeleton Type)",
|
||||
cost = Value.ACTION.value + Value.BLACK_STINGER.value,
|
||||
value = 50,
|
||||
tails_needed = -1,
|
||||
tails = 1,
|
||||
menace = 2
|
||||
)
|
||||
|
||||
CRUSTACEAN_PINCER = Action(
|
||||
"Apply a Crustacean Pincer to your (Skeleton Type)",
|
||||
cost = Value.ACTION.value + Value.CRUSTACEAN_PINCER.value,
|
||||
@ -820,6 +844,24 @@ class Appendage(enum.Enum):
|
||||
amalgamy = 1
|
||||
)
|
||||
|
||||
OBSIDIAN_TAIL = Action(
|
||||
"Apply an Obsidian Chitin Tail to your (Skeleton Type)",
|
||||
cost = Value.ACTION.value + Value.OBSIDIAN_TAIL.value,
|
||||
value = 500,
|
||||
tails_needed = -1,
|
||||
tails = 1,
|
||||
amalgamy = 1
|
||||
)
|
||||
|
||||
PLASTER_TAIL_BONES = Action(
|
||||
"Apply Plaster Tail Bones to your (Skeleton Type)",
|
||||
cost = Value.ACTION.value + Value.PLASTER_TAIL_BONES.value,
|
||||
value = 250,
|
||||
tails_needed = -1,
|
||||
tails = 1,
|
||||
implausibility = 1
|
||||
)
|
||||
|
||||
TERROR_BIRD_WING = Action(
|
||||
"Add the Wing of a Young Terror Bird to your (Skeleton Type)",
|
||||
cost = Value.ACTION.value + Value.TERROR_BIRD_WING.value,
|
||||
@ -830,6 +872,15 @@ class Appendage(enum.Enum):
|
||||
menace = 1
|
||||
)
|
||||
|
||||
TOMB_LION_TAIL = Action(
|
||||
"Apply a Tomb-Lion's Tail to your (Skeleton Type)",
|
||||
cost = Value.ACTION.value + Value.TOMB_LION_TAIL.value,
|
||||
value = 250,
|
||||
tails_needed = -1,
|
||||
tails = 1,
|
||||
antiquity = 1
|
||||
)
|
||||
|
||||
UNIDENTIFIED_THIGH = Action(
|
||||
"Apply an Unidentified Thigh Bone to your (Skeleton Type)",
|
||||
cost = Value.ACTION.value + Value.UNIDENTIFIED_THIGH.value,
|
||||
@ -838,6 +889,15 @@ class Appendage(enum.Enum):
|
||||
legs = 1
|
||||
)
|
||||
|
||||
WITHERED_TAIL = Action(
|
||||
"Apply a Withered Tentacle as a tail on your (Skeleton Type)",
|
||||
cost = Value.ACTION.value + Value.WITHERED_TENTACLE.value,
|
||||
value = 250,
|
||||
tails_needed = -1,
|
||||
tails = 1,
|
||||
antiquity = -1
|
||||
)
|
||||
|
||||
WITHERED_TENTACLE = Action(
|
||||
"Put a Withered Tentacle on your (Skeleton Type)",
|
||||
cost = Value.ACTION.value + Value.WITHERED_TENTACLE.value,
|
||||
@ -847,24 +907,18 @@ class Appendage(enum.Enum):
|
||||
antiquity = -1
|
||||
)
|
||||
|
||||
# Carpenter's Granddaughter, 2 at a time
|
||||
PLASTER_TAIL = 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)
|
||||
|
||||
TOMB_LION_TAIL = 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)
|
||||
|
||||
# Geology of Winewound
|
||||
BLACK_STINGER = Action("Apply a Jet Black Stinger to your (Skeleton Type)", cost = Value.ACTION.value*2 + Value.SURVEY.value, value = 50, tails_needed = -1, tails = 1, menace = 2)
|
||||
|
||||
# No consistent source
|
||||
# OBSIDIAN_TAIL = Action("Apply an Obsidian Chitin Tail to your (Skeleton Type)", cost = cp_model.INT32_MAX, value = 500, tails_needed = -1, tails = 1, amalgamy = 1)
|
||||
|
||||
# Helicon House, 3 at a time
|
||||
WITHERED_TAIL = Action("Apply a Withered Tentacle as a tail on your (Skeleton Type)", cost = 50/3 + Value.ACTION.value*4/3, value = 250, tails_needed = -1, tails = 1, antiquity = -1)
|
||||
REMOVE_TAIL = Action(
|
||||
"Remove the tail from your (Skeleton Type)",
|
||||
cost = Value.ACTION.value,
|
||||
tails = -1
|
||||
)
|
||||
|
||||
# This actually sets Skeleton: Tails Needed to 0
|
||||
SKIP_TAILS = Action("Decide your Tailless Animal needs no tail", cost = Value.ACTION.value, tails_needed = -1)
|
||||
|
||||
REMOVE_TAIL = Action("Remove the tail from your (Skeleton Type)", cost = Value.ACTION.value, tails = -1)
|
||||
SKIP_TAILS = Action(
|
||||
"Decide your Tailless Animal needs no tail",
|
||||
cost = Value.ACTION.value,
|
||||
tails_needed = -1
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.value)
|
||||
|
Loading…
Reference in New Issue
Block a user