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
|
# Eyeless Skull
|
||||||
# No consistent source
|
# No consistent source
|
||||||
EYELESS_SKULL = cp_model.INT32_MAX
|
EYELESS_SKULL = cp_model.INT32_MAX/2
|
||||||
|
|
||||||
# Holy Relic of the Thigh of Saint Fiacre
|
# Holy Relic of the Thigh of Saint Fiacre
|
||||||
# Jericho Locks statue, 2 at a time
|
# Jericho Locks statue, 2 at a time
|
||||||
|
@ -145,6 +145,10 @@ class Value(enum.Enum):
|
||||||
# Nevercold Brass Sliver
|
# Nevercold Brass Sliver
|
||||||
NEVERCOLD_BRASS = 1
|
NEVERCOLD_BRASS = 1
|
||||||
|
|
||||||
|
# Obsidian Chitin Tail
|
||||||
|
# No consistent source
|
||||||
|
OBSIDIAN_TAIL = cp_model.INT32_MAX/2
|
||||||
|
|
||||||
# Parabolan Orange-apple
|
# Parabolan Orange-apple
|
||||||
# Parabolan Base-camp, electricity and hedonism, 2 at a time
|
# Parabolan Base-camp, electricity and hedonism, 2 at a time
|
||||||
ORANGE_APPLE = (2*ACTION + 100*BONE_FRAGMENT + 21*HEDONIST_CP)/2
|
ORANGE_APPLE = (2*ACTION + 100*BONE_FRAGMENT + 21*HEDONIST_CP)/2
|
||||||
|
@ -188,6 +192,10 @@ class Value(enum.Enum):
|
||||||
# Laboratory Research
|
# Laboratory Research
|
||||||
SURVEY = 6*ACTION/25
|
SURVEY = 6*ACTION/25
|
||||||
|
|
||||||
|
# Plaster Tail Bones
|
||||||
|
# Carpenter's Granddaughter, 2 at a time
|
||||||
|
PLASTER_TAIL_BONES = (ACTION + 10*SURVEY)/2
|
||||||
|
|
||||||
# Human Ribcage
|
# Human Ribcage
|
||||||
# Ealing Gardens
|
# Ealing Gardens
|
||||||
HUMAN_RIBCAGE = ACTION + 15*SURVEY
|
HUMAN_RIBCAGE = ACTION + 15*SURVEY
|
||||||
|
@ -242,6 +250,10 @@ class Value(enum.Enum):
|
||||||
# Rumour of the Upper River
|
# Rumour of the Upper River
|
||||||
RUMOUR_OF_THE_UPPER_RIVER = 250
|
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
|
# Prismatic Frame
|
||||||
# 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
|
||||||
|
@ -277,6 +289,10 @@ class Value(enum.Enum):
|
||||||
# Ealing Gardens Butcher, 2 at a time
|
# Ealing Gardens Butcher, 2 at a time
|
||||||
TERROR_BIRD_WING = (ACTION + 100*BONE_FRAGMENT + 25*WARM_AMBER)/2
|
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
|
# 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
|
||||||
|
@ -725,6 +741,14 @@ class Appendage(enum.Enum):
|
||||||
menace = -1
|
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(
|
CRUSTACEAN_PINCER = Action(
|
||||||
"Apply a Crustacean Pincer to your (Skeleton Type)",
|
"Apply a Crustacean Pincer to your (Skeleton Type)",
|
||||||
cost = Value.ACTION.value + Value.CRUSTACEAN_PINCER.value,
|
cost = Value.ACTION.value + Value.CRUSTACEAN_PINCER.value,
|
||||||
|
@ -820,6 +844,24 @@ class Appendage(enum.Enum):
|
||||||
amalgamy = 1
|
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(
|
TERROR_BIRD_WING = Action(
|
||||||
"Add the Wing of a Young Terror Bird to your (Skeleton Type)",
|
"Add the Wing of a Young Terror Bird to your (Skeleton Type)",
|
||||||
cost = Value.ACTION.value + Value.TERROR_BIRD_WING.value,
|
cost = Value.ACTION.value + Value.TERROR_BIRD_WING.value,
|
||||||
|
@ -830,6 +872,15 @@ class Appendage(enum.Enum):
|
||||||
menace = 1
|
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(
|
UNIDENTIFIED_THIGH = Action(
|
||||||
"Apply an Unidentified Thigh Bone to your (Skeleton Type)",
|
"Apply an Unidentified Thigh Bone to your (Skeleton Type)",
|
||||||
cost = Value.ACTION.value + Value.UNIDENTIFIED_THIGH.value,
|
cost = Value.ACTION.value + Value.UNIDENTIFIED_THIGH.value,
|
||||||
|
@ -838,6 +889,15 @@ class Appendage(enum.Enum):
|
||||||
legs = 1
|
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(
|
WITHERED_TENTACLE = Action(
|
||||||
"Put a Withered Tentacle on your (Skeleton Type)",
|
"Put a Withered Tentacle on your (Skeleton Type)",
|
||||||
cost = Value.ACTION.value + Value.WITHERED_TENTACLE.value,
|
cost = Value.ACTION.value + Value.WITHERED_TENTACLE.value,
|
||||||
|
@ -847,24 +907,18 @@ class Appendage(enum.Enum):
|
||||||
antiquity = -1
|
antiquity = -1
|
||||||
)
|
)
|
||||||
|
|
||||||
# Carpenter's Granddaughter, 2 at a time
|
REMOVE_TAIL = Action(
|
||||||
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)
|
"Remove the tail from your (Skeleton Type)",
|
||||||
|
cost = Value.ACTION.value,
|
||||||
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)
|
tails = -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)
|
|
||||||
|
|
||||||
# This actually sets Skeleton: Tails Needed to 0
|
# 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)
|
SKIP_TAILS = Action(
|
||||||
|
"Decide your Tailless Animal needs no tail",
|
||||||
REMOVE_TAIL = Action("Remove the tail from your (Skeleton Type)", cost = Value.ACTION.value, tails = -1)
|
cost = Value.ACTION.value,
|
||||||
|
tails_needed = -1
|
||||||
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.value)
|
return str(self.value)
|
||||||
|
|
Loading…
Reference in New Issue