Work on bullet module system

This commit is contained in:
2022-02-20 18:50:11 +00:00
parent 7afc367abc
commit 779e076c93
6 changed files with 44 additions and 8 deletions
+16 -1
View File
@@ -1,6 +1,8 @@
{-# LANGUAGE TupleSections #-}
module Dodge.Combine.Combinations where
import Dodge.Data
import Dodge.WorldEvent.HitEffect
import Dodge.Particle.Bullet.HitEffect
import Dodge.Item.Equipment
import Dodge.Item.Craftable
import Dodge.Item.Weapon.BulletGuns
@@ -8,6 +10,7 @@ import Dodge.Item.Weapon.BatteryGuns
import Dodge.Item.Weapon.Launcher
import Dodge.Item.Weapon.SprayGuns
import Control.Lens
itemCombinations :: [([(Int,CombineType)],Item)]
itemCombinations =
[ po [PIPE, HARDWARE] (bangStick 1)
@@ -64,8 +67,20 @@ itemCombinations =
++ map (\i -> po [REVOLVERX i,CAN] $ revolverX (i+1)) [1..5]
++ map (\i -> p [o (BANGCANEX i),p 2 PIPE] $ bangCaneX (i+1)) [1..5]
++ map (\i -> po [MINIGUNX i,BANGCANE] $ miniGunX (i+1)) [3..15]
++ [ po [itype,mtype] $ it & itModules . modHitEffect .~ m
| (itype,it) <- firearmTypes , (mtype,m) <- bulletModules
]
where
p = (,)
po xs it = (map o xs,it)
o = (1,)
firearmTypes :: [(CombineType,Item)]
firearmTypes
= [(BANGSTICK i,bangStick i) | i <- [1..9] ]
++ [(BANGCANEX i,bangCaneX i) | i <- [1..6] ]
bulletModules :: [(CombineType,ItemModule HitEffect)]
bulletModules =
[(INCENDIARYMODULE, ItemModule (destroyOnImpact bulIncCr bulIncWall) ["+INCENDIARY"] 1 )
,(BOUNCEMODULE, ItemModule (destroyOnImpact bulBounceArmCr' bulBounceWall) ["+BOUNCE"] 1 )
]
+3
View File
@@ -93,5 +93,8 @@ data CombineType
| BATTERY
| FUELCELL
| PORTABLEFUSION
-- Modules
| INCENDIARYMODULE
| BOUNCEMODULE
| NoCombineType
deriving (Eq,Ord,Show)