-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCronicasDeArkoland.cyd
518 lines (470 loc) · 14.7 KB
/
CronicasDeArkoland.cyd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
[[
#Inicio
PAGEPAUSE 1
BORDER 0
BRIGHT 1
FLASH 0
PAPER 0
CLEAR
INK 6
]]
[[REPCHAR 42,42]]
*[[TAB 40]]*
*[[TAB 10 : INK 5]]CRONICAS DE ARKALAND[[TAB 10: INK 6]]*
*[[TAB 40]]*
*[[TAB 11 : INK 7]]de Javier San José[[TAB 11: INK 6]]*
*[[TAB 40]]*
[[REPCHAR 42,42]]
[[INK 7]]
[[TAB 3]]Publicado en CAAD, del num. 1 al 10.
[[TAB 6]]Transcripción por [[INK 2]]Tranqui69[[INK 7]]
[[TAB 8]]Adaptación por [[INK 4]]Cronomantic[[INK 7]]
[[TAB 5]]Hecho con [[INK 5]]ChooseYourDestiny v0.6[[INK 7]]
[[TAB 3]]Pulsa [[INK 6]]ENTER [[INK 7]]o [[INK 6]]SPACE [[INK 7]]para continuar.
[[
CENTER
WAITKEY
CLEAR
TAB 12
INK 5]]INSTRUCCIONES[[INK 7]]
- Pulsa [[INK 6]]ENTER [[INK 7]]o [[INK 6]]SPACE [[INK 7]]para avanzar el texto o confirmar una selección.
- Pulsa [[INK 6]]Q [[INK 7]]o [[INK 6]]A [[INK 7]]para seleccionar una opción cuando se presente una decisión.
[[TAB 18]]***
Ahora se detallará el sistema de juego. ¿Deseas leerlo antes?
[[TAB 4: OPTION GOTO LeerManual :INK 4]]Sí.[[INK 7]]
[[TAB 4: OPTION GOTO SaltarManual :INK 2]]No.[[INK 7]]
(Es recomendable leérselo si juegas por primera vez)
[[CHOOSE]]
[[ #LeerManual
#SaltarManual
CENTER : WAITKEY]]
[[/*--------------------------------------*/]]
[[
/* Variables */
DECLARE 0 AS PuntosVitales
DECLARE 7 AS Destreza
DECLARE 8 AS Suerte
DECLARE 1 AS ProteccionCabeza
DECLARE 2 AS ProteccionBrazoIzq
DECLARE 3 AS ProteccionBrazoDer
DECLARE 4 AS ProteccionPiernaIzq
DECLARE 5 AS ProteccionPiernaDer
DECLARE 6 AS ProteccionCuerpo
DECLARE 9 AS NumRacionesComida
DECLARE 10 AS NumDoblones
DECLARE 11 AS rejillaCabeza
DECLARE 12 AS rejillaBrazoIzq
DECLARE 13 AS rejillaBrazoDer
DECLARE 14 AS rejillaPiernaIzq
DECLARE 15 AS rejillaPiernaDer
DECLARE 16 AS rejillaCuerpo
DECLARE 17 AS filaRejilla
DECLARE 18 AS columnaRejilla
DECLARE 19 AS valorCasillaRejilla
DECLARE 20 AS puntosVitalesProtagonista
DECLARE 21 AS proteccionCabezaProtagonista
DECLARE 22 AS proteccionBrazoIzqProtagonista
DECLARE 23 AS proteccionBrazoDerProtagonista
DECLARE 24 AS proteccionPiernaIzqProtagonista
DECLARE 25 AS proteccionPiernaDerProtagonista
DECLARE 26 AS proteccionCuerpoProtagonista
DECLARE 27 AS destrezaProtagonista
DECLARE 28 AS suerteProtagonista
DECLARE 29 AS idEnemigo
DECLARE 30 AS puntosVitalesEnemigo
DECLARE 31 AS proteccionCabezaEnemigo
DECLARE 32 AS proteccionBrazoIzqEnemigo
DECLARE 33 AS proteccionBrazoDerEnemigo
DECLARE 34 AS proteccionPiernaIzqEnemigo
DECLARE 35 AS proteccionPiernaDerEnemigo
DECLARE 36 AS proteccionCuerpoEnemigo
DECLARE 37 AS destrezaEnemigo
DECLARE 29 AS resultadoCombate
DECLARE 38 AS resSuerte
DECLARE 255 AS tmp1
DECLARE 254 AS tmp2
#Inicio
/* Cabecera genérica*/
PAGEPAUSE 1
BORDER 0
BRIGHT 1
FLASH 0
PAPER 0
CLEAR
INK 7
]][[
#GeneracionPersonaje
RANDOMIZE
#Reroll
CLEAR
SET PuntosVitales TO RANDOM(1 + 18, 12 + 18)
SET Destreza TO RANDOM(1,12)
SET Suerte TO RANDOM(1 + 3, 12 + 3)
SET ProteccionCabeza TO RANDOM(1 + 11, 6 + 11)
SET ProteccionBrazoIzq TO RANDOM(1 + 10, 6 + 10)
SET ProteccionBrazoDer TO RANDOM(1 + 10, 6 + 10)
SET ProteccionPiernaIzq TO RANDOM(1 + 10, 6 + 10)
SET ProteccionPiernaDer TO RANDOM(1 + 10, 6 + 10)
SET ProteccionCuerpo TO RANDOM(1 + 12, 6 + 12)
SET NumRacionesComida TO 4
SET NumDoblones TO RANDOM(1 + 18, 12 + 18)
GOSUB recalcularEstadisticasProta
GOSUB imprimeEstadisticasJugador
INK 7
AT 0, 12]]¿Estás satisfecho con estos valores?
[[TAB 4 : OPTION GOTO SimularCombate : INK 4]]Sí.[[INK 7]]
[[TAB 4 : OPTION GOTO Reroll : INK 2]]No.[[
INK 7 : CHOOSE
]][[
#SimularCombate
SET idEnemigo TO 0
GOSUB Combate
MARGINS 0, 0, 32, 24
CLEAR
CENTER : WAITKEY : END
]][[
#Combate
CLEAR
GOSUB asignarEstadisticasEnemigo
GOSUB imprimeEstadoCombatientes
MARGINS 15, 0, 17, 24
CLEAR
#rondaCombate
/*Comenzamos combate*/
#turnoJugador
SET tmp1 TO 0
]]Es tu turno, ¿Que deseas hacer?
[[OPTION GOTO ataqueJugadorNormal]]Atacar
[[OPTION GOTO ataqueJugadorSuerte]]Confío en la suerte
[[
SET tmp1 TO 0
CHOOSE
#ataqueJugadorSuerte
GOSUB tiradaSuerte
SET tmp1 TO 1
#ataqueJugadorNormal
SET tmp2 TO RANDOM(1, 12)
SET tmp2 TO @tmp2 + @destrezaProtagonista
IF @tmp1 <> 0 THEN /*Tirada de suerte*/
IF @resSuerte <> 0 THEN
/* Buena tirada de suerte */
SET tmp2 TO @tmp2 + 1
ELSE
/* malaTiradaDeSuerte */
SET tmp2 TO @tmp2 - 1
ENDIF
ENDIF
/* Parte del cuerpo a atacar */
SET tmp1 TO RANDOM(1, 6)
/*atacasCabeza*/
IF @tmp1 = 1 THEN
]]Atacas a la cabeza con [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionCabezaEnemigo
ELSE
/*atacasBrazoDerecho*/
IF @tmp1 = 2 THEN
]]Atacas al brazo derecho con [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionBrazoDerEnemigo
ELSE
/*atacasBrazoIzquierdo*/
IF @tmp1 = 3 THEN
]]Atacas al brazo izquierdo con [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionBrazoIzqEnemigo
ELSE
/*atacasPiernaDerecha*/
IF @tmp1 = 4 THEN
]]Atacas la pierna derecha con [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionPiernaDerEnemigo
ELSE
/*atacasPiernaIzquierda*/
IF @tmp1 > 5 THEN
]]Atacas la pierna izquierda con [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionPiernaIzqEnemigo
ELSE
/*atacasCuerpo*/
]]Atacas al torso con [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionCuerpoEnemigo
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
/*resultadoAtaqueProtagonista*/
IF @tmp1 = 0 THEN
]]¡No consigues hacer daño a [[GOSUB imprimeIdEnemigo]]!
[[
ELSE
]]Hieres a [[GOSUB imprimeIdEnemigo]] con [[PRINT @tmp1]].
[[
SET puntosVitalesEnemigo TO @puntosVitalesEnemigo - @tmp1
ENDIF
/*FinTurnoJugador*/
WAITKEY
GOSUB imprimeEstadoCombatientes
MARGINS 15, 0, 17, 24
CLEAR
/* Revisar estado */
IF @puntosVitalesEnemigo = 0 THEN GOTO victoriaCombate ENDIF
IF @puntosVitalesProtagonista = 0 THEN GOTO derrotaCombate ENDIF
/* Turno del enemigo */
/*turnoEnemigo*/
SET tmp1 TO 0
GOSUB imprimeIdEnemigo]] te ataca, ¿Que deseas hacer?
[[OPTION GOTO defensaJugadorNormal]]Defender
[[OPTION GOTO defensaJugadorSuerte]]Confío en la suerte
[[
SET tmp1 TO 0
CHOOSE
#defensaJugadorSuerte
GOSUB tiradaSuerte
SET tmp1 TO 1
#defensaJugadorNormal
SET tmp2 TO RANDOM(1, 12)
SET tmp2 TO @tmp2 + @destrezaEnemigo
IF @tmp1 <> 0 THEN /*Tirada de suerte*/
IF @resSuerte <> 0 THEN
/* Buena tirada de suerte */
SET tmp2 TO @tmp2 - 1
ELSE
/* malaTiradaDeSuerte */
SET tmp2 TO @tmp2 + 1
ENDIF
ENDIF
/* Parte del cuerpo atacada */
SET tmp1 TO RANDOM(1, 6)
/*golpeCabeza*/
IF @tmp1 = 1 THEN
]]Recibes un golpe en la cabeza de [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionCabezaProtagonista
ELSE
/* golpeBrazoDerecho */
IF @tmp1 = 2 THEN
]]Recibes un golpe en el brazo derecho de [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionBrazoDerProtagonista
ELSE
/* golpeBrazoIzquierdo */
IF @tmp1 = 3 THEN
]]Recibes un golpe en el brazo izquierdo de [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionBrazoIzqProtagonista
ELSE
/*golpePiernaDerecha*/
IF @tmp1 = 4 THEN
]]Recibes un golpe en la pierna derecha de [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionPiernaDerProtagonista
ELSE
/*golpePiernaIzquierda*/
IF @tmp1 = 5 THEN
]]Recibes un golpe en la pierna izquierda de [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionPiernaIzqProtagonista
ELSE
/*golpeCuerpo*/
]]Recibes un golpe en el torso de [[PRINT @tmp2]].
[[
SET tmp1 TO @tmp2 - @proteccionCuerpoProtagonista
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
/*resultadoAtaqueEnemigo*/
IF @tmp1 = 0 THEN
]]¡Has conseguido defenderte!
[[ ELSE
]]Resultas herido con [[PRINT @tmp1]].
[[
SET puntosVitalesProtagonista TO @puntosVitalesProtagonista - @tmp1
ENDIF
WAITKEY
GOSUB imprimeEstadoCombatientes
MARGINS 15, 0, 17, 24
CLEAR
/* revisar estado */
IF @puntosVitalesEnemigo = 0 THEN GOTO victoriaCombate ENDIF
IF @puntosVitalesProtagonista = 0 THEN GOTO derrotaCombate ENDIF
GOTO rondaCombate
#victoriaCombate
]]¡Has vencido al [[GOSUB imprimeIdEnemigo]]![[
WAITKEY
SET resultadoCombate TO 0
RETURN
#derrotaCombate
]]¡[[GOSUB imprimeIdEnemigo]] te ha matado![[
WAITKEY
SET resultadoCombate TO 1
RETURN
/****************************************/
]][[
#imprimeEstadoCombatientes
MARGINS 0, 0, 15, 24
CLEAR
SET rejillaCabeza TO @proteccionCabezaProtagonista
SET rejillaBrazoIzq TO @proteccionBrazoIzqProtagonista
SET rejillaBrazoDer TO @proteccionBrazoDerProtagonista
SET rejillaPiernaIzq TO @proteccionPiernaIzqProtagonista
SET rejillaPiernaDer TO @proteccionPiernaDerProtagonista
SET rejillaCuerpo TO @proteccionCuerpoProtagonista
AT 0, 2 ]]P.V.:[[ PRINT @puntosVitalesProtagonista
AT 0, 4 ]]Des.:[[ PRINT @destrezaProtagonista
AT 0, 6 ]]Sue.:[[ PRINT @suerteProtagonista
AT 0, 8 ]]Dob.:[[ PRINT @NumDoblones
SET columnaRejilla TO 6
SET filaRejilla TO 2
GOSUB imprimeRejilla
SET rejillaCabeza TO @proteccionCabezaEnemigo
SET rejillaBrazoIzq TO @proteccionBrazoIzqEnemigo
SET rejillaBrazoDer TO @proteccionBrazoDerEnemigo
SET rejillaPiernaIzq TO @proteccionPiernaIzqEnemigo
SET rejillaPiernaDer TO @proteccionPiernaDerEnemigo
SET rejillaCuerpo TO @proteccionCuerpoEnemigo
AT 0, 13 : GOSUB imprimeIdEnemigo
AT 0, 16 ]]P.V.:[[ PRINT @puntosVitalesEnemigo
AT 0, 18 ]]Des.:[[ PRINT @destrezaEnemigo
SET columnaRejilla TO 6
SET filaRejilla TO 14
GOSUB imprimeRejilla
RETURN
/****************************************/
]][[
#imprimeIdEnemigo
IF @idEnemigo = 0 THEN
]]Hombre Lagarto[[ RETURN
ENDIF
IF @idEnemigo = 1 THEN
]]Jinete[[ RETURN
ENDIF
IF @idEnemigo = 2 THEN
]]Goblin[[ RETURN
ENDIF
IF @idEnemigo = 3 THEN
]]Rey Fantasma[[ RETURN
ENDIF
IF @idEnemigo = 4 THEN
]]Dragón[[ RETURN
ENDIF
IF @idEnemigo = 5 THEN
]]Troll[[ RETURN
ENDIF
IF @idEnemigo = 6 THEN
]]Monstruo de Gelatina[[ RETURN
ENDIF
IF @idEnemigo = 7 THEN
]]Demonio[[ RETURN
ENDIF
IF @idEnemigo = 8 THEN
]]Demonio[[ RETURN
ENDIF
]]NO IMPLEMENTADO[[ END
/****************************************/
]][[
#imprimeEstadisticasJugador
SET rejillaCabeza TO @proteccionCabezaProtagonista
SET rejillaBrazoIzq TO @proteccionBrazoIzqProtagonista
SET rejillaBrazoDer TO @proteccionBrazoDerProtagonista
SET rejillaPiernaIzq TO @proteccionPiernaIzqProtagonista
SET rejillaPiernaDer TO @proteccionPiernaDerProtagonista
SET rejillaCuerpo TO @proteccionCuerpoProtagonista
SET columnaRejilla TO 21
SET filaRejilla TO 4
AT 12, 0 : INK 6]]ESTADISTICAS[[
AT 12, 1 : REPCHAR 145, 12]]
[[INK 5]]- Puntos Vitales: [[INK 7: PRINT @puntosVitalesProtagonista]]
[[INK 5]]- Destreza:[[TAB 7 : INK 7 : PRINT @destrezaProtagonista]]
[[INK 5]]- Suerte:[[TAB 9 : INK 7: PRINT @suerteProtagonista]]
[[INK 6]]- Doblones:[[TAB 11 : INK 7: PRINT @NumDoblones]]
[[INK 4]]- Raciones de comida: [[INK 7: PRINT @NumRacionesComida]]
[[INK 5: AT 20, 3 ]]- Protección:[[
INK 7
GOSUB imprimeRejilla
RETURN
/****************************************/
]][[
#imprimeRejilla
AT @columnaRejilla, @filaRejilla
CHAR 32 : CHAR 32 : CHAR 32 : CHAR 148 : CHAR 145 : CHAR 145 : CHAR 149 : CHAR 32 : CHAR 32 : CHAR 32
AT @columnaRejilla, @filaRejilla + 1
CHAR 32 : CHAR 32 : CHAR 32 : CHAR 144 : SET valorCasillaRejilla TO @rejillaCabeza : GOSUB imprimeValorCasillaRejilla : CHAR 144 : CHAR 32 : CHAR 32 : CHAR 32
AT @columnaRejilla, @filaRejilla + 2
CHAR 148 : CHAR 145 : CHAR 145 : CHAR 154 : CHAR 145 : CHAR 145 : CHAR 154 : CHAR 145 : CHAR 145 : CHAR 149
AT @columnaRejilla, @filaRejilla + 3
CHAR 144 : SET valorCasillaRejilla TO @rejillaBrazoIzq : GOSUB imprimeValorCasillaRejilla
CHAR 144 : SET valorCasillaRejilla TO @rejillaCuerpo : GOSUB imprimeValorCasillaRejilla
CHAR 144 : SET valorCasillaRejilla TO @rejillaBrazoDer : GOSUB imprimeValorCasillaRejilla : CHAR 144
AT @columnaRejilla, @filaRejilla + 4
CHAR 150 : CHAR 145 : CHAR 145 : CHAR 154 : CHAR 145 : CHAR 145 : CHAR 154 : CHAR 145 : CHAR 145 : CHAR 151
AT @columnaRejilla, @filaRejilla + 5
CHAR 144 : SET valorCasillaRejilla TO @rejillaPiernaIzq : GOSUB imprimeValorCasillaRejilla
CHAR 144 : CHAR 32 : CHAR 32 : CHAR 144
SET valorCasillaRejilla TO @rejillaPiernaDer : GOSUB imprimeValorCasillaRejilla : CHAR 144
AT @columnaRejilla, @filaRejilla + 6
CHAR 146 : CHAR 145 : CHAR 145 : CHAR 147 : CHAR 32 : CHAR 32 : CHAR 146 : CHAR 145 : CHAR 145 : CHAR 147
RETURN
/**********************************/
]][[
#imprimeValorCasillaRejilla
IF @valorCasillaRejilla >= 100 THEN
PRINT 99
RETURN
ENDIF
IF @valorCasillaRejilla >= 10 THEN
PRINT @valorCasillaRejilla
RETURN
ENDIF
CHAR 32 : PRINT @valorCasillaRejilla
RETURN
/**********************************/
]][[
#recalcularEstadisticasProta
SET puntosVitalesProtagonista TO @PuntosVitales
SET proteccionCabezaProtagonista TO @ProteccionCabeza
SET proteccionBrazoIzqProtagonista TO @ProteccionBrazoIzq
SET proteccionBrazoDerProtagonista TO @ProteccionBrazoDer
SET proteccionPiernaIzqProtagonista TO @ProteccionPiernaIzq
SET proteccionPiernaDerProtagonista TO @ProteccionPiernaDer
SET proteccionCuerpoProtagonista TO @ProteccionCuerpo
SET destrezaProtagonista TO @Destreza
SET suerteProtagonista TO @Suerte
RETURN
/****************************************/
]][[
#asignarEstadisticasEnemigo
IF @idEnemigo = 0 THEN
SET puntosVitalesEnemigo TO 10
SET destrezaEnemigo TO 5
SET proteccionCabezaEnemigo TO 14
SET proteccionBrazoIzqEnemigo TO 10
SET proteccionBrazoDerEnemigo TO 10
SET proteccionPiernaIzqEnemigo TO 11
SET proteccionPiernaDerEnemigo TO 11
SET proteccionCuerpoEnemigo TO 13
RETURN
ENDIF
/* No implementado*/
END
]][[
#tiradaSuerte
SET resSuerte TO RANDOM(1,6)
IF @resSuerte > @suerteProtagonista THEN
]]¡Has tenido MALA SUERTE!
[[
SET resSuerte TO 0
SET suerteProtagonista TO @suerteProtagonista-1
ELSE
]]¡Has tenido BUENA SUERTE!
[[
SET resSuerte TO 1
SET suerteProtagonista TO @suerteProtagonista-1
ENDIF
RETURN
/****************************************/
]]