diff options
Diffstat (limited to 'users/grfn/xanthous/src/Xanthous/App.hs')
-rw-r--r-- | users/grfn/xanthous/src/Xanthous/App.hs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/users/grfn/xanthous/src/Xanthous/App.hs b/users/grfn/xanthous/src/Xanthous/App.hs index fa4ef2d6a5c3..1e915a03fe05 100644 --- a/users/grfn/xanthous/src/Xanthous/App.hs +++ b/users/grfn/xanthous/src/Xanthous/App.hs @@ -362,10 +362,7 @@ attackAt pos = 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 + whenM (uses character $ isNothing . weapon) handleFists stepGame -- TODO weapon chr = chr ^? inventory . wielded . wieldedItems . wieldableItem @@ -377,6 +374,16 @@ attackAt pos = Nothing -> Messages.lookup ["combat", "hit", "fists"] + handleFists = do + damageChance <- use $ character . body . knuckles . to fistDamageChance + whenM (chance damageChance) $ do + damageAmount <- use $ character . body . knuckles . to fistfightingDamage + say_ [ "combat" , if damageAmount > 1 + then "fistExtraSelfDamage" + else "fistSelfDamage" ] + character %= Character.damage damageAmount + character . body . knuckles %= damageKnuckles + entityMenu_ :: (Comonad w, Entity entity) => [w entity] |