Cleanup constructors FooUse -> UseFoo
This commit is contained in:
@@ -1,36 +1,18 @@
|
||||
module Dodge.Item.Display (
|
||||
itemDisplay,
|
||||
-- canAttachTargeting,
|
||||
itemString,
|
||||
itemBaseName,
|
||||
basicItemDisplay,
|
||||
) where
|
||||
|
||||
--import Control.Applicative
|
||||
--import Control.Monad
|
||||
import ShortShow
|
||||
import Data.Maybe
|
||||
import Dodge.Data.Creature
|
||||
import LensHelp
|
||||
import Padding
|
||||
|
||||
--canAttachTargeting :: TargetingType -> Item -> Bool
|
||||
--canAttachTargeting TARGETLASER _ = True
|
||||
--canAttachTargeting _ itm =
|
||||
-- isJust (itm ^? itType . iyModules . ix ModBulletTrajectory . imtBulletTrajectoryType)
|
||||
-- || Just LAUNCHHOME == (itm ^? itType . iyModules . ix ModLauncherHoming)
|
||||
|
||||
--targetingTypeString :: TargetType -> String
|
||||
--targetingTypeString tt = case tt of
|
||||
-- TARGETLASER -> "LASER"
|
||||
-- TargetRBPress -> "POS"
|
||||
-- TargetRBLine -> ""
|
||||
-- TargetRBCreature -> "LIFEFORM"
|
||||
-- TargetCursor -> "CURSOR"
|
||||
|
||||
itemDisplay :: Creature -> Item -> [String]
|
||||
itemDisplay cr itm =
|
||||
--itemDisplayWithNumber (showConsumption cr it) it
|
||||
zipWithDefaults id (leftPad 15 ' ') itemDisplayPad (basicItemDisplay itm) (itemNumberDisplay cr itm)
|
||||
|
||||
zipWithDefaults :: (a -> c) -> (b -> c) -> (a -> b -> c) -> [a] -> [b] -> [c]
|
||||
@@ -113,15 +95,15 @@ itemNumberDisplay cr itm = case iu of
|
||||
UseHeld{} -> []
|
||||
UseHotkey{} -> [showAutoRechargeProgress (_leftConsumption iu)]
|
||||
UseEquip{} -> showEquipmentNumber cr itm
|
||||
CraftUse -> []
|
||||
UseCraft -> []
|
||||
UseConsume {} -> []
|
||||
UseAttach {} -> []
|
||||
UseAmmoMag {} -> [maybe "" shortShow $ itm ^? itUse . amagLoadStatus . iaLoaded]
|
||||
ScopeUse OpticScope {_opticZoom = x} -> [shortShow x]
|
||||
ScopeUse {} -> []
|
||||
TargetingUse {_tgPos = mp} -> [maybe "" shortShow mp]
|
||||
UseScope OpticScope {_opticZoom = x} -> [shortShow x]
|
||||
UseScope {} -> []
|
||||
UseTargeting {_tgPos = mp} -> [maybe "" shortShow mp]
|
||||
-- this could be cleaner here...
|
||||
BulletModUse {} -> mempty
|
||||
UseBulletMod {} -> mempty
|
||||
where
|
||||
iu = itm ^?! itUse
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ module Dodge.Item.Scope (
|
||||
targetingScope,
|
||||
remoteScreen,
|
||||
homingModule,
|
||||
fletchingModule,
|
||||
bulletTargetingModule,
|
||||
augmentedHUD,
|
||||
bulletModule,
|
||||
@@ -18,24 +17,25 @@ import Dodge.Default.Item
|
||||
zoomScope :: Item
|
||||
zoomScope = defaultHeldItem
|
||||
& itType .~ ATTACH ZOOMSCOPE
|
||||
& itUse .~ ScopeUse OpticScope{_opticPos = 0, _opticZoom = 1, _opticDefaultZoom = 0.5}
|
||||
& itUse .~ UseScope OpticScope{_opticPos = 0, _opticZoom = 1, _opticDefaultZoom = 0.5}
|
||||
|
||||
targetingScope :: TargetingType -> Item
|
||||
targetingScope tt = defaultHeldItem
|
||||
& itType .~ TARGETING tt
|
||||
& itUse .~ TargetingUse Nothing Nothing False
|
||||
& itUse .~ UseTargeting
|
||||
{ _tgPos = Nothing
|
||||
, _tgID = Nothing
|
||||
, _tgActive = False
|
||||
}
|
||||
|
||||
homingModule :: Item
|
||||
homingModule = makeAttach HOMINGMODULE
|
||||
|
||||
fletchingModule :: Item
|
||||
fletchingModule = bulletTargetingModule FlechetteTrajectoryType
|
||||
|
||||
bulletModule :: BulletMod -> Item
|
||||
bulletModule bm =
|
||||
defaultHeldItem
|
||||
& itType .~ BULLETMOD bm
|
||||
& itUse .~ BulletModUse bm
|
||||
& itUse .~ UseBulletMod {_ubMod = bm}
|
||||
|
||||
bulletTargetingModule :: BulletTrajectoryType -> Item
|
||||
bulletTargetingModule = bulletModule . BulletModTrajectory
|
||||
@@ -49,4 +49,3 @@ augmentedHUD = makeAttach AUGMENTEDHUD
|
||||
remoteScreen :: Item
|
||||
remoteScreen = makeAttach REMOTESCREEN
|
||||
& itUse . uaParams .~ APLinkProjectile Nothing
|
||||
|
||||
|
||||
@@ -79,27 +79,9 @@ lockInvFor i f it cr =
|
||||
-- pos = addZ 0 $ _crPos cr +.+ (_crRad cr + 15) *.* unitVectorAtAngle dir
|
||||
-- ps = replicateM 20 randOnUnitSphere & evalState $ _randGen w
|
||||
|
||||
-- TODO create a trigger that does different things on first and continued
|
||||
-- fire.
|
||||
--ammoCheckI :: ChainEffect
|
||||
--ammoCheckI eff itm cr w = fromMaybe (failsound w) $ do
|
||||
-- atype <- itm ^? ldtValue . itUse . heldAmmoTypes . ix 0
|
||||
-- leftitms <- itm ^? ldtLeft
|
||||
-- mag <- lookup (AmmoInLink 0 atype) leftitms
|
||||
-- x <- mag ^? ldtValue . itUse . amagLoadStatus . iaLoaded
|
||||
-- guard $ x > 0
|
||||
-- return $ eff itm cr w -- & cWorld . lWorld . creatures . ix (_crID cr) %~ crCancelReloading
|
||||
-- where
|
||||
-- failsound = case w ^? input . mouseButtons . ix SDL.ButtonLeft of
|
||||
-- Just 0 -> soundStart (CrWeaponSound (_crID cr) 0) (_crPos cr) click1S Nothing
|
||||
-- _ -> soundContinue (CrWeaponSound (_crID cr) 0) (_crPos cr) click1S Nothing
|
||||
|
||||
itUseCharge :: Int -> Item -> Item
|
||||
itUseCharge x = itUse . leftConsumption . arLoaded %~ (max 0 . subtract x)
|
||||
|
||||
--itUseAmmo :: Int -> Item -> Item
|
||||
--itUseAmmo x = itUse . heldConsumption . laSource . _InternalSource . iaLoaded %~ (max 0 . subtract x)
|
||||
|
||||
--{- | Fires at an increasing rate.
|
||||
--Has different effect after first fire.
|
||||
--Applies ammo check and use cooldown check.
|
||||
|
||||
Reference in New Issue
Block a user