Cleanup defaults

This commit is contained in:
2026-01-02 21:33:00 +00:00
parent 02da762f2f
commit 3cc439b877
20 changed files with 259 additions and 313 deletions
+2 -2
View File
@@ -21,8 +21,8 @@ import Dodge.Default.Wall
import Geometry
import Picture
defaultEquipment :: Item
defaultEquipment = defaultHeldItem & itUse .~ UseNothing
defEquipment :: Item
defEquipment = defHeldItem & itUse .~ UseNothing
defaultFlIt :: FloorItem
defaultFlIt = FlIt{_flItRot = 0, _flItPos = V2 0 0}
+6 -6
View File
@@ -1,13 +1,13 @@
module Dodge.Default.Item (
defaultHeldItem,
defaultCraftItem,
defHeldItem,
defCraftItem,
) where
import Control.Lens
import Dodge.Data.Item
defaultHeldItem :: Item
defaultHeldItem =
defHeldItem :: Item
defHeldItem =
Item
{ _itType = HELD PISTOL
, _itConsumables = Nothing
@@ -22,5 +22,5 @@ defaultHeldItem =
, _itTimeLastUsed = 0
}
defaultCraftItem :: Item
defaultCraftItem = defaultHeldItem & itUse .~ UseNothing
defCraftItem :: Item
defCraftItem = defHeldItem & itUse .~ UseNothing
+8 -9
View File
@@ -3,9 +3,7 @@ module Dodge.Equipment (
effectOnEquip,
) where
import Linear
import Control.Lens
import Data.Maybe
import Dodge.Creature.HandPos
import Dodge.Data.World
import Dodge.Item.Location
@@ -14,6 +12,7 @@ import Dodge.Wall.ForceField
import Dodge.Wall.Move
import Geometry
import qualified IntMapHelp as IM
import Linear
import NewInt
effectOnRemove :: Item -> Creature -> World -> World
@@ -23,11 +22,8 @@ effectOnRemove itm = case itm ^. itType of
onRemoveWristShield :: Item -> Creature -> World -> World
onRemoveWristShield itm _ =
(pointerToItem itm . itParams .~ NoParams) . mremovewall
where
mremovewall = fromMaybe id $ do
i <- itm ^? itParams . itParamID
return $ deleteWallID i
(pointerToItem itm . itParams .~ NoParams)
. maybe id deleteWallID (itm ^? itParams . itParamID)
effectOnEquip :: Item -> Creature -> World -> World
effectOnEquip itm = case itm ^. itType of
@@ -37,7 +33,7 @@ effectOnEquip itm = case itm ^. itType of
onEquipWristShield :: Item -> Creature -> World -> World
onEquipWristShield itm cr w =
w
& pointerToItem itm . itParams .~ ItemParamID{_itParamID = i}
& pointerToItem itm . itParams .~ ItemParamID i
& cWorld . lWorld . walls . at i ?~ forceField{_wlID = i}
& setWristShieldPos
( itm & itParams .~ ItemParamID{_itParamID = i}
@@ -51,7 +47,10 @@ setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
where
i = _itParamID $ _itParams itm
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
handtrans = case w ^? cWorld . lWorld . items
handtrans = case w
^? cWorld
. lWorld
. items
. ix (itm ^. itID . unNInt)
. itLocation
. ilEquipSite
+21 -21
View File
@@ -16,68 +16,68 @@ module Dodge.Item.Ammo (
import Control.Lens
import Dodge.Data.World
import Dodge.Default.Item
import Dodge.Item.Attach
--import Dodge.Item.Weapon.Bullet
megaTinMag :: Int -> Item
megaTinMag x =
tinMag
& itConsumables ?~ x
megaTinMag x = tinMag & itConsumables ?~ x
tinMag :: Item
tinMag =
defaultHeldItem & itType .~ AMMOMAG TINMAG
defHeldItem
& itType .~ AMMOMAG TINMAG
& itUse .~ UseNothing
& itConsumables ?~ 15
drumMag :: Item
drumMag =
tinMag & itType . ibtAmmoMag .~ DRUMMAG
tinMag
& itType . ibtAmmoMag .~ DRUMMAG
& itConsumables ?~ 30
beltMag :: Item
beltMag =
tinMag & itType . ibtAmmoMag .~ BELTMAG
tinMag
& itType . ibtAmmoMag .~ BELTMAG
& itConsumables ?~ 10000
megaShellMag :: Item
megaShellMag =
shellMag
& itConsumables ?~ 1000000
megaShellMag = shellMag & itConsumables ?~ 1000000
shellMag :: Item
shellMag =
defaultHeldItem & itType .~ AMMOMAG SHELLMAG
defHeldItem
& itType .~ AMMOMAG SHELLMAG
& itUse .~ UseNothing
& itConsumables ?~ 1
megaBattery :: Item
megaBattery =
battery
& itConsumables ?~ 1000000
megaBattery = battery & itConsumables ?~ 1000000
smallBattery :: Item
smallBattery = battery & itConsumables ?~ 999
battery :: Item
battery =
defaultHeldItem & itType .~ AMMOMAG BATTERY
defHeldItem
& itType .~ AMMOMAG BATTERY
& itUse .~ UseNothing
& itConsumables ?~ 10 ^ (9 :: Int)
capacitor :: Item
capacitor =
defaultHeldItem & itType .~ ATTACH CAPACITOR
defHeldItem
& itType .~ ATTACH CAPACITOR
& itUse .~ UseNothing
& itConsumables ?~ 0
chemFuelPouch :: Item
chemFuelPouch =
defaultHeldItem & itType .~ AMMOMAG CHEMFUELPOUCH
defHeldItem
& itType .~ AMMOMAG CHEMFUELPOUCH
& itUse .~ UseNothing
& itConsumables
?~ 100000
?~ 100000
bulletSynthesizer :: Item
bulletSynthesizer = makeAttach BULLETSYNTH & itUse .~ UseAttach (APInt 0)
bulletSynthesizer = defHeldItem
& itType .~ ATTACH BULLETSYNTH
& itUse .~ UseAttach (APInt 0)
-14
View File
@@ -1,14 +0,0 @@
module Dodge.Item.Attach
(makeAttach
)
where
import Dodge.Data.Item
import Dodge.Default.Item
import Control.Lens
makeAttach :: AttachType -> Item
makeAttach t = defaultHeldItem
& itType .~ ATTACH t
& itUse .~ UseAttach APNothing
+1 -4
View File
@@ -10,10 +10,7 @@ import Dodge.Data.Item
import Dodge.Default.Item
makeTypeCraftNum :: Int -> CraftType -> [Item]
makeTypeCraftNum i ct =
replicate i $
defaultCraftItem
& itType .~ CRAFT ct
makeTypeCraftNum i ct = replicate i $ defCraftItem & itType .~ CRAFT ct
makeTypeCraft :: CraftType -> Item
makeTypeCraft = head . makeTypeCraftNum 1
+16 -35
View File
@@ -18,74 +18,58 @@ module Dodge.Item.Equipment (
) where
import Dodge.Data.Equipment.Misc
--import Dodge.Item.Weapon.Bullet
import Dodge.Data.Item
import Dodge.Data.Magnet
import Dodge.Default
import LensHelp
magShield :: MagnetBuBu -> Item
magShield mt =
defaultEquipment
-- & itUse . uequipEffect . eeUse .~ EMagShield MagnetRepulse
& itType .~ EQUIP (MAGSHIELD mt)
magShield mt = defEquipment & itType .~ EQUIP (MAGSHIELD mt)
flameShield :: Item
flameShield =
defaultEquipment
& itType .~ EQUIP FLAMESHIELD
flameShield = defEquipment & itType .~ EQUIP FLAMESHIELD
frontArmour :: Item
frontArmour =
defaultEquipment
& itType .~ EQUIP FRONTARMOUR
frontArmour = defEquipment & itType .~ EQUIP FRONTARMOUR
wristArmour :: Item
wristArmour = defaultEquipment & itType .~ EQUIP WRISTARMOUR
wristArmour = defEquipment & itType .~ EQUIP WRISTARMOUR
batteryPack :: Item
batteryPack =
defaultEquipment
& itConsumables
?~ 10000000
defEquipment
& itConsumables ?~ 10000000
& itType .~ EQUIP BATTERYPACK
fuelPack :: Item
fuelPack =
defaultEquipment
-- & itUse . uequipEffect . eeUse .~ EFuelSource 10000 10000
defEquipment
& itType .~ EQUIP FUELPACK
& itConsumables
?~ 100000
& itConsumables ?~ 100000
bulletBeltPack :: Item
bulletBeltPack =
defaultEquipment
defEquipment
& itConsumables ?~ 10000000
& itType .~ EQUIP BULLETBELTPACK
bulletBeltBracer :: Item
bulletBeltBracer =
defaultEquipment
defEquipment
& itConsumables ?~ 100000
& itType .~ EQUIP BULLETBELTBRACER
brainHat :: Item
brainHat = defaultEquipment & itType .~ EQUIP BRAINHAT
brainHat = defEquipment & itType .~ EQUIP BRAINHAT
hat :: Item
hat = defaultEquipment & itType .~ EQUIP HAT
hat = defEquipment & itType .~ EQUIP HAT
headLamp :: Item
headLamp =
defaultEquipment
-- & itUse . uequipEffect . eeUse .~ EHeadLamp
& itType .~ EQUIP HEADLAMP
headLamp = defEquipment & itType .~ EQUIP HEADLAMP
powerLegs :: Item
powerLegs =
defaultEquipment
& itType .~ EQUIP POWERLEGS
powerLegs = defEquipment & itType .~ EQUIP POWERLEGS
speedLegs :: Item
speedLegs = powerLegs & itType .~ EQUIP SPEEDLEGS
@@ -95,10 +79,7 @@ jumpLegs = powerLegs & itType .~ EQUIP JUMPLEGS
wristInvisibility :: Item
wristInvisibility =
defaultEquipment
-- & itUse . uequipEffect . eeOnEquip .~ ECamouflage Invisible
-- & itUse . uequipEffect . eeOnRemove .~ ECamouflage FullyVisible
& itType .~ EQUIP (INVISIBILITYEQUIPMENT GoesOnWrist)
defEquipment & itType .~ EQUIP (INVISIBILITYEQUIPMENT GoesOnWrist)
pulseChecker :: Item
pulseChecker = defaultEquipment & itType .~ EQUIP WRIST_ECG
pulseChecker = defEquipment & itType .~ EQUIP WRIST_ECG
+3 -18
View File
@@ -18,7 +18,7 @@ sparkGun =
teslaGun :: Item
teslaGun =
defaultHeldItem
defHeldItem
& itParams .~ teslaParams
& itType .~ HELD TESLAGUN
@@ -33,14 +33,7 @@ teslaParams =
-- previous phaseV parameters: 0.2, 1, 5
laser :: Item
laser =
defaultHeldItem
-- & itUse . heldParams .~ BeamShooterParams-- Nothing
-- & itAmmoSlots .~ singleAmmo ElectricalAmmo
-- & itUse . heldDelay .~ NoDelay
-- & itUse . heldMuzzles . ix 0 . mzPos .~ V2 6 0
-- & itUse . heldMuzzles . ix 0 . mzInaccuracy .~ 0
-- & itUse . heldMuzzles . ix 0 . mzFlareType .~ LasGunFlare
-- & itUse . heldMuzzles . ix 0 . mzEffect .~ MuzzleLaser
defHeldItem
& itTargeting
.~ ItTargeting
{ _itTgPos = Nothing
@@ -51,12 +44,4 @@ laser =
-- previous attractionPower values: 1, -1, -10, 0
tractorGun :: Item
tractorGun =
defaultHeldItem
-- & itUse . heldParams .~ BeamShooterParams
-- & itAmmoSlots .~ singleAmmo ElectricalAmmo
-- & itUse . heldMuzzles . ix 0 . mzPos .~ V2 30 0
-- & itUse . heldMuzzles . ix 0 . mzInaccuracy .~ 0
-- & itUse . heldMuzzles . ix 0 . mzFlareType .~ NoFlare
-- & itUse . heldMuzzles . ix 0 . mzEffect .~ MuzzleTractor
& itType .~ HELD TRACTORGUN
tractorGun = defHeldItem & itType .~ HELD TRACTORGUN
+2 -2
View File
@@ -13,11 +13,11 @@ import Dodge.Default
import LensHelp
volleyGun :: Int -> Item
volleyGun i = defaultHeldItem & itType .~ HELD (VOLLEYGUN i)
volleyGun i = defHeldItem & itType .~ HELD (VOLLEYGUN i)
& itParams .~ VolleyUnfiredBarrels [0..i-1]
rifle :: Item
rifle = defaultHeldItem & itType .~ HELD RIFLE
rifle = defHeldItem & itType .~ HELD RIFLE
alteRifle :: Item
alteRifle = rifle
+1 -1
View File
@@ -9,7 +9,7 @@ import Dodge.Data.Item
import Dodge.Default.Item
bangCone :: Item
bangCone = defaultHeldItem & itType .~ HELD BANGCONE
bangCone = defHeldItem & itType .~ HELD BANGCONE
blunderbuss :: Item
blunderbuss = bangCone & itType .~ HELD BLUNDERBUSS
+1 -1
View File
@@ -13,7 +13,7 @@ import Dodge.Default.Item
rLauncher :: Item
rLauncher =
defaultHeldItem
defHeldItem
-- & itUse . heldDelay . rateMax .~ 20
-- & itUse . heldMuzzles . ix 0 . mzInaccuracy .~ 0
-- & itUse . heldMuzzles . ix 0 . mzEffect .~ MuzzleRLauncher
+1 -1
View File
@@ -17,7 +17,7 @@ import LensHelp
bangRod :: Item
bangRod =
defaultHeldItem
defHeldItem
-- & itUse . heldDelay . rateMax .~ 12
& itType .~ HELD BANGROD
-- & itUse . heldMuzzles . ix 0 . mzPos .~ V2 30 0
+1 -1
View File
@@ -63,7 +63,7 @@ flameWall =
flameThrower :: Item
flameThrower =
defaultHeldItem
defHeldItem
& itType .~ HELD FLAMETHROWER
& itParams .~ NozzleAngle 0
-- & itUse . heldDelay .~ NoDelay
+2 -30
View File
@@ -13,38 +13,10 @@ import Dodge.Default.Item
import LensHelp
bangStick :: Int -> Item
bangStick i =
defaultHeldItem
-- & itUse . heldParams . recoil .~ 25
& itType .~ HELD (BANGSTICK i)
-- & itUse . heldDelay . rateMax .~ 8
-- & itUse . heldMuzzles
-- .~ [ Muzzle
-- (V2 10 0)
-- a
-- 0.01
-- 0
-- NoFlare
-- MuzzleShootBullet
-- (UseExactly 1)
-- 0
-- | a <- spreadAroundCenter i baseStickSpread
-- ]
-- & itUse . heldMuzzles . ix 0 . mzFlareType .~ NoLightFlare
-- & itUse . heldMuzzles . ix (i `div` 2) . mzFlareType .~ MiniGunFlare
-- & itUse . heldMuzzles . ix (i-1) . mzFlareType .~ NoLightFlare
--baseStickSpread :: Float
--baseStickSpread = 0.2
bangStick i = defHeldItem & itType .~ HELD (BANGSTICK i)
pistol :: Item
pistol =
bangStick 1
-- & itUse . heldDelay . rateMax .~ 6
-- & itUse . heldMuzzles . ix 0 . mzPos %~ const (V2 10 0)
-- & itUse . heldMuzzles . ix 0 . mzInaccuracy %~ const 0.05
-- & itUse . heldMuzzles . ix 0 . mzFlareType %~ const BasicFlare
& itType .~ HELD PISTOL
pistol = bangStick 1 & itType .~ HELD PISTOL
autoPistol :: Item
autoPistol = pistol & itType .~ HELD AUTOPISTOL
+5 -5
View File
@@ -15,20 +15,20 @@ import Dodge.Data.Item
import Dodge.Default.Item
flatShield :: Item
flatShield = defaultHeldItem & itType .~ HELD FLATSHIELD
flatShield = defHeldItem & itType .~ HELD FLATSHIELD
keyCard :: Int -> Item
keyCard n = defaultHeldItem & itType .~ HELD (KEYCARD n)
keyCard n = defHeldItem & itType .~ HELD (KEYCARD n)
led :: Item
led = defaultHeldItem & itType .~ HELD LED
led = defHeldItem & itType .~ HELD LED
-- | Sends out pulses that display walls.
detector :: Detector -> Item
detector dt = defaultHeldItem & itType .~ DETECTOR dt
detector dt = defHeldItem & itType .~ DETECTOR dt
blinker :: Item
blinker = defaultHeldItem & itType .~ HELD BLINKER
blinker = defHeldItem & itType .~ HELD BLINKER
unsafeBlinker :: Item
unsafeBlinker = blinker & itType .~ HELD BLINKERUNSAFE
+1 -3
View File
@@ -6,9 +6,7 @@ import Control.Lens
--import Linear.V2
shatterGun :: Item
shatterGun =
defaultHeldItem
& itType .~ HELD SHATTERGUN
shatterGun = defHeldItem & itType .~ HELD SHATTERGUN
-- & itUse . heldDelay . rateMax .~ 10
-- & itAmmoSlots .~ singleAmmo ElectricalAmmo
-- & itUse . heldMuzzles . ix 0 . mzPos .~ V2 30 0
+1 -1
View File
@@ -54,7 +54,7 @@ alteRifleAmmoOrient itm = \case
_ -> (V3 18 (itemShapeMax _y itm + s - 1) 0, Q.qz pi)
where
s | itm ^? itParams . alteRifleSwitch == Just 0 = 1
| otherwise = (-1)
| otherwise = -1
itemShapeMaxX :: Item -> Float
itemShapeMaxX = itemShapeMax _1
+68 -43
View File
@@ -25,139 +25,164 @@ module Dodge.Item.Scope (
bingate,
) where
import Dodge.Item.Attach
import Control.Lens
import Dodge.Data.Item
import Dodge.Default.Item
zoomScope :: Item
zoomScope = defaultHeldItem
& itType .~ ATTACH ZOOMSCOPE
& itUse .~ UseScope OpticScope{_opticPos = 0, _opticZoom = 1, _opticDefaultZoom = 0.5}
zoomScope =
defHeldItem
& itType .~ ATTACH ZOOMSCOPE
& itUse .~ UseScope OpticScope{_opticPos = 0, _opticZoom = 1, _opticDefaultZoom = 0.5}
targetingScope :: TargetingType -> Item
targetingScope tt = defaultHeldItem
targetingScope tt =
defHeldItem
& itType .~ TARGETING tt
& itUse .~ UseNothing
& itTargeting .~ ItTargeting
{ _itTgPos = Nothing
, _itTgID = Nothing
, _itTgActive = False
}
& itUse .~ UseNothing
& itTargeting
.~ ItTargeting
{ _itTgPos = Nothing
, _itTgID = Nothing
, _itTgActive = False
}
homingModule :: Item
homingModule = makeAttach HOMINGMODULE
homingModule =
defHeldItem
& itType .~ ATTACH HOMINGMODULE
& itUse .~ UseAttach APNothing
stickyMod :: Item
stickyMod =
defaultHeldItem
defHeldItem
& itType .~ STICKYMOD
& itUse .~ UseNothing
introScan :: IntroScanType -> Item
introScan t =
defaultHeldItem
defHeldItem
& itType .~ INTROSCAN t
& itUse .~ UseNothing
itemScan :: Item
itemScan =
defaultHeldItem
defHeldItem
& itType .~ ITEMSCAN
& itUse .~ UseNothing
-- & itEffect . ieOnDrop .~ ItemCancelExamineInventory
mapper :: Item
mapper =
defaultHeldItem
defHeldItem
& itType .~ MAPPER
& itUse .~ UseMapper mempty mempty
dropper :: InventoryPathing -> Item
dropper x =
defaultHeldItem
defHeldItem
& itType .~ DROPPER x
& itUse .~ UseInt 0
clicker :: InventoryPathing -> Item
clicker x =
defaultHeldItem
defHeldItem
& itType .~ CLICKER x
& itUse .~ UseInt 0
copier :: InventoryPathing -> Item
copier x =
defaultHeldItem
defHeldItem
& itType .~ COPIER x
& itUse .~ UseValue (Left 0)
& itScroll .~ ItemScrollInt 0
nulgate :: Item
nulgate =
defaultHeldItem
defHeldItem
& itType .~ NULGATE
& itUse .~ UseNothing
& itScroll .~ ItemScrollIntRange 2 0
unigate :: Item
unigate =
defaultHeldItem
defHeldItem
& itType .~ UNIGATE
& itUse .~ UseNothing
& itScroll .~ ItemScrollIntRange 4 0
bingate :: Item
bingate =
defaultHeldItem
defHeldItem
& itType .~ BINGATE
& itUse .~ UseNothing
& itScroll .~ ItemScrollIntRange 16 0
bulletModule :: BulletMod -> Item
bulletModule bm =
defaultHeldItem
defHeldItem
& itType .~ BULLETMOD bm
& itUse .~ UseBulletMod {_ubMod = bm}
& itUse .~ UseBulletMod{_ubMod = bm}
shellModule :: Payload -> Item
shellModule p = defaultHeldItem
shellModule p =
defHeldItem
& itType .~ ATTACH (SHELLPAYLOAD p)
& itUse .~ UseNothing
--bulletTargetingModule :: BulletTrajectoryType -> Item
--bulletTargetingModule = bulletModule . BulletModTrajectory
-- bulletTargetingModule :: BulletTrajectoryType -> Item
-- bulletTargetingModule = bulletModule . BulletModTrajectory
bulletPayloadModule :: BulletPayload -> Item
bulletPayloadModule = bulletModule . BulletModPayload
arHUD :: Item
arHUD = defaultHeldItem
& itType .~ ARHUD
& itUse .~ UseNothing
arHUD =
defHeldItem
& itType .~ ARHUD
& itUse .~ UseNothing
remoteScreen :: Item
remoteScreen = makeAttach REMOTESCREEN
-- & itUse . uaParams .~ APLinkProjectile Nothing
& itUse . uaParams .~ APProjectiles []
remoteScreen =
defHeldItem
& itType .~ ATTACH REMOTESCREEN
& itUse .~ UseAttach (APProjectiles [])
remoteDetonator :: Item
remoteDetonator = makeAttach REMOTEDETONATOR
-- & itUse .~ UseHammer HammerUp
& itUse . uaParams .~ APProjectiles []
remoteDetonator =
defHeldItem
& itType .~ ATTACH REMOTEDETONATOR
& itUse .~ UseAttach (APProjectiles [])
joystick :: Item
joystick = makeAttach JOYSTICK
-- & itUse . uaParams .~ APLinkProjectile Nothing
joystick =
defHeldItem
& itType .~ ATTACH JOYSTICK
& itUse .~ UseAttach APNothing
-- & itUse . uaParams .~ APLinkProjectile Nothing
gimbal :: Item
gimbal = makeAttach GIMBAL
gimbal =
defHeldItem
& itType .~ ATTACH GIMBAL
& itUse .~ UseAttach APNothing
gyroscope :: Item
gyroscope = makeAttach GYROSCOPE
gyroscope =
defHeldItem
& itType .~ ATTACH GYROSCOPE
& itUse .~ UseAttach APNothing
underBarrelSlot :: Item
underBarrelSlot = makeAttach UNDERBARRELSLOT
underBarrelSlot =
defHeldItem
& itType .~ ATTACH UNDERBARRELSLOT
& itUse .~ UseAttach APNothing
smokeReducer :: Item
smokeReducer = makeAttach SMOKEREDUCER
smokeReducer =
defHeldItem
& itType .~ ATTACH SMOKEREDUCER
& itUse .~ UseAttach APNothing
+1
View File
@@ -11,4 +11,5 @@ forceField =
, _wlRotateTo = False
, _wlStructure = StandaloneWall
, _wlMaterial = ForceField
, _wlTouchThrough = True
}