Remove consumable records

This commit is contained in:
2025-06-05 21:15:20 +01:00
parent 816ab4222f
commit 10ca82c4d5
16 changed files with 258 additions and 321 deletions
+20 -62
View File
@@ -16,103 +16,61 @@ import Control.Lens
import Dodge.Data.World
import Dodge.Default.Item
import Dodge.Item.Attach
import Dodge.Item.Weapon.Bullet
--import Dodge.Item.Weapon.Bullet
megaTinMag :: Int -> Item
megaTinMag x =
tinMag
& itConsumables . magLoadStatus . iaMax .~ x
& itConsumables . magLoadStatus . iaLoaded .~ x
& itConsumables ?~ x
tinMag :: Item
tinMag =
defaultHeldItem & itType .~ AMMOMAG TINMAG
& itUse .~ UseNothing
& itConsumables
.~ AmmoMag
{ _magParams = BulletParams defaultBullet
-- , _magType = BulletAmmo
, _magLoadStatus =
ReloadStatus
{ _iaMax = 15
, _iaLoaded = 15
}
}
& itConsumables ?~ 15
drumMag :: Item
drumMag = tinMag & itType . ibtAmmoMag .~ DRUMMAG
& itConsumables . magLoadStatus . iaLoaded .~ 30
& itConsumables . magLoadStatus . iaMax .~ 30
drumMag =
tinMag & itType . ibtAmmoMag .~ DRUMMAG
& itConsumables ?~ 30
beltMag :: Item
beltMag = tinMag & itType . ibtAmmoMag .~ BELTMAG
& itConsumables . magLoadStatus . iaLoaded .~ 10000
& itConsumables . magLoadStatus . iaMax .~ 20000
-- & itConsumables . magType .~ BeltBulletAmmo
beltMag =
tinMag & itType . ibtAmmoMag .~ BELTMAG
& itConsumables ?~ 10000
megaShellMag :: Item
megaShellMag = shellMag
& itConsumables . magLoadStatus . iaMax .~ 1000000
& itConsumables . magLoadStatus . iaLoaded .~ 1000000
megaShellMag =
shellMag
& itConsumables ?~ 1000000
shellMag :: Item
shellMag =
defaultHeldItem & itType .~ AMMOMAG SHELLMAG
& itUse .~ UseNothing
& itConsumables
.~ AmmoMag
{ _magParams =
ProjectileParams
{ _ampPayload = ExplosionPayload
}
, _magLoadStatus =
ReloadStatus
{ _iaMax = 1
, _iaLoaded = 1
}
-- , _magType = LauncherAmmo
}
& itConsumables ?~ 1
megaBattery :: Item
megaBattery = battery
& itConsumables . magLoadStatus . iaMax .~ 1000000
& itConsumables . magLoadStatus . iaLoaded .~ 1000000
megaBattery =
battery
& itConsumables ?~ 1000000
smallBattery :: Item
smallBattery =
battery
& itConsumables . magLoadStatus . iaMax .~ 999
& itConsumables . magLoadStatus . iaLoaded .~ 999
smallBattery = battery & itConsumables ?~ 999
battery :: Item
battery =
defaultHeldItem & itType .~ AMMOMAG BATTERY
& itUse .~ UseNothing
& itConsumables
.~ AmmoMag
{ _magParams = NoAmmoParams
-- , _magType = ElectricalAmmo
, _magLoadStatus =
ReloadStatus
{ _iaMax = 10 ^ (9 :: Int)
, _iaLoaded = 10 ^ (9 :: Int)
}
}
& itConsumables ?~ 10 ^ (9 :: Int)
chemFuelPouch :: Item
chemFuelPouch =
defaultHeldItem & itType .~ AMMOMAG CHEMFUELPOUCH
& itUse .~ UseNothing
& itConsumables
.~ AmmoMag
{ _magParams = GasParams ChemFuel
-- , _magType = GasAmmo
, _magLoadStatus =
ReloadStatus
{ _iaMax = 1000
, _iaLoaded = 1000
}
}
?~ 1000
bulletSynthesizer :: Item
bulletSynthesizer = makeAttach BULLETSYNTH & itUse .~ UseAttach (APInt 0)
+1 -1
View File
@@ -35,7 +35,7 @@ itemInternalValue itm
| Just x <- itm ^? itUse . uInt = Just (Left x)
| Just x <- itm ^? itUse . useToggle = Just (Right $ show x)
| isJust $ itm ^? itTargeting . itTgPos . _Just = Just $ Right "!TARGETING"
| Just x <- itm ^? itConsumables . magLoadStatus . iaLoaded = Just $ Left x
| Just x <- itm ^. itConsumables = Just $ Left x
| UseAttach (APInt i) <- itm ^. itUse = Just $ Left i
| UseAttach (APProjectiles x) <- itm ^. itUse = Just . Right $ show x
| v <- itm ^? itUse . uValue = v
+9 -4
View File
@@ -5,6 +5,7 @@ module Dodge.Item.Draw.SPic (
itemTreeSPic,
) where
import Dodge.Item.MaxAmmo
import Color
import Data.Maybe
import Data.Strict.Tuple
@@ -131,11 +132,15 @@ ammoMagSPic it = \case
_ -> noPic $ upperPrismPolyTS 1 (rectNSWE 0 (- y) (-1) 1)
where
y = fromIntegral y' * 0.3
y' = fromMaybe 0 $ it ^? itConsumables . magLoadStatus . iaLoaded
am = fractionLoadedAmmo (it ^?! itConsumables . magLoadStatus)
y' = fromMaybe 0 $ it ^. itConsumables
am = fractionLoadedAmmo it -- (it ^?! itConsumables . magLoadStatus)
fractionLoadedAmmo :: Item -> Float
fractionLoadedAmmo itm = fromMaybe 0 $ do
m <- maxAmmo itm
return $ fromIntegral (itm ^?! itConsumables . _Just)
/ fromIntegral m
fractionLoadedAmmo :: ReloadStatus -> Float
fractionLoadedAmmo rs = fromIntegral (_iaLoaded rs) / fromIntegral (_iaMax rs)
--
--fractionLoadedAmmo2 :: ReloadStatus -> Float
--fractionLoadedAmmo2 rs =
+13 -44
View File
@@ -18,16 +18,16 @@ module Dodge.Item.Equipment (
) where
import Dodge.Data.Equipment.Misc
import Dodge.Data.Magnet
import Dodge.Item.Weapon.Bullet
--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
-- & itUse . uequipEffect . eeUse .~ EMagShield MagnetRepulse
& itType .~ EQUIP (MAGSHIELD mt)
flameShield :: Item
@@ -44,61 +44,30 @@ wristArmour :: Item
wristArmour = defaultEquipment & itType .~ EQUIP WRISTARMOUR
batteryPack :: Item
batteryPack = defaultEquipment
batteryPack =
defaultEquipment
& itConsumables
.~ AmmoMag
{ _magParams = NoAmmoParams
, _magLoadStatus =
ReloadStatus
{ _iaMax = 10000000
, _iaLoaded = 10000000
}
}
?~ 10000000
& itType .~ EQUIP BATTERYPACK
fuelPack :: Item
fuelPack =
defaultEquipment
-- & itUse . uequipEffect . eeUse .~ EFuelSource 10000 10000
-- & itUse . uequipEffect . eeUse .~ EFuelSource 10000 10000
& itType .~ EQUIP FUELPACK
& itConsumables
.~ AmmoMag
{ _magParams = GasParams ChemFuel
, _magLoadStatus =
ReloadStatus
{ _iaMax = 100000
, _iaLoaded = 100000
}
}
?~ 100000
bulletBeltPack :: Item
bulletBeltPack =
defaultEquipment
-- & itUse . uequipEffect . eeUse .~ EDoNothing
& itConsumables
.~ AmmoMag
{ _magParams = BulletParams defaultBullet
, _magLoadStatus =
ReloadStatus
{ _iaMax = 10000000
, _iaLoaded = 10000000
}
}
& itConsumables ?~ 10000000
& itType .~ EQUIP BULLETBELTPACK
bulletBeltBracer :: Item
bulletBeltBracer =
defaultEquipment
-- & itUse . uequipEffect . eeUse .~ EDoNothing
& itConsumables
.~ AmmoMag
{ _magParams = BulletParams defaultBullet
, _magLoadStatus =
ReloadStatus
{ _iaMax = 100000
, _iaLoaded = 100000
}
}
& itConsumables ?~ 100000
& itType .~ EQUIP BULLETBELTBRACER
brainHat :: Item
@@ -110,7 +79,7 @@ hat = defaultEquipment & itType .~ EQUIP HAT
headLamp :: Item
headLamp =
defaultEquipment
-- & itUse . uequipEffect . eeUse .~ EHeadLamp
-- & itUse . uequipEffect . eeUse .~ EHeadLamp
& itType .~ EQUIP HEADLAMP
powerLegs :: Item
@@ -127,8 +96,8 @@ jumpLegs = powerLegs & itType .~ EQUIP JUMPLEGS
wristInvisibility :: Item
wristInvisibility =
defaultEquipment
-- & itUse . uequipEffect . eeOnEquip .~ ECamouflage Invisible
-- & itUse . uequipEffect . eeOnRemove .~ ECamouflage FullyVisible
-- & itUse . uequipEffect . eeOnEquip .~ ECamouflage Invisible
-- & itUse . uequipEffect . eeOnRemove .~ ECamouflage FullyVisible
& itType .~ EQUIP (INVISIBILITYEQUIPMENT GoesOnWrist)
pulseChecker :: Item