flash on 2012-9-28

by mutantleg
♥0 | Line 150 | Modified 2012-09-28 21:41:41 | MIT License
play

ActionScript3 source code

/**
 * Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/dKaY
 */

package {
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
       
       public var teama:Array = new Array();
       public var teamb:Array = new Array();
       
        public function FlashTest() {
            
            addActor(new Actor(), 0);
            addActor(new Actor(), 0);
            addActor(new Actor(), 0);
            addActor(new Actor(), 1);
            addActor(new Actor(), 1);
            
             sortTeam(teama, 50, 90);
             sortTeam(teamb, 50, 250);
            
            
            stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
        
        public function addActor(a:Actor, team:int):void
        {
            addChild(a);
            a.team = team;
            if (team == 0) { teama.push(a);}
            else { teamb.push(a); }
        }//addactor
        
        public function sortTeam(vec:Array, tx:Number, ty:Number):void
        {
            var a:Actor;
            var i:int;
            var num:int;
            
            num = vec.length;
            
            for (i = 0; i < num; i++)
            {
                a = vec[i];
                a.x = tx;
                a.y = ty;
                tx += 64;
            }//nexti
        }//sortteam
        
        public var prevy:Number = 0;
        public var cura:Actor;
        public var cur:int = 0;
        public var ita:int = 0;
        public var itb:int = 0;
        
        public function reset():void
        {}//reset
        
        //attack one with most hp
        public function getTarget(vec:Array):Actor
        {
            var sel:Actor;
            var a:Actor;
            var i:int;
            var num:int;
            num = vec.length;
            
            for (i =0; i < num; i++)
            {
                a = vec[i];
                if (a.dead) {continue;}
                
                if (sel == null || sel.hp < a.hp)
                {
                sel = a;
                }
            }//nexti
                
            return sel;
        }//gettarget
        
        public var wait:int = 0;
        public var state:int = 0;
        
        public function onEnter(e:Event):void
        {
            wait -= 1;
            if (wait > 0) { return;}
            wait = 8;
            
            
             if (cura != null)
            {
             cura.y = prevy;
             cura = null;   
            }//endif
            
            if (state == 1) { state= 0; return;}
            
            if (state == 0)
            {
            var numa:int; 
            var numb:int; 
            var a:Actor;
            var b:Actor;
            var k:int;
            
            numa = teama.length;
            numb = teamb.length;
            
            k = 0;
            
            if (cur == 0) 
            { 
             for (k = 0; k < numa; k++)
             {
              a = teama[ita];
              ita += 1;
              if (ita >= numa) {ita = 0;}
              if (a.dead == false) { break; }
             }//nextk
             if (a.dead) { reset(); return;} 
             b = getTarget(teamb); 
            }
            else
            {
             for (k = 0; k < numb; k++)
             {
              a = teamb[itb];
              itb +=1;
              if (itb >= numb) {itb = 0;} 
              if (a.dead == false) { break;}
             }//nextk  
             if (a.dead) { reset(); return; }
             b = getTarget(teama);
            }//endif
            
            
           
            
           cura = a;
           prevy = a.y;
           if (cur == 0)
           { a.y += 32;}
           else { a.y -= 32; }
            
            
            b.damage(1);
            //b.hp -= 1;
            
            //if (b.hp <= 0) { b.dead= true;}
            
            cur = 1 - cur;
            state = 1;
            }
            
            
        }//update
        
        
    }//classend
    
    
}
import flash.text.TextField;
import flash.display.Sprite;

internal class Actor extends Sprite
{
    
    public var deb:TextField;
    
    public var hp:Number = 0;
    public var team:int = 0;
    public var dead:Boolean = false;
    
    public function Actor()
    {
        graphics.clear();
        graphics.lineStyle(2,0);
        graphics.drawCircle(0,0,16);
        
        deb = new TextField();
        addChild(deb);
        
        hp = 10;
        updateInfo();
    }//ctor
    
    public function damage(dmg:Number):void
    {
        hp -= dmg;
        if (hp <= 0) { dead= true;}
        updateInfo();
    }//damage
    
    public function updateInfo():void
    {
        deb.text = "HP: " + hp;
    }//updateinfo
    
    
    
    
    
}//classend