pxt-arcade 1.12.2 → 1.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/built/common-sim.d.ts +2 -2
  2. package/built/target.js +158 -146
  3. package/built/target.json +158 -146
  4. package/built/targetlight.json +5 -5
  5. package/built/theme.json +5 -0
  6. package/docs/SUMMARY.md +1 -0
  7. package/docs/hardware/adding.md +46 -52
  8. package/docs/hero-banner.md +8 -8
  9. package/docs/hour-of-code-2022-es.html +0 -1
  10. package/docs/hour-of-code-2022-pt.html +0 -1
  11. package/docs/hour-of-code-2022.html +12 -13
  12. package/docs/index-ref.json +1 -1
  13. package/docs/kiosk.html +1 -1
  14. package/docs/multiplayer.md +135 -0
  15. package/docs/projects/SUMMARY.md +3 -1
  16. package/docs/skillmap/balloon/balloon1.md +26 -312
  17. package/docs/skillmap/balloon/balloon2.md +18 -315
  18. package/docs/skillmap/balloon/balloon3.md +18 -317
  19. package/docs/skillmap/balloon/balloon4.md +105 -583
  20. package/docs/skillmap/balloon.md +14 -13
  21. package/docs/skillmap/mole/mole1.md +51 -326
  22. package/docs/skillmap/mole/mole2.md +43 -332
  23. package/docs/skillmap/mole/mole3.md +47 -316
  24. package/docs/{test/skillmap → skillmap}/mole/mole4.md +0 -0
  25. package/docs/skillmap/mole.md +14 -4
  26. package/docs/skillmap/turkey/turkey1.md +194 -127
  27. package/docs/skillmap/turkey/turkey2.md +144 -96
  28. package/docs/skillmap/turkey/turkey3.md +135 -84
  29. package/docs/skillmap/turkey.md +12 -10
  30. package/docs/skillmaps.md +24 -8
  31. package/docs/static/hero-gallery/holiday.png +0 -0
  32. package/docs/static/kiosk/asset-manifest.json +6 -6
  33. package/docs/static/kiosk/static/css/main.b60591be.css +2 -0
  34. package/docs/static/kiosk/static/css/main.b60591be.css.map +1 -0
  35. package/docs/static/kiosk/static/js/main.7c9f0b91.js +3 -0
  36. package/docs/static/kiosk/static/js/{main.01c7792a.js.LICENSE.txt → main.7c9f0b91.js.LICENSE.txt} +12 -32
  37. package/docs/static/kiosk/static/js/main.7c9f0b91.js.map +1 -0
  38. package/docs/static/multiplayer/help/emojis.png +0 -0
  39. package/docs/static/multiplayer/help/host-multiplayer.png +0 -0
  40. package/docs/static/multiplayer/help/hosted-game.png +0 -0
  41. package/docs/static/multiplayer/help/join-game.png +0 -0
  42. package/docs/static/multiplayer/help/joined-game.png +0 -0
  43. package/docs/static/multiplayer/help/share-button.png +0 -0
  44. package/docs/static/multiplayer/help/start-game.png +0 -0
  45. package/docs/static/skillmap/assets/dkc-logo-small.png +0 -0
  46. package/docs/static/tutorials/aliens/reload.png +0 -0
  47. package/docs/static/tutorials/arrows/2pbg.png +0 -0
  48. package/docs/static/tutorials/arrows/key.png +0 -0
  49. package/docs/static/tutorials/arrows/p1.png +0 -0
  50. package/docs/static/tutorials/arrows/p2.png +0 -0
  51. package/docs/static/tutorials/holiday/bgd.png +0 -0
  52. package/docs/static/tutorials/holiday/p1.png +0 -0
  53. package/docs/static/tutorials/holiday/p2.png +0 -0
  54. package/docs/static/tutorials/horse/finish.png +0 -0
  55. package/docs/static/tutorials/horse/frame.png +0 -0
  56. package/docs/static/tutorials/horse/p1.png +0 -0
  57. package/docs/static/tutorials/horse/p2.png +0 -0
  58. package/docs/test/courses/carnival.md +57 -0
  59. package/docs/test/courses/class-arcade.md +57 -0
  60. package/docs/test/skillmap/balloon.md +1 -1
  61. package/docs/test/skillmap/dino/{collectort1.md → dino1.md} +135 -79
  62. package/docs/test/skillmap/dino/{collectort2.md → dino2.md} +0 -0
  63. package/docs/test/skillmap/dino/{collectort3.md → dino3.md} +0 -0
  64. package/docs/test/skillmap/dino/{collectort4.md → dino4.md} +0 -0
  65. package/docs/test/skillmap/dino/{collectort5.md → dino5.md} +0 -0
  66. package/docs/test/skillmap/dino.md +82 -0
  67. package/docs/test/skillmap/mole.md +1 -1
  68. package/docs/test/skillmap/story/story1.md +8 -21
  69. package/docs/test/skillmap/story/story2.md +17 -28
  70. package/docs/test/skillmap/story/story3.md +51 -469
  71. package/docs/test/skillmap/story/story4.md +1 -2
  72. package/docs/test/skillmap/turkey.md +1 -0
  73. package/docs/test/tutorials/arrow.md +677 -0
  74. package/docs/test/tutorials/debug.md +180 -0
  75. package/docs/test/tutorials/holiday.md +609 -0
  76. package/docs/test/tutorials/horse.md +456 -0
  77. package/docs/test/tutorials/hundred.md +400 -0
  78. package/docs/test/tutorials/target.md +6 -2
  79. package/docs/test/tutorials/wakanda-forever.md +206 -147
  80. package/docs/tutorials/arrow.md +677 -0
  81. package/docs/tutorials/holiday.md +609 -0
  82. package/docs/tutorials/horse.md +456 -0
  83. package/docs/{test/tutorials/target/target_copy.md → tutorials/target.md} +11 -1085
  84. package/docs/tutorials/wakanda-forever.md +206 -147
  85. package/package.json +3 -3
  86. package/docs/skillmap/turkey/turkey0.md +0 -197
  87. package/docs/skillmap/turkey/turkey1a.md +0 -308
  88. package/docs/skillmap/turkey/turkey2a.md +0 -277
  89. package/docs/skillmap/turkey/turkey3a.md +0 -219
  90. package/docs/static/kiosk/static/css/main.927f4dad.css +0 -2
  91. package/docs/static/kiosk/static/css/main.927f4dad.css.map +0 -1
  92. package/docs/static/kiosk/static/js/main.01c7792a.js +0 -3
  93. package/docs/static/kiosk/static/js/main.01c7792a.js.map +0 -1
  94. package/docs/test/skillmap/balloon/balloon1.md +0 -247
  95. package/docs/test/skillmap/balloon/balloon2.md +0 -377
  96. package/docs/test/skillmap/balloon/balloon3.md +0 -389
  97. package/docs/test/skillmap/balloon/balloon4.md +0 -385
  98. package/docs/test/skillmap/mole/mole1.md +0 -382
  99. package/docs/test/skillmap/mole/mole2.md +0 -422
  100. package/docs/test/skillmap/mole/mole3.md +0 -384
  101. package/docs/test/skillmap/turkey/turkey1.md +0 -338
  102. package/docs/test/skillmap/turkey/turkey2.md +0 -318
  103. package/docs/test/skillmap/turkey/turkey3.md +0 -265
@@ -1,133 +1,171 @@
1
1
  # Leaps and Bounds
2
+ ### @explicitHints true
2
3
 
3
4
 
4
5
  ## Welcome @showdialog
5
6
 
6
- **Right now, the game never ends.**
7
+ **Right now, the game never ends.**<br/>
7
8
  We need a way to trigger a win!
8
9
 
9
10
  ![Anigif showing the turkey winning](/static/skillmap/turkey/turkey3.gif "Win or Lose!")
10
11
 
11
12
 
12
13
 
13
- ## 2. Try It!
14
+ ## {2. Try It!}
14
15
 
15
- **First, play the game in the game window.**
16
+ **First, play what you have in the game window.**
16
17
  🕹️ 🕹️ 🕹️
17
18
 
18
19
  ---
19
20
 
20
- You should be able to move your player left and right with the arrows, and jump with the (A) button. You should also be getting points with each turkey you release from its cage.
21
+ You should be able to move your player left and right with the arrows,
22
+ and jump with the (A) button.
23
+ You should also be getting points with each turkey released from its cage.
21
24
 
22
25
 
23
26
 
24
- ## 3. Finding Freedom
27
+ ## {3. Finding Freedom}
25
28
 
26
29
  **Let's add a way to win when your turkey gets to the purple tiles at the top!**
27
30
 
28
31
  ---
29
32
 
30
- - :tree: Drag a new
31
- ``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||``
32
- container into the workspace.
33
+ - :tree: From ``||scene:Scene||``, drag
33
34
 
34
- - :paint brush: This time, change the checkerboard to the solid purple tile.
35
+ ```blocks
36
+ scene.onOverlapTile(SpriteKind.Player,assets.tile`transparency16`, function (sprite, location) {
37
+ })
38
+ ```
39
+
40
+ into **an empty area** of the workspace.
35
41
 
36
- - :circle: Snap a
37
- ``||game:game over <LOSE>||``
38
- block into the new container and toggle
39
- the **`<LOSE>`** switch to **`<WIN>`**!
42
+ - :paint brush: This time, change the checkerboard tile to the solid purple tile.
43
+ ![Pick the purple tile](/static/skillmap/turkey/purple-tile.png "Select the tile at the end.")
40
44
 
41
45
 
46
+
47
+ #### ~ tutorialhint
42
48
  ```blocks
43
49
  scene.onOverlapTile(SpriteKind.Player, sprites.swamp.swampTile16, function (sprite, location) {
44
- //@highlight
45
- game.over(true)
46
50
  })
47
51
  ```
48
52
 
49
- ## 4. Play Your Game!
50
53
 
51
- You should win the game as soon as your turkey makes it to the purple tiles.
54
+ ## {4. Win Best Time}
52
55
 
53
56
 
54
57
 
55
- ## 5. It's Time!
58
+ - :store: From ``||carnival:Carnival||``, snap<br/>
59
+ ```block
60
+ carnival.onGameOverExpanded(carnival.WinTypes.Timed)
61
+ ```
62
+ <br/>into the new <br/>
63
+ ``||scene(noclick):on [sprite] of kind [Player] overlaps [ ] at [location]||``
64
+ <br/> container that you just added to the workspace.
56
65
 
57
66
 
58
- **Let's add a way to lose if you don't make it to the top quickly enough.**
59
67
 
60
- ---
68
+ #### ~ tutorialhint
69
+ ```blocks
70
+ scene.onOverlapTile(SpriteKind.Player, sprites.swamp.swampTile16, function (sprite, location) {
71
+ carnival.onGameOverExpanded(carnival.WinTypes.Timed)
72
+ })
73
+ ```
61
74
 
62
75
 
63
- - :id card: To set a countdown timer, drag
64
- ``||info: start countdown [10] (s)||``
65
- into **the end** of the ``||loops: on start||`` container.
76
+ ## {4. Play Your Game!}
66
77
 
67
- - :mouse pointer: Change **10** to **120** so that you have about 2 minutes to escape.
78
+ **Play your game!**
68
79
 
80
+ You should win the game as soon as your turkey makes it to the purple tiles at the top.
69
81
 
70
- ```blocks
71
- let mySprite: Sprite = null
72
- scene.setBackgroundColor(9)
73
- tiles.setTilemap(tilemap`level1`)
74
- mySprite = sprites.create(assets.image`player`, SpriteKind.Player)
75
- controller.moveSprite(mySprite, 100, 0)
76
- mySprite.ay = 500
77
- scene.cameraFollowSprite(mySprite)
78
- tiles.placeOnRandomTile(mySprite, assets.tile`start`)
79
- //@highlight
80
- info.startCountdown(120)
81
- })
82
- ```
82
+ How long does it take you to collect all of the turkeys and get out?
83
83
 
84
84
 
85
- ## 6. Time's Up!
86
85
 
86
+ ## {5. Time's Up!}
87
87
 
88
- **When the timer runs out, end the game with a loss.**
89
88
 
90
- ---
89
+ **Add a timer to the game window so you can see your progress.**
91
90
 
91
+ ---
92
92
 
93
- - :id card: Drag a
94
- ``||info: on countdown end||``
95
- contaner into an empty area of the workspace.
96
93
 
94
+ - :store: From ``||carnival:Carnival||``, snap
95
+ ```block
96
+ carnival.startTimer()
97
+ ```
98
+ into **the end** of the<br/>
99
+ ``||loops(noclick):on start||``<br/>
100
+ container already in the workspace.
97
101
 
98
- - :circle: Snap a
99
- ``||game:game over <LOSE>||``
100
- block into the new container.
101
102
 
102
103
 
104
+ #### ~ tutorialhint
103
105
  ```blocks
104
- info.onCountdownEnd(function () {
105
- game.over(false)
106
- })
106
+ let freeTurkeys: Sprite = null
107
+ let bigTurkey: Sprite = null
108
+ bigTurkey = sprites.create(assets.image`player`, SpriteKind.Player)
109
+ controller.moveSprite(bigTurkey, 100, 0)
110
+ bigTurkey.ay = 500
111
+ scene.cameraFollowSprite(bigTurkey)
112
+ tiles.placeOnRandomTile(bigTurkey, assets.tile`start`)
113
+ //@highlight
114
+ carnival.startTimer()
107
115
  ```
108
116
 
109
117
 
110
- ## 7. Play Your Game!
111
118
 
112
- **Give it a try in the game window.**
119
+ ## {6. Time's Up!}
113
120
 
114
- ---
115
121
 
116
- Can you make it to the purple tiles at the top before the timer expires?
122
+ **Play your game again and see if you can beat your best time!**
117
123
 
118
- How many turkeys can you save along the way?
119
124
 
120
125
 
121
126
 
122
127
  ## Finale
123
128
 
124
- **Play your game and see how many turkeys you can save!**
129
+ **🦃 Well done! 🦃**
130
+
131
+ When you're finished playing, click **Done** to return to the main skillmap where
132
+ you can claim your badge and share your game with friends!
125
133
 
126
- ---
127
134
 
128
- When you're finished playing, click **Done** to return to the main skillmap where you can choose whether you want to share this project with friends or start editing it using a full toolbox!
129
135
 
130
136
 
137
+ ```blockconfig.global
138
+ let freeTurkeys: Sprite = null
139
+ let bigTurkey: Sprite = null
140
+
141
+ let bigTurkey2 = sprites.create(img`.`, SpriteKind.Player)
142
+
143
+ tiles.placeOnRandomTile(bigTurkey, assets.tile`start`)
144
+ tiles.placeOnTile(freeTurkeys, location)
145
+
146
+ scene.cameraFollowSprite(bigTurkey)
147
+ controller.moveSprite(bigTurkey, 100, 0)
148
+ bigTurkey2.ay = 500
149
+ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
150
+ bigTurkey.vy = -300
151
+ })
152
+ scene.onOverlapTile(SpriteKind.Player, assets.tile`transparency16`, function (sprite, location) {
153
+ })
154
+ tiles.setTileAt(location, assets.tile`transparency16`)
155
+ freeTurkeys.follow(bigTurkey)
156
+ carnival.onGameOverExpanded(carnival.WinTypes.Timed)
157
+ controller.player2.moveSprite(bigTurkey2)
158
+
159
+ controller.player2.onButtonEvent(ControllerButton.A, ControllerButtonEvent.Pressed, function () {
160
+ bigTurkey2.vy = -300
161
+ })
162
+
163
+
164
+ ```
165
+
166
+ ```package
167
+ carnival=github:microsoft/arcade-carnival
168
+ ```
131
169
 
132
170
 
133
171
 
@@ -136,28 +174,29 @@ namespace SpriteKind {
136
174
  export const Rescued = SpriteKind.create()
137
175
  }
138
176
  controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
139
- mySprite.vy = -300
177
+ bigTurkey.vy = -300
140
178
  })
141
179
  scene.onOverlapTile(SpriteKind.Player, assets.image`cage`, function (sprite, location) {
142
180
  info.changeScoreBy(1)
143
181
  tiles.setTileAt(location, assets.tile`transparency16`)
144
- turkey = sprites.create(assets.image`turkey`, SpriteKind.Rescued)
145
- tiles.placeOnTile(turkey, location)
146
- turkey.follow(mySprite)
182
+ freeTurkeys = sprites.create(assets.image`turkey`, SpriteKind.Rescued)
183
+ tiles.placeOnTile(freeTurkeys, location)
184
+ freeTurkeys.follow(bigTurkey)
147
185
  })
148
186
 
149
- let turkey: Sprite = null
150
- let mySprite: Sprite = null
151
- scene.setBackgroundColor(9)
152
- tiles.setTilemap(tilemap`level1`)
153
- mySprite = sprites.create(assets.image`player`, SpriteKind.Player)
154
- controller.moveSprite(mySprite, 100, 0)
155
- mySprite.ay = 500
156
- scene.cameraFollowSprite(mySprite)
157
- tiles.placeOnRandomTile(mySprite, assets.tile`start`)
187
+ let freeTurkeys: Sprite = null
188
+ let bigTurkey: Sprite = null
189
+ bigTurkey = sprites.create(assets.image`player`, SpriteKind.Player)
190
+ controller.moveSprite(bigTurkey, 100, 0)
191
+ bigTurkey.ay = 500
192
+ scene.cameraFollowSprite(bigTurkey)
193
+ tiles.placeOnRandomTile(bigTurkey, assets.tile`start`)
194
+
158
195
 
159
196
  ```
160
197
 
198
+
199
+
161
200
  ```ghost
162
201
 
163
202
  info.onCountdownEnd(function () {
@@ -168,40 +207,52 @@ namespace SpriteKind {
168
207
  export const Rescued = SpriteKind.create()
169
208
  }
170
209
  controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
171
- mySprite.vy = -300
210
+ bigTurkey.vy = -300
172
211
  })
173
212
  scene.onOverlapTile(SpriteKind.Player, sprites.dungeon.stairWest, function (sprite, location) {
174
213
  tiles.setTileAt(location, assets.tile`transparency16`)
175
- turkey = sprites.create(assets.image`turkey`, SpriteKind.Rescued)
176
- tiles.placeOnTile(turkey, location)
177
- turkey.follow(mySprite)
214
+ freeTurkeys = sprites.create(assets.image`turkey`, SpriteKind.Rescued)
215
+ tiles.placeOnTile(freeTurkeys, location)
216
+ freeTurkeys.follow(bigTurkey)
178
217
  info.changeScoreBy(1)
179
218
  })
180
219
  scene.onOverlapTile(SpriteKind.Player, sprites.swamp.swampTile16, function (sprite, location) {
181
220
  game.over(true)
182
221
  })
183
- let turkey: Sprite = null
184
- let mySprite: Sprite = null
222
+ let freeTurkeys: Sprite = null
223
+ let bigTurkey: Sprite = null
185
224
  scene.setBackgroundColor(9)
186
225
  tiles.setTilemap(tilemap`level1`)
187
- mySprite = sprites.create(assets.image`player`, SpriteKind.Player)
188
- tiles.placeOnRandomTile(mySprite, assets.tile`start`)
189
- mySprite.ay = 500
190
- controller.moveSprite(mySprite, 100, 0)
191
- scene.cameraFollowSprite(mySprite)
226
+ bigTurkey = sprites.create(assets.image`player`, SpriteKind.Player)
227
+ tiles.placeOnRandomTile(bigTurkey, assets.tile`start`)
228
+ bigTurkey.ay = 500
229
+ controller.moveSprite(bigTurkey, 100, 0)
230
+ scene.cameraFollowSprite(bigTurkey)
192
231
  info.startCountdown(120)
193
-
232
+ carnival.startTimer()
233
+ sprites.add_second_player(img`.`)
194
234
 
195
235
  ```
196
236
 
197
237
 
238
+ ```customts
239
+ scene.setBackgroundColor(9)
240
+ tiles.setTilemap(tilemap`level1`)
241
+
242
+ namespace SpriteKind {
243
+ //% isKind
244
+ export const Rescued = SpriteKind.create()
245
+ }
246
+
247
+ ```
248
+
198
249
 
199
250
  ```assetjson
200
251
  {
201
252
  "README.md": " ",
202
253
  "assets.json": "",
203
- "images.g.jres": "{\n \"image2\": {\n \"data\": \"hwQYABgAAAAAAAC7AAC7CwAAAAAAALC7uwAruwAAAAAAALBLtAsrsrALAAAAAAC7RAsrsrsLAAAAAACwS7QrsksLAAAAsLu7u7QrS0QLAAAAsCIisksrRL28AAAAsLsiIksrRNy9CwAAALC7K0vk7s69uwAAAAAAK0Lk7t7cvAAAAAAAsCLi7u7MvAsAAAAAAOvs7u7LzAsAALC7vczu7u7NzAsAALvu7rvu7u7ezAsAsOvu7u7u7u7szAsAsN7R7u7uzszszAsAsB7/7u7u7u7uvgsAu/6/Ti7u7u7uvgSwvu7eRCLu7u7uvgTgu+7dRCLu7u7uuwCwANtERC677u6+CwAAAPBMRAsAu7u7AAAAAAAAtAAAAAAAAAAAAAAACwAAAAAAAAA=\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"displayName\": \"player\"\n },\n \"image1\": {\n \"data\": \"hwQeABQAAAAAAAC7AAC7CwAAAAAAALC7uwAruwAAAAAAALBLtAsrsrALAAAAAAC7RAsrsrsLAAAAAACwS7QrsksLAAAAsLu7u7Qru8wLAAAAsCIisksr7r0MAAAAsLsiItvr7tzNAAAAALC7K9vt7s69AAAAAAAAu9vu7t7cAAAAAACwu73u7u7cAAAAAAC77r7u7u7bAAAAALDr7u7uu73dAAAAALDe0e7u7u7eAAAAALAe/+7u7u7uAAAAALv+v07u7u7uAAAAsL7u3kTi7u7uAAAA4Lvu3UTi7u5OAAAAsADbRESwu7tNAAAAAADwTEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"displayName\": \"turkey\"\n },\n \"*\": {\n \"mimeType\": \"image/x-mkcd-f4\",\n \"dataEncoding\": \"base64\",\n \"namespace\": \"myImages\"\n }\n}",
204
- "images.g.ts": "// Auto-generated code. Do not edit.\nnamespace myImages {\n\n helpers._registerFactory(\"image\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n case \"image2\":\n case \"player\":return img`\n........................\n..................beb...\n.................beb....\n.....bbb......bbbbbb....\n.....b2b.....bbeeeeeb...\n.bb..b2bb...bbed1feedf..\nbbbb.b22b...bee1ffed4c..\nbb4bbb22b...beedfbdd44..\n.b44bb22bb..deeeee44444b\n.bb44bb222b.beeee44444b.\n..bb44bbb22bcbeeee22eb..\n....bb44442ecbeee2222...\nbbbbbbbb442ceeeeeeeeb...\nb2222222eeeeeeeeeeeeb...\nbb222b44eeeeeeeeeeeeeb..\n.bbbb444eeeeeeeceeeeeb..\n...bb4dceeeeeeeceeeeeb..\n..bb44bdcdeeeeeceeeeeb..\n..bbbbcddccbdecceeeeeb..\n......bbbdcccdeeeeeebb..\n.......bbccccccceeebb...\n........bbbcccccbbbb....\n..........bbbbbbb44.....\n........................\n`;\n case \"image1\":\n case \"turkey\":return img`\n..............................\n..............................\n..............................\n.....bbb........beb...........\n.....b2b.......beb............\n.bb..b2bb...bbbbbb............\nbbbb.b22b..bbeeeeeb...........\nbb4bbb22b.bbed1feedf..........\n.b44bb22bbbee1ffed4c..........\n.bb44bb22bbeedfbdd44..........\n..bb44bbbbdeeeee44444.........\n....bb4dddbbeee44444..........\nbbbbbbbbdeeeeeee22............\nb222222eeeeeeeeeeeb...........\nbb222beeeeeebeeeeeb...........\n.bbbbbeeeeeebeeeeeb...........\n...bbcdceeeedeeeeeb...........\n..bb4cbdcdeebeeeeeb...........\n..bbbbcddccbdeeeeed...........\n.......cbdddddeee44...........\n`;\n }\n return null;\n })\n\n helpers._registerFactory(\"animation\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n\n }\n return null;\n })\n\n}\n// Auto-generated code. Do not edit.\n",
254
+ "images.g.jres": "{\n \"image1\": {\n \"data\": \"hwQeABQAAAAAAAC7AAC7CwAAAAAAALC7uwAruwAAAAAAALBLtAsrsrALAAAAAAC7RAsrsrsLAAAAAACwS7QrsksLAAAAsLu7u7Qru8wLAAAAsCIisksr7r0MAAAAsLsiItvr7tzNAAAAALC7K9vt7s69AAAAAAAAu9vu7t7cAAAAAACwu73u7u7cAAAAAAC77r7u7u7bAAAAALDr7u7uu73dAAAAALDe0e7u7u7eAAAAALAe/+7u7u7uAAAAALv+v07u7u7uAAAAsL7u3kTi7u7uAAAA4Lvu3UTi7u5OAAAAsADbRESwu7tNAAAAAADwTEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"displayName\": \"turkey\"\n },\n \"image3\": {\n \"data\": \"hwQYABgAAAAAAAC7AAC7CwAAAAAAALC7uwBbuwAAAAAAALDbvQtbtbALAAAAAAC73QtbtbsLAAAAAACw271btdsLAAAAsLu7u71b290LAAAAsFVVtdtb3b24AAAAsLtVVdtL3di9CwAAALC7W9vt7o69uwAAAAAAW9Xt7t7YuAAAAAAAsFXk7u6IuAsAAAAAAOvo7u6LiAsAALC7vYju7u6NiAsAALvu7rvu7u7eiAsAsOvu7u7u7u7oiAsAsN7R7u7ujojoiAsAsB7/7u7u7u7uvgsAu/6/Ti7u7u7uvg2wvu5OVSLu7u7uvg3gu+5UVSLu7u7uuwCwAFtUVS677u6+CwAAAPBYVQsAu7u7AAAAAAAAtQAAAAAAAAAAAAAACwAAAAAAAAA=\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"displayName\": \"player2\"\n },\n \"image2\": {\n \"data\": \"hwQYABgAAAAAAAC7AAC7CwAAAAAAALC7uwAruwAAAAAAALBLtAsrsrALAAAAAAC7RAsrsrsLAAAAAACwS7QrsksLAAAAsLu7u7QrS0QLAAAAsCIisksrRL28AAAAsLsiIksrTNy9CwAAALC7K8vk7s69uwAAAAAAK0Lk7t7cvAAAAAAAsMLi7u7MvAsAAAAAAOvs7u7LzAsAALC7vczu7u7NzAsAALvu7rvu7u7ezAsAsOvu7u7u7u7szAsAsN7R7u7uzszszAsAsB7/7u7u7u7uvgsAu/6/Ti7u7u7uvgSwvu7eRCLu7u7uvgTgu+7dRCLu7u7uuwCwANtERC677u6+CwAAAPBMRAsAu7u7AAAAAAAAtAAAAAAAAAAAAAAACwAAAAAAAAA=\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"displayName\": \"player\"\n },\n \"*\": {\n \"mimeType\": \"image/x-mkcd-f4\",\n \"dataEncoding\": \"base64\",\n \"namespace\": \"myImages\"\n }\n}",
255
+ "images.g.ts": "// Auto-generated code. Do not edit.\nnamespace myImages {\n\n helpers._registerFactory(\"image\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n case \"image1\":\n case \"turkey\":return img`\n..............................\n..............................\n..............................\n.....bbb........beb...........\n.....b2b.......beb............\n.bb..b2bb...bbbbbb............\nbbbb.b22b..bbeeeeeb...........\nbb4bbb22b.bbed1feedf..........\n.b44bb22bbbee1ffed4c..........\n.bb44bb22bbeedfbdd44..........\n..bb44bbbbdeeeee44444.........\n....bb4dddbbeee44444..........\nbbbbbbbbdeeeeeee22............\nb222222eeeeeeeeeeeb...........\nbb222beeeeeebeeeeeb...........\n.bbbbbeeeeeebeeeeeb...........\n...bbcdceeeedeeeeeb...........\n..bb4cbdcdeebeeeeeb...........\n..bbbbcddccbdeeeeed...........\n.......cbdddddeee44...........\n`;\n case \"image3\":\n case \"player2\":return img`\n........................\n..................beb...\n.................beb....\n.....bbb......bbbbbb....\n.....b5b.....bbeeeeeb...\n.bb..b5bb...bbed1fee5f..\nbbbb.b55b...bee1ffe448..\nbbdbbb55b...beedfb4555..\n.bddbb55bb..deeeee55555b\n.bbddbb555b.beeee45555b.\n..bbddbbb55b8beeee22eb..\n....bbdddd5e8beee2222...\nbbbbbbbbdd48eeeeeeeeb...\nb5555554eeeeeeeeeeeeb...\nbb555bddeeeeeeeeeeeeeb..\n.bbbbdddeeeeeee8eeeeeb..\n...bbdd8eeeeeee8eeeeeb..\n..bbddbd8deeeee8eeeeeb..\n..bbbb8dd88bde88eeeeeb..\n......bbbd888deeeeeebb..\n.......bb8888888eeebb...\n........bbb88888bbbb....\n..........bbbbbbbdd.....\n........................\n`;\n case \"image2\":\n case \"player\":return img`\n........................\n..................beb...\n.................beb....\n.....bbb......bbbbbb....\n.....b2b.....bbeeeeeb...\n.bb..b2bb...bbed1feedf..\nbbbb.b22b...bee1ffed4c..\nbb4bbb22b...beedfbdd44..\n.b44bb22bb..deeeee44444b\n.bb44bb222b.beeee44444b.\n..bb44bbb22bcbeeee22eb..\n....bb44c4cecbeee2222...\nbbbbbbbb442ceeeeeeeeb...\nb2222222eeeeeeeeeeeeb...\nbb222b4ceeeeeeeeeeeeeb..\n.bbbb444eeeeeeeceeeeeb..\n...bb4dceeeeeeeceeeeeb..\n..bb44bdcdeeeeeceeeeeb..\n..bbbbcddccbdecceeeeeb..\n......bbbdcccdeeeeeebb..\n.......bbccccccceeebb...\n........bbbcccccbbbb....\n..........bbbbbbb44.....\n........................\n`;\n }\n return null;\n })\n\n helpers._registerFactory(\"animation\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n\n }\n return null;\n })\n\n}\n// Auto-generated code. Do not edit.\n",
205
256
  "main.blocks": "<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable type=\"KIND_SpriteKind\" id=\"9ecw?uPtb)o)0#+E^u,1\">Player</variable><variable type=\"KIND_SpriteKind\" id=\":ML9S)E@KgRhXE/x{A`9\">Projectile</variable><variable type=\"KIND_SpriteKind\" id=\";B^Y[cZd;E_DnD.5{J@R\">Food</variable><variable type=\"KIND_SpriteKind\" id=\"wsNPniHJ[)XHrQ;3T)#=\">Enemy</variable><variable type=\"KIND_SpriteKind\" id=\"H;j``voP]Rgjc1sSe+-(\">Turkey</variable><variable id=\"gcUpn%0~ykX#(O:!pNmV\">mySprite</variable><variable id=\"r5?^Ib{kgL!.xn|uBAI,\">followTurkey</variable><variable id=\"S|~*(#7WP05%3gUAO?Yz\">myEnemy</variable></variables></xml>",
206
257
  "main.ts": "\n",
207
258
  "pxt.json": "{\n \"name\": \"turkey day assets only\",\n \"description\": \"\",\n \"dependencies\": {\n \"device\": \"*\"\n },\n \"files\": [\n \"main.blocks\",\n \"main.ts\",\n \"README.md\",\n \"assets.json\",\n \"tilemap.g.jres\",\n \"tilemap.g.ts\",\n \"images.g.jres\",\n \"images.g.ts\"\n ],\n \"targetVersions\": {\n \"branch\": \"v1.6.24\",\n \"tag\": \"v1.6.24\",\n \"commits\": \"https://github.com/microsoft/pxt-arcade/commits/5bea1575ea693e0648a647cbd86cda9776d58f48\",\n \"target\": \"1.6.24\",\n \"pxt\": \"7.2.25\"\n },\n \"preferredEditor\": \"tsprj\"\n}\n",
@@ -1,17 +1,18 @@
1
1
  # Turkey Day!
2
2
  * name: Turkey Day!
3
- * description: It's time to break out! Help your turkey free all of its friends and climb to freedom in this fast-paced vertical platformer.
3
+ * description: It's time to break out! Help your turkey free all of its friends and climb to freedom in this fast-paced vertical platformer. Double-click the first level to start.
4
4
  * infoUrl: /skillmap/educator-info/turkey-map-info
5
- * backgroundurl: /static/skillmap/backgrounds/turkey-comp.png
5
+ * backgroundurl: /static/skillmap/backgrounds/turkey-comp.gif
6
6
  * bannerurl: /static/skillmap/turkey/turkey2.gif
7
- * primarycolor: #e77038
8
- * secondarycolor: #fdf60c
9
- * tertiarycolor: #77dc52
10
- * strokecolor: #ffffff
11
- * highlightcolor: #ffffff
12
- * completednodecolor: #3b3738
7
+ * primarycolor: #cda6cc
8
+ * secondarycolor: #ffffff
9
+ * tertiarycolor: #baefff
10
+ * strokecolor: #fdf60c
11
+ * highlightcolor: #fdf60c
12
+ * completednodecolor: #003457
13
13
 
14
- ## Turkey
14
+
15
+ ## turkey-day
15
16
  * name: Turkey Day
16
17
  * layout: manual
17
18
 
@@ -47,13 +48,14 @@
47
48
 
48
49
 
49
50
  ### turkey-finish
51
+ * name: Congratulations!
50
52
  * kind: completion
51
53
  * type: certificate
52
54
  * url: /static/skillmap/certificates/turkey-cert.pdf
53
55
  * imageUrl: /static/skillmap/certificates/turkey-cert.png
54
56
  * position: 3 0
55
57
  * actions:
56
- * map: [Try Space Explorer](/skillmap/space)
58
+ * map: [Try Burstin' Balloons](/skillmap/balloon)
57
59
  * editor: [Edit Your Project with a Full Toolbox](/)
58
60
  * rewards:
59
61
  * certificate:
package/docs/skillmaps.md CHANGED
@@ -15,6 +15,30 @@
15
15
  "labelClass": "orange ribbon large",
16
16
  "directOpen": true
17
17
  },
18
+ {
19
+ "name": "Whack-the-Mole",
20
+ "cardType": "link",
21
+ "description": "Create your own mole whacking carnival game. Double-click the first level to start.",
22
+ "imageUrl": "/static/skillmap/backgrounds/mole.gif",
23
+ "url": "https://arcade.makecode.com/--skillmap#mole",
24
+ "directOpen": true
25
+ },
26
+ {
27
+ "name": "Burstin' Balloons",
28
+ "cardType": "link",
29
+ "description": "Create a simple carnival game where you click quickly to try to burst a balloon before time runs out.",
30
+ "imageUrl": "/static/skillmap/backgrounds/mouse.gif",
31
+ "url": "https://arcade.makecode.com/--skillmap#balloon",
32
+ "directOpen": true
33
+ },
34
+ {
35
+ "name": "Turkey Day",
36
+ "cardType": "link",
37
+ "description": "It's time to break out! Help your turkey free all of its friends and climb to freedom in this fast-paced vertical platformer.",
38
+ "imageUrl": "/static/skillmap/backgrounds/turkey.gif",
39
+ "url": "https://arcade.makecode.com/--skillmap#turkey",
40
+ "directOpen": true
41
+ },
18
42
  {
19
43
  "name": "Monster Truck Racer",
20
44
  "cardType": "link",
@@ -47,14 +71,6 @@
47
71
  "url": "https://arcade.makecode.com/--skillmap#forest",
48
72
  "directOpen": true
49
73
  },
50
- {
51
- "name": "Turkey Day",
52
- "cardType": "link",
53
- "description": "It's time to break out! Help your turkey free all of its friends and climb to freedom in this fast-paced vertical platformer.",
54
- "imageUrl": "/static/skillmap/turkey/turkey3.gif",
55
- "url": "https://arcade.makecode.com/--skillmap#turkey",
56
- "directOpen": true
57
- },
58
74
  {
59
75
  "name": "80s Rockstar Maze",
60
76
  "cardType": "link",
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "files": {
3
- "main.css": "/static/kiosk/static/css/main.927f4dad.css",
4
- "main.js": "/static/kiosk/static/js/main.01c7792a.js",
3
+ "main.css": "/static/kiosk/static/css/main.b60591be.css",
4
+ "main.js": "/static/kiosk/static/js/main.7c9f0b91.js",
5
5
  "static/js/787.709d397d.chunk.js": "/static/kiosk/static/js/787.709d397d.chunk.js",
6
6
  "index.html": "/static/kiosk/index.html",
7
- "main.927f4dad.css.map": "/static/kiosk/static/css/main.927f4dad.css.map",
8
- "main.01c7792a.js.map": "/static/kiosk/static/js/main.01c7792a.js.map",
7
+ "main.b60591be.css.map": "/static/kiosk/static/css/main.b60591be.css.map",
8
+ "main.7c9f0b91.js.map": "/static/kiosk/static/js/main.7c9f0b91.js.map",
9
9
  "787.709d397d.chunk.js.map": "/static/kiosk/static/js/787.709d397d.chunk.js.map"
10
10
  },
11
11
  "entrypoints": [
12
- "static/css/main.927f4dad.css",
13
- "static/js/main.01c7792a.js"
12
+ "static/css/main.b60591be.css",
13
+ "static/js/main.7c9f0b91.js"
14
14
  ]
15
15
  }