Wednesday, 26 March 2014

code for lootgame

 this is the main code the rest is for the assets and spawing enemies


package
{
    import adobe.utils.CustomActions;
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.KeyboardEvent;

    /**
     * ...
     * @author greg
     */
    public class game extends MovieClip
    {
        private var gamestate:int = 0;
        public var enemyholder:Sprite;
        public var enemypool:Vector.<enemy > ;
        private var framessincespawn:int;
        private const cs_load:int = 0;
        private const cs_running:int = 1;
        private const cs_paused:int = 2;
        private const cs_Gameover:int = 3;
        public var Pause:Boolean = false;//:int =2;
        public var armourholder:Sprite;
        public var armourpool:Vector.<armour> = new Vector.<armour>();
        public var framessincespawn2:int;
        private const cs_inventscreen:int = 3;
        public var Inventscreen:inventoryscreen;
        private var invent:Boolean;
        static public var inventscr:Boolean = false;
        public var Youwin:youwinscreen = new youwinscreen();
        public var Gameover:gameover = new gameover();
        //armour value
        public var a = 0;
        public var attvalue = 0;
        public var defvalue = 0;
        public var Level:int = 0;
        public var winner:int = 0;
        //private var _player:player;



        //public var Gameover:gameover = new gameover();
        public var health:int = 20;

        public function game()
        {
            trace("Created game");
            addEventListener(Event.ADDED_TO_STAGE, addedToStage, false, 0, true);
            fillenemypool();
            fillarmourpool();


        }

        function changeLevel(levelNumber:int)
        {
            Level = levelNumber;

            trace("Changed level to " + Level);

            // change background image
            background.gotoAndStop(levelNumber + 1);
        }

        // Change armor

    private function addedToStage(e:Event):void
    {
        Inventscreen = new inventoryscreen();
        Inventscreen.parentGame = this;
        trace("added to stage");
        removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
        stage.addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
        stage.addEventListener(KeyboardEvent.KEY_UP, keyup );


    }
    private function loop(e:Event):void
    {
        switch (gamestate)
        {
            case cs_load :
                initalizegame();

                break;

            case cs_running :
                gameloop();
                break;

            case cs_paused :
                //addChild(Inventscreen);
            default :

                break;
        }


    }





    private function gameloop():void
    {

        if (! Pause)
        {
            Player.update();

            updateenemy();
           
           
            if (Level == 0 && defvalue == 0 && attvalue ==0  )
            {
            updatearmour();
            }
            else if (Level == 1 && defvalue == 10 &&  attvalue == 10)
            {
                updatearmour();
            }
            else if (Level == 2 && defvalue == 20 && attvalue == 20)
            {
                updatearmour();
               
            }
            if (contains(Inventscreen))
            {
                removeChild(Inventscreen);
            }
        }
        if (Pause)
        {

            if (Inventscreen.parent != this)
            {
                addChild(Inventscreen);
                Inventscreen.refreshScreen();
                inventscr = true;
            }

        }

        //Player.update();
        //updateenemy();

        if (Player.health <= 0)
        {
            addChild(Gameover);
        }
    }


    private function initalizegame():void
    {
        stage.focus = stage;

        // add the layers for bullets and enemies
        enemyholder = new Sprite  ;
        addChild(enemyholder);

        armourholder = new Sprite();
        addChild(armourholder);





        //set up the player
        //trace("addplayer");
        addChild(Player);

        gamestate = cs_running;
    }

    private function keyup(e:KeyboardEvent):void
    {

        if (e.keyCode == 80)
        {
            Pause = ! Pause;
            trace("i'm in pause");

        }



    }

    private function spawnenemy():void
    {
        var EnemyIndex = findenemy();
        trace(EnemyIndex);
        //check its valid
        if (EnemyIndex != null)
        {
            trace("found enemy");

            if (Level == 0)
            {
                enemypool[EnemyIndex] = new enemy1();
                framessincespawn == 100;
            }
            else if (Level >= 1)
            {
                enemypool[EnemyIndex] = new enemy2();
                framessincespawn = 60;
            }
            else if (Level == 2)
            {
                enemypool[EnemyIndex] = new enemy2();
                framessincespawn = 40;
            }
            enemypool[EnemyIndex].activate(50+Math.random() *(stage.stageWidth -100), 0, Player, this);

            enemyholder.addChild(enemypool[EnemyIndex]);
        }
    }
    //this function spawns armour
    public function spawnarmour():void
    {
        var ar:armour = new armour();
        var offset:Number = 100;

        ar.activatearmour(
        offset+Math.random() *(stage.stageWidth -offset * 2),
        offset+Math.random() *(stage.stageHeight -offset * 2),
        Player);

        armourpool.push(ar);

        //armourpool.push(50+Math.random() *(stage.stageWidth -100),0,Player);
        //armourpool.push(100+Math.random() *(stage.width -100),0,Player);
        armourholder.addChild(ar);

    }



    public function fillenemypool()
    {
        enemypool = new Vector.<enemy >   ;
        var i:int = 0;

        while (i < 25)
        {
            i++;
            enemypool.push(new enemy());
        }
    }

    public function fillarmourpool()
    {
        armourpool = new Vector.<armour >   ;
        var b:int = 0;

        while (b < 25)
        {
            b++;
            armourpool.push(new armour());
        }
    }




    private function updateenemy()
    {
        framessincespawn++;

        if (framessincespawn == 100)
        {
            framessincespawn = 0;
            trace("trying to spawn enemy");
            spawnenemy();
        }


        for (var i:int = 0; i < enemypool.length; i++)
        {
            if (enemypool[i].isactive)
            {
                if (enemypool[i].hitbox2.hitTestObject(Player))
                {


                    Player.health--;
                    enemypool[i].deactivate();
                    trace("health");
                }
                else
                {
                    enemypool[i].update();
                }
            }

        }
    }


    private function updatearmour()
    {
        framessincespawn2++;
        if (framessincespawn2 == 100)
        {
            framessincespawn2 = 0;
            trace("trying to spawn armour");
            spawnarmour();
        }

        for (var b:int = 0; b < armourpool.length; b++)
        {
            if (armourpool[b].isactive)
            {
                if (armourpool[b].hitTestObject(Player))
                {

                    trace("armour collected");
                    if (Level == 0 && a < 3)
                    {
                        a++;
                    }
                    else if (Level == 1 && a < 6)
                    {
                        a++;
                    }
                    else if (Level == 2 && a < 9)
                    {
                        a++;
                    }
                    armourpool[b].deactivatearmour();
                }
                else
                {
                    armourpool[b].updatearmour();
                }
            }

        }
    }






    private function findenemy()
    {
        //loop through all the enemies to find an inactive one
        for (var i:int = 0; i < enemypool.length; i++)
        {
            // once we find one that's spare
            if (! enemypool[i].isactive)
            {
                // return it ready for use
                return i;
            }
        }

        return null;
    }

    public function youwin():void
    {
    addChild(Youwin);
    Pause = true;
    trace ("im in pause");
    }














}

}

No comments:

Post a Comment