Continue AI refactor

This commit is contained in:
2021-05-05 18:23:52 +02:00
parent 05086d6f4a
commit 75c36e2c95
4 changed files with 93 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
module Dodge.Creature.Rationality
where
import Dodge.Data
import Dodge.Creature.Rationality.Data
import Dodge.Creature.Action
import Dodge.Creature.Action.UseItem
impulsiveAI
:: (Impulse -> World -> Creature -> (World -> World, Creature))
-> World -> (World -> World,StdGen) -> Creature -> ((World -> World,StdGen), Maybe Creature)
impulsiveAI = undefined
applyBasicImpulse
:: Impulse
-> World
-> Creature
-> (World -> World , Creature)
applyBasicImpulse imp w cr = case imp of
Move p = (id, creatureMove p cr)
Turn a = (id, creatureTurn a cr)
UseItem = (crUseItem cr, cr)
SwitchToItem i = (id, cr & crInvSel .~ i)
Wait t = (id, cr & crRationality . crImpulse . waitTime -~ 1
_ = (id, cr)
DropItem = undefined