package { import flash.display.MovieClip; import flash.display.Shape; import flash.events.Event; import flash.geom.ColorTransform; import flash.geom.Point; public class Minimap extends MovieClip { private var sector:Sector; private var blips:Array = new Array(); private var allegienceColors:Array; private var asteroidBlips:Array = new Array(); public function Minimap($sector:Sector) { sector = $sector; allegienceColors = sector.AllegianceColors; addAsteroids(); addEventListener(Event.ENTER_FRAME, refresh); } private function refresh($e:Event):void { var ships:Array = sector.getShips(); for (var i:Number = 0; i < ships.length; i++) { if (blips[i])//removes blips from the previous frame { removeChild(blips[i]); blips[i] = null; } if (ships[i] && ships[i].HP > 0)//adds new blips, gives them color according to allegiance and places them on the minimap { blips[i] = new Blipp(); blips[i].x = Math.floor((ships[i].x / ((sector.SectorW * 32) + 32)) * (100 - 20)) + 10; blips[i].y = Math.floor((ships[i].y / ((sector.SectorH * 32) + 32)) * (100 - 20)) + 10; blips[i].rotation = ships[i].rotation; blips[i].transform.colorTransform = allegienceColors[ships[i].Allegiance]; blips[i].gotoAndStop(2); addChild(blips[i]); } } } private function addAsteroids():void { var asteroids:Array = sector.Asteroids; for (var i:Number = 0; i < asteroids.length; i++) { asteroidBlips[i] = new Blipp(); asteroidBlips[i].x = Math.floor((asteroids[i].x / ((sector.SectorW * 32) + 32)) * (100 - 20)) + 10; asteroidBlips[i].y = Math.floor((asteroids[i].y / ((sector.SectorH * 32) + 32)) * (100 - 20)) + 10; asteroidBlips[i].gotoAndStop(1); addChild(asteroidBlips[i]); } } public function removeAsteroidBlipp($id:int):void { removeChild(asteroidBlips[$id]); asteroidBlips[$id] = null; } } }