from message import dayNight, messages, getText
# game time system
proc informAboutDay() =
messages = dayNight(isDay = true)
# player informer
proc update() =
echo( getText(messages) )
when isMainModule:
informAboutDay()
update()
type MessageType = enum msgHit, msgDeath, msgDayNight
type Message* = object
case messageType*: MessageType
of msgHit:
target*: string
hp*: int
of msgDeath:
died*: string
of msgDayNight:
isDay*: bool
# normally queue
var messages*: Message
proc hit*(target: string, hp: int): Message = Message(messageType: msgHit, target: target, hp: hp)
proc death*(died: string): Message = Message(messageType: msgDeath, died: died)
proc dayNight*(isDay: bool): Message = Message(messageType: msgDayNight, isDay: isDay)
proc getTextHit(m: Message): string = "You hit " & m.target & " for " & $m.hp & " HP."
proc getTextDeath(m: Message): string = m.died & " just died."
proc getTextDayNight(m: Message): string =
if m.isDay:
result = "The day has just begun."
else:
result = "Beware! Night is coming."
proc getText*(m: Message): string =
case m.messageType:
of msgHit:
result = getTextHit(m)
of msgDeath:
result = getTextDeath(m)
of msgDayNight:
result = getTextDayNight(m)
else:
result = "UNKNOWN MESSAGE"