diff --git a/Actor.js b/Actor.js index 5c5c7a9991..80b80ea354 100644 --- a/Actor.js +++ b/Actor.js @@ -159,6 +159,13 @@ function ActorSpecificSetCloth(SpecificActor, NewCloth) { Actor[A][ActorCloth] = NewCloth; } +// Set the pose for the current actor +function ActorSetPose(NewPose) { + for (var A = 0; A < Actor.length; A++) + if (Actor[A][ActorName] == CurrentActor) + Actor[A][ActorPose] = NewPose; +} + // Sets the pose for a specified actor (also works for the player if needed) function ActorSpecificSetPose(SpecificActor, NewPose) { if (SpecificActor == "Player") { diff --git a/Actors/Amanda/Heroine_Cuffs_BallGag.png b/Actors/Amanda/Heroine_Cuffs_BallGag.png new file mode 100644 index 0000000000..3efc38bc4c Binary files /dev/null and b/Actors/Amanda/Heroine_Cuffs_BallGag.png differ diff --git a/Actors/Amanda/Heroine_Cuffs_ClothGag.png b/Actors/Amanda/Heroine_Cuffs_ClothGag.png new file mode 100644 index 0000000000..7c9b4e7d76 Binary files /dev/null and b/Actors/Amanda/Heroine_Cuffs_ClothGag.png differ diff --git a/Actors/Amanda/Heroine_Cuffs_NoGag.png b/Actors/Amanda/Heroine_Cuffs_NoGag.png new file mode 100644 index 0000000000..97dd848dc2 Binary files /dev/null and b/Actors/Amanda/Heroine_Cuffs_NoGag.png differ diff --git a/Actors/Amanda/Heroine_Cuffs_TapeGag.png b/Actors/Amanda/Heroine_Cuffs_TapeGag.png new file mode 100644 index 0000000000..5bc560faef Binary files /dev/null and b/Actors/Amanda/Heroine_Cuffs_TapeGag.png differ diff --git a/Actors/Amanda/Heroine_NoBondage_BallGag.png b/Actors/Amanda/Heroine_NoBondage_BallGag.png new file mode 100644 index 0000000000..a42a3d85cb Binary files /dev/null and b/Actors/Amanda/Heroine_NoBondage_BallGag.png differ diff --git a/Actors/Amanda/Heroine_NoBondage_ClothGag.png b/Actors/Amanda/Heroine_NoBondage_ClothGag.png new file mode 100644 index 0000000000..b965a2dcee Binary files /dev/null and b/Actors/Amanda/Heroine_NoBondage_ClothGag.png differ diff --git a/Actors/Amanda/Heroine_NoBondage_TapeGag.png b/Actors/Amanda/Heroine_NoBondage_TapeGag.png new file mode 100644 index 0000000000..1c51180128 Binary files /dev/null and b/Actors/Amanda/Heroine_NoBondage_TapeGag.png differ diff --git a/Actors/Amanda/Villain_Cuffs_BallGag.png b/Actors/Amanda/Villain_Cuffs_BallGag.png new file mode 100644 index 0000000000..0d105b5d16 Binary files /dev/null and b/Actors/Amanda/Villain_Cuffs_BallGag.png differ diff --git a/Actors/Amanda/Villain_Cuffs_ClothGag.png b/Actors/Amanda/Villain_Cuffs_ClothGag.png new file mode 100644 index 0000000000..bbdede37fb Binary files /dev/null and b/Actors/Amanda/Villain_Cuffs_ClothGag.png differ diff --git a/Actors/Amanda/Villain_Cuffs_NoGag.png b/Actors/Amanda/Villain_Cuffs_NoGag.png new file mode 100644 index 0000000000..b69d0b16e7 Binary files /dev/null and b/Actors/Amanda/Villain_Cuffs_NoGag.png differ diff --git a/Actors/Amanda/Villain_Cuffs_TapeGag.png b/Actors/Amanda/Villain_Cuffs_TapeGag.png new file mode 100644 index 0000000000..935c4b0637 Binary files /dev/null and b/Actors/Amanda/Villain_Cuffs_TapeGag.png differ diff --git a/Actors/Amanda/Villain_NoBondage_BallGag.png b/Actors/Amanda/Villain_NoBondage_BallGag.png new file mode 100644 index 0000000000..b7ec388a6b Binary files /dev/null and b/Actors/Amanda/Villain_NoBondage_BallGag.png differ diff --git a/Actors/Amanda/Villain_NoBondage_ClothGag.png b/Actors/Amanda/Villain_NoBondage_ClothGag.png new file mode 100644 index 0000000000..faee2bd800 Binary files /dev/null and b/Actors/Amanda/Villain_NoBondage_ClothGag.png differ diff --git a/Actors/Amanda/Villain_NoBondage_TapeGag.png b/Actors/Amanda/Villain_NoBondage_TapeGag.png new file mode 100644 index 0000000000..a4161cc649 Binary files /dev/null and b/Actors/Amanda/Villain_NoBondage_TapeGag.png differ diff --git a/Actors/Julia/Underwear_TwoRopes_BallGag.png b/Actors/Julia/Underwear_TwoRopes_BallGag.png index 52e300c86e..f0587efa8a 100644 Binary files a/Actors/Julia/Underwear_TwoRopes_BallGag.png and b/Actors/Julia/Underwear_TwoRopes_BallGag.png differ diff --git a/Actors/Julia/Underwear_TwoRopes_ClothGag.png b/Actors/Julia/Underwear_TwoRopes_ClothGag.png index 70b2504b92..c8ed98e552 100644 Binary files a/Actors/Julia/Underwear_TwoRopes_ClothGag.png and b/Actors/Julia/Underwear_TwoRopes_ClothGag.png differ diff --git a/Actors/Julia/Underwear_TwoRopes_NoGag.png b/Actors/Julia/Underwear_TwoRopes_NoGag.png index 810ae1feb5..f91d830a08 100644 Binary files a/Actors/Julia/Underwear_TwoRopes_NoGag.png and b/Actors/Julia/Underwear_TwoRopes_NoGag.png differ diff --git a/Actors/Julia/Underwear_TwoRopes_TapeGag.png b/Actors/Julia/Underwear_TwoRopes_TapeGag.png index 1cbc331fbb..0c9cc0fa32 100644 Binary files a/Actors/Julia/Underwear_TwoRopes_TapeGag.png and b/Actors/Julia/Underwear_TwoRopes_TapeGag.png differ diff --git a/Actors/Player/Damsel_Cuffs_Collar_BallGag.png b/Actors/Player/Damsel_Cuffs_Collar_BallGag.png new file mode 100644 index 0000000000..2f2804ad2a Binary files /dev/null and b/Actors/Player/Damsel_Cuffs_Collar_BallGag.png differ diff --git a/Actors/Player/Damsel_Cuffs_Collar_ClothGag.png b/Actors/Player/Damsel_Cuffs_Collar_ClothGag.png new file mode 100644 index 0000000000..4c2715d0ac Binary files /dev/null and b/Actors/Player/Damsel_Cuffs_Collar_ClothGag.png differ diff --git a/Actors/Player/Damsel_Cuffs_Collar_NoGag.png b/Actors/Player/Damsel_Cuffs_Collar_NoGag.png new file mode 100644 index 0000000000..7a3f3f087a Binary files /dev/null and b/Actors/Player/Damsel_Cuffs_Collar_NoGag.png differ diff --git a/Actors/Player/Damsel_Cuffs_Collar_TapeGag.png b/Actors/Player/Damsel_Cuffs_Collar_TapeGag.png new file mode 100644 index 0000000000..53b5fa6df2 Binary files /dev/null and b/Actors/Player/Damsel_Cuffs_Collar_TapeGag.png differ diff --git a/Actors/Player/Damsel_Cuffs_NoCollar_BallGag.png b/Actors/Player/Damsel_Cuffs_NoCollar_BallGag.png new file mode 100644 index 0000000000..d9c0fd8892 Binary files /dev/null and b/Actors/Player/Damsel_Cuffs_NoCollar_BallGag.png differ diff --git a/Actors/Player/Damsel_Cuffs_NoCollar_ClothGag.png b/Actors/Player/Damsel_Cuffs_NoCollar_ClothGag.png new file mode 100644 index 0000000000..22a4350ab0 Binary files /dev/null and b/Actors/Player/Damsel_Cuffs_NoCollar_ClothGag.png differ diff --git a/Actors/Player/Damsel_Cuffs_NoCollar_NoGag.png b/Actors/Player/Damsel_Cuffs_NoCollar_NoGag.png new file mode 100644 index 0000000000..c3be7917df Binary files /dev/null and b/Actors/Player/Damsel_Cuffs_NoCollar_NoGag.png differ diff --git a/Actors/Player/Damsel_Cuffs_NoCollar_TapeGag.png b/Actors/Player/Damsel_Cuffs_NoCollar_TapeGag.png new file mode 100644 index 0000000000..d236364815 Binary files /dev/null and b/Actors/Player/Damsel_Cuffs_NoCollar_TapeGag.png differ diff --git a/Actors/Player/Damsel_NoBondage_Collar_BallGag.png b/Actors/Player/Damsel_NoBondage_Collar_BallGag.png new file mode 100644 index 0000000000..2f2804ad2a Binary files /dev/null and b/Actors/Player/Damsel_NoBondage_Collar_BallGag.png differ diff --git a/Actors/Player/Damsel_NoBondage_Collar_ClothGag.png b/Actors/Player/Damsel_NoBondage_Collar_ClothGag.png new file mode 100644 index 0000000000..4c2715d0ac Binary files /dev/null and b/Actors/Player/Damsel_NoBondage_Collar_ClothGag.png differ diff --git a/Actors/Player/Damsel_NoBondage_Collar_NoGag.png b/Actors/Player/Damsel_NoBondage_Collar_NoGag.png index e15e849bc5..7a3f3f087a 100644 Binary files a/Actors/Player/Damsel_NoBondage_Collar_NoGag.png and b/Actors/Player/Damsel_NoBondage_Collar_NoGag.png differ diff --git a/Actors/Player/Damsel_NoBondage_Collar_TapeGag.png b/Actors/Player/Damsel_NoBondage_Collar_TapeGag.png new file mode 100644 index 0000000000..53b5fa6df2 Binary files /dev/null and b/Actors/Player/Damsel_NoBondage_Collar_TapeGag.png differ diff --git a/Actors/Player/Damsel_NoBondage_NoCollar_BallGag.png b/Actors/Player/Damsel_NoBondage_NoCollar_BallGag.png new file mode 100644 index 0000000000..d9c0fd8892 Binary files /dev/null and b/Actors/Player/Damsel_NoBondage_NoCollar_BallGag.png differ diff --git a/Actors/Player/Damsel_NoBondage_NoCollar_ClothGag.png b/Actors/Player/Damsel_NoBondage_NoCollar_ClothGag.png new file mode 100644 index 0000000000..22a4350ab0 Binary files /dev/null and b/Actors/Player/Damsel_NoBondage_NoCollar_ClothGag.png differ diff --git a/Actors/Player/Damsel_NoBondage_NoCollar_NoGag.png b/Actors/Player/Damsel_NoBondage_NoCollar_NoGag.png index 93289036e6..c3be7917df 100644 Binary files a/Actors/Player/Damsel_NoBondage_NoCollar_NoGag.png and b/Actors/Player/Damsel_NoBondage_NoCollar_NoGag.png differ diff --git a/Actors/Player/Damsel_NoBondage_NoCollar_TapeGag.png b/Actors/Player/Damsel_NoBondage_NoCollar_TapeGag.png new file mode 100644 index 0000000000..d236364815 Binary files /dev/null and b/Actors/Player/Damsel_NoBondage_NoCollar_TapeGag.png differ diff --git a/Actors/Player/Heroine_Cuffs_BallGag.png b/Actors/Player/Heroine_Cuffs_BallGag.png new file mode 100644 index 0000000000..12dd3a406b Binary files /dev/null and b/Actors/Player/Heroine_Cuffs_BallGag.png differ diff --git a/Actors/Player/Heroine_Cuffs_ClothGag.png b/Actors/Player/Heroine_Cuffs_ClothGag.png new file mode 100644 index 0000000000..170e02b8a6 Binary files /dev/null and b/Actors/Player/Heroine_Cuffs_ClothGag.png differ diff --git a/Actors/Player/Heroine_Cuffs_NoGag.png b/Actors/Player/Heroine_Cuffs_NoGag.png new file mode 100644 index 0000000000..15fe773356 Binary files /dev/null and b/Actors/Player/Heroine_Cuffs_NoGag.png differ diff --git a/Actors/Player/Heroine_Cuffs_TapeGag.png b/Actors/Player/Heroine_Cuffs_TapeGag.png new file mode 100644 index 0000000000..ff9f113135 Binary files /dev/null and b/Actors/Player/Heroine_Cuffs_TapeGag.png differ diff --git a/Actors/Player/Heroine_NoBondage_BallGag.png b/Actors/Player/Heroine_NoBondage_BallGag.png new file mode 100644 index 0000000000..4ead997dfe Binary files /dev/null and b/Actors/Player/Heroine_NoBondage_BallGag.png differ diff --git a/Actors/Player/Heroine_NoBondage_ClothGag.png b/Actors/Player/Heroine_NoBondage_ClothGag.png new file mode 100644 index 0000000000..db7a3cf30e Binary files /dev/null and b/Actors/Player/Heroine_NoBondage_ClothGag.png differ diff --git a/Actors/Player/Heroine_NoBondage_TapeGag.png b/Actors/Player/Heroine_NoBondage_TapeGag.png new file mode 100644 index 0000000000..51263cb97d Binary files /dev/null and b/Actors/Player/Heroine_NoBondage_TapeGag.png differ diff --git a/Actors/Player/Villain_Cuffs_BallGag.png b/Actors/Player/Villain_Cuffs_BallGag.png new file mode 100644 index 0000000000..e6d7c8a355 Binary files /dev/null and b/Actors/Player/Villain_Cuffs_BallGag.png differ diff --git a/Actors/Player/Villain_Cuffs_ClothGag.png b/Actors/Player/Villain_Cuffs_ClothGag.png new file mode 100644 index 0000000000..66df5649fb Binary files /dev/null and b/Actors/Player/Villain_Cuffs_ClothGag.png differ diff --git a/Actors/Player/Villain_Cuffs_NoGag.png b/Actors/Player/Villain_Cuffs_NoGag.png new file mode 100644 index 0000000000..c4453718ca Binary files /dev/null and b/Actors/Player/Villain_Cuffs_NoGag.png differ diff --git a/Actors/Player/Villain_Cuffs_TapeGag.png b/Actors/Player/Villain_Cuffs_TapeGag.png new file mode 100644 index 0000000000..ef3ab026b4 Binary files /dev/null and b/Actors/Player/Villain_Cuffs_TapeGag.png differ diff --git a/Actors/Player/Villain_NoBondage_BallGag.png b/Actors/Player/Villain_NoBondage_BallGag.png new file mode 100644 index 0000000000..c77a179c95 Binary files /dev/null and b/Actors/Player/Villain_NoBondage_BallGag.png differ diff --git a/Actors/Player/Villain_NoBondage_ClothGag.png b/Actors/Player/Villain_NoBondage_ClothGag.png new file mode 100644 index 0000000000..79a54bbaea Binary files /dev/null and b/Actors/Player/Villain_NoBondage_ClothGag.png differ diff --git a/Actors/Player/Villain_NoBondage_TapeGag.png b/Actors/Player/Villain_NoBondage_TapeGag.png new file mode 100644 index 0000000000..0ff9eacd21 Binary files /dev/null and b/Actors/Player/Villain_NoBondage_TapeGag.png differ diff --git a/Actors/Sarah/Heroine_Cuffs_BallGag.png b/Actors/Sarah/Heroine_Cuffs_BallGag.png new file mode 100644 index 0000000000..6e3ad13928 Binary files /dev/null and b/Actors/Sarah/Heroine_Cuffs_BallGag.png differ diff --git a/Actors/Sarah/Heroine_Cuffs_ClothGag.png b/Actors/Sarah/Heroine_Cuffs_ClothGag.png new file mode 100644 index 0000000000..2422837594 Binary files /dev/null and b/Actors/Sarah/Heroine_Cuffs_ClothGag.png differ diff --git a/Actors/Sarah/Heroine_Cuffs_NoGag.png b/Actors/Sarah/Heroine_Cuffs_NoGag.png new file mode 100644 index 0000000000..d6f4442fb3 Binary files /dev/null and b/Actors/Sarah/Heroine_Cuffs_NoGag.png differ diff --git a/Actors/Sarah/Heroine_Cuffs_TapeGag.png b/Actors/Sarah/Heroine_Cuffs_TapeGag.png new file mode 100644 index 0000000000..47d620f642 Binary files /dev/null and b/Actors/Sarah/Heroine_Cuffs_TapeGag.png differ diff --git a/Actors/Sarah/Heroine_NoBondage_BallGag.png b/Actors/Sarah/Heroine_NoBondage_BallGag.png new file mode 100644 index 0000000000..cb9210d4e4 Binary files /dev/null and b/Actors/Sarah/Heroine_NoBondage_BallGag.png differ diff --git a/Actors/Sarah/Heroine_NoBondage_ClothGag.png b/Actors/Sarah/Heroine_NoBondage_ClothGag.png new file mode 100644 index 0000000000..d43b6135f0 Binary files /dev/null and b/Actors/Sarah/Heroine_NoBondage_ClothGag.png differ diff --git a/Actors/Sarah/Heroine_NoBondage_TapeGag.png b/Actors/Sarah/Heroine_NoBondage_TapeGag.png new file mode 100644 index 0000000000..4d359b283c Binary files /dev/null and b/Actors/Sarah/Heroine_NoBondage_TapeGag.png differ diff --git a/C008_DramaClass/Damsel/BackgroundOrgasm.jpg b/C008_DramaClass/Damsel/BackgroundOrgasm.jpg new file mode 100644 index 0000000000..4a0a8fccfd Binary files /dev/null and b/C008_DramaClass/Damsel/BackgroundOrgasm.jpg differ diff --git a/C008_DramaClass/Damsel/Intro_EN.csv b/C008_DramaClass/Damsel/Intro_EN.csv index c0cb979920..78d98dcae6 100644 --- a/C008_DramaClass/Damsel/Intro_EN.csv +++ b/C008_DramaClass/Damsel/Intro_EN.csv @@ -42,4 +42,7 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image 400,0,0,PlayerIsHeroine,My hero! What do you need from me?,Background.jpg 400,0,0,PlayerIsVillain,"Oh lord, the black knight.|What do you require of me?",Background.jpg 400,0,0,IsGagged,Uuurgmn!,Background.jpg +410,0,0,PlayerIsHeroine,My hero! What do you need from me?,Background.jpg +410,0,0,PlayerIsVillain,"Oh lord, the black knight.|What do you require of me?",Background.jpg +410,0,0,IsGagged,Uuurgmn!,Background.jpg 500,0,0,,(It seems the play isn't totally over.|You can still interact with the others.),Background.jpg diff --git a/C008_DramaClass/Damsel/Script.js b/C008_DramaClass/Damsel/Script.js index 213d437fd9..f8f27ca64e 100644 --- a/C008_DramaClass/Damsel/Script.js +++ b/C008_DramaClass/Damsel/Script.js @@ -12,6 +12,20 @@ var C008_DramaClass_Damsel_CanKneelVillain = false; var C008_DramaClass_Damsel_CanHugHeroine = false; var C008_DramaClass_Damsel_CanHugVillain = false; var C008_DramaClass_Damsel_IsGagged = false; +var C008_DramaClass_Damsel_CanUntie = false; +var C008_DramaClass_Damsel_CanUngag = false; +var C008_DramaClass_Damsel_CanAbuse = false; +var C008_DramaClass_Damsel_OrgasmDone = false; +var C008_DramaClass_Damsel_ViolenceDone = false; +var C008_DramaClass_Damsel_MastubateCount = 0; + +// Calculates the scene parameters +function C008_DramaClass_Damsel_CalcParams() { + C008_DramaClass_Damsel_IsGagged = ActorIsGagged(); + C008_DramaClass_Damsel_CanUntie = (ActorHasInventory("Rope") && !Common_PlayerRestrained); + C008_DramaClass_Damsel_CanUngag = (C008_DramaClass_Damsel_IsGagged && !Common_PlayerRestrained); + C008_DramaClass_Damsel_CanAbuse = (ActorIsRestrained() && !Common_PlayerRestrained); +} // Chapter 8 - Damsel Load function C008_DramaClass_Damsel_Load() { @@ -33,11 +47,12 @@ function C008_DramaClass_Damsel_Load() { LoadInteractions(); LeaveIcon = "Leave"; LeaveScreen = "Theater"; - C008_DramaClass_Damsel_IsGagged = ActorIsGagged(); + C008_DramaClass_Damsel_CalcParams(); // Other options for the villains & heroine when Sarah is in bondage if (C008_DramaClass_Damsel_PlayerIsHeroine && (C008_DramaClass_Damsel_CurrentStage == 250) && ActorSpecificInBondage("Sarah")) C008_DramaClass_Damsel_CurrentStage = 255; if (C008_DramaClass_Damsel_PlayerIsVillain && (C008_DramaClass_Damsel_CurrentStage == 280) && ActorSpecificInBondage("Sarah")) C008_DramaClass_Damsel_CurrentStage = 285; + if ((C008_DramaClass_Damsel_CurrentStage == 400) && C008_DramaClass_Damsel_IsGagged) C008_DramaClass_Damsel_CurrentStage = 410; } @@ -69,6 +84,18 @@ function C008_DramaClass_Damsel_Click() { C008_DramaClass_Theater_SetPose(); } + // The damsel can be restrained on stage 410 + if ((C008_DramaClass_Damsel_CurrentStage == 410) && (ClickInv != "") && (ClickInv != "Player") && !Common_PlayerRestrained) { + + // A few items can change the actor attitude + if ((ClickInv == "Crop") && !C008_DramaClass_Damsel_ViolenceDone) { C008_DramaClass_Damsel_ViolenceDone = true; ActorChangeAttitude(1, 0); } + + // Apply the clicked restrain + ActorApplyRestrain(ClickInv); + C008_DramaClass_Damsel_CalcParams(); + + } + } // Chapter 8 - Damsel - Sets the global stage and can alter Julia's mood @@ -186,4 +213,39 @@ function C008_DramaClass_Damsel_FinalTwoPrisoners() { ActorSpecificChangeAttitude("Julia", 0, 1); C008_DramaClass_Theater_GlobalStage = 300; C008_DramaClass_Theater_Ending = "TwoPrisoners"; +} + +// Chapter 8 - Damsel Strip +function C008_DramaClass_Damsel_Strip() { + ActorSetCloth("Underwear"); + CurrentTime = CurrentTime + 50000; +} + +// Chapter 8 - Damsel Untie +function C008_DramaClass_Damsel_Untie() { + ActorUntie(); + C008_DramaClass_Damsel_CalcParams(); +} + +// Chapter 8 - Damsel Ungag +function C008_DramaClass_Damsel_Ungag() { + ActorUngag(); + C008_DramaClass_Damsel_CalcParams(); +} + +// Chapter 8 - Damsel Spank +function C008_DramaClass_Damsel_Spank() { + if (!C008_DramaClass_Damsel_ViolenceDone) { C008_DramaClass_Damsel_ViolenceDone = true; ActorChangeAttitude(1, 0); } +} + +// Chapter 8 - Damsel Masturbate, Sarah can climax if she was hit before (Spank or Crop) +function C008_DramaClass_Damsel_Masturbate() { + C008_DramaClass_Damsel_MastubateCount++; + if ((C008_DramaClass_Damsel_MastubateCount >= 3) && !C008_DramaClass_Damsel_OrgasmDone && C008_DramaClass_Damsel_ViolenceDone) { + C008_DramaClass_Damsel_OrgasmDone = true; + ActorAddOrgasm(); + ActorChangeAttitude(1, 0); + OverridenIntroText = GetText("Orgasm"); + OverridenIntroImage = "BackgroundOrgasm.jpg"; + } } \ No newline at end of file diff --git a/C008_DramaClass/Damsel/Stage_EN.csv b/C008_DramaClass/Damsel/Stage_EN.csv index a0652a6b8a..4d39975b8a 100644 --- a/C008_DramaClass/Damsel/Stage_EN.csv +++ b/C008_DramaClass/Damsel/Stage_EN.csv @@ -40,3 +40,12 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 285,0,0,,Thou shalt be thine|prisoner. (1 minute),The damsel shakes her head no and giggles.|The play concludes with both of them as prisoners.,300,0,0,FinalTwoPrisoners() 285,0,0,,You're my prisoner.|(1 minute),The damsel shakes her head no and giggles.|The play concludes with both of them as prisoners.,300,0,0,FinalTwoPrisoners() 285,0,0,,Sorry Julia.|I forgot my line.,"Julia laughs out loud and says:|""Don't worry and improvise, we are off script.""",285,0,0, +400,0,0,,I won't marry you.|Remove this dress.,"Of course fair knight, I'm sorry to hear that.|(She removes her gown and throws it away.)",410,-1,1,Strip() +400,0,0,,Lovely damsel. Show|us your perfect body.,Oh yes my fair knight! Let me do this.|(She removes her gown and throws it away.),410,1,0,Strip() +400,0,0,,You don't look|great in that gown.,It gives me a huge but? I'll remove it.|(She removes her gown and throws it away.),410,-1,0,Strip() +400,0,0,,It would be even|kinkier in your undies.,Yes! That's a great idea. I'll remove it.|(She removes her gown and throws it away.),410,1,-1,Strip() +410,0,0,CanUntie,(Untie her.)|(1 minute),(She resists not to be untied but you're|able to undo the knots and release her.),410,0,0,Untie() +410,0,0,CanUngag,(Ungag her.)|(1 minute),(You remove the gag and she looks at you.)|Can this lovely damsel get another gag?,410,0,0,Ungag() +410,0,0,CanAbuse,(Tickle her.)|(1 minute),(She giggles and struggles lightly.|She doesn't seem very ticklish.),410,0,0, +410,0,0,CanAbuse,(Spank her.)|(1 minute),(You spank her pretty hard on the butt.|She moans softly with each hit and enjoys it.),410,0,0,Spank() +410,0,0,CanAbuse,(Masturbate her.)|(1 minute),(You mastubate her slowly while|she moans faster and faster.),410,0,0,Masturbate() diff --git a/C008_DramaClass/Damsel/Text_EN.csv b/C008_DramaClass/Damsel/Text_EN.csv index 298b5b58b1..a759c50408 100644 --- a/C008_DramaClass/Damsel/Text_EN.csv +++ b/C008_DramaClass/Damsel/Text_EN.csv @@ -4,9 +4,16 @@ SarahChooseWhiteKnightRestrained,"Sarah: ""I profess love unto thy white hero."" SarahChooseBlackKnight,"Sarah: ""I profess love unto thy black champion.""|The black knight smiles and takes the lead." AmandaRestrainPlayer,Amanda jumps on you and restrains you.|She then turns to the hero with a menacing look. AmandaReleaseForKiss,Amanda rushes to release Sarah and she|dresses back. They conclude with a lovely kiss. -VillainRope,"You surprise her and strip her of her gown.|Before she can react, you tie her up." -Rope,You wrap the rope around her|body while she shivers of pleasure. -TwoRopes,You force her to kneel and tie|a second rope around her legs. -BallGag,She sees the gag and quickly opens|wide so you can push it and buckle it. -TapeGag,She closes her mouth so you|can tape it shut more easily. -ClothGag,You slowly push the wad in her mouth|and wrap the gag around her head. +VillainRope,"(You surprise her and strip her of her gown.|Before she can react, you tie her up tight.)" +Crop,(You whip her pretty hard and she trembles|of pleasure. She really seems to enjoys it.) +Rope,(You wrap the rope around her|body while she shivers of pleasure.) +TwoRopes,(You force her to kneel and tie|a second rope around her legs.) +Cuffs,(She undress and naturally puts her|hands behind her back so you can lock them.) +BallGag,(She sees the gag and quickly opens|wide so you can push it and buckle it.) +TapeGag,(She closes her mouth so you|can tape it shut more easily.) +ClothGag,(You slowly push the wad in her mouth|and wrap the gag around her head.) +CuffsKey,(She tries to make it harder for you|to unlock her but you're able to do it.) +VibratingEgg,(She happily nods while you|slide the vibrating egg inside.) +ChastityBelt,(She panics when she sees the belt|but she resigns as you lock it on her.) +Collar,(You need +20 submission and a|special ceremony to collar a student.) +Orgasm,(She moans rapidly and gets a loud|and shattering orgasm right on stage.) diff --git a/C008_DramaClass/Heroine/BackgroundOrgasm.jpg b/C008_DramaClass/Heroine/BackgroundOrgasm.jpg new file mode 100644 index 0000000000..cb20b7fa26 Binary files /dev/null and b/C008_DramaClass/Heroine/BackgroundOrgasm.jpg differ diff --git a/C008_DramaClass/Heroine/Script.js b/C008_DramaClass/Heroine/Script.js index d5e3fa34d3..b4be3f4622 100644 --- a/C008_DramaClass/Heroine/Script.js +++ b/C008_DramaClass/Heroine/Script.js @@ -9,6 +9,25 @@ var C008_DramaClass_Heroine_CanProposeTrio = false; var C008_DramaClass_Heroine_IsGagged = false; var C008_DramaClass_Heroine_DamselCanInteract = false; var C008_DramaClass_Heroine_DamselCanBeg = false; +var C008_DramaClass_Heroine_CanConvinceJuliaToStrip = false; +var C008_DramaClass_Heroine_CanUntie = false; +var C008_DramaClass_Heroine_CanUngag = false; +var C008_DramaClass_Heroine_CanAbuse = false; +var C008_DramaClass_Heroine_TickleDone = false; +var C008_DramaClass_Heroine_OrgasmDone = false; +var C008_DramaClass_Heroine_ViolenceDone = false; +var C008_DramaClass_Heroine_MastubateCount = 0; + +// Calculates the scene parameters +function C008_DramaClass_Heroine_CalcParams() { + C008_DramaClass_Heroine_IsGagged = ActorIsGagged(); + C008_DramaClass_Heroine_CanUntie = (ActorHasInventory("Rope") && !Common_PlayerRestrained); + C008_DramaClass_Heroine_CanUngag = (C008_DramaClass_Heroine_IsGagged && !Common_PlayerRestrained); + C008_DramaClass_Heroine_CanAbuse = (ActorIsRestrained() && !Common_PlayerRestrained); + C008_DramaClass_Heroine_CanConvinceJuliaToStrip = (C008_DramaClass_Heroine_PlayerIsDamsel && !C008_DramaClass_Heroine_IsGagged && (C008_DramaClass_Julia_CurrentStage == 400) && ((ActorSpecificGetValue("Sarah", ActorLove) >= 10) || (ActorSpecificGetValue("Sarah", ActorSubmission) >= 10))); + C008_DramaClass_Heroine_DamselCanInteract = (C008_DramaClass_Heroine_PlayerIsDamsel && !Common_PlayerGagged); + C008_DramaClass_Heroine_DamselCanBeg = (C008_DramaClass_Heroine_PlayerIsDamsel && Common_PlayerGagged); +} // Chapter 8 - Heroine Load function C008_DramaClass_Heroine_Load() { @@ -26,9 +45,7 @@ function C008_DramaClass_Heroine_Load() { LoadInteractions(); LeaveIcon = "Leave"; LeaveScreen = "Theater"; - C008_DramaClass_Heroine_IsGagged = ActorIsGagged(); - C008_DramaClass_Heroine_DamselCanInteract = (C008_DramaClass_Heroine_PlayerIsDamsel && !Common_PlayerGagged); - C008_DramaClass_Heroine_DamselCanBeg = (C008_DramaClass_Heroine_PlayerIsDamsel && Common_PlayerGagged); + C008_DramaClass_Heroine_CalcParams(); } @@ -49,6 +66,28 @@ function C008_DramaClass_Heroine_Click() { if ((ClickInv == "Rope") && (C008_DramaClass_Heroine_CurrentStage == 280) && C008_DramaClass_Heroine_PlayerIsVillain) ActorApplyRestrain(ClickInv); + // The heroine can be restrained on stage 400 + if ((C008_DramaClass_Heroine_CurrentStage == 400) && (ClickInv != "") && (ClickInv != "Player") && !Common_PlayerRestrained) { + + // The damsel can tie up a knight if she's +10 submissive, the other knight can tie up a knight if she's +5 submissive + if ((ActorGetValue(ActorSubmission) < 10) && C008_DramaClass_Heroine_PlayerIsDamsel && !ActorIsRestrained() && (ClickInv != "CuffsKey")) { OverridenIntroText = GetText("RefuseBondageFromDamsel"); return; } + if ((ActorGetValue(ActorSubmission) < 5) && C008_DramaClass_Heroine_PlayerIsVillain && !ActorIsRestrained() && (ClickInv != "CuffsKey")) { OverridenIntroText = GetText("RefuseBondageFromKnight"); return; } + if (!C008_DramaClass_Damsel_ViolenceDone) { C008_DramaClass_Damsel_ViolenceDone = true; } + + // Both heroines react differently to the crop + if ((ClickInv == "Crop") && !C008_DramaClass_Damsel_ViolenceDone) { + C008_DramaClass_Damsel_ViolenceDone = true; + if (CurrentActor == "Amanda") ActorChangeAttitude(-1, 0); + if (CurrentActor == "Sarah") ActorChangeAttitude(1, 0); + } + + // Apply the clicked restrain + ActorApplyRestrain(ClickInv); + if (ActorHasInventory("Rope")) ActorSetCloth("Underwear"); + C008_DramaClass_Heroine_CalcParams(); + + } + } // Chapter 8 - Heroine - Sets the global stage and can alter Julia's mood @@ -123,4 +162,55 @@ function C008_DramaClass_Heroine_ReleasePlayer() { function C008_DramaClass_Heroine_FinalTwoPrisoners() { C008_DramaClass_Theater_GlobalStage = 300; C008_DramaClass_Theater_Ending = "TwoPrisoners"; -} \ No newline at end of file +} + +// Chapter 8 - Heroine - The knight can convince Julia to strip for the player +function C008_DramaClass_Heroine_JuliaStrip() { + ActorSpecificSetCloth("Julia", "Underwear"); + C008_DramaClass_Heroine_CanConvinceJuliaToStrip = false; + C008_DramaClass_Julia_CurrentStage = 410; + CurrentTime = CurrentTime + 50000; +} + +// Chapter 8 - Heroine Untie +function C008_DramaClass_Heroine_Untie() { + ActorUntie(); + C008_DramaClass_Heroine_CalcParams(); + ActorSetCloth("Heroine"); +} + +// Chapter 8 - Heroine Ungag +function C008_DramaClass_Heroine_Ungag() { + ActorUngag(); + C008_DramaClass_Heroine_CalcParams(); +} + +// Chapter 8 - Heroine Tickle +function C008_DramaClass_Heroine_Tickle() { + if ((CurrentActor == "Amanda") && !C008_DramaClass_Heroine_TickleDone) { C008_DramaClass_Heroine_TickleDone = true; ActorChangeAttitude(1, 0); } +} + +// Chapter 8 - Heroine Spank +function C008_DramaClass_Heroine_Spank() { + if ((CurrentActor == "Amanda") && !C008_DramaClass_Damsel_ViolenceDone) { C008_DramaClass_Damsel_ViolenceDone = true; ActorChangeAttitude(-1, 0); } + if ((CurrentActor == "Sarah") && !C008_DramaClass_Damsel_ViolenceDone) { C008_DramaClass_Damsel_ViolenceDone = true; ActorChangeAttitude(1, 0); } +} + +// Chapter 8 - Heroine Masturbate, Sarah or Amanda can climax with different parameters +function C008_DramaClass_Heroine_Masturbate() { + C008_DramaClass_Heroine_MastubateCount++; + if ((CurrentActor == "Amanda") && (C008_DramaClass_Heroine_MastubateCount >= 3) && !C008_DramaClass_Heroine_OrgasmDone && ActorIsGagged() && ActorHasInventory("TwoRopes")) { + C008_DramaClass_Heroine_OrgasmDone = true; + ActorAddOrgasm(); + ActorChangeAttitude(1, 0); + OverridenIntroText = GetText("Orgasm"); + OverridenIntroImage = "BackgroundOrgasm.jpg"; + } + if ((CurrentActor == "Sarah") && (C008_DramaClass_Heroine_MastubateCount >= 3) && !C008_DramaClass_Heroine_OrgasmDone && C008_DramaClass_Heroine_ViolenceDone) { + C008_DramaClass_Heroine_OrgasmDone = true; + ActorAddOrgasm(); + ActorChangeAttitude(1, 0); + OverridenIntroText = GetText("Orgasm"); + OverridenIntroImage = "BackgroundOrgasm.jpg"; + } +} diff --git a/C008_DramaClass/Heroine/Stage_EN.csv b/C008_DramaClass/Heroine/Stage_EN.csv index 01ef923c81..12212bb7f9 100644 --- a/C008_DramaClass/Heroine/Stage_EN.csv +++ b/C008_DramaClass/Heroine/Stage_EN.csv @@ -36,3 +36,9 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 250,0,0,DamselCanInteract,(Go hug her.)|(1 minute),You go in her arms and|you hug for the final act.,260,0,0,FinalHug() 250,2,0,DamselCanBeg,(Make pleading eyes.)|(1 minute),You make sweet pleading eyes and|she releases you from your bondage.,250,0,0,ReleasePlayer() 250,0,0,DamselCanBeg,(Surrender to her.)|(1 minute),You surrender to her and she decides to|keep you both prisoners for the final act.,300,0,0,FinalTwoPrisoners() +400,0,0,CanConvinceJuliaToStrip,Shouldn't damsel Julia|show her charms?,Very true milady. Damsel Julia!|(Julia obeys and strips a little.),400,0,0,JuliaStrip() +400,0,0,CanUntie,(Untie her.)|(1 minute),(You undo the knots and stash|the rope while she dresses back.),400,0,0,Untie() +400,0,0,CanUngag,(Ungag her.)|(1 minute),(You remove the gag and she giggles.)|This is such a kinky play.,400,0,0,Ungag() +400,0,0,CanAbuse,(Tickle her.)|(1 minute),(She struggles to avoid your tickling|but can't do much but to laugh.),400,0,0,Tickle() +400,0,0,CanAbuse,(Spank her.)|(1 minute),"(She whimpers with each hit, you're|not totally sure if she enjoys it or not.)",400,0,0,Spank() +400,0,0,CanAbuse,(Masturbate her.)|(1 minute),"(You grab her and masturbate her lovingly.|She moans, trembles and breathes heavily.)",400,0,0,Masturbate() diff --git a/C008_DramaClass/Heroine/Text_EN.csv b/C008_DramaClass/Heroine/Text_EN.csv index bc64c01993..f028cef477 100644 --- a/C008_DramaClass/Heroine/Text_EN.csv +++ b/C008_DramaClass/Heroine/Text_EN.csv @@ -1,2 +1,15 @@ Tag,Content -TwoRopes,"You grab her legs and tie a second rope|around them, forcing her to kneel down." +RefuseBondageFromDamsel,(She sees the item but quickly turns it away.|As the damsel you need +10 submission to use it.) +RefuseBondageFromKnight,(She sees the item but quickly turns it away.|As a knight you need +5 submission to use it.) +Crop,(You whip her hard while she|stares at you defiantly and giggles.) +Rope,(You strip her and wrap the rope around|her body while she shivers of pleasure.) +TwoRopes,"(You grab her legs and tie a second rope|around them, forcing her to kneel down.)" +Cuffs,(She resigns and puts her hands behind|her back so you can lock the cuffs on her.) +BallGag,(She bows and opens her mouth so|you can push the ball in and buckle it tight.) +TapeGag,(She resigns and seals her lips|so you can tape them shut.) +ClothGag,(You slowly push the wad in her mouth|and wrap the gag around her head.) +CuffsKey,(You turn the key in the|cuffs and release her.) +VibratingEgg,(She looks at the egg curiously|while you slide it inside her.) +ChastityBelt,(She panics when she sees the belt|but she resigns as you lock it on her.) +Collar,(You need +20 submission and a|special ceremony to collar a student.) +Orgasm,(She tries to stay cool but quickly falls to|your touch and gets an orgasm on stage.) diff --git a/C008_DramaClass/Julia/BackgroundOrgasm.jpg b/C008_DramaClass/Julia/BackgroundOrgasm.jpg new file mode 100644 index 0000000000..b39b7d2ec3 Binary files /dev/null and b/C008_DramaClass/Julia/BackgroundOrgasm.jpg differ diff --git a/C008_DramaClass/Julia/Intro_EN.csv b/C008_DramaClass/Julia/Intro_EN.csv index 887039556a..f06f3f7764 100644 --- a/C008_DramaClass/Julia/Intro_EN.csv +++ b/C008_DramaClass/Julia/Intro_EN.csv @@ -41,7 +41,12 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image 300,0,0,EndingTrio,In years of doing that play I've never|seen it end in a menage a trois. Bravo!,Background.jpg 310,0,0,,It was great to see all of you acting.|And there was room to improvise.,Background.jpg 320,0,0,,Join the play now?|But in what role?,Background.jpg +330,0,0,,,Background.jpg 400,0,0,IsDamsel,My sweet damsel friend.|What will happen to us?,Background.jpg 400,0,0,IsHeroine,Oh my white hero!|What do you require of me?,Background.jpg 400,0,0,IsVillain,Oh great black knight!|What do you require of me?,Background.jpg +410,0,0,IsDamsel,My sweet damsel friend.|What will happen to us?,Background.jpg +410,0,0,IsHeroine,Oh my white hero!|What do you require of me?,Background.jpg +410,0,0,IsVillain,Oh great black knight!|What do you require of me?,Background.jpg +410,0,0,IsGagged,Om nong! Olog amogn!|(She plays with her gag.),Background.jpg 500,0,0,,As fair queen of the land.|I expect respect and devotion.,Background.jpg diff --git a/C008_DramaClass/Julia/Script.js b/C008_DramaClass/Julia/Script.js index c8ea35d469..a11c37d8e0 100644 --- a/C008_DramaClass/Julia/Script.js +++ b/C008_DramaClass/Julia/Script.js @@ -8,6 +8,23 @@ var C008_DramaClass_Julia_EndingHug = false; var C008_DramaClass_Julia_EndingDomme = false; var C008_DramaClass_Julia_EndingTwoPrisoners = false; var C008_DramaClass_Julia_EndingTrio = false; +var C008_DramaClass_Julia_IsGagged = false; +var C008_DramaClass_Julia_CanUntie = false; +var C008_DramaClass_Julia_CanUngag = false; +var C008_DramaClass_Julia_CanAbuse = false; +var C008_DramaClass_Julia_CropDone = false; +var C008_DramaClass_Julia_TickleDone = false; +var C008_DramaClass_Julia_SpankDone = false; +var C008_DramaClass_Julia_OrgasmDone = false; +var C008_DramaClass_Julia_MastubateCount = 0; + +// Calculates the scene parameters +function C008_DramaClass_Julia_CalcParams() { + C008_DramaClass_Julia_IsGagged = ActorIsGagged(); + C008_DramaClass_Julia_CanUntie = (ActorHasInventory("Rope") && !Common_PlayerRestrained); + C008_DramaClass_Julia_CanUngag = (C008_DramaClass_Julia_IsGagged && !Common_PlayerRestrained); + C008_DramaClass_Julia_CanAbuse = (ActorIsRestrained() && !Common_PlayerRestrained); +} // Chapter 8 - Julia Load function C008_DramaClass_Julia_Load() { @@ -22,11 +39,13 @@ function C008_DramaClass_Julia_Load() { // Cannot leave before Julia gave her instructions if (C008_DramaClass_Julia_CurrentStage < 100) LeaveIcon = ""; + if (C008_DramaClass_Julia_CurrentStage == 330) C008_DramaClass_Julia_CurrentStage = 400; // Set the role variables C008_DramaClass_Julia_IsDamsel = (C008_DramaClass_JuliaIntro_PlayerRole == "Damsel"); C008_DramaClass_Julia_IsHeroine = (C008_DramaClass_JuliaIntro_PlayerRole == "Heroine"); C008_DramaClass_Julia_IsVillain = (C008_DramaClass_JuliaIntro_PlayerRole == "Villain"); + C008_DramaClass_Julia_CalcParams(); // Keep the ending type C008_DramaClass_Julia_EndingKiss = (C008_DramaClass_Theater_Ending == "Kiss"); @@ -45,7 +64,33 @@ function C008_DramaClass_Julia_Run() { // Chapter 8 - Julia Click function C008_DramaClass_Julia_Click() { + + // Regular interaction click ClickInteraction(C008_DramaClass_Julia_CurrentStage); + var ClickInv = GetClickedInventory(); + + // Julia can be restrained on stage 410 + if ((C008_DramaClass_Julia_CurrentStage == 410) && (ClickInv != "") && (ClickInv != "Player") && !Common_PlayerRestrained) { + + // The damsel cannot tie up the other damsel unless she's +5 submissive + if ((ActorGetValue(ActorSubmission) < 5) && (C008_DramaClass_Julia_IsDamsel) && !ActorIsRestrained() && (ClickInv != "CuffsKey")) { + OverridenIntroText = GetText("RefuseBondage"); + return; + } + + // Julia cannot wear a belt or a collar + if (ClickInv == "ChastityBelt") { OverridenIntroText = GetText("CannotWearBelt"); return; } + if (ClickInv == "Collar") { OverridenIntroText = GetText("CannotWearCollar"); return; } + + // A few items can change the actor attitude + if ((ClickInv == "Crop") && !C008_DramaClass_Julia_CropDone) { C008_DramaClass_Julia_CropDone = true; ActorChangeAttitude(0, 1); } + + // Apply the clicked restrain + ActorApplyRestrain(ClickInv); + C008_DramaClass_Julia_CalcParams(); + + } + } // Chapter 8 - Julia Refuse Script @@ -74,7 +119,50 @@ function C008_DramaClass_Julia_GlobalStage(GlobalStage) { // Chapter 8 - Julia - Julia can become a Damsel or the queen for some extra acting (400 can interact. 500 cannot, it's the player.) function C008_DramaClass_Julia_JuliaEntersPlay() { + C008_DramaClass_Theater_GlobalStage = 400; + if (C008_DramaClass_Julia_CurrentStage == 500) ActorSetPose("Queen"); if (C008_DramaClass_Julia_IsHeroine) C008_DramaClass_Heroine_CurrentStage = 500; else C008_DramaClass_Heroine_CurrentStage = 400; if (C008_DramaClass_Julia_IsVillain) C008_DramaClass_Villain_CurrentStage = 500; else C008_DramaClass_Villain_CurrentStage = 400; if (C008_DramaClass_Julia_IsDamsel) C008_DramaClass_Damsel_CurrentStage = 500; else C008_DramaClass_Damsel_CurrentStage = 400; +} + +// Chapter 8 - Julia - Julia as a damsel can strip to be tied up +function C008_DramaClass_Julia_Strip() { + ActorSetCloth("Underwear"); + CurrentTime = CurrentTime + 50000; +} + +// Chapter 8 - Julia Untie +function C008_DramaClass_Julia_Untie() { + ActorUntie(); + C008_DramaClass_Julia_CalcParams(); +} + +// Chapter 8 - Julia Ungag +function C008_DramaClass_Julia_Ungag() { + ActorUngag(); + C008_DramaClass_Julia_CalcParams(); +} + +// Chapter 8 - Julia Tickle +function C008_DramaClass_Julia_Tickle() { + if (!C008_DramaClass_Julia_TickleDone) { C008_DramaClass_Julia_TickleDone = true; ActorChangeAttitude(1, 0); } +} + +// Chapter 8 - Julia Spank +function C008_DramaClass_Julia_Spank() { + if (!C008_DramaClass_Julia_SpankDone) { C008_DramaClass_Julia_SpankDone = true; ActorChangeAttitude(-1, 0); } +} + +// Chapter 8 - Julia Masturbate, she can climax if she has the vibrating egg +function C008_DramaClass_Julia_Masturbate() { + C008_DramaClass_Julia_MastubateCount++; + if (C008_DramaClass_Julia_MastubateCount <= 3) ActorChangeAttitude(-1, 0); + if ((C008_DramaClass_Julia_MastubateCount >= 3) && !C008_DramaClass_Julia_OrgasmDone && ActorHasInventory("VibratingEgg")) { + C008_DramaClass_Julia_OrgasmDone = true; + ActorAddOrgasm(); + ActorChangeAttitude(2, 0); + OverridenIntroText = GetText("Orgasm"); + OverridenIntroImage = "BackgroundOrgasm.jpg"; + } } \ No newline at end of file diff --git a/C008_DramaClass/Julia/Stage_EN.csv b/C008_DramaClass/Julia/Stage_EN.csv index 214e4942ae..9d653582b4 100644 --- a/C008_DramaClass/Julia/Stage_EN.csv +++ b/C008_DramaClass/Julia/Stage_EN.csv @@ -19,6 +19,15 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 300,0,0,,I think drama|isn't for me.,"You did fine, don't be afraid of the stage.|And there is always room to improvise.",310,0,-1, 310,0,0,,"If we can improvise,|you should join in.",Join the play after it's over?|But what role will I play?,320,0,0, 310,0,0,,"True can improvise,|thee should join in.",Join the playeth after it's ov'r?|But what role wilt I playeth? ,320,1,0, -320,0,0,IsDamsel,Be a damsel like me.|Owned by the knight.,Aye! I shalt beest the sweet|damsel protected by the knight. ,400,0,0,JuliaEntersPlay() -320,0,0,!IsDamsel,Be a second damsel.|Owned by the knight.,Aye! I shalt beest the sweet|damsel protected by the knight. ,400,0,1,JuliaEntersPlay() +320,0,0,IsDamsel,Be a damsel like me.|Owned by the knight.,Aye! I shalt beest the sweet|damsel protected by the knight. ,330,0,0,JuliaEntersPlay() +320,0,0,!IsDamsel,Be a second damsel.|Owned by the knight.,Aye! I shalt beest the sweet|damsel protected by the knight. ,330,0,1,JuliaEntersPlay() 320,0,0,,Be the queen who|rules the knights.,Aye! I shalt beest the fair|queen who rules the land. ,500,0,-1,JuliaEntersPlay() +400,0,5,IsDamsel,A proper damsel has|to reveal some more.,Aye! Of course milady.|(She undresses a little.),410,0,0,Strip() +400,5,0,IsDamsel,You should show us|your damsel charms.,Aye! Of course milady.|(She undresses a little.),410,0,0,Strip() +400,0,0,!IsDamsel,"Damsel, you should|show us your charms.",Aye! Of course my knight.|(She undresses a little.),410,0,0,Strip() +400,0,0,!IsDamsel,"Damsel, obey and|show me more skin.",Aye! Of course my knight.|(She undresses a little.),410,0,1,Strip() +410,0,0,CanUntie,(Untie her.)|(1 minute),(You undo the knots and release her from|the ropes while she stretches happily.),410,0,0,Untie() +410,0,0,CanUngag,(Ungag her.)|(1 minute),(You remove the gag and she smiles.)|This damsel grant you mercy thee!,410,0,0,Ungag() +410,0,0,CanAbuse,(Tickle her.)|(1 minute),"(She laughs and trashes in her restrains|while you tickle her, she's enjoying it.)",410,0,0,Tickle() +410,0,0,CanAbuse,(Spank her.)|(1 minute),(You spank her pretty hard on the butt.|She seems to find it inappropriate.),410,0,0,Spank() +410,0,0,CanAbuse,(Masturbate her.)|(1 minute),(She struggles but can't avoid your touch.|She seems to find it very inappropriate.),410,0,0,Masturbate() diff --git a/C008_DramaClass/Julia/Text_EN.csv b/C008_DramaClass/Julia/Text_EN.csv index b773c14f51..07b065dae6 100644 --- a/C008_DramaClass/Julia/Text_EN.csv +++ b/C008_DramaClass/Julia/Text_EN.csv @@ -1 +1,14 @@ Tag,Content +Crop,(She whimpers a little while you whip|her on the butt but doesn't react that much.) +Rope,(You wrap the rope around her curvy body.|She seems to be enjoying this a little.) +TwoRopes,(You pick a second rope and tie|her legs in a kneeling position.) +Cuffs,(She doesn't seem to appreciate the cuffs|but you're able to lock them behind her back.) +BallGag,(She struggles a little but you're|able to strap the gag on her head.) +TapeGag,(She struggles a little but you're|able to tape her mouth shut.) +ClothGag,(She struggles a little but you're able to|push the wad inside her mouth and tie the gag.) +CuffsKey,(She positions her hands so|you can unlock her with ease.) +VibratingEgg,(She stares at you and she sees|the egg but you're able to slide it in.) +CannotWearBelt,(The belt is too small to fit on Julia.) +CannotWearCollar,(Teachers cannot be collared.) +RefuseBondage,(Julia sees the item and turns it away.|As the damsel you need +5 submission to use it.) +Orgasm,(She shakes her head no but can't resist your|crafty fingers and gets an orgasm right on stage.) diff --git a/C008_DramaClass/Theater/Script.js b/C008_DramaClass/Theater/Script.js index 32f7aa236b..6e326f88c0 100644 --- a/C008_DramaClass/Theater/Script.js +++ b/C008_DramaClass/Theater/Script.js @@ -105,7 +105,7 @@ function C008_DramaClass_Theater_Load() { if (C008_DramaClass_JuliaIntro_PlayerRole == "Heroine") C008_DramaClass_Theater_Heroine = "Player"; if (C008_DramaClass_JuliaIntro_SarahRole == "Heroine") C008_DramaClass_Theater_Heroine = "Sarah"; if (C008_DramaClass_JuliaIntro_AmandaRole == "Heroine") C008_DramaClass_Theater_Heroine = "Amanda"; - Common_SelfBondageAllowed = (C008_DramaClass_Theater_GlobalStage >= 350); + Common_SelfBondageAllowed = (C008_DramaClass_Theater_GlobalStage >= 400); C008_DramaClass_Theater_SetPose(); } diff --git a/C008_DramaClass/Transition/Script.js b/C008_DramaClass/Transition/Script.js index 7578fac5ff..58e9f24347 100644 --- a/C008_DramaClass/Transition/Script.js +++ b/C008_DramaClass/Transition/Script.js @@ -15,6 +15,10 @@ function C008_DramaClass_Transition_Load() { ActorLoad("Sarah", ""); ActorSpecificSetCloth("Sarah", C008_DramaClass_JuliaIntro_SarahRole); LeaveIcon = ""; + + // Resets the last bondage chapter for each so it counts again for chapter 8 part 2 + for (var A = 0; A < Actor.length; A++) + Actor[A][ActorLastBondageChapter] = "NONE"; } diff --git a/C008_DramaClass/Villain/BackgroundOrgasm.jpg b/C008_DramaClass/Villain/BackgroundOrgasm.jpg new file mode 100644 index 0000000000..c33a5f3e84 Binary files /dev/null and b/C008_DramaClass/Villain/BackgroundOrgasm.jpg differ diff --git a/C008_DramaClass/Villain/Script.js b/C008_DramaClass/Villain/Script.js index a3370eb512..030e1ca54f 100644 --- a/C008_DramaClass/Villain/Script.js +++ b/C008_DramaClass/Villain/Script.js @@ -9,6 +9,26 @@ var C008_DramaClass_Villain_CanIntimidate = false; var C008_DramaClass_Villain_IsGagged = false; var C008_DramaClass_Villain_DamselCanInteract = false; var C008_DramaClass_Villain_DamselCanBeg = false; +var C008_DramaClass_Villain_CanConvinceJuliaToStrip = false; +var C008_DramaClass_Villain_CanUntie = false; +var C008_DramaClass_Villain_CanUngag = false; +var C008_DramaClass_Villain_CanAbuse = false; +var C008_DramaClass_Villain_CropDone = false; +var C008_DramaClass_Villain_TickleDone = false; +var C008_DramaClass_Villain_SpankDone = false; +var C008_DramaClass_Villain_OrgasmDone = false; +var C008_DramaClass_Villain_MastubateCount = 0; + +// Calculates the scene parameters +function C008_DramaClass_Villain_CalcParams() { + C008_DramaClass_Villain_IsGagged = ActorIsGagged(); + C008_DramaClass_Villain_CanUntie = (ActorHasInventory("Rope") && !Common_PlayerRestrained); + C008_DramaClass_Villain_CanUngag = (C008_DramaClass_Villain_IsGagged && !Common_PlayerRestrained); + C008_DramaClass_Villain_CanAbuse = (ActorIsRestrained() && !Common_PlayerRestrained); + C008_DramaClass_Villain_CanConvinceJuliaToStrip = (C008_DramaClass_Villain_PlayerIsDamsel && !C008_DramaClass_Villain_IsGagged && (C008_DramaClass_Julia_CurrentStage == 400) && ((ActorSpecificGetValue("Amanda", ActorLove) >= 10) || (ActorSpecificGetValue("Amanda", ActorSubmission) >= 10))); + C008_DramaClass_Villain_DamselCanInteract = (C008_DramaClass_Villain_PlayerIsDamsel && !Common_PlayerGagged); + C008_DramaClass_Villain_DamselCanBeg = (C008_DramaClass_Villain_PlayerIsDamsel && Common_PlayerGagged); +} // Chapter 8 - Villain Load function C008_DramaClass_Villain_Load() { @@ -24,9 +44,7 @@ function C008_DramaClass_Villain_Load() { LoadInteractions(); LeaveIcon = "Leave"; LeaveScreen = "Theater"; - C008_DramaClass_Villain_IsGagged = ActorIsGagged(); - C008_DramaClass_Villain_DamselCanInteract = (C008_DramaClass_Villain_PlayerIsDamsel && !Common_PlayerGagged); - C008_DramaClass_Villain_DamselCanBeg = (C008_DramaClass_Villain_PlayerIsDamsel && Common_PlayerGagged); + C008_DramaClass_Villain_CalcParams(); // The player can disarm if sub +2 vs Amanda and intimidate if sub + 10 C008_DramaClass_Villain_CanDisarm = (C008_DramaClass_Villain_PlayerIsVillain && (ActorSpecificGetValue("Amanda", ActorSubmission) >= 2)); @@ -51,6 +69,23 @@ function C008_DramaClass_Villain_Click() { if ((ClickInv == "Rope") && (C008_DramaClass_Villain_CurrentStage == 250) && C008_DramaClass_Villain_PlayerIsHeroine) ActorApplyRestrain(ClickInv); + // The villain can be restrained on stage 400 + if ((C008_DramaClass_Villain_CurrentStage == 400) && (ClickInv != "") && (ClickInv != "Player") && !Common_PlayerRestrained) { + + // The damsel can tie up a knight if she's +10 submissive, the other knight can tie up a knight if she's +5 submissive + if ((ActorGetValue(ActorSubmission) < 10) && C008_DramaClass_Villain_PlayerIsDamsel && !ActorIsRestrained() && (ClickInv != "CuffsKey")) { OverridenIntroText = GetText("RefuseBondageFromDamsel"); return; } + if ((ActorGetValue(ActorSubmission) < 5) && C008_DramaClass_Villain_PlayerIsHeroine && !ActorIsRestrained() && (ClickInv != "CuffsKey")) { OverridenIntroText = GetText("RefuseBondageFromKnight"); return; } + + // A few items can change the actor attitude + if ((ClickInv == "Crop") && !C008_DramaClass_Villain_CropDone) { C008_DramaClass_Villain_CropDone = true; ActorChangeAttitude(-1, 1); } + + // Apply the clicked restrain + ActorApplyRestrain(ClickInv); + if (ActorHasInventory("Rope")) ActorSetCloth("Underwear"); + C008_DramaClass_Villain_CalcParams(); + + } + } // Chapter 8 - Villain - Sets the global stage and can alter Julia's mood @@ -152,4 +187,47 @@ function C008_DramaClass_Villain_ReleasePlayer() { function C008_DramaClass_Villain_FinalTwoPrisoners() { C008_DramaClass_Theater_GlobalStage = 300; C008_DramaClass_Theater_Ending = "TwoPrisoners"; +} + +// Chapter 8 - Villain - The knight can convince Julia to strip for the player +function C008_DramaClass_Villain_JuliaStrip() { + ActorSpecificSetCloth("Julia", "Underwear"); + C008_DramaClass_Villain_CanConvinceJuliaToStrip = false; + C008_DramaClass_Julia_CurrentStage = 410; + CurrentTime = CurrentTime + 50000; +} + +// Chapter 8 - Villain Untie +function C008_DramaClass_Villain_Untie() { + ActorUntie(); + C008_DramaClass_Villain_CalcParams(); + ActorSetCloth("Villain"); +} + +// Chapter 8 - Villain Ungag +function C008_DramaClass_Villain_Ungag() { + ActorUngag(); + C008_DramaClass_Villain_CalcParams(); +} + +// Chapter 8 - Villain Tickle +function C008_DramaClass_Villain_Tickle() { + if (!C008_DramaClass_Villain_TickleDone) { C008_DramaClass_Villain_TickleDone = true; ActorChangeAttitude(1, 0); } +} + +// Chapter 8 - Villain Spank +function C008_DramaClass_Villain_Spank() { + if (!C008_DramaClass_Villain_SpankDone) { C008_DramaClass_Villain_SpankDone = true; ActorChangeAttitude(-1, 0); } +} + +// Chapter 8 - Villain Masturbate, Amanda can climax if she's bound with two ropes and gagged +function C008_DramaClass_Villain_Masturbate() { + C008_DramaClass_Villain_MastubateCount++; + if ((C008_DramaClass_Damsel_MastubateCount >= 3) && !C008_DramaClass_Villain_OrgasmDone && ActorIsGagged() && ActorHasInventory("TwoRopes")) { + C008_DramaClass_Villain_OrgasmDone = true; + ActorAddOrgasm(); + ActorChangeAttitude(1, 0); + OverridenIntroText = GetText("Orgasm"); + OverridenIntroImage = "BackgroundOrgasm.jpg"; + } } \ No newline at end of file diff --git a/C008_DramaClass/Villain/Stage_EN.csv b/C008_DramaClass/Villain/Stage_EN.csv index 404a6bd884..2eeedcebba 100644 --- a/C008_DramaClass/Villain/Stage_EN.csv +++ b/C008_DramaClass/Villain/Stage_EN.csv @@ -58,3 +58,9 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 280,0,0,DamselCanInteract,(Go hug her.)|(1 minute),You go in her arms and|you hug for the final act.,290,0,0,FinalHug() 280,2,0,DamselCanBeg,(Make pleading eyes.)|(1 minute),You make sweet pleading eyes and|she releases you from your bondage.,280,0,0,ReleasePlayer() 280,0,0,DamselCanBeg,(Surrender to her.)|(1 minute),You surrender to her and she decides to|keep you both prisoners for the final act.,300,0,0,FinalTwoPrisoners() +400,0,0,CanConvinceJuliaToStrip,Shouldn't damsel Julia|show her charms?,Very true milady. Damsel Julia!|(Julia obeys and strips a little.),400,0,0,JuliaStrip() +400,0,0,CanUntie,(Untie her.)|(1 minute),(You undo the knots and she throws|the rope at you while dressing back up.),400,0,0,Untie() +400,0,0,CanUngag,(Ungag her.)|(1 minute),(You remove the gag and she stares at you.)|Are you sure all of this was in the script?,400,0,0,Ungag() +400,0,0,CanAbuse,(Tickle her.)|(1 minute),(You tickle her on the ribs and tummy.|She very ticklish and laughs out loud.),400,0,0,Tickle() +400,0,0,CanAbuse,(Spank her.)|(1 minute),(She whimpers with each hit.|She clearly didn't enjoyed it.),400,0,0,Spank() +400,0,0,CanAbuse,(Masturbate her.)|(1 minute),(You grab her and masturbate her slowly.|She blushes and tries to control her moanings.),400,0,0,Masturbate() diff --git a/C008_DramaClass/Villain/Text_EN.csv b/C008_DramaClass/Villain/Text_EN.csv index 32757f700c..16b91df756 100644 --- a/C008_DramaClass/Villain/Text_EN.csv +++ b/C008_DramaClass/Villain/Text_EN.csv @@ -1,4 +1,17 @@ Tag,Content PlayerDamselVillainWin,Both knights do a funny swordplay and Amanda|wins by knocking her enemy sword on the ground. PlayerDamselHeroineWin,Both knights do a funny swordplay|and Sarah wins by disarming Amanda. -TwoRopes,"You grab her legs and tie a second rope|around them, forcing her to kneel down." +RefuseBondageFromDamsel,(She sees the item but quickly turns it away.|As the damsel you need +10 submission to use it.) +RefuseBondageFromKnight,(She sees the item but quickly turns it away.|As a knight you need +5 submission to use it.) +Crop,(You whip her pretty hard and she|doesn't seem to appreciate at all.) +Rope,(You strip her and wrap the rope around|her body while she moans of pleasure.) +TwoRopes,"(You grab her legs and tie a second rope|around them, forcing her to kneel down.)" +Cuffs,(You grab her hands and pin them in|her back so you can lock the cuffs.) +BallGag,(You strap her head with the strict|harness and push the big red ball in.) +TapeGag,(You hold her face by the jaw|and tape her mouth shut.) +ClothGag,(You force the wad into her mouth|and tie the cloth gag around her head.) +CuffsKey,(You unlock the cuffs while she checks|her wrists to be sure it didn't leave marks.) +VibratingEgg,(She stares at you and she sees|the egg but you're able to slide it in.) +ChastityBelt,(She frowns when she sees the belt|but she resigns as you lock it on her.) +Collar,(You need +20 submission and a|special ceremony to collar a student.) +Orgasm,(She gets a silent orgasm right on stage and|quickly looks around to check if anyone noticed.)