bondage-college-mirr/C012_AfterClass/Amanda/Script.js
gambit 0ed8ec40e8 fix Amanda C012 bug
Fixes the player being able to tie amanda when they shouldn't be able to
on stages between 20 and 610 due to missing lower bound check.
2024-10-11 17:27:48 +03:00

1055 lines
No EOL
44 KiB
JavaScript

var C012_AfterClass_Amanda_CurrentStage = 0;
var C012_AfterClass_Amanda_IntroText = "";
var C012_AfterClass_Amanda_HasEgg = false;
var C012_AfterClass_Amanda_HasBelt = false;
var C012_AfterClass_Amanda_ChatAvail = false;
var C012_AfterClass_Amanda_SpankCount = 0;
var C012_AfterClass_Amanda_IsGagged = false;
var C012_AfterClass_Amanda_IsRoped = false;
var C012_AfterClass_Amanda_IsStrapped = false;
var C012_AfterClass_Amanda_IsRestrained = false;
var C012_AfterClass_Amanda_CanMasturbate = false;
var C012_AfterClass_Amanda_PleasurePlayerAvail = false;
var C012_AfterClass_Amanda_SexAvail = false;
var C012_AfterClass_Amanda_PleasurePlayerCount = 0;
var C012_AfterClass_Amanda_PleasurePlayerSpeed = 0;
var C012_AfterClass_Amanda_MasturbateCount = 0;
var C012_AfterClass_Amanda_AllowPajamas = false;
var C012_AfterClass_Amanda_AllowSexAfterDate = false;
var C012_AfterClass_Amanda_SidneyIsOwner = false;
var C012_AfterClass_Amanda_CanKickOut = false;
var C012_AfterClass_Amanda_HaveCuffs = false;
var C012_AfterClass_Amanda_CuffsGameAvail = false;
var C012_AfterClass_Amanda_DateSarahAvail = false;
var C012_AfterClass_Amanda_DatingSarah = false;
var C012_AfterClass_Amanda_AllowVillain = false;
var C012_AfterClass_Amanda_AllowHeroine = false;
var C012_AfterClass_Amanda_SarahAvail = false;
// Amanda can only check her notes if she's dressed
function C012_AfterClass_Amanda_CheckNotes() {
if (((ActorGetValue(ActorCloth) == "") || (ActorGetValue(ActorCloth) == "Clothed") || (ActorGetValue(ActorCloth) == "Pajamas")) && !ActorHasInventory("Collar") && !ActorIsRestrained() && !ActorIsGagged()) ActorSetPose("CheckNotes");
LeaveIcon = "Leave";
}
// In her shorts, Amanda can have many poses when she talks
function C012_AfterClass_Amanda_SetPose() {
if (((ActorGetValue(ActorCloth) == "") || (ActorGetValue(ActorCloth) == "Clothed")) && !ActorIsRestrained() && !ActorIsGagged()) {
var Love = ActorGetValue(ActorLove);
var Sub = ActorGetValue(ActorSubmission);
if ((Sub <= -10) && (Math.abs(Sub) >= Math.abs(Love))) ActorSetPose("Point");
if ((Sub >= 10) && (Math.abs(Sub) >= Math.abs(Love))) ActorSetPose("Shy");
if ((Love >= 10) && (Math.abs(Love) >= Math.abs(Sub))) ActorSetPose("Love");
if ((Love <= -10) && (Math.abs(Love) >= Math.abs(Sub))) ActorSetPose("Angry");
if (Common_ActorIsOwned) ActorSetPose("Shy");
} else {
if ((ActorGetValue(ActorCloth) == "Naked") && !ActorIsRestrained() && !ActorIsGagged() && (ActorGetValue(ActorSubmission) >= 10)) ActorSetPose("Shy");
if ((ActorGetValue(ActorCloth) == "Pajamas") && !ActorIsRestrained() && !ActorIsGagged() && (ActorGetValue(ActorLove) >= 10)) ActorSetPose("Happy");
else ActorSetPose("");
}
}
// Calculate the scene parameters
function C012_AfterClass_Amanda_CalcParams() {
C012_AfterClass_Amanda_AllowPajamas = GameLogQuery(CurrentChapter, CurrentActor, "AllowPajamas");
C012_AfterClass_Amanda_HasEgg = ActorHasInventory("VibratingEgg");
C012_AfterClass_Amanda_HasBelt = ActorHasInventory("ChastityBelt");
C012_AfterClass_Amanda_IsGagged = ActorIsGagged();
C012_AfterClass_Amanda_IsRoped = (ActorHasInventory("Rope") || ActorHasInventory("TwoRopes") || ActorHasInventory("ThreeRopes"));
C012_AfterClass_Amanda_IsStrapped = ActorHasInventory("Armbinder");
C012_AfterClass_Amanda_IsRestrained = ActorIsRestrained();
C012_AfterClass_Amanda_PleasurePlayerAvail = (!Common_PlayerChaste && !ActorIsGagged() && !ActorIsRestrained() && Common_ActorIsOwned && !GameLogQuery(CurrentChapter, "Player", "NextPossibleOrgasm"));
C012_AfterClass_Amanda_SexAvail = (!Common_PlayerRestrained && !Common_PlayerChaste && !GameLogQuery(CurrentChapter, "Player", "NextPossibleOrgasm") && !GameLogQuery(CurrentChapter, "Amanda", "NextPossibleOrgasm"));
if (GameLogQuery(CurrentChapter, "", "EventBlockChanging") && (C012_AfterClass_Dorm_Guest.indexOf(Common_PlayerOwner) >= 0) && !Common_PlayerNaked) C012_AfterClass_Amanda_SexAvail = false;
C012_AfterClass_Amanda_CanMasturbate = (!Common_PlayerRestrained && !C012_AfterClass_Amanda_HasBelt && (ActorGetValue(ActorCloth) == "Naked"));
C012_AfterClass_Amanda_CanKickOut = (!Common_ActorIsOwner && !Common_ActorIsLover);
C012_AfterClass_Amanda_SidneyIsOwner = (Common_PlayerOwner == "Sidney");
C012_AfterClass_Amanda_HaveCuffs = (PlayerHasInventory("Cuffs") && !Common_PlayerRestrained);
C012_AfterClass_Amanda_CuffsGameAvail = (PlayerHasInventory("Cuffs") && !Common_PlayerRestrained && !ActorIsRestrained() && !C012_AfterClass_Amanda_ChatAvail);
C012_AfterClass_Amanda_DateSarahAvail = (!GameLogQuery(CurrentChapter, CurrentActor, "DatingSarah") && (Common_PlayerLover != "Amanda") && (Common_PlayerLover != "Sarah"));
C012_AfterClass_Amanda_AllowVillain = (GameLogQuery("C008_DramaClass", "Player", "RoleDamsel") || GameLogQuery("C008_DramaClass", "Player", "RoleHeroine"));
C012_AfterClass_Amanda_AllowHeroine = GameLogQuery("C008_DramaClass", "Player", "RoleVillain");
C012_AfterClass_Amanda_SarahAvail = ((C012_AfterClass_Dorm_Guest.indexOf("Sarah") >= 0) && !ActorSpecificIsRestrained("Sarah") && !ActorSpecificIsGagged("Sarah"));
C012_AfterClass_Amanda_DatingSarah = (GameLogQuery(CurrentChapter, "Amanda", "DatingSarah") && (C012_AfterClass_Dorm_Guest.indexOf("Sarah") >= 0));
C012_AfterClass_Amanda_SetPose();
}
// Chapter 12 After Class - Amanda Load
function C012_AfterClass_Amanda_Load() {
// Loads the scene
LoadInteractions();
ActorLoad("Amanda", "Dorm");
Common_PlayerPose = "";
if (C012_AfterClass_Amanda_CurrentStage == 3915) Common_PlayerPose = "HogtiePunishment";
// Amanda's parameters
C012_AfterClass_Amanda_CalcParams();
C012_AfterClass_Amanda_ChatAvail = !GameLogQuery(CurrentChapter, CurrentActor, "ChatDone");
C012_AfterClass_Amanda_SpankCount = 0;
C012_AfterClass_Amanda_SpankMaxCount = 10 - Math.floor(ActorGetValue(ActorLove) / 7);
if (C012_AfterClass_Amanda_SpankMaxCount < 6) C012_AfterClass_Amanda_SpankMaxCount = 6;
if (C012_AfterClass_Amanda_SpankMaxCount > 12) C012_AfterClass_Amanda_SpankMaxCount = 12;
// Loads the previous text if needed
if (C012_AfterClass_Amanda_IntroText != "") {
OverridenIntroText = C012_AfterClass_Amanda_IntroText;
C012_AfterClass_Amanda_IntroText = "";
} else {
// If the player is grounded
if (GameLogQuery(CurrentChapter, "", "EventGrounded")) {
// Skip to the punishment end phase, no talking while being grounded
C012_AfterClass_Amanda_AllowLeave();
C012_AfterClass_Amanda_CurrentStage = 3999;
C012_AfterClass_Dorm_SetPunishmentPose();
} else {
// Amanda will talk the player if she's dating Sarah
if ((C012_AfterClass_Amanda_CurrentStage == 0) && !GameLogQuery(CurrentChapter, CurrentActor, "DatingSarahChat") && (Common_PlayerLover == "Sarah") && !Common_PlayerRestrained && !Common_PlayerGagged && !ActorIsGagged() && !ActorIsRestrained()) {
LeaveIcon = "";
if ((ActorGetValue(ActorCloth) == "") || (ActorGetValue(ActorCloth) == "Clothed")) ActorSetPose("Angry");
else ActorSetPose("");
C012_AfterClass_Amanda_CurrentStage = 400;
GameLogAdd("DatingSarahChat");
}
// If there's a crossover between two actors
if ((C012_AfterClass_Amanda_CurrentStage == 0) && !GameLogQuery(CurrentChapter, CurrentActor, "MetSidney") && (C012_AfterClass_Dorm_Guest.indexOf("Sidney") >= 0) && !Common_PlayerRestrained && !Common_PlayerGagged && !ActorIsGagged() && !ActorIsRestrained()) {
LeaveIcon = "";
if ((ActorGetValue(ActorCloth) == "") || (ActorGetValue(ActorCloth) == "Clothed")) ActorSetPose("Angry");
else ActorSetPose("");
C012_AfterClass_Amanda_CurrentStage = 700;
GameLogAdd("MetSidney");
}
// A random event can be triggered when Amanda is clicked on
if (C012_AfterClass_Amanda_CurrentStage == 0)
if ((CurrentText != null) && (Math.floor(Math.random() * 8) == 0)) {
// Generic Domme event
if (!GameLogQuery(CurrentChapter, CurrentActor, "EventGeneric") && Common_ActorIsOwner)
C012_AfterClass_Amanda_RandomAmandaDommeEvent();
// Amanda might ask the player to use the bed with Sarah
if (C012_AfterClass_Amanda_DatingSarah && (C012_AfterClass_Amanda_CurrentStage == 0) && !ActorSpecificIsRestrained("Amanda") && !ActorSpecificIsRestrained("Sarah") && !ActorSpecificIsGagged("Amanda") && !ActorSpecificIsGagged("Sarah") && !GameLogQuery(CurrentChapter, "Amanda", "NextPossibleOrgasm") && !GameLogQuery(CurrentChapter, "Sarah", "NextPossibleOrgasm")) {
C012_AfterClass_Amanda_CurrentStage = 823;
LeaveIcon = "";
}
// Unlocking Pajamas event after 22
if (!GameLogQuery(CurrentChapter, CurrentActor, "AllowPajamas") && (CurrentTime >= 22 * 60 * 60 * 1000) && (C012_AfterClass_Amanda_CurrentStage == 0) && !Common_PlayerGagged && !Common_PlayerRestrained && !ActorIsRestrained() && !ActorIsGagged()) {
C012_AfterClass_Amanda_CurrentStage = 660;
LeaveIcon = "";
}
// Random Pajamas query
if (GameLogQuery(CurrentChapter, CurrentActor, "AllowPajamas") && (C012_AfterClass_Amanda_CurrentStage == 0) && Common_ActorIsOwner && !ActorIsRestrained() && !ActorIsGagged() && (ActorGetValue(ActorCloth) != "Pajamas")) {
C012_AfterClass_Amanda_CurrentStage = 670;
LeaveIcon = "";
}
}
}
}
}
// Chapter 12 After Class - Amanda Run
function C012_AfterClass_Amanda_Run() {
// Build the regular interactions
BuildInteraction(C012_AfterClass_Amanda_CurrentStage);
// Draw the watching actors for ceremonies
if (((C012_AfterClass_Amanda_CurrentStage >= 392) && (C012_AfterClass_Amanda_CurrentStage < 400)) || ((C012_AfterClass_Amanda_CurrentStage >= 293) && (C012_AfterClass_Amanda_CurrentStage < 300))) C012_AfterClass_Dorm_DrawOtherActors();
// Draw the actor alone or with the player depending on the stage
if ((C012_AfterClass_Amanda_CurrentStage < 800) || (C012_AfterClass_Amanda_CurrentStage >= 900)) {
if ((C012_AfterClass_Amanda_CurrentStage != 3932) && (C012_AfterClass_Amanda_CurrentStage != 635) && (C012_AfterClass_Amanda_CurrentStage != 636) && (C012_AfterClass_Amanda_CurrentStage != 791) && (C012_AfterClass_Amanda_CurrentStage != 194)) {
if (((C012_AfterClass_Amanda_CurrentStage >= 3090) && (C012_AfterClass_Amanda_CurrentStage <= 3099)) || ((C012_AfterClass_Amanda_CurrentStage >= 3901) && (C012_AfterClass_Amanda_CurrentStage <= 3999))) {
DrawActor("Player", 475, 0, 1);
DrawActor(CurrentActor, 750, 0, 1);
} else {
DrawInteractionActor();
if ((C012_AfterClass_Amanda_CurrentStage >= 392) && (C012_AfterClass_Amanda_CurrentStage < 400)) DrawActor("Player", 600, 100, 1);
}
}
} else {
DrawActor("Sarah", 475, 0, 1);
DrawActor("Amanda", 700, 0, 1);
}
}
// Chapter 12 After Class - Amanda Click
function C012_AfterClass_Amanda_Click() {
// Regular interactions
ClickInteraction(C012_AfterClass_Amanda_CurrentStage);
// The player can click on herself in most stages
var ClickInv = GetClickedInventory();
if ((ClickInv == "Player") && (LeaveIcon == "Leave")) {
C012_AfterClass_Amanda_IntroText = OverridenIntroText;
InventoryClick(ClickInv, CurrentChapter, CurrentScreen);
}
// Amanda can be restrained on stage 0 and 10
if ((C012_AfterClass_Amanda_CurrentStage <= 10) && (ClickInv != "") && (ClickInv != "Player") && !Common_PlayerRestrained) {
// Amanda becomes more submissive from the crop
if (ClickInv == "Crop") {
if (ActorIsGagged()) OverridenIntroText = GetText("CropWhileGagged");
else if (Common_ActorIsOwned) OverridenIntroText = GetText("CropFromMistress");
else OverridenIntroText = GetText("Crop");
if (!GameLogQuery(CurrentChapter, CurrentActor, "CropDone")) {
ActorChangeAttitude(0, 1);
GameLogAdd("CropDone");
}
CurrentTime = CurrentTime + 50000;
return;
}
// Amanda will turn the tables on the player if -5 submission or less
if ((ActorGetValue(ActorSubmission) <= -5) && !ActorIsRestrained() && !ActorIsGagged() && (ClickInv != "CuffsKey")) {
PlayerRandomRestrain();
if (Common_PlayerRestrained) {
PlayerRandomGag();
if (Common_ActorIsOwner) {
EventSetGenericTimer();
OverridenIntroText = GetText("TurnTablesFromMistress");
}
else OverridenIntroText = GetText("TurnTables");
C012_AfterClass_Amanda_CalcParams();
CurrentTime = CurrentTime + 50000;
} else OverridenIntroText = GetText("RefuseBondage");
return;
}
// Amanda will refuse any bondage if 4 submission or less
if ((ActorGetValue(ActorSubmission) < 5) && !ActorIsRestrained() && !ActorIsGagged() && (ClickInv != "CuffsKey")) {
OverridenIntroText = GetText("RefuseBondage");
return;
}
// Amanda can only wear the belt if she's naked
if (!ActorIsChaste() && (ActorGetValue(ActorCloth) != "Naked") && (ClickInv == "ChastityBelt")) {
OverridenIntroText = GetText("NakedForBelt");
return;
}
// A second rope can be applied if Amanda isn't fully clothed
if ((ActorGetValue(ActorCloth) != "Naked") && (ActorGetValue(ActorCloth) != "Underwear") && (ClickInv == "Rope") && (ActorHasInventory("Rope"))) {
OverridenIntroText = GetText("StripForSecondRope");
return;
}
// Cannot use rope or armbinder in the school play costumes
if (((ActorGetValue(ActorCloth) == "Villain") || (ActorGetValue(ActorCloth) == "Heroine") || (ActorGetValue(ActorCloth) == "Damsel")) && ((ClickInv == "Rope") || (ClickInv == "Armbinder"))) {
OverridenIntroText = GetText("NoRestrainInCostume");
return;
}
// Apply the clicked restrain
ActorApplyRestrain(ClickInv);
C012_AfterClass_Amanda_CalcParams();
}
// Amanda can be restrained to pleasure the player on stage 633
if ((C012_AfterClass_Amanda_CurrentStage >= 630) && (C012_AfterClass_Amanda_CurrentStage <= 633) && (ClickInv != "") && (ClickInv != "Player") && !Common_PlayerRestrained && !ActorIsRestrained()) {
if ((ClickInv == "Rope") || (ClickInv == "Cuffs") || (ClickInv == "Armbinder")) {
ActorApplyRestrain(ClickInv);
C012_AfterClass_Amanda_CalcParams();
C012_AfterClass_Amanda_CurrentStage = 634;
}
}
}
// Chapter 12 After Class - Amanda can make love with the player if (Love + seduction * 2) >= 12 or >= 25 on the next time or Amanda is the player girlfriend/submissive
function C012_AfterClass_Amanda_GaggedAnswer() {
if (ActorIsGagged()) {
var GagTalk = Math.floor(Math.random() * 8) + 1;
OverridenIntroText = GetText("GaggedAnswer" + GagTalk.toString());
}
}
// Chapter 12 After Class - Amanda can make love with the player if (Love + seduction * 2) >= 12 on the next time or Amanda is the player girlfriend/submissive
function C012_AfterClass_Amanda_TestSex() {
if (!ActorIsGagged()) {
if (!GameLogQuery(CurrentChapter, "Amanda", "DatingSarah") || Common_ActorIsOwned) {
if (!ActorIsRestrained()) {
if (!ActorIsChaste()) {
var LoveChance = ActorGetValue(ActorLove) + PlayerGetSkillLevel("Seduction") * 2;
if ((LoveChance >= 12) || Common_ActorIsLover || Common_ActorIsOwned) {
C012_AfterClass_Amanda_CurrentStage = 650;
OverridenIntroText = "";
}
} else OverridenIntroText = GetText("UnlockBeltBeforeSex");
} else OverridenIntroText = GetText("ReleaseBeforeTalk");
} else OverridenIntroText = GetText("RefuseSexForLover");
} else C012_AfterClass_Amanda_GaggedAnswer();
}
// Chapter 12 After Class - Amanda can be dated at +20 love
function C012_AfterClass_Amanda_TestLove() {
if (!ActorIsGagged()) {
if (!ActorIsRestrained() && !Common_PlayerRestrained) {
if (!Common_PlayerNaked && (ActorGetValue(ActorCloth) != "Naked")) {
if (ActorGetValue(ActorLove) >= 20) {
ActorSetPose("");
C012_AfterClass_Amanda_CurrentStage = 100;
OverridenIntroText = "";
}
} else OverridenIntroText = GetText("CantDateWhileNaked");
} else OverridenIntroText = GetText("CantDateWhileRestrained");
} else C012_AfterClass_Amanda_GaggedAnswer();
}
// Chapter 12 After Class - Amanda can be dominated at +20 submission
function C012_AfterClass_Amanda_TestDomme() {
if (!ActorIsGagged()) {
if (!Common_ActorIsOwned) {
if (PlayerHasInventory("Collar")) {
if (ActorGetValue(ActorSubmission) >= 20) {
if (!GameLogQuery(CurrentChapter, CurrentActor, "EnslaveDone")) {
C012_AfterClass_Amanda_CurrentStage = 200;
OverridenIntroText = "";
LeaveIcon = "";
GameLogAdd("EnslaveDone");
} else OverridenIntroText = GetText("EnslaveAlreadyTried");
}
} else OverridenIntroText = GetText("CollarToEnslave");
} else OverridenIntroText = GetText("SubEnjoyBondage");
} else C012_AfterClass_Amanda_GaggedAnswer();
}
// Chapter 12 After Class - Amanda can become the player Mistress at -20 submission
function C012_AfterClass_Amanda_TestSub() {
if (!ActorIsGagged()) {
if (ActorGetValue(ActorSubmission) <= -20) {
C012_AfterClass_Amanda_CurrentStage = 300;
OverridenIntroText = "";
}
} else C012_AfterClass_Amanda_GaggedAnswer();
}
// Chapter 12 After Class - Tests if the player can submit (no restraints first)
function C012_AfterClass_Amanda_TestSubmit() {
if (Common_PlayerOwner != "") {
OverridenIntroText = GetText("AlreadyOwned");
} else {
if (ActorIsRestrained()) {
OverridenIntroText = GetText("UnrestrainFirst");
} else {
if (ActorIsChaste()) {
OverridenIntroText = GetText("UnchasteFirst");
} else {
if (PlayerHasLockedInventory("Collar")) {
OverridenIntroText = GetText("PlayerUncollarFirst");
} else {
if (Common_PlayerRestrained) {
OverridenIntroText = GetText("PlayerUnrestrainFirst");
} else {
C012_AfterClass_Amanda_CurrentStage = 330;
}
}
}
}
}
}
// Chapter 12 After Class - The player can strip for Amanda
function C012_AfterClass_Amanda_PlayerStrip() {
ActorSetPose("");
PlayerClothes("Naked");
Common_PlayerPose = "BackShy";
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - The player can strip for Amanda
function C012_AfterClass_Amanda_SetPlayerPose(NewPose) {
Common_PlayerPose = NewPose;
}
// Chapter 12 After Class - When the player gets collared
function C012_AfterClass_Amanda_PlayerCollared() {
LeaveIcon = "";
Common_PlayerOwner = CurrentActor;
Common_ActorIsOwner = true;
PlayerLockInventory("Collar");
CurrentTime = CurrentTime + 50000;
EventSetGenericTimer();
}
// Chapter 12 After Class - When the player gets collared
function C012_AfterClass_Amanda_PlayerStandUp() {
Common_PlayerPose = "";
if ((ActorGetValue(ActorCloth) != "") && (ActorGetValue(ActorCloth) != "Clothed")) {
ActorSetCloth("");
OverridenIntroText = GetText("ChangeAfterCollaring");
}
LeaveIcon = "Leave";
}
// Chapter 12 After Class - The player can trigger a random Domme event from Amanda (3000 events)
function C012_AfterClass_Amanda_RandomAmandaDommeEvent() {
// Makes sure the next random event can be triggered
if (!GameLogQuery(CurrentChapter, CurrentActor, "EventGeneric")) {
// 1 event per 15 minutes maximum, the event is random and drawn from the Mistress pool
EventSetGenericTimer();
C012_AfterClass_Amanda_CurrentStage = EventRandomPlayerSubmissive();
}
// If Amanda doesn't respond, she checks her notes
if (C012_AfterClass_Amanda_CurrentStage == 0) C012_AfterClass_Amanda_CheckNotes();
}
// Chapter 12 After Class - As a Domme, Amanda can force the player to change
function C012_AfterClass_Amanda_ForceChangePlayer(NewCloth) {
PlayerClothes(NewCloth);
if (C012_AfterClass_Amanda_CurrentStage < 3900) ActorSetPose("Happy");
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - As a Domme, Amanda can force the player into some random bondage
function C012_AfterClass_Amanda_ForceRandomBondage(BondageType) {
if ((BondageType == "Full") || (BondageType == "Hug") || (BondageType == "Gag")) {
PlayerRandomGag();
if (!Common_PlayerGagged && (BondageType == "Gag")) OverridenIntroText = GetText("CantFindRestrain" + ((BondageType == "Hug") ? "ForHug" : ""));
}
if ((BondageType == "Full") || (BondageType == "Hug") || (BondageType == "Restrain")) {
PlayerRandomRestrain();
if (!Common_PlayerRestrained) OverridenIntroText = GetText("CantFindRestrain" + ((BondageType == "Hug") ? "ForHug" : ""));
}
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - Amanda can unbind the player on some events
function C012_AfterClass_Amanda_TestUnbind() {
// Bound and gagged, there's not much she can do
if (ActorIsGagged() && ActorIsRestrained()) {
C012_AfterClass_Amanda_GaggedAnswer();
}
else {
// Before the next event time, she will always refuse (skip is owned)
if (!GameLogQuery(CurrentChapter, CurrentActor, "EventGeneric") || Common_ActorIsOwned) {
// Check if the event succeeds randomly (skip is owned)
if (EventRandomChance("Love") || Common_ActorIsOwned) {
// Can only release if not restrained
if (!ActorIsRestrained()) {
if (ActorIsGagged()) OverridenIntroText = GetText("ReleasePlayerGagged");
else OverridenIntroText = GetText("ReleasePlayer");
PlayerReleaseBondage();
CurrentTime = CurrentTime + 50000;
} else OverridenIntroText = GetText("CannotReleasePlayer");
} else EventSetGenericTimer();
}
}
}
// Chapter 12 After Class - When the player disobey, she can get punished
function C012_AfterClass_Amanda_DoActivity(ActivityType, Enjoyment, BonusStage) {
// Launch the activity, some can have a bonus stage
C012_AfterClass_Amanda_CurrentStage = EventDoActivity(ActivityType, Enjoyment, C012_AfterClass_Amanda_CurrentStage, 3290, BonusStage);
}
// Chapter 12 After Class - When the player disobey, she can get punished
function C012_AfterClass_Amanda_TestPunish() {
// The more love, the less chances the player will be punished
if (EventRandomChance("Love")) {
C012_AfterClass_Amanda_CheckNotes();
} else {
ActorSetPose("Angry");
OverridenIntroText = "";
C012_AfterClass_Amanda_CurrentStage = 3900;
}
}
// Chapter 12 After Class - Allows the player to leave the scene
function C012_AfterClass_Amanda_AllowLeave() {
C012_AfterClass_Amanda_CheckNotes();
}
// Chapter 12 After Class - Amanda can confiscate the player keys
function C012_AfterClass_Amanda_ConfiscateKeys() {
PlayerRemoveInventory("CuffsKey", 99);
GameLogAdd("HasCuffsKey");
C012_AfterClass_Amanda_AllowLeave();
}
// Chapter 12 After Class - Amanda can confiscate the player crop(s)
function C012_AfterClass_Amanda_ConfiscateCrop() {
PlayerRemoveInventory("Crop", 99);
GameLogAdd("HasCrop");
C012_AfterClass_Amanda_AllowLeave();
}
// Chapter 12 After Class - Amanda can confiscate the player keys
function C012_AfterClass_Amanda_BegForOrgasm() {
// If the player begs for it, Amanda will do it randomly based on love, if not it's based on hate
if (EventRandomChance("Love")) {
ActorAddOrgasm();
EventLogEnd();
OverridenIntroText = GetText("MasturbatePlayerOrgasm");
C012_AfterClass_Amanda_CurrentStage = 3223;
}
}
// Chapter 12 After Class - Amanda will tell the player if she can change clothes or not
function C012_AfterClass_Amanda_IsChangingBlocked() {
if (GameLogQuery(CurrentChapter, CurrentActor, "EventBlockChanging"))
OverridenIntroText = GetText("ChangingIsBlocked");
}
// Chapter 12 After Class - Amanda will tell the player if she can change clothes or not
function C012_AfterClass_Amanda_TestBlockChanging() {
// The less love, the higher the chances Amanda will block changing
if (EventRandomChance("Hate")) {
OverridenIntroText = "";
GameLogAddTimer("EventBlockChanging", CurrentTime + 1000000 + Math.floor(Math.random() * 10000000));
C012_AfterClass_Amanda_CurrentStage = 3091;
} else C012_AfterClass_Amanda_AllowLeave();
}
// Chapter 12 After Class - Amanda will tell the player if she can change clothes or not
function C012_AfterClass_Amanda_ReleaseBeforePunish() {
ActorSetPose("ReadyToPunish");
if (Common_PlayerRestrained || Common_PlayerGagged) {
if (Common_PlayerNaked) {
C012_AfterClass_Amanda_CurrentStage = 3903;
OverridenIntroText = GetText("ReleaseBeforePunishAlreadyNaked");
}
else OverridenIntroText = GetText("ReleaseBeforePunishNotNaked");
PlayerReleaseBondage();
CurrentTime = CurrentTime + 50000;
} else {
if (Common_PlayerNaked) {
C012_AfterClass_Amanda_CurrentStage = 3903;
OverridenIntroText = GetText("PunishSinceNaked");
}
}
}
// Chapter 12 After Class - Set Amanda Pose
function C012_AfterClass_Amanda_ActorSetPose(NewPose) {
ActorSetPose(NewPose);
}
// Chapter 12 After Class - Starts the punishment
function C012_AfterClass_Amanda_StartPunishment() {
C012_AfterClass_Amanda_CurrentStage = EventRandomPlayerPunishment();
}
// Chapter 12 After Class - Amanda can tie up the player with her own rope
function C012_AfterClass_Amanda_RopePlayer() {
PlayerLockInventory("Rope");
PlayerRemoveInventory("Rope", 1);
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - Amanda can gag the player with her stuff
function C012_AfterClass_Amanda_GagPlayer() {
PlayerRandomGag();
if (!Common_PlayerGagged) PlayerLockInventory("ClothGag");
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - Amanda can use the egg on the player
function C012_AfterClass_Amanda_InsertEgg() {
PlayerLockInventory("VibratingEgg");
PlayerRemoveInventory("VibratingEgg", 1);
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - Ends the punishment and sets the duration between 30 minutes and 1.5 hours
function C012_AfterClass_Amanda_EndPunishment(PunishmentType) {
if (PunishmentType == "SleepBoundAndGagged") GameLogAdd("Event" + PunishmentType);
else GameLogAddTimer("Event" + PunishmentType, CurrentTime + 1800000 + Math.floor(Math.random() * 3600000));
EventSetGenericTimer();
C012_AfterClass_Amanda_AllowLeave();
}
// Chapter 12 After Class - Ends any bondage and resets the pose
function C012_AfterClass_Amanda_ReleasePlayer() {
Common_PlayerPose = "";
EventSetGenericTimer();
PlayerReleaseBondage();
C012_AfterClass_Amanda_AllowLeave();
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - Flags the chat as done and doesn't allow the player to leave
function C012_AfterClass_Amanda_StartChat() {
if (!ActorIsGagged()) {
ActorSetPose("");
GameLogAdd("ChatDone");
LeaveIcon = "";
C012_AfterClass_Amanda_ChatAvail = false;
} else C012_AfterClass_Amanda_GaggedAnswer();
}
// Chapter 12 After Class - Ends the chat with Amanda
function C012_AfterClass_Amanda_EndChat() {
if (ActorGetValue(ActorPose) == "Kneel") ActorSetPose("Shy");
LeaveIcon = "Leave";
}
// Chapter 12 After Class - When Amanda locks the belt on the player
function C012_AfterClass_Amanda_LockChastityBelt() {
PlayerLockInventory("ChastityBelt");
PlayerRemoveInventory("ChastityBelt", 1);
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - When Amanda spanks the player
function C012_AfterClass_Amanda_AmandaSpankPlayer() {
C012_AfterClass_Amanda_SpankCount++;
if (C012_AfterClass_Amanda_SpankCount > C012_AfterClass_Amanda_SpankMaxCount) {
C012_AfterClass_Amanda_CurrentStage = 3933;
OverridenIntroText = "";
OverridenIntroImage = "";
} else {
OverridenIntroText = GetText("SpankPlayer" + C012_AfterClass_Amanda_SpankCount.toString());
var Img = (C012_AfterClass_Amanda_SpankCount % 2).toString();
if ((C012_AfterClass_Amanda_SpankCount < 5) && !Common_PlayerChaste) OverridenIntroImage = "AmandaSpankPlayer" + Img + ".jpg";
if ((C012_AfterClass_Amanda_SpankCount >= 5) && !Common_PlayerChaste) OverridenIntroImage = "AmandaSpankPlayerRedButt" + Img + ".jpg";
if ((C012_AfterClass_Amanda_SpankCount < 5) && Common_PlayerChaste) OverridenIntroImage = "AmandaSpankPlayerChastity" + Img + ".jpg";
if ((C012_AfterClass_Amanda_SpankCount >= 5) && Common_PlayerChaste) OverridenIntroImage = "AmandaSpankPlayerChastityRedButt" + Img + ".jpg";
}
}
// Chapter 12 After Class - The player can ask Amanda to change clothes
function C012_AfterClass_Amanda_TestChange() {
if (!ActorIsRestrained()) {
if ((ActorGetValue(ActorLove) >= 10) || (ActorGetValue(ActorSubmission) >= 10) || Common_ActorIsOwned || Common_ActorIsLover) {
if (Common_ActorIsOwned) OverridenIntroText = GetText("AcceptChangeFromMistress");
else
if (Common_ActorIsLover) OverridenIntroText = GetText("AcceptChangeFromLover");
else OverridenIntroText = GetText("AcceptChange");
C012_AfterClass_Amanda_CurrentStage = 600;
}
C012_AfterClass_Amanda_GaggedAnswer();
} else OverridenIntroText = GetText("CannotActWhileRestrained");
}
// Chapter 12 After Class - Amanda can change clothes when the player asks for it
function C012_AfterClass_Amanda_ForceChangeActor(NewCloth) {
if (ActorGetValue(ActorCloth) != NewCloth) {
ActorSetCloth(NewCloth);
C012_AfterClass_Amanda_CalcParams();
CurrentTime = CurrentTime + 50000;
} else OverridenIntroText = GetText("NoNeedToChange");
C012_AfterClass_Amanda_GaggedAnswer();
}
// Chapter 12 After Class - Check if Amanda wants to be collared, 5 counts are required
function C012_AfterClass_Amanda_TestEnslaveAmanda() {
if (ActorIsRestrained()) C012_AfterClass_Amanda_CurrentStage = 285;
else if (ActorGetValue(ActorCloth) == "Naked") { C012_AfterClass_Amanda_CurrentStage = 291; ActorSetPose("Shy"); }
else C012_AfterClass_Amanda_CurrentStage = 290;
OverridenIntroText = GetText("AcceptCollar");
}
// Chapter 12 After Class - When the player gives up on enslaving Amanda
function C012_AfterClass_Amanda_EndEnslaveAmanda() {
C012_AfterClass_Amanda_CalcParams();
LeaveIcon = "Leave";
}
// Chapter 12 After Class - Release Amanda from any restrain before her collaring
function C012_AfterClass_Amanda_EnslaveRelease() {
ActorUntie();
if (ActorHasInventory("Cuffs")) { PlayerAddInventory("Cuffs", 1); ActorRemoveInventory("Cuffs"); }
if (ActorGetValue(ActorCloth) == "Naked") {
C012_AfterClass_Amanda_CurrentStage = 293;
ActorSetPose("Shy");
}
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - Amanda gets naked for her collaring
function C012_AfterClass_Amanda_EnslaveStrip() {
ActorSetCloth("Naked");
ActorSetPose("Shy");
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - Amanda can be ungagged
function C012_AfterClass_Amanda_Ungag() {
ActorUngag();
C012_AfterClass_Amanda_CalcParams();
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - Amanda can be untied
function C012_AfterClass_Amanda_Untie() {
ActorUntie();
C012_AfterClass_Amanda_CalcParams();
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - When Amanda gets collared
function C012_AfterClass_Amanda_LockCollarAmanda() {
ActorSetOwner("Player");
PlayerRemoveInventory("Collar", 1);
C012_AfterClass_Amanda_CalcParams();
ActorSetPose("Kneel");
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - The player can decide how Amanda will spend her evening
function C012_AfterClass_Amanda_SetCurfew(CurfewType) {
GameLogAddTimer("CurfewStay", -1);
GameLogAddTimer("Curfew22", -1);
GameLogAddTimer("Curfew24", -1);
GameLogAddTimer("CurfewNone", -1);
GameLogAdd("Curfew" + CurfewType);
}
// Chapter 12 After Class - The player can decide how Amanda will spend her evening
function C012_AfterClass_Amanda_BackToDorm() {
SetScene(CurrentChapter, "Dorm");
}
// Chapter 12 After Class - Starts the pleasure player scene
function C012_AfterClass_Amanda_TestPleasurePlayer() {
LeaveIcon = "";
if (ActorGetValue(ActorCloth) == "Naked") C012_AfterClass_Amanda_CurrentStage = 631;
}
// Chapter 12 After Class - When Amanda starts pleasuring the player (starts to count at 2 with a vibrating egg)
function C012_AfterClass_Amanda_StartPleasurePlayer() {
PlayerClothes("Naked");
if (ActorHasInventory("Rope")) OverridenIntroImage = "AmandaRopePleasurePlayer.jpg";
else if (ActorHasInventory("Cuffs")) OverridenIntroImage = "AmandaCuffsPleasurePlayer.jpg";
else if (ActorHasInventory("Armbinder")) OverridenIntroImage = "AmandaArmbinderPleasurePlayer.jpg";
else OverridenIntroImage = "AmandaPleasurePlayer.jpg";
CurrentTime = CurrentTime + 50000;
if (PlayerHasLockedInventory("VibratingEgg")) C012_AfterClass_Amanda_PleasurePlayerCount = 2;
else C012_AfterClass_Amanda_PleasurePlayerCount = 0;
C012_AfterClass_Amanda_PleasurePlayerSpeed = 0;
}
// Chapter 12 After Class - When Amanda pleasures the player
function C012_AfterClass_Amanda_PleasurePlayer() {
// The more it progresses, the faster Amanda must go
CurrentTime = CurrentTime + 50000;
var StartCount = C012_AfterClass_Amanda_PleasurePlayerCount;
if ((C012_AfterClass_Amanda_PleasurePlayerCount >= 0) && (C012_AfterClass_Amanda_PleasurePlayerCount <= 1) && (C012_AfterClass_Amanda_PleasurePlayerSpeed == 0)) C012_AfterClass_Amanda_PleasurePlayerCount++;
if ((C012_AfterClass_Amanda_PleasurePlayerCount >= 2) && (C012_AfterClass_Amanda_PleasurePlayerCount <= 3) && (C012_AfterClass_Amanda_PleasurePlayerSpeed == 1)) C012_AfterClass_Amanda_PleasurePlayerCount++;
if ((C012_AfterClass_Amanda_PleasurePlayerCount >= 4) && (C012_AfterClass_Amanda_PleasurePlayerCount <= 9) && (C012_AfterClass_Amanda_PleasurePlayerSpeed == 2)) C012_AfterClass_Amanda_PleasurePlayerCount++;
// At 6 counts, an orgasm is achieved, the next one will be slower
if (C012_AfterClass_Amanda_PleasurePlayerCount >= 6) {
OverridenIntroText = GetText("OrgasmFromAmandaPleasure");
ActorAddOrgasm();
GameLogSpecificAddTimer(CurrentChapter, "Player", "NextPossibleOrgasm", PlayerHasLockedInventory("VibratingEgg") ? CurrentTime + 1800000 : CurrentTime + 3600000);
if (PlayerHasLockedInventory("Collar")) OverridenIntroImage = "PlayerCollarCloseUpOrgasm.jpg";
else OverridenIntroImage = "PlayerCloseUpOrgasm.jpg";
C012_AfterClass_Amanda_CurrentStage = 636;
C012_AfterClass_Amanda_PleasurePlayerCount = 0;
C012_AfterClass_Amanda_PleasurePlayerSpeed = 0;
} else {
if (StartCount == C012_AfterClass_Amanda_PleasurePlayerCount) OverridenIntroText = GetText("PleasureFromAmandaNoProgress");
}
}
// Chapter 12 After Class - When Amanda pleasures the player and is forced in a new position or speed
function C012_AfterClass_Amanda_PleasurePlayerSetSpeed(SpeedFactor) {
C012_AfterClass_Amanda_PleasurePlayerSpeed = C012_AfterClass_Amanda_PleasurePlayerSpeed + SpeedFactor;
if (C012_AfterClass_Amanda_PleasurePlayerSpeed < 0) C012_AfterClass_Amanda_PleasurePlayerSpeed = 0;
if (C012_AfterClass_Amanda_PleasurePlayerSpeed > 2) C012_AfterClass_Amanda_PleasurePlayerSpeed = 2;
}
// Chapter 12 After Class - When Amanda stops pleasuring the player
function C012_AfterClass_Amanda_StopPleasureFromAmanda() {
OverridenIntroImage = "";
}
// Chapter 12 After Class - When Amanda pleasures for the player ends
function C012_AfterClass_Amanda_EndPleasureFromAmanda(LoveFactor, SubFactor) {
if (!GameLogQuery(CurrentChapter, CurrentActor, "PleasureFromAmanda")) {
GameLogAdd("PleasureFromAmanda");
ActorChangeAttitude(LoveFactor, SubFactor);
}
C012_AfterClass_Amanda_EndEnslaveAmanda();
}
// Chapter 12 After Class - When the player kisses Amanda
function C012_AfterClass_Amanda_Kiss() {
CurrentTime = CurrentTime + 50000;
if (Common_ActorIsOwner) OverridenIntroText = GetText("KissAmandaOwner");
else if (C012_AfterClass_Amanda_IsGagged) OverridenIntroText = GetText("KissAmandaGagged");
else if (!GameLogQuery(CurrentChapter, CurrentActor, "Kiss")) {
GameLogAdd("Kiss");
ActorChangeAttitude(1 + PlayerGetSkillLevel("Seduction"), 0);
if (PlayerGetSkillLevel("Seduction") > 0) OverridenIntroText = GetText("KissAmandaSeduction");
}
}
// Chapter 12 After Class - When the player spanks Amanda, with the fighting skill it can affect her submission level
function C012_AfterClass_Amanda_Spank() {
CurrentTime = CurrentTime + 50000;
if (!GameLogQuery(CurrentChapter, CurrentActor, "Spank")) {
GameLogAdd("Spank");
ActorChangeAttitude(-1, 1 + PlayerGetSkillLevel("Fighting"));
}
if (PlayerGetSkillLevel("Fighting") > 0) OverridenIntroText = GetText("SpankWithStrength");
}
// Chapter 12 After Class - When the player tickles Amanda, it doesn't affect her
function C012_AfterClass_Amanda_Tickle() {
CurrentTime = CurrentTime + 50000;
if (!GameLogQuery(CurrentChapter, CurrentActor, "Tickle")) {
GameLogAdd("Tickle");
ActorChangeAttitude(1, 0);
}
if ((Common_ActorIsOwner || (ActorGetValue(ActorSubmission) <= -5)) && !ActorIsRestrained()) OverridenIntroText = GetText("DoubleTickling");
}
// Chapter 12 After Class - When the player starts to masturbate Amanda
function C012_AfterClass_Amanda_StartMasturbate() {
if ((ActorGetValue(ActorLove) >= 10) || (ActorGetValue(ActorSubmission) >= 10) || (ActorIsRestrained())) {
CurrentTime = CurrentTime + 50000;
if (!GameLogQuery(CurrentChapter, CurrentActor, "NextPossibleOrgasm")) {
C012_AfterClass_Amanda_MasturbateCount = 0;
C012_AfterClass_Amanda_CurrentStage = 640;
OverridenIntroText = GetText("StartMasturbateAmanda");
LeaveIcon = "";
} else OverridenIntroText = GetText("MasturbateNotInTheMood");
}
}
// Chapter 12 After Class - When the player masturbates Amanda, she can only climax if she's restrained
function C012_AfterClass_Amanda_Masturbate(Factor, CanClimax) {
CurrentTime = CurrentTime + 50000;
C012_AfterClass_Amanda_MasturbateCount = C012_AfterClass_Amanda_MasturbateCount + Factor;
if (C012_AfterClass_Amanda_MasturbateCount < 0) C012_AfterClass_Amanda_MasturbateCount = 0;
if ((C012_AfterClass_Amanda_MasturbateCount >= (ActorHasInventory("VibratingEgg") ? 5 : 7)) && CanClimax && ActorIsRestrained()) {
C012_AfterClass_Amanda_CurrentStage = 641;
OverridenIntroText = GetText("ReadyForOrgasm");
}
}
// Chapter 12 After Class - When Amanda is masturbated to an orgasm
function C012_AfterClass_Amanda_AmandaOrgasm() {
CurrentTime = CurrentTime + 50000;
ActorAddOrgasm();
if (!GameLogQuery(CurrentChapter, CurrentActor, "NextPossibleOrgasm")) {
GameLogSpecificAddTimer(CurrentChapter, CurrentActor, "NextPossibleOrgasm", ActorHasInventory("VibratingEgg") ? CurrentTime + 3600000 : CurrentTime + 7200000);
ActorChangeAttitude(2, -1);
}
}
// Chapter 12 After Class - When Amanda is masturbated to an orgasm
function C012_AfterClass_Amanda_AmandaDeniedOrgasm() {
CurrentTime = CurrentTime + 50000;
if (!GameLogQuery(CurrentChapter, CurrentActor, "OrgasmDeniedFromMasturbation")) {
GameLogAdd("OrgasmDeniedFromMasturbation");
ActorChangeAttitude(-2, 1);
}
C012_AfterClass_Amanda_EndEnslaveAmanda();
}
// Chapter 12 After Class - Tests if the player is already dating someone else
function C012_AfterClass_Amanda_TestRelationship() {
if (GameLogQuery(CurrentChapter, CurrentActor, "DatingSarah")) {
OverridenIntroText = GetText("AlreadyDatingSarah");
C012_AfterClass_Amanda_CurrentStage = 0;
} else {
if (GameLogQuery(CurrentChapter, CurrentActor, "LoverBreakUp")) {
OverridenIntroText = GetText("AlreadyBrokeUp");
C012_AfterClass_Amanda_CurrentStage = 0;
} else {
if (Common_PlayerLover != "") {
if (Common_PlayerLover == "Sarah") {
OverridenIntroText = GetText("AlreadyLovedBySarah");
C012_AfterClass_Amanda_CurrentStage = 0;
} else {
OverridenIntroText = GetText("AlreadyLoved");
C012_AfterClass_Amanda_CurrentStage = 105;
}
}
}
}
}
// Chapter 12 After Class - Start Dating Amanda
function C012_AfterClass_Amanda_StartDating() {
CurrentTime = CurrentTime + 50000;
Common_PlayerLover = "Amanda";
Common_ActorIsLover = true;
C012_AfterClass_Amanda_CalcParams();
C012_AfterClass_Amanda_AllowSexAfterDate = (!Common_PlayerChaste && !ActorIsChaste());
}
// Chapter 12 After Class - Start Dating Amanda
function C012_AfterClass_Amanda_BothNaked() {
ActorSetCloth("Naked");
PlayerClothes("Naked");
C012_AfterClass_Amanda_CalcParams();
CurrentTime = CurrentTime + 50000;
}
// Chapter 12 After Class - Get in bed with Amanda to make love
function C012_AfterClass_Amanda_MakeLove() {
CurrentTime = CurrentTime + 50000;
ActorSetCloth("Naked");
PlayerClothes("Naked");
C012_AfterClass_Bed_Partner = "Amanda";
SetScene(CurrentChapter, "Bed");
}
// Chapter 12 After Class - Test if the player can start the break up dialog
function C012_AfterClass_Amanda_TestTalk() {
if (!ActorIsGagged()) {
if (!ActorIsRestrained()) C012_AfterClass_Amanda_CurrentStage = 20;
else OverridenIntroText = GetText("ReleaseBeforeTalk");
} else C012_AfterClass_Amanda_GaggedAnswer();
}
// Chapter 12 After Class - When the player breaks up with Amanda
function C012_AfterClass_Amanda_BreakUp() {
GameLogAdd("LoverBreakUp");
Common_PlayerLover = "";
Common_ActorIsLover = false;
ActorSetPose("");
LeaveIcon = "";
}
// Chapter 12 After Class - When Amanda leaves the room after the break up
function C012_AfterClass_Amanda_AmandaLeave() {
CurrentActor = "";
LeaveIcon = "Leave";
C012_AfterClass_Dorm_Guest.splice("Amanda");
}
// Chapter 12 After Class - When Amanda go get her pajamas
function C012_AfterClass_Amanda_FetchPajamas() {
GameLogAdd("AllowPajamas");
CurrentTime = CurrentTime + 110000;
ActorSetCloth("Pajamas");
ActorSetPose("Happy");
C012_AfterClass_Amanda_AllowPajamas = true;
}
// Chapter 12 After Class - When Amanda forces the player to kick someone out
function C012_AfterClass_Amanda_KickActor(KickedActor) {
if (KickedActor == "Sidney") C012_AfterClass_Sidney_CurrentStage = 790;
SetScene(CurrentChapter, KickedActor);
}
// Chapter 12 After Class - When Amanda is kicked for another actor
function C012_AfterClass_Amanda_KickForActor(KickedForActor) {
ActorSpecificChangeAttitude(KickedForActor, 2, 1);
}
// Chapter 12 After Class - When Amanda is kicked out, it can destroy the players couple
function C012_AfterClass_Amanda_KickedOut() {
GameLogAdd("KickedOutFromDorm");
GameLogSpecificAddTimer(CurrentChapter, "Player", "AmandaAndSarahInBed", 1);
if (CurrentActor == Common_PlayerLover) {
ActorChangeAttitude(-5, 0);
C012_AfterClass_Amanda_BreakUp();
}
CurrentActor = "";
}
// Chapter 12 After Class - When Amanda and the player plays a cuff game (50% chance of winning at 0 sub, 100% at 15, 0% at -16)
function C012_AfterClass_Amanda_CuffsGame() {
var WinGame = ((ActorGetValue(ActorSubmission) - 15 + Math.floor(Math.random() * 31)) >= 0);
CurrentTime = CurrentTime + 110000;
PlayerRemoveInventory("Cuffs", 1);
if (WinGame) ActorAddInventory("Cuffs");
else PlayerLockInventory("Cuffs");
if (!WinGame) OverridenIntroText = GetText("LoseCuffsGame");
if (Common_ActorIsOwner && !WinGame) PlayerRemoveInventory("CuffsKey", 99);
C012_AfterClass_Amanda_CalcParams();
}
// Chapter 12 After Class - Tests if the player is already naked
function C012_AfterClass_Amanda_TestNaked() {
if (Common_PlayerNaked) {
C012_AfterClass_Amanda_CurrentStage = 392;
OverridenIntroText = "";
Common_PlayerPose = "BackShy";
}
}
// Chapter 12 After Class - Tests if Amanda will release the player after the bondage hug
function C012_AfterClass_Amanda_ReleaseAfterBondageHug() {
if (EventRandomChance("Love")) {
OverridenIntroText = GetText("ReleasePlayerFromBondageHug");
PlayerReleaseBondage();
CurrentTime = CurrentTime + 50000;
}
C012_AfterClass_Amanda_AllowLeave();
}
// Chapter 12 After Class - Doesn't allow leaving from the scene
function C012_AfterClass_Amanda_StartDatingSarah() {
LeaveIcon = "";
ActorSetPose("");
}
// Chapter 12 After Class - Load a different actor on the fly
function C012_AfterClass_Amanda_LoadActor(ActorToLoad) {
ActorLoad(ActorToLoad, "Dorm");
LeaveIcon = "";
}
// Chapter 12 After Class - When Amanda dates Sarah
function C012_AfterClass_Amanda_DateSarah() {
GameLogSpecificAdd(CurrentChapter, "Amanda", "DatingSarah");
GameLogSpecificAdd(CurrentChapter, "Sarah", "DatingAmanda");
C012_AfterClass_Amanda_DatingSarah = true;
}
// Chapter 12 After Class - When Amanda gets in bed with Sarah (they will stay for 15 to 45 minutes)
function C012_AfterClass_Amanda_BedWithSarah() {
if (C012_AfterClass_Amanda_AllowPajamas) ActorSpecificSetCloth("Amanda", "Pajamas");
else ActorSpecificSetCloth("Amanda", "Clothed");
ActorSpecificSetCloth("Sarah", "BrownDress");
GameLogSpecificAddTimer(CurrentChapter, "Player", "AmandaAndSarahInBed", CurrentTime + 900000 + Math.floor(Math.random() * 1800000));
GameLogSpecificAddTimer(CurrentChapter, "Amanda", "NextPossibleOrgasm", ActorHasInventory("VibratingEgg") ? CurrentTime + 3600000 : CurrentTime + 7200000);
GameLogSpecificAddTimer(CurrentChapter, "Sarah", "NextPossibleOrgasm", CurrentTime + 3600000);
CurrentTime = CurrentTime + 50000;
SetScene(CurrentChapter, "Dorm");
}
// Chapter 12 After Class - Test if Amanda and Sarah are in the mood to get in bed
function C012_AfterClass_Amanda_TestBedSarah() {
if (!ActorSpecificIsRestrained("Amanda") && !ActorSpecificIsRestrained("Sarah") && !ActorSpecificIsGagged("Amanda") && !ActorSpecificIsGagged("Sarah") && !GameLogQuery(CurrentChapter, "Amanda", "NextPossibleOrgasm") && !GameLogQuery(CurrentChapter, "Sarah", "NextPossibleOrgasm")) {
OverridenIntroText = GetText("AcceptGoToBedWithSarah");
C012_AfterClass_Amanda_CurrentStage = 823;
}
}