Commit on returning to work

This commit is contained in:
2023-09-21 09:17:49 +01:00
parent b8f03f7d8c
commit 9ee925f13a
17 changed files with 56 additions and 32 deletions
-12
View File
@@ -122,18 +122,6 @@ itemCombinations =
moduleCombinations :: [(ModuleSlot, [Item], [([ItemBaseType], ItemModuleType)])] moduleCombinations :: [(ModuleSlot, [Item], [([ItemBaseType], ItemModuleType)])]
moduleCombinations = moduleCombinations =
[ [
( ModRifleMag
,
[ repeater
, autoRifle
, burstRifle
]
,
[ amod [cr STEELDRUM, cr HARDWARE] DRUMMAG
, amod [cr MOTOR, cr HARDWARE] BELTMAG
]
)
,
( ModHeldAttach ( ModHeldAttach
, ,
[ rifle [ rifle
+1 -2
View File
@@ -10,8 +10,7 @@ import LensHelp
moduleModification :: ItemModuleType -> Item -> Item moduleModification :: ItemModuleType -> Item -> Item
moduleModification imt = case imt of moduleModification imt = case imt of
EMPTYMODULE -> id EMPTYMODULE -> id
DRUMMAG -> itUse . heldConsumption . laSource . _InternalSource . iaMax .~ 45 -- BELTMAG -> itUse . heldConsumption . laSource . _InternalSource . iaMax .~ 150
BELTMAG -> itUse . heldConsumption . laSource . _InternalSource . iaMax .~ 150
MAGNETMAG -> itUse . heldDelay . rateMax .~ 4 MAGNETMAG -> itUse . heldDelay . rateMax .~ 4
BULPAY BulFlak -> (itUse . heldConsumption . laAmmoType . amBullet . buSpawn .~ BulFlak) BULPAY BulFlak -> (itUse . heldConsumption . laAmmoType . amBullet . buSpawn .~ BulFlak)
. (itUse . heldConsumption . laAmmoType . amBullet . buTimer .~ 3) . (itUse . heldConsumption . laAmmoType . amBullet . buTimer .~ 3)
+1
View File
@@ -42,6 +42,7 @@ itemEffect cr it w = case it ^. itUse of
-- ConsumeUse will cause problems if the item is not selected -- ConsumeUse will cause problems if the item is not selected
(ConsumeUse eff _) -> useC eff it cr $ rmInvItem (_crID cr) itRef w (ConsumeUse eff _) -> useC eff it cr $ rmInvItem (_crID cr) itRef w
CraftUse{} -> w CraftUse{} -> w
AttachUse{} -> w
where where
itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change itRef = cr ^?! crManipulation . manObject . inInventory . ispItem -- unsafe!! TODO change
hammerTest f = case _crHammerPosition cr of hammerTest f = case _crHammerPosition cr of
+10
View File
@@ -29,6 +29,7 @@ import Dodge.Data.Item.Params
import Dodge.Data.Item.Tweak import Dodge.Data.Item.Tweak
import Dodge.Data.Item.Use import Dodge.Data.Item.Use
import Dodge.Data.Item.Location import Dodge.Data.Item.Location
import Data.Set (Set)
data Item = Item data Item = Item
{ _itUse :: ItemUse { _itUse :: ItemUse
@@ -44,11 +45,20 @@ data Item = Item
, _itTweaks :: ItemTweaks , _itTweaks :: ItemTweaks
, _itScope :: Scope , _itScope :: Scope
, _itParams :: ItemParams , _itParams :: ItemParams
, _itAttachments :: Set ItemAttachment
} }
--deriving (Eq, Show, Read) --Generic, Flat) --deriving (Eq, Show, Read) --Generic, Flat)
data ItemAttachment = ScopeAttachment
| BulletClipAttachment
| BulletBeltAttachment
| StandAttachment
| PowerSourceAttachment
deriving (Eq,Ord)
_itUseAimStance :: Item -> AimStance _itUseAimStance :: Item -> AimStance
_itUseAimStance = _aimStance . _heldAim . _itUse _itUseAimStance = _aimStance . _heldAim . _itUse
makeLenses ''Item makeLenses ''Item
deriveJSON defaultOptions ''ItemAttachment
deriveJSON defaultOptions ''Item deriveJSON defaultOptions ''Item
+7 -2
View File
@@ -91,10 +91,15 @@ data ItemBaseType
| AMMO {_ibtAmmo :: AmmoItemType} | AMMO {_ibtAmmo :: AmmoItemType}
| Consumable {_ibtConsumable :: ConsumableItemType} | Consumable {_ibtConsumable :: ConsumableItemType}
| CRAFT CraftType | CRAFT CraftType
| ATTACH AttachType
deriving (Eq, Ord, Show, Read) deriving (Eq, Ord, Show, Read)
--deriving (Eq, Ord, Show, Read) --Generic, Flat) --deriving (Eq, Ord, Show, Read) --Generic, Flat)
data AttachType
= ZOOMSCOPE
deriving (Eq, Ord, Show, Read)
data ConsumableItemType data ConsumableItemType
= MEDKIT Int = MEDKIT Int
| EXPLOSIVES | EXPLOSIVES
@@ -188,12 +193,11 @@ data HeldItemType
data AmmoItemType data AmmoItemType
= TINMAGAZINE = TINMAGAZINE
| DRUMMAGAZINE | DRUMMAGAZINE
| BULLETBELT
deriving (Eq, Ord, Show, Read) --Generic, Flat) deriving (Eq, Ord, Show, Read) --Generic, Flat)
data ItemModuleType data ItemModuleType
= EMPTYMODULE = EMPTYMODULE
| DRUMMAG
| BELTMAG
| MAGNETMAG | MAGNETMAG
| BULPAY BulletSpawn | BULPAY BulletSpawn
| BULBODY BulletEffect | BULBODY BulletEffect
@@ -235,6 +239,7 @@ makeLenses ''ItemModuleType
deriveJSON defaultOptions ''Stack deriveJSON defaultOptions ''Stack
deriveJSON defaultOptions ''CraftType deriveJSON defaultOptions ''CraftType
deriveJSON defaultOptions ''ConsumableItemType deriveJSON defaultOptions ''ConsumableItemType
deriveJSON defaultOptions ''AttachType
deriveJSON defaultOptions ''Detector deriveJSON defaultOptions ''Detector
deriveJSON defaultOptions ''EquipItemType deriveJSON defaultOptions ''EquipItemType
deriveJSON defaultOptions ''LeftItemType deriveJSON defaultOptions ''LeftItemType
-2
View File
@@ -25,8 +25,6 @@ data Scope
-- , _scopeZoomChange :: Int -- , _scopeZoomChange :: Int
, _scopeZoom :: Float , _scopeZoom :: Float
, _scopeDefaultZoom :: Float , _scopeDefaultZoom :: Float
, -- | if the camera offset is also the center of vision
_scopeIsCamera :: Bool
} }
deriving (Eq, Show, Read) --Generic, Flat) deriving (Eq, Show, Read) --Generic, Flat)
+6
View File
@@ -54,8 +54,13 @@ data ItemUse
} }
| CraftUse | CraftUse
{_useAmount :: ItAmount} {_useAmount :: ItAmount}
| AttachUse
{_attachParams :: AttachParams}
--deriving (Eq, Show, Read) --Generic, Flat) --deriving (Eq, Show, Read) --Generic, Flat)
data AttachParams
= ZoomScopeParams
data ItemUse' data ItemUse'
= ItemHeld HeldUse' = ItemHeld HeldUse'
| ItemEquip EquipUse' | ItemEquip EquipUse'
@@ -106,6 +111,7 @@ makeLenses ''ItZoom
makeLenses ''Muzzle makeLenses ''Muzzle
deriveJSON defaultOptions ''Muzzle deriveJSON defaultOptions ''Muzzle
deriveJSON defaultOptions ''AimStance deriveJSON defaultOptions ''AimStance
deriveJSON defaultOptions ''AttachParams
deriveJSON defaultOptions ''ItZoom deriveJSON defaultOptions ''ItZoom
deriveJSON defaultOptions ''AimParams deriveJSON defaultOptions ''AimParams
deriveJSON defaultOptions ''ItemUse deriveJSON defaultOptions ''ItemUse
+5
View File
@@ -31,6 +31,11 @@ data AmmoSource
| AboveSource | AboveSource
deriving (Eq, Show, Read) --Generic, Flat) deriving (Eq, Show, Read) --Generic, Flat)
data ExternalSourceType = BulletClip
| BulletBelt
| ElectricPower
deriving (Eq, Show, Read) --Generic, Flat)
data InternalAmmo = InternalAmmo data InternalAmmo = InternalAmmo
{ _iaMax :: Int { _iaMax :: Int
, _iaLoaded :: Int , _iaLoaded :: Int
+1
View File
@@ -35,6 +35,7 @@ defaultItem =
, _itParams = NoParams , _itParams = NoParams
, _itTweaks = NoTweaks , _itTweaks = NoTweaks
, _itScope = NoScope , _itScope = NoScope
, _itAttachments = mempty
-- , _itValue = ItemValue 0 MundaneItem -- , _itValue = ItemValue 0 MundaneItem
} }
+8 -2
View File
@@ -24,11 +24,17 @@ itemFromBase ibt = case ibt of
AMMO at -> itemFromAmmoType at AMMO at -> itemFromAmmoType at
Consumable et -> itemFromConsumableType et Consumable et -> itemFromConsumableType et
CRAFT cr -> makeTypeCraft cr CRAFT cr -> makeTypeCraft cr
ATTACH at -> itemFromAttachType at
itemFromAttachType :: AttachType -> Item
itemFromAttachType at = case at of
ZOOMSCOPE -> zoomScope
itemFromAmmoType :: AmmoItemType -> Item itemFromAmmoType :: AmmoItemType -> Item
itemFromAmmoType at = case at of itemFromAmmoType at = case at of
TINMAGAZINE -> tinMagazine TINMAGAZINE -> tinMag
DRUMMAGAZINE -> drumMagazine DRUMMAGAZINE -> drumMag
BULLETBELT -> beltMag
itemFromConsumableType :: ConsumableItemType -> Item itemFromConsumableType :: ConsumableItemType -> Item
itemFromConsumableType ct = case ct of itemFromConsumableType ct = case ct of
+1
View File
@@ -88,6 +88,7 @@ itemBaseName it = case _iyBase $ _itType it of
EQUIP eit -> showEquipItem eit EQUIP eit -> showEquipItem eit
AMMO ait -> show ait AMMO ait -> show ait
Consumable cit -> show cit Consumable cit -> show cit
ATTACH ait -> show ait
showEquipItem :: EquipItemType -> String showEquipItem :: EquipItemType -> String
showEquipItem eit = case eit of showEquipItem eit = case eit of
+1
View File
@@ -25,6 +25,7 @@ itemSPic it =
EQUIP et -> equipItemSPic et it EQUIP et -> equipItemSPic et it
AMMO {} -> defSPic AMMO {} -> defSPic
Consumable{} -> defSPic Consumable{} -> defSPic
ATTACH {} -> defSPic
equipItemSPic :: EquipItemType -> Item -> SPic equipItemSPic :: EquipItemType -> Item -> SPic
equipItemSPic et _ = case et of equipItemSPic et _ = case et of
+2 -7
View File
@@ -96,14 +96,10 @@ miniGunUse i =
& heldAim . aimRange .~ 1 & heldAim . aimRange .~ 1
& heldAim . aimStance .~ TwoHandUnder & heldAim . aimStance .~ TwoHandUnder
& heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5} & heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5}
-- & heldAim . aimHandlePos .~ 5
& heldConsumption & heldConsumption
.~ (defaultBulletLoadable & laSource .~ AboveSource) .~ (defaultBulletLoadable & laSource .~ AboveSource)
--(defaultBulletLoadable & heldConsumption . laSource . _InternalSource . iaCycle
-- & laSource . iaMax .~ 1500 .~ [loadEject 40, loadInsert 40, loadPrime 40]
-- & laSource . iaLoaded .~ 1500
--)
& heldConsumption . laSource . _InternalSource . iaCycle .~ [loadEject 40, loadInsert 40, loadPrime 40]
miniGunX :: Int -> Item miniGunX :: Int -> Item
miniGunX i = miniGunX i =
@@ -111,7 +107,6 @@ miniGunX i =
& itUse .~ miniGunUse i & itUse .~ miniGunUse i
& itUse . heldAim . aimTurnSpeed .~ 0.5 & itUse . heldAim . aimTurnSpeed .~ 0.5
& itUse . heldAim . aimMuzzles .~ replicate i (Muzzle (V2 30 0) 0 0.05) & itUse . heldAim . aimMuzzles .~ replicate i (Muzzle (V2 30 0) 0 0.05)
-- & itUse . heldAim . aimMuzzles .~ replicate i (Muzzle (V2 50 0) 0 0.05)
& itParams . recoil .~ 10 & itParams . recoil .~ 10
& itParams . torqueAfter .~ 0.01 & itParams . torqueAfter .~ 0.01
& itParams . randomOffset .~ 10 & itParams . randomOffset .~ 10
+5 -1
View File
@@ -69,7 +69,11 @@ sniperRifle =
& itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0 & itUse . heldAim . aimMuzzles . ix 0 . mzInaccuracy .~ 0
& itUse . heldAim . aimZoom .~ defaultItZoom{_izMax = 0.5, _izMin = 0.5,_izFac = 1} & itUse . heldAim . aimZoom .~ defaultItZoom{_izMax = 0.5, _izMin = 0.5,_izFac = 1}
& itUse . heldScroll .~ HeldScrollZoom -- zoomLongGun & itUse . heldScroll .~ HeldScrollZoom -- zoomLongGun
& itScope .~ ZoomScope (V2 0 0) 1 0.5 False & itScope .~ ZoomScope
{ _scopePos = (V2 0 0)
, _scopeZoom = 1
, _scopeDefaultZoom = 0.5
}
& itType . iyModules . at ModTarget ?~ TARGET TargetLaser & itType . iyModules . at ModTarget ?~ TARGET TargetLaser
-- & itUse . useTargeting ?~ TargetLaser -- & itUse . useTargeting ?~ TargetLaser
+5 -1
View File
@@ -32,7 +32,11 @@ latchkey _ =
binoculars :: Item binoculars :: Item
binoculars = binoculars =
defaultHeldItem defaultHeldItem
& itScope .~ ZoomScope (V2 0 0) 1 0.5 False & itScope .~ ZoomScope
{ _scopePos = (V2 0 0)
, _scopeZoom = 1
, _scopeDefaultZoom = 0.5
}
& itType . iyBase .~ HELD BINOCULARS & itType . iyBase .~ HELD BINOCULARS
-- & itUse . heldAim . aimHandlePos .~ 5 -- & itUse . heldAim . aimHandlePos .~ 5
-- & itUse . heldAim . aimMuzPos .~ 10 -- & itUse . heldAim . aimMuzPos .~ 10
+1 -2
View File
@@ -22,8 +22,7 @@ moduleStrings = M.elems . M.mapMaybe moduleName . _iyModules . _itType
moduleName :: ItemModuleType -> Maybe String moduleName :: ItemModuleType -> Maybe String
moduleName imt = case imt of moduleName imt = case imt of
EMPTYMODULE -> Nothing EMPTYMODULE -> Nothing
DRUMMAG -> Just "+DRUM MAG" -- BELTMAG -> Just "+BELT FEED"
BELTMAG -> Just "+BELT FEED"
MAGNETMAG -> Just "+MAGNET FEED" MAGNETMAG -> Just "+MAGNET FEED"
BULPAY thepayload -> Just $ "+" ++ displayBulletPayload thepayload BULPAY thepayload -> Just $ "+" ++ displayBulletPayload thepayload
BULBODY thebody -> Just $ "+" ++ displayBulletBody thebody BULBODY thebody -> Just $ "+" ++ displayBulletBody thebody
+2 -1
View File
@@ -141,7 +141,8 @@ updateScopeZoom' i w
| otherwise = w & wppointer %~ resetscope | otherwise = w & wppointer %~ resetscope
where where
wppointer = cWorld . lWorld . creatures . ix 0 . crInv . ix i . itScope wppointer = cWorld . lWorld . creatures . ix 0 . crInv . ix i . itScope
resetscope (ZoomScope _ _ defz bl) = ZoomScope (V2 0 0) defz defz bl --resetscope (ZoomScope _ _ defz bl) = ZoomScope (V2 0 0) defz defz bl
resetscope (ZoomScope _ _ defz) = ZoomScope (V2 0 0) defz defz
resetscope otherAtt = otherAtt resetscope otherAtt = otherAtt
mp = rotateV (w ^. wCam . camRot) $ _mousePos (_input w) mp = rotateV (w ^. wCam . camRot) $ _mousePos (_input w)