bondage-college-mirr/C010_Revenge/AmandaSarah/Script.js
Ben987 7d10efee10 New fighting system for 2 opponents
New fighting system for 2 opponents
2017-12-13 22:08:01 -05:00

316 lines
No EOL
13 KiB
JavaScript

var C010_Revenge_AmandaSarah_CurrentStage = 0;
var C010_Revenge_AmandaSarah_AmandaVictim = true;
var C010_Revenge_AmandaSarah_AmandaGone = false;
var C010_Revenge_AmandaSarah_SarahGone = false;
var C010_Revenge_AmandaSarah_ItemStolen = false;
var C010_Revenge_AmandaSarah_WasBelted = false;
var C010_Revenge_AmandaSarah_MasturbateCount = 0;
var C010_Revenge_AmandaSarah_IntroText = "";
var C010_Revenge_AmandaSarah_AllowFight = true;
// Chapter 10 - Amanda and Sarah Revenge Load
function C010_Revenge_AmandaSarah_Load() {
// Set the timer limits at 15:15
StartTimer(15.25 * 60 * 60 * 1000, "C010_Revenge", "Outro");
// Load the scene parameters (loads Sarah first in case we are starting directly in chapter 10)
ActorLoad("Sarah", "");
ActorLoad("Amanda", "");
ActorSpecificSetPose("Amanda", "Furious");
ActorSpecificSetPose("Sarah", "Angry");
LoadInteractions();
LeaveIcon = "";
Common_SelfBondageAllowed = false;
C010_Revenge_AmandaSarah_AmandaVictim = (Common_PlayerCrime == "AmandaStranded");
// If we must put the previous text back
if (C010_Revenge_AmandaSarah_IntroText != "") OverridenIntroText = C010_Revenge_AmandaSarah_IntroText;
}
// Chapter 10 - Amanda and Sarah Revenge Run
function C010_Revenge_AmandaSarah_Run() {
// Build the text interactions
BuildInteraction(C010_Revenge_AmandaSarah_CurrentStage);
// Before 100 we don't show the player and the girls can leave, same for 400 or up
if ((C010_Revenge_AmandaSarah_CurrentStage < 100) || (C010_Revenge_AmandaSarah_CurrentStage >= 400)) {
if (!C010_Revenge_AmandaSarah_AmandaGone && !C010_Revenge_AmandaSarah_SarahGone) {
if (CurrentActor == "Amanda") {
DrawActor("Sarah", 800, 50, 0.8);
DrawActor("Amanda", 500, 0, 1.0);
} else {
DrawActor("Amanda", 525, 50, 0.8);
DrawActor("Sarah", 675, 0, 1.0);
}
} else {
if (!C010_Revenge_AmandaSarah_AmandaGone || !C010_Revenge_AmandaSarah_SarahGone) {
if ((C010_Revenge_AmandaSarah_CurrentStage == 55) || (C010_Revenge_AmandaSarah_CurrentStage == 75))
DrawActor(CurrentActor, 690, 20, 0.75);
else
DrawInteractionActor();
}
}
}
// Between 100 and 160, draw the player in the middle of the girls
if ((C010_Revenge_AmandaSarah_CurrentStage >= 100) && (C010_Revenge_AmandaSarah_CurrentStage <= 160)) {
DrawActor("Amanda", 525, 50, 0.8);
DrawActor("Sarah", 800, 50, 0.8);
DrawActor("Player", 600, 0, 1.0);
}
// Between 170 and 190, 210 and 300, Amanda & Sarah are leaning on the lockers
if (((C010_Revenge_AmandaSarah_CurrentStage >= 170) && (C010_Revenge_AmandaSarah_CurrentStage <= 190)) || ((C010_Revenge_AmandaSarah_CurrentStage >= 210) && (C010_Revenge_AmandaSarah_CurrentStage <= 300))) {
ActorSpecificSetPose("Amanda", "LeaningRight");
ActorSpecificSetPose("Sarah", "LeaningLeft");
DrawActor("Amanda", 475, 25, 0.8);
DrawActor("Sarah", 850, 30, 0.8);
}
// Between 170 and 180, draw the player in front of the locker, at 190 or more she's inside
if ((C010_Revenge_AmandaSarah_CurrentStage >= 170) && (C010_Revenge_AmandaSarah_CurrentStage <= 180)) DrawActor("Player", 600, 150, 1.0);
if ((C010_Revenge_AmandaSarah_CurrentStage >= 190) && (C010_Revenge_AmandaSarah_CurrentStage <= 300)) DrawActor("Player", 690, 20, 0.75);
}
// Chapter 10 - Amanda and Sarah Revenge Click
function C010_Revenge_AmandaSarah_Click() {
// Regular interactions
ClickInteraction(C010_Revenge_AmandaSarah_CurrentStage);
// The player can click on herself
var ClickInv = GetClickedInventory();
if (ClickInv == "Player") {
C010_Revenge_AmandaSarah_IntroText = OverridenIntroText;
InventoryClick(ClickInv, CurrentChapter, CurrentScreen);
}
}
// Chapter 10 - Amanda and Sarah Revenge - Switch the focus to another actor
function C010_Revenge_AmandaSarah_SwitchFocus(ActorToFocus) {
if (C010_Revenge_AmandaSarah_CurrentStage < 400) ActorSetPose("Angry");
ActorLoad(ActorToFocus, "");
if (C010_Revenge_AmandaSarah_CurrentStage < 400) ActorSetPose("Furious");
LeaveIcon = "";
}
// Chapter 10 - Amanda and Sarah Revenge - Amanda kneels
function C010_Revenge_AmandaSarah_AmandaKneel() {
ActorSpecificSetPose("Amanda", "Kneeling");
ActorSpecificSetPose("Sarah", "Furious");
CurrentTime = CurrentTime + 50000;
}
// Chapter 10 - Amanda and Sarah Revenge - Sarah kneels
function C010_Revenge_AmandaSarah_SarahKneel() {
ActorSpecificSetPose("Sarah", "Kneeling");
ActorSpecificSetPose("Amanda", "Furious");
CurrentTime = CurrentTime + 50000;
}
// Chapter 10 - Amanda and Sarah Revenge - Amanda leaves
function C010_Revenge_AmandaSarah_AmandaLeave() {
C010_Revenge_AmandaSarah_AmandaGone = true;
if (!C010_Revenge_AmandaSarah_SarahGone) C010_Revenge_AmandaSarah_SwitchFocus("Sarah");
CurrentTime = CurrentTime + 50000;
}
// Chapter 10 - Amanda and Sarah Revenge - Sarah leaves
function C010_Revenge_AmandaSarah_SarahLeave() {
C010_Revenge_AmandaSarah_SarahGone = true;
if (!C010_Revenge_AmandaSarah_AmandaGone) C010_Revenge_AmandaSarah_SwitchFocus("Amanda");
CurrentTime = CurrentTime + 50000;
}
// Chapter 10 - Amanda and Sarah Revenge - Actor calms down (stops the pose)
function C010_Revenge_AmandaSarah_CalmDown(ActorToCalm) {
ActorSpecificSetPose(ActorToCalm, "");
}
// Chapter 10 - Amanda and Sarah Revenge - When the actor enters the locker
function C010_Revenge_AmandaSarah_EnterLocker(ActorInLocker) {
ActorSpecificSetPose(ActorInLocker, "Locker");
CurrentTime = CurrentTime + 50000;
}
// Chapter 10 - Amanda and Sarah Revenge - When the player opens the locker
function C010_Revenge_AmandaSarah_OpenLocker(ActorInLocker) {
if (ActorInLocker == "Amanda") C010_Revenge_AmandaSarah_AmandaGone = false;
if (ActorInLocker == "Sarah") C010_Revenge_AmandaSarah_SarahGone = false;
CurrentTime = CurrentTime + 50000;
}
// Chapter 10 - Amanda and Sarah Revenge - When the player closer the locker
function C010_Revenge_AmandaSarah_CloseLocker(ActorInLocker) {
if (ActorInLocker == "Amanda") C010_Revenge_AmandaSarah_AmandaGone = true;
if (ActorInLocker == "Sarah") C010_Revenge_AmandaSarah_SarahGone = true;
CurrentTime = CurrentTime + 50000;
}
// Chapter 10 - Amanda and Sarah Revenge - Steal Items
function C010_Revenge_AmandaSarah_StealItems() {
// Backup the player inventory
PlayerSaveAllInventory();
PlayerRemoveAllInventory();
C010_Revenge_AmandaSarah_ItemStolen = true;
CurrentTime = CurrentTime + 50000;
// If Sarah and Amanda are not in belt, and they like (+20 total) or submit (+20 total) to the player, we skip the stripping part
if (!ActorSpecificHasInventory("Amanda", "ChastityBelt") && !ActorSpecificHasInventory("Sarah", "ChastityBelt") && ((ActorSpecificGetValue("Amanda", ActorLove) + ActorSpecificGetValue("Sarah", ActorLove) >= 20) || (ActorSpecificGetValue("Amanda", ActorSubmission) + ActorSpecificGetValue("Sarah", ActorSubmission) >= 20))) {
C010_Revenge_AmandaSarah_CurrentStage = 160;
C010_Revenge_AmandaSarah_SwitchFocus("Sarah");
Common_PlayerPose = "BackShy";
OverridenIntroText = GetText("LockerNoStrip");
}
}
// Chapter 10 - Amanda and Sarah Revenge - Recover the stolen items and clothes
function C010_Revenge_AmandaSarah_RecoverItems() {
C010_Revenge_AmandaSarah_ItemStolen = false;
PlayerRestoreAllInventory();
CurrentTime = CurrentTime + 50000;
PlayerClothes("Clothed");
}
// Chapter 10 - Amanda and Sarah Revenge - Starts the fight 2 VS 1
function C010_Revenge_AmandaSarah_StartFight() {
// Sets the fight difficulty
var AmandaDifficulty = "Normal";
var SarahDifficulty = "Easy";
if (ActorSpecificGetValue("Amanda", ActorSubmission) < 0) AmandaDifficulty = "Hard";
if (ActorSpecificGetValue("Sarah", ActorSubmission) < 0) SarahDifficulty = "Normal";
// Launch the double fight
DoubleFightLoad("Amanda", AmandaDifficulty, "Punch", "Sarah", SarahDifficulty, "Punch", "Lockers", "C010_Revenge_AmandaSarah_EndFight");
}
// Chapter 10 - Amanda and Sarah Revenge - When the fight ends
function C010_Revenge_AmandaSarah_EndFight(Victory) {
// Change the girls attitude depending on the victory or defeat
ActorSpecificChangeAttitude("Amanda", -2, Victory ? 2 : -2);
ActorSpecificChangeAttitude("Sarah", -2, Victory ? 2 : -2);
C010_Revenge_AmandaSarah_AllowFight = false;
// On a victory, we jump to stage 400 right away, on a defeat, we show a custom text
if (Victory) {
ActorLoad("Amanda", "");
LeaveIcon = "";
ActorSpecificSetPose("Amanda", "Surrender");
ActorSpecificSetPose("Sarah", "Surrender");
C010_Revenge_AmandaSarah_CurrentStage = 400;
} else OverridenIntroText = GetText("FightDefeat" + C010_Revenge_AmandaSarah_CurrentStage.toString());
}
// Chapter 10 - Amanda and Sarah Revenge - When the player strips
function C010_Revenge_AmandaSarah_PlayerStrip() {
PlayerClothes("Naked");
Common_PlayerPose = "BackShy";
C010_Revenge_AmandaSarah_SwitchFocus("Sarah");
CurrentTime = CurrentTime + 50000;
}
// Chapter 10 - Amanda and Sarah Revenge - Tests if they want the player in a chastity belt or not
function C010_Revenge_AmandaSarah_TestForBelt() {
// If they don't like the player, the play is sub or the player locked a belt on them, she gets a chastity belt
if (ActorSpecificHasInventory("Amanda", "ChastityBelt")) { C010_Revenge_AmandaSarah_CurrentStage = 130; OverridenIntroText = GetText("BeltForAmandaBelt"); return; }
if (ActorSpecificHasInventory("Sarah", "ChastityBelt")) { C010_Revenge_AmandaSarah_CurrentStage = 130; OverridenIntroText = GetText("BeltForSarahBelt"); return; }
if (ActorSpecificGetValue("Amanda", ActorLove) + ActorSpecificGetValue("Sarah", ActorLove) < 0) { C010_Revenge_AmandaSarah_CurrentStage = 130; OverridenIntroText = GetText("BeltForHate"); return; }
if (ActorSpecificGetValue("Amanda", ActorSubmission) + ActorSpecificGetValue("Sarah", ActorSubmission) < 0) { C010_Revenge_AmandaSarah_CurrentStage = 130; OverridenIntroText = GetText("BeltForSub"); return; }
}
// Chapter 10 - Amanda and Sarah Revenge - When the player gets locked in a chastity belt
function C010_Revenge_AmandaSarah_LockBelt() {
PlayerLockInventory("ChastityBelt");
C010_Revenge_AmandaSarah_WasBelted = true;
CurrentTime = CurrentTime + 50000;
}
// Chapter 10 - Amanda and Sarah Revenge - If Sarah needs to do a special comment on chastity belts
function C010_Revenge_AmandaSarah_BeltComment() {
if (ActorSpecificHasInventory("Sarah", "ChastityBelt")) OverridenIntroText = GetText("BeltSarah");
if (ActorSpecificHasInventory("Amanada", "ChastityBelt")) OverridenIntroText = GetText("BeltAmanda");
}
// At 15:10, Amanda & Sarah return to the locker
function C010_Revenge_AmandaSarah_ReturnToLocker() {
// The player can be caught masturbating while she waits
if (Common_PlayerPose == "LockerMasturbate") {
ActorLoad("Sarah", "");
ActorChangeAttitude(1, 0);
OverridenIntroText = GetText("CaughtMasturbating");
C010_Revenge_AmandaSarah_CurrentStage = 210;
} else {
ActorLoad("Amanda", "");
OverridenIntroText = GetText("LearnLesson");
C010_Revenge_AmandaSarah_CurrentStage = 250;
}
LeaveIcon = "";
}
// Chapter 10 - Amanda and Sarah Revenge - Wait in the locker (Spends 2 minutes)
function C010_Revenge_AmandaSarah_WaitLocker() {
Common_PlayerPose = "Locker";
CurrentTime = CurrentTime + 110000;
if (CurrentTime >= 15.16667 * 60 * 60 * 1000) C010_Revenge_AmandaSarah_ReturnToLocker();
}
// Chapter 10 - Amanda and Sarah Revenge - When the player masturbates from inside the locker
function C010_Revenge_AmandaSarah_MasturbateLocker() {
// Under a belt, not much can happen
if (Common_PlayerChaste) {
OverridenIntroText = GetText("CannotMasturbate");
} else {
// If the player has the egg, she can climax multiple times, if not, only 1 time
C010_Revenge_AmandaSarah_MasturbateCount++;
Common_PlayerPose = "LockerMasturbate";
if (C010_Revenge_AmandaSarah_MasturbateCount == 3) OverridenIntroText = GetText("Orgasm");
if ((C010_Revenge_AmandaSarah_MasturbateCount >= 4) && !PlayerHasLockedInventory("VibratingEgg")) OverridenIntroText = GetText("OrgasmEnough");
if ((C010_Revenge_AmandaSarah_MasturbateCount >= 4) && PlayerHasLockedInventory("VibratingEgg")) {
OverridenIntroText = GetText("OrgasmRepeat");
C010_Revenge_AmandaSarah_MasturbateCount = 0;
}
}
// Spends 2 minutes
CurrentTime = CurrentTime + 110000;
if (CurrentTime >= 15.16667 * 60 * 60 * 1000) C010_Revenge_AmandaSarah_ReturnToLocker();
}
// Chapter 10 - Amanda and Sarah Revenge - When the player is caught and stops masturbating
function C010_Revenge_AmandaSarah_StopMasturbating() {
Common_PlayerPose = "Locker";
}
// Chapter 10 - Amanda and Sarah Revenge - Remove the WasBelted dialog option
function C010_Revenge_AmandaSarah_RemoveWasBelted() {
C010_Revenge_AmandaSarah_WasBelted = false;
}
// Chapter 10 - Amanda and Sarah Revenge - End the revenge and flag the end
function C010_Revenge_AmandaSarah_EarlyEnding(EndingType) {
C010_Revenge_EarlyEnding_Type = EndingType;
SetScene(CurrentChapter, "EarlyEnding");
}
// Chapter 10 - Amanda and Sarah Revenge - End the chapter, the player is liberated
function C010_Revenge_AmandaSarah_EndChapter() {
SetScene(CurrentChapter, "Outro");
}