[rework] add base game class

This commit is contained in:
2019-12-26 13:58:02 +03:00
parent e353d97415
commit ee846f6219
5 changed files with 72 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
package ru.m.tankz2;
typedef PlayerId = Int;
typedef TeamId = String;

View File

@@ -0,0 +1,27 @@
package ru.m.tankz2.config;
typedef MapConfig = {
var grid:{
width:Int,
height:Int,
};
}
typedef TankConfig = {
var width:Float;
var height:Float;
var speed:Float;
}
typedef PlayerConfig = {
}
typedef TeamConfig = {
var players:Array<PlayerConfig>;
}
typedef Config = {
var map:MapConfig;
var teams:Array<TeamConfig>;
}

View File

@@ -0,0 +1,11 @@
package ru.m.tankz2.game;
import ru.m.tankz2.state.State;
class Game {
public var state(default, null):State;
public function new(state:State) {
this.state = state;
}
}

View File

@@ -0,0 +1,17 @@
package ru.m.tankz2.game;
import ru.m.tankz2.config.Config;
import ru.m.tankz2.Id;
import ru.m.tankz2.state.State;
class Team {
public var id(default, default):TeamId;
public var config(default, default):TeamConfig;
public var state(default, default):TeamState;
public function new(id:TeamId, config:TeamConfig, state:TeamState) {
this.id = id;
this.config = config;
this.state = state;
}
}

View File

@@ -0,0 +1,13 @@
package ru.m.tankz2.state;
import ru.m.tankz2.config.Config;
typedef TeamState = {
var alive:Bool;
var life:Null<Int>;
}
typedef State = {
var config:Config;
var teams:Array<TeamState>;
}