46 lines
1.2 KiB
Haskell
46 lines
1.2 KiB
Haskell
module Dodge.Creature.ArmourChase
|
|
( armourChaseCrit
|
|
, flockArmourChaseCrit
|
|
) where
|
|
import Dodge.Data
|
|
import Dodge.Data.FloatFunction
|
|
import Dodge.Default
|
|
import Dodge.Creature.ChaseCrit
|
|
import Dodge.Item.Equipment
|
|
import Dodge.Item.Consumable
|
|
|
|
import qualified IntMapHelp as IM
|
|
import Control.Lens
|
|
|
|
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
|