33 lines
767 B
Haskell
33 lines
767 B
Haskell
module Dodge.TweakBullet where
|
|
import Dodge.Data
|
|
import Dodge.Item.Weapon.Bullet
|
|
import qualified Data.IntMap.Strict as IM
|
|
import Control.Lens
|
|
|
|
defaultBulletSelTweak :: ItemTweaks
|
|
defaultBulletSelTweak = Tweakable
|
|
{_tweakSel = 0
|
|
,_tweakParams = IM.fromList $ zip [0..]
|
|
[ bulSelTweak
|
|
]
|
|
}
|
|
|
|
bulSelTweak :: TweakParam
|
|
bulSelTweak = TweakParam
|
|
{_doTweak = intToBulAmmo
|
|
,_curTweak = 0
|
|
,_maxTweak = 4
|
|
,_showTweak = _amString . (bulletTypes IM.!)
|
|
,_nameTweak = "BULLET TYPE"
|
|
}
|
|
intToBulAmmo :: Int -> Item -> Item
|
|
intToBulAmmo i = itConsumption . aoType .~ bulletTypes IM.! i
|
|
|
|
bulletTypes :: IM.IntMap AmmoType
|
|
bulletTypes = IM.fromList $ zip [0..]
|
|
[ basicBullet
|
|
, incBullet
|
|
, conBullet
|
|
, bounceBullet
|
|
]
|