-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMessages.hs
43 lines (33 loc) · 1.95 KB
/
Messages.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
module Messages where
import Types.World
import Helpers
-- mesasge creation.
skillMessage :: SkillResult -> Skill -> Entity -> Entity -> String
skillMessage result skill sourceEnt destEnt =
case result of
SUCC ->
if sourceEnt == destEnt -- self skill, no need to pritn target!
then
show sourceEnt ++ " successfully used " ++ show skill ++ "!"
else
show sourceEnt ++ " successfully used " ++ show skill ++ " on " ++ show destEnt ++ "!"
MISS -> show sourceEnt ++ " tried to use " ++ show skill ++ " on " ++ show destEnt ++ ", but missed."
MIT -> show sourceEnt ++ " tried to use " ++ show skill ++ " on " ++ show destEnt ++ ", but to no effect"
FAT -> show sourceEnt ++ " tried to use " ++ show skill ++ ", but didn't have enough energy."
FAIL failureCode ->
case failureCode of
NoTarget -> show sourceEnt ++ " tried to use " ++ show skill ++ ", but failed! (No targets found)"
CantReach -> show sourceEnt ++ " tried to use " ++ show skill ++ ", but failed! (Couldn't reach dest.)"
_ -> "Placeholder message \\skillMessage"
mitMessage :: Entity -> Entity -> World -> World
mitMessage sourceEnt destEnt world =
world { wMessageBuffer = (show sourceEnt ++ " tried to attack " ++ show destEnt ++ ", but to no effect."):wMessageBuffer world}
missMessage :: Entity -> Entity -> World -> World
missMessage sourceEnt destEnt world =
world { wMessageBuffer = (show sourceEnt ++ " tried to attack " ++ show destEnt ++ ", but the attack missed."):wMessageBuffer world}
killMessage :: Entity -> Entity -> World -> World
killMessage sourceEnt destEnt world =
world { wMessageBuffer = (show sourceEnt ++ " killed " ++ show destEnt ++ "."):wMessageBuffer world}
damageMessage :: Entity -> Int -> Entity -> World -> World
damageMessage sourceEnt damage destEnt world =
world { wMessageBuffer = (show sourceEnt ++ " dealt " ++ show damage ++ " damage to " ++ show destEnt ++ "."):wMessageBuffer world}