[client] add ResultFrame

This commit is contained in:
2019-03-15 16:15:47 +03:00
parent f09e70c5f8
commit c67385576e
10 changed files with 142 additions and 8 deletions

View File

@@ -106,7 +106,7 @@ class BotControl extends Control {
// ToDo:
if (handler == null || tank == null) return;
var eagle:Eagle = BotHelper.findEagle(playerId.team, handler);
if (eagle != null && Math.random() > 0.25) {
if (eagle != null && Math.random() > 0.5) {
action(TankAction.MOVE(BotHelper.getDirectionTo(tank, eagle)));
} else {
action(TankAction.MOVE(BotHelper.randomDirection()));

View File

@@ -117,6 +117,8 @@ class Config {
private var tankMap:Map<TankType, TankConfig>;
private var presetsMap:Map<PresetId, GamePreset>;
private var bonusMap:Map<BonusType, BonusConfig>;
private var teamsMap:Map<TeamId, TeamConfig>;
private var playersMap:Map<String, PlayerConfig>;
public function new(
type:String,
@@ -158,6 +160,16 @@ class Config {
for (item in bonuses) {
bonusMap.set(item.type, item);
}
teamsMap = new Map();
playersMap = new Map();
for (preset in presets) {
for (team in preset.teams) {
teamsMap.set(team.id, team);
for (player in team.players) {
playersMap.set(new PlayerId(team.id, player.index), player);
}
}
}
}
public function getBrick(type:BrickType):BrickConfig {
@@ -179,4 +191,24 @@ class Config {
public function getBonus(type:BonusType):BonusConfig {
return bonusMap.get(type);
}
public function getTeam(team:TeamId):TeamConfig {
return teamsMap.get(team);
}
public function getPlayer(playerId:PlayerId):PlayerConfig {
return playersMap.get(playerId);
}
public function getColor(playerId:PlayerId):Color {
var player = getPlayer(playerId);
if (player != null && !player.color.zero) {
return player.color;
}
var team = getTeam(playerId.team);
if (team != null) {
return team.color;
}
return -1;
}
}

View File

@@ -34,6 +34,7 @@ class GameState {
public var level:Int;
public var players:Array<PlayerState>;
public var preset(get, null):GamePreset;
public var config(get, null):Config;
@:provide private var configBundle:IConfigBundle;
@@ -49,4 +50,8 @@ class GameState {
var preset = config.getPreset(presetId);
return preset;
}
private function get_config():Config {
return configBundle.get(type);
}
}