import flash.events.Event; import flash.events.MouseEvent; import flash.desktop.NativeApplication; import flash.desktop.SystemIdleMode; import flash.system.Capabilities; import flash.utils.getTimer; import audio.*; const numRealOptions:int = 4; const numFakeOptions:int = 3; const minDistance:Number = 90; var timeRemaining:Number=0; var secElapsed:Number; var lT:Number; var score:Number; var fakeMovementPhase:int = 0; var realMovementPhase:int = 0; var numReal:int = 0; var numFake:int = 0; var activeReal:Array = new Array(); var activeFake:Array = new Array(); var spawnDelay:Number=0; var activeToasts:Array = new Array(); stage.addEventListener(Event.RESIZE, resized); init(); stop(); function init():void { resized(null); SFX.initSystem(); cmdExit.addEventListener(MouseEvent.CLICK, kill); cmdGo.addEventListener(MouseEvent.CLICK, startGame); } function startGame(e:MouseEvent):void { cmdGo.visible = false; lT = getTimer(); timeRemaining = 120; score = 0; killSpots(); spawnDelay = 0; addEventListener(Event.ENTER_FRAME, processGame); } function killSpots():void { for(var s:int=0; s0) { if(spawnDelay<=0) { processSpawning(); } else { spawnDelay-=secElapsed; } processSpots(); } } function processSpawning():void { if(score>100) { numReal = 1; numFake = 10; fakeMovementPhase = 4; realMovementPhase = 3; } else if(score>80) { numReal = 1; numFake = 10; fakeMovementPhase = 3; realMovementPhase = 3; } else if(score>60) { numReal = 1; numFake = 10; fakeMovementPhase = 2; realMovementPhase = 3; } else if(score>40) { numReal = 1; numFake = 10; fakeMovementPhase = 2; realMovementPhase = 2; } else if(score>30) { numReal = 2; numFake = 8; fakeMovementPhase = 1; realMovementPhase = 2; } else if(score>20) { numReal = 2; numFake = 5; fakeMovementPhase = 1; realMovementPhase = 1; } else if(score>10) { numReal = 2; numFake = 3; fakeMovementPhase = 0; realMovementPhase = 1; } else { numReal = 2; numFake = 1; fakeMovementPhase = 0; realMovementPhase = 0; } for(var s:int=0; sto) { num = to; } return num; } function processSpots():void { var stageScale:Number = ((stage.stageWidth/800)+(stage.stageHeight/480))/2; for(var s:int=0; s stage.stageWidth+100) { activeFake[s].x -= stage.stageWidth+200; } if(activeFake[s].y < -100) { activeFake[s].y += stage.stageHeight+200; } if(activeFake[s].y > stage.stageHeight+100) { activeFake[s].y -= stage.stageHeight+200; } case 3: activeFake[s].alpha += (0.8+Math.random()*.2-activeFake[s].alpha) * gravity(0.2); activeFake[s].scaleX = activeFake[s].scaleY = 0.8 * stageScale; activeFake[s].x += Math.cos(activeFake[s].rotation) * secElapsed*2; activeFake[s].y += Math.sin(activeFake[s].rotation) * secElapsed*2; if(activeFake[s].x < -100) { activeFake[s].x += stage.stageWidth+200; } if(activeFake[s].x > stage.stageWidth+100) { activeFake[s].x -= stage.stageWidth+200; } if(activeFake[s].y < -100) { activeFake[s].y += stage.stageHeight+200; } if(activeFake[s].y > stage.stageHeight+100) { activeFake[s].y -= stage.stageHeight+200; } break; case 2: activeFake[s].alpha += (0.8+Math.random()*.2-activeFake[s].alpha) * gravity(0.2); activeFake[s].scaleX = activeFake[s].scaleY = 0.8 * stageScale; break; case 1: activeFake[s].alpha += (0.9-activeFake[s].alpha) * gravity(0.1); activeFake[s].scaleX = activeFake[s].scaleY = 0.7 * stageScale; break; case 0: activeFake[s].alpha += (1-activeFake[s].alpha) * gravity(0.05); activeFake[s].scaleX = activeFake[s].scaleY = 0.7 * stageScale; break; } } } for(s=0; s