[common] added Dota game type
This commit is contained in:
@@ -19,9 +19,9 @@
|
||||
"@style": "button"
|
||||
},
|
||||
{
|
||||
"id": "start_lan",
|
||||
"id": "dota",
|
||||
"@type": "haxework.gui.ButtonView",
|
||||
"text": "Multiplayer",
|
||||
"text": "DotA",
|
||||
"@style": "button"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package ru.m.tankz;
|
||||
|
||||
import ru.m.tankz.game.ClassicGame;
|
||||
import ru.m.tankz.game.DotaGame;
|
||||
import ru.m.tankz.game.Game;
|
||||
import flash.ui.Keyboard;
|
||||
import flash.events.KeyboardEvent;
|
||||
@@ -76,6 +77,7 @@ class Client implements IConnectionHandler {
|
||||
});
|
||||
|
||||
Provider.setFactory(Game, ClassicGame, ClassicGame.TYPE);
|
||||
Provider.setFactory(Game, DotaGame, DotaGame.TYPE);
|
||||
}
|
||||
|
||||
public function onPress(view:ButtonView):Void {
|
||||
|
||||
@@ -113,6 +113,14 @@ class TankItem extends RenderItem<Tank> {
|
||||
var group = value.config.group;
|
||||
var index = value.playerId.index;
|
||||
if (group == 'human') group = 'player';
|
||||
if (group == 'radiant') {
|
||||
group = 'player';
|
||||
index = 0;
|
||||
}
|
||||
if (group == 'dire') {
|
||||
group = 'player';
|
||||
index = 1;
|
||||
}
|
||||
if (group == 'bot') index = 0;
|
||||
return 'resources/images/tank/${group}/tank_${group.charAt(0)}${value.config.type}_${index}-0.png';
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package ru.m.tankz.view.frames;
|
||||
|
||||
import ru.m.tankz.game.Game;
|
||||
import ru.m.tankz.game.GameState;
|
||||
import ru.m.tankz.game.ClassicGame;
|
||||
import ru.m.tankz.game.DotaGame;
|
||||
import haxework.gui.frame.IFrameSwitcher;
|
||||
import haxework.provider.Provider;
|
||||
import haxework.gui.ButtonView;
|
||||
@@ -9,27 +11,43 @@ import haxework.gui.ViewBuilder;
|
||||
import haxework.gui.VGroupView;
|
||||
|
||||
|
||||
interface StartFrameLayout {
|
||||
var start_1p(default, null):ButtonView;
|
||||
var start_2p(default, null):ButtonView;
|
||||
var dota(default, null):ButtonView;
|
||||
}
|
||||
|
||||
|
||||
@:template("layout/frames/start.json", "layout/styles.json")
|
||||
class StartFrame extends VGroupView implements ViewBuilder {
|
||||
class StartFrame extends VGroupView implements ViewBuilder implements StartFrameLayout {
|
||||
|
||||
public static inline var ID = "start";
|
||||
|
||||
public function init() {
|
||||
start_1p.onPress = this;
|
||||
start_2p.onPress = this;
|
||||
dota.onPress = this;
|
||||
}
|
||||
|
||||
public function onPress(view:ButtonView):Void {
|
||||
switch (view.id) {
|
||||
case 'start_1p':
|
||||
startGame(1);
|
||||
startGame(ClassicGame.TYPE, 1);
|
||||
case 'start_2p':
|
||||
startGame(2);
|
||||
startGame(ClassicGame.TYPE, 2);
|
||||
case 'dota':
|
||||
startGame(DotaGame.TYPE, 2);
|
||||
}
|
||||
}
|
||||
|
||||
private function startGame(humans:Int):Void {
|
||||
Provider.set(GameState, ClassicGame.buildState(0, humans));
|
||||
Provider.get(IFrameSwitcher).change(LevelFrame.ID);
|
||||
private function startGame(type:GameType, humans:Int):Void {
|
||||
switch (type) {
|
||||
case ClassicGame.TYPE:
|
||||
Provider.set(GameState, ClassicGame.buildState(0, humans));
|
||||
Provider.get(IFrameSwitcher).change(LevelFrame.ID);
|
||||
case DotaGame.TYPE:
|
||||
Provider.set(GameState, DotaGame.buildState(0, humans));
|
||||
Provider.get(IFrameSwitcher).change(GameFrame.ID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
134
src/client/resources/dota/config.yaml
Normal file
134
src/client/resources/dota/config.yaml
Normal file
@@ -0,0 +1,134 @@
|
||||
levels: 36
|
||||
|
||||
map:
|
||||
cellWidth: 22
|
||||
cellHeight: 22
|
||||
gridWidth: 40
|
||||
gridHeight: 30
|
||||
|
||||
bricks:
|
||||
# border
|
||||
- type: -1
|
||||
layer: 2
|
||||
armor: -1
|
||||
# none
|
||||
- type: 0
|
||||
layer: 0
|
||||
armor: 0
|
||||
# ace
|
||||
- type: 1
|
||||
layer: 0
|
||||
armor: 0
|
||||
# bush
|
||||
- type: 2
|
||||
layer: 3
|
||||
armor: 0
|
||||
# water
|
||||
- type: 3
|
||||
layer: 1
|
||||
armor: 0
|
||||
# armor
|
||||
- type: 4
|
||||
layer: 2
|
||||
armor: 2
|
||||
# brick
|
||||
- type: 5
|
||||
layer: 2
|
||||
armor: 1
|
||||
|
||||
teams:
|
||||
- id: radiant
|
||||
spawnInterval: 0
|
||||
points:
|
||||
- type: eagle
|
||||
index: -1
|
||||
x: 0
|
||||
y: 28
|
||||
direction: right
|
||||
- type: tank
|
||||
index: 0
|
||||
x: 0
|
||||
y: 0
|
||||
direction: top
|
||||
- type: tank
|
||||
index: 1
|
||||
x: 6
|
||||
y: 10
|
||||
direction: top
|
||||
- type: tank
|
||||
index: 2
|
||||
x: 6
|
||||
y: 16
|
||||
direction: top
|
||||
- type: tank
|
||||
index: 3
|
||||
x: 6
|
||||
y: 22
|
||||
direction: top
|
||||
- type: tank
|
||||
index: 4
|
||||
x: 10
|
||||
y: 28
|
||||
direction: top
|
||||
- id: dire
|
||||
spawnInterval: 0
|
||||
points:
|
||||
- type: eagle
|
||||
index: -1
|
||||
x: 38
|
||||
y: 0
|
||||
direction: right
|
||||
- type: tank
|
||||
index: 0
|
||||
x: 38
|
||||
y: 28
|
||||
direction: bottom
|
||||
- type: tank
|
||||
index: 1
|
||||
x: 32
|
||||
y: 18
|
||||
direction: bottom
|
||||
- type: tank
|
||||
index: 2
|
||||
x: 32
|
||||
y: 12
|
||||
direction: bottom
|
||||
- type: tank
|
||||
index: 3
|
||||
x: 32
|
||||
y: 6
|
||||
direction: bottom
|
||||
- type: tank
|
||||
index: 4
|
||||
x: 28
|
||||
y: 0
|
||||
direction: bottom
|
||||
|
||||
|
||||
bullet: &bullet
|
||||
width: 12
|
||||
height: 12
|
||||
speed: 0
|
||||
piercing: 1
|
||||
|
||||
tanks:
|
||||
radiant: &tanks
|
||||
- type: 0
|
||||
width: 36
|
||||
height: 36
|
||||
speed: 2.5
|
||||
bullet:
|
||||
<<: *bullet
|
||||
speed: 8.0
|
||||
bullets: 1
|
||||
|
||||
- type: 1
|
||||
width: 40
|
||||
height: 36
|
||||
speed: 3.0
|
||||
bullet:
|
||||
<<: *bullet
|
||||
speed: 8.5
|
||||
bullets: 1
|
||||
dire:
|
||||
- <<: *tanks
|
||||
30
src/client/resources/dota/levels/level000.txt
Normal file
30
src/client/resources/dota/levels/level000.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
0000000000000000000000000000000000005500
|
||||
0000000000000000000000000000000000005500
|
||||
0000000000000000000000000000000000005555
|
||||
0000000000000000000000000000000000005555
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000
|
||||
5555000000000000000000000000000000000000
|
||||
5555000000000000000000000000000000000000
|
||||
0055000000000000000000000000000000000000
|
||||
0055000000000000000000000000000000000000
|
||||
Reference in New Issue
Block a user