[client] added AniamteBundle

This commit is contained in:
2018-02-16 17:57:43 +03:00
parent 1ae84cf5a8
commit 52a4e44e47
10 changed files with 126 additions and 88 deletions

View File

@@ -8,10 +8,12 @@ class Eagle extends Entity {
public var team(default, null):TeamId;
public var death(default, default):Bool;
public var protect(default, null):Modificator;
public function new(team:TeamId) {
super(new Rectangle(0, 0, 44, 44));
super(new Rectangle(0, 0, 44, 44)); // ToDo: hardcode size
this.team = team;
this.death = false;
this.protect = new Modificator();
}
}

View File

@@ -57,7 +57,9 @@ class CollisionProcessor implements EngineListener {
engine.destroy(bullet);
case [EntityType.BULLET(bullet), EntityType.EAGLE(eagle)]:
engine.destroy(bullet);
eagle.death = true;
if (!eagle.protect.active) {
eagle.death = true;
}
case _:
}
}

View File

@@ -113,6 +113,7 @@ class Game implements EngineListener {
var eaglePoint = team.spawner.getPoint('eagle');
if (eaglePoint != null) {
var eagle = new Eagle(team.id);
team.eagleId = eagle.id;
applyPoint(eagle, eaglePoint);
engine.spawn(eagle);
}
@@ -249,6 +250,10 @@ class Game implements EngineListener {
}
case 'shovel':
// ToDo: protect eagle/area
var team:Team = teams[tank.playerId.team];
if (team.eagleId > 0) {
cast(engine.entities[team.eagleId], Eagle).protect.on(10);
}
case _:
engine.destroy(tank); // :-D
}

View File

@@ -12,6 +12,7 @@ class Team {
public var players(default, null):Map<Int, Player>;
public var life(default, default):Int;
public var isAlive(get, null):Bool;
public var eagleId(default, default):Int;
public function new(config:TeamConfig, points:Array<SpawnPoint>) {
this.id = config.id;