mirror of
https://github.com/superjamie/alphaman-src.git
synced 2025-05-05 15:32:54 +00:00
Initial commit
This commit is contained in:
commit
01f7ee57e9
1817
A1.BAS.txt
Normal file
1817
A1.BAS.txt
Normal file
File diff suppressed because it is too large
Load Diff
2159
A2.BAS.txt
Normal file
2159
A2.BAS.txt
Normal file
File diff suppressed because it is too large
Load Diff
2018
A3.BAS.txt
Normal file
2018
A3.BAS.txt
Normal file
File diff suppressed because it is too large
Load Diff
1569
A4.BAS.txt
Normal file
1569
A4.BAS.txt
Normal file
File diff suppressed because it is too large
Load Diff
2039
A5.BAS.txt
Normal file
2039
A5.BAS.txt
Normal file
File diff suppressed because it is too large
Load Diff
1612
A6.BAS.txt
Normal file
1612
A6.BAS.txt
Normal file
File diff suppressed because it is too large
Load Diff
1985
A7.BAS.txt
Normal file
1985
A7.BAS.txt
Normal file
File diff suppressed because it is too large
Load Diff
1486
A8.BAS.txt
Normal file
1486
A8.BAS.txt
Normal file
File diff suppressed because it is too large
Load Diff
841
ALPCLIB.C
Normal file
841
ALPCLIB.C
Normal file
@ -0,0 +1,841 @@
|
||||
/*
|
||||
Copyright (c) 1995 Jeffrey R. Olson
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <float.h>
|
||||
#include <ctype.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
/* #include <string.h> */
|
||||
|
||||
#define getrandom( min, max ) ((rand() % (int)((max) - (min) + 1)) + (min) )
|
||||
#define cint( x ) ( floor(x+.5) )
|
||||
#define pi 3.14159
|
||||
#define true -1
|
||||
#define false 0
|
||||
#define hor 205
|
||||
#define ver 186
|
||||
#define cen 206
|
||||
#define ul 201
|
||||
#define um 203
|
||||
#define ur 187
|
||||
#define ml 204
|
||||
#define mrt 185
|
||||
#define ll 200
|
||||
#define lm 202
|
||||
#define lr 188
|
||||
#define lockeddoor 43
|
||||
#define secretdoor 228
|
||||
|
||||
/*
|
||||
struct com_block {
|
||||
int nnear, ncre[16][51], incastle, dots;
|
||||
int vpage, mainx,mainy, localx,localy, terrain,terrf,terrb;
|
||||
int currsym,currf,currb, ncastle, looksym;
|
||||
};
|
||||
*/
|
||||
|
||||
extern void fortran getsym(int near *, int near *, int near *, int near *, int near *, int near *);
|
||||
extern void fortran putsym(int near *, int near *, int near *, int near *, int near *, int near *);
|
||||
|
||||
void near addaroom(int x, int y, int dx, int dy);
|
||||
void near drawtunnel(int x, int y, int dx, int dy);
|
||||
void far lair(int *xr, int *xl, int *yb, int *yt, int *xs, int *ys);
|
||||
int far walldist(int x, int y, int dx, int dy, int max, int incastle);
|
||||
void far finddot(int *x, int *y, int incastle);
|
||||
int far rolldice(int size, int nroll, int nuse);
|
||||
int far confuse(int r, int i);
|
||||
int far roomit(int xr, int xl, int yb, int yt);
|
||||
void far cmainmap(int irnd, int jrnd);
|
||||
void far cdetailedmap(int t, int t1, int t2, int t3, int t4);
|
||||
void far box(int x1, int x2, int y1, int y2, int nl, int fc, int pag);
|
||||
void far creatsort(int nnear, int *tentgrab, int far ncre[16][51]);
|
||||
int far csameroom(int x1, int y1, int x2, int y2, int localx, int localy, int nnear, int far ncre[16][51]);
|
||||
int far badmovecreat(int newx, int newy, int nnear, int cre, int far ncre[16][51]);
|
||||
void far clearright(int pag);
|
||||
void far ccls(int pag);
|
||||
int far cgetsym(int x, int y, int pag);
|
||||
int far sgn(int num);
|
||||
int far isqrt(unsigned int num);
|
||||
void far cputsym(int sym, int x, int y, int fc, int bc, int pag);
|
||||
void far crandomize (float seed);
|
||||
int far croll(int max);
|
||||
int far crd(int x, int y);
|
||||
int far crdsimp(int x, int y);
|
||||
int far cfinddxdy(int x, int y, int n);
|
||||
|
||||
int nested,maxnested, xstair,ystair;
|
||||
|
||||
/*
|
||||
main() {
|
||||
}
|
||||
*/
|
||||
|
||||
void near addaroom(int x, int y, int dx, int dy) /*----------------------*/
|
||||
{
|
||||
int i,j, xr,xl,yb,yt, x1,y1,dx1,dy1, dir,sym;
|
||||
int putroom=true;
|
||||
cputsym(219,x,y,9,0,2);
|
||||
cputsym(219,x-dx,y-dy,9,0,2);
|
||||
xr = getrandom(x,x+2);
|
||||
xl = getrandom(x-2,x);
|
||||
yb = getrandom(y,y+2);
|
||||
yt = getrandom(y-2,y);
|
||||
if(dx==1) xr++;
|
||||
else if(dx==-1) xl--;
|
||||
if(dy==1) yb++;
|
||||
else if(dy==-1) yt--;
|
||||
|
||||
for(i=xl-1;i<=xr+1;i++) {
|
||||
for(j=yt-1;j<=yb+1;j++) {
|
||||
sym = cgetsym(i, j ,2); sym %= 256;
|
||||
if(sym!=219) putroom=false;
|
||||
}
|
||||
}
|
||||
|
||||
if(putroom) {
|
||||
for(i=xl;i<=xr;i++) { for(j=yt;j<=yb;j++) cputsym(250,i,j,8,0,2); }
|
||||
for(i=1;i<=10;i++) {
|
||||
dir=getrandom(1,4);
|
||||
x1=getrandom(xl,xr); y1=getrandom(yt,yb); dx1=0; dy1=0;
|
||||
switch(dir) {
|
||||
case 1: x1=xl; dx1=-1; break;
|
||||
case 2: y1=yt; dy1=-1; break;
|
||||
case 3: x1=xr; dx1=1; break;
|
||||
case 4: y1=yb; dy1=1; break;
|
||||
}
|
||||
drawtunnel(x1,y1,dx1,dy1);
|
||||
}
|
||||
}
|
||||
cputsym(250,x,y,8,0,2);
|
||||
cputsym(250,x-dx,y-dy,8,0,2);
|
||||
}
|
||||
|
||||
void near drawtunnel(int x, int y, int dx, int dy) /*-------------------*/
|
||||
{
|
||||
int maxlen,max, i;
|
||||
int num;
|
||||
int dx1,dy1, dx2,dy2, dx3,dy3;
|
||||
nested++;
|
||||
maxlen = (dy==0) ? getrandom(3,getrandom(3,14)) : getrandom(3,getrandom(3,8));
|
||||
max=walldist(x,y,dx,dy,maxlen,1)-1;
|
||||
if (maxlen>max) maxlen=max;
|
||||
if(maxlen<3) { nested--; return; }
|
||||
for(i=0;i<maxlen;i++) {
|
||||
cputsym(250,x,y,8,0,2);
|
||||
x += dx; y += dy;
|
||||
}
|
||||
x -= dx; y -= dy;
|
||||
|
||||
if(nested>4) addaroom(x,y,dx,dy);
|
||||
|
||||
if(nested<30) {
|
||||
dx1 = -dy; dy1 = -dx; dx2 = dy; dy2 = dx;
|
||||
dx3 = dx; dy3 = dy;
|
||||
drawtunnel(x,y,dx1,dy1);
|
||||
drawtunnel(x,y,dx2,dy2);
|
||||
drawtunnel(x,y,dx3,dy3);
|
||||
}
|
||||
|
||||
if((maxnested<nested) && (croll(2)==2)) {
|
||||
maxnested=nested; xstair=x; ystair=y;
|
||||
}
|
||||
nested--;
|
||||
return;
|
||||
}
|
||||
|
||||
void far lair(int *xr, int *xl, int *yb, int *yt, int *xs, int *ys)
|
||||
{
|
||||
int xm,xw, ym,yw, i,j;
|
||||
int x,y, dx,dy;
|
||||
nested=0;
|
||||
maxnested=0;
|
||||
xm = getrandom(21,32); xw = getrandom(6,10);
|
||||
ym = getrandom(10,13); yw = getrandom(4,6);
|
||||
*xl = xm - xw/2; *xr = *xl + xw;
|
||||
*yt = ym - yw/2; *yb = *yt + yw;
|
||||
for(i=2;i<52;i++) { for(j=2;j<22;j++) cputsym(219,i,j,9,0,2); }
|
||||
for(i=*xl; i<=*xr; i++) {
|
||||
for(j=*yt; j<=*yb; j++) cputsym(250,i,j,8,0,2);
|
||||
}
|
||||
box(1,52,1,22,1,4,2);
|
||||
for(i=0;i<10;i++) {
|
||||
x=getrandom(*xl+1,*xr-1); y=getrandom(*yt+1,*yb-1);
|
||||
dx=0; dy=0;
|
||||
switch(croll(4)) {
|
||||
case 1: x=*xl-1; dx=-1; break;
|
||||
case 2: x=*xr+1; dx=1; break;
|
||||
case 3: y=*yt-1; dy=-1; break;
|
||||
case 4: y=*yb+1; dy=1; break;
|
||||
}
|
||||
drawtunnel(x,y,dx,dy);
|
||||
}
|
||||
cputsym(240,xstair,ystair,13,0,2);
|
||||
*xs = xstair; *ys = ystair;
|
||||
return;
|
||||
}
|
||||
|
||||
int far walldist(int x, int y, int dx, int dy, int max, int incastle) /*---*/
|
||||
{
|
||||
int dist, k, sym,sym1,sym2;
|
||||
dist=max;
|
||||
k=0;
|
||||
while(k<max) {
|
||||
k++;
|
||||
x += dx; y += dy;
|
||||
if(incastle==1) {
|
||||
sym = cgetsym(x, y ,2); sym %= 256;
|
||||
sym1 = cgetsym(x+dy, y+dx ,2); sym1 %= 256;
|
||||
sym2 = cgetsym(x-dy, y-dx ,2); sym2 %= 256;
|
||||
if((sym!=219) || (sym1!=219) || (sym2!=219)) {
|
||||
if(croll(40)!=1) { dist=k-1; k=max+1; }
|
||||
}
|
||||
}
|
||||
else {
|
||||
sym = cgetsym(x+dx*k, y+dy*k ,2); sym %= 256;
|
||||
switch (sym) {
|
||||
case 32: case 240: case 250: break;
|
||||
default: dist=k; k=max+1; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return dist;
|
||||
}
|
||||
|
||||
void far finddot(int *x, int *y, int incastle) /*----------------------*/
|
||||
{
|
||||
int dot=false;
|
||||
int sym,fc,bc;
|
||||
while (dot==0) {
|
||||
*x=getrandom(2,51); *y=getrandom(2,21);
|
||||
sym = cgetsym(*x,*y,2); sym %= 256;
|
||||
if(incastle) { if(sym==250) dot=true; }
|
||||
else if(sym==250 || sym==249 || sym==32 || sym==247 || sym==126)
|
||||
dot=true;
|
||||
}
|
||||
}
|
||||
|
||||
int far rolldice(int size, int nroll, int nuse) /*----------------------*/
|
||||
{
|
||||
int dice[50];
|
||||
int i,j, temp;
|
||||
nroll = (nroll>50) ? 50 : nroll;
|
||||
nuse = (nuse>nroll) ? nroll : nuse;
|
||||
for(i=0;i<nroll;i++) dice[i]=getrandom(1,size);
|
||||
if(nroll!=nuse) {
|
||||
for(i=0;i<nuse;i++) {
|
||||
for(j=i+1;j<nroll;j++) {
|
||||
if(dice[i] < dice[j]) {
|
||||
temp=dice[i]; dice[i]=dice[j]; dice[j]=temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
temp=0; for(i=0;i<nuse;i++) temp += dice[i];
|
||||
return temp;
|
||||
}
|
||||
|
||||
int far confuse(int r, int i) /*----------------------*/
|
||||
{
|
||||
int dir = -1;
|
||||
int z;
|
||||
switch(r) {
|
||||
case 1071: dir=7; break;
|
||||
case 1072: dir=0; break;
|
||||
case 1073: dir=1; break;
|
||||
case 1075: dir=6; break;
|
||||
case 1077: dir=2; break;
|
||||
case 1079: dir=5; break;
|
||||
case 1080: dir=4; break;
|
||||
case 1081: dir=3; break;
|
||||
}
|
||||
z=getrandom(1,100);
|
||||
switch(i) {
|
||||
case 1:
|
||||
if(z<68) {
|
||||
dir += getrandom(-2,2);
|
||||
dir = (dir<0) ? dir+8 : dir;
|
||||
dir = (dir>7) ? dir-8 : dir;
|
||||
}
|
||||
else if(z<95) dir = r;
|
||||
else dir=46;
|
||||
break;
|
||||
case 2:
|
||||
if(z<72) {
|
||||
dir += getrandom(-1,1);
|
||||
dir = (dir<0) ? dir+8 : dir;
|
||||
dir = (dir>7) ? dir-8 : dir;
|
||||
}
|
||||
else if(z<99) dir = r;
|
||||
else dir=46;
|
||||
break;
|
||||
default:
|
||||
if(z<68) dir = getrandom(0,7);
|
||||
else if(z<95) dir = r;
|
||||
else dir=46;
|
||||
break;
|
||||
}
|
||||
|
||||
switch(dir) {
|
||||
case 0: z=1072; break;
|
||||
case 1: z=1073; break;
|
||||
case 2: z=1077; break;
|
||||
case 3: z=1081; break;
|
||||
case 4: z=1080; break;
|
||||
case 5: z=1079; break;
|
||||
case 6: z=1075; break;
|
||||
case 7: z=1071; break;
|
||||
default: z=dir; break;
|
||||
}
|
||||
return z;
|
||||
}
|
||||
|
||||
int far roomit(int xr, int xl, int yb, int yt) /*----------------------*/
|
||||
{
|
||||
int sym;
|
||||
int i,j;
|
||||
int dots=0;
|
||||
|
||||
sym = cgetsym(xr,yb,2);
|
||||
sym %= 256;
|
||||
switch(sym) {
|
||||
case ll: case hor: sym=lm; break;
|
||||
case ul: case um: case ml: sym=cen; break;
|
||||
case lr: case lm: case mrt: case cen:
|
||||
case lockeddoor: case secretdoor: break;
|
||||
case ur: case ver: sym=mrt; break;
|
||||
default: sym=lr; break;
|
||||
}
|
||||
cputsym(sym,xr,yb,9,0,2);
|
||||
/* cputsym(sym,xr,yb,9,0,2); debug */
|
||||
sym = cgetsym(xr,yt,2); sym %= 256;
|
||||
switch(sym) {
|
||||
case ver: case lr: sym=mrt; break;
|
||||
case ml: case ll: case lm: sym=cen; break;
|
||||
case um: case ur: case mrt: case cen:
|
||||
case lockeddoor: case secretdoor: break;
|
||||
case ul: case hor: sym=um; break;
|
||||
default: sym=ur; break;
|
||||
}
|
||||
cputsym(sym,xr,yt,9,0,2);
|
||||
/* cputsym(sym,xr,yt,9,0,1); debug */
|
||||
|
||||
sym = cgetsym(xl,yb,2); sym %= 256;
|
||||
switch(sym) {
|
||||
case ul: case ver: sym=ml; break;
|
||||
case um: case ur: case mrt: sym=cen; break;
|
||||
case ml: case ll: case lm: case cen:
|
||||
case lockeddoor: case secretdoor: break;
|
||||
case lr: case hor: sym=lm; break;
|
||||
default: sym=ll; break;
|
||||
}
|
||||
cputsym(sym,xl,yb,9,0,2);
|
||||
/* cputsym(sym,xl,yb,9,0,1); debug */
|
||||
|
||||
sym = cgetsym(xl,yt,2); sym %= 256;
|
||||
switch(sym) {
|
||||
case ll: case ver: sym=ml; break;
|
||||
case lm: case lr: case mrt: sym=cen; break;
|
||||
case ml: case ul: case um: case cen:
|
||||
case lockeddoor: case secretdoor: break;
|
||||
case ur: case hor: sym=um; break;
|
||||
default: sym=ul; break;
|
||||
}
|
||||
cputsym(sym,xl,yt,9,0,2);
|
||||
/* cputsym(sym,xl,yt,9,0,1); debug */
|
||||
|
||||
for(i=xl+1;i<xr;i++) {
|
||||
sym = cgetsym(i,yt,2); sym %= 256;
|
||||
switch(sym) {
|
||||
case ll: case lm: case lr: sym=lm; break;
|
||||
case cen: case lockeddoor: case secretdoor: break;
|
||||
default: sym=hor; break;
|
||||
}
|
||||
cputsym(sym,i,yt,9,0,2);
|
||||
/* cputsym(sym,i,yt,9,0,1); debug */
|
||||
sym = cgetsym(i,yb,2); sym %= 256;
|
||||
switch(sym) {
|
||||
case ul: case um: case ur: sym=um; break;
|
||||
case cen: case lockeddoor: case secretdoor: break;
|
||||
default: sym=hor; break;
|
||||
}
|
||||
cputsym(sym,i,yb,9,0,2);
|
||||
/* cputsym(sym,i,yb,9,0,1); debug */
|
||||
for(j=yt+1;j<yb;j++) { cputsym(250,i,j,8,0,2); dots++; }
|
||||
}
|
||||
for(i=yt+1;i<yb;i++) {
|
||||
sym = cgetsym(xr,i,2); sym %= 256;
|
||||
switch(sym) {
|
||||
case ll: case ml: case ul: sym=ml; break;
|
||||
case cen: case lockeddoor: case secretdoor: break;
|
||||
default: sym=ver; break;
|
||||
}
|
||||
cputsym(sym,xr,i,9,0,2);
|
||||
/* cputsym(sym,xr,i,9,0,1); debug */
|
||||
sym = cgetsym(xl,i,2); sym %= 256;
|
||||
switch(sym) {
|
||||
case lr: case mrt: case ur: sym=mrt; break;
|
||||
case cen: case lockeddoor: case secretdoor: break;
|
||||
default: sym=ver; break;
|
||||
}
|
||||
cputsym(sym,xl,i,9,0,2);
|
||||
/* cputsym(sym,xl,i,9,0,1); debug */
|
||||
}
|
||||
return dots;
|
||||
}
|
||||
|
||||
void far cmainmap(int irnd, int jrnd) /*----------------------*/
|
||||
{
|
||||
int i,j;
|
||||
int z,z1, sym, a,b,c;
|
||||
float x,y,result,csx,csy;
|
||||
box(1,52,1,22,1,4,0);
|
||||
for(i=2;i<=17;i++) {
|
||||
y = (i-2)*.025;
|
||||
for(j=2;j<=51;j++) {
|
||||
x = (j-25)*.02;
|
||||
result = getrandom(4,7) / (.033 + x*x+ 5*(y-.1)*(y-.1));
|
||||
result = result + getrandom(4,7) / (.05 + (x-.5)*(x-.5) + 2*y*y);
|
||||
z = floor(result) - getrandom(16,50);
|
||||
if(getrandom(1,100)<z) {
|
||||
sym = (getrandom(1,1000)<7*z) ? 15 : 42;
|
||||
cputsym(sym, j+jrnd*(53 - 2*j), i+irnd*(23 - 2*i), 2+8*(getrandom(1,2)==1), 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
a=getrandom(1,40), b=getrandom(1,20), c=getrandom(1,300);
|
||||
for(i=14;i<=21;i++) {
|
||||
y = (i*33 - 420 + a);
|
||||
csy = cos(y/200);
|
||||
for(j=2;j<=51;j++) {
|
||||
x = (j*10 - 230 + b);
|
||||
csx = cos(x/200);
|
||||
z = 100*(csx*csx+csy*csy) + x*y/(3500 + c);
|
||||
z1 = z + croll(10)-croll(10);
|
||||
if(z<58)
|
||||
cputsym(247, j+jrnd*(53 - 2*j), i+irnd*(23 - 2*i), 1+8*(getrandom(1,2)==1), 0, 0);
|
||||
else if(z1<78)
|
||||
cputsym(177, j+jrnd*(53 - 2*j), i+irnd*(23 - 2*i), 6, 0, 0);
|
||||
else if(z1<100)
|
||||
cputsym(176, j+jrnd*(53 - 2*j), i+irnd*(23 - 2*i), 6, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void far cdetailedmap(int t, int t1, int t2, int t3, int t4) /*----------*/
|
||||
{
|
||||
int x,y, zx,zy, terr;
|
||||
int xx,yy;
|
||||
int z, sym, clr, clradd, bc;
|
||||
|
||||
box(1,52,1,22,1,4,1); box(1,52,1,22,1,4,2);
|
||||
for(x=2;x<=51;x++) {
|
||||
zx = 7*(abs(x-26) - 12);
|
||||
for(y=2;y<=21;y++) {
|
||||
zy = 14*(abs(y-11) - 3);
|
||||
xx = getrandom(1,100), yy = getrandom(1,100);
|
||||
terr=t;
|
||||
if(yy<zy) terr = (y>12) ? t4 : t2;
|
||||
if(xx<zx) terr = (x>25) ? t3 : t1;
|
||||
z = getrandom(1,100);
|
||||
clradd = getrandom(0,1) * 8;
|
||||
switch (terr) {
|
||||
case 15: case 94: /* deep forest */
|
||||
if(z>70) sym=250;
|
||||
else if(z>40) sym = 249;
|
||||
else if(z>11) sym = 42;
|
||||
else sym = 15;
|
||||
clr = 2+clradd;
|
||||
break;
|
||||
case 42: case 127: /* light forest */
|
||||
if(z>70) sym=32;
|
||||
else if(z>40) sym = 250;
|
||||
else if(z>15) sym = 249;
|
||||
else if(z>5) sym = 42;
|
||||
else sym = 15;
|
||||
clr = 2+clradd;
|
||||
break;
|
||||
case 176: case 30: /* marsh */
|
||||
clr = 6;
|
||||
if(z>24) sym=32;
|
||||
else if(z>10) sym = 176;
|
||||
else if(z>6) { sym = 247; clr = 1; }
|
||||
else if(z>2) { sym = 42;
|
||||
if(getrandom(1,3)!=1) clr=2; }
|
||||
else { sym = 15;
|
||||
if(getrandom(1,3)!=1) clr=2; }
|
||||
break;
|
||||
case 177: /* swamp */
|
||||
clr = 6;
|
||||
if(z>44) sym=32;
|
||||
else if(z>17) sym = 176;
|
||||
else if(z>6) { sym = 247; clr = 1; }
|
||||
else if(z>2) { sym = 42;
|
||||
if(getrandom(1,2)!=1) clr=2; }
|
||||
else { sym = 15;
|
||||
if(getrandom(1,2)!=1) clr=2; }
|
||||
break;
|
||||
case 247:
|
||||
if(z<90) sym=247;
|
||||
else sym=126;
|
||||
clr = (getrandom(1,6)==1) ? 3 : 1;
|
||||
break;
|
||||
default:
|
||||
clr = 6;
|
||||
if(z>40) sym=32;
|
||||
else if(z>20) sym = 250;
|
||||
else if(z>2) sym = 249;
|
||||
else if(z==2){ sym = 42; clr=2 + clradd; }
|
||||
else { sym = 15; clr=2 + clradd; }
|
||||
break;
|
||||
}
|
||||
cputsym(sym,x,y,clr,0,2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void far box(int lc, int rc, int tc, int bc, int nl, int fc, int pag)
|
||||
{
|
||||
int a,b,c,d,e,f;
|
||||
int i;
|
||||
switch (nl) {
|
||||
case 1: a=196, b=179, c=218, d=191, e=217, f=192; break;
|
||||
default: a=205, b=186, c=201, d=187, e=188, f=200; break;
|
||||
}
|
||||
for(i=lc+1;i<rc;i++) {
|
||||
cputsym(a,i,bc,fc,0,pag); cputsym(a,i,tc,fc,0,pag);
|
||||
}
|
||||
for(i=tc+1;i<bc;i++) {
|
||||
cputsym(b,rc,i,fc,0,pag); cputsym(b,lc,i,fc,0,pag);
|
||||
}
|
||||
cputsym(c,lc,tc,fc,0,pag); cputsym(d,rc,tc,fc,0,pag);
|
||||
cputsym(e,rc,bc,fc,0,pag); cputsym(f,lc,bc,fc,0,pag);
|
||||
return;
|
||||
}
|
||||
|
||||
void far creatsort(int nnear, int *tentgrab, int far ncre[16][51]) /*-----*/
|
||||
{
|
||||
int i, j, offset, limit, switchit, switched, tempo;
|
||||
int cnt[51];
|
||||
int scratch[51];
|
||||
int temp[16][51];
|
||||
if (nnear >50) nnear=50;
|
||||
for(i=1;i<=nnear;i++) {
|
||||
if (true) { /* ncre[11][i] */
|
||||
scratch[i] = abs(ncre[4][i]) + abs(ncre[5][i]);
|
||||
if(ncre[6][i] < 0) scratch[i] = -scratch[i];
|
||||
}
|
||||
else scratch[i] = 100+i;
|
||||
cnt[i] = i;
|
||||
}
|
||||
offset = floor(nnear/2.);
|
||||
switched = false;
|
||||
while(offset>0) {
|
||||
limit = nnear - offset;
|
||||
do {
|
||||
switchit = false;
|
||||
for(i=1;i<=limit;i++) {
|
||||
if(scratch[cnt[i]] > scratch[cnt[i+offset]]) {
|
||||
tempo = cnt[i];
|
||||
cnt[i] = cnt[i+offset];
|
||||
cnt[i+offset] = tempo;
|
||||
switchit = true;
|
||||
switched = true;
|
||||
}
|
||||
}
|
||||
limit = switchit - offset;
|
||||
} while(switchit);
|
||||
offset = floor(offset/2.);
|
||||
}
|
||||
if(switched) {
|
||||
for(i=1;i<=nnear;i++) {
|
||||
for(j=1;j<=15;j++) { temp[j][i] = ncre[j][i]; }
|
||||
}
|
||||
for(i=1;i<=nnear;i++) {
|
||||
for(j=1;j<=15;j++) { ncre[j][cnt[i]] = temp[j][i]; }
|
||||
}
|
||||
if(*tentgrab>0){ i=*tentgrab; *tentgrab=cnt[i]; }
|
||||
}
|
||||
}
|
||||
|
||||
int far csameroom(int x1, int y1, int x2, int y2, int localx, int localy, int nnear, int far ncre[16][51])
|
||||
{
|
||||
int same = true;
|
||||
int ddx = x2-x1;
|
||||
int ddy = y2-y1;
|
||||
int dxtemp = ddx - sgn(ddx);
|
||||
int dytemp = ddy - sgn(ddy);
|
||||
int x = dxtemp - sgn(dxtemp);
|
||||
int y = dytemp - sgn(dytemp);
|
||||
int rrr = crdsimp(x, y);
|
||||
int xstart, ystart;
|
||||
float dx = 0;
|
||||
float dy = 0;
|
||||
int attr, sym, fc, cr, i, j;
|
||||
|
||||
if(rrr>0) { dx = ((float)x) / rrr; dy = ((float)y) / rrr; }
|
||||
|
||||
xstart = x1 + sgn(ddx); ystart = y1 + sgn(ddy);
|
||||
for(i=0; i<=rrr; i++) {
|
||||
y = cint( ystart + dy*i ); x = cint( xstart + dx*i );
|
||||
if ( (x != x1+ddx) || (y != y1+ddy) ) {
|
||||
attr = cgetsym(x, y, 2);
|
||||
sym = attr % 256; attr -= sym; attr >>= 8; fc = attr % 16;
|
||||
if (fc == 9) same = false;
|
||||
else {
|
||||
if (isalpha(sym)) {
|
||||
cr = 0;
|
||||
for (j=1;j<=nnear;j++) {
|
||||
if ((ncre[4][j] == (x-localx)) && (ncre[5][j] == (y-localy)))
|
||||
cr = j;
|
||||
}
|
||||
if ( (cr>0) && (floor(ncre[8][cr] / 1000) == 9) )
|
||||
same = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return same;
|
||||
}
|
||||
|
||||
|
||||
int far badmovecreat(int newx, int newy, int nnear, int cre, int far ncre[16][51])
|
||||
{
|
||||
int bad = 0;
|
||||
int count = 1;
|
||||
while( (bad==0) && (count<=nnear) ) {
|
||||
if( (ncre[4][count] == newx) && (ncre[5][count] == newy) ) {
|
||||
if(count != cre){ bad = count; return bad; }
|
||||
}
|
||||
count++;
|
||||
}
|
||||
return bad;
|
||||
}
|
||||
|
||||
void far clearright(int pag) /*----------------------*/
|
||||
{
|
||||
int vidseg = 0xb800 + pag * 0x100;
|
||||
_asm {
|
||||
mov es,vidseg
|
||||
mov dx,106
|
||||
mov al,32
|
||||
mov ah,7
|
||||
c_right:
|
||||
mov di,dx
|
||||
mov cx,27
|
||||
cld
|
||||
rep stosw
|
||||
add dx,160
|
||||
cmp dx,3660
|
||||
jl c_right
|
||||
}
|
||||
}
|
||||
|
||||
void far ccls(int pag) /*----------------------*/
|
||||
{
|
||||
int vidseg = 0xb800 + pag * 0x100;
|
||||
_asm {
|
||||
mov es,vidseg
|
||||
mov di,0
|
||||
mov al,32
|
||||
mov ah,7
|
||||
mov cx,2000
|
||||
cld
|
||||
rep stosw
|
||||
}
|
||||
}
|
||||
|
||||
int far sgn(int num) /*----------------------*/
|
||||
{
|
||||
_asm {
|
||||
mov cx,num
|
||||
cmp cx,0
|
||||
jl SHORT nega
|
||||
cmp cx,0
|
||||
je SHORT zro
|
||||
mov cx,1
|
||||
jmp SHORT lvsgn
|
||||
nega:
|
||||
mov cx,-1
|
||||
jmp SHORT lvsgn
|
||||
zro:
|
||||
mov cx,0
|
||||
lvsgn:
|
||||
mov ax,cx
|
||||
}
|
||||
}
|
||||
|
||||
int far isqrt(unsigned int num) /*----------------------*/
|
||||
{
|
||||
_asm {
|
||||
mov cx,num
|
||||
mov bx,cx
|
||||
mov ax,1
|
||||
jmp SHORT zero_check
|
||||
isqrt_1:
|
||||
sub cx,ax
|
||||
add ax,2
|
||||
zero_check:
|
||||
or cx,cx
|
||||
jge isqrt_1
|
||||
sar ax,1
|
||||
mov cx,ax
|
||||
imul cx
|
||||
sub ax,cx
|
||||
inc ax
|
||||
cmp ax,bx
|
||||
jbe isqrt_exit
|
||||
dec cx
|
||||
isqrt_exit:
|
||||
mov ax,cx
|
||||
}
|
||||
}
|
||||
|
||||
int far cgetsym (int x, int y, int pag) /*----------------------*/
|
||||
{
|
||||
int attr;
|
||||
if (pag==2) {
|
||||
int sym,fc,bc;
|
||||
getsym(&sym,&x,&y,&fc,&bc,&pag);
|
||||
attr = fc+bc*16; attr <<= 8; attr+=sym;
|
||||
}
|
||||
else {
|
||||
int row = --y;
|
||||
int col = --x;
|
||||
int place = row*80+col;
|
||||
int vidseg = 0xb800 + pag * 0x100;
|
||||
_asm {
|
||||
mov es,vidseg
|
||||
mov dx,place
|
||||
mov di,dx
|
||||
shl di,1
|
||||
push dx
|
||||
mov dx,03dah
|
||||
cli
|
||||
mov bx,es:[di]
|
||||
mov attr,bx
|
||||
sti
|
||||
pop dx
|
||||
}
|
||||
}
|
||||
return attr;
|
||||
}
|
||||
|
||||
void far cputsym (int sym, int x, int y, int fc, int bc, int pag) /*------*/
|
||||
{
|
||||
if (pag==2) { putsym(&sym,&x,&y,&fc,&bc,&pag); }
|
||||
else {
|
||||
int row = --y, col = --x;
|
||||
int place = row*80+col;
|
||||
int vidseg = 0xb800 + pag * 0x100;
|
||||
int attr = fc+bc*16; attr <<= 8; attr+=sym;
|
||||
_asm {
|
||||
mov es,vidseg
|
||||
mov dx,place
|
||||
mov di,dx;
|
||||
shl di,1
|
||||
push dx
|
||||
mov dx,03dah
|
||||
cli
|
||||
mov bx,attr
|
||||
mov es:[di],bx
|
||||
sti
|
||||
pop dx
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void far crandomize (float seed) /*----------------------*/
|
||||
{
|
||||
unsigned int iseed;
|
||||
for( ; seed>3276; seed /= 2) ;
|
||||
iseed = floor(seed*10);
|
||||
srand(iseed);
|
||||
}
|
||||
|
||||
int far croll(int max) /*----------------------*/
|
||||
{
|
||||
int result;
|
||||
result = (max>1) ? getrandom(1,max) : 1;
|
||||
return result;
|
||||
}
|
||||
|
||||
int far crd(int x, int y) /*----------------------*/
|
||||
{
|
||||
float result = y*y + x*x;
|
||||
int ires;
|
||||
unsigned int ures;
|
||||
if (result<65536) { ures=cint(result); ires=isqrt(ures); }
|
||||
else { ires = cint(sqrt(result)); }
|
||||
return ires;
|
||||
}
|
||||
|
||||
int far crdsimp(int x, int y) /*-------------------*/
|
||||
{
|
||||
int ires;
|
||||
int xx=abs(x), yy=abs(y);
|
||||
if (xx>yy) { yy >>= 2; ires = xx+yy; }
|
||||
else { xx >>= 2; ires = xx+yy; }
|
||||
return ires;
|
||||
}
|
||||
|
||||
int far cfinddxdy(int x, int y, int n) /*----------------------*/
|
||||
{
|
||||
int p = 30*(n+.2);
|
||||
int mult = 3*p;
|
||||
int rx, ry;
|
||||
int dx, dy, res;
|
||||
|
||||
if( mult<100 ) mult = 100;
|
||||
|
||||
rx = getrandom( 1,10*mult ); ry = getrandom( 1,10*mult );
|
||||
|
||||
dx = -sgn(x); if ( abs(x)==1 && croll(4)==1) dx = 0;
|
||||
|
||||
dy = -sgn(y); if ( abs(y)==1 && croll(4)==1) dy = 0;
|
||||
|
||||
switch( dx ) {
|
||||
case -1: case 1:
|
||||
if( rx<p ) dx = -dx;
|
||||
else if( rx<p*10 ) dx = 0;
|
||||
break;
|
||||
default:
|
||||
if( rx<mult*3 ) dx = -1;
|
||||
else if( rx<mult*6 ) dx = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
switch( dy ) {
|
||||
case -1: case 1:
|
||||
if( ry<p ) dy = -dy;
|
||||
else if( ry<p*10 ) dy = 0;
|
||||
break;
|
||||
default:
|
||||
if( ry<mult*3 ) dy = -1;
|
||||
else if( ry<mult*6 ) dy = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
res=10*(++dx) + (++dy);
|
||||
return res;
|
||||
}
|
||||
|
502
ALPHA.CAS.txt
Normal file
502
ALPHA.CAS.txt
Normal file
@ -0,0 +1,502 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DEFINT A-Z
|
||||
CLS
|
||||
OPEN "alphaman.4" FOR BINARY AS #1
|
||||
location = 13: PUT #1, 1, location 'pos of first castle's data (6*2 bytes+1)
|
||||
|
||||
|
||||
RESTORE elvcas
|
||||
READ numrooms: PUT #1, location, numrooms
|
||||
FOR j = 1 TO numrooms
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
READ numremove: PUT #1, , numremove
|
||||
FOR j = 1 TO numremove
|
||||
READ a, b, c
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c
|
||||
NEXT j
|
||||
READ numdoors: PUT #1, , numdoors
|
||||
FOR j = 1 TO numdoors
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numlocked: PUT #1, , numlocked
|
||||
FOR j = 1 TO numlocked
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numsecret: PUT #1, , numsecret
|
||||
FOR j = 1 TO numsecret
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numitems: PUT #1, , numitems
|
||||
FOR j = 1 TO numitems
|
||||
READ a, b, c, d, e
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d: PUT #1, , e
|
||||
NEXT j
|
||||
READ numtraps: PUT #1, , numtraps
|
||||
FOR j = 1 TO numtraps
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
location = LOC(1) + 1: PUT #1, 3, location
|
||||
elvcas: '++++++++++++++++++++++++++++++++++++++++++++
|
||||
'numrooms
|
||||
DATA 48
|
||||
DATA 31,29,9,3, 48,31,14,12, 24,22,20,14, 22,5,11,9
|
||||
DATA 13,5,6,3, 18,13,6,3, 25,18,6,3, 29,25,6,3
|
||||
DATA 10,5,9,6, 16,10,9,6, 21,16,9,6, 29,21,9,6
|
||||
DATA 38,31,7,3, 42,38,7,3, 44,42,7,3, 48,44,9,3
|
||||
DATA 36,31,12,7, 40,36,12,7, 44,40,12,7, 48,44,12,9
|
||||
DATA 8,5,14,11, 12,8,14,11, 15,12,14,11, 19,15,14,11, 22,19,14,11
|
||||
DATA 9,5,17,14, 12,9,17,14, 16,12,17,14, 19,16,17,14, 22,19,17,14
|
||||
DATA 8,5,20,17, 11,8,20,17, 15,11,20,17, 18,15,20,17, 22,18,20,17
|
||||
DATA 26,24,18,14, 30,26,16,14, 36,30,16,14, 41,36,16,14
|
||||
DATA 32,26,18,16, 32,24,20,18, 34,32,20,16, 41,34,18,16, 41,34,20,18
|
||||
DATA 43,41,20,14, 48,43,16,14, 48,43,18,16, 48,43,20,18
|
||||
|
||||
'numremove
|
||||
DATA 2
|
||||
DATA 205,33,16, 186,44,4
|
||||
|
||||
'numdoors
|
||||
DATA 4
|
||||
DATA 30,9, 22,10, 23,14, 31,13
|
||||
'numlocked
|
||||
DATA 0
|
||||
'numsecret
|
||||
DATA 42
|
||||
DATA 11,6, 10,7, 18,4, 17,6, 16,8, 21,7, 29,4, 28,6
|
||||
DATA 33,7, 37,7, 39,7, 42,5, 44,8, 47,12
|
||||
DATA 12,13, 19,13, 7,14, 10,14, 14,14, 18,14, 21,14
|
||||
DATA 9,15, 16,15, 17,17, 21,17, 11,18, 15,18, 8,19, 6,11
|
||||
DATA 24,19, 26,15, 26,17, 30,15, 31,18, 34,19, 36,15
|
||||
DATA 41,15, 40,18, 43,19, 44,16, 47,18, 44,11
|
||||
'numitems
|
||||
DATA 0
|
||||
'numtraps
|
||||
DATA 0
|
||||
|
||||
|
||||
RESTORE muncas
|
||||
READ numrooms: PUT #1, location, numrooms
|
||||
FOR j = 1 TO numrooms
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
READ numremove: PUT #1, , numremove
|
||||
FOR j = 1 TO numremove
|
||||
READ a, b, c
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c
|
||||
NEXT j
|
||||
READ numdoors: PUT #1, , numdoors
|
||||
FOR j = 1 TO numdoors
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numlocked: PUT #1, , numlocked
|
||||
FOR j = 1 TO numlocked
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numsecret: PUT #1, , numsecret
|
||||
FOR j = 1 TO numsecret
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numitems: PUT #1, , numitems
|
||||
FOR j = 1 TO numitems
|
||||
READ a, b, c, d, e
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d: PUT #1, , e
|
||||
NEXT j
|
||||
READ numtraps: PUT #1, , numtraps
|
||||
FOR j = 1 TO numtraps
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
location = LOC(1) + 1: PUT #1, 5, location
|
||||
muncas: '++++++++++++++++++++++++++++++++++++++++++++
|
||||
'numrooms
|
||||
DATA 30
|
||||
DATA 10,5,7,3, 16,10,7,3, 18,16,9,3, 23,18,6,3, 23,18,9,6
|
||||
DATA 16,7,9,7, 7,5,13,7, 16,7,13,9, 22,16,13,9, 30,23,9,3
|
||||
DATA 35,30,6,3, 35,30,9,6, 37,35,9,3, 43,37,7,3, 48,43,7,3
|
||||
DATA 46,37,9,7, 48,46,13,7, 46,37,13,9, 37,31,13,9, 48,44,18,13
|
||||
DATA 44,35,18,13, 35,31,18,13, 48,31,20,18, 31,29,20,14, 29,24,20,14
|
||||
DATA 24,22,20,14, 22,5,20,18, 9,5,18,13, 18,9,18,13, 22,18,18,13
|
||||
'numremove
|
||||
DATA 4
|
||||
DATA 186,7,8, 186,46,8, 186,22,19, 186,31,19
|
||||
|
||||
'numdoors
|
||||
DATA 9
|
||||
DATA 16,4, 37,4, 17,9, 26,9, 36,9, 16,11, 22,11, 31,11, 37,11
|
||||
'numlocked
|
||||
DATA 5
|
||||
DATA 6,13, 47,13, 22,15, 7,18, 46,18
|
||||
'numsecret
|
||||
DATA 12
|
||||
DATA 10,5, 14,7, 23,4, 30,4, 43,5, 39,7
|
||||
DATA 23,8, 30,8, 20,13, 33,13, 42,13, 29,15
|
||||
'numitems ' sym,x,y,fc,iop
|
||||
DATA 5
|
||||
DATA 7,13,15,15,4
|
||||
DATA 22,19,16,5,11, 22,42,17,5,11
|
||||
DATA 254,39,14,6,12, 254,21,17,6,12
|
||||
'numtraps
|
||||
DATA 2
|
||||
DATA 19,25,15,8, 19,15,15,8
|
||||
|
||||
|
||||
RESTORE gilcas
|
||||
READ numrooms: PUT #1, location, numrooms
|
||||
FOR j = 1 TO numrooms
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
READ numremove: PUT #1, , numremove
|
||||
FOR j = 1 TO numremove
|
||||
READ a, b, c
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c
|
||||
NEXT j
|
||||
READ numdoors: PUT #1, , numdoors
|
||||
FOR j = 1 TO numdoors
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numlocked: PUT #1, , numlocked
|
||||
FOR j = 1 TO numlocked
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numsecret: PUT #1, , numsecret
|
||||
FOR j = 1 TO numsecret
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numitems: PUT #1, , numitems
|
||||
FOR j = 1 TO numitems
|
||||
READ a, b, c, d, e
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d: PUT #1, , e
|
||||
NEXT j
|
||||
READ numtraps: PUT #1, , numtraps
|
||||
FOR j = 1 TO numtraps
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
location = LOC(1) + 1: PUT #1, 7, location
|
||||
gilcas: '++++++++++++++++++++++++++++++++++++++++++++
|
||||
'numrooms
|
||||
DATA 28
|
||||
DATA 15,10,9,5, 20,15,8,3, 27,20,7,3, 32,27,7,3, 24,22,9,7
|
||||
DATA 22,18,12,10, 20,17,14,12, 17,11,16,12, 17,11,20,16, 11,5,18,13
|
||||
DATA 27,25,16,14, 28,25,18,16, 25,19,20,16, 28,25,20,18, 31,28,20,15
|
||||
DATA 35,31,14,12, 35,33,16,14, 41,35,17,13, 41,35,20,17, 48,41,15,12
|
||||
DATA 48,41,20,15, 35,31,11,9, 38,35,11,7, 40,38,10,7
|
||||
DATA 46,40,10,6, 48,46,8,6, 48,40,6,3, 40,35,7,3
|
||||
'numremove
|
||||
DATA 5
|
||||
DATA 205,19,12, 186,25,17, 186,28,19, 205,34,14, 186,38,9
|
||||
'numdoors
|
||||
DATA 3
|
||||
DATA 31,13, 35,15, 41,14
|
||||
'numlocked
|
||||
DATA 13
|
||||
DATA 20,5, 27,5, 23,7, 23,9, 22,11, 17,13, 11,15, 26,14, 26,16
|
||||
DATA 31,10, 35,10, 37,7, 40,8
|
||||
'numsecret
|
||||
DATA 7
|
||||
DATA 15,6, 11,17, 28,17, 41,16, 41,18, 46,7, 47,6
|
||||
'numitems
|
||||
DATA 12
|
||||
DATA 11, 26,19, 14,1
|
||||
DATA 135,30,16, 14,10
|
||||
DATA 5, 37,19, 4,-1
|
||||
DATA 236,39,18, 12,-1
|
||||
DATA 22, 46,18, 5,11
|
||||
DATA 254,43,17, 6,12
|
||||
DATA 8, 12,6, 7,13
|
||||
DATA 9, 11,7, 3,14
|
||||
DATA 24, 14,8, 1,15
|
||||
DATA 12, 47,7, 14,1
|
||||
DATA 11, 15,19, 14,1
|
||||
DATA 35, 47,14, 6,8
|
||||
'numtraps
|
||||
DATA 5
|
||||
DATA 247,45,13,1, 247,46,13,1, 247,47,13,1, 247,45,14,1, 247,46,14,1
|
||||
|
||||
|
||||
RESTORE trucas
|
||||
READ numrooms: PUT #1, location, numrooms
|
||||
FOR j = 1 TO numrooms
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
READ numremove: PUT #1, , numremove
|
||||
FOR j = 1 TO numremove
|
||||
READ a, b, c
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c
|
||||
NEXT j
|
||||
READ numdoors: PUT #1, , numdoors
|
||||
FOR j = 1 TO numdoors
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numlocked: PUT #1, , numlocked
|
||||
FOR j = 1 TO numlocked
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numsecret: PUT #1, , numsecret
|
||||
FOR j = 1 TO numsecret
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numitems: PUT #1, , numitems
|
||||
FOR j = 1 TO numitems
|
||||
READ a, b, c, d, e
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d: PUT #1, , e
|
||||
NEXT j
|
||||
READ numtraps: PUT #1, , numtraps
|
||||
FOR j = 1 TO numtraps
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
location = LOC(1) + 1: PUT #1, 9, location
|
||||
trucas: '++++++++++++++++++++++++++++++++++++++++++++
|
||||
'numrooms
|
||||
DATA 39
|
||||
DATA 22,5,7,3, 15,12,4,3, 15,12,7,6, 31,22,7,3, 48,31,7,3, 41,38,4,3, 41,38,7,6
|
||||
DATA 24,15,9,7, 29,24,9,7, 31,29,9,7, 12,5,15,7, 15,12,11,7, 34,31,13,7
|
||||
DATA 41,34,11,7, 48,41,13,7, 18,15,11,9, 22,18,13,9, 15,12,15,11
|
||||
DATA 18,15,13,11, 41,34,13,11, 21,15,18,13, 23,21,16,13, 25,23,15,13
|
||||
DATA 28,25,15,13, 30,28,15,13, 33,30,16,13, 42,33,16,13, 48,42,20,13
|
||||
DATA 15,5,20,15, 30,23,20,15, 23,21,18,16, 32,30,18,16, 34,32,18,16
|
||||
DATA 41,34,18,16, 23,15,20,18, 25,23,20,19, 30,28,20,19, 36,30,20,18
|
||||
DATA 42,36,20,18
|
||||
'numremove
|
||||
DATA 16
|
||||
DATA 186,12,8, 186,31,8, 186,18,10, 205,17,13, 186,15,14, 205,38,13
|
||||
DATA 186,23,14, 186,30,14, 205,38,16, 186,23,17, 186,30,17
|
||||
DATA 205,27,7, 205,27,9, 205,27,13, 205,27,15, 205,33,18
|
||||
'numdoors
|
||||
DATA 0
|
||||
'numlocked
|
||||
DATA 10
|
||||
DATA 22,5, 31,5, 26,8, 27,8, 38,11, 26,14, 27,14, 21,17, 32,17, 34,17
|
||||
'numsecret
|
||||
DATA 12
|
||||
DATA 23,7, 46,7, 20,9, 15,10, 32,13, 24,15, 29,15, 22,18, 38,18
|
||||
DATA 41,17, 15,19, 42,19
|
||||
'numitems
|
||||
DATA 18
|
||||
DATA 22,32,8,5,11, 254,33,8,6,12
|
||||
DATA 8,7,4,7,13, 8,7,6,7,13, 8,46,4,7,13, 8,46,6,7,13
|
||||
DATA 9,10,4,3,14, 9,10,6,3,14, 9,43,4,3,14, 9,43,6,3,14
|
||||
DATA 24,17,4,1,15, 24,17,6,1,15, 24,20,4,1,15, 24,20,6,1,15
|
||||
DATA 24,33,4,1,15, 24,33,6,1,15, 24,36,4,1,15, 24,36,6,1,15
|
||||
'numtraps
|
||||
DATA 18
|
||||
DATA 19,19,8,-1, 19,21,8,-1, 19,32,11,-1, 19,33,11,-1, 10,17,10,12
|
||||
DATA 10,46,8,12, 19,23,14,-1, 19,30,14,-1, 10,33,18,12, 19,19,19,-1
|
||||
DATA 10,21,19,4, 19,40,19,-1
|
||||
DATA 204,24,8,9, 205,25,8,9, 205,28,8,9, 185,29,8,9
|
||||
DATA 204,25,14,9, 185,28,14,9
|
||||
|
||||
|
||||
RESTORE twocas
|
||||
READ numrooms: PUT #1, location, numrooms
|
||||
FOR j = 1 TO numrooms
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
READ numremove: PUT #1, , numremove
|
||||
FOR j = 1 TO numremove
|
||||
READ a, b, c
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c
|
||||
NEXT j
|
||||
READ numdoors: PUT #1, , numdoors
|
||||
FOR j = 1 TO numdoors
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numlocked: PUT #1, , numlocked
|
||||
FOR j = 1 TO numlocked
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numsecret: PUT #1, , numsecret
|
||||
FOR j = 1 TO numsecret
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numitems: PUT #1, , numitems
|
||||
FOR j = 1 TO numitems
|
||||
READ a, b, c, d, e
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d: PUT #1, , e
|
||||
NEXT j
|
||||
READ numtraps: PUT #1, , numtraps
|
||||
FOR j = 1 TO numtraps
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
location = LOC(1) + 1: PUT #1, 11, location
|
||||
twocas: '++++++++++++++++++++++++++++++++++++++++++++
|
||||
'numrooms
|
||||
DATA 82
|
||||
DATA 12,5,5,3, 14,12,5,3, 18,16,5,3, 20,18,5,3, 27,20,5,3, 29,27,5,3, 35,29,5,3, 40,35,5,3, 48,42,5,3
|
||||
DATA 16,14,7,3, 42,40,7,3
|
||||
DATA 10,7,7,5, 14,10,7,5, 20,16,7,5, 22,20,7,5, 24,22,7,5, 26,24,7,5
|
||||
DATA 32,26,7,5, 36,32,7,5, 40,38,7,5, 48,42,7,5
|
||||
DATA 7,5,10,5, 38,36,10,5
|
||||
DATA 10,7,10,7, 10,9,10,9, 14,12,9,7, 18,14,9,7, 24,18,9,7, 30,24,9,7
|
||||
DATA 32,30,9,7, 34,32,9,7, 36,34,9,7, 41,38,9,7, 43,41,9,7, 46,43,9,7
|
||||
DATA 12,10,11,7, 48,46,16,7
|
||||
DATA 15,12,11,9, 36,31,11,9, 44,40,11,9
|
||||
DATA 17,15,12,9, 22,17,15,9, 20,19,13,11, 40,38,13,9, 46,44,16,9
|
||||
DATA 10,5,12,10, 38,36,13,10
|
||||
DATA 33,31,13,11, 36,34,13,11, 12,10,14,11, 42,40,14,11, 44,42,16,11
|
||||
DATA 10,5,14,12, 17,12,14,12
|
||||
DATA 26,22,15,13, 32,28,15,13, 38,32,15,13, 40,38,16,13, 28,26,16,13
|
||||
DATA 17,5,20,14, 42,40,16,14
|
||||
DATA 24,22,17,15, 31,28,17,15, 33,31,17,15, 36,33,17,15
|
||||
DATA 22,20,18,15, 26,24,18,15, 38,36,18,15
|
||||
DATA 28,26,18,16, 41,38,18,16, 46,41,18,16, 48,46,20,16
|
||||
DATA 34,28,20,17, 31,30,20,19, 34,33,20,19, 24,22,20,17, 36,34,20,17
|
||||
DATA 22,17,20,18, 28,24,20,18, 39,36,20,18, 46,39,20,18
|
||||
DATA 13,9,18,16
|
||||
'numremove
|
||||
DATA 32
|
||||
DATA 186,16,4, 186,40,4, 205,23,5, 205,28,5, 186,7,6, 205,11,7, 205,17,7
|
||||
DATA 205,21,7, 205,25,7, 205,33,7, 205,39,7, 205,44,7, 186,36,8
|
||||
DATA 205,8,10, 186,15,10, 205,32,11, 205,35,11
|
||||
DATA 186,38,11, 205,41,11, 186,26,14, 186,28,14
|
||||
DATA 186,40,15, 186,42,15, 186,22,16, 186,24,16, 186,36,16, 205,32,17
|
||||
DATA 186,38,17, 205,27,18, 186,22,19, 186,36,19, 186,46,19
|
||||
|
||||
'numdoors
|
||||
DATA 0
|
||||
'numlocked
|
||||
DATA 16
|
||||
DATA 31,5, 46,5, 22,6, 38,6, 15,7, 30,8, 34,8, 23,9, 40,12, 17,13, 35,13
|
||||
DATA 21,15, 27,16, 45,16, 47,16, 39,19
|
||||
'numsecret
|
||||
DATA 31
|
||||
DATA 14,4, 18,4, 6,5, 11,5, 37,5
|
||||
DATA 20,6, 32,6, 29,7, 47,7, 7,8, 14,8, 25,9, 33,9, 42,9
|
||||
DATA 45,9, 12,10, 37,10, 17,11, 7,12, 39,13, 44,13, 7,14, 11,14, 23,15
|
||||
DATA 31,16, 29,17, 11,18, 34,18, 40,18, 24,19, 28,19
|
||||
'numitems
|
||||
DATA 2
|
||||
DATA 254,10,17,6,12, 254,12,17,6,12
|
||||
'numtraps
|
||||
DATA 4
|
||||
DATA 19,9,15,8, 19,13,15,8, 19,9,19,8, 19,13,19,8
|
||||
|
||||
|
||||
RESTORE gricas
|
||||
READ numrooms: PUT #1, location, numrooms
|
||||
FOR j = 1 TO numrooms
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
READ numremove: PUT #1, , numremove
|
||||
FOR j = 1 TO numremove
|
||||
READ a, b, c
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c
|
||||
NEXT j
|
||||
READ numdoors: PUT #1, , numdoors
|
||||
FOR j = 1 TO numdoors
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numlocked: PUT #1, , numlocked
|
||||
FOR j = 1 TO numlocked
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numsecret: PUT #1, , numsecret
|
||||
FOR j = 1 TO numsecret
|
||||
READ a, b
|
||||
PUT #1, , a: PUT #1, , b
|
||||
NEXT j
|
||||
READ numitems: PUT #1, , numitems
|
||||
FOR j = 1 TO numitems
|
||||
READ a, b, c, d, e
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d: PUT #1, , e
|
||||
NEXT j
|
||||
READ numtraps: PUT #1, , numtraps
|
||||
FOR j = 1 TO numtraps
|
||||
READ a, b, c, d
|
||||
PUT #1, , a: PUT #1, , b: PUT #1, , c: PUT #1, , d
|
||||
NEXT j
|
||||
gricas: '++++++++++++++++++++++++++++++++++++++++++++
|
||||
'numrooms
|
||||
DATA 91
|
||||
DATA 24,5,6,3, 28,24,7,3, 31,28,5,3, 31,28,7,5, 15,5,8,6, 20,15,10,6
|
||||
DATA 22,20,8,6, 24,22,9,6, 31,24,9,7, 22,20,14,8, 20,15,12,10, 15,5,14,8
|
||||
DATA 15,5,16,14, 20,15,16,12, 22,20,16,14, 24,22,16,13, 31,24,15,13
|
||||
DATA 24,5,19,16, 28,24,19,15, 31,28,19,17, 31,28,17,15
|
||||
DATA 33,31,5,3, 36,33,5,3, 38,36,5,3, 41,38,5,3, 43,41,5,3, 46,43,5,3, 48,46,5,3
|
||||
DATA 33,31,7,5, 36,33,7,5, 38,36,7,5, 41,38,7,5, 43,41,7,5, 46,43,7,5, 48,46,7,5
|
||||
DATA 33,31,9,7, 36,33,9,7, 38,36,9,7, 41,38,9,7, 43,41,9,7, 46,43,9,7, 48,46,9,7
|
||||
DATA 33,31,11,9, 36,33,11,9, 38,36,11,9, 41,38,11,9, 43,41,11,9, 46,43,11,9, 48,46,11,9
|
||||
DATA 33,31,13,11, 36,33,13,11, 38,36,13,11, 41,38,13,11, 43,41,13,11, 46,43,13,11, 48,46,13,11
|
||||
DATA 33,31,15,13, 36,33,15,13, 38,36,15,13, 41,38,15,13, 43,41,15,13, 46,43,15,13, 48,46,15,13
|
||||
DATA 33,31,17,15, 36,33,17,15, 38,36,17,15, 41,38,17,15, 43,41,17,15, 46,43,17,15, 48,46,17,15
|
||||
DATA 33,31,19,17, 36,33,19,17, 38,36,19,17, 41,38,19,17, 43,41,19,17, 46,43,19,17, 48,46,19,17
|
||||
DATA 6,5,4,3, 9,8,4,3, 12,11,4,3, 15,14,4,3, 18,17,4,3, 21,20,4,3, 24,23,4,3
|
||||
DATA 6,5,19,18, 9,8,19,18, 12,11,19,18, 15,14,19,18, 18,17,19,18, 21,20,19,18, 24,23,19,18
|
||||
'numremove
|
||||
DATA 5
|
||||
DATA 186,22,7, 186,24,8, 186,20,11, 186,22,15, 186,24,14
|
||||
|
||||
'numdoors
|
||||
DATA 0
|
||||
'numlocked
|
||||
DATA 5
|
||||
DATA 28,4, 6,6, 15,11, 6,16, 28,18
|
||||
'numsecret
|
||||
DATA 67
|
||||
DATA 31,4, 43,4, 46,4, 24,5, 32,5, 35,5, 37,5, 40,5, 45,5, 47,5
|
||||
DATA 31,6, 33,6, 36,6, 38,6, 43,6, 39,7, 42,7, 47,7
|
||||
DATA 31,8, 33,8, 36,8, 41,8, 46,8, 20,9, 23,9, 34,9, 47,9
|
||||
DATA 33,10, 36,10, 38,10, 41,10, 43,10, 46,10, 35,11, 40,11, 42,11, 44,11
|
||||
DATA 33,12, 38,12, 46,12, 20,13, 42,13, 47,13
|
||||
DATA 31,14, 33,14, 36,14, 38,14, 46,14, 32,15, 40,15, 47,15
|
||||
DATA 31,16, 33,16, 38,16, 46,16, 24,17, 34,17, 37,17, 40,17, 42,17, 45,17
|
||||
DATA 47,17, 31,18, 33,18, 41,18, 43,18, 15,7
|
||||
'numitems
|
||||
DATA 0
|
||||
'numtraps
|
||||
DATA 39
|
||||
DATA 19,21,10,-1, 19,21,12,-1, 19,20,11,-1, 19,18,11,-1, 19,16,11,-1
|
||||
DATA 19,9,7,8, 19,10,7,8, 19,11,7,8, 19,9,15,8, 19,10,15,8, 19,11,15,8
|
||||
DATA 19,11,12,-1, 19,11,9,-1, 19,11,11,-1, 19,11,10,-1
|
||||
DATA 19,12,12,-1, 19,12,9,-1, 19,12,11,-1, 19,12,10,-1
|
||||
DATA 19,13,12,1, 19,13,9,1, 19,13,11,1, 19,13,10,1
|
||||
DATA 10,14,12,4, 10,14,9,4, 10,14,11,12, 10,14,10,12
|
||||
DATA 19,7,4,-1, 19,10,4,-1, 19,13,4,-1, 19,16,4,-1, 19,19,4,-1, 19,22,4,-1
|
||||
DATA 19,7,17,-1, 19,10,17,-1, 19,13,17,-1, 19,16,17,-1, 19,19,17,-1, 19,22,17,-1
|
||||
|
190
ALPHA.CRE
Normal file
190
ALPHA.CRE
Normal file
@ -0,0 +1,190 @@
|
||||
"Wolverine", 10013,0,1077,16384,1, 22,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Housecat", 10018,48,7104,512,3, 121,101, 24,101, 24,101, 0,0, 0,0
|
||||
"Centipede", 10017,256,6099,2048,2, 120,301, 0,0, 0,0, 0,0, 0,0
|
||||
"Snail", 10012,4,3115,2,3, 101,801, 0,0, 0,0, 0,0, 0,0
|
||||
"Warthog", 10027,64,6119,0,4, 300,1301, 0,0, 0,0, 0,0, 0,0
|
||||
"Owl", 20019,512,6111,4,5, 121,101, 23,101, 23,101, 0,0, 0,0
|
||||
"Daffodil", 29,64,14100,6152,3, 117,1807, 0,0, 0,0, 0,0, 0,0
|
||||
"Asparagus", 10037,1032,2097,6208,6, 118,202, 0,0, 0,0, 0,0, 0,0
|
||||
"Dung Beetle", 10037,2,6100,1024,6, 115,1701, 0,0, 0,0, 0,0, 0,0
|
||||
"Fire Ant", 10016,128,12097,32,2, 117,1001, 0,0, 0,0, 0,0, 0,0
|
||||
"Woodpecker", 20013,1024,12087,0,6, 218,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Gas Spore", 10019,520,6103,2048,5, 20,103, 20,103, 20,103, 0,0, 0,0
|
||||
"Dragonfly", 10027,1028,10100,2,9, 219,1101, 0,0, 0,0, 0,0, 0,0
|
||||
"Skunk", 10036,0,8115,1,8, 315,2303, 0,0, 0,0, 0,0, 0,0
|
||||
"Chameleon", 10035,256,99,0,13, 118,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Boa", 10035,1038,2098,0,14, 219,1201, 0,0, 0,0, 0,0, 0,0
|
||||
"Porcupine", 10025,4096,5112,64,10, 20,102, 20,102, 20,102, 0,0, 0,0
|
||||
"Lotus", 10028,512,5076,-26624,14, 16,1805, 23,1805, 0,0, 0,0, 0,0
|
||||
"Crunchberry Beast", 10047,64,6067,2176,25, 615,1401, 0,0, 0,0, 0,0,0,0
|
||||
"Viper", 10036,4,4118,32,16, 218,401, 0,0, 0,0, 0,0, 0,0
|
||||
"Venetian", 10056,64,11086,4097,21, 419,2201, 0,0, 0,0, 0,0, 0,0
|
||||
"Flying Fish", 20054,34,3102,64,60, 315,202, 0,0, 0,0, 0,0, 0,0
|
||||
"Rosebush", 57,12289,12114,6144,50, 112,2006, 0,0, 0,0, 0,0, 0,0
|
||||
"Zapweed", 10048,517,1122,16,50, 216,901, 0,0, 0,0, 0,0, 0,0
|
||||
"Mantis", 10061,66,2109,0,100, 102,803, 102,803, 0,0, 0,0, 0,0
|
||||
"Japanese Beetle", 10034,4,10106,512,40, 714,1401, 0,0, 0,0, 0,0, 0,0
|
||||
"Mr. Potato Head", 10085,0,6112,0,70, 216,101, 118,101, 0,0, 0,0, 0,0
|
||||
"Sunflower", 10055,1152,14115,2,110, 115,706, 115,706, 115,706, 0,0, 0,0
|
||||
"Ragweed", 10038,64,2114,3072,20, 17,1802, 0,0, 0,0, 0,0, 0,0
|
||||
"Killer Bee", 20026,0,14122,4,20, 213,501, 0,0, 0,0, 0,0, 0,0
|
||||
"Python", 10104,288,1080,8,250, 212,1201, 214,1201, 216,1201, 0,0, 0,0
|
||||
"Vulture", 10075,528,6086,32,150, 603,1303, 603,1303, 0,0, 0,0, 0,0
|
||||
"Huge Cockroach", 10040,1,6082,0,250, 412,201, 0,0, 0,0, 0,0, 0,0
|
||||
"Sandman", 10010,0,8090,0,60, 116,2701, 0,0, 0,0, 0,0, 0,0
|
||||
"Pryor", 10087,256,8082,18,250, 313,601, 0,0, 0,0, 0,0, 0,0
|
||||
"Spitting Cobra", 10043,8,2083,512,200, 411,402, 0,0, 0,0, 0,0, 0,0
|
||||
"Goat", 10059,0,7103,0,100, 13,1401, 0,0, 0,0, 0,0, 0,0
|
||||
"Ice Wolf", 10093,288,3087,16,350, 312,1102, 0,0, 0,0, 0,0, 0,0
|
||||
"Rot Fungus", 10089,4099,2070,4100,250, 213,1601, 0,0, 0,0, 0,0, 0,0
|
||||
"Pokey", 10105,0,4080,32,300, 414,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Gumby", 10125,0,2071,32,450, 404,802, 0,0, 0,0, 0,0, 0,0
|
||||
"Tapeworm", 10025,2304,7119,17408,50, 116,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Slug", 10078,515,10083,-32768,280, 413,603, 0,0, 0,0, 0,0, 0,0
|
||||
"Cheetah", 93,-32616,14099,0,400, 411,706, 0,0, 0,0, 0,0, 0,0
|
||||
"Tortoise", 10090,16424,2116,64,300, 110,101, 10,101, 10,101, 0,0, 0,0
|
||||
"Venus Flytrap", 114,1028,2086,8,250, 206,2006, 208,1201, 210,1201, 212,1201, 0,0
|
||||
"the Blob", 10109,1,3066,4128,300, 510,601, 0,0, 0,0, 0,0, 0,0
|
||||
"Grizzly Bear", 10145,16,6071,2,470, 208,101, 111,101, 111,101, 0,0, 0,0
|
||||
"Bush", 10186,0,1066,512,500, 506,1301, 506,1301, 0,0, 0,0, 0,0
|
||||
"Quayle", 10159,1916,14081,0,200, 101,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Rhinocerous", 10141,1034,7082,16,600, 712,2501, 0,0, 0,0, 0,0, 0,0
|
||||
"Giant Tarantula", 10118,2048,8084,4,550, 911,301, 0,0, 0,0, 0,0, 0,0
|
||||
"Phoenix", 10071,16,12080,32,800, 608,1001, 0,0, 0,0, 0,0, 0,0
|
||||
"Scorpion", 10101,66,12083,8,750, 808,401, 0,0, 0,0, 0,0, 0,0
|
||||
"Mastodon", 10225,16416,13077,0,1200, 308,1901, 308,1901, 0,0, 0,0, 0,0
|
||||
"Berserk Robot", 10127,17960,11082,2052,1000, 612,902, 0,0, 0,0, 0,0, 0,0
|
||||
"Black Widow", 10104,8,8098,4,900, 1012,501, 0,0, 0,0, 0,0, 0,0
|
||||
"Sabretooth Tiger", 20176,24,14084,0,1000, 508,101, 107,101, 107,101, 0,0, 0,0
|
||||
"Mosquito", 10115,528,5077,1,500, 1005,1302, 1005,1302, 0,0, 0,0, 0,0
|
||||
"Anklyosaurus", 10150,16640,1065,8,900, 607,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Triceratops", 10214,17416,1084,2,1300, 605,2501, 0,0, 0,0, 0,0, 0,0
|
||||
"Polar Worm", 10256,2080,1087,16,1200, 808,1102, 0,0, 0,0, 0,0, 0,0
|
||||
"Tyrannosaurus", 10303,32,2084,1024,1500, 1210,101, 0,0, 0,0, 0,0, 0,0
|
||||
"King Kong", 10406,0,6075,128,2200, 707,1901, 707,1901, 0,0, 0,0, 0,0
|
||||
"Rodan", 10353,-32768,1082,64,3500, 1008,101, 209,101, 209,101, 0,0, 0,0
|
||||
"Godzilla", 10451,520,4071,4,6000, 1507,204, 0,0, 0,0, 0,0, 0,0
|
||||
"Slime", 10017,32,13115,4112,3, 119,1601, 0,0, 0,0, 0,0, 0,0
|
||||
"Ooze", 10018,17,5111,4128,4, 119,1001, 0,0, 0,0, 0,0, 0,0
|
||||
"Vampire Bat", 10028,0,8118,64,5, 215,2101, 0,0, 0,0, 0,0, 0,0
|
||||
"Repair Droid", 10033,1536,11114,2052,15, 119,901, 0,0, 0,0, 0,0, 0,0
|
||||
"Maggot", 10036,256,14109,1024,10, 116,601, 0,0, 0,0, 0,0, 0,0
|
||||
"Giant Rat", 10039,8,8114,1040,10, 117,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Purple Mold", 10039,1,5109,4104,15, 616,2301, 0,0, 0,0, 0,0, 0,0
|
||||
"Ghoul", 10088,40,8103,0,60, 213,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Defense Droid", 10062,1544,11100,2052,100, 313,202, 0,0, 0,0, 0,0, 0,0
|
||||
"Gray Mold", 10099,3,8109,-26608,150, 105,1804, 0,0, 0,0, 0,0, 0,0
|
||||
"Phantom", 10078,16896,8112,0,100, 214,1101, 0,0, 0,0, 0,0, 0,0
|
||||
"Wolf Spider", 20078,1024,8119,512,190, 515,501, 0,0, 0,0, 0,0, 0,0
|
||||
"Enzyme Fungus", 20039,8707,13070,-28656,200, 215,601, 215,601, 0,0, 0,0, 0,0
|
||||
"Volte", 10064,16389,11118,2050,300, 513,901, 0,0, 0,0, 0,0, 0,0
|
||||
"Brown Recluse", 10094,256,6114,8,300, 809,401, 0,0, 0,0, 0,0, 0,0
|
||||
"Security Droid", 10070,1570,11115,2052,450, 510,703, 0,0, 0,0, 0,0, 0,0
|
||||
"Brain Beast", 10057,512,14066,2,450, 505,1305, 0,0, 0,0, 0,0, 0,0
|
||||
"War Droid", 20150,3626,11119,2052,3000, 310,705, 312,203, 314,901, 0,0, 0,0
|
||||
"Tree Frog", 10018,2,10102,0,2, 120,301, 0,0, 0,0, 0,0, 0,0
|
||||
"Stranglevine", 10024,1024,10115,0,5, 107,1201, 0,0, 0,0, 0,0, 0,0
|
||||
"Poison Ivy", 23,16,105,20480,8, 609,401, 0,0, 0,0, 0,0, 0,0
|
||||
"Toadstool", 10059,1024,5116,6145,12, 113,2302, 0,0, 0,0, 0,0, 0,0
|
||||
"Termite", 10018,0,7116,1040,5, 25,1401, 0,0, 0,0, 0,0, 0,0
|
||||
"Mushroom", 10029,512,7109,6178,20, 413,2102, 0,0, 0,0, 0,0, 0,0
|
||||
"Panther", 30057,4,8080,8,60, 217,901, 21,901, 21,901, 0,0, 0,0
|
||||
"Moose", 10148,0,6077,0,160, 113,1901, 113,1901, 114,1901, 114,1901, 0,0
|
||||
"Jaguar", 30115,8,5106,4,250, 211,201, 211,201, 0,0, 0,0, 0,0
|
||||
"Deadly Nightshade", 10058,1536,8110,-32704,100, 211,401, 211,401, 211,401, 211,401, 0,0
|
||||
"Algore", 10056,512,65,-32764,50, 0,0, 0,0, 0,0, 0,0, 0,0
|
||||
"Death Fern", 10074,16,70,-32768,350, 412,1002, 0,0, 0,0, 0,0, 0,0
|
||||
"Bigfoot", 10135,256,6070,512,250, 210,1901, 213,1901, 0,0, 0,0, 0,0
|
||||
"Komodo Dragon", 10152,32,1075,0,600, 611,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Willow", 10066,1152,10087,-30720,300, 113,1202, 113,1202, 113,1202, 210,1201, 210,1201
|
||||
"Raptor", 20084,32,2082,0,400, 308,101, 111,101, 111,101, 0,0, 0,0
|
||||
"Giant Sloth", 20156,0,6083,16,600, 611,1101, 0,0, 0,0, 0,0, 0,0
|
||||
"Toad", 10028,96,1116,16,8, 215,201, 0,0, 0,0, 0,0, 0,0
|
||||
"Leech", 10016,2,108,1024,4, 113,2101, 0,0, 0,0, 0,0, 0,0
|
||||
"Slime Mold", 10029,3,4109,5120,5, 118,601, 0,0, 0,0, 0,0, 0,0
|
||||
"Giant Crab", 10031,12,12067,512,10, 118,901, 0,0, 0,0, 0,0, 0,0
|
||||
"Alligator", 10054,1024,2065,64,35, 315,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Lungfish", 10066,4,1108,2,40, 317,701, 0,0, 0,0, 0,0, 0,0
|
||||
"Bombadier Beetle", 10044,6,4098,8,80, 417,1601, 0,0, 0,0, 0,0, 0,0
|
||||
"Tick", 10028,0,116,-32768,50, 409,1301, 409,1301, 0,0, 0,0, 0,0
|
||||
"Giant Puffball", 9,0,80,256,5, 0,0, 0,0, 0,0, 0,0, 0,0
|
||||
"Dartweed", 35,64,12100,40,100, 312,506, 312,506, 0,0, 0,0, 0,0
|
||||
"Hippopotamus", 10135,8,1072,16,200, 412,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Giant Worm", 10026,0,7087,0,15, 110,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Crocodile", 10103,32,2067,512,400, 207,803, 204,803, 201,803, 0,0, 0,0
|
||||
"Water Moccasin", 10065,1024,6109,0,400, 710,401, 0,0, 0,0, 0,0, 0,0
|
||||
"Snapping Turtle", 10096,16416,8083,80,300, 509,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Pteradactyl", 10094,520,2080,0,600, 613,202, 0,0, 0,0, 0,0, 0,0
|
||||
"Bog Horror", 165,818,66,1024,1400, 201,1201, 204,1201, 207,1201, 210,1201, 213,1201
|
||||
"Prairie Chicken", 10017,1,4099,16,2, 17,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Lizard", 10026,80,3108,4,4, 118,1001, 0,0, 0,0, 0,0, 0,0
|
||||
"Antelope", 20037,80,6065,0,10, 114,1901, 0,0, 0,0, 0,0, 0,0
|
||||
"Moth", 10048,512,12109,2,16, 602,1302, 0,0, 0,0, 0,0, 0,0
|
||||
"Gazelle", 20057,64,14103,0,50, 10,704, 10,704, 0,0, 0,0, 0,0
|
||||
"Stink Bug", 10065,2,4115,512,30, 816,2301, 0,0, 0,0, 0,0, 0,0
|
||||
"Armadillo", 10067,16384,7065,1024,40, 15,101, 16,101, 16,101, 0,0, 0,0
|
||||
"Blue Jay", 20044,4,1106,0,130, 102,803, 102,802, 102,801, 0,0, 0,0
|
||||
"Laughing Hyena", 10046,0,13104,128,25, 213,1501, 0,0, 0,0, 0,0, 0,0
|
||||
"Fox", 10057,256,6102,512,50, 111,1401, 0,0, 0,0, 0,0, 0,0
|
||||
"Giant Wasp", 20063,8,14119,80,100, 512,501, 0,0, 0,0, 0,0, 0,0
|
||||
"Locust", 20037,0,10108,1663,10, 7,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Coral Snake", 10055,16,12099,0,350, 808,401, 0,0, 0,0, 0,0, 0,0
|
||||
"Bunny Rabbit", 10048,0,15098,1024,30, 113,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Voracious Shrew", 10028,0,6115,0,30, 715,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Cactus", 84,12424,10099,6176,450, 113,110, 111,108, 109,106, 107,104, 105,102
|
||||
"Giraffe", 10167,0,14071,0,400, 307,1901, 307,1901, 0,0, 0,0, 0,0
|
||||
"Kelp", 10028,32,2107,0,4, 117,1201, 0,0, 0,0, 0,0, 0,0
|
||||
"Sardine", 20012,2,7115,16388,2, 18,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Electric Eel", 30029,4,11101,0,8, 116,902, 0,0, 0,0, 0,0, 0,0
|
||||
"Seagull", 20038,256,15115,512,4, 112,1702, 0,0, 0,0, 0,0, 0,0
|
||||
"Lobster", 20023,64,4076,16,9, 118,101, 118,101, 0,0, 0,0, 0,0
|
||||
"Lamprey", 20016,0,5108,0,12, 408,1301, 0,0, 0,0, 0,0, 0,0
|
||||
"Barracuda", 30036,2,3098,0,16, 216,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Sunfish", 20037,64,14083,1024,20, 116,704, 116,702, 0,0, 0,0, 0,0
|
||||
"Urchin", 10034,8192,5117,4096,25, 20,102, 20,102, 20,102, 20,102, 20,102
|
||||
"Jellyfish", 20049,2050,3106,-26616,50, 120,502, 119,402, 118,501, 117,401, 116,401
|
||||
"Squid", 20057,32,5115,1,20, 116,2201, 116,1201, 116,1201, 0,0, 0,0
|
||||
"Fire Coral", 11,1,102,6208,23, 210,1002, 205,1001, 0,0, 0,0, 0,0
|
||||
"Trilobite", 20052,4,6116,512,70, 313,201, 0,0, 0,0, 0,0, 0,0
|
||||
"Red Snapper", 20045,0,12115,0,70, 512,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Nauteloid", 20077,16384,4110,0,150, 205,802, 0,0, 0,0, 0,0, 0,0
|
||||
"Sting Ray", 30075,1024,3114,0,200, 615,501, 0,0, 0,0, 0,0, 0,0
|
||||
"Octopus", 20064,2,2079,0,160, 217,1201, 217,1201, 114,1201, 114,1201, 114,1201
|
||||
"Moray Eel", 20095,0,10069,0,200, 307,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Narwal", 20104,32,8078,0,250, 413,2501, 0,0, 0,0, 0,0, 0,0
|
||||
"Hammerhead Shark", 30103,512,7083,0,400, 512,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Killer Whale", 20227,32,15087,0,600, 610,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Great White Shark", 30156,512,15083,0,900, 604,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Plesiosaurus", 20255,8,7080,0,1300, 707,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Big Hairy Spider", 10047,0,4083,0,3, 115,401, 0,0, 0,0, 0,0, 0,0
|
||||
"Gilligan", 10183,0,7103,0,500, 1,1401, 0,0, 0,0, 0,0, 0,0
|
||||
"the Skipper", 10188,0,7083,0,400, 110,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"the Professor", 10126,0,7080,0,300, 110,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Ginger", 10087,0,7071,0,150, 109,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Mary Ann", 10073,0,7077,0,150, 109,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Mr. Howell", 10106,0,7072,256,200, 110,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Mrs. Howell", 10068,0,7104,2304,100, 110,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Herman", 10203,0,7072,-32768,500, 411,2601, 411,2601, 0,0, 0,0, 0,0
|
||||
"Lily", 10107,0,7076,0,300, 310,2101, 310,2101, 0,0, 0,0, 0,0
|
||||
"Grandpa", 10153,0,7071,4096,400, 115,2602, 0,0, 0,0, 0,0, 0,0
|
||||
"Eddie", 10105,0,7069,0,200, 410,101, 0,0, 0,0, 0,0, 0,0
|
||||
"Marilyn", 10107,0,7077,2048,200, 201,1501, 0,0, 0,0, 0,0, 0,0
|
||||
"Spot", 10181,0,7083,256,400, 510,1001, 0,0, 0,0, 0,0, 0,0
|
||||
"Igor", 10056,0,7073,0,200, 1208,1301, 0,0, 0,0, 0,0, 0,0
|
||||
"Uncle Fester", 10106,0,7070,0,300, 112,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Elvis", 10067,0,7069,-32512,100, 110,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Elvis", 10207,0,7069,-32512,100, 110,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Buzz Aldrin", 10165,56,15066,4096,600, 807,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Zola Bud", 20098,0,7090,0,200, 410,1901, 0,0, 0,0, 0,0, 0,0
|
||||
"Mary Decker", 20088,0,7077,0,200, 410,1901, 0,0, 0,0, 0,0, 0,0
|
||||
"Gary Hart", 10128,0,7071,256,300, 107,1501, 107,1501, 107,1501, 107,1501, 110,1501
|
||||
"Saddam Hussein", 10070,2048,6072,512,400, 1025,2608, 0,0, 0,0, 0,0, 0,0
|
||||
"Chicago Cub", 10108,0,1067,0,150, 110,2601, 0,0, 0,0, 0,0, 0,0
|
||||
"Donald Trump", 10208,768,7068,0,1000, 2510,1303, 0,0, 0,0, 0,0, 0,0
|
||||
"Ivana", 10159,0,7073,2176,700, 808,1302, 0,0, 0,0, 0,0, 0,0
|
||||
"Marla", 10109,0,7077,128,500, 1008,1302, 0,0, 0,0, 0,0, 0,0
|
||||
"the Grinch", 10254,0,12071,4096,5000, 304,2105, 306,2105, 308,2103, 310,2103, 312,2101
|
||||
"Max", 10157,0,4068,0,2000, 802,101, 0,0, 0,0, 0,0, 0,0
|
||||
'10000*move+10*HD+AC+, spec.def, 1000*clr+sym , susceptibility, exp
|
||||
'100*str+2hitbase, 100*attack type+range, ..., ..., ..., ...
|
||||
|
42
ALPHA.DB2
Normal file
42
ALPHA.DB2
Normal file
@ -0,0 +1,42 @@
|
||||
CASE 200 'debug - test
|
||||
SCREEN , , 3: COLOR 11, 1: ccls 3: LOCATE 1, 1
|
||||
FOR ijk = 1 TO ngoody
|
||||
IF ABS(goody(ijk, 1)) = 9 THEN
|
||||
PRINT "Item name: "; gdy(ijk); " should be ";
|
||||
SELECT CASE goody(ijk, 3)
|
||||
CASE 1: PRINT "Skipper's Hat";
|
||||
CASE 2: PRINT "Serum. Item is ";
|
||||
IF goody(ijk, 5) = 0 THEN PRINT "not ";
|
||||
PRINT "distilled.";
|
||||
CASE 3: PRINT "Map";
|
||||
CASE 4: PRINT "Blue Suede Shoes";
|
||||
CASE 5: PRINT "SpaceSuit";
|
||||
CASE 6: PRINT "Roast Beast";
|
||||
CASE 7: PRINT "Bamboo Raft. Item is ";
|
||||
IF goody(ijk, 5) = 0 THEN PRINT "not ";
|
||||
PRINT "sped up. It has"; goody(ijk, 4); " uses left.";
|
||||
CASE 8: PRINT "Mets Hat";
|
||||
CASE ELSE: PRINT "TYPE UNKNOWN! Number:"; goody(ijk, 3);
|
||||
END SELECT
|
||||
END IF
|
||||
PRINT
|
||||
NEXT ijk
|
||||
didstuff = false: PauseForKey: SCREEN , , vpage
|
||||
CASE 201 ' debug, give S.hat,serum,map,shoes,suit,rbeast,braft,M.hat
|
||||
ijk = 0: dropped = 1
|
||||
WHILE ngoody < 20 AND ijk < 8
|
||||
ijk = ijk + 1: ngoody = ngoody + 1
|
||||
SELECT CASE ijk
|
||||
CASE 1: gdy(ngoody) = "SKIP'S HAT"
|
||||
CASE 2: gdy(ngoody) = "SERUM"
|
||||
CASE 3: gdy(ngoody) = "MAP"
|
||||
CASE 4: gdy(ngoody) = "SHOES": dropped = 2 'bsshoes
|
||||
CASE 5: gdy(ngoody) = "SUIT": dropped = 10 'suit
|
||||
CASE 6: gdy(ngoody) = "ROASTBEAST"
|
||||
CASE 7: gdy(ngoody) = "RAFT": dropped = 15 'bamboo raft
|
||||
CASE 8: gdy(ngoody) = "METS HAT"
|
||||
END SELECT
|
||||
DetermineSpecial dropped, ijk 'actually, dropped=mass
|
||||
WEND
|
||||
didstuff = false
|
||||
|
8
ALPHA.DB3
Normal file
8
ALPHA.DB3
Normal file
@ -0,0 +1,8 @@
|
||||
CASE 255 'create gas
|
||||
FOR ix = localx - 1 TO localx + 1
|
||||
FOR iy = localy - 1 TO localy + 1
|
||||
GetSym nsym, ix, iy, nfc, nbc, 1
|
||||
IF nsym = 250 THEN PutSym gas, ix, iy, 8, 0, -1
|
||||
NEXT iy, ix
|
||||
didstuff = false
|
||||
|
79
ALPHA.DBG
Normal file
79
ALPHA.DBG
Normal file
@ -0,0 +1,79 @@
|
||||
' CASE 199 'test KillItem
|
||||
' l1 = "Test": PauseForKey: s = VAL(st1)
|
||||
' KillItem s: MessPause 11, 0
|
||||
' CASE 202: Lightning
|
||||
CASE 222
|
||||
FOR i = 1 TO 52: FOR j = 1 TO 22
|
||||
attr = pag2(i, j): sym = attr MOD 256: attr = attr \ 256
|
||||
fc = attr MOD 16: bc = attr \ 16: PutSym sym, i, j, fc, bc, 3
|
||||
NEXT j, i
|
||||
SCREEN , , 3: PauseForKey: SCREEN , , vpage: didstuff = false
|
||||
CASE 230
|
||||
SCREEN , , 3: COLOR 11, 1: ccls 3: LOCATE 1, 1
|
||||
PRINT "ndropped -- "; ndropped
|
||||
FOR i = 1 TO ndropped
|
||||
PRINT i; drgdy(i), drgoody(i, 1), drgoody(i, 13); drgoody(i, 14)
|
||||
NEXT i
|
||||
PauseForKey
|
||||
ccls 3: LOCATE 1, 1: PRINT "ngoody ---- "; ngoody;
|
||||
FOR i = 1 TO ngoody
|
||||
PRINT : PRINT i; gdy(i), : FOR j = 1 TO 11: PRINT goody(i, j); : NEXT j
|
||||
NEXT i: PauseForKey: ccls 3: LOCATE 1, 1
|
||||
PRINT "suits ------- "; radsuit; heatsuit; reflecsuit; wetsuit; camosuit; pinsuit; bulletsuit; spacesuit
|
||||
PRINT "flaslght etc "; flashlight; gasmask; mask; boots; ffgen; sunglasses
|
||||
PRINT "vehicle ----- "; vehicle
|
||||
PRINT "spore ------- "; spore
|
||||
PRINT "skinac ------ "; skinac
|
||||
PRINT "berac ------- "; berac
|
||||
PRINT "fastfight -- "; fastfight
|
||||
PRINT "difficulty -- "; difficulty
|
||||
PRINT "Elvis,Grnchlev"; elvislevel; grinchlevel
|
||||
PRINT "Other2hitC, Other2hitR"; other2hitc; other2hitr
|
||||
didstuff = false: PauseForKey: COLOR 7, 0: SCREEN , , vpage
|
||||
CASE 231
|
||||
SCREEN , , 3: COLOR 11, 1: ccls 3: LOCATE 1, 1
|
||||
PRINT "Name"; TAB(16); "sameroom, xdel,ydel, hits,hitmax,"; TAB(62); "regen, move, ac";
|
||||
FOR i = 1 TO nnear: LOCATE (i MOD 23) + 1, 1
|
||||
IF i = 23 THEN PauseForKey: CLS
|
||||
PRINT CreatNam(ncre(i, 1), i); TAB(22); SameRoom(ncre(i, 4), ncre(i, 5)); bl; bl;
|
||||
PRINT ncre(i, 4); ncre(i, 5); bl; bl; ncre(i, 2); ncre(i, 3); bl; bl; TAB(50);
|
||||
IF ncre(i, 11) AND 1 THEN PRINT "awake ";
|
||||
IF ncre(i, 11) AND 2 THEN PRINT "blind ";
|
||||
IF ncre(i, 11) AND 4 THEN PRINT "confused ";
|
||||
IF ncre(i, 11) AND 8 THEN PRINT "sick ";
|
||||
IF ncre(i, 11) AND 16 THEN PRINT "burping ";
|
||||
IF ncre(i, 11) AND 32 THEN PRINT "sneezing ";
|
||||
defens = ncre(i, 10): regen = 0
|
||||
IF defens AND 256 THEN regen = 1
|
||||
IF defens AND 2048 THEN regen = regen + 3
|
||||
PRINT TAB(65); regen; ncre(i, 6); ncre(i, 9)
|
||||
NEXT
|
||||
didstuff = false: PauseForKey: COLOR 7, 0: SCREEN , , vpage
|
||||
CASE 232
|
||||
FOR i = 2 TO 51
|
||||
FOR j = 2 TO 21
|
||||
IF SameRoom((i - localx), (j - localy)) THEN
|
||||
GetSym sym, i, j, fc, bc, 1
|
||||
PutSym sym, i, j, fc, 1, 1
|
||||
END IF
|
||||
NEXT j
|
||||
NEXT i
|
||||
PauseForKey
|
||||
FOR i = 2 TO 51
|
||||
FOR j = 2 TO 21
|
||||
GetSym sym, i, j, fc, bc, 1
|
||||
PutSym sym, i, j, fc, 0, 1
|
||||
NEXT j
|
||||
NEXT i
|
||||
didstuff = false
|
||||
CASE 233
|
||||
SCREEN , , 3: COLOR 11, 1: ccls 3: LOCATE 1, 1
|
||||
FOR i = 1 TO nmonolith
|
||||
monozone(i, 3) = 0
|
||||
PRINT monozone(i, 1); monozone(i, 2); monozone(i, 3)
|
||||
NEXT
|
||||
didstuff = false: PauseForKey: COLOR 7, 0: SCREEN , , vpage
|
||||
' CASE 234: lx = localx: ly = localy: crtyp = algore
|
||||
' MakeCreature lx, ly, false, false
|
||||
' CASE 235: nnear = 0
|
||||
|
175
ALPHA.DEC
Normal file
175
ALPHA.DEC
Normal file
@ -0,0 +1,175 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DEFINT A-Z
|
||||
DIM wep(26, 6), sh(9, 2), arm(12, 2)
|
||||
DIM symb(10, 3)
|
||||
DIM gdy(21) AS STRING, goody(21, 12)
|
||||
DIM bakpak(10) AS STRING, backpack(10, 12)
|
||||
DIM saf(10) AS STRING, safe(10, 12)
|
||||
DIM drgdy(30) AS STRING, drgoody(30, 16)
|
||||
DIM ncre(0 TO 50, 0 TO 15), scratch(50), localgoody(30, 3)
|
||||
DIM goodythere(2 TO 51, 2 TO 21), goodycastle(0 TO 6, -10 TO 10)
|
||||
DIM knownb(0 TO 40), berry$(0 TO 40), berord(0 TO 40)
|
||||
DIM ssd(95, 9), ssdtyp(95), ssdknown(95)
|
||||
DIM lsd(40, 4), lsdtyp(40), lsdknown(40)
|
||||
DIM radzone(10, 3), savcrn(30, 2), monozone(10, 3)
|
||||
DIM xstairs(-10 TO 10), ystairs(-10 TO 10), pag2(1 TO 52, 1 TO 22)
|
||||
DIM lsave(1 TO 3, 0 TO 10) AS STRING * 54
|
||||
|
||||
COMMON SHARED nnear, ncre(), incastle, dots, finishedcastles
|
||||
COMMON SHARED vpage, mainx, mainy, localx, localy, terrain, terrf, terrb
|
||||
COMMON SHARED currsym, currf, currb, ncastle, looksym
|
||||
COMMON SHARED str, stradd, dex, dexadd, con, rr, mr, intl, hitmax, hits
|
||||
COMMON SHARED hunger, fatigue!, expr&, lvl
|
||||
COMMON SHARED shield, armor, pmut, mmut
|
||||
COMMON SHARED lwall, rwall, twall, bwall, lwscr, rwscr, bwscr, twscr
|
||||
COMMON SHARED ssdknown(), lsdknown()
|
||||
COMMON SHARED goody(), ngoody, knownb()
|
||||
COMMON SHARED goodythere(), localgoody(), goodycastle()
|
||||
COMMON SHARED backpack(), npack, drgoody(), ndropped
|
||||
COMMON SHARED safe(), nsafe
|
||||
COMMON SHARED wep(), sh(), arm(), ssd(), lsd(), symb(), berord()
|
||||
COMMON SHARED radzone(), ssdtyp(), lsdtyp()
|
||||
COMMON SHARED ac, str2hit, strdam, dex2hit, other2hitc, other2hitr, otherdam
|
||||
COMMON SHARED tohitbase, fatig!, lpoint
|
||||
COMMON SHARED radsuit, heatsuit, reflecsuit, flashlight, gasmask, sunglasses
|
||||
COMMON SHARED wetsuit, mask, boots, ffgen, sunscreen, camosuit, pinsuit
|
||||
COMMON SHARED uvhelmet, neutronsuit
|
||||
COMMON SHARED forcefield, shock, touch, mheal, pmutturns, mmutturns, looking
|
||||
COMMON SHARED teleporting, inwater, waterturns, inpit, inweb, zippy, wpturns
|
||||
COMMON SHARED seed!, rdisp, fatadd!, didstuff, pooped, messturn, tentgrab
|
||||
COMMON SHARED castle, castlelevel, bldg, nruins, starting
|
||||
COMMON SHARED xstairs(), ystairs(), crtyp, savecorn, savcrn()
|
||||
COMMON SHARED xenter, yenter, xenterscr, yenterscr, enterdir, bitit
|
||||
COMMON SHARED berstr, berdex, bercon, berrr, bermr, berintl, berac, skinac
|
||||
COMMON SHARED berpmut, bermmut, berconfuse, berdet, berblind, berhic
|
||||
COMMON SHARED berscience, berscare, berrambo, berfresh
|
||||
COMMON SHARED berklutz, klutzdex, berregen, beryum, berff
|
||||
COMMON SHARED berhpmut, berhmmut
|
||||
COMMON SHARED strtox, dextox, contox, hittox
|
||||
COMMON SHARED weather, wind, gt!, rside, roachdef, radint, attractx, attracty
|
||||
COMMON SHARED agin, keysave1, keysave2, keysave3, scratch()
|
||||
COMMON SHARED dark, confu, grabbed, vehicle, asleep, invisible, sick, udder
|
||||
COMMON SHARED moon, stopfastmove, wimpsym, wimpcolr, flare
|
||||
COMMON SHARED mirror, coffee, tapenum, elvislevel, grinchlevel, grinchzone
|
||||
COMMON SHARED serum!, bsshoes, spacesuit, bergreen, map, tapeworm, didmusk
|
||||
COMMON SHARED turbo!, bulletsuit, brandy, inglue, inbog, insand, hail, tent
|
||||
COMMON SHARED monozone(), xmono, ymono, mononum, notoxin, metshat, answer
|
||||
COMMON SHARED grinchstole AS LONG, mindweb, sousa, repulse, ripehrs, spore
|
||||
COMMON SHARED difficulty, fastfight, pag2()
|
||||
COMMON SHARED l1 AS STRING * 54, l2 AS STRING * 54, l3 AS STRING * 54
|
||||
COMMON SHARED lsave() AS STRING * 54
|
||||
COMMON SHARED st1 AS STRING
|
||||
COMMON SHARED name$, pmutn$, mmutn$, berry$(), s$, t$, ber$, wimpname$
|
||||
COMMON SHARED bakpak() AS STRING, saf() AS STRING
|
||||
COMMON SHARED drgdy() AS STRING, gdy() AS STRING
|
||||
|
||||
CONST blk = 0, blu = 1, grn = 2, cyn = 3, red = 4, mag = 5, brn = 6, wht = 7
|
||||
CONST wallcolr = 9, pit = 10, trap = 19, secretdoor = 228, lockeddoor = 43
|
||||
CONST gas = 64, monosym = 227, nmonolith = 10, chasm = 31
|
||||
CONST pi = 3.141593, true = -1, false = 0, bl = " "
|
||||
CONST plains = 32, woods = 42, forest = 15, marsh = 176, swamp = 177, water = 247
|
||||
CONST ul = 201, um = 203, ur = 187, ml = 204, cen = 206, mrt = 185, ll = 200, lm = 202, lr = 188, hor = 205, ver = 186
|
||||
CONST hardplay = 0, moderateplay = 2, easyplay = 5
|
||||
CONST versiondate = 91094
|
||||
|
||||
CONST nberry = 35
|
||||
CONST nphysmut = 17, nmentmut = 13
|
||||
CONST nwep = 14, nrwep = 12
|
||||
CONST nsh = 9, narm = 12
|
||||
CONST nssd = 38, ngrenade = 14, ntechwep = 37, nstrash = 18
|
||||
CONST nlsd = 25, nltrash = 13
|
||||
|
||||
CONST ncreat = 66
|
||||
CONST crecas = 18
|
||||
CONST crefor = 17
|
||||
CONST creswa = 17
|
||||
CONST crepla = 17
|
||||
CONST creh2o = 23
|
||||
CONST creextra = crecas + crefor + creswa + crepla + creh2o
|
||||
|
||||
CONST wimp = 1, centi = wimp + 2
|
||||
CONST snail = centi + 1, daff = snail + 3
|
||||
CONST aspa = daff + 1, dung = aspa + 1, ant = dung + 1, gspore = ant + 2
|
||||
CONST dfly = gspore + 1
|
||||
CONST lotus = dfly + 5, cb = lotus + 1, fish = cb + 3
|
||||
CONST rose = fish + 1, zap = rose + 1, mant = zap + 1
|
||||
CONST japb = mant + 1, mph = japb + 1
|
||||
CONST sunf = mph + 1, rweed = sunf + 1, bee = rweed + 1
|
||||
CONST roach = bee + 3, pryor = roach + 2, goat = pryor + 2
|
||||
CONST icew = goat + 1, rotf = icew + 1
|
||||
CONST pokey = rotf + 1, gumby = pokey + 1, tworm = gumby + 1
|
||||
CONST slug = tworm + 1, venus = slug + 3, blob = venus + 1
|
||||
CONST bush = blob + 2, quayle = bush + 1
|
||||
CONST tara = quayle + 2, phoe = tara + 1, scor = phoe + 1
|
||||
CONST robot = scor + 2, bwid = robot + 1, mosq = bwid + 2
|
||||
CONST kong = mosq + 5, rodan = kong + 1, godz = rodan + 1
|
||||
|
||||
CONST slime = ncreat + 1
|
||||
CONST ooze = slime + 1, rdro = ooze + 2, magg = rdro + 1
|
||||
CONST rat = magg + 1, pmold = rat + 1, ddro = pmold + 2
|
||||
CONST gmold = ddro + 1, wspid = gmold + 2, efung = wspid + 1
|
||||
CONST volte = efung + 1, brecl = volte + 1
|
||||
CONST sdro = brecl + 1, brain = sdro + 1
|
||||
CONST wdro = brain + 1
|
||||
|
||||
'10000*move+10*HD+AC+, spec.def, 1000*clr+sym , susceptibility, exp
|
||||
'100*str+2hitbase, 100*attack type+range, ..., ..., ..., ...
|
||||
|
||||
CONST tfrog = ncreat + crecas + 1
|
||||
CONST svine = tfrog + 1, pivy = svine + 1, stool = pivy + 1
|
||||
CONST term = stool + 1, mush = term + 1, nshade = mush + 4
|
||||
CONST algore = nshade + 1, fern = algore + 1
|
||||
CONST bfoot = fern + 1, wil = bfoot + 2, raptor = wil + 1
|
||||
|
||||
CONST leec = ncreat + crecas + crefor + 2
|
||||
CONST mold = leec + 1, gcrab = mold + 1, bbeet = gcrab + 3
|
||||
CONST tick = bbeet + 1, puff = tick + 1
|
||||
CONST dweed = puff + 1, gworm = dweed + 2, bogh = gworm + 5
|
||||
|
||||
CONST chick = ncreat + crecas + crefor + creswa + 1
|
||||
CONST moth = chick + 3, stink = moth + 2, hyena = stink + 3, fox = hyena + 1
|
||||
CONST gwasp = fox + 1, locust = gwasp + 1, bunny = locust + 2
|
||||
CONST cact = bunny + 2
|
||||
|
||||
CONST kelp = ncreat + crecas + crefor + creswa + crepla + 1
|
||||
CONST sard = kelp + 1, sgull = sard + 2, lobstr = sgull + 1
|
||||
CONST urchin = lobstr + 4, jelly = urchin + 1, squid = jelly + 1
|
||||
CONST rsnap = squid + 3, octopus = rsnap + 3
|
||||
|
||||
CONST webspid = ncreat + creextra + 1
|
||||
|
||||
CONST gill = webspid + 1
|
||||
CONST skip = gill + 1, prof = skip + 1, ging = prof + 1, mary = ging + 1
|
||||
CONST mrhow = mary + 1, mrshow = mrhow + 1
|
||||
|
||||
CONST herm = mrshow + 1, lily = herm + 1, gramp = lily + 1, eddie = gramp + 1
|
||||
CONST mara = eddie + 1, spot = mara + 1, igor = spot + 1, fester = igor + 1
|
||||
|
||||
CONST elvimp = fester + 1, elvis = elvimp + 1
|
||||
|
||||
CONST buzz = elvis + 1, zola = buzz + 1, mdeck = zola + 1, ghart = mdeck + 1
|
||||
CONST saddam = ghart + 1, cubs = saddam + 1
|
||||
|
||||
CONST trump = cubs + 1, ivana = trump + 1, marla = ivana + 1
|
||||
|
||||
CONST grinch = marla + 1, gdog = grinch + 1
|
||||
|
347
ALPHA.GDY.txt
Normal file
347
ALPHA.GDY.txt
Normal file
@ -0,0 +1,347 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
' $INCLUDE: 'alpha.dec'
|
||||
|
||||
CLS
|
||||
PRINT USING "nssd:## ngrenade:## techwep:## nstrash:##"; nssd; ngrenade; ntechwep - ngrenade; nstrash
|
||||
PRINT USING "nlsd:## nltrash:##"; nlsd; nltrash
|
||||
|
||||
wepnames:
|
||||
DATA 4,58,6, 1,64,4, 5,58,9, 38,58,8
|
||||
DATA 4,64,4, 15,58,11, 12,63,5, 83,57,10
|
||||
DATA 47,62,7, 19,52,15, 40,54,14, 89,57,12
|
||||
DATA 181,40,18, 182,1,14
|
||||
'range
|
||||
DATA 174,61,8, 18,62,4, 181,1,12, 23,62,5
|
||||
DATA 171,59,7, 302,55,13, 64,59,9, 30,62,5
|
||||
DATA 181,13,13, 268,35,16, 268,51,14, 181,26,14
|
||||
shnames:
|
||||
DATA 419,46,14, 151,27,14, 151,1,14, 415,54,14
|
||||
DATA 182,15,11, 181,58,11, 151,15,12, 415,42,12, 173,67,2
|
||||
armnames:
|
||||
DATA 312,1 ,18, 236,1 ,18, 228,50,18
|
||||
DATA 183,1 ,9 , 236,19,18, 184,1 ,13
|
||||
DATA 183,19,16, 183,10,9 , 183,43,8
|
||||
DATA 182,53,16, 183,51,15, 183,35,8
|
||||
|
||||
technames:
|
||||
DATA 184,14,9, 184,24,8, 184,32,8, 184,40,6
|
||||
DATA 184,46,13, 184,59,9, 185,1,17, 185,18,9
|
||||
DATA 185,27,22, 185,49,16, 200,1,18, 146,1,17
|
||||
DATA 205,39,21, 224,42,22, 225,39,21, 119,36,17
|
||||
DATA 235,35,20, 236,37,19, 241,31,7, 255,24,13
|
||||
DATA 255,37,6, 255,43,8, 287,40,9, 285,48,12
|
||||
DATA 287,49,17, 311,1,16, 317,49,16, 191,52,13
|
||||
DATA 146,50,12, 290,26,18, 110,43,17, 119,17,19
|
||||
DATA 125,51,13, 142,1,16, 131,49,15, 136,1,18
|
||||
DATA 276,59,9, 365,1,14
|
||||
' grenades
|
||||
DATA 131,9,21, 186,28,16, 186,44,18, 187,1,17
|
||||
DATA 187,18,11, 206,27,14, 228,23,15, 250,18,12
|
||||
DATA 314,29,12, 317,1,22, 159,51,17, 420,57,12
|
||||
DATA 119,53,14, 395,56,13
|
||||
|
||||
DATA 187,29,9, 187,42,10, 187,52,9, 187,61,7
|
||||
DATA 188,1,12, 186,62,6, 188,13,12, 188,25,18
|
||||
DATA 188,43,9, 188,52,16, 189,1,11, 228,38,12
|
||||
DATA 173,56,11, 241,38,10, 250,30,11, 262,29,19
|
||||
DATA 132,50,17, 310,43,8, 310,51,7, 131,30,19
|
||||
DATA 99,59,8, 204,38,11, 151,53,13
|
||||
|
||||
DATA 189,12,22, 189,34,18, 189,59,7, 190,1,13
|
||||
DATA 190,14,21, 190,35,13, 190,48,6, 190,54,11
|
||||
DATA 204,49,11, 206,1,12, 218,1,17, 250,41,7
|
||||
DATA 310,58,11, 315,56,12, 159,43,8, 138,53,11
|
||||
DATA 216,45,9, 146,18,14
|
||||
|
||||
'lsd
|
||||
DATA 191,1,14, 191,15,12, 191,27,15, 191,42,10
|
||||
DATA 237,1,20, 192,1,14, 192,15,7, 191,65,4
|
||||
DATA 192,22,14, 218,48,17, 232,41,7, 235,1,9
|
||||
DATA 237,59,10, 241,1,15, 243,1,5, 243,6,11
|
||||
DATA 293,47,20, 309,46,15, 310,29,14, 314,53,16
|
||||
DATA 120,16,19, 141,39,9, 141,48,10, 382,64,4
|
||||
DATA 362,43,12
|
||||
|
||||
DATA 192,36,17, 192,53,7, 193,1,18, 193,19,5
|
||||
DATA 192,60,9, 193,24,12, 206,13,14, 218,18,14
|
||||
DATA 218,32,16, 54,16,11, 232,48,10, 387,52,17
|
||||
DATA 168,51,10
|
||||
|
||||
syms:
|
||||
DATA 22,5,0, 254,6,0, 24,1,0, 8,7,0
|
||||
DATA 9,3,0, 5,4,0, 12,14,0, 157,11,0
|
||||
DATA 4,1,0, 135,14,0
|
||||
|
||||
'fatig, uses, dice,dam, 2hitbonus,range
|
||||
wep:
|
||||
DATA 2, -1, 1,4, -2,1
|
||||
DATA 6, -1, 1,5, -2,1
|
||||
DATA 10, -1, 1,6, -1,1
|
||||
DATA 7, -1, 1,7, -1,1
|
||||
DATA 12, -1, 1,8, 0,1
|
||||
DATA 8, -1, 1,9, 0,1
|
||||
DATA 15, -1, 1,10, 1,1
|
||||
DATA 15, -1, 1,11, 1,1
|
||||
DATA 20, -1, 1,12, 1,1
|
||||
DATA 2, -1, 2,5, 2,1
|
||||
DATA 7, -1, 2,6, 2,1
|
||||
DATA 12, -1, 2,7, 2,1
|
||||
DATA 2, -1, 3,5, 3,1
|
||||
DATA 2, -1, 3,6, 3,1
|
||||
|
||||
'Range
|
||||
DATA 1, 20, 1,3, -3,10
|
||||
DATA 1, 16, 1,4, -2,9
|
||||
DATA 3, 10, 1,5, 0,5
|
||||
DATA 1, 14, 1,6, -1,8
|
||||
DATA 3, 9, 1,7, 0,8
|
||||
DATA 2, 9, 1,8, -1,7
|
||||
DATA 2, 8, 1,9, 0,5
|
||||
DATA 4, 6, 1,10, 1,6
|
||||
DATA 1, 10, 2,4, 2,10
|
||||
DATA 2, 8, 2,6, 2,9
|
||||
DATA 1, 8, 3,4, 3,11
|
||||
DATA 2, 6, 3,6, 3,9
|
||||
|
||||
sh: DATA 8,5, 4,4, 20,5, 10,4, 20,4, 10,3, 10,3, 5,2, 0,0
|
||||
arm: DATA 25,10, 15,8, 60,9, 100,8, 40,7, 25,7, 35,6, 60,5
|
||||
DATA 40,4, 20,3, 15,2, 0,0
|
||||
'fatig, hits2kill
|
||||
|
||||
'typ (energy-mass), fatig,uses,complex, recharge
|
||||
ssd: DATA 92, 1,-1,20, 0
|
||||
DATA 1, 3,-1,25, 0
|
||||
DATA 2, 6,-1,10, 0
|
||||
DATA 98, 2,5,6, -1
|
||||
DATA 96, 3,1,30, 0
|
||||
DATA 90, 1,1,18, -1
|
||||
DATA 99, 5,8,7, -1
|
||||
DATA 94, 2,12,16, -1
|
||||
DATA 1, 0,30,25, 0
|
||||
DATA 2, 0,10,25, 0
|
||||
DATA 97, 10,-1,10, 0
|
||||
DATA 96, 9,25,10, -1
|
||||
DATA 99, 10,70,5, -1
|
||||
DATA 99, 2,1,2, 0
|
||||
DATA 99, 6,1,3, 0
|
||||
DATA 1, 2,10,45, 0
|
||||
DATA 1, 1,25,8, 0
|
||||
DATA 1, 1,8,12, 0
|
||||
DATA 1, 0,-1,40, 0
|
||||
DATA 14, 15,10,17, 0
|
||||
DATA 3, 2,-1,19, 0
|
||||
DATA 0, 3,1,28, 0
|
||||
DATA 99, 3,6,9, -1
|
||||
DATA 97, 3,50,18, -1
|
||||
DATA 1, 4,10,25, 0
|
||||
DATA 33, 10,3,5, 0
|
||||
DATA 1, 5,20,30, 0
|
||||
DATA 96, 20,4,1, -1
|
||||
DATA 97, 9,20,8, -1
|
||||
DATA 1, 1,20,20, 0
|
||||
DATA 95, 13,5,4, -1
|
||||
DATA 0, 3,12,40, 0
|
||||
DATA 98, 8,20,10, -1
|
||||
DATA 95, 3,12,20, -1
|
||||
DATA 95, 4,8,15, -1
|
||||
DATA 0, 4,8,20, 0
|
||||
DATA 95, 10,15,12, -1
|
||||
DATA 99, 5,50,8, -1
|
||||
|
||||
'Tech Wep
|
||||
'typ(energy-mass), fatg,use,cmplx, dic,dam,2hitbon,rnge,damtyp, recharg
|
||||
DATA 11, 1,1,12, 7,7,6,1,1, 0
|
||||
DATA 14, 1,1,10, 8,8,12,1,15, 0
|
||||
DATA 11, 1,1,12, 9,9,6,1,10, 0
|
||||
DATA 13, 1,1,7, 2,30,10,1,8, 0
|
||||
DATA 13, 1,1,10, 2,15,6,1,5, 0
|
||||
DATA 15, 1,1,6, 15,15,8,1,7, 0
|
||||
DATA 15, 1,1,7, 12,12,10,1,2, 0
|
||||
DATA 1, 1,1,18, 4,10,6,1,6, 0
|
||||
DATA 13, 1,1,13, 1,4,12,2,27, 0
|
||||
DATA 25, 1,1,8, 15,30,20,1,15, 0
|
||||
DATA 48, 1,1,9, 5,5,12,2,9, 0
|
||||
DATA 12, 1,1,11, 1,6,8,2,12, 0
|
||||
DATA 44, 1,1,5, 15,15,10,2,2, 0
|
||||
DATA 13, 1,1,10, 1,4,10,2,22, 0
|
||||
|
||||
DATA 55, 5,20,7, 3,9,3,1,10, -1
|
||||
DATA 13, 1,60,15, 1,8,2,7,1, 0
|
||||
DATA 98, 3,20,5, 4,8,6,1,9, -1
|
||||
DATA 33, 10,8,15, 8,7,9,3,1, 0
|
||||
DATA 99, 5,10,4, 7,7,6,8,7, -1
|
||||
DATA 99, 3,10,3, 8,8,7,6,10, -1
|
||||
DATA 57, 15,6,4, 8,8,6,6,2, -1
|
||||
DATA 97, 11,5,3, 6,20,3,2,15, -1
|
||||
DATA 74, 5,24,10, 2,4,5,1,1, -1
|
||||
DATA 13, 20,4,9, 9,9,4,80,1, 0
|
||||
DATA 1, 2,16,16, 3,3,8,1,3, 0
|
||||
DATA 55, 15,8,8, 8,9,6,5,10, -1
|
||||
DATA 99, 2,18,12, 5,8,7,1,7, -1
|
||||
DATA 99, 12,12,6, 7,8,8,6,11, -1
|
||||
DATA 1, 1,10,13, 4,8,6,2,4, 0
|
||||
DATA 1, 1,20,18, 3,3,6,2,6, 0
|
||||
DATA 1, 5,20,20, 1,4,4,2,28, 0
|
||||
DATA 73, 20,18,8, 9,6,5,1,1, -1
|
||||
DATA 99, 5,30,4, 2,6,4,6,10, -1
|
||||
DATA 1, 3,10,25, 1,1,5,4,12, 0
|
||||
DATA 99, 4,12,12, 1,6,15,9,27, -1
|
||||
DATA 1, 1,20,18, 1,1,5,1,29, 0
|
||||
DATA 1, 1,15,18, 1,1,8,1,18, 0
|
||||
'typ(energy-mass), fatg,uses,cmplx, dic,dam,2hitbon,rnge,damtyp, rechrg
|
||||
'S Junk
|
||||
'typ(energy-mass), fatig,uses,complex, recharge
|
||||
DATA 1, 1,-1,25, 0
|
||||
DATA 1, 1,-1,25, 0
|
||||
DATA 4, 3,-1,10, 0
|
||||
DATA 1, 1,-1,25, 0
|
||||
DATA 99, 3,1,2, 0
|
||||
DATA 97, 5,40,9, -1
|
||||
DATA 2, 1,-1,22, 0
|
||||
DATA 93, 8,15,15, -1
|
||||
DATA 3, 2,-1,15, 0
|
||||
DATA 1, 1,-1,20, 0
|
||||
DATA 22, 2,12,10, -1
|
||||
DATA 1, 1,-1,20, 0
|
||||
DATA 1, 1,1,25, 0
|
||||
DATA 62, 15,1,7, 0
|
||||
DATA 1, 3,1,17, 0
|
||||
DATA 9, 1,-1,30, 0
|
||||
DATA 95, 12,20,9, -1
|
||||
DATA 82, 2,15,15, -1
|
||||
|
||||
'typ(energy-mass), fatig,uses,complex, recharge
|
||||
lsd: DATA 2, 20,-1,10, 0
|
||||
DATA 1, 40,-1,20, 0
|
||||
DATA 3, 3,-1,15, 0
|
||||
DATA 93, 400,10,2, -1
|
||||
DATA 96, 100,4,1, -1
|
||||
DATA 94, 100,25,8, -1
|
||||
DATA 2, 30,-1,17, 0
|
||||
DATA 1, 300,-1,14, 0
|
||||
DATA 99, 10,10,5, -1
|
||||
DATA 91, 200,6,8, -1
|
||||
DATA 32, 60,10,6, -1
|
||||
DATA 92, 250,14,8, -1
|
||||
DATA 1, 20,-1,18, 0
|
||||
DATA 97, 50,10,4, -1
|
||||
DATA 1, 80,-1,18, 0
|
||||
DATA 1, 30,-1,25, 0
|
||||
DATA 93, 25,8,15, -1
|
||||
DATA 1, 10,-1,30, 0
|
||||
DATA 1, 5,-1,20, 0
|
||||
DATA 2, 20,-1,15, 0
|
||||
DATA 96, 25,8,5, -1
|
||||
DATA 96, 50,15,5, -1
|
||||
DATA 81, 80,25,20, -1
|
||||
DATA 1, 12,-1,18, 0
|
||||
DATA 1, 50,-1,10, 0
|
||||
|
||||
'L Junk
|
||||
'typ(energy-mass),fatig,uses,complex, recharge
|
||||
DATA 1, 300,-1,10, 0
|
||||
DATA 1, 80,-1,20, 0
|
||||
DATA 92, 100,4,4, -1
|
||||
DATA 63, 100,12,5, -1
|
||||
DATA 93, 200,1,3, -1
|
||||
DATA 94, 50,10,5, -1
|
||||
DATA 93, 100,20,5, -1
|
||||
DATA 2, 20,-1,18, 0
|
||||
DATA 93, 200,3,2, -1
|
||||
DATA 0, 250,-1,19, 0
|
||||
DATA 1, 60,-1,10, 0
|
||||
DATA 92, 150,3,5, -1
|
||||
DATA 93, 40,10,4, -1
|
||||
|
||||
OPEN "alphaman.3" FOR BINARY AS #1
|
||||
|
||||
RESTORE wepnames
|
||||
FOR i = 1 TO nwep + nrwep + nsh + narm
|
||||
FOR j = 1 TO 3: READ sss: PUT #1, , sss: NEXT j
|
||||
NEXT i
|
||||
|
||||
RESTORE technames
|
||||
FOR i = 1 TO nssd + ntechwep + nstrash + nlsd + nltrash
|
||||
FOR j = 1 TO 3: READ sss: PUT #1, , sss: NEXT j
|
||||
NEXT i
|
||||
|
||||
RESTORE syms
|
||||
FOR i = 1 TO 10
|
||||
FOR j = 1 TO 3
|
||||
READ sss: PUT #1, , sss
|
||||
NEXT j
|
||||
NEXT i
|
||||
|
||||
RESTORE wep
|
||||
FOR i = 1 TO nwep + nrwep
|
||||
FOR j = 1 TO 6
|
||||
READ sss: PUT #1, , sss
|
||||
NEXT j
|
||||
NEXT i
|
||||
|
||||
RESTORE sh
|
||||
FOR i = 1 TO nsh
|
||||
FOR j = 1 TO 2: READ sss: PUT #1, , sss: NEXT j
|
||||
NEXT i
|
||||
|
||||
RESTORE arm
|
||||
FOR i = 1 TO narm
|
||||
FOR j = 1 TO 2: READ sss: PUT #1, , sss: NEXT j
|
||||
NEXT i
|
||||
|
||||
RESTORE ssd
|
||||
FOR i = 1 TO nssd
|
||||
FOR j = 1 TO 5
|
||||
READ sss: PUT #1, , sss: IF i = nssd THEN PRINT sss;
|
||||
NEXT j
|
||||
NEXT i
|
||||
PRINT
|
||||
|
||||
FOR i = 1 TO ntechwep
|
||||
FOR j = 1 TO 10
|
||||
READ sss: PUT #1, , sss: IF i = ntechwep THEN PRINT sss;
|
||||
NEXT j
|
||||
NEXT i
|
||||
PRINT
|
||||
|
||||
FOR i = 1 TO nstrash
|
||||
FOR j = 1 TO 5
|
||||
READ sss: PUT #1, , sss: IF i = nstrash THEN PRINT sss;
|
||||
NEXT j
|
||||
NEXT i
|
||||
PRINT
|
||||
|
||||
RESTORE lsd
|
||||
FOR i = 1 TO nlsd + nltrash
|
||||
FOR j = 1 TO 5
|
||||
READ sss: PUT #1, , sss: IF i = nlsd + nltrash THEN PRINT sss;
|
||||
NEXT j
|
||||
NEXT i
|
||||
PRINT
|
||||
|
||||
GET #1, 6 * (nwep + nrwep + nsh + narm + nssd + ntechwep + nstrash + nlsd + nltrash) - 5, i
|
||||
GET #1, , j: GET #1, , k
|
||||
PRINT i; j; k;
|
||||
CLOSE #1
|
||||
|
||||
END
|
||||
|
264
ALPHAMAN.FAQ.txt
Normal file
264
ALPHAMAN.FAQ.txt
Normal file
@ -0,0 +1,264 @@
|
||||
AlphaMan FAQ updated: August 1995
|
||||
Most recent version: 1.1
|
||||
|
||||
Please direct all questions and suggestions to Jeff Olson:
|
||||
Jeffrey Olson
|
||||
214 E. Sherwin Dr.
|
||||
Urbana, IL 61801 USA
|
||||
76473.225@compuserve.com.
|
||||
|
||||
|
||||
RELEASE INFORMATION ------------------------------------------------------
|
||||
February 1995 AlphaMan 1.0 released. Shareware by Jeff Olson.
|
||||
March 1995 AlphaMan 1.01 released.
|
||||
Improvements: Made food somewhat more plentiful. Added a "fast fight"
|
||||
mode to bypass spacebar presses during combat. Added an Easy and a
|
||||
Moderately Easy level of difficulty to assist beginners. Fixed an
|
||||
annoying quirk of superglue traps.
|
||||
April 1995 AlphaMan 1.02 released.
|
||||
Improvements: Fixed bug that could crash game when character's hunger
|
||||
went from "Very Hungry" to "Famished". Made Invisibility, Quills and
|
||||
Heightened Endurance somewhat more powerful to balance them out.
|
||||
May 1995 AlphaMan 1.03 released.
|
||||
Improvements: Fixed saved filename convention to properly handle odd
|
||||
characters such as ? and + in character's name.
|
||||
June 1995 AlphaMan 1.1 released.
|
||||
Improvements: Game now remembers recent castle and lair levels, so
|
||||
remapping is no longer necessary. For example, most dropped items will
|
||||
still be there when character returns to a place already visited.
|
||||
Now separate "Halls of the Dead" for the different difficulty level.
|
||||
Now an experience bonus at the end of the game for each "subquest"
|
||||
successfully completed, an additional bonus if the game was won, and a
|
||||
further bonus if it was won in a short amount of time.
|
||||
The Main Map key (F5) now shows regions where you've visited (useful for
|
||||
looking for Monoliths).
|
||||
Several new devices have been added.
|
||||
** There is a known bug with version 1.1: if you teleport out of a castle
|
||||
and then re-enter it without first entering a different castle, peculiar
|
||||
things may happen when you go up/down stairs. This is related to the
|
||||
castle level saving. It should never crash your computer, however.
|
||||
|
||||
|
||||
WHAT IS ALPHAMAN? --------------------------------------------------------
|
||||
AlphaMan (Copyright (c) 1995 Jeffrey R. Olson) is an adventure game set
|
||||
on Earth in the future, following a nuclear disaster. You will take the role
|
||||
of a mutated human who is struggling to save the planet from annihilation.
|
||||
You will be pitted against hideously mutated plants and animals, traps and
|
||||
snares of all sorts, and several varied adversaries whom you will have to
|
||||
defeat in order to complete your mission. At your disposal are a broad
|
||||
variety of technological relics and mutated substances which you will acquire
|
||||
along the way, as well as your own powers and guile. AlphaMan has occasional
|
||||
humorous twists, and uses colorful text-based graphics in the spirit of Rogue
|
||||
or NetHack. Requires 640K, color. AlphaMan is loosely based on Gamma World
|
||||
by James Ward of TSR Hobbies.
|
||||
|
||||
|
||||
WHERE CAN ALPHAMAN BE FOUND? ---------------------------------------------
|
||||
The current release of AlphaMan (currently 1.1) can be found via FTP at
|
||||
ftp.win.tue.nl in /pub/games/alphaman.
|
||||
The most recent major update (currently 1.1) can likely be found at
|
||||
ftp.dungeon.com in /pub/msdos/games/Misc,
|
||||
ftp.indirect.com in /pub/software/games,
|
||||
ftp.inf.tu-dresden.de in /.4.1/vol4/ms-dos/games/roleplay,
|
||||
ftp.funet.fi in /pub/msdos/games/rpg.
|
||||
|
||||
|
||||
WHAT DO THE CHARACTER STATS MEAN? ----------------------------------------
|
||||
Your character will have six basic personal attributes: Strength
|
||||
(physical power), Dexterity (agility and quickness), Constitution (fortitude
|
||||
and health), Radiation Resistance (susceptibility to radiation), Mental
|
||||
Resistance (susceptibility to mental attacks) and Intelligence (learning
|
||||
ability). These characteristics generally are in the range 3-18 (higher is
|
||||
"better"), but some mutations, devices, etc. can raise or lower these. Your
|
||||
characteristics may increase with time as you gain experience as well.
|
||||
There is no limit to how high your stats can go. I have had characters
|
||||
finish the game with a Strength of 38, a Dexterity of 36, and no stat below
|
||||
18. I've also finished the game (and won) with a Dexterity of -1.
|
||||
Your character also has Hit Points. These reveal to how much damage you
|
||||
can sustain before dying. You lose hit points as you are damaged by attacks
|
||||
from creatures, falling into pits, etc. You heal hit points back over time,
|
||||
and some devices and substances will heal you faster. In addition, you will
|
||||
gain more hit points as you become a more experienced adventurer.
|
||||
|
||||
|
||||
HOW DO THE MUTATIONS WORK? -----------------------------------------------
|
||||
A character has a physical and a mental mutation. The following is a
|
||||
list of all mutations currently implemented, and a brief overview of their
|
||||
usefulness. A more detailed description is given in the spoiler file
|
||||
alphaman.spl
|
||||
|
||||
Physical mutations:
|
||||
Electrical Generation: usable every few rounds, this attack causes
|
||||
electrical damage to any creature touching you during the round used.
|
||||
The damage done is significant, but not all creatures need to touch you
|
||||
to hurt you!
|
||||
Heightened Dexterity: this mutation raises your dexterity to 19-23,
|
||||
subject to reduction by encumbrance in the usual way.
|
||||
Heightened Strength: this mutation raises your strength to 19-23,
|
||||
subject to reduction by fatigue in the usual way.
|
||||
Heightened Vision: allows you to see long distances, to see invisible
|
||||
creatures, to search more effectively, and to hit more often in combat.
|
||||
Tough Exoskeleton: lowers your armor class, making you harder to hit in
|
||||
combat and reducing your damage sustained. It encumbers you slightly.
|
||||
Sonic Attack: usable every 12 rounds, this does burning damage to
|
||||
all nearby creatures not protected from heat.
|
||||
Blood Structure Change: raises your constitution to 19-23, making you
|
||||
more robust and giving you more hit points and poison resistance.
|
||||
Reflective Skin: raises your radiation resistance to 19-23, and makes you
|
||||
more resistant to lasers and heat. You take only 1/2 damage from laser
|
||||
attacks, and 2/3 damage from heat attacks.
|
||||
Laser Generation: usable every 13 rounds, this attack does laser damage
|
||||
to a selected target if it successfully hits. It does substantial damage.
|
||||
Heightened Endurance: you tire much less easily and regain lost hit points
|
||||
more rapidly, and you can sustain a much longer duration underwater. You
|
||||
cas also carry twice the weight before becoming encumbered.
|
||||
Foul Musk: usable every 14 rounds, you cause nearby creatures to
|
||||
get sick and flee for a variable duration of time.
|
||||
Acidic Saliva: usable every 8 rounds, this attack causes acid damage to a
|
||||
selected target if you successfully hit. It is easier to hit at close
|
||||
range. This does appreciable damage.
|
||||
Poison Claws: you cause poison damage to a selected target if a successful
|
||||
hit is scored. You can inject poison every 5 rounds.
|
||||
Heightened Speed: usable about every 30 rounds, you can double your speed
|
||||
for 10-20 rounds, allowing you extra attacks or movement. This mutation
|
||||
may be too powerful in its present form!
|
||||
Radiation Generation: usable every 15 rounds, you can generate a beam of
|
||||
radiation capable of damaging creatures in line with a selected target.
|
||||
Quills: these provide protection by causing damage to any creature touching
|
||||
you. You can also shoot them at an opponent every few rounds.
|
||||
Tenticles: you can entwine a selected target and cause constriction damage
|
||||
every round. While constricting, you are able to do other things. If you
|
||||
move, you will release your tenticles.
|
||||
|
||||
Mental mutations:
|
||||
Military Genius: you are a natural soldier, hitting more often and
|
||||
doing more damage than normal mutants.
|
||||
Scientific Genius: your intelligence is raised to 19-23, and you can
|
||||
construct new tech devices with parts and energy salvaged by dismanteling
|
||||
old ones. You can only make devices which you have seen before and figured
|
||||
out, and often must try several times before you figure out how to make the
|
||||
desired device.
|
||||
Heightened Willpower: your mental resistance is raised to 19-23, and you
|
||||
are able to temporarily raise all your stats and your hit points.
|
||||
Mental Blast: usable every 12 rounds, you can attempt to overload the
|
||||
mental synapses of a selected opponent to do damage. This attack does
|
||||
substantial damage, but some of the more dangerous critters (for example,
|
||||
most of the molds and funguses) resist mental attacks.
|
||||
Teleportation: you can mentally transport yourself short or long distances.
|
||||
You must be rested to teleport, and it can only be used infrequently.
|
||||
Mental Healing: you can heal yourself at a rate of 3 hit points / round.
|
||||
You must sit motionless to do this, however, and it is tiring. It is
|
||||
nice to be able to enter unfamiliar situations with maximum hits, though.
|
||||
Force Field: while activated, you take reduced damage (typically
|
||||
2/3 normal) from all attacks. It is tiring to use, however.
|
||||
Molecular Disruption: usable every 12 rounds, this mental assault can
|
||||
totally destroy creatures or other objects at which it is targeted.
|
||||
Useful for going through walls.
|
||||
Life Leech: you can steal hit points from nearby monsters and add
|
||||
them to your own. This is usable every 4 rounds.
|
||||
Invisibility: you can mentally bend light rays around you, which makes you
|
||||
difficult to see and less susceptible to lasers. Lasts about 12 rounds.
|
||||
You are also less susceptible to blindness attacks.
|
||||
Cryogenics: you can mentally freeze an opponent, doing progressively
|
||||
more damage as the opponent freezes. It is usable every 3 rounds.
|
||||
Damage increases exponentially, doing 1d6, 2d6, 4d6, 8d6 etc. on
|
||||
progressive "hits", so it is extremely useful against powerful opponents.
|
||||
Hypnosis: you can put opponents to sleep by a sheer force of will. This
|
||||
ability is usable every 3 rounds.
|
||||
Psychokinesis: you are able to disrupt matter to create grenade-like
|
||||
explosions. This ability is tiring, and can only be used every 15 rounds.
|
||||
|
||||
|
||||
WHAT USE ARE TECH DEVICES? -----------------------------------------------
|
||||
As a character progress, (s)he will accumulate technological relics which
|
||||
can be extremely useful. AlphaMan includes over 125 different devices,
|
||||
including tech weapons like the Laser Pistol, Flamethrower, etc., various
|
||||
grenades, vehicles like the Hovercraft or Golf Cart, protective suits like
|
||||
the Radiation Suit or the Bulletproof Vest, and a myriad of miscellaneous
|
||||
gadgets.
|
||||
Many devices one can find are truly useless, such as the Toaster or
|
||||
Leafblower. Some have more subtle uses. A Microwave Oven, for example,
|
||||
can prematurely ripen berries (see below). A Home Movie Projector will
|
||||
put critters to sleep. Some devices can be dangerous to use, like the
|
||||
Porta-Potty or the Kevorkian Machine. Some devices are of obvious use, such
|
||||
as the Medkit, which will restore lost hit points and remove the detrimental
|
||||
effects of poison. One particularly useful device is the Microcomputer (or
|
||||
the Computer Workstation) which can be used to reveal a variety of
|
||||
information about weapons, berries, devices, creatures, etc.
|
||||
A section describing the usefulness of each tech device is included in the
|
||||
spoiler file alphaman.spl
|
||||
|
||||
|
||||
WHAT USE ARE BERRIES? ----------------------------------------------------
|
||||
Mutated berries provide a variety of effects, and can be eaten or thrown
|
||||
depending on the type of berry. AlphaMan includes over 30 different types of
|
||||
berries which do things like turn you invisible if eaten, heal lost hit
|
||||
points, explode, etc. What a particular berry will do is generally not known
|
||||
until that particular type of berry has been eaten (or a Chemical Analyzer
|
||||
has been used on it), so some dangerous eating experimentation must generally
|
||||
be done. Some berries, if thrown at other creatures, will reveal their
|
||||
nature that way (you may, for example, toughen the skin of the creature or
|
||||
turn it invisible).
|
||||
You can occasionally find nectar or extract as well (or make it from a
|
||||
berry using a Still); these are more potent versions of berries. The
|
||||
usefulness of each berry is described in the spoiler file alphaman.spl.
|
||||
|
||||
|
||||
WHICH WEAPONS/ARMOR ARE BEST? --------------------------------------------
|
||||
See the spoiler file alphaman.spl for the complete details of the base damage
|
||||
and to hit bonus for each weapon, armor and shield. The following is a list,
|
||||
in increasing order of quality, of all weapons, armor and shields.
|
||||
|
||||
Dagger Shuriken Heavy Fur Small Wooden
|
||||
Club Dart Cured Hides Large Wooden
|
||||
Pitchfork Throwing Axe Ringmail Small Metal
|
||||
Hand Axe Arrow Chainmail Large Metal
|
||||
Mace Javelin Fiberglass Small Titanium
|
||||
Short Sword Wab Boomerang Plastic Large Titanium
|
||||
Flail Lawn Dart Titanium Chainmail Small Duralloy
|
||||
Long Sword Spear Platemail Large Duralloy
|
||||
Halberd Titanium Dart Titanium Platemail
|
||||
Titanium Dagger Titanium Javelin Duralloy Chainmail
|
||||
Titanium Sword Duralloy Arrow Duralloy Platemail
|
||||
Titanium Axe Duralloy Spear
|
||||
Duralloy Pitchfork
|
||||
Duralloy Sword
|
||||
|
||||
|
||||
ELVIS, GILLIGAN, ETC -----------------------------------------------------
|
||||
Your overall mission is to save the world from the Grinch and his nerve
|
||||
toxin. You must complete a series of missions in order to accomplish this
|
||||
goal. You will usually need to visit 5 different castles in order to
|
||||
properly equip yourself. Note that you DO NOT need to visit these castles
|
||||
in any particular order, despite the suggestions of the Tape Recorders you'll
|
||||
find along the way.
|
||||
You'll need the following items:
|
||||
1. A map from the Munsters in order to locate the Grinch's hidden castle.
|
||||
2. Buzz Aldrin's Space Suit to protect yourself from the radiation which
|
||||
protects the Grinch's castle.
|
||||
3. Elvis' Blue Suede Shoes so you can cross the bottomless chasm that
|
||||
surrounds the Grinch's castle.
|
||||
4. Donald Trump's Presidential ID card to get through the locked door into
|
||||
the castle.
|
||||
5. Gilligan's Keptibora serum to protect yourself from the nerve toxin which
|
||||
permeates the Grinch's castle.
|
||||
Each castle has its own traps and tricks. See the spoiler file for more
|
||||
information about the castles.
|
||||
|
||||
|
||||
WHY ELVIS, GILLIGAN, ETC? ------------------------------------------------
|
||||
AlphaMan has a deliberate lighthearted feel to it. The bizarre and
|
||||
peculiar cast of special characters was chosen, in part, to poke fun at
|
||||
the more banal aspects of Americana. Elvis is a (living?) icon, a national
|
||||
treasure. No one in my generation could have missed the appeal of Gilligan
|
||||
and the castaways, or the Munsters, save for those few with progressive,
|
||||
left-wing, hand-wringing parents who forbade the watching of TV. And who
|
||||
hasn't asked him/herself the question "Whatever became of Buzz Aldrin, second
|
||||
man on the moon"?
|
||||
|
||||
|
||||
WHAT NEXT? ---------------------------------------------------------------
|
||||
I am working on a SuperVGA game in the same genre as AlphaMan, but which
|
||||
will have a more serious and long-term mission. I hope to have it available
|
||||
within 6-9 months, and will send the shareware version to everyone who has
|
||||
registered AlphaMan.
|
797
ALPHAMAN.SPL.txt
Normal file
797
ALPHAMAN.SPL.txt
Normal file
@ -0,0 +1,797 @@
|
||||
AlphaMan Spoilers - updated: August 1995
|
||||
Most recent version: 1.1
|
||||
|
||||
Please direct all questions and suggestions to Jeff Olson:
|
||||
Jeffrey Olson
|
||||
214 E. Sherwin Dr.
|
||||
Urbana, IL 61801 USA
|
||||
76473.225@compuserve.com.
|
||||
|
||||
This file contains details about the game AlphaMan, a Rogue-like game set
|
||||
in post-holocaust Earth. AlphaMan is available from:
|
||||
ftp.win.tue.nl in the directory /pub/games/alphaman
|
||||
The FAQ file, alphaman.faq, is also available there, and provides more basic
|
||||
information than this file (which is intended for experienced players).
|
||||
____________________________________________________________________________
|
||||
|
||||
Contents:
|
||||
1. Detailed descriptions of the various Mental and Physical Mutations
|
||||
2. Weapons, Armor and Shield ratings
|
||||
3. Detailed berry descriptions
|
||||
4. Detailed tech device descriptions
|
||||
5. Overview of creatures
|
||||
6. Details about the 6 castles which one must visit to complete the quest.
|
||||
____________________________________________________________________________
|
||||
|
||||
1. MUTATIONS
|
||||
All characters have 1 Physical and 1 Mental Mutation.
|
||||
|
||||
A. Physical Mutations
|
||||
1. Acidic Saliva
|
||||
This mutation can be used every 8 rounds. You can spit a caustic
|
||||
substance at a distance, although you hit more easily and do slightly
|
||||
more damage at close range. You do 4 dice damage, where the dice
|
||||
size is given by 3 + (your level - distance between you & target)/2
|
||||
2. Blood Structure Change
|
||||
Your Constitution is raised to somewhere between 19 and 23. You
|
||||
consequently have more hit points, and you take much-reduced damage
|
||||
from poison (half what a character without Blood Structure Change
|
||||
would take, even with the same Constitution). You also are less
|
||||
likely to suffer lingering stat losses from poison, and recover from
|
||||
sickness attacks (like the skunk) three times faster.
|
||||
3. Electrical Generation
|
||||
You can generate electrical currents on your skin which will damage
|
||||
any creature touching you during the round used (touching means the
|
||||
creature scores a successful hit on you with a contact-attack like
|
||||
a bite, but not no-touch attacks like radiation or mental attacks.
|
||||
The damage done to each creature is 2 dice of size (4 + your level).
|
||||
This is extremely useful against swarms like Killer Bees, Locusts.
|
||||
4. Foul Musk
|
||||
You can generate a cloud of stinking gas that causes creatures to
|
||||
flee from you. You will occasionally make creatures sick, causing
|
||||
them to barf (during which time they are mostly defenseless from
|
||||
attack). This is effective as a defense, particularly when you get
|
||||
surrounded by beasties.
|
||||
5. Heightened Dexterity
|
||||
Your Dexterity is raised to somewhere in the range of 19-23. Your
|
||||
Armor Class is much improved, and you can hit significantly easier
|
||||
with range weapons (even range tech weapons).
|
||||
6. Heightened Endurance
|
||||
You have more hit points than most characters, can carry more than
|
||||
twice the weight with the same encumberance, you grow hungry less
|
||||
quickly, and can endure time underwater much longer.
|
||||
7. Heightened Speed
|
||||
You can temporarily double your speed, allowing you more attacks and
|
||||
enabling you to outrun many creatures if you're in a bind. A very
|
||||
useful mutation, especially if coupled with an attack-type mental
|
||||
mutation such as Life Leech or Cryogenics.
|
||||
8. Heightened Strength
|
||||
Your Strength is raised to somewhere in the range of 19-23. You
|
||||
consequently do more damage and hit more often with contact weapons.
|
||||
You can also carry more stuff, and have an easier time getting out
|
||||
of spiderwebs, breaking down doors, etc.
|
||||
9. Heightened Vision
|
||||
You can see more clearly and in a broader EM spectrum, giving you
|
||||
minor bonuses to hit with weapons, allowing you to see further in
|
||||
darkness, and allowing you to look over long ranges to see, for
|
||||
example, whether there are any goodies in nearby regions of the map.
|
||||
You can also see radiation zones and avoid them. With this mutation,
|
||||
one can usually skip the Munsters' Castle, since spotting the hidden
|
||||
castle of the Grinch is relatively straightforward.
|
||||
10. Laser Generation
|
||||
Every 10 rounds you can fire a laser beam. This beam can strike a
|
||||
single target at a fairly long range, hitting often and doing 3 dice
|
||||
damage, with dice size given by 5 + (your level)/3
|
||||
11. Poison Claws
|
||||
These do very irregular damage, occasionally only doing 1-4 points,
|
||||
but capable of doing up to 10-40 when you are at 10th level.
|
||||
Although their range is short, they have several advantages. If you
|
||||
miss, they are immediately available for use again. They occasionally
|
||||
make the creature hit nauseous (barf). It is also useful to have a
|
||||
readily-available non-kinetic attack form for those creatures which
|
||||
take only 1/3 damage from kinetic attacks (like Zapweed, Rot Fungus,
|
||||
Slugs).
|
||||
12. Quills
|
||||
Quills provide protection from creatures which must touch you to do
|
||||
damage, inflicting 1 die damage of size (3 + (your level/3)). You
|
||||
may also shoot them at a single creature for 3 dice damage of size
|
||||
(2 + (your level)/2, but you will then be unprotected until they
|
||||
regrow (in 8 rounds).
|
||||
13. Radiation Generation
|
||||
You can shoot a beam of radiation every 15 turns that is capable of
|
||||
causing damage to any creature in its path. The damage done is 2
|
||||
dice of size (3 + (your level)/2).
|
||||
14. Reflective Skin
|
||||
Your Radiation Resistance is raised to somewhere in the range of
|
||||
19-23. The damage you receive from laser attacks is halved, while
|
||||
you only receive 2/3 damage from heat attacks.
|
||||
15. Sonic Attack
|
||||
You are able to generate an ultrasonic blast that does heat damage to
|
||||
all creatures standing next to you. The damage done is 1 die of size
|
||||
(5 + (your level)*1.5)
|
||||
16. Tenticles
|
||||
You can entwine a creature (which makes it harder for them to hit
|
||||
you, and impossible for them to run away) and cause constriction
|
||||
damage to them every round. The damage done is 1 die of size
|
||||
(3 + (your level)/2), and you are able to do other things (like use
|
||||
your weapon or tech devices) while constricting. If you move, the
|
||||
tenticles release.
|
||||
17. Tough Exoskeleton
|
||||
Your Armor Class is always at least as good as if you were wearing
|
||||
Titanium Chainmail, and you sustain only 80 percent normal damage
|
||||
from kinetic attacks. You are slightly encumbered by this
|
||||
exoskeleton, but no more so than if you were wearing the equivalent
|
||||
armor.
|
||||
|
||||
B. Mental Mutations
|
||||
1. Cryogenics
|
||||
This attack mutation is particularly effective against powerful
|
||||
creatures. It does exponential damage, first 1 die, then 2 dice,
|
||||
then 4, 8, 16 etc on progressive "hits". The dice size is given by
|
||||
(5 + (your level)/2).
|
||||
2. Force Field
|
||||
While this mutation is being used, you sustain reduced damage (in
|
||||
general, about 2/3 normal) from all attacks. This can be tiring
|
||||
to use, and if you become too fatigued, it will turn itself off.
|
||||
3. Heightened Willpower
|
||||
Your Mental Resistance is raised to somewhere in the range of 19-23,
|
||||
and you are able to periodically raise all of your stats and your
|
||||
hit points for a brief period. Note that you will never die when
|
||||
your hit points are reduced back to normal.
|
||||
4. Hypnosis
|
||||
You can use this mutation to put creatures to sleep. This is usable
|
||||
fairly often, and can be a real asset when fighting several creatures
|
||||
at once, or when you want to flee.
|
||||
5. Invisibility
|
||||
You can make yourself invisible, making creatures wander at random and
|
||||
enabling you to get off "free" attacks. This is also useful when you
|
||||
need to retreat. In addition, since this mutation is the ability to
|
||||
bend light rays around you, you are less susceptible to blindness
|
||||
attacks (you typically recover in one third the time).
|
||||
6. Life Leech
|
||||
A powerful mutation, you are able to leech hit points from creatures
|
||||
standing next to you and add them to your own. The number of points
|
||||
damage done (and subsequently added to your total) is 2 dice where
|
||||
the dice size is given by (2 + (your level)/2).
|
||||
7. Mental Blast
|
||||
This mutation allows you to psionically blast a selected creature
|
||||
every 10 rounds up to 7 squares away. The damage done is 2 dice
|
||||
of size given by (your Mental Resistance + your level)/2.
|
||||
8. Mental Healing
|
||||
This mutation allows you to heal yourself rapidly. When used, you
|
||||
select how many rounds you will sit motionless (and prone to attack),
|
||||
during which time you will heal back 3 hit points per round. This
|
||||
mutation is best used after battles, so that you are always at full
|
||||
hit points when venturing into uncharted territory.
|
||||
9. Military Genius
|
||||
You recieve a +2 to hit and +4 damage with all weapons you use.
|
||||
This includes contact and thrown weapons, and tech weapons as well.
|
||||
10. Molecular Disruption
|
||||
You can disintegrate matter, destroying a creature or other object
|
||||
at which it is targeted. This is useful for going through walls,
|
||||
and will kill a creature if a random roll of dice size
|
||||
(25 + the creature's hit points/2) is less than a random roll of
|
||||
dice size (15 + your mental resistance + your level).
|
||||
11. Psychokinesis
|
||||
You can create a grenade-like explosion that does kinetic damage to
|
||||
all creatures in its blast radius. The damage done is 2 dice of size
|
||||
(2 + (your mental resistance)/6 + (your level)/3 ).
|
||||
12. Scientific Genius
|
||||
Your Intelligence is raised to somewhere in the range of 19-23, and
|
||||
you are able to build new tech devices from parts and energy salvaged
|
||||
from old devices. You are potentially able to build any device which
|
||||
you are familiar with (those listed when you press F3) and for which
|
||||
you have enough parts. Often, you must try several times in order
|
||||
to be able to build the device you would like.
|
||||
13. Teleportation
|
||||
You are able to transport yourself over either long distances (useful
|
||||
as a speedy mode of transportation and as a means of escape) or short
|
||||
distances (useful when you want to get to another part of a castle
|
||||
level or lair). Teleporting blind is dangerous, and if you end up
|
||||
inside a solid object, you may be killed. It is occasionally an
|
||||
effective attack to teleport into a creature if you are at full hit
|
||||
points, but not one generally recommended. Note that short range
|
||||
teleporting isn't 100% accurate, so if you try to teleport next to a
|
||||
castle wall, you may end up inside the wall, which tends to be
|
||||
unhealthy.
|
||||
____________________________________________________________________________
|
||||
|
||||
2. WEAPONS, ARMOR and SHIELDS
|
||||
|
||||
A. Contact Weapons
|
||||
Name Base Damage To Hit Bonus* Weight (kg)
|
||||
Dagger 1-4 -2 .2
|
||||
Club 1-5 -2 .6
|
||||
Pitchfork 1-6 -1 1.0
|
||||
Hand Axe 1-7 -1 .7
|
||||
Mace 1-8 0 1.2
|
||||
Short Sword 1-9 0 .8
|
||||
Flail 1-10 +1 1.5
|
||||
Long Sword 1-11 +1 1.5
|
||||
Halberd** 1-12 +1 2.0
|
||||
Titanium Dagger 2-10 +2 .2
|
||||
Titanium Sword 2-12 +2 .7
|
||||
Titanium Axe** 2-14 +2 1.2
|
||||
Duralloy Pitchfork 3-15 +3 .2
|
||||
Duralloy Sword 3-18 +3 .2
|
||||
* The To Hit bonus is in addition to whatever other bonuses you have.
|
||||
** Technically, this weapon should require 2 hands, but doesn't.
|
||||
|
||||
A. Range Weapons
|
||||
Name Base Damage To Hit Bonus* Range Weight (kg)
|
||||
Shuriken 1-3 -3 10 .1
|
||||
Dart 1-4 -2 9 .1
|
||||
Throwing Axe 1-5 0 5 .3
|
||||
Arrow 1-6 -1 8 .1
|
||||
Javelin 1-7 0 8 .3
|
||||
War Boomerang 1-8 -1 7 .2
|
||||
Lawn Dart 1-9 0 5 .2
|
||||
Spear 1-10 +1 6 .4
|
||||
Titanium Dart 2-8 +2 10 .1
|
||||
Titanium Javelin 2-12 +2 9 .2
|
||||
Duralloy Arrow 3-12 +3 11 .1
|
||||
Duralloy Spear 3-18 +3 9 .2
|
||||
* As above
|
||||
|
||||
B. Armor
|
||||
Name Base Armor Class Max hits sustainable* Weight (kg)
|
||||
No Armor 10 - -
|
||||
Heavy Fur 9 2 1.5
|
||||
Cured Hides 8 3 2.0
|
||||
Ringmail 7 4 4.0
|
||||
Chainmail 6 5 6.0
|
||||
Fiberglass 5 6 3.5
|
||||
Plastic 4 7 2.5
|
||||
Titanium Chainmail 3 7 4.0
|
||||
Platemail 2 8 10.0
|
||||
Titanium Platemail 1 9 6.0
|
||||
Duralloy Chainmail 0 8 1.0
|
||||
Duralloy Platemail -1 10 1.5
|
||||
* This is the maximum number of "damaging" hits a particular kind of
|
||||
armor can sustain in its pristine condition.
|
||||
|
||||
C. Shields
|
||||
Name Reduction to Armor Class Max hits sustainable* Weight (kg)
|
||||
Small Wooden -1 2 .5
|
||||
Large Wooden -1 1/2 3 1.0
|
||||
Small Metal -2 3 1.0
|
||||
Large Metal -2 1/2 4 2.0
|
||||
Small Titanium -3 4 1.0
|
||||
Large Titanium -3 1/2 5 2.0
|
||||
Small Duralloy -4 4 .2
|
||||
Large Duralloy -4 1/2 5 .3
|
||||
* As above
|
||||
____________________________________________________________________________
|
||||
|
||||
3. BERRIES
|
||||
Berries are named at random each game, so it is a waste of time to write
|
||||
down the names during one game for the sake of using them in the next. The
|
||||
random names were intended to sound like Dr. Seuss names.
|
||||
|
||||
A. Treatise on Berry Colors (available from a Computer Workstation)
|
||||
The color of a berry reveals its degree of ripeness. The six colors
|
||||
a berry can have are red, orange, yellow, green, blue, and purple,
|
||||
in increasing order of ripeness. Berries which are more ripe are
|
||||
more potent, and will have effects which last longer. For example,
|
||||
purple exploding berries do much more damage than orange ones, and
|
||||
forcefields created by blue berries last longer than those created
|
||||
by red ones. In addition, if a berry can have either a good or bad
|
||||
effect, the ripe berries are more likely to cause the good effects.
|
||||
Thus, a blue berry that alters speed tends to speed you up, while a
|
||||
red one is likely to slow you down. Berries that alter your stats
|
||||
are particularly important examples of this, wherein red and purple
|
||||
ones change your stats permanantly, purple usually raising, and red
|
||||
usually lowering; the effect of the orange-blue ones is temporary.
|
||||
Berries will ripen with time; using X(amine) can be illuminating.
|
||||
|
||||
B. Berry descriptions
|
||||
Exploding berries are effective grenades with a blast radius of 1 square.
|
||||
Radiating berries are effective grenades with a blast radius of 1 square.
|
||||
Hunger-satisfying berries provide significant nourishment, and can make
|
||||
critters burp if thrown at them.
|
||||
Refresh berries make you well-rested and help keep you rested.
|
||||
Poison berries can be thrown to do poison damage if they hit a critter.
|
||||
Curing berries will restore some hit points, and some reduced by poison.
|
||||
Extra-curing berries are like normal curing berries, only more potent.
|
||||
Expertise-altering berries add or subtract experience points depending on
|
||||
their color.
|
||||
Strength-altering berries raise or lower strength, depending on color.
|
||||
Dexterity-altering berries raise or lower dexterity, depending on color.
|
||||
Constitution-altering berries raise or lower CON, depending on color.
|
||||
Radiation Resistance-altering berries modify RR, depending on color.
|
||||
Mental Resistance-altering berries modify MR, depending on color.
|
||||
Intelligence-altering berries modify intelligence, depending on color.
|
||||
Speed-altering berries will make you fast or slow, depending on color.
|
||||
These work on creatures, too, if thrown.
|
||||
Berries that toughen skin will permanantly lower your armor class.
|
||||
These work on creatures, too, if thrown.
|
||||
Intoxicating berries will confuse you if eaten, or a critter if thrown.
|
||||
Cleverness berries make you better at figuring out and using tech devices.
|
||||
Berries which add body parts are generally useless except for nourishment.
|
||||
Purple ones will cause you to grow a cumbersome udder.
|
||||
Mutation-affecting berries quench or heighten a mutation, depending on
|
||||
their color. Heightened mutations are much more powerful.
|
||||
Detection berries help you see invisible things, and will map a lair
|
||||
or castle level if you are indoors.
|
||||
Blindness berries will blind you temporarily if eaten.
|
||||
These work on creatures, too, if thrown.
|
||||
Tact-reducing berries make you burp, sneeze, etc. if eaten.
|
||||
These work on creatures, too, if thrown.
|
||||
Mind-clouding berries make you forget things but will confuse creatures
|
||||
if thrown at them.
|
||||
Fright-inducing berries will frighten critters away temporarily.
|
||||
Detoxifying berries will remove the lingering adverse effects of poisons.
|
||||
Rambifying berries give you a Rambo complex, making you strong but dumb.
|
||||
These work on creatures, too, if thrown.
|
||||
Invisibility berries will make you temporarily invisible.
|
||||
These work on creatures, too, if thrown.
|
||||
Teleport berries randomly teleport you over a long distance, and work on
|
||||
critters too.
|
||||
Relax berries will put you or a creature to sleep.
|
||||
Klutz berries will make you extremely clumsy, but work on critters too.
|
||||
Regeneration berries, cause you to regain lost hit points much faster.
|
||||
Berries which "smell nice" give you an odor that attracts creatures.
|
||||
Force Field berries will protect you so you sustain reduced damage.
|
||||
Acid berries are effective weapons if thrown.
|
||||
|
||||
____________________________________________________________________________
|
||||
|
||||
4. TECH DEVICES
|
||||
The following is a list of all the tech items currently implemented in
|
||||
AlphaMan. These are the specifics one can learn by using a Microcomputer.
|
||||
|
||||
A. Small Tech Gadgets:
|
||||
Alza-seltzer relieves sickness, and can get rid of tapeworms
|
||||
An Answering Machine will occasionally receive useful messages
|
||||
ArmorAll will restore armor to pristine condition, and may even improve it
|
||||
A Backpack can hold up to 10 reasonably-sized items
|
||||
A Bionic Cranium Implant can raise your Mental Resistance & Intelligence
|
||||
A Bionic Muscle Implant can raise your Strength and Dexterity
|
||||
A Bionic Spleen Implant can raise your Constitution & Radiation Resistance
|
||||
A Boise Souvenir Ashtray is useless
|
||||
Brandy will boost your strength temporarily, but may make you sleepy
|
||||
A Breathalyzer will reveal your blood alcohol content (mostly useless)
|
||||
Cap'n Crunch gives you a sugar high and speeds you up temporarily
|
||||
A Cheese Grater is useless
|
||||
Chemical Analyzers reveal the potential effects of unknown berries
|
||||
A Chia Pet is useless
|
||||
Coffee will boost your constitution temporarily, and can keep you awake
|
||||
Duct Tape can incapitate creatures, and repair damaged armor and suits
|
||||
Flares will illuminate the outdoors when dark, but cause damage indoors
|
||||
A Force Field Generator will help protect you from attacks
|
||||
A Fountain Pen is useless
|
||||
A Gas Mask will protect completely from poison gas
|
||||
A Geiger Counter reveals nearby radiation zones outdoors, or traps indoors
|
||||
A Grenade Launcher can fire grenades and berries accurately at long range
|
||||
A Hammock will put you to sleep immediately
|
||||
A Hand Massager will reduce fatigue
|
||||
An ID Card will unlock most locked doors, and can deactivate some robots
|
||||
A Kalediscope is useless
|
||||
A Knife Sharpener can sharpen blade weapons so they are more effective
|
||||
A Lava Lamp will help illuminate during darkness
|
||||
A Medkit will restore some lost hit points and poison damage
|
||||
A Microcomputer can reveal a variety of useful information
|
||||
A MindWeb Generator will protect you from mental attacks
|
||||
A Mirror can be used to reflect laser attacks
|
||||
A Motion Sensor will reveal the location of invisible creatures
|
||||
A Mr. Misty provides nourishment, and also is an effective freeze grenade
|
||||
A Pencil Sharpener can sharpen pointy weapons so they are more effective
|
||||
The flash from a Pocket Instamatic can blind creatures that see it
|
||||
Power Packs recharge devices which require energy
|
||||
A Radar Detector is useless
|
||||
A Radar Gun will reveal how fast a creature can move (mostly useless)
|
||||
ServoBoots greatly reduce the effects of encumberance
|
||||
A Slinky is useless
|
||||
A Sony Watchman can map levels in some of the special castles
|
||||
Sunglasses protect against blindness & give added influence over robots
|
||||
Sunscreen provides some protection against laser attacks
|
||||
Tape Recorders reveal a variety of information about your mission
|
||||
A Tip O'Neill mask will frighten creatures away when worn
|
||||
A Toaster is useless
|
||||
Toilet Paper is an effective weapon against Dung Beetles and Seagulls
|
||||
A Tricorder will map castles and lairs, and can reveal creature specifics
|
||||
A Turbocharger will speed up any vehicle
|
||||
Tylenol can restore lost hit points
|
||||
A UV Helmet helps greatly when searching for hidden things
|
||||
A Veg-O-Matic can injure nearby creatures, especially edible ones
|
||||
A VisiScope allows you to see long distances
|
||||
A Voodoo Doll will kill all nearby creatures of a specific type
|
||||
A Wrist Watch will tell you how much time remains to complete your mission
|
||||
|
||||
A Cannister Grenade inflicts modest shrapnel damage (kinetic damage type).
|
||||
A Disintegration Grenade is lethal to almost everything.
|
||||
A Fission Grenade inflicts substantial radiation damage.
|
||||
A Flash Grenade can blind everything in a large area.
|
||||
A Fusion Grenade inflicts tremendous damage in a large area.
|
||||
A Gas Grenade inflicts poison damage and leaves poisonous gas.
|
||||
A Glue Grenade will imobilize anything in its sizable blast area.
|
||||
An Incendiary Grenade inflicts moderate heat damage.
|
||||
A Lightning Grenade inflicts modest electrical damage in a large area.
|
||||
A Neutrino Grenade inflicts moderate damage.
|
||||
A Photon Grenade inflicts tremendous laser-type damage.
|
||||
A Psychosis Grenade inflicts variable mental-type damage.
|
||||
A Stun Grenade paralyzes and inflicts minor damage in a large area.
|
||||
A Vial of Acid inflicts modest damage.
|
||||
|
||||
A Blaster can fire many shots at a time, inflicting modest heat damage.
|
||||
A Blowtorch does moderate heat damage.
|
||||
A Can of Mace does modest poison damage and makes the target flee.
|
||||
A Chainsaw inflicts horrible wounds.
|
||||
A Flamethrower does substantial heat damage in line with the target.
|
||||
A Freeze Gun does substantial cold damage in line with the target.
|
||||
A Fusion Rifle does substantial radiation damage.
|
||||
A Laser Pistol does substantial laser damage.
|
||||
A Light Sabre inflicts moderate laser-type damage.
|
||||
A Missile Launcher does substantial damage in a large blast area.
|
||||
Mr. Clean is especially effective against slimes, molds, etc.
|
||||
A Pepper Shaker can be a grenade, and makes targets sneeze.
|
||||
A Phaser can stun (putting enemy to sleep) or kill (doing heat damage).
|
||||
Raid is particularly effective against insects.
|
||||
A Salt Shaker can be a grenade, but is only useful on Slugs-like things.
|
||||
A Shock Rod does modest electrical damage.
|
||||
A Shotgun does substantial kinetic damage.
|
||||
Silly String will immobilize a target.
|
||||
A Squirt Gun does minimal damage except against Fire Ants, Phoenixes, etc.
|
||||
A Staple Gun does minimal kinetic damage.
|
||||
A Stun Gun will paralyze a target.
|
||||
A Tickle Feather Gun (from the UnderDog show) inflicts tremendous damage.
|
||||
A Weedeater is effective against plants.
|
||||
|
||||
B. Large Tech Devices:
|
||||
A Bulletproof Suit lowers your AC and reduces damage from kinetic attacks
|
||||
A Cabinet is useless
|
||||
A Camoflage Suit makes you somewhat harder to detect
|
||||
A Cigarette Machine is useless
|
||||
A Cloaking Device renders you temporarily invisible
|
||||
A Computer Workstation can reveal a plethota of useful information
|
||||
A Cyclotron just might win you the Nobel Prize in physics
|
||||
A Dialysis Machine will cure you and remove poison effects, tapeworms, etc
|
||||
A Displacer allows you to teleport over short distances
|
||||
A Golf Cart provides transportation at a faster pace than walking
|
||||
A Home Movie Projector will put creatures to sleep
|
||||
A Hovercraft provides very fast transportation over any terrain
|
||||
A Jackhammer can blast through walls, and is an effective weapon
|
||||
A Jetpack gives rapid movement for short periods of time
|
||||
A Kayak can be used to move through water
|
||||
A Kevorkian Machine is useless
|
||||
A Laser Printer is useless
|
||||
A Leafblower is useless
|
||||
A Liposuction Device will remove an udder
|
||||
A Microwave Oven can prematurely ripen berries, and makes food tastier
|
||||
A Neutron Suit irradiates nearby critters each turn but hurts you somewhat
|
||||
A Pinstripe Suit gives added influence over robots when an ID card is used
|
||||
A Pogo Stick provides an alternative form of transportation
|
||||
A Porta-Potty is useless
|
||||
A Prosthetic Leg is useless
|
||||
A Radiation Suit will reduce the damage caused by radiation
|
||||
A Reflective Suit will reduce the damage caused by lasers
|
||||
A Repulsion Generator will prevent creatures from moving next to you.
|
||||
Creatures already next to you can continue to attack
|
||||
A Rubber Raft can be used to move through water
|
||||
A Safe will protect up to 10 items, and can be left outside of castles
|
||||
A Sousaphone can make critters stand still, run away, become confused, etc
|
||||
A Still will distill berries to nectar, and nectar to extract
|
||||
A Tent will allow you to sleep in relative safety outdoors at night
|
||||
A Thermal Suit will reduce the damage caused by heat and cold
|
||||
A TK-5 AntiTank Gun is an extremely effective long-range weapon
|
||||
A Transmogrifier will polymorph creatures, and can change berry types
|
||||
A Wetsuit allows water movement, and will reduce acid and shock damage
|
||||
A Wide Screen TV can map levels in some of the special castles
|
||||
|
||||
_________________________________________________________________________
|
||||
|
||||
5. CREATURES
|
||||
|
||||
This is a brief overview of the creatures found in AlphaMan.
|
||||
|
||||
Name Hit dice Attack type* Damage Resist** Susceptible***
|
||||
-------- --------- ----------- ------ --------- -----------
|
||||
A. Creatures found anywhere -----------------------------------------
|
||||
Wimpy critter 1 Bite 1-3
|
||||
Housecat 1 Bite/Claws 2-9 h,c m
|
||||
Centipede 1 Poison I 1-4 1,s
|
||||
Snail 1 Mental Blast 2-6 e a
|
||||
Warthog 2 Life Leech 1-3 l
|
||||
Owl 1 Bite/Claws 2-9 m e
|
||||
Daffodil 2 Spores 1-5 l,b,s r
|
||||
Asparagus 3 Radiation 1-5 p,r,b,s l
|
||||
Dung Beetle 3 Poop Out 0 a p
|
||||
Fire Ant 1 Heat 1-5 g c
|
||||
Woodpecker 1 Bite 2-12 p
|
||||
Gas Spore 1 Darts 2-6 m,r,s
|
||||
Gas Spores cause explosion damage when they are killed.
|
||||
Dragonfly 2 Cold 2-14 p,e a
|
||||
Skunk 3 Nausea 0 k
|
||||
Chameleon 3 Bite 1-6 i,1
|
||||
Boa 3 Constrict 2-6 p,r,e,a
|
||||
Porcupine 2 Quills 2-6 q4 l
|
||||
Lotus 2 Confusion 0 m,b,s s
|
||||
Crunchberry Beast 4 Eat Berries 0 l,s
|
||||
Viper 3 Poison II 1-4 e c
|
||||
Venetian 5 Blind 0 l,b k
|
||||
Flying Fish 5 Radiation 3-15 c,a l
|
||||
Rosebush 5 Attraction 0 k,q14,s,b
|
||||
Zapweed 4 Electricity 2-16 m,e,k h
|
||||
Mantis 6 Mental Blast 4-12 l,a
|
||||
Japanese Beetle 3 Steal Tech 0 e m
|
||||
Mr. Potato Head 8 hp Bite 2-12
|
||||
Mr. Potato Head takes only 1 hp damage from any attack.
|
||||
Sunflower 5 Laser 3-12 g,p a
|
||||
Ragweed 3 Sneeze 0 l,s p
|
||||
Killer Bee 2 Poison III 2-4 e
|
||||
Python 10 Constriction 6-18 c,1 r
|
||||
Vulture 7 Life Leech 2-12 h,m c
|
||||
Huge Cockroach 4 Radiation 4-20 k
|
||||
Cockroaches, after being exposed to an particular attack type,
|
||||
become resistant to it.
|
||||
Sandman 1 Cause Slumber 0
|
||||
Pryor 8 Acid 3-18 1 a,h
|
||||
The Pryor can burst into flames, causing substantial heat damage
|
||||
Spitting Cobra 4 Poison II 2-8 r m
|
||||
Goat 5 Eat Items 0
|
||||
Ice Wolf 9 Cold 3-21 c,1 h
|
||||
Rot Fungus 8 Damage Armor 0 k,a,q4,b e
|
||||
Pokey 10 Bite 4-24 c
|
||||
Gumby 12 Mental Blast 8-32 c
|
||||
Tapeworm 2 Special 0 4 p
|
||||
Tapeworms lead to increased hunger if they hit
|
||||
Slug 7 Acid 4-24 k,a,m s
|
||||
Cheetah 9 Laser 4-16 r,h,g
|
||||
Tortoise 9 Bite 3-9 r,c l
|
||||
Venus Flytrap 11 Attract,Constrict 6-18 e,p r
|
||||
the Blob 10 Acid 5-30 k,b c
|
||||
Grizzly Bear 14 Bite/Claws 4-24 h a
|
||||
Bush 18 Life Leech 2-10 m
|
||||
Quayle 15 Bite 1-6 e,r,h,c,l,1,m,p
|
||||
The Quayle only appears if the Bush has been defeated
|
||||
Rhinocerous 14 Gore 7-42 a,r,p h
|
||||
Giant Tarantula 11 Poison I 9-36 3 e
|
||||
Phoenix 7 Heat 6-30 h c
|
||||
When defeated, the Phoenix may rise from its ashes
|
||||
Scorpion 10 Poison II 4-16 a,l r
|
||||
Mastodon 22 Trample 6-42 c
|
||||
Berserk Robot apprx 15 Electricity apprx 4-32 r,c,m,p,s e
|
||||
Black Widow 10 Poison III 5-20 r e
|
||||
Sabretooth Tiger 17 Bite/Claws 7-42 r,h
|
||||
Mosquito 11 Life Leech 2-20 h,m k
|
||||
Anklyosaurus 15 Bite 6-36 1 r
|
||||
Triceratops 21 Gore 6-36 r,p a
|
||||
Polar Worm 25 Cold 8-56 c,3 h
|
||||
Tyrannosaurus 30 Bite 12-72 c p
|
||||
King Kong 40 Trample 14-84 t
|
||||
Rodan 35 Bite 14-84 l
|
||||
Godzilla 45 Radiation 15-75 r,m e
|
||||
|
||||
B. Creatures found in Castles --------------------------------------
|
||||
Slime 1 Damage Armor 0 c,b h
|
||||
Ooze 1 Heat 1-5 k,h,b c
|
||||
Vampire Bat 2 Energy Drain 0 l
|
||||
Repair Droid apprx 3 Electricity apprx 2-12 m,p,s e
|
||||
Maggot 3 Acid 1-6 1 p
|
||||
Maggots may become Flies, which regenerate faster and do more damage
|
||||
Giant Rat 3 Bite 1-6 r h,p
|
||||
Purple Mold 3 Nausea 0 k,b r
|
||||
Ghoul 8 Bite 2-12 r,c
|
||||
Defense Droid apprx 6 Radiation apprx 2-10 r,m,p,s e
|
||||
Gray Mold 9 Spores variable k,a,s,b h,s
|
||||
Gray Mold spores interfere with your healing, and do more damage the
|
||||
more there are in your system.
|
||||
Phantom 7 Cold 2-14 m
|
||||
Wolf Spider 7 Poison III 3-10 p m
|
||||
Enzyme Fungus 3 Acid 4-24 k,a,m,q10,b h,s
|
||||
Volte 6 Electricity 5-40 k,e,s a
|
||||
Brown Recluse 9 Poison II 4-16 1 r
|
||||
Security Droid apprx 10 Laser apprx 5-18 a,c,m,p,s e
|
||||
Brain Beast 5 Life Leech 1-5 m a
|
||||
Brain Beasts can attack through walls.
|
||||
War Droid 15 Various 9-51 a,r,c,m,p,3,s e
|
||||
|
||||
C. Creatures found in Forest --------------------------------------
|
||||
Tree Frog 1 Poison I 1-4 a
|
||||
Stranglevine 2 Constriction 1-3 p
|
||||
Poison Ivy 2 Poison II 3-12 h,d,i
|
||||
Toadstool 5 Nausea 0 p,s,b k
|
||||
Termite 1 Eat Items 0 h,p
|
||||
Termites eat anything they step on
|
||||
Mushroom 2 Energy Drain 0 m,s,b a,c
|
||||
Panther 5 Electricity 4-24 e r
|
||||
Moose 14 Trample 4-24
|
||||
Jaguar 11 Radiation 4-20 r e
|
||||
Deadly Nightshade 5 Poison II 4-16 m,p l,s
|
||||
Algore 5 -none- m,i e,s
|
||||
Trees and bushes grow profusely around an Algore
|
||||
Death Fern 7 Heat 4-20 h,i s
|
||||
Bigfoot 13 Trample 4-24 1 m
|
||||
Komodo Dragon 15 Bite 6-36 c
|
||||
Willow 6 Constrict 7-21 g,p,s s
|
||||
Raptor 8 Bite/Claws 5-30 c
|
||||
Giant Sloth 15 Cold 6 6-42 h
|
||||
|
||||
D. Creatures found in Swamp --------------------------------------
|
||||
Toad 2 Radiation 2-10 c,l h
|
||||
Leech 1 Energy Drain 0 a,i p
|
||||
Slime Mold 2 Acid 1-6 k,a,b p
|
||||
Giant Crab 3 Electricity 1-8 e,r m
|
||||
Alligator 5 Bite 3-18 p l
|
||||
Lungfish 6 Laser 3-12 e a
|
||||
Bombadier Beetle 4 Damage Armor 0 a,e r
|
||||
Tick 2 Life Leech 2-8 i s
|
||||
Giant Puffball 1 hp -none- i
|
||||
Puffballs explode if touched
|
||||
Dartweed 3 Poison III 3-12 l r,c
|
||||
Hippopotamus 13 Bite 4-24 r h
|
||||
Giant Worm 2 Bite 1-6
|
||||
Giant Worms split into parts if hit by weaponry
|
||||
Crocodile 10 Mental Blast 12-36 c m
|
||||
Water Moccasin 6 Poison II 4-14 p
|
||||
Snapping Turtle 9 Bite 5-30 c h,l
|
||||
Pteradactyl 9 Radiation 6-30 r,m
|
||||
Bog Horror 16 Constrict 3-30 a,h,c,1,m,i p
|
||||
|
||||
E. Creatures found in Plains --------------------------------------
|
||||
Prairie Chicken 1 Bite 1-3 k h
|
||||
Lizard 2 Heat 1-5 h,l e
|
||||
Antelope 3 Trample 1-6 h,l
|
||||
Moth 4 Life Leech 1-6 m a
|
||||
Gazelle 5 Laser 2-6 l
|
||||
Stink Bug 6 Nausea 0 a m
|
||||
Armadillo 6 Bite/Claws 3-9 p
|
||||
Blue Jay 4 Mental Blast 6-18 e
|
||||
Laughing Hyena 4 Tickle 2-8 t
|
||||
Fox 5 Eat Food 0 1 m
|
||||
Giant Wasp 6 Poison III 3-10 r h,l
|
||||
Locust 3 Bite 1-3 k,a,e,r,h,c,l,m,p
|
||||
Coral Snake 5 Poison II 4-16 h
|
||||
Bunny Rabbit 4 Bite 1-6 p
|
||||
Bunnies reproduce.
|
||||
Voracious Shrew 2 Bite 7-42
|
||||
Cactus 8 Darts 5-30 r,g,q14,s,b c
|
||||
Giraffe 16 Trample 6-42
|
||||
|
||||
F. Creatures found in Water --------------------------------------
|
||||
Kelp 2 Constrict 1-3 c
|
||||
Sardine 1 Bite 1-3 a e
|
||||
Electric Eel 2 Electricity 1-8 e
|
||||
Seagull 3 Poop Out 0 1 m
|
||||
Lobster 2 Claws 2-12 l h
|
||||
Lamprey 1 Life Leech 1-4
|
||||
Barracuda 3 Bite 2-12 a
|
||||
Sunfish 3 Laser 2-8 l p
|
||||
Urchin 3 Darts 5-15 q10,b
|
||||
Jellyfish 4 Poison II,III 3-12 a,3,s,b r,s
|
||||
Squid 5 Blind,Constrict 2-6 c k
|
||||
Fire Coral 1 Heat 4-20 k,s,b l
|
||||
Trilobite 5 Radiation 3-15 e m
|
||||
Red Snapper 4 Bite 5-30
|
||||
Nauteloid 7 Mental Blast 4-12
|
||||
Sting Ray 7 Poison III 3-12 p
|
||||
Octopus 6 Constrict 7-21 a
|
||||
Moray Eel 9 Bite 3-18
|
||||
Narwal 10 Gore 4-24 c
|
||||
Hammerhead Shark 10 Bite 5-30 m
|
||||
Killer Whale 22 Bite 6-36 c
|
||||
Great White Shark 15 Bite 6-36 m
|
||||
Plesiosaurus 25 Bite 7-42 r
|
||||
|
||||
* Attack types:
|
||||
Radiation damage is multiplied by 10 / (your radiation resistance)
|
||||
Poison damage is multiplied by 10 / (your constitution)
|
||||
Poison I simply does damage
|
||||
Poison II has a chance to reduce your strength
|
||||
Poison III has a chance to reduce your constitution and hit points
|
||||
Mental Blast, Life Leech damage is multiplied by 10 / (your mental resistance)
|
||||
Constrict attacks, once they hit, do damage every round thereafter
|
||||
Energy Drain attacks can quench mutations or drain experience points
|
||||
|
||||
Some damage amounts are approximate; for example, a Cactus has 5 separate
|
||||
dart attacks for 1-6 each, with differing ranges, so it will only do the
|
||||
maximum of 5-30 at close range. Mental Blast damage amounts can vary widely
|
||||
from those given. Damage Armor and Steal/Eat attacks may do some damage if
|
||||
they don't successfully damage armor / steal an item.
|
||||
|
||||
** resistances:
|
||||
a: resist acid
|
||||
b: resist blindness
|
||||
c: resist cold
|
||||
e: resist electricity
|
||||
g: grow from heat or laser attacks
|
||||
h: resist heat
|
||||
i: invisible
|
||||
k: take 1/3 damage from kinetic attacks
|
||||
l: resist lasers
|
||||
m: resist mental attacks
|
||||
p: resist poison
|
||||
r: resist radiation
|
||||
s: resist sneezing/burping
|
||||
1: regenerate 1 hit point/round
|
||||
3: regenerate 3 hit points/round
|
||||
4: regenerate 4 hit points/round
|
||||
q4: quills or shock if touched for 1-4 points damage
|
||||
q10: quills or shock if touched for 1-10 points damage
|
||||
q14: quills or shock if touched for 2-14 points damage
|
||||
|
||||
*** susceptibilities
|
||||
a: double damage from acid
|
||||
b: double damage from blindness
|
||||
c: double damage from cold
|
||||
e: double damage from electricity
|
||||
h: double damage from heat
|
||||
k: double damage from kinetic
|
||||
l: double damage from lasers
|
||||
m: double damage from mental attacks
|
||||
p: double damage from poison
|
||||
r: double damage from radiation
|
||||
s: sluggish (only move every other round)
|
||||
|
||||
_________________________________________________________________________
|
||||
|
||||
6. CASTLES
|
||||
Your overall mission is to save the world from the Grinch and his nerve
|
||||
toxin. You must complete a series of missions in order to accomplish this
|
||||
goal. You do not need to visit these castles in any particular order,
|
||||
despite the suggestions of the Tape Recorders you'll find along the way.
|
||||
You will usually need to visit 5 different castles in order to properly equip
|
||||
yourself. Specifically, you'll need the following items:
|
||||
1. A map from the Munsters in order to locate the Grinch's hidden castle.
|
||||
All the Munsters are dangerous foes, Grampa in particular. You need to
|
||||
use the teleport trap somewhere in the room with Grampa to get to the
|
||||
sealed room containing the map (as well as another teleport trap). To
|
||||
render Grampa harmless, find the Green Gregre berry on Level -6 of the
|
||||
castle, the level before you get to the Munsters level. This berry will
|
||||
turn you green for a short period of time, and all the Munsters will
|
||||
mistake you for Herman and consequently ignore you.
|
||||
Note: a character with Heightened Vision shouldn't have to visit this
|
||||
castle at all. Also, a JackHammer or Molecular Disruption makes the
|
||||
Gregre Berry unnecessary.
|
||||
2. Buzz Aldrin's Space Suit to protect yourself from the radiation which
|
||||
protects the Grinch's castle. Buzz is protected by a variety of losers,
|
||||
the most dangerous of which are the 9 Chicago Cubs. If you are wearing
|
||||
the Mets Hat which you can find in a secret room soon after entering
|
||||
Buzz's level, the Cubs are much less harmful. Buzz is on the deepest
|
||||
level in his castle.
|
||||
3. Elvis' Blue Suede Shoes so you can cross the bottomless chasm that
|
||||
surrounds the Grinch's castle. Elvis is a good guy like you, but you
|
||||
have to get rid of all the Elvis Impersonators on his castle level with
|
||||
him before he'll give you the goods. You can tell the difference between
|
||||
the real and fake Elvii be noting that when you wake them up and they
|
||||
sing the line of an Elvis song, only Elvis gets the words right. If you
|
||||
wake the real Elvis before finishing off the Impersonators (ie, he
|
||||
doesn't immediately give you the stuff), run away from him and he'll fall
|
||||
back asleep fairly soon. Elvis's special level may be on the top-most
|
||||
or the bottom-most level; only a Tricorder can tell you ahead of time
|
||||
where he is.
|
||||
4. Donald Trump's Presidential ID card to get through the locked door into
|
||||
the castle. Donald, Marla and Ivana all have nasty Life Leech attacks.
|
||||
If possible, try to have a MindWeb Generator or some Mental Resistance-
|
||||
enhancing berries available. Donald is easier to deal with if you can
|
||||
find and defeat Ivana first (Donald tends to doze off like Elvis, by the
|
||||
way) and get her blonde wig (which will raise your Mental Resistance and
|
||||
lower your Intelligence by 15 while wearing it). Donald is on the
|
||||
highest level of his castle.
|
||||
5. Gilligan's Keptibora serum to protect yourself from the nerve toxin which
|
||||
permeates the Grinch's castle. Getting to this castle can be tricky, and
|
||||
if you find a WetSuit, Kayak, Rubber Raft, Hovercraft, Jetpack or
|
||||
Transporter Monolith, try to proceed directly to this castle, which is
|
||||
always located in the middle of a body of water. Gilligan is very
|
||||
dangerous to your belongings. You should try to find and defeat the
|
||||
Skipper to retrieve his hat, which you'll hit Gilligan with. Before
|
||||
going after Gilligan, it is wise to drop all your belongings since
|
||||
Gilligan has a knack for breaking things. If you used a Transporter
|
||||
Monolith to get to this castle, be sure to grab the Bamboo Raft for
|
||||
return transportation. Save the Keptibora Serum until you are ready to
|
||||
go to the Grinch's castle, since it only lasts for a single day. Gilligan
|
||||
is on the highest level of his castle.
|
||||
|
||||
The Grinch's castle can be very dangerous if you're unprepared. The
|
||||
Grinch's special level is either on the top-most or bottom-most level;
|
||||
unless you have a Tricorder, you'll have a 50-50 chance of going the wrong
|
||||
way. Tech items won't work on the Grinch's special level, so begin collecting
|
||||
useful berries on your way there. Since the Grinch is surrounded by nasty
|
||||
guardians, berries like Invisibility, Fright-Inducing, Speed-Enhancing are
|
||||
especially useful. You may want to save a Detox berry, too. Don't try to
|
||||
defeat the Grinch in out-and-out combat; with his dying gasp he'll trigger
|
||||
the release of the nerve toxin, sending doom upon the remains of the Earth.
|
||||
Instead, go to the castle level furthest from the Grinch, (ie, the top-most
|
||||
floor if he is on the bottom-most floor) where you can find a can of Roast
|
||||
Beast. Tossing this at the Grinch will cause his heart to grow 3 sizes, and
|
||||
he'll destroy the toxin.
|
30
ALPMAN11.TXT
Normal file
30
ALPMAN11.TXT
Normal file
@ -0,0 +1,30 @@
|
||||
alpman11.zip: AlphaMan version 1.1 for MS-DOS, by Jeff Olson. A roleplaying
|
||||
game set in post-holocaust Earth. You play a mutated human who must use a
|
||||
variety of technological relics and mutated berries to save the world from
|
||||
the Grinch's evil schemes. Occasional humorous twists. Game uses colorful
|
||||
text-based graphics in the spirit of NetHack. Requires 640K, color.
|
||||
|
||||
Version 1.01 added a "fast fight" mode that speeds up combat, added 2 easier
|
||||
modes of play for beginners, and made food more plentiful.
|
||||
|
||||
Version 1.02 fixed a bug that caused unpredictable effects when one went
|
||||
from "very hungry" to "famished", and improved the effects of the mutations
|
||||
Invisibility, Quills and Heightened Endurance, to make them more powerful.
|
||||
|
||||
Version 1.03 fixed saved filename convention so the game no longer dies when
|
||||
trying to save games with character names that include odd characters
|
||||
like ? and +.
|
||||
|
||||
Version 1.1 allows the game to remember recent castle and lair levels, so
|
||||
remapping is no longer necessary. For example, most dropped items will
|
||||
still be there when you return to a place already visited.
|
||||
Entering 'alphaman somename' will now generate a new character if the saved
|
||||
file somename.alf doesn't exist.
|
||||
There are now separate "Halls of the Dead" for the different difficulty
|
||||
levels, and experience bonuses at the end of the game for each "subquest"
|
||||
successfully completed.
|
||||
The Main Map key (F5) now shows regions where you've visited (useful for
|
||||
looking for Monoliths).
|
||||
A few new devices - Flash Grenade, UV Helmet, Geiger Counter, Neutron Suit,
|
||||
Radar Detector.
|
||||
|
7
BACKUP.BAT
Normal file
7
BACKUP.BAT
Normal file
@ -0,0 +1,7 @@
|
||||
copy *.* recent.bak
|
||||
cd recent.bak
|
||||
del *.obj
|
||||
del *.exe
|
||||
del *.alf
|
||||
del *.sav
|
||||
|
155
BRESNHAM.C
Normal file
155
BRESNHAM.C
Normal file
@ -0,0 +1,155 @@
|
||||
/*
|
||||
** Public Domain mode 13h Bresenham line/circle algorithms
|
||||
** By Brian Dessent
|
||||
**
|
||||
** Written for Borland, modified for others by Bob Stout
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <dos.h>
|
||||
#include <conio.h>
|
||||
#include <time.h> /* for randomize */
|
||||
|
||||
#ifndef __TURBOC__
|
||||
#define random(num) (int)(((rand())*(long)(num))/(((long)RAND_MAX)+1))
|
||||
#define randomize() srand((unsigned)time(NULL)|1)
|
||||
#else
|
||||
#endif
|
||||
|
||||
#ifndef MK_FP
|
||||
#define MK_FP(seg,offset) \
|
||||
((void far *)(((unsigned long)(seg)<<16) | (unsigned)(offset)))
|
||||
#endif
|
||||
|
||||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGTH 200
|
||||
#define MAX_X (SCREEN_WIDTH-1)
|
||||
#define MAX_Y (SCREEN_HEIGTH-1)
|
||||
|
||||
/* prototypes */
|
||||
|
||||
void setmode(int mode);
|
||||
void plotdot(int x, int y, char c);
|
||||
void bresenham_line(int x, int y, int x2, int y2, char c);
|
||||
void bresenham_circle(int xc, int yc, int r, char c);
|
||||
void main(void);
|
||||
|
||||
/* code begins */
|
||||
|
||||
/* uses BIOS to set video mode */
|
||||
|
||||
void setmode(int mode)
|
||||
{
|
||||
union REGS r;
|
||||
|
||||
r.x.ax = mode;
|
||||
int86(0x10, &r, &r);
|
||||
}
|
||||
|
||||
|
||||
/* plots a dot at (x, y) with color c */
|
||||
|
||||
void plotdot(int x, int y, char c)
|
||||
{
|
||||
register char far *addr;
|
||||
|
||||
if(x < 0 || x > MAX_X || y < 0 || y > MAX_Y)
|
||||
return;
|
||||
|
||||
addr = MK_FP(0xa000, (SCREEN_WIDTH * y) + x);
|
||||
*addr = c;
|
||||
}
|
||||
|
||||
|
||||
/* draws a line from (x, y) to (x2, y2) in color c */
|
||||
|
||||
void bresenham_line(int x, int y, int x2, int y2, char c)
|
||||
{
|
||||
int i, steep = 0, sx, sy, dx, dy, e;
|
||||
|
||||
dx = abs(x2 - x);
|
||||
sx = ((x2 - x) > 0) ? 1 : -1;
|
||||
dy = abs(y2 - y);
|
||||
sy = ((y2 - y) > 0) ? 1 : -1;
|
||||
|
||||
if(dy > dx)
|
||||
{
|
||||
steep = 1;
|
||||
x ^= y; /* swap x and y */
|
||||
y ^= x;
|
||||
x ^= y;
|
||||
dx ^= dy; /* swap dx and dy */
|
||||
dy ^= dx;
|
||||
dx ^= dy;
|
||||
sx ^= sy; /* swap sx and sy */
|
||||
sy ^= sx;
|
||||
sx ^= sy;
|
||||
}
|
||||
|
||||
e = 2 * dy - dx;
|
||||
for(i = 0;i < dx;i++)
|
||||
{
|
||||
if(steep)
|
||||
plotdot(y, x, c);
|
||||
else plotdot(x, y, c);
|
||||
while(e >= 0)
|
||||
{
|
||||
y += sy;
|
||||
e -= 2 * dx;
|
||||
}
|
||||
x += sx;
|
||||
e += 2 * dy;
|
||||
}
|
||||
plotdot(x2, y2, c);
|
||||
}
|
||||
|
||||
/* draws a circle at (xc, yc) with radius r in color c
|
||||
**
|
||||
** note: the scaling factor of (SCREEN_WIDTH / SCREEN_HEIGTH) is used when
|
||||
** updating d. This makes round circles. If you want ellipses, you can
|
||||
** modify that ratio.
|
||||
*/
|
||||
|
||||
void bresenham_circle(int xc, int yc, int r, char c)
|
||||
{
|
||||
int x = 0, y = r, d = 2 * (1 - r);
|
||||
|
||||
while(y > 0)
|
||||
{
|
||||
plotdot(xc + x, yc + y, c);
|
||||
plotdot(xc + x, yc - y, c);
|
||||
plotdot(xc - x, yc + y, c);
|
||||
plotdot(xc - x, yc - y, c);
|
||||
if(d + y > 0)
|
||||
{
|
||||
y -= 1;
|
||||
d -= (2 * y * SCREEN_WIDTH / SCREEN_HEIGTH) - 1;
|
||||
}
|
||||
if(x > d)
|
||||
{
|
||||
x += 1;
|
||||
d += (2 * x) + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* draws random lines and circles until a key is pressed in mode 13h */
|
||||
/* (draws in colors 0 - 63 only) */
|
||||
|
||||
void main(void)
|
||||
{
|
||||
int i=0;
|
||||
|
||||
randomize();
|
||||
setmode(0x13);
|
||||
while(!kbhit())
|
||||
{
|
||||
bresenham_line(random(SCREEN_WIDTH), random(SCREEN_HEIGTH),
|
||||
random(SCREEN_WIDTH), random(SCREEN_HEIGTH), i = ++i % 64);
|
||||
bresenham_circle(random(SCREEN_WIDTH), random(SCREEN_HEIGTH),
|
||||
random(50), i = ++i % 64);
|
||||
}
|
||||
getch();
|
||||
setmode(0x03); /* set to color text mode, clearing screen */
|
||||
}
|
24
COMALPHA.BAT
Normal file
24
COMALPHA.BAT
Normal file
@ -0,0 +1,24 @@
|
||||
del a1.obj
|
||||
bc a1 /o /s;
|
||||
del a2.obj
|
||||
bc a2 /o /s;
|
||||
del a3.obj
|
||||
bc a3 /o /s;
|
||||
del a4.obj
|
||||
bc a4 /o /s;
|
||||
del a5.obj
|
||||
bc a5 /o /s;
|
||||
del a6.obj
|
||||
bc a6 /o /s;
|
||||
del a7.obj
|
||||
bc a7 /o /s;
|
||||
del a8.obj
|
||||
bc a8 /o /s;
|
||||
\qc25\bin\qlink /CP:1 /f /packc /noe /ex /st:10000 a1+a2+a3+a4+a5+a6+a7+a8+alpclib;
|
||||
pause
|
||||
del alphaman.exe
|
||||
del alpman11.zip
|
||||
rename a1.exe alphaman.exe
|
||||
pkzip alpman11 alphaman.exe alphaman.1 alphaman.2 alphaman.3 alphaman.4 alphaman.5 alphaman.6 readme.txt fixes.txt
|
||||
call d2 a*.exe
|
||||
call d2 a*.zip
|
1
COMCLIB.BAT
Normal file
1
COMCLIB.BAT
Normal file
@ -0,0 +1 @@
|
||||
\qc25\bin\qcl /c /Ox /AM /FPi /W3 alpclib.c
|
BIN
CREALTER.BAS
Normal file
BIN
CREALTER.BAS
Normal file
Binary file not shown.
85
CREALTER.BAS.txt
Normal file
85
CREALTER.BAS.txt
Normal file
@ -0,0 +1,85 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DECLARE SUB randum ()
|
||||
DECLARE SUB modcreat (c$, cn$)
|
||||
DEFINT A-Z
|
||||
|
||||
DIM SHARED att(5), btt(5), typ(5), str(5), tohit(5), rng(5)
|
||||
DIM SHARED hd, mov, ac, sym, fc, defense, expr, creat$
|
||||
|
||||
OPEN "alpha.cre" FOR INPUT AS #1
|
||||
OPEN "alphaman.2" FOR RANDOM AS #2 LEN = 50
|
||||
OPEN "crelist" FOR OUTPUT AS #3
|
||||
FIELD #2, 20 AS nam$, 2 AS a$, 2 AS b$, 2 AS c$, 2 AS d$, 2 AS e$, 2 AS a1$, 2 AS b1$, 2 AS a2$, 2 AS b2$, 2 AS a3$, 2 AS b3$, 2 AS a4$, 2 AS b4$, 2 AS a5$, 2 AS b5$
|
||||
numcre = 0: CLS
|
||||
crecount = 1
|
||||
WHILE NOT EOF(1)
|
||||
INPUT #1, creat$
|
||||
PRINT #3, creat$; : crecount = crecount + 1
|
||||
IF crecount = 5 THEN
|
||||
crecount = 1: PRINT #3,
|
||||
ELSE
|
||||
PRINT #3, TAB(20 * (crecount - 1));
|
||||
END IF
|
||||
IF LEFT$(LTRIM$(creat$), 1) = CHR$(39) THEN GOTO fin
|
||||
CALL modcreat(creat$, creatnew$)
|
||||
LSET nam$ = creatnew$
|
||||
numcre = numcre + 1: PRINT creat$; " ";
|
||||
INPUT #1, a, defense, c, susc, expr
|
||||
IF defense AND susc AND (1 + 2 + 4 + 8 + 16 + 32 + 64 + 512 + 1024) THEN
|
||||
COLOR 12: PRINT "error?": COLOR 7
|
||||
END IF
|
||||
LSET a$ = MKI$(a): LSET b$ = MKI$(defense): LSET c$ = MKI$(c)
|
||||
LSET d$ = MKI$(susc): LSET e$ = MKI$(expr)
|
||||
FOR i = 1 TO 5: INPUT #1, att(i), btt(i): NEXT i
|
||||
LSET a1$ = MKI$(att(1)): LSET b1$ = MKI$(btt(1))
|
||||
LSET a2$ = MKI$(att(2)): LSET b2$ = MKI$(btt(2))
|
||||
LSET a3$ = MKI$(att(3)): LSET b3$ = MKI$(btt(3))
|
||||
LSET a4$ = MKI$(att(4)): LSET b4$ = MKI$(btt(4))
|
||||
LSET a5$ = MKI$(att(5)): LSET b5$ = MKI$(btt(5))
|
||||
PUT #2, numcre
|
||||
hd = INT(a / 10) MOD 1000: mov = INT(a / 10000)
|
||||
ac = a MOD 10
|
||||
sym = c MOD 1000: fc = INT(c / 1000)
|
||||
IF fc = 0 THEN bc = 1 ELSE bc = 0
|
||||
FOR i = 1 TO 5
|
||||
tohit(i) = att(i) MOD 100: str(i) = INT(att(i) / 100)
|
||||
rng(i) = btt(i) MOD 100: typ(i) = INT(btt(i) / 100)
|
||||
NEXT i
|
||||
WEND
|
||||
CLOSE
|
||||
|
||||
fin:
|
||||
|
||||
END
|
||||
|
||||
SUB modcreat (c$, cn$)
|
||||
cn$ = SPACE$(20)
|
||||
FOR k = 1 TO LEN(c$)
|
||||
aa = ASC(MID$(c$, k, 1)): aa = aa XOR k * 6
|
||||
MID$(cn$, k, 1) = CHR$(aa MOD 256)
|
||||
NEXT
|
||||
MID$(cn$, LEN(c$) + 1, 1) = CHR$(242)
|
||||
FOR k = LEN(c$) + 2 TO 20
|
||||
MID$(cn$, k, 1) = CHR$(INT(RND * 256))
|
||||
NEXT
|
||||
END SUB
|
||||
|
47
CRELIST
Normal file
47
CRELIST
Normal file
@ -0,0 +1,47 @@
|
||||
Wolverine Housecat Centipede Snail
|
||||
Warthog Owl Daffodil Asparagus
|
||||
Dung Beetle Fire Ant Woodpecker Gas Spore
|
||||
Dragonfly Skunk Chameleon Boa
|
||||
Porcupine Lotus Crunchberry Beast Viper
|
||||
Venetian Flying Fish Rosebush Zapweed
|
||||
Mantis Japanese Beetle Mr. Potato Head Sunflower
|
||||
Ragweed Killer Bee Python Vulture
|
||||
Huge Cockroach Sandman Pryor Spitting Cobra
|
||||
Goat Ice Wolf Rot Fungus Pokey
|
||||
Gumby Tapeworm Slug Cheetah
|
||||
Tortoise Venus Flytrap the Blob Grizzly Bear
|
||||
Bush Quayle Rhinocerous Giant Tarantula
|
||||
Phoenix Scorpion Mastodon Berserk Robot
|
||||
Black Widow Sabretooth Tiger Mosquito Anklyosaurus
|
||||
Triceratops Polar Worm Tyrannosaurus King Kong
|
||||
Rodan Godzilla Slime Ooze
|
||||
Vampire Bat Repair Droid Maggot Giant Rat
|
||||
Purple Mold Ghoul Defense Droid Gray Mold
|
||||
Phantom Wolf Spider Enzyme Fungus Volte
|
||||
Brown Recluse Security Droid Brain Beast War Droid
|
||||
Tree Frog Stranglevine Poison Ivy Toadstool
|
||||
Termite Mushroom Panther Moose
|
||||
Jaguar Deadly Nightshade Algore Death Fern
|
||||
Bigfoot Komodo Dragon Willow Raptor
|
||||
Giant Sloth Toad Leech Slime Mold
|
||||
Giant Crab Alligator Lungfish Bombadier Beetle
|
||||
Tick Giant Puffball Dartweed Hippopotamus
|
||||
Giant Worm Crocodile Water Moccasin Snapping Turtle
|
||||
Pteradactyl Bog Horror Prairie Chicken Lizard
|
||||
Antelope Moth Gazelle Stink Bug
|
||||
Armadillo Blue Jay Laughing Hyena Fox
|
||||
Giant Wasp Locust Coral Snake Bunny Rabbit
|
||||
Voracious Shrew Cactus Giraffe Kelp
|
||||
Sardine Electric Eel Seagull Lobster
|
||||
Lamprey Barracuda Sunfish Urchin
|
||||
Jellyfish Squid Fire Coral Trilobite
|
||||
Red Snapper Nauteloid Sting Ray Octopus
|
||||
Moray Eel Narwal Hammerhead Shark Killer Whale
|
||||
Great White Shark Plesiosaurus Big Hairy Spider Gilligan
|
||||
the Skipper the Professor Ginger Mary Ann
|
||||
Mr. Howell Mrs. Howell Herman Lily
|
||||
Grandpa Eddie Marilyn Spot
|
||||
Igor Uncle Fester Elvis Elvis
|
||||
Buzz Aldrin Zola Bud Mary Decker Gary Hart
|
||||
Saddam Hussein Chicago Cub Donald Trump Ivana
|
||||
Marla the Grinch Max '10000*move+10*HD+AC+
|
BIN
CRETEST.BAS
Normal file
BIN
CRETEST.BAS
Normal file
Binary file not shown.
120
CRETEST.BAS.txt
Normal file
120
CRETEST.BAS.txt
Normal file
@ -0,0 +1,120 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DECLARE SUB randum ()
|
||||
DECLARE SUB printcre (n%)
|
||||
DECLARE SUB modcreat (c$, cn$)
|
||||
DEFINT A-Z
|
||||
|
||||
DIM SHARED att(5), btt(5), typ(5), str(5), tohit(5), rng(5), atk$(27)
|
||||
DIM SHARED atkcnt(27), defcnt(15), movcnt(4)
|
||||
DIM SHARED hd, mov, ac, sym, fc, bc, defense, expr, creat$
|
||||
|
||||
DATA Kinetic, Radiation, Poison 1, Poison 2, Poison 3, Acid, Laser
|
||||
DATA Mental Blast, Electricity, Heat, Cold, Tentical, Life Leech
|
||||
DATA Steal, Tickle,"Damage Armor","Poop Out",Spore,Trample,Aroma,Drain
|
||||
DATA Sickening,Hmm,Help,Gore,Special,Snooze
|
||||
FOR i = 1 TO 27: READ atk$(i): NEXT
|
||||
|
||||
CLS
|
||||
CALL randum
|
||||
|
||||
COLOR 9
|
||||
CLS
|
||||
|
||||
END
|
||||
|
||||
SUB printcre (numcre)
|
||||
CLS
|
||||
COLOR 15: LOCATE 5, 5: PRINT creat$; SPACE$(4);
|
||||
COLOR fc, bc: PRINT " "; CHR$(sym); " ";
|
||||
COLOR 14, 0: PRINT USING " Exp : ####"; expr;
|
||||
COLOR 15: PRINT USING " Level :###"; INT((numcre + 1) / 4)
|
||||
COLOR 9: LOCATE 7, 5
|
||||
PRINT USING "Hit dice : ### Movement rate : ## AC :##"; hd, mov, ac
|
||||
COLOR 3: row = 9
|
||||
FOR i = 1 TO 5
|
||||
IF att(i) <> 0 THEN
|
||||
LOCATE row, 5: PRINT USING "& attack, Strength : ##"; atk$(typ(i)), str(i)
|
||||
LOCATE row + 1, 5: PRINT USING "Range : ## To Hit : ##"; rng(i), tohit(i)
|
||||
row = row + 3
|
||||
END IF
|
||||
NEXT i
|
||||
COLOR 13: LOCATE 9, 55: PRINT "Resistances"
|
||||
COLOR 5: row = 10
|
||||
FOR i = 0 TO 13: j = 2 ^ i
|
||||
IF (defense AND j) THEN
|
||||
defcnt(i) = defcnt(i) + 1
|
||||
LOCATE row, 55: row = row + 1
|
||||
SELECT CASE i
|
||||
CASE 0: PRINT "1/3 from Kinetic"
|
||||
CASE 1: PRINT "Acid"
|
||||
CASE 2: PRINT "Electricity"
|
||||
CASE 3: PRINT "Radiation"
|
||||
CASE 4: PRINT "Heat"
|
||||
CASE 5: PRINT "Cold"
|
||||
CASE 6: PRINT "Lasers"
|
||||
CASE 7: PRINT "Grow from heat/laser"
|
||||
CASE 8: PRINT "Regenerate 1/turn"
|
||||
CASE 9: PRINT "Mental Attacks"
|
||||
CASE 10: PRINT "Poison"
|
||||
CASE 11: PRINT "Regenerate 3/turn"
|
||||
CASE 12: PRINT "Quills/shock for 1-4"
|
||||
CASE 13: PRINT "Quills/shock for 1-10"
|
||||
CASE ELSE: PRINT "oops"
|
||||
END SELECT
|
||||
END IF
|
||||
NEXT
|
||||
END SUB
|
||||
|
||||
SUB randum
|
||||
DIM cs AS STRING * 20
|
||||
OPEN "alphaman.2" FOR RANDOM AS #2 LEN = 50
|
||||
FIELD #2, 20 AS nam$, 2 AS a$, 2 AS b$, 2 AS c$, 2 AS d$, 2 AS e$, 2 AS a1$, 2 AS b1$, 2 AS a2$, 2 AS b2$, 2 AS a3$, 2 AS b3$, 2 AS a4$, 2 AS b4$, 2 AS a5$, 2 AS b5$
|
||||
ziz: LOCATE 25, 1: INPUT ; "Enter creature number (-1 to end) : ", num
|
||||
IF num = 0 THEN numcre = numcre + 1 ELSE IF num < 0 THEN EXIT SUB ELSE numcre = num
|
||||
GET #2, numcre: cs = nam$: creat$ = SPACE$(20)
|
||||
k = 1: stopit = 0
|
||||
DO
|
||||
aa = ASC(MID$(cs, k, 1))
|
||||
IF aa = 242 THEN stopit = -1 ELSE aa = aa XOR k * 6: MID$(creat$, k, 1) = CHR$(aa MOD 256)
|
||||
k = k + 1
|
||||
LOOP UNTIL stopit
|
||||
ax = CVI(a$): defense = CVI(b$): c = CVI(c$): dum = CVI(d$): expr = CVI(e$)
|
||||
att(1) = CVI(a1$): btt(1) = CVI(b1$)
|
||||
att(2) = CVI(a2$): btt(2) = CVI(b2$)
|
||||
att(3) = CVI(a3$): btt(3) = CVI(b3$)
|
||||
att(4) = CVI(a4$): btt(4) = CVI(b4$)
|
||||
att(5) = CVI(a5$): btt(5) = CVI(b5$)
|
||||
hd = INT(ax / 10) MOD 1000: mov = INT(ax / 10000)
|
||||
ac = ax MOD 10
|
||||
IF (defense AND 16384) THEN ac = ac - 10
|
||||
sym = c MOD 1000: fc = INT(c / 1000)
|
||||
IF fc = 0 THEN bc = 1 ELSE bc = 0
|
||||
FOR i = 1 TO 5
|
||||
tohit(i) = att(i) MOD 100: str(i) = INT(att(i) / 100)
|
||||
rng(i) = btt(i) MOD 100: typ(i) = INT(btt(i) / 100)
|
||||
NEXT i
|
||||
atkcnt(typ(1)) = atkcnt(typ(1)) + 1
|
||||
movcnt(mov) = movcnt(mov) + 1
|
||||
CALL printcre(numcre)
|
||||
GOTO ziz
|
||||
END SUB
|
||||
|
BIN
CREVIEW.BAS
Normal file
BIN
CREVIEW.BAS
Normal file
Binary file not shown.
418
CREVIEW.BAS.txt
Normal file
418
CREVIEW.BAS.txt
Normal file
@ -0,0 +1,418 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DECLARE FUNCTION lev% (n%)
|
||||
DECLARE FUNCTION exper! (n%)
|
||||
DEFINT A-Z
|
||||
' $INCLUDE: 'alpha.dec'
|
||||
DIM att(0 TO 5), btt(0 TO 5), typ(0 TO 5), str(0 TO 5)
|
||||
DIM tohit(0 TO 5), rng(0 TO 5), atk$(1 TO 27), sus$(0 TO 15)
|
||||
DIM shortsus$(0 TO 15)
|
||||
DIM atkcnt(0 TO 27), defcnt(0 TO 15), movcnt(0 TO 7), susccnt(0 TO 15)
|
||||
DIM letters(1 TO 26, 0 TO 1)
|
||||
|
||||
DATA Kinetic, Radiation, Poison 1, Poison 2, Poison 3, Acid, Laser
|
||||
DATA Mental Blast, Electricity, Heat, Cold, Tentical, Life Leech
|
||||
DATA Steal, Tickle, "Damage Armor", "Poop Out", Spore, Trample, Aroma, Drain
|
||||
DATA Blinding, Sickening, Help, Gore, Special, Snooze
|
||||
FOR i = 1 TO 27: READ atk$(i): NEXT
|
||||
DATA Kinetic, Acid, Electricity, Radiation, Heat, Cold, Lasers, Tickling
|
||||
DATA "Always Asleep", "Mental Attacks", Poison, "Resist Sneeze"
|
||||
DATA "Resist Blind", "-not used-", "ac+10", "Sluggish"
|
||||
FOR i = 0 TO 15: READ sus$(i): NEXT
|
||||
DATA k, a, e, r, h, c, l, t, z, m, p, "", "", "", "", "S"
|
||||
FOR i = 0 TO 15: READ shortsus$(i): NEXT
|
||||
OPEN "alpha.cre" FOR INPUT AS #1
|
||||
OPEN "creature.txt" FOR OUTPUT AS #2
|
||||
numcre = 0
|
||||
'FOR l = 1 TO 10
|
||||
WHILE NOT EOF(1)
|
||||
CLS
|
||||
INPUT #1, creat$
|
||||
IF LEFT$(LTRIM$(creat$), 1) = CHR$(39) THEN GOTO fin
|
||||
numcre = numcre + 1
|
||||
INPUT #1, a, defense, c, susc, expr
|
||||
FOR i = 1 TO 5: INPUT #1, att(i), btt(i): NEXT i
|
||||
hd = (a \ 10) MOD 1000: mov = a \ 10000
|
||||
ac = a MOD 10
|
||||
IF (defense AND 16384) THEN ac = ac - 10
|
||||
IF (susc AND 16384) THEN ac = ac + 10
|
||||
IF (defense AND -32768) THEN mov = mov + 4
|
||||
sym = c MOD 1000: fc = c \ 1000
|
||||
IF fc = 0 THEN bc = 1 ELSE bc = 0
|
||||
IF sym < 97 THEN casepos = 0 ELSE casepos = 1
|
||||
letpos = sym - 64 - 32 * casepos
|
||||
IF fc < 15 THEN bitpos = 2 ^ fc ELSE bitpos = -2 ^ fc
|
||||
IF letters(letpos, casepos) AND bitpos THEN
|
||||
LOCATE 22, 1: COLOR 13: PRINT "*** Critter symbol/color combo already used! ***";
|
||||
ELSE
|
||||
letters(letpos, casepos) = letters(letpos, casepos) OR bitpos
|
||||
END IF
|
||||
FOR i = 1 TO 5
|
||||
tohit(i) = att(i) MOD 100: str(i) = att(i) \ 100
|
||||
rng(i) = btt(i) MOD 100: typ(i) = btt(i) \ 100
|
||||
NEXT i
|
||||
atkcnt(typ(1)) = atkcnt(typ(1)) + 1
|
||||
movcnt(mov) = movcnt(mov) + 1
|
||||
COLOR 15: LOCATE 5, 5: PRINT creat$; SPACE$(4);
|
||||
COLOR fc, bc: PRINT " "; CHR$(sym); " ";
|
||||
COLOR 14, 0: PRINT USING " Exp :#### (####.##)"; expr; exper(numcre);
|
||||
COLOR 15: PRINT USING " Level :###"; lev(numcre)
|
||||
COLOR 9: LOCATE 7, 5
|
||||
PRINT USING "Hit dice :### Movement rate :## AC :##"; hd; mov; ac
|
||||
COLOR 3: row = 9
|
||||
PRINT #2, creat$; TAB(19); hd; TAB(27);
|
||||
FOR i = 1 TO 5
|
||||
IF att(i) <> 0 THEN
|
||||
IF i = 1 THEN PRINT #2, atk$(typ(i)); str(i);
|
||||
LOCATE row, 5: PRINT USING "& attack, Strength :##"; atk$(typ(i)); str(i)
|
||||
LOCATE row + 1, 5: PRINT USING "Range :## To Hit :##"; rng(i); tohit(i)
|
||||
row = row + 3
|
||||
END IF
|
||||
NEXT i
|
||||
PRINT #2, TAB(47);
|
||||
COLOR 13: LOCATE 9, 53: PRINT "Resistances"
|
||||
COLOR 5: row = 10
|
||||
FOR i = 0 TO 13
|
||||
IF (defense AND 2 ^ i) THEN
|
||||
defcnt(i) = defcnt(i) + 1
|
||||
LOCATE row, 53: row = row + 1
|
||||
SELECT CASE i
|
||||
CASE 0: PRINT "1/3 from Kinetic": PRINT #2, "k ";
|
||||
CASE 1: PRINT "Acid": PRINT #2, "a ";
|
||||
CASE 2: PRINT "Electricity": PRINT #2, "e ";
|
||||
CASE 3: PRINT "Radiation": PRINT #2, "r ";
|
||||
CASE 4: PRINT "Heat": PRINT #2, "h ";
|
||||
CASE 5: PRINT "Cold": PRINT #2, "c ";
|
||||
CASE 6: PRINT "Lasers": PRINT #2, "l ";
|
||||
CASE 7: PRINT "Grow from heat/laser": PRINT #2, "g ";
|
||||
CASE 8: PRINT "Regenerate 1/turn": PRINT #2, "1 ";
|
||||
CASE 11: PRINT "Regenerate 3/turn": PRINT #2, "3 ";
|
||||
CASE 9: PRINT "Mental Attacks": PRINT #2, "m ";
|
||||
CASE 10: PRINT "Poison": PRINT #2, "p ";
|
||||
CASE 12: PRINT "Quills/shock for 1-4": PRINT #2, "q4 ";
|
||||
CASE 13: PRINT "Quills/shock for 1-10": PRINT #2, "q10 ";
|
||||
END SELECT
|
||||
END IF
|
||||
NEXT
|
||||
IF susc AND 2 ^ 11 THEN
|
||||
defcnt(i) = defcnt(i) + 1: LOCATE row, 53: row = row + 1
|
||||
PRINT "Sneeze/Burp": PRINT #2, "s ";
|
||||
END IF
|
||||
IF susc AND 2 ^ 12 THEN
|
||||
defcnt(i) = defcnt(i) + 1: LOCATE row, 53: row = row + 1
|
||||
PRINT "Blindness": PRINT #2, "d ";
|
||||
END IF
|
||||
PRINT #2, TAB(68);
|
||||
row = row + 1: COLOR 12: LOCATE row, 53: PRINT "Susceptibilities";
|
||||
COLOR 4: row = row + 1
|
||||
FOR i = 0 TO 15
|
||||
IF (susc AND 2 ^ i) AND (i < 11 OR i > 13) THEN
|
||||
susccnt(i) = susccnt(i) + 1
|
||||
IF row <= 25 THEN LOCATE row, 53: row = row + 1
|
||||
PRINT sus$(i)
|
||||
PRINT #2, shortsus$(i);
|
||||
END IF
|
||||
NEXT
|
||||
PRINT #2,
|
||||
|
||||
LOCATE 23, 10
|
||||
SELECT CASE numcre
|
||||
CASE ncreat: PRINT "This is the last regular critter";
|
||||
CASE ncreat + crecas: PRINT "This is the last castle critter";
|
||||
CASE ncreat + crecas + crefor: PRINT "This is the last forest critter";
|
||||
CASE ncreat + crecas + crefor + creswa: PRINT "This is the last swamp critter";
|
||||
CASE ncreat + crecas + crefor + creswa + crepla: PRINT "This is the last plains critter";
|
||||
CASE ncreat + crecas + crefor + creswa + crepla + creh2o: PRINT "This is the last water critter";
|
||||
END SELECT
|
||||
LOCATE 24, 10
|
||||
SELECT CASE numcre
|
||||
CASE wimp: PRINT "Wimpy";
|
||||
CASE centi: PRINT "Centipede";
|
||||
CASE snail: PRINT "Snail";
|
||||
CASE daff: PRINT "daffodil";
|
||||
CASE aspa: PRINT "asparagus";
|
||||
CASE ant: PRINT "fire ant";
|
||||
CASE gspore: PRINT "gas spore";
|
||||
CASE dfly: PRINT "dragonfly";
|
||||
CASE lotus: PRINT "lotus";
|
||||
CASE cb: PRINT "crunchberry beast";
|
||||
CASE dung: PRINT "dung beetle";
|
||||
CASE fish: PRINT "flying fish";
|
||||
CASE rose: PRINT "rosebush";
|
||||
CASE japb: PRINT "japanese beetle";
|
||||
CASE mant: PRINT "mantis";
|
||||
CASE zap: PRINT "zapweed";
|
||||
CASE mph: PRINT "Mr. potato head";
|
||||
CASE sunf: PRINT "sunflower";
|
||||
CASE rweed: PRINT "ragweed";
|
||||
CASE bee: PRINT "killer bee";
|
||||
CASE roach: PRINT "roach";
|
||||
CASE pryor: PRINT "richard pryor";
|
||||
CASE rotf: PRINT "rotfungus";
|
||||
CASE pokey: PRINT "pokey";
|
||||
CASE gumby: PRINT "gumby";
|
||||
CASE tworm: PRINT "tapeworm";
|
||||
CASE slug: PRINT "slug";
|
||||
CASE goat: PRINT "goat";
|
||||
CASE venus: PRINT "venus flytrap";
|
||||
CASE blob: PRINT "the blob";
|
||||
CASE bush: PRINT "Bush";
|
||||
CASE quayle: PRINT "Quayle";
|
||||
CASE tara: PRINT "tarantula";
|
||||
CASE mosq: PRINT "mosquito";
|
||||
CASE phoe: PRINT "phoenix";
|
||||
CASE scor: PRINT "scorpion";
|
||||
CASE robot: PRINT "robot";
|
||||
CASE bwid: PRINT "black widow";
|
||||
CASE wdro: PRINT "war droid";
|
||||
CASE kong: PRINT "king kong";
|
||||
CASE rodan: PRINT "rodan";
|
||||
CASE godz: PRINT "godzilla";
|
||||
CASE slime: PRINT "slime";
|
||||
CASE ooze: PRINT "ooze";
|
||||
CASE rdro: PRINT "repair droid";
|
||||
CASE magg: PRINT "maggot";
|
||||
CASE pmold: PRINT "purple mold";
|
||||
CASE rat: PRINT "rat";
|
||||
CASE ddro: PRINT "defense droid";
|
||||
CASE efung: PRINT "enzyme fungus";
|
||||
CASE brecl: PRINT "brown recluse";
|
||||
CASE wspid: PRINT "wolf spider";
|
||||
CASE gmold: PRINT "gray mold";
|
||||
CASE sdro: PRINT "security droid";
|
||||
CASE brain: PRINT "brain beast";
|
||||
CASE tfrog: PRINT "tree frog";
|
||||
CASE svine: PRINT "stranglevine";
|
||||
CASE pivy: PRINT "poison ivy";
|
||||
CASE stool: PRINT "toadstool";
|
||||
CASE term: PRINT "termite";
|
||||
CASE mush: PRINT "mushroom";
|
||||
CASE puff: PRINT "giant puffball";
|
||||
CASE nshade: PRINT "nightshade";
|
||||
CASE algore: PRINT "algore";
|
||||
CASE fern: PRINT "deathfern";
|
||||
CASE bfoot: PRINT "bigfoot";
|
||||
CASE wil: PRINT "willow";
|
||||
CASE raptor: PRINT "raptor";
|
||||
CASE leec: PRINT "leech";
|
||||
CASE mold: PRINT "slime mold";
|
||||
CASE gcrab: PRINT "giant crab";
|
||||
CASE bbeet: PRINT "bombadier beetle";
|
||||
CASE tick: PRINT "tick";
|
||||
CASE dweed: PRINT "dartweed";
|
||||
CASE gworm: PRINT "giant worm";
|
||||
CASE bogh: PRINT "bog horror";
|
||||
CASE chick: PRINT "chicken";
|
||||
CASE moth: PRINT "moth";
|
||||
CASE stink: PRINT "stinkbug";
|
||||
CASE hyena: PRINT "hyena";
|
||||
CASE fox: PRINT "fox";
|
||||
CASE gwasp: PRINT "giant wasp";
|
||||
CASE locust: PRINT "locust";
|
||||
CASE bunny: PRINT "bunny";
|
||||
CASE cact: PRINT "cactus";
|
||||
CASE kelp: PRINT "kelp";
|
||||
CASE sard: PRINT "sardine";
|
||||
CASE sgull: PRINT "seagull";
|
||||
CASE lobstr: PRINT "lobster";
|
||||
CASE urchin: PRINT "urchin";
|
||||
CASE squid: PRINT "squid";
|
||||
CASE rsnap: PRINT "red snapper";
|
||||
CASE octopus: PRINT "octopus";
|
||||
CASE jelly: PRINT "jellyfish";
|
||||
CASE webspid: PRINT "big hairy spider";
|
||||
CASE gill: PRINT "gilligan";
|
||||
CASE skip: PRINT "skipper";
|
||||
CASE prof: PRINT "professor";
|
||||
CASE ging: PRINT "ginger";
|
||||
CASE mary: PRINT "mary ann";
|
||||
CASE mrhow: PRINT "mr howell";
|
||||
CASE mrshow: PRINT "mrs howell";
|
||||
CASE herm: PRINT "herman";
|
||||
CASE lily: PRINT "lily";
|
||||
CASE gramp: PRINT "grandpa";
|
||||
CASE eddie: PRINT "eddie";
|
||||
CASE mara: PRINT "maralyn";
|
||||
CASE spot: PRINT "spot";
|
||||
CASE igor: PRINT "igor";
|
||||
CASE elvimp: PRINT "elvis impersonator";
|
||||
CASE elvis: PRINT "elvis";
|
||||
CASE buzz: PRINT "buzz aldrin";
|
||||
CASE zola: PRINT "zola bud";
|
||||
CASE mdeck: PRINT "mary decker";
|
||||
CASE ghart: PRINT "gary hart";
|
||||
CASE cubs: PRINT "chicago cub";
|
||||
CASE saddam: PRINT "saddam";
|
||||
CASE unk1: PRINT "unk1";
|
||||
CASE unk2: PRINT "unk2";
|
||||
CASE unk3: PRINT "unk3";
|
||||
CASE trump: PRINT "trump";
|
||||
CASE ivana: PRINT "ivana";
|
||||
CASE marla: PRINT "marla";
|
||||
CASE grinch: PRINT "grinch";
|
||||
CASE gdog: PRINT "grinch's dog";
|
||||
END SELECT
|
||||
|
||||
pse: a$ = INKEY$
|
||||
IF a$ = "" THEN GOTO pse ELSE IF a$ = "e" THEN GOTO fin
|
||||
WEND
|
||||
'NEXT
|
||||
fin: CLS
|
||||
COLOR 15: LOCATE 1, 64: PRINT USING "& creatures"; LTRIM$(STR$(numcre))
|
||||
COLOR 11: LOCATE 1, 1: PRINT "Move Rate"
|
||||
LOCATE 9, 1: PRINT "Defenses"
|
||||
LOCATE 1, 23: PRINT "Attacks :"
|
||||
LOCATE 3, 62: PRINT "Susceptibilities";
|
||||
COLOR 5
|
||||
FOR i = 0 TO 5: LOCATE 2 + i, 4: PRINT movcnt(i): NEXT
|
||||
COLOR 2
|
||||
FOR i = 0 TO 13: LOCATE 10 + i, 1: PRINT LTRIM$(STR$(defcnt(i))): NEXT
|
||||
COLOR 4
|
||||
FOR i = 1 TO 25: LOCATE i, 32
|
||||
IF i = 24 THEN i = 25 ELSE IF i = 25 THEN i = 26
|
||||
PRINT atkcnt(i); TAB(36); atk$(i);
|
||||
IF i = 25 THEN i = 24 ELSE IF i = 26 THEN i = 25
|
||||
NEXT
|
||||
FOR i = 0 TO 15: LOCATE i + 4, 61
|
||||
PRINT susccnt(i); TAB(65); sus$(i)
|
||||
NEXT
|
||||
COLOR 2
|
||||
LOCATE 10, 5: PRINT "1/3 from Kinetic"
|
||||
LOCATE 11, 5: PRINT "Acid"
|
||||
LOCATE 12, 5: PRINT "Electricity"
|
||||
LOCATE 13, 5: PRINT "Radiation"
|
||||
LOCATE 14, 5: PRINT "Heat"
|
||||
LOCATE 15, 5: PRINT "Cold"
|
||||
LOCATE 16, 5: PRINT "Lasers"
|
||||
LOCATE 17, 5: PRINT "Grow from heat/laser"
|
||||
LOCATE 18, 5: PRINT "Regenerate 1/turn"
|
||||
LOCATE 19, 5: PRINT "Mental Attacks"
|
||||
LOCATE 20, 5: PRINT "Poison"
|
||||
LOCATE 21, 5: PRINT "Regenerate 3/turn"
|
||||
LOCATE 22, 5: PRINT "Quills/shock for 1-4"
|
||||
LOCATE 23, 5: PRINT "Quills/shock for 1-10"
|
||||
COLOR 9
|
||||
|
||||
pse2: a$ = INKEY$
|
||||
IF a$ = "" THEN GOTO pse2
|
||||
|
||||
CLS
|
||||
FOR i = 1 TO 26
|
||||
FOR j = 0 TO 15
|
||||
LOCATE j + 1, i * 3 - 2: COLOR j, 0
|
||||
IF letters(i, 0) AND 2 ^ j THEN
|
||||
IF j = 0 THEN COLOR , 1
|
||||
PRINT CHR$(i + 64);
|
||||
ELSE
|
||||
PRINT ":"
|
||||
END IF
|
||||
NEXT
|
||||
NEXT
|
||||
FOR i = 1 TO 26
|
||||
FOR j = 0 TO 15
|
||||
LOCATE j + 1, i * 3 - 1: COLOR j, 0
|
||||
IF letters(i, 1) AND 2 ^ j THEN
|
||||
IF j = 0 THEN COLOR , 1
|
||||
PRINT CHR$(i + 96);
|
||||
ELSE
|
||||
PRINT ":"
|
||||
END IF
|
||||
NEXT
|
||||
NEXT
|
||||
END
|
||||
|
||||
FUNCTION exper! (n)
|
||||
SHARED hd, ac, mov, defense, susc, fc, rng(), str(), typ(), tohit()
|
||||
DIM sumstr AS SINGLE, sss AS SINGLE
|
||||
|
||||
acmult! = (15 - ac) / 8
|
||||
IF mov > 0 THEN movmult! = 2! - 1! / mov ELSE movmult! = .5
|
||||
|
||||
numdef = 0
|
||||
FOR i = 0 TO 13
|
||||
IF (defense AND 2 ^ i) THEN numdef = numdef + 1
|
||||
NEXT i
|
||||
IF (defense AND 1) THEN numdef = numdef + 2
|
||||
IF (defense AND 128) THEN numdef = numdef + 1
|
||||
IF (defense AND 2048) THEN numdef = numdef + 1
|
||||
IF (defense AND 8192) THEN numdef = numdef + 1
|
||||
defmult! = (4 + numdef) / 4
|
||||
IF fc = 0 THEN defmult! = defmult! * 1.5
|
||||
|
||||
numsus = 0
|
||||
FOR i = 0 TO 10
|
||||
IF (susc AND 2 ^ i) THEN numsus = numsus + 1
|
||||
NEXT i
|
||||
IF (susc AND 1) THEN numsus = numsus + 2
|
||||
IF (susc AND 512) THEN numsus = numsus + 1
|
||||
IF (susc AND -32768) THEN numsus = numsus + 2
|
||||
susmult! = 4 / (4 + numsus)
|
||||
|
||||
sumstr = 0
|
||||
FOR i = 1 TO 5
|
||||
IF rng(i) > 0 THEN
|
||||
SELECT CASE typ(i)
|
||||
CASE 17, 20, 21, 24: sss = 2
|
||||
CASE 13, 16, 22, 23: sss = str(i) / 3 + 2
|
||||
CASE 14, 26, 27: sss = 5
|
||||
CASE ELSE: sss = 2 * str(i) + 1
|
||||
END SELECT
|
||||
sss = sss * (2 - 2! / (1 + rng(i)))
|
||||
SELECT CASE typ(i)
|
||||
CASE 8, 13: sm! = (4 + tohit(i)) / 4!
|
||||
CASE 16, 22, 23, 27: sm! = (22 - tohit(i)) / 6!
|
||||
CASE 20, 12: sm! = (22 - tohit(i)) / 6!
|
||||
CASE ELSE
|
||||
SELECT CASE tohit(i)
|
||||
CASE IS > 18: sm! = 1
|
||||
CASE ELSE: sm! = (25 - tohit(i)) / 8!
|
||||
END SELECT
|
||||
END SELECT
|
||||
sumstr = sumstr + sss * sm!
|
||||
END IF
|
||||
NEXT i
|
||||
sumstr = sumstr * .75
|
||||
|
||||
ii = CSRLIN: jj = POS(0): LOCATE 1, 1
|
||||
PRINT USING "acmult:#.## movmult:#.## defmult:#.## susmult:#.## sumstr:##.##"; acmult!; movmult!; defmult!; susmult!; sumstr
|
||||
LOCATE ii, jj
|
||||
exper! = hd * acmult! * movmult! * defmult! * susmult! * sumstr
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION lev (n)
|
||||
SELECT CASE n
|
||||
CASE 1 TO ncreat
|
||||
lll = INT(n / 3.49)
|
||||
CASE 1 TO ncreat + crecas
|
||||
lll = (n - ncreat - 1)
|
||||
CASE 1 TO ncreat + crecas + crefor
|
||||
lll = (n - ncreat - crecas)
|
||||
CASE 1 TO ncreat + crecas + crefor + creswa
|
||||
lll = (n - ncreat - crecas - crefor)
|
||||
CASE 1 TO ncreat + crecas + crefor + creswa + crepla
|
||||
lll = (n - ncreat - crecas - crefor - creswa)
|
||||
CASE 1 TO ncreat + crecas + crefor + creswa + crepla + creh2o
|
||||
lll = (n - ncreat - crecas - crefor - creswa - crepla - 2) / 1.5
|
||||
END SELECT
|
||||
IF lll < 1 THEN lll = 1
|
||||
lev = lll
|
||||
END FUNCTION
|
||||
|
6
EXECOPY.BAT
Normal file
6
EXECOPY.BAT
Normal file
@ -0,0 +1,6 @@
|
||||
copy alphaman.exe a:
|
||||
copy alphaman.? a:
|
||||
copy alphaman.faq a:
|
||||
copy alphaman.spl a:
|
||||
copy readme.txt a:
|
||||
copy fixes.txt a:
|
67
FIXES.TXT
Normal file
67
FIXES.TXT
Normal file
@ -0,0 +1,67 @@
|
||||
Fixes made to AlphaMan:
|
||||
|
||||
Please send bug reports to
|
||||
Jeffrey Olson
|
||||
214 E. Sherwin Dr.
|
||||
Urbana, IL 61801
|
||||
76473.225@compuserve.com
|
||||
____________________________________________________________________
|
||||
|
||||
Version 1.1:
|
||||
|
||||
Game now remembers recent castle and lair levels, so remapping is no longer
|
||||
necessary. For example, most dropped items will still be there when
|
||||
character returns to a place already visited. Thanks to Tim Jordan for
|
||||
lighting a fire under me to finally get this done.
|
||||
Entering 'alphaman somename' from the DOS prompt will now generate a new
|
||||
character if the saved file 'somename.alf' doesn't exist. Thanks to
|
||||
Matthias Kring for the suggestion.
|
||||
Now separate "Halls of the Dead" for the different difficulty level.
|
||||
Now an experience bonus at the end of the game for each "subquest"
|
||||
successfully completed, an additional bonus if the game was won, and a
|
||||
further bonus if it was won in a short amount of time. Thanks to Tim
|
||||
Jordan for the idea.
|
||||
The Main Map key (F5) now shows regions where you've visited (useful for
|
||||
looking for Monoliths). Another Tim Jordan idea.
|
||||
A few new items - Flash Grenade, UV Helmet, Geiger Counter, Neutron Suit,
|
||||
Radar Detector.
|
||||
____________________________________________________________________
|
||||
|
||||
Version 1.03:
|
||||
|
||||
Fixed saved filename convention so the game no longer dies when trying to
|
||||
save games with character names that include odd characters like ?, /.
|
||||
Thanks to Tony Chang for pointing out the problem.
|
||||
____________________________________________________________________
|
||||
|
||||
Version 1.02:
|
||||
|
||||
Fixed a serious bug that could crash the game when you went from "very
|
||||
hungry" to "famished". Thanks to Carl Waldbieser for finding it.
|
||||
Modified the effects of a few mutations to make them more equally strong:
|
||||
Invisibility lasts somewhat longer.
|
||||
A character with Invisibility recovers from blindness 3x faster, since
|
||||
invisibility is described as "ability to bend light rays around you".
|
||||
Quills, when shot, hit more often and do more damage.
|
||||
A character with Heightened Endurance recovers from sickness 3x faster.
|
||||
Thanks to Gerry Kevin Wilson for many useful mutation suggestions.
|
||||
____________________________________________________________________
|
||||
|
||||
Version 1.01:
|
||||
|
||||
Fixed a bug that would very occasionally give a nonsense message when
|
||||
character gained a level.
|
||||
There is now significantly more food found randomly. Thanks to Chris
|
||||
DiRubio and others for the suggestion.
|
||||
Fixed superglue trap - before, when stuck in trap, there would be extra,
|
||||
annoying messages about falling blobs of glue.
|
||||
If your Tough Exoskeleton is quenched (by eating a berry, or a Vampire Bat,
|
||||
for example), your AC now goes to the proper value of 10 instead of 15.
|
||||
Added Easy and Moderately Easy levels of difficulty. Thanks to Dan Hayes
|
||||
for the suggestion.
|
||||
Added a Fast Fight mode that allows you to bypass most of the spacebar
|
||||
presses during combat. Not recommended for beginners who would miss some
|
||||
potentially useful information in the messages. Thanks to Dan Hayes for
|
||||
the suggestion.
|
||||
Made the Dung Beetle less nasty and annoying to a character who has passed
|
||||
out from exhaustion (no more 10 or 15 attacks in a row).
|
100
ITEMLIST
Normal file
100
ITEMLIST
Normal file
@ -0,0 +1,100 @@
|
||||
_Berries________
|
||||
Explode
|
||||
Radiate
|
||||
Provide Sustenance
|
||||
Refresh
|
||||
Poison
|
||||
Cure
|
||||
Cure Gobs
|
||||
Add/subtract experience
|
||||
Change Str, Dex, Con, RR, MR, Intl
|
||||
Speed up/Slow down
|
||||
Lower AC
|
||||
Intoxicate
|
||||
Increase Tech Ability
|
||||
Grow body part
|
||||
Quench mutation
|
||||
Heightened Awareness
|
||||
Blind
|
||||
Belch, etc
|
||||
Forgetfulness
|
||||
Scare
|
||||
Detoxify
|
||||
Rambify
|
||||
Make Invisible
|
||||
Teleport
|
||||
Put to sleep
|
||||
Clumsy-causing
|
||||
Regenerate
|
||||
Cause Attraction odor
|
||||
Create force fields
|
||||
|
||||
_Small_Tech_Devices________
|
||||
Flashlight Canister Grenade Boise Ashtray
|
||||
Backpack Neutrino " Sunglasses
|
||||
Gas Mask Incendiary " Toaster
|
||||
Medkit Psychosis " Cheese Grater
|
||||
Tape Recorder Gas " Bionic Spleen
|
||||
Power Pack Photon " Sony Watchman
|
||||
Chemical Analyzer Fission " Slinky
|
||||
VisiScope Vial of Acid Veg-O-Matic
|
||||
Tylenol Stun Grenade Kalediscope
|
||||
Tip O'Neill Mask Disintegration " Fountain Pen
|
||||
ServoBoots Lightning " Pocket Instamatic
|
||||
Salt Shaker Glue " Hammock
|
||||
Force Field Generator Fusion " Voodoo Doll
|
||||
Bionic Brain Implant Turbocharger
|
||||
Bionic Muscle Implant Chia Pet
|
||||
Skillet Cutting Torch Wristwatch
|
||||
Toilet Paper Staple Gun
|
||||
Sunscreen Shock Rod
|
||||
ID Card Shotgun
|
||||
Box of Flares Laser Pistol
|
||||
Mirror Phaser
|
||||
Mr. Misty Fusion Rifle
|
||||
Tricorder Tickle Feather Gun
|
||||
Hand Massager Weedeater
|
||||
Thermos of Coffee Missile Launcher
|
||||
Grenade Launcher Can of Raid
|
||||
Bottle of Brandy Flamethrower
|
||||
Microcomputer Light Sabre
|
||||
Tent Freeze Gun
|
||||
Box of Alka-seltzer Can of Mace
|
||||
MindWeb Generator Can of Mr. Clean
|
||||
Box of Cap'n Crunch Squirt Gun
|
||||
Motion Sensor Chainsaw
|
||||
Pepper Shaker Blaster
|
||||
Knife Sharpener Can of Silly String
|
||||
Bottle of ArmorAll Stun Gun
|
||||
|
||||
_Large_Tech_Items________
|
||||
Radiation Suit Cigarette Machine
|
||||
Thermal Suit Cabinet
|
||||
Reflective Suit Liposuction Device
|
||||
Hovercraft Still
|
||||
Computer Workstation Cyclotron
|
||||
Microwave oven Laser Printer
|
||||
Wetsuit Wide Screen TV
|
||||
Safe Prosthetic Leg
|
||||
Transmogrifier Dialysis Machine
|
||||
TK-5 AntiTank Gun Porta Potty
|
||||
Jetpack Sousaphone
|
||||
Golf Cart Kevorkian Machine
|
||||
Pogo Stick
|
||||
Cloaking Device
|
||||
Kayak
|
||||
Rubber Raft
|
||||
Home Movie Projector
|
||||
Camoflage Suit
|
||||
Pinstripe Suit
|
||||
Bulletproof Suit
|
||||
Repulsion Field Generator
|
||||
|
||||
_Special_Items________
|
||||
Skipper's Hat
|
||||
Borabora Serum
|
||||
Map
|
||||
Blue Suede Shoes
|
||||
Space Suit
|
||||
Roast Beast
|
||||
Bamboo Raft
|
576
ITEMS.BAS.txt
Normal file
576
ITEMS.BAS.txt
Normal file
@ -0,0 +1,576 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DECLARE FUNCTION kolr$ (i%)
|
||||
DECLARE SUB addlsd (k%)
|
||||
DECLARE FUNCTION berryeff$ (num%)
|
||||
DECLARE FUNCTION creatnam$ (typ%)
|
||||
DECLARE SUB addssd (k%)
|
||||
DECLARE FUNCTION jnk$ (num%, strt%, leng%)
|
||||
DECLARE SUB init ()
|
||||
DECLARE FUNCTION ssdnm$ (i%)
|
||||
DECLARE FUNCTION lsdnm$ (i%)
|
||||
DECLARE SUB addspecial (i%)
|
||||
DECLARE SUB addberry (i%)
|
||||
DECLARE SUB changeitems ()
|
||||
DECLARE SUB loadit ()
|
||||
DECLARE SUB saveit ()
|
||||
DEFINT A-Z
|
||||
|
||||
' $INCLUDE: 'alpha.dec'
|
||||
DIM SHARED sss(50, 20, 2), filin$
|
||||
RANDOMIZE TIMER
|
||||
COLOR 10, 1: CLS : LOCATE 3, 10: INPUT "Enter filename (.alf assumed) :", filin$
|
||||
filin$ = filin$ + ".alf"
|
||||
|
||||
init
|
||||
loadit
|
||||
changeitems
|
||||
saveit
|
||||
CLS
|
||||
END
|
||||
|
||||
SUB addberry (i)
|
||||
IF ngoody >= 20 THEN EXIT SUB ELSE ngoody = ngoody + 1
|
||||
goody(ngoody, 1) = 6 'type (berry)
|
||||
goody(ngoody, 2) = 1 'fatigue
|
||||
goody(ngoody, 3) = i 'type
|
||||
goody(ngoody, 4) = INT(RND * 6) + 1 'color
|
||||
goody(ngoody, 5) = 0 'berry
|
||||
goody(ngoody, 6) = INT(RND * 3) 'age
|
||||
goody(ngoody, 7) = 0
|
||||
goody(ngoody, 8) = 0
|
||||
goody(ngoody, 9) = 0
|
||||
goody(ngoody, 10) = 0
|
||||
goody(ngoody, 11) = 0
|
||||
gdy(ngoody) = kolr$(goody(ngoody, 4)) + berry$(i) + bl + jnk$(-2, 37, 5)
|
||||
knownb(i) = true
|
||||
LOCATE 23, 1: FOR j = 1 TO 11: PRINT goody(ngoody, j); : NEXT j
|
||||
END SUB
|
||||
|
||||
SUB addlsd (k)
|
||||
IF ngoody >= 20 THEN EXIT SUB ELSE ngoody = ngoody + 1
|
||||
|
||||
IF k = 8 THEN 'safe
|
||||
bad = false
|
||||
FOR i = 1 TO ngoody
|
||||
IF (ABS(goody(i, 1)) = 8) AND (goody(i, 11) = 8) THEN bad = true
|
||||
NEXT
|
||||
IF bad THEN k = nlsd + INT(RND * nltrash + 1) 'trash
|
||||
END IF
|
||||
|
||||
FOR j = 1 TO 12: goody(ngoody, j) = 0: NEXT
|
||||
goody(ngoody, 1) = 8
|
||||
FOR j = 1 TO 3: goody(ngoody, j + 1) = lsd(k, j): NEXT j
|
||||
LOCATE 22, 1: FOR j = 1 TO 11: PRINT goody(ngoody, j); : NEXT j
|
||||
num = goody(ngoody, 3)
|
||||
IF num > 0 THEN goody(ngoody, 3) = num - INT(RND * RND * num) ELSE goody(ngoody, 3) = -1
|
||||
lsdknown(k) = true: goody(ngoody, 10) = true
|
||||
goody(ngoody, 11) = k: gdy(ngoody) = lsdnm$(k)
|
||||
|
||||
IF (goody(ngoody, 1) = 8) AND (goody(ngoody, 11) = 8) AND (nsafe > 0) THEN goody(ngoody, 1) = -8
|
||||
LOCATE 23, 1: FOR j = 1 TO 11: PRINT goody(ngoody, j); : NEXT j
|
||||
END SUB
|
||||
|
||||
SUB addspecial (i)
|
||||
IF ngoody >= 20 THEN EXIT SUB ELSE ngoody = ngoody + 1
|
||||
|
||||
goody(ngoody, 1) = 9 'type (special)
|
||||
goody(ngoody, 2) = 1 'fatigue
|
||||
goody(ngoody, 3) = i 'type
|
||||
SELECT CASE i
|
||||
CASE 1: gdy(ngoody) = "Skipper's Hat"
|
||||
CASE 2: gdy(ngoody) = "Keptibora Serum"
|
||||
CASE 3: gdy(ngoody) = "Map"
|
||||
CASE 4: gdy(ngoody) = "Pair of Blue Suede Shoes"
|
||||
CASE 5: gdy(ngoody) = "Space Suit"
|
||||
CASE 6: gdy(ngoody) = "Can of Roast Beast"
|
||||
CASE 7: gdy(ngoody) = "Bamboo Raft"
|
||||
CASE 8: gdy(ngoody) = "Mets Hat"
|
||||
CASE 9: gdy(ngoody) = "Ivana Wig"
|
||||
END SELECT
|
||||
END SUB
|
||||
|
||||
SUB addssd (kk)
|
||||
k = ABS(kk)
|
||||
IF ngoody >= 20 THEN EXIT SUB ELSE ngoody = ngoody + 1
|
||||
|
||||
IF k = 2 THEN 'backpack
|
||||
bad = false
|
||||
FOR i = 1 TO ngoody
|
||||
IF (ABS(goody(i, 1)) = 7) AND (goody(i, 11) = 2) THEN bad = true
|
||||
NEXT
|
||||
FOR i = 1 TO nsafe
|
||||
IF safe(i, 1) = 7 AND safe(i, 11) = 2 THEN bad = true
|
||||
NEXT
|
||||
IF bad THEN k = nssd + ntechwep + INT(RND * nstrash + 1) 'trash
|
||||
END IF
|
||||
|
||||
FOR j = 1 TO 12: goody(ngoody, j) = 0: NEXT
|
||||
goody(ngoody, 1) = 7
|
||||
FOR i = 1 TO 8: goody(ngoody, i + 1) = ssd(k, i): NEXT i
|
||||
num = goody(ngoody, 3)
|
||||
IF num > 0 THEN goody(ngoody, 3) = num - INT(RND * RND * num) ELSE goody(ngoody, 3) = -1
|
||||
ssdknown(k) = true: goody(ngoody, 10) = true
|
||||
goody(ngoody, 11) = k
|
||||
gdy(ngoody) = ssdnm$(k)
|
||||
|
||||
SELECT CASE k
|
||||
CASE 19 'ID
|
||||
goody(ngoody, 5) = INT(RND * 3 + 1)
|
||||
IF kk < 0 THEN goody(ngoody, 5) = 4
|
||||
CASE nssd + ntechwep + 13 'voodoo
|
||||
typ = INT(RND * ncreat + creextra + 1): goody(ngoody, 5) = typ
|
||||
IF ssdknown(k) THEN gdy(ngoody) = creatnam$(typ) + bl + gdy(ngoody)
|
||||
IF LEFT$(UCASE$(gdy(ngoody)), 3) = "THE" THEN
|
||||
gdy(ngoody) = RIGHT$(gdy(ngoody), LEN(gdy(ngoody)) - 4)
|
||||
END IF
|
||||
CASE ELSE
|
||||
END SELECT
|
||||
|
||||
IF (goody(ngoody, 1) = 7) AND (goody(ngoody, 11) = 2) AND (npack > 0) THEN goody(ngoody, 1) = -7
|
||||
LOCATE 24, 1: FOR j = 1 TO 11: PRINT goody(ngoody, j); : NEXT j
|
||||
END SUB
|
||||
|
||||
FUNCTION berryeff$ (num)
|
||||
SELECT CASE num
|
||||
CASE 0: a$ = "turn you green"
|
||||
CASE 1: a$ = "exploding"
|
||||
CASE 2: a$ = "radiation"
|
||||
CASE 3: a$ = "satisfy hunger"
|
||||
CASE 4: a$ = "refresh"
|
||||
CASE 5: a$ = "poison"
|
||||
CASE 6: a$ = "cure light"
|
||||
CASE 7: a$ = "cure critical"
|
||||
CASE 8: a$ = "change experience"
|
||||
CASE 9: a$ = "change strength"
|
||||
CASE 10: a$ = "change dexterity"
|
||||
CASE 11: a$ = "change constitution"
|
||||
CASE 12: a$ = "change rad. resistance"
|
||||
CASE 13: a$ = "change ment. resistance"
|
||||
CASE 14: a$ = "change intelligence"
|
||||
CASE 15: a$ = "speed up/slow down"
|
||||
CASE 16: a$ = "toughen skin"
|
||||
CASE 17: a$ = "intoxicate"
|
||||
CASE 18: a$ = "increased brain talent"
|
||||
CASE 19: a$ = "grow body part"
|
||||
CASE 20: a$ = "quench/heighten mut."
|
||||
CASE 21: a$ = "enhanced detection"
|
||||
CASE 22: a$ = "blind"
|
||||
CASE 23: a$ = "burp-inducing"
|
||||
CASE 24: a$ = "forgetfulness"
|
||||
CASE 25: a$ = "frighten"
|
||||
CASE 26: a$ = "detoxify"
|
||||
CASE 27: a$ = "rambo"
|
||||
CASE 28: a$ = "invisibility"
|
||||
CASE 29: a$ = "teleport"
|
||||
CASE 30: a$ = "sleep inducing"
|
||||
CASE 31: a$ = "klutz inducing"
|
||||
CASE 32: a$ = "regeneration"
|
||||
CASE 33: a$ = "attraction odor"
|
||||
CASE 34: a$ = "force field"
|
||||
CASE 35: a$ = "acid"
|
||||
END SELECT
|
||||
berryeff$ = a$
|
||||
END FUNCTION
|
||||
|
||||
SUB changeitems
|
||||
COLOR 13, 1: CLS : LOCATE 10, 10
|
||||
n3 = nberry \ 3 + 1: COLOR 12, 1: CLS
|
||||
FOR i = 0 TO nberry
|
||||
LOCATE (i MOD n3) + 1, 1 + 27 * (i \ n3)
|
||||
PRINT RTRIM$(LTRIM$(STR$(i + 1))); ".";
|
||||
PRINT berryeff$(i)
|
||||
NEXT
|
||||
addber: IF ngoody = 20 THEN EXIT SUB
|
||||
LOCATE 21, 1: PRINT USING "You may add ## new items, maximum"; 20 - ngoody
|
||||
LOCATE 20, 1: PRINT SPACE$(79); : LOCATE 20, 1
|
||||
INPUT ; "Add which berry (press Enter to add none): ", num
|
||||
IF num >= 1 AND num <= nberry + 1 THEN
|
||||
addberry num - 1: IF ngoody < 20 GOTO addber
|
||||
END IF
|
||||
|
||||
n3 = (nssd + ntechwep + nstrash) \ 4 + 1: COLOR 14, 1: CLS
|
||||
FOR i = 1 TO nssd + ntechwep + nstrash
|
||||
LOCATE ((i - 1) MOD n3) + 1, 1 + 20 * ((i - 1) \ n3)
|
||||
PRINT RTRIM$(LTRIM$(STR$(i))); ".";
|
||||
PRINT LEFT$(ssdnm$(i), 15);
|
||||
NEXT
|
||||
addssd: IF ngoody = 20 THEN EXIT SUB
|
||||
LOCATE 25, 1: PRINT SPACE$(78); : LOCATE 25, 1
|
||||
INPUT ; "Add which small device? (press Enter to add none): ", num
|
||||
IF num >= 1 AND num <= nssd + ntechwep + nstrash THEN
|
||||
addssd num: IF ngoody < 20 GOTO addssd
|
||||
END IF
|
||||
|
||||
n3 = (nlsd + nltrash) \ 3 + 1: COLOR 11, 1: CLS
|
||||
FOR i = 1 TO nlsd + nltrash
|
||||
LOCATE ((i - 1) MOD n3) + 1, 1 + 27 * ((i - 1) \ n3)
|
||||
PRINT RTRIM$(LTRIM$(STR$(i))); ".";
|
||||
PRINT lsdnm$(i)
|
||||
NEXT
|
||||
addlsd: IF ngoody = 20 THEN EXIT SUB
|
||||
LOCATE 22, 1: PRINT SPACE$(78); : LOCATE 22, 1
|
||||
INPUT ; "Add which large device? (press Enter to add none): ", num
|
||||
IF num > 0 AND num <= nlsd + nltrash THEN
|
||||
addlsd num: IF ngoody < 20 GOTO addlsd
|
||||
END IF
|
||||
|
||||
COLOR 15, 1: CLS
|
||||
LOCATE 10, 10: INPUT "Add items to prepare to win game? ", yn$
|
||||
IF UCASE$(LEFT$(yn$, 1)) = "Y" THEN
|
||||
FOR i = 2 TO 6: addspecial i: NEXT i
|
||||
addssd -19
|
||||
END IF
|
||||
END SUB
|
||||
|
||||
FUNCTION creatnam$ (typ)
|
||||
IF typ < 1 THEN typ = 1
|
||||
IF typ = wimp AND wimpname$ <> "" THEN
|
||||
d$ = wimpname$
|
||||
ELSE
|
||||
OPEN "alphaman.2" FOR RANDOM AS #3 LEN = 50
|
||||
FIELD #3, 20 AS nm$, 30 AS dud$
|
||||
GET #3, typ: c$ = RTRIM$(LTRIM$(nm$)): d$ = SPACE$(20): CLOSE #3
|
||||
k = 1: stopit = false
|
||||
DO
|
||||
aa = ASC(MID$(c$, k, 1))
|
||||
IF aa = 242 THEN
|
||||
stopit = true
|
||||
ELSE
|
||||
aa = aa XOR k * 6: MID$(d$, k, 1) = CHR$(aa MOD 256)
|
||||
END IF
|
||||
k = k + 1
|
||||
LOOP UNTIL stopit OR (k = 21)
|
||||
END IF
|
||||
creatnam$ = RTRIM$(LTRIM$(d$))
|
||||
|
||||
END FUNCTION
|
||||
|
||||
SUB init
|
||||
CLOSE #2: OPEN "alphaman.3" FOR BINARY AS #2
|
||||
nstuff = nwep + nrwep + nsh + narm
|
||||
nstuff = nstuff + nssd + ntechwep + nstrash + nlsd + nltrash
|
||||
GET #2, 6 * nstuff - 1, i
|
||||
FOR i = 1 TO 10: FOR j = 1 TO 3: GET #2, , symb(i, j): NEXT j, i
|
||||
|
||||
FOR i = 1 TO nwep + nrwep: FOR j = 1 TO 6: GET #2, , wep(i, j): NEXT j, i
|
||||
|
||||
FOR i = 1 TO nsh: GET #2, , sh(i, 1): GET #2, , sh(i, 2): NEXT i
|
||||
|
||||
FOR i = 1 TO narm: GET #2, , arm(i, 1): GET #2, , arm(i, 2): NEXT i
|
||||
|
||||
FOR i = 1 TO nssd
|
||||
GET #2, , ssdtyp(i): FOR j = 1 TO 3: GET #2, , ssd(i, j): NEXT j
|
||||
GET #2, , ssd(i, 9)
|
||||
NEXT i
|
||||
FOR i = nssd + 1 TO nssd + ntechwep
|
||||
GET #2, , ssdtyp(i): FOR j = 1 TO 9: GET #2, , ssd(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = nssd + ntechwep + 1 TO nssd + ntechwep + nstrash
|
||||
GET #2, , ssdtyp(i): FOR j = 1 TO 3: GET #2, , ssd(i, j): NEXT j
|
||||
GET #2, , ssd(i, 9)
|
||||
NEXT i
|
||||
|
||||
FOR i = 1 TO nlsd + nltrash
|
||||
GET #2, , lsdtyp(i): FOR j = 1 TO 4: GET #2, , lsd(i, j): NEXT j
|
||||
NEXT i
|
||||
END SUB
|
||||
|
||||
FUNCTION jnk$ (num, strt, leng)
|
||||
IF num < -2 THEN num = -2 ELSE IF num > 420 THEN num = 420
|
||||
num = num + 2
|
||||
bbbb$ = SPACE$(68)
|
||||
OPEN "alphaman.1" FOR BINARY AS #3: GET #3, num * 68 + 1, bbbb$: CLOSE #3
|
||||
IF leng > 69 - strt THEN leng = 69 - strt
|
||||
junk$ = MID$(bbbb$, strt, leng)
|
||||
num = num - 2
|
||||
FOR i = 1 TO leng
|
||||
MID$(junk$, i, 1) = CHR$(ASC(MID$(junk$, i, 1)) XOR (ABS(17 * num + 31 * (i + strt - 1)) MOD 256))
|
||||
NEXT i
|
||||
jnk$ = junk$
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION kolr$ (i)
|
||||
SELECT CASE i
|
||||
CASE 1: b = 1: c = 4
|
||||
CASE 2: b = 5: c = 7
|
||||
CASE 3: b = 12: c = 7
|
||||
CASE 4: b = 19: c = 6
|
||||
CASE 5: b = 25: c = 5
|
||||
CASE ELSE: b = 30: c = 7
|
||||
END SELECT
|
||||
kolr$ = jnk$(-2, b, c)
|
||||
END FUNCTION
|
||||
|
||||
SUB loadit '=======================================================
|
||||
CLOSE #1
|
||||
OPEN filin$ FOR APPEND AS #1: CLOSE #1
|
||||
OPEN filin$ FOR INPUT AS #1
|
||||
IF EOF(1) THEN 'doesn't exist
|
||||
CLOSE #1: KILL filin$: PRINT "Doesn't exist"
|
||||
END
|
||||
END IF
|
||||
CLOSE #1
|
||||
OPEN filin$ FOR BINARY AS #1
|
||||
|
||||
GET #1, , vdate&
|
||||
IF vdate& <> versiondate THEN
|
||||
LOCATE 14, 20: PRINT "Incorrect version"; : END
|
||||
END IF
|
||||
|
||||
GET #1, , lll: name$ = SPACE$(lll): GET #1, , name$
|
||||
PRINT ".";
|
||||
GET #1, , ngoody: GET #1, , npack: GET #1, , ndropped: GET #1, , nsafe
|
||||
FOR i = 1 TO ngoody
|
||||
GET #1, , lll: gdy(i) = SPACE$(lll): GET #1, , gdy(i)
|
||||
NEXT i
|
||||
PRINT ".";
|
||||
FOR i = 1 TO npack
|
||||
GET #1, , lll: bakpak(i) = SPACE$(lll): GET #1, , bakpak(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO ndropped
|
||||
GET #1, , lll: drgdy(i) = SPACE$(lll): GET #1, , drgdy(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO nsafe
|
||||
GET #1, , lll: saf(i) = SPACE$(lll): GET #1, , saf(i)
|
||||
NEXT i
|
||||
FOR i = 0 TO 40: berry$(i) = SPACE$(6): GET #1, , berry$(i): NEXT i
|
||||
|
||||
FOR i = 1 TO ngoody
|
||||
FOR j = 1 TO 12: GET #1, , goody(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO npack
|
||||
FOR j = 1 TO 12: GET #1, , backpack(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO ndropped
|
||||
FOR j = 1 TO 16: GET #1, , drgoody(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO nsafe
|
||||
FOR j = 1 TO 12: GET #1, , safe(i, j): NEXT j
|
||||
NEXT i
|
||||
PRINT ".";
|
||||
GET #1, , nnear
|
||||
FOR i = 1 TO nnear
|
||||
FOR j = 1 TO 15: GET #1, , ncre(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 0 TO 40: GET #1, , berord(i): GET #1, , knownb(i): NEXT i
|
||||
PRINT ".";
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21: GET #1, , goodythere(i, j): NEXT j, i
|
||||
PRINT ".";
|
||||
FOR i = 0 TO 6: FOR j = -10 TO 10: GET #1, , goodycastle(i, j): NEXT j, i
|
||||
FOR i = 1 TO 20: FOR j = 1 TO 3: GET #1, , localgoody(i, j): NEXT j, i
|
||||
FOR i = 1 TO 10: FOR j = 1 TO 3: GET #1, , radzone(i, j): NEXT j, i
|
||||
FOR i = 1 TO 80: GET #1, , ssdknown(i): NEXT i
|
||||
FOR i = 1 TO 40: GET #1, , lsdknown(i): NEXT i
|
||||
FOR i = -10 TO 10: GET #1, , xstairs(i): NEXT i
|
||||
FOR i = -10 TO 10: GET #1, , ystairs(i): NEXT i
|
||||
FOR i = 1 TO 10: FOR j = 1 TO 3: GET #1, , monozone(i, j): NEXT j, i
|
||||
PRINT ".";
|
||||
GET #1, , str: GET #1, , stradd: GET #1, , dex: GET #1, , dexadd
|
||||
GET #1, , con: GET #1, , rr: GET #1, , mr: GET #1, , intl
|
||||
GET #1, , hitmax: GET #1, , hits: GET #1, , hunger: GET #1, , fatigue!
|
||||
GET #1, , expr&: GET #1, , lvl: GET #1, , pmut: GET #1, , mmut
|
||||
GET #1, , radsuit: GET #1, , heatsuit: GET #1, , reflecsuit
|
||||
GET #1, , flashlight: GET #1, , gasmask: GET #1, , sunglasses
|
||||
GET #1, , wetsuit: GET #1, , mask: GET #1, , boots
|
||||
GET #1, , pmutturns: GET #1, , mmutturns: GET #1, , inwater
|
||||
GET #1, , waterturns: GET #1, , inpit: GET #1, , zippy
|
||||
GET #1, , wpturns: GET #1, , seed!: GET #1, , vpage
|
||||
GET #1, , mainx: GET #1, , mainy: GET #1, , localx
|
||||
GET #1, , localy: GET #1, , terrain: GET #1, , terrf
|
||||
GET #1, , terrb: GET #1, , currsym: GET #1, , currf
|
||||
GET #1, , currb: GET #1, , ncastle: GET #1, , nruins
|
||||
GET #1, , castle: GET #1, , castlelevel: GET #1, , incastle
|
||||
GET #1, , dum
|
||||
GET #1, , lwall: GET #1, , rwall: GET #1, , twall: GET #1, , bwall
|
||||
GET #1, , lwscr: GET #1, , rwscr: GET #1, , twscr
|
||||
GET #1, , bwscr: GET #1, , dots: GET #1, , xenter
|
||||
GET #1, , yenter: GET #1, , xenterscr: GET #1, , yenterscr
|
||||
GET #1, , enterdir: GET #1, , bitit: GET #1, , berstr
|
||||
PRINT ".";
|
||||
GET #1, , berdex: GET #1, , bercon: GET #1, , berrr
|
||||
GET #1, , bermr: GET #1, , berintl
|
||||
GET #1, , berac: GET #1, , berpmut: GET #1, , bermmut
|
||||
GET #1, , berconfuse: GET #1, , berdet: GET #1, , berblind
|
||||
GET #1, , berhic: GET #1, , brandy: GET #1, , berscare
|
||||
GET #1, , strtox: GET #1, , dextox: GET #1, , contox
|
||||
GET #1, , berrambo: GET #1, , weather: GET #1, , wind
|
||||
GET #1, , gt!: GET #1, , rside: GET #1, , roachdef
|
||||
GET #1, , radint: GET #1, , armor: GET #1, , shield
|
||||
GET #1, , dark: GET #1, , grabbed: GET #1, , vehicle: GET #1, , confu
|
||||
GET #1, , hittox: GET #1, , asleep: GET #1, , sunscreen
|
||||
GET #1, , invisible: GET #1, , udder: GET #1, , flare
|
||||
GET #1, , coffee: GET #1, , tapenum: GET #1, , berfresh
|
||||
GET #1, , elvislevel: GET #1, , grinchlevel: GET #1, , grinchzone
|
||||
GET #1, , serum!: GET #1, , map: GET #1, , bsshoes
|
||||
GET #1, , spacesuit: GET #1, , bergreen: GET #1, , berklutz
|
||||
GET #1, , klutzdex: GET #1, , berregen: GET #1, , beryum
|
||||
GET #1, , camosuit: GET #1, , pinsuit: GET #1, , notoxin
|
||||
GET #1, , other2hitc: GET #1, , other2hitr: GET #1, , otherdam
|
||||
GET #1, , tapeworm: GET #1, , turbo!: GET #1, , bulletsuit
|
||||
GET #1, , xmono: GET #1, , ymono: GET #1, , mononum
|
||||
GET #1, , inweb: GET #1, , ffgen: GET #1, , inglue
|
||||
GET #1, , inbog: GET #1, , insand: GET #1, , hail
|
||||
GET #1, , tent: GET #1, , berff: GET #1, , berhpmut: GET #1, , berhmmut
|
||||
GET #1, , tentgrab: GET #1, , metshat: GET #1, , grinchstole
|
||||
GET #1, , mindweb: GET #1, , repulse: GET #1, , ripehrs
|
||||
GET #1, , spore: GET #1, , answer: GET #1, , skinac
|
||||
GET #1, , starting: GET #1, , difficulty: GET #1, , finishedcastles
|
||||
GET #1, , uvhelmet: GET #1, , neutronsuit
|
||||
FOR i = 1 TO 4: GET #1, , dum: NEXT
|
||||
PRINT ".";
|
||||
n$ = bl
|
||||
GET #1, , l: ber$ = SPACE$(l): FOR j = 1 TO l: GET #1, , n$: MID$(ber$, j, 1) = n$: NEXT j
|
||||
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21
|
||||
GET #1, , sss(i - 1, j - 1, 1)
|
||||
NEXT j, i
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21
|
||||
GET #1, , sss(i - 1, j - 1, 2)
|
||||
NEXT j, i
|
||||
|
||||
CLOSE #1
|
||||
END SUB
|
||||
|
||||
FUNCTION lsdnm$ (i)
|
||||
place = 6 * (nwep + nrwep + nsh + narm + nssd + ntechwep + nstrash + i) - 5
|
||||
GET #2, place, a: GET #2, , b: GET #2, , c
|
||||
lsdnm$ = jnk$(a, b, c)
|
||||
END FUNCTION
|
||||
|
||||
SUB saveit '==============================================================
|
||||
CLOSE #1
|
||||
OPEN filin$ FOR BINARY AS #1
|
||||
|
||||
vdate& = versiondate: PUT #1, , vdate&
|
||||
|
||||
lll = LEN(name$): PUT #1, , lll: PUT #1, , name$
|
||||
PUT #1, , ngoody: PUT #1, , npack: PUT #1, , ndropped: PUT #1, , nsafe
|
||||
FOR i = 1 TO ngoody
|
||||
lll = LEN(gdy(i)): PUT #1, , lll: PUT #1, , gdy(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO npack
|
||||
lll = LEN(bakpak(i)): PUT #1, , lll: PUT #1, , bakpak(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO ndropped
|
||||
lll = LEN(drgdy(i)): PUT #1, , lll: PUT #1, , drgdy(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO nsafe
|
||||
lll = LEN(saf(i)): PUT #1, , lll: PUT #1, , saf(i)
|
||||
NEXT i
|
||||
FOR i = 0 TO nberry: PUT #1, , berry$(i): NEXT i
|
||||
FOR i = 1 + nberry TO 40: PUT #1, , berry$(nberry): NEXT i
|
||||
|
||||
FOR i = 1 TO ngoody
|
||||
IF goody(i, 1) = 9 AND goody(i, 3) = 9 THEN goody(i, 4) = 3
|
||||
FOR j = 1 TO 12: PUT #1, , goody(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO npack
|
||||
FOR j = 1 TO 12: PUT #1, , backpack(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO ndropped
|
||||
FOR j = 1 TO 16: PUT #1, , drgoody(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO nsafe
|
||||
FOR j = 1 TO 12: PUT #1, , safe(i, j): NEXT j
|
||||
NEXT i
|
||||
PUT #1, , nnear
|
||||
FOR i = 1 TO nnear: FOR j = 1 TO 15: PUT #1, , ncre(i, j): NEXT j, i
|
||||
FOR i = 0 TO 40: PUT #1, , berord(i): PUT #1, , knownb(i): NEXT i
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21: PUT #1, , goodythere(i, j): NEXT j, i
|
||||
FOR i = 0 TO 6: FOR j = -10 TO 10: PUT #1, , goodycastle(i, j): NEXT j, i
|
||||
FOR i = 1 TO 20: FOR j = 1 TO 3: PUT #1, , localgoody(i, j): NEXT j, i
|
||||
FOR i = 1 TO 10: FOR j = 1 TO 3: PUT #1, , radzone(i, j): NEXT j, i
|
||||
FOR i = 1 TO 80: PUT #1, , ssdknown(i): NEXT i
|
||||
FOR i = 1 TO 40: PUT #1, , lsdknown(i): NEXT i
|
||||
FOR i = -10 TO 10: PUT #1, , xstairs(i): NEXT i
|
||||
FOR i = -10 TO 10: PUT #1, , ystairs(i): NEXT i
|
||||
FOR i = 1 TO 10: FOR j = 1 TO 3: PUT #1, , monozone(i, j): NEXT j, i
|
||||
PUT #1, , str: PUT #1, , stradd: PUT #1, , dex: PUT #1, , dexadd
|
||||
PUT #1, , con: PUT #1, , rr: PUT #1, , mr: PUT #1, , intl
|
||||
PUT #1, , hitmax: PUT #1, , hits: PUT #1, , hunger: PUT #1, , fatigue!
|
||||
PUT #1, , expr&: PUT #1, , lvl: PUT #1, , pmut: PUT #1, , mmut
|
||||
PUT #1, , radsuit: PUT #1, , heatsuit: PUT #1, , reflecsuit
|
||||
PUT #1, , flashlight: PUT #1, , gasmask: PUT #1, , sunglasses
|
||||
PUT #1, , wetsuit: PUT #1, , mask: PUT #1, , boots
|
||||
PUT #1, , pmutturns: PUT #1, , mmutturns: PUT #1, , inwater
|
||||
PUT #1, , waterturns: PUT #1, , inpit: PUT #1, , zippy
|
||||
PUT #1, , wpturns: PUT #1, , seed!: PUT #1, , vpage
|
||||
PUT #1, , mainx: PUT #1, , mainy: PUT #1, , localx
|
||||
PUT #1, , localy: PUT #1, , terrain: PUT #1, , terrf
|
||||
PUT #1, , terrb: PUT #1, , currsym: PUT #1, , currf
|
||||
PUT #1, , currb: PUT #1, , ncastle: PUT #1, , nruins
|
||||
PUT #1, , castle: PUT #1, , castlelevel: PUT #1, , incastle
|
||||
PUT #1, , dum
|
||||
PUT #1, , lwall: PUT #1, , rwall: PUT #1, , twall: PUT #1, , bwall
|
||||
PUT #1, , lwscr: PUT #1, , rwscr: PUT #1, , twscr
|
||||
PUT #1, , bwscr: PUT #1, , dots: PUT #1, , xenter
|
||||
PUT #1, , yenter: PUT #1, , xenterscr: PUT #1, , yenterscr
|
||||
PUT #1, , enterdir: PUT #1, , bitit: PUT #1, , berstr
|
||||
PUT #1, , berdex: PUT #1, , bercon: PUT #1, , berrr
|
||||
PUT #1, , bermr: PUT #1, , berintl
|
||||
PUT #1, , berac: PUT #1, , berpmut: PUT #1, , bermmut
|
||||
PUT #1, , berconfuse: PUT #1, , berdet: PUT #1, , berblind
|
||||
PUT #1, , berhic: PUT #1, , brandy: PUT #1, , berscare
|
||||
PUT #1, , strtox: PUT #1, , dextox: PUT #1, , contox
|
||||
PUT #1, , berrambo: PUT #1, , weather: PUT #1, , wind
|
||||
PUT #1, , gt!: PUT #1, , rside: PUT #1, , roachdef
|
||||
PUT #1, , radint: PUT #1, , armor: PUT #1, , shield
|
||||
PUT #1, , dark: PUT #1, , grabbed: PUT #1, , vehicle: PUT #1, , confu
|
||||
PUT #1, , hittox: PUT #1, , asleep: PUT #1, , sunscreen
|
||||
PUT #1, , invisible: PUT #1, , udder: PUT #1, , flare
|
||||
PUT #1, , coffee: PUT #1, , tapenum: PUT #1, , berfresh
|
||||
PUT #1, , elvislevel: PUT #1, , grinchlevel: PUT #1, , grinchzone
|
||||
PUT #1, , serum!: PUT #1, , map: PUT #1, , bsshoes
|
||||
PUT #1, , spacesuit: PUT #1, , bergreen: PUT #1, , berklutz
|
||||
PUT #1, , klutzdex: PUT #1, , berregen: PUT #1, , beryum
|
||||
PUT #1, , camosuit: PUT #1, , pinsuit: PUT #1, , notoxin
|
||||
PUT #1, , other2hitc: PUT #1, , other2hitr: PUT #1, , otherdam
|
||||
PUT #1, , tapeworm: PUT #1, , turbo!: PUT #1, , bulletsuit
|
||||
PUT #1, , xmono: PUT #1, , ymono: PUT #1, , mononum
|
||||
PUT #1, , inweb: PUT #1, , ffgen: PUT #1, , inglue
|
||||
PUT #1, , inbog: PUT #1, , insand: PUT #1, , hail
|
||||
PUT #1, , tent: PUT #1, , berff: PUT #1, , berhpmut: PUT #1, , berhmmut
|
||||
PUT #1, , tentgrab: PUT #1, , metshat: PUT #1, , grinchstole
|
||||
PUT #1, , mindweb: PUT #1, , repulse: PUT #1, , ripehrs
|
||||
PUT #1, , spore: PUT #1, , answer: PUT #1, , skinac
|
||||
PUT #1, , starting: PUT #1, , difficulty: PUT #1, , finishedcastles
|
||||
PUT #1, , uvhelmet: PUT #1, , neutronsuit
|
||||
FOR i = 1 TO 4: PUT #1, , dum: NEXT
|
||||
lll = LEN(ber$): PUT #1, , lll: PUT #1, , ber$
|
||||
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21
|
||||
PUT #1, , sss(i - 1, j - 1, 1)
|
||||
NEXT j, i
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21
|
||||
PUT #1, , sss(i - 1, j - 1, 2)
|
||||
NEXT j, i
|
||||
|
||||
CLOSE #1
|
||||
|
||||
END SUB
|
||||
|
||||
FUNCTION ssdnm$ (i)
|
||||
place = 6 * (nwep + nrwep + nsh + narm + i) - 5
|
||||
GET #2, place, a: GET #2, , b: GET #2, , c
|
||||
ssdnm$ = jnk$(a, b, c)
|
||||
END FUNCTION
|
||||
|
20
LICENSE
Normal file
20
LICENSE
Normal file
@ -0,0 +1,20 @@
|
||||
Copyright (c) 1995 Jeffrey R. Olson
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
4
LNK.BAT
Normal file
4
LNK.BAT
Normal file
@ -0,0 +1,4 @@
|
||||
\qc25\bin\qlink /CP:1 /f /packc /noe /ex /st:10000 a1+a2+a3+a4+a5+a6+a7+a8+alpclib;
|
||||
del alphaman.exe
|
||||
rename a1.exe alphaman.exe
|
||||
dir a*.exe
|
265
MAZ.BAS.txt
Normal file
265
MAZ.BAS.txt
Normal file
@ -0,0 +1,265 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DECLARE SUB SetLengths ()
|
||||
DECLARE SUB fillin ()
|
||||
DECLARE SUB pause ()
|
||||
DECLARE SUB putx (x%, y%)
|
||||
DECLARE SUB maz ()
|
||||
DECLARE SUB drawwall ()
|
||||
DECLARE FUNCTION Roll% (x%)
|
||||
|
||||
CONST false = 0, true = NOT false
|
||||
CONST Xaxis = 400, Yaxis = 400
|
||||
CONST CellsWide = 24, CellsTall = 9
|
||||
CONST maxcycles = 2, tpx = .4, tpy = .4
|
||||
|
||||
DIM SHARED WallsToDraw AS INTEGER, MostX%, MostY%, CycleMostX%, CycleMostY%
|
||||
DIM SHARED walls(CellsWide, CellsTall) AS INTEGER
|
||||
DIM SHARED xwid AS INTEGER, ywid AS INTEGER
|
||||
DIM SHARED scrn(52, 22) AS INTEGER
|
||||
|
||||
CLS : RANDOMIZE TIMER: t1! = TIMER
|
||||
|
||||
|
||||
FOR k% = 1 TO 1
|
||||
xwid = 0
|
||||
WHILE ywid * xwid < 8
|
||||
xwid = Roll(4) + 2
|
||||
ywid = 1 + Roll(2)
|
||||
WEND
|
||||
ii% = 9 + Roll(6) - xwid / 2
|
||||
jj% = 3 + Roll(3) - ywid / 2
|
||||
|
||||
ERASE walls
|
||||
|
||||
COLOR 8
|
||||
FOR i% = 3 TO CellsWide * 2 + 1
|
||||
FOR j% = 3 TO CellsTall * 2 + 1
|
||||
'LOCATE j%, i%: PRINT CHR$(250);
|
||||
scrn(i%, j%) = 250
|
||||
NEXT j%
|
||||
NEXT i%
|
||||
COLOR 9
|
||||
|
||||
FOR c% = 0 TO CellsWide
|
||||
walls(c%, 0) = 1
|
||||
putx 2 * c% + 2, 2
|
||||
IF c% < CellsWide THEN putx 2 * c% + 3, 2
|
||||
walls(c%, CellsTall) = 1
|
||||
putx 2 * c% + 2, 2 * CellsTall + 2
|
||||
IF c% < CellsWide THEN putx 2 * c% + 3, 2 * CellsTall + 2
|
||||
NEXT
|
||||
FOR c% = 0 TO CellsTall
|
||||
walls(0, c%) = 1:
|
||||
putx 2, 2 * c% + 2
|
||||
IF c% < CellsTall THEN putx 2, 2 * c% + 3
|
||||
walls(CellsWide, c%) = 1
|
||||
putx 2 * CellsWide + 2, 2 * c% + 2
|
||||
IF c% < CellsTall THEN putx 2 * CellsWide + 2, 2 * c% + 3
|
||||
NEXT
|
||||
FOR x% = 4 TO CellsWide * 2 STEP 2
|
||||
FOR y% = 4 TO CellsTall * 2 STEP 2
|
||||
'LOCATE y%, x%: PRINT CHR$(219);
|
||||
scrn(x%, y%) = 219
|
||||
NEXT y%
|
||||
NEXT x%
|
||||
|
||||
FOR i% = ii% TO ii% + xwid: FOR j% = jj% TO jj% + ywid: walls(i%, j%) = 1: NEXT j%, i%
|
||||
FOR x% = 2 * ii% + 2 TO 2 * (ii% + xwid) + 2
|
||||
FOR y% = 2 * jj% + 2 TO 2 * (jj% + ywid) + 2
|
||||
'LOCATE y%, x%: PRINT CHR$(219);
|
||||
scrn(x%, y%) = 219
|
||||
NEXT y%
|
||||
NEXT x%
|
||||
COLOR 8
|
||||
FOR x% = 2 * ii% + 3 TO 2 * (ii% + xwid) + 1
|
||||
FOR y% = 2 * jj% + 3 TO 2 * (jj% + ywid) + 1
|
||||
'LOCATE y%, x%: PRINT CHR$(250);
|
||||
scrn(x%, y%) = 250
|
||||
NEXT y%
|
||||
NEXT x%
|
||||
|
||||
COLOR 9: maz: COLOR 8
|
||||
SELECT CASE Roll(4)
|
||||
CASE 1: x% = ii%: y% = jj% + Roll(ywid)
|
||||
'LOCATE 2 * y% + 1, 2 * x% + 2: PRINT CHR$(250)
|
||||
scrn(2 * x% + 2, 2 * y% + 1) = 250
|
||||
CASE 2: x% = ii% + xwid: y% = jj% + Roll(ywid)
|
||||
'LOCATE 2 * y% + 1, 2 * x% + 2: PRINT CHR$(250)
|
||||
scrn(2 * x% + 2, 2 * y% + 1) = 250
|
||||
CASE 3: x% = ii% + Roll(xwid): y% = jj%
|
||||
'LOCATE 2 * y% + 2, 2 * x% + 1: PRINT CHR$(250)
|
||||
scrn(2 * x% + 1, 2 * y% + 2) = 250
|
||||
CASE 4: x% = ii% + Roll(xwid): y% = jj% + ywid
|
||||
'LOCATE 2 * y% + 2, 2 * x% + 1: PRINT CHR$(250)
|
||||
scrn(2 * x% + 1, 2 * y% + 2) = 250
|
||||
END SELECT
|
||||
FOR i% = 1 TO 51: FOR j% = 1 TO 21
|
||||
LOCATE j%, i%: PRINT CHR$(scrn(i%, j%));
|
||||
NEXT j%, i%
|
||||
t1! = TIMER
|
||||
FOR zz% = 1 TO 30: SetLengths: NEXT
|
||||
NEXT k%
|
||||
'LOCATE 22, 2: PRINT USING "Time to generate one maze:#.###"; (TIMER - t1!) / 30
|
||||
LOCATE 22, 2: PRINT USING "Time to do one path-search:#.###"; (TIMER - t1!) / 30
|
||||
|
||||
END
|
||||
|
||||
SUB drawwall
|
||||
FOR Which% = 1 TO 0 STEP -1
|
||||
Direc% = Roll(4)
|
||||
InitMostX% = MostX%: InitMostY% = MostY%
|
||||
WHILE (walls(MostX%, MostY%) = Which%)
|
||||
SELECT CASE Direc%
|
||||
CASE 1: MostX% = MostX% - 1
|
||||
CASE 2: MostY% = MostY% + 1
|
||||
CASE 3: MostX% = MostX% + 1
|
||||
CASE 4: MostY% = MostY% - 1
|
||||
END SELECT
|
||||
IF ((MostX% < 0) OR (MostX% > CellsWide) OR (MostY% < 0) OR (MostY% > CellsTall)) THEN
|
||||
IF Direc% = 4 THEN Direc% = 1 ELSE Direc% = Direc% + 1
|
||||
MostX% = InitMostX%
|
||||
MostY% = InitMostY%
|
||||
END IF
|
||||
WEND
|
||||
NEXT
|
||||
SELECT CASE Direc%
|
||||
CASE IS = 1: LastDirec% = 3
|
||||
CASE IS = 2: LastDirec% = 4
|
||||
CASE IS = 3: LastDirec% = 1
|
||||
CASE IS = 4: LastDirec% = 2
|
||||
END SELECT
|
||||
LastX% = MostX%: LastY% = MostY%
|
||||
DeadEndReached% = false
|
||||
DO
|
||||
Cycles% = 0
|
||||
KeepLooking% = true
|
||||
DO
|
||||
Cycles% = Cycles% + 1
|
||||
NewX% = LastX%
|
||||
NewY% = LastY%
|
||||
Direc% = LastDirec%
|
||||
IF Direc% = 1 OR Direc% = 3 THEN tp! = tpx ELSE tp! = tpy
|
||||
IF RND < tp! THEN Turn% = (Roll(3) - 2) ELSE Turn% = 0
|
||||
Direc% = Direc% + Turn%
|
||||
IF Direc% > 4 THEN Direc% = 1
|
||||
IF Direc% < 1 THEN Direc% = 4
|
||||
SELECT CASE Direc%
|
||||
CASE IS = 1: NewX% = LastX% - 1 'up
|
||||
CASE IS = 2: NewY% = LastY% + 1 'right
|
||||
CASE IS = 3: NewX% = LastX% + 1 'down
|
||||
CASE IS = 4: NewY% = LastY% - 1 'left
|
||||
END SELECT
|
||||
IF Cycles% < maxcycles THEN
|
||||
IF ((NewX% >= CellsWide) OR (NewX% <= 0) OR (NewY% >= CellsTall) OR (NewY% <= 0)) THEN
|
||||
KeepLooking% = true
|
||||
ELSE
|
||||
IF walls(NewX%, NewY%) = 0 THEN KeepLooking% = false
|
||||
END IF
|
||||
ELSE
|
||||
KeepLooking% = false
|
||||
END IF
|
||||
LOOP WHILE (KeepLooking%)
|
||||
IF Cycles% < maxcycles THEN
|
||||
putx LastX% + NewX% + 2, LastY% + NewY% + 2': pause
|
||||
walls(NewX%, NewY%) = 1
|
||||
WallsToDraw = WallsToDraw - 1
|
||||
LastX% = NewX%: LastY% = NewY%
|
||||
LastDirec% = Direc%
|
||||
DeadEndReached% = false
|
||||
ELSE
|
||||
DeadEndReached% = true
|
||||
END IF
|
||||
LOOP WHILE (DeadEndReached% = false)
|
||||
END SUB
|
||||
|
||||
SUB maz
|
||||
WallsToDraw = (CellsTall - 1) * (CellsWide - 1) - ((xwid - 1) * (ywid - 1) + 2 * (xwid + ywid))
|
||||
|
||||
PartWallsToDraw% = WallsToDraw * .3
|
||||
WHILE (WallsToDraw > PartWallsToDraw%)
|
||||
DO
|
||||
MostX% = Roll(CellsWide): MostY% = Roll(CellsTall)
|
||||
LOOP WHILE (walls(MostX%, MostY%) = 1)
|
||||
drawwall
|
||||
WEND
|
||||
CyclicMostX% = 1: CyclicMostY% = 1
|
||||
WHILE (WallsToDraw > 0)
|
||||
DO
|
||||
CyclicMostY% = CyclicMostY% + 1
|
||||
IF CyclicMostY% = CellsTall THEN
|
||||
CyclicMostY% = 1
|
||||
CyclicMostX% = CyclicMostX% + 1
|
||||
IF CyclicMostX% = CellsWide THEN CyclicMostX% = 1
|
||||
END IF
|
||||
LOOP WHILE (walls(CyclicMostX%, CyclicMostY%) = 1)
|
||||
MostX% = CyclicMostX%: MostY% = CyclicMostY%
|
||||
drawwall
|
||||
WEND
|
||||
END SUB
|
||||
|
||||
SUB pause
|
||||
WHILE INKEY$ = "": WEND
|
||||
END SUB
|
||||
|
||||
SUB putx (x%, y%)
|
||||
'LOCATE y%, x%: PRINT CHR$(219);
|
||||
scrn(x%, y%) = 219
|
||||
END SUB
|
||||
|
||||
FUNCTION Roll% (x%)
|
||||
Roll = INT(RND * x%) + 1
|
||||
END FUNCTION
|
||||
|
||||
DEFINT A-Z
|
||||
SUB SetLengths
|
||||
DIM dis(52, 22)
|
||||
FOR i = 1 TO 52: FOR j = 1 TO 22: dis(i, j) = 100: NEXT j, i
|
||||
ready = false
|
||||
WHILE NOT ready
|
||||
xstart = Roll(51): ystart = Roll(21)
|
||||
IF scrn(xstart, ystart) = 250 THEN ready = true
|
||||
WEND
|
||||
dis(xstart, ystart) = 0
|
||||
FOR dist = 1 TO 20
|
||||
xbeg = xstart - dist: IF xbeg < 1 THEN xbeg = 1
|
||||
xend = xstart + dist: IF xend > 51 THEN xend = 51
|
||||
FOR x = xbeg TO xend
|
||||
ybeg = ystart - dist: IF ybeg < 1 THEN ybeg = 1
|
||||
yend = ystart + dist: IF yend > 21 THEN yend = 21
|
||||
FOR y = ybeg TO yend
|
||||
FOR dx = -1 TO 1: FOR dy = -1 TO 1
|
||||
IF (dis(x, y) = 100) AND (scrn(x, y) = 250) THEN
|
||||
IF dis(x + dx, y + dy) = dist - 1 THEN
|
||||
dis(x, y) = dist
|
||||
LOCATE y, x: PRINT CHR$(dis(x, y) + 48);
|
||||
EXIT FOR
|
||||
END IF
|
||||
END IF
|
||||
NEXT dy, dx
|
||||
NEXT y
|
||||
NEXT x
|
||||
NEXT dist
|
||||
' FOR i% = 1 TO 51: FOR j% = 1 TO 21
|
||||
' IF scrn(i%, j%) = 250 THEN LOCATE j%, i%: PRINT CHR$(dis(i%, j%) + 48);
|
||||
' NEXT j%, i%
|
||||
END SUB
|
||||
|
2
MAZCOM.BAT
Normal file
2
MAZCOM.BAT
Normal file
@ -0,0 +1,2 @@
|
||||
bc maz /o /s;
|
||||
\qc25\bin\qlink /CP:1 /f /packc /noe /ex maz;
|
BIN
MODAM6.BAS
Normal file
BIN
MODAM6.BAS
Normal file
Binary file not shown.
328
MODAM6.BAS.txt
Normal file
328
MODAM6.BAS.txt
Normal file
@ -0,0 +1,328 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DECLARE SUB modam6 ()
|
||||
CALL modam6
|
||||
END
|
||||
|
||||
SUB modam6
|
||||
CONST max = 294
|
||||
DIM j(1 TO max) AS STRING * 74
|
||||
j(1) = "A Lava Lamp will help illuminate during darkness"
|
||||
j(2) = "A Backpack can hold up to 10 reasonably-sized items"
|
||||
j(3) = "A Gas Mask will protect completely from poison gas"
|
||||
j(4) = "A Medkit will restore some lost hit points and poison damage"
|
||||
j(5) = "Tape Recorders reveal a variety of information about your mission"
|
||||
j(6) = "Power Packs recharge devices which require energy"
|
||||
j(7) = "Chemical Analyzers reveal the potential effects of unknown berries"
|
||||
j(8) = "A VisiScope allows you to see long distances"
|
||||
j(9) = "Tylenol can restore lost hit points"
|
||||
j(10) = "A Tip O'Neill mask will frighten creatures away when worn"
|
||||
j(11) = "ServoBoots greatly reduce the effects of encumberance"
|
||||
j(12) = "An Answering Machine will occasionally receive messages"
|
||||
j(13) = "A Force Field Generator will help protect you from attacks"
|
||||
j(14) = "A Bionic Cranium Implant can raise your Mental Resistance & Intelligence"
|
||||
j(15) = "A Bionic Muscle Implant can raise your Strength and Dexterity"
|
||||
j(16) = "Duct Tape can incapitate creatures, and repair damaged armor and suits"
|
||||
j(17) = "Toilet Paper is an effective weapon against Dung Beetles and Seagulls"
|
||||
j(18) = "Sunscreen provides some protection against laser attacks"
|
||||
j(19) = "An ID Card will unlock most locked doors, and can deactivate some robots"
|
||||
j(20) = "Flares will illuminate the outdoors when dark, but cause damage indoors"
|
||||
j(21) = "A Mirror can be used to reflect laser attacks"
|
||||
j(22) = "A Mr. Misty provides nourishment, and also is an effective freeze grenade"
|
||||
j(23) = "A Tricorder will map castles and lairs, and can reveal creature specifics"
|
||||
j(24) = "A Hand Massager will reduce fatigue"
|
||||
j(25) = "Coffee will boost your constitution temporarily, and can keep you awake"
|
||||
j(26) = "A Grenade Launcher can fire grenades and berries accurately at long range"
|
||||
j(27) = "Brandy will boost your strength temporarily, but may make you sleepy"
|
||||
j(28) = "A Microcomputer can reveal a variety of useful information"
|
||||
j(29) = "A Breathalyzer will reveal your blood alcohol content"
|
||||
j(30) = "Alza-seltzer relieves sickness, and can get rid of tapeworms"
|
||||
j(31) = "A MindWeb Generator will protect you from mental attacks"
|
||||
j(32) = "Cap'n Crunch gives you a sugar high and speeds you up temporarily"
|
||||
j(33) = "A Motion Sensor will reveal the location of invisible creatures"
|
||||
j(34) = "A Pencil Sharpener can sharpen pointy weapons so they are more effective"
|
||||
j(35) = "A Knife Sharpener can sharpen blade weapons so they are more effective"
|
||||
j(36) = "ArmorAll will restore armor to pristine condition, and may even improve it"
|
||||
j(37) = "A UV Helmet helps greatly when searching for hidden things"
|
||||
j(38) = "A Geiger Counter reveals nearby radiation zones outdoors, or traps indoors"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(39) = "A Cannister Grenade inflicts modest shrapnel damage (kinetic damage type)."
|
||||
j(40) = "A Neutrino Grenade inflicts moderate damage."
|
||||
j(41) = "An Incendiary Grenade inflicts moderate heat damage."
|
||||
j(42) = "A Psychosis Grenade inflicts variable mental-type damage."
|
||||
j(43) = "A Gas Grenade inflicts poison damage and leaves poisonous gas."
|
||||
j(44) = "A Photon Grenade inflicts tremendous laser-type damage."
|
||||
j(45) = "A Fission Grenade inflicts substantial radiation damage."
|
||||
j(46) = "A Vial of Acid inflicts modest damage."
|
||||
j(47) = "A Stun Grenade paralyzes and inflicts minor damage in a large area."
|
||||
j(48) = "A Disintegration Grenade is lethal to almost everything."
|
||||
j(49) = "A Lightning Grenade inflicts modest electrical damage in a large area."
|
||||
j(50) = "A Glue Grenade will imobilize anything in its sizable blast area."
|
||||
j(51) = "A Fusion Grenade inflicts tremendous damage in a large area."
|
||||
j(52) = "A Flash Grenade can blind everything in a large area."
|
||||
|
||||
j(53) = "A Blowtorch does moderate heat damage."
|
||||
j(54) = "A Staple Gun does minimal kinetic damage."
|
||||
j(55) = "A Shock Rod does modest electrical damage."
|
||||
j(56) = "A Shotgun does substantial kinetic damage."
|
||||
j(57) = "A Laser Pistol does substantial laser damage."
|
||||
j(58) = "A Phaser can stun (putting enemy to sleep) or kill (doing heat damage)."
|
||||
j(59) = "A Fusion Rifle does substantial radiation damage."
|
||||
j(60) = "A Tickle Feather Gun (from the UnderDog show) inflicts tremendous damage."
|
||||
j(61) = "A Weedeater is effective against plants."
|
||||
j(62) = "A Missile Launcher does substantial damage in a large blast area."
|
||||
j(63) = "Raid is particularly effective against insects."
|
||||
j(64) = "A Flamethrower does substantial heat damage in line with the target."
|
||||
j(65) = "A Light Sabre inflicts moderate laser-type damage."
|
||||
j(66) = "A Freeze Gun does substantial cold damage in line with the target."
|
||||
j(67) = "A Can of Mace does modest poison damage and makes the target flee."
|
||||
j(68) = "Mr. Clean is especially effective against slimes, molds, etc."
|
||||
j(69) = "A Squirt Gun does minimal damage except against Fire Ants, Phoenixes, etc."
|
||||
j(70) = "A Chainsaw inflicts horrible wounds."
|
||||
j(71) = "A Blaster can fire many shots at a time, inflicting modest heat damage."
|
||||
j(72) = "Silly String will immobilize a target."
|
||||
j(73) = "A Stun Gun will paralyze a target."
|
||||
j(74) = "A Salt Shaker can be a grenade, but is only useful on Slugs-like things."
|
||||
j(75) = "A Pepper Shaker can be a grenade, and makes targets sneeze."
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(76) = "A Boise Souvenir Ashtray is useless"
|
||||
j(77) = "Sunglasses protect against blindness & give added influence over robots"
|
||||
j(78) = "A Toaster is useless"
|
||||
j(79) = "A Cheese Grater is useless"
|
||||
j(80) = "A Bionic Spleen Implant can raise your Constitution & Radiation Resistance"
|
||||
j(81) = "A Sony Watchman can map levels in some of the special castles"
|
||||
j(82) = "A Slinky is useless"
|
||||
j(83) = "A Veg-O-Matic can injure nearby creatures, especially edible ones"
|
||||
j(84) = "A Kalediscope is useless"
|
||||
j(85) = "A Fountain Pen is useless"
|
||||
j(86) = "The flash from a Pocket Instamatic can blind creatures that see it"
|
||||
j(87) = "A Hammock will put you to sleep immediately"
|
||||
j(88) = "A Voodoo Doll will kill all nearby creatures of a specific type"
|
||||
j(89) = "A Turbocharger will speed up any vehical"
|
||||
j(90) = "A Chia Pet is useless"
|
||||
j(91) = "A Wrist Watch will tell you how much time remains to complete your mission"
|
||||
j(92) = "A Radar Gun will reveal how fast a creature can move"
|
||||
j(93) = "A Radar Detector is useless"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(94) = "A Radiation Suit will reduce the damage caused by radiation"
|
||||
j(95) = "A Thermal Suit will reduce the damage caused by heat and cold"
|
||||
j(96) = "A Reflective Suit will reduce the damage caused by lasers"
|
||||
j(97) = "A Hovercraft provides very fast transportation over any terrain"
|
||||
j(98) = "A Computer Workstation can reveal a plethota of useful information"
|
||||
j(99) = "A Microwave Oven can prematurely ripen berries, and makes food tastier"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(100) = "A Wetsuit allows water movement, and will reduce acid and shock damage"
|
||||
j(101) = "A Safe will protect up to 10 items, and can be left outside of castles"
|
||||
j(102) = "A Transmogrifier will polymorph creatures, and can change berry types"
|
||||
j(103) = "A TK-5 AntiTank Gun is an extremely effective long-range weapon"
|
||||
j(104) = "A Jetpack gives rapid movement for short periods of time"
|
||||
j(105) = "A Golf Cart provides transportation at a faster pace than walking"
|
||||
j(106) = "A Pogo Stick provides an alternative form of transportation"
|
||||
j(107) = "A Cloaking Device renders you temporarily invisible"
|
||||
j(108) = "A Kayak can be used to move through water"
|
||||
j(109) = "A Rubber Raft can be used to move through water"
|
||||
j(110) = "A Home Movie Projector will put creatures to sleep"
|
||||
j(111) = "A Camoflage Suit makes you somewhat harder to detect"
|
||||
j(112) = "A Pinstripe Suit gives added influence over robots when an ID card is used"
|
||||
j(113) = "A Bulletproof Suit lowers your AC and reduces damage from kinetic attacks"
|
||||
j(114) = "A Repulsion Generator will prevent creatures from moving next to you"
|
||||
j(115) = "A Displacer allows you to teleport over short distances"
|
||||
j(116) = "A Jackhammer can blast through walls, and is an effective weapon"
|
||||
j(117) = "A Tent will allow you to sleep in relative safety outdoors at night"
|
||||
j(118) = "A Neutron Suit irradiates nearby critters each turn but hurts you somewhat"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(119) = "A Cigarette Machine is useless"
|
||||
j(120) = "A Cabinet is useless"
|
||||
j(121) = "A Liposuction Device will remove an udder"
|
||||
j(122) = "A Still will distill berries to nectar, and nectar to extract"
|
||||
j(123) = "A Cyclotron just might win you the Nobel Prize in physics"
|
||||
j(124) = "A Laser Printer is useless"
|
||||
j(125) = "A Wide Screen TV can map levels in some of the special castles"
|
||||
j(126) = "A Prosthetic Leg is useless"
|
||||
j(127) = "A Dialysis Machine will cure you and remove poison effects, tapeworms, etc"
|
||||
j(128) = "A Porta-Potty is useless"
|
||||
j(129) = "A Sousaphone can make critters stand still, run away, become confused, etc"
|
||||
j(130) = "A Kevorkian Machine is useless"
|
||||
j(131) = "A Leafblower is useless"
|
||||
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(150) = "The color of a berry reveals its degree of ripeness. The six colors"
|
||||
j(151) = "a berry can have are red, orange, yellow, green, blue, and purple,"
|
||||
j(152) = "in increasing order of ripeness. Berries which are more ripe are"
|
||||
j(153) = "more potent, and will have effects which last longer. For example,"
|
||||
j(154) = "purple exploding berries do much more damage than orange ones, and"
|
||||
j(155) = "forcefields created by blue berries last longer than those created"
|
||||
j(156) = "by red ones. In addition, if a berry can have either a good or bad"
|
||||
j(157) = "effect, the ripe berries are more likely to cause the good effects."
|
||||
j(158) = "Thus, a blue berry that alters speed tends to speed you up, while a"
|
||||
j(159) = "red one is likely to slow you down. Berries that alter your stats"
|
||||
j(160) = "are particularly important examples of this, wherein red and purple"
|
||||
j(161) = "ones change your stats permanantly, purple usually raising, and red"
|
||||
j(162) = "usually lowering; the effect of the orange-blue ones is temporary."
|
||||
j(163) = "Berries will ripen with time; using X(amine) can be illuminating."
|
||||
|
||||
j(164) = "This is the Grinch, a crazed psychotic intent upon destroying the"
|
||||
j(165) = "world. He has obtained a deadly toxin capable of eradicating all"
|
||||
j(166) = "life and intends to release it at noon on September 8th, just a week"
|
||||
j(167) = "away. He lives in a castle hidden within a radiation zone. Your"
|
||||
j(168) = "mission, should you choose to accept it, is to stop the Grinch and"
|
||||
j(169) = "destroy his nerve toxin. This tape will self-destruct in 5 seconds."
|
||||
|
||||
j(170) = "Here is the first castle you should infiltrate, the secret hideout"
|
||||
j(171) = "of Elvis, thought by some to be dead for many years. He is an agent"
|
||||
j(172) = "like you who holds for you a secret device you'll need to cross the"
|
||||
j(173) = "bottomless chasm. Be wary of counterspies, "
|
||||
|
||||
j(174) = "This is the second stronghold you must visit, 1313 Mockingbird Lane."
|
||||
j(175) = "You must retrieve a map showing the location of the Grinch's castle."
|
||||
j(176) = "The map is known to be guarded by Grampa, a dangerous enemy who will"
|
||||
j(177) = "require special measures to neutralize. Good luck, "
|
||||
|
||||
j(178) = "Here is the third castle you should visit, the castaways' fortress."
|
||||
j(179) = "Here the impervious Gilligan holds an anti-viral serum you will need"
|
||||
j(180) = "to ward off the effects of the Grinch's nerve toxin. It isn't known"
|
||||
j(181) = "what forces, if any, Gilligan is susceptible to. Consult the lore of"
|
||||
j(182) = "the computer if you can. This tape will self-destruct in 5 seconds."
|
||||
|
||||
j(183) = "This is the fourth castle you should visit, the Trump Castle. Held"
|
||||
j(184) = "within, in the posession of the Trump King, is the only surviving"
|
||||
j(185) = "Presidential ID Card, which you will need to gain access to the"
|
||||
j(186) = "Grinch's stronghold. This tape will self-destruct in 5 seconds."
|
||||
|
||||
j(187) = "Here is the final castle you should attempt to infiltrate, the"
|
||||
j(188) = "castle of Those Who Came In Second. The cult leader, Buzz Aldrin,"
|
||||
j(189) = "has a space suit necessary to ward off the powerful radiation which"
|
||||
j(190) = "protects the Grinch. This tape will self-destruct in 5 seconds."
|
||||
|
||||
j(191) = "This is the Grinch's stronghold, hidden in a radiation zone and"
|
||||
j(192) = "protected by nerve toxin. It's locked and encircled by a bottomless"
|
||||
j(193) = "chasm. The Grinch is tremendously powerful and psychotic. He may"
|
||||
j(194) = "have a weakness, however. Be careful, "
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
|
||||
j(195) = " Congratulations! You have successfully completed AlphaMan!"
|
||||
j(196) = "Now would be an excellent time to register this software. By doing this,"
|
||||
j(197) = "you will help support the ShareWare concept which allows users to try out"
|
||||
j(198) = "software before paying for it. You will also help to support the author"
|
||||
j(199) = "financially, allowing him to continue to create new products."
|
||||
j(200) = "Anyone sending $15 or more will receive the most recent version, and will"
|
||||
j(201) = "receive notification of updates (which will include lots of new features)."
|
||||
j(202) = "Updates will cost just $4 to cover shipping and handling, but will be free"
|
||||
j(203) = "if serious bugs are found. You will also receive answers to any questions."
|
||||
j(204) = "Send check, disk type and version number (shown on opening screen) to:"
|
||||
j(205) = "Jeffrey R. Olson, 214 E. Sherwin Dr., Urbana, IL 61801"
|
||||
j(206) = "Please send any suggestions, comments or bugs to the above address, even"
|
||||
j(207) = "if you don't intend to register your copy. The author will consider all"
|
||||
j(208) = "ideas for incorporation into the game, will credit you if an idea is used,"
|
||||
j(209) = "and guarantees a response if you include a self-addresed stamped envelope."
|
||||
j(210) = " Please distribute this game widely."
|
||||
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(211) = "Weapons, armor and shields are of varying effectiveness depending on the"
|
||||
j(212) = "type and condition of the item. Specifics such as the base damage done,"
|
||||
j(213) = "base armor class provided, etc, of specific items can be obtained using a"
|
||||
j(214) = "computer. Using 'X'(amine) will reveal the condition an item:"
|
||||
j(215) = " Weapons may have bonuses to hit and/or to damage; for example, a +1 to"
|
||||
j(216) = "hit dagger will hit more often than a normal dagger, and a -1 damage flail"
|
||||
j(217) = "will do less damage than a normal flail."
|
||||
j(218) = " Armor and shields can sustain a varying number of 'damaging' attacks"
|
||||
j(219) = "before they are destroyed, and may have modifiers to the defense that they"
|
||||
j(220) = "provide; for example, a +1 shield protects better, while -1 armor protects"
|
||||
j(221) = "worse than average for that specific type of shield or armor."
|
||||
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(222) = "Jeffrey Olson is a member of the Association of Shareware Professionals"
|
||||
j(223) = "(ASP). ASP wants to make sure that the shareware principle works for you."
|
||||
j(224) = "If you are unable to resolve a shareware-related problem with an ASP"
|
||||
j(225) = "member by contacting the member directly, ASP may be able to help. The"
|
||||
j(226) = "ASP Ombudsman can help you resolve a dispute or problem with an ASP member"
|
||||
j(227) = "but does not provide technical support for members' products. Please write"
|
||||
j(228) = "to the ASP Ombudsman at 545 Grover Road, Muskegon, MI 49442-9427 USA"
|
||||
j(229) = "FAX 616-788-2765 or send a CompuServe message via CompuServe Mail to:"
|
||||
j(230) = "ASP Ombudsman 70007,3536."
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(231) = "Exploding berries are effective grenades with a blast radius of 1 square."
|
||||
j(232) = "Radiating berries are effective grenades with a blast radius of 1 square."
|
||||
j(233) = "These berries provide significant nourishment, and can make critters burp."
|
||||
j(234) = "Refresh berries make you well-rested and temporarily help keep you rested."
|
||||
j(235) = "Poison berries can be thrown to do poison damage if they hit a critter."
|
||||
j(236) = "Curing berries will restore some hit points, and some reduced by poison."
|
||||
j(237) = "These berries are like normal curing berries, only more potent."
|
||||
j(238) = "These berries will add or subtract experience points depending on color."
|
||||
j(239) = "Strength-altering berries raise or lower strength, depending on color."
|
||||
j(240) = "Dexterity-altering berries raise or lower dexterity, depending on color."
|
||||
j(241) = "Constitution-altering berries raise or lower CON, depending on color."
|
||||
j(242) = "Radiation Resistance-altering berries modify RR, depending on color."
|
||||
j(243) = "Mental Resistance-altering berries modify MR, depending on color."
|
||||
j(244) = "Intelligence-altering berries modify intelligence, depending on color."
|
||||
j(245) = "Speed-altering berries will make you fast or slow, depending on color."
|
||||
j(246) = "Berries that toughen skin will permanantly lower your armor class."
|
||||
j(247) = "Intoxicating berries will confuse you if eaten, or a critter if thrown."
|
||||
j(248) = "Cleverness berries make you better at figuring out and using tech devices."
|
||||
j(249) = "Berries which add body parts are generally useless except for nourishment."
|
||||
j(250) = "These berries quench or heighten a mutation, depending on color."
|
||||
j(251) = "These berries help you see invisible things, and will map a castle level."
|
||||
j(252) = "These berries will blind you if eaten, but work on critters if thrown."
|
||||
j(253) = "These berries make you burp or sneeze, but work on critters if thrown."
|
||||
j(254) = "These berries make you forget things but will confuse creatures if thrown."
|
||||
j(255) = "These berries will frighten critters away temporarily."
|
||||
j(256) = "Detoxifying berries will remove the lingering adverse effects of poisons."
|
||||
j(257) = "These berries give you a Rambo complex, making you strong but dumb."
|
||||
j(258) = "These berries will make you temporarily invisible."
|
||||
j(259) = "Teleport berries randomly teleport you, and work on critters too."
|
||||
j(260) = "Relax berries will put you or a creature to sleep."
|
||||
j(261) = "Klutz berries will make you extremely clumsy, but work on critters too."
|
||||
j(262) = "While regenerating, you regain lost hit points much faster."
|
||||
j(263) = "These berries give you an odor that attracts creatures."
|
||||
j(264) = "While protected by a forcefield, you'll sustain reduced damage."
|
||||
j(265) = "These berries are effective weapons if thrown."
|
||||
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(280) = "You are an agent who must use all available means to save the world from"
|
||||
j(281) = "disaster. These means include arms and armor, technological items you can"
|
||||
j(282) = "find and figure out, mutated berries which bestow special powers and your"
|
||||
j(283) = "own mutations. You can learn your mission by using a Tape Recorder which"
|
||||
j(284) = "can be found nearby at the start of the game. See the file README.TXT for"
|
||||
j(285) = "additional information regarding AlphaMan. Press '?' at any time to see"
|
||||
j(286) = "a list of commands or for context-sensitive help."
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76
|
||||
j(287) = "You can 'u'se most items in the game. If you use a weapon, shield or armor"
|
||||
j(288) = "it will be in use until it is destroyed or you 'U'nuse it (that is, it's"
|
||||
j(289) = "not necessary to use one repeatedly). You can also use most tech devices"
|
||||
j(290) = "after you've figured them out (some will stay in use until Unused, such as"
|
||||
j(291) = "a Radiation Suit or Lava Lamp), although you throw grenades. You must eat"
|
||||
j(292) = "Spam, Beef-a-Roni, and most berries. You also use many mutations, such as"
|
||||
j(293) = "Laser Generation or Hypnosis. Some mutations, however, such as Heightened"
|
||||
j(294) = "Dexterity or Military Genius, are constantly in use."
|
||||
|
||||
OPEN "alphaman.6" FOR BINARY AS #1: CLS
|
||||
OPEN "items.txt" FOR OUTPUT AS #2
|
||||
FOR i = 1 TO max
|
||||
PRINT #2, RTRIM$(j(i))
|
||||
FOR k = 1 TO 74
|
||||
MID$(j(i), k, 1) = CHR$(ASC(MID$(j(i), k, 1)) XOR (ABS(i * 17 + k * 31) MOD 256))
|
||||
NEXT k
|
||||
PUT #1, , j(i): LOCATE 1, 1: PRINT i;
|
||||
NEXT i
|
||||
CLOSE
|
||||
END SUB
|
||||
|
BIN
MODJNK.BAS
Normal file
BIN
MODJNK.BAS
Normal file
Binary file not shown.
503
MODJNK.BAS.txt
Normal file
503
MODJNK.BAS.txt
Normal file
@ -0,0 +1,503 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DECLARE SUB modify ()
|
||||
modify
|
||||
END
|
||||
|
||||
SUB modify
|
||||
DIM j(-2 TO 420) AS STRING * 68
|
||||
j(-2) = "red orange yellow green blue purple berry object devicelarge pit"
|
||||
j(-1) = "mental resistanceintelligencehas no effect toughens your skin grew!"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
'-------------------------------------------------------------------------
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(0) = "strengthdexterityconstitutionradiation resistanceI Dream of Jeannie"
|
||||
j(1) = "You've found a can of Beef-a-RoniSpamMain MapGenerating terrainClub"
|
||||
j(2) = "You return to normal speedYou feel sober againcan of cans of some a "
|
||||
j(3) = "Strike any key ...You have been killed by alphaman.scr Shieldsmall "
|
||||
j(4) = "Strength :Dexterity :Constitution :Radiation Resistance :DaggerMace"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(5) = "Mental Resistance :Intelligence :hits out ofArmor Class :Pitchfork"
|
||||
j(6) = "Hunger :Encumberance :Fatigue :Experience :Level :experienceextract"
|
||||
j(7) = "Drop what (Esc to exit) ?You have to 'U'nuse your armor first nectar"
|
||||
j(8) = "Eat what (Esc to exit) ?Yuck! Not even my uncle could eat that! *"
|
||||
j(9) = "Hey, isn't such bad stuff!Mmm. Tasty stuff!Good eatin'You feel ill"
|
||||
'-------------------------------------------------------------------------
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(10) = "Theexplodes in your face!eating an exploding berryradiation Your : "
|
||||
j(11) = "blasts you with radiation!makes you feel sickmuch betterkilled by "
|
||||
j(12) = "tastes greatrefreshes youeating a poison berrylethaltoxicBoom!Flail"
|
||||
j(13) = "makes you more skillfullowersraiseslessdrunkclever returns to normal"
|
||||
j(14) = "speeds you upslows down You are now level another inch on your nose"
|
||||
j(15) = "another buttocklobes on your pancreashornsYou grow turnedShort Sword"
|
||||
j(16) = "a big eyebrow across your foreheada fairly cumbersome uddergiggle"
|
||||
j(17) = "quenches your a weak heart blinds you!burphiccupcoughaaaChoooyawn"
|
||||
j(18) = "Figure out what (Esc to exit) ?You wield or throw your Super!Dart"
|
||||
j(19) = "Spam is a pink canned meat that tastes great glazedTitanium Dagger"
|
||||
j(20) = "Beef-a-Roni is a macaroni meal in a canYou wear your for protection"
|
||||
j(21) = "s come in handy for deflecting attacksYou can't quite figure it out"
|
||||
j(22) = "Most berries are eaten for their interesting effectsI can't do that."
|
||||
j(23) = "You've already identified your BloatedVery FullHungryFamishedArrow"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(24) = "You've figured it out. It's a You make some progress on itSorry "
|
||||
j(25) = "Starvingof starvationNonVery LightModerateVery HeavyOverloadedhail"
|
||||
j(26) = "Dead TiredWell RestedPoopedExhaustedG. Gordan LiddyJohn Mitchell+-=+"
|
||||
j(27) = "Welcome to AlphaMan, the New BeginningCreated by Jeffrey OlsonFound "
|
||||
j(28) = " Assisted by Peter Jessop Enter your character's name : Please wait"
|
||||
j(29) = "Tricky DickSpiro AgnewJeb McGruderJohn EhrlichmanBob HaldermanBolt"
|
||||
j(30) = "You've killed You deserve a pat on the back!Groovy!Bitchin' !Spear"
|
||||
j(31) = "Hip hip hurray!Gee that's swell!Good for you!I say, smashing job!"
|
||||
j(32) = "Like, totally gnarly!The Quayle appearsNow you're in for it!explode"
|
||||
j(33) = "The Gas Spore explodes!an exploding Gas SporeOuch! Those darts hurt."
|
||||
j(34) = "Your went up!You are now level went down!turning wimpy bathesEnd ?"
|
||||
j(35) = "Strike space bar to continue ...Known small tech devices :Duh..."
|
||||
j(36) = "Known berries :Known large tech devices :And even more! against+-=++"
|
||||
j(37) = "Main mapRadiation ZoneCastlesLocal MapInside Castle in radiation"
|
||||
j(38) = "nuked shriveled ate away fried destroyed zapped froze offHand Axe"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(39) = "sucked away tickled off lopped off his nose!an ear!an eye!an arm!"
|
||||
j(40) = "He looks like french fries now!Something bad happenedTitanium Sword"
|
||||
j(41) = "BumCivDinEroFezGooHumJamKroLinMarNefPorQuaRawShuTinVorWamXerYumZiz"
|
||||
j(42) = "alybumcasdumflegleganhamjumlasloomaynupnooporraysumtarvexwogyamzay"
|
||||
j(43) = "Use arrow keys to indicate targetInvalid keystrokeBeyond rangeregion"
|
||||
j(44) = "Hit Enter when ready or Esc to exit Beyond the edge of the world+-=+"
|
||||
j(45) = "Thick ForestLight WoodsPlainsMarshSwampLakeCastleNoneInside Ruins"
|
||||
j(46) = "That's terribly, terribly wrong. Try again.Gads! It got all tangled"
|
||||
j(47) = "You already see that regionYour vision isn't quite that good.Halberd"
|
||||
j(48) = "You are in a valley in the post-holocaust ruins ofYou're outside now"
|
||||
j(49) = "Central New York. Mutants rule the world.This looks like the end..."
|
||||
j(50) = "Bad creatureGood for you!You hitYou missedRead my lips :plummeting"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(51) = "You couldn't hit the broad side of a barn!It went off! Ouch!injured"
|
||||
j(52) = "You could probably still hit Ctrl-Alt-Del entwined youOof! You fell!"
|
||||
j(53) = " bit you bit and clawed you hit you with darts You're indoors!"
|
||||
j(54) = " irradiated youPorta-Potty poisoned you hit you with a jet of acid"
|
||||
j(55) = " hit you with a laser assaulted your brain shocked you burnt you"
|
||||
j(56) = " froze you constricted you leeched some of your hits stole missed"
|
||||
j(57) = " tickled you mercilesslyYou can't carry anything else of damage+-=++"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(58) = "You made it out of the water!Your beef jerky is a complete loss.+-=+"
|
||||
j(59) = "Local TerrainYou'll go off the edge of the world!You are drowning!"
|
||||
j(60) = "You shouldn't have gotten in over your head!Stairs upStairs downHole"
|
||||
j(61) = "has killed to AC,Herman Munster is green tooYou diced your hand!+-=+"
|
||||
j(62) = "S(hort) or L(ong) range (Esc to exit)?(long range can be risky)+-=++"
|
||||
j(63) = "Local RegionOuch! You ended up inside a tree!teleporting into a tree"
|
||||
j(64) = "You don't feel so good yourself.Throw what (Esc to exit) ?Lawn Dart"
|
||||
j(65) = "UnUse what (Esc to exit) ?You're not currently using thatradiate+-=+"
|
||||
j(66) = "No longer using your No longer wearing your That doesn't make sense"
|
||||
j(67) = "You weren't using your force fieldYour force field is now offacidify"
|
||||
j(68) = "You're already using thatOne usually eats thatNow using your Kaboom!"
|
||||
j(69) = "You're already wearing armorNow wearing your You have to waitblasted"
|
||||
j(70) = " more turnsYou are constantly using that mutationYour attack made"
|
||||
j(71) = "Your sonic blast has injured Your laser missed grow!giving up.ALF"
|
||||
j(72) = "You have to pick a living being to attackYour laser has injured you!"
|
||||
j(73) = "Your mental blastThe explosionYour mental attack has no effect is "
|
||||
j(74) = "It will take turns to totally heal.Your force field is already ona "
|
||||
j(75) = "How many turns will you sit motionless ?Your force field is now on "
|
||||
j(76) = "Your molecular disruption has killed Your life leech has injured "
|
||||
j(77) = "You haven't figured that out yetNothing happensYour cryogenicsBravo!"
|
||||
j(78) = "you feel betterextra-strength tylenolOne must throw grenadesMr. Ed"
|
||||
j(79) = "Great shot!It seems uninjuredSmoking is bad for youa cheese grater"
|
||||
j(80) = "You're now wearing your sunglassesYou need breadQuit now? point1. "
|
||||
j(81) = "You scraped your knuckle!All you get is a rerun of Continuing game"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(82) = "You pass out you're so tiredThere's already something thereOutasite!"
|
||||
j(83) = "Your forcefield blocked% of the damageYour shock injuredLong Sword"
|
||||
j(84) = "Ruins level Castle level Grinch's PadYou can't get out of the water!"
|
||||
j(85) = " gobbles the You'll need to take that off first splatters into jam"
|
||||
j(86) = "Too bad you're fresh out of toastIt seems unaffectedYow! That smarts"
|
||||
j(87) = "You broke it!Hall of the DeadHe bursts into flames! makes you scarey"
|
||||
j(88) = "What a foul smell!You're wearing sunglasses!You're wearing a mask!"
|
||||
j(89) = "What did the Skipper do with his hat?The Flying Nun pit!Titanium Axe"
|
||||
j(90) = "You fell in a pit!falling in a pitAn arrow hit you!an arrowa dart2. "
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(91) = "A dart hit you!Acid fell on you!acidFire engulfed you!firea laser up"
|
||||
j(92) = "A laser beam hit you!A shock zapped you!electricityYou got radiated!"
|
||||
j(93) = "Done LoadingYour armor is destroyeddamagedshieldNot yet implemented"
|
||||
j(94) = "Your tenticles injuredYour tenticles killeda Mets hatdorky-looking"
|
||||
j(95) = "Now you're in deep doodoo!You were warned to abandon all hope!Sticky!"
|
||||
j(96) = "m (ental) usep (hysical) useMcHale's NavyThe Beverly Hillbillies+-=+"
|
||||
j(97) = "Lorena and Tonya's Weapon and Armor Emporiumcorrodedimmobilized+-=++"
|
||||
j(98) = "Clinton Health Care FacilityWhere you won't get what you need, but"
|
||||
j(99) = "you don't have to pay for it until April 15Would you like Stun Gun"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
'-------------------------------------------------------------------------
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(100) = "Electrical GenerationThat dude was HOT!Awesomely played!The best!"
|
||||
j(101) = "Heightened DexterityThe greatest!An outstanding job!You entwined "
|
||||
j(102) = "Heightened StrengthYour quills injuredYou're coverage has expired!"
|
||||
j(103) = "Heightened VisionWhich would you like:Vitamins (raise your HitMax)"
|
||||
j(104) = "Tough ExoskeletonRNA Injections (temporarily heighten a mutation)"
|
||||
j(105) = "Sonic AttackBionics (raise stats) Subdermal Implants (lower your AC)"
|
||||
j(106) = "Blood Structure ChangeDialysis (restore poison damage)Family Affair-"
|
||||
j(107) = "Reflective Skin Laser Surgery (temporarily give enhanced vision)"
|
||||
j(108) = "Laser GenerationHormones (temporarily bestow regeneration)assailed"
|
||||
j(109) = "Heightened EnduranceTransduction Implants (create a forcefield)+-=+"
|
||||
j(110) = "Foul MuskYou're now protected by a MindWebMindWeb Generatorhis hat!"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(111) = "Acidic SalivaYour MindWeb dissipatesYou sped up You slowed down "
|
||||
j(112) = "Poison ClawsA Treatise on Berry Colors hit you with homemade acid"
|
||||
j(113) = "Heightened Speed zapped you with a homemade batteryYou healed +-=++"
|
||||
j(114) = "Radiation GenerationYou were shielded from by your MindWebvery hurt"
|
||||
j(115) = "Quills burnt you with homemade flashpowderYou toughened up How dull!"
|
||||
j(116) = "TenticlesYou confused You blinded his hair tonic made you sneeze"
|
||||
j(117) = "Light Generation broke your Keptibora SerumYou may fire up to shots"
|
||||
j(118) = "Four Arms-------Press Esc to quit firingOoh, sugar high!Donald Trump"
|
||||
j(119) = "Poison Gas------Box of Cap'n CrunchRoll of Duct TapeFusion Grenades"
|
||||
j(120) = "Military GeniusRepulsion GeneratorHow the Grinch Stole Christmas"
|
||||
j(121) = "Scientific GeniusYour repulsion field is now activepermanantly +-=+"
|
||||
j(122) = "Heightened WillpowerSurrounded by a repulsion fieldEbony and Ivory"
|
||||
j(123) = "Mental BlastYou fixed it with your duct tape!Tie a Yellow Ribbon"
|
||||
j(124) = "TeleportationYour repulsion field prevents you from movingBlindness"
|
||||
j(125) = "Mental HealingMacho ManSeasons in the Suna GiloolyMotion Sensor+-=+"
|
||||
j(126) = "Force FieldDon't Worry Be HappyWould you like a club on the knee?"
|
||||
j(127) = "Molecular DisruptionOuch ouch ouch!Song Sung BlueMacArthur Park+-=+"
|
||||
j(128) = "Life LeechTech Device SpecificsPlease select an item to learn about:"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(129) = "InvisibilityOne Tin SoldierDo The HustleThat's a pale That's a deep"
|
||||
j(130) = "CryogenicsYour flashbulbNothing invisible detectedBurping/Sneezing"
|
||||
j(131) = "HypnosisFragmentation GrenadeCan of Silly StringKnife Sharpener+-=+"
|
||||
j(132) = "PsychokinesisYou're a bit sharp on the high notesBottle of Seltzer"
|
||||
j(133) = "Heightened Luck-What a nice little tune!What a confusing song!+-=++"
|
||||
j(134) = "Redirection-----A sublime and haunting melodySharpen what?Kablam!"
|
||||
j(135) = "Mental Control--Duralloy is difficult to sharpenArmorAll what?+-=++"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(136) = "Bottle of ArmorAllThe Puffball explodes!an exploding puffballhealthy"
|
||||
j(137) = "You feel oddYou're sweatingYou feel lightheadedYour heart is racing"
|
||||
j(138) = "Hit points : 1 You need & experience to reach levelWrist Watch+-=+"
|
||||
j(139) = "The nerve toxin has already been releasedYou made Keptibora Essence"
|
||||
j(140) = "The nerve toxin has already been destroyed1313 Mockingbird Lane+-=++"
|
||||
j(141) = "until the nerve toxin will be releasedDisplacerJackhammerRange : ?"
|
||||
j(142) = "Pencil SharpenerYour blood alcohol content is .%You feel good as new"
|
||||
j(143) = "That is able to move square per turn squares per turn Hurrah!"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(144) = "It looks like some sort of weaponvehiclekitchen appliancedetector"
|
||||
j(145) = "farm implementcommunicatorgrenadeprotective deviceelectronic device"
|
||||
j(146) = "Answering MachineRadar DetectorHologram GeneratorBreathalyzerblind +"
|
||||
j(147) = "That's not a pointed weaponYou can moveYou feel like an idiot+-=+-=+"
|
||||
j(148) = "Ahh, sharp enough to pick your teeth withYour Medkit revived you!"
|
||||
j(149) = "That's not a blade weaponOh no, you ruined it!You destroyed your "
|
||||
j(150) = "Ahh, sharp enough to shave withSay, that really improves it!+-=+-=++"
|
||||
j(151) = "Large TitaniumLarge WoodenSmall Duralloy pounded youPepper Shaker"
|
||||
j(152) = "Your acid missed you detoxifies you Your poison missedhas injured"
|
||||
j(153) = "Zoom!Your radiation beam missedIndicate trap to removeThat's silly"
|
||||
j(154) = "You removed it!It went off!You fell in!You were unsuccessfulAhhhhh"
|
||||
j(155) = "small shiny devicelarge tech deviceYour constitution went updownUgh"
|
||||
j(156) = "Strike ? for help when game beginsYou've discovered mesons!refresh"
|
||||
j(157) = "You lost 10 lbs from your thighs!Yipes! Poison gas!poison gasGregre"
|
||||
j(158) = " destroyed damaged your armor and shieldIt tastes even better hot!"
|
||||
j(159) = "???????????????????You throw your Far out!Chia petLightning Grenade"
|
||||
j(160) = "It should have lovely green fur in 3-7 daysstuck in a webMonolith"
|
||||
j(161) = "The Phoenix rises from its ashes!You're caught in a web!Lightning!"
|
||||
j(162) = "being struck by lightningYou're back outsideYou hear music : burped!"
|
||||
j(163) = "Weapons, in increasing qualitybizarreYou stepped in superglue!+-=+-="
|
||||
j(164) = "Armor and shields, in decreasing qualitystuck in glue whiffed+-=+-=+"
|
||||
j(165) = "You have no messagesYou have a message from your motherBuzz Aldrin"
|
||||
j(166) = "She asks why you never call herHe says you should wear the Mets Hat"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(167) = "He reminds you to bring the Presidential ID Cardemit light is ruined"
|
||||
j(168) = "He says to save the Gregre berry until you need itLeafblower+-=+-=++"
|
||||
j(169) = "He says you have to go through him to get GilliganYour claws+-=+-=++"
|
||||
j(170) = "He needs you to defeat the impersonatorsDo you want to play again? "
|
||||
j(171) = "You got betterGuh, do we get to win dis time?Distill what?Javelin"
|
||||
j(172) = "You've destroyed both items!teleporting into a wallsolid ground+-=++"
|
||||
j(173) = "You feel light on your feetSomeone tampered with these!Light SabreNo"
|
||||
j(174) = "You feel great!You shrink back down to sizeYou can see againShuriken"
|
||||
j(175) = "Your extract is destroyed!Microwave what?Analyze what?ContainsWooden"
|
||||
j(176) = "shoulder pork and hambeef and a roninorganicsan ultrahard alloy+-=++"
|
||||
j(177) = " something to FoodContact weaponsRange weaponsArmorShieldBerries+-=+"
|
||||
j(178) = "Small tech devicesLargeCreaturesLoreSelect type :Welcome to IBMSleep"
|
||||
j(179) = "Spam usually makes you 2 catagories less hungry,damage,to hit,range"
|
||||
j(180) = "while Beef-a-Roni generally makes you fullbase AC hits sustainable"
|
||||
j(181) = "Throwing AxeTitanium DartDuralloy SpearDuralloy PitchforkSmall Metal"
|
||||
j(182) = "Duralloy SwordLarge MetalInside Lair Whooosh!! Cured Hide Armor"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(183) = "PlatemailChainmailFiberglass ArmorNo ArmorRingmailHeavy Fur Armor"
|
||||
j(184) = "Plastic ArmorLava lamp BackpackGas MaskMedkitTape RecorderPowerpack"
|
||||
j(185) = "Chemical AnalyzerVisiScopeExtra-Strength TylenolTip O'Neill Mask+-=+"
|
||||
j(186) = "alpha.str Cannister GrenadeNeutrino GrenadeIncendiary GrenadePhaser"
|
||||
j(187) = "Psychosis GrenadeGas GrenadeBlowtorch Staple GunShock RodShotgun"
|
||||
j(188) = "Laser PistolFusion RifleTickle Feather GunWeedeaterMissile Launcher"
|
||||
j(189) = "Can of RaidBoise Souvenir AshtrayPair of SunglassesBroken Toaster"
|
||||
j(190) = "Cheese GraterBionic Spleen ImplantSony WatchManSlinkyVeg-O-Matic+-=+"
|
||||
j(191) = "Radiation SuitThermal SuitReflective SuitHovercraftMicrocomputerSafe"
|
||||
j(192) = "Microwave OvenWetsuitTransmogrifierCigarette MachineCabinetCyclotron"
|
||||
j(193) = "Liposuction DeviceStillLaserprinterYou are described the following :"
|
||||
j(194) = "KineticRadiationPoisonAcidLaserMental BlastElectricalHeatColdSteal"
|
||||
j(195) = "Lasers Life LeechTickleattack,Resistances1/3 from KineticRegenerate"
|
||||
j(196) = "ElectricityGrow from heat/laser/turnMental AttacksDamage ArmorSpore"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(197) = "Quills/shock for 1-4ConstrictionElvis would get the words right+-=++"
|
||||
j(198) = "The Grinch's castle is surrounded by poison gas.Gilligan's Island"
|
||||
j(199) = "The Grinch has a soft spot for Roast BeastI Love LucyExiting Save"
|
||||
j(200) = "Pair of Servoboots already exists.Enter new filename :Bad filename :"
|
||||
j(201) = "AlphaMan Release 1.1 by Jeffrey R. Olson Saving Game ..."
|
||||
j(202) = "Electronic mail address: 76473.225@compuserve.com Done Saving!. &"
|
||||
j(203) = "See usenet newsgroup rec.games.roguelike.misc Loading Game ..."
|
||||
j(204) = " doesn't exist.( .ALF will be added )Salt ShakerKalediscopecure gobs"
|
||||
j(205) = "was uninjured by your shockGreen AcresForce Field GeneratorRambify"
|
||||
j(206) = "Fountain PenWide Screen TVPhoton Grenadeprotected yousatisfy hunger"
|
||||
j(207) = " has been destroyedpoisonWeaponsadd expertisemodify STRalter DEX+-=+"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(208) = "change CONmodify RRaffect MRalter INTalter speedtoughen skinfrighten"
|
||||
j(209) = "intoxicateadd tech abilityadd body partsinfluence mutationsdetoxify"
|
||||
j(210) = "increase awarenesscause blindnessreduce tactcloud the mindZ (sleep)"
|
||||
j(211) = "F1 display stats F2 display items F3 display known stuff s (earch) "
|
||||
j(212) = "F5 display main map F6 display detailed map F7 show symbols The +-=+"
|
||||
j(213) = "F9 creditsF10 SneakyKey? helpEsc clear text. restu (se) something"
|
||||
j(214) = "< go down stairs > go up stairs a (gain)d (rop) itemQ (uit) game a "
|
||||
j(215) = "e (at) food or berryf (igure) outr (emove) trapt (hrow) something10"
|
||||
j(216) = "S (ave) gameU (nuse) somethingÍÍ» WallsC>Radar Gun d## damage"
|
||||
j(217) = "Experience :######You teleported +-=+-=+-=+-Range :##alphaman.dat"
|
||||
j(218) = "Pocket InstamaticProsthetic LegDialysis MachineTK-5 Antitank Gun+-=+"
|
||||
j(219) = "Gadzooks! Radiation!Now you're pooped!Your finger was on the lens."
|
||||
j(220) = "Heavens to Betsy, what pretty colors!The lens cap was on.good as new"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(221) = "Egads, you got ink all over yourself!The foreground is out of focus."
|
||||
j(222) = "The film jammed.You've still got your own legs.It's emptyExhausting"
|
||||
j(223) = "None of your software is compatibleEnergize what?You've fried the "
|
||||
j(224) = "That needs no powerYou've energized your Bionic Cranium Implant+-=++"
|
||||
j(225) = "You can't energize while using an itemBionic Muscle ImplantTrample"
|
||||
j(226) = "You feel like six million buckslousytrampled you hit you with spores"
|
||||
j(227) = "Wow, groovy!for points of damageOh gross! The last guy was sick."
|
||||
j(228) = "You regain your sensesFission GrenadeFlamethrowerTitanium Platemail"
|
||||
j(229) = "Select item to place in backpack :Your backpack is fullpoor driving"
|
||||
j(230) = "Select item to remove from backpack :That's too large for your pack"
|
||||
j(231) = "Ouch! You drive like you're from Boston won't fit through the door"
|
||||
j(232) = "Now you're sick too!Indicate direction :JetpackSousaphoneWater+-=++"
|
||||
j(233) = "You play a few bars from ConvoyRhinestone CowboyBoogie Wonderland"
|
||||
j(234) = "Shake Your Groove ThingYou look so cool!You have to Unuse that first"
|
||||
j(235) = "Golf Carta Rick Astley songSkilletRoll of Toilet PaperOoh, Greasy!"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(236) = "Duralloy ChainmailTitanium ChainmailBottle of Sunscreen smells nice"
|
||||
j(237) = "Computer Workstationmade you fall asleep make invisiblePogo Stick"
|
||||
j(238) = "The scales fall from your eyesYou hit the berrybushYou've killed "
|
||||
j(239) = "The berrybush zapped youYou feel drainedAttraction OdorEnergy Drain"
|
||||
j(240) = "AnywhereYou are being constricted.You can't run away from this."
|
||||
j(241) = "Cloaking DeviceYou teleported!ID CardFreeze GunIt's too dark to see"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(242) = "drunk drivingYou removed your udder!more robustYour is destroyed"
|
||||
j(243) = "KayakRubber RaftThose spikes hurt!F4 view character status Tickling"
|
||||
j(244) = "ScrollLock fast playYou no longer feel cleverYou are currently :"
|
||||
j(245) = "stuck in a pitspeedyslowed downconcentratingsunscreenedstrongweak"
|
||||
j(246) = "agileclumsyrobustinfirmmore resistant to radiationlessmoribundTrump "
|
||||
j(247) = "strong-willedweaksmartdumbdrunkkeen-eyedblindan eggheadfrightening"
|
||||
j(248) = "big 'n dumbinvisiblefeeling poorlyudderedbeing constrictedYou barf!"
|
||||
j(249) = "weakened by poisonFast Play is onblinded youmade you sickbarfing"
|
||||
j(250) = "BlindingSickeningVial of AcidCan of MaceHammockYou drift off ......"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(251) = "You lie awake thinking aboutthe day's eventshow noisy it is outside"
|
||||
j(252) = "how badly you need a showerZzzzzhow tired you areMornin' sunshine!"
|
||||
j(253) = "Your back hurtsYou had a nightmareYou wake upYou fall asleep gadget"
|
||||
j(254) = "You're feeling drowsyIt'll be getting dark soonYou need to eatrest"
|
||||
j(255) = "You are rudely awakenedBox of FlaresMirrorMr MistyIck! Nosehairs!"
|
||||
j(256) = "The sky lights upThe entire room blazes momentarily stung yousuit of"
|
||||
j(257) = "You reflected the laser back on. It looks hurt.Examine what?ghost"
|
||||
j(258) = "The Maggot became a Fly!Oooh, low salt Spam!Zoikes! Expired 11/78"
|
||||
j(259) = "Press I to examine an item,S an object on the screen has unlimited "
|
||||
j(260) = "It looks very complicatedUse f to try to figure it outdeep waterbog"
|
||||
j(261) = " has no uses leftIt's an ordinary That's stairwayyouan empty square"
|
||||
j(262) = "X (amine) something use leftBottle of Mr. Clean Civilian"
|
||||
j(263) = "ScientificMilitaryPresidentialMy my, aren't we Mr. Bigshot?Sluggish"
|
||||
j(264) = "He says you'd better deal with Ivana firstP (revious) message+-=+-=+"
|
||||
j(265) = "Not even your Medkit could save you!corrodes your face!an Ivana wig+"
|
||||
j(266) = "eating an acid berryWay to go!Now you're cookin'!AntiToxin Serum+-=+"
|
||||
j(267) = "Another one bites the dust!Hit Points :&-& Creature is : fleeing "
|
||||
j(268) = "burping sneezing rubblelocked doorTitanium JavelinDuralloy Arrow+-=+"
|
||||
j(269) = "Your grenadeThat item needs no energyThat item cannot be recharged++"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(270) = "Hit Points :& Movement Rate :& Armor Class :&armor was damaged!"
|
||||
j(271) = "Elvis is on the The Grinch is on the highest castle levelshorted out"
|
||||
j(272) = "lowest castle levelW (impy) critter setupshield was damaged!+-=+-=++"
|
||||
j(273) = "Enter saved filename: (or hit Enter for a new character)blast radius"
|
||||
j(274) = "was drained of energy!was partially drained of energy!a Neutron Suit"
|
||||
j(275) = "armor was degraded!shield was degraded! was destroyed!+-=+-=+-=+-=++"
|
||||
j(276) = "A Treatise on Arms and Armor-=ð Release 1.1, June 1995 ð=-UV Helmet+"
|
||||
j(277) = "Copyright (c) 1995 Jeffrey OlsonA ShareWare GameYou feel groggy+-=="
|
||||
j(278) = "Splendid display of derring-do!You must be rested to teleport-=+-=++"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(279) = "F (ast fight) switchFast fight mode is Enter difficulty level:=+-=++"
|
||||
j(280) = "0. Normal game difficulty1. Somewhat easy game2. Easy game=+-==+-=++"
|
||||
j(281) = "Fast fighting mode is now onFast fighting mode is now off"
|
||||
j(282) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(283) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(284) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(285) = "away harmlesslyOne normally eats or throws thatMassage UnitrelaxIck!"
|
||||
j(286) = "Readings are somewhat unusual, CaptainAh, you can face the world now"
|
||||
j(287) = "Oh, that feels nice on your aching neckTricorderThermos o' Coffee"
|
||||
j(288) = "Ow! You got a headache from drinking it too fastovereatingrefreshed"
|
||||
j(289) = "That coffee's keeping you awakeTo run from DOS type ALPHAMAN map+-=+"
|
||||
j(290) = "It's not yet your bedtimeBox of AlkaseltzerUnusual Great scott!Gore"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(291) = "Select item to transmogrifyIt only works on organic matterwide awake"
|
||||
j(292) = "You made a small dead rodentIt turned into a Here's your great uncle"
|
||||
j(293) = "Here we are at the beachThis is us at StuckeysHome Movie Projector"
|
||||
j(294) = "It can sustain more hitsthe Skipper's HatK-p-i-o- S-r-ma Space Suit"
|
||||
j(295) = "You've defeated the Elvis ImpersonatorSee Spot dieturned you green!"
|
||||
j(296) = "a pair of Blue Suede ShoesYou've injected yourself with the touching"
|
||||
j(297) = "You're protected from the nerve toxin for 1 dayturn you green2 days"
|
||||
j(298) = "The map shows you the location of the Grinch's stronghold gored you "
|
||||
j(299) = "You feel like dancinYou look like a real dorkYou tried to hit em but"
|
||||
j(300) = "coconuts fell on your headyou got stuck in gluehe stole your glasses"
|
||||
j(301) = "You just can't bring yourself to attack herit went between his legs"
|
||||
j(302) = "A sign at the door says GracelandNeil got luckyThe TajWar Boomerang"
|
||||
j(303) = "This castle appears to be stories tallS.S. Minnow story tall+-=+-=++"
|
||||
j(304) = "make you klutzyYou are no longer klutzymake you regenerateThis ruins"
|
||||
j(305) = "You no longer smell niceYou no longer regenerateregenerating+-=+-=++"
|
||||
j(306) = "tastyYour mirror is almost destroyedYou feel ridiculous fell asleep"
|
||||
j(307) = "Launch what ? -& strength -& hitmaxYou're already wearing a suit+-=+"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(308) = "You're already wearing footwear won't fit down the holetapewormed"
|
||||
j(309) = "smells niceInside LairYou're in a dark tunnelCamouflage Suit+-=+-=++"
|
||||
j(310) = "You caught it as it returnedPinstripe SuitChainsawBlasterVoodoo Doll"
|
||||
j(311) = "Grenade LauncherSave file (y/n/Esc) ?crawled down your throatFlipper"
|
||||
j(312) = "Duralloy Platemailslowed by poisondevitalized by poisonAlways asleep"
|
||||
j(313) = "You're too sick to eatSusceptibilitiesFire how many shots (1-6)?+-=+"
|
||||
j(314) = "Set to stun (s) or kill (k)?Stun GrenadeÛÛÛÛ WallsBulletproof Suit"
|
||||
j(315) = "Your shield is damagedYou're already using a lava lamp Turbocharger"
|
||||
j(316) = "You bit the head off the Turbocharge what?Awesome wheels, dude!+-=++"
|
||||
j(317) = "Disintigration Grenadewarm all overconfusedtipsyBottle of Brandy+-=+"
|
||||
j(318) = "This is GrandpaYou vanish like a dream in the cold morning light "
|
||||
j(319) = "Lair entrancePrinting ...AlphaMan Command SummaryDevice Components"
|
||||
j(320) = "Strike P to print out a detailed summary, or space bar to continue"
|
||||
j(321) = "Would you like an overview? is resistant to your life leech+-=+-=+-="
|
||||
j(322) = "You should eat food when you are very hungry.Zoikes! Nerve toxin!!!"
|
||||
j(323) = "You must eat berries to find out what they do.Find your own devices!"
|
||||
j(324) = "Welcome to the Jim Jones Juice Jamboree!IBM PS497 DX2 Supercomputer"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(325) = "Today we have the following purple nectars:dangerously bloated+-=+-="
|
||||
j(326) = "You freeloader! Go get your own nectar!stepping in a gopher hole"
|
||||
j(327) = "Some tech items can be eaten, too.Which would you like to try?+-=+-="
|
||||
j(328) = "You can throw any item, but not all do significantskin color+-=+-=++"
|
||||
j(329) = "damage (weapons, grenades, heavy devices). Berries canAccess Denied!"
|
||||
j(330) = "have interesting effects if they hit creatures. ate some of your "
|
||||
j(331) = "Examining a screen square will identify creatures anddelicious meal:"
|
||||
j(332) = "objects and will locate traps. Examining tech devices, ate your +-=+"
|
||||
j(333) = "armor, or shields will reveal their condition.JanuaryFebruaryOctober"
|
||||
j(334) = "You can Unuse any item or mutation you are currently MarchJuneAugust"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(335) = "using (denoted by an asterisk in item list). You mustSeptemberApril"
|
||||
j(336) = "Unuse armor and suits before using different ones.falling in a chasm"
|
||||
j(337) = "You must figure out a tech item before it can be used.OctoberMayJuly"
|
||||
j(338) = "It will often take several or many tries to figure outNovemberfull"
|
||||
j(339) = "complex objects. Note: it's possible to break devices.Decemberhalf"
|
||||
j(340) = "Welcome to the Mark VI Transporter UnitA burst of explosive gas moon"
|
||||
j(341) = "Strike a key to be transported to the location of your choicegibbous"
|
||||
j(342) = "You triggered explosive gas!You barfed up your tapeworm!Game time: "
|
||||
j(343) = "You're no longer protected by a force fieldThere's a quarter barfed!"
|
||||
j(344) = "You may drop any item, but some must be Unused beforeTongue Sandwich"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(345) = "they may be dropped (e.g. armor, suits). The squareSausage Surprise"
|
||||
j(346) = "you're standing on must be empty to drop something.Tech Devices R Us"
|
||||
j(347) = "Special items like this have very specific uses.Press a key to begin"
|
||||
j(348) = "We have the following tech devices:Welcome to Jeffrey Dahmer's Deli"
|
||||
j(349) = "You stuff yourself until you can't eat another biteSelect catagory:"
|
||||
j(350) = "Dismantle what?An arrowA dartA jet of acidA pillar of fireA laser"
|
||||
j(351) = "Press C to construct a device, D to dismantle oneA bolt of lightning"
|
||||
j(352) = "You have to construct something firstpile of tech partsYou're blind!"
|
||||
j(353) = "Some falling sandA silvery rayA radiation beam narrowly missed you"
|
||||
j(354) = "Berries, Coffee, Brandy and Mr Mistys also provide nourishment+-=+-="
|
||||
j(355) = "Weapon ComparisonArmor and Shield ComparisonMessages Mmmmm Tasty"
|
||||
j(356) = "You feel invigoratedYou think you could build one of these devices :"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(357) = "You have no parts to build withWhat do you want to build? drizzling"
|
||||
j(358) = "How many energy units do you wish to use?It split in two!raining"
|
||||
j(359) = "You can't figure out how to make anythingYour safe is fullRump Roast"
|
||||
j(360) = "It only works for tech devicesSelect item to place in safe :hailing"
|
||||
j(361) = "Select item to remove from safe :Of course, the King can't die..."
|
||||
j(362) = "You detoxified No sign of the fuzz...Your Neutron Suit killed =+-=++"
|
||||
j(363) = "Nearby radiation trap detectedNo nearby radiation traps detected-=++"
|
||||
j(364) = "Nearby radiation area detectedNo nearby radiation areas detected+-=+"
|
||||
j(365) = "Geiger Counter=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(366) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(367) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(368) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(369) = " -& constitution -& dexterityA blob of glue an Elvis Impersonator"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(370) = "hound dog, cryin all the timecell block was jumpin to the jailhouse"
|
||||
j(371) = "Don't be cruel to a heart that's trueLove me tenderly, love me true"
|
||||
j(372) = "She touched my hand, what a chill I gotlet me be your cuddly bear"
|
||||
j(373) = "left me, I've found a new place to dwellI dated your little sister"
|
||||
j(374) = "cell block was dancin to the jailhousehound dog, howlin all the time"
|
||||
j(375) = "I dated your big sisterleft me, I've found heartbreak hotelpouring"
|
||||
j(376) = "Love me tender, love me trueDon't be cruel to a heart that's blue"
|
||||
j(377) = "let me be your teddy bearShe touched my hand, what a thrill I got"
|
||||
j(378) = "Thanks, , for ridding me of those weenies.You're stuck in a tarpit!"
|
||||
j(379) = "Use these to defeat the Grinch.Those big spikes really hurt!breezy"
|
||||
j(380) = "A sign says Abandon all hope ye who enter herefalling coconutscalm"
|
||||
j(381) = " hit you with his big gold belt buckleOuch! It's hailing!windy+-=++"
|
||||
j(382) = "What the heck is HE doing here?Grandpa turned you into a mouse!Tent"
|
||||
j(383) = "You've returned to normal after scurrying about.stuck in a tarpit"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(384) = "You've stepped in quicksand!caught in quicksandYou need to heal up."
|
||||
j(385) = "They're too awkward to wieldPress spacebar for a disclaimer sneezed!"
|
||||
j(386) = "The author of this game abhors violence. It should be a gopher hole"
|
||||
j(387) = "understood that special characters such as this oneKevorkian Machine"
|
||||
j(388) = "aren't killed, but are defeated and consequently flee.very windy+-=+"
|
||||
j(389) = " bonked you with a coconutOne small step for a man...You got gassed!"
|
||||
j(390) = "You stepped in a gopher hole!Very Tired&-& A puff of poison gas"
|
||||
j(391) = "You settle in for the night.It's too early to set up camp.Real Time:"
|
||||
j(392) = "Critters got into your food!You almost stepped inVery Hungry+-=+-=++"
|
||||
j(393) = "Just a hunka hunka burnin' loveJust a hunka hunka burnin' shoes+-=++"
|
||||
j(394) = "You no longer feel sick.create forcefieldsOh, what a relief it is!"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
|
||||
j(395) = "You receive 40,000 bonus experience points plus castlesFlash Grenade"
|
||||
j(396) = "points for finishing in hoursBlue denotes squares you've been in.+++"
|
||||
j(397) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(398) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(399) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(400) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(401) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(402) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
j(403) = "+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=++"
|
||||
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(404) = "You're now protected by a forcefieldYou made a totally gross blob!"
|
||||
j(405) = " hit you with a scud missile whiffed, but accidentallyM. Monolith"
|
||||
j(406) = "hit you on the backswingGround levelPress 'u' to useretirement+-=+-="
|
||||
j(407) = "protected from nerve toxinWould you like to retire this character?"
|
||||
j(408) = "The Grinch is so touched by the Roast Beast that hisIt fell apart!"
|
||||
j(409) = "heart grows 3 sizes, and he destroys the nerve toxin!Bamboo Raft+-=+"
|
||||
j(410) = "You've managed to defeat the Grinch.Hall of FameYour raft is leaking"
|
||||
j(411) = "+## to hit, +## damage with contact weaponsrange weapons&-& damage"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
j(412) = " hit you with his hat hit you with his money beltYou salvaged+-=+-=+"
|
||||
j(413) = " poked you with her hat pinIt looks like you're too late.0 damage"
|
||||
j(414) = "With his dying gasp he releases the nerve toxin! weight units+-=+-=+"
|
||||
j(415) = "The Grinch just released the nerve toxin.Small WoodenSmall Titanium"
|
||||
j(416) = "You're given a lovely gold watch10 units will fully charge device"
|
||||
j(417) = "You must use at leastThe MunstersBewitchedheightens your +-=+-=+-=++"
|
||||
j(418) = "The Brady Bunch physically supermutatedmentally supermutatedOops!"
|
||||
j(419) = "and Gregory KrolLiver PlatterYou put to sleepLarge Duralloy? damage"
|
||||
j(420) = "Your psychokinetic explosionThe electrolock ate your ID!Glue Grenade"
|
||||
' 1 6 11 16 21 26 31 36 41 46 51 56 61 66
|
||||
|
||||
OPEN "alphaman.1" FOR BINARY AS #1: CLS
|
||||
FOR i = -2 TO 420
|
||||
FOR k = 1 TO 68
|
||||
MID$(j(i), k, 1) = CHR$(ASC(MID$(j(i), k, 1)) XOR (ABS(i * 17 + k * 31) MOD 256))
|
||||
NEXT k
|
||||
PUT #1, , j(i): LOCATE 1, 1: PRINT i;
|
||||
NEXT
|
||||
CLOSE #1
|
||||
END SUB
|
||||
|
355
MUTAT.BAS.txt
Normal file
355
MUTAT.BAS.txt
Normal file
@ -0,0 +1,355 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DECLARE SUB loadit ()
|
||||
DECLARE SUB saveit ()
|
||||
DECLARE SUB changestats ()
|
||||
DEFINT A-Z
|
||||
|
||||
' $INCLUDE: 'alpha.dec'
|
||||
DIM SHARED sss(50, 20, 2), filin$
|
||||
RANDOMIZE TIMER
|
||||
|
||||
CALL loadit
|
||||
CALL changestats
|
||||
notoxin = 0
|
||||
CALL saveit
|
||||
END
|
||||
|
||||
SUB changestats
|
||||
cstop:
|
||||
COLOR 11, 1: CLS
|
||||
LOCATE 2, 10: PRINT USING "Name: & Time:#####"; name$; gt!;
|
||||
LOCATE 3, 10
|
||||
PRINT USING "Str:### Dex:### Con:### RR:### MR:### Int:###"; str; dex; con; rr; mr; intl;
|
||||
LOCATE 4, 10
|
||||
PRINT USING "Hitmax:##### Hits:##### Experience:########"; hitmax; hits; expr&;
|
||||
LOCATE 5, 10
|
||||
PRINT USING "Pmut: ## Mmut: ## Difficulty: #"; pmut; mmut; difficulty;
|
||||
|
||||
COLOR 9
|
||||
LOCATE 12, 1
|
||||
PRINT "1. Electrical Generation"; TAB(28); "14. Heightened Speed";
|
||||
COLOR 2: PRINT TAB(53); "1. Military Genius": COLOR 9
|
||||
PRINT "2. Heightened Dexterity"; TAB(28); "15. Radiation Generation";
|
||||
COLOR 2: PRINT TAB(53); "2. Scientific Genius": COLOR 9
|
||||
PRINT "3. Heightened Strength"; TAB(28); "16. Quills";
|
||||
COLOR 2: PRINT TAB(53); "3. Heightened Willpower": COLOR 9
|
||||
PRINT "4. Heightened Vision"; TAB(28); "17. Tenticles";
|
||||
COLOR 2: PRINT TAB(53); "4. Mental Blast": COLOR 9
|
||||
PRINT "5. Tough Exoskeleton";
|
||||
COLOR 2: PRINT TAB(53); "5. Teleportation": COLOR 9
|
||||
PRINT "6. Sonic Attack";
|
||||
COLOR 2: PRINT TAB(53); "6. Mental Healing": COLOR 9
|
||||
PRINT "7. Blood Structure Change";
|
||||
COLOR 2: PRINT TAB(53); "7. Force Field": COLOR 9
|
||||
PRINT "8. Radiation Reflection";
|
||||
COLOR 2: PRINT TAB(53); "8. Molecular Disruption": COLOR 9
|
||||
PRINT "9. Laser Generation";
|
||||
COLOR 2: PRINT TAB(53); "9. Life Leech": COLOR 9
|
||||
PRINT "10. Heightened Endurance";
|
||||
COLOR 2: PRINT TAB(53); "10. Invisibility": COLOR 9
|
||||
PRINT "11. Foul Musk";
|
||||
COLOR 2: PRINT TAB(53); "11. Cryogenics": COLOR 9
|
||||
PRINT "12. Acidic Saliva";
|
||||
COLOR 2: PRINT TAB(53); "12. Hypnosis": COLOR 9
|
||||
PRINT "13. Poison Claws";
|
||||
COLOR 2: PRINT TAB(53); "13. Psychokinesis";
|
||||
|
||||
|
||||
COLOR 13: LOCATE 7, 10
|
||||
PRINT "Enter stat followed by value (4 characters are sufficient)"
|
||||
LOCATE 8, 10: PRINT "For example, 'pmut 11' or 'dex 25'"
|
||||
LOCATE 9, 10: PRINT "Pressing Enter will end program"
|
||||
|
||||
LOCATE 10, 10: LINE INPUT a$
|
||||
IF a$ <> "" AND a$ <> CHR$(13) THEN
|
||||
b$ = RTRIM$(LTRIM$(MID$(a$, 1, INSTR(a$, " "))))
|
||||
c$ = RTRIM$(LTRIM$(MID$(a$, INSTR(a$, " "))))
|
||||
IF LEN(c$) > 0 THEN c! = VAL(c$) ELSE c! = 0
|
||||
SELECT CASE LEFT$(UCASE$(b$), 4)
|
||||
CASE "NAME": name$ = RTRIM$(LTRIM$(MID$(a$, INSTR(a$, " "))))
|
||||
CASE "STR": str = c!
|
||||
CASE "DEX": dex = c!
|
||||
CASE "CON": con = c!
|
||||
CASE "RR": rr = c!
|
||||
CASE "MR": mr = c!
|
||||
CASE "INT": intl = c!
|
||||
CASE "HITS": hits = c!
|
||||
CASE "HITM": hitmax = c!
|
||||
CASE "EXPE": expr& = c!
|
||||
CASE "PMUT": pmut = c!
|
||||
CASE "MMUT": mmut = c!
|
||||
CASE "TIME": gt! = c!
|
||||
CASE "DIFF": difficulty = c!
|
||||
END SELECT
|
||||
IF pmut < 1 THEN pmut = 1 ELSE IF pmut > nphysmut THEN pmut = nphysmut
|
||||
IF mmut < 1 THEN mmut = 1 ELSE IF mmut > nmentmut THEN mmut = nmentmut
|
||||
IF difficulty < 1 THEN difficulty = 1
|
||||
IF difficulty > 3 THEN difficulty = 3
|
||||
GOTO cstop
|
||||
END IF
|
||||
excs:
|
||||
END SUB
|
||||
|
||||
SUB loadit '=======================================================
|
||||
|
||||
COLOR 14, 1: CLS
|
||||
LOCATE 4, 10: INPUT "Enter filename to alter (.alf assumed):", filin$
|
||||
filin$ = filin$ + ".alf"
|
||||
|
||||
CLOSE #1
|
||||
OPEN filin$ FOR APPEND AS #1: CLOSE #1
|
||||
OPEN filin$ FOR INPUT AS #1
|
||||
IF EOF(1) THEN 'doesn't exist
|
||||
CLOSE #1: KILL filin$: PRINT "Doesn't exist": END
|
||||
END IF
|
||||
CLOSE #1
|
||||
OPEN filin$ FOR BINARY AS #1
|
||||
|
||||
GET #1, , vdate&
|
||||
IF vdate& <> versiondate THEN
|
||||
COLOR 30: LOCATE 8, 10: PRINT "Incorrect version"; : COLOR 14: END
|
||||
END IF
|
||||
|
||||
LOCATE 5, 10: PRINT "Loading file "; filin$; " ....."
|
||||
|
||||
GET #1, , lll: name$ = SPACE$(lll): GET #1, , name$
|
||||
'IF UCASE$(LEFT$(name$, 7)) <> "ALTERED" THEN name$ = LEFT$("Altered " + name$, 19)
|
||||
GET #1, , ngoody: GET #1, , npack: GET #1, , ndropped: GET #1, , nsafe
|
||||
FOR i = 1 TO ngoody
|
||||
GET #1, , lll: gdy(i) = SPACE$(lll): GET #1, , gdy(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO npack
|
||||
GET #1, , lll: bakpak(i) = SPACE$(lll): GET #1, , bakpak(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO ndropped
|
||||
GET #1, , lll: drgdy(i) = SPACE$(lll): GET #1, , drgdy(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO nsafe
|
||||
GET #1, , lll: saf(i) = SPACE$(lll): GET #1, , saf(i)
|
||||
NEXT i
|
||||
FOR i = 0 TO 40: berry$(i) = SPACE$(6): GET #1, , berry$(i): NEXT i
|
||||
|
||||
FOR i = 1 TO ngoody
|
||||
FOR j = 1 TO 12: GET #1, , goody(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO npack
|
||||
FOR j = 1 TO 12: GET #1, , backpack(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO ndropped
|
||||
FOR j = 1 TO 16: GET #1, , drgoody(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO nsafe
|
||||
FOR j = 1 TO 12: GET #1, , safe(i, j): NEXT j
|
||||
NEXT i
|
||||
GET #1, , nnear
|
||||
FOR i = 1 TO nnear
|
||||
FOR j = 1 TO 15: GET #1, , ncre(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 0 TO 40: GET #1, , berord(i): GET #1, , knownb(i): NEXT i
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21: GET #1, , goodythere(i, j): NEXT j, i
|
||||
FOR i = 0 TO 6: FOR j = -10 TO 10: GET #1, , goodycastle(i, j): NEXT j, i
|
||||
FOR i = 1 TO 20: FOR j = 1 TO 3: GET #1, , localgoody(i, j): NEXT j, i
|
||||
FOR i = 1 TO 10: FOR j = 1 TO 3: GET #1, , radzone(i, j): NEXT j, i
|
||||
FOR i = 1 TO 80: GET #1, , ssdknown(i): NEXT i
|
||||
FOR i = 1 TO 40: GET #1, , lsdknown(i): NEXT i
|
||||
FOR i = -10 TO 10: GET #1, , xstairs(i): NEXT i
|
||||
FOR i = -10 TO 10: GET #1, , ystairs(i): NEXT i
|
||||
FOR i = 1 TO 10: FOR j = 1 TO 3: GET #1, , monozone(i, j): NEXT j, i
|
||||
FOR i = 1 TO 10: monozone(i, 3) = 0: NEXT
|
||||
GET #1, , str: GET #1, , stradd: GET #1, , dex: GET #1, , dexadd
|
||||
GET #1, , con: GET #1, , rr: GET #1, , mr: GET #1, , intl
|
||||
GET #1, , hitmax: GET #1, , hits: GET #1, , hunger: GET #1, , fatigue!
|
||||
GET #1, , expr&: GET #1, , lvl: GET #1, , pmut: GET #1, , mmut
|
||||
GET #1, , radsuit: GET #1, , heatsuit: GET #1, , reflecsuit
|
||||
GET #1, , flashlight: GET #1, , gasmask: GET #1, , sunglasses
|
||||
GET #1, , wetsuit: GET #1, , mask: GET #1, , boots
|
||||
GET #1, , pmutturns: GET #1, , mmutturns: GET #1, , inwater
|
||||
GET #1, , waterturns: GET #1, , inpit: GET #1, , zippy
|
||||
GET #1, , wpturns: GET #1, , seed!: GET #1, , vpage
|
||||
GET #1, , mainx: GET #1, , mainy: GET #1, , localx
|
||||
GET #1, , localy: GET #1, , terrain: GET #1, , terrf
|
||||
GET #1, , terrb: GET #1, , currsym: GET #1, , currf
|
||||
GET #1, , currb: GET #1, , ncastle: GET #1, , nruins
|
||||
GET #1, , castle: GET #1, , castlelevel: GET #1, , incastle
|
||||
GET #1, , dum
|
||||
GET #1, , lwall: GET #1, , rwall: GET #1, , twall: GET #1, , bwall
|
||||
GET #1, , lwscr: GET #1, , rwscr: GET #1, , twscr
|
||||
GET #1, , bwscr: GET #1, , dots: GET #1, , xenter
|
||||
GET #1, , yenter: GET #1, , xenterscr: GET #1, , yenterscr
|
||||
GET #1, , enterdir: GET #1, , bitit: GET #1, , berstr
|
||||
GET #1, , berdex: GET #1, , bercon: GET #1, , berrr
|
||||
GET #1, , bermr: GET #1, , berintl
|
||||
GET #1, , berac: GET #1, , berpmut: GET #1, , bermmut
|
||||
GET #1, , berconfuse: GET #1, , berdet: GET #1, , berblind
|
||||
GET #1, , berhic: GET #1, , brandy: GET #1, , berscare
|
||||
GET #1, , strtox: GET #1, , dextox: GET #1, , contox
|
||||
GET #1, , berrambo: GET #1, , weather: GET #1, , wind
|
||||
GET #1, , gt!: GET #1, , rside: GET #1, , roachdef
|
||||
GET #1, , radint: GET #1, , armor: GET #1, , shield
|
||||
GET #1, , dark: GET #1, , grabbed: GET #1, , vehicle: GET #1, , confu
|
||||
GET #1, , hittox: GET #1, , asleep: GET #1, , sunscreen
|
||||
GET #1, , invisible: GET #1, , udder: GET #1, , flare
|
||||
GET #1, , coffee: GET #1, , tapenum: GET #1, , berfresh
|
||||
GET #1, , elvislevel: GET #1, , grinchlevel: GET #1, , grinchzone
|
||||
GET #1, , serum!: GET #1, , map: GET #1, , bsshoes
|
||||
GET #1, , spacesuit: GET #1, , bergreen: GET #1, , berklutz
|
||||
GET #1, , klutzdex: GET #1, , berregen: GET #1, , beryum
|
||||
GET #1, , camosuit: GET #1, , pinsuit: GET #1, , notoxin
|
||||
GET #1, , other2hitc: GET #1, , other2hitr: GET #1, , otherdam
|
||||
GET #1, , tapeworm: GET #1, , turbo!: GET #1, , bulletsuit
|
||||
GET #1, , xmono: GET #1, , ymono: GET #1, , mononum
|
||||
GET #1, , inweb: GET #1, , ffgen: GET #1, , inglue
|
||||
GET #1, , inbog: GET #1, , insand: GET #1, , hail
|
||||
GET #1, , tent: GET #1, , berff: GET #1, , berhpmut: GET #1, , berhmmut
|
||||
GET #1, , tentgrab: GET #1, , metshat: GET #1, , grinchstole
|
||||
GET #1, , mindweb: GET #1, , repulse: GET #1, , ripehrs
|
||||
GET #1, , spore: GET #1, , answer: GET #1, , skinac
|
||||
GET #1, , starting: GET #1, , difficulty: GET #1, , finishedcastles
|
||||
GET #1, , uvhelmet: GET #1, , neutronsuit
|
||||
FOR i = 1 TO 4: GET #1, , dum: NEXT
|
||||
n$ = bl
|
||||
GET #1, , l: ber$ = SPACE$(l): FOR j = 1 TO l: GET #1, , n$: MID$(ber$, j, 1) = n$: NEXT j
|
||||
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21
|
||||
GET #1, , sss(i - 1, j - 1, 1)
|
||||
NEXT j, i
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21
|
||||
GET #1, , sss(i - 1, j - 1, 2)
|
||||
NEXT j, i
|
||||
|
||||
CLOSE #1
|
||||
END SUB
|
||||
|
||||
SUB saveit '==============================================================
|
||||
|
||||
COLOR 10, 1: CLS : LOCATE 5, 10
|
||||
LOCATE 7, 10: PRINT "Saving "; filin$
|
||||
|
||||
CLOSE #1
|
||||
OPEN filin$ FOR BINARY AS #1
|
||||
vdate& = versiondate: PUT #1, , vdate&
|
||||
|
||||
lll = LEN(name$): PUT #1, , lll: PUT #1, , name$
|
||||
PUT #1, , ngoody: PUT #1, , npack: PUT #1, , ndropped: PUT #1, , nsafe
|
||||
FOR i = 1 TO ngoody
|
||||
lll = LEN(gdy(i)): PUT #1, , lll: PUT #1, , gdy(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO npack
|
||||
lll = LEN(bakpak(i)): PUT #1, , lll: PUT #1, , bakpak(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO ndropped
|
||||
lll = LEN(drgdy(i)): PUT #1, , lll: PUT #1, , drgdy(i)
|
||||
NEXT i
|
||||
FOR i = 1 TO nsafe
|
||||
lll = LEN(saf(i)): PUT #1, , lll: PUT #1, , saf(i)
|
||||
NEXT i
|
||||
FOR i = 0 TO nberry: PUT #1, , berry$(i): NEXT i
|
||||
FOR i = 1 + nberry TO 40: PUT #1, , berry$(nberry): NEXT i
|
||||
|
||||
FOR i = 1 TO ngoody
|
||||
FOR j = 1 TO 12: PUT #1, , goody(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO npack
|
||||
FOR j = 1 TO 12: PUT #1, , backpack(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO ndropped
|
||||
FOR j = 1 TO 16: PUT #1, , drgoody(i, j): NEXT j
|
||||
NEXT i
|
||||
FOR i = 1 TO nsafe
|
||||
FOR j = 1 TO 12: PUT #1, , safe(i, j): NEXT j
|
||||
NEXT i
|
||||
PUT #1, , nnear
|
||||
FOR i = 1 TO nnear: FOR j = 1 TO 15: PUT #1, , ncre(i, j): NEXT j, i
|
||||
FOR i = 0 TO 40: PUT #1, , berord(i): PUT #1, , knownb(i): NEXT i
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21: PUT #1, , goodythere(i, j): NEXT j, i
|
||||
FOR i = 0 TO 6: FOR j = -10 TO 10: PUT #1, , goodycastle(i, j): NEXT j, i
|
||||
FOR i = 1 TO 20: FOR j = 1 TO 3: PUT #1, , localgoody(i, j): NEXT j, i
|
||||
FOR i = 1 TO 10: FOR j = 1 TO 3: PUT #1, , radzone(i, j): NEXT j, i
|
||||
FOR i = 1 TO 80: PUT #1, , ssdknown(i): NEXT i
|
||||
FOR i = 1 TO 40: PUT #1, , lsdknown(i): NEXT i
|
||||
FOR i = -10 TO 10: PUT #1, , xstairs(i): NEXT i
|
||||
FOR i = -10 TO 10: PUT #1, , ystairs(i): NEXT i
|
||||
FOR i = 1 TO 10: FOR j = 1 TO 3: PUT #1, , monozone(i, j): NEXT j, i
|
||||
PUT #1, , str: PUT #1, , stradd: PUT #1, , dex: PUT #1, , dexadd
|
||||
PUT #1, , con: PUT #1, , rr: PUT #1, , mr: PUT #1, , intl
|
||||
PUT #1, , hitmax: PUT #1, , hits: PUT #1, , hunger: PUT #1, , fatigue!
|
||||
PUT #1, , expr&: PUT #1, , lvl: PUT #1, , pmut: PUT #1, , mmut
|
||||
PUT #1, , radsuit: PUT #1, , heatsuit: PUT #1, , reflecsuit
|
||||
PUT #1, , flashlight: PUT #1, , gasmask: PUT #1, , sunglasses
|
||||
PUT #1, , wetsuit: PUT #1, , mask: PUT #1, , boots
|
||||
PUT #1, , pmutturns: PUT #1, , mmutturns: PUT #1, , inwater
|
||||
PUT #1, , waterturns: PUT #1, , inpit: PUT #1, , zippy
|
||||
PUT #1, , wpturns: PUT #1, , seed!: PUT #1, , vpage
|
||||
PUT #1, , mainx: PUT #1, , mainy: PUT #1, , localx
|
||||
PUT #1, , localy: PUT #1, , terrain: PUT #1, , terrf
|
||||
PUT #1, , terrb: PUT #1, , currsym: PUT #1, , currf
|
||||
PUT #1, , currb: PUT #1, , ncastle: PUT #1, , nruins
|
||||
PUT #1, , castle: PUT #1, , castlelevel: PUT #1, , incastle
|
||||
PUT #1, , dir
|
||||
PUT #1, , lwall: PUT #1, , rwall: PUT #1, , twall: PUT #1, , bwall
|
||||
PUT #1, , lwscr: PUT #1, , rwscr: PUT #1, , twscr
|
||||
PUT #1, , bwscr: PUT #1, , dots: PUT #1, , xenter
|
||||
PUT #1, , yenter: PUT #1, , xenterscr: PUT #1, , yenterscr
|
||||
PUT #1, , enterdir: PUT #1, , bitit: PUT #1, , berstr
|
||||
PUT #1, , berdex: PUT #1, , bercon: PUT #1, , berrr
|
||||
PUT #1, , bermr: PUT #1, , berintl
|
||||
PUT #1, , berac: PUT #1, , berpmut: PUT #1, , bermmut
|
||||
PUT #1, , berconfuse: PUT #1, , berdet: PUT #1, , berblind
|
||||
PUT #1, , berhic: PUT #1, , brandy: PUT #1, , berscare
|
||||
PUT #1, , strtox: PUT #1, , dextox: PUT #1, , contox
|
||||
PUT #1, , berrambo: PUT #1, , weather: PUT #1, , wind
|
||||
PUT #1, , gt!: PUT #1, , rside: PUT #1, , roachdef
|
||||
PUT #1, , radint: PUT #1, , armor: PUT #1, , shield
|
||||
PUT #1, , dark: PUT #1, , grabbed: PUT #1, , vehicle: PUT #1, , confu
|
||||
PUT #1, , hittox: PUT #1, , asleep: PUT #1, , sunscreen
|
||||
PUT #1, , invisible: PUT #1, , udder: PUT #1, , flare
|
||||
PUT #1, , coffee: PUT #1, , tapenum: PUT #1, , berfresh
|
||||
PUT #1, , elvislevel: PUT #1, , grinchlevel: PUT #1, , grinchzone
|
||||
PUT #1, , serum!: PUT #1, , map: PUT #1, , bsshoes
|
||||
PUT #1, , spacesuit: PUT #1, , bergreen: PUT #1, , berklutz
|
||||
PUT #1, , klutzdex: PUT #1, , berregen: PUT #1, , beryum
|
||||
PUT #1, , camosuit: PUT #1, , pinsuit: PUT #1, , notoxin
|
||||
PUT #1, , other2hitc: PUT #1, , other2hitr: PUT #1, , otherdam
|
||||
PUT #1, , tapeworm: PUT #1, , turbo!: PUT #1, , bulletsuit
|
||||
PUT #1, , xmono: PUT #1, , ymono: PUT #1, , mononum
|
||||
PUT #1, , inweb: PUT #1, , ffgen: PUT #1, , inglue
|
||||
PUT #1, , inbog: PUT #1, , insand: PUT #1, , hail
|
||||
PUT #1, , tent: PUT #1, , berff: PUT #1, , berhpmut: PUT #1, , berhmmut
|
||||
PUT #1, , tentgrab: PUT #1, , metshat: PUT #1, , grinchstole
|
||||
PUT #1, , mindweb: PUT #1, , repulse: PUT #1, , ripehrs
|
||||
PUT #1, , spore: PUT #1, , answer: PUT #1, , skinac
|
||||
PUT #1, , starting: PUT #1, , difficulty: PUT #1, , finishedcastles
|
||||
PUT #1, , uvhelmet: PUT #1, , neutronsuit
|
||||
FOR i = 1 TO 4: PUT #1, , dum: NEXT
|
||||
lll = LEN(ber$): PUT #1, , lll: PUT #1, , ber$
|
||||
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21
|
||||
PUT #1, , sss(i - 1, j - 1, 1)
|
||||
NEXT j, i
|
||||
FOR i = 2 TO 51: FOR j = 2 TO 21
|
||||
PUT #1, , sss(i - 1, j - 1, 2)
|
||||
NEXT j, i
|
||||
|
||||
CLOSE #1
|
||||
|
||||
END SUB
|
||||
|
163
README.TXT
Normal file
163
README.TXT
Normal file
@ -0,0 +1,163 @@
|
||||
------------------------===========------------------------
|
||||
-------------===========ððððððððððððððððððððððð==========--------------
|
||||
----------==========ððððððððð A L P H A M A N ððððððððð==========----------
|
||||
----------==========ððððððððð Release 1.1 ððððððððð==========----------
|
||||
----------==========ððððððððð June 1995 ððððððððð==========----------
|
||||
-------------===========ððððððððððððððððððððððð==========--------------
|
||||
------------------------===========------------------------
|
||||
|
||||
|
||||
File list: alphaman.exe main executable
|
||||
|
||||
alphaman.1
|
||||
alphaman.2
|
||||
alphaman.3 subsidiary
|
||||
alphaman.4 files
|
||||
alphaman.5
|
||||
alphaman.6
|
||||
|
||||
readme.txt this file
|
||||
|
||||
After playing, alphaman.def (game parameters) and
|
||||
alphaman.scr (high scores file) will be generated.
|
||||
You may delete these at any time.
|
||||
____________________________________________________________________________
|
||||
|
||||
AlphaMan (Copyright (c) 1995 Jeffrey R. Olson) is an adventure game set on
|
||||
Earth in the future, following a nuclear disaster. You will take the role of
|
||||
a mutated human who is struggling to save the planet from annihilation. You
|
||||
will be pitted against hideously mutated plants and animals, traps and snares
|
||||
of all sorts, and several varied adversaries whom you will have to defeat in
|
||||
order to complete your mission. At your disposal are a broad variety of
|
||||
technological relics and mutated substances which you will acquire along the
|
||||
way, as well as your own powers and guile.
|
||||
____________________________________________________________________________
|
||||
|
||||
Your character will have six basic personal attributes: Strength (physical
|
||||
power), Dexterity (agility and quickness), Constitution (fortitude and
|
||||
health), Radiation Resistance (susceptibility to radiation), Mental
|
||||
Resistance (susceptibility to mental attacks) and Intelligence (learning
|
||||
ability). These characteristics generally are in the range 3-18 (higher is
|
||||
"better"), but some mutations, devices, etc. can raise or lower these. Your
|
||||
characteristics may increase with time as you gain experience as well.
|
||||
|
||||
Your character also has Hit Points. These reveal to how much damage you can
|
||||
sustain before dying. You lose hit points as you are damaged by attacks from
|
||||
creatures, falling into pits, etc. You heal hit points back over time, and
|
||||
some devices and substances will heal you faster. In addition, you will gain
|
||||
more hit points as you become a more experienced adventurer.
|
||||
|
||||
Your character will have a physical and a mental mutation which can help you
|
||||
complete your mission. Some mutations, such as Heightened Strength, are in
|
||||
effect at all times and don't require you to 'u'(se) them. Others, such as
|
||||
Laser Generation are used periodically as the need arises. AlphaMan version
|
||||
1.1 includes 17 physical and 13 mental mutations; some details on your
|
||||
particular mutations can be learned by pressing '?' during the game to see
|
||||
the help menu, or by examining the file ALPHAMAN.5 which is a text file that
|
||||
the '?' command accesses.
|
||||
|
||||
Your character has an Armor Class (AC) that determines how difficult you are
|
||||
to hit in combat. Your AC is determined by the armor and shield you are
|
||||
using, and may be modified by your dexterity and a variety of devices. A low
|
||||
AC means better protection. An AC 6 to 9 is typical at the start of the game;
|
||||
an AC of 0 is very good; an AC of -5 or lower is excellent. Heavy Fur armor
|
||||
or Ringmail is typical at the start of the game, but better armor may be
|
||||
found during the game. Be sure to wear the better armor as you find it (the
|
||||
'u'(se) command allows you to select the armor you wish to wear; you must
|
||||
'U'(nuse) armor you are currently wearing before you can use new armor).
|
||||
|
||||
Your character fights with a selected weapon (although you can also throw
|
||||
things, or use various technological weapons as well). At the start of the
|
||||
game, a weapon such as a short sword or a pitchfork is common. You may find
|
||||
better weapons along the way, such as titanium or even duralloy ones. Be
|
||||
sure to wield the better weapons as you find them (the command 'u'(se) can be
|
||||
used to select a new weapon-in-hand). Note that a microcomputer, if found in
|
||||
the game, can reveal which weapons are the best.
|
||||
|
||||
Your character will come across a variety of other objects during the course
|
||||
of a game. These include:
|
||||
Food: Spam and Beef-a-Roni, which are eaten with the 'e'(at) command. It is
|
||||
generally best to wait until you're very hungry to eat.
|
||||
Berries: AlphaMan includes over 30 different kinds of berries which have a
|
||||
variety of effects. Initially you won't know what most berries do, and
|
||||
will have to 'e'(at) them or 't'(hrow) them at creatures to determine
|
||||
their effect. The usefulness of most berries is obvious. Keep in mind
|
||||
that, while most berries are intended to be eaten (such as berries that
|
||||
confer invisibility or technical prowess), some should be thrown at
|
||||
enemies (such as exploding or blinding berries).
|
||||
Small and Large Tech devices: AlphaMan includes over 100 different kinds of
|
||||
technological devices. Initially, you won't understand most devices, so
|
||||
you'll have to 'f'(igure) them out. Often, you'll need to try many times
|
||||
before successfully figuring out a device. Once figured out, you can
|
||||
'u'(se) the device when the need arises. Note that the utility of some
|
||||
devices is obvious (you obviously shoot a Fusion Rifle at enemies),
|
||||
whereas some devices (such as a Slinky) are useless, and some have more
|
||||
subtle uses (a Microwave Oven will prematurely ripen berries, for
|
||||
example). A computer, if found during a game, can explain some of these
|
||||
subtleties.
|
||||
____________________________________________________________________________
|
||||
|
||||
Much of the game consists of moving around the screen. This is accomplished
|
||||
with the numeric keypad. You can use the arrow keys to move up, down and
|
||||
sideways; the Home, End, PgUp and PgDn keys will move you diagonally. If
|
||||
you move on top of an item, you will pick that item up. If you attempt to
|
||||
move on top of a creature, you will strike at it with your weapon-in-hand.
|
||||
____________________________________________________________________________
|
||||
|
||||
The Author suggests you print out the list of available commands once the
|
||||
game begins (by pressing '?' and then 'p') in order to have a hard copy to
|
||||
reference at first. Many commands which await input will accept a '?'
|
||||
keystroke, and will then give context-sensitive help for that command.
|
||||
|
||||
The premise of this game is loosely based on two games written by James Ward
|
||||
and published by TSR Hobbies: Metamorphosis Alpha and Gamma World. The
|
||||
author of AlphaMan acknowledges their unwitting inspiration.
|
||||
____________________________________________________________________________
|
||||
|
||||
Please register this software (you will see details of how to do this every
|
||||
time you quit the game). There are many enhancements planned for future
|
||||
updates, including new mutations (4 Arms and Heightened Luck, for example),
|
||||
new devices (e.g., Berry Pouch and Hologram Generator), new berries (ones
|
||||
which confer temporary immunity to an attack type, for example) and other
|
||||
various (and insidious?) additions. You will also receive lifetime AlphaMan
|
||||
support (answers to any questions you might have, free updates if serious bugs
|
||||
are found, and general update announcements).
|
||||
|
||||
Any suggestions or bug reports are also appreciated. Please send them to:
|
||||
|
||||
Jeffrey R. Olson
|
||||
214 E. Sherwin Dr.
|
||||
Urbana, IL 61801
|
||||
____________________________________________________________________________
|
||||
|
||||
DISCLAIMER - AGREEMENT
|
||||
Users of AlphaMan must accept this disclaimer of warranty:
|
||||
|
||||
"AlphaMan is supplied as is. The author disclaims all
|
||||
warranties, expressed or implied, including, without limitation,
|
||||
the warranties of merchantability and of fitness for any purpose.
|
||||
The author assumes no liability for damages, direct or conse-
|
||||
quential, which may result from the use of AlphaMan."
|
||||
|
||||
AlphaMan is a "shareware program" and is provided at no charge
|
||||
to the user for evaluation. Feel free to share it with your
|
||||
friends, but please do not give it away altered or as part of
|
||||
another system. The essence of "user-supported" software is to
|
||||
provide personal computer users with quality software without
|
||||
high prices, and yet to provide incentive for programmers to
|
||||
continue to develop new products. If you find this program
|
||||
useful and find that you are using AlphaMan and continue to use
|
||||
AlphaMan after a reasonable trial period, you must make a
|
||||
registration payment of at least $15 to Jeffrey Olson.
|
||||
|
||||
Anyone distributing AlphaMan for any kind of remuneration must
|
||||
first contact Jeffrey Olson at the address above for authorization.
|
||||
This authorization will be automatically granted, and distributors
|
||||
may begin offering AlphaMan immediately (However Jeffrey Olson must
|
||||
be advised so that the distributor can be kept up-to-date with the
|
||||
latest version of AlphaMan.).
|
||||
|
||||
You are encouraged to pass a copy of AlphaMan along to your
|
||||
friends for evaluation. Please encourage them to register their
|
||||
copy if they find that they can use it. All registered users
|
||||
will receive a copy of the latest version of AlphaMan.
|
178
README.md
Normal file
178
README.md
Normal file
@ -0,0 +1,178 @@
|
||||
# Alphaman Source and Files
|
||||
|
||||
This repository contains source code and related files for the 1995 DOS
|
||||
roguelike game Alphaman by Jeffrey R. Olson.
|
||||
|
||||
Jeff can be reached via email at `ca_jeffo@yahoo.com`
|
||||
|
||||
## The Game
|
||||
|
||||
The game itself is described at:
|
||||
|
||||
* http://roguebasin.roguelikedevelopment.org/index.php?title=Alphaman
|
||||
* https://mutant-future.fandom.com/wiki/AlphaMan
|
||||
|
||||
The game is available for download at:
|
||||
|
||||
* https://archive.org/details/Alphaman11
|
||||
* https://archive.org/details/Alphaman-roguelike
|
||||
* https://www.myabandonware.com/game/alphaman-315
|
||||
* https://www.dosgames.com/game/alphaman-the-new-beginning
|
||||
* https://www.dosgamesarchive.com/download/alpha-man/
|
||||
|
||||
There are several contemporary discussions about Alphaman from 1995 on Usenet,
|
||||
including the suggestions from others which are referenced in `FIXES.TXT`:
|
||||
|
||||
* https://groups.google.com/g/rec.games.roguelike.misc/search?q=Alphaman
|
||||
|
||||
## Files
|
||||
|
||||
#### Game source
|
||||
|
||||
* Any `.BAS` file is in MS QuickBasic 4.5 binary format
|
||||
* Any `.BAS.txt` is a plaintext version of the same file
|
||||
* `A1.BAS` to `A8.BAS` - Game source
|
||||
* `ALPCLIB.C` - C helper library
|
||||
* `MODJNK.BAS` - Game strings
|
||||
* `MODAM6.BAS` - More strings
|
||||
* `ALPHA.CAS` and `ALPHA.CAS.txt` - Castle data
|
||||
* `ALPHA.DEC` and `ALPHA.DEC.txt` - Variable declarations
|
||||
* `ALPHA.GDY` and `ALPHA.GDY.txt` - Weapon and item handling
|
||||
* `ALPHA.CRE`, `CRELIST`, `CRETEST.*`, `CREVIEW.*`, `CREALTER.*`, `VIEW.*` -
|
||||
Definitions, programs, output for creature (enemy monster) generation
|
||||
|
||||
#### Supporting Files
|
||||
|
||||
* `ALPHA.DBG,DB2,DB3,DC2` - Debug snippets, commented out in the game code
|
||||
* `BRESNHAM.C` - Public Domain example math code
|
||||
* `MAZ.*` - Maze path finding test
|
||||
* `*.BAT` - Build scripts for MS QuickBasic 4.5 and MS QuickC 2.5
|
||||
* `*.MAK` Compiler directives to create object files from source and strings
|
||||
|
||||
#### Gameplay Assistance
|
||||
|
||||
Jeff made the FAQ available publicly. The Spoilers file was only provided
|
||||
to the 50 to 100 people who registered the shareware. It appears on some very
|
||||
old FTP listings but this is the first time it's been available publicly in
|
||||
about two decades!
|
||||
|
||||
* `ALPHAMAN.FAQ.txt` - Alphaman FAQ by Jeff Olson, version 1.1
|
||||
* `ALPHAMAN.SPL.txt` - Spoilers by Jeff Olson, version 1.1
|
||||
* `ALPMAN11.TXT` - Description for upload to FTP sites
|
||||
* `FIXES.TXT` - Changelog
|
||||
* `README.TXT` - Descriptive file shipped with game
|
||||
* `ITEMLIST` - All possible items in plaintext
|
||||
|
||||
#### Cheats
|
||||
|
||||
These tools require a `.ALF` saved game in the current directory.
|
||||
|
||||
* `ITEMS.EXE/BAS/txt` - Add berries, small and large tech devices
|
||||
* `MUTAT.EXE/BAS/txt` - Modify player stats and physical/mental mutations
|
||||
|
||||
You can also name your character `Jeffrey Olson` to start with all stats at 18,
|
||||
good gear like a Long Sword, Chainmail, Small Titanium Shield, and advantageous
|
||||
Mutations. Keeping with the game's humour and not taking itself too seriously,
|
||||
this inside joke allows Jeff to be atop everyone's High Score list.
|
||||
|
||||
GamqFAQs also contains a guide which does not allow copying elsewhere. The
|
||||
author did not respond to my request to include it here:
|
||||
|
||||
* [Alphaman Food/Item/Lore Guide by BabaGan00sH](https://gamefaqs.gamespot.com/pc/564667-alphaman-1995/faqs/33882)
|
||||
|
||||
## Code Description
|
||||
|
||||
Alphaman was originally written as a QuickBasic program. In order to keep
|
||||
the game on a single 3.5" floppy, Jeff used some C and assembly helpers
|
||||
(`ALPCLIB.C`) which are linked into the QuickBasic objects at compile time.
|
||||
|
||||
Strings are kept in intermediate files and referenced by their binary offset
|
||||
and length. String definitions are in `MODJNK.BAS` and `MODAM6.BAS`. String
|
||||
print routines are `SUB Printjnk` in `A7.BAS` and `FUNCTION jnk$` in `A8.BAS`.
|
||||
|
||||
Jeff originally used floating point math to handle the game randomisation,
|
||||
but after seeing how slowly the map generated on an 8088 system without a math
|
||||
co-processor, he changed to integer-based math using bit-shifts with the help
|
||||
of a classmate who had written some books on assembly language programming.
|
||||
|
||||
## File Formats
|
||||
|
||||
Note that when browsing QuickBasic source, `SUB` procedures are "hidden" from
|
||||
the main file they are defined in. You can list and enter subprocedures in
|
||||
QuickBasic by pressing the **F2** key or in the top menu bar by selecting
|
||||
**View** then **SUBs...**.
|
||||
|
||||
A few of the text files may not open in your editor of choice. This occurs
|
||||
because those files use ISO-8859-1 Latin encoding, not UTF-8 like most modern
|
||||
text files. I chose not to convert the Latin files to preserve the content
|
||||
accurately, as some DOS characters do not covert to UTF-8.
|
||||
|
||||
## Compiling
|
||||
|
||||
Alphaman can be compiled in DOSBox. The following was tested successfully
|
||||
with [dosbox-staging](dosbox-staging.github.io/) version 0.76.0.
|
||||
|
||||
Install Microsoft QuickBasic 4.5 and Microsoft QuickC 2.5 with "medium" memory
|
||||
model support selected. You can find those at:
|
||||
|
||||
* https://winworldpc.com/product/quickbasic/45
|
||||
* https://winworldpc.com/product/quick-c/2x
|
||||
|
||||
Your `PATH` should look something like:
|
||||
|
||||
~~~
|
||||
SET PATH=C:\QB45\;C:\QC25\BIN;%PATH%
|
||||
~~~
|
||||
|
||||
You also need the `LIB` and `INCLUDE` variables set as QuickC requires, plus
|
||||
add the QuickBasic path to libraries:
|
||||
|
||||
~~~
|
||||
SET LIB=C:\QC25\LIB;C:\QB45
|
||||
SET INCLUDE=C:\QC25\INCLUDE
|
||||
~~~
|
||||
|
||||
* `ALPHAMAN.EXE` is generated by running `COMCLIB.BAT` then `COMALPHA.BAT`
|
||||
* `ALPHAMAN.1` is generated by running `MODJNK.BAS`
|
||||
* `ALPHAMAN.2` is generated by running `CREALTER.BAS`
|
||||
* `ALPHAMAN.3` is generated by running `ALPHA.GDY`
|
||||
* `ALPHAMAN.4` is generated by running `ALPHA.CAS`
|
||||
* `ALPHAMAN.5` is plain text, no compilation required
|
||||
* `ALPHAMAN.6` is generated by running `MODAM6.BAS`
|
||||
|
||||
These steps provide all required game files.
|
||||
|
||||
## License
|
||||
|
||||
The contents of this repository are made available under the MIT license.
|
||||
|
||||
tl;dr - do what you like, but include Jeff's copyright notice in any derivative.
|
||||
|
||||
~~~
|
||||
Copyright (c) 1995 Jeffrey R. Olson
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
~~~
|
||||
|
||||
## Maintainer
|
||||
|
||||
This repository is maintained by:
|
||||
|
||||
* Jamie Bainbridge - jamie.bainbridge@gmail.com
|
||||
|
16
TRANSFER.BAT
Normal file
16
TRANSFER.BAT
Normal file
@ -0,0 +1,16 @@
|
||||
copy a?.bas a:
|
||||
copy alpclib.* a:
|
||||
copy alpha.* a:
|
||||
copy alphaman.? a:
|
||||
copy cre*.bas a:
|
||||
copy mod*.bas a:
|
||||
copy mutat.bas a:
|
||||
copy items.bas a:
|
||||
copy view.bas a:
|
||||
copy readme.txt a:
|
||||
copy fixes.txt a:
|
||||
copy alpman10.zip a:
|
||||
copy alpman10.txt a:
|
||||
copy alphaman.faq a:
|
||||
copy alphaman.spl a:
|
||||
d a:
|
238
VIEW.BAS.txt
Normal file
238
VIEW.BAS.txt
Normal file
@ -0,0 +1,238 @@
|
||||
' Copyright (c) 1995 Jeffrey R. Olson
|
||||
'
|
||||
' Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
' of this software and associated documentation files (the "Software"), to deal
|
||||
' in the Software without restriction, including without limitation the rights
|
||||
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
' copies of the Software, and to permit persons to whom the Software is
|
||||
' furnished to do so, subject to the following conditions:
|
||||
'
|
||||
' The above copyright notice and this permission notice shall be included in all
|
||||
' copies or substantial portions of the Software.
|
||||
'
|
||||
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
' SOFTWARE.
|
||||
|
||||
DECLARE SUB scannames ()
|
||||
DECLARE SUB chartdefenses (i%)
|
||||
DECLARE SUB chartsusc (i%)
|
||||
DECLARE SUB pauseforkey (a$)
|
||||
DECLARE SUB chartexperience ()
|
||||
DECLARE FUNCTION clr% (i%)
|
||||
DECLARE SUB chartattacktypes (i%)
|
||||
DECLARE FUNCTION lev! (n%)
|
||||
DEFINT A-Z
|
||||
' $INCLUDE: 'alpha.dec'
|
||||
DIM SHARED expr(300), defense(300), susc(300), att(300, 5)
|
||||
DIM SHARED atk$(27), def$(15), sus$(15), creat$(300)
|
||||
|
||||
DATA Kinetic, Radiation, Poison 1, Poison 2, Poison 3, Acid, Laser
|
||||
DATA Mental Blast, Electricity, Heat, Cold, Tentical, Life Leech
|
||||
DATA Steal, Tickle, "Damage Armor", "Poop Out", Spore, Trample, Aroma, Drain
|
||||
DATA Blinding, Sickening, Help, Gore, Special, Snooze
|
||||
FOR i = 1 TO 27: READ atk$(i): NEXT
|
||||
|
||||
DATA "1/3 from Kinetic", "Resist Acid", "Resist Electricity"
|
||||
DATA "Resist Radiation", "Resist Heat", "Resist Cold", "Resist Lasers"
|
||||
DATA "Grow from heat/laser", "Regenerate 1/turn", "Resist Mental Attacks"
|
||||
DATA "Resist Poison", "Regenerate 3/turn"
|
||||
DATA "Quills/shock for 1-4", "Quills/shock for 1-10"
|
||||
|
||||
FOR i = 0 TO 13: READ def$(i): NEXT
|
||||
|
||||
DATA "Susceptible to Kinetic", "Susceptible to Acid"
|
||||
DATA "Susceptible to Electricity", "Susceptible to Radiation"
|
||||
DATA "Susceptible to Heat", "Susceptible to Cold"
|
||||
DATA "Susceptible to Lasers", "Susceptible to Tickling"
|
||||
DATA "Always Asleep", "Susceptible to Mental Attacks"
|
||||
DATA "Susceptible to Poison", "Resist Sneeze/Burp", "Resist Blindness"
|
||||
DATA "Susc 13", "ac+10", "Sluggish"
|
||||
FOR i = 0 TO 15: READ sus$(i): NEXT
|
||||
|
||||
OPEN "alpha.cre" FOR INPUT AS #1
|
||||
numcre = 0
|
||||
WHILE NOT EOF(1)
|
||||
INPUT #1, creat$
|
||||
IF LEFT$(LTRIM$(creat$), 1) = CHR$(39) THEN GOTO fin
|
||||
numcre = numcre + 1
|
||||
creat$(numcre) = creat$
|
||||
INPUT #1, a, defense(numcre), c, susc(numcre), expr(numcre)
|
||||
FOR i = 1 TO 5
|
||||
INPUT #1, att, btt: att(numcre, i) = btt \ 100
|
||||
'tohit(i) = att(i) MOD 100: str(i) = att(i) \ 100
|
||||
'rng(i) = btt(i) MOD 100: typ(i) = btt(i) \ 100
|
||||
NEXT i
|
||||
WEND
|
||||
fin: CLOSE #1: SCREEN 12
|
||||
chartexperience
|
||||
FOR i = 1 TO 27: chartattacktypes i: NEXT
|
||||
FOR i = 0 TO 13: chartdefenses i: NEXT: chartsusc 11: chartsusc 12
|
||||
FOR i = 0 TO 15
|
||||
IF i <> 11 AND i <> 12 THEN chartsusc i
|
||||
NEXT
|
||||
END
|
||||
|
||||
SUB chartattacktypes (i)
|
||||
CLS : WINDOW (0, 0)-(ncreat + creextra + 1, 9)
|
||||
FOR j = 1 TO ncreat + creextra
|
||||
sho = false
|
||||
FOR k = 1 TO 5
|
||||
IF att(j, k) = i THEN sho = true
|
||||
NEXT k
|
||||
IF sho THEN LINE (j, 0)-(j + .5, 5), clr(j), BF
|
||||
NEXT j
|
||||
LINE (1, 0)-(ncreat, .07), 7, BF
|
||||
LINE (ncreat + 1, 0)-(ncreat + crecas, .07), 8, BF
|
||||
LINE (ncreat + crecas + 1, 0)-(ncreat + crecas + crefor, .07), 10, BF
|
||||
LINE (ncreat + crecas + crefor + 1, 0)-(ncreat + crecas + crefor + creswa, .07), 6, BF
|
||||
LINE (ncreat + crecas + crefor + creswa + 1, 0)-(ncreat + crecas + crefor + creswa + crepla, .07), 14, BF
|
||||
LINE (ncreat + crecas + crefor + creswa + crepla + 1, 0)-(ncreat + crecas + crefor + creswa + crepla + creh2o, .07), 9, BF
|
||||
COLOR 13: LOCATE 1, 1: PRINT atk$(i)
|
||||
pauseforkey a$
|
||||
IF a$ = "n" THEN scannames
|
||||
END SUB
|
||||
|
||||
SUB chartdefenses (i)
|
||||
CLS : WINDOW (0, 0)-(ncreat + creextra + 1, 9)
|
||||
FOR j = 1 TO ncreat + creextra
|
||||
sho = false
|
||||
IF defense(j) AND 2 ^ i THEN sho = true
|
||||
IF sho THEN LINE (j, 0)-(j + .5, 5), clr(j), BF
|
||||
NEXT j
|
||||
LINE (1, 0)-(ncreat, .07), 7, BF
|
||||
LINE (ncreat + 1, 0)-(ncreat + crecas, .07), 8, BF
|
||||
LINE (ncreat + crecas + 1, 0)-(ncreat + crecas + crefor, .07), 10, BF
|
||||
LINE (ncreat + crecas + crefor + 1, 0)-(ncreat + crecas + crefor + creswa, .07), 6, BF
|
||||
LINE (ncreat + crecas + crefor + creswa + 1, 0)-(ncreat + crecas + crefor + creswa + crepla, .07), 14, BF
|
||||
LINE (ncreat + crecas + crefor + creswa + crepla + 1, 0)-(ncreat + crecas + crefor + creswa + crepla + creh2o, .07), 9, BF
|
||||
COLOR 13: LOCATE 1, 1: PRINT def$(i)
|
||||
pauseforkey a$
|
||||
IF a$ = "n" THEN scannames
|
||||
END SUB
|
||||
|
||||
SUB chartexperience
|
||||
' chart experience
|
||||
CLS : WINDOW (0, 0)-(20, 9)
|
||||
PSET (lev(1), LOG(expr(1))), 7
|
||||
FOR i = 2 TO ncreat
|
||||
LINE -(lev(i), LOG(expr(i))), 7
|
||||
NEXT i
|
||||
PSET (lev(ncreat + 1), LOG(expr(ncreat + 1))), 8
|
||||
FOR i = ncreat + 2 TO ncreat + crecas
|
||||
LINE -(lev(i), LOG(expr(i))), 8
|
||||
NEXT i
|
||||
PSET (lev(ncreat + crecas + 1), LOG(expr(ncreat + crecas + 1))), 10
|
||||
FOR i = ncreat + crecas + 2 TO ncreat + crecas + crefor
|
||||
LINE -(lev(i), LOG(expr(i))), 10
|
||||
NEXT i
|
||||
PSET (lev(ncreat + crecas + crefor + 1), LOG(expr(ncreat + crecas + crefor + 1))), 6
|
||||
FOR i = ncreat + crecas + crefor + 2 TO ncreat + crecas + crefor + creswa
|
||||
LINE -(lev(i), LOG(expr(i))), 6
|
||||
NEXT i
|
||||
PSET (lev(ncreat + crecas + crefor + creswa + 1), LOG(expr(ncreat + crecas + crefor + creswa + 1))), 14
|
||||
FOR i = ncreat + crecas + crefor + creswa + 2 TO ncreat + crecas + crefor + creswa + crepla
|
||||
LINE -(lev(i), LOG(expr(i))), 14
|
||||
NEXT i
|
||||
PSET (lev(ncreat + crecas + crefor + creswa + crepla + 1), LOG(expr(ncreat + crecas + crefor + creswa + crepla + 1))), 9
|
||||
FOR i = ncreat + crecas + crefor + creswa + crepla + 2 TO ncreat + crecas + crefor + creswa + crepla + creh2o
|
||||
LINE -(lev(i), LOG(expr(i))), 9
|
||||
NEXT i
|
||||
COLOR 13: LOCATE 1, 1: PRINT "log-Experience vs level"
|
||||
pauseforkey a$
|
||||
IF a$ = "n" THEN scannames
|
||||
END SUB
|
||||
|
||||
SUB chartsusc (i)
|
||||
CLS : WINDOW (0, 0)-(ncreat + creextra + 1, 9)
|
||||
FOR j = 1 TO ncreat + creextra
|
||||
sho = false
|
||||
IF susc(j) AND 2 ^ i THEN sho = true
|
||||
IF sho THEN LINE (j, 0)-(j + .5, 5), clr(j), BF
|
||||
NEXT j
|
||||
LINE (1, 0)-(ncreat, .07), 7, BF
|
||||
LINE (ncreat + 1, 0)-(ncreat + crecas, .07), 8, BF
|
||||
LINE (ncreat + crecas + 1, 0)-(ncreat + crecas + crefor, .07), 10, BF
|
||||
LINE (ncreat + crecas + crefor + 1, 0)-(ncreat + crecas + crefor + creswa, .07), 6, BF
|
||||
LINE (ncreat + crecas + crefor + creswa + 1, 0)-(ncreat + crecas + crefor + creswa + crepla, .07), 14, BF
|
||||
LINE (ncreat + crecas + crefor + creswa + crepla + 1, 0)-(ncreat + crecas + crefor + creswa + crepla + creh2o, .07), 9, BF
|
||||
COLOR 13: LOCATE 1, 1: PRINT sus$(i)
|
||||
pauseforkey a$
|
||||
IF a$ = "n" THEN scannames
|
||||
END SUB
|
||||
|
||||
FUNCTION clr (i)
|
||||
SELECT CASE i
|
||||
CASE 1 TO ncreat: c = 7
|
||||
CASE 1 TO ncreat + crecas: c = 8
|
||||
CASE 1 TO ncreat + crecas + crefor: c = 10
|
||||
CASE 1 TO ncreat + crecas + crefor + creswa: c = 6
|
||||
CASE 1 TO ncreat + crecas + crefor + creswa + crepla: c = 14
|
||||
CASE 1 TO ncreat + crecas + crefor + creswa + crepla + creh2o: c = 9
|
||||
END SELECT
|
||||
clr = c
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION lev! (n)
|
||||
DIM lll AS SINGLE
|
||||
SELECT CASE n
|
||||
CASE 1 TO ncreat
|
||||
lll = INT(n / 3.49)
|
||||
CASE 1 TO ncreat + crecas
|
||||
lll = (n - ncreat - 1)
|
||||
CASE 1 TO ncreat + crecas + crefor
|
||||
lll = (n - ncreat - crecas)
|
||||
CASE 1 TO ncreat + crecas + crefor + creswa
|
||||
lll = (n - ncreat - crecas - crefor)
|
||||
CASE 1 TO ncreat + crecas + crefor + creswa + crepla
|
||||
lll = (n - ncreat - crecas - crefor - creswa)
|
||||
CASE 1 TO ncreat + crecas + crefor + creswa + crepla + creh2o
|
||||
lll = (n - ncreat - crecas - crefor - creswa - crepla - 2) / 1.5
|
||||
END SELECT
|
||||
IF lll < 1 THEN lll = 1
|
||||
lev! = lll
|
||||
END FUNCTION
|
||||
|
||||
SUB pauseforkey (a$)
|
||||
a$ = INKEY$: WHILE a$ = "": a$ = INKEY$: WEND
|
||||
END SUB
|
||||
|
||||
SUB scannames
|
||||
j = 1: COLOR 12
|
||||
topscan:
|
||||
LINE (j, 5.05)-(j + .5, 6), 12, BF
|
||||
LOCATE 1, 40: PRINT creat$(j); SPACE$(20);
|
||||
pauseforkey a$
|
||||
SELECT CASE a$
|
||||
CASE "+": j = j + 1: IF j > ncreat + creextra THEN j = 1
|
||||
LINE (j - 1, 5.05)-(j - .5, 6), 0, BF: GOTO topscan
|
||||
CASE "-": j = j - 1: IF j < 1 THEN j = ncreat + creextra
|
||||
LINE (j + 1, 5.05)-(j + 1.5, 6), 0, BF: GOTO topscan
|
||||
CASE "E"
|
||||
CASE ELSE: GOTO topscan
|
||||
END SELECT
|
||||
END SUB
|
||||
|
||||
SUB unused
|
||||
SELECT CASE i
|
||||
CASE 0: PRINT "1/3 from Kinetic"
|
||||
CASE 1: PRINT "Acid"
|
||||
CASE 2: PRINT "Electricity"
|
||||
CASE 3: PRINT "Radiation"
|
||||
CASE 4: PRINT "Heat"
|
||||
CASE 5: PRINT "Cold"
|
||||
CASE 6: PRINT "Lasers"
|
||||
CASE 7: PRINT "Grow from heat/laser"
|
||||
CASE 8: PRINT "Regenerate 1/turn"
|
||||
CASE 9: PRINT "Mental Attacks"
|
||||
CASE 10: PRINT "Poison"
|
||||
CASE 11: PRINT "Regenerate 3/turn"
|
||||
CASE 12: PRINT "Quills/shock for 1-4"
|
||||
CASE 13: PRINT "Quills/shock for 1-10"
|
||||
END SELECT
|
||||
END SUB
|
||||
|
Loading…
x
Reference in New Issue
Block a user