mirror of
https://gitgud.io/BondageProjects/Bondage-College.git
synced 2025-04-25 17:59:34 +00:00
286 lines
No EOL
13 KiB
JavaScript
286 lines
No EOL
13 KiB
JavaScript
var C008_DramaClass_Villain_CurrentStage = 100;
|
|
var C008_DramaClass_Villain_PlayerIsVillain = false;
|
|
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;
|
|
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_CanUnstrap = false;
|
|
var C008_DramaClass_Villain_CanUngag = false;
|
|
var C008_DramaClass_Villain_CanAbuse = false;
|
|
var C008_DramaClass_Villain_CanKiss = false;
|
|
var C008_DramaClass_Villain_CropDone = false;
|
|
var C008_DramaClass_Villain_KissDone = 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;
|
|
var C008_DramaClass_Villain_RavishDone = false;
|
|
var C008_DramaClass_Villain_CanDoSwordDance = false;
|
|
|
|
// 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_CanUnstrap = (ActorHasInventory("Armbinder") && !Common_PlayerRestrained);
|
|
C008_DramaClass_Villain_CanUngag = (C008_DramaClass_Villain_IsGagged && !Common_PlayerRestrained);
|
|
C008_DramaClass_Villain_CanAbuse = (ActorIsRestrained() && !Common_PlayerRestrained);
|
|
C008_DramaClass_Villain_CanKiss = ((ActorIsRestrained() || (ActorGetValue(ActorLove) >= 5)) && !Common_PlayerGagged && !C008_DramaClass_Villain_IsGagged);
|
|
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);
|
|
C008_DramaClass_Villain_CanDoSwordDance = (!C008_DramaClass_Villain_PlayerIsDamsel && PlayerGetSkillLevel("Arts"));
|
|
OverridenIntroImage = "";
|
|
}
|
|
|
|
// Chapter 8 - Villain Load
|
|
function C008_DramaClass_Villain_Load() {
|
|
|
|
// Checks if the player is the villain & set the stage to the current global stage
|
|
C008_DramaClass_Villain_PlayerIsVillain = (C008_DramaClass_JuliaIntro_PlayerRole == "Villain");
|
|
C008_DramaClass_Villain_PlayerIsHeroine = (C008_DramaClass_JuliaIntro_PlayerRole == "Heroine");
|
|
C008_DramaClass_Villain_PlayerIsDamsel = (C008_DramaClass_JuliaIntro_PlayerRole == "Damsel");
|
|
if (C008_DramaClass_Villain_CurrentStage < 300) C008_DramaClass_Villain_CurrentStage = C008_DramaClass_Theater_GlobalStage;
|
|
|
|
// Load the scene parameters
|
|
if (!C008_DramaClass_Villain_PlayerIsVillain) ActorLoad(C008_DramaClass_Theater_Villain, "Theater");
|
|
LoadInteractions();
|
|
LeaveIcon = "Leave";
|
|
LeaveScreen = "Theater";
|
|
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));
|
|
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);
|
|
if ((C008_DramaClass_Villain_CurrentStage != 260) && (C008_DramaClass_Villain_CurrentStage != 290)) DrawInteractionActor();
|
|
}
|
|
|
|
// Chapter 8 - Villain Click
|
|
function C008_DramaClass_Villain_Click() {
|
|
|
|
// Regular and inventory interactions
|
|
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);
|
|
|
|
// 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");
|
|
if (ActorHasInventory("Armbinder")) ActorSetCloth("Underwear");
|
|
C008_DramaClass_Villain_CalcParams();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 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
|
|
function C008_DramaClass_Villain_ForgetLine() {
|
|
if (!C008_DramaClass_Villain_ForgetLineDone) {
|
|
C008_DramaClass_Villain_ForgetLineDone = true;
|
|
C008_DramaClass_Theater_PerfectPlay = false;
|
|
ActorSpecificChangeAttitude("Julia", 0, -1);
|
|
}
|
|
}
|
|
|
|
// Chapter 8 - Villain - If the player surrenders without fighting, she becomes more sub toward everyone
|
|
function C008_DramaClass_Villain_Surrender() {
|
|
ActorSpecificChangeAttitude("Amanda", 0, -2);
|
|
ActorSpecificChangeAttitude("Sarah", 0, -2);
|
|
ActorSpecificChangeAttitude("Julia", 0, -2);
|
|
GameLogSpecificAdd(CurrentChapter, "", "FightSurrender");
|
|
C008_DramaClass_Theater_GlobalStage = C008_DramaClass_Villain_CurrentStage;
|
|
C008_DramaClass_Theater_SetPose();
|
|
}
|
|
|
|
// Chapter 8 - Villain - Prevent the player from leaving
|
|
function C008_DramaClass_Villain_NoLeave() {
|
|
LeaveIcon = "";
|
|
}
|
|
|
|
// Chapter 8 - Villain - Do the fight between Amanda as the villain and Sarah as the heroine
|
|
function C008_DramaClass_Villain_AmandaSarahFight(CheerFactor) {
|
|
|
|
// Victory depends on who's more Domme and the cheering from the player
|
|
if ((ActorSpecificGetValue("Amanda", ActorSubmission) * -1) - (ActorSpecificGetValue("Sarah", ActorSubmission) * -1) + CheerFactor >= 0) {
|
|
|
|
// Amanda the villain wins
|
|
C008_DramaClass_Villain_CurrentStage = 270;
|
|
C008_DramaClass_Theater_GlobalStage = 270;
|
|
OverridenIntroText = GetText("PlayerDamselVillainWin");
|
|
|
|
} else {
|
|
|
|
// Sarah the heroine wins
|
|
C008_DramaClass_Villain_CurrentStage = 240;
|
|
C008_DramaClass_Theater_GlobalStage = 240;
|
|
OverridenIntroText = GetText("PlayerDamselHeroineWin");
|
|
|
|
}
|
|
|
|
// Allows the player to leave once the fight is over
|
|
C008_DramaClass_Theater_SetPose();
|
|
LeaveIcon = "Leave";
|
|
|
|
}
|
|
|
|
// Chapter 8 - Villain - When the villain kisses the damsel, it finishes the play
|
|
function C008_DramaClass_Villain_FinalKiss() {
|
|
GameLogSpecificAdd(CurrentChapter, "", "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() {
|
|
GameLogSpecificAdd(CurrentChapter, "", "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() {
|
|
GameLogSpecificAdd(CurrentChapter, "", "FinalDomme");
|
|
OverridenIntroImage = "../HugImages/VillainAmandaDamselPlayerDomme.jpg";
|
|
ActorSpecificChangeAttitude("Amanda", 1, -2);
|
|
ActorSpecificChangeAttitude("Sarah", -1, 0);
|
|
C008_DramaClass_Theater_GlobalStage = 300;
|
|
C008_DramaClass_Theater_Ending = "Domme";
|
|
}
|
|
|
|
// Chapter 8 - Villain - When the damsel begs to be released
|
|
function C008_DramaClass_Villain_ReleasePlayer() {
|
|
PlayerClothes("Damsel");
|
|
PlayerUnlockInventory("Rope");
|
|
PlayerUnlockInventory("ClothGag");
|
|
C008_DramaClass_Villain_DamselCanInteract = true;
|
|
C008_DramaClass_Villain_DamselCanBeg = false;
|
|
}
|
|
|
|
// Chapter 8 - Villain - When the damsel surrenders and the play ends with two prisoners
|
|
function C008_DramaClass_Villain_FinalTwoPrisoners() {
|
|
GameLogSpecificAdd(CurrentChapter, "", "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 Kiss
|
|
function C008_DramaClass_Villain_Kiss() {
|
|
if (!C008_DramaClass_Villain_KissDone) { GameLogAdd("Kiss"); C008_DramaClass_Villain_KissDone = true; ActorChangeAttitude(1, 0); }
|
|
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); }
|
|
C008_DramaClass_Villain_CalcParams();
|
|
}
|
|
|
|
// Chapter 8 - Villain Spank
|
|
function C008_DramaClass_Villain_Spank() {
|
|
if (!C008_DramaClass_Villain_SpankDone) { C008_DramaClass_Villain_SpankDone = true; ActorChangeAttitude(-1, 0); }
|
|
C008_DramaClass_Villain_CalcParams();
|
|
}
|
|
|
|
// Chapter 8 - Villain Masturbate, Amanda can climax if she's bound with two ropes and gagged
|
|
function C008_DramaClass_Villain_Masturbate() {
|
|
|
|
// Cannot work if the girl is locked in a chastity belt
|
|
if (ActorIsChaste()) { OverridenIntroText = GetText("MasturbateChaste"); return; }
|
|
OverridenIntroImage = "";
|
|
C008_DramaClass_Villain_MastubateCount++;
|
|
|
|
// Amanda will climax if she's properly tied up
|
|
if ((C008_DramaClass_Villain_MastubateCount >= 3) && !C008_DramaClass_Villain_OrgasmDone && ActorIsGagged() && (ActorHasInventory("TwoRopes") || ActorHasInventory("Armbinder"))) {
|
|
C008_DramaClass_Villain_OrgasmDone = true;
|
|
ActorAddOrgasm();
|
|
ActorChangeAttitude(1, 0);
|
|
OverridenIntroText = GetText("Orgasm");
|
|
OverridenIntroImage = "BackgroundOrgasm.jpg";
|
|
}
|
|
|
|
}
|
|
|
|
// Chapter 8 - Villain Ravish
|
|
function C008_DramaClass_Villain_Ravish() {
|
|
if (!C008_DramaClass_Villain_RavishDone) { C008_DramaClass_Villain_RavishDone = true; ActorChangeAttitude(0, -1); }
|
|
if ((ActorGetValue(ActorSubmission) < 5) && !ActorIsRestrained() && !ActorIsGagged() && (PlayerHasInventory("Rope") || PlayerHasInventory("Armbinder") || PlayerHasInventory("Cuffs"))) {
|
|
CurrentTime = CurrentTime + 50000;
|
|
PlayerRandomBondage();
|
|
OverridenIntroText = GetText("Ravish");
|
|
}
|
|
C008_DramaClass_Villain_CalcParams();
|
|
}
|
|
|
|
// Chapter 8 - Sword Dance, a special option to disarm the opponent using art
|
|
function C008_DramaClass_Villain_SwordDance() {
|
|
if (C008_DramaClass_Villain_PlayerIsHeroine) { C008_DramaClass_Villain_CurrentStage = 240; C008_DramaClass_Theater_GlobalStage = 240; }
|
|
if (C008_DramaClass_Villain_PlayerIsVillain) { C008_DramaClass_Villain_CurrentStage = 270; C008_DramaClass_Theater_GlobalStage = 270; }
|
|
GameLogSpecificAdd(CurrentChapter, "", "FightSwordDance");
|
|
ActorSpecificChangeAttitude("Julia", PlayerGetSkillLevel("Arts"), 0);
|
|
ActorSpecificChangeAttitude("Amanda", 0, 1);
|
|
ActorSpecificChangeAttitude("Sarah", 0, 1);
|
|
LeaveIcon = "Leave";
|
|
C008_DramaClass_Theater_SetPose();
|
|
} |