Procházet zdrojové kódy

Basketball game: update end game messages

customisations
alemart před 8 měsíci
rodič
revize
3d4676ce17
1 změnil soubory, kde provedl 39 přidání a 11 odebrání
  1. 39
    11
      demos/basketball/src/entities/gui/gameover-overlay.js

+ 39
- 11
demos/basketball/src/entities/gui/gameover-overlay.js Zobrazit soubor

@@ -22,16 +22,7 @@ export class GameOverOverlay extends GUIControl
22 22
     constructor(game)
23 23
     {
24 24
         super(game);
25
-
26
-        this._messages = {
27
-            'S' : 'YOU ARE A\nLEGEND!!!!!',
28
-            'A+': 'Well done!\nYou\'re a Pro!',
29
-            'A' : 'Well done!\nYou\'re a Pro!',
30
-            'B+': 'Nice, but you\'re\nnot yet a Pro!',
31
-            'B' : 'You can do better!',
32
-            'C' : 'Try again!',
33
-            'F' : 'Try again!'
34
-        };
25
+        this._observedLongDistanceShot = false;
35 26
     }
36 27
 
37 28
     /**
@@ -129,11 +120,48 @@ export class GameOverOverlay extends GUIControl
129 120
             const message = container.getChildByName('message');
130 121
 
131 122
             rank.text = event.detail.rank;
132
-            message.text = this._messages[event.detail.rank] || '';
123
+            message.text = this._getMessage(event.detail.rank);
133 124
 
134 125
             container.isVisible = true;
135 126
         }
136 127
         else if(event.type == 'targetlost')
137 128
             this.control.isVisible = false;
129
+        else if(event.type == 'restarted')
130
+            this._observedLongDistanceShot = false;
131
+        else if(event.type == 'scored' && !this._observedLongDistanceShot)
132
+            this._observedLongDistanceShot = (event.detail.score > 2);
133
+    }
134
+
135
+    /**
136
+     * Get the message to be displayed
137
+     * @param {string} rank
138
+     * @returns {string}
139
+     */
140
+    _getMessage(rank)
141
+    {
142
+        switch(rank) {
143
+            case 'S':
144
+                return 'YOU ARE A\nLEGEND!!!!!';
145
+
146
+            case 'A+':
147
+            case 'A':
148
+                return 'Well done!\nYou\'re a Pro!';
149
+
150
+            case 'B+':
151
+                if(this._observedLongDistanceShot)
152
+                    return 'Nice, but you\'re\nnot yet a Pro!';
153
+                else
154
+                    return 'A Pro shoots from\nlong distances!';
155
+
156
+            case 'B':
157
+                return 'You can do better!';
158
+
159
+            case 'C':
160
+            case 'F':
161
+                return 'Try again!';
162
+
163
+            default:
164
+                return '';
165
+        }
138 166
     }
139 167
 }

Načítá se…
Zrušit
Uložit