52 lines
1.4 KiB
Haskell
52 lines
1.4 KiB
Haskell
module Dodge.Creature.ArmourChase (
|
|
armourChaseCrit,
|
|
flockArmourChaseCrit,
|
|
) where
|
|
|
|
import Control.Lens
|
|
import Dodge.Creature.ChaseCrit
|
|
import Dodge.Data.Creature
|
|
import Dodge.Data.FloatFunction
|
|
import Dodge.Default
|
|
import Dodge.Item.Consumable
|
|
import Dodge.Item.Equipment
|
|
import qualified IntMapHelp as IM
|
|
|
|
flockArmourChaseCrit :: Creature
|
|
flockArmourChaseCrit =
|
|
defaultCreature
|
|
{ _crName = "armourChaseCrit"
|
|
, _crHP = 300
|
|
, _crInv =
|
|
IM.fromList
|
|
[ (0, frontArmour)
|
|
, (1, medkit 200)
|
|
]
|
|
, _crActionPlan =
|
|
ActionPlan
|
|
{ _apImpulse = []
|
|
, _apAction = []
|
|
, _apStrategy = FollowImpulses
|
|
, _apGoal = [Kill 0]
|
|
}
|
|
, _crMeleeCooldown = 0
|
|
, _crGroup = ShieldGroup
|
|
, _crMvType = defaultChaseMvType
|
|
}
|
|
& crType . humanoidAI .~ FlockArmourChaseAI
|
|
|
|
armourChaseCrit :: Creature
|
|
armourChaseCrit =
|
|
chaseCrit
|
|
{ _crName = "armourChaseCrit"
|
|
, --, _crUpdate = defaultImpulsive []
|
|
_crInv =
|
|
IM.fromList
|
|
[ (0, frontArmour)
|
|
, (1, medkit 200)
|
|
]
|
|
, _crMvType = defaultChaseMvType{_mvTurnRad = FloatConst 0.05}
|
|
}
|
|
& crEquipment . at OnChest ?~ 0
|
|
& crInvEquipped . at 0 ?~ OnChest
|