WIP: Add character file and stat adjusted skeleton actions #2
@ -5,26 +5,53 @@ from enum import Enum
|
||||
|
||||
from .costs import Cost
|
||||
from ..objects.action import Action
|
||||
from ..read_char import *
|
||||
|
||||
|
||||
def _narrow_challenge_6(stat: int):
|
||||
if 0 < stat < 11:
|
||||
chance = stat/10
|
||||
elif stat < 1:
|
||||
chance = .1
|
||||
else:
|
||||
chance = 1
|
||||
|
||||
return chance
|
||||
|
||||
|
||||
def _implausibility(stat: int):
|
||||
chance = _narrow_challenge_6(stat)
|
||||
|
||||
if chance == 1:
|
||||
return 0
|
||||
else:
|
||||
failure_actions = (1 / chance) - 1
|
||||
implausibility = 2 * failure_actions
|
||||
return implausibility
|
||||
|
||||
|
||||
class Adjustment(Enum):
|
||||
"""An action that is taken after all parts have been added to a skeleton."""
|
||||
|
||||
CARVE_AWAY_AGE = Action(
|
||||
"Carve away some evidence of age",
|
||||
cost = Cost.ACTION.value,
|
||||
antiquity = -2
|
||||
cost = Cost.ACTION.value / _narrow_challenge_6(Char.MITHRIDACY.value),
|
||||
antiquity = -2,
|
||||
implausibility = _implausibility(Char.MITHRIDACY.value)
|
||||
)
|
||||
|
||||
DISGUISE_AMALGAMY = Action(
|
||||
"Disguise the amalgamy of this piece",
|
||||
cost = Cost.ACTION.value + 25*Cost.JADE_FRAGMENT.value,
|
||||
amalgamy = -2
|
||||
cost = 25*Cost.JADE_FRAGMENT.value + Cost.ACTION.value / _narrow_challenge_6(Char.KATALEPTIC_TOXICOLOGY.value),
|
||||
amalgamy = -2,
|
||||
implausibility = _implausibility(Char.KATALEPTIC_TOXICOLOGY.value)
|
||||
)
|
||||
|
||||
MAKE_LESS_DREADFUL = Action(
|
||||
"Make your skeleton less dreadful",
|
||||
cost = Cost.ACTION.value,
|
||||
menace = -2
|
||||
cost = Cost.ACTION.value / _narrow_challenge_6(Char.KATALEPTIC_TOXICOLOGY.value),
|
||||
menace = -2,
|
||||
implausibility = _implausibility(Char.KATALEPTIC_TOXICOLOGY.value)
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
|
@ -5,6 +5,18 @@ from enum import Enum
|
||||
|
||||
from .costs import Cost
|
||||
from ..objects.action import Action
|
||||
from ..read_char import *
|
||||
|
||||
|
||||
def _narrow_challenge_4(stat: int):
|
||||
stat += 2
|
||||
if stat < 8:
|
||||
chance = stat/10
|
||||
else:
|
||||
chance = 1
|
||||
|
||||
return chance
|
||||
|
||||
|
||||
class Appendage(Enum):
|
||||
"""An action that is taken once all skulls are added to a skeleton."""
|
||||
@ -17,6 +29,7 @@ class Appendage(Enum):
|
||||
amalgamy = 2
|
||||
)
|
||||
|
||||
# TODO: Difficulty is increased by 2 for each Fin or Tentacle on the skeleton
|
||||
ALBATROSS_WING = Action(
|
||||
"Put an Albatross Wing on your (Skeleton Type)",
|
||||
cost = Cost.ACTION.value + Cost.ALBATROSS_WING.value,
|
||||
@ -26,6 +39,7 @@ class Appendage(Enum):
|
||||
amalgamy = 1
|
||||
)
|
||||
|
||||
# TODO: Difficulty is increased by 2 for each Arm, Leg, Wing, and Tentacle that is already attached
|
||||
AMBER_FIN = Action(
|
||||
"Attach the Amber-Crusted Fin to your (Skeleton Type)",
|
||||
cost = Cost.ACTION.value + Cost.AMBER_FIN.value,
|
||||
@ -36,6 +50,7 @@ class Appendage(Enum):
|
||||
menace = 1
|
||||
)
|
||||
|
||||
# TODO: Difficulty is increased with Fins on the skeleton
|
||||
BAT_WING = Action(
|
||||
"Add a Bat Wing to your (Skeleton Type)",
|
||||
cost = Cost.ACTION.value + Cost.BAT_WING.value,
|
||||
@ -51,7 +66,7 @@ class Appendage(Enum):
|
||||
value = 50,
|
||||
tails_needed = -1,
|
||||
tails = 1,
|
||||
menace = 2
|
||||
menace = 2 * _narrow_challenge_4(Char.MONSTROUS_ANATOMY.value) + 1 * (1 - _narrow_challenge_4(Char.MONSTROUS_ANATOMY.value))
|
||||
)
|
||||
|
||||
CRUSTACEAN_PINCER = Action(
|
||||
|
@ -5,6 +5,31 @@ from enum import Enum
|
||||
|
||||
from .costs import Cost
|
||||
from ..objects.action import Action
|
||||
from ..read_char import *
|
||||
|
||||
|
||||
def _narrow_challenge_6(stat: int):
|
||||
if 0 < stat < 11:
|
||||
chance = stat/10
|
||||
elif stat < 1:
|
||||
chance = .1
|
||||
else:
|
||||
chance = 1
|
||||
|
||||
return chance
|
||||
|
||||
|
||||
def _convincing_history_cost():
|
||||
chance = _narrow_challenge_6(Char.KATALEPTIC_TOXICOLOGY.value)
|
||||
|
||||
if chance == 1:
|
||||
cost = 3*Cost.REVISIONIST_NARRATIVE.value + Cost.ACTION.value
|
||||
else:
|
||||
actions = 1 / chance
|
||||
cost = actions * Cost.ACTION.value
|
||||
cost += Cost.REVISIONIST_NARRATIVE.value * (3 + actions - 1)
|
||||
return cost
|
||||
|
||||
|
||||
class Embellishment(Enum):
|
||||
"""An action is taken after a declaration has been made for a skeleton."""
|
||||
@ -17,7 +42,7 @@ class Embellishment(Enum):
|
||||
|
||||
CONVINCING_HISTORY = Action(
|
||||
"Invest great time and skill in coming up with a convincing history",
|
||||
cost = Cost.ACTION.value + 3*Cost.REVISIONIST_NARRATIVE.value,
|
||||
cost = _convincing_history_cost(),
|
||||
implausibility = -5
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user