Safe Haskell | None |
---|
Effects of content on the game state. No operation in this module involves state or monad types.
- data Effect a
- = NoEffect !Text
- | Hurt !Dice
- | Burn !Int
- | Explode !GroupName
- | RefillHP !Int
- | RefillCalm !Int
- | Dominate
- | Impress
- | CallFriend !a
- | Summon !Freqs !a
- | CreateItem !a
- | Ascend !Int
- | Escape !Int
- | Paralyze !a
- | InsertMove !a
- | Teleport !a
- | PolyItem !CStore
- | Identify !CStore
- | SendFlying !ThrowMod
- | PushActor !ThrowMod
- | PullActor !ThrowMod
- | DropBestWeapon
- | DropEqp !Char !Bool
- | ActivateInv !Char
- | ApplyPerfume
- | OneOf ![Effect a]
- | OnSmash !(Effect a)
- | TimedAspect !Int !(Aspect a)
- data Aspect a
- = Periodic !a
- | AddHurtMelee !a
- | AddArmorMelee !a
- | AddHurtRanged !a
- | AddArmorRanged !a
- | AddMaxHP !a
- | AddMaxCalm !a
- | AddSpeed !a
- | AddSkills !Skills
- | AddSight !a
- | AddSmell !a
- | AddLight !a
- data ThrowMod = ThrowMod {
- throwVelocity :: !Int
- throwLinger :: !Int
- data Feature
- data EqpSlot
- effectTrav :: Effect a -> (a -> State s b) -> State s (Effect b)
- aspectTrav :: Aspect a -> (a -> State s b) -> State s (Aspect b)
Documentation
Effects of items. Can be invoked by the item wielder to affect another actor or the wielder himself. Many occurences in the same item are possible.
NoEffect !Text | |
Hurt !Dice | |
Burn !Int | |
Explode !GroupName | explode, producing this group of shrapnel |
RefillHP !Int | |
RefillCalm !Int | |
Dominate | |
Impress | |
CallFriend !a | |
Summon !Freqs !a | |
CreateItem !a | |
Ascend !Int | |
Escape !Int | the Int says if can be placed on last level, etc. |
Paralyze !a | |
InsertMove !a | |
Teleport !a | |
PolyItem !CStore | |
Identify !CStore | |
SendFlying !ThrowMod | |
PushActor !ThrowMod | |
PullActor !ThrowMod | |
DropBestWeapon | |
DropEqp !Char !Bool | symbol |
ActivateInv !Char | symbol |
ApplyPerfume | |
OneOf ![Effect a] | |
OnSmash !(Effect a) | trigger if item smashed (not applied nor meleed) |
TimedAspect !Int !(Aspect a) | enable the aspect for k clips |
Aspects of items. Additive (starting at 0) for all items wielded
by an actor and affect the actor (except Periodic
that only affect
the item and so is not additive).
Periodic !a | is activated this many times in 100 |
AddHurtMelee !a | percentage damage bonus in melee |
AddArmorMelee !a | percentage armor bonus against melee |
AddHurtRanged !a | percentage damage bonus in ranged |
AddArmorRanged !a | percentage armor bonus against ranged |
AddMaxHP !a | maximal hp |
AddMaxCalm !a | maximal calm |
AddSpeed !a | speed in m/10s |
AddSkills !Skills | skills in particular abilities |
AddSight !a | FOV radius, where 1 means a single tile |
AddSmell !a | smell radius, where 1 means a single tile |
AddLight !a | light radius, where 1 means a single tile |
Parameters modifying a throw. Not additive and don't start at 0.
ThrowMod | |
|
Features of item. Affect only the item in question, not the actor, and so not additive in any sense.
ChangeTo !GroupName | change to this group when altered |
Fragile | break even when not hitting an enemy |
Durable | don't break even hitting or applying |
ToThrow !ThrowMod | parameters modifying a throw |
Identified | the item starts identified |
Applicable | AI and uI flag: consider applying |
EqpSlot !EqpSlot !Text | AI and uI flag: goes to inventory |
Precious | AI and UI flag: careful, can be precious; don't risk identifying by use |
Tactic !Tactic | overrides actor's tactic (TODO) |