Skip to content

Commit def79a6

Browse files
committedFeb 5, 2025·
Animate kiss into the air
1 parent afcdd66 commit def79a6

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed
 

‎src/utilities/runEnvironment.ts

+12-14
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,7 @@ function* run(
9292
!elements.includes('web')
9393
)
9494
}
95-
const warnAboutNeedlessMove = () => {
96-
// @TODO: visualize to user
95+
const markAsNeedlessMove = () => {
9796
performedNeedlessMove = true
9897
}
9998

@@ -165,18 +164,18 @@ function* run(
165164
playerState.x++
166165
yield step('goForward')
167166
} else {
168-
warnAboutNeedlessMove()
167+
markAsNeedlessMove()
169168
yield step('invalidMove')
170169
}
171170
} else if (instruction.type === 'jump') {
172171
if (canStandAt(playerState.x + 1, playerState.y)) {
173172
playerState.x++
174173
if (!elementsAt(playerState.x + 1, playerState.y).includes('hole')) {
175-
warnAboutNeedlessMove()
174+
markAsNeedlessMove()
176175
}
177176
yield step('jump')
178177
} else {
179-
warnAboutNeedlessMove()
178+
markAsNeedlessMove()
180179
yield step('invalidMove')
181180
}
182181
} else if (instruction.type === 'pick') {
@@ -188,23 +187,23 @@ function* run(
188187
yield step('pickSword')
189188
removeElement(playerState.x, playerState.y, 'sword')
190189
} else {
191-
warnAboutNeedlessMove()
190+
markAsNeedlessMove()
192191
yield step('invalidMove')
193192
}
194193
} else if (instruction.type === 'up') {
195194
if (isConditionFulfilled.leaderUp) {
196195
playerState.y--
197196
yield step('goUp')
198197
} else {
199-
warnAboutNeedlessMove()
198+
markAsNeedlessMove()
200199
yield step('invalidMove')
201200
}
202201
} else if (instruction.type === 'down') {
203202
if (isConditionFulfilled.leaderDown) {
204203
playerState.y++
205204
yield step('goDown')
206205
} else {
207-
warnAboutNeedlessMove()
206+
markAsNeedlessMove()
208207
yield step('invalidMove')
209208
}
210209
} else if (instruction.type === 'hit') {
@@ -214,16 +213,16 @@ function* run(
214213
} else if (isConditionFulfilled.web) {
215214
removeElement(playerState.x + 1, playerState.y, 'web')
216215
} else {
217-
warnAboutNeedlessMove()
216+
markAsNeedlessMove()
218217
}
219218
yield step('hit')
220219
} else {
221-
warnAboutNeedlessMove()
220+
markAsNeedlessMove()
222221
yield step('invalidMove')
223222
}
224223
} else if (instruction.type === 'kiss') {
224+
yield step('kiss') // @TODO: allow air kisses into the air with needless move penalization
225225
if (elementsAt(playerState.x + 1, playerState.y).includes('frog')) {
226-
yield step('kiss') // @TODO: allow air kisses into the air with needless move penalization
227226
return {
228227
type: 'final',
229228
success: true,
@@ -232,8 +231,7 @@ function* run(
232231
playerState,
233232
}
234233
} else {
235-
warnAboutNeedlessMove()
236-
yield step('invalidMove')
234+
markAsNeedlessMove()
237235
}
238236
} else if (instruction.type === 'repeat') {
239237
for (let iteration = 1; iteration <= instruction.times; iteration++) {
@@ -270,7 +268,7 @@ function* run(
270268
}
271269
if (value.performedNothing) {
272270
// Infinite loop detected
273-
warnAboutNeedlessMove()
271+
markAsNeedlessMove()
274272
yield step('invalidMove')
275273
}
276274
}

0 commit comments

Comments
 (0)
Please sign in to comment.