diff --git a/Actor.js b/Actor.js index 0bf154dc7b..c3fa5e01a4 100644 --- a/Actor.js +++ b/Actor.js @@ -16,7 +16,7 @@ var ActorOwner = 10; // Make sure the current actor is loaded (create it if not) function ActorLoad(ActorToLoad, ActorLeaveScreen) { - + // Keep the actor leave screen LeaveIcon = "Leave"; LeaveScreen = ActorLeaveScreen; @@ -40,14 +40,14 @@ function ActorLoad(ActorToLoad, ActorLeaveScreen) { function ActorGetValue(ValueType) { for (var L = 0; L < Actor.length; L++) if (CurrentActor == Actor[L][ActorName]) - return Actor[L][ValueType]; + return Actor[L][ValueType]; } // Return a value from a specific actor data function ActorSpecificGetValue(SpecificActorName, ValueType) { for (var L = 0; L < Actor.length; L++) if (SpecificActorName == Actor[L][ActorName]) - return Actor[L][ValueType]; + return Actor[L][ValueType]; } // Return the current actor's localized name @@ -59,7 +59,7 @@ function ActorGetDisplayName() { // Change positively or negatively the current actor attitude toward the player function ActorChangeAttitude(LoveAttitude, SubAttitude) { - + // If we need to make a change to the attitude, we apply it if ((LoveAttitude != 0) || (SubAttitude != 0)) for (var L = 0; L < Actor.length; L++) @@ -70,25 +70,25 @@ function ActorChangeAttitude(LoveAttitude, SubAttitude) { if (Actor[L][ActorLove] < -99) Actor[L][ActorLove] = -99; if (Actor[L][ActorSubmission] > 99) Actor[L][ActorSubmission] = 99; if (Actor[L][ActorSubmission] < -99) Actor[L][ActorSubmission] = -99; - } + } } // Change positively or negatively a specific actor attitude toward the player function ActorSpecificChangeAttitude(SpecificActorName, LoveAttitude, SubAttitude) { - + // If we need to make a change to the attitude, we apply it if ((LoveAttitude != 0) || (SubAttitude != 0)) for (var L = 0; L < Actor.length; L++) if (SpecificActorName == Actor[L][ActorName]) { Actor[L][ActorLove] = Actor[L][ActorLove] + parseInt(LoveAttitude); Actor[L][ActorSubmission] = Actor[L][ActorSubmission] + parseInt(SubAttitude); - } + } } // Add an orgasm to the actor count and logs the event -function ActorAddOrgasm() { +function ActorAddOrgasm() { for (var L = 0; L < Actor.length; L++) if (CurrentActor == Actor[L][ActorName]) Actor[L][ActorOrgasmCount]++; @@ -97,7 +97,7 @@ function ActorAddOrgasm() { // Validates that a specific interaction stage is available for the player function ActorInteractionAvailable(LoveReq, SubReq, VarReq, InText, ForIntro) { - + // Make sure the love / sub level is match (both positive and negative) VarReq = VarReq.trim(); InText = InText.trim(); @@ -105,13 +105,13 @@ function ActorInteractionAvailable(LoveReq, SubReq, VarReq, InText, ForIntro) { if ((parseInt(SubReq) > 0) && (parseInt(ActorGetValue(ActorSubmission)) < parseInt(SubReq))) return false; if ((parseInt(LoveReq) < 0) && (parseInt(ActorGetValue(ActorLove)) > parseInt(LoveReq))) return false; if ((parseInt(SubReq) < 0) && (parseInt(ActorGetValue(ActorSubmission)) > parseInt(SubReq))) return false; - + // Checks if there's a custom script variable or a common variable to process if ((VarReq != "") && (VarReq.substr(0, 7) == "Common_") && (window[VarReq] == false)) return false; if ((VarReq != "") && (VarReq.substr(0, 8) == "!Common_") && (window[VarReq.substr(1)] == true)) return false; if ((VarReq != "") && (VarReq.substr(0, 7) != "Common_") && (VarReq.substr(0, 1) != "!") && (window[CurrentChapter + "_" + CurrentScreen + "_" + VarReq] == false)) return false; if ((VarReq != "") && (VarReq.substr(0, 7) != "Common_") && (VarReq.substr(0, 1) == "!") && (window[CurrentChapter + "_" + CurrentScreen + "_" + VarReq.substr(1)] == true)) return false; - + // Check if the player is gagged, only interactions that starts with '(', '(' or '@' are allowed var nonSpeechActionsStart = [ "(", @@ -119,7 +119,7 @@ function ActorInteractionAvailable(LoveReq, SubReq, VarReq, InText, ForIntro) { "@", ]; if ((nonSpeechActionsStart.indexOf(InText.substr(0, 1)) < 0) && Common_PlayerGagged && !ForIntro) return false; - + // Since nothing blocks, we allow it return true; @@ -306,7 +306,7 @@ function ActorUnblindfold() { // Tries to apply a restrain on the current actor function ActorApplyRestrain(RestrainName) { - + // The rope can be applied twice, the item becomes "TwoRopes" if ((RestrainName == "Rope") && ActorHasInventory("Rope") && !ActorHasInventory("TwoRopes") && PlayerHasInventory("Rope")) RestrainName = "TwoRopes"; if ((RestrainName == "Rope") && ActorHasInventory("Rope") && ActorHasInventory("TwoRopes") && !ActorHasInventory("ThreeRopes") && PlayerHasInventory("Rope") && (PlayerGetSkillLevel("RopeMastery") >= 1)) RestrainName = "ThreeRopes"; @@ -315,20 +315,20 @@ function ActorApplyRestrain(RestrainName) { var RestrainText = GetText(RestrainName); if ((RestrainText.substr(0, 20) != "MISSING TEXT FOR TAG") && (RestrainText != "") && !Common_PlayerRestrained && (PlayerHasInventory(RestrainName) || RestrainName == "TwoRopes" || RestrainName == "ThreeRopes") && !ActorHasInventory(RestrainName)) { - // Third rope + // Third rope if (RestrainName == "ThreeRopes") { PlayerRemoveInventory("Rope", 1); ActorAddInventory("ThreeRopes"); - CurrentTime = CurrentTime + 60000; + CurrentTime = CurrentTime + 60000; } - - // Second rope + + // Second rope if (RestrainName == "TwoRopes") { PlayerRemoveInventory("Rope", 1); ActorAddInventory("TwoRopes"); - CurrentTime = CurrentTime + 60000; + CurrentTime = CurrentTime + 60000; } - + // Regular restraints if ((RestrainName == "Rope") || (RestrainName == "Cuffs") || (RestrainName == "Armbinder")) { if (!ActorIsRestrained()) { @@ -415,7 +415,7 @@ function ActorSpecificHasInventory(QueryActor, QueryInventory) { } // Clear all inventory from an actor (expect the egg, plug, chastitybelt and collar) -function ActorSpecificClearInventory(QueryActor, Recover) { +function ActorSpecificClearInventory(QueryActor, Recover) { for (var A = 0; A < Actor.length; A++) if (Actor[A][ActorName] == QueryActor) { var HadEgg = ActorSpecificHasInventory(QueryActor, "VibratingEgg"); @@ -440,7 +440,7 @@ function ActorSpecificClearInventory(QueryActor, Recover) { // Returns the actor image file to use function ActorSpecificGetImage(QueryActor) { - + // The image file name is constructed from the inventory var ActorImage = QueryActor; if (ActorSpecificHasInventory(QueryActor, "Cuffs")) ActorImage = ActorImage + "_Cuffs"; diff --git a/BondageClub/Screens/Character/Appearance/Appearance.js b/BondageClub/Screens/Character/Appearance/Appearance.js index fe8f3a8a85..7f73126321 100644 --- a/BondageClub/Screens/Character/Appearance/Appearance.js +++ b/BondageClub/Screens/Character/Appearance/Appearance.js @@ -910,7 +910,7 @@ function CharacterAppearanceNextItem(C, Group, Forward, Description) { /** * Find the next color for the item * @param {Character} C - The character whose items are cycled - * @param {string} Group - The name of the group for which we are colour cycling + * @param {string} Group - The name of the group for which we are color cycling * @returns {void} - Nothing */ function CharacterAppearanceNextColor(C, Group) { @@ -954,9 +954,9 @@ function CharacterAppearanceMoveOffset(C, Move) { /** * Sets the color for a specific group - * @param {Character} C - The character whose item group should be coloured - * @param {string} Color - The colour (in the format "#rrggbb") to be applied to the group - * @param {string} Group - The name of the group, whose colour should be changed + * @param {Character} C - The character whose item group should be colored + * @param {string} Color - The color (in the format "#rrggbb") to be applied to the group + * @param {string} Group - The name of the group, whose color should be changed * @returns {void} - Nothing */ function CharacterAppearanceSetColorForGroup(C, Color, Group) { diff --git a/BondageClub/Screens/Character/Appearance/Text_Appearance.csv b/BondageClub/Screens/Character/Appearance/Text_Appearance.csv index 5ea8a717b6..d3d1a525f2 100644 --- a/BondageClub/Screens/Character/Appearance/Text_Appearance.csv +++ b/BondageClub/Screens/Character/Appearance/Text_Appearance.csv @@ -19,7 +19,7 @@ DialogPermissionMode,Edit item permissions Use,Use this item UseDisabled,Unable to use due to player permissions Reset,Reset character -ColorPick,Select a colour -MultiColorPick,Select colours +ColorPick,Select a color +MultiColorPick,Select colors ColorPickDisabled,Unable to change color due to player permissions,, MultiColorPickDisabled,Unable to change color due to player permissions,, diff --git a/BondageClub/Screens/Character/Appearance/Text_Appearance_CN.txt b/BondageClub/Screens/Character/Appearance/Text_Appearance_CN.txt index 88a675b688..077e2ebafb 100644 --- a/BondageClub/Screens/Character/Appearance/Text_Appearance_CN.txt +++ b/BondageClub/Screens/Character/Appearance/Text_Appearance_CN.txt @@ -38,9 +38,9 @@ Use this item 使用该物品 Unable to use due to player permissions 因角色权限设定,无法使用 -Select a colour +Select a color 选择一种颜色 -Select colours +Select colors 选择颜色 Unable to change color due to player permissions 因玩家权限设定无法修改颜色 \ No newline at end of file diff --git a/BondageClub/Screens/Character/Player/Dialog_Player.csv b/BondageClub/Screens/Character/Player/Dialog_Player.csv index 2e347d9221..dec8b522dc 100644 --- a/BondageClub/Screens/Character/Player/Dialog_Player.csv +++ b/BondageClub/Screens/Character/Player/Dialog_Player.csv @@ -512,8 +512,8 @@ ActionDice,,,SourceCharacter rolls DiceType. The result is: DiceResult.,, ActionCoin,,,SourceCharacter flips a coin. The result is: CoinResult.,, ActionActivateSafewordRevert,,,SourceCharacter used her safeword. Please check for her well-being.,, ActionActivateSafewordRelease,,,SourceCharacter used her safeword and wants to be released. She is guided out of the room for her safety.,, -ActionGrabbedForCell,,,"TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner commands.",, -ActionGrabbedForGGTS,,,"TargetCharacterName gets grabbed by two nurses wearing futuristic gear and locked in the Asylum for GGTS, following her owner commands.",, +ActionGrabbedForCell,,,"TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner's commands.",, +ActionGrabbedForGGTS,,,"TargetCharacterName gets grabbed by two nurses wearing futuristic gear and locked in the Asylum for GGTS, following her owner's commands.",, ActionGrabbedToServeDrinks,,,TargetCharacterName gets grabbed by two maids and escorted to the maid quarters to serve drinks for her owner.,, ActionGiveEnvelopeToOwner,,,TargetCharacterName gives a sealed envelope to her owner.,, ActionActivitySpankItem,,,SourceCharacter hits DestinationCharacter FocusAssetGroup with a NextAsset.,, diff --git a/BondageClub/Screens/Character/Player/Dialog_Player_CN.txt b/BondageClub/Screens/Character/Player/Dialog_Player_CN.txt index 6f4d4365fc..aa2df3a74e 100644 --- a/BondageClub/Screens/Character/Player/Dialog_Player_CN.txt +++ b/BondageClub/Screens/Character/Player/Dialog_Player_CN.txt @@ -1059,8 +1059,8 @@ SourceCharacter used her safeword. Please check for her well-being. SourceCharacter used her safeword. Please check for her well-being. SourceCharacter used her safeword and wants to be released. She is guided out of the room for her safety. SourceCharacter used her safeword and wants to be released. She is guided out of the room for her safety. -TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner commands. -TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner commands. +TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner's commands. +TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner's commands. TargetCharacterName gets grabbed by two maids and escorted to the maid quarters to serve drinks for her owner. TargetCharacterName gets grabbed by two maids and escorted to the maid quarters to serve drinks for her owner. TargetCharacterName gives a sealed envelope to her owner. diff --git a/BondageClub/Screens/Character/Player/Dialog_Player_DE.txt b/BondageClub/Screens/Character/Player/Dialog_Player_DE.txt index f0d27ee543..462791d3ef 100644 --- a/BondageClub/Screens/Character/Player/Dialog_Player_DE.txt +++ b/BondageClub/Screens/Character/Player/Dialog_Player_DE.txt @@ -225,7 +225,7 @@ SourceCharacter rolls a DiceType sided dice. The result is: DiceResult. SourceCharacter rollt einen DiceType-seitigen Würfel. Das Ergebnis ist: DiceResult. SourceCharacter flips a coin. The result is: CoinResult. SourceCharacter wirft eine Münze. Das Ergebnis ist: CoinResult. -TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner commands. +TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner's commands. TargetCharacterName wird auf Befehl ihrer Besitzerin von zwei Hausmädchen gepackt und in eine Timer-Zelle gesperrt. TargetCharacterName gets grabbed by two maids and escorted to the maid quarters to serve drinks for her owner. TargetCharacterName wird von zwei Hausmädchen gepackt und in die Dienerkammer gebracht, um für ihre Besitzerin Getränke zu servieren. diff --git a/BondageClub/Screens/Character/Player/Dialog_Player_FR.txt b/BondageClub/Screens/Character/Player/Dialog_Player_FR.txt index f021ca9918..bbe42c8580 100644 --- a/BondageClub/Screens/Character/Player/Dialog_Player_FR.txt +++ b/BondageClub/Screens/Character/Player/Dialog_Player_FR.txt @@ -179,7 +179,7 @@ SourceCharacter rolls a DiceType sided dice. The result is: DiceResult. SourceCharacter roule un dé à DiceType côtés. Le résultat est: DiceResult. SourceCharacter flips a coin. The result is: CoinResult. SourceCharacter lance une pièce. Le résultat est: CoinResult. -TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner commands. +TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner's commands. TargetCharacterName est attrapée par deux servantes et enfermée dans une cellule minutée, selon l'ordre de sa patronne. TargetCharacterName gets grabbed by two maids and escorted to the maid quarters to serve drinks for her owner. TargetCharacterName est attrapée par deux servantes et escortée aux quartiers des servantes pour servir des brevages. diff --git a/BondageClub/Screens/Character/Player/Dialog_Player_RU.txt b/BondageClub/Screens/Character/Player/Dialog_Player_RU.txt index 1a6222d9e1..3d86903a5d 100644 --- a/BondageClub/Screens/Character/Player/Dialog_Player_RU.txt +++ b/BondageClub/Screens/Character/Player/Dialog_Player_RU.txt @@ -227,7 +227,7 @@ SourceCharacter rolls a DiceType sided dice. The result is: DiceResult. SourceCharacter бросает кости. В результате получается: DiceResult. SourceCharacter flips a coin. The result is: CoinResult. SourceCharacter переворачивает монету. Результат таков: CoinResult. -TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner commands. +TargetCharacterName gets grabbed by two maids and locked in a timer cell, following her owner's commands. TargetCharacterName ее схватили две горничные и заперли в клетке с таймером, следуя командам ее хозяйки. TargetCharacterName gets grabbed by two maids and escorted to the maid quarters to serve drinks for her owner. TargetCharacterName ее схватили две горничные и сопроводили в комнату для прислуги, чтобы подать напитки для ее хозяйки. diff --git a/BondageClub/Screens/Online/ChatAdmin/Text_ChatAdmin_RU.txt b/BondageClub/Screens/Online/ChatAdmin/Text_ChatAdmin_RU.txt index e5063a5ceb..27f0e00cc7 100644 --- a/BondageClub/Screens/Online/ChatAdmin/Text_ChatAdmin_RU.txt +++ b/BondageClub/Screens/Online/ChatAdmin/Text_ChatAdmin_RU.txt @@ -31,4 +31,4 @@ This room name is already taken Account error, please try to relog Ошибка учетной записи, пожалуйста, попробуйте перерегистрироватся Invalid chat room data detected -Обнаружены недопустимые данные чата комнаты +Обнаружены недопустимые данные чата комнаты diff --git a/BondageClub/Screens/Online/ChatCreate/Text_ChatCreate_RU.txt b/BondageClub/Screens/Online/ChatCreate/Text_ChatCreate_RU.txt index 38c70b7c48..73fe9f5981 100644 --- a/BondageClub/Screens/Online/ChatCreate/Text_ChatCreate_RU.txt +++ b/BondageClub/Screens/Online/ChatCreate/Text_ChatCreate_RU.txt @@ -1,5 +1,5 @@ Enter your room information -Введите информацию о комнате +Введите информацию о комнате Room Name (Letters & numbers only) Имя Комнаты (Только буквы и цифры ) A short description or what's going on @@ -11,7 +11,7 @@ Select the background Introduction Вступление Kidnappers League -Лига Похитителей +Лига Похитителей Maid Quarters Помещение для прислуги Main Hall diff --git a/BondageClub/Screens/Online/ChatRoom/Text_ChatRoom.csv b/BondageClub/Screens/Online/ChatRoom/Text_ChatRoom.csv index 58bcb6b60e..30f8bfea74 100644 --- a/BondageClub/Screens/Online/ChatRoom/Text_ChatRoom.csv +++ b/BondageClub/Screens/Online/ChatRoom/Text_ChatRoom.csv @@ -20,8 +20,8 @@ CommandHelp,<strong>Help: KeyWord</strong> CommandNoSuchCommand,command: no such command CommandPrerequisiteFailed,command: prerequisite check failed CommandHelpMissing,HELP IS MISSING -CommandFriendlist,Friendlist: -CommandGhostlist,Ghostlist: -CommandWhitelist,Whitelist: -CommandBlacklist,Blacklist: -GGTSIntro,(Two nurses wearing futuristic gear grabs you and carry you to the Asylum. Another nurse is waiting for you there.) Welcome. Don't be scared. +CommandFriendlist,Friendlist: +CommandGhostlist,Ghostlist: +CommandWhitelist,Whitelist: +CommandBlacklist,Blacklist: +GGTSIntro,(Two nurses wearing futuristic gear grab you and carry you to the Asylum. Another nurse is waiting for you there.) Welcome. Don't be scared. diff --git a/BondageClub/Screens/Online/ChatRoom/Text_ChatRoom_CN.txt b/BondageClub/Screens/Online/ChatRoom/Text_ChatRoom_CN.txt index d33ebc5c9b..040badef7a 100644 --- a/BondageClub/Screens/Online/ChatRoom/Text_ChatRoom_CN.txt +++ b/BondageClub/Screens/Online/ChatRoom/Text_ChatRoom_CN.txt @@ -42,11 +42,11 @@ command: prerequisite check failed command:发送前检查失败 HELP IS MISSING 帮助不见啦!!! -Friendlist: +Friendlist: 好友列表: -Ghostlist: +Ghostlist: 忽视列表: -Whitelist: +Whitelist: 白名单: -Blacklist: +Blacklist: 黑名单: diff --git a/BondageClub/Screens/Room/AsylumEntrance/AsylumEntrance.js b/BondageClub/Screens/Room/AsylumEntrance/AsylumEntrance.js index 43f9ada0b1..50a678bdf6 100644 --- a/BondageClub/Screens/Room/AsylumEntrance/AsylumEntrance.js +++ b/BondageClub/Screens/Room/AsylumEntrance/AsylumEntrance.js @@ -144,7 +144,7 @@ function AsylumEntranceWearPatientClothes(C, ExtraEvent) { } InventoryRemove(C, "HairAccessory3"); InventoryRemove(C, "Hat"); - + // Wears the GGTS items based on the player level if (ExtraEvent && LogQuery("Isolated", "Asylum")) { CharacterRelease(C); diff --git a/BondageClub/Scripts/ControllerSupport.js b/BondageClub/Scripts/ControllerSupport.js index 8785a7e90e..4debe47d9a 100644 --- a/BondageClub/Scripts/ControllerSupport.js +++ b/BondageClub/Scripts/ControllerSupport.js @@ -31,7 +31,7 @@ var ControllerDeadZone = 0.01; /** - *removes all buttons from the lists + *removes all buttons from the lists */ function ClearButtons() { ControllerButtonsX = []; @@ -432,7 +432,7 @@ function ControllerButton(buttons) { //uncomment to test it with keyboard /** - * handles keyboard inputs in controller mode + * handles keyboard inputs in controller mode * @returns {void} Nothing */ function ControllerSupportKeyDown() { diff --git a/C000_Intro/ChapterSelect/Script.js b/C000_Intro/ChapterSelect/Script.js index 11fdc4bbbe..fde0f9b795 100644 --- a/C000_Intro/ChapterSelect/Script.js +++ b/C000_Intro/ChapterSelect/Script.js @@ -4,7 +4,7 @@ var C000_Intro_ChapterSelect_CreditPosition = 0; var C000_Intro_ChapterSelect_Credits = []; var C000_Intro_ChapterSelect_CreditActors = ["Player", "Amanda", "Sarah", "Sidney", "Jennifer", "Julia", "Yuki"]; var C000_Intro_ChapterSelect_ThankYouCount = 999999; -var C000_Intro_ChapterSelect_ThankYouList = ["Alvin", "Bryce", "Christian", "Designated", "Dick", "Escurse", "EugeneTooms", "James", "Jenni", "Jyeoh", "Karel", "Kitten", "Laioken", "Michal", "Mindtie", +var C000_Intro_ChapterSelect_ThankYouList = ["Alvin", "Bryce", "Christian", "Designated", "Dick", "Escurse", "EugeneTooms", "James", "Jenni", "Jyeoh", "Karel", "Kitten", "Laioken", "Michal", "Mindtie", "MunchyCat", "Nick", "Overlord", "Rashiash", "Ryner", "Setsu95", "Shadow", "Shaun", "Simeon", "Sky", "Terry", "Victor", "William", "Winterisbest", "Xepherio"]; var C000_Intro_ChapterSelect_ThankYouCurrent = -1; var C000_Intro_ChapterSelect_CreditTextColor = "black"; @@ -18,7 +18,7 @@ function C000_Intro_ChapterSelect_Load() { StopTimer(7.6666667 * 60 * 60 * 1000); } -// Draw the credits +// Draw the credits function C000_Intro_ChapterSelect_DrawCredits() { // For each credits in the list @@ -58,7 +58,7 @@ function C000_Intro_ChapterSelect_DrawCredits() { // Draw the thank you image function C000_Intro_ChapterSelect_DrawThankYou() { - + // If the image must swap if (C000_Intro_ChapterSelect_ThankYouCount >= 200) { var NewThankYou = C000_Intro_ChapterSelect_ThankYouCurrent; @@ -87,7 +87,7 @@ function C000_Intro_ChapterSelect_Run() { } // Chapter Select Click (Clicking on the image will swap it) -function C000_Intro_ChapterSelect_Click() { +function C000_Intro_ChapterSelect_Click() { ClickInteraction(C000_Intro_ChapterSelect_CurrentStage); if (!C000_Intro_ChapterSelect_CreditMode && (MouseX >= 600) && (MouseX <= 1200) && (MouseY >= 0) && (MouseY <= 599)) C000_Intro_ChapterSelect_ThankYouCount = 999999; StopTimer(7.6666667 * 60 * 60 * 1000); diff --git a/C002_FirstClass/Amanda/Script.js b/C002_FirstClass/Amanda/Script.js index 15eac75ed1..45d77ba104 100644 --- a/C002_FirstClass/Amanda/Script.js +++ b/C002_FirstClass/Amanda/Script.js @@ -11,7 +11,7 @@ var C002_FirstClass_Amanda_KissSarahDone = false; // Chapter 2 - Amanda Load function C002_FirstClass_Amanda_Load() { - // Load the scene parameters + // Load the scene parameters ActorLoad("Amanda", "Classroom"); LoadInteractions(); if (C002_FirstClass_Classroom_MildredSubdueSuccess) C002_FirstClass_Amanda_BowRemarkReady = false; @@ -22,7 +22,7 @@ function C002_FirstClass_Amanda_Load() { if ((parseInt(C002_FirstClass_Amanda_CurrentStage) < 100) && (C002_FirstClass_Classroom_MildredSubdueSuccess)) C002_FirstClass_Amanda_SubdueRemarkReady = true; C002_FirstClass_Amanda_CurrentStage = C002_FirstClass_Classroom_CalcStage(); } - + // The remark cannot be done if the player is gagged, also calculate the bondage hug if (Common_PlayerGagged) C002_FirstClass_Amanda_SubdueRemarkReady = false; C002_FirstClass_Amanda_BondageHugReady = ((C002_FirstClass_Amanda_CurrentStage > 100) && (Common_PlayerNotRestrained) && (Common_PlayerNotGagged) && (C002_FirstClass_Classroom_MildredSubdueSuccess) && (ActorSpecificHasInventory("Amanda", "Rope")) && (ActorSpecificHasInventory("Sarah", "Rope"))); @@ -31,23 +31,23 @@ function C002_FirstClass_Amanda_Load() { // Chapter 2 - Amanda Run function C002_FirstClass_Amanda_Run() { - + // Regular interactions BuildInteraction(C002_FirstClass_Amanda_CurrentStage); - + // Bondage hug if ((C002_FirstClass_Amanda_CurrentStage == 160) || (C002_FirstClass_Amanda_CurrentStage == 170)) { OverridenIntroImage = ""; if ((ActorSpecificHasInventory("Amanda", "BallGag")) && (ActorSpecificHasInventory("Sarah", "BallGag"))) OverridenIntroImage = "Hug_Amanda_Rope_BallGag_Sarah_Rope_BallGag.jpg"; if ((ActorSpecificHasInventory("Amanda", "BallGag")) && (!ActorSpecificHasInventory("Sarah", "BallGag"))) OverridenIntroImage = "Hug_Amanda_Rope_BallGag_Sarah_Rope.jpg"; if ((!ActorSpecificHasInventory("Amanda", "BallGag")) && (ActorSpecificHasInventory("Sarah", "BallGag"))) OverridenIntroImage = "Hug_Amanda_Rope_Sarah_Rope_BallGag.jpg"; - if ((!ActorSpecificHasInventory("Amanda", "BallGag")) && (!ActorSpecificHasInventory("Sarah", "BallGag"))) OverridenIntroImage = "Hug_Amanda_Rope_Sarah_Rope.jpg"; + if ((!ActorSpecificHasInventory("Amanda", "BallGag")) && (!ActorSpecificHasInventory("Sarah", "BallGag"))) OverridenIntroImage = "Hug_Amanda_Rope_Sarah_Rope.jpg"; } - + } // Chapter 2 - Amanda Click -function C002_FirstClass_Amanda_Click() { +function C002_FirstClass_Amanda_Click() { // Keep the stage on entry var EntryStage = C002_FirstClass_Amanda_CurrentStage; @@ -55,7 +55,7 @@ function C002_FirstClass_Amanda_Click() { // Regular interactions ClickInteraction(C002_FirstClass_Amanda_CurrentStage); var ClickedInv = GetClickedInventory(); - + // If the player wants to gag Amanda if ((C002_FirstClass_Amanda_CurrentStage >= 100) && (ClickedInv == "BallGag") && (ActorHasInventory("BallGag") == false) && (Common_PlayerNotRestrained)) { if ((ActorGetValue(ActorSubmission) >= 2) || (ActorHasInventory("Rope")) || (ActorHasInventory("Cuffs"))) { @@ -111,7 +111,7 @@ function C002_FirstClass_Amanda_Click() { if (C002_FirstClass_Amanda_CropDone == false) { C002_FirstClass_Amanda_CropDone = true; ActorChangeAttitude(-2, 0); } CurrentTime = CurrentTime + 60000; } - + // If the stage changed, we remove the Overridden image, also check for the bondage hug if (EntryStage != C002_FirstClass_Amanda_CurrentStage) OverridenIntroImage = ""; C002_FirstClass_Amanda_BondageHugReady = ((C002_FirstClass_Amanda_CurrentStage > 100) && (Common_PlayerNotRestrained) && (Common_PlayerNotGagged) && (C002_FirstClass_Classroom_MildredSubdueSuccess) && (ActorSpecificHasInventory("Amanda", "Rope")) && (ActorSpecificHasInventory("Sarah", "Rope"))); @@ -153,9 +153,9 @@ function C002_FirstClass_Amanda_AgreeHelp() { C002_FirstClass_Classroom_AmandaAgree = true; } -// Chapter 2 - Amanda Bondage Hug +// Chapter 2 - Amanda Bondage Hug function C002_FirstClass_Amanda_BondageHug() { - if (C002_FirstClass_Amanda_BondageHugDone == false) { + if (C002_FirstClass_Amanda_BondageHugDone == false) { C002_FirstClass_Amanda_BondageHugDone = true; ActorChangeAttitude(1, 0); } diff --git a/C002_FirstClass/Sarah/Script.js b/C002_FirstClass/Sarah/Script.js index 5bab75a802..0a66206633 100644 --- a/C002_FirstClass/Sarah/Script.js +++ b/C002_FirstClass/Sarah/Script.js @@ -13,7 +13,7 @@ function C002_FirstClass_Sarah_CalcStage() { // Keep the backup stage to resume conversation var EntryStage = C002_FirstClass_Sarah_CurrentStage; if (C002_FirstClass_Sarah_CurrentStage < 100) C002_FirstClass_Sarah_BackupStage = C002_FirstClass_Sarah_CurrentStage; - + // Calculate the correct stage (100 comes back to the previous conversation) if (C002_FirstClass_Sarah_CurrentStage <= 150) { C002_FirstClass_Sarah_CurrentStage = C002_FirstClass_Classroom_CalcStage(); @@ -22,7 +22,7 @@ function C002_FirstClass_Sarah_CalcStage() { // If the stage changed, we scrap the Overridden image if (EntryStage != C002_FirstClass_Sarah_CurrentStage) OverridenIntroImage = ""; - + // The bondage hug is only available if Amanda and Sarah are in ropes C002_FirstClass_Sarah_BondageHugReady = ((C002_FirstClass_Sarah_CurrentStage > 100) && (C002_FirstClass_Sarah_CurrentStage < 200) && (Common_PlayerNotRestrained) && (Common_PlayerNotGagged) && (C002_FirstClass_Classroom_MildredSubdueSuccess) && (ActorSpecificHasInventory("Amanda", "Rope")) && (ActorSpecificHasInventory("Sarah", "Rope"))); @@ -34,13 +34,13 @@ function C002_FirstClass_Sarah_CalcStage() { if ((!ActorSpecificHasInventory("Amanda", "BallGag")) && (ActorSpecificHasInventory("Sarah", "BallGag"))) OverridenIntroImage = "Hug_Amanda_Rope_Sarah_Rope_BallGag.jpg"; if ((!ActorSpecificHasInventory("Amanda", "BallGag")) && (!ActorSpecificHasInventory("Sarah", "BallGag"))) OverridenIntroImage = "Hug_Amanda_Rope_Sarah_Rope.jpg"; } - + } // Chapter 2 - Sarah Load function C002_FirstClass_Sarah_Load() { - // Load the scene parameters + // Load the scene parameters ActorLoad("Sarah", "Classroom"); LoadInteractions(); @@ -64,7 +64,7 @@ function C002_FirstClass_Sarah_Run() { } // Chapter 2 - Sarah Click -function C002_FirstClass_Sarah_Click() { +function C002_FirstClass_Sarah_Click() { // Regular interactions ClickInteraction(C002_FirstClass_Sarah_CurrentStage); @@ -115,7 +115,7 @@ function C002_FirstClass_Sarah_Click() { // Recalculate the stage C002_FirstClass_Sarah_CalcStage(); - + } // Chapter 2 - Sarah Ungag @@ -141,7 +141,7 @@ function C002_FirstClass_Sarah_AnnoyMildred() { ActorAddInventory("BallGag"); } -// Chapter 2 - Sarah Bondage Hug +// Chapter 2 - Sarah Bondage Hug function C002_FirstClass_Sarah_BondageHug() { C002_FirstClass_Sarah_CalcStage(); if (C002_FirstClass_Sarah_BondageHugDone == false) { C002_FirstClass_Sarah_BondageHugDone = true; ActorChangeAttitude(1, 0); } diff --git a/C002_FirstClass/SarahIntro/Script.js b/C002_FirstClass/SarahIntro/Script.js index 9f42b2db88..ed30f4a4aa 100644 --- a/C002_FirstClass/SarahIntro/Script.js +++ b/C002_FirstClass/SarahIntro/Script.js @@ -7,14 +7,14 @@ function C002_FirstClass_SarahIntro_Load() { // Skip the intro if Mildred was subdued, else we stop the time and show the intro if (C002_FirstClass_Classroom_MildredSubdueSuccess) SetScene(CurrentChapter, "Classroom"); - else + else StopTimer(8.5 * 60 * 60 * 1000); - + } // Chapter 2 - SarahIntro Run function C002_FirstClass_SarahIntro_Run() { - + // Paints the background if (ActorSpecificHasInventory("Amanda", "BallGag")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background_AmandaGag.jpg", 0, 0); @@ -27,7 +27,7 @@ function C002_FirstClass_SarahIntro_Run() { if (TextPhase >= 2) DrawText(GetText("Intro3"), 600, 300, "White"); if (TextPhase >= 3) DrawText(GetText("Intro4"), 600, 400, "White"); if (TextPhase >= 4) DrawText(GetText("Intro5"), 600, 500, "White"); - + } // Chapter 2 - SarahIntro Click diff --git a/C012_AfterClass/RockShow/Script.js b/C012_AfterClass/RockShow/Script.js index 1eb8139d3e..7f308238c7 100644 --- a/C012_AfterClass/RockShow/Script.js +++ b/C012_AfterClass/RockShow/Script.js @@ -9,7 +9,7 @@ var C012_AfterClass_RockShow_SearchDone = false; // Chapter 12 After Class - Rock Show Load function C012_AfterClass_RockShow_Load() { - + // Loads the scene to search in the wardrobe LoadInteractions(); ActorLoad("Sidney", ""); @@ -31,16 +31,16 @@ function C012_AfterClass_RockShow_Load() { function C012_AfterClass_RockShow_Run() { BuildInteraction(C012_AfterClass_RockShow_CurrentStage); if (parseInt(C012_AfterClass_RockShow_CurrentStage) >= 200) { - DrawActor(CurrentActor, 680, 0, 1); + DrawActor(CurrentActor, 680, 0, 1); DrawActor("Player", 500, 0, 1); } else { DrawActor("Player", 500, 0, 1); - DrawActor(CurrentActor, 680, 0, 1); + DrawActor(CurrentActor, 680, 0, 1); } } // Chapter 12 After Class - Rock Show Click -function C012_AfterClass_RockShow_Click() { +function C012_AfterClass_RockShow_Click() { // Regular interactions ClickInteraction(C012_AfterClass_RockShow_CurrentStage); @@ -61,7 +61,7 @@ function C012_AfterClass_RockShow_Wait(WaitTime) { // Chapter 12 After Class - When the player listens until the next song function C012_AfterClass_RockShow_NextSong() { - + // The more songs, the more Sidney will like the player C012_AfterClass_RockShow_SongCount++; CurrentTime = CurrentTime + 290000; @@ -110,7 +110,7 @@ function C012_AfterClass_RockShow_MasturbatePlayer() { } } -// Chapter 12 After Class - When the player masturbates Sidney +// Chapter 12 After Class - When the player masturbates Sidney function C012_AfterClass_RockShow_MasturbateSidney(Factor) { C012_AfterClass_RockShow_MasturbateCount = C012_AfterClass_RockShow_MasturbateCount + Factor; if (C012_AfterClass_RockShow_MasturbateCount < 0) C012_AfterClass_RockShow_MasturbateCount = 0; diff --git a/C101_KinbakuClub/ClubRoom3/Script.js b/C101_KinbakuClub/ClubRoom3/Script.js index e26df9ad18..eac96a4efb 100644 --- a/C101_KinbakuClub/ClubRoom3/Script.js +++ b/C101_KinbakuClub/ClubRoom3/Script.js @@ -7,18 +7,18 @@ function C101_KinbakuClub_ClubRoom3_Load() { // Chapter 101 - Club Room 3 Run function C101_KinbakuClub_ClubRoom3_Run() { - // Draw the background image + // Draw the background image DrawImage(CurrentChapter + "/" + CurrentScreen + "/ClubRoom3Arrows.jpg", 0, 0); - + // Draw Chloe //if (C101_KinbakuClub_Chloe_CurrentStage == 0) { DrawImage(CurrentChapter + "/" + CurrentScreen + "/ChloeBoard.png", 0, 0); //} else DrawActor("Chloe", 220, 170, 0.3333); - - + + // Draw CardGamers DrawImage(CurrentChapter + "/" + CurrentScreen + "/CardGamers1.jpg", 570, 130); - + } // Chapter 101 - Club Room 3 Click diff --git a/C101_KinbakuClub/ClubRoom4/Script.js b/C101_KinbakuClub/ClubRoom4/Script.js index 8439f2242a..9baded7798 100644 --- a/C101_KinbakuClub/ClubRoom4/Script.js +++ b/C101_KinbakuClub/ClubRoom4/Script.js @@ -7,7 +7,7 @@ function C101_KinbakuClub_ClubRoom4_Load() { // Chapter 101 - Club Room 4 Run function C101_KinbakuClub_ClubRoom4_Run() { - // Draw the background image + // Draw the background image DrawImage(CurrentChapter + "/" + CurrentScreen + "/ClubRoom4.jpg", 0, 0); // Draw movement arrows @@ -15,7 +15,7 @@ function C101_KinbakuClub_ClubRoom4_Run() { DrawImage(CurrentChapter + "/" + CurrentScreen + "/ClubRoom4ArrowLeft.jpg", 20, 525); DrawImage(CurrentChapter + "/" + CurrentScreen + "/ClubRoom4ArrowRight.jpg", 1090, 525); } - + // Draw the player when she is a slave if (PlayerHasLockedInventory("Manacles")) { DrawImage(CurrentChapter + "/" + CurrentScreen + "/SlavesPlayer.png", 280, 185); @@ -133,7 +133,7 @@ function C101_KinbakuClub_ClubRoom4_Click() { C101_KinbakuClub_Slaves_CurrentStage = 120; } } - + // When Chloe is a slave and the user clicks on her // When a twin is a slave and the user clicks on her diff --git a/C101_KinbakuClub/Discipline/Script.js b/C101_KinbakuClub/Discipline/Script.js index 733d7d4d5b..0180c03c2b 100644 --- a/C101_KinbakuClub/Discipline/Script.js +++ b/C101_KinbakuClub/Discipline/Script.js @@ -1,6 +1,6 @@ // Chapter 101 - Kinbaku Club Load function C101_KinbakuClub_Discipline_Load() { - + // Time is always 17:25:00 in the outro, unlock if needed StopTimer(17.25 * 60 * 60 * 1000, CurrentChapter, "Discipline"); } @@ -8,7 +8,7 @@ function C101_KinbakuClub_Discipline_Load() { // Chapter 7 - Kinbaku Club Run function C101_KinbakuClub_Discipline_Run() { - // Paints the background + // Paints the background DrawRect(0, 0, 800, 600, "black"); if (PlayerHasLockedInventory("Manacles")) DrawImage(CurrentChapter + "/" + CurrentScreen + "/BagBlackSlave.jpg", 800, 0); else { @@ -44,7 +44,7 @@ function C101_KinbakuClub_Discipline_Click() { // Jump to the next animation TextPhase++; - + // Jump to lunch on phase 3 //if (TextPhase >= 4) SaveMenu("C102_KinbakuDiscipline", "Intro"); diff --git a/C999_Common/Armbinder/Text_EN.csv b/C999_Common/Armbinder/Text_EN.csv index be22d81209..95c95b62ba 100644 --- a/C999_Common/Armbinder/Text_EN.csv +++ b/C999_Common/Armbinder/Text_EN.csv @@ -1,2 +1,2 @@ Tag,Content -BadTiming,You fantasizes about tying yourself up but realize|that it might not be the best time for that. +BadTiming,You fantasize about tying yourself up but realize|that it might not be the best time for that. diff --git a/C999_Common/BallGag/Text_EN.csv b/C999_Common/BallGag/Text_EN.csv index 63bb551e2b..93239c973e 100644 --- a/C999_Common/BallGag/Text_EN.csv +++ b/C999_Common/BallGag/Text_EN.csv @@ -1,2 +1,2 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. diff --git a/C999_Common/Blindfold/Text_EN.csv b/C999_Common/Blindfold/Text_EN.csv index 543aca5b1e..fe678b1a5e 100644 --- a/C999_Common/Blindfold/Text_EN.csv +++ b/C999_Common/Blindfold/Text_EN.csv @@ -1,2 +1,2 @@ Tag,Content -BadTiming,You fantasizes about being blinded but realize that|it might not be the best time to wear it. +BadTiming,You fantasize about being blinded but realize that|it might not be the best time to wear it. diff --git a/C999_Common/ChastityBelt/Text_EN.csv b/C999_Common/ChastityBelt/Text_EN.csv index d05f61ab69..030cb99951 100644 --- a/C999_Common/ChastityBelt/Text_EN.csv +++ b/C999_Common/ChastityBelt/Text_EN.csv @@ -1,3 +1,3 @@ Tag,Content ConfirmLock,Are you sure you want to lock the|belt on yourself? Click again to do so. -BadTiming,You fantasizes about being locked in a chastity|belt but it might not be the best time for that. +BadTiming,You fantasize about being locked in a chastity|belt but it might not be the best time for that. diff --git a/C999_Common/ClothGag/Text_EN.csv b/C999_Common/ClothGag/Text_EN.csv index 63bb551e2b..93239c973e 100644 --- a/C999_Common/ClothGag/Text_EN.csv +++ b/C999_Common/ClothGag/Text_EN.csv @@ -1,2 +1,2 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. diff --git a/C999_Common/Collar/Text_EN.csv b/C999_Common/Collar/Text_EN.csv index 72767b5c2c..a9ab25635d 100644 --- a/C999_Common/Collar/Text_EN.csv +++ b/C999_Common/Collar/Text_EN.csv @@ -1,3 +1,3 @@ Tag,Content -BadTiming,You fantasizes about being collared but realize that|it might not be the best time to collar yourself. +BadTiming,You fantasize about being collared but realize that|it might not be the best time to collar yourself. LockedCollar,Then collar is fastened with a padlock.|You will need the key to remove it. diff --git a/C999_Common/Cuffs/Text_EN.csv b/C999_Common/Cuffs/Text_EN.csv index ce5707d457..de3d99d317 100644 --- a/C999_Common/Cuffs/Text_EN.csv +++ b/C999_Common/Cuffs/Text_EN.csv @@ -1,3 +1,3 @@ Tag,Content -BadTiming,You fantasizes about being cuffed but realize that|it might not be the best time to cuff yourself. +BadTiming,You fantasize about being cuffed but realize that|it might not be the best time to cuff yourself. NoShim,Without a hair clip or similar to make|a shim it is no use. You remain handcuffed. diff --git a/C999_Common/DoubleOpenGag/Text_EN.csv b/C999_Common/DoubleOpenGag/Text_EN.csv index 63bb551e2b..93239c973e 100644 --- a/C999_Common/DoubleOpenGag/Text_EN.csv +++ b/C999_Common/DoubleOpenGag/Text_EN.csv @@ -1,2 +1,2 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. diff --git a/C999_Common/Manacles/Intro_EN.csv b/C999_Common/Manacles/Intro_EN.csv index 696f9261eb..e75cd0e337 100644 --- a/C999_Common/Manacles/Intro_EN.csv +++ b/C999_Common/Manacles/Intro_EN.csv @@ -1,3 +1,3 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image -0,0,0,,"This set of steel manacles for restraining|someones neck, wrists and ankles.",Manacles.jpg +0,0,0,,"This set of steel manacles for restraining|someone's neck, wrists and ankles.",Manacles.jpg 10,0,0,,"Without a key, there's no way to escape|the manacles cold hard snare.",Manacles.jpg diff --git a/C999_Common/Manacles/Text_EN.csv b/C999_Common/Manacles/Text_EN.csv index 32abc31737..de35c0a63d 100644 --- a/C999_Common/Manacles/Text_EN.csv +++ b/C999_Common/Manacles/Text_EN.csv @@ -1,2 +1,2 @@ Tag,Content -BadTiming,You fantasizes about shackling yourself up but realize|that it might not be the best time for that. +BadTiming,You fantasize about shackling yourself up but realize|that it might not be the best time for that. diff --git a/C999_Common/PantieGag/Stage_CN.csv b/C999_Common/PantieGag/Stage_CN.csv index 33f3bdf8bb..03e1d45c02 100644 --- a/C999_Common/PantieGag/Stage_CN.csv +++ b/C999_Common/PantieGag/Stage_CN.csv @@ -1,8 +1,8 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function -0,0,0,,(Inspect the panties.)ADD_MINUTES:1,"The lable size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",0,0,0, +0,0,0,,(Inspect the panties.)ADD_MINUTES:1,"The label size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",0,0,0, 0,0,0,Common_PlayerNotRestrained,(Gag yourself.)ADD_MINUTES:1,"You ball up the panties and cram them|into your mouth, packing it full.",10,0,0,SelfGag() -10,0,0,HasLoosePantieGag,(Inspect the loose gag.)ADD_MINUTES:1,"The lable size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",10,0,0,ShowImage() +10,0,0,HasLoosePantieGag,(Inspect the loose gag.)ADD_MINUTES:1,"The label size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",10,0,0,ShowImage() 10,0,0,,(Chew on the panties.)ADD_MINUTES:1,You chew on the wad of panties.|They slowly become soaked by your own drool.,10,0,0, -10,0,0,,(Suck on the panties.)ADD_MINUTES:1,"You suck on the pantie wad, savouting the taste|and wondering how clean they were.",10,0,0, +10,0,0,,(Suck on the panties.)ADD_MINUTES:1,"You suck on the pantie wad, savoring the taste|and wondering how clean they were.",10,0,0, 10,0,0,!HasOtherGag,(Spit out the panties.)ADD_MINUTES:1,You spit the soaked wad of panties out|of your mouth and can now talk again.,0,0,0,SelfUngag() 10,0,0,HasOtherGag,(Spit out the panties.)ADD_MINUTES:1,"You try to spit the panties out, but the other gag has|them trapped. You'll need to remove that first.",10,0,0, diff --git a/C999_Common/PantieGag/Stage_EN.csv b/C999_Common/PantieGag/Stage_EN.csv index 33f3bdf8bb..03e1d45c02 100644 --- a/C999_Common/PantieGag/Stage_EN.csv +++ b/C999_Common/PantieGag/Stage_EN.csv @@ -1,8 +1,8 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function -0,0,0,,(Inspect the panties.)ADD_MINUTES:1,"The lable size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",0,0,0, +0,0,0,,(Inspect the panties.)ADD_MINUTES:1,"The label size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",0,0,0, 0,0,0,Common_PlayerNotRestrained,(Gag yourself.)ADD_MINUTES:1,"You ball up the panties and cram them|into your mouth, packing it full.",10,0,0,SelfGag() -10,0,0,HasLoosePantieGag,(Inspect the loose gag.)ADD_MINUTES:1,"The lable size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",10,0,0,ShowImage() +10,0,0,HasLoosePantieGag,(Inspect the loose gag.)ADD_MINUTES:1,"The label size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",10,0,0,ShowImage() 10,0,0,,(Chew on the panties.)ADD_MINUTES:1,You chew on the wad of panties.|They slowly become soaked by your own drool.,10,0,0, -10,0,0,,(Suck on the panties.)ADD_MINUTES:1,"You suck on the pantie wad, savouting the taste|and wondering how clean they were.",10,0,0, +10,0,0,,(Suck on the panties.)ADD_MINUTES:1,"You suck on the pantie wad, savoring the taste|and wondering how clean they were.",10,0,0, 10,0,0,!HasOtherGag,(Spit out the panties.)ADD_MINUTES:1,You spit the soaked wad of panties out|of your mouth and can now talk again.,0,0,0,SelfUngag() 10,0,0,HasOtherGag,(Spit out the panties.)ADD_MINUTES:1,"You try to spit the panties out, but the other gag has|them trapped. You'll need to remove that first.",10,0,0, diff --git a/C999_Common/PantieGag/Stage_FR.csv b/C999_Common/PantieGag/Stage_FR.csv index 33f3bdf8bb..03e1d45c02 100644 --- a/C999_Common/PantieGag/Stage_FR.csv +++ b/C999_Common/PantieGag/Stage_FR.csv @@ -1,8 +1,8 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function -0,0,0,,(Inspect the panties.)ADD_MINUTES:1,"The lable size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",0,0,0, +0,0,0,,(Inspect the panties.)ADD_MINUTES:1,"The label size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",0,0,0, 0,0,0,Common_PlayerNotRestrained,(Gag yourself.)ADD_MINUTES:1,"You ball up the panties and cram them|into your mouth, packing it full.",10,0,0,SelfGag() -10,0,0,HasLoosePantieGag,(Inspect the loose gag.)ADD_MINUTES:1,"The lable size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",10,0,0,ShowImage() +10,0,0,HasLoosePantieGag,(Inspect the loose gag.)ADD_MINUTES:1,"The label size is XXXL. Far too big for you to wear,|but large enough to fill the biggest of mouths.",10,0,0,ShowImage() 10,0,0,,(Chew on the panties.)ADD_MINUTES:1,You chew on the wad of panties.|They slowly become soaked by your own drool.,10,0,0, -10,0,0,,(Suck on the panties.)ADD_MINUTES:1,"You suck on the pantie wad, savouting the taste|and wondering how clean they were.",10,0,0, +10,0,0,,(Suck on the panties.)ADD_MINUTES:1,"You suck on the pantie wad, savoring the taste|and wondering how clean they were.",10,0,0, 10,0,0,!HasOtherGag,(Spit out the panties.)ADD_MINUTES:1,You spit the soaked wad of panties out|of your mouth and can now talk again.,0,0,0,SelfUngag() 10,0,0,HasOtherGag,(Spit out the panties.)ADD_MINUTES:1,"You try to spit the panties out, but the other gag has|them trapped. You'll need to remove that first.",10,0,0, diff --git a/C999_Common/PantieGag/Text_CN.csv b/C999_Common/PantieGag/Text_CN.csv index b6f155c5db..a5e94f6e5a 100644 --- a/C999_Common/PantieGag/Text_CN.csv +++ b/C999_Common/PantieGag/Text_CN.csv @@ -1,3 +1,3 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. OtherGag,You can stuff panties into your|mouth with another gag block it. diff --git a/C999_Common/PantieGag/Text_EN.csv b/C999_Common/PantieGag/Text_EN.csv index b6f155c5db..a5e94f6e5a 100644 --- a/C999_Common/PantieGag/Text_EN.csv +++ b/C999_Common/PantieGag/Text_EN.csv @@ -1,3 +1,3 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. OtherGag,You can stuff panties into your|mouth with another gag block it. diff --git a/C999_Common/PantieGag/Text_FR.csv b/C999_Common/PantieGag/Text_FR.csv index b6f155c5db..a5e94f6e5a 100644 --- a/C999_Common/PantieGag/Text_FR.csv +++ b/C999_Common/PantieGag/Text_FR.csv @@ -1,3 +1,3 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. OtherGag,You can stuff panties into your|mouth with another gag block it. diff --git a/C999_Common/Races/Race.js b/C999_Common/Races/Race.js index 9c229b0b90..9b75e2fd8e 100644 --- a/C999_Common/Races/Race.js +++ b/C999_Common/Races/Race.js @@ -31,31 +31,31 @@ var RaceSpeed = 0; // Generates a full race sequence function RaceGenerateMoves(StartTime, DifficultyText) { - + // Set the difficulty ratio var DifficultyRatio = 1; if (DifficultyText == "Easy") DifficultyRatio = 1.5; if (DifficultyText == "Hard") DifficultyRatio = 0.6667; - + // Full the race sequence var CurTimer = StartTime + 3000; var Seq = 0; RaceMoves = []; while (Seq < MaxRaceSequence) { - + // Create a new race move to do at a random position RaceMoves[RaceMoves.length] = [Math.floor(Math.random() * 8), CurTimer]; CurTimer = CurTimer + Math.floor((Math.random() * 600 + 300) * DifficultyRatio); Seq++; - + } } // Load the race animations and full sequence function RaceLoad(Racer, RacerImageSet, AllowedMinutes, Difficulty, EndGoal, EndGoalText, IconLeft, IconRight, BackgroundImage, EndFunction, SkillBonus) { - - // Creates a brand new race + + // Creates a brand new race LeaveIcon = ""; RaceTimer = 0; RaceEndTimer = RaceStartTime + (AllowedMinutes * 60 * 1000); @@ -63,7 +63,7 @@ function RaceLoad(Racer, RacerImageSet, AllowedMinutes, Difficulty, EndGoal, End RaceSpeed = 0; RaceProgress = 0; RaceActorImageFrame = 0; - RaceEnded = false; + RaceEnded = false; RacePerfect = true; RaceLastMoveType = -1; RaceLastMoveTypeTimer = -1; @@ -81,13 +81,13 @@ function RaceLoad(Racer, RacerImageSet, AllowedMinutes, Difficulty, EndGoal, End RaceEndFunction = EndFunction; RaceBackgroundImage = BackgroundImage; RaceGenerateMoves(RaceStartTime, Difficulty); - + // Keep a backup of the current chapter and screen RaceBackupChapter = CurrentChapter; RaceBackupScreen = CurrentScreen; CurrentChapter = "C999_Common"; CurrentScreen = "Race"; - + } // Draw the race icons @@ -96,22 +96,22 @@ function RaceDrawIcons() { // Scroll the race icons with time var Seq = 0; while (Seq < RaceMoves.length) { - + // Draw the move from 3 seconds before to 1 second after - if ((RaceMoves[Seq][RaceMoveTime] <= RaceTimer + 3000) && (RaceMoves[Seq][RaceMoveTime] >= RaceTimer - 1000)) { + if ((RaceMoves[Seq][RaceMoveTime] <= RaceTimer + 3000) && (RaceMoves[Seq][RaceMoveTime] >= RaceTimer - 1000)) { if (RaceMoves[Seq][RaceMoveType] <= 3) DrawImage(RaceIconLeft, 3 + (RaceMoves[Seq][RaceMoveType] * 75), 410 + Math.floor((RaceTimer - RaceMoves[Seq][RaceMoveTime]) / 6)); - else + else DrawImage(RaceIconRight, 603 + (RaceMoves[Seq][RaceMoveType] * 75), 410 + Math.floor((RaceTimer - RaceMoves[Seq][RaceMoveTime]) / 6)); } - + // Remove the move from the sequence if it's past due if (RaceMoves[Seq][RaceMoveTime] < RaceTimer - 1000) { RaceMoves.splice(Seq, 1); RaceMiss(); - } + } else Seq = Seq + 1; - + // Beyond 3 seconds forward, we exit if (Seq < RaceMoves.length) if (RaceMoves[Seq][RaceMoveTime] > RaceTimer + 3000) @@ -127,10 +127,10 @@ function RaceDrawBar() { // Draw 4 bars on each sides var XOffset = 0; for(BarNum = 0; BarNum <= 7; BarNum++) { - + // Draw the bars on both sides of the screen if (BarNum == 4) XOffset = 600; - + // The color changes when it's clicked or pressed DrawRect(XOffset + 3 + (BarNum * 75), 437, 70, 27, "White"); if ((RaceLastMoveType == BarNum) && (RaceLastMoveTypeTimer >= RaceTimer)) @@ -223,12 +223,12 @@ function RaceDoMove(MoveType) { // Make sure the hit is valid if ((MoveType >= 0) && (RaceMoves.length > 0)) { - + // For each moves in the list var Hit = false; var Seq = 0; while (Seq < RaceMoves.length) { - + // If the move connects (good timing and good type) if ((RaceMoves[Seq][RaceMoveTime] <= RaceTimer + 300) && (RaceMoves[Seq][RaceMoveTime] >= RaceTimer - 300) && (MoveType == RaceMoves[Seq][RaceMoveType])) { RaceMoves.splice(Seq, 1); @@ -236,10 +236,10 @@ function RaceDoMove(MoveType) { Seq = RaceMoves.length; } else Seq++; - + // Beyond 0.5 seconds forward, we give up if (Seq < RaceMoves.length) - if (RaceMoves[Seq][RaceMoveTime] > RaceTimer + 300) + if (RaceMoves[Seq][RaceMoveTime] > RaceTimer + 300) Seq = RaceMoves.length; } @@ -259,16 +259,16 @@ function C999_Common_Race_Run() { // If the actor must move forward and progress if ((RaceSpeed > 0) && !RaceEnded) { - + // The progress is (Speed) pixels every second RaceProgress = RaceProgress + (RunInterval / 1000) * RaceSpeed; - + // If the goal is achieved if (RaceProgress >= RaceGoal) { RaceProgress = RaceGoal; RaceEnd(true); } - + } // Paints the background @@ -277,7 +277,7 @@ function C999_Common_Race_Run() { // Increments the race timer and draw the actor if (!RaceEnded) RaceTimer = RaceTimer + RunInterval; RaceDrawActor(); - + // If the race is over and not completed, we flag a defeat if ((RaceTimer >= RaceEndTimer) && !RaceEnded) RaceEnd(false); @@ -288,7 +288,7 @@ function C999_Common_Race_Run() { RaceDrawBar(); RaceDrawIcons(); RaceDrawStats(); - } + } else { DrawText(RaceGoalText, 600, 25, "white"); DrawText(GetCSVText(RaceText, "Difficulty") + " " + GetCSVText(RaceText, RaceDifficultyText), 500, 65, "white"); @@ -297,7 +297,7 @@ function C999_Common_Race_Run() { } // Draw the end text - if (RaceEnded) { + if (RaceEnded) { if ((RaceProgress >= RaceGoal) && RacePerfect) DrawText(GetCSVText(RaceText, "Perfect"), 600, 25, "white"); if ((RaceProgress >= RaceGoal) && !RacePerfect) DrawText(GetCSVText(RaceText, "Victory"), 600, 25, "white"); if (RaceProgress < RaceGoal) DrawText(GetCSVText(RaceText, "Defeat"), 600, 25, "white"); @@ -308,17 +308,17 @@ function C999_Common_Race_Run() { // When a key is pressed while racing (for both keyboard and mobile) function C999_Common_Race_KeyDown() { - + // If the race has started, we check the key pressed and send it as a race move if ((RaceTimer > RaceStartTime) && !RaceEnded) { - + var MoveType = -1; for(T = 0; T <= 7; T++) - if ((KeyPress == RaceMovesTypeKeyUpper[T]) || (KeyPress == RaceMovesTypeKeyLower[T])) + if ((KeyPress == RaceMovesTypeKeyUpper[T]) || (KeyPress == RaceMovesTypeKeyLower[T])) MoveType = T; RaceDoMove(MoveType); } - + } // When a click is done while racing (only works on mobile) diff --git a/C999_Common/Rope/Text_EN.csv b/C999_Common/Rope/Text_EN.csv index e5fe6c42a6..b244472d98 100644 --- a/C999_Common/Rope/Text_EN.csv +++ b/C999_Common/Rope/Text_EN.csv @@ -1,3 +1,3 @@ Tag,Content ConfirmSelfBondage,You know the ropes and can tie yourself up but you|might not be able to get out. Do you want to do it? -BadTiming,You fantasizes about tying yourself up but realize|that it might not be the best time for that. +BadTiming,You fantasize about tying yourself up but realize|that it might not be the best time for that. diff --git a/C999_Common/SockGag/Stage_CN.csv b/C999_Common/SockGag/Stage_CN.csv index 28e18d416c..63c27aefd1 100644 --- a/C999_Common/SockGag/Stage_CN.csv +++ b/C999_Common/SockGag/Stage_CN.csv @@ -3,6 +3,6 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 0,0,0,Common_PlayerNotRestrained,(Gag yourself.)ADD_MINUTES:1,"You stuff the sock into your mouth,|pushing it all in and packing it full.",10,0,0,SelfGag() 10,0,0,HasLooseSockGag,(Inspect the loose gag.)ADD_MINUTES:1,"An odd sock is not much use for wearing,|but it would pack full even the biggest mouth.",10,0,0,ShowImage() 10,0,0,,(Chew on the sock.)ADD_MINUTES:1,You chew on the sock wad.|It slowly becomes soaked by your own drool.,10,0,0, -10,0,0,,(Suck on the sock.)ADD_MINUTES:1,"You suck on the sock, savouting the taste|and wondering how clean it was.",10,0,0, +10,0,0,,(Suck on the sock.)ADD_MINUTES:1,"You suck on the sock, savoring the taste|and wondering how clean it was.",10,0,0, 10,0,0,!HasOtherGag,(Spit out the sock.)ADD_MINUTES:1,You spit the sodden sock out of|your mouth and can now talk again.,0,0,0,SelfUngag() 10,0,0,HasOtherGag,(Spit out the sock.)ADD_MINUTES:1,"You try to spit the sock out, but the other gag has|them trapped. You'll need to remove that first.",10,0,0, diff --git a/C999_Common/SockGag/Stage_EN.csv b/C999_Common/SockGag/Stage_EN.csv index 28e18d416c..63c27aefd1 100644 --- a/C999_Common/SockGag/Stage_EN.csv +++ b/C999_Common/SockGag/Stage_EN.csv @@ -3,6 +3,6 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 0,0,0,Common_PlayerNotRestrained,(Gag yourself.)ADD_MINUTES:1,"You stuff the sock into your mouth,|pushing it all in and packing it full.",10,0,0,SelfGag() 10,0,0,HasLooseSockGag,(Inspect the loose gag.)ADD_MINUTES:1,"An odd sock is not much use for wearing,|but it would pack full even the biggest mouth.",10,0,0,ShowImage() 10,0,0,,(Chew on the sock.)ADD_MINUTES:1,You chew on the sock wad.|It slowly becomes soaked by your own drool.,10,0,0, -10,0,0,,(Suck on the sock.)ADD_MINUTES:1,"You suck on the sock, savouting the taste|and wondering how clean it was.",10,0,0, +10,0,0,,(Suck on the sock.)ADD_MINUTES:1,"You suck on the sock, savoring the taste|and wondering how clean it was.",10,0,0, 10,0,0,!HasOtherGag,(Spit out the sock.)ADD_MINUTES:1,You spit the sodden sock out of|your mouth and can now talk again.,0,0,0,SelfUngag() 10,0,0,HasOtherGag,(Spit out the sock.)ADD_MINUTES:1,"You try to spit the sock out, but the other gag has|them trapped. You'll need to remove that first.",10,0,0, diff --git a/C999_Common/SockGag/Stage_FR.csv b/C999_Common/SockGag/Stage_FR.csv index 28e18d416c..63c27aefd1 100644 --- a/C999_Common/SockGag/Stage_FR.csv +++ b/C999_Common/SockGag/Stage_FR.csv @@ -3,6 +3,6 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function 0,0,0,Common_PlayerNotRestrained,(Gag yourself.)ADD_MINUTES:1,"You stuff the sock into your mouth,|pushing it all in and packing it full.",10,0,0,SelfGag() 10,0,0,HasLooseSockGag,(Inspect the loose gag.)ADD_MINUTES:1,"An odd sock is not much use for wearing,|but it would pack full even the biggest mouth.",10,0,0,ShowImage() 10,0,0,,(Chew on the sock.)ADD_MINUTES:1,You chew on the sock wad.|It slowly becomes soaked by your own drool.,10,0,0, -10,0,0,,(Suck on the sock.)ADD_MINUTES:1,"You suck on the sock, savouting the taste|and wondering how clean it was.",10,0,0, +10,0,0,,(Suck on the sock.)ADD_MINUTES:1,"You suck on the sock, savoring the taste|and wondering how clean it was.",10,0,0, 10,0,0,!HasOtherGag,(Spit out the sock.)ADD_MINUTES:1,You spit the sodden sock out of|your mouth and can now talk again.,0,0,0,SelfUngag() 10,0,0,HasOtherGag,(Spit out the sock.)ADD_MINUTES:1,"You try to spit the sock out, but the other gag has|them trapped. You'll need to remove that first.",10,0,0, diff --git a/C999_Common/SockGag/Text_CN.csv b/C999_Common/SockGag/Text_CN.csv index 64aade2b17..6f2f2d48ed 100644 --- a/C999_Common/SockGag/Text_CN.csv +++ b/C999_Common/SockGag/Text_CN.csv @@ -1,3 +1,3 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. OtherGag,You can put a sock into your|mouth with another gag block it. diff --git a/C999_Common/SockGag/Text_EN.csv b/C999_Common/SockGag/Text_EN.csv index 64aade2b17..6f2f2d48ed 100644 --- a/C999_Common/SockGag/Text_EN.csv +++ b/C999_Common/SockGag/Text_EN.csv @@ -1,3 +1,3 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. OtherGag,You can put a sock into your|mouth with another gag block it. diff --git a/C999_Common/SockGag/Text_FR.csv b/C999_Common/SockGag/Text_FR.csv index 64aade2b17..6f2f2d48ed 100644 --- a/C999_Common/SockGag/Text_FR.csv +++ b/C999_Common/SockGag/Text_FR.csv @@ -1,3 +1,3 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. OtherGag,You can put a sock into your|mouth with another gag block it. diff --git a/C999_Common/TapeGag/Text_EN.csv b/C999_Common/TapeGag/Text_EN.csv index 63bb551e2b..93239c973e 100644 --- a/C999_Common/TapeGag/Text_EN.csv +++ b/C999_Common/TapeGag/Text_EN.csv @@ -1,2 +1,2 @@ Tag,Content -BadTiming,You fantasizes about being gagged but realize that|it might not be the best time to gag yourself. +BadTiming,You fantasize about being gagged but realize that|it might not be the best time to gag yourself. diff --git a/Cheat.js b/Cheat.js index a9bb9a325f..33e0b0559e 100644 --- a/Cheat.js +++ b/Cheat.js @@ -2,20 +2,20 @@ var CheatAllow = false; // Receives cheat keys function CheatKey() { - + // No cheats until the player has a name if (Common_PlayerName != "") { - + // In a fight or a race, the user can press * to win automatically if (!FightEnded && (FightTimer > 0)) { if (KeyPress == 42) FightEnd(true); return; } if (!DoubleFightEnded && (DoubleFightTimer > 0)) { if (KeyPress == 42) DoubleFightEnd(true); return; } if (!RaceEnded && (RaceTimer > 0)) { if (KeyPress == 42) { RaceProgress = RaceGoal; RaceEnd(true); } return; } if (!QuizEnded && (QuizTimer > 0) && (QuizBetweenQuestionTimer == 0) && (QuizAnswerText == "")) { if (KeyPress == 42) { QuizAnswerText = QuizQuestion[QuizProgressLeft + QuizProgressRight][QuizQuestionAnswer1]; QuizAnswerBy = "Left"; QuizProgressLeft++; QuizBetweenQuestionTimer = QuizTimer + QuizOtherQuestionTime; } return; } - + // If we must manipulate time using + and - if (KeyPress == 43) CheatTime(900000); if (KeyPress == 45) CheatTime(-900000); - + // Specific cheats by functions if (CurrentActor != "") CheatActor(); if ((CurrentChapter == "C012_AfterClass") && (CurrentScreen == "Dorm")) CheatDorm(); @@ -88,7 +88,7 @@ function CheatDorm() { if ((KeyPress == 42) && !GameLogQuery(CurrentChapter, "", "EventGrounded")) { PlayerReleaseBondage(); if (PlayerHasLockedInventory("ChastityBelt")) { PlayerUnlockInventory("ChastityBelt"); PlayerAddInventory("ChastityBelt", 1); } - if (PlayerHasLockedInventory("VibratingEgg")) { PlayerUnlockInventory("VibratingEgg"); PlayerAddInventory("VibratingEgg", 1); } + if (PlayerHasLockedInventory("VibratingEgg")) { PlayerUnlockInventory("VibratingEgg"); PlayerAddInventory("VibratingEgg", 1); } } } \ No newline at end of file diff --git a/Common.js b/Common.js index d498c088e2..9db471c7c9 100644 --- a/Common.js +++ b/Common.js @@ -102,7 +102,7 @@ function DetectMobile() { // Parse a CSV file function ParseCSV(str) { - + var arr = []; var quote = false; // true means we're inside a quoted field @@ -115,7 +115,7 @@ function ParseCSV(str) { // If the current character is a quotation mark, and we're inside a // quoted field, and the next character is also a quotation mark, // add a quotation mark to the current column and skip the next character - if (cc == '"' && quote && nc == '"') { arr[row][col] += cc; ++c; continue; } + if (cc == '"' && quote && nc == '"') { arr[row][col] += cc; ++c; continue; } // If it's just one quotation mark, begin/end quoted field if (cc == '"') { quote = !quote; continue; } @@ -140,12 +140,12 @@ function ReadCSV(Array, ChapterOrPath, Screen, Type, Language) { var Path = (Screen && Type) ? ChapterOrPath + "/" + Screen + "/" + Type + (Language ? "_" : "") + (Language || "") + ".csv" : ChapterOrPath; - + if (CSVCache[Path]) { window[Array] = CSVCache[Path]; return; } - + // Opens the file, parse it and returns the result in an array Get(Path, function() { if (this.status == 200) { @@ -195,7 +195,7 @@ function GetWorkingLanguageForChapter(Chapter) { } // Load the interactions from a scene and keep it in common variable -function LoadInteractions() { +function LoadInteractions() { ReadCSV("CurrentIntro", CurrentChapter, CurrentScreen, "Intro", GetWorkingLanguage()); ReadCSV("CurrentStage", CurrentChapter, CurrentScreen, "Stage", GetWorkingLanguage()); LoadText(); @@ -216,7 +216,7 @@ function DynamicFunction(FunctionName) { // Set the current scene (chapter and screen) function SetScene(Chapter, Screen) { - + // Keep the chapter and screen CurrentStage = null; CurrentIntro = null; @@ -235,15 +235,15 @@ function SetScene(Chapter, Screen) { // Load the screen code DynamicFunction(CurrentChapter + "_" + CurrentScreen + "_Load()"); - + } // Validates if any interaction was clicked function ClickInteraction(CurrentStagePosition) { - + // Make sure the current stage is loaded if (CurrentStage != null) { - + // If a regular option was clicked, we process it var Pos = 0; for (var L = 0; L < CurrentStage.length; L++) @@ -281,13 +281,13 @@ function GetText(Tag) { // Make sure the text CSV file is loaded if (CurrentText != null) { - + // Cycle the text to find a matching tag and returns the text content Tag = Tag.trim().toUpperCase(); for (var T = 0; T < CurrentText.length; T++) if (CurrentText[T][TextTag].trim().toUpperCase() == Tag) return CurrentText[T][TextContent].trim(); - + // Returns an error message return "MISSING TEXT FOR TAG: " + Tag.trim(); @@ -300,13 +300,13 @@ function GetCSVText(CSVText, Tag) { // Make sure the text CSV file is loaded if (CSVText != null) { - + // Cycle the text to find a matching tag and returns the text content Tag = Tag.trim().toUpperCase(); for (var T = 0; T < CSVText.length; T++) if (CSVText[T][TextTag].trim().toUpperCase() == Tag) return CSVText[T][TextContent].trim(); - + // Returns an error message return "MISSING TEXT FOR TAG: " + Tag.trim(); @@ -316,15 +316,15 @@ function GetCSVText(CSVText, Tag) { // Triggers the leave or wait button if needed function LeaveButtonClick() { - + // If the wait option was clicked, we skip 2 minutes if (LeaveIcon == "Wait") - if ((MouseX >= 1125) && (MouseX <= 1200) && (MouseY >= 600) && (MouseY <= 675)) + if ((MouseX >= 1125) && (MouseX <= 1200) && (MouseY >= 600) && (MouseY <= 675)) CurrentTime = CurrentTime + 120000; // If the leave option was clicked, we return to the previous screen if ((LeaveIcon == "Leave") && (LeaveScreen != "")) - if ((MouseX >= 1125) && (MouseX <= 1200) && (MouseY >= 600) && (MouseY <= 675)) + if ((MouseX >= 1125) && (MouseX <= 1200) && (MouseY >= 600) && (MouseY <= 675)) SetScene(LeaveChapter, LeaveScreen); } diff --git a/Drawing.js b/Drawing.js index 94ed65f48b..12b3f3425c 100644 --- a/Drawing.js +++ b/Drawing.js @@ -1,7 +1,7 @@ // The main game canvas where everything will be drawn var MainCanvas; -// A bank of all the chached images +// A bank of all the cached images var CacheImage = {}; // Icons bank and paths @@ -44,7 +44,7 @@ function DrawGetImage(Source) { // returns the final image return CacheImage[Source]; } - + // Draw a zoomed image from a source to the canvas function DrawImageZoom(Source, SX, SY, SWidth, SHeight, X, Y, Width, Height) { MainCanvas.drawImage(DrawGetImage(Source), SX, SY, Math.round(SWidth), Math.round(SHeight), X, Y, Width, Height); @@ -96,7 +96,7 @@ function DrawText(Text, X, Y, Color) { else { MainCanvas.fillText(Text.substring(0, Text.indexOf("|")), X, Y - 19); MainCanvas.fillText(Text.substring(Text.indexOf("|") + 1, 1000), X, Y + 19); - } + } } @@ -106,27 +106,27 @@ function DrawButton(Left, Top, Width, Height, Label) { // Draw the button rectangle MainCanvas.beginPath(); MainCanvas.rect(Left, Top, Width, Height); - MainCanvas.fillStyle = 'white'; + MainCanvas.fillStyle = 'white'; MainCanvas.fillRect(Left, Top, Width, Height); - MainCanvas.fill(); + MainCanvas.fill(); MainCanvas.lineWidth = '2'; MainCanvas.strokeStyle = 'black'; MainCanvas.stroke(); MainCanvas.closePath(); - + // Draw the text DrawText(Label, Left + Width / 2, Top + Height / 2, "black"); - + } // Draw a basic rectangle function DrawRect(Left, Top, Width, Height, Color) { MainCanvas.beginPath(); MainCanvas.rect(Left, Top, Width, Height); - MainCanvas.fillStyle = Color; + MainCanvas.fillStyle = Color; MainCanvas.fillRect(Left, Top, Width, Height); - MainCanvas.fill(); - MainCanvas.closePath(); + MainCanvas.fill(); + MainCanvas.closePath(); } // Draw a basic circle @@ -135,19 +135,19 @@ function DrawCircle(CenterX, CenterY, Radius, LineWidth, LineColor) { MainCanvas.arc(CenterX, CenterY, Radius, 0, 2 * Math.PI, false); MainCanvas.lineWidth = LineWidth; MainCanvas.strokeStyle = LineColor; - MainCanvas.stroke(); + MainCanvas.stroke(); } // Draw --- if zero, +value in green if positive, -value in red if negative -function DrawPosNegValue(Value, X, Y) { +function DrawPosNegValue(Value, X, Y) { if (Value == 0) DrawText("---", X, Y, "black"); if (Value > 0) DrawText("+" + Value.toString(), X, Y, "#00BB00"); - if (Value < 0) DrawText(Value.toString(), X, Y, "#BB0000"); + if (Value < 0) DrawText(Value.toString(), X, Y, "#BB0000"); } // Draw the current actor stats toward the player function DrawActorStats(Left, Top) { - + // Draw the actor name and icon DrawText(ActorGetDisplayName(), Left - 200, Top + 17, "black"); if (CurrentActor == Common_PlayerLover) DrawImage("Icons/Lover.png", Left - 110, Top); @@ -168,12 +168,12 @@ function DrawActorStats(Left, Top) { function DrawIntro(Intro, CurrentStagePosition, LoveLevel, SubLevel) { // Draw the top box and stats - DrawRect(0, 0, 599, 150, "White"); + DrawRect(0, 0, 599, 150, "White"); if (CurrentActor != "") { DrawRect(30, 60, 539, 1, "Black"); DrawActorStats(300, 15); } - + // Find the correct intro text var ShowText = ""; if (OverridenIntroText != "") @@ -187,7 +187,7 @@ function DrawIntro(Intro, CurrentStagePosition, LoveLevel, SubLevel) { // Draw the intro if (CurrentActor != "") DrawText(ShowText, 300, 105, "black"); else DrawText(ShowText, 300, 75, "black"); - + } // Draw a selectable option on the screen @@ -195,32 +195,32 @@ function DrawOption(OptionText, Left, Top) { // Draw the rectangle and text if (OptionText.substr(0, 1) == "@") OptionText = OptionText.substr(1); - DrawRect(Left, Top, 299, 89, "White"); + DrawRect(Left, Top, 299, 89, "White"); if ((MouseX >= Left) && (MouseX <= Left + 299) && (MouseY >= Top) && (MouseY <= Top + 89) && !IsMobile) DrawText(OptionText, Left + 150, Top + 45, "#00BB00"); - else DrawText(OptionText, Left + 150, Top + 45, "#BB0000"); - + else DrawText(OptionText, Left + 150, Top + 45, "#BB0000"); + } -// Draw all the possible interactions +// Draw all the possible interactions function DrawInteraction(Stage, CurrentStagePosition, LoveLevel, SubLevel) { // Find all the correct interactions for the current stage var Pos = 0; for (var S = 0; S < Stage.length; S++) - if (Stage[S][StageNumber] == CurrentStagePosition) + if (Stage[S][StageNumber] == CurrentStagePosition) if (ActorInteractionAvailable(Stage[S][StageLoveReq], Stage[S][StageSubReq], Stage[S][StageVarReq], Stage[S][StageInteractionText], false)) { - + // Draw the box and interaction DrawOption(Stage[S][StageInteractionText], (Pos % 2) * 300, 151 + (Math.round((Pos - 1) / 2) * 90)); - Pos = Pos + 1; - + Pos = Pos + 1; + } - + } -// Find the current image file +// Find the current image file function FindImage(Intro, CurrentStagePosition) { - + // The image file is a column in the intro CSV file var ImageName = ""; if (OverridenIntroImage != "") @@ -277,10 +277,10 @@ function DrawInventory() { DrawImage("Icons/" + GetPlayerIconImage() + "_Active.png", 0, 601); else DrawImage("Icons/" + GetPlayerIconImage() + "_Inactive.png", 0, 601); - + // Draw an arrow over the player head if there's a skill level up if (PlayerSkillShowLevelUp > 0) DrawImage("Icons/SkillLevelUp.png", 0, 601); - + // Scroll in the full inventory to draw the icons and quantity, draw a padlock over the item if it's locked var Pos = 1; for (var I = 0; I < PlayerInventory.length; I++) { @@ -291,7 +291,7 @@ function DrawInventory() { // 11 positions for the items if (Pos <= 11) { var ImgState = "Inactive"; - if (((MouseX >= 1 + Pos * 75) && (MouseX <= 74 + Pos * 75) && (MouseY >= 601) && (MouseY <= 674)) || (IsMobile)) ImgState = "Active"; + if (((MouseX >= 1 + Pos * 75) && (MouseX <= 74 + Pos * 75) && (MouseY >= 601) && (MouseY <= 674)) || (IsMobile)) ImgState = "Active"; DrawImage("Icons/" + PlayerInventory[I][PlayerInventoryName] + "_" + ImgState + ".png", 1 + Pos * 75, 601); DrawText(PlayerInventory[I][PlayerInventoryQuantity].toString(), Pos * 75 + 64, 661, "#000000"); if (PlayerHasLockedInventory(PlayerInventory[I][PlayerInventoryName])) @@ -304,13 +304,13 @@ function DrawInventory() { if (((MouseX >= 1 + Pos * 75) && (MouseX <= 74 + Pos * 75) && (MouseY >= 601) && (MouseY <= 674)) || (IsMobile)) ImgState = "Active"; DrawImage("Icons/SecondInventoryTab_" + ImgState + ".png", 1 + Pos * 75, 601); } - + }; - + // Second inventory tab - if ((Pos >= 12) && (PlayerInventoryTab == 1)) { + if ((Pos >= 12) && (PlayerInventoryTab == 1)) { var ImgState = "Inactive"; - if (((MouseX >= 1 + (Pos - 11) * 75) && (MouseX <= 74 + (Pos - 11) * 75) && (MouseY >= 601) && (MouseY <= 674)) || (IsMobile)) ImgState = "Active"; + if (((MouseX >= 1 + (Pos - 11) * 75) && (MouseX <= 74 + (Pos - 11) * 75) && (MouseY >= 601) && (MouseY <= 674)) || (IsMobile)) ImgState = "Active"; DrawImage("Icons/" + PlayerInventory[I][PlayerInventoryName] + "_" + ImgState + ".png", 1 + (Pos - 11) * 75, 601); DrawText(PlayerInventory[I][PlayerInventoryQuantity].toString(), (Pos - 11) * 75 + 64, 661, "#000000"); if (PlayerHasLockedInventory(PlayerInventory[I][PlayerInventoryName])) @@ -319,11 +319,11 @@ function DrawInventory() { // Jumps to the next position Pos = Pos + 1; - + } // Scroll in the locked inventory also to find items that were not loaded - for (var I = 0; I < PlayerLockedInventory.length; I++) + for (var I = 0; I < PlayerLockedInventory.length; I++) if (!PlayerHasInventory(PlayerLockedInventory[I])) { // First inventory tab @@ -336,7 +336,7 @@ function DrawInventory() { DrawImage("Icons/Lock_Active.png", Pos * 75, 600); } else { - DrawImage("Icons/" + PlayerLockedInventory[I] + "_Inactive.png", 1 + Pos * 75, 601); + DrawImage("Icons/" + PlayerLockedInventory[I] + "_Inactive.png", 1 + Pos * 75, 601); DrawImage("Icons/Lock_Inactive.png", Pos * 75, 600); } } @@ -349,15 +349,15 @@ function DrawInventory() { } } - + // Second inventory tab - if ((Pos >= 12) && (PlayerInventoryTab == 1)) { + if ((Pos >= 12) && (PlayerInventoryTab == 1)) { if (((MouseX >= 1 + (Pos - 11) * 75) && (MouseX <= 74 + (Pos - 11) * 75) && (MouseY >= 601) && (MouseY <= 674)) || (IsMobile)) { DrawImage("Icons/" + PlayerLockedInventory[I] + "_Active.png", 1 + (Pos - 11) * 75, 601); DrawImage("Icons/Lock_Active.png", (Pos - 11) * 75, 600); } else { - DrawImage("Icons/" + PlayerLockedInventory[I] + "_Inactive.png", 1 + (Pos - 11) * 75, 601); + DrawImage("Icons/" + PlayerLockedInventory[I] + "_Inactive.png", 1 + (Pos - 11) * 75, 601); DrawImage("Icons/Lock_Inactive.png", (Pos - 11) * 75, 600); } }; @@ -366,7 +366,7 @@ function DrawInventory() { Pos = Pos + 1; }; - + // On the second tab, we put an arrow to go back to the first tab if ((Pos >= 12) && (PlayerInventoryTab == 1)) { var ImgState = "Inactive"; @@ -400,16 +400,16 @@ function BuildBottomBar() { // Returns the name of the image file to use to draw the player function DrawGetPlayerImageName(IncludePose) { - + // Get the first part of the image var ImageCloth = "Clothed"; if (Common_PlayerUnderwear) ImageCloth = "Underwear"; if (Common_PlayerNaked) ImageCloth = "Naked"; if ((Common_PlayerUnderwear || Common_PlayerNaked) && PlayerHasLockedInventory("ChastityBelt")) ImageCloth = "ChastityBelt"; if (Common_PlayerCostume != "") ImageCloth = Common_PlayerCostume - + // Second part is the type of bondage - var ImageBondage = "_NoBondage"; + var ImageBondage = "_NoBondage"; if (PlayerHasLockedInventory("Cuffs") == true) ImageBondage = "_Cuffs"; if (PlayerHasLockedInventory("Rope") == true) ImageBondage = "_Rope"; if (PlayerHasLockedInventory("Armbinder") == true) ImageBondage = "_Armbinder"; @@ -420,7 +420,7 @@ function DrawGetPlayerImageName(IncludePose) { if (PlayerHasLockedInventory("Collar")) ImageCollar = "_Collar"; else ImageCollar = "_NoCollar"; } - + // Fourth part is the gag var ImageGag = "_NoGag"; if (PlayerHasLockedInventory("BallGag") == true) ImageGag = "_BallGag"; @@ -429,7 +429,7 @@ function DrawGetPlayerImageName(IncludePose) { if (PlayerHasLockedInventory("DoubleOpenGag") == true) ImageGag = "_DoubleOpenGag"; // Fifth part is the blindfold - var ImageBlindfold = ""; + var ImageBlindfold = ""; if (PlayerHasLockedInventory("Blindfold") == true) ImageBlindfold = "_Blindfold"; // Sixth part is the pose @@ -449,7 +449,7 @@ function DrawPlayerImage(X, Y) { } else { if ((X == 0) && (Y == 0)) DrawImage("C999_Common/Player/" + DrawGetPlayerImageName(false) + ".jpg", 600, 0); else DrawImageZoom("C999_Common/Player/" + DrawGetPlayerImageName(false) + ".jpg", X, Y, 600, 600, 600, 0, 1200, 1200); - } + } } // Draw the transparent player image (600x900) with a zoom if required @@ -459,10 +459,10 @@ function DrawTransparentPlayerImage(X, Y, Zoom) { // Draw the transparent actor over the current background function DrawActor(ActorToDraw, X, Y, Zoom) { - + // Validate first if we must draw the transparent player image if (ActorToDraw == "Player") { - DrawTransparentPlayerImage(X, Y, Zoom); + DrawTransparentPlayerImage(X, Y, Zoom); } else { // First, we retrieve the current clothes @@ -471,7 +471,7 @@ function DrawActor(ActorToDraw, X, Y, Zoom) { if (((ImageCloth == "Underwear") || (ImageCloth == "Naked")) && ActorSpecificHasInventory(ActorToDraw, "ChastityBelt")) ImageCloth = "ChastityBelt"; // Second part is the type of bondage - var ImageBondage = "_NoBondage"; + var ImageBondage = "_NoBondage"; if (ActorSpecificHasInventory(ActorToDraw, "Cuffs")) ImageBondage = "_Cuffs"; if (ActorSpecificHasInventory(ActorToDraw, "Rope")) ImageBondage = "_Rope"; if (ActorSpecificHasInventory(ActorToDraw, "TwoRopes")) ImageBondage = "_TwoRopes"; @@ -491,7 +491,7 @@ function DrawActor(ActorToDraw, X, Y, Zoom) { if (ActorSpecificHasInventory(ActorToDraw, "ClothGag")) ImageGag = "_ClothGag"; // Fifth part is the blindfold - var ImageBlindfold = ""; + var ImageBlindfold = ""; if (ActorSpecificHasInventory(ActorToDraw, "Blindfold")) ImageBlindfold = "_Blindfold"; // Fourth part is the pose @@ -500,7 +500,7 @@ function DrawActor(ActorToDraw, X, Y, Zoom) { // Draw the full image from all parts DrawImageZoom("Actors/" + ActorToDraw + "/" + ImageCloth + ImageBondage + ImageCollar + ImageGag + ImageBlindfold + ImagePose + ".png", 0, 0, 600, 900, X, Y, 600 * Zoom, 900 * Zoom); - + } } diff --git a/Event.js b/Event.js index 2f0b6e0763..ea01a519c6 100644 --- a/Event.js +++ b/Event.js @@ -42,11 +42,11 @@ function EventRandomPlayerPunishment() { // Draw a punishment type at random var PunishmentType = EventPunishmentList[Math.floor(Math.random() * EventPunishmentList.length)]; - + // If the event is valid for that actor var PunishmentStage = GetText("Punishment" + PunishmentType); if (IsNumeric(PunishmentStage)) { - + // Check if the event can be done if (PunishmentType == "Grounded") Result = parseInt(PunishmentStage); if ((PunishmentType == "Spanked") && !GameLogQuery(CurrentChapter, "", "EventSpanked")) Result = parseInt(PunishmentStage); @@ -59,7 +59,7 @@ function EventRandomPlayerPunishment() { } // Returns the punishment type which will become the dialog number - return Result; + return Result; } @@ -69,12 +69,12 @@ function EventRandomPlayerSubmissive() { // Until we find a proper event var Result = 0; while (Result == 0) { - + // Draw an event type at random, make sure it doesn't repeat var EventType = EventLastRandomType; while (EventType == EventLastRandomType) EventType = EventList[Math.floor(Math.random() * EventList.length)]; - + // If the event is valid for that actor var EventStage = GetText("Event" + EventType); if (IsNumeric(EventStage)) { @@ -109,7 +109,7 @@ function EventRandomPlayerSubmissive() { // Returns the event type which will become the dialog number EventLastRandomType = EventType; return Result; - + } // Log the end of an event, if it's the first time, it can change the actor attitude @@ -122,38 +122,38 @@ function EventLogEnd() { EventActivityCurrent = ""; } - + // When an activity event is registered function EventDoActivity(EventActivityType, EventLoveFactor, EventCurrentStage, EventEndStage, EventBonusStage) { - + // If it's a new activity if (EventActivityCurrent != EventActivityType) { - + // Reset the count and sets the pose ActorSetPose(EventActivityType); EventActivityCurrent = EventActivityType; EventActivityCount = 0; EventActivityLove = 0; - + // The number of times the activity will be done depends on the love or hate if ((EventActivityType == "Tickle") || (EventActivityType == "Masturbate")) EventActivityMaxCount = 5 + Math.floor(ActorGetValue(ActorLove) / 10); else EventActivityMaxCount = 5 - Math.floor(ActorGetValue(ActorLove) / 10); if (EventActivityMaxCount < 4) EventActivityMaxCount = 4; if (EventActivityMaxCount > 8) EventActivityMaxCount = 8; - + } - + // Increments the activity EventActivityCount++; EventActivityLove = EventActivityLove + EventLoveFactor; - + // If a bonus event can be achieved if ((EventActivityCount >= 3) && (EventBonusStage > 0)) { - + // 20% bonus chance (+20% if masturbated with an egg) var BonusChance = Math.floor(Math.random() * 100); if ((EventActivityType == "Masturbate") && PlayerHasLockedInventory("VibratingEgg")) BonusChance = BonusChance + 20; - + // If we have the bonus, we log and jump to that stage if (BonusChance >= 80) { EventLogEnd(); @@ -162,10 +162,10 @@ function EventDoActivity(EventActivityType, EventLoveFactor, EventCurrentStage, } } - + // When the activity is over if (EventActivityCount >= EventActivityMaxCount) { - + // Log the activity and ends it EventLogEnd() if (EventActivityLove > 0) OverridenIntroText = GetText("ActivityEndGood"); @@ -173,10 +173,10 @@ function EventDoActivity(EventActivityType, EventLoveFactor, EventCurrentStage, if (EventActivityLove < 0) OverridenIntroText = GetText("ActivityEndBad"); ActorSetPose(""); return EventEndStage; - + } - + // FALSE means the activity isn't over return EventCurrentStage; - + } \ No newline at end of file diff --git a/GameLog.js b/GameLog.js index ca29dda67e..3a869f5d04 100644 --- a/GameLog.js +++ b/GameLog.js @@ -14,7 +14,7 @@ function GameLogSpecificAdd(ChapterToLog, ActorToLog, EventToLog) { for (var L = 0; L < GameLog.length; L++) if ((ChapterToLog == GameLog[L][GameLogChapter]) && (ActorToLog == GameLog[L][GameLogActor]) && (EventToLog == GameLog[L][GameLogEvent])) return; - + // Log the event GameLog[GameLog.length] = [ChapterToLog, ActorToLog, EventToLog, 0]; diff --git a/Inventory.js b/Inventory.js index d62d9a2ede..3271dfd157 100644 --- a/Inventory.js +++ b/Inventory.js @@ -8,7 +8,7 @@ var PlayerInventoryTab = 0; // Set up the player clothes or costume function PlayerClothes(NewCloth) { if ((NewCloth != "Clothed") && (NewCloth != "Underwear") && (NewCloth != "Naked")) Common_PlayerCostume = NewCloth; - else Common_PlayerCostume = ""; + else Common_PlayerCostume = ""; Common_PlayerCloth = NewCloth; Common_PlayerUnderwear = (NewCloth == "Underwear"); Common_PlayerNaked = (NewCloth == "Naked"); @@ -42,10 +42,10 @@ function PlayerLockInventory(NewInventory) { // Check if the item is already locked before adding it for (var I = 0; I < PlayerLockedInventory.length; I++) if (PlayerLockedInventory[I] == NewInventory) - return; + return; PlayerLockedInventory.push(NewInventory); LoadRestrainStatus(); - + // If there's rope/armbinder and a costume, we strip the player if (((NewInventory == "Rope") || (NewInventory == "Armbinder")) && (Common_PlayerCostume != "") && (Common_PlayerCostume != "BlackDress") && (Common_PlayerCostume != "WhiteLingerie") && (Common_PlayerCostume != "RedBikini")) PlayerClothes("Underwear"); @@ -79,13 +79,13 @@ function PlayerUnlockAllInventory(UnlockedInventory) { // Returns true if the player has the locked inventory function PlayerHasLockedInventory(QueryInventory) { - + // Returns true if we find the locked inventory item for (var I = 0; I < PlayerLockedInventory.length; I++) if (QueryInventory == PlayerLockedInventory[I]) return true; return false; - + } // Add a new item to the inventory if it's not already there @@ -98,16 +98,16 @@ function PlayerAddInventory(NewInventory, NewQuantity) { if (PlayerInventory[I][PlayerInventoryQuantity] > 99) PlayerInventory[I][PlayerInventoryQuantity] = 99; return; } - + // If not, we create the new inventory data if (NewQuantity > 99) NewQuantity = 99; PlayerInventory[PlayerInventory.length] = [NewInventory, NewQuantity]; - + } // Remove an item from the player inventory function PlayerRemoveInventory(RemInventory, RemQuantity) { - + // Search for current inventory and remove the item for (var I = 0; I < PlayerInventory.length; I++) if (RemInventory == PlayerInventory[I][PlayerInventoryName]) @@ -136,13 +136,13 @@ function PlayerRemoveHalfInventory() { // Returns true if the player has the queried inventory function PlayerHasInventory(QueryInventory) { - + // Returns true if we find the inventory item for (var I = 0; I < PlayerInventory.length; I++) if (QueryInventory == PlayerInventory[I][PlayerInventoryName]) return true; return false; - + } // Pick a random restrain and applies it on the player @@ -179,7 +179,7 @@ function PlayerRandomGag() { // Applies it on the player if (G != "") { PlayerRemoveInventory(G, 1); PlayerLockInventory(G); } - + } // Restrains the player randomly from her own inventory @@ -225,7 +225,7 @@ function PlayerInventoryTotalQuantity() { // Returns the name of the inventory item that was clicked in the bottom menu function GetClickedInventory() { - + // Returns the item name based on the position of the mouse var Inv = ""; if ((MouseX <= 975) && (MouseY >= 601) && (MouseY <= 674)) { @@ -233,7 +233,7 @@ function GetClickedInventory() { // Check if the player icon was clicked if ((MouseX >= 1) && (MouseX <= 74)) Inv = "Player"; - + // Check in the regular inventory var I; if (Inv == "") @@ -242,10 +242,10 @@ function GetClickedInventory() { if (MouseX < 900) Inv = PlayerInventory[I][PlayerInventoryName]; else PlayerInventoryTab = 1; } - + // Check in the locked inventory if (Inv == "") - for (var L = 0; L < PlayerLockedInventory.length; L++) + for (var L = 0; L < PlayerLockedInventory.length; L++) if (!PlayerHasInventory(PlayerLockedInventory[L])) { if ((MouseX >= 1 + (I + 1 - (PlayerInventoryTab * 11)) * 75) && (MouseX <= 74 + (I + 1 - (PlayerInventoryTab * 11)) * 75)) { if (MouseX < 900) Inv = "Locked_" + PlayerLockedInventory[L]; diff --git a/SaveState.js b/SaveState.js index 79c0702780..e85f77a20e 100644 --- a/SaveState.js +++ b/SaveState.js @@ -14,7 +14,7 @@ function SaveMenu(NextChapter, NextScreen) { function SaveStateGetSummary(SlotNumber) { // Fetch the data - var SN = SlotNumber.toString(); + var SN = SlotNumber.toString(); var Summary = "@" + GetText("NoSaveOnSlot") + " " + SN; if (localStorage.getItem("SaveGameVersion" + SN)) if (localStorage.getItem("SaveGameVersion" + SN) == SaveGameVersion) { @@ -25,7 +25,7 @@ function SaveStateGetSummary(SlotNumber) { SaveStateChapter = SaveStateChapter.substr(1, 100); Summary = "@" + SaveStatePlayerName.substr(0, 10) + " - " + GetText("Chapter") + " " + SaveStateChapter + "|" + SaveStateDateTime; } - + // Returns the summary return Summary; @@ -44,16 +44,16 @@ function SaveStateSlotSummary() { CurrentStage[Slot][StageInteractionText] = SaveStateGetSummary(Slot); Slot++; } - + } } // Save the game state on a specific slot function SaveState(SlotNumber) { - + // Save the current state of the game and the transitional variables - var SN = SlotNumber.toString(); + var SN = SlotNumber.toString(); localStorage.setItem("SaveGameVersion" + SN, SaveGameVersion); localStorage.setItem("SaveGameDateTime" + SN, GetFormatDate()); localStorage.setItem("CurrentChapter" + SN, SaveChapter); @@ -61,7 +61,7 @@ function SaveState(SlotNumber) { localStorage.setItem("Common_PlayerName" + SN, Common_PlayerName); localStorage.setItem("Common_PlayerOwner" + SN, Common_PlayerOwner); localStorage.setItem("Common_PlayerLover" + SN, Common_PlayerLover); - localStorage.setItem("Common_PlayerCloth" + SN, Common_PlayerCloth); + localStorage.setItem("Common_PlayerCloth" + SN, Common_PlayerCloth); localStorage.setItem("PlayerInventory" + SN, JSON.stringify(PlayerInventory)); localStorage.setItem("PlayerLockedInventory" + SN, JSON.stringify(PlayerLockedInventory)); localStorage.setItem("PlayerSkill" + SN, JSON.stringify(PlayerSkill)); @@ -79,7 +79,7 @@ function SaveState(SlotNumber) { function LoadState(SlotNumber) { // If the save file is for the current version, we load - var SN = SlotNumber.toString(); + var SN = SlotNumber.toString(); if (localStorage.getItem("SaveGameVersion" + SN)) if (localStorage.getItem("SaveGameVersion" + SN) == SaveGameVersion) { @@ -95,7 +95,7 @@ function LoadState(SlotNumber) { GameLog = JSON.parse(localStorage.getItem("GameLog" + SN)); PlayerSkill = JSON.parse(localStorage.getItem("PlayerSkill" + SN)); CurrentTime = parseFloat(localStorage.getItem("CurrentTime" + SN)); - + // Makes sure the owner and lover aren't null from previous saves if (Common_PlayerOwner == null) Common_PlayerOwner = ""; if (Common_PlayerLover == null) Common_PlayerLover = ""; @@ -103,7 +103,7 @@ function LoadState(SlotNumber) { // You can start with different clothes on chapter 12 if (CurrentChapter == "C012_AfterClass") { Common_PlayerCloth = localStorage.getItem("Common_PlayerCloth" + SN); - if (Common_PlayerCloth == null) Common_PlayerCloth = "Clothed"; + if (Common_PlayerCloth == null) Common_PlayerCloth = "Clothed"; PlayerClothes(Common_PlayerCloth); } @@ -112,7 +112,7 @@ function LoadState(SlotNumber) { if (Actor[L].length < 11) Actor[L] = [Actor[L][0], Actor[L][1], Actor[L][2], Actor[L][3], Actor[L][4], Actor[L][5], Actor[L][6], Actor[L][7], Actor[L][8], false, ""]; - // Make sure the game log array is wide enough (to remove when save games will be reset) + // Make sure the game log array is wide enough (to remove when save games will be reset) for (var L = 0; L < GameLog.length; L++) if (GameLog[L].length < 4) GameLog[L] = [GameLog[L][0], GameLog[L][1], GameLog[L][2], 0]; diff --git a/Time.js b/Time.js index 4340912168..936fd4adb0 100644 --- a/Time.js +++ b/Time.js @@ -23,12 +23,12 @@ function msToTime(s) { var mins = s % 60; var hrs = (s - mins) / 60; return pad(hrs) + ':' + pad(mins) + ':' + pad(secs); - + } // Runs the regular timer function ProcessTimer() { - + // Ticks the timer every for the screen refresh and events clearInterval(CurrentTimer); CurrentTimer = setInterval("MainRun()", RunInterval); @@ -38,19 +38,19 @@ function ProcessTimer() { if (RunTimer) { // Add the interval in milliseconds - CurrentTime = CurrentTime + RunInterval; - + CurrentTime = CurrentTime + RunInterval; + // If the time limit is reached, we jump to a limit screen if (CurrentTime >= LimitTimer) { - + // Jump to the next chapter - CurrentTime = LimitTimer; + CurrentTime = LimitTimer; SetScene(LimitChapter, LimitScreen); - + } - + } - + } // Starts the timer and sets the limits