Make your own free website on Tripod.com
') document.write('
') document.write('
') //-DRAW THE MAP i=0; while (i < 59) {for (h=0; h < 9; h++) {document.write(''); i++ }; h=0; i++; document.write("
")} document.write('
') //-DRAW HERO document.images[lToI(heroPos)].src = heroSprite //-DRAW MONSTERS for (m=0; monType[m] != "end"; m++) {document.images[lToI(monLoc[m])].src = monSprite[m]} //-DRAW ITEMS for (m=0; itemType[m] != "end"; m++) {document.images[lToI(itemLoc[m])].src = itemSprite[m]} //-DRAW TERRAINS for (m=0; terrType[m] != "end"; m++) {document.images[lToI(terrLoc[m])].src = terrSprite[m]} //-DRAW STAT BOXES document.write('
physique
agility
perception
mentality
current physique
current agility
social status
weapon risk
') //-CREDIT LINE document.write('
hymn@webtv.net Fantastic Gateway The DungeonPager
') fillForms() document.write('
') } function fillForms() { document.it.physique.value = physique document.it.agility.value = agility document.it.perception.value = perception document.it.mentality.value = mentality document.it.phyStat.value = phyStat document.it.agiStat.value = agiStat document.it.socStat.value = socStat document.it.risk.value = risk } function oldSprite(oldPos) { //-CHECK FOR EXISTING MONSTERS for (m=0; monType[m] != "end"; m++) {if (oldPos == monLoc[m]) return monSprite[m]} //-CHECK FOR EXISTING TERRAINS for (m=0; terrType[m] != "end"; m++) {if (oldPos == terrLoc[m]) return terrSprite[m]} //-CHECK FOR EXISTING ITEMS for (m=0; itemType[m] != "end"; m++) {if (oldPos == itemLoc[m]) return itemSprite[m]} return "transparent.gif" } function move(moveTo) { validMove=false if (moveTo == heroPos) heal() //-CHECK FOR LEGAL MOVES if (moveTo == heroPos+1 || moveTo == heroPos-1 || moveTo == heroPos+9 || moveTo == heroPos+10 || moveTo == heroPos+11 || moveTo == heroPos-9 || moveTo == heroPos-10 || moveTo == heroPos-11) { validMove=true; //-CHECK FOR TERRAIN COLLISIONS for (m=0; terrType[m] != "end"; m++) {if (moveTo == terrLoc[m]) contact(terrType[m], "hero")} //-CHECK FOR MONSTER COLLISIONS IF LEGAL if (validMove==true) {for (m=0; monType[m] != "end"; m++) {if (moveTo == monLoc[m]) contact(monType[m], "hero")}} //-CHECK FOR ITEM COLLISIONS for (m=0; itemType[m] != "end"; m++) {if (moveTo == itemLoc[m]) contact(itemType[m], "hero")} } //-EXECUTE MOVE IF LEGAL if (validMove==true) {document.images[lToI(heroPos)].src = oldSprite(heroPos); heroPos = moveTo} //-MOVE MONSTERS for (n=0; monType[n] != "end"; n++) {if (monLoc[n] >= 0) monMove(monLoc[n])}; //-DRAW HERO document.images[lToI(heroPos)].src = "hero.jpg"; fillForms() } function monMove(monPos) { validMove = true //-GENERATE RANDOM MOVE direction = Math.round(Math.random()*monIq[n]) if (direction < 1) moveTo = monPos-1; else if (direction == 1) moveTo = monPos+1; else if (direction == 2) moveTo = monPos-10; else if (direction == 3) moveTo = monPos+10; else if (direction > 3) smartMove(monPos); else return; //-CHECK FOR LEGAL MOVE if (moveTo < 0 || moveTo > 58) return; if (moveTo == 9 || moveTo == 19 || moveTo == 29 || moveTo == 39 || moveTo == 49) return; //-CHECK FOR TERRAIN COLLISIONS for (p=0; terrType[p] != "end"; p++) {if (moveTo == terrLoc[p]) contact(terrType[p], monType[n])} //-CHECK FOR HERO COLLISIONS if (moveTo == heroPos) contact("hero", monType[n]); if (monLoc[n] < 0) {document.images[lToI(monPos)].src = oldSprite(monPos); return} //-CHECK FOR ITEM COLLISIONS for (p=0; itemType[p] != "end"; p++) {if (moveTo == itemLoc[p]) contact(itemType[p], itemType[n])} if (validMove == false) return; monLoc[n] = moveTo; document.images[lToI(monPos)].src = oldSprite(monPos); document.images[lToI(moveTo)].src = monSprite[n] } function smartMove(sitPos) { if (sitPos < 9) posTens = 0; else posTens = Math.floor(sitPos/10); posOnes = sitPos - posTens*10 if (monTarget[n] < 9) tarTens = 0 else tarTens = Math.floor(monTarget[n]/10); tarOnes = monTarget[n]- tarTens*10 if (posTens < tarTens) moveTo = sitPos+10; if (posTens > tarTens) moveTo = sitPos-10; if (posOnes < tarOnes) moveTo = sitPos+1; if (posOnes >= tarOnes) moveTo = sitPos-1 } function combat(mon) { document.images[lToI(heroPos)].src = heroSprite; monLoc[mon]=-99 monRoll = Math.round(monSpeed[mon]*(Math.random()+Math.random())/2); total = monSize[mon]+monRoll; if (wpnType == "unarmed") {useUnarmed(); return}; heroRoll = Math.round(Math.random()*risk+Math.random()*risk); if (heroRoll > risk) heroRoll = risk; dam = parseInt(total)-parseInt(heroRoll) damage(dam) } function useUnarmed() { risk = physique/2 + agility/2 + perception/2 + mentality/2 heroRoll = Math.round(Math.random()*rating) pcap = physique acap = agility/2 if (pcap > acap) {fincap = pcap} else {fincap = acap}; if (heroRoll > fincap) {roll = fincap}; alert("You attack unarmed; (Phy="+physique+", Agi="+agility+", Per="+perception+", Men="+mentality+"), rolling a "+heroRoll); dam = parseInt(total)-parseInt(heroRoll); damage(dam) } function damage(ouch) { if (ouch < 0) {alert("no damage"); return} agiStat -= ouch; if (agiStat < 0) {ouch = agiStat-2*agiStat; agiStat = 0}; else ouch = 0; phyStat -= ouch; if (phyStat < 0) {ouch = phyStat-2*phyStat; phyStat = 0}; else ouch = 0; socStat -= ouch; if (socStat < 1) alert("you die"); else alert("You now have "+agiStat+" agility, "+phyStat+" physique, and "+socStat+" social status") } function heal() { if (agiStat < agility) agiStat++; if (phyStat < physique) { roll = Math.round(Math.random()*5)+1 result = "you feel no better than yesterday" if (roll <= physique) {result = "you heal one physique point"; phyStat++} alert(result) } } function calcRISK(weapon) { var phy = physique var agi = agility var per = perception var men = mentality if (phy < agi/2) phy = agi/2; axeRISK = Math.round(phy*1); spearRISK = Math.round(agi/3 + phy/3 + 1); if (agi < phy/2) agi = phy/2; swordRISK = Math.round(agi*1); shtswdRISK = Math.round(phy/4 + agi/4 + per/4 + men/4 + .5); if (weapon == "axe") {newRisk = axeRISK}; if (weapon == "sword") {newRisk = swordRISK}; if (weapon == "spear") {newRisk = spearRISK}; if (weapon == "shortsword") {newRisk = shtswdRISK}; if (newRisk > risk) {risk = newRisk; alert("your risk is now "+risk)}; else alert("this weapon is not as good as your present one") } function altar() { alert("you have earned an expertise point") if (confirm("do you want the point added to physique?") == true) {physique++; itemLoc[m] = -99; return} if (confirm("do you want the point added to agility?") == true) {agility++; itemLoc[m] = -99; return} if (confirm("do you want the point added to perception?") == true) {perception++; itemLoc[m] = -99; return} if (confirm("do you want the point added to mentality?") == true) {mentality++; itemLoc[m] = -99; return} } //--All copies must include this message //- Permission is granted to reproduce //- for non-commercial use only. //- original by hymn@webtv.net //- http://members.tripod.com/~AO //---CUT & PASTE DATA BELOW--- heroPos=0; heroSprite="hero.jpg"; monType[0]="skeleton"; monSpeed[0]=8; monSize[0]=2; monLoc[0]=5; monIq[0]=4; monTarget[0]=0; monSprite[0]="skeleton.jpg"; monType[1]="skeleton"; monSpeed[1]=8; monSize[1]=2; monLoc[1]=7; monIq[1]=4; monTarget[1]=0; monSprite[1]="skeleton.jpg"; monType[2]="skeleton"; monSpeed[2]=8; monSize[2]=2; monLoc[2]=14; monIq[2]=4; monTarget[2]=0; monSprite[2]="skeleton.jpg"; monType[3]="dragon"; monSpeed[3]=30; monSize[3]=30; monLoc[3]=15; monIq[3]=8; monTarget[3]=0; monSprite[3]="dragon.jpg"; monType[4]="skeleton"; monSpeed[4]=8; monSize[4]=2; monLoc[4]=21; monIq[4]=4; monTarget[4]=0; monSprite[4]="skeleton.jpg"; monType[5]="skeleton"; monSpeed[5]=8; monSize[5]=2; monLoc[5]=23; monIq[5]=4; monTarget[5]=0; monSprite[5]="skeleton.jpg"; monType[6]="skeleton"; monSpeed[6]=8; monSize[6]=2; monLoc[6]=28; monIq[6]=4; monTarget[6]=0; monSprite[6]="skeleton.jpg"; monType[7]="skeleton"; monSpeed[7]=8; monSize[7]=2; monLoc[7]=40; monIq[7]=4; monTarget[7]=0; monSprite[7]="skeleton.jpg"; monType[8]="skeleton"; monSpeed[8]=8; monSize[8]=2; monLoc[8]=42; monIq[8]=4; monTarget[8]=0; monSprite[8]="skeleton.jpg"; monType[9]="dragon"; monSpeed[9]=30; monSize[9]=30; monLoc[9]=43; monIq[9]=8; monTarget[9]=0; monSprite[9]="dragon.jpg"; monType[10]="skeleton"; monSpeed[10]=8; monSize[10]=2; monLoc[10]=55; monIq[10]=4; monTarget[10]=0; monSprite[10]="skeleton.jpg"; monType[11]="skeleton"; monSpeed[11]=8; monSize[11]=2; monLoc[11]=58; monIq[11]=4; monTarget[11]=0; monSprite[11]="skeleton.jpg"; monType[12]="end"; terrType[0]="wall"; terrLoc[0]=25; terrSprite[0]="wall.jpg"; terrType[1]="wall"; terrLoc[1]=26; terrSprite[1]="wall.jpg"; terrType[2]="secretdoor"; terrLoc[2]=27; terrSprite[2]="wall.jpg"; terrType[3]="wall"; terrLoc[3]=35; terrSprite[3]="wall.jpg"; terrType[4]="castle"; terrLoc[4]=36; terrSprite[4]="castle.jpg"; terrType[5]="wall"; terrLoc[5]=37; terrSprite[5]="wall.jpg"; terrType[6]="wall"; terrLoc[6]=45; terrSprite[6]="wall.jpg"; terrType[7]="wall"; terrLoc[7]=46; terrSprite[7]="wall.jpg"; terrType[8]="wall"; terrLoc[8]=47; terrSprite[8]="wall.jpg"; terrType[9]="end"; itemType[0]="healing potion"; itemLoc[0]=4; itemSprite[0]="food.jpg"; itemType[1]="healing potion"; itemLoc[1]=12; itemSprite[1]="food.jpg"; itemType[2]="healing potion"; itemLoc[2]=31; itemSprite[2]="food.jpg"; itemType[3]="end"; function contact(monster, who) {if (who == "hero") {if (monster == "skeleton") {combat(m); return}; if (monster == "skeleton") {combat(m); return}; if (monster == "skeleton") {combat(m); return}; if (monster == "dragon") {combat(m); return}; if (monster == "skeleton") {combat(m); return}; if (monster == "skeleton") {combat(m); return}; if (monster == "skeleton") {combat(m); return}; if (monster == "skeleton") {combat(m); return}; if (monster == "skeleton") {combat(m); return}; if (monster == "dragon") {combat(m); return}; if (monster == "skeleton") {combat(m); return}; if (monster == "skeleton") {combat(m); return}; if (monster == "wall") {; validMove=false; ; ; return}; if (monster == "wall") {; validMove=false; ; ; return}; if (monster == "secretdoor") {alert("entrance to the ruins"); ; terrLoc[m]=-99; newScreen("http://members.tripod.com/~AO/arcade/sample12b.html"); ; return}; if (monster == "wall") {; validMove=false; ; ; return}; if (monster == "castle") {alert("City of Corum"); ; ; newScreen("http://members.tripod.com/~AO/arcade/sample12b.html"); ; return}; if (monster == "wall") {; validMove=false; ; ; return}; if (monster == "wall") {; validMove=false; ; ; return}; if (monster == "wall") {; validMove=false; ; ; return}; if (monster == "wall") {; validMove=false; ; ; return}; if (monster == "healing potion") {alert("you find food"); heal(); ; ; return}; if (monster == "healing potion") {alert("you find food"); heal(); ; ; return}; if (monster == "healing potion") {alert("you find food"); heal(); ; ; return}; }; else {if (monster == "hero") {combat(n)}; if (monster == "skeleton") {; return}; if (monster == "skeleton") {; return}; if (monster == "skeleton") {; return}; if (monster == "dragon") {; return}; if (monster == "skeleton") {; return}; if (monster == "skeleton") {; return}; if (monster == "skeleton") {; return}; if (monster == "skeleton") {; return}; if (monster == "skeleton") {; return}; if (monster == "dragon") {; return}; if (monster == "skeleton") {; return}; if (monster == "skeleton") {; return}; if (monster == "wall") {; validMove=false; ; return}; if (monster == "wall") {; validMove=false; ; return}; if (monster == "secretdoor") {; validMove=false; ; return}; if (monster == "wall") {; validMove=false; ; return}; if (monster == "castle") {; validMove=false; ; return}; if (monster == "wall") {; validMove=false; ; return}; if (monster == "wall") {; validMove=false; ; return}; if (monster == "wall") {; validMove=false; ; return}; if (monster == "wall") {; validMove=false; ; return}; if (monster == "healing potion") {alert("the monster eats the food"); ; ; return}; if (monster == "healing potion") {alert("the monster eats the food"); ; ; return}; if (monster == "healing potion") {alert("the monster eats the food"); ; ; return}; } } makePage("bg-forest.gif"); //-ready to cut and paste //---CUT AND PASTE DATA ABOVE---