Add missing dependencies, fix arc rendering
This commit is contained in:
@@ -6,7 +6,9 @@ out vec4 fColor;
|
|||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
float d = dot(vec2(vparams.xy),vec2(vparams.xy));
|
float d = (dot(vec2(vparams.xy),vec2(vparams.xy)));
|
||||||
if ( d > 1 || d < vparams.z ) {discard;}
|
if ( d > 1 || d < vparams.z ) {discard;}
|
||||||
|
//if ( d > 1 ) {discard;}
|
||||||
fColor = vColor;
|
fColor = vColor;
|
||||||
|
//fColor = (10,0,0,10);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ teslaGun = defaultGun
|
|||||||
, _itUseModifiers =
|
, _itUseModifiers =
|
||||||
[ ammoCheckI
|
[ ammoCheckI
|
||||||
, useTimeCheckI
|
, useTimeCheckI
|
||||||
|
, withTempLight 1 100 (V3 0 0 1)
|
||||||
, withSoundForI 25 1
|
, withSoundForI 25 1
|
||||||
, useAmmo 1
|
, useAmmo 1
|
||||||
]
|
]
|
||||||
@@ -175,6 +176,7 @@ lasGun = defaultAutoGun
|
|||||||
, _itUseModifiers =
|
, _itUseModifiers =
|
||||||
[ ammoCheckI
|
[ ammoCheckI
|
||||||
, useTimeCheckI
|
, useTimeCheckI
|
||||||
|
, withTempLight 1 100 (V3 1 1 0)
|
||||||
, withSoundForI 24 1
|
, withSoundForI 24 1
|
||||||
, useAmmo 1
|
, useAmmo 1
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
module Dodge.Item.Weapon.AmmoParams
|
||||||
|
where
|
||||||
|
import Dodge.Data
|
||||||
|
import Dodge.Particle.Bullet.Spawn
|
||||||
|
import Geometry
|
||||||
|
|
||||||
|
import Control.Lens
|
||||||
|
|
||||||
|
useAmmoParams :: Item -> Creature -> World -> World
|
||||||
|
useAmmoParams it = withVelWthHiteff (_amBulVel b) (_amBulWth b) (_amBulEff b)
|
||||||
|
where
|
||||||
|
b = _wpAmmo it
|
||||||
|
|
||||||
|
useAmmoParamsVelMod :: Float -> Item -> Creature -> World -> World
|
||||||
|
useAmmoParamsVelMod vfact it = withDelayedVelWthHiteff vfact (_amBulVel b) (_amBulWth b) (_amBulEff b)
|
||||||
|
where
|
||||||
|
b = _wpAmmo it
|
||||||
|
|
||||||
|
{- | Creates a bullet with a given velocity, width, and 'HitEffect' -}
|
||||||
|
withVelWthHiteff
|
||||||
|
:: Point2 -- ^ Velocity, x direction is forward with respect to the creature
|
||||||
|
-> Float -- ^ Bullet width
|
||||||
|
-> HitEffect -- ^ Bullet effect when hitting creature, wall etc
|
||||||
|
-> Creature -- ^ Creature id
|
||||||
|
-> World
|
||||||
|
-> World
|
||||||
|
withVelWthHiteff vel width hiteff cr = over particles (newbul : )
|
||||||
|
where
|
||||||
|
cid = _crID cr
|
||||||
|
newbul = aGenBulAt (Just cid) pos (rotateV dir vel) hiteff width
|
||||||
|
dir = _crDir cr
|
||||||
|
pos = _crPos cr +.+ _crRad cr *.* unitVectorAtAngle (_crDir cr)
|
||||||
|
|
||||||
|
{- | Creates a bullet with a given velocity, width, and 'HitEffect' -}
|
||||||
|
withDelayedVelWthHiteff
|
||||||
|
:: Float -- ^ Velocity factor for first step
|
||||||
|
-> Point2 -- ^ Velocity, x direction is forward with respect to the creature
|
||||||
|
-> Float -- ^ Bullet width
|
||||||
|
-> HitEffect -- ^ Bullet effect when hitting creature, wall etc
|
||||||
|
-> Creature -- ^ Creature id
|
||||||
|
-> World
|
||||||
|
-> World
|
||||||
|
withDelayedVelWthHiteff vfact vel width hiteff cr = over particles (newbul : )
|
||||||
|
where
|
||||||
|
cid = _crID cr
|
||||||
|
newbul = aDelayedBulAt vfact (Just cid) pos (rotateV dir vel) hiteff width
|
||||||
|
dir = _crDir cr
|
||||||
|
pos = _crPos cr +.+ _crRad cr *.* unitVectorAtAngle (_crDir cr)
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
module Dodge.Room.Listed
|
||||||
|
( roomList
|
||||||
|
) where
|
||||||
|
import Dodge.Room.Data
|
||||||
|
|
||||||
|
roomList :: [Room]
|
||||||
|
roomList = []
|
||||||
@@ -27,7 +27,7 @@ startRoom = do
|
|||||||
highPipe 80 (V2 0 (h/3)) (V2 w (h/2))
|
highPipe 80 (V2 0 (h/3)) (V2 w (h/2))
|
||||||
++ highPipe 40 (V2 0 (h/2)) (V2 w (h/3))
|
++ highPipe 40 (V2 0 (h/2)) (V2 w (h/3))
|
||||||
++ highPipe 60 (V2 (w/3) 0 ) (V2 (w/3) h )
|
++ highPipe 60 (V2 (w/3) 0 ) (V2 (w/3) h )
|
||||||
theLamp = sPS (V2 (w/2) (h/2)) 0 $ putColorLamp (V3 0.75 0.25 0.25)
|
theLamp = sPS (V2 (w/2) (h/2)) 0 $ putColorLamp (V3 0.75 0.75 0.75)
|
||||||
treeFromPost [Left rezBox, Left door] . Right
|
treeFromPost [Left rezBox, Left door] . Right
|
||||||
<$> randomiseOutLinks (shiftRoomBy (V2 (-20) (-20),0)
|
<$> randomiseOutLinks (shiftRoomBy (V2 (-20) (-20),0)
|
||||||
$ roomRectAutoLinks w h & rmPS .~ [fground,theLamp])
|
$ roomRectAutoLinks w h & rmPS .~ [fground,theLamp])
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ flashFlareAt col alphax (V2 x y) = Particle
|
|||||||
|
|
||||||
explosionFlashAt :: Point2 -> World -> World
|
explosionFlashAt :: Point2 -> World -> World
|
||||||
explosionFlashAt p = over tempLightSources ((:) $ tLightFade 20 150 intensityFunc p)
|
explosionFlashAt p = over tempLightSources ((:) $ tLightFade 20 150 intensityFunc p)
|
||||||
. glareAt 20 10 5 (withAlpha 0.3 white) 75 150 p
|
|
||||||
where
|
where
|
||||||
intensityFunc x
|
intensityFunc x
|
||||||
| x < 10 = 1 / (10 - fromIntegral x)
|
| x < 10 = 1 / (10 - fromIntegral x)
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ Shockwave picture.
|
|||||||
drawShockwave :: Particle -> Picture
|
drawShockwave :: Particle -> Picture
|
||||||
drawShockwave pt = pic
|
drawShockwave pt = pic
|
||||||
where
|
where
|
||||||
pic = setDepth 20 . uncurryV translate p
|
pic = setDepth 20 . setLayer 1 . uncurryV translate p
|
||||||
$ color (_btColor' pt) $ thickCircle rad thickness
|
$ color (_btColor' pt) $ thickCircle rad thickness
|
||||||
p = _btPos' pt
|
p = _btPos' pt
|
||||||
r = _btRad' pt
|
r = _btRad' pt
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ moveFlame rotd w pt
|
|||||||
closeCrs cr = dist ep (_crPos cr)
|
closeCrs cr = dist ep (_crPos cr)
|
||||||
< _crRad cr + 10 - min 9 (max 0 (fromIntegral time - 80))
|
< _crRad cr + 10 - min 9 (max 0 (fromIntegral time - 80))
|
||||||
+ 5 * angleCoeff (angleVV (ep -.- _crPos cr) rotd)
|
+ 5 * angleCoeff (angleVV (ep -.- _crPos cr) rotd)
|
||||||
angleCoeff x = abs $ 1 - abs ( (x * 2 - pi) / pi )
|
angleCoeff x' = abs $ 1 - abs ( (x' * 2 - pi) / pi )
|
||||||
hiteff = _btHitEffect' pt pt
|
hiteff = _btHitEffect' pt pt
|
||||||
rfl wl p = Just $ pt
|
rfl wl p = Just $ pt
|
||||||
{ _btTimer' = time -1
|
{ _btTimer' = time -1
|
||||||
@@ -167,10 +167,13 @@ drawFlameletZ
|
|||||||
-> Particle
|
-> Particle
|
||||||
-> Picture
|
-> Picture
|
||||||
drawFlameletZ rot pt = pictures
|
drawFlameletZ rot pt = pictures
|
||||||
[ setLayer 5 pic
|
--[ setLayer 5 pic
|
||||||
, setLayer 4 pi2
|
--, setLayer 4 pi2
|
||||||
, setLayer 3 piu
|
--, setLayer 3 piu
|
||||||
, setLayer 1 glow
|
[ setLayer 1 pic
|
||||||
|
, setLayer 1 pi2
|
||||||
|
, setLayer 1 piu
|
||||||
|
--, setLayer 1 glow
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
z = _ptZ pt
|
z = _ptZ pt
|
||||||
@@ -184,13 +187,13 @@ drawFlameletZ rot pt = pictures
|
|||||||
$ circleSolidCol (withAlpha 0 red) (withAlpha 0.05 red) 30
|
$ circleSolidCol (withAlpha 0 red) (withAlpha 0.05 red) 30
|
||||||
piu = setDepth (z + 20)
|
piu = setDepth (z + 20)
|
||||||
. uncurryV translate ep
|
. uncurryV translate ep
|
||||||
. color (dark red)
|
. color (brightX 2 2 $ dark red)
|
||||||
. rotate (negate (rot - 0.1 * fromIntegral time))
|
. rotate (negate (rot - 0.1 * fromIntegral time))
|
||||||
. scale s1 s1
|
. scale s1 s1
|
||||||
$ polygon (rectNSWE siz2 (-siz2) (-siz2) siz2)
|
$ polygon (rectNSWE siz2 (-siz2) (-siz2) siz2)
|
||||||
pi2 = setDepth (z + 20)
|
pi2 = setDepth (z + 20)
|
||||||
. uncurryV translate ep
|
. uncurryV translate ep
|
||||||
. color (mixColors (fromIntegral (max 0 (time-2))) (10-fromIntegral time)
|
. color (brightX 2 2 $ mixColors (fromIntegral (max 0 (time-2))) (10-fromIntegral time)
|
||||||
orange (dark red)
|
orange (dark red)
|
||||||
)
|
)
|
||||||
. rotate (negate (rot + 0.2 * fromIntegral time))
|
. rotate (negate (rot + 0.2 * fromIntegral time))
|
||||||
@@ -198,7 +201,7 @@ drawFlameletZ rot pt = pictures
|
|||||||
$ polygon (rectNSWE siz2 (-siz2) (-siz2) siz2)
|
$ polygon (rectNSWE siz2 (-siz2) (-siz2) siz2)
|
||||||
pic = setDepth (z + 20)
|
pic = setDepth (z + 20)
|
||||||
. uncurryV translate ep
|
. uncurryV translate ep
|
||||||
. color (mixColors (fromIntegral (max 0 (time-2))) (10-fromIntegral time)
|
. color (brightX 2 2 $ mixColors (fromIntegral (max 0 (time-2))) (10-fromIntegral time)
|
||||||
white (dark red)
|
white (dark red)
|
||||||
)
|
)
|
||||||
. rotate (negate ( 0.1 * fromIntegral time + rot))
|
. rotate (negate ( 0.1 * fromIntegral time + rot))
|
||||||
|
|||||||
+4
-3
@@ -301,9 +301,9 @@ arc startA endA rad = thickArc startA endA rad 1
|
|||||||
thickArc :: Float -> Float -> Float -> Float -> Picture
|
thickArc :: Float -> Float -> Float -> Float -> Picture
|
||||||
{-# INLINE thickArc #-}
|
{-# INLINE thickArc #-}
|
||||||
thickArc startA endA rad wdth
|
thickArc startA endA rad wdth
|
||||||
| endA - startA > pi = pictures
|
| endA - startA > (pi/ 2) = pictures
|
||||||
[ thickArc (startA + pi) endA rad wdth
|
[ thickArc (startA + pi/2) endA rad wdth
|
||||||
, thickArcHelp startA (startA + pi) r w
|
, thickArcHelp startA (startA + pi/2) r w
|
||||||
]
|
]
|
||||||
| otherwise = thickArcHelp startA endA r w
|
| otherwise = thickArcHelp startA endA r w
|
||||||
where
|
where
|
||||||
@@ -323,6 +323,7 @@ thickArcHelp startA endA rad wdth = map f
|
|||||||
where
|
where
|
||||||
(V2 xa ya) = rotateV startA (V2 rad 0)
|
(V2 xa ya) = rotateV startA (V2 rad 0)
|
||||||
(V2 xb yb) = rotateV (0.5 * (startA + endA)) (V2 (rad * sqrt 2) 0)
|
(V2 xb yb) = rotateV (0.5 * (startA + endA)) (V2 (rad * sqrt 2) 0)
|
||||||
|
--(V2 xb yb) = rotateV (0.5 * (startA + endA)) (V2 (rad * 2) 0)
|
||||||
(V2 xc yc) = rotateV endA (V2 rad 0)
|
(V2 xc yc) = rotateV endA (V2 rad 0)
|
||||||
f (pos,col,V3 a b c) = Verx pos col [a,b,c] 0 arcNum
|
f (pos,col,V3 a b c) = Verx pos col [a,b,c] 0 arcNum
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user