Compare commits

...

2 Commits

Author SHA1 Message Date
Jeremy Saklad 7f8c9f7c32
feat(solver): Update Counter-church value of Holy Relics of St. Fiacre
Holy Relics have been nerfed, with different values for each torso type.
The new values don't follow an obvious formula, unfortunately, so they
have to be hard-coded for each Torso Style value.

This will need to be maintained going forward if new Torso Styles become
possible.
2024-03-08 13:14:26 -06:00
Jeremy Saklad a2956a773a
feat(data): Update Torso Style of Segmented Ribcage
Segmented Ribcages have been nerfed to reduce the amount of
Counter-Church Theology they grant.
2024-02-23 09:08:40 -06:00
2 changed files with 25 additions and 6 deletions

View File

@ -137,7 +137,7 @@ class Torso(Enum):
SEGMENTED_RIBCAGE = Action(
"Build on a Segmented Ribcage",
cost = Cost.ACTION.value + Cost.SEGMENTED_RIBCAGE.value,
torso_style = 110,
torso_style = 45,
value = 250,
skulls_needed = 1,
limbs_needed = 2,

View File

@ -245,16 +245,35 @@ def Solve(shadowy_level, bone_market_fluctuations = None, zoological_mania = Non
# Counter-church calculation
# Calculate amount of Counter-church from Holy Relics of the Thigh of Saint Fiacre
holy_relic = actions[Appendage.FIACRE_THIGH]
torso_style_divided_by_ten = model.NewIntVar('torso style divided by ten', lb = 0)
model.AddDivisionEquality(torso_style_divided_by_ten, torso_style, 10)
# The amount of Counter-church added by each Holy Relic, which is based on the Torso Style.
#
# The precise formula for this is unknown as of this writing, so it is being hard-coded as a stopgap.
holy_relic_counter_church_each = model.NewIntVar('holy relic counter-church each')
model.AddAllowedAssignments(
(torso_style, holy_relic_counter_church_each),
(
(10, 1), # Human
(15, 1), # Human
(20, 2), # Thorny-Breasted
(30, 2), # Seven-necked
(40, 3), # Many-limbed
(45, 3), # Segmented
(50, 4), # Mammoth
(60, 5), # Baroque
(70, 6), # Deep-water
(80, 6), # Prismatic
(100, 7) # Starved
)
)
holy_relic_counter_church = model.NewIntVar('holy relic counter-church', lb = 0)
model.AddMultiplicationEquality(holy_relic_counter_church, (holy_relic, torso_style_divided_by_ten))
model.AddMultiplicationEquality(holy_relic_counter_church, (actions[Appendage.FIACRE_THIGH], holy_relic_counter_church_each))
counter_church = model.NewIntVar('counter-church', lb = 0)
model.Add(counter_church == cp_model.LinearExpr.WeightedSum(actions.values(), [action.value.counter_church for action in actions.keys()]) + holy_relic_counter_church)
del holy_relic, torso_style_divided_by_ten, holy_relic_counter_church
del holy_relic_counter_church_each, holy_relic_counter_church
# Exhaustion calculation