Small chance of hurting self when punching
When attacking monsters with bare fists, there is a small chance (8%, right now) of causing 1 point of self-damage
This commit is contained in:
parent
b64dd08c6e
commit
ce3730ba3a
3 changed files with 26 additions and 1 deletions
|
@ -548,9 +548,16 @@ attackAt pos =
|
|||
msg <- uses character getAttackMessage
|
||||
message msg msgParams
|
||||
entities . ix creatureID . positioned .= SomeEntity creature'
|
||||
|
||||
whenM (uses character $ isNothing . weapon)
|
||||
$ whenM (chance (0.08 :: Float)) $ do
|
||||
say_ ["combat", "fistSelfDamage"]
|
||||
character %= Character.damage 1
|
||||
|
||||
stepGame -- TODO
|
||||
weapon chr = chr ^? inventory . wielded . wieldedItems . wieldableItem
|
||||
getAttackMessage chr =
|
||||
case chr ^? inventory . wielded . wieldedItems . wieldableItem of
|
||||
case weapon chr of
|
||||
Just wi ->
|
||||
fromMaybe (Messages.lookup ["combat", "hit", "generic"])
|
||||
$ wi ^. attackMessage
|
||||
|
|
|
@ -9,6 +9,7 @@ module Xanthous.Random
|
|||
, evenlyWeighted
|
||||
, weightedBy
|
||||
, subRand
|
||||
, chance
|
||||
) where
|
||||
--------------------------------------------------------------------------------
|
||||
import Xanthous.Prelude
|
||||
|
@ -85,3 +86,17 @@ instance (Num w, Ord w, Distribution Uniform w, Excludable w) => Choose (Weighte
|
|||
|
||||
subRand :: MonadRandom m => Rand StdGen a -> m a
|
||||
subRand sub = evalRand sub . mkStdGen <$> getRandom
|
||||
|
||||
-- | Has a @n@ chance of returning 'True'
|
||||
--
|
||||
-- eg, chance 0.5 will return 'True' half the time
|
||||
chance
|
||||
:: (Num w, Ord w, Distribution Uniform w, Excludable w, MonadRandom m)
|
||||
=> w
|
||||
-> m Bool
|
||||
chance n = choose $ weightedBy (bool 1 (n * 2)) bools
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
bools :: NonEmpty Bool
|
||||
bools = True :| [False]
|
||||
|
|
|
@ -57,6 +57,9 @@ character:
|
|||
combat:
|
||||
nothingToAttack: There's nothing to attack there.
|
||||
menu: Which creature would you like to attack?
|
||||
fistSelfDamage:
|
||||
- You hit so hard with your fists you hurt yourself!
|
||||
- The punch leaves your knuckles bloody!
|
||||
hit:
|
||||
fists:
|
||||
- You punch the {{creature.creatureType.name}} with your bare fists! It hurts. A lot.
|
||||
|
|
Loading…
Reference in a new issue