feat: Add Exhibition skeleton
This is a transient buyer available during F.F. Gebrandt's Prelapsarian Exhibition, the estival festival of 2022. It pays out 110% of skeleton's value.
This commit is contained in:
parent
92e734d5d2
commit
aeaaf77900
|
@ -121,6 +121,10 @@ class Buyer(Enum):
|
||||||
cost = Cost.ACTION.value
|
cost = Cost.ACTION.value
|
||||||
)
|
)
|
||||||
|
|
||||||
|
EXHIBITION = Action(
|
||||||
|
"Supply a complete skeleton",
|
||||||
|
cost = Cost.ACTION.value
|
||||||
|
)
|
||||||
THE_DUMBWAITER_OF_BALMORAL = Action(
|
THE_DUMBWAITER_OF_BALMORAL = Action(
|
||||||
"Export the Skeleton of a Neathy Bird",
|
"Export the Skeleton of a Neathy Bird",
|
||||||
cost = Cost.ACTION.value
|
cost = Cost.ACTION.value
|
||||||
|
|
|
@ -23,7 +23,7 @@ from .data.torsos import Torso
|
||||||
from .objects.bone_market_model import BoneMarketModel
|
from .objects.bone_market_model import BoneMarketModel
|
||||||
|
|
||||||
# This multiplier is applied to the profit margin to avoid losing precision due to rounding.
|
# This multiplier is applied to the profit margin to avoid losing precision due to rounding.
|
||||||
PROFIT_MARGIN_MULTIPLIER = 10000
|
PROFIT_MARGIN_MULTIPLIER = 100
|
||||||
|
|
||||||
# This is the highest number of attribute to calculate fractional exponents for.
|
# This is the highest number of attribute to calculate fractional exponents for.
|
||||||
MAXIMUM_ATTRIBUTE = 100
|
MAXIMUM_ATTRIBUTE = 100
|
||||||
|
@ -1088,6 +1088,28 @@ def Solve(shadowy_level, bone_market_fluctuations = None, zoological_mania = Non
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Exhibition
|
||||||
|
|
||||||
|
exhibition_payout = model.NewIntVar('exhibition payout', lb = 0)
|
||||||
|
|
||||||
|
multiplied_exhibition_value = model.NewIntVar('multiplied exhibition value', lb = 0)
|
||||||
|
model.Add(multiplied_exhibition_value == 11*value)
|
||||||
|
model.AddDivisionEquality(exhibition_payout, multiplied_exhibition_value, 10)
|
||||||
|
|
||||||
|
model.AddIf(actions[Buyer.EXHIBITION],
|
||||||
|
cp_model.BoundedLinearExpression(skeleton_in_progress, (110, 212)),
|
||||||
|
implausibility == 0,
|
||||||
|
value >= 90000,
|
||||||
|
antiquity >= 3,
|
||||||
|
amalgamy == 0,
|
||||||
|
primary_revenue == exhibition_payout,
|
||||||
|
secondary_revenue == 0,
|
||||||
|
difficulty_level == 0,
|
||||||
|
added_exhaustion == 0,
|
||||||
|
)
|
||||||
|
|
||||||
|
del exhibition_payout, multiplied_exhibition_value
|
||||||
|
|
||||||
model.AddIf(actions[Buyer.THE_DUMBWAITER_OF_BALMORAL],
|
model.AddIf(actions[Buyer.THE_DUMBWAITER_OF_BALMORAL],
|
||||||
cp_model.BoundedLinearExpression(skeleton_in_progress, (180, 189)),
|
cp_model.BoundedLinearExpression(skeleton_in_progress, (180, 189)),
|
||||||
value >= 250,
|
value >= 250,
|
||||||
|
|
Loading…
Reference in New Issue