DECLARE SUB Desmaio () COMMON SHARED px, py, portx, porty, din, mon, senha$ COMMON SHARED nome$(), raca$(), classe$(), forc(), vig(), agi(), inte(), per(), car(), rea(), dano(), vit(), mana(), fer(), exa(), xp() COMMON SHARED var(), sta(), equ(), mag(), hab(), equip() COMMON SHARED sala$(), movn(), movs(), movl(), movo() COMMON SHARED moner(), corpo(), porta() CLS LINE (0, 0)-(640, 480), 1, BF LINE (10, 10)-(630, 470), 9, B PRINT "" PRINT "Grim¢rio:" IF mag(1) > 0 THEN PRINT "(1) Dardos m¡sticos: "; mag(1) IF mag(2) > 0 THEN PRINT "(2) Armadura: "; mag(2) IF mag(3) > 0 THEN PRINT "(3) ConfusÆo: "; mag(3) IF mag(4) > 0 THEN PRINT "(4) Sono: "; mag(4) IF mag(5) > 0 THEN PRINT "(5) Teia: "; mag(5) IF mag(6) > 0 THEN PRINT "(6) Espelho: "; mag(6) IF mag(7) > 0 THEN PRINT "(7) Bola de fogo: "; mag(7) IF mag(8) > 0 THEN PRINT "(8) Invisibilidade: "; mag(8) IF mag(9) > 0 THEN PRINT "(9) Curar ferimentos: "; mag(9) IF mag(10) > 0 THEN PRINT "(10) Conjurar: "; mag(10) IF mag(11) > 0 THEN PRINT "(11) Ben‡Æo: "; mag(11) IF mag(12) > 0 THEN PRINT "(12) Medo: "; mag(12) IF mag(13) > 0 THEN PRINT "(13) Animar morto: "; mag(13) IF mag(14) > 0 THEN PRINT "(14) Dissipar magia: "; mag(14) IF mag(15) > 0 THEN PRINT "(15) Portal: "; mag(15) IF mag(16) > 0 THEN PRINT "(16) Recarregar cajados: "; mag(16) IF mag(17) > 0 THEN PRINT "(17) Levitar: "; mag(17) IF mag(18) > 0 THEN PRINT "(18) Regenerar: "; mag(18) IF mag(19) > 0 THEN PRINT "(19) Forma de Worg: "; mag(19) IF mag(20) > 0 THEN PRINT "(20) Maldi‡Æo: "; mag(20) IF mag(21) > 0 THEN PRINT "(21) Paralizar: "; mag(21) IF mag(22) > 0 THEN PRINT "(22) Esquecimento: "; mag(22) IF mag(23) > 0 THEN PRINT "(23) Drenar vida: "; mag(23) IF mag(24) > 0 THEN PRINT "(24) Encantar item: "; mag(24) IF mag(25) > 0 THEN PRINT "(25) Destrancar: "; mag(25) IF mag(26) > 0 THEN PRINT "(26) Detectar passagens: "; mag(26) IF mag(27) > 0 THEN PRINT "(27) Purifica‡Æo: "; mag(27) PRINT "" PRINT "Mana:"; mana(1) - exa(1); "/"; mana(1) INPUT "Feiti‡o: ", feit PRINT "" IF mag(feit) = 0 THEN GOTO fimgrim IF exa(1) + mag(feit) > mana(1) THEN INPUT "Quer se arriscar a desmaiar para usar esse feiti‡o? ", resp$ IF resp$ = "n" THEN GOTO fimgrim END IF SELECT CASE feit CASE 1: cust = 2 + (mag(feit) \ 2) CASE 2: cust = 3 + (mag(feit) \ 2) CASE 3: cust = 3 + (mag(feit) \ 2) CASE 4: cust = 4 + (mag(feit) \ 2) CASE 5: cust = 4 + (mag(feit) \ 2) CASE 6: cust = 4 + (mag(feit) \ 2) CASE 7: cust = 5 + (mag(feit) \ 2) CASE 8: cust = 5 + (mag(feit) \ 2) CASE 9: cust = 3 + (mag(feit) \ 2) CASE 10: cust = 5 + (mag(feit) \ 2) CASE 11: cust = 3 + (mag(feit) \ 2) CASE 12: cust = 4 + (mag(feit) \ 2) CASE 13: cust = 5 + (mag(feit) \ 2) CASE 14: cust = 4 + (mag(feit) \ 2) CASE 15: cust = 10 - (mag(feit) \ 2) CASE 16: cust = 4 + (mag(feit) \ 2) CASE 17: cust = 4 + (mag(feit) \ 2) CASE 18: cust = 4 + (mag(feit) \ 2) CASE 19: cust = 4 + (mag(feit) \ 2) CASE 20: cust = 3 + (mag(feit) \ 2) CASE 21: cust = 3 + (mag(feit) \ 2) CASE 22: cust = 3 + (mag(feit) \ 2) CASE 23: cust = 5 + (mag(feit) \ 2) CASE 24: cust = 4 + (mag(feit) \ 2) CASE 25: cust = 2 + (mag(feit) \ 2) CASE 26: cust = 3 + (mag(feit) \ 2) CASE 27: cust = 3 + (mag(feit) \ 2) END SELECT s = 0: d = per(1): DO d = d - 1: j = INT(RND * 6) + 1: IF j >= 4 THEN s = s + 1: IF j = 6 THEN d = d + 1 LOOP UNTIL d <= 0 dan = cust - s: IF dan < 1 THEN dan = 1 PRINT "Vocˆ sofre"; dan; "de exaustÆo" exa(1) = exa(1) + dan IF exa(1) >= mana(1) THEN Desmaio s = 0: d = mag(feit) + sta(3) + per(1) - 3: DO d = d - 1: j = INT(RND * 6) + 1: IF j >= 4 THEN s = s + 1: IF j = 6 THEN d = d + 1 LOOP UNTIL d <= 0 sta(3) = 0 PRINT "" IF s > 0 THEN SELECT CASE feit CASE 1: PRINT "Dardos de energia saem dos seus dedos" CASE 2: PRINT "Vocˆ se sente protegido": sta(8) = s CASE 3: PRINT "Ilusäes e luzes rodopiantes saem dos seus dedos" CASE 4: PRINT "Vocˆ boceja" CASE 5: PRINT "Uma teia m gica sai dos seus dedos e some" CASE 6: PRINT "Uma imagem de vocˆ aparece do seu lado": sta(9) = s CASE 7: PRINT "Uma bola de fogo sai de suas mÆos" CASE 8: PRINT "Vocˆ desaparece": sta(10) = s CASE 9: PRINT "Uma aura de luz brilha sobre vocˆ" fer(1) = fer(1) - s: IF fer(1) < 0 THEN fer(1) = 0 CASE 10 s = 0: d = car(1): DO d = d - 1: j = INT(RND * 6) + 1: IF j >= 4 THEN s = s + 1: IF j = 6 THEN d = d + 1 LOOP UNTIL d <= 0 IF s > 0 THEN PRINT "Vocˆ conjura um elemental": sta(13) = s ELSE PRINT "Vocˆ falha em conjurar um elemental" CASE 11: PRINT "Vocˆ pede uma ben‡Æo divina": sta(14) = s CASE 12: PRINT "Vocˆ exala uma aura de terror": sta(16) = s mag(9) = 0: mag(11) = 0: hab(8) = 0 CASE 13 mag(9) = 0: mag(11) = 0: hab(8) = 0 IF s > var(21) + 1 THEN IF px = 13 AND py = 12 AND corpo(2) = 1 THEN corpo(2) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 11 AND py = 5 AND corpo(3) = 1 THEN corpo(3) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 12 AND py = 7 AND corpo(4) = 1 THEN corpo(4) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 13 AND py = 5 AND corpo(5) = 1 THEN corpo(5) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 14 AND py <= 8 AND corpo(5) = 1 THEN corpo(5) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 13 AND py = 8 AND corpo(6) = 1 THEN corpo(6) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 9 AND py = 8 AND corpo(7) = 1 THEN corpo(7) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 11 AND py = 7 AND corpo(8) = 1 THEN corpo(8) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px >= 7 AND px <= 11 AND py = 8 AND corpo(8) = 1 THEN corpo(8) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 8 AND py = 5 AND corpo(11) = 1 THEN PRINT "Que tipo de programador idiota acha que ‚ poss¡vel criar um ESQUELETO do corpo de um INSETO?" IF px = 12 AND py = 1 AND corpo(19) = 1 THEN PRINT "Que tipo de programador idiota acha que ‚ poss¡vel criar um ESQUELETO do corpo de um INSETO?" IF px = 3 AND py = 12 AND corpo(20) = 1 THEN corpo(20) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 3 AND py = 19 AND corpo(25) = 1 THEN corpo(25) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 11 AND py = 12 AND corpo(26) = 1 THEN corpo(26) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 17 AND py = 12 AND corpo(27) = 1 THEN corpo(27) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 16 AND py = 16 AND corpo(28) = 1 THEN corpo(28) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro IF px = 2 AND py = 13 AND corpo(29) = 1 THEN PRINT "NÆo ‚ poss¡vel usar esse corpo para o encantamento": GOTO necro IF px = 15 AND py = 17 AND corpo(30) = 1 THEN corpo(30) = 2: PRINT "O esqueleto do corpo no chÆo explode para fora dele e se levanta": var(21) = var(21) + 1: sta(15) = 5: GOTO necro PRINT "NÆo h  corpo para fazer o encantamento" necro: ELSE PRINT "O encantamento falhou" END IF CASE 14: PRINT "Suas mÆos brilham com uma luz p lida" IF px = 9 AND py = 11 AND porta(9) = 0 AND s >= 2 THEN PRINT "Vocˆ dissipa a magia de prote‡Æo": porta(9) = 1 IF px = 9 AND py = 12 AND porta(9) = 0 AND s >= 2 THEN PRINT "Vocˆ dissipa a magia de prote‡Æo": porta(9) = 1 CASE 15 PRINT "Locais:" PRINT "(1) Tricard" PRINT "(2) Uktaw" PRINT "(3) Tarnich" INPUT "Para onde vocˆ quer ir? ", resp IF resp = 1 THEN px = 10: py = 3 IF resp = 2 THEN px = 7: py = 16 IF resp = 3 THEN px = 18: py = 4 CASE 16 IF equ(38) > 0 THEN PRINT "(1) Cajado de raios ("; equ(38); ")" IF equ(39) > 0 THEN PRINT "(2) Cajado de bola de fogo ("; equ(39); ")" IF equ(40) > 0 THEN PRINT "(3) Cajado de cone de gelo ("; equ(40); ")" IF equ(43) > 0 THEN PRINT "(4) Cajado recarreg vel do jester ("; equ(43); ")" PRINT "" INPUT "Qual cajado? ", resp IF resp = 1 AND equ(38) > 0 THEN PRINT "Vocˆ recarrega o cajado": equ(38) = s + 1 IF resp = 2 AND equ(39) > 0 THEN PRINT "Vocˆ recarrega o cajado": equ(39) = s + 1 IF resp = 3 AND equ(40) > 0 THEN PRINT "Vocˆ recarrega o cajado": equ(40) = s + 1 IF resp = 4 AND equ(43) > 0 THEN PRINT "Vocˆ recarrega o cajado": equ(43) = s + 1 CASE 17 IF px = 8 AND py = 6 THEN IF s >= 3 THEN PRINT "Vocˆ levita pelo buraco acima" px = 8: py = 5 END IF IF px = 8 AND py = 5 THEN IF s >= 3 THEN PRINT "Vocˆ levita pelo buraco abaixo" px = 8: py = 6 END IF IF px = 17 AND py = 13 THEN IF s >= 4 THEN PRINT "Vocˆ levita pelo nada at‚ alcan‡ar a borda de alguma coisa" px = 19: py = 13 END IF PRINT "Vocˆ perde a concentra‡Æo a p ra de levitar" CASE 18: PRINT "Uma aura verde cerca seu corpo": sta(6) = s * 2 CASE 19: PRINT "Vocˆ se transforma num grande lobo b¡pede": sta(26) = s CASE 20: PRINT "Vocˆ amaldi‡oa sua sorte" mag(9) = 0: mag(11) = 0: hab(8) = 0 CASE 21: PRINT "As coisas parecem um pouco lentas" CASE 22: PRINT "Que feiti‡o mesmo?" CASE 23: PRINT "NÆo h  alvo v lido" mag(9) = 0: mag(11) = 0: hab(8) = 0 CASE 24 PRINT "Invent¢rio:" IF equ(1) > 0 THEN PRINT "(1) Adaga "; : IF equip(1) = 1 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(2) > 0 THEN PRINT "(2) Espada "; : IF equip(1) = 2 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(3) > 0 THEN PRINT "(3) Machado "; : IF equip(1) = 3 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(4) > 0 THEN PRINT "(4) Lan‡a "; : IF equip(1) = 4 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(5) > 0 THEN PRINT "(5) Arco "; : IF equip(1) = 5 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(6) > 0 THEN PRINT "(6) Funda "; : IF equip(1) = 6 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(7) > 0 THEN PRINT "(7) Corselete "; : IF equip(3) = 7 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(8) > 0 THEN PRINT "(8) Cota de malha "; : IF equip(3) = 8 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(9) > 0 THEN PRINT "(9) Cota de talas "; : IF equip(3) = 9 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(10) > 0 THEN PRINT "(10) Armadura completa "; : IF equip(3) = 10 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(11) > 0 THEN PRINT "(11) Escudo "; : IF equip(2) = 11 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(12) > 0 THEN PRINT "(12) Escudo grande "; : IF equip(2) = 12 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(13) > 0 THEN PRINT "(13) Ma‡a "; : IF equip(1) = 13 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(14) > 0 THEN PRINT "(14) Martelo "; : IF equip(1) = 14 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(15) > 0 THEN PRINT "(15) Montante "; : IF equip(1) = 15 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(16) > 0 THEN PRINT "(16) Alabarda "; : IF equip(1) = 16 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(17) > 0 THEN PRINT "(17) Arco composto "; : IF equip(1) = 17 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(18) > 0 THEN PRINT "(18) Cajado "; : IF equip(1) = 18 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(19) > 0 THEN PRINT "(19) Foice "; : IF equip(1) = 19 THEN PRINT "(Eq)" ELSE PRINT "" IF equ(20) > 0 THEN PRINT "(20) Espada curta "; : IF equip(1) = 20 THEN PRINT "(Eq)" ELSE PRINT "" PRINT "" INPUT "Encantar: ", resp IF equ(resp) > 0 AND s >= equ(resp) + 1 THEN equ(resp) = equ(resp) + 1: PRINT "Vocˆ encanta o item" ELSE equ(resp) = equ(resp) - 1: PRINT " O encantamento falhou. O item foi danificado" CASE 25 IF px = 9 AND py = 8 AND movn(9, 8) = 0 AND s >= 2 THEN PRINT "Vocˆ destranca a porta norte": movn(9, 8) = 1 ELSE PRINT "O feiti‡o falhou!" IF px = 7 AND py = 8 AND porta(1) = 0 THEN PRINT "Vocˆ nÆo pode destrancar essa porta assim" IF px = 5 AND py = 6 AND porta(4) = 0 AND s >= 2 THEN PRINT "Vocˆ destranca a porta sul": porta(4) = 1 ELSE PRINT "O feiti‡o falhou!" IF px = 8 AND py = 13 THEN INPUT "A porta oeste(o) ou a porta sul(s)?", resp$ IF resp$ = "o" AND porta(7) = 0 AND s >= 3 THEN PRINT "Vocˆ destranca a porta oeste": porta(7) = 1 ELSE PRINT "O feiti‡o falhou!" IF resp$ = "s" AND porta(8) = 0 AND s >= 3 THEN PRINT "Vocˆ destranca a porta sul": porta(8) = 1 ELSE PRINT "O feiti‡o falhou!" END IF IF px = 16 AND py = 15 AND movs(16, 15) = 0 AND s >= 4 THEN PRINT "Vocˆ destranca a porta sul": movs(16, 15) = 1 ELSE PRINT "O feiti‡o falhou!" IF px = 16 AND py = 16 AND movn(16, 16) = 0 AND s >= 4 THEN PRINT "Vocˆ destranca a porta norte": movn(16, 16) = 1 ELSE PRINT "O feiti‡o falhou!" IF px = 3 AND py = 7 AND movl(3, 7) = 0 THEN PRINT "Vocˆ nÆo pode destrancar essa porta assim" CASE 26 IF px = 5 AND py = 8 AND porta(2) = 0 AND s >= 2 THEN PRINT "Vocˆ encontra uma passagem a sul": porta(2) = 1 ELSE PRINT "O feiti‡o falhou!" IF px = 9 AND py = 13 AND porta(6) = 0 AND s >= 2 THEN PRINT "Vocˆ encontra uma passagem a oeste": porta(6) = 1 ELSE PRINT "O feiti‡o falhou!" IF px = 12 AND py = 12 AND porta(10) = 0 AND s >= 2 THEN PRINT "Vocˆ encontra uma passagem a leste": porta(10) = 1 ELSE PRINT "O feiti‡o falhou!" CASE 27: IF s > sta(21) + sta(18) THEN PRINT "Vocˆ se sente purificado": sta(21) = 0: sta(18) = 0 ELSE PRINT "O feiti‡o falhou!" END SELECT ELSE PRINT "O feiti‡o falhou!" END IF IF INT(RND * 200) = 0 THEN PRINT "Sua habilidade com esse feiti‡o melhorou": mag(feit) = mag(feit) + 1 fimgrim: INPUT "", press CHAIN "C:\Blarg!\Diacho\Salas.bas" SUB Desmaio INPUT "Vocˆ desmaiou!", press INPUT "Vocˆ acorda um tempo depois", press sta(1) = 0: sta(2) = 0: sta(4) = 0: sta(5) = 0: sta(6) = 0: sta(8) = 0: sta(10) = 0: sta(11) = 0: sta(13) = 0: sta(14) = 0: sta(16) = 0: sta(19) = 0 exa(1) = mana(1) - 1 CHAIN "C:\Blarg!\Diacho\Salas.bas" END SUB