Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Synchronet
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Main
Synchronet
Commits
1eee3911
Commit
1eee3911
authored
16 years ago
by
deuce
Browse files
Options
Downloads
Patches
Plain Diff
JavaScript port of Blue Adept's Piss-o-Rama
parent
5f20e074
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
xtrn/pisorama/pisorama.doc
+20
-0
20 additions, 0 deletions
xtrn/pisorama/pisorama.doc
xtrn/pisorama/pisorama.js
+330
-0
330 additions, 0 deletions
xtrn/pisorama/pisorama.js
with
350 additions
and
0 deletions
xtrn/pisorama/pisorama.doc
0 → 100644
+
20
−
0
View file @
1eee3911
[Piss-o-Rama]
1: Name Piss-o-Rama
2: Internal Code PISORAMA
3: Start-up Directory ../xtrn/pisorama
4: Command Line *../xtrn/knk/pisorama.js
5: Clean-up Command Line
6: Execution Cost None
7: Access Requirements
8: Execution Requirements
9: Multiple Concurrent Users Yes
10: Intercept Standard I/O No
11: Native (32-bit) Executable No
12: Use Shell to Execute No
13: Modify User Data No
14: Execute on Event No
15: Pause After Execution No
16: BBS Drop File Type None
17: Place Drop File In Node Directory
18: Time Options...
This diff is collapsed.
Click to expand it.
xtrn/pisorama/pisorama.js
0 → 100644
+
330
−
0
View file @
1eee3911
/***************************************************************************
*Please Read! PLEASE READ! Please Read! PLEASE READ! Please READ!!@!!@ *
* *
* The Piss-O-Rama *
* Version 2.0 *
* *
* By: Dave Lahti a.k.a. The Blue Adept *
* *
* This is the Second version of the Piss-O-Rama, a favorite among *
* SysOps who aren't afraid to let people see a "bad word" on their board. *
* (And I say afraid literally. It is not a challenge to their machismo, *
* just that for some reason they can't handle the word.)This version is the*
* first to come out with Source Code. Version 1.0 was in Turbo Pascal, and *
* I ended up not liking the final product. You will find version 2 much *
* MORE enjoyable, I hope. Feel Free to send any comments or view the latest*
* in Piss-O-Rama upadates on my board. I hereby declare this software *
* TOTALLY public-domain. (Especially since I used skeleton.c!) *
* *
* The Blue Demesnes BBS *
* San Francisco, California *
* (415)-333-1982 *
* Node 4552 of WWIVnet (For Now....) *
***************************************************************************/
/*
* Actually, this is version 3.0... now in JS rather than C
* Translated by Stephen Hurd (aka: Deuce)
*/
var
game_dir
=
'
.
'
;
try
{
throw
barfitty
.
barf
(
barf
)
}
catch
(
e
)
{
game_dir
=
e
.
fileName
}
game_dir
=
game_dir
.
replace
(
/
[\/\\][^\/\\]
*$/
,
''
);
game_dir
=
backslash
(
game_dir
);
/* Now, the Piss-O-Rama variables... */
var
dick_size
=
0
,
/* What kind of a punch he packs... */
arm_strength
=
0
,
/* Obvious, I hope */
will_power
=
0
,
/* How bad he wants to go */
beers
=
0
,
/* How many beers he has drank */
ptsleft
=
50
;
/* How many points left the user has */
function
piss
()
{
var
phases
=
new
Array
(
""
,
"
New
"
,
"
Quarter
"
,
"
Half
"
,
"
Full
"
);
var
direcs
=
new
Array
(
""
,
"
North
"
,
"
South
"
,
"
East
"
,
"
West
"
);
var
speeds
=
new
Array
(
""
,
"
Breeze
"
,
"
Gust
"
,
"
Gale
"
,
"
Tsunami
"
);
var
sizes
=
new
Array
(
""
,
"
Thimble
"
,
"
2-Liter Bottle
"
,
"
Gallon Milk-Jug
"
,
"
55-Gallon Drum
"
);
var
attempt
,
arc
,
/* The Arc which the user picks */
phase_of_moon
,
/* The Tidal effects on the piss-arc */
wind_direction
,
/* Hope you don't piss in the wind! */
wind_speed
,
/* If you are, hope it ain't going fast! */
temperature
,
/* The colder it is... */
bladder_size
,
/* How big the pouch be = pressure */
max_arc
,
/* Maximum Arc based on dicksize vs
* armstrength */
concentration
,
/* What's on your mind? */
playboy_factor
,
/* Random event causing physical disorder */
drunk
,
/* How drunk he is (affects aim) */
distance
;
/* How far */
for
(
attempt
=
0
;
attempt
<=
2
;
attempt
++
)
{
phase_of_moon
=
random
(
4
)
+
1
;
wind_direction
=
random
(
4
)
+
1
;
wind_speed
=
random
(
4
)
+
1
;
temperature
=
random
(
100
)
+
1
;
bladder_size
=
random
(
4
)
+
1
;
max_arc
=
(
arm_strength
*
3
)
-
(
dick_size
);
concentration
=
random
(
100
)
+
1
;
playboy_factor
=
random
(
2
);
drunk
=
(
beers
/
10
);
printf
(
"
\r\n\r\n
Status Screen For Attempt #%d
\r\n\r\n
"
,
attempt
+
1
);
printf
(
"
Dick Size : %-7d Arm Strength : %-2d
\r\n
"
,
dick_size
,
arm_strength
);
printf
(
"
Will Power : %-7d Beers : %-2d
\r\n
"
,
will_power
,
beers
);
printf
(
"
Phase Of Moon : %-7s Wind Direction : %-5s
\r\n
"
,
phases
[
phase_of_moon
],
direcs
[
wind_direction
]);
printf
(
"
Temperature : %-7d Wind Speed : %-7s
\r\n
"
,
temperature
,
speeds
[
wind_speed
]);
printf
(
"
Concentration : %-7d Bladder Size : %-15s
\r\n
"
,
concentration
,
sizes
[
bladder_size
]);
if
(
max_arc
<
0
)
max_arc
=
0
;
do
{
printf
(
"
\r\n\r\n
Enter Arc [0-90] (Max Arc = %d) :
"
,
max_arc
);
arc
=
parseInt
(
console
.
getstr
(
''
,
2
));
}
while
(
isNaN
(
arc
)
||
arc
>
max_arc
||
arc
<
0
);
distance
=
beers
*
2
;
if
((
arc
<
50
)
&&
(
arc
>
30
))
{
distance
+=
random
(
20
);
}
else
{
distance
-=
random
(
20
);
}
distance
+=
will_power
+
beers
;
if
((
phase_of_moon
==
3
)
||
(
phase_of_moon
==
4
))
{
distance
-=
random
(
20
);
}
else
{
distance
+=
random
(
20
);
}
switch
(
wind_direction
)
{
case
1
:
/* North */
distance
/=
5
;
break
;
case
2
:
/* South */
distance
+=
wind_speed
*
5
;
break
;
case
3
:
/* East */
case
4
:
/* West */
distance
-=
wind_speed
*
3
;
break
;
}
if
(
temperature
<=
60
)
distance
+=
(
temperature
/
2
);
distance
+=
bladder_size
*
2
;
distance
+=
concentration
/
10
;
if
(
playboy_factor
)
{
write
(
"
\r\n\r\n
Someone threw a Playboy out on the field.
"
);
write
(
"
\r\n
You get a stiffy. -30 your distance.
\r\n\r\n
"
);
distance
-=
30
;
}
drunk
=
beers
*
2
;
if
(
drunk
>=
40
)
{
write
(
"
\r\n\r\n
You are really drunk, and it has affected your aim.
"
);
write
(
"
\r\n
-30 your distance.
\r\n\r\n
"
);
distance
-=
30
;
}
if
(
distance
<
0
)
distance
=
1
;
printf
(
"
\r\n\r\n
You Have Pissed %d meter(s).
\r\n\r\n
"
,
distance
);
var
f
=
new
File
(
game_dir
+
"
best.pis
"
);
var
highscore
;
if
(
f
.
exists
)
{
if
(
f
.
open
(
"
r
"
))
{
highscore
=
f
.
iniGetObject
(
null
);
f
.
close
();
}
}
else
{
highscore
=
new
Object
();
highscore
.
comment
=
"
Noone has beat the high score yet.
"
;
highscore
.
oldscore
=
10
;
highscore
.
oldname
=
"
The Blue Adept
"
;
if
(
f
.
open
(
"
w+
"
))
{
f
.
iniSetObject
(
null
,
highscore
);
f
.
close
();
}
}
if
(
distance
>
highscore
.
oldscore
)
{
write
(
"
\r\n\r\n
You Got The High Score!
\r\n\r\n
"
);
write
(
"
Please Enter A Comment:
\r\n
"
);
highscore
.
comment
=
console
.
getstr
(
''
,
159
);
if
(
user
.
name
==
undefined
||
user
.
name
==
''
)
{
write
(
"
Please Enter Your Name:
"
);
highscore
.
oldname
=
console
.
getstr
(
''
,
40
);
}
else
highscore
.
oldname
=
user
.
name
;
highscore
.
oldscore
=
distance
;
if
(
f
.
open
(
"
w+
"
))
{
f
.
iniSetObject
(
null
,
highscore
);
f
.
close
();
}
}
write
(
"
\r\n\r\n
Current High Score :
\r\n
"
);
printf
(
"
%s pissing in at %d meters!
\r\n\r\n
"
,
highscore
.
oldname
,
highscore
.
oldscore
);
printf
(
"
He had This to say about his victory:
\r\n
%s
\r\n
"
,
highscore
.
comment
);
console
.
pause
();
}
}
function
edit
(
ask
)
{
write
(
"
[Enter #]:
"
);
var
ret
=
parseInt
(
console
.
getstr
(
''
,
3
));
if
((
ret
>=
0
)
&&
(
ret
<=
ptsleft
))
{
if
(
isNaN
(
ret
))
ret
=
0
;
ptsleft
-=
ret
;
return
(
ret
);
}
else
{
if
((
ret
<
0
)
&&
((
ret
*
-
1
)
<
ask
))
{
ptsleft
+=
(
ret
*
-
1
);
return
(
ret
);
}
else
{
writeln
(
""
);
return
(
0
);
}
}
}
function
mainmenu
()
{
var
ch
;
var
ab
=
false
;
do
{
console
.
clear
();
writeln
(
""
);
writeln
(
""
);
write
(
"
Piss-O-Rama - Main Menu
\r\n\r\n
"
);
printf
(
"
Points Left : %d
\r\n\r\n
"
,
ptsleft
);
printf
(
"
D)ick Size (Currently %-2d)
\r\n
"
,
dick_size
);
printf
(
"
A)rm Strength (Currently %-2d)
\r\n
"
,
arm_strength
);
printf
(
"
W)ill Power (Currently %-2d)
\r\n
"
,
will_power
);
printf
(
"
B)eers (Currently %-2d)
\r\n
"
,
beers
);
write
(
"
P)iss
\r\n
"
);
write
(
"
I)nstructions
\r\n
"
);
write
(
"
Q)uit to the BBS
\r\n\r\n
"
);
write
(
"
Your Command :
"
);
ch
=
console
.
getkeys
(
"
QIPBWAD
"
);
switch
(
ch
)
{
case
'
Q
'
:
ab
=
true
;
break
;
case
'
D
'
:
write
(
"
\r\n\r\n
Input Integer to Add to Dick Size. (negative to subtract)
\r\n
"
);
dick_size
+=
edit
(
dick_size
);
break
;
case
'
A
'
:
write
(
"
\r\n\r\n
Input Integer to Add to Arm Strength. (negative to subtract)
\r\n
"
);
arm_strength
+=
edit
(
arm_strength
);
break
;
case
'
W
'
:
write
(
"
\r\n\r\n
Input Integer to Add to Will Power. (negative to subtract)
\r\n
"
);
will_power
+=
edit
(
will_power
);
break
;
case
'
B
'
:
write
(
"
\r\n\r\n
Input Integer to Add to Beers. (Negative to subtract)
\r\n
"
);
beers
+=
edit
(
beers
);
break
;
case
'
P
'
:
piss
();
ab
=
true
;
break
;
case
'
I
'
:
write
(
"
\r\n\r\n
Instructions for Piss-O-Rama
"
);
write
(
"
\r\n\r\n
"
);
write
(
"
Ok, in this game, the object is to piss as far as you can. There are
\r\n
"
);
write
(
"
several factors which can alter your performance. Four of them are
\r\n
"
);
write
(
"
configurable by you. They are:
\r\n
"
);
write
(
"
\r\n
"
);
write
(
"
Dick Size - The heavier the meat, the more punch it packs.
\r\n
"
);
write
(
"
Arm Strength - If less than dick size, you won't get a good arc.
\r\n
"
);
write
(
"
Will Power - How bad you need/want to go.
\r\n
"
);
write
(
"
Beers - The more you drink, the more you gotta go. Be careful,
\r\n
"
);
write
(
"
it can affect your aim.
\r\n
"
);
write
(
"
Arc - The Arc you choose to piss at.
\r\n
"
);
writeln
(
""
);
console
.
pause
();
writeln
(
""
);
write
(
"
Now, there are several features which are random on every try , of
\r\n
"
);
write
(
"
which you get three per run. They are:
\r\n
"
);
writeln
(
""
);
write
(
"
Phase of the moon - The tidal effects on your urination.
\r\n
"
);
write
(
"
Wind Direction - Hope you aren't pissing in the wind.
\r\n
"
);
write
(
"
Wind Speed - If you are, hope it isn't blowing hard.
\r\n
"
);
write
(
"
Temperature - The colder it is, the worse you have to go.
\r\n
"
);
write
(
"
Bladder Size - Bigger Bladder = More Pressure.
\r\n
"
);
write
(
"
Concentration - Is your mind on this, or how badly you have to go #2?
\r\n
"
);
write
(
"
Playboy Factor - A Random event causing a physiological disorder.
\r\n
"
);
write
(
"
Drunkeness - Depends on the Beers variable, and can affect aim.
\r\n
"
);
writeln
(
""
);
writeln
(
""
);
write
(
"
You start out with 50 points, so use them wisely.
\r\n
"
);
writeln
(
""
);
writeln
(
""
);
writeln
(
""
);
console
.
pause
();
break
;
}
}
while
(
!
ab
);
}
/*
* If we're running under jsexec, fake it!
*/
if
(
this
.
console
==
undefined
)
{
console
=
new
Object
();
console
.
clear
=
function
()
{
write
(
"
\
x0c
"
);
};
console
.
getstr
=
function
(
dflt
,
maxlen
)
{
return
(
readln
().
substr
(
0
,
maxlen
));
};
console
.
pause
=
function
()
{
write
(
"
[Hit Enter]
"
);
readln
();
write
(
"
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
\
b
"
);
};
console
.
getkeys
=
function
(
str
)
{
var
ret
;
str
=
str
.
toUpperCase
();
while
(
1
)
{
ret
=
readln
().
toUpperCase
();
if
(
ret
.
length
>
1
)
continue
;
if
(
str
.
indexOf
(
ret
)
!=-
1
)
return
(
ret
);
}
};
console
.
attributes
=
0
;
console
.
write
=
function
(
str
)
{
/* Strip CTRL-A, ANSI, and CTRL characters except tab, \r, and \n */
write
(
str
.
replace
(
/
\x
01./g
,
''
).
replace
(
/
\x
1b
\[[\x
30-
\x
3f
]
*
[\x
20-
\x
2f
]
*
[\x
40-
\x
7e
]
/g
,
''
).
replace
(
/
[\x
00-
\x
06
\x
0b
\x
0e-
\x
1f
]
/g
,
''
));
}
console
.
writeln
=
function
(
str
)
{
/* Strip CTRL-A, ANSI, and CTRL characters except tab, \r, and \n */
writeln
(
str
.
replace
(
/
\x
01./g
,
''
).
replace
(
/
\x
1b
\[[\x
30-
\x
3f
]
*
[\x
20-
\x
2f
]
*
[\x
40-
\x
7e
]
/g
,
''
).
replace
(
/
[\x
00-
\x
06
\x
0b
\x
0e-
\x
1f
]
/g
,
''
));
}
}
console
.
clear
();
writeln
(
""
);
writeln
(
""
);
writeln
(
""
);
write
(
"
As you pull down your zipper, you enter....
\r\n\r\n
"
);
write
(
"
The Piss-O-Rama!
\r\n
"
);
write
(
"
Version 2.0
\r\n\r\n
"
);
write
(
"
By: The Blue Adept #1@4552
\r\n\r\n\r\n
"
);
console
.
pause
();
mainmenu
();
console
.
clear
();
writeln
(
""
);
writeln
(
""
);
write
(
"
Thanks for Playing the Piss-O-Rama!
\n\n
"
);
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment