flash on 2012-9-28
♥0 |
Line 150 |
Modified 2012-09-28 21:41:41 |
MIT License
archived:2017-03-30 22:58:54
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