Browse code

add new tower

devnewton authored on 05/07/2015 20:35:06
Showing 12 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,42 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<map version="1.0" orientation="isometric" renderorder="right-down" width="15" height="15" tilewidth="88" tileheight="43" nextobjectid="1">
3
+ <tileset firstgid="1" source="../master.tsx"/>
4
+ <layer name="plate_n_ground" width="15" height="15">
5
+  <data encoding="csv">
6
+10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,
7
+5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,
8
+10,5,5,5,10,5,10,5,10,5,10,5,10,5,10,
9
+5,10,5,5,5,10,5,10,5,10,5,10,5,10,5,
10
+10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,
11
+5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,
12
+10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,
13
+5,11,5,10,5,10,5,5,5,10,5,10,5,10,5,
14
+10,5,10,5,10,5,10,5,5,5,10,5,10,5,10,
15
+5,10,5,10,5,10,5,10,5,5,5,10,5,10,5,
16
+10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,
17
+5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,
18
+10,5,10,5,6,5,10,5,10,5,10,5,10,5,10,
19
+5,10,5,10,5,10,5,16,5,10,5,10,5,10,5,
20
+10,5,10,5,10,5,10,5,10,5,10,5,10,5,10
21
+</data>
22
+ </layer>
23
+ <layer name="game" width="15" height="15">
24
+  <data encoding="csv">
25
+55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,
26
+55,0,0,0,0,55,55,55,55,55,0,0,0,0,55,
27
+55,0,80,9,0,55,55,55,55,55,0,29,0,0,55,
28
+55,0,75,0,0,55,12,24,55,55,0,0,0,0,55,
29
+55,0,0,0,0,143,0,1,55,55,55,143,55,0,55,
30
+55,55,0,0,55,55,55,0,55,55,55,0,55,0,55,
31
+55,55,0,0,55,55,55,0,55,55,55,141,55,0,55,
32
+55,0,0,0,0,0,0,145,0,0,0,0,0,0,55,
33
+55,55,0,55,0,55,55,0,55,55,55,55,0,55,55,
34
+55,55,145,55,0,0,0,0,4,0,0,55,0,55,55,
35
+55,55,0,67,141,55,55,0,55,0,55,55,0,55,55,
36
+55,0,0,77,0,69,55,0,0,0,0,0,0,55,55,
37
+55,0,0,77,0,78,55,0,78,0,0,0,0,55,55,
38
+55,55,55,68,79,66,55,0,78,55,55,55,55,55,55,
39
+55,55,55,55,55,55,55,79,66,55,55,55,55,55,55
40
+</data>
41
+ </layer>
42
+</map>
0 43
deleted file mode 100644
... ...
@@ -1,42 +0,0 @@
1
-<?xml version="1.0" encoding="UTF-8"?>
2
-<map version="1.0" orientation="isometric" renderorder="right-down" width="15" height="15" tilewidth="88" tileheight="43" nextobjectid="1">
3
- <tileset firstgid="1" source="../master.tsx"/>
4
- <layer name="plate_n_ground" width="15" height="15">
5
-  <data encoding="csv">
6
-10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,
7
-5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,
8
-10,5,5,5,10,5,10,5,10,5,10,5,10,5,10,
9
-5,10,5,5,5,10,5,10,5,10,5,10,5,10,5,
10
-10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,
11
-5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,
12
-10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,
13
-5,11,5,10,5,10,5,5,5,10,5,10,5,10,5,
14
-10,5,10,5,10,5,10,5,5,5,10,5,10,5,10,
15
-5,10,5,10,5,10,5,10,5,5,5,10,5,10,5,
16
-10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,
17
-5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,
18
-10,5,10,5,6,5,10,5,10,5,10,5,10,5,10,
19
-5,10,5,10,5,10,5,16,5,10,5,10,5,10,5,
20
-10,5,10,5,10,5,10,5,10,5,10,5,10,5,10
21
-</data>
22
- </layer>
23
- <layer name="game" width="15" height="15">
24
-  <data encoding="csv">
25
-55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,
26
-55,0,0,0,0,55,55,55,55,55,0,0,0,0,55,
27
-55,0,80,9,0,55,55,55,55,55,0,29,0,0,55,
28
-55,0,75,0,0,55,12,24,55,55,0,0,0,0,55,
29
-55,0,0,0,0,143,0,1,55,55,55,143,55,0,55,
30
-55,55,0,0,55,55,55,0,55,55,55,0,55,0,55,
31
-55,55,0,0,55,55,55,0,55,55,55,141,55,0,55,
32
-55,0,0,0,0,0,0,145,0,0,0,0,0,0,55,
33
-55,55,0,55,0,55,55,0,55,55,55,55,0,55,55,
34
-55,55,145,55,0,0,0,0,4,0,0,55,0,55,55,
35
-55,55,0,67,141,55,55,0,55,0,55,55,0,55,55,
36
-55,0,0,77,0,69,55,0,0,0,0,0,0,55,55,
37
-55,0,0,77,0,78,55,0,78,0,0,0,0,55,55,
38
-55,55,55,68,79,66,55,0,78,55,55,55,55,55,55,
39
-55,55,55,55,55,55,55,79,66,55,55,55,55,55,55
40
-</data>
41
- </layer>
42
-</map>
43 0
deleted file mode 100644
44 1
Binary files a/assets/tour.png and /dev/null differ
45 2
deleted file mode 100644
46 3
Binary files a/assets/tour2(temp).png and /dev/null differ
47 4
deleted file mode 100644
48 5
Binary files a/assets/tour_t2-unlocked.png and /dev/null differ
49 6
new file mode 100644
50 7
Binary files /dev/null and b/assets/tower1.png differ
51 8
new file mode 100644
52 9
Binary files /dev/null and b/assets/tower2.png differ
... ...
@@ -35,108 +35,132 @@ import im.bci.jnuit.NuitTranslator;
35 35
 @Singleton
36 36
 public class NedNuitTranslator extends NuitTranslator {
37 37
 
38
-    @Inject
39
-    public NedNuitTranslator() {
40
-        addEnglish();
41
-        addFrench();
42
-        addLevelNumbers();
43
-    }
44
-
45
-    private void addLevelNumbers() {
46
-        for (NuitLocale locale : NuitLocale.values()) {
47
-            for (int i = 0; i <= 30; ++i) {
48
-                String index = String.valueOf(i);
49
-                if (i < 10) {
50
-                    index = "0" + index;
51
-                }
52
-                addTranslation(locale, "level." + index + ".name", index);
53
-            }
54
-        }
55
-    }
56
-
57
-    private void addEnglish() {
58
-        addTranslation(NuitLocale.ENGLISH, "main.menu.button.start", "START");
59
-        addTranslation(NuitLocale.ENGLISH, "main.menu.button.resume", "RESUME");
60
-        addTranslation(NuitLocale.ENGLISH, "main.menu.button.options", "OPTIONS");
61
-        addTranslation(NuitLocale.ENGLISH, "main.menu.button.extras", "EXTRAS");
62
-        addTranslation(NuitLocale.ENGLISH, "main.menu.button.quit", "QUIT");
63
-        
64
-        addTranslation(NuitLocale.ENGLISH, "options.menu.button.video", "VIDEO");
65
-        addTranslation(NuitLocale.ENGLISH, "options.menu.button.audio", "AUDIO");
66
-        addTranslation(NuitLocale.ENGLISH, "options.menu.button.game.controls", "GAME CONTROLS");
67
-        addTranslation(NuitLocale.ENGLISH, "options.menu.button.menu.controls", "MENU CONTROLS");
68
-        addTranslation(NuitLocale.ENGLISH, "options.menu.button.back", "BACK");
69
-        
70
-        addTranslation(NuitLocale.ENGLISH, "extras.menu.button.cutscenes", "CUTSCENES");
71
-        addTranslation(NuitLocale.ENGLISH, "extras.menu.button.artwork", "ARTWORK");
72
-        addTranslation(NuitLocale.ENGLISH, "extras.menu.button.back", "BACK");
73
-        
74
-        addTranslation(NuitLocale.ENGLISH, "cutscenes.menu.button.intro", "INTRODUCTION");
75
-        addTranslation(NuitLocale.ENGLISH, "cutscenes.menu.button.credits", "CREDITS");
76
-        addTranslation(NuitLocale.ENGLISH, "cutscenes.menu.button.back", "BACK");
77
-                
78
-        addTranslation(NuitLocale.ENGLISH, "action.up", "Up");
79
-        addTranslation(NuitLocale.ENGLISH, "action.down", "Down");
80
-        addTranslation(NuitLocale.ENGLISH, "action.left", "Left");
81
-        addTranslation(NuitLocale.ENGLISH, "action.right", "Right");
82
-        addTranslation(NuitLocale.ENGLISH, "action.rewind", "Rewind");
83
-        addTranslation(NuitLocale.ENGLISH, "action.menu", "Menu");
84
-
85
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.01", "");
86
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.02", "Ned pulled round in a world unknown to him. ");
87
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.03", "");
88
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.04", "He began to explore.");
89
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.05", "Doing so, he found out what appeared to be a residential complex.");
90
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.06", "");
91
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.07", "Individuals were not slow to show. ");
92
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.08", "Without further explanation, the indigenous creatures urged him unceremoniously into some tower.");
93
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.09", "");
94
-        addTranslation(NuitLocale.ENGLISH, "dialog.intro.10", "Thus, began the adventures of Ned among the spirimonsters.");
95
-        
96
-        addTranslation(NuitLocale.ENGLISH, "dialog.credits.devnewton", "Main developer - http://devnewton.bci.im");
97
-        addTranslation(NuitLocale.ENGLISH, "dialog.credits.natir", "Natir : The man in the dressing gown");
98
-    }
99
-
100
-    private void addFrench() {
101
-        addTranslation(NuitLocale.FRENCH, "main.menu.button.start", "DEMARRER");
102
-        addTranslation(NuitLocale.FRENCH, "main.menu.button.resume", "CONTINUER");
103
-        addTranslation(NuitLocale.FRENCH, "main.menu.button.options", "OPTIONS");
104
-        addTranslation(NuitLocale.FRENCH, "main.menu.button.extras", "EXTRAS");
105
-        addTranslation(NuitLocale.FRENCH, "main.menu.button.quit", "QUITTER");
106
-        
107
-        addTranslation(NuitLocale.FRENCH, "options.menu.button.video", "VIDEO");
108
-        addTranslation(NuitLocale.FRENCH, "options.menu.button.audio", "AUDIO");
109
-        addTranslation(NuitLocale.FRENCH, "options.menu.button.game.controls", "CONTROLES DU JEU");
110
-        addTranslation(NuitLocale.FRENCH, "options.menu.button.menu.controls", "CONTROLES DES MENUS");
111
-        addTranslation(NuitLocale.FRENCH, "options.menu.button.back", "RETOUR");
112
-        
113
-        addTranslation(NuitLocale.FRENCH, "extras.menu.button.cutscenes", "CINEMATIQUES");
114
-        addTranslation(NuitLocale.FRENCH, "extras.menu.button.artwork", "ILLUSTRATIONS");
115
-        addTranslation(NuitLocale.FRENCH, "extras.menu.button.back", "RETOUR");
116
-        
117
-        addTranslation(NuitLocale.FRENCH, "cutscenes.menu.button.intro", "INTRODUCTION");
118
-        addTranslation(NuitLocale.FRENCH, "cutscenes.menu.button.credits", "CREDITS");
119
-        addTranslation(NuitLocale.FRENCH, "cutscenes.menu.button.back", "RETOUR");
120
-        
121
-        addTranslation(NuitLocale.FRENCH, "action.up", "Haut");
122
-        addTranslation(NuitLocale.FRENCH, "action.down", "Bas");
123
-        addTranslation(NuitLocale.FRENCH, "action.left", "Gauche");
124
-        addTranslation(NuitLocale.FRENCH, "action.right", "Droite");
125
-        addTranslation(NuitLocale.FRENCH, "action.rewind", "Rembobine");
126
-        addTranslation(NuitLocale.FRENCH, "action.menu", "Menu");
127
-
128
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.01", "");
129
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.02", "Ned reprit connaissance dans un monde qui lui était inconnu.");
130
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.03", "");
131
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.04", "Il entreprit de l'explorer.");
132
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.05", "Ce faisant il découvrit ce qui semblait être un complexe résidentiel.");
133
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.06", "");
134
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.07", "Des individus ne tardèrent pas à se montrer.");
135
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.08", "Sans plus d'explication, les créatures indigènes le poussèrent dans la tour sans ménagement.");
136
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.09", "");
137
-        addTranslation(NuitLocale.FRENCH, "dialog.intro.10", "Ainsi débutèrent les aventures de Ned chez les spirimonstres.");
138
-        
139
-        addTranslation(NuitLocale.FRENCH, "dialog.credits.devnewton", "Développeur depuis 1742 - http://devnewton.bci.im");
140
-        addTranslation(NuitLocale.FRENCH, "dialog.credits.natir", "Natir : L'homme a la robe de chambre");
141
-    }
38
+	@Inject
39
+	public NedNuitTranslator() {
40
+		addEnglish();
41
+		addFrench();
42
+		addLevelNumbers();
43
+	}
44
+
45
+	private void addLevelNumbers() {
46
+		for (NuitLocale locale : NuitLocale.values()) {
47
+			addTranslation(locale, "tower.01.level.01.name", "01");
48
+			addTranslation(locale, "tower.01.level.02.name", "02");
49
+			addTranslation(locale, "tower.01.level.03.name", "03");
50
+			addTranslation(locale, "tower.01.level.04.name", "04");
51
+			addTranslation(locale, "tower.01.level.05.name", "05");
52
+			addTranslation(locale, "tower.01.level.06.name", "06");
53
+			addTranslation(locale, "tower.01.level.07.name", "07");
54
+			addTranslation(locale, "tower.01.level.08.name", "08");
55
+			addTranslation(locale, "tower.01.level.09.name", "09");
56
+			addTranslation(locale, "tower.01.level.10.name", "10");
57
+			
58
+			addTranslation(locale, "tower.02.level.01.name", "01");
59
+			addTranslation(locale, "tower.02.level.02.name", "02");
60
+			addTranslation(locale, "tower.02.level.03.name", "03");
61
+			addTranslation(locale, "tower.02.level.04.name", "04");
62
+			addTranslation(locale, "tower.02.level.05.name", "05");
63
+			addTranslation(locale, "tower.02.level.06.name", "06");
64
+			addTranslation(locale, "tower.02.level.07.name", "07");
65
+			addTranslation(locale, "tower.02.level.08.name", "08");
66
+			addTranslation(locale, "tower.02.level.09.name", "09");
67
+			addTranslation(locale, "tower.02.level.10.name", "10");
68
+			addTranslation(locale, "tower.02.level.11.name", "11");
69
+			addTranslation(locale, "tower.02.level.12.name", "12");
70
+			addTranslation(locale, "tower.02.level.13.name", "13");
71
+			addTranslation(locale, "tower.02.level.14.name", "14");
72
+			addTranslation(locale, "tower.02.level.29.name", "29");
73
+			addTranslation(locale, "tower.02.level.30.name", "30");
74
+		}
75
+	}
76
+
77
+	private void addEnglish() {
78
+		addTranslation(NuitLocale.ENGLISH, "main.menu.button.start", "START");
79
+		addTranslation(NuitLocale.ENGLISH, "main.menu.button.resume", "RESUME");
80
+		addTranslation(NuitLocale.ENGLISH, "main.menu.button.options", "OPTIONS");
81
+		addTranslation(NuitLocale.ENGLISH, "main.menu.button.extras", "EXTRAS");
82
+		addTranslation(NuitLocale.ENGLISH, "main.menu.button.quit", "QUIT");
83
+
84
+		addTranslation(NuitLocale.ENGLISH, "options.menu.button.video", "VIDEO");
85
+		addTranslation(NuitLocale.ENGLISH, "options.menu.button.audio", "AUDIO");
86
+		addTranslation(NuitLocale.ENGLISH, "options.menu.button.game.controls", "GAME CONTROLS");
87
+		addTranslation(NuitLocale.ENGLISH, "options.menu.button.menu.controls", "MENU CONTROLS");
88
+		addTranslation(NuitLocale.ENGLISH, "options.menu.button.back", "BACK");
89
+
90
+		addTranslation(NuitLocale.ENGLISH, "tower.01.levelselector.button.toggle.tower", "TOWER");
91
+
92
+		addTranslation(NuitLocale.ENGLISH, "extras.menu.button.cutscenes", "CUTSCENES");
93
+		addTranslation(NuitLocale.ENGLISH, "extras.menu.button.artwork", "ARTWORK");
94
+		addTranslation(NuitLocale.ENGLISH, "extras.menu.button.back", "BACK");
95
+
96
+		addTranslation(NuitLocale.ENGLISH, "cutscenes.menu.button.intro", "INTRODUCTION");
97
+		addTranslation(NuitLocale.ENGLISH, "cutscenes.menu.button.credits", "CREDITS");
98
+		addTranslation(NuitLocale.ENGLISH, "cutscenes.menu.button.back", "BACK");
99
+
100
+		addTranslation(NuitLocale.ENGLISH, "action.up", "Up");
101
+		addTranslation(NuitLocale.ENGLISH, "action.down", "Down");
102
+		addTranslation(NuitLocale.ENGLISH, "action.left", "Left");
103
+		addTranslation(NuitLocale.ENGLISH, "action.right", "Right");
104
+		addTranslation(NuitLocale.ENGLISH, "action.rewind", "Rewind");
105
+		addTranslation(NuitLocale.ENGLISH, "action.menu", "Menu");
106
+
107
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.01", "");
108
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.02", "Ned pulled round in a world unknown to him. ");
109
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.03", "");
110
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.04", "He began to explore.");
111
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.05", "Doing so, he found out what appeared to be a residential complex.");
112
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.06", "");
113
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.07", "Individuals were not slow to show. ");
114
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.08", "Without further explanation, the indigenous creatures urged him unceremoniously into some tower.");
115
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.09", "");
116
+		addTranslation(NuitLocale.ENGLISH, "dialog.intro.10", "Thus, began the adventures of Ned among the spirimonsters.");
117
+
118
+		addTranslation(NuitLocale.ENGLISH, "dialog.credits.devnewton", "Main developer - http://devnewton.bci.im");
119
+		addTranslation(NuitLocale.ENGLISH, "dialog.credits.natir", "Natir : The man in the dressing gown");
120
+	}
121
+
122
+	private void addFrench() {
123
+		addTranslation(NuitLocale.FRENCH, "main.menu.button.start", "DEMARRER");
124
+		addTranslation(NuitLocale.FRENCH, "main.menu.button.resume", "CONTINUER");
125
+		addTranslation(NuitLocale.FRENCH, "main.menu.button.options", "OPTIONS");
126
+		addTranslation(NuitLocale.FRENCH, "main.menu.button.extras", "EXTRAS");
127
+		addTranslation(NuitLocale.FRENCH, "main.menu.button.quit", "QUITTER");
128
+
129
+		addTranslation(NuitLocale.FRENCH, "options.menu.button.video", "VIDEO");
130
+		addTranslation(NuitLocale.FRENCH, "options.menu.button.audio", "AUDIO");
131
+		addTranslation(NuitLocale.FRENCH, "options.menu.button.game.controls", "CONTROLES DU JEU");
132
+		addTranslation(NuitLocale.FRENCH, "options.menu.button.menu.controls", "CONTROLES DES MENUS");
133
+		addTranslation(NuitLocale.FRENCH, "options.menu.button.back", "RETOUR");
134
+
135
+		addTranslation(NuitLocale.FRENCH, "levelselector.button.toggle.tower", "TOUR");
136
+
137
+		addTranslation(NuitLocale.FRENCH, "extras.menu.button.cutscenes", "CINEMATIQUES");
138
+		addTranslation(NuitLocale.FRENCH, "extras.menu.button.artwork", "ILLUSTRATIONS");
139
+		addTranslation(NuitLocale.FRENCH, "extras.menu.button.back", "RETOUR");
140
+
141
+		addTranslation(NuitLocale.FRENCH, "cutscenes.menu.button.intro", "INTRODUCTION");
142
+		addTranslation(NuitLocale.FRENCH, "cutscenes.menu.button.credits", "CREDITS");
143
+		addTranslation(NuitLocale.FRENCH, "cutscenes.menu.button.back", "RETOUR");
144
+
145
+		addTranslation(NuitLocale.FRENCH, "action.up", "Haut");
146
+		addTranslation(NuitLocale.FRENCH, "action.down", "Bas");
147
+		addTranslation(NuitLocale.FRENCH, "action.left", "Gauche");
148
+		addTranslation(NuitLocale.FRENCH, "action.right", "Droite");
149
+		addTranslation(NuitLocale.FRENCH, "action.rewind", "Rembobine");
150
+		addTranslation(NuitLocale.FRENCH, "action.menu", "Menu");
151
+
152
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.01", "");
153
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.02", "Ned reprit connaissance dans un monde qui lui était inconnu.");
154
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.03", "");
155
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.04", "Il entreprit de l'explorer.");
156
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.05", "Ce faisant il découvrit ce qui semblait être un complexe résidentiel.");
157
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.06", "");
158
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.07", "Des individus ne tardèrent pas à se montrer.");
159
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.08", "Sans plus d'explication, les créatures indigènes le poussèrent dans la tour sans ménagement.");
160
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.09", "");
161
+		addTranslation(NuitLocale.FRENCH, "dialog.intro.10", "Ainsi débutèrent les aventures de Ned chez les spirimonstres.");
162
+
163
+		addTranslation(NuitLocale.FRENCH, "dialog.credits.devnewton", "Développeur depuis 1742 - http://devnewton.bci.im");
164
+		addTranslation(NuitLocale.FRENCH, "dialog.credits.natir", "Natir : L'homme a la robe de chambre");
165
+	}
142 166
 }
143 167
new file mode 100644
... ...
@@ -0,0 +1,38 @@
1
+package org.geekygoblin.nedetlesmaki.core.components.ui;
2
+
3
+import im.bci.jnuit.NuitToolkit;
4
+import im.bci.jnuit.background.Background;
5
+import im.bci.jnuit.widgets.Button;
6
+import im.bci.jnuit.widgets.Widget;
7
+
8
+public class ButtonWithBuddyAnimatableWidget extends Button {
9
+	private Widget buddy;
10
+	private Background buddyFocusedBackground;
11
+	private Background buddyBackground;
12
+
13
+	public ButtonWithBuddyAnimatableWidget(NuitToolkit toolkit, String text) {
14
+		super(toolkit, text);
15
+	}
16
+
17
+	public void setBuddy(Widget buddy) {
18
+		this.buddy = buddy;
19
+		if (null != buddy) {
20
+			this.buddyFocusedBackground = buddy.getFocusedBackground();
21
+			this.buddyBackground = buddy.getBackground();
22
+		}
23
+	}
24
+
25
+	@Override
26
+	public void onGainFocus() {
27
+		if (null != buddy) {
28
+			buddy.setBackground(buddyFocusedBackground);
29
+		}
30
+	}
31
+
32
+	@Override
33
+	public void onLoseFocus() {
34
+		if (null != buddy) {
35
+			buddy.setBackground(buddyBackground);
36
+		}
37
+	}
38
+}
0 39
\ No newline at end of file
... ...
@@ -23,8 +23,9 @@
23 23
  */
24 24
 package org.geekygoblin.nedetlesmaki.core.components.ui;
25 25
 
26
+import java.util.ArrayList;
27
+
26 28
 import im.bci.jnuit.NuitToolkit;
27
-import im.bci.jnuit.widgets.Button;
28 29
 import im.bci.jnuit.widgets.NullWidget;
29 30
 import im.bci.jnuit.widgets.Table;
30 31
 import im.bci.jnuit.widgets.TableLayout;
... ...
@@ -45,6 +46,7 @@ import org.geekygoblin.nedetlesmaki.core.IAssets;
45 46
 import org.geekygoblin.nedetlesmaki.core.components.Triggerable;
46 47
 import org.geekygoblin.nedetlesmaki.core.constants.VirtualResolution;
47 48
 import org.geekygoblin.nedetlesmaki.core.events.IStartGameTrigger;
49
+import org.geekygoblin.nedetlesmaki.core.events.OneShotTrigger;
48 50
 import org.geekygoblin.nedetlesmaki.core.events.ShowMenuTrigger;
49 51
 
50 52
 /**
... ...
@@ -54,132 +56,244 @@ import org.geekygoblin.nedetlesmaki.core.events.ShowMenuTrigger;
54 56
 @Singleton
55 57
 public class LevelSelector extends Table {
56 58
 
57
-    private final NedGame game;
58
-    private final IAnimationCollection bulleAnimations;
59
-    private final NuitToolkit toolkit;
60
-    private final Provider<IStartGameTrigger> startGameTrigger;
61
-    private final Provider<ShowMenuTrigger> showMenuTrigger;
62
-    private final Table buttonsTable;
63
-    private NullWidget portail;
64
-    private Button backButton;
65
-    private TexturedBackground portailFocusedBackground;
66
-    private TexturedBackground portailBackground;
67
-
68
-    @Inject
69
-    public LevelSelector(NedGame game, NuitToolkit toolkit, final IAssets assets, Provider<IStartGameTrigger> startGameTrigger, Provider<ShowMenuTrigger> showMenuTrigger) {
70
-        super(toolkit);
71
-        this.game = game;
72
-        this.toolkit = toolkit;
73
-        this.startGameTrigger = startGameTrigger;
74
-        this.showMenuTrigger = showMenuTrigger;
75
-        buttonsTable = this;
76
-        buttonsTable.setX(0);
77
-        buttonsTable.setY(0);
78
-        buttonsTable.setWidth(320);
79
-        buttonsTable.setHeight(VirtualResolution.HEIGHT);
80
-        buttonsTable.defaults().expandY().align(TableLayout.CENTER);
81
-        buttonsTable.columnDefaults(0).width(80.0f).pad(20.0f);
82
-        buttonsTable.columnDefaults(1).width(80.0f).pad(20.0f);
83
-        bulleAnimations = assets.getAnimations("animation/bulle/bulle.json");
84
-        setBackground(new TexturedBackground(assets.getAnimations("tour.png").getFirst().start(PlayMode.LOOP)));
85
-        buttonsTable.setFocusedChild(addButton("level.01.name", "levels/t1/lvl01.tmx"));
86
-        addButton("level.02.name", "levels/t1/lvl02.tmx");
87
-        buttonsTable.row();
88
-        addButton("level.03.name", "levels/t1/lvl03.tmx");
89
-        addButton("level.04.name", "levels/t1/lvl04.tmx");
90
-        buttonsTable.row();
91
-        addButton("level.05.name", "levels/t1/lvl05.tmx");
92
-        addButton("level.06.name", "levels/t1/lvl06.tmx");
93
-        buttonsTable.row();
94
-        addButton("level.07.name", "levels/t1/lvl07.tmx");
95
-        addButton("level.08.name", "levels/t2/lvl01.tmx");
96
-        buttonsTable.row();
97
-        addButton("level.09.name", "levels/t2/lvl02.tmx");
98
-        addButton("level.10.name", "levels/t2/lvl03.tmx");
99
-        buttonsTable.row();
100
-        addButton("level.11.name", "levels/t2/lvl04.tmx");
101
-        addButton("level.12.name", "levels/t2/lvl05.tmx");
102
-        buttonsTable.row();
103
-        addButton("level.13.name", "levels/t2/lvlAA.tmx");
104
-        addButton("level.14.name", "levels/t2/lvlAB.tmx");
105
-        buttonsTable.row();
106
-        addButton("level.29.name", "levels/test2020.tmx");
107
-        addButton("level.30.name", "levels/test.tmx");
108
-        buttonsTable.row();
109
-
110
-        IAnimation buttonSmallBackgroundAnimation = assets.getAnimations("animation/menu_buttons/menu_buttons.json").getAnimationByName("1_normal");
111
-        IAnimation buttonSmallFocusedBackgroundAnimation = assets.getAnimations("animation/menu_buttons/menu_buttons.json").getAnimationByName("1_survol");
112
-
113
-        backButton = new Button(toolkit, "options.menu.button.back") {
114
-            @Override
115
-            public void onOK() {
116
-                LevelSelector.this.onCancel();
117
-            }
118
-        };
119
-        backButton.setFocusCursor(NullFocusCursor.INSTANCE);
120
-        backButton.setBackground(new TexturedBackground(buttonSmallBackgroundAnimation.start(PlayMode.LOOP)));
121
-        backButton.setFocusedBackground(new TexturedBackground(buttonSmallFocusedBackgroundAnimation.start(PlayMode.LOOP)));
122
-        buttonsTable.cell(backButton).colspan(2).fill();
123
-        buttonsTable.cell(new NullWidget()).expand();
124
-
125
-        portail = new NullWidget();
126
-        portailBackground = new TexturedBackground(assets.getAnimations("animation/portail/portail.json").getAnimationByName("normal").start(PlayMode.LOOP));
127
-        portailFocusedBackground = new TexturedBackground(assets.getAnimations("animation/portail/portail.json").getAnimationByName("survol").start(PlayMode.LOOP));
128
-        portail.setBackground(portailBackground);
129
-        portail.setX(526);
130
-        portail.setY(383);
131
-        portail.setWidth(131);
132
-        portail.setHeight(199);
133
-        buttonsTable.add(portail);
134
-
135
-    }
136
-
137
-    @Override
138
-    public void setFocusedChild(Widget focusedChild) {
139
-        super.setFocusedChild(focusedChild);
140
-        if (null != portail) {
141
-            if (focusedChild == backButton) {
142
-                portail.setBackground(portailFocusedBackground);
143
-            } else {
144
-                portail.setBackground(portailBackground);
145
-            }
146
-        }
147
-    }
148
-
149
-    private class LevelSelectorButton extends Button {
150
-
151
-        private final String levelName;
152
-
153
-        public LevelSelectorButton(NuitToolkit toolkit, String text, String levelName) {
154
-            super(toolkit, text);
155
-            setFocusCursor(NullFocusCursor.INSTANCE);
156
-            this.levelName = levelName;
157
-        }
158
-
159
-        @Override
160
-        public void onOK() {
161
-            onStartGame(levelName);
162
-        }
163
-    }
164
-
165
-    private LevelSelectorButton addButton(String label, String levelName) {
166
-        LevelSelectorButton button = new LevelSelectorButton(toolkit, label, levelName);
167
-        final TexturedBackground background = new TexturedBackground(bulleAnimations.getAnimationByName("bulle").start(PlayMode.LOOP));
168
-        button.setBackground(background);
169
-        final TexturedBackground focusedBackground = new TexturedBackground(bulleAnimations.getAnimationByName("bulle_selectionnee").start(PlayMode.LOOP));
170
-        button.setFocusedBackground(focusedBackground);
171
-        buttonsTable.cell(button);
172
-        return button;
173
-    }
174
-
175
-    private void onStartGame(String levelName) {
176
-        game.setCurrentLevel(levelName);
177
-        game.addEntity(game.createEntity().addComponent(new Triggerable(startGameTrigger.get().withLevelName(levelName))));
178
-    }
179
-
180
-    @Override
181
-    public void onCancel() {
182
-        game.addEntity(game.createEntity().addComponent(new Triggerable(showMenuTrigger.get())));
183
-    }
59
+	private final NedGame game;
60
+	private final IAnimationCollection bulleAnimations;
61
+	private final IAnimationCollection shiningFloorAnimations;
62
+	private final NuitToolkit toolkit;
63
+	private final Provider<IStartGameTrigger> startGameTrigger;
64
+	private final Provider<ShowMenuTrigger> showMenuTrigger;
65
+	private final Table buttonsTable;
66
+	private final IAssets assets;
67
+
68
+	private enum Tower {
69
+		TOWER_1, TOWER_2;
70
+	}
71
+
72
+	private Tower tower;
73
+
74
+	@Inject
75
+	public LevelSelector(NedGame game, NuitToolkit toolkit, final IAssets assets, Provider<IStartGameTrigger> startGameTrigger, Provider<ShowMenuTrigger> showMenuTrigger) {
76
+		super(toolkit);
77
+		this.game = game;
78
+		this.toolkit = toolkit;
79
+		this.assets = assets;
80
+		this.startGameTrigger = startGameTrigger;
81
+		this.showMenuTrigger = showMenuTrigger;
82
+		buttonsTable = this;
83
+		buttonsTable.setX(0);
84
+		buttonsTable.setY(0);
85
+		buttonsTable.setWidth(320);
86
+		buttonsTable.setHeight(VirtualResolution.HEIGHT);
87
+		buttonsTable.defaults().expandY().align(TableLayout.CENTER);
88
+		buttonsTable.columnDefaults(0).width(80.0f).pad(20.0f).padLeft(100.0f).spaceRight(50.0f);
89
+		buttonsTable.columnDefaults(1).width(80.0f).pad(20.0f);
90
+		bulleAnimations = assets.getAnimations("animation/bulle/bulle.json");
91
+		shiningFloorAnimations = assets.getAnimations("animation/shinin_floor/shinin_floor.json");
92
+		setupTower1();
93
+	}
94
+
95
+	private void toggleTower() {
96
+		clearTower();
97
+		switch (tower) {
98
+		case TOWER_1:
99
+			setupTower2();
100
+			break;
101
+		case TOWER_2:
102
+			setupTower1();
103
+			break;
104
+		}
105
+		buttonsTable.layout();
106
+	}
107
+
108
+	private void setupTower1() {
109
+		tower = Tower.TOWER_1;
110
+		setBackground(new TexturedBackground(assets.getAnimations("tower1.png").getFirst().start(PlayMode.LOOP)));
111
+		buttonsTable.setFocusedChild(addButton("tower.02.level.01.name", "levels/t2/lvl01.tmx", 791, 540, 334, 116, "t1groundFloor"));
112
+		addButton("tower.01.level.02.name", "levels/t1/lvl02.tmx", 791, 517, 334, 95, "t1firstFloor");
113
+		buttonsTable.row();
114
+		addButton("tower.01.level.03.name", "levels/t1/lvl03.tmx", 791, 494, 334, 95, "t1midFloors");
115
+		addButton("tower.01.level.04.name", "levels/t1/lvl04.tmx", 791, 471, 334, 95, "t1midFloors");
116
+		buttonsTable.row();
117
+		addButton("tower.01.level.05.name", "levels/t1/lvl05.tmx", 791, 448, 334, 95, "t1midFloors");
118
+		addButton("tower.01.level.06.name", "levels/t1/lvl06.tmx", 791, 425, 334, 95, "t1midFloors");
119
+		buttonsTable.row();
120
+		addButton("tower.01.level.07.name", "levels/t1/lvl07.tmx", 791, 402, 334, 95, "t1midFloors");
121
+		addButton("tower.01.level.08.name", "levels/t1/lvl08.tmx", 791, 379, 334, 95, "t1midFloors");
122
+		buttonsTable.row();
123
+		addButton("tower.01.level.09.name", "levels/t1/lvl09.tmx", 791, 356, 334, 95, "t1midFloors");
124
+		addButton("tower.01.level.10.name", "levels/t1/lvl10.tmx", 791, 333, 334, 95, "t1lastFloor");
125
+		buttonsTable.row();
126
+
127
+		IAnimation buttonSmallBackgroundAnimation = assets.getAnimations("animation/menu_buttons/menu_buttons.json").getAnimationByName("1_normal");
128
+		IAnimation buttonSmallFocusedBackgroundAnimation = assets.getAnimations("animation/menu_buttons/menu_buttons.json").getAnimationByName("1_survol");
129
+
130
+		final NullWidget portail = new NullWidget();
131
+		portail.setBackground(new TexturedBackground(assets.getAnimations("animation/portail/portail.json").getAnimationByName("normal").start(PlayMode.LOOP)));
132
+		portail.setFocusedBackground(new TexturedBackground(assets.getAnimations("animation/portail/portail.json").getAnimationByName("survol").start(PlayMode.LOOP)));
133
+		portail.setX(526);
134
+		portail.setY(383);
135
+		portail.setWidth(131);
136
+		portail.setHeight(199);
137
+		buttonsTable.add(portail);
138
+
139
+		ButtonWithBuddyAnimatableWidget backButton = new ButtonWithBuddyAnimatableWidget(toolkit, "options.menu.button.back") {
140
+			@Override
141
+			public void onOK() {
142
+				LevelSelector.this.onCancel();
143
+			}
144
+		};
145
+		backButton.setBuddy(portail);
146
+		backButton.setFocusCursor(NullFocusCursor.INSTANCE);
147
+		backButton.setBackground(new TexturedBackground(buttonSmallBackgroundAnimation.start(PlayMode.LOOP)));
148
+		backButton.setFocusedBackground(new TexturedBackground(buttonSmallFocusedBackgroundAnimation.start(PlayMode.LOOP)));
149
+		buttonsTable.cell(backButton).fill();
150
+
151
+		ButtonWithBuddyAnimatableWidget toggleTowerButton = new ButtonWithBuddyAnimatableWidget(toolkit, "levelselector.button.toggle.tower") {
152
+			@Override
153
+			public void onOK() {
154
+				game.addEntity(game.createEntity().addComponent(new Triggerable(new OneShotTrigger() {
155
+					
156
+					@Override
157
+					public void process(NedGame game) {
158
+						LevelSelector.this.toggleTower();
159
+					}
160
+				})));
161
+			}
162
+		};
163
+		toggleTowerButton.setBuddy(portail);
164
+		toggleTowerButton.setFocusCursor(NullFocusCursor.INSTANCE);
165
+		toggleTowerButton.setBackground(new TexturedBackground(buttonSmallBackgroundAnimation.start(PlayMode.LOOP)));
166
+		toggleTowerButton.setFocusedBackground(new TexturedBackground(buttonSmallFocusedBackgroundAnimation.start(PlayMode.LOOP)));
167
+		buttonsTable.cell(toggleTowerButton).fill();
168
+		buttonsTable.cell(new NullWidget()).expand();
169
+	}
170
+
171
+	private void setupTower2() {
172
+		tower = Tower.TOWER_2;
173
+		setBackground(new TexturedBackground(assets.getAnimations("tower2.png").getFirst().start(PlayMode.LOOP)));
174
+		buttonsTable.setFocusedChild(addButton("tower.02.level.01.name", "levels/t2/lvl01.tmx", 871, 851, 174, 76, "t2groundFloor"));
175
+		addButton("tower.02.level.02.name", "levels/t2/lvl02.tmx", 871, 828, 174, 55, "tmidFloors");
176
+		buttonsTable.row();
177
+		addButton("tower.02.level.03.name", "levels/t2/lvl03.tmx", 871, 805, 174, 55, "tmidFloors");
178
+		addButton("tower.02.level.04.name", "levels/t2/lvl04.tmx", 871, 782, 174, 55, "tmidFloors");
179
+		buttonsTable.row();
180
+		addButton("tower.02.level.05.name", "levels/t2/lvl05.tmx", 871, 759, 174, 55, "tmidFloors");
181
+		addButton("tower.02.level.06.name", "levels/t2/lvl06.tmx", 871, 736, 174, 55, "tmidFloors");
182
+		buttonsTable.row();
183
+		addButton("tower.02.level.07.name", "levels/t2/lvl07.tmx", 871, 690, 174, 55, "tmidFloors");
184
+		addButton("tower.02.level.08.name", "levels/t2/lvl01.tmx", 871, 667, 174, 55, "tmidFloors");
185
+		buttonsTable.row();
186
+		addButton("tower.02.level.09.name", "levels/t2/lvl02.tmx", 871, 644, 174, 55, "tmidFloors");
187
+		addButton("tower.02.level.10.name", "levels/t2/lvl03.tmx", 871, 621, 174, 55, "tmidFloors");
188
+		buttonsTable.row();
189
+		addButton("tower.02.level.11.name", "levels/t2/lvl04.tmx", 871, 598, 174, 55, "tmidFloors");
190
+		addButton("tower.02.level.12.name", "levels/t2/lvl05.tmx", 871, 575, 174, 55, "tmidFloors");
191
+		buttonsTable.row();
192
+		addButton("tower.02.level.13.name", "levels/t2/lvlAA.tmx", 871, 552, 174, 55, "tmidFloors");
193
+		addButton("tower.02.level.14.name", "levels/t2/lvlAB.tmx", 871, 529, 174, 55, "tmidFloors");
194
+		buttonsTable.row();
195
+		addButton("tower.02.level.29.name", "levels/test2020.tmx", 871, 207, 174, 55, "tmidFloors");
196
+		addButton("tower.02.level.30.name", "levels/test.tmx", 871, 184, 174, 63, "t2lastFloor");
197
+		buttonsTable.row();
198
+
199
+		IAnimation buttonSmallBackgroundAnimation = assets.getAnimations("animation/menu_buttons/menu_buttons.json").getAnimationByName("1_normal");
200
+		IAnimation buttonSmallFocusedBackgroundAnimation = assets.getAnimations("animation/menu_buttons/menu_buttons.json").getAnimationByName("1_survol");
201
+
202
+		final NullWidget portail = new NullWidget();
203
+		portail.setBackground(new TexturedBackground(assets.getAnimations("animation/portail/portail.json").getAnimationByName("normal").start(PlayMode.LOOP)));
204
+		portail.setFocusedBackground(new TexturedBackground(assets.getAnimations("animation/portail/portail.json").getAnimationByName("survol").start(PlayMode.LOOP)));
205
+		portail.setX(526);
206
+		portail.setY(383);
207
+		portail.setWidth(131);
208
+		portail.setHeight(199);
209
+		buttonsTable.add(portail);
210
+
211
+		ButtonWithBuddyAnimatableWidget backButton = new ButtonWithBuddyAnimatableWidget(toolkit, "options.menu.button.back") {
212
+			@Override
213
+			public void onOK() {
214
+				LevelSelector.this.onCancel();
215
+			}
216
+		};
217
+		backButton.setBuddy(portail);
218
+		backButton.setFocusCursor(NullFocusCursor.INSTANCE);
219
+		backButton.setBackground(new TexturedBackground(buttonSmallBackgroundAnimation.start(PlayMode.LOOP)));
220
+		backButton.setFocusedBackground(new TexturedBackground(buttonSmallFocusedBackgroundAnimation.start(PlayMode.LOOP)));
221
+		buttonsTable.cell(backButton).fill();
222
+
223
+		ButtonWithBuddyAnimatableWidget toggleTowerButton = new ButtonWithBuddyAnimatableWidget(toolkit, "levelselector.button.toggle.tower") {
224
+			@Override
225
+			public void onOK() {
226
+				game.addEntity(game.createEntity().addComponent(new Triggerable(new OneShotTrigger() {
227
+					
228
+					@Override
229
+					public void process(NedGame game) {
230
+						LevelSelector.this.toggleTower();
231
+					}
232
+				})));			}
233
+		};
234
+		toggleTowerButton.setBuddy(portail);
235
+		toggleTowerButton.setFocusCursor(NullFocusCursor.INSTANCE);
236
+		toggleTowerButton.setBackground(new TexturedBackground(buttonSmallBackgroundAnimation.start(PlayMode.LOOP)));
237
+		toggleTowerButton.setFocusedBackground(new TexturedBackground(buttonSmallFocusedBackgroundAnimation.start(PlayMode.LOOP)));
238
+		buttonsTable.cell(toggleTowerButton).fill();
239
+		buttonsTable.cell(new NullWidget()).expand();
240
+	}
241
+
242
+	private void clearTower() {
243
+		buttonsTable.clear();
244
+		ArrayList<Widget> oldChildren = new ArrayList<Widget>(getChildren());
245
+		for (Widget w : oldChildren) {
246
+			buttonsTable.remove(w);
247
+		}
248
+	}
249
+
250
+	private class LevelSelectorButton extends ButtonWithBuddyAnimatableWidget {
251
+
252
+		private final String levelName;
253
+
254
+		public LevelSelectorButton(NuitToolkit toolkit, String text, String levelName) {
255
+			super(toolkit, text);
256
+			setFocusCursor(NullFocusCursor.INSTANCE);
257
+			this.levelName = levelName;
258
+		}
259
+
260
+		@Override
261
+		public void onOK() {
262
+			onStartGame(levelName);
263
+		}
264
+	}
265
+
266
+	private LevelSelectorButton addButton(String label, String levelName) {
267
+		LevelSelectorButton button = new LevelSelectorButton(toolkit, label, levelName);
268
+		final TexturedBackground background = new TexturedBackground(bulleAnimations.getAnimationByName("bulle").start(PlayMode.LOOP));
269
+		button.setBackground(background);
270
+		final TexturedBackground focusedBackground = new TexturedBackground(bulleAnimations.getAnimationByName("bulle_selectionnee").start(PlayMode.LOOP));
271
+		button.setFocusedBackground(focusedBackground);
272
+		buttonsTable.cell(button);
273
+		return button;
274
+	}
275
+
276
+	private LevelSelectorButton addButton(String label, String levelName, int buddyX, int buddyY, int buddyW, int buddyH, String buddyAnimation) {
277
+		LevelSelectorButton button = addButton(label, levelName);
278
+		NullWidget buddy = new NullWidget();
279
+		buddy.setX(buddyX);
280
+		buddy.setY(buddyY);
281
+		buddy.setWidth(buddyW);
282
+		buddy.setHeight(buddyH);
283
+		buddy.setFocusedBackground(new TexturedBackground(shiningFloorAnimations.getAnimationByName(buddyAnimation).start(PlayMode.LOOP)));
284
+		add(buddy);
285
+		button.setBuddy(buddy);
286
+		return button;
287
+	}
288
+
289
+	private void onStartGame(String levelName) {
290
+		game.setCurrentLevel(levelName);
291
+		game.addEntity(game.createEntity().addComponent(new Triggerable(startGameTrigger.get().withLevelName(levelName))));
292
+	}
293
+
294
+	@Override
295
+	public void onCancel() {
296
+		game.addEntity(game.createEntity().addComponent(new Triggerable(showMenuTrigger.get())));
297
+	}
184 298
 
185 299
 }
186 300
new file mode 100644
... ...
@@ -0,0 +1 @@
1
+/target/
... ...
@@ -9,7 +9,7 @@
9 9
     <properties>
10 10
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
11 11
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
12
-        <jnuit.version>0.12</jnuit.version>
12
+        <jnuit.version>0.13</jnuit.version>
13 13
         <lwjgl.version>2.9.1</lwjgl.version>
14 14
         <playn.version>1.8.5</playn.version>
15 15
         <gwt.version>2.6.1</gwt.version>