This commit is contained in:
2022-07-13 22:22:24 +01:00
parent 33e9b5b1f0
commit 35a1eb9732
18 changed files with 89 additions and 69 deletions
+25 -8
View File
@@ -81,14 +81,29 @@ itemCombinations =
, p [p 2 $ cr DRUM] plateCraft , p [p 2 $ cr DRUM] plateCraft
, p [p 2 $ cr PLATE] flatShield , p [p 2 $ cr PLATE] flatShield
, po [cr MICROCHIP, cr PRISM] (makeTypeCraft LIGHTSENSOR)
, po [cr MICROCHIP, cr MAGNET] (makeTypeCraft SOUNDSENSOR)
, po [cr MICROCHIP, cr THERMOMETER] (makeTypeCraft HEATSENSOR)
, po [cr MICROCHIP, cr TRANSMITTER, cr LIGHTSENSOR] (autoDetector ITEMDETECTOR)
, po [cr MICROCHIP, cr TRANSMITTER, cr SOUNDSENSOR] (autoDetector WALLDETECTOR)
, po [cr MICROCHIP, cr TRANSMITTER, cr HEATSENSOR] (autoDetector CREATUREDETECTOR)
, po [cr BATTERY, cr LED] torch
, po [hd TORCH, eq HAT] headLamp
, po [cr LIGHTER, cr THERMOMETER, cr MICROCHIP] (makeTypeCraft INCENDIARYMODULE)
, po [cr TRANSFORMER, cr BATTERY, cr MICROCHIP] (makeTypeCraft STATICMODULE)
] ]
++ map (\i -> po [HELD (LASWIDE i),cr TRANSFORMER] $ lasWide (i+1)) [2..9] ++ map (\i -> po [HELD (LASWIDE i),cr TRANSFORMER] $ lasWide (i+1)) [2..9]
-- ++ map (\i -> po [LASGUNWIDE i,cr HARDWARE] $ lasFocus i) [2..10] -- ++ map (\i -> po [LASGUNWIDE i,cr HARDWARE] $ lasFocus i) [2..10]
++ map (\i -> po [cr PIPE,HELD (BANGSTICK i)] $ bangStick (i+1)) [1..8] ++ map (\i -> po [cr PIPE,HELD (BANGSTICK i)] $ bangStick (i+1)) [1..8]
++ map (\i -> po [HELD (REVOLVERX i),cr CAN] $ revolverX (i+1)) [1..5] ++ map (\i -> po [hd (REVOLVERX i),cr CAN] $ revolverX (i+1)) [1..5]
++ map (\i -> po [HELD (VOLLEYGUN i),HELD (BANGSTICK 1)] $ volleyGun (i+1)) [3..5] ++ map (\i -> po [hd (VOLLEYGUN i),HELD (BANGSTICK 1)] $ volleyGun (i+1)) [3..5]
++ map (\i -> po [HELD (MINIGUNX i),HELD (BANGSTICK 1)] $ miniGunX (i+1)) [3..15] ++ map (\i -> po [hd (MINIGUNX i),HELD (BANGSTICK 1)] $ miniGunX (i+1)) [3..15]
++ map (\i -> po [HELD (GRAPECANNON i),cr DRUM] $ grapeCannon (i+1)) [1,2,3] ++ map (\i -> po [hd (GRAPECANNON i),cr DRUM] $ grapeCannon (i+1)) [1,2,3]
++ [ po (_iyBase (_itType it):mtype) $ it & itType . iyModules . ix modtype .~ m ++ [ po (_iyBase (_itType it):mtype) $ it & itType . iyModules . ix modtype .~ m
| (modtype,is,ms) <- moduleCombinations | (modtype,is,ms) <- moduleCombinations
@@ -100,13 +115,15 @@ itemCombinations =
po xs it = (map o xs,it) po xs it = (map o xs,it)
o = (1,) o = (1,)
cr = CRAFT cr = CRAFT
hd = HELD
eq = EQUIP
moduleCombinations :: [( ModuleSlot, [Item], [([ItemBaseType],ItemModuleType)] )] moduleCombinations :: [( ModuleSlot, [Item], [([ItemBaseType],ItemModuleType)] )]
moduleCombinations = moduleCombinations =
[ ( ModRifleMag [ ( ModRifleMag
, [repeater , [repeater
,autoRifle ,autoRifle
-- ,burstRifle ,burstRifle
-- ,fastBurstRifle -- ,fastBurstRifle
] ]
, [amod [cr DRUM,cr HARDWARE] DRUMMAG , [amod [cr DRUM,cr HARDWARE] DRUMMAG
@@ -131,9 +148,9 @@ moduleCombinations =
) )
, ( ModTarget , ( ModTarget
, homingLaunchers ++ bulletWeapons , homingLaunchers ++ bulletWeapons
, [amod [cr MICROCHIP,cr CREATURESENSOR] TARGCR , [amod [cr MICROCHIP,cr HEATSENSOR] TARGCR
,amod [cr MICROCHIP,cr PRISM] TARGLAS ,amod [cr MICROCHIP,cr LIGHTSENSOR] TARGLAS
,amod [cr MICROCHIP,cr TIN] TARGPOS ,amod [cr MICROCHIP,cr SOUNDSENSOR] TARGPOS
] ]
) )
, ( ModBulletTrajectory , ( ModBulletTrajectory
+5 -1
View File
@@ -31,6 +31,7 @@ data CraftType
| MOTOR | MOTOR
| TRANSFORMER | TRANSFORMER
| PRISM | PRISM
| THERMOMETER
| LIGHTER | LIGHTER
| MAGNET | MAGNET
| ANTIMATTER | ANTIMATTER
@@ -94,12 +95,12 @@ data EquipItemType
| WRISTARMOUR | WRISTARMOUR
| INVISIBILITYEQUIPMENT EquipSite | INVISIBILITYEQUIPMENT EquipSite
| BRAINHAT | BRAINHAT
| HAT
| HEADLAMP | HEADLAMP
| HEADLAMP1 | HEADLAMP1
| POWERLEGS | POWERLEGS
| SPEEDLEGS | SPEEDLEGS
| JUMPLEGS | JUMPLEGS
| FLATSHIELD
| JETPACK | JETPACK
| AUTODETECTOR Detector | AUTODETECTOR Detector
deriving (Eq,Ord,Show,Read) deriving (Eq,Ord,Show,Read)
@@ -171,6 +172,8 @@ data HeldItemType
| FORCEFIELDGUN | FORCEFIELDGUN
| HELDDETECTOR Detector | HELDDETECTOR Detector
| TORCH
| FLATSHIELD
deriving (Eq,Ord,Show,Read) deriving (Eq,Ord,Show,Read)
data ItemModuleType data ItemModuleType
@@ -212,6 +215,7 @@ data ModuleSlot
| ModBattery | ModBattery
| ModTeleport | ModTeleport
| ModDualBeam | ModDualBeam
| ModAlongsideWeapon
deriving (Eq,Ord,Show) deriving (Eq,Ord,Show)
makeLenses ''ItemType makeLenses ''ItemType
+6 -2
View File
@@ -482,6 +482,7 @@ data ItemUse
, _useMods :: [(Item -> Creature -> World -> World) -> Item -> Creature -> World -> World] , _useMods :: [(Item -> Creature -> World -> World) -> Item -> Creature -> World -> World]
, _useHammer :: HammerPosition , _useHammer :: HammerPosition
, _useAim :: AimParams , _useAim :: AimParams
, _heldAttachment :: HeldAttachment
, _heldScroll :: Float -> Creature -> Item -> Item , _heldScroll :: Float -> Creature -> Item -> Item
} }
| LeftUse | LeftUse
@@ -509,6 +510,10 @@ data Equipment = Equipment
_itUseAimStance :: Item -> AimStance _itUseAimStance :: Item -> AimStance
_itUseAimStance = _aimStance . _useAim . _itUse _itUseAimStance = _aimStance . _useAim . _itUse
data HeldAttachment
= Torch
| NoHeldAttachment
data ItemConsumption data ItemConsumption
= LoadableAmmo = LoadableAmmo
{ _laAmmoType :: AmmoType { _laAmmoType :: AmmoType
@@ -545,7 +550,7 @@ data Item = Item
, _itInvColor :: Color , _itInvColor :: Color
, _itTargeting :: Targeting , _itTargeting :: Targeting
, _itDimension :: ItemDimension , _itDimension :: ItemDimension
, _itCurseStatus :: CurseStatus , _itCurseStatus :: CurseStatus
, _itTweaks :: ItemTweaks , _itTweaks :: ItemTweaks
, _itScope :: Scope , _itScope :: Scope
, _itValue :: ItemValue , _itValue :: ItemValue
@@ -579,7 +584,6 @@ data ItemPortage
| WornItem | WornItem
| NoPortage | NoPortage
-- I believe this is called every frame, not sure when though -- I believe this is called every frame, not sure when though
data ItEffect data ItEffect
= NoItEffect = NoItEffect
+3 -1
View File
@@ -71,7 +71,9 @@ parseItem (x:xs)
= (readMaybe (x++" {_xNum=" ++ show (parseNum xs)++"}") <&> (,1)) = (readMaybe (x++" {_xNum=" ++ show (parseNum xs)++"}") <&> (,1))
<|> (readMaybe x <&> (,parseNum xs) ) <|> (readMaybe x <&> (,parseNum xs) )
<|> (readMaybe ("CRAFT "++x) <&> (,parseNum xs)) <|> (readMaybe ("CRAFT "++x) <&> (,parseNum xs))
<|> (readMaybe ("HELD "++x) <&> (,parseNum xs)) <|> (readMaybe ("HELD {_ibtHeld="++x++"}") <&> (,parseNum xs))
<|> (readMaybe ("EQUIP {_ibtEquip="++x++"}") <&> (,parseNum xs))
<|> (readMaybe ("LEFT {_ibtLEFT="++x++"}") <&> (,parseNum xs))
<|> (readMaybe ("HELD ("++x++" {_xNum=" ++ show (parseNum xs)++"}") <&> (,1)) <|> (readMaybe ("HELD ("++x++" {_xNum=" ++ show (parseNum xs)++"}") <&> (,1))
<|> parseItem (xs & ix 0 .++~ (x ++ " ")) <|> parseItem (xs & ix 0 .++~ (x ++ " "))
parseItem [] = Nothing parseItem [] = Nothing
+3
View File
@@ -8,7 +8,10 @@ module Dodge.Default
( module Dodge.Default ( module Dodge.Default
, module Dodge.Default.Item , module Dodge.Default.Item
, module Dodge.Default.LightSource , module Dodge.Default.LightSource
, module Dodge.Default.Weapon
, module Dodge.Default.Wall
) where ) where
import Dodge.Default.Wall
import Dodge.Default.Weapon import Dodge.Default.Weapon
import Dodge.Default.LightSource import Dodge.Default.LightSource
import Dodge.Default.Item import Dodge.Default.Item
+2 -2
View File
@@ -1,7 +1,6 @@
module Dodge.Default.Weapon module Dodge.Default.Weapon
where where
import Dodge.Data import Dodge.Data
import Dodge.Item.Weapon.AmmoParams
import Dodge.Reloading.Action import Dodge.Reloading.Action
import Dodge.Item.Weapon.Bullet import Dodge.Item.Weapon.Bullet
import Dodge.Default.Item import Dodge.Default.Item
@@ -65,6 +64,7 @@ defaultrUse = RightUse
, _useMods = [] , _useMods = []
, _useHammer = HammerUp , _useHammer = HammerUp
, _useAim = defaultAimParams , _useAim = defaultAimParams
, _heldAttachment = NoHeldAttachment
, _heldScroll = \_ _ -> id , _heldScroll = \_ _ -> id
} }
defaultlUse :: ItemUse defaultlUse :: ItemUse
@@ -109,7 +109,7 @@ defaultWeapon = defaultItem
defaultBulletWeapon :: Item defaultBulletWeapon :: Item
defaultBulletWeapon = defaultWeapon defaultBulletWeapon = defaultWeapon
& itConsumption .~ defaultBulletLoadable & itConsumption .~ defaultBulletLoadable
& itUse .~ ruseAmmoParams & itUse .~ defaultrUse
defaultItemValue :: ItemValue defaultItemValue :: ItemValue
defaultItemValue = ItemValue 10 MundaneItem defaultItemValue = ItemValue 10 MundaneItem
+4 -1
View File
@@ -40,12 +40,12 @@ itemFromEquipType et = case et of
INVISIBILITYEQUIPMENT GoesOnWrist -> wristInvisibility INVISIBILITYEQUIPMENT GoesOnWrist -> wristInvisibility
INVISIBILITYEQUIPMENT _ -> error "need to define invisibility for more than wrist" INVISIBILITYEQUIPMENT _ -> error "need to define invisibility for more than wrist"
BRAINHAT -> brainHat BRAINHAT -> brainHat
HAT -> hat
HEADLAMP -> headLamp HEADLAMP -> headLamp
HEADLAMP1 -> headLamp1 HEADLAMP1 -> headLamp1
POWERLEGS -> powerLegs POWERLEGS -> powerLegs
SPEEDLEGS -> speedLegs SPEEDLEGS -> speedLegs
JUMPLEGS -> jumpLegs JUMPLEGS -> jumpLegs
FLATSHIELD -> flatShield
JETPACK -> jetPack JETPACK -> jetPack
AUTODETECTOR d -> autoDetector d AUTODETECTOR d -> autoDetector d
itemFromLeftType :: LeftItemType -> Item itemFromLeftType :: LeftItemType -> Item
@@ -59,6 +59,7 @@ itemFromLeftType lt = case lt of
-- Equipment -- Equipment
itemFromHeldType :: HeldItemType -> Item itemFromHeldType :: HeldItemType -> Item
itemFromHeldType ht = case ht of itemFromHeldType ht = case ht of
TORCH -> torch
SHATTERGUN -> shatterGun SHATTERGUN -> shatterGun
BANGSTICK i -> bangStick i BANGSTICK i -> bangStick i
PISTOL -> pistol PISTOL -> pistol
@@ -116,6 +117,8 @@ itemFromHeldType ht = case ht of
FORCEFIELDGUN -> forceFieldGun FORCEFIELDGUN -> forceFieldGun
HELDDETECTOR d -> clickDetector d HELDDETECTOR d -> clickDetector d
FLATSHIELD -> flatShield
baseToFamily :: ItemBaseType -> ItemFamily baseToFamily :: ItemBaseType -> ItemFamily
baseToFamily ibt = case ibt of baseToFamily ibt = case ibt of
NOTDEFINED -> undefined NOTDEFINED -> undefined
+7 -6
View File
@@ -35,25 +35,26 @@ equipItemSPic et _ = case et of
,color yellow $ thickArc (3*pi/2) (2*pi) 10 5 ,color yellow $ thickArc (3*pi/2) (2*pi) 10 5
]) ])
WRISTARMOUR -> defSPic WRISTARMOUR -> defSPic
INVISIBILITYEQUIPMENT _ -> (noPic (colorSH chartreuse $ upperPrismPoly 3 $ rectWH 2 2)) INVISIBILITYEQUIPMENT _ -> noPic (colorSH chartreuse $ upperPrismPoly 3 $ rectWH 2 2)
BRAINHAT -> noPic (colorSH yellow $ upperPrismPoly 3 $ rectWH 4 4) BRAINHAT -> noPic (colorSH yellow $ upperPrismPoly 3 $ rectWH 4 4)
HAT -> noPic (colorSH yellow $ upperPrismPoly 3 $ rectWH 4 4)
HEADLAMP -> noPic headLampShape HEADLAMP -> noPic headLampShape
HEADLAMP1 -> noPic headLampShape HEADLAMP1 -> noPic headLampShape
POWERLEGS -> legsSPic yellow POWERLEGS -> legsSPic yellow
SPEEDLEGS -> legsSPic green SPEEDLEGS -> legsSPic green
JUMPLEGS -> legsSPic red JUMPLEGS -> legsSPic red
FLATSHIELD -> flatShieldEquipSPic JETPACK -> (,) emptySH $ setDepth 20
JETPACK -> ((,) emptySH $ setDepth 20
$ pictures [color yellow $ polygon $ reverse $ rectNSWE 5 (-5) (-11) (-3) ] $ pictures [color yellow $ polygon $ reverse $ rectNSWE 5 (-5) (-11) (-3) ]
) AUTODETECTOR dt -> noPic (colorSH (detectorColor dt) $ upperPrismPoly 3 $ rectWH 2 2)
AUTODETECTOR dt -> (noPic (colorSH (detectorColor dt) $ upperPrismPoly 3 $ rectWH 2 2))
leftItemSPic :: LeftItemType -> Item -> SPic leftItemSPic :: LeftItemType -> Item -> SPic
leftItemSPic lt _ = case lt of leftItemSPic lt _ = case lt of
BLINKER -> defSPic BLINKER -> defSPic
_ -> defSPic _ -> defSPic
heldItemSPic :: HeldItemType -> Item -> SPic heldItemSPic :: HeldItemType -> Item -> SPic
heldItemSPic ht it = case ht of heldItemSPic ht it = case ht of
FLATSHIELD -> flatShieldEquipSPic
FORCEFIELDGUN -> defSPic FORCEFIELDGUN -> defSPic
TORCH -> defSPic
BANGSTICK i -> noPic $ baseStickShapeX it i <> stickClip it BANGSTICK i -> noPic $ baseStickShapeX it i <> stickClip it
PISTOL -> noPic $ baseStickShape <> makeTinClipAt pi (V3 5 2 0) it PISTOL -> noPic $ baseStickShape <> makeTinClipAt pi (V3 5 2 0) it
REVOLVER -> noPic $ baseStickShape <> revolverClip it REVOLVER -> noPic $ baseStickShape <> revolverClip it
@@ -314,4 +315,4 @@ latchkeyPic = color yellow $
,thickLine 2 $ map toV2 [(4,0),(4,-4)] ,thickLine 2 $ map toV2 [(4,0),(4,-4)]
] ]
legsSPic :: Color -> SPic legsSPic :: Color -> SPic
legsSPic col = (noPic $ translateSH (V3 0 4 0) $ colorSH col $ upperPrismPoly 3 $ rectWH 2 2) legsSPic col = noPic $ translateSH (V3 0 4 0) $ colorSH col $ upperPrismPoly 3 $ rectWH 2 2
+24 -8
View File
@@ -1,10 +1,12 @@
module Dodge.Item.Equipment module Dodge.Item.Equipment
( module Dodge.Item.Equipment.Booster ( module Dodge.Item.Equipment.Booster
, torch
, magShield , magShield
, powerLegs , powerLegs
, flatShield , flatShield
, wristInvisibility , wristInvisibility
, wristArmour , wristArmour
, hat
, brainHat , brainHat
, frontArmour , frontArmour
, headLamp , headLamp
@@ -19,7 +21,6 @@ import Dodge.Item.Draw
import Dodge.Item.Equipment.Booster import Dodge.Item.Equipment.Booster
import Dodge.LightSource import Dodge.LightSource
import Dodge.Default import Dodge.Default
import Dodge.Default.Wall
import Dodge.Creature.Test import Dodge.Creature.Test
import Dodge.Creature.HandPos import Dodge.Creature.HandPos
import Dodge.Wall import Dodge.Wall
@@ -105,13 +106,22 @@ setWristShieldPos itm cr w = w
| otherwise = id | otherwise = id
f = (+.+ _crPos cr) . stripZ . rotate3 (_crDir cr) . handtrans cr f = (+.+ _crPos cr) . stripZ . rotate3 (_crDir cr) . handtrans cr
torch :: Item
torch = defaultWeapon
& itEffect .~ effectOnOffHeld createHeldLight (const $ const id)
createHeldLight :: Creature -> Int -> World -> World
createHeldLight cr i w = w
removeHeldLight :: Creature -> Int -> World -> World
removeHeldLight cr i w = w
flatShield :: Item flatShield :: Item
flatShield = defaultEquipment flatShield = defaultWeapon
{ _itEffect = effectOnOffHeld createShieldWall removeShieldWall & itEffect .~ effectOnOffHeld createShieldWall removeShieldWall
-- the above seems to work, but I am not sure why: it may break on edge -- the above seems to work, but I am not sure why: it may break on edge
-- cases -- cases
, _itUse = RightUse & itUse .~ defaultrUse
{ _rUse = \_ _ -> id { _rUse = \_ _ -> id
, _useDelay = NoDelay , _useDelay = NoDelay
, _useMods = [] , _useMods = []
@@ -126,9 +136,8 @@ flatShield = defaultEquipment
} }
, _heldScroll = \_ _ -> id , _heldScroll = \_ _ -> id
} }
, _itInvSize = 3 & itInvSize .~ 3
} & itType . iyBase .~ HELD FLATSHIELD
& itType . iyBase .~ EQUIP FLATSHIELD
shieldWall :: Int -> Wall shieldWall :: Int -> Wall
shieldWall crid = defaultWall shieldWall crid = defaultWall
@@ -186,7 +195,7 @@ effectOnOffHeld f f' = ItInvEffectID
where where
g itm cr w g itm cr w
| crSel cr == invid = f cr invid w | crSel cr == invid = f cr invid w
| otherwise = f' cr invid w | otherwise = f' cr invid w
where where
invid = _ipInvID $ _itPos itm invid = _ipInvID $ _itPos itm
@@ -205,6 +214,13 @@ brainHat = defaultEquipment
} }
& itUse . eqEq . eqSite .~ GoesOnHead & itUse . eqEq . eqSite .~ GoesOnHead
& itType . iyBase .~ EQUIP BRAINHAT & itType . iyBase .~ EQUIP BRAINHAT
hat :: Item
hat = defaultEquipment
{ _itEffect = NoItEffect
, _itID = Nothing
}
& itUse . eqEq . eqSite .~ GoesOnHead
& itType . iyBase .~ EQUIP HAT
headLamp1 :: Item headLamp1 :: Item
headLamp1 = defaultEquipment headLamp1 = defaultEquipment
+1 -21
View File
@@ -1,6 +1,5 @@
module Dodge.Item.Weapon.AmmoParams module Dodge.Item.Weapon.AmmoParams
( ruseAmmoParams ( useAmmoParams
, useAmmoParams
, fractionLoadedAmmo , fractionLoadedAmmo
, fractionLoadedAmmo2 , fractionLoadedAmmo2
) where ) where
@@ -16,25 +15,6 @@ import LensHelp
import Data.Maybe import Data.Maybe
--import Control.Lens --import Control.Lens
ruseAmmoParams :: ItemUse
ruseAmmoParams = RightUse
{ _rUse = useAmmoParams Nothing
, _useDelay = FixedRate {_rateMax = 10, _rateTime = 0}
, _useMods = []
, _useHammer = HammerUp
, _useAim = defaultAimParams
, _heldScroll = \_ _ -> id
}
--defaultAimParams :: AimParams
--defaultAimParams = AimParams
-- { _aimWeight = 0
-- , _aimRange = 0
-- , _aimZoom = ItZoom 20 0.2 1
-- , _aimStance = OneHand
-- , _aimHandlePos = 10
-- , _aimMuzPos = 20
-- }
useAmmoParams :: Maybe Float -> Item -> Creature -> World -> World useAmmoParams :: Maybe Float -> Item -> Creature -> World -> World
useAmmoParams vfact it cr w = w & instantParticles .:~ aBulAt useAmmoParams vfact it cr w = w & instantParticles .:~ aBulAt
vfact vfact
+1 -1
View File
@@ -191,7 +191,7 @@ burstRifle = repeater
-- , withRecoil -- , withRecoil
-- ] -- ]
miniGunUse :: Int -> ItemUse miniGunUse :: Int -> ItemUse
miniGunUse i = ruseAmmoParams miniGunUse i = defaultrUse
& rUse .~ useAmmoParams (Just 1) & rUse .~ useAmmoParams (Just 1)
& useDelay .~ NoDelay & useDelay .~ NoDelay
& useMods .~ & useMods .~
+1 -8
View File
@@ -11,13 +11,6 @@ import Dodge.Reloading.Action
import Dodge.Data import Dodge.Data
import Dodge.ChainEffect import Dodge.ChainEffect
import Dodge.Default.Weapon import Dodge.Default.Weapon
--import Dodge.Item.Weapon.InventoryDisplay
--import Dodge.Default
--import Dodge.Item.Attachment
--import Dodge.Item.Weapon.ExtraEffect
--import Dodge.Item.Weapon.InventoryDisplay
import Dodge.Item.Weapon.AmmoParams
--import Dodge.Item.Draw
import Dodge.Item.Weapon.TriggerType import Dodge.Item.Weapon.TriggerType
import Dodge.SoundLogic.LoadSound import Dodge.SoundLogic.LoadSound
import Geometry import Geometry
@@ -37,7 +30,7 @@ bangStickSoundChoice it
bangStick :: Int -> Item bangStick :: Int -> Item
bangStick i = defaultBulletWeapon bangStick i = defaultBulletWeapon
{ _itUse = ruseAmmoParams { _itUse = defaultrUse
& useDelay . rateMax .~ 8 & useDelay . rateMax .~ 8
& useMods .~ & useMods .~
[ ammoHammerCheck [ ammoHammerCheck
-1
View File
@@ -6,7 +6,6 @@ import Dodge.Item.Weapon.TriggerType
import Dodge.Item.Weapon.ExtraEffect import Dodge.Item.Weapon.ExtraEffect
import Dodge.Item.Weapon.UseEffect import Dodge.Item.Weapon.UseEffect
--import Dodge.Item.Weapon.Remote --import Dodge.Item.Weapon.Remote
import Dodge.Default.Weapon
import Dodge.SoundLogic import Dodge.SoundLogic
import Control.Lens import Control.Lens
-1
View File
@@ -21,7 +21,6 @@ import Dodge.Default
--import Dodge.Item.Weapon.BulletGuns --import Dodge.Item.Weapon.BulletGuns
--import Dodge.Item.Weapon.InventoryDisplay --import Dodge.Item.Weapon.InventoryDisplay
import Dodge.Item.Weapon.TriggerType import Dodge.Item.Weapon.TriggerType
import Dodge.Default.Weapon
--import Dodge.Item.Attachment --import Dodge.Item.Attachment
import Geometry import Geometry
import LensHelp import LensHelp
-1
View File
@@ -6,7 +6,6 @@ import Dodge.Default
import Dodge.Creature.Action import Dodge.Creature.Action
import Dodge.Item.Weapon.TriggerType import Dodge.Item.Weapon.TriggerType
import Dodge.Item.Weapon.ExtraEffect import Dodge.Item.Weapon.ExtraEffect
import Dodge.Default.Weapon
import Dodge.Wall.ForceField import Dodge.Wall.ForceField
import Dodge.Wall.Move import Dodge.Wall.Move
--import Sound.Data --import Sound.Data
+4 -4
View File
@@ -27,14 +27,14 @@ lockRoomMultiItems =
lockRoomKeyItems :: RandomGen g => [ (Int -> State g (MetaTree Room String) , State g ItemBaseType ) ] lockRoomKeyItems :: RandomGen g => [ (Int -> State g (MetaTree Room String) , State g ItemBaseType ) ]
lockRoomKeyItems = lockRoomKeyItems =
[(lasCenSensEdge, takeOne [HELD LAUNCHER,HELD LASGUN,HELD SPARKGUN,EQUIP FLATSHIELD,HELD FORCEFIELDGUN] ) [(lasCenSensEdge, takeOne [HELD LAUNCHER,HELD LASGUN,HELD SPARKGUN,HELD FLATSHIELD,HELD FORCEFIELDGUN] )
,(sensorRoomRunPast ELECTRICAL, takeOne [CRAFT STATICMODULE,HELD SPARKGUN] ) ,(sensorRoomRunPast ELECTRICAL, takeOne [CRAFT STATICMODULE,HELD SPARKGUN] )
,(sensorRoomRunPast FLAMING, takeOne [HELD FLAMESPITTER, CRAFT INCENDIARYMODULE] ) ,(sensorRoomRunPast FLAMING, takeOne [HELD FLAMESPITTER, CRAFT INCENDIARYMODULE] )
,(sensorRoomRunPast LASERING, return $ HELD LASGUN ) ,(sensorRoomRunPast LASERING, return $ HELD LASGUN )
,(const slowDoorRoomRunPast, return $ HELD (MINIGUNX 3)) ,(const slowDoorRoomRunPast, return $ HELD (MINIGUNX 3))
,(const longRoomRunPast, takeOne [HELD SNIPERRIFLE,EQUIP FLATSHIELD]) ,(const longRoomRunPast, takeOne [HELD SNIPERRIFLE,HELD FLATSHIELD])
,(const glassLessonRunPast, takeOne [HELD LASGUN]) ,(const glassLessonRunPast, takeOne [HELD LASGUN])
,(const $ lasTunnelRunPast 400, takeOne [EQUIP FLATSHIELD,HELD FORCEFIELDGUN]) ,(const $ lasTunnelRunPast 400, takeOne [HELD FLATSHIELD,HELD FORCEFIELDGUN])
,(keyCardRoomRunPast 0, return (KEYCARD 0)) ,(keyCardRoomRunPast 0, return (KEYCARD 0))
] ]
keyCardRunPastRand :: RandomGen g => [ (Int -> State g (MetaTree Room String) , State g ItemBaseType ) ] keyCardRunPastRand :: RandomGen g => [ (Int -> State g (MetaTree Room String) , State g ItemBaseType ) ]
@@ -63,7 +63,7 @@ itemRooms =
[rc $ map makeTypeCraft [LIGHTER,PUMP,CAN] [rc $ map makeTypeCraft [LIGHTER,PUMP,CAN]
] ]
) )
, (EQUIP FLATSHIELD , join $ takeOne , (HELD FLATSHIELD , join $ takeOne
[rc $ map makeTypeCraft [PLATE,PLATE] [rc $ map makeTypeCraft [PLATE,PLATE]
,rc $ map makeTypeCraft [DRUM,DRUM,PLATE] ,rc $ map makeTypeCraft [DRUM,DRUM,PLATE]
] ]
+1 -1
View File
@@ -118,5 +118,5 @@ shrinkPolyOnEdges x (p:q:ps) = map (shrinkVert x) . slideWindow 3 $ (p:q:ps) ++
shrinkPolyOnEdges _ _ = error "too few vertices in polygon" shrinkPolyOnEdges _ _ = error "too few vertices in polygon"
shrinkVert :: Float -> [Point2] -> Point2 shrinkVert :: Float -> [Point2] -> Point2
shrinkVert d (x:y:z:[]) = x +.+ (d *.* (normalizeV (x -.- y))) +.+ (d *.* (normalizeV (z -.- y))) shrinkVert d [x,y,z] = x +.+ (d *.* normalizeV (x -.- y)) +.+ (d *.* normalizeV (z -.- y))
shrinkVert _ _ = error "wrong number of vertices" shrinkVert _ _ = error "wrong number of vertices"
+1 -1
View File
@@ -12,7 +12,7 @@ import qualified Streaming.Prelude as S
--import qualified Data.Set as S --import qualified Data.Set as S
gridInPolygon :: Float -> [Point2] -> [Point2] gridInPolygon :: Float -> [Point2] -> [Point2]
gridInPolygon gap ps = filter (flip pointInPolygon ps) gridInPolygon gap ps = filter (`pointInPolygon` ps)
. maybe [] (boundedGrid gap) . boundPoints . S.each $ ps . maybe [] (boundedGrid gap) . boundPoints . S.each $ ps
boundedGrid :: Float -> (Float,Float,Float,Float) -> [Point2] boundedGrid :: Float -> (Float,Float,Float,Float) -> [Point2]