46 lines
1.1 KiB
Haskell
46 lines
1.1 KiB
Haskell
module Dodge.Placement.Instance.Turret where
|
|
|
|
import Dodge.Item.Held.BatteryGuns
|
|
import Color
|
|
import Dodge.Data.GenWorld
|
|
import Dodge.Default
|
|
import Dodge.LevelGen.PlacementHelper
|
|
import Geometry
|
|
import LensHelp
|
|
|
|
putTurret :: Item -> Float -> Placement
|
|
putTurret itm rotSpeed =
|
|
sps0 $
|
|
PutMachine
|
|
(reverse $ square 10)
|
|
( defaultMachine
|
|
& mcColor .~ blue
|
|
& mcType .~ (turret itm & _McTurret . tuTurnSpeed .~ rotSpeed)
|
|
& mcHP .~ 50000
|
|
)
|
|
defaultMachineWall
|
|
|
|
putLasTurret :: Float -> Placement
|
|
putLasTurret rotSpeed =
|
|
sps0 $
|
|
PutMachine
|
|
(reverse $ square 10)
|
|
( defaultMachine
|
|
& mcColor .~ blue
|
|
& mcType .~ (lasTurret & _McTurret . tuTurnSpeed .~ rotSpeed)
|
|
& mcHP .~ 50000
|
|
)
|
|
defaultMachineWall
|
|
|
|
turret :: Item -> MachineType
|
|
turret wp = lasTurret & mctTurret . tuWeapon .~ wp
|
|
|
|
lasTurret :: MachineType
|
|
lasTurret = McTurret $
|
|
Turret
|
|
{ _tuWeapon = laser
|
|
, _tuTurnSpeed = 0.1
|
|
, _tuFireTime = 0
|
|
, _tuDir = 0
|
|
}
|