diff --git a/Actor.js b/Actor.js index 2615ec3374..5c5c7a9991 100644 --- a/Actor.js +++ b/Actor.js @@ -137,12 +137,11 @@ function ActorRemoveInventory(RemInventory) { function ActorHasInventory(QueryInventory) { // Cycles to find the correct actor and checks if the inventory is in the list - var HasInv = false; for (var A = 0; A < Actor.length; A++) if (Actor[A][ActorName] == CurrentActor) if (Actor[A][ActorInventory].indexOf(QueryInventory) >= 0) - HasInv = true; - return HasInv; + return true; + return false; } @@ -160,19 +159,50 @@ function ActorSpecificSetCloth(SpecificActor, NewCloth) { Actor[A][ActorCloth] = NewCloth; } -// Returns true if the actor is restrained +// Sets the pose for a specified actor (also works for the player if needed) +function ActorSpecificSetPose(SpecificActor, NewPose) { + if (SpecificActor == "Player") { + Common_PlayerPose = NewPose; + } else { + for (var A = 0; A < Actor.length; A++) + if (Actor[A][ActorName] == SpecificActor) + Actor[A][ActorPose] = NewPose; + } +} + +// Returns TRUE if the actor (or player) is in visible bondage +function ActorSpecificInBondage(SpecificActor) { + if (SpecificActor == "Player") { + return (Common_PlayerRestrained || Common_PlayerGagged); + } else { + for (var A = 0; A < Actor.length; A++) + if (Actor[A][ActorName] == SpecificActor) + return (ActorSpecificHasInventory(SpecificActor, "Rope") || ActorSpecificHasInventory(SpecificActor, "TwoRopes") || ActorSpecificHasInventory(SpecificActor, "Cuffs") || ActorSpecificHasInventory(SpecificActor, "BallGag") || ActorSpecificHasInventory(SpecificActor, "TapeGag") || ActorSpecificHasInventory(SpecificActor, "ClothGag")); + } +} + +// Returns true if the actor is restrained (if there's no actor, we return the player status) function ActorIsRestrained() { - return (ActorHasInventory("Rope") || ActorHasInventory("TwoRopes") || ActorHasInventory("Cuffs")); + if (CurrentActor == "") + return Common_PlayerRestrained; + else + return (ActorHasInventory("Rope") || ActorHasInventory("TwoRopes") || ActorHasInventory("Cuffs")); } -// Returns true if the actor is gagged +// Returns true if the actor is gagged (if there's no actor, we return the player status) function ActorIsGagged() { - return (ActorHasInventory("BallGag") || ActorHasInventory("TapeGag") || ActorHasInventory("ClothGag")); + if (CurrentActor == "") + return Common_PlayerGagged; + else + return (ActorHasInventory("BallGag") || ActorHasInventory("TapeGag") || ActorHasInventory("ClothGag")); } -// Returns true if the actor is chaste +// Returns true if the actor is chaste (if there's no actor, we return the player status) function ActorIsChaste() { - return (ActorHasInventory("ChastityBelt")); + if (CurrentActor == "") + return Common_PlayerChaste; + else + return (ActorHasInventory("ChastityBelt")); } // Unties the actor and returns the rope to the player @@ -251,12 +281,11 @@ function ActorApplyRestrain(RestrainName) { function ActorSpecificHasInventory(QueryActor, QueryInventory) { // Cycles to find the correct actor and checks if the inventory is in the list - var HasInv = false; for (var A = 0; A < Actor.length; A++) if (Actor[A][ActorName] == QueryActor) if (Actor[A][ActorInventory].indexOf(QueryInventory) >= 0) - HasInv = true; - return HasInv; + return true; + return false; } diff --git a/Actors/Amanda/Heroine_NoBondage_NoGag_Acting.png b/Actors/Amanda/Heroine_NoBondage_NoGag_Acting.png new file mode 100644 index 0000000000..dd4558814b Binary files /dev/null and b/Actors/Amanda/Heroine_NoBondage_NoGag_Acting.png differ diff --git a/Actors/Amanda/Heroine_NoBondage_NoGag_Swordplay.png b/Actors/Amanda/Heroine_NoBondage_NoGag_Swordplay.png new file mode 100644 index 0000000000..d16499a1a0 Binary files /dev/null and b/Actors/Amanda/Heroine_NoBondage_NoGag_Swordplay.png differ diff --git a/Actors/Amanda/Villain_NoBondage_NoGag_Acting.png b/Actors/Amanda/Villain_NoBondage_NoGag_Acting.png new file mode 100644 index 0000000000..6d7eb4b688 Binary files /dev/null and b/Actors/Amanda/Villain_NoBondage_NoGag_Acting.png differ diff --git a/Actors/Amanda/Villain_NoBondage_NoGag_Swordplay.png b/Actors/Amanda/Villain_NoBondage_NoGag_Swordplay.png new file mode 100644 index 0000000000..790fb4bbb7 Binary files /dev/null and b/Actors/Amanda/Villain_NoBondage_NoGag_Swordplay.png differ diff --git a/Actors/Julia/Clothed_NoBondage_NoGag.png b/Actors/Julia/Clothed_NoBondage_NoGag.png new file mode 100644 index 0000000000..5202c2639d Binary files /dev/null and b/Actors/Julia/Clothed_NoBondage_NoGag.png differ diff --git a/Actors/Player/ChastityBelt_NoBondage_BallGag.png b/Actors/Player/ChastityBelt_NoBondage_NoCollar_BallGag.png similarity index 100% rename from Actors/Player/ChastityBelt_NoBondage_BallGag.png rename to Actors/Player/ChastityBelt_NoBondage_NoCollar_BallGag.png diff --git a/Actors/Player/ChastityBelt_NoBondage_ClothGag.png b/Actors/Player/ChastityBelt_NoBondage_NoCollar_ClothGag.png similarity index 100% rename from Actors/Player/ChastityBelt_NoBondage_ClothGag.png rename to Actors/Player/ChastityBelt_NoBondage_NoCollar_ClothGag.png diff --git a/Actors/Player/ChastityBelt_NoBondage_NoGag.png b/Actors/Player/ChastityBelt_NoBondage_NoCollar_NoGag.png similarity index 100% rename from Actors/Player/ChastityBelt_NoBondage_NoGag.png rename to Actors/Player/ChastityBelt_NoBondage_NoCollar_NoGag.png diff --git a/Actors/Player/ChastityBelt_NoBondage_TapeGag.png b/Actors/Player/ChastityBelt_NoBondage_NoCollar_TapeGag.png similarity index 100% rename from Actors/Player/ChastityBelt_NoBondage_TapeGag.png rename to Actors/Player/ChastityBelt_NoBondage_NoCollar_TapeGag.png diff --git a/Actors/Player/ChastityBelt_Rope_Collar_BallGag.png b/Actors/Player/ChastityBelt_Rope_Collar_BallGag.png new file mode 100644 index 0000000000..526d2e4de1 Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_Collar_BallGag.png differ diff --git a/Actors/Player/ChastityBelt_Rope_Collar_ClothGag.png b/Actors/Player/ChastityBelt_Rope_Collar_ClothGag.png new file mode 100644 index 0000000000..a9529453ce Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_Collar_ClothGag.png differ diff --git a/Actors/Player/ChastityBelt_Rope_Collar_NoGag.png b/Actors/Player/ChastityBelt_Rope_Collar_NoGag.png new file mode 100644 index 0000000000..caff605cb7 Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_Collar_NoGag.png differ diff --git a/Actors/Player/ChastityBelt_Rope_Collar_TapeGag.png b/Actors/Player/ChastityBelt_Rope_Collar_TapeGag.png new file mode 100644 index 0000000000..cec46cc7d8 Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_Collar_TapeGag.png differ diff --git a/Actors/Player/ChastityBelt_Rope_NoCollar_BallGag.png b/Actors/Player/ChastityBelt_Rope_NoCollar_BallGag.png new file mode 100644 index 0000000000..8e9a349196 Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_NoCollar_BallGag.png differ diff --git a/Actors/Player/ChastityBelt_Rope_NoCollar_ClothGag.png b/Actors/Player/ChastityBelt_Rope_NoCollar_ClothGag.png new file mode 100644 index 0000000000..27f32096b8 Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_NoCollar_ClothGag.png differ diff --git a/Actors/Player/ChastityBelt_Rope_NoCollar_NoGag.png b/Actors/Player/ChastityBelt_Rope_NoCollar_NoGag.png new file mode 100644 index 0000000000..be3fb2efa1 Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_NoCollar_NoGag.png differ diff --git a/Actors/Player/ChastityBelt_Rope_NoCollar_TapeGag.png b/Actors/Player/ChastityBelt_Rope_NoCollar_TapeGag.png new file mode 100644 index 0000000000..9c7e220ede Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_NoCollar_TapeGag.png differ diff --git a/Actors/Player/Damsel_NoBondage_Collar_NoGag_Acting.png b/Actors/Player/Damsel_NoBondage_Collar_NoGag_Acting.png new file mode 100644 index 0000000000..cf7f1958cb Binary files /dev/null and b/Actors/Player/Damsel_NoBondage_Collar_NoGag_Acting.png differ diff --git a/Actors/Player/Damsel_NoBondage_NoCollar_NoGag_Acting.png b/Actors/Player/Damsel_NoBondage_NoCollar_NoGag_Acting.png new file mode 100644 index 0000000000..5b50a8d3b7 Binary files /dev/null and b/Actors/Player/Damsel_NoBondage_NoCollar_NoGag_Acting.png differ diff --git a/Actors/Player/Heroine_NoBondage_NoGag_Acting.png b/Actors/Player/Heroine_NoBondage_NoGag_Acting.png new file mode 100644 index 0000000000..bbca39d92a Binary files /dev/null and b/Actors/Player/Heroine_NoBondage_NoGag_Acting.png differ diff --git a/Actors/Player/Heroine_NoBondage_NoGag_Swordplay.png b/Actors/Player/Heroine_NoBondage_NoGag_Swordplay.png new file mode 100644 index 0000000000..a250c2fb6e Binary files /dev/null and b/Actors/Player/Heroine_NoBondage_NoGag_Swordplay.png differ diff --git a/Actors/Player/Naked_NoBondage_BallGag.png b/Actors/Player/Naked_NoBondage_NoCollar_BallGag.png similarity index 100% rename from Actors/Player/Naked_NoBondage_BallGag.png rename to Actors/Player/Naked_NoBondage_NoCollar_BallGag.png diff --git a/Actors/Player/Naked_NoBondage_ClothGag.png b/Actors/Player/Naked_NoBondage_NoCollar_ClothGag.png similarity index 100% rename from Actors/Player/Naked_NoBondage_ClothGag.png rename to Actors/Player/Naked_NoBondage_NoCollar_ClothGag.png diff --git a/Actors/Player/Naked_NoBondage_NoGag.png b/Actors/Player/Naked_NoBondage_NoCollar_NoGag.png similarity index 100% rename from Actors/Player/Naked_NoBondage_NoGag.png rename to Actors/Player/Naked_NoBondage_NoCollar_NoGag.png diff --git a/Actors/Player/Naked_NoBondage_TapeGag.png b/Actors/Player/Naked_NoBondage_NoCollar_TapeGag.png similarity index 100% rename from Actors/Player/Naked_NoBondage_TapeGag.png rename to Actors/Player/Naked_NoBondage_NoCollar_TapeGag.png diff --git a/Actors/Player/Naked_Rope_Collar_BallGag.png b/Actors/Player/Naked_Rope_Collar_BallGag.png new file mode 100644 index 0000000000..d1a5b6da02 Binary files /dev/null and b/Actors/Player/Naked_Rope_Collar_BallGag.png differ diff --git a/Actors/Player/Naked_Rope_Collar_ClothGag.png b/Actors/Player/Naked_Rope_Collar_ClothGag.png new file mode 100644 index 0000000000..15e5ace2b8 Binary files /dev/null and b/Actors/Player/Naked_Rope_Collar_ClothGag.png differ diff --git a/Actors/Player/Naked_Rope_Collar_NoGag.png b/Actors/Player/Naked_Rope_Collar_NoGag.png new file mode 100644 index 0000000000..2d9c662304 Binary files /dev/null and b/Actors/Player/Naked_Rope_Collar_NoGag.png differ diff --git a/Actors/Player/Naked_Rope_Collar_TapeGag.png b/Actors/Player/Naked_Rope_Collar_TapeGag.png new file mode 100644 index 0000000000..7db0fac553 Binary files /dev/null and b/Actors/Player/Naked_Rope_Collar_TapeGag.png differ diff --git a/Actors/Player/Naked_Rope_NoCollar_BallGag.png b/Actors/Player/Naked_Rope_NoCollar_BallGag.png new file mode 100644 index 0000000000..448ac6f25c Binary files /dev/null and b/Actors/Player/Naked_Rope_NoCollar_BallGag.png differ diff --git a/Actors/Player/Naked_Rope_NoCollar_ClothGag.png b/Actors/Player/Naked_Rope_NoCollar_ClothGag.png new file mode 100644 index 0000000000..d359744d94 Binary files /dev/null and b/Actors/Player/Naked_Rope_NoCollar_ClothGag.png differ diff --git a/Actors/Player/Naked_Rope_NoCollar_NoGag.png b/Actors/Player/Naked_Rope_NoCollar_NoGag.png new file mode 100644 index 0000000000..d00505c25a Binary files /dev/null and b/Actors/Player/Naked_Rope_NoCollar_NoGag.png differ diff --git a/Actors/Player/Naked_Rope_NoCollar_TapeGag.png b/Actors/Player/Naked_Rope_NoCollar_TapeGag.png new file mode 100644 index 0000000000..d440dfe3f9 Binary files /dev/null and b/Actors/Player/Naked_Rope_NoCollar_TapeGag.png differ diff --git a/Actors/Player/Underwear_NoBondage_BallGag.png b/Actors/Player/Underwear_NoBondage_NoCollar_BallGag.png similarity index 100% rename from Actors/Player/Underwear_NoBondage_BallGag.png rename to Actors/Player/Underwear_NoBondage_NoCollar_BallGag.png diff --git a/Actors/Player/Underwear_NoBondage_ClothGag.png b/Actors/Player/Underwear_NoBondage_NoCollar_ClothGag.png similarity index 100% rename from Actors/Player/Underwear_NoBondage_ClothGag.png rename to Actors/Player/Underwear_NoBondage_NoCollar_ClothGag.png diff --git a/Actors/Player/Underwear_NoBondage_NoGag.png b/Actors/Player/Underwear_NoBondage_NoCollar_NoGag.png similarity index 100% rename from Actors/Player/Underwear_NoBondage_NoGag.png rename to Actors/Player/Underwear_NoBondage_NoCollar_NoGag.png diff --git a/Actors/Player/Underwear_NoBondage_TapeGag.png b/Actors/Player/Underwear_NoBondage_NoCollar_TapeGag.png similarity index 100% rename from Actors/Player/Underwear_NoBondage_TapeGag.png rename to Actors/Player/Underwear_NoBondage_NoCollar_TapeGag.png diff --git a/Actors/Player/Underwear_Rope_Collar_BallGag.png b/Actors/Player/Underwear_Rope_Collar_BallGag.png new file mode 100644 index 0000000000..a1ad3d6313 Binary files /dev/null and b/Actors/Player/Underwear_Rope_Collar_BallGag.png differ diff --git a/Actors/Player/Underwear_Rope_Collar_ClothGag.png b/Actors/Player/Underwear_Rope_Collar_ClothGag.png new file mode 100644 index 0000000000..9f89642870 Binary files /dev/null and b/Actors/Player/Underwear_Rope_Collar_ClothGag.png differ diff --git a/Actors/Player/Underwear_Rope_Collar_NoGag.png b/Actors/Player/Underwear_Rope_Collar_NoGag.png new file mode 100644 index 0000000000..659e85b759 Binary files /dev/null and b/Actors/Player/Underwear_Rope_Collar_NoGag.png differ diff --git a/Actors/Player/Underwear_Rope_Collar_TapeGag.png b/Actors/Player/Underwear_Rope_Collar_TapeGag.png new file mode 100644 index 0000000000..1cf547c3ae Binary files /dev/null and b/Actors/Player/Underwear_Rope_Collar_TapeGag.png differ diff --git a/Actors/Player/Underwear_Rope_NoCollar_BallGag.png b/Actors/Player/Underwear_Rope_NoCollar_BallGag.png new file mode 100644 index 0000000000..eb68e7d055 Binary files /dev/null and b/Actors/Player/Underwear_Rope_NoCollar_BallGag.png differ diff --git a/Actors/Player/Underwear_Rope_NoCollar_ClothGag.png b/Actors/Player/Underwear_Rope_NoCollar_ClothGag.png new file mode 100644 index 0000000000..e5295bfd36 Binary files /dev/null and b/Actors/Player/Underwear_Rope_NoCollar_ClothGag.png differ diff --git a/Actors/Player/Underwear_Rope_NoCollar_NoGag.png b/Actors/Player/Underwear_Rope_NoCollar_NoGag.png new file mode 100644 index 0000000000..41b621e990 Binary files /dev/null and b/Actors/Player/Underwear_Rope_NoCollar_NoGag.png differ diff --git a/Actors/Player/Underwear_Rope_NoCollar_TapeGag.png b/Actors/Player/Underwear_Rope_NoCollar_TapeGag.png new file mode 100644 index 0000000000..c004a1f5dd Binary files /dev/null and b/Actors/Player/Underwear_Rope_NoCollar_TapeGag.png differ diff --git a/Actors/Player/Villain_NoBondage_NoGag_Acting.png b/Actors/Player/Villain_NoBondage_NoGag_Acting.png new file mode 100644 index 0000000000..9e4911ffd2 Binary files /dev/null and b/Actors/Player/Villain_NoBondage_NoGag_Acting.png differ diff --git a/Actors/Player/Villain_NoBondage_NoGag_Swordplay.png b/Actors/Player/Villain_NoBondage_NoGag_Swordplay.png new file mode 100644 index 0000000000..755fed27af Binary files /dev/null and b/Actors/Player/Villain_NoBondage_NoGag_Swordplay.png differ diff --git a/Actors/Sarah/Damsel_NoBondage_NoGag_Acting.png b/Actors/Sarah/Damsel_NoBondage_NoGag_Acting.png new file mode 100644 index 0000000000..17a28010c2 Binary files /dev/null and b/Actors/Sarah/Damsel_NoBondage_NoGag_Acting.png differ diff --git a/Actors/Sarah/Heroine_NoBondage_NoGag_Acting.png b/Actors/Sarah/Heroine_NoBondage_NoGag_Acting.png new file mode 100644 index 0000000000..d34df03257 Binary files /dev/null and b/Actors/Sarah/Heroine_NoBondage_NoGag_Acting.png differ diff --git a/Actors/Sarah/Heroine_NoBondage_NoGag_Swordplay.png b/Actors/Sarah/Heroine_NoBondage_NoGag_Swordplay.png new file mode 100644 index 0000000000..6b323a10d1 Binary files /dev/null and b/Actors/Sarah/Heroine_NoBondage_NoGag_Swordplay.png differ diff --git a/Backgrounds/Dressing.jpg b/Backgrounds/Dressing.jpg new file mode 100644 index 0000000000..b41fb7a4d1 Binary files /dev/null and b/Backgrounds/Dressing.jpg differ diff --git a/Backgrounds/Stage.jpg b/Backgrounds/Stage.jpg new file mode 100644 index 0000000000..e514cb4756 Binary files /dev/null and b/Backgrounds/Stage.jpg differ diff --git a/C008_DramaClass/Damsel/Intro_EN.csv b/C008_DramaClass/Damsel/Intro_EN.csv index 10f37f6eaa..bf57f20018 100644 --- a/C008_DramaClass/Damsel/Intro_EN.csv +++ b/C008_DramaClass/Damsel/Intro_EN.csv @@ -24,10 +24,15 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image 240,0,0,PlayerIsDamsel,(The white knight is next.),Background.jpg 240,0,0,!PlayerIsDamsel,(She's watching the white knight.),Background.jpg 250,0,0,PlayerIsDamsel,"(As the damsel, this is your line.)",Background.jpg -250,0,0,!PlayerIsDamsel,(She's about to say her line.),Background.jpg +250,0,0,!PlayerIsDamsel,(She's ready for the final act.),Background.jpg +255,0,0,,(She's ready for the final act.),Background.jpg +260,0,0,,,Background.jpg 270,0,0,PlayerIsDamsel,(The black knight is next.),Background.jpg 270,0,0,!PlayerIsDamsel,(She's watching the black knight.),Background.jpg 280,0,0,PlayerIsDamsel,"(As the damsel, this is your line.)",Background.jpg -280,0,0,!PlayerIsDamsel,(She's about to say her line.),Background.jpg +280,0,0,!PlayerIsDamsel,(She's ready for the final act.),Background.jpg +285,0,0,,(She's ready for the final act.),Background.jpg +290,0,0,,,Background.jpg +300,0,0,!PlayerIsDamsel,It was a fun play. I really|enjoyed being the damsel.,Background.jpg +300,0,0,IsGagged,(She hums a happy song in her gag.),Background.jpg 300,0,0,PlayerIsDamsel,(The play is over.),Background.jpg -300,0,0,!PlayerIsDamsel,It was a fun play.,Background.jpg diff --git a/C008_DramaClass/Damsel/Script.js b/C008_DramaClass/Damsel/Script.js index f5e5d37c31..d2c438f57b 100644 --- a/C008_DramaClass/Damsel/Script.js +++ b/C008_DramaClass/Damsel/Script.js @@ -1,27 +1,46 @@ var C008_DramaClass_Damsel_CurrentStage = 0; var C008_DramaClass_Damsel_PlayerIsDamsel = false; +var C008_DramaClass_Damsel_PlayerIsHeroine = false; +var C008_DramaClass_Damsel_PlayerIsVillain = false; var C008_DramaClass_Damsel_ForgetLineDone = false; var C008_DramaClass_Damsel_SnapFingersDone = false; +var C008_DramaClass_Damsel_KnightSelection = ""; +var C008_DramaClass_Damsel_CanKissHeroine = false; +var C008_DramaClass_Damsel_CanKissVillain = false; +var C008_DramaClass_Damsel_CanKneelHeroine = false; +var C008_DramaClass_Damsel_CanKneelVillain = false; +var C008_DramaClass_Damsel_IsGagged = false; // Chapter 8 - Damsel Load function C008_DramaClass_Damsel_Load() { // Checks if the player is the damsel & set the stage to the current global stage C008_DramaClass_Damsel_PlayerIsDamsel = (C008_DramaClass_JuliaIntro_PlayerRole == "Damsel"); + C008_DramaClass_Damsel_PlayerIsHeroine = (C008_DramaClass_JuliaIntro_PlayerRole == "Heroine"); + C008_DramaClass_Damsel_PlayerIsVillain = (C008_DramaClass_JuliaIntro_PlayerRole == "Villain"); C008_DramaClass_Damsel_CurrentStage = C008_DramaClass_Theater_GlobalStage; + C008_DramaClass_Damsel_CanKissHeroine = (C008_DramaClass_Damsel_PlayerIsDamsel && (ActorSpecificGetValue("Sarah", ActorLove) >= 10)); + C008_DramaClass_Damsel_CanKissVillain = (C008_DramaClass_Damsel_PlayerIsDamsel && (ActorSpecificGetValue("Amanda", ActorLove) >= 10)); + C008_DramaClass_Damsel_CanKneelHeroine = (C008_DramaClass_Damsel_PlayerIsDamsel && (ActorSpecificGetValue("Sarah", ActorLove) <= -5)); + C008_DramaClass_Damsel_CanKneelVillain = (C008_DramaClass_Damsel_PlayerIsDamsel && (ActorSpecificGetValue("Amanda", ActorLove) <= -5)); // Load the scene parameters if (!C008_DramaClass_Damsel_PlayerIsDamsel) ActorLoad(C008_DramaClass_Theater_Damsel, "Theater"); LoadInteractions(); LeaveIcon = "Leave"; LeaveScreen = "Theater"; + C008_DramaClass_Damsel_IsGagged = ActorIsGagged(); + + // 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; } // Chapter 8 - Damsel Run function C008_DramaClass_Damsel_Run() { BuildInteraction(C008_DramaClass_Damsel_CurrentStage); - DrawInteractionActor(); + if ((C008_DramaClass_Damsel_CurrentStage != 260) && (C008_DramaClass_Damsel_CurrentStage != 290)) DrawInteractionActor(); } // Chapter 8 - Damsel Click @@ -31,14 +50,19 @@ function C008_DramaClass_Damsel_Click() { ClickInteraction(C008_DramaClass_Damsel_CurrentStage); var ClickInv = GetClickedInventory(); - // If the player is the villain, she can restrain Sarah once stage 140 is reached. Stage 220 becomes the minimum stage. - if ((C008_DramaClass_Theater_Villain == "Player") && (C008_DramaClass_Damsel_CurrentStage >= 140) && (C008_DramaClass_Damsel_CurrentStage < 300) && ((ClickInv == "Cuffs") || (ClickInv == "Rope") || (ClickInv == "ClothGag") || (ClickInv == "BallGag") || (ClickInv == "TapeGag"))) { + // If the player is the villain, she can restrain Sarah once stage 140 is reached. Stage 220 becomes the minimum stage if she's gagged. + if (((ClickInv == "Rope") || (ClickInv == "BallGag") || (ClickInv == "TapeGag") || (ClickInv == "ClothGag")) && C008_DramaClass_Damsel_PlayerIsVillain && (C008_DramaClass_Damsel_CurrentStage >= 140) && (C008_DramaClass_Damsel_CurrentStage < 300) && !Common_PlayerRestrained) { + var HadRope = ActorHasInventory("Rope"); ActorSetCloth("Underwear"); ActorApplyRestrain(ClickInv); - if (C008_DramaClass_Damsel_CurrentStage < 220) { + if ((ClickInv == "Rope") && !HadRope) OverridenIntroText = GetText("VillainRope"); + if ((ActorHasInventory("BallGag") || ActorHasInventory("TapeGag") || ActorHasInventory("ClothGag")) && (C008_DramaClass_Damsel_CurrentStage < 220)) { C008_DramaClass_Damsel_CurrentStage = 220; C008_DramaClass_Theater_GlobalStage = 220; } + if (C008_DramaClass_Damsel_CurrentStage == 250) C008_DramaClass_Damsel_CurrentStage = 255; + if (C008_DramaClass_Damsel_CurrentStage == 280) C008_DramaClass_Damsel_CurrentStage = 285; + C008_DramaClass_Theater_SetPose(); } } @@ -51,6 +75,11 @@ function C008_DramaClass_Damsel_GlobalStage(GlobalStage, LoveMod, SubMod) { if (!C008_DramaClass_Damsel_SnapFingersDone || (SubMod <= 0)) ActorSpecificChangeAttitude("Julia", LoveMod, SubMod); if (SubMod > 0) C008_DramaClass_Damsel_SnapFingersDone = true; if (LoveMod < 0) C008_DramaClass_Theater_PerfectPlay = false; + C008_DramaClass_Theater_SetPose(); + + // Remember who was picked for later + if (GlobalStage == 200) C008_DramaClass_Damsel_KnightSelection = "Heroine"; + if (GlobalStage == 210) C008_DramaClass_Damsel_KnightSelection = "Villain"; // If the player is the Damsel, Amanda can restrain her if she's in a Domme mood and wasn't selected if ((GlobalStage == 200) && (C008_DramaClass_Theater_Damsel == "Player") && (C008_DramaClass_Theater_Villain == "Amanda") && (ActorSpecificGetValue("Amanda", ActorSubmission) < 0)) { @@ -80,10 +109,12 @@ function C008_DramaClass_Damsel_SarahChooseKnight() { // Stage 200 means the hero was selected C008_DramaClass_Damsel_CurrentStage = 200; C008_DramaClass_Theater_GlobalStage = 200; + C008_DramaClass_Damsel_KnightSelection = "Heroine"; // If Amanda is the villain, she will restrain Sarah if (C008_DramaClass_Theater_Villain == "Amanda") { ActorSetCloth("Underwear"); + ActorSpecificSetPose("Sarah", ""); ActorAddInventory("Rope"); ActorAddInventory("ClothGag"); OverridenIntroText = GetText("SarahChooseWhiteKnightRestrained"); @@ -94,8 +125,60 @@ function C008_DramaClass_Damsel_SarahChooseKnight() { // Stage 210 means the villain was selected C008_DramaClass_Damsel_CurrentStage = 210; C008_DramaClass_Theater_GlobalStage = 210; + C008_DramaClass_Damsel_KnightSelection = "Villain"; OverridenIntroText = GetText("SarahChooseBlackKnight"); } +} + +// Chapter 8 - Damsel - The player can release the Damsel for the final act +function C008_DramaClass_Damsel_ReleaseDamsel() { + ActorUntie(); + ActorUngag(); + ActorSetCloth("Damsel"); + C008_DramaClass_Theater_SetPose(); +} + +// Chapter 8 - Damsel - When the damsel kisses the victor, it finishes the play +function C008_DramaClass_Damsel_FinalKiss() { + if ((C008_DramaClass_Damsel_CurrentStage == 260) && C008_DramaClass_Damsel_PlayerIsVillain && ActorSpecificHasInventory("Sarah", "Rope")) { C008_DramaClass_Damsel_ReleaseDamsel(); OverridenIntroText = GetText("AmandaReleaseForKiss"); } + if ((C008_DramaClass_Damsel_CurrentStage == 290) && C008_DramaClass_Damsel_PlayerIsHeroine && ActorSpecificHasInventory("Sarah", "Rope")) { C008_DramaClass_Damsel_ReleaseDamsel(); OverridenIntroText = GetText("AmandaReleaseForKiss"); } + if ((C008_DramaClass_Damsel_CurrentStage == 260) && C008_DramaClass_Damsel_PlayerIsDamsel) { OverridenIntroImage = "../HugImages/HeroineSarahDamselPlayerKiss.jpg"; ActorSpecificChangeAttitude("Sarah", 2, 0); ActorSpecificChangeAttitude("Amanda", -3, 0); } + if ((C008_DramaClass_Damsel_CurrentStage == 260) && C008_DramaClass_Damsel_PlayerIsHeroine) { OverridenIntroImage = "../HugImages/HeroinePlayerDamselSarahKiss.jpg"; ActorSpecificChangeAttitude("Sarah", 2, 0); ActorSpecificChangeAttitude("Amanda", -3, 0); } + if ((C008_DramaClass_Damsel_CurrentStage == 260) && C008_DramaClass_Damsel_PlayerIsVillain) { OverridenIntroImage = "../HugImages/HeroineAmandaDamselSarahKiss.jpg"; } + if ((C008_DramaClass_Damsel_CurrentStage == 290) && C008_DramaClass_Damsel_PlayerIsDamsel) { OverridenIntroImage = "../HugImages/VillainAmandaDamselPlayerKiss.jpg"; ActorSpecificChangeAttitude("Amanda", 2, 0); ActorSpecificChangeAttitude("Sarah", -3, 0); } + if ((C008_DramaClass_Damsel_CurrentStage == 290) && C008_DramaClass_Damsel_PlayerIsHeroine) { OverridenIntroImage = "../HugImages/VillainAmandaDamselSarahKiss.jpg"; } + if ((C008_DramaClass_Damsel_CurrentStage == 290) && C008_DramaClass_Damsel_PlayerIsVillain) { OverridenIntroImage = "../HugImages/VillainPlayerDamselSarahKiss.jpg"; ActorSpecificChangeAttitude("Sarah", 2, 0); ActorSpecificChangeAttitude("Amanda", -3, 0); } + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "Kiss"; +} + +// Chapter 8 - Damsel - When the damsel hugs the victor, it finishes the play +function C008_DramaClass_Damsel_FinalHug() { + if ((C008_DramaClass_Damsel_CurrentStage == 260) && C008_DramaClass_Damsel_PlayerIsDamsel) { OverridenIntroImage = "../HugImages/HeroineSarahDamselPlayerHug.jpg"; ActorSpecificChangeAttitude("Sarah", 1, 0); ActorSpecificChangeAttitude("Amanda", -1, 0); } + if ((C008_DramaClass_Damsel_CurrentStage == 260) && C008_DramaClass_Damsel_PlayerIsHeroine) { OverridenIntroImage = "../HugImages/HeroinePlayerDamselSarahHug.jpg"; ActorSpecificChangeAttitude("Sarah", 1, 0); ActorSpecificChangeAttitude("Amanda", -1, 0); } + if ((C008_DramaClass_Damsel_CurrentStage == 290) && C008_DramaClass_Damsel_PlayerIsDamsel) { OverridenIntroImage = "../HugImages/VillainAmandaDamselPlayerHug.jpg"; ActorSpecificChangeAttitude("Amanda", 1, 0); ActorSpecificChangeAttitude("Sarah", -1, 0); } + if ((C008_DramaClass_Damsel_CurrentStage == 290) && C008_DramaClass_Damsel_PlayerIsVillain) { OverridenIntroImage = "../HugImages/VillainPlayerDamselSarahHug.jpg"; ActorSpecificChangeAttitude("Sarah", 1, 0); ActorSpecificChangeAttitude("Amanda", -1, 0); } + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "Hug"; +} + +// Chapter 8 - Damsel - When the damsel kneels for the victor, it finishes the play +function C008_DramaClass_Damsel_FinalDomme() { + if ((C008_DramaClass_Damsel_CurrentStage == 260) && C008_DramaClass_Damsel_PlayerIsDamsel) { OverridenIntroImage = "../HugImages/HeroineSarahDamselPlayerDomme.jpg"; ActorSpecificChangeAttitude("Sarah", 1, -2); ActorSpecificChangeAttitude("Amanda", -1, 0); } + if ((C008_DramaClass_Damsel_CurrentStage == 260) && C008_DramaClass_Damsel_PlayerIsHeroine) { OverridenIntroImage = "../HugImages/HeroinePlayerDamselSarahDomme.jpg"; ActorSpecificChangeAttitude("Sarah", 1, 2); ActorSpecificChangeAttitude("Amanda", -1, 0); } + if ((C008_DramaClass_Damsel_CurrentStage == 290) && C008_DramaClass_Damsel_PlayerIsDamsel) { OverridenIntroImage = "../HugImages/VillainAmandaDamselPlayerDomme.jpg"; ActorSpecificChangeAttitude("Amanda", 1, -2); ActorSpecificChangeAttitude("Sarah", -1, 0); } + if ((C008_DramaClass_Damsel_CurrentStage == 290) && C008_DramaClass_Damsel_PlayerIsVillain) { OverridenIntroImage = "../HugImages/VillainPlayerDamselSarahDomme.jpg"; ActorSpecificChangeAttitude("Sarah", 1, 2); ActorSpecificChangeAttitude("Amanda", -1, 0); } + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "Domme"; +} + +// Chapter 8 - Damsel - The villain can take both girls as prisoners for the final act +function C008_DramaClass_Damsel_FinalTwoPrisoners() { + ActorSpecificChangeAttitude("Sarah", 0, 1); + ActorSpecificChangeAttitude("Amanda", 0, 1); + ActorSpecificChangeAttitude("Julia", 0, 1); + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "TwoPrisoners"; } \ No newline at end of file diff --git a/C008_DramaClass/Damsel/Stage_EN.csv b/C008_DramaClass/Damsel/Stage_EN.csv index c9b40fea2b..5341faee0b 100644 --- a/C008_DramaClass/Damsel/Stage_EN.csv +++ b/C008_DramaClass/Damsel/Stage_EN.csv @@ -18,3 +18,25 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 160,0,0,PlayerIsDamsel,Sorry Julia.|I forgot my line.,"Julia sighs and whispers to you:|""I profess love unto thy white hero.""",150,0,0,ForgetLine() 160,0,0,!PlayerIsDamsel,(Listen quietly.),,160,0,0,SarahChooseKnight() 160,0,0,!PlayerIsDamsel,(Snap your fingers|with impatience.),,160,0,0,SarahChooseKnight() +250,0,0,CanKissHeroine,(Rush to kiss the|heroine.) (1 minute),You rush into the white knight|arms for a wonderful final kiss.,260,0,0,FinalKiss() +250,0,0,CanKneelHeroine,(Kneel next to the|heroine.) (1 minute),You respectfully kneel down next to|Sarah and hug her legs for the final act.,260,0,0,FinalDomme() +250,0,0,PlayerIsDamsel,(Go hug the heroine.)|(1 minute),You open your arms and hug|the white knight for the final act.,260,0,0,FinalHug() +250,10,0,PlayerIsHeroine,(Rush to kiss her.)|(1 minute),You rush to Sarah and share a lovely|kiss with her for the final act.,260,0,0,FinalKiss() +250,0,10,PlayerIsHeroine,(Point at the floor.)|(1 minute),Sarah respectfully kneels down next to|you and hugs your legs for the final act.,260,0,0,FinalDomme() +250,0,0,PlayerIsHeroine,(Go hug her.)|(1 minute),You go to Sarah and give her|a warm hug for the final act.,260,0,0,FinalHug() +250,0,0,PlayerIsVillain,(Watch the scene.)|(1 minute),Amanda rushes to Sarah and they|share a lovely kiss for the final act.,260,0,0,FinalKiss() +255,0,0,,(Release her.)|(1 minute),You release her from her predicament|while she looks at you with a smile.,250,0,0,ReleaseDamsel() +255,0,0,,Thou shalt be thine|bound wife. (1 minute),The damsel shakes her head yes and smiles.|The play concludes with both of them as prisoners.,300,0,0,FinalTwoPrisoners() +255,0,0,,You'll be my bound|wife. (1 minute),The damsel shakes her head yes and smiles.|The play concludes with both of them as prisoners.,300,0,0,FinalTwoPrisoners() +255,0,0,,Sorry Julia.|I forgot my line.,"Julia laughs out loud and says:|""Don't worry and improvise, we are off script.""",255,0,0, +280,0,0,CanKissVillain,(Rush to kiss the|villain.) (1 minute),You rush into the black knight|arms for a wonderful final kiss.,290,0,0,FinalKiss() +280,0,0,CanKneelVillain,(Kneel next to the|villain.) (1 minute),You respectfully kneel down next to|Amanda and hug her legs for the final act.,290,0,0,FinalDomme() +280,0,0,PlayerIsDamsel,(Go hug the villain.)|(1 minute),You open your arms and hug|the black knight for the final act.,290,0,0,FinalHug() +280,10,0,PlayerIsVillain,(Grab and kiss her.)|(1 minute),You pull her close to you and give|her a tender kiss for the final act.,290,0,0,FinalKiss() +280,0,10,PlayerIsVillain,(Point at the floor.)|(1 minute),Sarah respectfully kneels down next to|you and hugs your legs for the final act.,290,0,0,FinalDomme() +280,0,0,PlayerIsVillain,(Hug her.)|(1 minute),You pull her close to you and give|her a long and warm hug for the final act.,290,0,0,FinalHug() +280,0,0,PlayerIsHeroine,(Watch the scene.)|(1 minute),Amanda grab Sarah and they give each|other a tender kiss for the final act.,290,0,0,FinalKiss() +285,0,0,,(Release her.)|(1 minute),You release her from her predicament|while she looks at you curiously.,280,0,0,ReleaseDamsel() +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, diff --git a/C008_DramaClass/Damsel/Text_EN.csv b/C008_DramaClass/Damsel/Text_EN.csv index 612fad3561..298b5b58b1 100644 --- a/C008_DramaClass/Damsel/Text_EN.csv +++ b/C008_DramaClass/Damsel/Text_EN.csv @@ -3,3 +3,10 @@ SarahChooseWhiteKnight,"Sarah: ""I profess love unto thy white hero.""|Amanda st SarahChooseWhiteKnightRestrained,"Sarah: ""I profess love unto thy white hero.""|Amanda quickly restrains her and looks at you." 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. diff --git a/C008_DramaClass/Heroine/Intro_EN.csv b/C008_DramaClass/Heroine/Intro_EN.csv index ea30039306..f0b415138d 100644 --- a/C008_DramaClass/Heroine/Intro_EN.csv +++ b/C008_DramaClass/Heroine/Intro_EN.csv @@ -25,9 +25,11 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image 240,0,0,!PlayerIsHeroine,(The white knight is about to talk.),Background.jpg 250,0,0,PlayerIsHeroine,(The damsel is next.),Background.jpg 250,0,0,!PlayerIsHeroine,(She's watching the damsel.),Background.jpg +260,0,0,,,Background.jpg 270,0,0,PlayerIsHeroine,(The black knight is next.),Background.jpg 270,0,0,!PlayerIsHeroine,(She's watching the black knight.),Background.jpg 280,0,0,PlayerIsHeroine,(The damsel is next.),Background.jpg 280,0,0,!PlayerIsHeroine,(She's watching the damsel.),Background.jpg +300,0,0,!PlayerIsHeroine,It was a really nice. I hope|I was a good white knight.,Background.jpg +300,0,0,IsGagged,Mnuh gnunmn n muh!,Background.jpg 300,0,0,PlayerIsHeroine,(The play is over),Background.jpg -300,0,0,!PlayerIsHeroine,It was a fun play.,Background.jpg diff --git a/C008_DramaClass/Heroine/Script.js b/C008_DramaClass/Heroine/Script.js index e4cd3400ab..d374423909 100644 --- a/C008_DramaClass/Heroine/Script.js +++ b/C008_DramaClass/Heroine/Script.js @@ -1,27 +1,35 @@ var C008_DramaClass_Heroine_CurrentStage = 100; var C008_DramaClass_Heroine_PlayerIsHeroine = false; +var C008_DramaClass_Heroine_PlayerIsDamsel = false; +var C008_DramaClass_Heroine_PlayerIsVillain = false; var C008_DramaClass_Heroine_ForgetLineDone = false; var C008_DramaClass_Heroine_SnapFingersDone = false; +var C008_DramaClass_Heroine_VillainCanTaunt = false; +var C008_DramaClass_Heroine_IsGagged = false; // Chapter 8 - Heroine Load function C008_DramaClass_Heroine_Load() { // Checks if the player is the heroine & set the stage to the current global stage C008_DramaClass_Heroine_PlayerIsHeroine = (C008_DramaClass_JuliaIntro_PlayerRole == "Heroine"); + C008_DramaClass_Heroine_PlayerIsDamsel = (C008_DramaClass_JuliaIntro_PlayerRole == "Damsel"); + C008_DramaClass_Heroine_PlayerIsVillain = (C008_DramaClass_JuliaIntro_PlayerRole == "Villain"); C008_DramaClass_Heroine_CurrentStage = C008_DramaClass_Theater_GlobalStage; + C008_DramaClass_Heroine_VillainCanTaunt = (C008_DramaClass_Heroine_PlayerIsVillain && ActorSpecificInBondage("Sarah")); // Load the scene parameters if (!C008_DramaClass_Heroine_PlayerIsHeroine) ActorLoad(C008_DramaClass_Theater_Heroine, "Theater"); LoadInteractions(); LeaveIcon = "Leave"; LeaveScreen = "Theater"; + C008_DramaClass_Heroine_IsGagged = ActorIsGagged(); } // Chapter 8 - Heroine Run function C008_DramaClass_Heroine_Run() { BuildInteraction(C008_DramaClass_Heroine_CurrentStage); - DrawInteractionActor(); + if ((C008_DramaClass_Heroine_CurrentStage != 260) && (C008_DramaClass_Heroine_CurrentStage != 290)) DrawInteractionActor(); } // Chapter 8 - Heroine Click @@ -31,6 +39,10 @@ function C008_DramaClass_Heroine_Click() { ClickInteraction(C008_DramaClass_Heroine_CurrentStage); var ClickInv = GetClickedInventory(); + // A second rope can be applied on the fight loser before the play is over + if ((ClickInv == "Rope") && (C008_DramaClass_Heroine_CurrentStage == 280) && C008_DramaClass_Heroine_PlayerIsVillain) + ActorApplyRestrain(ClickInv); + } // Chapter 8 - Heroine - Sets the global stage and can alter Julia's mood @@ -39,6 +51,7 @@ function C008_DramaClass_Heroine_GlobalStage(GlobalStage, LoveMod, SubMod) { if (!C008_DramaClass_Heroine_SnapFingersDone || (SubMod <= 0)) ActorSpecificChangeAttitude("Julia", LoveMod, SubMod); if (SubMod > 0) C008_DramaClass_Heroine_SnapFingersDone = true; if (LoveMod < 0) C008_DramaClass_Theater_PerfectPlay = false; + C008_DramaClass_Theater_SetPose(); } // Chapter 8 - Heroine - When the player forgets her line @@ -48,4 +61,31 @@ function C008_DramaClass_Heroine_ForgetLine() { C008_DramaClass_Theater_PerfectPlay = false; ActorSpecificChangeAttitude("Julia", 0, -1); } +} + +// Chapter 8 - Heroine - When the heroine kisses the damsel, it finishes the play +function C008_DramaClass_Heroine_FinalKiss() { + OverridenIntroImage = "../HugImages/HeroineSarahDamselPlayerKiss.jpg"; + ActorSpecificChangeAttitude("Sarah", 2, 0); + ActorSpecificChangeAttitude("Amanda", -3, 0); + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "Kiss"; +} + +// Chapter 8 - Heroine - When the heroine hugs the damsel, it finishes the play +function C008_DramaClass_Heroine_FinalHug() { + OverridenIntroImage = "../HugImages/HeroineSarahDamselPlayerHug.jpg"; + ActorSpecificChangeAttitude("Sarah", 1, 0); + ActorSpecificChangeAttitude("Amanda", -1, 0); + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "Hug"; +} + +// Chapter 8 - Heroine - When the damsel kneels for the heroine, it finishes the play +function C008_DramaClass_Heroine_FinalDomme() { + OverridenIntroImage = "../HugImages/HeroineSarahDamselPlayerDomme.jpg"; + ActorSpecificChangeAttitude("Sarah", 1, -2); + ActorSpecificChangeAttitude("Amanda", -1, 0); + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "Domme"; } \ No newline at end of file diff --git a/C008_DramaClass/Heroine/Stage_EN.csv b/C008_DramaClass/Heroine/Stage_EN.csv index 1f38d474f2..76351bcfae 100644 --- a/C008_DramaClass/Heroine/Stage_EN.csv +++ b/C008_DramaClass/Heroine/Stage_EN.csv @@ -10,9 +10,22 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 120,0,0,!PlayerIsHeroine,(Listen quietly.),"The white knight takes a stand and says:|""Foul tongue, liberate with haste.""",130,0,0,"GlobalStage(130, 0, 0)" 120,0,0,!PlayerIsHeroine,(Snap your fingers|with impatience.),"The white knight quickly says:|""Foul tongue, liberate with haste.""",130,0,0,"GlobalStage(130, 0, 1)" 120,0,0,!PlayerIsHeroine,(Make some silly|faces to distract her.),"The white knight laughs and says:|""Foul mouth, liberate her now.""",130,0,0,"GlobalStage(130, -1, 0)" -220,0,0,PlayerIsHeroine,"So fate chosen|metal, en garde!",Amanda unsheathes her|sword and steps forward.,230,0,0,"GlobalStage(230, -1, 0)" -220,0,0,PlayerIsHeroine,"So fate chooseth|steel, en garde!",Amanda unsheathes her|sword and steps forward.,230,0,0,"GlobalStage(230, 1, 0)" +220,0,0,PlayerIsHeroine,"So fate chosen|metal, en garde!",You simultaneously unsheathe your|swords and take a step forward.,230,0,0,"GlobalStage(230, -1, 0)" +220,0,0,PlayerIsHeroine,"So fate chooseth|steel, en garde!",You simultaneously unsheathe your|swords and take a step forward.,230,0,0,"GlobalStage(230, 1, 0)" 220,0,0,PlayerIsHeroine,Sorry Julia.|I forgot my line.,"Julia whispers to you:|""So fate chooseth steel, en garde!""",220,0,0,ForgetLine() +220,0,0,VillainCanTaunt,The bound damsel|is anon mineth.,"Amanda angrily grabs her sword and says:|""So fate chooseth steel, en garde!""",230,0,1,"GlobalStage(230, 0, 1)" 220,0,0,!PlayerIsHeroine,(Listen quietly.),"The white knight grabs her sword and says:|""So fate chooseth steel, en garde!""",230,0,0,"GlobalStage(230, 0, 0)" 220,0,0,!PlayerIsHeroine,(Yawn in boredom.),"The white knight grabs her sword and says:|""So fate chooseth steel, en garde!""",230,0,0,"GlobalStage(230, -1, 0)" 220,0,0,!PlayerIsHeroine,(Applaud lightly.),"The white knight grabs her sword and says:|""So fate chooseth steel, en garde!""",230,0,0,"GlobalStage(230, 1, 0)" +240,0,0,PlayerIsHeroine,Law shalt judgeth thee.|(Restrain her) (1 minute),You pick a few items from the theater|and restrain Amanda the black knight.,250,0,0,"GlobalStage(250, 1, 0)" +240,0,0,PlayerIsHeroine,You will be judged.|(Restrain her) (1 minute),You pick a few items from the theater|and restrain Amanda the black knight.,250,0,0,"GlobalStage(250, -1, 0)" +240,0,0,PlayerIsHeroine,Sorry Julia.|I forgot my line.,"Julia whispers to you:|""Law shalt judgeth thee.""",240,0,0,ForgetLine() +240,0,0,PlayerIsVillain,(Listen quietly.)|(1 minute),"The white knight strips and restrains you|while saying: ""Law shalt judgeth thee.""",250,0,0,"GlobalStage(250, 0, 0)" +240,0,0,PlayerIsVillain,(Bow to the white|knight.) (1 minute),"The white knight strips and restrains you|while saying: ""Law shalt judgeth thee.""",250,0,-1,"GlobalStage(250, 0, -1)" +240,0,0,PlayerIsVillain,That sucks!|(1 minute),"The white knight strips and restrains you|while saying: ""Law shalt judgeth thee.""",250,-1,0,"GlobalStage(250, -1, 0)" +240,0,0,PlayerIsDamsel,(Watch the scene.)|(1 minute),"The heroine strips and restrains the villain|while saying: ""Law shalt judgeth thee.""",250,0,0,"GlobalStage(250, 0, 0)" +240,0,0,PlayerIsDamsel,(Cheer for the heroine.)|(1 minute),"The heroine strips and restrains the villain|while saying: ""Law shalt judgeth thee.""",250,1,0,"GlobalStage(250, 1, 0)" +250,0,0,Common_PlayerGagged,@Mng nuuum!,Amanda giggles a little at your gagged|mumblings but stays focused on her role.,250,0,0, +250,10,0,PlayerIsDamsel,(Rush to kiss her.)|(1 minute),You rush into her arms and you|both kiss tenderly for the final act.,260,0,0,FinalKiss() +250,0,-5,PlayerIsDamsel,(Kneel for her.)|(1 minute),You bow and kneel for the white knight.|Hugging her legs lovingly for the final act.,260,0,0,FinalDomme() +250,0,0,PlayerIsDamsel,(Go hug her.)|(1 minute),You go in her arms and|you hug for the final act.,260,0,0,FinalHug() diff --git a/C008_DramaClass/Heroine/Text_EN.csv b/C008_DramaClass/Heroine/Text_EN.csv index b773c14f51..bc64c01993 100644 --- a/C008_DramaClass/Heroine/Text_EN.csv +++ b/C008_DramaClass/Heroine/Text_EN.csv @@ -1 +1,2 @@ Tag,Content +TwoRopes,"You grab her legs and tie a second rope|around them, forcing her to kneel down." diff --git a/C008_DramaClass/HugImages/HeroineAmandaDamselSarahKiss.jpg b/C008_DramaClass/HugImages/HeroineAmandaDamselSarahKiss.jpg new file mode 100644 index 0000000000..37d4f4e896 Binary files /dev/null and b/C008_DramaClass/HugImages/HeroineAmandaDamselSarahKiss.jpg differ diff --git a/C008_DramaClass/HugImages/HeroinePlayerDamselSarahDomme.jpg b/C008_DramaClass/HugImages/HeroinePlayerDamselSarahDomme.jpg new file mode 100644 index 0000000000..f09637a32d Binary files /dev/null and b/C008_DramaClass/HugImages/HeroinePlayerDamselSarahDomme.jpg differ diff --git a/C008_DramaClass/HugImages/HeroinePlayerDamselSarahHug.jpg b/C008_DramaClass/HugImages/HeroinePlayerDamselSarahHug.jpg new file mode 100644 index 0000000000..57140377c9 Binary files /dev/null and b/C008_DramaClass/HugImages/HeroinePlayerDamselSarahHug.jpg differ diff --git a/C008_DramaClass/HugImages/HeroinePlayerDamselSarahKiss.jpg b/C008_DramaClass/HugImages/HeroinePlayerDamselSarahKiss.jpg new file mode 100644 index 0000000000..fc46ec9562 Binary files /dev/null and b/C008_DramaClass/HugImages/HeroinePlayerDamselSarahKiss.jpg differ diff --git a/C008_DramaClass/HugImages/HeroineSarahDamselPlayerDomme.jpg b/C008_DramaClass/HugImages/HeroineSarahDamselPlayerDomme.jpg new file mode 100644 index 0000000000..354722264c Binary files /dev/null and b/C008_DramaClass/HugImages/HeroineSarahDamselPlayerDomme.jpg differ diff --git a/C008_DramaClass/HugImages/HeroineSarahDamselPlayerHug.jpg b/C008_DramaClass/HugImages/HeroineSarahDamselPlayerHug.jpg new file mode 100644 index 0000000000..0ba0ecd063 Binary files /dev/null and b/C008_DramaClass/HugImages/HeroineSarahDamselPlayerHug.jpg differ diff --git a/C008_DramaClass/HugImages/HeroineSarahDamselPlayerKiss.jpg b/C008_DramaClass/HugImages/HeroineSarahDamselPlayerKiss.jpg new file mode 100644 index 0000000000..4993ba3794 Binary files /dev/null and b/C008_DramaClass/HugImages/HeroineSarahDamselPlayerKiss.jpg differ diff --git a/C008_DramaClass/HugImages/VillainAmandaDamselPlayerDomme.jpg b/C008_DramaClass/HugImages/VillainAmandaDamselPlayerDomme.jpg new file mode 100644 index 0000000000..8b00b8b974 Binary files /dev/null and b/C008_DramaClass/HugImages/VillainAmandaDamselPlayerDomme.jpg differ diff --git a/C008_DramaClass/HugImages/VillainAmandaDamselPlayerHug.jpg b/C008_DramaClass/HugImages/VillainAmandaDamselPlayerHug.jpg new file mode 100644 index 0000000000..c7ce6a0bfa Binary files /dev/null and b/C008_DramaClass/HugImages/VillainAmandaDamselPlayerHug.jpg differ diff --git a/C008_DramaClass/HugImages/VillainAmandaDamselPlayerKiss.jpg b/C008_DramaClass/HugImages/VillainAmandaDamselPlayerKiss.jpg new file mode 100644 index 0000000000..f5f0b70e25 Binary files /dev/null and b/C008_DramaClass/HugImages/VillainAmandaDamselPlayerKiss.jpg differ diff --git a/C008_DramaClass/HugImages/VillainAmandaDamselSarahKiss.jpg b/C008_DramaClass/HugImages/VillainAmandaDamselSarahKiss.jpg new file mode 100644 index 0000000000..6950a4a84d Binary files /dev/null and b/C008_DramaClass/HugImages/VillainAmandaDamselSarahKiss.jpg differ diff --git a/C008_DramaClass/HugImages/VillainPlayerDamselSarahDomme.jpg b/C008_DramaClass/HugImages/VillainPlayerDamselSarahDomme.jpg new file mode 100644 index 0000000000..9882d31f7a Binary files /dev/null and b/C008_DramaClass/HugImages/VillainPlayerDamselSarahDomme.jpg differ diff --git a/C008_DramaClass/HugImages/VillainPlayerDamselSarahHug.jpg b/C008_DramaClass/HugImages/VillainPlayerDamselSarahHug.jpg new file mode 100644 index 0000000000..508f3b6162 Binary files /dev/null and b/C008_DramaClass/HugImages/VillainPlayerDamselSarahHug.jpg differ diff --git a/C008_DramaClass/HugImages/VillainPlayerDamselSarahKiss.jpg b/C008_DramaClass/HugImages/VillainPlayerDamselSarahKiss.jpg new file mode 100644 index 0000000000..de39a3a5e5 Binary files /dev/null and b/C008_DramaClass/HugImages/VillainPlayerDamselSarahKiss.jpg differ diff --git a/C008_DramaClass/Julia/Background.jpg b/C008_DramaClass/Julia/Background.jpg new file mode 100644 index 0000000000..757bf72a8d Binary files /dev/null and b/C008_DramaClass/Julia/Background.jpg differ diff --git a/C008_DramaClass/Julia/Intro_EN.csv b/C008_DramaClass/Julia/Intro_EN.csv index a5c9807cad..bd0eeac4bb 100644 --- a/C008_DramaClass/Julia/Intro_EN.csv +++ b/C008_DramaClass/Julia/Intro_EN.csv @@ -34,6 +34,7 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image 270,0,0,!IsVillain,(She looks at the black knight.),JuliaLookAway.jpg 280,0,0,IsDamsel,(She whispers to you.) Don't look at me.|This is your time to shine like a star.,JuliaLookPlayer.jpg 280,0,0,!IsDamsel,(She looks at the damsel.),JuliaLookAway.jpg -300,0,0,IsDamsel,Bravo! Bravo! Bravisimo!|You were a great damsel.,Background.jpg -300,0,0,IsHeroine,Bravo! Bravo! Bravisimo!|You were a great white knight.,Background.jpg -300,0,0,IsVillain,Bravo! Bravo! Bravisimo!|You were a great black knight.,Background.jpg +300,0,0,EndingKiss,Bravo! Bravo! Bravisimo!|What a wonderful final kiss!,Background.jpg +300,0,0,EndingHug,Bravo! Mille Bravo!|And what a nice hug at the end.,Background.jpg +300,0,0,EndingDomme,Bravo! The dominant ending was|unexpected but theater can be chaotic.,Background.jpg +300,0,0,EndingTwoPrisoners,Bravo! The ending with the two prisoners|was unexpected but theater can be chaotic.,Background.jpg diff --git a/C008_DramaClass/Julia/Script.js b/C008_DramaClass/Julia/Script.js index 796fe08536..a91a51a0cf 100644 --- a/C008_DramaClass/Julia/Script.js +++ b/C008_DramaClass/Julia/Script.js @@ -3,6 +3,10 @@ var C008_DramaClass_Julia_IsDamsel = false; var C008_DramaClass_Julia_IsHeroine = false; var C008_DramaClass_Julia_IsVillain = false; var C008_DramaClass_Julia_ScriptRefused = false; +var C008_DramaClass_Julia_EndingKiss = false; +var C008_DramaClass_Julia_EndingHug = false; +var C008_DramaClass_Julia_EndingDomme = false; +var C008_DramaClass_Julia_EndingTwoPrisoners = false; // Chapter 8 - Julia Load function C008_DramaClass_Julia_Load() { @@ -22,6 +26,12 @@ function C008_DramaClass_Julia_Load() { 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"); + + // Keep the ending type + C008_DramaClass_Julia_EndingKiss = (C008_DramaClass_Theater_Ending == "Kiss"); + C008_DramaClass_Julia_EndingHug = (C008_DramaClass_Theater_Ending == "Hug"); + C008_DramaClass_Julia_EndingDomme = (C008_DramaClass_Theater_Ending == "Domme"); + C008_DramaClass_Julia_EndingTwoPrisoners = (C008_DramaClass_Theater_Ending == "TwoPrisoners"); } diff --git a/C008_DramaClass/Theater/Script.js b/C008_DramaClass/Theater/Script.js index bb4fe0df5e..499854278d 100644 --- a/C008_DramaClass/Theater/Script.js +++ b/C008_DramaClass/Theater/Script.js @@ -11,10 +11,13 @@ Full play by stages: 210 - Villain: Hero! Concede thine defeat, she's mine. 220 - Heroine: So fate chooseth steel, en garde! * From here, the villain or hero can try to restrain each other 230 - Villain: Indeed, en garde! * Here there's a sword fight (240 if the Heroine wins, 270 if the Villain wins) +235 - The sword fight, acted from the villain 240 - Heroine: The law shalt judgeth. * Villain gets tied up -250 - The damsel can be kissed for the final act. +250 - The damsel can be kissed for the final act, it can be triggered by the damsel or the heroine +260 - Final kiss between the white knight and damsel 270 - Villain: Thou art mine prisoner. * Heroine gets tied up -280 - The damsel can be kissed or restrained for the final act. +280 - The damsel can be kissed or restrained for the final act, it can be triggered by the damsel or the villain +290 - Final kiss between the black knight and damsel 300 - Julia climbs on the stage and applauds. She can be convinced to do some impro 300+. */ @@ -23,9 +26,71 @@ var C008_DramaClass_Theater_PerfectPlay = true; var C008_DramaClass_Theater_Damsel = ""; var C008_DramaClass_Theater_Heroine = ""; var C008_DramaClass_Theater_Villain = ""; +var C008_DramaClass_Theater_Ending = ""; + +// Set the poses based on the current stage +function C008_DramaClass_Theater_SetPose() { + + // Saves the current actor if needed + var CurActor = CurrentActor; + + // If the villain must be tied up + if ((C008_DramaClass_Theater_GlobalStage == 250) && !ActorSpecificInBondage(C008_DramaClass_Theater_Villain)) { + if (C008_DramaClass_Theater_Villain == "Player") { + PlayerClothes("Underwear"); + PlayerLockInventory("Rope"); + PlayerLockInventory("ClothGag"); + } else { + CurrentActor = C008_DramaClass_Theater_Villain; + ActorSetCloth("Underwear"); + ActorAddInventory("Rope"); + ActorAddInventory("ClothGag"); + } + } + + // If the heroine must be tied up + if ((C008_DramaClass_Theater_GlobalStage == 280) && !ActorSpecificInBondage(C008_DramaClass_Theater_Heroine)) { + if (C008_DramaClass_Theater_Heroine == "Player") { + PlayerClothes("Underwear"); + PlayerLockInventory("Rope"); + PlayerLockInventory("ClothGag"); + } else { + CurrentActor = C008_DramaClass_Theater_Heroine; + ActorSetCloth("Underwear"); + ActorAddInventory("Rope"); + ActorAddInventory("ClothGag"); + } + } + + // Assign the heroine pose depending on the stage + var HeroinePose = ""; + if (((C008_DramaClass_Theater_GlobalStage >= 110) && (C008_DramaClass_Theater_GlobalStage <= 220)) || (C008_DramaClass_Theater_GlobalStage == 270)) HeroinePose = "Acting"; + if ((C008_DramaClass_Theater_GlobalStage >= 230) && (C008_DramaClass_Theater_GlobalStage <= 250)) HeroinePose = "Swordplay"; + if ((HeroinePose != "") && ActorSpecificInBondage(C008_DramaClass_Theater_Heroine)) HeroinePose = ""; + ActorSpecificSetPose(C008_DramaClass_Theater_Heroine, HeroinePose); + + // Assign the villain pose depending on the stage + var VillainPose = ""; + if (((C008_DramaClass_Theater_GlobalStage >= 110) && (C008_DramaClass_Theater_GlobalStage <= 220)) || (C008_DramaClass_Theater_GlobalStage == 240)) VillainPose = "Acting"; + if (((C008_DramaClass_Theater_GlobalStage >= 230) && (C008_DramaClass_Theater_GlobalStage <= 235)) || (C008_DramaClass_Theater_GlobalStage == 270) || (C008_DramaClass_Theater_GlobalStage == 280)) VillainPose = "Swordplay"; + if ((VillainPose != "") && ActorSpecificInBondage(C008_DramaClass_Theater_Villain)) VillainPose = ""; + ActorSpecificSetPose(C008_DramaClass_Theater_Villain, VillainPose); + + // Assign the damsel pose depending on the stage + var DamselPose = ""; + if ((C008_DramaClass_Theater_GlobalStage >= 150) && (C008_DramaClass_Theater_GlobalStage < 300)) DamselPose = "Acting"; + if ((DamselPose != "") && ActorSpecificInBondage(C008_DramaClass_Theater_Damsel)) DamselPose = ""; + ActorSpecificSetPose(C008_DramaClass_Theater_Damsel, DamselPose); + + // Sets the current actor back + CurrentActor = CurActor; + +} // Chapter 8 - Theater Load, sets the role each images function C008_DramaClass_Theater_Load() { + + // Set the theater parameters LeaveIcon = "Wait"; if (C008_DramaClass_JuliaIntro_PlayerRole == "Damsel") C008_DramaClass_Theater_Damsel = "Player"; if (C008_DramaClass_JuliaIntro_SarahRole == "Damsel") C008_DramaClass_Theater_Damsel = "Sarah"; @@ -35,6 +100,8 @@ function C008_DramaClass_Theater_Load() { 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 >= 300); + C008_DramaClass_Theater_SetPose(); + } // Chapter 8 - Theater Run @@ -49,7 +116,7 @@ function C008_DramaClass_Theater_Run() { 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); - else DrawActor("Julia", 550, 60, 0.55); + else DrawActor("Julia", 575, 60, 0.55); } @@ -61,7 +128,7 @@ function C008_DramaClass_Theater_Click() { if ((MouseX >= 300) && (MouseX <= 549) && (MouseY >= 60) && (MouseY <= 540)) SetScene(CurrentChapter, "Villain"); if ((MouseX >= 850) && (MouseX <= 1099) && (MouseY >= 60) && (MouseY <= 540)) SetScene(CurrentChapter, "Heroine"); if ((MouseX >= 550) && (MouseX <= 849) && (MouseY >= 250) && (MouseY <= 600) && (C008_DramaClass_Theater_GlobalStage < 300)) SetScene(CurrentChapter, "Julia"); - if ((MouseX >= 550) && (MouseX <= 849) && (MouseY >= 60) && (MouseY <= 540) && (C008_DramaClass_Theater_GlobalStage >= 300)) SetScene(CurrentChapter, "Julia"); + if ((MouseX >= 575) && (MouseX <= 824) && (MouseY >= 60) && (MouseY <= 540) && (C008_DramaClass_Theater_GlobalStage >= 300)) SetScene(CurrentChapter, "Julia"); // Checks if the user clicks on any regular item InventoryClick(GetClickedInventory(), "C008_DramaClass", "Theater"); diff --git a/C008_DramaClass/Villain/Intro_EN.csv b/C008_DramaClass/Villain/Intro_EN.csv index 9484c3e691..4abb3cbefc 100644 --- a/C008_DramaClass/Villain/Intro_EN.csv +++ b/C008_DramaClass/Villain/Intro_EN.csv @@ -21,6 +21,7 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image 220,0,0,!PlayerIsVillain,(She's watching the white knight.),Background.jpg 230,0,0,PlayerIsVillain,"(As the black knight,|this is your next line.)",Background.jpg 230,0,0,!PlayerIsVillain,(She's about to say her line.),Background.jpg +235,0,0,,,Background.jpg 240,0,0,PlayerIsVillain,(The white knight is next.),Background.jpg 240,0,0,!PlayerIsVillain,(She's watching the white knight.),Background.jpg 250,0,0,PlayerIsVillain,(The damsel is next.),Background.jpg @@ -29,5 +30,7 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image 270,0,0,!PlayerIsVillain,(She's about to say her line.),Background.jpg 280,0,0,PlayerIsVillain,(The damsel is next.),Background.jpg 280,0,0,!PlayerIsVillain,(She's watching the damsel.),Background.jpg +290,0,0,,,Background.jpg +300,0,0,!PlayerIsVillain,It was a great play. I never|thought I could be the villain.,Background.jpg +300,0,0,IsGagged,(She struggles to remove|the gag but quickly gives up.),Background.jpg 300,0,0,PlayerIsVillain,(The play is over.),Background.jpg -300,0,0,!PlayerIsVillain,It was a fun play.,Background.jpg diff --git a/C008_DramaClass/Villain/Script.js b/C008_DramaClass/Villain/Script.js index 981b256e75..ff8f91e8e2 100644 --- a/C008_DramaClass/Villain/Script.js +++ b/C008_DramaClass/Villain/Script.js @@ -4,6 +4,9 @@ var C008_DramaClass_Villain_PlayerIsHeroine = false; var C008_DramaClass_Villain_PlayerIsDamsel = false; var C008_DramaClass_Villain_ForgetLineDone = false; var C008_DramaClass_Villain_SnapFingersDone = false; +var C008_DramaClass_Villain_CanDisarm = false; +var C008_DramaClass_Villain_CanIntimidate = false; +var C008_DramaClass_Villain_IsGagged = false; // Chapter 8 - Villain Load function C008_DramaClass_Villain_Load() { @@ -19,13 +22,18 @@ function C008_DramaClass_Villain_Load() { LoadInteractions(); LeaveIcon = "Leave"; LeaveScreen = "Theater"; + C008_DramaClass_Villain_IsGagged = ActorIsGagged(); + + // 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)); + C008_DramaClass_Villain_CanIntimidate = (C008_DramaClass_Villain_PlayerIsVillain && (ActorSpecificGetValue("Amanda", ActorSubmission) >= 10)); } // Chapter 8 - Villain Run function C008_DramaClass_Villain_Run() { BuildInteraction(C008_DramaClass_Villain_CurrentStage); - DrawInteractionActor(); + if ((C008_DramaClass_Villain_CurrentStage != 260) && (C008_DramaClass_Villain_CurrentStage != 290)) DrawInteractionActor(); } // Chapter 8 - Villain Click @@ -35,14 +43,20 @@ function C008_DramaClass_Villain_Click() { ClickInteraction(C008_DramaClass_Villain_CurrentStage); var ClickInv = GetClickedInventory(); + // A second rope can be applied on the fight loser before the play is over + if ((ClickInv == "Rope") && (C008_DramaClass_Villain_CurrentStage == 250) && C008_DramaClass_Villain_PlayerIsHeroine) + ActorApplyRestrain(ClickInv); + } // Chapter 8 - Villain - Sets the global stage and can alter Julia's mood function C008_DramaClass_Villain_GlobalStage(GlobalStage, LoveMod, SubMod) { C008_DramaClass_Theater_GlobalStage = GlobalStage; + LeaveIcon = "Leave"; if (!C008_DramaClass_Villain_SnapFingersDone || (SubMod <= 0)) ActorSpecificChangeAttitude("Julia", LoveMod, SubMod); if (SubMod > 0) C008_DramaClass_Villain_SnapFingersDone = true; if (LoveMod < 0) C008_DramaClass_Theater_PerfectPlay = false; + C008_DramaClass_Theater_SetPose(); } // Chapter 8 - Villain - When the player forgets her line @@ -60,6 +74,7 @@ function C008_DramaClass_Villain_Surrender() { ActorSpecificChangeAttitude("Sarah", 0, -2); ActorSpecificChangeAttitude("Julia", 0, -2); C008_DramaClass_Theater_GlobalStage = C008_DramaClass_Villain_CurrentStage; + C008_DramaClass_Theater_SetPose(); } // Chapter 8 - Villain - Prevent the player from leaving @@ -77,6 +92,7 @@ function C008_DramaClass_Villain_AmandaSarahFight(CheerFactor) { C008_DramaClass_Villain_CurrentStage = 270; C008_DramaClass_Theater_GlobalStage = 270; OverridenIntroText = GetText("PlayerDamselVillainWin"); + C008_DramaClass_Theater_SetPose(); } else { @@ -84,7 +100,35 @@ function C008_DramaClass_Villain_AmandaSarahFight(CheerFactor) { C008_DramaClass_Villain_CurrentStage = 240; C008_DramaClass_Theater_GlobalStage = 240; OverridenIntroText = GetText("PlayerDamselHeroineWin"); + C008_DramaClass_Theater_SetPose(); } +} + +// Chapter 8 - Villain - When the villain kisses the damsel, it finishes the play +function C008_DramaClass_Villain_FinalKiss() { + OverridenIntroImage = "../HugImages/VillainAmandaDamselPlayerKiss.jpg"; + ActorSpecificChangeAttitude("Amanda", 2, 0); + ActorSpecificChangeAttitude("Sarah", -3, 0); + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "Kiss"; +} + +// Chapter 8 - Villain - When the villain hugs the damsel, it finishes the play +function C008_DramaClass_Villain_FinalHug() { + OverridenIntroImage = "../HugImages/VillainAmandaDamselPlayerHug.jpg"; + ActorSpecificChangeAttitude("Amanda", 1, 0); + ActorSpecificChangeAttitude("Sarah", -1, 0); + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "Hug"; +} + +// Chapter 8 - Villain - When the damsel kneels for the villain, it finishes the play +function C008_DramaClass_Villain_FinalDomme() { + OverridenIntroImage = "../HugImages/VillainAmandaDamselPlayerDomme.jpg"; + ActorSpecificChangeAttitude("Amanda", 1, -2); + ActorSpecificChangeAttitude("Sarah", -1, 0); + C008_DramaClass_Theater_GlobalStage = 300; + C008_DramaClass_Theater_Ending = "Domme"; } \ No newline at end of file diff --git a/C008_DramaClass/Villain/Stage_EN.csv b/C008_DramaClass/Villain/Stage_EN.csv index ddc2dda93d..844a9b13fe 100644 --- a/C008_DramaClass/Villain/Stage_EN.csv +++ b/C008_DramaClass/Villain/Stage_EN.csv @@ -22,13 +22,33 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 210,0,0,!PlayerIsVillain,(Listen quietly.),"The black knight looks at the damsel and says:|""Hero! Concede thine defeat, she's mine.""",220,0,0,"GlobalStage(220, 0, 0)" 210,0,0,!PlayerIsVillain,(Applaud lightly.),"The black knight looks at the damsel and says:|""Hero! Concede thine defeat, she's mine.""",220,1,0,"GlobalStage(220, 1, 0)" 210,0,0,!PlayerIsVillain,(Yawn in boredom.),"The black knight looks at the damsel and says:|""Hero! Concede thine defeat, she's mine.""",220,-1,0,"GlobalStage(220, -1, 0)" -230,0,0,PlayerIsVillain,En garde!|(Do a sword fight.),,230,0,0,StartFight() +230,0,0,PlayerIsVillain,En garde!|(Do a sword fight.),You charge each other and start|a funny but intense sword fight.,235,0,0,NoLeave() 230,0,0,PlayerIsVillain,"Don't attack, I yield.|(Surrender without a fight.)",You drop your sword and the white|knight steps forward with a grin.,240,0,0,Surrender() -230,0,0,PlayerIsHeroine,(Do a sword fight.),,230,0,0,StartFight() +230,0,0,PlayerIsHeroine,(Do a sword fight.),You charge each other and start|a funny but intense sword fight.,235,0,0,NoLeave() 230,0,0,PlayerIsHeroine,(Surrender without a fight.),You drop your sword and the black|knight steps forward with a grin.,270,0,0,Surrender() 230,0,0,PlayerIsDamsel,(Watch the fight.),Both knights charge on each other and|engage in a pretty neat sword fight.,235,0,0,NoLeave() -235,0,0,,Hurray for thy|white champion!,,235,0,0,AmandaSarahFight(-4) -235,0,0,,Hurray for thy|black champion!,,235,0,0,AmandaSarahFight(4) -235,0,0,,Go Amanda!,,235,0,0,AmandaSarahFight(2) -235,0,0,,Go Sarah!,,235,0,0,AmandaSarahFight(-2) -235,0,0,,(Stay silent and|watch the fight.),,235,0,0,AmandaSarahFight(0) +235,0,0,CanIntimidate,(Intimidate her.)|(1 minute),You give a menacing look to Amanda which|barely fights and lets you disarm her.,270,0,0,"GlobalStage(270, 0, 1)" +235,0,0,CanDisarm,(Disarm her.)|(1 minute),Amanda puts a pretty nice fight but|you're able to win by disarming her.,270,0,0,"GlobalStage(270, 0, 0)" +235,0,0,PlayerIsVillain,(Play defensive.)|(1 minute),You stick to defensive moves and Amanda|takes advatange of it to disarm you.,240,0,0,"GlobalStage(240, 0, 0)" +235,0,0,PlayerIsVillain,(Let Amanda win.)|(1 minute),You don't put much of a fight|and Amanda easily disarms you.,240,0,0,"GlobalStage(240, 0, -1)" +235,0,10,PlayerIsHeroine,(Intimidate her.)|(1 minute),You give a menacing look to Amanda which|barely fights and lets you disarm her.,240,0,0,"GlobalStage(240, 0, 1)" +235,0,2,PlayerIsHeroine,(Disarm her.)|(1 minute),Amanda puts a pretty nice fight but|you're able to win by disarming her.,240,0,0,"GlobalStage(240, 0, 0)" +235,0,0,PlayerIsHeroine,(Play defensive.)|(1 minute),You stick to defensive moves and Amanda|takes advatange of it to disarm you.,270,0,0,"GlobalStage(270, 0, 0)" +235,0,0,PlayerIsHeroine,(Let Amanda win.)|(1 minute),You don't put much of a fight|and Amanda easily disarms you.,270,0,0,"GlobalStage(270, 0, -1)" +235,0,0,PlayerIsDamsel,Hurray for thy|white champion!,,235,0,0,AmandaSarahFight(-4) +235,0,0,PlayerIsDamsel,Hurray for thy|black champion!,,235,0,0,AmandaSarahFight(4) +235,0,0,PlayerIsDamsel,Go Amanda!,,235,0,0,AmandaSarahFight(2) +235,0,0,PlayerIsDamsel,Go Sarah!,,235,0,0,AmandaSarahFight(-2) +235,0,0,PlayerIsDamsel,(Stay silent and|watch the fight.),,235,0,0,AmandaSarahFight(0) +270,0,0,PlayerIsVillain,You're my prisoner.|(Restrain her.) (1 minute),You strip the white knight from her armor and|restrain her with items from the theater.,280,0,0,"GlobalStage(280, -1, 0)" +270,0,0,PlayerIsVillain,Thou art mine prisoner.|(Restrain her.) (1 minute),You strip the white knight from her armor and|restrain her with items from the theater.,280,0,0,"GlobalStage(280, 1, 0)" +270,0,0,PlayerIsVillain,Sorry Julia.|I forgot my line.,"Julia whispers to you:|""Thou art mine prisoner.""",270,0,0,ForgetLine() +270,0,0,PlayerIsHeroine,(Stay silent.)|(1 minute),"The black knight strips and restrains you|while saying: ""Thou art mine prisoner.""",280,0,0,"GlobalStage(280, 0, 0)" +270,0,0,PlayerIsHeroine,(Bow to the black|knight.) (1 minute),"The black knight strips and restrains you|while saying: ""Thou art mine prisoner.""",280,0,-1,"GlobalStage(280, 0, -1)" +270,0,0,PlayerIsHeroine,Booooooo!|(1 minute),"The black knight strips and restrains you|while saying: ""Thou art mine prisoner.""",280,-1,0,"GlobalStage(280, -1, 0)" +270,0,0,PlayerIsDamsel,(Watch the scene.)|(1 minute),"The villain strips and restrains the heroine|while saying: ""Thou art mine prisoner.""",280,0,0,"GlobalStage(280, 0, 0)" +270,0,0,PlayerIsDamsel,(Cheer for the villain.)|(1 minute),"The villain strips and restrains the heroine|while saying: ""Thou art mine prisoner.""",280,1,0,"GlobalStage(280, 1, 0)" +280,0,0,Common_PlayerGagged,@Eeengn em!,Amanda smiles and tries not to|laugh at your gagged mumblings.,280,0,0, +280,10,0,PlayerIsDamsel,(Go kiss her.)|(1 minute),You rush into her arms and|you both kiss for the final act.,290,0,0,FinalKiss() +280,0,-5,PlayerIsDamsel,(Kneel for her.)|(1 minute),You bow and kneel for the black knight.|Hugging her legs gently for the final act.,290,0,0,FinalDomme() +280,0,0,PlayerIsDamsel,(Go hug her.)|(1 minute),You go in her arms and|you hug for the final act.,290,0,0,FinalHug() diff --git a/C008_DramaClass/Villain/Text_EN.csv b/C008_DramaClass/Villain/Text_EN.csv index b9e21f90e6..32757f700c 100644 --- a/C008_DramaClass/Villain/Text_EN.csv +++ b/C008_DramaClass/Villain/Text_EN.csv @@ -1,3 +1,4 @@ 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." diff --git a/Drawing.js b/Drawing.js index 1b3b3b8f44..f515460a63 100644 --- a/Drawing.js +++ b/Drawing.js @@ -318,7 +318,7 @@ function DrawGetPlayerImageName() { // Sixth part is the pose var ImagePose = ""; - if (Common_PlayerPose != "") ImagePose = "_" & Common_PlayerPose; + if (Common_PlayerPose != "") ImagePose = "_" + Common_PlayerPose; // Return the constructed name return ImageCloth + ImageBondage + ImageCollar + ImageGag + ImageBlindfold + ImagePose;