[New patches dons@cse.unsw.edu.au**20051122054445] { hunk ./ObjectBehavior.as 184 - (trigger `tag` [(ray (cpos cam1) (viewPos cam1) id)]) `lMerge` + (trigger `tag` [(ray (cpos cam1) (viewPos cam1) id)]), {- `lMerge` hunk ./ObjectBehavior.as 186 - (rtrigger `tag` case (tail(reverse $ map getCoordFromMsg (msgi)), - (vectorAdd (head (reverse $ map getCoordFromMsg (msgi))) (0,90,0)) )of - (coordst,start)->[aicube start (20,45,20) coordst "klesk" modelAnim]), + (rtrigger `tag` + case (reverse $ map getCoordFromMsg msgi) of + [] -> [] + wps -> [aicube (vectorAdd (head wps) (0,90,0)) + (20,45,20) (tail wps) "klesk" modelAnim]), -} hunk ./ObjectBehavior.as 208 - _ -> [head (map (toTargetPosition id (cpos ccam)) - (findEnemies (event2List msges)))]) + _ -> [toTargetPosition id (cpos ccam) + (head (findEnemies (event2List msges)))]) hunk ./ObjectBehavior.as 373 - -- msgReceived `tag`(turnToFaceTarget + -- msgReceived `tag`(turnToFaceTarget hunk ./ObjectBehavior.as 383 - f <- rSwitch (constant 1) -< ((0.01), msgReceived `tag` (imIntegral 0)) + --f <- rSwitch (constant 1) -< ((0.01), msgReceived `tag` (imIntegral 0)) + let f = 1 hunk ./ObjectBehavior.hs 1 -{-# LINE 7 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 2 -{-# LINE 12 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 3 -{-# LINE 14 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 4 -{-# LINE 15 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 5 -{-# LINE 16 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 6 -{-# LINE 17 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 7 -{-# LINE 18 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 8 -{-# LINE 19 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 9 -{-# LINE 20 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 10 -{-# LINE 21 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 11 -{-# LINE 22 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 12 -{-# LINE 23 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 13 -{-# LINE 24 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 15 -{-# LINE 31 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 16 -{-# LINE 32 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 19 - ooSpawnReq = noEvent, ooSendMessage = noEvent} + ooSpawnReq = noEvent, ooSendMessage = noEvent} hunk ./ObjectBehavior.hs 21 -{-# LINE 47 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 22 - (Double, Double, Double) -> - (Double, Double, Double) -> ILKey -> ILKey -> Object -{-# LINE 49 "ObjectBehavior.as" #-} + (Double, Double, Double) -> + (Double, Double, Double) -> ILKey -> ILKey -> Object hunk ./ObjectBehavior.hs 27 - let {-# LINE 50 "ObjectBehavior.as" #-} - clippedPos = oiCollisionPos oi - in - let {-# LINE 51 "ObjectBehavior.as" #-} - grounded = oiOnLand oi - in ((), (clippedPos, grounded))) + let clippedPos = oiCollisionPos oi in + let grounded = oiOnLand oi in ((), (clippedPos, grounded))) hunk ./ObjectBehavior.hs 31 - arr - (\ (timeout, (clippedPos, grounded)) -> - (grounded, (clippedPos, timeout)))) - >>> - (first ((iPre False) <<< identity) >>> - arr - (\ (cl, (clippedPos, timeout)) -> - let {-# LINE 54 "ObjectBehavior.as" #-} - (vvx, vvy, vvz) = normalise $ vectorSub end start - in (clippedPos, (cl, timeout, vvx, vvy, vvz)))) - >>> - (first ((iPre start) <<< (arr not0)) >>> - arr - (\ (clip, (cl, timeout, vvx, vvy, vvz)) -> - (vvx, (cl, clip, timeout, vvy, vvz)))) - >>> - (first (arr (\ vvx -> 7500 * vvx) >>> integral) >>> - arr - (\ (ucx, (cl, clip, timeout, vvy, vvz)) -> - (vvy, (cl, clip, timeout, ucx, vvz)))) - >>> - (first (arr (\ vvy -> 7500 * vvy) >>> integral) >>> - arr - (\ (ucy, (cl, clip, timeout, ucx, vvz)) -> - (vvz, (cl, clip, timeout, ucx, ucy)))) - >>> - (first (arr (\ vvz -> 7500 * vvz) >>> integral) >>> - arr - (\ (ucz, (cl, clip, timeout, ucx, ucy)) -> - (cl, (cl, clip, timeout, ucx, ucy, ucz)))) - >>> - (first edge >>> - arr - (\ (clipev, (cl, clip, timeout, ucx, ucy, ucz)) -> - ObjOutput{ooObsObjState = - OOSRay{rayStart = start, rayEnd = clip, - rayUC = vectorAdd start (ucx, ucy, ucz), clipped = cl, - firedFrom = firedfrom}, - ooKillReq = timeout, ooSpawnReq = noEvent, - ooSendMessage = - clipev `tag` [(firedfrom, (id, Coord clip))]}))) - where {-# LINE 71 "ObjectBehavior.as" #-} - (start, end) = firePos (x, y, z) (vx, vy, vz) - {-# LINE 72 "ObjectBehavior.as" #-} - (vwx, vwy, vwz) = normalise $ vectorSub end start - {-# LINE 73 "ObjectBehavior.as" #-} - init = (vectorAdd start (vwx, vwy, vwz)) - {-# LINE 74 "ObjectBehavior.as" #-} - not0 c - | c /= (0, 0, 0) = c - | otherwise = (x, y, z) + arr + (\ (timeout, (clippedPos, grounded)) -> + (grounded, (clippedPos, timeout)))) + >>> + (first ((iPre False) <<< identity) >>> + arr + (\ (cl, (clippedPos, timeout)) -> + let (vvx, vvy, vvz) = normalise $ vectorSub end start in + (clippedPos, (cl, timeout, vvx, vvy, vvz)))) + >>> + (first ((iPre start) <<< (arr not0)) >>> + arr + (\ (clip, (cl, timeout, vvx, vvy, vvz)) -> + (vvx, (cl, clip, timeout, vvy, vvz)))) + >>> + (first (arr (\ vvx -> 7500 * vvx) >>> integral) >>> + arr + (\ (ucx, (cl, clip, timeout, vvy, vvz)) -> + (vvy, (cl, clip, timeout, ucx, vvz)))) + >>> + (first (arr (\ vvy -> 7500 * vvy) >>> integral) >>> + arr + (\ (ucy, (cl, clip, timeout, ucx, vvz)) -> + (vvz, (cl, clip, timeout, ucx, ucy)))) + >>> + (first (arr (\ vvz -> 7500 * vvz) >>> integral) >>> + arr + (\ (ucz, (cl, clip, timeout, ucx, ucy)) -> + (cl, (cl, clip, timeout, ucx, ucy, ucz)))) + >>> + (first edge >>> + arr + (\ (clipev, (cl, clip, timeout, ucx, ucy, ucz)) -> + ObjOutput{ooObsObjState = + OOSRay{rayStart = start, rayEnd = clip, + rayUC = vectorAdd start (ucx, ucy, ucz), clipped = cl, + firedFrom = firedfrom}, + ooKillReq = timeout, ooSpawnReq = noEvent, + ooSendMessage = + clipev `tag` [(firedfrom, (id, Coord clip))]}))) + where (start, end) = firePos (x, y, z) (vx, vy, vz) + (vwx, vwy, vwz) = normalise $ vectorSub end start + init = (vectorAdd start (vwx, vwy, vwz)) + not0 c + | c /= (0, 0, 0) = c + | otherwise = (x, y, z) hunk ./ObjectBehavior.hs 78 -{-# LINE 85 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 79 -{-# LINE 86 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 82 - let {-# LINE 87 "ObjectBehavior.as" #-} - clippedPos = oiCollisionPos oi - in - let {-# LINE 88 "ObjectBehavior.as" #-} - grounded = oiOnLand oi - in - let {-# LINE 90 "ObjectBehavior.as" #-} - hits = oiHit oi - in (hits, grounded)) + let clippedPos = oiCollisionPos oi in + let grounded = oiOnLand oi in + let hits = oiHit oi in (hits, grounded)) hunk ./ObjectBehavior.hs 87 - ((first ((iPre False) <<< identity) >>> first edge) >>> - arr (\ (clipEv, hit) -> ((), (clipEv, hit)))) - >>> - (first (arr (\ () -> 1500 * vx) >>> imIntegral sx) >>> - arr (\ (x, (clipEv, hit)) -> ((), (clipEv, hit, x)))) - >>> - (first (arr (\ () -> 1500 * vy) >>> imIntegral sy) >>> - arr (\ (y, (clipEv, hit, x)) -> ((), (clipEv, hit, x, y)))) - >>> - (first (arr (\ () -> 1500 * vz) >>> imIntegral sz) >>> - arr - (\ (z, (clipEv, hit, x, y)) -> - ((x, y, z), (clipEv, hit, x, y, z)))) - >>> - (first (iPre (sx, sy, sz) <<< identity) >>> - arr - (\ (oldpos, (clipEv, hit, x, y, z)) -> - ((clipEv, hit), (oldpos, x, y, z)))) - >>> - (first - (arr (\ (clipEv, hit) -> (isEvent clipEv || isEvent hit)) >>> edge) - >>> - arr - (\ (hitEv, (oldpos, x, y, z)) -> - ObjOutput{ooObsObjState = - OOSProjectile{projectileOldPos = oldpos, - projectileNewPos = (x, y, z), - firedFrom = firedfrom}, - ooKillReq = hitEv, ooSpawnReq = noEvent, - ooSendMessage = noEvent}))) + ((first ((iPre False) <<< identity) >>> first edge) >>> + arr (\ (clipEv, hit) -> ((), (clipEv, hit)))) + >>> + (first (arr (\ () -> 1500 * vx) >>> imIntegral sx) >>> + arr (\ (x, (clipEv, hit)) -> ((), (clipEv, hit, x)))) + >>> + (first (arr (\ () -> 1500 * vy) >>> imIntegral sy) >>> + arr (\ (y, (clipEv, hit, x)) -> ((), (clipEv, hit, x, y)))) + >>> + (first (arr (\ () -> 1500 * vz) >>> imIntegral sz) >>> + arr + (\ (z, (clipEv, hit, x, y)) -> + ((x, y, z), (clipEv, hit, x, y, z)))) + >>> + (first (iPre (sx, sy, sz) <<< identity) >>> + arr + (\ (oldpos, (clipEv, hit, x, y, z)) -> + ((clipEv, hit), (oldpos, x, y, z)))) + >>> + (first + (arr (\ (clipEv, hit) -> (isEvent clipEv || isEvent hit)) >>> edge) + >>> + arr + (\ (hitEv, (oldpos, x, y, z)) -> + ObjOutput{ooObsObjState = + OOSProjectile{projectileOldPos = oldpos, + projectileNewPos = (x, y, z), + firedFrom = firedfrom}, + ooKillReq = hitEv, ooSpawnReq = noEvent, + ooSendMessage = noEvent}))) hunk ./ObjectBehavior.hs 118 -{-# LINE 120 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 119 - Camera -> - [(String, AnimState, AnimState)] -> - [(ILKey, Message)] -> ILKey -> Object -{-# LINE 122 "ObjectBehavior.as" #-} + Camera -> + [(String, AnimState, AnimState)] -> + [(ILKey, Message)] -> ILKey -> Object hunk ./ObjectBehavior.hs 125 - let {-# LINE 123 "ObjectBehavior.as" #-} - gi = oiGameInput oi - in - let {-# LINE 124 "ObjectBehavior.as" #-} - clippedcam = oiCollision oi - in - let {-# LINE 125 "ObjectBehavior.as" #-} - grounded = oiOnLand oi - in - let {-# LINE 126 "ObjectBehavior.as" #-} - msgs = oiMessage oi - in (gi, (clippedcam, gi, grounded, msgs, oi))) + let gi = oiGameInput oi in + let clippedcam = oiCollision oi in + let grounded = oiOnLand oi in + let msgs = oiMessage oi in + (gi, (clippedcam, gi, grounded, msgs, oi))) hunk ./ObjectBehavior.hs 132 - arr - (\ (pPos, (clippedcam, gi, grounded, msgs, oi)) -> - (gi, (clippedcam, gi, grounded, msgs, oi, pPos)))) - >>> - (first (movementKS 400) >>> - arr - (\ (forwardVel, (clippedcam, gi, grounded, msgs, oi, pPos)) -> - (gi, (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos)))) - >>> - (first (strafeKS 400) >>> - arr - (\ (strafeVel, - (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos)) - -> - (gi, - (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, - strafeVel)))) - >>> - (first lbp >>> - arr - (\ (trigger, - (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, strafeVel)) - -> - (gi, - (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, strafeVel, - trigger)))) - >>> - (first rbp >>> - arr - (\ (rtrigger, - (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, strafeVel, - trigger)) - -> - (gi, - (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, rtrigger, - strafeVel, trigger)))) - >>> - (first getDt >>> - arr - (\ (dt, - (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, rtrigger, - strafeVel, trigger)) - -> - ((clippedcam, pPos), - (clippedcam, dt, forwardVel, gi, grounded, msgs, oi, rtrigger, - strafeVel, trigger)))) - >>> - (first - (arr (\ (clippedcam, pPos) -> (pPos, clippedcam)) >>> - ((iPre cam) <<< (arr setView))) - >>> - arr - (\ (cam1, - (clippedcam, dt, forwardVel, gi, grounded, msgs, oi, rtrigger, - strafeVel, trigger)) - -> - ((cam1, dt, forwardVel), - (cam1, clippedcam, dt, gi, grounded, msgs, oi, rtrigger, strafeVel, - trigger)))) - >>> - (first - (arr (\ (cam1, dt, forwardVel) -> (forwardVel * dt, cam1)) >>> - moves) - >>> - arr - (\ (cam2, - (cam1, clippedcam, dt, gi, grounded, msgs, oi, rtrigger, strafeVel, - trigger)) - -> - ((cam2, dt, strafeVel), - (cam1, clippedcam, gi, grounded, msgs, oi, rtrigger, trigger)))) - >>> - (first - (arr (\ (cam2, dt, strafeVel) -> (strafeVel * dt, cam2)) >>> - strafes) - >>> - arr - (\ (cam3, - (cam1, clippedcam, gi, grounded, msgs, oi, rtrigger, trigger)) - -> - ((gi, grounded), - (cam1, cam3, clippedcam, msgs, oi, rtrigger, trigger)))) - >>> - (first (arr (\ (gi, grounded) -> (grounded, gi)) >>> fallingp) >>> - arr - (\ (yVel, (cam1, cam3, clippedcam, msgs, oi, rtrigger, trigger)) -> - ((cam3, yVel), (cam1, clippedcam, msgs, oi, rtrigger, trigger)))) - >>> - ((first (arr dropCam) >>> - loop - (arr - (\ ((cam4, (cam1, clippedcam, msgs, oi, rtrigger, trigger)), - msgn) - -> - ((msgn, msgs, rtrigger), - (cam1, cam4, clippedcam, msgs, oi, rtrigger, trigger))) - >>> - (first - (arr - (\ (msgn, msgs, rtrigger) -> - case (isEvent rtrigger) of - True -> ([], msgn) - False -> ((getMsg0 msgs msgn), msgn)) - >>> ((iPre ([], [])) <<< identity)) - >>> - arr - (\ ((msgn, msgi), - (cam1, cam4, clippedcam, msgs, oi, rtrigger, trigger)) - -> - ((cam1, cam4, clippedcam, msgi, msgs, oi, rtrigger, - trigger), - msgn))))) - >>> - arr - (\ (cam1, cam4, clippedcam, msgi, msgs, oi, rtrigger, trigger) -> - (oi, (cam1, cam4, clippedcam, msgi, msgs, rtrigger, trigger)))) - >>> - ((first (arr (\ oi -> oiHit oi) >>> (iPre (noEvent) <<< identity)) - >>> - loop - (arr - (\ ((hitEv, - (cam1, cam4, clippedcam, msgi, msgs, rtrigger, trigger)), - currentHealth) - -> - ((currentHealth, hitEv), - (cam1, cam4, clippedcam, msgi, msgs, rtrigger, trigger))) - >>> - (first - (arr - (\ (currentHealth, hitEv) -> - case (isEvent hitEv) of - True -> currentHealth - - (realToFrac - ((length (fromEvent hitEv)) * 3)) - False -> currentHealth) - >>> ((iPre 100) <<< identity)) - >>> - arr - (\ (currentHealth, - (cam1, cam4, clippedcam, msgi, msgs, rtrigger, - trigger)) - -> - ((cam1, cam4, clippedcam, currentHealth, msgi, msgs, - rtrigger, trigger), - currentHealth))))) - >>> - arr - (\ (cam1, cam4, clippedcam, currentHealth, msgi, msgs, rtrigger, - trigger) - -> - let {-# LINE 164 "ObjectBehavior.as" #-} - coords = reverse $ map getCoordFromMsg (msgi) - in - let {-# LINE 167 "ObjectBehavior.as" #-} - modelAnim = (findModelAnim "klesk" modelAnims) - in - (msgs, - (cam1, cam4, clippedcam, currentHealth, modelAnim, msgi, - rtrigger, trigger)))) - >>> - ((first ((iPre noEvent) <<< identity) >>> - loop - (arr - (\ ((msges, - (cam1, cam4, clippedcam, currentHealth, modelAnim, - msgi, rtrigger, trigger)), - kills) - -> - ((kills, msges), - (cam1, cam4, clippedcam, currentHealth, modelAnim, - msges, msgi, rtrigger, trigger))) - >>> - (first - (arr - (\ (kills, msges) -> - kills + (length (findKills (event2List msges)))) - >>> ((iPre 0) <<< identity)) - >>> - arr - (\ (kills, - (cam1, cam4, clippedcam, currentHealth, modelAnim, - msges, msgi, rtrigger, trigger)) - -> - ((cam1, cam4, clippedcam, currentHealth, kills, - modelAnim, msges, msgi, rtrigger, trigger), - kills))))) - >>> - arr - (\ (cam1, cam4, clippedcam, currentHealth, kills, modelAnim, - msges, msgi, rtrigger, trigger) - -> - ((msgi, rtrigger), - (cam1, cam4, clippedcam, currentHealth, kills, modelAnim, - msges, msgi, rtrigger, trigger)))) - >>> - (first - (arr (\ (msgi, rtrigger) -> (rtrigger, msgi)) >>> - ((iPre (noEvent, [])) <<< identity)) - >>> - arr - (\ ((rev, msgi2), - (cam1, cam4, clippedcam, currentHealth, kills, modelAnim, - msges, msgi, rtrigger, trigger)) - -> - (clippedcam, - (cam1, cam4, currentHealth, kills, modelAnim, msges, msgi, - msgi2, rev, rtrigger, trigger)))) - >>> - (first ((iPre cam) <<< identity) >>> - arr - (\ (ccam, - (cam1, cam4, currentHealth, kills, modelAnim, msges, - msgi, msgi2, rev, rtrigger, trigger)) - -> - ObjOutput{ooSpawnReq = - (trigger `tag` - [(ray (cpos cam1) (viewPos cam1) id)]) - `lMerge` - (rtrigger `tag` - case - (tail - (reverse $ - map getCoordFromMsg (msgi)), - (vectorAdd - (head - (reverse $ - map getCoordFromMsg (msgi))) - (0, 90, 0))) - of - (coordst, start) -> [aicube start - (20, 45, 20) - coordst - "klesk" - modelAnim]), - ooObsObjState = - OOSCamera{newCam = cam4, oldCam = cam1, - health = currentHealth, ammo = 100, - score = kills, - cood = - case (isEvent rev) of - True -> reverse $ - map getCoordFromMsg - (msgi2) - _ -> []}, - ooKillReq = noEvent, - ooSendMessage = - case (event2List msges) of - [] -> noEvent - _ -> (Event ()) `tag` - (case - (findEnemies - (event2List msges)) - of - [] -> [] - _ -> [head - (map - (toTargetPosition - id - (cpos ccam)) - (findEnemies - (event2List - msges)))])}))) + arr + (\ (pPos, (clippedcam, gi, grounded, msgs, oi)) -> + (gi, (clippedcam, gi, grounded, msgs, oi, pPos)))) + >>> + (first (movementKS 400) >>> + arr + (\ (forwardVel, (clippedcam, gi, grounded, msgs, oi, pPos)) -> + (gi, (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos)))) + >>> + (first (strafeKS 400) >>> + arr + (\ (strafeVel, + (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos)) + -> + (gi, + (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, + strafeVel)))) + >>> + (first lbp >>> + arr + (\ (trigger, + (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, strafeVel)) + -> + (gi, + (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, strafeVel, + trigger)))) + >>> + (first rbp >>> + arr + (\ (rtrigger, + (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, strafeVel, + trigger)) + -> + (gi, + (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, rtrigger, + strafeVel, trigger)))) + >>> + (first getDt >>> + arr + (\ (dt, + (clippedcam, forwardVel, gi, grounded, msgs, oi, pPos, rtrigger, + strafeVel, trigger)) + -> + ((clippedcam, pPos), + (clippedcam, dt, forwardVel, gi, grounded, msgs, oi, rtrigger, + strafeVel, trigger)))) + >>> + (first + (arr (\ (clippedcam, pPos) -> (pPos, clippedcam)) >>> + ((iPre cam) <<< (arr setView))) + >>> + arr + (\ (cam1, + (clippedcam, dt, forwardVel, gi, grounded, msgs, oi, rtrigger, + strafeVel, trigger)) + -> + ((cam1, dt, forwardVel), + (cam1, clippedcam, dt, gi, grounded, msgs, oi, rtrigger, strafeVel, + trigger)))) + >>> + (first + (arr (\ (cam1, dt, forwardVel) -> (forwardVel * dt, cam1)) >>> + moves) + >>> + arr + (\ (cam2, + (cam1, clippedcam, dt, gi, grounded, msgs, oi, rtrigger, strafeVel, + trigger)) + -> + ((cam2, dt, strafeVel), + (cam1, clippedcam, gi, grounded, msgs, oi, rtrigger, trigger)))) + >>> + (first + (arr (\ (cam2, dt, strafeVel) -> (strafeVel * dt, cam2)) >>> + strafes) + >>> + arr + (\ (cam3, + (cam1, clippedcam, gi, grounded, msgs, oi, rtrigger, trigger)) + -> + ((gi, grounded), + (cam1, cam3, clippedcam, msgs, oi, rtrigger, trigger)))) + >>> + (first (arr (\ (gi, grounded) -> (grounded, gi)) >>> fallingp) >>> + arr + (\ (yVel, (cam1, cam3, clippedcam, msgs, oi, rtrigger, trigger)) -> + ((cam3, yVel), (cam1, clippedcam, msgs, oi, rtrigger, trigger)))) + >>> + ((first (arr dropCam) >>> + loop + (arr + (\ ((cam4, (cam1, clippedcam, msgs, oi, rtrigger, trigger)), + msgn) + -> + ((msgn, msgs, rtrigger), + (cam1, cam4, clippedcam, msgs, oi, rtrigger, trigger))) + >>> + (first + (arr + (\ (msgn, msgs, rtrigger) -> + case (isEvent rtrigger) of + True -> ([], msgn) + False -> ((getMsg0 msgs msgn), msgn)) + >>> ((iPre ([], [])) <<< identity)) + >>> + arr + (\ ((msgn, msgi), + (cam1, cam4, clippedcam, msgs, oi, rtrigger, trigger)) + -> + ((cam1, cam4, clippedcam, msgi, msgs, oi, rtrigger, + trigger), + msgn))))) + >>> + arr + (\ (cam1, cam4, clippedcam, msgi, msgs, oi, rtrigger, trigger) -> + (oi, (cam1, cam4, clippedcam, msgi, msgs, rtrigger, trigger)))) + >>> + ((first (arr (\ oi -> oiHit oi) >>> (iPre (noEvent) <<< identity)) + >>> + loop + (arr + (\ ((hitEv, + (cam1, cam4, clippedcam, msgi, msgs, rtrigger, trigger)), + currentHealth) + -> + ((currentHealth, hitEv), + (cam1, cam4, clippedcam, msgi, msgs, rtrigger, trigger))) + >>> + (first + (arr + (\ (currentHealth, hitEv) -> + case (isEvent hitEv) of + True -> currentHealth - + (realToFrac + ((length (fromEvent hitEv)) * 3)) + False -> currentHealth) + >>> ((iPre 100) <<< identity)) + >>> + arr + (\ (currentHealth, + (cam1, cam4, clippedcam, msgi, msgs, rtrigger, + trigger)) + -> + ((cam1, cam4, clippedcam, currentHealth, msgi, msgs, + rtrigger, trigger), + currentHealth))))) + >>> + arr + (\ (cam1, cam4, clippedcam, currentHealth, msgi, msgs, rtrigger, + trigger) + -> + let coords = reverse $ map getCoordFromMsg (msgi) in + let modelAnim = (findModelAnim "klesk" modelAnims) in + (msgs, + (cam1, cam4, clippedcam, currentHealth, msgi, rtrigger, + trigger)))) + >>> + ((first ((iPre noEvent) <<< identity) >>> + loop + (arr + (\ ((msges, + (cam1, cam4, clippedcam, currentHealth, msgi, rtrigger, + trigger)), + kills) + -> + ((kills, msges), + (cam1, cam4, clippedcam, currentHealth, msges, msgi, + rtrigger, trigger))) + >>> + (first + (arr + (\ (kills, msges) -> + kills + (length (findKills (event2List msges)))) + >>> ((iPre 0) <<< identity)) + >>> + arr + (\ (kills, + (cam1, cam4, clippedcam, currentHealth, msges, + msgi, rtrigger, trigger)) + -> + ((cam1, cam4, clippedcam, currentHealth, kills, + msges, msgi, rtrigger, trigger), + kills))))) + >>> + arr + (\ (cam1, cam4, clippedcam, currentHealth, kills, msges, msgi, + rtrigger, trigger) + -> + ((msgi, rtrigger), + (cam1, cam4, clippedcam, currentHealth, kills, msges, + trigger)))) + >>> + (first + (arr (\ (msgi, rtrigger) -> (rtrigger, msgi)) >>> + ((iPre (noEvent, [])) <<< identity)) + >>> + arr + (\ ((rev, msgi2), + (cam1, cam4, clippedcam, currentHealth, kills, msges, + trigger)) + -> + (clippedcam, + (cam1, cam4, currentHealth, kills, msges, msgi2, rev, + trigger)))) + >>> + (first ((iPre cam) <<< identity) >>> + arr + (\ (ccam, + (cam1, cam4, currentHealth, kills, msges, msgi2, rev, + trigger)) + -> + ObjOutput{ooSpawnReq = + (trigger `tag` + [(ray (cpos cam1) (viewPos cam1) id)]), + ooObsObjState = + OOSCamera{newCam = cam4, oldCam = cam1, + health = currentHealth, ammo = 100, + score = kills, + cood = + case (isEvent rev) of + True -> reverse $ + map getCoordFromMsg + (msgi2) + _ -> []}, + ooKillReq = noEvent, + ooSendMessage = + case (event2List msges) of + [] -> noEvent + _ -> (Event ()) `tag` + (case + (findEnemies + (event2List msges)) + of + [] -> [] + _ -> [toTargetPosition id + (cpos ccam) + (head + (findEnemies + (event2List + msges)))])}))) hunk ./ObjectBehavior.hs 373 -{-# LINE 213 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 374 -{-# LINE 214 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 378 -{-# LINE 220 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 379 - String -> - [(String, AnimState, AnimState)] -> (AnimState, AnimState) -{-# LINE 222 "ObjectBehavior.as" #-} + String -> + [(String, AnimState, AnimState)] -> (AnimState, AnimState) hunk ./ObjectBehavior.hs 382 - where {-# LINE 223 "ObjectBehavior.as" #-} - (nm, ua, la) = fromJust $ find (\ (x, y, z) -> (x == name)) anims + where (nm, ua, la) + = fromJust $ find (\ (x, y, z) -> (x == name)) anims hunk ./ObjectBehavior.hs 385 -{-# LINE 227 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 386 - Event [(ILKey, Message)] -> - [(ILKey, Message)] -> [(ILKey, Message)] -{-# LINE 229 "ObjectBehavior.as" #-} + Event [(ILKey, Message)] -> + [(ILKey, Message)] -> [(ILKey, Message)] hunk ./ObjectBehavior.hs 390 - True -> case ((findCoords (fromEvent ev)) ++ ls) of - x -> x - _ -> ls + True -> case ((findCoords (fromEvent ev)) ++ ls) of + x -> x + _ -> ls hunk ./ObjectBehavior.hs 394 -{-# LINE 237 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 395 -{-# LINE 238 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 396 -{-# LINE 239 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 397 -{-# LINE 240 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 399 -{-# LINE 244 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 400 -{-# LINE 245 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 401 -{-# LINE 246 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 402 -{-# LINE 247 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 404 -{-# LINE 251 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 405 - ILKey -> Vec3 -> ILKey -> (ILKey, (ILKey, Message)) -{-# LINE 252 "ObjectBehavior.as" #-} + ILKey -> Vec3 -> ILKey -> (ILKey, (ILKey, Message)) hunk ./ObjectBehavior.hs 409 -{-# LINE 256 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 410 -{-# LINE 257 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 412 -{-# LINE 258 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 413 -{-# LINE 259 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 415 -{-# LINE 263 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 416 -{-# LINE 264 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 418 -{-# LINE 268 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 419 -{-# LINE 269 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 421 -{-# LINE 278 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 422 - (Double, Double, Double) -> - (Double, Double, Double) -> - [(Double, Double, Double)] -> - String -> (AnimState, AnimState) -> ILKey -> Object -{-# LINE 282 "ObjectBehavior.as" #-} + (Double, Double, Double) -> + (Double, Double, Double) -> + [(Double, Double, Double)] -> + String -> (AnimState, AnimState) -> ILKey -> Object hunk ./ObjectBehavior.hs 427 - = (((arr - (\ oi -> - let {-# LINE 283 "ObjectBehavior.as" #-} - gi = oiGameInput oi - in (gi, oi)) - >>> first getT) - >>> - arr - (\ (t, oi) -> - let {-# LINE 285 "ObjectBehavior.as" #-} - hitList = oiHit oi - in - let {-# LINE 286 "ObjectBehavior.as" #-} - enemySighted = oiVisibleObjs oi - in - let {-# LINE 287 "ObjectBehavior.as" #-} - clippedPos = oiCollisionPos oi - in (hitList, (enemySighted, hitList, oi, t)))) + = (((arr (\ oi -> let gi = oiGameInput oi in (gi, oi)) >>> + first getT) + >>> + arr + (\ (t, oi) -> + let hitList = oiHit oi in + let enemySighted = oiVisibleObjs oi in + let clippedPos = oiCollisionPos oi in + (hitList, (enemySighted, hitList, oi, t)))) hunk ./ObjectBehavior.hs 438 - (arr - (\ hitList -> - case (isEvent hitList) of - True -> getFire (snd (head (fromEvent hitList))) - _ -> Nothing) - >>> (iPre Nothing <<< identity)) - >>> - arr - (\ (hitSource, (enemySighted, hitList, oi, t)) -> - (hitSource, (enemySighted, hitList, hitSource, oi, t)))) - >>> - ((first (arr (\ hitSource -> (hitSource /= Nothing)) >>> edge) >>> - loop - (arr - (\ ((hitev1, (enemySighted, hitList, hitSource, oi, t)), - currentHealth) - -> - ((currentHealth, hitList), - (enemySighted, hitSource, hitev1, oi, t))) - >>> - (first - (arr - (\ (currentHealth, hitList) -> - case (isEvent hitList) of - True -> currentHealth - (3) - False -> currentHealth) - >>> ((iPre 100) <<< identity)) - >>> - arr - (\ (currentHealth, (enemySighted, hitSource, hitev1, oi, t)) -> - ((currentHealth, enemySighted, hitSource, hitev1, oi, t), - currentHealth))))) - >>> - arr - (\ (currentHealth, enemySighted, hitSource, hitev1, oi, t) -> - (currentHealth, - (currentHealth, enemySighted, hitSource, hitev1, oi, t)))) - >>> - ((first (arr (\ currentHealth -> (currentHealth <= 0)) >>> edge) - >>> - loop - (arr - (\ ((hitev, - (currentHealth, enemySighted, hitSource, hitev1, oi, t)), - isDead) - -> - ((hitev, isDead), - (currentHealth, enemySighted, hitSource, hitev, hitev1, oi, t))) - >>> - (first - (arr - (\ (hitev, isDead) -> - case (isEvent hitev) of - True -> True - _ -> isDead) - >>> ((iPre False) <<< identity)) - >>> - arr - (\ (isDead, - (currentHealth, enemySighted, hitSource, hitev, hitev1, oi, t)) - -> - ((currentHealth, enemySighted, hitSource, hitev, hitev1, isDead, - oi, t), - isDead))))) - >>> - arr - (\ (currentHealth, enemySighted, hitSource, hitev, hitev1, isDead, - oi, t) - -> - ((enemySighted, isDead), - (currentHealth, enemySighted, hitSource, hitev, hitev1, isDead, oi, - t)))) - >>> - (((first - (arr - (\ (enemySighted, isDead) -> - (isEvent enemySighted) && (isDead == False)) - >>> ((iPre noEvent) <<< edge)) - >>> - loop - (arr - (\ ((enemyS, - (currentHealth, enemySighted, hitSource, hitev, hitev1, isDead, oi, - t)), - enemy) - -> - ((enemy, enemySighted), - (currentHealth, enemyS, enemySighted, hitSource, hitev, hitev1, - isDead, oi, t))) - >>> - (first - (arr - (\ (enemy, enemySighted) -> - case (isEvent enemySighted) of - True -> enemySighted - False -> enemy) - >>> ((iPre noEvent) <<< identity)) - >>> - arr - (\ (enemy, - (currentHealth, enemyS, enemySighted, hitSource, hitev, hitev1, - isDead, oi, t)) - -> - ((currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, oi, t), - enemy))))) - >>> - loop - (arr - (\ ((currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, oi, t), - targ) - -> - ((enemySighted, targ), - (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, oi, t))) - >>> - (first - (arr - (\ (enemySighted, targ) -> - case (isEvent enemySighted) of - True -> (cpos (oldCam (snd (head (fromEvent enemySighted))))) - False -> targ) - >>> ((iPre (0, 0, 0)) <<< identity)) - >>> - arr - (\ (targ, - (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, oi, t)) - -> - ((currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, oi, t, targ), - targ))))) - >>> - arr - (\ (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, oi, t, targ) - -> - (oi, - (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, oi, t, targ)))) - >>> - (first - (arr (\ oi -> oiMessage oi) >>> ((iPre noEvent) <<< identity)) - >>> - arr - (\ (msgs, - (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, oi, t, targ)) - -> - ((isDead, msgs), - (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, msgs, oi, t, targ)))) - >>> - (first - (arr - (\ (isDead, msgs) -> - case (isEvent msgs) && (isDead == False) of - True -> case (getTargetPosition (fromEvent msgs)) of - Just _ -> True - _ -> False - _ -> False) - >>> edge) - >>> - arr - (\ (msgReceived, - (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, msgs, oi, t, targ)) - -> - ((isDead, msgs), - (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, msgReceived, oi, t, targ)))) - >>> - (first - (arr - (\ (isDead, msgs) -> - case (isEvent msgs) && (isDead == False) of - True -> case (getTargetPosition2 (fromEvent msgs)) of - Just _ -> True - _ -> False - _ -> False) - >>> edge) - >>> - arr - (\ (respond2Attack, - (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, - hitev1, isDead, msgReceived, oi, t, targ)) - -> - ((enemySighted, msgReceived), - (currentHealth, enemy, enemyS, hitSource, hitev, hitev1, isDead, - msgReceived, oi, respond2Attack, t, targ)))) - >>> - (first - (arr - (\ (enemySighted, msgReceived) -> - (isNoEvent enemySighted) && (isNoEvent msgReceived)) - >>> ((iPre noEvent) <<< edge)) - >>> - arr - (\ (targetLost1, - (currentHealth, enemy, enemyS, hitSource, hitev, hitev1, isDead, - msgReceived, oi, respond2Attack, t, targ)) - -> - ((enemyS, targetLost1), - (currentHealth, enemy, enemyS, hitSource, hitev, hitev1, isDead, - msgReceived, oi, respond2Attack, t, targ, targetLost1)))) - >>> - ((first - (arr - (\ (enemyS, targetLost1) -> - ((), - (enemyS `tag` (constant noEvent)) `lMerge` - (targetLost1 `tag` (repeatedly (0.5) (Event ()))))) - >>> rSwitch (constant noEvent)) - >>> - loop - (arr - (\ ((targetLost, - (currentHealth, enemy, enemyS, hitSource, hitev, hitev1, - isDead, msgReceived, oi, respond2Attack, t, targ, - targetLost1)), - ~(angle, lEndEv, oldPos, uEndEv)) - -> - ((angle, enemyS, hitev, lEndEv, oi, oldPos, respond2Attack, - uEndEv), - (currentHealth, enemy, hitSource, hitev, hitev1, isDead, - msgReceived, t, targ, targetLost1))) - >>> - (first - (arr - (\ (angle, enemyS, hitev, lEndEv, oi, oldPos, respond2Attack, - uEndEv) - -> - ((oi, uEndEv, lEndEv), - (enemyS `tag` (turnToFaceTarget (oldPos, angle))) `lMerge` - respond2Attack - `tag` (turnToFaceTarget (oldPos, angle)) - `lMerge` hitev - `tag` playDead oldPos angle)) - >>> drSwitch (followWayPoints (x, y, z) waypoints)) - >>> - arr - (\ ((newPos, oldPos, angle, pitch, attack, - (upperIdx, lowerIdx)), - (currentHealth, enemy, hitSource, hitev, hitev1, isDead, - msgReceived, t, targ, targetLost1)) - -> - ((t, upperIdx), - (angle, attack, currentHealth, enemy, hitSource, hitev, - hitev1, isDead, lowerIdx, msgReceived, newPos, oldPos, - pitch, t, targ, targetLost1)))) - >>> - (first (updateAnimSF ua) >>> - arr - (\ ((uEndEv, upperState), - (angle, attack, currentHealth, enemy, hitSource, hitev, - hitev1, isDead, lowerIdx, msgReceived, newPos, oldPos, - pitch, t, targ, targetLost1)) - -> - ((lowerIdx, t), - (angle, attack, currentHealth, enemy, hitSource, hitev, - hitev1, isDead, msgReceived, newPos, oldPos, pitch, - targ, targetLost1, uEndEv, upperState)))) - >>> - (first - (arr (\ (lowerIdx, t) -> (t, lowerIdx)) >>> updateAnimSF la) - >>> - arr - (\ ((lEndEv, lowerState), - (angle, attack, currentHealth, enemy, hitSource, hitev, - hitev1, isDead, msgReceived, newPos, oldPos, pitch, - targ, targetLost1, uEndEv, upperState)) - -> - ((angle, attack, currentHealth, enemy, hitSource, hitev, - hitev1, isDead, lowerState, msgReceived, newPos, - oldPos, pitch, targ, targetLost1, upperState), - (angle, lEndEv, oldPos, uEndEv)))))) - >>> - arr - (\ (angle, attack, currentHealth, enemy, hitSource, hitev, hitev1, - isDead, lowerState, msgReceived, newPos, oldPos, pitch, targ, - targetLost1, upperState) - -> - (msgReceived, - (angle, attack, currentHealth, enemy, hitSource, hitev, hitev1, - isDead, lowerState, newPos, oldPos, pitch, targ, targetLost1, - upperState)))) - >>> - (first - (arr - (\ msgReceived -> ((1.0e-2), msgReceived `tag` (imIntegral 0))) - >>> rSwitch (constant 1)) - >>> - arr - (\ (f, - (angle, attack, currentHealth, enemy, hitSource, hitev, hitev1, - isDead, lowerState, newPos, oldPos, pitch, targ, targetLost1, - upperState)) - -> - ObjOutput{ooObsObjState = - OOSAICube{oosNewCubePos = newPos, - oosOldCubePos = oldPos, oosCubeSize = size, - oosCubeAngle = angle, oosCubePitch = pitch, - upperAnim = upperState, - lowerAnim = lowerState, - health = currentHealth, target = targ, - fade = f, modelName = modelname}, - ooKillReq = noEvent, - ooSpawnReq = - attack `tag` - [projectile (getMuzzlePoint (oldPos, targ)) id], - ooSendMessage = - hitev `tag` - (case isDead of - False -> [(fromJust hitSource, (id, EnemyDown))] - _ -> []) - `lMerge` targetLost1 - `tag` - [(fst (head (fromEvent enemy)), - (id, PlayerLockedOn))] - `lMerge` hitev1 - `tag` - [(fromJust hitSource, (id, PlayerLockedOn2))]}))) + (arr + (\ hitList -> + case (isEvent hitList) of + True -> getFire (snd (head (fromEvent hitList))) + _ -> Nothing) + >>> (iPre Nothing <<< identity)) + >>> + arr + (\ (hitSource, (enemySighted, hitList, oi, t)) -> + (hitSource, (enemySighted, hitList, hitSource, oi, t)))) + >>> + ((first (arr (\ hitSource -> (hitSource /= Nothing)) >>> edge) >>> + loop + (arr + (\ ((hitev1, (enemySighted, hitList, hitSource, oi, t)), + currentHealth) + -> + ((currentHealth, hitList), + (enemySighted, hitSource, hitev1, oi, t))) + >>> + (first + (arr + (\ (currentHealth, hitList) -> + case (isEvent hitList) of + True -> currentHealth - (3) + False -> currentHealth) + >>> ((iPre 100) <<< identity)) + >>> + arr + (\ (currentHealth, (enemySighted, hitSource, hitev1, oi, t)) -> + ((currentHealth, enemySighted, hitSource, hitev1, oi, t), + currentHealth))))) + >>> + arr + (\ (currentHealth, enemySighted, hitSource, hitev1, oi, t) -> + (currentHealth, + (currentHealth, enemySighted, hitSource, hitev1, oi, t)))) + >>> + ((first (arr (\ currentHealth -> (currentHealth <= 0)) >>> edge) + >>> + loop + (arr + (\ ((hitev, + (currentHealth, enemySighted, hitSource, hitev1, oi, t)), + isDead) + -> + ((hitev, isDead), + (currentHealth, enemySighted, hitSource, hitev, hitev1, oi, t))) + >>> + (first + (arr + (\ (hitev, isDead) -> + case (isEvent hitev) of + True -> True + _ -> isDead) + >>> ((iPre False) <<< identity)) + >>> + arr + (\ (isDead, + (currentHealth, enemySighted, hitSource, hitev, hitev1, oi, t)) + -> + ((currentHealth, enemySighted, hitSource, hitev, hitev1, isDead, + oi, t), + isDead))))) + >>> + arr + (\ (currentHealth, enemySighted, hitSource, hitev, hitev1, isDead, + oi, t) + -> + ((enemySighted, isDead), + (currentHealth, enemySighted, hitSource, hitev, hitev1, isDead, oi, + t)))) + >>> + (((first + (arr + (\ (enemySighted, isDead) -> + (isEvent enemySighted) && (isDead == False)) + >>> ((iPre noEvent) <<< edge)) + >>> + loop + (arr + (\ ((enemyS, + (currentHealth, enemySighted, hitSource, hitev, hitev1, isDead, oi, + t)), + enemy) + -> + ((enemy, enemySighted), + (currentHealth, enemyS, enemySighted, hitSource, hitev, hitev1, + isDead, oi, t))) + >>> + (first + (arr + (\ (enemy, enemySighted) -> + case (isEvent enemySighted) of + True -> enemySighted + False -> enemy) + >>> ((iPre noEvent) <<< identity)) + >>> + arr + (\ (enemy, + (currentHealth, enemyS, enemySighted, hitSource, hitev, hitev1, + isDead, oi, t)) + -> + ((currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, oi, t), + enemy))))) + >>> + loop + (arr + (\ ((currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, oi, t), + targ) + -> + ((enemySighted, targ), + (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, oi, t))) + >>> + (first + (arr + (\ (enemySighted, targ) -> + case (isEvent enemySighted) of + True -> (cpos (oldCam (snd (head (fromEvent enemySighted))))) + False -> targ) + >>> ((iPre (0, 0, 0)) <<< identity)) + >>> + arr + (\ (targ, + (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, oi, t)) + -> + ((currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, oi, t, targ), + targ))))) + >>> + arr + (\ (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, oi, t, targ) + -> + (oi, + (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, oi, t, targ)))) + >>> + (first + (arr (\ oi -> oiMessage oi) >>> ((iPre noEvent) <<< identity)) + >>> + arr + (\ (msgs, + (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, oi, t, targ)) + -> + ((isDead, msgs), + (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, msgs, oi, t, targ)))) + >>> + (first + (arr + (\ (isDead, msgs) -> + case (isEvent msgs) && (isDead == False) of + True -> case (getTargetPosition (fromEvent msgs)) of + Just _ -> True + _ -> False + _ -> False) + >>> edge) + >>> + arr + (\ (msgReceived, + (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, msgs, oi, t, targ)) + -> + ((isDead, msgs), + (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, msgReceived, oi, t, targ)))) + >>> + (first + (arr + (\ (isDead, msgs) -> + case (isEvent msgs) && (isDead == False) of + True -> case (getTargetPosition2 (fromEvent msgs)) of + Just _ -> True + _ -> False + _ -> False) + >>> edge) + >>> + arr + (\ (respond2Attack, + (currentHealth, enemy, enemyS, enemySighted, hitSource, hitev, + hitev1, isDead, msgReceived, oi, t, targ)) + -> + ((enemySighted, msgReceived), + (currentHealth, enemy, enemyS, hitSource, hitev, hitev1, isDead, + oi, respond2Attack, t, targ)))) + >>> + (first + (arr + (\ (enemySighted, msgReceived) -> + (isNoEvent enemySighted) && (isNoEvent msgReceived)) + >>> ((iPre noEvent) <<< edge)) + >>> + arr + (\ (targetLost1, + (currentHealth, enemy, enemyS, hitSource, hitev, hitev1, isDead, + oi, respond2Attack, t, targ)) + -> + ((enemyS, targetLost1), + (currentHealth, enemy, enemyS, hitSource, hitev, hitev1, isDead, + oi, respond2Attack, t, targ, targetLost1)))) + >>> + (first + (arr + (\ (enemyS, targetLost1) -> + ((), + (enemyS `tag` (constant noEvent)) `lMerge` + (targetLost1 `tag` (repeatedly (0.5) (Event ()))))) + >>> rSwitch (constant noEvent)) + >>> + loop + (arr + (\ ((targetLost, + (currentHealth, enemy, enemyS, hitSource, hitev, hitev1, isDead, + oi, respond2Attack, t, targ, targetLost1)), + ~(angle, lEndEv, oldPos, uEndEv)) + -> + ((angle, enemyS, hitev, lEndEv, oi, oldPos, respond2Attack, + uEndEv), + (currentHealth, enemy, hitSource, hitev, hitev1, isDead, t, targ, + targetLost1))) + >>> + (first + (arr + (\ (angle, enemyS, hitev, lEndEv, oi, oldPos, respond2Attack, + uEndEv) + -> + ((oi, uEndEv, lEndEv), + (enemyS `tag` (turnToFaceTarget (oldPos, angle))) `lMerge` + respond2Attack + `tag` (turnToFaceTarget (oldPos, angle)) + `lMerge` hitev + `tag` playDead oldPos angle)) + >>> drSwitch (followWayPoints (x, y, z) waypoints)) + >>> + arr + (\ ((newPos, oldPos, angle, pitch, attack, + (upperIdx, lowerIdx)), + (currentHealth, enemy, hitSource, hitev, hitev1, isDead, t, + targ, targetLost1)) + -> + ((t, upperIdx), + (angle, attack, currentHealth, enemy, hitSource, hitev, + hitev1, isDead, lowerIdx, newPos, oldPos, pitch, t, targ, + targetLost1)))) + >>> + (first (updateAnimSF ua) >>> + arr + (\ ((uEndEv, upperState), + (angle, attack, currentHealth, enemy, hitSource, hitev, + hitev1, isDead, lowerIdx, newPos, oldPos, pitch, t, targ, + targetLost1)) + -> + ((lowerIdx, t), + (angle, attack, currentHealth, enemy, hitSource, hitev, + hitev1, isDead, newPos, oldPos, pitch, targ, targetLost1, + uEndEv, upperState)))) + >>> + (first + (arr (\ (lowerIdx, t) -> (t, lowerIdx)) >>> updateAnimSF la) + >>> + arr + (\ ((lEndEv, lowerState), + (angle, attack, currentHealth, enemy, hitSource, hitev, + hitev1, isDead, newPos, oldPos, pitch, targ, + targetLost1, uEndEv, upperState)) + -> + ((angle, attack, currentHealth, enemy, hitSource, hitev, + hitev1, isDead, lowerState, newPos, oldPos, pitch, + targ, targetLost1, upperState), + (angle, lEndEv, oldPos, uEndEv)))))) + >>> + arr + (\ (angle, attack, currentHealth, enemy, hitSource, hitev, hitev1, + isDead, lowerState, newPos, oldPos, pitch, targ, targetLost1, + upperState) + -> + let f = 1 in + ObjOutput{ooObsObjState = + OOSAICube{oosNewCubePos = newPos, + oosOldCubePos = oldPos, oosCubeSize = size, + oosCubeAngle = angle, oosCubePitch = pitch, + upperAnim = upperState, + lowerAnim = lowerState, + health = currentHealth, target = targ, + fade = f, modelName = modelname}, + ooKillReq = noEvent, + ooSpawnReq = + attack `tag` + [projectile (getMuzzlePoint (oldPos, targ)) id], + ooSendMessage = + hitev `tag` + (case isDead of + False -> [(fromJust hitSource, (id, EnemyDown))] + _ -> []) + `lMerge` targetLost1 + `tag` + [(fst (head (fromEvent enemy)), (id, PlayerLockedOn))] + `lMerge` hitev1 + `tag` [(fromJust hitSource, (id, PlayerLockedOn2))]})) hunk ./ObjectBehavior.hs 744 -{-# LINE 418 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 745 -{-# LINE 419 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 749 -{-# LINE 424 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 750 -{-# LINE 425 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 753 -{-# LINE 428 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 754 -{-# LINE 429 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 755 -{-# LINE 430 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 756 -{-# LINE 431 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 758 -{-# LINE 434 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 759 -{-# LINE 435 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 760 -{-# LINE 436 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 761 -{-# LINE 437 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 763 -{-# LINE 443 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 764 -{-# LINE 444 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 765 - = let {-# LINE 446 "ObjectBehavior.as" #-} - (x3, y3, z3) = normalise $ (vectorSub (ox, oy + 45, oz) (x, y, z)) - {-# LINE 447 "ObjectBehavior.as" #-} - (x7, y7, z7) = normalise $ (vectorSub (ox, 0, oz) (x, 0, z)) - {-# LINE 448 "ObjectBehavior.as" #-} - (x4, y4, z4) = normalise $ crossProd (x3, 0, z3) (0, 1, 0) - {-# LINE 449 "ObjectBehavior.as" #-} - (x5, y5, z5) - = (x + (x7 * (- 18.55)) + (x4 * (9.6)), y + 4, - z + (z7 * (- 18.55)) + (z4 * (9.6))) - {-# LINE 450 "ObjectBehavior.as" #-} - (x12, y12, z12) - = normalise $ (vectorSub (ox, oy - 5, oz) (x, y, z)) - {-# LINE 451 "ObjectBehavior.as" #-} - (x6, y6, z6) - = vectorAdd (x5, y5, z5) (x12 * 42, y12 * 42, z12 * 42) - {-# LINE 452 "ObjectBehavior.as" #-} - (x9, y9, z9) = normalise $ (vectorSub (x6, y6, z6) (x5, y5, z5)) - {-# LINE 453 "ObjectBehavior.as" #-} - (x10, y10, z10) = normalise $ crossProd (x9, y9, z9) (0, 1, 0) - {-# LINE 454 "ObjectBehavior.as" #-} - (x13, y13, z13) - = normalise $ crossProd (x9, y9, z9) (x10, y10, z10) - {-# LINE 455 "ObjectBehavior.as" #-} - muzzlePoint - = vectorAdd (x6, y6, z6) - (x13 * (- 9.5), y13 * (- 9.5), z13 * (- 9.5)) - {-# LINE 456 "ObjectBehavior.as" #-} - muzzleEnd - = vectorAdd (x5, y5, z5) - (x13 * (- 9.5), y13 * (- 9.5), z13 * (- 9.5)) - {-# LINE 457 "ObjectBehavior.as" #-} - fireVec = normalise $ (vectorSub muzzlePoint muzzleEnd) + = let (x3, y3, z3) + = normalise $ (vectorSub (ox, oy + 45, oz) (x, y, z)) + (x7, y7, z7) = normalise $ (vectorSub (ox, 0, oz) (x, 0, z)) + (x4, y4, z4) = normalise $ crossProd (x3, 0, z3) (0, 1, 0) + (x5, y5, z5) + = (x + (x7 * (- 18.55)) + (x4 * (9.6)), y + 4, + z + (z7 * (- 18.55)) + (z4 * (9.6))) + (x12, y12, z12) + = normalise $ (vectorSub (ox, oy - 5, oz) (x, y, z)) + (x6, y6, z6) + = vectorAdd (x5, y5, z5) (x12 * 42, y12 * 42, z12 * 42) + (x9, y9, z9) = normalise $ (vectorSub (x6, y6, z6) (x5, y5, z5)) + (x10, y10, z10) = normalise $ crossProd (x9, y9, z9) (0, 1, 0) + (x13, y13, z13) + = normalise $ crossProd (x9, y9, z9) (x10, y10, z10) + muzzlePoint + = vectorAdd (x6, y6, z6) + (x13 * (- 9.5), y13 * (- 9.5), z13 * (- 9.5)) + muzzleEnd + = vectorAdd (x5, y5, z5) + (x13 * (- 9.5), y13 * (- 9.5), z13 * (- 9.5)) + fireVec = normalise $ (vectorSub muzzlePoint muzzleEnd) hunk ./ObjectBehavior.hs 789 -{-# LINE 463 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 790 -{-# LINE 464 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 793 - (\ ((land, gi, dt), pos) -> - case land of - True -> (- 0.5) - False -> (pos - (6 * 200 * dt))) - >>> (((iPre 0) <<< identity) >>> arr (\ pos -> (pos, pos))))) + (\ ((land, gi, dt), pos) -> + case land of + True -> (- 0.5) + False -> (pos - (6 * 200 * dt))) + >>> (((iPre 0) <<< identity) >>> arr (\ pos -> (pos, pos))))) hunk ./ObjectBehavior.hs 799 -{-# LINE 474 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 800 - (Vec3, Double) -> - SF (ObjInput, Event (), Event ()) - (Vec3, Vec3, Double, Double, Event (), (Int, Int)) -{-# LINE 477 "ObjectBehavior.as" #-} + (Vec3, Double) -> + SF (ObjInput, Event (), Event ()) + (Vec3, Vec3, Double, Double, Event (), (Int, Int)) hunk ./ObjectBehavior.hs 806 - let {-# LINE 478 "ObjectBehavior.as" #-} - gi = oiGameInput oi - in - let {-# LINE 479 "ObjectBehavior.as" #-} - clippedPos = oiCollisionPos oi - in - let {-# LINE 480 "ObjectBehavior.as" #-} - grounded = oiOnLand oi - in (gi, (clippedPos, ev1, ev2, gi, grounded, oi))) + let gi = oiGameInput oi in + let clippedPos = oiCollisionPos oi in + let grounded = oiOnLand oi in + (gi, (clippedPos, ev1, ev2, gi, grounded, oi))) hunk ./ObjectBehavior.hs 812 - loop - (arr - (\ ((dt, (clippedPos, ev1, ev2, gi, grounded, oi)), count) -> - (count, (clippedPos, dt, ev1, ev2, gi, grounded, oi))) - >>> - (first (arr (\ count -> count + 1) >>> ((iPre 0) <<< identity)) >>> - arr - (\ (count, (clippedPos, dt, ev1, ev2, gi, grounded, oi)) -> - ((clippedPos, count, dt, ev1, ev2, gi, grounded, oi), count))))) - >>> - arr - (\ (clippedPos, count, dt, ev1, ev2, gi, grounded, oi) -> - (clippedPos, (count, dt, ev1, ev2, gi, grounded, oi)))) - >>> - (first ((iPre currentPos) <<< identity) >>> - arr - (\ ((ox1, oy1, oz1), (count, dt, ev1, ev2, gi, grounded, oi)) -> - ((count, ox1, oy1, oz1), (dt, ev1, ev2, gi, grounded, oi)))) - >>> - (first - (arr - (\ (count, ox1, oy1, oz1) -> - case (count > 3 && (ox1, oy1, oz1) /= currentPos) of - True -> (ox1, oy1, oz1) - _ -> currentPos) - >>> identity) - >>> - arr - (\ ((ox, oy, oz), (dt, ev1, ev2, gi, grounded, oi)) -> - ((dt, gi, grounded), (ev1, ev2, oi, ox, oy, oz)))) - >>> - ((((((first - (arr (\ (dt, gi, grounded) -> (grounded, gi, dt)) >>> - ((iPre 0) <<< falling)) - >>> - arr - (\ (yVel, (ev1, ev2, oi, ox, oy, oz)) -> - let {-# LINE 498 "ObjectBehavior.as" #-} - enemySighted = oiVisibleObjs oi - in (enemySighted, ev1, ev2, ox, oy, oz, yVel))) - >>> - loop - (arr - (\ ((enemySighted, ev1, ev2, ox, oy, oz, yVel), targetAnglei) -> - ((enemySighted, ox, oy, oz, targetAnglei), - (enemySighted, ev1, ev2, ox, oy, oz, yVel))) - >>> - (first - (arr - (\ (enemySighted, ox, oy, oz, targetAnglei) -> - case (isEvent enemySighted) of - True -> getAngle - ((ox, oy, oz), - (cpos - (oldCam (snd (head (fromEvent enemySighted)))))) - _ -> targetAnglei) - >>> ((iPre initialAngle) <<< identity)) - >>> - arr - (\ (targetAnglei, (enemySighted, ev1, ev2, ox, oy, oz, yVel)) -> - ((enemySighted, ev1, ev2, ox, oy, oz, targetAnglei, yVel), - targetAnglei))))) - >>> - loop - (arr - (\ ((enemySighted, ev1, ev2, ox, oy, oz, targetAnglei, yVel), - angle) - -> - let {-# LINE 512 "ObjectBehavior.as" #-} - targetAngle - = case - (abs (angle - targetAnglei) < - abs (angle - (targetAnglei + 360))) - of - True -> targetAnglei - False -> targetAnglei + 360 - in - let {-# LINE 519 "ObjectBehavior.as" #-} - angularV - = case (True) of - True -> case (abs (angle - targetAngle) > 2) of - True -> case (angle < targetAngle) of - True -> 270 - _ -> - 270 - False -> (targetAngle - angle) - False -> 0 - in - (angularV, - (enemySighted, ev1, ev2, ox, oy, oz, targetAngle, yVel))) - >>> - (first ((initialAngle +) ^<< integral) >>> - arr - (\ (angle, (enemySighted, ev1, ev2, ox, oy, oz, targetAngle, yVel)) - -> - let {-# LINE 533 "ObjectBehavior.as" #-} - legState - = case (abs (angle - targetAngle) < 2) of - True -> idleLegs - _ -> turn - in - ((ev2, legState), - (angle, enemySighted, ev1, legState, ox, oy, oz, targetAngle, - yVel)))) - >>> - (first - (arr - (\ (ev2, legState) -> ((legState == idleLegs) && (isEvent ev2))) - >>> edge) - >>> - arr - (\ (switch2idle, - (angle, enemySighted, ev1, legState, ox, oy, oz, targetAngle, - yVel)) - -> - (legState, - (angle, enemySighted, ev1, ox, oy, oz, switch2idle, targetAngle, - yVel)))) - >>> - (first (arr (\ legState -> (legState == turn)) >>> edge) >>> - arr - (\ (turning, - (angle, enemySighted, ev1, ox, oy, oz, switch2idle, - targetAngle, yVel)) - -> - ((switch2idle, turning), - (angle, enemySighted, ev1, ox, oy, oz, targetAngle, yVel)))) - >>> - (first - (arr - (\ (switch2idle, turning) -> - ((), - turning `tag` (constant turn) `lMerge` switch2idle `tag` - (constant idleLegs))) - >>> drSwitch (constant stand)) - >>> - arr - (\ (legsAnim, - (angle, enemySighted, ev1, ox, oy, oz, targetAngle, yVel)) - -> - ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, - yVel), - angle))))) - >>> - loop - (arr - (\ ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, - yVel), - targetPitch) - -> - ((enemySighted, ox, oy, oz, targetPitch), - (angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, - yVel))) - >>> - (first - (arr - (\ (enemySighted, ox, oy, oz, targetPitch) -> - case (isEvent enemySighted) of - True -> getVertAngle - ((ox, oy, oz), - vectorAdd - (cpos - (oldCam (snd (head (fromEvent enemySighted))))) - (0, - 5, 0)) - _ -> targetPitch) - >>> ((iPre 0) <<< identity)) - >>> - arr - (\ (targetPitch, - (angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, - yVel)) - -> - ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, - targetPitch, yVel), - targetPitch))))) - >>> - loop - (arr - (\ ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, - targetPitch, yVel), - pitch) - -> - let {-# LINE 560 "ObjectBehavior.as" #-} - angularVP - = case (abs (pitch - targetPitch) > 2) of - True -> case (targetPitch < pitch) of - True -> - 90 - _ -> 90 - False -> (targetPitch - pitch) - in - (angularVP, - (angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, - targetPitch, yVel))) - >>> - (first ((0 +) ^<< integral) >>> - arr - (\ (pitch, - (angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, - targetPitch, yVel)) - -> - ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, pitch, - targetAngle, targetPitch, yVel), - pitch))))) - >>> - arr - (\ (angle, enemySighted, ev1, legsAnim, ox, oy, oz, pitch, - targetAngle, targetPitch, yVel) - -> - (ev1, - (angle, enemySighted, legsAnim, ox, oy, oz, pitch, targetAngle, - targetPitch, yVel)))) - >>> - (first (arr (\ ev1 -> (isEvent ev1)) >>> ((iPre noEvent) <<< edge)) - >>> - arr - (\ (attack, - (angle, enemySighted, legsAnim, ox, oy, oz, pitch, targetAngle, - targetPitch, yVel)) - -> - ((angle, enemySighted, pitch, targetAngle, targetPitch), - (angle, attack, legsAnim, ox, oy, oz, pitch, yVel)))) - >>> - (first - (arr - (\ (angle, enemySighted, pitch, targetAngle, targetPitch) -> - case - ((abs (pitch - targetPitch) < 6) && (abs (angle - targetAngle) < 6) - && isEvent enemySighted) - of - True -> attack1 - False -> stand) - >>> ((iPre stand) <<< identity)) - >>> - arr - (\ (torsoAnim, (angle, attack, legsAnim, ox, oy, oz, pitch, yVel)) - -> - ((ox, oy + yVel, oz), (ox, oy, oz), angle, pitch, attack, - (torsoAnim, legsAnim))))) + loop + (arr + (\ ((dt, (clippedPos, ev1, ev2, gi, grounded, oi)), count) -> + (count, (clippedPos, dt, ev1, ev2, gi, grounded, oi))) + >>> + (first (arr (\ count -> count + 1) >>> ((iPre 0) <<< identity)) >>> + arr + (\ (count, (clippedPos, dt, ev1, ev2, gi, grounded, oi)) -> + ((clippedPos, count, dt, ev1, ev2, gi, grounded, oi), count))))) + >>> + arr + (\ (clippedPos, count, dt, ev1, ev2, gi, grounded, oi) -> + (clippedPos, (count, dt, ev1, ev2, gi, grounded, oi)))) + >>> + (first ((iPre currentPos) <<< identity) >>> + arr + (\ ((ox1, oy1, oz1), (count, dt, ev1, ev2, gi, grounded, oi)) -> + ((count, ox1, oy1, oz1), (dt, ev1, ev2, gi, grounded, oi)))) + >>> + (first + (arr + (\ (count, ox1, oy1, oz1) -> + case (count > 3 && (ox1, oy1, oz1) /= currentPos) of + True -> (ox1, oy1, oz1) + _ -> currentPos) + >>> identity) + >>> + arr + (\ ((ox, oy, oz), (dt, ev1, ev2, gi, grounded, oi)) -> + ((dt, gi, grounded), (ev1, ev2, oi, ox, oy, oz)))) + >>> + ((((((first + (arr (\ (dt, gi, grounded) -> (grounded, gi, dt)) >>> + ((iPre 0) <<< falling)) + >>> + arr + (\ (yVel, (ev1, ev2, oi, ox, oy, oz)) -> + let enemySighted = oiVisibleObjs oi in + (enemySighted, ev1, ev2, ox, oy, oz, yVel))) + >>> + loop + (arr + (\ ((enemySighted, ev1, ev2, ox, oy, oz, yVel), targetAnglei) -> + ((enemySighted, ox, oy, oz, targetAnglei), + (enemySighted, ev1, ev2, ox, oy, oz, yVel))) + >>> + (first + (arr + (\ (enemySighted, ox, oy, oz, targetAnglei) -> + case (isEvent enemySighted) of + True -> getAngle + ((ox, oy, oz), + (cpos + (oldCam (snd (head (fromEvent enemySighted)))))) + _ -> targetAnglei) + >>> ((iPre initialAngle) <<< identity)) + >>> + arr + (\ (targetAnglei, (enemySighted, ev1, ev2, ox, oy, oz, yVel)) -> + ((enemySighted, ev1, ev2, ox, oy, oz, targetAnglei, yVel), + targetAnglei))))) + >>> + loop + (arr + (\ ((enemySighted, ev1, ev2, ox, oy, oz, targetAnglei, yVel), + angle) + -> + let targetAngle + = case + (abs (angle - targetAnglei) < + abs (angle - (targetAnglei + 360))) + of + True -> targetAnglei + False -> targetAnglei + 360 + in + let angularV + = case (True) of + True -> case (abs (angle - targetAngle) > 2) of + True -> case (angle < targetAngle) of + True -> 270 + _ -> - 270 + False -> (targetAngle - angle) + False -> 0 + in + (angularV, + (enemySighted, ev1, ev2, ox, oy, oz, targetAngle, yVel))) + >>> + (first ((initialAngle +) ^<< integral) >>> + arr + (\ (angle, (enemySighted, ev1, ev2, ox, oy, oz, targetAngle, yVel)) + -> + let legState + = case (abs (angle - targetAngle) < 2) of + True -> idleLegs + _ -> turn + in + ((ev2, legState), + (angle, enemySighted, ev1, legState, ox, oy, oz, targetAngle, + yVel)))) + >>> + (first + (arr + (\ (ev2, legState) -> ((legState == idleLegs) && (isEvent ev2))) + >>> edge) + >>> + arr + (\ (switch2idle, + (angle, enemySighted, ev1, legState, ox, oy, oz, targetAngle, + yVel)) + -> + (legState, + (angle, enemySighted, ev1, ox, oy, oz, switch2idle, targetAngle, + yVel)))) + >>> + (first (arr (\ legState -> (legState == turn)) >>> edge) >>> + arr + (\ (turning, + (angle, enemySighted, ev1, ox, oy, oz, switch2idle, + targetAngle, yVel)) + -> + ((switch2idle, turning), + (angle, enemySighted, ev1, ox, oy, oz, targetAngle, yVel)))) + >>> + (first + (arr + (\ (switch2idle, turning) -> + ((), + turning `tag` (constant turn) `lMerge` switch2idle `tag` + (constant idleLegs))) + >>> drSwitch (constant stand)) + >>> + arr + (\ (legsAnim, + (angle, enemySighted, ev1, ox, oy, oz, targetAngle, yVel)) + -> + ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, + yVel), + angle))))) + >>> + loop + (arr + (\ ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, + yVel), + targetPitch) + -> + ((enemySighted, ox, oy, oz, targetPitch), + (angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, + yVel))) + >>> + (first + (arr + (\ (enemySighted, ox, oy, oz, targetPitch) -> + case (isEvent enemySighted) of + True -> getVertAngle + ((ox, oy, oz), + vectorAdd + (cpos + (oldCam (snd (head (fromEvent enemySighted))))) + (0, - 5, 0)) + _ -> targetPitch) + >>> ((iPre 0) <<< identity)) + >>> + arr + (\ (targetPitch, + (angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, + yVel)) + -> + ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, + targetPitch, yVel), + targetPitch))))) + >>> + loop + (arr + (\ ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, + targetPitch, yVel), + pitch) + -> + let angularVP + = case (abs (pitch - targetPitch) > 2) of + True -> case (targetPitch < pitch) of + True -> - 90 + _ -> 90 + False -> (targetPitch - pitch) + in + (angularVP, + (angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, + targetPitch, yVel))) + >>> + (first ((0 +) ^<< integral) >>> + arr + (\ (pitch, + (angle, enemySighted, ev1, legsAnim, ox, oy, oz, targetAngle, + targetPitch, yVel)) + -> + ((angle, enemySighted, ev1, legsAnim, ox, oy, oz, pitch, + targetAngle, targetPitch, yVel), + pitch))))) + >>> + arr + (\ (angle, enemySighted, ev1, legsAnim, ox, oy, oz, pitch, + targetAngle, targetPitch, yVel) + -> + (ev1, + (angle, enemySighted, legsAnim, ox, oy, oz, pitch, targetAngle, + targetPitch, yVel)))) + >>> + (first (arr (\ ev1 -> (isEvent ev1)) >>> ((iPre noEvent) <<< edge)) + >>> + arr + (\ (attack, + (angle, enemySighted, legsAnim, ox, oy, oz, pitch, targetAngle, + targetPitch, yVel)) + -> + ((angle, enemySighted, pitch, targetAngle, targetPitch), + (angle, attack, legsAnim, ox, oy, oz, pitch, yVel)))) + >>> + (first + (arr + (\ (angle, enemySighted, pitch, targetAngle, targetPitch) -> + case + ((abs (pitch - targetPitch) < 6) && (abs (angle - targetAngle) < 6) + && isEvent enemySighted) + of + True -> attack1 + False -> stand) + >>> ((iPre stand) <<< identity)) + >>> + arr + (\ (torsoAnim, (angle, attack, legsAnim, ox, oy, oz, pitch, yVel)) + -> + ((ox, oy + yVel, oz), (ox, oy, oz), angle, pitch, attack, + (torsoAnim, legsAnim))))) hunk ./ObjectBehavior.hs 1045 -{-# LINE 591 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1046 - Vec3 -> - [Vec3] -> - SF (ObjInput, Event (), Event ()) - (Vec3, Vec3, Double, Double, Event (), (Int, Int)) -{-# LINE 594 "ObjectBehavior.as" #-} + Vec3 -> + [Vec3] -> + SF (ObjInput, Event (), Event ()) + (Vec3, Vec3, Double, Double, Event (), (Int, Int)) hunk ./ObjectBehavior.hs 1053 - let {-# LINE 595 "ObjectBehavior.as" #-} - gi = oiGameInput oi - in - let {-# LINE 596 "ObjectBehavior.as" #-} - clippedPos = oiCollisionPos oi - in - let {-# LINE 597 "ObjectBehavior.as" #-} - grounded = oiOnLand oi - in (clippedPos, (ev1, ev2, gi, grounded, oi))) + let gi = oiGameInput oi in + let clippedPos = oiCollisionPos oi in + let grounded = oiOnLand oi in + (clippedPos, (ev1, ev2, gi, grounded, oi))) hunk ./ObjectBehavior.hs 1059 - arr - (\ ((ox, oy, oz), (ev1, ev2, gi, grounded, oi)) -> - (gi, (ev1, ev2, gi, grounded, oi, ox, oy, oz)))) - >>> - (first getT >>> - arr - (\ (t, (ev1, ev2, gi, grounded, oi, ox, oy, oz)) -> - (gi, (ev1, ev2, gi, grounded, oi, ox, oy, oz)))) - >>> - (first getDt >>> - arr - (\ (dt, (ev1, ev2, gi, grounded, oi, ox, oy, oz)) -> - ((dt, gi, grounded), (dt, ev1, ev2, oi, ox, oy, oz)))) - >>> - (first - (arr (\ (dt, gi, grounded) -> (grounded, gi, dt)) >>> - ((iPre 0) <<< falling)) - >>> - loop - (arr - (\ ((yVel, (dt, ev1, ev2, oi, ox, oy, oz)), wpl) -> - (wpl, (dt, ev1, ev2, oi, ox, oy, oz, yVel))) - >>> - (first ((iPre (cycle waypoints)) <<< identity) >>> - arr - (\ (wps, (dt, ev1, ev2, oi, ox, oy, oz, yVel)) -> - let {-# LINE 608 "ObjectBehavior.as" #-} - [wp1, wp2] = take 2 wps - in - let {-# LINE 610 "ObjectBehavior.as" #-} - (pastWp, (dx, dy, dz)) = stepdist wp1 wp2 (ox, oy, oz) 100 dt - in - (pastWp, - (dx, dz, ev1, ev2, oi, ox, oy, oz, pastWp, wp2, wps, yVel)))) - >>> - (first edge >>> - arr - (\ (pastEv, - (dx, dz, ev1, ev2, oi, ox, oy, oz, pastWp, wp2, wps, yVel)) - -> - let {-# LINE 613 "ObjectBehavior.as" #-} - angle = getAngle ((ox, oy, oz), (ox + dx, oy + yVel, oz + dz)) - in - let {-# LINE 614 "ObjectBehavior.as" #-} - newPos = (ox + dx, oy + yVel, oz + dz) - in - ((angle, ev1, ev2, newPos, oi, pastEv, wp2), - (angle, newPos, ox, oy, oz, pastWp, wps)))) - >>> - (first - (arr - (\ (angle, ev1, ev2, newPos, oi, pastEv, wp2) -> - ((oi, ev1, ev2), - pastEv `tag` (turnToNextWp angle (getAngle (newPos, wp2))))) - >>> - rSwitch - (constant (True, False, (getAngle ((x, y, z), head waypoints))))) - >>> - arr - (\ ((notturning, largeEnough, turnAngle), - (angle, newPos, ox, oy, oz, pastWp, wps)) - -> - let {-# LINE 624 "ObjectBehavior.as" #-} - wpl - = case (pastWp) of - True -> case (not largeEnough) of - True -> (tail wps) - _ -> case notturning of - True -> (tail wps) - _ -> wps - _ -> wps - in - ((angle, largeEnough, newPos, notturning, ox, oy, oz, turnAngle), - wpl))))) - >>> - arr - (\ (angle, largeEnough, newPos, notturning, ox, oy, oz, turnAngle) - -> - let {-# LINE 637 "ObjectBehavior.as" #-} - holdAngle - = case (not largeEnough) of - True -> angle - _ -> case notturning of - False -> turnAngle - _ -> angle - in - let {-# LINE 647 "ObjectBehavior.as" #-} - legAnim - = case (not largeEnough) of - True -> walk - _ -> case (notturning) of - True -> walk - _ -> turn - in - (newPos, (ox, oy, oz), holdAngle, 0, noEvent, (stand, legAnim)))) + arr + (\ ((ox, oy, oz), (ev1, ev2, gi, grounded, oi)) -> + (gi, (ev1, ev2, gi, grounded, oi, ox, oy, oz)))) + >>> + (first getT >>> + arr + (\ (t, (ev1, ev2, gi, grounded, oi, ox, oy, oz)) -> + (gi, (ev1, ev2, gi, grounded, oi, ox, oy, oz)))) + >>> + (first getDt >>> + arr + (\ (dt, (ev1, ev2, gi, grounded, oi, ox, oy, oz)) -> + ((dt, gi, grounded), (dt, ev1, ev2, oi, ox, oy, oz)))) + >>> + (first + (arr (\ (dt, gi, grounded) -> (grounded, gi, dt)) >>> + ((iPre 0) <<< falling)) + >>> + loop + (arr + (\ ((yVel, (dt, ev1, ev2, oi, ox, oy, oz)), wpl) -> + (wpl, (dt, ev1, ev2, oi, ox, oy, oz, yVel))) + >>> + (first ((iPre (cycle waypoints)) <<< identity) >>> + arr + (\ (wps, (dt, ev1, ev2, oi, ox, oy, oz, yVel)) -> + let [wp1, wp2] = take 2 wps in + let (pastWp, (dx, dy, dz)) = stepdist wp1 wp2 (ox, oy, oz) 100 dt + in + (pastWp, + (dx, dz, ev1, ev2, oi, ox, oy, oz, pastWp, wp2, wps, yVel)))) + >>> + (first edge >>> + arr + (\ (pastEv, + (dx, dz, ev1, ev2, oi, ox, oy, oz, pastWp, wp2, wps, yVel)) + -> + let angle = getAngle ((ox, oy, oz), (ox + dx, oy + yVel, oz + dz)) + in + let newPos = (ox + dx, oy + yVel, oz + dz) in + ((angle, ev1, ev2, newPos, oi, pastEv, wp2), + (angle, newPos, ox, oy, oz, pastWp, wps)))) + >>> + (first + (arr + (\ (angle, ev1, ev2, newPos, oi, pastEv, wp2) -> + ((oi, ev1, ev2), + pastEv `tag` (turnToNextWp angle (getAngle (newPos, wp2))))) + >>> + rSwitch + (constant (True, False, (getAngle ((x, y, z), head waypoints))))) + >>> + arr + (\ ((notturning, largeEnough, turnAngle), + (angle, newPos, ox, oy, oz, pastWp, wps)) + -> + let wpl + = case (pastWp) of + True -> case (not largeEnough) of + True -> (tail wps) + _ -> case notturning of + True -> (tail wps) + _ -> wps + _ -> wps + in + ((angle, largeEnough, newPos, notturning, ox, oy, oz, turnAngle), + wpl))))) + >>> + arr + (\ (angle, largeEnough, newPos, notturning, ox, oy, oz, turnAngle) + -> + let holdAngle + = case (not largeEnough) of + True -> angle + _ -> case notturning of + False -> turnAngle + _ -> angle + in + let legAnim + = case (not largeEnough) of + True -> walk + _ -> case (notturning) of + True -> walk + _ -> turn + in + (newPos, (ox, oy, oz), holdAngle, 0, noEvent, (stand, legAnim)))) hunk ./ObjectBehavior.hs 1146 -{-# LINE 657 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1147 - Double -> - Double -> SF (ObjInput, Event (), Event ()) (Bool, Bool, Double) -{-# LINE 659 "ObjectBehavior.as" #-} + Double -> + Double -> SF (ObjInput, Event (), Event ()) (Bool, Bool, Double) hunk ./ObjectBehavior.hs 1151 - (\ (oi, uev, lev) -> - let {-# LINE 660 "ObjectBehavior.as" #-} - targetAngle - = case - (abs (currentangle - nextAngle) < - abs (currentangle - (nextAngle + 360))) - of - True -> nextAngle - False -> nextAngle + 360 - in (lev, targetAngle)) - >>> - loop - (arr - (\ ((lev, targetAngle), angle) -> - let {-# LINE 667 "ObjectBehavior.as" #-} - angularV - = case (abs (angle - targetAngle) > 3) of - True -> case (angle < targetAngle) of - True -> 360 - _ -> - 360 - False -> (targetAngle - angle) - in (angularV, (lev, targetAngle))) - >>> - (first ((currentangle +) ^<< integral) >>> - arr - (\ (angle, (lev, targetAngle)) -> - ((angle, lev, targetAngle), angle))))) - >>> - arr - (\ (angle, lev, targetAngle) -> - let {-# LINE 675 "ObjectBehavior.as" #-} - legState - = case (abs (angle - targetAngle) < 3) of - True -> idleLegs - _ -> turn - in ((legState, lev), (angle, targetAngle)))) + (\ (oi, uev, lev) -> + let targetAngle + = case + (abs (currentangle - nextAngle) < + abs (currentangle - (nextAngle + 360))) + of + True -> nextAngle + False -> nextAngle + 360 + in (lev, targetAngle)) + >>> + loop + (arr + (\ ((lev, targetAngle), angle) -> + let angularV + = case (abs (angle - targetAngle) > 3) of + True -> case (angle < targetAngle) of + True -> 360 + _ -> - 360 + False -> (targetAngle - angle) + in (angularV, (lev, targetAngle))) + >>> + (first ((currentangle +) ^<< integral) >>> + arr + (\ (angle, (lev, targetAngle)) -> + ((angle, lev, targetAngle), angle))))) + >>> + arr + (\ (angle, lev, targetAngle) -> + let legState + = case (abs (angle - targetAngle) < 3) of + True -> idleLegs + _ -> turn + in ((legState, lev), (angle, targetAngle)))) hunk ./ObjectBehavior.hs 1186 - (arr (\ (legState, lev) -> (legState == idleLegs && isEvent lev)) - >>> ((iPre noEvent) <<< edge)) - >>> - first - (arr (\ switch2idle -> ((), switch2idle `tag` (constant True))) >>> - rSwitch (constant False))) - >>> - arr - (\ (ret, (angle, targetAngle)) -> - (ret, (abs (currentangle - targetAngle) > 30), angle))) + (arr (\ (legState, lev) -> (legState == idleLegs && isEvent lev)) + >>> ((iPre noEvent) <<< edge)) + >>> + first + (arr (\ switch2idle -> ((), switch2idle `tag` (constant True))) >>> + rSwitch (constant False))) + >>> + arr + (\ (ret, (angle, targetAngle)) -> + (ret, (abs (currentangle - targetAngle) > 30), angle))) hunk ./ObjectBehavior.hs 1197 -{-# LINE 689 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1198 - Vec3 -> Vec3 -> Vec3 -> Double -> Double -> (Bool, Vec3) -{-# LINE 690 "ObjectBehavior.as" #-} + Vec3 -> Vec3 -> Vec3 -> Double -> Double -> (Bool, Vec3) hunk ./ObjectBehavior.hs 1200 - = let {-# LINE 692 "ObjectBehavior.as" #-} - (dx, dy, dz) = normalise $ vectorSub (wx1, 0, wz1) (x, 0, z) - {-# LINE 693 "ObjectBehavior.as" #-} - distance = sqrt (((x - wx1) * (x - wx1)) + ((z - wz1) * (z - wz1))) - {-# LINE 694 "ObjectBehavior.as" #-} - remvel = distance * (distance / (vel * dt)) + = let (dx, dy, dz) = normalise $ vectorSub (wx1, 0, wz1) (x, 0, z) + distance = sqrt (((x - wx1) * (x - wx1)) + ((z - wz1) * (z - wz1))) + remvel = distance * (distance / (vel * dt)) hunk ./ObjectBehavior.hs 1205 - True -> (False, (dx * vel * dt, 0, dz * vel * dt)) - False -> (True, (dx * remvel, 0, dz * remvel)) + True -> (False, (dx * vel * dt, 0, dz * vel * dt)) + False -> (True, (dx * remvel, 0, dz * remvel)) hunk ./ObjectBehavior.hs 1208 -{-# LINE 702 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1209 - Vec3 -> - Double -> - SF (ObjInput, Event (), Event ()) - (Vec3, Vec3, Double, Double, Event (), (Int, Int)) -{-# LINE 704 "ObjectBehavior.as" #-} + Vec3 -> + Double -> + SF (ObjInput, Event (), Event ()) + (Vec3, Vec3, Double, Double, Event (), (Int, Int)) hunk ./ObjectBehavior.hs 1216 - (drSwitch (constant death1) >>> - arr - (\ death -> (start, start, angle, 0, noEvent, (death, death))))) + (drSwitch (constant death1) >>> + arr + (\ death -> (start, start, angle, 0, noEvent, (death, death))))) hunk ./ObjectBehavior.hs 1220 -{-# LINE 711 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1221 -{-# LINE 712 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1222 - = let {-# LINE 713 "ObjectBehavior.as" #-} - angle - = acos $ - dotProd (normalise $ vectorSub (vx, 0, vz) (x, 0, z)) (1, 0, 0) + = let angle + = acos $ + dotProd (normalise $ vectorSub (vx, 0, vz) (x, 0, z)) (1, 0, 0) hunk ./ObjectBehavior.hs 1227 - False -> (angle * 180 / pi) - True -> (360 - (angle * 180 / pi)) + False -> (angle * 180 / pi) + True -> (360 - (angle * 180 / pi)) hunk ./ObjectBehavior.hs 1230 -{-# LINE 721 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1231 -{-# LINE 722 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1232 - = let {-# LINE 723 "ObjectBehavior.as" #-} - angle1 - = acos $ - dotProd (normalise $ vectorSub (vx, vy, vz) (x, y, z)) (0, 1, 0) + = let angle1 + = acos $ + dotProd (normalise $ vectorSub (vx, vy, vz) (x, y, z)) (0, 1, 0) hunk ./ObjectBehavior.hs 1237 -{-# LINE 729 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1238 -{-# LINE 730 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1241 - (\ ((time, animIndex), anim2) -> - ((anim2, animIndex, time), animIndex)) - >>> - (first - (arr (\ (anim2, animIndex, time) -> (animIndex, time, anim2)) >>> - ((iPre (False, iAnim)) <<< arr updateAnim)) - >>> - arr - (\ ((hasLooped, anim2), animIndex) -> - ((anim2, animIndex, hasLooped), anim2)))) + (\ ((time, animIndex), anim2) -> + ((anim2, animIndex, time), animIndex)) + >>> + (first + (arr (\ (anim2, animIndex, time) -> (animIndex, time, anim2)) >>> + ((iPre (False, iAnim)) <<< arr updateAnim)) + >>> + arr + (\ ((hasLooped, anim2), animIndex) -> + ((anim2, animIndex, hasLooped), anim2)))) hunk ./ObjectBehavior.hs 1253 - (\ (anim2, animIndex, hasLooped) -> - (case hasLooped of - True -> case (animIndex == dead1) of - True -> (noEvent, anim2) - False -> (Event (), anim2) - False -> (noEvent, anim2)))) + (\ (anim2, animIndex, hasLooped) -> + (case hasLooped of + True -> case (animIndex == dead1) of + True -> (noEvent, anim2) + False -> (Event (), anim2) + False -> (noEvent, anim2)))) hunk ./ObjectBehavior.hs 1260 -{-# LINE 749 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1261 -{-# LINE 750 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1264 - let {-# LINE 752 "ObjectBehavior.as" #-} - (x, y, z) = (cpos cam) - {-# LINE 753 "ObjectBehavior.as" #-} - (vpx, vpy, vpz) = (viewPos cam) - {-# LINE 754 "ObjectBehavior.as" #-} - strafevec - = normalise - (crossProd (vectorSub (viewPos cam) (cpos cam)) (upVec cam)) - {-# LINE 756 "ObjectBehavior.as" #-} - (vx, vy, vz) = normalise (crossProd (upVec cam) strafevec) - {-# LINE 758 "ObjectBehavior.as" #-} - newx = (vx * speed) - {-# LINE 759 "ObjectBehavior.as" #-} - newz = (vz * speed) - {-# LINE 760 "ObjectBehavior.as" #-} - newvx = (vx * speed) - {-# LINE 761 "ObjectBehavior.as" #-} - newvz = (vz * speed) - in - Camera{cpos = (x + newx, y, z + newz), - viewPos = (vpx + newvx, vpy, vpz + newvz), upVec = (upVec cam)})) + let (x, y, z) = (cpos cam) + (vpx, vpy, vpz) = (viewPos cam) + strafevec + = normalise + (crossProd (vectorSub (viewPos cam) (cpos cam)) (upVec cam)) + (vx, vy, vz) = normalise (crossProd (upVec cam) strafevec) + newx = (vx * speed) + newz = (vz * speed) + newvx = (vx * speed) + newvz = (vz * speed) + in + Camera{cpos = (x + newx, y, z + newz), + viewPos = (vpx + newvx, vpy, vpz + newvz), upVec = (upVec cam)})) hunk ./ObjectBehavior.hs 1278 -{-# LINE 769 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1279 -{-# LINE 770 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1282 - let {-# LINE 772 "ObjectBehavior.as" #-} - (sx, sy, sz) - = normalise - (crossProd (vectorSub (viewPos cam) (cpos cam)) (upVec cam)) - {-# LINE 774 "ObjectBehavior.as" #-} - (x, y, z) = (cpos cam) - {-# LINE 775 "ObjectBehavior.as" #-} - (vx, vy, vz) = (viewPos cam) - {-# LINE 776 "ObjectBehavior.as" #-} - newx = (sx * speed) - {-# LINE 777 "ObjectBehavior.as" #-} - newz = (sz * speed) - {-# LINE 778 "ObjectBehavior.as" #-} - newvx = (sx * speed) - {-# LINE 779 "ObjectBehavior.as" #-} - newvz = (sz * speed) - in - Camera{cpos = (x + newx, y, z + newz), - viewPos = (vx + newvx, vy, vz + newvz), upVec = (upVec cam)})) + let (sx, sy, sz) + = normalise + (crossProd (vectorSub (viewPos cam) (cpos cam)) (upVec cam)) + (x, y, z) = (cpos cam) + (vx, vy, vz) = (viewPos cam) + newx = (sx * speed) + newz = (sz * speed) + newvx = (sx * speed) + newvz = (sz * speed) + in + Camera{cpos = (x + newx, y, z + newz), + viewPos = (vx + newvx, vy, vz + newvz), upVec = (upVec cam)})) hunk ./ObjectBehavior.hs 1295 -{-# LINE 787 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1296 -{-# LINE 788 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1299 - (arr (\ (key, v) -> nextSpeed key v) >>> - (((iPre 0) <<< identity) >>> arr (\ v -> (v, v))))) - where {-# LINE 794 "ObjectBehavior.as" #-} - nextSpeed key v - | key == Event ('w', True) = speed - | key == Event ('s', True) = - speed - | (key == Event ('w', False) || key == Event ('s', False)) = 0 - | otherwise = v + (arr (\ (key, v) -> nextSpeed key v) >>> + (((iPre 0) <<< identity) >>> arr (\ v -> (v, v))))) + where nextSpeed key v + | key == Event ('w', True) = speed + | key == Event ('s', True) = - speed + | (key == Event ('w', False) || key == Event ('s', False)) = 0 + | otherwise = v hunk ./ObjectBehavior.hs 1307 -{-# LINE 801 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1308 -{-# LINE 802 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1311 - (arr (\ (key, v) -> nextSpeed key v) >>> - (((iPre 0) <<< identity) >>> arr (\ v -> (v, v))))) - where {-# LINE 808 "ObjectBehavior.as" #-} - nextSpeed key v - | key == Event ('d', True) = speed - | key == Event ('a', True) = - speed - | (key == Event ('d', False) || key == Event ('a', False)) = 0 - | otherwise = v + (arr (\ (key, v) -> nextSpeed key v) >>> + (((iPre 0) <<< identity) >>> arr (\ v -> (v, v))))) + where nextSpeed key v + | key == Event ('d', True) = speed + | key == Event ('a', True) = - speed + | (key == Event ('d', False) || key == Event ('a', False)) = 0 + | otherwise = v hunk ./ObjectBehavior.hs 1319 -{-# LINE 817 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1320 -{-# LINE 818 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1323 - (first (arr (\ key -> key == Event ('e', True)) >>> arr jump2Vel) - >>> arr (\ (jumpVel, (key, land)) -> ((key, land), (key, land)))) - >>> - (first - (arr (\ (key, land) -> key == Event ('e', True) && (land == True)) - >>> arr bool2Ev) - >>> arr (\ (jumping, (key, land)) -> (land, (jumping, key, land)))) - >>> - ((first (arr (\ land -> (land == True)) >>> edge) >>> - loop - (arr - (\ ((landed, (jumping, key, land)), middleOfJump) -> - ((key, land, middleOfJump), (jumping, land, landed))) - >>> - (first - (arr - (\ (key, land, middleOfJump) -> - case - (middleOfJump == False && key == Event ('e', True) && land == True) - of - True -> True - False -> case (land == True) of - True -> False - False -> middleOfJump) - >>> (iPre False <<< identity)) - >>> - arr - (\ (middleOfJump, (jumping, land, landed)) -> - ((jumping, land, landed, middleOfJump), middleOfJump))))) - >>> - arr - (\ (jumping, land, landed, middleOfJump) -> - ((land, middleOfJump), (jumping, landed)))) - >>> - (first - (arr - (\ (land, middleOfJump) -> - (land == False && middleOfJump == False)) - >>> edge) - >>> - arr - (\ (notlanded, (jumping, landed)) -> - ((), - (jumping `tag` falling' (- 200 :: Double) (40 :: Double)) `lMerge` - (landed `tag` constant (- 5.0e-2)) - `lMerge` - (notlanded `tag` falling' (- 200 :: Double) (0 :: Double))))) - >>> drSwitch (falling' (- 200 :: Double) (0 :: Double))) + (first (arr (\ key -> key == Event ('e', True)) >>> arr jump2Vel) + >>> arr (\ (jumpVel, (key, land)) -> ((key, land), (key, land)))) + >>> + (first + (arr (\ (key, land) -> key == Event ('e', True) && (land == True)) + >>> arr bool2Ev) + >>> arr (\ (jumping, (key, land)) -> (land, (jumping, key, land)))) + >>> + ((first (arr (\ land -> (land == True)) >>> edge) >>> + loop + (arr + (\ ((landed, (jumping, key, land)), middleOfJump) -> + ((key, land, middleOfJump), (jumping, land, landed))) + >>> + (first + (arr + (\ (key, land, middleOfJump) -> + case + (middleOfJump == False && key == Event ('e', True) && land == True) + of + True -> True + False -> case (land == True) of + True -> False + False -> middleOfJump) + >>> (iPre False <<< identity)) + >>> + arr + (\ (middleOfJump, (jumping, land, landed)) -> + ((jumping, land, landed, middleOfJump), middleOfJump))))) + >>> + arr + (\ (jumping, land, landed, middleOfJump) -> + ((land, middleOfJump), (jumping, landed)))) + >>> + (first + (arr + (\ (land, middleOfJump) -> + (land == False && middleOfJump == False)) + >>> edge) + >>> + arr + (\ (notlanded, (jumping, landed)) -> + ((), + (jumping `tag` falling' (- 200 :: Double) (40 :: Double)) `lMerge` + (landed `tag` constant (- 5.0e-2)) + `lMerge` + (notlanded `tag` falling' (- 200 :: Double) (0 :: Double))))) + >>> drSwitch (falling' (- 200 :: Double) (0 :: Double))) hunk ./ObjectBehavior.hs 1372 -{-# LINE 842 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1373 -{-# LINE 843 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1377 -{-# LINE 849 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1378 -{-# LINE 850 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1382 -{-# LINE 855 "ObjectBehavior.as" #-} hunk ./ObjectBehavior.hs 1383 -{-# LINE 856 "ObjectBehavior.as" #-} hunk ./main.hs 416 +coalesce _ = NoEvent hunk ./readme.txt 11 -Compiles with: ghc --make -O2 -fglasgow-exts main.hs +Compiles with ghc --make -O2 -fglasgow-exts main.hs hunk ./readme.txt 14 -z an x to lock and unlock mouse +z an x to lock and unlock mouse, left click to fire }