LSL1FR/src/Logic_Casino_Game_SlotMachine.lgc
2021-04-25 22:23:00 +02:00

47 lines
No EOL
9.7 KiB
Text

if (isset(newRoom))
{
reset(f33);
load.view(Slot_cherry);
load.view(YouWin);
load.logics(Logic_Casino_GameWon);
load.sound(Sound3);
load.sound(Sound4);
load.pic(currentRoom);
draw.pic(currentRoom);
discard.pic(currentRoom);
animate.obj(o13);
set.priority(o13, 15);
set.view(o13, Slot_cherry);
set.loop(o13, 2);
position(o13, 56, 106);
animate.obj(Obj_animatedPNJ2);
set.view(Obj_animatedPNJ2, Slot_cherry);
set.loop(Obj_animatedPNJ2, 0);
set.cel(Obj_animatedPNJ2, 3);
position(Obj_animatedPNJ2, 46, 87);
draw(Obj_animatedPNJ2);
stop.cycling(Obj_animatedPNJ2);
animate.obj(Obj_animatedPNJ3);
set.view(Obj_animatedPNJ3, Slot_cherry);
set.loop(Obj_animatedPNJ3, 0);
set.cel(Obj_animatedPNJ3, 3);
position(Obj_animatedPNJ3, 69, 87);
draw(Obj_animatedPNJ3);
stop.cycling(Obj_animatedPNJ3);
animate.obj(Obj_animatedPNJ4);
set.view(Obj_animatedPNJ4, Slot_cherry);
set.loop(Obj_animatedPNJ4, 0);
set.cel(Obj_animatedPNJ4, 3);
position(Obj_animatedPNJ4, 93, 87);
draw(Obj_animatedPNJ4);
stop.cycling(Obj_animatedPNJ4);
animate.obj(Obj_animatedPNJ1);
ignore.horizon(Obj_animatedPNJ1);
set.view(Obj_animatedPNJ1, Slot_cherry);
set.loop(Obj_animatedPNJ1, 1);
position(Obj_animatedPNJ1, 50, 10);
show.pic();
varYunchTimer = 1;
set(boolNearDoor);
set(boolDisabledRoomJump);
v207 = 2;
call(Logic_Casino_GameWon);
print.at("\n RESULTS "
"PAYS\n|--------------------------------|\n| Cherry | | "
" | 1 |\n| Cherry | Cherry | | 2 |\n| Cherry | Cherry | "
"Cherry | 4 |\n|--------|--------|--------|-----|\n| Orange | "
"Orange | | 2 |\n| Orange | Orange | Orange | 4 "
"|\n|--------|--------|--------|-----|\n| Seven | Seven | | "
" 3 |\n| Seven | Seven | Seven | 5 "
"|\n|--------|--------|--------|-----|\n| Bar | Bar | Bar | "
" 7 |\n|--------------------------------|\n", 2, 2, 36);
print("\nPress F4 to decrease bet.\n\nPress F6 to increase bet.\n\nPress F8 "
"to pull handle.\n");
set(noScript);
return();
}
set(boolNearPerson);
if (isset(boolNearDoor) &&
controller(c4))
{
--varYunchTimer;
v207 = 2;
call(Logic_Casino_GameWon);
}
if (isset(boolNearDoor) &&
controller(c6))
{
if (varYunchTimer < 20)
{
++varYunchTimer;
}
else
{
print("This machine has a $20.00 limit.");
}
v207 = 2;
call(Logic_Casino_GameWon);
}
if (isset(boolNearDoor) &&
controller(c8))
{
set(boolDoorOpen);
}
if (!isset(haveInput))
{
goto(Label1);
}
if ((said("play") ||
said("move", "handle") ||
said("play", "slot")))
{
set(boolDoorOpen);
}
if (said("odds"))
{
v207 = 2;
call(Logic_Casino_GameWon);
print.at("\n RESULTS "
"PAYS\n|--------------------------------|\n| Cherry | | "
" | 1 |\n| Cherry | Cherry | | 2 |\n| Cherry | Cherry | "
"Cherry | 4 |\n|--------|--------|--------|-----|\n| Orange | "
"Orange | | 2 |\n| Orange | Orange | Orange | 4 "
"|\n|--------|--------|--------|-----|\n| Seven | Seven | | "
" 3 |\n| Seven | Seven | Seven | 5 "
"|\n|--------|--------|--------|-----|\n| Bar | Bar | Bar | "
" 7 |\n|--------------------------------|\n", 2, 2, 36);
}
if ((said("examine") ||
said("examine", "slot")))
{
print("It's an electronic slot machine. When you tire of playing, just type "
"\"stop.\"");
}
if ((said("board") ||
said("examine", "area") ||
said("board", "slot") ||
said("get up") ||
said("board", "away") ||
said("board") ||
said("done", "play") ||
said("done", "game") ||
said("done") ||
said("done", "play", "slot") ||
said("board", "casino") ||
said("examine", "casino")))
{
set(boolOK);
set(boolInClear);
}
Label1:
if (isset(boolDoorOpen))
{
reset(boolDoorOpen);
if (!isset(boolNearDoor))
{
random(11, 13, varRandomValue);
print.v(varRandomValue);
}
else
{
if (varYunchTimer <= 0)
{
print("You insert zero dollars, and pretend to pull the handle.");
print("You win zero dollars!");
print("Is this your idea of a good time?");
}
else
{
if (varYunchTimer > varInGameMoney)
{
print("You can't bet more than you have.");
}
else
{
varScriptStep = 0;
set(boolTimingScriptDone);
}
}
}
}
if (isset(boolTimingScriptDone))
{
reset(boolTimingScriptDone);
++varScriptStep;
if (varScriptStep == 1)
{
reset(boolNearDoor);
set(boolPreventSaveGame);
set(boolBetInProgress);
stop.sound();
reset(f53);
sound(Sound3, boolMusicDone);
varInGameMoney -= varYunchTimer;
v207 = 2;
call(Logic_Casino_GameWon);
start.cycling(Obj_animatedPNJ2);
start.cycling(Obj_animatedPNJ3);
start.cycling(Obj_animatedPNJ4);
random(8, 11, varQuestionnaireTiming);
}
if (varScriptStep == 2)
{
stop.cycling(Obj_animatedPNJ2);
current.cel(Obj_animatedPNJ2, varPickedQuestion1);
random(8, 11, varQuestionnaireTiming);
}
if (varScriptStep == 3)
{
stop.cycling(Obj_animatedPNJ3);
current.cel(Obj_animatedPNJ3, varPickedQuestion2);
random(8, 11, varQuestionnaireTiming);
}
if (varScriptStep == 4)
{
stop.cycling(Obj_animatedPNJ4);
current.cel(Obj_animatedPNJ4, varPickedQuestion3);
varPickedQuestion4 = 0;
if (varPickedQuestion1 == 0)
{
varPickedQuestion4 = 1;
if (varPickedQuestion2 == varPickedQuestion1)
{
varPickedQuestion4 = 2;
if (varPickedQuestion3 == varPickedQuestion1)
{
varPickedQuestion4 = 4;
}
}
}
if (varPickedQuestion1 == 1 &&
varPickedQuestion2 == varPickedQuestion1)
{
varPickedQuestion4 = 2;
if (varPickedQuestion3 == varPickedQuestion1)
{
varPickedQuestion4 = 4;
}
}
if (varPickedQuestion1 == 2 &&
varPickedQuestion2 == varPickedQuestion1)
{
varPickedQuestion4 = 3;
if (varPickedQuestion3 == varPickedQuestion1)
{
varPickedQuestion4 = 5;
}
}
if (varPickedQuestion1 == 3 &&
varPickedQuestion2 == varPickedQuestion1 &&
varPickedQuestion3 == varPickedQuestion1)
{
varPickedQuestion4 = 7;
}
if (varPickedQuestion4 <= 0)
{
set(boolNearDoor);
}
else
{
v207 = 1;
call(Logic_Casino_GameWon);
if (varPickedQuestion4 == 1)
{
set(boolNearDoor);
}
else
{
draw(o13);
set(f53);
if (varPickedQuestion4 > 1 &&
varPickedQuestion4 < 4)
{
varQuestionnaireTiming = 22;
}
else
{
draw(Obj_animatedPNJ1);
if (varPickedQuestion4 < 7)
{
varQuestionnaireTiming = 22;
}
else
{
varQuestionnaireTiming = 44;
}
}
}
}
}
if (varScriptStep == 5)
{
erase(Obj_animatedPNJ1);
erase(o13);
set(boolNearDoor);
}
if (isset(boolNearDoor))
{
varScriptStep = 0;
reset(boolPreventSaveGame);
reset(boolBetInProgress);
if (varInGameMoney <= 0)
{
reset(boolNearDoor);
}
}
}
if (isset(f53) &&
!isset(boolNearDoor))
{
sound(Sound4, f53);
}
if ((controller(CtrlHelp) ||
isset(f203)))
{
reset(f203);
v207 = 2;
call(Logic_Casino_GameWon);
print.at("\n RESULTS "
"PAYS\n|--------------------------------|\n| Cherry | | "
" | 1 |\n| Cherry | Cherry | | 2 |\n| Cherry | Cherry | "
"Cherry | 4 |\n|--------|--------|--------|-----|\n| Orange | "
"Orange | | 2 |\n| Orange | Orange | Orange | 4 "
"|\n|--------|--------|--------|-----|\n| Seven | Seven | | "
" 3 |\n| Seven | Seven | Seven | 5 "
"|\n|--------|--------|--------|-----|\n| Bar | Bar | Bar | "
" 7 |\n|--------------------------------|\n", 2, 2, 36);
print("\nPress F4 to decrease bet.\n\nPress F6 to increase bet.\n\nPress F8 "
"to pull handle.\n");
}
if (isset(gameRestored))
{
v207 = 2;
call(Logic_Casino_GameWon);
}
if (isset(boolInClear))
{
reset(boolDisabledRoomJump);
reset(noScript);
reset(boolPreventSaveGame);
reset(boolBetInProgress);
varJumpToRoom = 31;
}
return();
[ Messages
#message 1 "\nPress F4 to decrease bet.\n\nPress F6 to increase bet.\n\nPress F8 to pull handle.\n"
#message 2 "\n RESULTS PAYS\n|--------------------------------|\n| Cherry | | | 1 |\n| Cherry | Cherry | | 2 |\n| Cherry | Cherry | Cherry | 4 |\n|--------|--------|--------|-----|\n| Orange | Orange | | 2 |\n| Orange | Orange | Orange | 4 |\n|--------|--------|--------|-----|\n| Seven | Seven | | 3 |\n| Seven | Seven | Seven | 5 |\n|--------|--------|--------|-----|\n| Bar | Bar | Bar | 7 |\n|--------------------------------|\n"
#message 3 "You insert zero dollars, and pretend to pull the handle."
#message 4 "You win zero dollars!"
#message 5 "Is this your idea of a good time?"
#message 6 "This machine has a $20.00 limit."
#message 7 "You can't bet more than you have."
#message 8 "It's an electronic slot machine. When you tire of playing, just type \"stop.\""
#message 9 ""
#message 10 ""
#message 11 "Don't be in such a hurry!"
#message 12 "Slow down!"
#message 13 "What are you? A \"Type-A\" personality?"