Merge pull request from Ben987/master

update from ben987
This commit is contained in:
wildsj 2018-03-28 16:39:27 +01:00 committed by GitHub
commit af5a610ef3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
85 changed files with 932 additions and 676 deletions
Actors/Yuki
C000_Intro
CreatePlayer
Intro
C001_BeforeClass
Classroom
FightIntro
FightOutro
Intro
Outro
C002_FirstClass
Classroom
Intro
Outro
SarahIntro
C003_MorningDetention
DetentionRoom
Intro
Outro
C004_ArtClass
C005_GymClass
C006_Isolation
C007_LunchBreak
C008_DramaClass
AmandaIntro
DressingRoom
Intro
Outro
SarahIntro
Theater
Transition
Villain
C009_Library
C010_Revenge
EarlyEnding
Intro
Outro
C101_KinbakuClub
ClubRoom2
ClubRoom3
Discipline
EricaBadEnd
Intro
Lauren
Outro
Transition
C999_Common
Common.jsDrawing.jsInventory.jsStruggle.jsindex.html

Binary file not shown.

After

(image error) Size: 93 KiB

View file

@ -43,15 +43,14 @@ function C000_Intro_CreatePlayer_Run() {
}
// Draw the player image and the text input for the name
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Player.jpg", 900, 0);
DrawRect(ctx, 0, 0, 900, 600, "white");
DrawText(ctx, GetText("EnterName"), 450, 100, "black");
DrawText(ctx, GetText("ValidChars"), 450, 180, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Player.jpg", 900, 0);
DrawRect(0, 0, 900, 600, "white");
DrawText(GetText("EnterName"), 450, 100, "black");
DrawText(GetText("ValidChars"), 450, 180, "black");
// Creates the "validate" button
DrawRect(ctx, 300, 450, 300, 70, "#8c304e");
DrawText(ctx, GetText("Validate"), 450, 485, "white");
DrawRect(300, 450, 300, 70, "#8c304e");
DrawText(GetText("Validate"), 450, 485, "white");
}

View file

@ -10,16 +10,15 @@ function C000_Intro_Intro_Load() {
function C000_Intro_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Draw the intro text
DrawText(ctx, GetText("Intro1"), 450, 100, "White");
DrawText(ctx, GetText("Intro2"), 450, 200, "White");
DrawText(ctx, GetText("Intro3"), 450, 300, "White");
DrawText(ctx, GetText("Intro4"), 450, 400, "White");
DrawText(ctx, GetText("Intro5"), 450, 500, "White");
DrawText(GetText("Intro1"), 450, 100, "White");
DrawText(GetText("Intro2"), 450, 200, "White");
DrawText(GetText("Intro3"), 450, 300, "White");
DrawText(GetText("Intro4"), 450, 400, "White");
DrawText(GetText("Intro5"), 450, 500, "White");
}

View file

@ -16,11 +16,7 @@ function C001_BeforeClass_Classroom_Load() {
// Chapter 1 - Classroom Run
function C001_BeforeClass_Classroom_Run() {
// Draw the background image and the wait button on the bottom right of the image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background" + C001_BeforeClass_Classroom_Mode.toString() + ".jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background" + C001_BeforeClass_Classroom_Mode.toString() + ".jpg", 0, 0);
}
// Chapter 1 - Classroom Click

View file

@ -12,16 +12,15 @@ function C001_BeforeClass_FightIntro_Load() {
function C001_BeforeClass_FightIntro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 800, 0);
// Each animation show an additional line of text
DrawText(ctx, GetText("Intro1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 400, 250, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 400, 350, "White");
if ((TextPhase >= 3) && !IsMobile) DrawText(ctx, GetText("Intro4A"), 400, 450, "White");
if ((TextPhase >= 3) && IsMobile) DrawText(ctx, GetText("Intro4B"), 400, 450, "White");
DrawText(GetText("Intro1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 400, 250, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 400, 350, "White");
if ((TextPhase >= 3) && !IsMobile) DrawText(GetText("Intro4A"), 400, 450, "White");
if ((TextPhase >= 3) && IsMobile) DrawText(GetText("Intro4B"), 400, 450, "White");
}

View file

@ -19,16 +19,15 @@ function C001_BeforeClass_FightOutro_Load() {
function C001_BeforeClass_FightOutro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Mildred.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Mildred.jpg", 800, 0);
// Each animation show an additional line of text
if (C001_BeforeClass_FightOutro_FightResult == 0) DrawText(ctx, GetText("Intro1A"), 400, 150, "White");
if (C001_BeforeClass_FightOutro_FightResult == 1) DrawText(ctx, GetText("Intro1B"), 400, 150, "White");
if (C001_BeforeClass_FightOutro_FightResult == 2) DrawText(ctx, GetText("Intro1C"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 400, 450, "White");
if (C001_BeforeClass_FightOutro_FightResult == 0) DrawText(GetText("Intro1A"), 400, 150, "White");
if (C001_BeforeClass_FightOutro_FightResult == 1) DrawText(GetText("Intro1B"), 400, 150, "White");
if (C001_BeforeClass_FightOutro_FightResult == 2) DrawText(GetText("Intro1C"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 400, 450, "White");
}

View file

@ -10,18 +10,17 @@ function C001_BeforeClass_Intro_Load() {
function C001_BeforeClass_Intro_Run() {
// Draw the background and player
var ctx = document.getElementById("MainCanvas").getContext("2d");
if (TextPhase <= 2) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background1.jpg", 0, 0);
else DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background2.jpg", 0, 0);
DrawPlayerTransition(ctx);
if (TextPhase <= 2) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background1.jpg", 0, 0);
else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background2.jpg", 0, 0);
DrawPlayerTransition();
// Introduce chapter 1 with each clicks
DrawText(ctx, GetText("Intro1"), 450, 50, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 450, 150, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 450, 250, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 450, 350, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Intro5"), 450, 450, "White");
if (TextPhase >= 5) DrawText(ctx, GetText("Intro6"), 450, 550, "White");
DrawText(GetText("Intro1"), 450, 50, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 450, 150, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 450, 250, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 450, 350, "White");
if (TextPhase >= 4) DrawText(GetText("Intro5"), 450, 450, "White");
if (TextPhase >= 5) DrawText(GetText("Intro6"), 450, 550, "White");
}

View file

@ -23,20 +23,19 @@ function C001_BeforeClass_Outro_Load() {
function C001_BeforeClass_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 800, 0);
// The text changes based on the trouble that was done
if (TextPhase >= 0) DrawText(ctx, GetText("Intro1"), 400, 100, "White");
if ((C001_BeforeClass_Outro_Mode == 0) && (TextPhase >= 1)) DrawText(ctx, GetText("Intro2A"), 400, 250, "White");
if ((C001_BeforeClass_Outro_Mode == 1) && (TextPhase >= 1)) DrawText(ctx, GetText("Intro2B"), 400, 200, "White");
if ((C001_BeforeClass_Outro_Mode == 2) && (TextPhase >= 1)) DrawText(ctx, GetText("Intro2C"), 400, 200, "White");
if ((C001_BeforeClass_Outro_Mode == 3) && (TextPhase >= 1)) DrawText(ctx, GetText("Intro2D"), 400, 200, "White");
if ((C001_BeforeClass_Outro_Mode == 0) && (TextPhase >= 2)) DrawText(ctx, GetText("Intro3A"), 400, 400, "White");
if ((C001_BeforeClass_Outro_Mode >= 1) && (TextPhase >= 2)) DrawText(ctx, GetText("Intro3B"), 400, 300, "White");
if ((C001_BeforeClass_Outro_Mode >= 1) && (TextPhase >= 3)) DrawText(ctx, GetText("Intro4"), 400, 400, "White");
if ((C001_BeforeClass_Outro_Mode >= 1) && (TextPhase >= 4)) DrawText(ctx, GetText("Intro5"), 400, 500, "White");
if (TextPhase >= 0) DrawText(GetText("Intro1"), 400, 100, "White");
if ((C001_BeforeClass_Outro_Mode == 0) && (TextPhase >= 1)) DrawText(GetText("Intro2A"), 400, 250, "White");
if ((C001_BeforeClass_Outro_Mode == 1) && (TextPhase >= 1)) DrawText(GetText("Intro2B"), 400, 200, "White");
if ((C001_BeforeClass_Outro_Mode == 2) && (TextPhase >= 1)) DrawText(GetText("Intro2C"), 400, 200, "White");
if ((C001_BeforeClass_Outro_Mode == 3) && (TextPhase >= 1)) DrawText(GetText("Intro2D"), 400, 200, "White");
if ((C001_BeforeClass_Outro_Mode == 0) && (TextPhase >= 2)) DrawText(GetText("Intro3A"), 400, 400, "White");
if ((C001_BeforeClass_Outro_Mode >= 1) && (TextPhase >= 2)) DrawText(GetText("Intro3B"), 400, 300, "White");
if ((C001_BeforeClass_Outro_Mode >= 1) && (TextPhase >= 3)) DrawText(GetText("Intro4"), 400, 400, "White");
if ((C001_BeforeClass_Outro_Mode >= 1) && (TextPhase >= 4)) DrawText(GetText("Intro5"), 400, 500, "White");
}

View file

@ -39,11 +39,10 @@ function C002_FirstClass_Classroom_Load() {
function C002_FirstClass_Classroom_Run() {
// Draw the background image and the wait button on the bottom right of the image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C002_FirstClass_Classroom_Sidney.toString() + ".jpg", 0, 0);
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C002_FirstClass_Classroom_Mildred.toString() + ".jpg", 300, 0);
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C002_FirstClass_Classroom_Amanda.toString() + ".jpg", 600, 0);
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C002_FirstClass_Classroom_Sarah.toString() + ".jpg", 900, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C002_FirstClass_Classroom_Sidney.toString() + ".jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C002_FirstClass_Classroom_Mildred.toString() + ".jpg", 300, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C002_FirstClass_Classroom_Amanda.toString() + ".jpg", 600, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C002_FirstClass_Classroom_Sarah.toString() + ".jpg", 900, 0);
}

View file

@ -10,16 +10,15 @@ function C002_FirstClass_Intro_Load() {
function C002_FirstClass_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 450, 100, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 450, 200, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 450, 300, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 450, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Intro5"), 450, 500, "White");
DrawText(GetText("Intro1"), 450, 100, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 450, 200, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 450, 300, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 450, 400, "White");
if (TextPhase >= 4) DrawText(GetText("Intro5"), 450, 500, "White");
}

View file

@ -17,18 +17,17 @@ function C002_FirstClass_Outro_Load() {
function C002_FirstClass_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 800, 0);
// Write the chapter outro
DrawText(ctx, GetText("Intro1"), 400, 150, "White");
if ((TextPhase >= 1) && (C002_FirstClass_Classroom_MildredSubdueSuccess == false) && (C002_FirstClass_Classroom_MildredSubdueFailed == false)) DrawText(ctx, GetText("Intro2A"), 400, 250, "White");
if ((TextPhase >= 1) && (C002_FirstClass_Classroom_MildredSubdueSuccess == true) && (C002_FirstClass_Classroom_MildredSubdueFailed == false) && (!C002_FirstClass_Outro_Restrained)) DrawText(ctx, GetText("Intro2B"), 400, 250, "White");
if ((TextPhase >= 1) && (C002_FirstClass_Classroom_MildredSubdueSuccess == true) && (C002_FirstClass_Classroom_MildredSubdueFailed == false) && (C002_FirstClass_Outro_Restrained)) DrawText(ctx, GetText("Intro2C"), 400, 250, "White");
if ((TextPhase >= 1) && (C002_FirstClass_Classroom_MildredSubdueFailed == true)) DrawText(ctx, GetText("Intro2D"), 400, 250, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 400, 350, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 400, 450, "White");
DrawText(GetText("Intro1"), 400, 150, "White");
if ((TextPhase >= 1) && (C002_FirstClass_Classroom_MildredSubdueSuccess == false) && (C002_FirstClass_Classroom_MildredSubdueFailed == false)) DrawText(GetText("Intro2A"), 400, 250, "White");
if ((TextPhase >= 1) && (C002_FirstClass_Classroom_MildredSubdueSuccess == true) && (C002_FirstClass_Classroom_MildredSubdueFailed == false) && (!C002_FirstClass_Outro_Restrained)) DrawText(GetText("Intro2B"), 400, 250, "White");
if ((TextPhase >= 1) && (C002_FirstClass_Classroom_MildredSubdueSuccess == true) && (C002_FirstClass_Classroom_MildredSubdueFailed == false) && (C002_FirstClass_Outro_Restrained)) DrawText(GetText("Intro2C"), 400, 250, "White");
if ((TextPhase >= 1) && (C002_FirstClass_Classroom_MildredSubdueFailed == true)) DrawText(GetText("Intro2D"), 400, 250, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 400, 350, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 400, 450, "White");
}

View file

@ -16,18 +16,17 @@ function C002_FirstClass_SarahIntro_Load() {
function C002_FirstClass_SarahIntro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
if (ActorSpecificHasInventory("Amanda", "BallGag"))
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background_AmandaGag.jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background_AmandaGag.jpg", 0, 0);
else
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 600, 100, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 600, 200, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 600, 300, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 600, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Intro5"), 600, 500, "White");
DrawText(GetText("Intro1"), 600, 100, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 600, 200, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 600, 300, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 600, 400, "White");
if (TextPhase >= 4) DrawText(GetText("Intro5"), 600, 500, "White");
}

View file

@ -31,9 +31,8 @@ function C003_MorningDetention_DetentionRoom_Run() {
if (C003_MorningDetention_DetentionRoom_SidneyGone == true) C003_MorningDetention_DetentionRoom_Sidney = 6;
// Draw the background image and the wait button on the bottom right of the image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Yuki" + C003_MorningDetention_DetentionRoom_Yuki.toString() + ".jpg", 0, 0);
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Sidney" + C003_MorningDetention_DetentionRoom_Sidney.toString() + ".jpg", 600, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Yuki" + C003_MorningDetention_DetentionRoom_Yuki.toString() + ".jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Sidney" + C003_MorningDetention_DetentionRoom_Sidney.toString() + ".jpg", 600, 0);
}

View file

@ -16,17 +16,16 @@ function C003_MorningDetention_Intro_Load() {
function C003_MorningDetention_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 450, 50, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 450, 150, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 450, 250, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 450, 350, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Intro5"), 450, 450, "White");
if (TextPhase >= 5) DrawText(ctx, GetText("Intro6"), 450, 550, "White");
DrawText(GetText("Intro1"), 450, 50, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 450, 150, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 450, 250, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 450, 350, "White");
if (TextPhase >= 4) DrawText(GetText("Intro5"), 450, 450, "White");
if (TextPhase >= 5) DrawText(GetText("Intro6"), 450, 550, "White");
}

View file

@ -19,15 +19,14 @@ function C003_MorningDetention_Outro_Load() {
function C003_MorningDetention_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 800, 0);
// Write the chapter outro
if (C003_MorningDetention_Outro_EscapedDetention == false) DrawText(ctx, GetText("Outro1A"), 400, 150, "White");
if (C003_MorningDetention_Outro_EscapedDetention == true) DrawText(ctx, GetText("Outro1B"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Outro2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Outro3"), 400, 450, "White");
if (C003_MorningDetention_Outro_EscapedDetention == false) DrawText(GetText("Outro1A"), 400, 150, "White");
if (C003_MorningDetention_Outro_EscapedDetention == true) DrawText(GetText("Outro1B"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("Outro2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText("Outro3"), 400, 450, "White");
}

View file

@ -39,11 +39,10 @@ function C004_ArtClass_ArtRoom_Load() {
function C004_ArtClass_ArtRoom_Run() {
// Draw the background image and the wait button on the bottom right of the image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C004_ArtClass_ArtRoom_Jennifer + ".jpg", 0, 0);
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C004_ArtClass_ArtRoom_Julia + ".jpg", 300, 0);
if (C004_ArtClass_ArtRoom_ExtraModel != "") DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C004_ArtClass_ArtRoom_ExtraModelImage + "_Extra.jpg", 600, 0);
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C004_ArtClass_ArtRoom_Sarah + ".jpg", 900, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C004_ArtClass_ArtRoom_Jennifer + ".jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C004_ArtClass_ArtRoom_Julia + ".jpg", 300, 0);
if (C004_ArtClass_ArtRoom_ExtraModel != "") DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C004_ArtClass_ArtRoom_ExtraModelImage + "_Extra.jpg", 600, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C004_ArtClass_ArtRoom_Sarah + ".jpg", 900, 0);
}

View file

@ -14,16 +14,15 @@ function C004_ArtClass_Intro_Load() {
function C004_ArtClass_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 450, 100, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 450, 200, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 450, 300, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 450, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Intro5"), 450, 500, "White");
DrawText(GetText("Intro1"), 450, 100, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 450, 200, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 450, 300, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 450, 400, "White");
if (TextPhase >= 4) DrawText(GetText("Intro5"), 450, 500, "White");
}

View file

@ -23,34 +23,33 @@ function C004_ArtClass_Outro_Load() {
function C004_ArtClass_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawRect(0, 0, 800, 600, "black");
// Write the chapter outro
if (C004_ArtClass_Outro_Crime == "") {
// No crime outro
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
DrawText(ctx, GetText("NoCrime1"), 400, 150, "White");
if ((TextPhase >= 1) && C004_ArtClass_Outro_Restrained) DrawText(ctx, GetText("NoCrime2A"), 400, 300, "White");
if ((TextPhase >= 1) && !C004_ArtClass_Outro_Restrained && (C004_ArtClass_ArtRoom_ExtraModel == "Player")) DrawText(ctx, GetText("NoCrime2B"), 400, 300, "White");
if ((TextPhase >= 1) && !C004_ArtClass_Outro_Restrained && (C004_ArtClass_ArtRoom_ExtraModel != "Player")) DrawText(ctx, GetText("NoCrime2C"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("NoCrime3"), 400, 450, "White");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
DrawText(GetText("NoCrime1"), 400, 150, "White");
if ((TextPhase >= 1) && C004_ArtClass_Outro_Restrained) DrawText(GetText("NoCrime2A"), 400, 300, "White");
if ((TextPhase >= 1) && !C004_ArtClass_Outro_Restrained && (C004_ArtClass_ArtRoom_ExtraModel == "Player")) DrawText(GetText("NoCrime2B"), 400, 300, "White");
if ((TextPhase >= 1) && !C004_ArtClass_Outro_Restrained && (C004_ArtClass_ArtRoom_ExtraModel != "Player")) DrawText(GetText("NoCrime2C"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText("NoCrime3"), 400, 450, "White");
} else {
// Crime outro
if (TextPhase <= 1) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
if ((TextPhase >= 2) && (C004_ArtClass_Outro_Crime == "RestrainMildred")) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Mildred.jpg", 800, 0);
if ((TextPhase >= 2) && (C004_ArtClass_Outro_Crime == "DrugYuki")) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Yuki.jpg", 800, 0);
DrawText(ctx, GetText("Crime1"), 400, 100, "White");
if ((TextPhase >= 1) && C004_ArtClass_Outro_Restrained) DrawText(ctx, GetText("Crime2A"), 400, 200, "White");
if ((TextPhase >= 1) && !C004_ArtClass_Outro_Restrained && (C004_ArtClass_ArtRoom_ExtraModel == "Player")) DrawText(ctx, GetText("Crime2B"), 400, 200, "White");
if ((TextPhase >= 1) && !C004_ArtClass_Outro_Restrained && (C004_ArtClass_ArtRoom_ExtraModel != "Player")) DrawText(ctx, GetText("Crime2C"), 400, 200, "White");
if ((TextPhase >= 2) && (C004_ArtClass_Outro_Crime == "RestrainMildred")) DrawText(ctx, GetText("Crime3A"), 400, 300, "White");
if ((TextPhase >= 2) && (C004_ArtClass_Outro_Crime == "DrugYuki")) DrawText(ctx, GetText("Crime3B"), 400, 300, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Crime4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Crime5"), 400, 500, "White");
if (TextPhase <= 1) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
if ((TextPhase >= 2) && (C004_ArtClass_Outro_Crime == "RestrainMildred")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Mildred.jpg", 800, 0);
if ((TextPhase >= 2) && (C004_ArtClass_Outro_Crime == "DrugYuki")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Yuki.jpg", 800, 0);
DrawText(GetText("Crime1"), 400, 100, "White");
if ((TextPhase >= 1) && C004_ArtClass_Outro_Restrained) DrawText(GetText("Crime2A"), 400, 200, "White");
if ((TextPhase >= 1) && !C004_ArtClass_Outro_Restrained && (C004_ArtClass_ArtRoom_ExtraModel == "Player")) DrawText(GetText("Crime2B"), 400, 200, "White");
if ((TextPhase >= 1) && !C004_ArtClass_Outro_Restrained && (C004_ArtClass_ArtRoom_ExtraModel != "Player")) DrawText(GetText("Crime2C"), 400, 200, "White");
if ((TextPhase >= 2) && (C004_ArtClass_Outro_Crime == "RestrainMildred")) DrawText(GetText("Crime3A"), 400, 300, "White");
if ((TextPhase >= 2) && (C004_ArtClass_Outro_Crime == "DrugYuki")) DrawText(GetText("Crime3B"), 400, 300, "White");
if (TextPhase >= 3) DrawText(GetText("Crime4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(GetText("Crime5"), 400, 500, "White");
}

View file

@ -14,16 +14,15 @@ function C005_GymClass_Intro_Load() {
function C005_GymClass_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 450, 100, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 450, 200, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 450, 300, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 450, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Intro5"), 450, 500, "White");
DrawText(GetText("Intro1"), 450, 100, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 450, 200, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 450, 300, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 450, 400, "White");
if (TextPhase >= 4) DrawText(GetText("Intro5"), 450, 500, "White");
}

View file

@ -13,13 +13,12 @@ function C005_GymClass_Outro_Load() {
function C005_GymClass_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
// Draw the outro text
DrawText(ctx, GetText("Outro1"), 400, 200, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Outro2"), 400, 400, "White");
DrawText(GetText("Outro1"), 400, 200, "White");
if (TextPhase >= 1) DrawText(GetText("Outro2"), 400, 400, "White");
}

View file

@ -9,7 +9,7 @@ function C006_Isolation_Intro_Load() {
// Do not allow bondage when we begin
Common_BondageAllowed = true;
Common_SelfBondageAllowed = true;
GameLogSpecificAdd(CurrentChapter, "", "Isolated");
GameLogSpecificAdd(CurrentChapter, "", "Isolation");
// Gets the player crime chapter 2 or 3. If there's any, we go to chapter 6 instead of 5.
if (GameLogQuery("C002_FirstClass", "Mildred", "Subdue") && !GameLogQuery("C002_FirstClass", "Mildred", "Release")) C006_Isolation_Intro_Teacher = "Mildred";
@ -30,16 +30,15 @@ function C006_Isolation_Intro_Load() {
function C006_Isolation_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 450, 150, "White");
if ((TextPhase >= 1) && (C006_Isolation_Intro_Teacher == "Mildred")) DrawText(ctx, GetText("Intro2Mildred"), 450, 250, "White");
if ((TextPhase >= 1) && (C006_Isolation_Intro_Teacher == "Yuki")) DrawText(ctx, GetText("Intro2Yuki"), 450, 250, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 450, 350, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 450, 450, "White");
DrawText(GetText("Intro1"), 450, 150, "White");
if ((TextPhase >= 1) && (C006_Isolation_Intro_Teacher == "Mildred")) DrawText(GetText("Intro2Mildred"), 450, 250, "White");
if ((TextPhase >= 1) && (C006_Isolation_Intro_Teacher == "Yuki")) DrawText(GetText("Intro2Yuki"), 450, 250, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 450, 350, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 450, 450, "White");
}

View file

@ -34,23 +34,22 @@ function C006_Isolation_Outro_Load() {
function C006_Isolation_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
if (C006_Isolation_Outro_EarlyEscape) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Player.jpg", 800, 0);
if (!C006_Isolation_Outro_EarlyEscape) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C006_Isolation_Intro_Teacher + ".jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
if (C006_Isolation_Outro_EarlyEscape) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Player.jpg", 800, 0);
if (!C006_Isolation_Outro_EarlyEscape) DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C006_Isolation_Intro_Teacher + ".jpg", 800, 0);
// Draw the outro text
if (!C006_Isolation_Outro_EarlyRelease && !C006_Isolation_Outro_EarlyEscape) {
if (C006_Isolation_IsolationRoom_Stage <= 1) DrawText(ctx, GetText("Outro1A"), 400, 150, "White");
if (C006_Isolation_IsolationRoom_Stage == 2) DrawText(ctx, GetText("Outro1B"), 400, 150, "White");
if ((C006_Isolation_IsolationRoom_Stage == 3) && !C006_Isolation_Outro_StuckPillory && !C006_Isolation_Outro_StuckCross) DrawText(ctx, GetText("Outro1C"), 400, 150, "White");
if ((C006_Isolation_IsolationRoom_Stage == 3) && C006_Isolation_Outro_StuckPillory && !C006_Isolation_Outro_StuckCross) DrawText(ctx, GetText("Outro1D"), 400, 150, "White");
if ((C006_Isolation_IsolationRoom_Stage == 3) && !C006_Isolation_Outro_StuckPillory && C006_Isolation_Outro_StuckCross) DrawText(ctx, GetText("Outro1E"), 400, 150, "White");
if (C006_Isolation_IsolationRoom_Stage <= 1) DrawText(GetText("Outro1A"), 400, 150, "White");
if (C006_Isolation_IsolationRoom_Stage == 2) DrawText(GetText("Outro1B"), 400, 150, "White");
if ((C006_Isolation_IsolationRoom_Stage == 3) && !C006_Isolation_Outro_StuckPillory && !C006_Isolation_Outro_StuckCross) DrawText(GetText("Outro1C"), 400, 150, "White");
if ((C006_Isolation_IsolationRoom_Stage == 3) && C006_Isolation_Outro_StuckPillory && !C006_Isolation_Outro_StuckCross) DrawText(GetText("Outro1D"), 400, 150, "White");
if ((C006_Isolation_IsolationRoom_Stage == 3) && !C006_Isolation_Outro_StuckPillory && C006_Isolation_Outro_StuckCross) DrawText(GetText("Outro1E"), 400, 150, "White");
}
if (C006_Isolation_Outro_EarlyRelease) DrawText(ctx, GetText("Outro1F"), 400, 150, "White");
if (C006_Isolation_Outro_EarlyEscape) DrawText(ctx, GetText("Outro1G"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Outro2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Outro3"), 400, 450, "White");
if (C006_Isolation_Outro_EarlyRelease) DrawText(GetText("Outro1F"), 400, 150, "White");
if (C006_Isolation_Outro_EarlyEscape) DrawText(GetText("Outro1G"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("Outro2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText("Outro3"), 400, 450, "White");
}

View file

@ -10,15 +10,14 @@ function C007_LunchBreak_Intro_Load() {
function C007_LunchBreak_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 450, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 450, 250, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 450, 350, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 450, 450, "White");
DrawText(GetText("Intro1"), 450, 150, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 450, 250, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 450, 350, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 450, 450, "White");
}

View file

@ -20,47 +20,46 @@ function C007_LunchBreak_Outro_Load() {
// Chapter 7 - Lunch Break Run
function C007_LunchBreak_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
if (C007_LunchBreak_ActorSelect_Actor == "") DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/EatAlone.jpg", 800, 0);
else DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
// Paints the background
DrawRect(0, 0, 800, 600, "black");
if (C007_LunchBreak_ActorSelect_Actor == "") DrawImage(CurrentChapter + "/" + CurrentScreen + "/EatAlone.jpg", 800, 0);
else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
// Special Natalie/Kinbaku dialog for the outro
if (C007_LunchBreak_ActorSelect_Kinbaku) {
if (TextPhase >= 0) DrawText(ctx, GetText("Kinbaku1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Kinbaku2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Kinbaku3"), 400, 450, "White");
if (TextPhase >= 0) DrawText(GetText("Kinbaku1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("Kinbaku2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText("Kinbaku3"), 400, 450, "White");
} else {
// Text for eating alone
if (C007_LunchBreak_ActorSelect_Actor == "") {
if (TextPhase >= 0) DrawText(ctx, GetText("EatAlone1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("EatAlone2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("EatAlone3"), 400, 450, "White");
if (TextPhase >= 0) DrawText(GetText("EatAlone1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("EatAlone2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText("EatAlone3"), 400, 450, "White");
}
// Text for no food leave
if ((C007_LunchBreak_ActorSelect_Actor != "") && C007_LunchBreak_ActorSelect_NoFood) {
if (TextPhase >= 0) DrawText(ctx, GetText("NoFood1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("NoFood2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("NoFood3"), 400, 450, "White");
if (TextPhase >= 0) DrawText(GetText("NoFood1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("NoFood2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText("NoFood3"), 400, 450, "White");
}
// Text for early/evil leave
if ((C007_LunchBreak_ActorSelect_Actor != "") && (C007_LunchBreak_ActorSelect_EarlyLeave || C007_LunchBreak_ActorSelect_EvilEnding) && !C007_LunchBreak_ActorSelect_NoFood) {
if ((TextPhase >= 0) && !C007_LunchBreak_ActorSelect_EvilEnding) DrawText(ctx, GetText("Early1"), 400, 150, "White");
if ((TextPhase >= 0) && C007_LunchBreak_ActorSelect_EvilEnding) DrawText(ctx, GetText("Evil1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("EvilEarly2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("EvilEarly3"), 400, 450, "White");
if ((TextPhase >= 0) && !C007_LunchBreak_ActorSelect_EvilEnding) DrawText(GetText("Early1"), 400, 150, "White");
if ((TextPhase >= 0) && C007_LunchBreak_ActorSelect_EvilEnding) DrawText(GetText("Evil1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("EvilEarly2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText("EvilEarly3"), 400, 450, "White");
}
// Text for eating with someone
if ((C007_LunchBreak_ActorSelect_Actor != "") && !C007_LunchBreak_ActorSelect_EarlyLeave && !C007_LunchBreak_ActorSelect_EvilEnding && !C007_LunchBreak_ActorSelect_NoFood) {
if (TextPhase >= 0) DrawText(ctx, GetText("RegularBonus1"), 400, 150, "White");
if ((TextPhase >= 1) && C007_LunchBreak_ActorSelect_BonusDone) DrawText(ctx, GetText("Bonus2"), 400, 300, "White");
if ((TextPhase >= 1) && !C007_LunchBreak_ActorSelect_BonusDone) DrawText(ctx, GetText("Regular2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("RegularBonus3"), 400, 450, "White");
if (TextPhase >= 0) DrawText(GetText("RegularBonus1"), 400, 150, "White");
if ((TextPhase >= 1) && C007_LunchBreak_ActorSelect_BonusDone) DrawText(GetText("Bonus2"), 400, 300, "White");
if ((TextPhase >= 1) && !C007_LunchBreak_ActorSelect_BonusDone) DrawText(GetText("Regular2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText("RegularBonus3"), 400, 450, "White");
}
}

View file

@ -34,3 +34,6 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image
300,0,0,,,SarahPlayerLunch0.jpg
310,0,0,,,SarahPlayerLunch0.jpg
320,0,0,,,SarahPlayerLunch0.jpg
330,0,0,,,SarahLocker.jpg
340,0,0,,,SarahLocker.jpg
350,0,0,,,SarahLocker.jpg

1 Stage LoveReq SubReq VarReq IntroText Image
34 300 0 0 SarahPlayerLunch0.jpg
35 310 0 0 SarahPlayerLunch0.jpg
36 320 0 0 SarahPlayerLunch0.jpg
37 330 0 0 SarahLocker.jpg
38 340 0 0 SarahLocker.jpg
39 350 0 0 SarahLocker.jpg

Binary file not shown.

After

(image error) Size: 101 KiB

View file

@ -327,4 +327,17 @@ function C007_LunchBreak_Sarah_EvilEnd() {
// Chapter 7 - Sarah Kiss
function C007_LunchBreak_Sarah_Kiss() {
GameLogAdd("Kiss");
}
// Chapter 7 - Sarah can give an armbinder at the end if she was happy at lunch
function C007_LunchBreak_Sarah_TestArmbinder() {
if (!GameLogQuery(CurrentChapter, CurrentActor, "Orgasm"))
C007_LunchBreak_Sarah_EndChapter();
else
CurrentTime = CurrentTime + 300000;
}
// Chapter 7 - Sarah give an armbinder
function C007_LunchBreak_Sarah_AddArmbinder() {
PlayerAddInventory("Armbinder", 1);
}

View file

@ -126,4 +126,11 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
310,0,0,,I'll take the bill.,"Aaaaaw, that's way too kind|of you. Let's go back then.",320,0,1,
310,0,0,,We should|split the bill.,That's perfectly fine!|Let's go back then.,320,0,0,
310,0,0,,Do we get out|without paying?,That's very tempting! But they|know me too well in this cafe.,320,0,0,
320,0,0,,Let's go back.|(Back to college.),,0,0,0,EndChapter()
320,0,0,,Let's go back.|(Back to college.),"(On your way back, Sarah stops by the lockers.)|Please wait a minute. I have a gift for you.",330,0,0,TestArmbinder()
330,0,0,,A gift? I don't|deserve one.,"Sure you do, I had a wonderful time.|(She gives you a leather armbinder.)",340,0,-1,AddArmbinder()
330,0,0,,That's very kind of you.,"It's my pleasure, I had a wonderful time.|(She gives you a leather armbinder.)",340,1,0,AddArmbinder()
330,0,0,,What kind of gift?,"I had a wonderful time, this is for you.|(She gives you a leather armbinder.)",340,0,0,AddArmbinder()
340,0,0,,Thanks Sarah!,You're welcome! I'm sure|you'll use it better than me.,350,0,0,
340,0,0,,Great! I will|use it on you.,(She giggles.) I certainly hope so.,350,0,1,
340,0,0,,This binder looks|kind of cheap.,"Oh no, it's a great device.|Try it later and you'll see.",350,-1,0,
350,0,0,,See you later!|(Go to next class.),,350,0,0,EndChapter()

1 Stage LoveReq SubReq VarReq Interaction Result NextStage LoveMod SubMod Function
126 310 0 0 I'll take the bill. Aaaaaw, that's way too kind|of you. Let's go back then. 320 0 1
127 310 0 0 We should|split the bill. That's perfectly fine!|Let's go back then. 320 0 0
128 310 0 0 Do we get out|without paying? That's very tempting! But they|know me too well in this cafe. 320 0 0
129 320 0 0 Let's go back.|(Back to college.) (On your way back, Sarah stops by the lockers.)|Please wait a minute. I have a gift for you. 0 330 0 0 EndChapter() TestArmbinder()
130 330 0 0 A gift? I don't|deserve one. Sure you do, I had a wonderful time.|(She gives you a leather armbinder.) 340 0 -1 AddArmbinder()
131 330 0 0 That's very kind of you. It's my pleasure, I had a wonderful time.|(She gives you a leather armbinder.) 340 1 0 AddArmbinder()
132 330 0 0 What kind of gift? I had a wonderful time, this is for you.|(She gives you a leather armbinder.) 340 0 0 AddArmbinder()
133 340 0 0 Thanks Sarah! You're welcome! I'm sure|you'll use it better than me. 350 0 0
134 340 0 0 Great! I will|use it on you. (She giggles.) I certainly hope so. 350 0 1
135 340 0 0 This binder looks|kind of cheap. Oh no, it's a great device.|Try it later and you'll see. 350 -1 0
136 350 0 0 See you later!|(Go to next class.) 350 0 0 EndChapter()

View file

@ -41,7 +41,7 @@ function C008_DramaClass_AmandaIntro_CalcParams() {
C008_DramaClass_AmandaIntro_PlayerInArmbinder = (PlayerHasLockedInventory("Armbinder"));
C008_DramaClass_AmandaIntro_PlayerIsCuffed = (PlayerHasLockedInventory("Cuffs"));
C008_DramaClass_AmandaIntro_ReadyHug = (!C008_DramaClass_AmandaIntro_IsRestrained && !C008_DramaClass_AmandaIntro_IsGagged && !C008_DramaClass_AmandaIntro_IsChaste && Common_PlayerUnderwear && !Common_PlayerRestrained && !Common_PlayerGagged && !Common_PlayerChaste);
C008_DramaClass_AmandaIntro_SarahReadyHug = ((C008_DramaClass_SarahIntro_CurrentStage == 20) && !ActorSpecificHasInventory("Sarah", "Cuffs") && !ActorSpecificHasInventory("Sarah", "Rope") && !ActorSpecificHasInventory("Sarah", "BallGag") && !ActorSpecificHasInventory("Sarah", "TapeGag") && !ActorSpecificHasInventory("Sarah", "ClothGag") && !ActorSpecificHasInventory("Sarah", "ChastityBelt"));
C008_DramaClass_AmandaIntro_SarahReadyHug = ((C008_DramaClass_SarahIntro_CurrentStage == 20) && !ActorSpecificHasInventory("Sarah", "Cuffs") && !ActorSpecificHasInventory("Sarah", "Rope") && !ActorSpecificHasInventory("Sarah", "Armbinder") && !ActorSpecificHasInventory("Sarah", "BallGag") && !ActorSpecificHasInventory("Sarah", "TapeGag") && !ActorSpecificHasInventory("Sarah", "ClothGag") && !ActorSpecificHasInventory("Sarah", "ChastityBelt"));
}
// Chapter 8 - Amanda Intro Load
@ -254,7 +254,7 @@ function C008_DramaClass_AmandaIntro_Masturbate() {
function C008_DramaClass_AmandaIntro_RandomBondage() {
if (ActorGetValue(ActorSubmission) < 5) {
if (Common_PlayerUnderwear || Common_PlayerNaked) {
if (PlayerHasInventory("Cuffs") || PlayerHasInventory("Rope") || PlayerHasInventory("BallGag") || PlayerHasInventory("TapeGag") || PlayerHasInventory("ClothGag")) {
if (PlayerHasInventory("Cuffs") || PlayerHasInventory("Rope") || PlayerHasInventory("Armbinder") || PlayerHasInventory("BallGag") || PlayerHasInventory("TapeGag") || PlayerHasInventory("ClothGag")) {
PlayerRandomBondage();
C008_DramaClass_AmandaIntro_CalcParams();
OverridenIntroText = GetText("PlayerRandomBondage");

View file

@ -9,18 +9,17 @@ function C008_DramaClass_DressingRoom_Load() {
function C008_DramaClass_DressingRoom_Run() {
// Draw the background image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
// Draw Sarah
if (!GameLogQuery("C007_LunchBreak", "Sarah", "Stranded")) {
if (C008_DramaClass_SarahIntro_CurrentStage == 0) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/SarahSearch.png", 0, 0);
if (C008_DramaClass_SarahIntro_CurrentStage == 0) DrawImage(CurrentChapter + "/" + CurrentScreen + "/SarahSearch.png", 0, 0);
else DrawActor("Sarah", 130, 50, 0.575);
}
// Draw Amanda
if (!GameLogQuery("C007_LunchBreak", "Amanda", "Stranded")) {
if (C008_DramaClass_AmandaIntro_CurrentStage == 0) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/AmandaSearch.png", 800, 0);
if (C008_DramaClass_AmandaIntro_CurrentStage == 0) DrawImage(CurrentChapter + "/" + CurrentScreen + "/AmandaSearch.png", 800, 0);
else DrawActor("Amanda", 800, 50, 0.575);
}

View file

@ -10,15 +10,14 @@ function C008_DramaClass_Intro_Load() {
function C008_DramaClass_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 450, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 450, 250, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 450, 350, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 450, 450, "White");
DrawText(GetText("Intro1"), 450, 150, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 450, 250, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 450, 350, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 450, 450, "White");
}

View file

@ -30,31 +30,30 @@ function C008_DramaClass_Outro_Load() {
function C008_DramaClass_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawRect(0, 0, 800, 600, "black");
// If there was a crime that leads to chapter 10
if ((C008_DramaClass_Outro_Crime == "AmandaStranded") || (C008_DramaClass_Outro_Crime == "SarahStranded") || (C008_DramaClass_Outro_Crime == "SidneyStranded") || (C008_DramaClass_Outro_Crime == "JenniferStranded")) {
// Draw the outro text to lead to chapter 10
DrawText(ctx, GetText("Outro1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Outro2"), 400, 250, "White");
if ((TextPhase >= 2) && ((C008_DramaClass_Outro_Crime == "AmandaStranded") || (C008_DramaClass_Outro_Crime == "SarahStranded"))) DrawText(ctx, GetText("AmandaSarah3"), 400, 350, "White");
if ((TextPhase >= 3) && ((C008_DramaClass_Outro_Crime == "AmandaStranded") || (C008_DramaClass_Outro_Crime == "SarahStranded"))) DrawText(ctx, GetText("AmandaSarah4"), 400, 450, "White");
if ((TextPhase >= 2) && ((C008_DramaClass_Outro_Crime == "SidneyStranded") || (C008_DramaClass_Outro_Crime == "JenniferStranded"))) DrawText(ctx, GetText("SidneyJennifer3"), 400, 350, "White");
if ((TextPhase >= 3) && ((C008_DramaClass_Outro_Crime == "SidneyStranded") || (C008_DramaClass_Outro_Crime == "JenniferStranded"))) DrawText(ctx, GetText("SidneyJennifer4"), 400, 450, "White");
DrawText(GetText("Outro1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("Outro2"), 400, 250, "White");
if ((TextPhase >= 2) && ((C008_DramaClass_Outro_Crime == "AmandaStranded") || (C008_DramaClass_Outro_Crime == "SarahStranded"))) DrawText(GetText("AmandaSarah3"), 400, 350, "White");
if ((TextPhase >= 3) && ((C008_DramaClass_Outro_Crime == "AmandaStranded") || (C008_DramaClass_Outro_Crime == "SarahStranded"))) DrawText(GetText("AmandaSarah4"), 400, 450, "White");
if ((TextPhase >= 2) && ((C008_DramaClass_Outro_Crime == "SidneyStranded") || (C008_DramaClass_Outro_Crime == "JenniferStranded"))) DrawText(GetText("SidneyJennifer3"), 400, 350, "White");
if ((TextPhase >= 3) && ((C008_DramaClass_Outro_Crime == "SidneyStranded") || (C008_DramaClass_Outro_Crime == "JenniferStranded"))) DrawText(GetText("SidneyJennifer4"), 400, 450, "White");
// The image changes to show the girls
if (TextPhase <= 1) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
if ((TextPhase >= 2) && ((C008_DramaClass_Outro_Crime == "AmandaStranded") || (C008_DramaClass_Outro_Crime == "SarahStranded"))) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/AmandaSarah.jpg", 800, 0);
if ((TextPhase >= 2) && ((C008_DramaClass_Outro_Crime == "SidneyStranded") || (C008_DramaClass_Outro_Crime == "JenniferStranded"))) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/SidneyJennifer.jpg", 800, 0);
if (TextPhase <= 1) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
if ((TextPhase >= 2) && ((C008_DramaClass_Outro_Crime == "AmandaStranded") || (C008_DramaClass_Outro_Crime == "SarahStranded"))) DrawImage(CurrentChapter + "/" + CurrentScreen + "/AmandaSarah.jpg", 800, 0);
if ((TextPhase >= 2) && ((C008_DramaClass_Outro_Crime == "SidneyStranded") || (C008_DramaClass_Outro_Crime == "JenniferStranded"))) DrawImage(CurrentChapter + "/" + CurrentScreen + "/SidneyJennifer.jpg", 800, 0);
} else {
// Draw the outro text to lead to chapter 9
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
DrawText(ctx, GetText("Outro1"), 400, 200, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Outro2"), 400, 400, "White");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
DrawText(GetText("Outro1"), 400, 200, "White");
if (TextPhase >= 1) DrawText(GetText("Outro2"), 400, 400, "White");
}

View file

@ -37,7 +37,7 @@ function C008_DramaClass_SarahIntro_CalcParams() {
C008_DramaClass_SarahIntro_PlayerInArmbinder = (PlayerHasLockedInventory("Armbinder"));
C008_DramaClass_SarahIntro_PlayerIsCuffed = (PlayerHasLockedInventory("Cuffs"));
C008_DramaClass_SarahIntro_ReadyHug = (!C008_DramaClass_SarahIntro_IsRestrained && !C008_DramaClass_SarahIntro_IsGagged && !C008_DramaClass_SarahIntro_IsChaste && Common_PlayerUnderwear && !Common_PlayerRestrained && !Common_PlayerGagged && !Common_PlayerChaste);
C008_DramaClass_SarahIntro_AmandaReadyHug = ((C008_DramaClass_AmandaIntro_CurrentStage == 40) && !ActorSpecificHasInventory("Amanda", "Cuffs") && !ActorSpecificHasInventory("Amanda", "Rope") && !ActorSpecificHasInventory("Amanda", "BallGag") && !ActorSpecificHasInventory("Amanda", "TapeGag") && !ActorSpecificHasInventory("Amanda", "ClothGag") && !ActorSpecificHasInventory("Amanda", "ChastityBelt"));
C008_DramaClass_SarahIntro_AmandaReadyHug = ((C008_DramaClass_AmandaIntro_CurrentStage == 40) && !ActorSpecificHasInventory("Amanda", "Cuffs") && !ActorSpecificHasInventory("Amanda", "Rope") && !ActorSpecificHasInventory("Amanda", "Armbinder") && !ActorSpecificHasInventory("Amanda", "BallGag") && !ActorSpecificHasInventory("Amanda", "TapeGag") && !ActorSpecificHasInventory("Amanda", "ClothGag") && !ActorSpecificHasInventory("Amanda", "ChastityBelt"));
}
// Chapter 8 - Sarah Intro Load
@ -89,11 +89,11 @@ function C008_DramaClass_SarahIntro_Click() {
}
// Sarah can tease the player if she wants to use a toy on stage 0 or 10
if (((ClickInv == "Rope") || (ClickInv == "Cuffs") || (ClickInv == "TapeGag") || (ClickInv == "BallGag") || (ClickInv == "ClothGag") || (ClickInv == "ChastityBelt") || (ClickInv == "VibratingEgg")) && (C008_DramaClass_SarahIntro_CurrentStage < 20))
if (((ClickInv == "Rope") || (ClickInv == "Armbinder") || (ClickInv == "Cuffs") || (ClickInv == "TapeGag") || (ClickInv == "BallGag") || (ClickInv == "ClothGag") || (ClickInv == "ChastityBelt") || (ClickInv == "VibratingEgg")) && (C008_DramaClass_SarahIntro_CurrentStage < 20))
OverridenIntroText = GetText("CostumeBeforeFun");
// Sarah refuses but tease the player on stage 30
if (((ClickInv == "Rope") || (ClickInv == "Cuffs") || (ClickInv == "TapeGag") || (ClickInv == "BallGag") || (ClickInv == "ClothGag") || (ClickInv == "ChastityBelt") || (ClickInv == "VibratingEgg")) && (C008_DramaClass_SarahIntro_CurrentStage == 30))
if (((ClickInv == "Rope") || (ClickInv == "Armbinder") || (ClickInv == "Cuffs") || (ClickInv == "TapeGag") || (ClickInv == "BallGag") || (ClickInv == "ClothGag") || (ClickInv == "ChastityBelt") || (ClickInv == "VibratingEgg")) && (C008_DramaClass_SarahIntro_CurrentStage == 30))
OverridenIntroText = GetText("CostumeBlocksFun");
// Sarah can be restrained on stage 20
@ -127,7 +127,7 @@ function C008_DramaClass_SarahIntro_CheckUngag() {
function C008_DramaClass_SarahIntro_RandomBondage() {
if (ActorGetValue(ActorSubmission) < 5) {
if (Common_PlayerUnderwear || Common_PlayerNaked) {
if (PlayerHasInventory("Cuffs") || PlayerHasInventory("Rope") || PlayerHasInventory("BallGag") || PlayerHasInventory("TapeGag") || PlayerHasInventory("ClothGag")) {
if (PlayerHasInventory("Cuffs") || PlayerHasInventory("Rope") || PlayerHasInventory("Armbinder") || PlayerHasInventory("BallGag") || PlayerHasInventory("TapeGag") || PlayerHasInventory("ClothGag")) {
PlayerRandomBondage();
C008_DramaClass_SarahIntro_CalcParams();
OverridenIntroText = GetText("PlayerRandomBondage");

View file

@ -113,15 +113,12 @@ function C008_DramaClass_Theater_Load() {
// Chapter 8 - Theater Run
function C008_DramaClass_Theater_Run() {
// Draw the background image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
// Draw the 3 actresses and Julia
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawActor(C008_DramaClass_Theater_Damsel, 50, 60, 0.55);
DrawActor(C008_DramaClass_Theater_Villain, 300, 60, 0.55);
DrawActor(C008_DramaClass_Theater_Heroine, 850, 60, 0.55);
if (C008_DramaClass_Theater_GlobalStage < 300) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Julia.png", 550, 250);
if (C008_DramaClass_Theater_GlobalStage < 300) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Julia.png", 550, 250);
else DrawActor("Julia", 575, 60, 0.55);
}

View file

@ -26,20 +26,19 @@ function C008_DramaClass_Transition_Load() {
function C008_DramaClass_Transition_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Julia.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Julia.jpg", 800, 0);
// Sets if the transition is late or not
var LateForDrama = "Transition";
if (CurrentTime == 13.5 * 60 * 60 * 1000) LateForDrama = "Late";
// Draw the outro text
DrawText(ctx, GetText(LateForDrama + "1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText(LateForDrama + "2"), 400, 300, "White");
if ((TextPhase >= 2) && !GameLogQuery("C007_LunchBreak", "Amanda", "Stranded") && !GameLogQuery("C007_LunchBreak", "Sarah", "Stranded")) DrawText(ctx, GetText(LateForDrama + "3"), 400, 450, "White");
if ((TextPhase >= 2) && GameLogQuery("C007_LunchBreak", "Amanda", "Stranded")) DrawText(ctx, GetText("Amanda"), 400, 450, "White");
if ((TextPhase >= 2) && GameLogQuery("C007_LunchBreak", "Sarah", "Stranded")) DrawText(ctx, GetText("Sarah"), 400, 450, "White");
DrawText(GetText(LateForDrama + "1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText(LateForDrama + "2"), 400, 300, "White");
if ((TextPhase >= 2) && !GameLogQuery("C007_LunchBreak", "Amanda", "Stranded") && !GameLogQuery("C007_LunchBreak", "Sarah", "Stranded")) DrawText(GetText(LateForDrama + "3"), 400, 450, "White");
if ((TextPhase >= 2) && GameLogQuery("C007_LunchBreak", "Amanda", "Stranded")) DrawText(GetText("Amanda"), 400, 450, "White");
if ((TextPhase >= 2) && GameLogQuery("C007_LunchBreak", "Sarah", "Stranded")) DrawText(GetText("Sarah"), 400, 450, "White");
}

View file

@ -252,7 +252,7 @@ function C008_DramaClass_Villain_Masturbate() {
C008_DramaClass_Villain_MastubateCount++;
// Amanda will climax if she's properly tied up
if ((C008_DramaClass_Villain_MastubateCount >= 3) && !C008_DramaClass_Villain_OrgasmDone && ActorIsGagged() && ActorHasInventory("TwoRopes")) {
if ((C008_DramaClass_Villain_MastubateCount >= 3) && !C008_DramaClass_Villain_OrgasmDone && ActorIsGagged() && (ActorHasInventory("TwoRopes") || ActorHasInventory("Armbinder"))) {
C008_DramaClass_Villain_OrgasmDone = true;
ActorAddOrgasm();
ActorChangeAttitude(1, 0);
@ -265,7 +265,7 @@ function C008_DramaClass_Villain_Masturbate() {
// Chapter 8 - Villain Ravish
function C008_DramaClass_Villain_Ravish() {
if (!C008_DramaClass_Villain_RavishDone) { C008_DramaClass_Villain_RavishDone = true; ActorChangeAttitude(0, -1); }
if ((ActorGetValue(ActorSubmission) < 5) && !ActorIsRestrained() && !ActorIsGagged() && (PlayerHasInventory("Rope") || PlayerHasInventory("Cuffs"))) {
if ((ActorGetValue(ActorSubmission) < 5) && !ActorIsRestrained() && !ActorIsGagged() && (PlayerHasInventory("Rope") || PlayerHasInventory("Armbinder") || PlayerHasInventory("Cuffs"))) {
CurrentTime = CurrentTime + 50000;
PlayerRandomBondage();
OverridenIntroText = GetText("Ravish");

View file

@ -11,16 +11,15 @@ function C009_Library_Intro_Load() {
function C009_Library_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 450, 100, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 450, 200, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 450, 300, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 450, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Intro5"), 450, 500, "White");
DrawText(GetText("Intro1"), 450, 100, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 450, 200, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 450, 300, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 450, 400, "White");
if (TextPhase >= 4) DrawText(GetText("Intro5"), 450, 500, "White");
}

Binary file not shown.

Before

(image error) Size: 354 KiB

After

(image error) Size: 214 KiB

Binary file not shown.

Before

(image error) Size: 410 KiB

After

(image error) Size: 354 KiB

Binary file not shown.

Before

(image error) Size: 214 KiB

After

(image error) Size: 221 KiB

View file

@ -1,6 +1,8 @@
var C009_Library_Library_CurrentZone = "001";
var C009_Library_Library_JenniferGone = false;
var C009_Library_Library_BookProgress = 40;
var C009_Library_Library_FoundLockedDoor = false;
var C009_Library_Library_StuckInHole = false;
// Chapter 9 - Library Load
function C009_Library_Library_Load() {
@ -20,48 +22,48 @@ function C009_Library_Library_Load() {
}
// Draw the navigation arrows
function C009_Library_Library_Navigation(ctx, Zone, Direction, X, Y) {
function C009_Library_Library_Navigation(Zone, Direction, X, Y) {
if (C009_Library_Library_CurrentZone == Zone) {
var Active = false;
if ((MouseX >= X) && (MouseX <= X + 200) && (MouseY >= Y) && (MouseY <= Y + 200) && !IsMobile) Active = true;
if ((Direction == "Up") && Active) DrawImage(ctx, Icons.Navigation.ArrowUpActive, X, Y);
if ((Direction == "Up") && !Active) DrawImage(ctx, Icons.Navigation.ArrowUpInactive, X, Y);
if ((Direction == "Down") && Active) DrawImage(ctx, Icons.Navigation.ArrowDownActive, X, Y);
if ((Direction == "Down") && !Active) DrawImage(ctx, Icons.Navigation.ArrowDownInactive, X, Y);
if ((Direction == "Left") && Active) DrawImage(ctx, Icons.Navigation.ArrowLeftActive, X, Y);
if ((Direction == "Left") && !Active) DrawImage(ctx, Icons.Navigation.ArrowLeftInactive, X, Y);
if ((Direction == "Right") && Active) DrawImage(ctx, Icons.Navigation.ArrowRightActive, X, Y);
if ((Direction == "Right") && !Active) DrawImage(ctx, Icons.Navigation.ArrowRightInactive, X, Y);
if ((Direction == "Up") && Active) DrawImage(Icons.Navigation.ArrowUpActive, X, Y);
if ((Direction == "Up") && !Active) DrawImage(Icons.Navigation.ArrowUpInactive, X, Y);
if ((Direction == "Down") && Active) DrawImage(Icons.Navigation.ArrowDownActive, X, Y);
if ((Direction == "Down") && !Active) DrawImage(Icons.Navigation.ArrowDownInactive, X, Y);
if ((Direction == "Left") && Active) DrawImage(Icons.Navigation.ArrowLeftActive, X, Y);
if ((Direction == "Left") && !Active) DrawImage(Icons.Navigation.ArrowLeftInactive, X, Y);
if ((Direction == "Right") && Active) DrawImage(Icons.Navigation.ArrowRightActive, X, Y);
if ((Direction == "Right") && !Active) DrawImage(Icons.Navigation.ArrowRightInactive, X, Y);
}
}
// Chapter 9 - Library Run
function C009_Library_Library_Run() {
// Draw the background image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + C009_Library_Library_CurrentZone + ".jpg", 0, 0);
// Draw the navigation arrows
C009_Library_Library_Navigation(ctx, "001", "Left", 0, 400);
C009_Library_Library_Navigation(ctx, "001", "Up", 500, 350);
C009_Library_Library_Navigation(ctx, "001", "Right", 1000, 400);
C009_Library_Library_Navigation(ctx, "002", "Up", 500, 200);
C009_Library_Library_Navigation(ctx, "002", "Down", 500, 400);
C009_Library_Library_Navigation(ctx, "002", "Left", 0, 400);
C009_Library_Library_Navigation(ctx, "002", "Right", 1000, 400);
C009_Library_Library_Navigation(ctx, "003", "Down", 500, 400);
C009_Library_Library_Navigation(ctx, "004", "Up", 780, 150);
C009_Library_Library_Navigation(ctx, "004", "Left", 80, 200);
C009_Library_Library_Navigation(ctx, "004", "Left", 550, 150);
C009_Library_Library_Navigation(ctx, "005", "Down", 500, 400);
C009_Library_Library_Navigation(ctx, "006", "Right", 600, 200);
C009_Library_Library_Navigation(ctx, "006", "Left", 400, 200);
C009_Library_Library_Navigation(ctx, "006", "Down", 500, 400);
C009_Library_Library_Navigation(ctx, "007", "Down", 500, 400);
// TO REMOVE
if ((C009_Library_Library_CurrentZone == "005") || (C009_Library_Library_CurrentZone == "007")) DrawText(ctx, "This zone will be available in another version", 600, 175, "white");
// Draw the background image and navigation arrows
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + C009_Library_Library_CurrentZone + ".jpg", 0, 0);
C009_Library_Library_Navigation("001", "Left", 0, 400);
C009_Library_Library_Navigation("001", "Up", 500, 350);
C009_Library_Library_Navigation("001", "Right", 1000, 400);
C009_Library_Library_Navigation("002", "Up", 500, 200);
C009_Library_Library_Navigation("002", "Down", 500, 400);
C009_Library_Library_Navigation("002", "Left", 0, 400);
C009_Library_Library_Navigation("002", "Right", 1000, 400);
C009_Library_Library_Navigation("003", "Down", 500, 400);
C009_Library_Library_Navigation("004", "Up", 780, 150);
C009_Library_Library_Navigation("004", "Left", 80, 200);
C009_Library_Library_Navigation("004", "Left", 550, 150);
C009_Library_Library_Navigation("005", "Down", 500, 400);
C009_Library_Library_Navigation("005", "Left", 200, 200);
C009_Library_Library_Navigation("006", "Right", 800, 200);
C009_Library_Library_Navigation("006", "Left", 400, 200);
C009_Library_Library_Navigation("006", "Down", 500, 400);
C009_Library_Library_Navigation("007", "Down", 500, 400);
C009_Library_Library_Navigation("007", "Right", 800, 200);
C009_Library_Library_Navigation("007", "Left", 200, 200);
C009_Library_Library_Navigation("008", "Right", 800, 200);
C009_Library_Library_Navigation("008", "Up", 500, 200);
C009_Library_Library_Navigation("009", "Down", 720, 400);
}
@ -87,6 +89,13 @@ function C009_Library_Library_LoadJennifer() {
return false;
}
// Chapter 9 - Library Load Yuki
function C009_Library_Library_LoadYuki() {
CurrentTime = CurrentTime + 10000;
SetScene(CurrentChapter, "Yuki");
return false;
}
// Chapter 9 - Library Click
function C009_Library_Library_Click() {
@ -116,8 +125,10 @@ function C009_Library_Library_Click() {
if (E && (C009_Library_Library_CurrentZone == "004") && (MouseX >= 80) && (MouseX <= 280) && (MouseY >= 200) && (MouseY <= 400)) E = C009_Library_Library_EnterZone("007");
if (E && (C009_Library_Library_CurrentZone == "004") && (MouseX >= 550) && (MouseX <= 750) && (MouseY >= 150) && (MouseY <= 350)) E = C009_Library_Library_StartSearch(C009_Library_Library_BookProgress);
// In Zone 5, the player can go to zone 2 (down)
// In Zone 5, the player can go to zone 2 (down), zone 8 (left), search (right)
if (E && (C009_Library_Library_CurrentZone == "005") && (MouseX >= 500) && (MouseX <= 700) && (MouseY >= 400) && (MouseY <= 600)) E = C009_Library_Library_EnterZone("002");
if (E && (C009_Library_Library_CurrentZone == "005") && (MouseX >= 200) && (MouseX <= 400) && (MouseY >= 200) && (MouseY <= 400)) E = C009_Library_Library_EnterZone("008");
if (E && (C009_Library_Library_CurrentZone == "005") && (MouseX >= 800) && (MouseX <= 1200) && (MouseY >= 0) && (MouseY <= 400)) E = C009_Library_Library_StartSearch(50);
// In Zone 6, the player can go to zone 2 (down), meet Jennifer (left), or search in books (right)
if (E && (C009_Library_Library_CurrentZone == "006") && (MouseX >= 400) && (MouseX <= 600) && (MouseY >= 200) && (MouseY <= 400)) E = C009_Library_Library_StartSearch(61);
@ -125,7 +136,18 @@ function C009_Library_Library_Click() {
if (E && (C009_Library_Library_CurrentZone == "006") && (MouseX >= 600) && (MouseX <= 800) && (MouseY >= 200) && (MouseY <= 400) && !C009_Library_Library_JenniferGone) E = C009_Library_Library_LoadJennifer();
if (E && (C009_Library_Library_CurrentZone == "006") && (MouseX >= 500) && (MouseX <= 700) && (MouseY >= 400) && (MouseY <= 600)) E = C009_Library_Library_EnterZone("002");
// In Zone 7, the player can go to zone 4 (down)
// In Zone 7, the player can go to zone 4 (down), zone 9 (left) or Yuki (right)
if (E && (C009_Library_Library_CurrentZone == "007") && (MouseX >= 500) && (MouseX <= 700) && (MouseY >= 400) && (MouseY <= 600)) E = C009_Library_Library_EnterZone("004");
if (E && (C009_Library_Library_CurrentZone == "007") && (MouseX >= 800) && (MouseX <= 1000) && (MouseY >= 200) && (MouseY <= 400)) E = C009_Library_Library_LoadYuki();
if (E && (C009_Library_Library_CurrentZone == "007") && (MouseX >= 200) && (MouseX <= 400) && (MouseY >= 200) && (MouseY <= 400)) E = C009_Library_Library_EnterZone("009");
// In Zone 8, the player can go to zone 5 (right) or search the door or on the left
if (E && (C009_Library_Library_CurrentZone == "008") && (MouseX >= 800) && (MouseX <= 1000) && (MouseY >= 200) && (MouseY <= 400)) E = C009_Library_Library_EnterZone("005");
if (E && (C009_Library_Library_CurrentZone == "008") && (MouseX >= 500) && (MouseX <= 700) && (MouseY >= 200) && (MouseY <= 400)) E = C009_Library_Library_StartSearch(80);
if (E && (C009_Library_Library_CurrentZone == "008") && (MouseX >= 0) && (MouseX <= 400) && (MouseY >= 0) && (MouseY <= 600)) E = C009_Library_Library_StartSearch(85);
// In Zone 9, the player can go to zone 7 (down) or search on the left
if (E && (C009_Library_Library_CurrentZone == "009") && (MouseX >= 720) && (MouseX <= 920) && (MouseY >= 400) && (MouseY <= 600)) E = C009_Library_Library_EnterZone("007");
if (E && (C009_Library_Library_CurrentZone == "009") && (MouseX >= 0) && (MouseX <= 600) && (MouseY >= 0) && (MouseY <= 600)) E = C009_Library_Library_StartSearch(90);
}

View file

@ -8,6 +8,7 @@ function C009_Library_Outro_Load() {
PlayerClothes("Clothed");
ActorSpecificClearInventory("Jennifer", false);
ActorSpecificSetPose("Jennifer", "");
if (C009_Library_Library_StuckInHole) GameLogAdd(CurrentChapter, "Player", "StuckInHole");
}
@ -15,14 +16,18 @@ function C009_Library_Outro_Load() {
function C009_Library_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
// Get the correct outro text depending on how the chapter ended
var OutroText = "Outro";
if (C009_Library_Library_StuckInHole) OutroText = "StuckInHole";
// Draw the outro text to lead to chapter 12
DrawText(ctx, GetText("Outro1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Outro2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Outro3"), 400, 450, "White");
// Draw the outro text to lead to chapter 11
DrawText(GetText(OutroText + "1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText(OutroText + "2"), 400, 250, "White");
if (TextPhase >= 2) DrawText(GetText(OutroText + "3"), 400, 350, "White");
if (TextPhase >= 3) DrawText(GetText(OutroText + "4"), 400, 450, "White");
}
@ -31,6 +36,6 @@ function C009_Library_Outro_Click() {
// Jump to the next animation
TextPhase++;
if (TextPhase >= 3) SaveMenu("C101_KinbakuClub", "Intro");
if (TextPhase >= 4) SaveMenu("C101_KinbakuClub", "Intro");
}

View file

@ -1,4 +1,9 @@
Tag,Content
Outro1,"The bell rings again, there's no more time to read."
Outro2,You leave the library and head to your next class.
Outro3,The next class will be available in another version.
Outro2,You find your way back from the library's maze.
Outro3,You leave the library and head to your next class.
Outro4,The next class will be available in another version.
StuckInHole1,The bell rings again and people starts walking in.
StuckInHole2,You're liberated from your humiliating position.
StuckInHole3,You leave the library and head to your next class.
StuckInHole4,The next class will be available in another version.

1 Tag Content
2 Outro1 The bell rings again, there's no more time to read.
3 Outro2 You leave the library and head to your next class. You find your way back from the library's maze.
4 Outro3 The next class will be available in another version. You leave the library and head to your next class.
5 Outro4 The next class will be available in another version.
6 StuckInHole1 The bell rings again and people starts walking in.
7 StuckInHole2 You're liberated from your humiliating position.
8 StuckInHole3 You leave the library and head to your next class.
9 StuckInHole4 The next class will be available in another version.

BIN
C009_Library/Search/50.jpg Normal file

Binary file not shown.

After

(image error) Size: 88 KiB

BIN
C009_Library/Search/80.jpg Normal file

Binary file not shown.

After

(image error) Size: 150 KiB

BIN
C009_Library/Search/85.jpg Normal file

Binary file not shown.

After

(image error) Size: 165 KiB

BIN
C009_Library/Search/86.jpg Normal file

Binary file not shown.

After

(image error) Size: 161 KiB

BIN
C009_Library/Search/87.jpg Normal file

Binary file not shown.

After

(image error) Size: 154 KiB

Binary file not shown.

After

(image error) Size: 154 KiB

BIN
C009_Library/Search/88.jpg Normal file

Binary file not shown.

After

(image error) Size: 154 KiB

Binary file not shown.

After

(image error) Size: 154 KiB

BIN
C009_Library/Search/90.jpg Normal file

Binary file not shown.

After

(image error) Size: 118 KiB

View file

@ -16,6 +16,15 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image
44,0,0,,"You found the book: ""The Count of Monte Cristo"".|You have to read up to chapter 5 for your next class.",41.jpg
45,0,0,,"You found the book: ""The Count of Monte Cristo"".|You have to read up to chapter 5 for your next class.",41.jpg
46,0,0,,"You found the book: ""The Count of Monte Cristo"".|You've already read up to chapter 5, you're ready.",41.jpg
50,0,0,,"On the left side of the corridor, there's|a shelve full of books on philosophy.",50.jpg
60,0,0,,You find an empty corner in the library.|There's an old couch and books on history.,60.jpg
61,0,0,,There are lots of old books in|the shelves of this corridor.,61.jpg
65,0,0,,,60Sit.jpg
80,0,0,,There's a closed wooden door leading|to another section of the library.,80.jpg
85,0,0,,The bookshelves are filled with books on psychology.|There's a small dark hole in one the shelves.,85.jpg
86,0,0,,,86.jpg
87,0,0,!Common_PlayerChaste,,87.jpg
87,0,0,Common_PlayerChaste,,87Chastity.jpg
88,0,0,!Common_PlayerChaste,,88.jpg
88,0,0,Common_PlayerChaste,,88Chastity.jpg
90,0,0,,The upper section is closed|and cannot be accessed.,90.jpg

1 Stage LoveReq SubReq VarReq IntroText Image
16 44 0 0 You found the book: "The Count of Monte Cristo".|You have to read up to chapter 5 for your next class. 41.jpg
17 45 0 0 You found the book: "The Count of Monte Cristo".|You have to read up to chapter 5 for your next class. 41.jpg
18 46 0 0 You found the book: "The Count of Monte Cristo".|You've already read up to chapter 5, you're ready. 41.jpg
19 50 0 0 On the left side of the corridor, there's|a shelve full of books on philosophy. 50.jpg
20 60 0 0 You find an empty corner in the library.|There's an old couch and books on history. 60.jpg
21 61 0 0 There are lots of old books in|the shelves of this corridor. 61.jpg
22 65 0 0 60Sit.jpg
23 80 0 0 There's a closed wooden door leading|to another section of the library. 80.jpg
24 85 0 0 The bookshelves are filled with books on psychology.|There's a small dark hole in one the shelves. 85.jpg
25 86 0 0 86.jpg
26 87 0 0 !Common_PlayerChaste 87.jpg
27 87 0 0 Common_PlayerChaste 87Chastity.jpg
28 88 0 0 !Common_PlayerChaste 88.jpg
29 88 0 0 Common_PlayerChaste 88Chastity.jpg
30 90 0 0 The upper section is closed|and cannot be accessed. 90.jpg

View file

@ -4,16 +4,20 @@ var C009_Library_Search_CanLearnRopeMastery = true;
var C009_Library_Search_CanSit = false;
var C009_Library_Search_MasturbateCount = 0;
var C009_Library_Search_IntroText = "";
var C009_Library_Search_CanClimb = false;
var C009_Library_Search_ClimbDone = false;
var C009_Library_Search_MagazineConfiscated = false;
// Chapter 9 Library - Search Area Load
function C009_Library_Search_Load() {
LeaveIcon = "Leave";
if ((C009_Library_Search_CurrentStage != 87) && (C009_Library_Search_CurrentStage != 88)) LeaveIcon = "Leave";
LeaveScreen = "Library";
LoadInteractions();
if (C009_Library_Search_IntroText != "") OverridenIntroText = C009_Library_Search_IntroText;
C009_Library_Search_IntroText = "";
Common_SelfBondageAllowed = false;
C009_Library_Search_CanSit = (!Common_PlayerGagged && !Common_PlayerRestrained);
C009_Library_Search_CanClimb = (PlayerGetSkillLevel("Sports") >= 1);
}
// Chapter 9 Library - Search Area Run
@ -45,18 +49,40 @@ function C009_Library_Search_SearchCounter() {
}
}
// Chapter 9 - Library Search for the "Sweet Gwendoline" magazine
function C009_Library_Search_SearchGwendoline() {
if (C009_Library_Search_MagazineConfiscated) {
C009_Library_Search_CurrentStage = 32;
OverridenIntroText = GetText("NoMoreSweetGwendoline");
}
}
// Chapter 9 - Library Masturbate, if the player has the egg, she can climax multiple times, if not, only 1 time
function C009_Library_Search_Masturbate() {
if (Common_PlayerChaste) {
OverridenIntroText = GetText("CannotMasturbate");
} else {
C009_Library_Search_MasturbateCount++;
if (C009_Library_Search_MasturbateCount == 3) { GameLogSpecificAdd("C009_Library", "", "SweetGwendolineOrgasm"); OverridenIntroText = GetText("Orgasm"); }
if ((C009_Library_Search_MasturbateCount >= 4) && !PlayerHasLockedInventory("VibratingEgg")) OverridenIntroText = GetText("OrgasmEnough");
if ((C009_Library_Search_MasturbateCount >= 4) && PlayerHasLockedInventory("VibratingEgg")) {
OverridenIntroText = GetText("OrgasmRepeat");
C009_Library_Search_MasturbateCount = 0;
// Yuki can catch the player masturbating, 1 chance out of 12
CurrentTime = CurrentTime + 50000;
if (C009_Library_Yuki_CanFindPlayer && (Math.floor(Math.random() * 12) == 0) && (C009_Library_Yuki_CurrentStage <= 300)) {
C009_Library_Yuki_CanFindPlayer = false;
PlayerUngag();
if (C009_Library_Yuki_CurrentStage < 100) C009_Library_Yuki_CurrentStage = 90;
if ((C009_Library_Yuki_CurrentStage >= 100) && (C009_Library_Yuki_CurrentStage < 200)) C009_Library_Yuki_CurrentStage = 190;
SetScene(CurrentChapter, "Yuki");
LeaveIcon = "";
GameLogAdd("CaughtInHole");
} else {
C009_Library_Search_MasturbateCount++;
if (C009_Library_Search_MasturbateCount == 3) { GameLogSpecificAdd("C009_Library", "", "SweetGwendolineOrgasm"); OverridenIntroText = GetText("Orgasm"); }
if ((C009_Library_Search_MasturbateCount >= 4) && !PlayerHasLockedInventory("VibratingEgg")) OverridenIntroText = GetText("OrgasmEnough");
if ((C009_Library_Search_MasturbateCount >= 4) && PlayerHasLockedInventory("VibratingEgg")) {
OverridenIntroText = GetText("OrgasmRepeat");
C009_Library_Search_MasturbateCount = 0;
}
}
}
}
@ -87,3 +113,62 @@ function C009_Library_Search_ReadFull() {
C009_Library_Library_BookProgress = C009_Library_Search_CurrentStage;
CurrentTime = CurrentTime + 890000;
}
// Chapter 9 - Library Climb
function C009_Library_Search_Climb() {
if (!C009_Library_Search_ClimbDone) {
C009_Library_Search_ClimbDone = true;
OverridenIntroText = GetText("ClimbFindItem");
PlayerAddRandomItem();
}
}
// Chapter 9 - Library Open Door
function C009_Library_Search_OpenDoor() {
C009_Library_Library_FoundLockedDoor = true;
}
// Chapter 9 - Library Force Door
function C009_Library_Search_ForceDoor() {
C009_Library_Library_FoundLockedDoor = true;
}
// Chapter 9 - Library No Leaving
function C009_Library_Search_NoLeave() {
LeaveIcon = "";
}
// Chapter 9 - Library Allow Leaving
function C009_Library_Search_AllowLeave() {
LeaveIcon = "Leave";
}
// Chapter 9 - Library - When the player gets stuck in a the hole
function C009_Library_Search_StuckInHole() {
C009_Library_Library_StuckInHole = true;
}
// Chapter 9 - Library - Wait for two minutes in the hole (There's 1 chance out of 12 that Yuki finds the player)
function C009_Library_Search_TwoMinutes() {
CurrentTime = CurrentTime + 110000;
if (C009_Library_Yuki_CanFindPlayer && (Math.floor(Math.random() * 12) == 0) && (C009_Library_Yuki_CurrentStage <= 300)) {
C009_Library_Yuki_CanFindPlayer = false;
PlayerUngag();
if (C009_Library_Yuki_CurrentStage < 100) C009_Library_Yuki_CurrentStage = 80;
if ((C009_Library_Yuki_CurrentStage >= 100) && (C009_Library_Yuki_CurrentStage < 200)) C009_Library_Yuki_CurrentStage = 180;
SetScene(CurrentChapter, "Yuki");
LeaveIcon = "";
GameLogAdd("CaughtInHole");
}
}
// Chapter 9 - Library - When the player struggles to go back from the hole (it works with Sports 1 or more)
function C009_Library_Search_StruggleBack() {
C009_Library_Search_TwoMinutes();
if ((PlayerGetSkillLevel("Sports") >= 1) && (CurrentScreen == "Search")) {
C009_Library_Library_StuckInHole = false;
OverridenIntroText = GetText("StruggleBackFromHolde");
LeaveIcon = "Leave";
C009_Library_Search_CurrentStage = 85;
}
}

View file

@ -4,7 +4,7 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
15,0,0,,(Stand up.)|(1 minute),You stand up from the chair.,10,0,0,
30,0,0,!Common_PlayerRestrained,(Search.)|(1 minute),You search in the shelves but all you|can find are boring books on mathematics.,30,0,0,
31,0,0,!Common_PlayerRestrained,(Search.)|(1 minute),You search the dead end part of the|corridor but don't find anything interesting.,31,0,0,SearchCounter()
32,0,0,!Common_PlayerRestrained,(Search.)|(1 minute),You search in the shelves and find a|comic book hidden in between the books.,33,0,0,
32,0,0,!Common_PlayerRestrained,(Search.)|(1 minute),You search in the shelves and find a|comic book hidden in between the books.,33,0,0,SearchGwendoline()
33,0,0,,(Fetch the comic.)|(1 minute),"It's an old comic called ""Sweet Gwendoline"".|It was written and drawn by John Willie.",34,0,0,
33,0,0,,(Leave it there.),You leave the comic between the books.,32,0,0,
34,0,0,,(Open the comic.)|(1 minute),"You flip a few pages. It tells the story of|Gwendoline, a blond who gets tied up often.",35,0,0,
@ -25,7 +25,24 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
44,0,0,,(Read chapter 4.),"You read the fourth chapter.|""Conspiracy""",45,0,0,ReadTime()
45,0,0,,(Read chapter 5.),"You read the fifth chapter: ""The Marriage Feast"".|You're now ready for your next class.",46,0,0,ReadTime()
46,0,0,,(Read all|over again.),"As a good student, your read|the whole thing all over again.",46,0,0,ReadFull()
50,0,0,!Common_PlayerRestrained,(Search.)|(1 minute),You search in the bookshelves but|all you can find are philosophy books.,50,0,0,
60,0,0,!Common_PlayerRestrained,(Search.)|(1 minute),You search in the bookshelves but|all you can find are history books.,60,0,0,
60,0,0,CanSit,(Sit down.)|(1 minute),You sit down and relax on the big couch.|It's pretty comfy and there's room for two.,65,0,0,
61,0,0,!Common_PlayerRestrained,(Search.)|(1 minute),You search in the bookshelves but|all you can find are history books.,61,0,0,
65,0,0,,(Stand up.)|(1 minute),You stand up from the couch.,60,0,0,
80,0,0,!Common_PlayerRestrained,(Knock.),You knock on the door but nobody answers.,80,0,0,
80,0,0,,(Listen.)|(1 minute),You put your ear against the|door but cannot hear anything.,80,0,0,
80,0,0,!Common_PlayerRestrained,(Open it.),You try to open the door but it's locked.|There's a keyhole but you'll need the proper key.,80,0,0,OpenDoor()
80,0,0,!Common_PlayerRestrained,(Force it.)|(1 minute),You kick and you ram your shoulder|into the door but it doesn't open.,80,0,0,ForceDoor()
85,0,0,!Common_PlayerRestrained,(Search the books.)|(1 minute),All you find are books on psychology.,85,0,0,
85,0,0,!Common_PlayerRestrained,(Inspect the hole.)|(1 minute),"You inspect the small dark hole in the shelve.|It goes deep, your hand cannot reach the end.",86,0,0,
86,0,0,,(Enter the hole.)|(1 minute),You can barely squeeze yourself in the hole.|Are you sure you want to try to fit it?,87,0,0,NoLeave()
87,0,0,,(Go inside.)|(1 minute),You go deeper inside but get stuck halfway.|It's really dark and dusty on the other side.,88,0,0,StuckInHole()
87,0,0,,(Get out.)|(1 minute),You carefully get out of the hole.,85,0,0,AllowLeave()
88,0,0,,(Struggle to go deeper.),You struggle to go deeper in the hole|but cannot manage to squeeze yourself in.,88,0,0,TwoMinutes()
88,0,0,,(Struggle to go back.),"You struggle to go back but|cannot do it, you're stuck.",88,0,0,StruggleBack()
88,0,0,,(Kick the shelves.),You kick wildly and clumsily on the|shelves but it doesn't help much.,88,0,0,TwoMinutes()
88,0,0,,(Wait patiently.),You wait for a few minutes|but nobody comes to rescue you.,88,0,0,TwoMinutes()
88,0,0,,HELP!!!,You scream for help but|nobody comes to rescue you.,88,0,0,TwoMinutes()
90,0,0,CanClimb,(Climb.)|(1 minute.),You climb on the structure like a|monkey but you don't find anything.,90,0,0,Climb()
90,0,0,!CanClimb,(Climb.)|(1 minute.),You try to climb the structure|but cannot make it and give up.,90,0,0,

1 Stage LoveReq SubReq VarReq Interaction Result NextStage LoveMod SubMod Function
4 15 0 0 (Stand up.)|(1 minute) You stand up from the chair. 10 0 0
5 30 0 0 !Common_PlayerRestrained (Search.)|(1 minute) You search in the shelves but all you|can find are boring books on mathematics. 30 0 0
6 31 0 0 !Common_PlayerRestrained (Search.)|(1 minute) You search the dead end part of the|corridor but don't find anything interesting. 31 0 0 SearchCounter()
7 32 0 0 !Common_PlayerRestrained (Search.)|(1 minute) You search in the shelves and find a|comic book hidden in between the books. 33 0 0 SearchGwendoline()
8 33 0 0 (Fetch the comic.)|(1 minute) It's an old comic called "Sweet Gwendoline".|It was written and drawn by John Willie. 34 0 0
9 33 0 0 (Leave it there.) You leave the comic between the books. 32 0 0
10 34 0 0 (Open the comic.)|(1 minute) You flip a few pages. It tells the story of|Gwendoline, a blond who gets tied up often. 35 0 0
25 44 0 0 (Read chapter 4.) You read the fourth chapter.|"Conspiracy" 45 0 0 ReadTime()
26 45 0 0 (Read chapter 5.) You read the fifth chapter: "The Marriage Feast".|You're now ready for your next class. 46 0 0 ReadTime()
27 46 0 0 (Read all|over again.) As a good student, your read|the whole thing all over again. 46 0 0 ReadFull()
28 50 0 0 !Common_PlayerRestrained (Search.)|(1 minute) You search in the bookshelves but|all you can find are philosophy books. 50 0 0
29 60 0 0 !Common_PlayerRestrained (Search.)|(1 minute) You search in the bookshelves but|all you can find are history books. 60 0 0
30 60 0 0 CanSit (Sit down.)|(1 minute) You sit down and relax on the big couch.|It's pretty comfy and there's room for two. 65 0 0
31 61 0 0 !Common_PlayerRestrained (Search.)|(1 minute) You search in the bookshelves but|all you can find are history books. 61 0 0
32 65 0 0 (Stand up.)|(1 minute) You stand up from the couch. 60 0 0
33 80 0 0 !Common_PlayerRestrained (Knock.) You knock on the door but nobody answers. 80 0 0
34 80 0 0 (Listen.)|(1 minute) You put your ear against the|door but cannot hear anything. 80 0 0
35 80 0 0 !Common_PlayerRestrained (Open it.) You try to open the door but it's locked.|There's a keyhole but you'll need the proper key. 80 0 0 OpenDoor()
36 80 0 0 !Common_PlayerRestrained (Force it.)|(1 minute) You kick and you ram your shoulder|into the door but it doesn't open. 80 0 0 ForceDoor()
37 85 0 0 !Common_PlayerRestrained (Search the books.)|(1 minute) All you find are books on psychology. 85 0 0
38 85 0 0 !Common_PlayerRestrained (Inspect the hole.)|(1 minute) You inspect the small dark hole in the shelve.|It goes deep, your hand cannot reach the end. 86 0 0
39 86 0 0 (Enter the hole.)|(1 minute) You can barely squeeze yourself in the hole.|Are you sure you want to try to fit it? 87 0 0 NoLeave()
40 87 0 0 (Go inside.)|(1 minute) You go deeper inside but get stuck halfway.|It's really dark and dusty on the other side. 88 0 0 StuckInHole()
41 87 0 0 (Get out.)|(1 minute) You carefully get out of the hole. 85 0 0 AllowLeave()
42 88 0 0 (Struggle to go deeper.) You struggle to go deeper in the hole|but cannot manage to squeeze yourself in. 88 0 0 TwoMinutes()
43 88 0 0 (Struggle to go back.) You struggle to go back but|cannot do it, you're stuck. 88 0 0 StruggleBack()
44 88 0 0 (Kick the shelves.) You kick wildly and clumsily on the|shelves but it doesn't help much. 88 0 0 TwoMinutes()
45 88 0 0 (Wait patiently.) You wait for a few minutes|but nobody comes to rescue you. 88 0 0 TwoMinutes()
46 88 0 0 HELP!!! You scream for help but|nobody comes to rescue you. 88 0 0 TwoMinutes()
47 90 0 0 CanClimb (Climb.)|(1 minute.) You climb on the structure like a|monkey but you don't find anything. 90 0 0 Climb()
48 90 0 0 !CanClimb (Climb.)|(1 minute.) You try to climb the structure|but cannot make it and give up. 90 0 0

View file

@ -5,3 +5,6 @@ CannotMasturbate,You try to slide a finger inside|your belt but fail miserably.
Orgasm,"You stimulate yourself lovingly and|tremble with ecstasy, getting a silent orgasm."
OrgasmEnough,You play with yourself but|you're not horny anymore.
OrgasmRepeat,You touch yourself and the vibrating egg|kicks in to give you desires for another round.
ClimbFindItem,You climb on the structure like a|monkey and find an interesting item.
StruggleBackFromHolde,"Like an agile gymnast, you slowly|squeeze yourself out of the hole."
NoMoreSweetGwendoline,You search in the shelves|but your magazine is gone.

1 Tag Content
5 Orgasm You stimulate yourself lovingly and|tremble with ecstasy, getting a silent orgasm.
6 OrgasmEnough You play with yourself but|you're not horny anymore.
7 OrgasmRepeat You touch yourself and the vibrating egg|kicks in to give you desires for another round.
8 ClimbFindItem You climb on the structure like a|monkey and find an interesting item.
9 StruggleBackFromHolde Like an agile gymnast, you slowly|squeeze yourself out of the hole.
10 NoMoreSweetGwendoline You search in the shelves|but your magazine is gone.

Binary file not shown.

After

(image error) Size: 177 KiB

BIN
C009_Library/Yuki/Hole.jpg Normal file

Binary file not shown.

After

(image error) Size: 165 KiB

View file

@ -0,0 +1,24 @@
Stage,LoveReq,SubReq,VarReq,IntroText,Image
0,0,0,,"Good afternoon young lady. I've never|seen you before, are you a new student?",Library.jpg
1,0,0,,Please don't make too much noise in the library.,Library.jpg
10,0,0,,Yummy! My little pet girl is back.|I hope you remember our deal.,Library.jpg
20,0,0,,Here you are! I've been searching for|you for hours. How did you escape?,Library.jpg
30,0,0,,"So my ""good for nothing"" pet has came back.|I hope you learned something from isolation.",Library.jpg
40,0,0,,I hope you learned something from isolation.|Are you now staying away from trouble?,Library.jpg
50,0,0,,You must be COMMON_PLAYERNAME.|Teacher Mildred told me about you.,Library.jpg
60,0,0,,"Young lady, I hope you will not fight again and|that you've learned a lesson from your detention.",Library.jpg
70,0,0,,"Young lady, I hope you will not cause trouble again|and that you've learned a lesson from your detention.",Library.jpg
80,0,0,,"(Yuki grabs your legs and pulls you out.)|Young lady, what were you doing in there?",Hole.jpg
81,0,0,,,Hole.jpg
82,0,0,,,Hole.jpg
90,0,0,,"(Yuki taps on your shoulder.)|Young lady, what are you doing?",Gwendoline.jpg
91,0,0,,,Gwendoline.jpg
92,0,0,,,Gwendoline.jpg
100,0,0,,Which book are you looking for?,Library.jpg
100,0,0,IsolationEarlyReleaseYuki,Hello again my little pet girl.|Which book are you looking for?,Library.jpg
110,0,0,,Which book are you looking for?,Library.jpg
120,0,0,,"Try the literature section. From the|main aisle, second shelve to your left.",Library.jpg
180,0,0,,"Young lady, what were you doing in there?",Hole.jpg
190,0,0,,"Young lady, what were you doing?",Gwendolyne.jpg
200,0,0,,Is there anything else you need?,Library.jpg
200,-3,0,,(She gives you an angry look.)|What do you want now?,Library.jpg
1 Stage LoveReq SubReq VarReq IntroText Image
2 0 0 0 Good afternoon young lady. I've never|seen you before, are you a new student? Library.jpg
3 1 0 0 Please don't make too much noise in the library. Library.jpg
4 10 0 0 Yummy! My little pet girl is back.|I hope you remember our deal. Library.jpg
5 20 0 0 Here you are! I've been searching for|you for hours. How did you escape? Library.jpg
6 30 0 0 So my "good for nothing" pet has came back.|I hope you learned something from isolation. Library.jpg
7 40 0 0 I hope you learned something from isolation.|Are you now staying away from trouble? Library.jpg
8 50 0 0 You must be COMMON_PLAYERNAME.|Teacher Mildred told me about you. Library.jpg
9 60 0 0 Young lady, I hope you will not fight again and|that you've learned a lesson from your detention. Library.jpg
10 70 0 0 Young lady, I hope you will not cause trouble again|and that you've learned a lesson from your detention. Library.jpg
11 80 0 0 (Yuki grabs your legs and pulls you out.)|Young lady, what were you doing in there? Hole.jpg
12 81 0 0 Hole.jpg
13 82 0 0 Hole.jpg
14 90 0 0 (Yuki taps on your shoulder.)|Young lady, what are you doing? Gwendoline.jpg
15 91 0 0 Gwendoline.jpg
16 92 0 0 Gwendoline.jpg
17 100 0 0 Which book are you looking for? Library.jpg
18 100 0 0 IsolationEarlyReleaseYuki Hello again my little pet girl.|Which book are you looking for? Library.jpg
19 110 0 0 Which book are you looking for? Library.jpg
20 120 0 0 Try the literature section. From the|main aisle, second shelve to your left. Library.jpg
21 180 0 0 Young lady, what were you doing in there? Hole.jpg
22 190 0 0 Young lady, what were you doing? Gwendolyne.jpg
23 200 0 0 Is there anything else you need? Library.jpg
24 200 -3 0 (She gives you an angry look.)|What do you want now? Library.jpg

Binary file not shown.

After

(image error) Size: 173 KiB

View file

@ -0,0 +1,78 @@
var C009_Library_Yuki_CurrentStage = 0;
var C009_Library_Yuki_BookAlreadyFound = false;
var C009_Library_Yuki_DetentionBondage = false;
var C009_Library_Yuki_DetentionFighting = false;
var C009_Library_Yuki_IsolationMildred = false;
var C009_Library_Yuki_IsolationYuki = false;
var C009_Library_Yuki_IsolationPleasureYuki = false;
var C009_Library_Yuki_IsolationOrgasmYuki = false;
var C009_Library_Yuki_IsolationEarlyReleaseYuki = false;
var C009_Library_Yuki_IsolationEscapeYuki = false;
var C009_Library_Yuki_HasEgg = false;
var C009_Library_Yuki_CanFindPlayer = true;
// Chapter 9 Library - Yuki Load
function C009_Library_Yuki_Load() {
// Load the scene parameters
ActorLoad("Yuki", "Library");
LoadInteractions();
Common_SelfBondageAllowed = false;
C009_Library_Library_CurrentZone = "007";
// A few variables on what already happened
C009_Library_Yuki_BookAlreadyFound = (C009_Library_Library_BookProgress > 40);
C009_Library_Yuki_DetentionBondage = GameLogQuery("C001_BeforeClass", "Sidney", "PublicBondage");
C009_Library_Yuki_DetentionFighting = (GameLogQuery("C001_BeforeClass", "Sidney", "FightVictory") || GameLogQuery("C001_BeforeClass", "Sidney", "FightDefeat"));
C009_Library_Yuki_IsolationMildred = (GameLogQuery("C002_FirstClass", "Mildred", "Subdue") && GameLogQuery("C006_Isolation", "", "Isolation"));
C009_Library_Yuki_IsolationYuki = (GameLogQuery("C002_FirstClass", "Yuki", "Drug") && GameLogQuery("C006_Isolation", "", "Isolation"));
C009_Library_Yuki_IsolationPleasureYuki = GameLogQuery("C006_Isolation", "Yuki", "Pleasure");
C009_Library_Yuki_IsolationOrgasmYuki = GameLogQuery("C006_Isolation", "Yuki", "Orgasm");
C009_Library_Yuki_IsolationEarlyReleaseYuki = (GameLogQuery("C006_Isolation", "", "Release") && C009_Library_Yuki_IsolationYuki);
C009_Library_Yuki_IsolationEscapeYuki = (GameLogQuery("C006_Isolation", "", "Escape") && C009_Library_Yuki_IsolationYuki);
C009_Library_Yuki_HasEgg = ActorHasInventory("VibratingEgg");
// The first dialog can be different depending on what happened before
if ((C009_Library_Yuki_CurrentStage == 0) && C009_Library_Yuki_IsolationOrgasmYuki && C009_Library_Yuki_IsolationEarlyReleaseYuki) C009_Library_Yuki_CurrentStage = 10;
if ((C009_Library_Yuki_CurrentStage == 0) && C009_Library_Yuki_IsolationEscapeYuki) C009_Library_Yuki_CurrentStage = 20;
if ((C009_Library_Yuki_CurrentStage == 0) && C009_Library_Yuki_IsolationPleasureYuki && !C009_Library_Yuki_IsolationOrgasmYuki) C009_Library_Yuki_CurrentStage = 30;
if ((C009_Library_Yuki_CurrentStage == 0) && C009_Library_Yuki_IsolationYuki) C009_Library_Yuki_CurrentStage = 40;
if ((C009_Library_Yuki_CurrentStage == 0) && C009_Library_Yuki_IsolationMildred) C009_Library_Yuki_CurrentStage = 50;
if ((C009_Library_Yuki_CurrentStage == 0) && C009_Library_Yuki_DetentionFighting) C009_Library_Yuki_CurrentStage = 60;
if ((C009_Library_Yuki_CurrentStage == 0) && C009_Library_Yuki_DetentionBondage) C009_Library_Yuki_CurrentStage = 70;
}
// Chapter 9 Library - Yuki Run
function C009_Library_Yuki_Run() {
BuildInteraction(C009_Library_Yuki_CurrentStage);
DrawInteractionActor();
}
// Chapter 9 Library - Yuki Click
function C009_Library_Yuki_Click() {
// Regular and inventory interactions
ClickInteraction(C009_Library_Yuki_CurrentStage);
var ClickInv = GetClickedInventory();
if (ClickInv == "Player") {
C009_Library_Yuki_IntroText = OverridenIntroText;
InventoryClick(ClickInv, CurrentChapter, CurrentScreen);
}
}
// Chapter 9 Library - Yuki - When the player leaves to find her book
function C009_Library_Yuki_PlayerLeaveForBook() {
SetScene(CurrentChapter, "Library");
}
// Chapter 9 Library - Yuki Allow Leaving
function C009_Library_Yuki_AllowLeave() {
LeaveIcon = "Leave";
}
// Chapter 9 Library - Yuki confiscates the Sweet Gwendoline magazine
function C009_Library_Yuki_NoMoreSweetGwendoline() {
C009_Library_Search_MagazineConfiscated = true;
}

View file

@ -0,0 +1,54 @@
Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
0,0,0,,"Yes, it's my|first day here.","Welcome to our college then, I'm Teacher Yuki.|Don't make too much noise in the library.",1,0,0,
0,0,0,,I'm surprised you|haven't heard of me.,I haven't heard of you. I'm Teacher Yuki.|Don't make too much noise in the library.,1,0,1,
0,0,0,,"Yes Miss, a new|school is always scary.","Don't be scared, it will be fine, I'm Teacher Yuki.|Please don't make too much noise in the library.",1,0,-1,
1,0,0,,(Nod silently.),Excellent. So are you|looking for a specific book?,100,1,-1,
1,0,0,,"Yeah, yeah, I know.",(She gives you an angry look.)|Are you looking for a specific book?,100,-1,1,
1,0,0,,I'll keep quiet.,Very well. So are you|looking for a specific book?,100,0,0,
50,0,0,,"Good. Tell her|I said ""hello"".",That's not funny young lady.|Are you looking for a book?,100,-1,1,
50,0,0,,"Yes, we met before.",That's what I've heard.|Are you looking for a book?,100,0,0,
50,0,0,,I already have a|reputation then.,Not a very good reputation.|Are you looking for a book?,100,0,1,
50,0,0,,Mildred is a witch.,"I should wash your mouth with soap.|Anyway, are you looking for a book?",100,-2,0,
50,0,0,,I'm sorry for|what I did.,It's not too late to be a good girl.|Are you looking for a specific book?,100,1,-1,
60,0,0,,"Yes, the detention|time was fair.",You have a good attitude.|Are you looking for a book?,100,1,0,
60,0,0,,"Yes Miss, I will|not fight again.",Very good little miss.|Are you looking for a book?,100,1,-1,
60,0,0,,She started it!,I don't want to hear that again.|Are you looking for a book?,100,-1,1,
60,0,0,,(Nod silently.),Good. So are you looking for a book?,100,0,-1,
70,0,0,,"Yes, the detention|time was fair.",You have a good attitude.|Are you looking for a book?,100,1,0,
70,0,0,,"Yes Miss, I won't|cause any trouble.",Very good little miss.|Are you looking for a book?,100,1,-1,
70,0,0,,I regret nothing!,Such a fiesty little brat.|Are you looking for a book?,100,-1,1,
70,0,0,,(Nod silently.),Good. So are you looking for a book?,100,0,-1,
80,0,0,,I saw something|shiny in there.,You know what killed the cat don't you?|Promise me to never try that again.,81,-1,0,
80,0,0,,I was looking|for cheese.,And you got yourself in the mouse trap?|Promise me to never try that again.,81,-2,0,
80,0,0,,I dropped my|pen in there.,"Poor young lady, you're so clumsy.|Promise me to never try that again.",81,0,-1,
80,0,0,,A mean girl with black|hair pushed me in.,"Sidney! (She clenches her fist.) Young lady,|you will need to learn how to defend yourself.",82,0,-1,
81,0,0,,Yes Miss.|I promise.,Very good little Miss. (You walk to her desk.)|Are you searching for a specific book?,100,1,-1,
81,0,0,,I won't do it again.,Alright young lady. (You walk to her desk.)|Are you searching for a specific book?,100,0,0,
81,0,0,,"Yeah, yeah, yeah.|I won't do it again.","I don't like your attitude. (You walk to her desk.)|Anyway, are you searching for a specific book?",100,-1,1,
81,0,0,,"Yes, that was stupid.|I won't do it again.","Very true young lady. (You walk to her desk.)|So tell me, are you searching for a specific book?",100,1,0,
82,0,0,,That's a very|good advice.,Indeed. (You both walk to her desk.)|So are you searching for a specific book?,100,1,0,
82,0,0,,"Don't worry, I'll kick|her ass next time.",Standing your ground should be enough Miss.|(You walk to her desk.) Are you searching for a book?,100,-1,1,
82,0,0,,Could you help me|to defend myself?,"Yes, I'll help you later. (You walk to her desk.)|So are you searching for a specific book?",100,1,-2,
82,0,0,,"Yeah, I know.",Very well. (You both walk to her desk.)|Anyway. Are you searching for a specific book?,100,0,0,
90,0,0,,I didn't do anything.,"You little liar, I saw your hand under|your skirt. What is that magazine?",91,-1,0,
90,0,0,,I was reading.,I saw your hand under your skirt.|What is that magazine you're reading?,91,0,0,
90,0,0,,That's none of|your business.,Be polite! It's absolutely my business.|What is that magazine you're reading?,91,-1,1,
90,0,0,,(Blush and bow|your head.),You should feel ashamed.|What is that magazine?,91,1,-1,
90,0,0,,I had an itch.,"You little liar, you were not|scratching. What is that magazine?",91,-1,0,
90,0,0,,I'm sorry Miss.|I was masturbating.,"Little miss, you should feel|ashamed. What is that magazine?",91,1,-2,
91,0,0,,It's a dirty magazine.,(She nods and confiscates the magazine.)|Promise me you'll never do that again.,92,0,0,NoMoreSweetGwendoline()
91,0,0,,It's a comic book.,(She grabs and confiscates the magazine.)|Promise me you'll never do that again.,92,-1,0,NoMoreSweetGwendoline()
91,0,0,,You should know it.|It's Sweet Gwendoline.,(She frowns and confiscates the magazine.)|Promise me you'll never do that again.,92,0,1,NoMoreSweetGwendoline()
91,0,0,,Please take it. It|doesn't belong here.,(She smiles and confiscates the magazine.)|Promise me you'll never do that again.,92,1,-1,NoMoreSweetGwendoline()
92,0,0,,Yes Miss.|I promise.,Very good little Miss. (You walk to her desk.)|Are you searching for a specific book?,100,1,-1,
92,0,0,,I won't do it again.,Alright young lady. (You walk to her desk.)|Are you searching for a specific book?,100,0,0,
92,0,0,,"Yeah, yeah, yeah.|I won't do it again.","I don't like your attitude. (You walk to her desk.)|Anyway, are you searching for a specific book?",100,-1,1,
92,0,0,,"Yes, that was stupid.|I won't do it again.","Very true young lady. (You walk to her desk.)|So tell me, are you searching for a specific book?",100,1,0,
100,0,0,BookAlreadyFound,I've already|found my book.,Very well. You may find a|place to read in silence.,200,0,0,AllowLeave()
100,0,0,,The Count of|Monte Cristo.,"Try the literature section. From the|main aisle, second shelve to your left.",120,0,0,AllowLeave()
100,0,0,,Fifty Shades of Grey.,"Young lady, you will not find|such trash in our fine establishment.",110,-1,0,
100,0,0,,Justine from the|Marquis de Sade.,You're not mature enough for this kind of literature.|This book isn't allowed for first year students.,110,1,1,
110,0,0,,"Actually, I need ""The|Count of Monte Cristo.""","Try the literature section. From the|main aisle, second shelve to your left.",120,0,0,AllowLeave()
120,0,0,,Thank you Miss.|(Walk away.),,200,0,1,PlayerLeaveForBook()
120,0,0,,Thanks Yuki!|(Walk away.),,200,0,0,PlayerLeaveForBook()
120,0,0,,(Walk away.),,200,-1,0,PlayerLeaveForBook()
1 Stage LoveReq SubReq VarReq Interaction Result NextStage LoveMod SubMod Function
2 0 0 0 Yes, it's my|first day here. Welcome to our college then, I'm Teacher Yuki.|Don't make too much noise in the library. 1 0 0
3 0 0 0 I'm surprised you|haven't heard of me. I haven't heard of you. I'm Teacher Yuki.|Don't make too much noise in the library. 1 0 1
4 0 0 0 Yes Miss, a new|school is always scary. Don't be scared, it will be fine, I'm Teacher Yuki.|Please don't make too much noise in the library. 1 0 -1
5 1 0 0 (Nod silently.) Excellent. So are you|looking for a specific book? 100 1 -1
6 1 0 0 Yeah, yeah, I know. (She gives you an angry look.)|Are you looking for a specific book? 100 -1 1
7 1 0 0 I'll keep quiet. Very well. So are you|looking for a specific book? 100 0 0
8 50 0 0 Good. Tell her|I said "hello". That's not funny young lady.|Are you looking for a book? 100 -1 1
9 50 0 0 Yes, we met before. That's what I've heard.|Are you looking for a book? 100 0 0
10 50 0 0 I already have a|reputation then. Not a very good reputation.|Are you looking for a book? 100 0 1
11 50 0 0 Mildred is a witch. I should wash your mouth with soap.|Anyway, are you looking for a book? 100 -2 0
12 50 0 0 I'm sorry for|what I did. It's not too late to be a good girl.|Are you looking for a specific book? 100 1 -1
13 60 0 0 Yes, the detention|time was fair. You have a good attitude.|Are you looking for a book? 100 1 0
14 60 0 0 Yes Miss, I will|not fight again. Very good little miss.|Are you looking for a book? 100 1 -1
15 60 0 0 She started it! I don't want to hear that again.|Are you looking for a book? 100 -1 1
16 60 0 0 (Nod silently.) Good. So are you looking for a book? 100 0 -1
17 70 0 0 Yes, the detention|time was fair. You have a good attitude.|Are you looking for a book? 100 1 0
18 70 0 0 Yes Miss, I won't|cause any trouble. Very good little miss.|Are you looking for a book? 100 1 -1
19 70 0 0 I regret nothing! Such a fiesty little brat.|Are you looking for a book? 100 -1 1
20 70 0 0 (Nod silently.) Good. So are you looking for a book? 100 0 -1
21 80 0 0 I saw something|shiny in there. You know what killed the cat don't you?|Promise me to never try that again. 81 -1 0
22 80 0 0 I was looking|for cheese. And you got yourself in the mouse trap?|Promise me to never try that again. 81 -2 0
23 80 0 0 I dropped my|pen in there. Poor young lady, you're so clumsy.|Promise me to never try that again. 81 0 -1
24 80 0 0 A mean girl with black|hair pushed me in. Sidney! (She clenches her fist.) Young lady,|you will need to learn how to defend yourself. 82 0 -1
25 81 0 0 Yes Miss.|I promise. Very good little Miss. (You walk to her desk.)|Are you searching for a specific book? 100 1 -1
26 81 0 0 I won't do it again. Alright young lady. (You walk to her desk.)|Are you searching for a specific book? 100 0 0
27 81 0 0 Yeah, yeah, yeah.|I won't do it again. I don't like your attitude. (You walk to her desk.)|Anyway, are you searching for a specific book? 100 -1 1
28 81 0 0 Yes, that was stupid.|I won't do it again. Very true young lady. (You walk to her desk.)|So tell me, are you searching for a specific book? 100 1 0
29 82 0 0 That's a very|good advice. Indeed. (You both walk to her desk.)|So are you searching for a specific book? 100 1 0
30 82 0 0 Don't worry, I'll kick|her ass next time. Standing your ground should be enough Miss.|(You walk to her desk.) Are you searching for a book? 100 -1 1
31 82 0 0 Could you help me|to defend myself? Yes, I'll help you later. (You walk to her desk.)|So are you searching for a specific book? 100 1 -2
32 82 0 0 Yeah, I know. Very well. (You both walk to her desk.)|Anyway. Are you searching for a specific book? 100 0 0
33 90 0 0 I didn't do anything. You little liar, I saw your hand under|your skirt. What is that magazine? 91 -1 0
34 90 0 0 I was reading. I saw your hand under your skirt.|What is that magazine you're reading? 91 0 0
35 90 0 0 That's none of|your business. Be polite! It's absolutely my business.|What is that magazine you're reading? 91 -1 1
36 90 0 0 (Blush and bow|your head.) You should feel ashamed.|What is that magazine? 91 1 -1
37 90 0 0 I had an itch. You little liar, you were not|scratching. What is that magazine? 91 -1 0
38 90 0 0 I'm sorry Miss.|I was masturbating. Little miss, you should feel|ashamed. What is that magazine? 91 1 -2
39 91 0 0 It's a dirty magazine. (She nods and confiscates the magazine.)|Promise me you'll never do that again. 92 0 0 NoMoreSweetGwendoline()
40 91 0 0 It's a comic book. (She grabs and confiscates the magazine.)|Promise me you'll never do that again. 92 -1 0 NoMoreSweetGwendoline()
41 91 0 0 You should know it.|It's Sweet Gwendoline. (She frowns and confiscates the magazine.)|Promise me you'll never do that again. 92 0 1 NoMoreSweetGwendoline()
42 91 0 0 Please take it. It|doesn't belong here. (She smiles and confiscates the magazine.)|Promise me you'll never do that again. 92 1 -1 NoMoreSweetGwendoline()
43 92 0 0 Yes Miss.|I promise. Very good little Miss. (You walk to her desk.)|Are you searching for a specific book? 100 1 -1
44 92 0 0 I won't do it again. Alright young lady. (You walk to her desk.)|Are you searching for a specific book? 100 0 0
45 92 0 0 Yeah, yeah, yeah.|I won't do it again. I don't like your attitude. (You walk to her desk.)|Anyway, are you searching for a specific book? 100 -1 1
46 92 0 0 Yes, that was stupid.|I won't do it again. Very true young lady. (You walk to her desk.)|So tell me, are you searching for a specific book? 100 1 0
47 100 0 0 BookAlreadyFound I've already|found my book. Very well. You may find a|place to read in silence. 200 0 0 AllowLeave()
48 100 0 0 The Count of|Monte Cristo. Try the literature section. From the|main aisle, second shelve to your left. 120 0 0 AllowLeave()
49 100 0 0 Fifty Shades of Grey. Young lady, you will not find|such trash in our fine establishment. 110 -1 0
50 100 0 0 Justine from the|Marquis de Sade. You're not mature enough for this kind of literature.|This book isn't allowed for first year students. 110 1 1
51 110 0 0 Actually, I need "The|Count of Monte Cristo." Try the literature section. From the|main aisle, second shelve to your left. 120 0 0 AllowLeave()
52 120 0 0 Thank you Miss.|(Walk away.) 200 0 1 PlayerLeaveForBook()
53 120 0 0 Thanks Yuki!|(Walk away.) 200 0 0 PlayerLeaveForBook()
54 120 0 0 (Walk away.) 200 -1 0 PlayerLeaveForBook()

View file

@ -0,0 +1 @@
Tag,Content
1 Tag Content

View file

@ -24,15 +24,14 @@ function C010_Revenge_EarlyEnding_Load() {
function C010_Revenge_EarlyEnding_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawPlayerTransition();
// Draw the outro text
DrawText(ctx, GetText(C010_Revenge_EarlyEnding_Type + "1"), 450, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText(C010_Revenge_EarlyEnding_Type + "2"), 450, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText(C010_Revenge_EarlyEnding_Type + "3"), 450, 450, "White");
DrawText(GetText(C010_Revenge_EarlyEnding_Type + "1"), 450, 150, "White");
if (TextPhase >= 1) DrawText(GetText(C010_Revenge_EarlyEnding_Type + "2"), 450, 300, "White");
if (TextPhase >= 2) DrawText(GetText(C010_Revenge_EarlyEnding_Type + "3"), 450, 450, "White");
}

View file

@ -17,28 +17,25 @@ function C010_Revenge_Intro_Load() {
// Chapter 10 - Revenge Run
function C010_Revenge_Intro_Run() {
// Prepares the canvas
var ctx = document.getElementById("MainCanvas").getContext("2d");
// Amanda or Sarah intro
if (GameLogQuery("C007_LunchBreak", "Amanda", "Stranded") || GameLogQuery("C007_LunchBreak", "Sarah", "Stranded")) {
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/BackgroundAmandaSarah.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawText(ctx, GetText("AmandaSarah1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("AmandaSarah2"), 400, 250, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("AmandaSarah3"), 400, 350, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("AmandaSarah4"), 400, 450, "White");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/BackgroundAmandaSarah.jpg", 0, 0);
DrawPlayerTransition();
DrawText(GetText("AmandaSarah1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("AmandaSarah2"), 400, 250, "White");
if (TextPhase >= 2) DrawText(GetText("AmandaSarah3"), 400, 350, "White");
if (TextPhase >= 3) DrawText(GetText("AmandaSarah4"), 400, 450, "White");
}
// Sidney or Jennifer intro
if (GameLogQuery("C007_LunchBreak", "Sidney", "Stranded") || GameLogQuery("C007_LunchBreak", "Jennifer", "Stranded")) {
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/BackgroundSidneyJennifer.jpg", 0, 0);
DrawPlayerTransition(ctx);
DrawText(ctx, GetText("SidneyJennifer1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("SidneyJennifer2"), 400, 250, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("SidneyJennifer3"), 400, 350, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("SidneyJennifer4"), 400, 450, "White");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/BackgroundSidneyJennifer.jpg", 0, 0);
DrawPlayerTransition();
DrawText(GetText("SidneyJennifer1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText("SidneyJennifer2"), 400, 250, "White");
if (TextPhase >= 2) DrawText(GetText("SidneyJennifer3"), 400, 350, "White");
if (TextPhase >= 3) DrawText(GetText("SidneyJennifer4"), 400, 450, "White");
}
}

View file

@ -24,8 +24,7 @@ function C010_Revenge_Outro_Load() {
function C010_Revenge_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawRect(0, 0, 800, 600, "black");
// Sets the correct text to fetch
var OutroText = "";
@ -33,14 +32,14 @@ function C010_Revenge_Outro_Run() {
if (GameLogQuery("C007_LunchBreak", "Sidney", "Stranded") || GameLogQuery("C007_LunchBreak", "Jennifer", "Stranded")) OutroText = "SidneyJennifer";
// Draw the background image
if (TextPhase >= 2) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
if (TextPhase < 2) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + OutroText + ".jpg", 800, 0);
if (TextPhase >= 2) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
if (TextPhase < 2) DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + OutroText + ".jpg", 800, 0);
// Shows the text
if (C010_Revenge_Outro_GoodEnding) OutroText = OutroText + "Good";
DrawText(ctx, GetText(OutroText + "1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(ctx, GetText(OutroText + "2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(ctx, GetText(OutroText + "3"), 400, 450, "White");
DrawText(GetText(OutroText + "1"), 400, 150, "White");
if (TextPhase >= 1) DrawText(GetText(OutroText + "2"), 400, 300, "White");
if (TextPhase >= 2) DrawText(GetText(OutroText + "3"), 400, 450, "White");
}

View file

@ -8,22 +8,21 @@ function C101_KinbakuClub_ClubRoom2_Load() {
function C101_KinbakuClub_ClubRoom2_Run() {
// Draw the background image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/ClubRoom2Arrows.jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/ClubRoom2Arrows.jpg", 0, 0);
// Draw erica when tied
if (C101_KinbakuClub_Erica_EricaTied) {
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/EricaBoundBackground.png", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/EricaBoundBackground.png", 0, 0);
DrawActor("Erica", 0, 265, 0.4);
}
if (C101_KinbakuClub_Erica_EricaLeftCuffed) {
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/EricaBoundBackground.png", 0, 0);
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/EricaLeftCollaredCuffs.jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/EricaBoundBackground.png", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/EricaLeftCollaredCuffs.jpg", 0, 0);
}
if (!C101_KinbakuClub_Erica_EricaTied && !C101_KinbakuClub_Erica_EricaLeftCuffed) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/EricaStart.png", 0, 0);
if (!C101_KinbakuClub_Erica_EricaTied && !C101_KinbakuClub_Erica_EricaLeftCuffed) DrawImage(CurrentChapter + "/" + CurrentScreen + "/EricaStart.png", 0, 0);
// Draw Cassidy and Alyssa
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/CassidyAlyssa.jpg", 800, 100);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/CassidyAlyssa.jpg", 800, 100);
}

View file

@ -8,17 +8,16 @@ function C101_KinbakuClub_ClubRoom3_Load() {
function C101_KinbakuClub_ClubRoom3_Run() {
// Draw the background image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/ClubRoom3Arrows.jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/ClubRoom3Arrows.jpg", 0, 0);
// Draw Chloe
//if (C101_KinbakuClub_Chloe_CurrentStage == 0) {
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/ChloeBoard.png", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/ChloeBoard.png", 0, 0);
//} else DrawActor("Chloe", 220, 170, 0.3333);
// Draw CardGamers
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/CardGamers1.jpg", 570, 130);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/CardGamers1.jpg", 570, 130);
}

View file

@ -9,23 +9,22 @@ function C101_KinbakuClub_Discipline_Load() {
function C101_KinbakuClub_Discipline_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawRect(0, 0, 800, 600, "black");
if (TextPhase >= 0) {
if (C101_KinbakuClub_Lauren_BullyCount >= 10) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/JennaGrab.jpg", 800, 0); // needs jenna grabbing player jpg
else DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/JennaBlocking.jpg", 800, 0); // needs jenna blocking doorway jpg
if (C101_KinbakuClub_Lauren_BullyCount >= 10) DrawImage(CurrentChapter + "/" + CurrentScreen + "/JennaGrab.jpg", 800, 0); // needs jenna grabbing player jpg
else DrawImage(CurrentChapter + "/" + CurrentScreen + "/JennaBlocking.jpg", 800, 0); // needs jenna blocking doorway jpg
}
if (TextPhase >= 1) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/BagBlack.jpg", 800, 0);
if (TextPhase >= 1) DrawImage(CurrentChapter + "/" + CurrentScreen + "/BagBlack.jpg", 800, 0);
// Dialog depending on the outro situation
if (TextPhase >= 0) {
if (C101_KinbakuClub_Lauren_BullyCount >= 10) DrawText(ctx, GetText("Bully1"), 400, 120, "White");
else DrawText(ctx, GetText("Discipline1"), 400, 120, "White");
if (C101_KinbakuClub_Lauren_BullyCount >= 10) DrawText(GetText("Bully1"), 400, 120, "White");
else DrawText(GetText("Discipline1"), 400, 120, "White");
}
if (TextPhase >= 1) DrawText(ctx, GetText("Discipline2"), 400, 240, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Discipline3"), 400, 360, "White");
if (TextPhase >= 1) DrawText(GetText("Discipline2"), 400, 240, "White");
if (TextPhase >= 2) DrawText(GetText("Discipline3"), 400, 360, "White");
if (TextPhase >= 3) {
DrawText(ctx, GetText("Discipline4"), 400, 480, "White");
DrawText(GetText("Discipline4"), 400, 480, "White");
PlayerLockInventory("Rope");
}
}

View file

@ -11,62 +11,61 @@ function C101_KinbakuClub_EricaBadEnd_Load() {
function C101_KinbakuClub_EricaBadEnd_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 700, 600, "black");
DrawRect(0, 0, 700, 600, "black");
// Dialog depending on the outro situation
if (TextPhase >= 0) {
if (C101_KinbakuClub_Erica_EricaTied) DrawText(ctx, GetText("BadEnd1Dressed"), 350, 50, "White");
if (!C101_KinbakuClub_Erica_EricaTied) DrawText(ctx, GetText("BadEnd1Free"), 350, 50, "White");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/EricaPinsPlayer.jpg", 700, 0);
if (C101_KinbakuClub_Erica_EricaTied) DrawText(GetText("BadEnd1Dressed"), 350, 50, "White");
if (!C101_KinbakuClub_Erica_EricaTied) DrawText(GetText("BadEnd1Free"), 350, 50, "White");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/EricaPinsPlayer.jpg", 700, 0);
}
if (TextPhase >= 1) {
DrawText(ctx, GetText("BadEnd2"), 350, 100, "White");
DrawText(GetText("BadEnd2"), 350, 100, "White");
//CurrentTime = CurrentTime + 10000;
//TextPhase++;
}
if (TextPhase >= 2) {
DrawText(ctx, GetText("BadEnd3"), 350, 150, "White")
DrawText(GetText("BadEnd3"), 350, 150, "White")
//CurrentTime = CurrentTime + 10000;
//TextPhase++;
}
if (TextPhase >= 3) {
DrawText(ctx, GetText("BadEnd4"), 350, 200, "White");
DrawText(GetText("BadEnd4"), 350, 200, "White");
//CurrentTime = CurrentTime + 180000;
//TextPhase++;
PlayerLockInventory("Rope");
PlayerLockInventory("BallGag");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/EricaBindsPlayer.jpg", 700, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/EricaBindsPlayer.jpg", 700, 0);
}
if (TextPhase >= 4) {
DrawText(ctx, GetText("BadEnd5"), 350, 250, "White");
DrawText(GetText("BadEnd5"), 350, 250, "White");
//StopTimer(CurrentTime + 30 * 1000);
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/EricaHoldingHood.jpg", 700, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/EricaHoldingHood.jpg", 700, 0);
}
if (TextPhase >= 5) {
DrawText(ctx, GetText("BadEnd6"), 350, 300, "White");
DrawText(GetText("BadEnd6"), 350, 300, "White");
//StopTimer(CurrentTime + 60 * 1000);
DrawRect(ctx, 700, 0, 1200, 600, "black");
DrawRect(700, 0, 1200, 600, "black");
PlayerLockInventory("Collar");
}
if (TextPhase >= 6) {
DrawText(ctx, GetText("BadEnd7"), 350, 350, "White");
DrawText(GetText("BadEnd7"), 350, 350, "White");
//StopTimer(CurrentTime + 10 * 1000);
}
if (TextPhase >= 7) {
DrawText(ctx, GetText("BadEnd8"), 350, 400, "White");
DrawText(GetText("BadEnd8"), 350, 400, "White");
//StopTimer(CurrentTime + 300 * 1000);
}
if (TextPhase >= 8) {
DrawText(ctx, GetText("BadEnd9"), 350, 450, "White");
DrawText(GetText("BadEnd9"), 350, 450, "White");
//StopTimer(CurrentTime + 180 * 1000);
}
if (TextPhase >= 9) {
DrawText(ctx, GetText("BadEnd10"), 350, 500, "White");
DrawText(GetText("BadEnd10"), 350, 500, "White");
//StopTimer(CurrentTime + 10 * 1000);
}
if (TextPhase >= 10) {
DrawText(ctx, GetText("BadEnd11"), 350, 550, "White");
DrawText(GetText("BadEnd11"), 350, 550, "White");
//StopTimer(CurrentTime + 10 * 1000);
}
}

View file

@ -14,19 +14,18 @@ function C101_KinbakuClub_Intro_Load() {
function C101_KinbakuClub_Intro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
// Write the chapter introduction
DrawText(ctx, GetText("Intro1"), 600, 150, "White");
DrawText(GetText("Intro1"), 600, 150, "White");
if (Common_ClubStatus == "ClubLunchVisited") {
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2"), 600, 250, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3"), 600, 350, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4"), 600, 450, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2"), 600, 250, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3"), 600, 350, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4"), 600, 450, "White");
} else {
if (TextPhase >= 1) DrawText(ctx, GetText("Intro2New"), 600, 250, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Intro3New"), 600, 350, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Intro4New"), 600, 450, "White");
if (TextPhase >= 1) DrawText(GetText("Intro2New"), 600, 250, "White");
if (TextPhase >= 2) DrawText(GetText("Intro3New"), 600, 350, "White");
if (TextPhase >= 3) DrawText(GetText("Intro4New"), 600, 450, "White");
}
}

View file

@ -82,41 +82,36 @@ function C101_KinbakuClub_Lauren_Run() {
// Image overlays
// Blindfold and cuffs on table
if (C101_KinbakuClub_Lauren_CurrentStage <= 220) {
var ctx = document.getElementById("MainCanvas").getContext("2d");
if (C101_KinbakuClub_Lauren_BlindfoldAvailable) {
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Blindfold.jpg", 735, 395);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Blindfold.jpg", 735, 395);
}
if (C101_KinbakuClub_Lauren_CurrentStage < 150) {
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Cuffs.jpg", 730, 450);
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Cuffs.jpg", 730, 450);
}
}
// Lauren chair cuffed looking behind
if (C101_KinbakuClub_Lauren_CurrentStage == 450) {
var ctx = document.getElementById("MainCanvas").getContext("2d");
if (ActorHasInventory("BallGag")) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/LaurenRealizedBall.jpg", 925, 80);
if (ActorHasInventory("TapeGag")) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/LaurenRealizedTape.jpg", 925, 80);
if (ActorHasInventory("ClothGag")) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/LaurenRealizedCloth.jpg", 925, 80);
if (ActorHasInventory("BallGag")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/LaurenRealizedBall.jpg", 925, 80);
if (ActorHasInventory("TapeGag")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/LaurenRealizedTape.jpg", 925, 80);
if (ActorHasInventory("ClothGag")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/LaurenRealizedCloth.jpg", 925, 80);
}
// Lauren chair cuffed looking forwards and up
// facial expression
if (C101_KinbakuClub_Lauren_CurrentStage == 460 || C101_KinbakuClub_Lauren_CurrentStage == 470) {
var ctx = document.getElementById("MainCanvas").getContext("2d");
if (ActorGetValue(ActorLove) >= 5 && (ActorGetValue(ActorLove) >= ActorGetValue(ActorSubmission))) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/LaurenLike.jpg", 870, 70);
if (ActorGetValue(ActorSubmission) >= 5 && (ActorGetValue(ActorSubmission) > ActorGetValue(ActorLove))) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/LaurenSub.jpg", 870, 70);
if (C101_KinbakuClub_Lauren_OrgasmDone) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/LaurenAshamed.jpg", 870, 70);
if (ActorGetValue(ActorLove) >= 5 && (ActorGetValue(ActorLove) >= ActorGetValue(ActorSubmission))) DrawImage(CurrentChapter + "/" + CurrentScreen + "/LaurenLike.jpg", 870, 70);
if (ActorGetValue(ActorSubmission) >= 5 && (ActorGetValue(ActorSubmission) > ActorGetValue(ActorLove))) DrawImage(CurrentChapter + "/" + CurrentScreen + "/LaurenSub.jpg", 870, 70);
if (C101_KinbakuClub_Lauren_OrgasmDone) DrawImage(CurrentChapter + "/" + CurrentScreen + "/LaurenAshamed.jpg", 870, 70);
}
// gag
if (C101_KinbakuClub_Lauren_CurrentStage == 460 || C101_KinbakuClub_Lauren_CurrentStage == 470 || C101_KinbakuClub_Lauren_CurrentStage == 900) {
var ctx = document.getElementById("MainCanvas").getContext("2d");
if (ActorHasInventory("BallGag")) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/LaurenHelplessBall.png", 880, 80);
if (ActorHasInventory("TapeGag")) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/LaurenHelplessTape.png", 895, 160);
if (ActorHasInventory("ClothGag")) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/LaurenHelplessCloth.png", 875, 150);
if (ActorHasInventory("BallGag")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/LaurenHelplessBall.png", 880, 80);
if (ActorHasInventory("TapeGag")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/LaurenHelplessTape.png", 895, 160);
if (ActorHasInventory("ClothGag")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/LaurenHelplessCloth.png", 875, 150);
}
if (C101_KinbakuClub_Lauren_CurrentStage == 490 || C101_KinbakuClub_Lauren_CurrentStage == 500) {
var ctx = document.getElementById("MainCanvas").getContext("2d");
if (PlayerHasLockedInventory("ClothGag")) DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/PlayerChairGagged.jpg", 850, 130);
if (PlayerHasLockedInventory("ClothGag")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/PlayerChairGagged.jpg", 850, 130);
}
// While Lauren gets intimate with the player

View file

@ -9,16 +9,15 @@ function C101_KinbakuClub_Outro_Load() {
function C101_KinbakuClub_Outro_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bell.jpg", 800, 0);
// Dialog depending on the outro situation
if (TextPhase >= 0) DrawText(ctx, GetText("Outro1"), 400, 100, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Outro2"), 400, 200, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("Outro3"), 400, 300, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("Outro4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Outro5"), 400, 500, "White");
if (TextPhase >= 0) DrawText(GetText("Outro1"), 400, 100, "White");
if (TextPhase >= 1) DrawText(GetText("Outro2"), 400, 200, "White");
if (TextPhase >= 2) DrawText(GetText("Outro3"), 400, 300, "White");
if (TextPhase >= 3) DrawText(GetText("Outro4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(GetText("Outro5"), 400, 500, "White");
}
// Chapter 101 - Kinbaku Club Click

View file

@ -10,61 +10,60 @@ function C101_KinbakuClub_Transition_Load() {
function C101_KinbakuClub_Transition_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 0, 800, 600, "black");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/Jenna.jpg", 800, 0);
DrawRect(0, 0, 800, 600, "black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/Jenna.jpg", 800, 0);
// Dialog depending on the outro situation
if (TextPhase >= 0) DrawText(ctx, GetText("PlayerFree1"), 400, 100, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("PlayerFree2"), 400, 200, "White");
if (TextPhase >= 2) DrawText(ctx, GetText("PlayerFree3"), 400, 300, "White");
if (TextPhase >= 3) DrawText(ctx, GetText("PlayerFree4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("PlayerFree5"), 400, 500, "White");
if (TextPhase >= 0) DrawText(GetText("PlayerFree1"), 400, 100, "White");
if (TextPhase >= 1) DrawText(GetText("PlayerFree2"), 400, 200, "White");
if (TextPhase >= 2) DrawText(GetText("PlayerFree3"), 400, 300, "White");
if (TextPhase >= 3) DrawText(GetText("PlayerFree4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(GetText("PlayerFree5"), 400, 500, "White");
if (C101_KinbakuClub_Erica_PlayerIsSlave) {
DrawRect(ctx, 0, 0, 800, 600, "black");
if (TextPhase >= 0) DrawText(ctx, GetText("Enslaved1"), 400, 100, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("Enslaved2"), 400, 200, "White");
DrawRect(0, 0, 800, 600, "black");
if (TextPhase >= 0) DrawText(GetText("Enslaved1"), 400, 100, "White");
if (TextPhase >= 1) DrawText(GetText("Enslaved2"), 400, 200, "White");
if (TextPhase >= 2) {
DrawText(ctx, GetText("Enslaved3"), 400, 300, "White");
DrawText(GetText("Enslaved3"), 400, 300, "White");
PlayerUnlockInventory("Collar")
}
if (TextPhase >= 3) DrawText(ctx, GetText("Enslaved4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("Enslaved5"), 400, 500, "White");
if (TextPhase >= 3) DrawText(GetText("Enslaved4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(GetText("Enslaved5"), 400, 500, "White");
}
if (C101_KinbakuClub_Lauren_PlayerChairCuffed || C101_KinbakuClub_Lauren_PlayerStrappado) {
DrawRect(ctx, 0, 0, 800, 600, "black");
if (TextPhase >= 0) DrawText(ctx, GetText("ChairCuffed1"), 400, 100, "White");
if (TextPhase >= 1) DrawText(ctx, GetText("ChairCuffed2"), 400, 200, "White");
DrawRect(0, 0, 800, 600, "black");
if (TextPhase >= 0) DrawText(GetText("ChairCuffed1"), 400, 100, "White");
if (TextPhase >= 1) DrawText(GetText("ChairCuffed2"), 400, 200, "White");
if (TextPhase >= 2) {
if (C101_KinbakuClub_Lauren_PlayerChairCuffed) DrawText(ctx, GetText("ChairCuffed3"), 400, 300, "White");
if (C101_KinbakuClub_Lauren_PlayerChairCuffed) DrawText(GetText("ChairCuffed3"), 400, 300, "White");
if (C101_KinbakuClub_Lauren_PlayerStrappado) {
if (!C101_KinbakuClub_Lauren_PlayerLegCuffs) DrawText(ctx, GetText("LaurenCuffedStrppado"), 400, 300, "White");
if (!C101_KinbakuClub_Lauren_PlayerLegCuffs) DrawText(GetText("LaurenCuffedStrppado"), 400, 300, "White");
if (C101_KinbakuClub_Lauren_PlayerLegCuffs) {
DrawText(ctx, GetText("LaurenCuffedStrppadoLegs"), 400, 300, "White");
DrawText(GetText("LaurenCuffedStrppadoLegs"), 400, 300, "White");
PlayerUnlockInventory("Collar");
}
}
}
if (TextPhase >= 3) DrawText(ctx, GetText("ChairCuffed4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(ctx, GetText("ChairCuffed5"), 400, 500, "White");
if (TextPhase >= 3) DrawText(GetText("ChairCuffed4"), 400, 400, "White");
if (TextPhase >= 4) DrawText(GetText("ChairCuffed5"), 400, 500, "White");
}
//if (C101_KinbakuClub_Chloe_PlayingWithPlayer) {
// DrawRect(ctx, 0, 0, 800, 600, "black");
// if (TextPhase >= 0) DrawText(ctx, GetText("ChloeSub1"), 400, 120, "White");
// if (TextPhase >= 1) DrawText(ctx, GetText("ChloeSub2"), 400, 240, "White");
// if (TextPhase >= 2) DrawText(ctx, GetText("ChloeSub3"), 400, 360, "White");
// if (TextPhase >= 3) DrawText(ctx, GetText("ChloeSub4"), 400, 480, "White");
// DrawRect(0, 0, 800, 600, "black");
// if (TextPhase >= 0) DrawText(GetText("ChloeSub1"), 400, 120, "White");
// if (TextPhase >= 1) DrawText(GetText("ChloeSub2"), 400, 240, "White");
// if (TextPhase >= 2) DrawText(GetText("ChloeSub3"), 400, 360, "White");
// if (TextPhase >= 3) DrawText(GetText("ChloeSub4"), 400, 480, "White");
//}
//if (C101_KinbakuClub_Chloe_PlayerLeftChairTied) {
// DrawRect(ctx, 0, 0, 800, 600, "black");
// if (TextPhase >= 0) DrawText(ctx, GetText("LeftChair1"), 400, 120, "White");
// if (TextPhase >= 1) DrawText(ctx, GetText("LeftChair2"), 400, 240, "White");
// if (TextPhase >= 2) DrawText(ctx, GetText("LeftChair3"), 400, 360, "White");
// if (TextPhase >= 3) DrawText(ctx, GetText("LeftChair4"), 400, 480, "White");
// DrawRect(0, 0, 800, 600, "black");
// if (TextPhase >= 0) DrawText(GetText("LeftChair1"), 400, 120, "White");
// if (TextPhase >= 1) DrawText(GetText("LeftChair2"), 400, 240, "White");
// if (TextPhase >= 2) DrawText(GetText("LeftChair3"), 400, 360, "White");
// if (TextPhase >= 3) DrawText(GetText("LeftChair4"), 400, 480, "White");
//}
}

View file

@ -64,7 +64,7 @@ function DoubleFightLoad(Opp1ActorName, Opp1Difficulty, Opp1Icon, Opp2ActorName,
}
// Draw the fight icons
function DoubleFightDrawIcons(ctx, Opponent) {
function DoubleFightDrawIcons(Opponent) {
// Scroll the fight icons with time
var Seq = 0;
@ -73,7 +73,7 @@ function DoubleFightDrawIcons(ctx, Opponent) {
// Draw the move from 3 seconds before to 1 second after
var currentOpponentIconTime = Opponent.FightMoves[Seq][FightMoveTime];
if ((currentOpponentIconTime <= DoubleFightTimer + 3000) && (currentOpponentIconTime >= DoubleFightTimer - 1000))
DrawImage(ctx, Opponent.FightIcon, Opponent.FightXOffset + 3 + (Opponent.FightMoves[Seq][FightMoveType] * 75), 410 + Math.floor((DoubleFightTimer - currentOpponentIconTime) / 6));
DrawImage(Opponent.FightIcon, Opponent.FightXOffset + 3 + (Opponent.FightMoves[Seq][FightMoveType] * 75), 410 + Math.floor((DoubleFightTimer - currentOpponentIconTime) / 6));
// Remove the move from the sequence if it's past due
if (currentOpponentIconTime < DoubleFightTimer - 1000) {
@ -92,32 +92,32 @@ function DoubleFightDrawIcons(ctx, Opponent) {
}
// Draw the fight bars to tell when the moves will hit
function DoubleFightDrawBar(ctx, Opponent) {
function DoubleFightDrawBar(Opponent) {
// Draw 4 bars per opponent
for(BarNum = 0; BarNum <= 3; BarNum++) {
// The color changes when it's clicked or pressed
DrawRect(ctx, Opponent.FightXOffset + 3 + (BarNum * 75), 437, 70, 27, "White");
DrawRect(Opponent.FightXOffset + 3 + (BarNum * 75), 437, 70, 27, "White");
if ((Opponent.LastMoveType == BarNum) && (Opponent.LastMoveTypeTimer >= DoubleFightTimer))
DrawRect(ctx, Opponent.FightXOffset + 4 + (BarNum * 75), 438, 68, 25, "#66FF66");
DrawRect(Opponent.FightXOffset + 4 + (BarNum * 75), 438, 68, 25, "#66FF66");
else
DrawRect(ctx, Opponent.FightXOffset + 4 + (BarNum * 75), 438, 68, 25, "Red");
if (!IsMobile) DrawText(ctx, String.fromCharCode(Opponent.FightMoveTypeKeyUpper[BarNum]), Opponent.FightXOffset + 36 + (BarNum * 75), 451, "white");
DrawRect(Opponent.FightXOffset + 4 + (BarNum * 75), 438, 68, 25, "Red");
if (!IsMobile) DrawText(String.fromCharCode(Opponent.FightMoveTypeKeyUpper[BarNum]), Opponent.FightXOffset + 36 + (BarNum * 75), 451, "white");
}
}
// Draw the fight progress in the bottom of the fight scene
function DoubleFightDrawProgress(ctx, Opponent) {
DrawRect(ctx, Opponent.FightXOffset, 590, 300, 1, "white");
DrawRect(ctx, Opponent.FightXOffset, 591, Opponent.FightProgress * 3, 9, "#66FF66");
DrawRect(ctx, Opponent.FightXOffset + (Opponent.FightProgress * 3), 591, (100 - Opponent.FightProgress) * 3, 9, "red");
function DoubleFightDrawProgress(Opponent) {
DrawRect(Opponent.FightXOffset, 590, 300, 1, "white");
DrawRect(Opponent.FightXOffset, 591, Opponent.FightProgress * 3, 9, "#66FF66");
DrawRect(Opponent.FightXOffset + (Opponent.FightProgress * 3), 591, (100 - Opponent.FightProgress) * 3, 9, "red");
}
// Draw the opponent actor on the screen
function DoubleFightDrawOpponent(ctx, Opponent) {
function DoubleFightDrawOpponent(Opponent) {
// Before the timer, we use the previous image
if (Opponent.NextImageTime < DoubleFightTimer) {
@ -135,12 +135,12 @@ function DoubleFightDrawOpponent(ctx, Opponent) {
};
// Draw the image on the screen
DrawImageZoom(ctx, Opponent.ImageName, 0, 0, 600, 900, Opponent.ImageXOffset, 50, 600 * 0.75, 900 * 0.75);
DrawImageZoom(Opponent.ImageName, 0, 0, 600, 900, Opponent.ImageXOffset, 50, 600 * 0.75, 900 * 0.75);
}
// Renders a specific opponent
function DoubleFightRenderOpponent(ctx, Opponent) {
function DoubleFightRenderOpponent(Opponent) {
// Starts the fight at an even level and generates moves if there'S none left
if (Opponent.FightProgress > 100) Opponent.FightProgress = 100;
@ -148,20 +148,20 @@ function DoubleFightRenderOpponent(ctx, Opponent) {
if ((Opponent.FightMoves.length == 0) && !DoubleFightEnded && Opponent.FightProgress > 0) Opponent.FightMoves = DoubleFightGenerateMoves(DoubleFightTimer, Opponent.DifficultyText);
// Draw the fighting actors
DoubleFightDrawOpponent(ctx, Opponent);
DoubleFightDrawOpponent(Opponent);
// Draw the fight icons, bars and bottom info when the fight is running
if (!DoubleFightEnded) {
if (DoubleFightTimer >= DoubleFightStartTime) {
if (Opponent.FightProgress < 100) {
DoubleFightDrawBar(ctx, Opponent);
DoubleFightDrawIcons(ctx, Opponent);
DoubleFightDrawProgress(ctx, Opponent);
DoubleFightDrawBar(Opponent);
DoubleFightDrawIcons(Opponent);
DoubleFightDrawProgress(Opponent);
}
}
else {
DrawText(ctx, GetCSVText(DoubleFightText, "Opponent") + " " + Opponent.ActorName, Opponent.FightXOffset + 150, 250, "white");
DrawText(ctx, GetCSVText(DoubleFightText, "Difficulty") + " " + GetCSVText(DoubleFightText, Opponent.DifficultyText), Opponent.FightXOffset + 150, 350, "white");
DrawText(GetCSVText(DoubleFightText, "Opponent") + " " + Opponent.ActorName, Opponent.FightXOffset + 150, 250, "white");
DrawText(GetCSVText(DoubleFightText, "Difficulty") + " " + GetCSVText(DoubleFightText, Opponent.DifficultyText), Opponent.FightXOffset + 150, 350, "white");
}
}
@ -253,22 +253,21 @@ function DoubleFightCheckClick(Opponent) {
function C999_Common_DoubleFight_Run() {
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, "C999_Common/Fights/Backgrounds/" + DoubleFightBackgroundImage + ".jpg", 0, 0);
DrawImage("C999_Common/Fights/Backgrounds/" + DoubleFightBackgroundImage + ".jpg", 0, 0);
// Increments the fight timer and renders the 2 opponents
DoubleFightTimer = DoubleFightTimer + RunInterval;
DoubleFightRenderOpponent(ctx, DoubleFightOpponent1);
DoubleFightRenderOpponent(ctx, DoubleFightOpponent2);
DoubleFightRenderOpponent(DoubleFightOpponent1);
DoubleFightRenderOpponent(DoubleFightOpponent2);
// Draw the fight icons and bottom info when the fight is running
if (!DoubleFightEnded && (DoubleFightTimer < DoubleFightStartTime)) DrawText(ctx, GetCSVText(DoubleFightText, "StartsIn") + " " + (5 - Math.floor(DoubleFightTimer / 1000)).toString(), 600, 30, "white");
if (!DoubleFightEnded && (DoubleFightTimer < DoubleFightStartTime)) DrawText(GetCSVText(DoubleFightText, "StartsIn") + " " + (5 - Math.floor(DoubleFightTimer / 1000)).toString(), 600, 30, "white");
// Draw the end text
if (DoubleFightEnded) {
if ((DoubleFightOpponent1.FightProgress >= 100) && (DoubleFightOpponent2.FightProgress >= 100) && DoubleFightPerfect) DrawText(ctx, GetCSVText(DoubleFightText, "Perfect"), 600, 30, "white");
if ((DoubleFightOpponent1.FightProgress >= 100) && (DoubleFightOpponent2.FightProgress >= 100) && !DoubleFightPerfect) DrawText(ctx, GetCSVText(DoubleFightText, "Victory"), 600, 30, "white");
if ((DoubleFightOpponent1.FightProgress <= 0) || (DoubleFightOpponent2.FightProgress <= 0)) DrawText(ctx, GetCSVText(DoubleFightText, "Defeat"), 600, 30, "white");
if ((DoubleFightOpponent1.FightProgress >= 100) && (DoubleFightOpponent2.FightProgress >= 100) && DoubleFightPerfect) DrawText(GetCSVText(DoubleFightText, "Perfect"), 600, 30, "white");
if ((DoubleFightOpponent1.FightProgress >= 100) && (DoubleFightOpponent2.FightProgress >= 100) && !DoubleFightPerfect) DrawText(GetCSVText(DoubleFightText, "Victory"), 600, 30, "white");
if ((DoubleFightOpponent1.FightProgress <= 0) || (DoubleFightOpponent2.FightProgress <= 0)) DrawText(GetCSVText(DoubleFightText, "Defeat"), 600, 30, "white");
}
}

View file

@ -75,7 +75,7 @@ function FindFightImage() {
}
// Draw the fight icons
function DrawFightIcons(ctx) {
function DrawFightIcons() {
// Scroll the fight icons with time
var Seq = 0;
@ -85,7 +85,7 @@ function DrawFightIcons(ctx) {
var currentIconTime = FightMoves[Seq][FightMoveTime];
var currentIconType = FightMoves[Seq][FightMoveType];
if ((currentIconTime <= FightTimer + 3000) && (currentIconTime >= FightTimer - 1000))
DrawImage(ctx, FightIcon, 812 + (currentIconType * 100), 410 + Math.floor((FightTimer - currentIconTime) / 6));
DrawImage(FightIcon, 812 + (currentIconType * 100), 410 + Math.floor((FightTimer - currentIconTime) / 6));
// Remove the move from the sequence if it's past due
if (FightMoves[Seq][FightMoveTime] < FightTimer - 1000) {
@ -104,23 +104,23 @@ function DrawFightIcons(ctx) {
}
// Draw the fight bars to tell when the moves will hit
function DrawFightBar(ctx, SquareType) {
function DrawFightBar(SquareType) {
// The color changes when it's clicked or pressed
DrawRect(ctx, 810 + (SquareType * 100), 437, 80, 27, "White");
DrawRect(810 + (SquareType * 100), 437, 80, 27, "White");
if ((LastMoveType == SquareType) && (LastMoveTypeTimer >= FightTimer))
DrawRect(ctx, 811 + (SquareType * 100), 438, 78, 25, "#66FF66");
DrawRect(811 + (SquareType * 100), 438, 78, 25, "#66FF66");
else
DrawRect(ctx, 811 + (SquareType * 100), 438, 78, 25, "Red");
if (!IsMobile) DrawText(ctx, String.fromCharCode(FightMoveTypeKeyUpper[SquareType]), 850 + (SquareType * 100), 451, "white");
DrawRect(811 + (SquareType * 100), 438, 78, 25, "Red");
if (!IsMobile) DrawText(String.fromCharCode(FightMoveTypeKeyUpper[SquareType]), 850 + (SquareType * 100), 451, "white");
}
// Draw the fight progress in the bottom of the fight scene
function DrawFightProgress(ctx) {
DrawRect(ctx, 800, 590, 400, 1, "white");
DrawRect(ctx, 800, 591, FightProgress * 4, 9, "#66FF66");
DrawRect(ctx, 800 + (FightProgress * 4), 591, (100 - FightProgress) * 4, 9, "red");
function DrawFightProgress() {
DrawRect(800, 590, 400, 1, "white");
DrawRect(800, 591, FightProgress * 4, 9, "#66FF66");
DrawRect(800 + (FightProgress * 4), 591, (100 - FightProgress) * 4, 9, "red");
}
// Render the fight scene
@ -138,15 +138,14 @@ function RenderFight() {
FightProgress = 50;
// Paints the background depending on the current fight progress
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + FindFightImage(), 0, 0);
DrawRect(ctx, 800, 0, 400, 600, "Black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + FindFightImage(), 0, 0);
DrawRect(800, 0, 400, 600, "Black");
// Draw the fight icons and rectangles
DrawFightBar(ctx, 0);
DrawFightBar(ctx, 1);
DrawFightBar(ctx, 2);
DrawFightBar(ctx, 3);
DrawFightBar(0);
DrawFightBar(1);
DrawFightBar(2);
DrawFightBar(3);
// If there's no moves left, we full the move list again, there's no tie match
if ((FightMoves.length == 0) && (!FightEnded))
@ -155,19 +154,19 @@ function RenderFight() {
// Draw the fight icons and bottom info when the fight is running
if (!FightEnded) {
if (FightTimer >= 5000) {
DrawFightIcons(ctx);
DrawFightProgress(ctx);
DrawFightIcons();
DrawFightProgress();
}
else {
DrawText(ctx, GetText("StartsIn") + " " + (5 - Math.floor(FightTimer / 1000)).toString(), 1000, 510, "white");
DrawText(ctx, GetText("Difficulty") + " " + GetText(FightDifficultyText), 1000, 555, "white");
DrawText(GetText("StartsIn") + " " + (5 - Math.floor(FightTimer / 1000)).toString(), 1000, 510, "white");
DrawText(GetText("Difficulty") + " " + GetText(FightDifficultyText), 1000, 555, "white");
}
}
else {
if ((FightProgress >= 100) && FightPerfect) DrawText(ctx, GetText("Perfect"), 1000, 150, "white");
if ((FightProgress >= 100) && !FightPerfect) DrawText(ctx, GetText("Victory"), 1000, 150, "white");
if (FightProgress <= 0) DrawText(ctx, GetText("Defeat"), 1000, 150, "white");
DrawText(ctx, GetText("ClickContinue"), 1000, 300, "white");
if ((FightProgress >= 100) && FightPerfect) DrawText(GetText("Perfect"), 1000, 150, "white");
if ((FightProgress >= 100) && !FightPerfect) DrawText(GetText("Victory"), 1000, 150, "white");
if (FightProgress <= 0) DrawText(GetText("Defeat"), 1000, 150, "white");
DrawText(GetText("ClickContinue"), 1000, 300, "white");
}
}

View file

@ -13,8 +13,7 @@ function C999_Common_GameLoad_Run() {
// Build the game loading screen
SaveStateSlotSummary();
BuildInteraction(C999_Common_GameLoad_CurrentStage);
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawText(ctx, GetText("LoadGame"), 900, 420, "black");
DrawText(GetText("LoadGame"), 900, 420, "black");
}

View file

@ -15,8 +15,7 @@ function C999_Common_GameSave_Run() {
// Build the game saving screen
SaveStateSlotSummary();
BuildInteraction(C999_Common_GameSave_CurrentStage);
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawText(ctx, GetText("SaveGame"), 900, 420, "black");
DrawText(GetText("SaveGame"), 900, 420, "black");
}

View file

@ -60,50 +60,47 @@ function C999_Common_Player_Run() {
// Paints the player picture
DrawPlayerImage(0, 0);
// Draw the player records, show every actors encountered
var ctx = document.getElementById("MainCanvas").getContext("2d");
// Draw the main frame
DrawRect(ctx, 599, 0, 1, 600, "Black");
DrawRect(ctx, 0, 0, 599, 600, "White");
DrawRect(599, 0, 1, 600, "Black");
DrawRect(0, 0, 599, 600, "White");
// Draw the profile tab (show the player name, title and skills)
if (C999_Common_Player_ActiveTab == "Profile") {
// Shows the basic info
DrawRect(ctx, 300, 0, 300, 50, "black");
DrawRect(ctx, 301, 0, 298, 49, "silver");
DrawText(ctx, GetText("Profile"), 150, 25, "black");
DrawText(ctx, GetText("Relationships"), 450, 25, "white");
DrawText(ctx, GetText("Name") + " " + Common_PlayerName, 300, 90, "black");
DrawText(ctx, GetText("Title") + " " + C999_Common_Player_GetTitle(), 300, 130, "black");
DrawRect(300, 0, 300, 50, "black");
DrawRect(301, 0, 298, 49, "silver");
DrawText(GetText("Profile"), 150, 25, "black");
DrawText(GetText("Relationships"), 450, 25, "white");
DrawText(GetText("Name") + " " + Common_PlayerName, 300, 90, "black");
DrawText(GetText("Title") + " " + C999_Common_Player_GetTitle(), 300, 130, "black");
// Shows the current lover and owner
if (Common_PlayerOwner != "") DrawText(ctx, GetText("Lover") + " " + Common_PlayerLover, 300, 170, "black");
else DrawText(ctx, GetText("Lover") + " " + GetText("NoLover"), 300, 170, "black");
if (Common_PlayerOwner != "") DrawText(ctx, GetText("Owner") + " " + Common_PlayerOwner, 300, 210, "black");
else DrawText(ctx, GetText("Owner") + " " + GetText("NoOwner"), 300, 210, "black");
if (Common_PlayerOwner != "") DrawText(GetText("Lover") + " " + Common_PlayerLover, 300, 170, "black");
else DrawText(GetText("Lover") + " " + GetText("NoLover"), 300, 170, "black");
if (Common_PlayerOwner != "") DrawText(GetText("Owner") + " " + Common_PlayerOwner, 300, 210, "black");
else DrawText(GetText("Owner") + " " + GetText("NoOwner"), 300, 210, "black");
// List the skills
DrawText(ctx, GetText("Skills"), 200, 270, "black");
DrawText(ctx, GetText("Level"), 500, 270, "black");
DrawRect(ctx, 30, 290, 539, 1, "Black");
DrawText(GetText("Skills"), 200, 270, "black");
DrawText(GetText("Level"), 500, 270, "black");
DrawRect(30, 290, 539, 1, "Black");
for (var S = 0; S < PlayerSkill.length; S++) {
DrawText(ctx, GetText("Skill" + PlayerSkill[S][PlayerSkillName]), 200, 320 + S * 40, "black");
DrawText(ctx, PlayerSkill[S][PlayerSkillLevel].toString(), 500, 320 + S * 40, "black");
DrawText(GetText("Skill" + PlayerSkill[S][PlayerSkillName]), 200, 320 + S * 40, "black");
DrawText(PlayerSkill[S][PlayerSkillLevel].toString(), 500, 320 + S * 40, "black");
}
}
// Draw the relationships tab (show all known actors and their relationship with the player)
if (C999_Common_Player_ActiveTab == "Relationships") {
DrawRect(ctx, 0, 0, 300, 50, "black");
DrawRect(ctx, 0, 0, 299, 49, "silver");
DrawText(ctx, GetText("Profile"), 150, 25, "white");
DrawText(ctx, GetText("Relationships"), 450, 25, "black");
DrawRect(0, 0, 300, 50, "black");
DrawRect(0, 0, 299, 49, "silver");
DrawText(GetText("Profile"), 150, 25, "white");
DrawText(GetText("Relationships"), 450, 25, "black");
for (var A = 0; A < Actor.length; A++) {
CurrentActor = Actor[A][ActorName];
DrawActorStats(ctx, 300, A * 50 + 80);
DrawActorStats(300, A * 50 + 80);
}
CurrentActor = "";
}

View file

@ -91,7 +91,7 @@ function RaceLoad(Racer, RacerImageSet, AllowedMinutes, Difficulty, EndGoal, End
}
// Draw the race icons
function RaceDrawIcons(ctx) {
function RaceDrawIcons() {
// Scroll the race icons with time
var Seq = 0;
@ -100,9 +100,9 @@ function RaceDrawIcons(ctx) {
// Draw the move from 3 seconds before to 1 second after
if ((RaceMoves[Seq][RaceMoveTime] <= RaceTimer + 3000) && (RaceMoves[Seq][RaceMoveTime] >= RaceTimer - 1000)) {
if (RaceMoves[Seq][RaceMoveType] <= 3)
DrawImage(ctx, RaceIconLeft, 3 + (RaceMoves[Seq][RaceMoveType] * 75), 410 + Math.floor((RaceTimer - RaceMoves[Seq][RaceMoveTime]) / 6));
DrawImage(RaceIconLeft, 3 + (RaceMoves[Seq][RaceMoveType] * 75), 410 + Math.floor((RaceTimer - RaceMoves[Seq][RaceMoveTime]) / 6));
else
DrawImage(ctx, RaceIconRight, 603 + (RaceMoves[Seq][RaceMoveType] * 75), 410 + Math.floor((RaceTimer - RaceMoves[Seq][RaceMoveTime]) / 6));
DrawImage(RaceIconRight, 603 + (RaceMoves[Seq][RaceMoveType] * 75), 410 + Math.floor((RaceTimer - RaceMoves[Seq][RaceMoveTime]) / 6));
}
// Remove the move from the sequence if it's past due
@ -122,7 +122,7 @@ function RaceDrawIcons(ctx) {
}
// Draw the race bars to tell when the moves will hit
function RaceDrawBar(ctx) {
function RaceDrawBar() {
// Draw 4 bars on each sides
var XOffset = 0;
@ -132,26 +132,26 @@ function RaceDrawBar(ctx) {
if (BarNum == 4) XOffset = 600;
// The color changes when it's clicked or pressed
DrawRect(ctx, XOffset + 3 + (BarNum * 75), 437, 70, 27, "White");
DrawRect(XOffset + 3 + (BarNum * 75), 437, 70, 27, "White");
if ((RaceLastMoveType == BarNum) && (RaceLastMoveTypeTimer >= RaceTimer))
DrawRect(ctx, XOffset + 4 + (BarNum * 75), 438, 68, 25, "#66FF66");
DrawRect(XOffset + 4 + (BarNum * 75), 438, 68, 25, "#66FF66");
else
DrawRect(ctx, XOffset + 4 + (BarNum * 75), 438, 68, 25, "Red");
if (!IsMobile) DrawText(ctx, String.fromCharCode(RaceMovesTypeKeyUpper[BarNum]), XOffset + 36 + (BarNum * 75), 451, "white");
DrawRect(XOffset + 4 + (BarNum * 75), 438, 68, 25, "Red");
if (!IsMobile) DrawText(String.fromCharCode(RaceMovesTypeKeyUpper[BarNum]), XOffset + 36 + (BarNum * 75), 451, "white");
}
}
// Draw the race progress in the bottom screen
function RaceDrawStats(ctx) {
DrawText(ctx, GetCSVText(RaceText, "Combo") + " " + RaceCombo.toString(), 400, 25, "white");
DrawText(ctx, GetCSVText(RaceText, "Speed") + " " + RaceSpeed.toString(), 575, 25, "white");
DrawText(ctx, GetCSVText(RaceText, "Timer") + " " + msToTime(RaceEndTimer - RaceTimer), 800, 25, "white");
function RaceDrawStats() {
DrawText(GetCSVText(RaceText, "Combo") + " " + RaceCombo.toString(), 400, 25, "white");
DrawText(GetCSVText(RaceText, "Speed") + " " + RaceSpeed.toString(), 575, 25, "white");
DrawText(GetCSVText(RaceText, "Timer") + " " + msToTime(RaceEndTimer - RaceTimer), 800, 25, "white");
}
// Draw the actor on the screen
function RaceDrawActor(ctx) {
function RaceDrawActor() {
// Builds the image name
var ImageName = "C999_Common/Races/Actors/" + RaceActor + "/" + RaceActorImageSet;
@ -175,7 +175,7 @@ function RaceDrawActor(ctx) {
// Draw the image on the screen
ImageName = ImageName + "_" + (RaceActorImageFrame).toString() + ".png";
DrawImage(ctx, ImageName, 300, 0);
DrawImage(ImageName, 300, 0);
}
@ -271,12 +271,11 @@ function C999_Common_Race_Run() {
}
// Paints the background
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, "C999_Common/Races/Backgrounds/" + RaceBackgroundImage + ".jpg", RaceProgress * -1, 0);
DrawImage("C999_Common/Races/Backgrounds/" + RaceBackgroundImage + ".jpg", RaceProgress * -1, 0);
// Increments the race timer and draw the actor
if (!RaceEnded) RaceTimer = RaceTimer + RunInterval;
RaceDrawActor(ctx);
RaceDrawActor();
// If the race is over and not completed, we flag a defeat
if ((RaceTimer >= RaceEndTimer) && !RaceEnded)
@ -285,23 +284,23 @@ function C999_Common_Race_Run() {
// Draw the race icons, bars and bottom info when the race is running
if (!RaceEnded) {
if (RaceTimer >= RaceStartTime) {
RaceDrawBar(ctx);
RaceDrawIcons(ctx);
RaceDrawStats(ctx);
RaceDrawBar();
RaceDrawIcons();
RaceDrawStats();
}
else {
DrawText(ctx, RaceGoalText, 600, 25, "white");
DrawText(ctx, GetCSVText(RaceText, "Difficulty") + " " + GetCSVText(RaceText, RaceDifficultyText), 500, 65, "white");
DrawText(ctx, GetCSVText(RaceText, "StartsIn") + " " + (5 - Math.floor(RaceTimer / 1000)).toString(), 700, 65, "white");
DrawText(RaceGoalText, 600, 25, "white");
DrawText(GetCSVText(RaceText, "Difficulty") + " " + GetCSVText(RaceText, RaceDifficultyText), 500, 65, "white");
DrawText(GetCSVText(RaceText, "StartsIn") + " " + (5 - Math.floor(RaceTimer / 1000)).toString(), 700, 65, "white");
}
}
// Draw the end text
if (RaceEnded) {
if ((RaceProgress >= RaceGoal) && RacePerfect) DrawText(ctx, GetCSVText(RaceText, "Perfect"), 600, 25, "white");
if ((RaceProgress >= RaceGoal) && !RacePerfect) DrawText(ctx, GetCSVText(RaceText, "Victory"), 600, 25, "white");
if (RaceProgress < RaceGoal) DrawText(ctx, GetCSVText(RaceText, "Defeat"), 600, 25, "white");
DrawText(ctx, GetCSVText(RaceText, "RaceTime") + " " + msToTime(RaceTimer - RaceStartTime), 600, 65, "white");
if ((RaceProgress >= RaceGoal) && RacePerfect) DrawText(GetCSVText(RaceText, "Perfect"), 600, 25, "white");
if ((RaceProgress >= RaceGoal) && !RacePerfect) DrawText(GetCSVText(RaceText, "Victory"), 600, 25, "white");
if (RaceProgress < RaceGoal) DrawText(GetCSVText(RaceText, "Defeat"), 600, 25, "white");
DrawText(GetCSVText(RaceText, "RaceTime") + " " + msToTime(RaceTimer - RaceStartTime), 600, 65, "white");
}
}

View file

@ -83,7 +83,7 @@ function DetectMobile() {
else if (localStorage.mobile) return true;
// Alternative check
var mobile = ['iphone','ipad','android','blackberry','nokia','opera mini','windows mobile','windows phone','iemobile'];
var mobile = ['iphone','ipad','android','blackberry','nokia','opera mini','windows mobile','windows phone','iemobile','mobile/'];
for (var i in mobile) if (navigator.userAgent.toLowerCase().indexOf(mobile[i].toLowerCase()) > 0) return true;
// If nothing is found, we assume desktop

View file

@ -1,3 +1,6 @@
// The main game canvas where everything will be drawn
var MainCanvas;
// A bank of all the chached images
var CacheImage = {};
@ -43,116 +46,106 @@ function DrawGetImage(Source) {
}
// Draw a zoomed image from a source to the canvas
function DrawImageZoom(ctx, Source, SX, SY, SWidth, SHeight, X, Y, Width, Height) {
ctx.drawImage(DrawGetImage(Source), SX, SY, Math.round(SWidth), Math.round(SHeight), X, Y, Width, Height);
function DrawImageZoom(Source, SX, SY, SWidth, SHeight, X, Y, Width, Height) {
MainCanvas.drawImage(DrawGetImage(Source), SX, SY, Math.round(SWidth), Math.round(SHeight), X, Y, Width, Height);
}
// Draw an image from a source to the canvas
function DrawImage(ctx, Source, X, Y) {
ctx.drawImage(DrawGetImage(Source), X, Y);
}
// Draw an image from a file to the canvas, without using the cache system
function DrawImageNoCache(ctx, Source, X, Y) {
// The image is created dynamically every time
var img = new Image;
img.src = Source;
ctx.drawImage(img, X, Y);
function DrawImage(Source, X, Y) {
MainCanvas.drawImage(DrawGetImage(Source), X, Y);
}
// Draw a text in the canvas
function DrawText(ctx, Text, X, Y, Color) {
function DrawText(Text, X, Y, Color) {
// Replace the COMMON_PLAYERNAME keyword with the player name
Text = Text.replace("COMMON_PLAYERNAME", Common_PlayerName);
// Font is fixed for now, color can be set
ctx.font = "24px Arial";
ctx.fillStyle = Color;
ctx.textAlign = "center";
ctx.textBaseline = "middle";
MainCanvas.font = "24px Arial";
MainCanvas.fillStyle = Color;
MainCanvas.textAlign = "center";
MainCanvas.textBaseline = "middle";
// Split the text if there's a |
// Split the text on two lines if there's a |
if (Text.indexOf("|") == -1)
ctx.fillText(Text, X, Y);
MainCanvas.fillText(Text, X, Y);
else {
ctx.fillText(Text.substring(0, Text.indexOf("|")), X, Y - 19);
ctx.fillText(Text.substring(Text.indexOf("|") + 1, 1000), X, Y + 19);
MainCanvas.fillText(Text.substring(0, Text.indexOf("|")), X, Y - 19);
MainCanvas.fillText(Text.substring(Text.indexOf("|") + 1, 1000), X, Y + 19);
}
}
// Draw a button
function DrawButton(ctx, Left, Top, Width, Height, Label) {
function DrawButton(Left, Top, Width, Height, Label) {
// Draw the button rectangle
ctx.beginPath();
ctx.rect(Left, Top, Width, Height);
ctx.fillStyle = 'white';
ctx.fillRect(Left, Top, Width, Height);
ctx.fill();
ctx.lineWidth = '2';
ctx.strokeStyle = 'black';
ctx.stroke();
ctx.closePath();
MainCanvas.beginPath();
MainCanvas.rect(Left, Top, Width, Height);
MainCanvas.fillStyle = 'white';
MainCanvas.fillRect(Left, Top, Width, Height);
MainCanvas.fill();
MainCanvas.lineWidth = '2';
MainCanvas.strokeStyle = 'black';
MainCanvas.stroke();
MainCanvas.closePath();
// Draw the text
DrawText(ctx, Label, Left + Width / 2, Top + Height / 2, "black");
DrawText(Label, Left + Width / 2, Top + Height / 2, "black");
}
// Draw a basic rectangle
function DrawRect(ctx, Left, Top, Width, Height, Color) {
ctx.beginPath();
ctx.rect(Left, Top, Width, Height);
ctx.fillStyle = Color;
ctx.fillRect(Left, Top, Width, Height);
ctx.fill();
ctx.closePath();
function DrawRect(Left, Top, Width, Height, Color) {
MainCanvas.beginPath();
MainCanvas.rect(Left, Top, Width, Height);
MainCanvas.fillStyle = Color;
MainCanvas.fillRect(Left, Top, Width, Height);
MainCanvas.fill();
MainCanvas.closePath();
}
// Draw a basic circle
function DrawCircle(ctx, CenterX, CenterY, Radius, LineWidth, LineColor) {
ctx.beginPath();
ctx.arc(CenterX, CenterY, Radius, 0, 2 * Math.PI, false);
ctx.lineWidth = LineWidth;
ctx.strokeStyle = LineColor;
ctx.stroke();
function DrawCircle(CenterX, CenterY, Radius, LineWidth, LineColor) {
MainCanvas.beginPath();
MainCanvas.arc(CenterX, CenterY, Radius, 0, 2 * Math.PI, false);
MainCanvas.lineWidth = LineWidth;
MainCanvas.strokeStyle = LineColor;
MainCanvas.stroke();
}
// Draw --- if zero, +value in green if positive, -value in red if negative
function DrawPosNegValue(ctx, Value, X, Y) {
if (Value == 0) DrawText(ctx, "---", X, Y, "black");
if (Value > 0) DrawText(ctx, "+" + Value.toString(), X, Y, "#00BB00");
if (Value < 0) DrawText(ctx, Value.toString(), X, Y, "#BB0000");
function DrawPosNegValue(Value, X, Y) {
if (Value == 0) DrawText("---", X, Y, "black");
if (Value > 0) DrawText("+" + Value.toString(), X, Y, "#00BB00");
if (Value < 0) DrawText(Value.toString(), X, Y, "#BB0000");
}
// Draw the current actor stats toward the player
function DrawActorStats(ctx, Left, Top) {
function DrawActorStats(Left, Top) {
// Draw the actor name and icon
DrawText(ctx, CurrentActor, Left - 200, Top + 17, "black");
DrawImage(ctx, "Icons/Heart.png", Left - 110, Top);
DrawImage(ctx, "Icons/Submission.png", Left - 10, Top);
DrawImage(ctx, "Icons/Orgasm.png", Left + 90, Top);
DrawImage(ctx, "Icons/Bondage.png", Left + 190, Top);
DrawPosNegValue(ctx, ActorGetValue(ActorLove), Left - 50, Top + 17);
DrawPosNegValue(ctx, ActorGetValue(ActorSubmission), Left + 50, Top + 17);
DrawText(ctx, ActorGetValue(ActorOrgasmCount).toString(), Left + 150, Top + 17, "black");
DrawText(ctx, ActorGetValue(ActorBondageCount).toString(), Left + 250, Top + 17, "black");
DrawText(CurrentActor, Left - 200, Top + 17, "black");
DrawImage("Icons/Heart.png", Left - 110, Top);
DrawImage("Icons/Submission.png", Left - 10, Top);
DrawImage("Icons/Orgasm.png", Left + 90, Top);
DrawImage("Icons/Bondage.png", Left + 190, Top);
DrawPosNegValue(ActorGetValue(ActorLove), Left - 50, Top + 17);
DrawPosNegValue(ActorGetValue(ActorSubmission), Left + 50, Top + 17);
DrawText(ActorGetValue(ActorOrgasmCount).toString(), Left + 150, Top + 17, "black");
DrawText(ActorGetValue(ActorBondageCount).toString(), Left + 250, Top + 17, "black");
}
// Draw the intro box
function DrawIntro(ctx, Intro, CurrentStagePosition, LoveLevel, SubLevel) {
function DrawIntro(Intro, CurrentStagePosition, LoveLevel, SubLevel) {
// Draw the top box and stats
DrawRect(ctx, 0, 0, 599, 150, "White");
DrawRect(0, 0, 599, 150, "White");
if (CurrentActor != "") {
DrawRect(ctx, 30, 60, 539, 1, "Black");
DrawActorStats(ctx, 300, 15);
DrawRect(30, 60, 539, 1, "Black");
DrawActorStats(300, 15);
}
// Find the correct intro text
@ -166,24 +159,24 @@ function DrawIntro(ctx, Intro, CurrentStagePosition, LoveLevel, SubLevel) {
ShowText = Intro[I][IntroText];
// Draw the intro
if (CurrentActor != "") DrawText(ctx, ShowText, 300, 105, "black");
else DrawText(ctx, ShowText, 300, 75, "black");
if (CurrentActor != "") DrawText(ShowText, 300, 105, "black");
else DrawText(ShowText, 300, 75, "black");
}
// Draw a selectable option on the screen
function DrawOption(ctx, OptionText, Left, Top) {
function DrawOption(OptionText, Left, Top) {
// Draw the rectangle and text
if (OptionText.substr(0, 1) == "@") OptionText = OptionText.substr(1);
DrawRect(ctx, Left, Top, 299, 89, "White");
if ((MouseX >= Left) && (MouseX <= Left + 299) && (MouseY >= Top) && (MouseY <= Top + 89) && !IsMobile) DrawText(ctx, OptionText, Left + 150, Top + 45, "#00BB00");
else DrawText(ctx, OptionText, Left + 150, Top + 45, "#BB0000");
DrawRect(Left, Top, 299, 89, "White");
if ((MouseX >= Left) && (MouseX <= Left + 299) && (MouseY >= Top) && (MouseY <= Top + 89) && !IsMobile) DrawText(OptionText, Left + 150, Top + 45, "#00BB00");
else DrawText(OptionText, Left + 150, Top + 45, "#BB0000");
}
// Draw all the possible interactions
function DrawInteraction(ctx, Stage, CurrentStagePosition, LoveLevel, SubLevel) {
function DrawInteraction(Stage, CurrentStagePosition, LoveLevel, SubLevel) {
// Find all the correct interactions for the current stage
var Pos = 0;
@ -192,7 +185,7 @@ function DrawInteraction(ctx, Stage, CurrentStagePosition, LoveLevel, SubLevel)
if (ActorInteractionAvailable(Stage[S][StageLoveReq], Stage[S][StageSubReq], Stage[S][StageVarReq], Stage[S][StageInteractionText], false)) {
// Draw the box and interaction
DrawOption(ctx, Stage[S][StageInteractionText], (Pos % 2) * 300, 151 + (Math.round((Pos - 1) / 2) * 90));
DrawOption(Stage[S][StageInteractionText], (Pos % 2) * 300, 151 + (Math.round((Pos - 1) / 2) * 90));
Pos = Pos + 1;
}
@ -222,13 +215,12 @@ function BuildInteraction(CurrentStagePosition) {
if ((CurrentIntro != null) && (CurrentStage != null)) {
// Paints the background depending on the current stage
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, CurrentChapter + "/" + CurrentScreen + "/" + FindImage(CurrentIntro, CurrentStagePosition), 600, 0);
DrawRect(ctx, 0, 0, 600, 600, "Black");
DrawImage(CurrentChapter + "/" + CurrentScreen + "/" + FindImage(CurrentIntro, CurrentStagePosition), 600, 0);
DrawRect(0, 0, 600, 600, "Black");
// Build all the options for interaction
DrawIntro(ctx, CurrentIntro, CurrentStagePosition, 0, 0);
DrawInteraction(ctx, CurrentStage, CurrentStagePosition, 0, 0);
DrawIntro(CurrentIntro, CurrentStagePosition, 0, 0);
DrawInteraction(CurrentStage, CurrentStagePosition, 0, 0);
}
@ -251,26 +243,26 @@ function GetPlayerIconImage() {
}
// Draw all the inventory icons
function DrawInventory(ctx) {
function DrawInventory() {
// Draw the player icon
if (((MouseX >= 1) && (MouseX <= 74) && (MouseY >= 601) && (MouseY <= 674)) || (IsMobile))
DrawImage(ctx, "Icons/" + GetPlayerIconImage() + "_Active.png", 0, 601);
DrawImage("Icons/" + GetPlayerIconImage() + "_Active.png", 0, 601);
else
DrawImage(ctx, "Icons/" + GetPlayerIconImage() + "_Inactive.png", 0, 601);
DrawImage("Icons/" + GetPlayerIconImage() + "_Inactive.png", 0, 601);
// Draw an arrow over the player head if there's a skill level up
if (PlayerSkillShowLevelUp > 0) DrawImage(ctx, "Icons/SkillLevelUp.png", 0, 601);
if (PlayerSkillShowLevelUp > 0) DrawImage("Icons/SkillLevelUp.png", 0, 601);
// Scroll in the full inventory to draw the icons and quantity, draw a padlock over the item if it's locked
var Pos = 1;
for (var I = 0; I < PlayerInventory.length; I++) {
var ImgState = "Inactive";
if (((MouseX >= 1 + Pos * 75) && (MouseX <= 74 + Pos * 75) && (MouseY >= 601) && (MouseY <= 674)) || (IsMobile)) ImgState = "Active";
DrawImage(ctx, "Icons/" + PlayerInventory[I][PlayerInventoryName] + "_" + ImgState + ".png", 1 + Pos * 75, 601);
DrawText(ctx, PlayerInventory[I][PlayerInventoryQuantity].toString(), Pos * 75 + 64, 661, "#000000");
DrawImage("Icons/" + PlayerInventory[I][PlayerInventoryName] + "_" + ImgState + ".png", 1 + Pos * 75, 601);
DrawText(PlayerInventory[I][PlayerInventoryQuantity].toString(), Pos * 75 + 64, 661, "#000000");
if (PlayerHasLockedInventory(PlayerInventory[I][PlayerInventoryName]))
DrawImage(ctx, "Icons/Lock_" + ImgState + ".png", Pos * 75, 600)
DrawImage("Icons/Lock_" + ImgState + ".png", Pos * 75, 600)
Pos = Pos + 1;
};
@ -278,12 +270,12 @@ function DrawInventory(ctx) {
for (var I = 0; I < PlayerLockedInventory.length; I++)
if (!PlayerHasInventory(PlayerLockedInventory[I])) {
if (((MouseX >= 1 + Pos * 75) && (MouseX <= 74 + Pos * 75) && (MouseY >= 601) && (MouseY <= 674)) || (IsMobile)) {
DrawImage(ctx, "Icons/" + PlayerLockedInventory[I] + "_Active.png", 1 + Pos * 75, 601);
DrawImage(ctx, "Icons/Lock_Active.png", Pos * 75, 600);
DrawImage("Icons/" + PlayerLockedInventory[I] + "_Active.png", 1 + Pos * 75, 601);
DrawImage("Icons/Lock_Active.png", Pos * 75, 600);
}
else {
DrawImage(ctx, "Icons/" + PlayerLockedInventory[I] + "_Inactive.png", 1 + Pos * 75, 601);
DrawImage(ctx, "Icons/Lock_Inactive.png", Pos * 75, 600);
DrawImage("Icons/" + PlayerLockedInventory[I] + "_Inactive.png", 1 + Pos * 75, 601);
DrawImage("Icons/Lock_Inactive.png", Pos * 75, 600);
}
Pos = Pos + 1;
};
@ -294,21 +286,20 @@ function DrawInventory(ctx) {
function BuildBottomBar() {
// Paints the background depending on the current stage
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawRect(ctx, 0, 600, 1200, 1, "black");
DrawRect(ctx, 0, 601, 1200, 74, "white");
DrawRect(ctx, 975, 600, 1, 675, "black");
DrawInventory(ctx);
DrawRect(0, 600, 1200, 1, "black");
DrawRect(0, 601, 1200, 74, "white");
DrawRect(975, 600, 1, 675, "black");
DrawInventory();
// Draw the leave icon and clock
if (LeaveIcon != "") {
DrawImage(ctx, "Icons/Clock.png", 985, 621);
DrawText(ctx, msToTime(CurrentTime), 1073, 637, "black");
if (((MouseX >= 1125) && (MouseX <= 1200) && (MouseY >= 600) && (MouseY <= 675)) || (IsMobile)) DrawImage(ctx, "Icons/" + LeaveIcon + "_Active.png", 1125, 600);
else DrawImage(ctx, "Icons/" + LeaveIcon + "_Inactive.png", 1125, 600);
DrawImage("Icons/Clock.png", 985, 621);
DrawText(msToTime(CurrentTime), 1073, 637, "black");
if (((MouseX >= 1125) && (MouseX <= 1200) && (MouseY >= 600) && (MouseY <= 675)) || (IsMobile)) DrawImage("Icons/" + LeaveIcon + "_Active.png", 1125, 600);
else DrawImage("Icons/" + LeaveIcon + "_Inactive.png", 1125, 600);
} else {
DrawImage(ctx, "Icons/Clock.png", 1010, 621);
DrawText(ctx, msToTime(CurrentTime), 1110, 637, "black");
DrawImage("Icons/Clock.png", 1010, 621);
DrawText(msToTime(CurrentTime), 1110, 637, "black");
}
}
@ -358,15 +349,13 @@ function DrawGetPlayerImageName(IncludePose) {
// Draw the regular player image (600x600) (can zoom if an X and Y are provided)
function DrawPlayerImage(X, Y) {
var ctx = document.getElementById("MainCanvas").getContext("2d");
if ((X == 0) && (Y == 0)) DrawImage(ctx, "C999_Common/Player/" + DrawGetPlayerImageName(false) + ".jpg", 600, 0);
else DrawImageZoom(ctx, "C999_Common/Player/" + DrawGetPlayerImageName(false) + ".jpg", X, Y, 600, 600, 600, 0, 1200, 1200);
if ((X == 0) && (Y == 0)) DrawImage("C999_Common/Player/" + DrawGetPlayerImageName(false) + ".jpg", 600, 0);
else DrawImageZoom("C999_Common/Player/" + DrawGetPlayerImageName(false) + ".jpg", X, Y, 600, 600, 600, 0, 1200, 1200);
}
// Draw the transparent player image (600x900) with a zoom if required
function DrawTransparentPlayerImage(X, Y, Zoom) {
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImageZoom(ctx, "Actors/Player/" + DrawGetPlayerImageName(true) + ".png", 0, 0, 600, 900, X, Y, 600 * Zoom, 900 * Zoom);
DrawImageZoom("Actors/Player/" + DrawGetPlayerImageName(true) + ".png", 0, 0, 600, 900, X, Y, 600 * Zoom, 900 * Zoom);
}
// Draw the transparent actor over the current background
@ -410,8 +399,7 @@ function DrawActor(ActorToDraw, X, Y, Zoom) {
if (ActorSpecificGetValue(ActorToDraw, ActorPose) != "") ImagePose = "_" + ActorSpecificGetValue(ActorToDraw, ActorPose);
// Draw the full image from all parts
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImageZoom(ctx, "Actors/" + ActorToDraw + "/" + ImageCloth + ImageBondage + ImageCollar + ImageGag + ImageBlindfold + ImagePose + ".png", 0, 0, 600, 900, X, Y, 600 * Zoom, 900 * Zoom);
DrawImageZoom("Actors/" + ActorToDraw + "/" + ImageCloth + ImageBondage + ImageCollar + ImageGag + ImageBlindfold + ImagePose + ".png", 0, 0, 600, 900, X, Y, 600 * Zoom, 900 * Zoom);
}
@ -428,9 +416,9 @@ function DrawInteractionActor() {
}
// Draw a ramdom image of the player as transition from chapter to chapter
function DrawPlayerTransition(ctx) {
function DrawPlayerTransition() {
var ImgRnd = (Math.round(new Date().getTime() / 5000) % 5) + 1;
DrawImage(ctx, "Actors/PlayerTransition/Player0" + ImgRnd.toString() + ".png", 900, 0);
DrawImage("Actors/PlayerTransition/Player0" + ImgRnd.toString() + ".png", 900, 0);
}
// Returns a the path to a icon. IconName can be preceeded by additional paths.

View file

@ -186,7 +186,7 @@ function PlayerUngag() {
// Add a random item in the player inventory
function PlayerAddRandomItem() {
var ItemList = ["BallGag", "TapeGag", "ClothGag", "Cuffs", "Rope", "Armbinder", "ChastityBelt", "VibratingEgg", "Crop", "Collar", "SleepingPill"];
var Item = ItemList[Math.floor(Math.random() * 10)];
var Item = ItemList[Math.floor(Math.random() * 11)];
PlayerAddInventory(Item, 1);
if (Item == "TapeGag") PlayerAddInventory(Item, 7); // For tape gag, add a bonus + 7 quantity
if ((Item == "Cuffs") && (Math.floor(Math.random() * 2) == 1)) PlayerAddInventory("CuffsKey", 1); // For cuffs, can randomly add keys

View file

@ -96,19 +96,18 @@ function StruggleGetImage(StruggleStage) {
function StruggleDraw(NoStruggleMessage, StruggleStage) {
// Draw the background image
var ctx = document.getElementById("MainCanvas").getContext("2d");
DrawImage(ctx, StruggleGetImage(StruggleStage), 0, 0);
DrawImage(StruggleGetImage(StruggleStage), 0, 0);
// Draw the struggle text on top
if (StruggleProgress <= 0) DrawText(ctx, NoStruggleMessage, 600, 30, "white");
if (StruggleProgress >= 100) DrawText(ctx, StruggleDoneMessage, 600, 30, "white");
if ((StruggleProgress > 0) && (StruggleProgress < 100)) { DrawText(ctx, StruggleMessage, 600, 30, "white"); DrawCircle(ctx, StruggleX, StruggleY, StruggleRadius + 4, 4, "white"); }
if ((StruggleProgress > 50) && (StruggleProgress < 100)) DrawText(ctx, StruggleDifficultyShown, StruggleX, StruggleY + StruggleRadius + 30, "white");
if (StruggleProgress <= 0) DrawText(NoStruggleMessage, 600, 30, "white");
if (StruggleProgress >= 100) DrawText(StruggleDoneMessage, 600, 30, "white");
if ((StruggleProgress > 0) && (StruggleProgress < 100)) { DrawText(StruggleMessage, 600, 30, "white"); DrawCircle(StruggleX, StruggleY, StruggleRadius + 4, 4, "white"); }
if ((StruggleProgress > 50) && (StruggleProgress < 100)) DrawText(StruggleDifficultyShown, StruggleX, StruggleY + StruggleRadius + 30, "white");
// Draw the progress meter
DrawRect(ctx, 399, 579, 402, 12, "white");
DrawRect(ctx, 400, 580, StruggleProgress * 4, 10, "#66FF66");
DrawRect(ctx, 400 + (StruggleProgress * 4), 580, (100 - StruggleProgress) * 4, 10, "red");
DrawRect(399, 579, 402, 12, "white");
DrawRect(400, 580, StruggleProgress * 4, 10, "#66FF66");
DrawRect(400 + (StruggleProgress * 4), 580, (100 - StruggleProgress) * 4, 10, "red");
}

View file

@ -100,6 +100,7 @@
<script src="C009_Library/Library/Script.js"></script>
<script src="C009_Library/Search/Script.js"></script>
<script src="C009_Library/Jennifer/Script.js"></script>
<script src="C009_Library/Yuki/Script.js"></script>
<script src="C009_Library/Outro/Script.js"></script>
<script src="C010_Revenge/Intro/Script.js"></script>
<script src="C010_Revenge/AmandaSarah/Script.js"></script>
@ -148,6 +149,7 @@
// When the code is loaded, start on "Chapter 0" to select a chapter and loads the default language
window.onload = function() {
MainCanvas = document.getElementById("MainCanvas").getContext("2d");
if (localStorage.getItem("CurrentLanguageTag")) CurrentLanguageTag = localStorage.getItem("CurrentLanguageTag");
IsMobile = DetectMobile();
document.getElementById("MainCanvas").addEventListener("keypress", KeyDown);