mirror of
https://gitgud.io/BondageProjects/Bondage-College.git
synced 2025-04-03 23:19:18 +00:00
* Typos * Colors * ColorFix * Others * Fixes * Node Revert * Update socket.io.dev.js * Typos * Standardized OK * Other Languages * Fix * Misspellings * DeleteTests * Delete socket.io.dev.js * SpellingFixes * SpacesAndFixes
276 lines
No EOL
10 KiB
JavaScript
276 lines
No EOL
10 KiB
JavaScript
var PlayerInventory = [];
|
|
var PlayerInventoryName = 0;
|
|
var PlayerInventoryQuantity = 1;
|
|
var PlayerLockedInventory = [];
|
|
var PlayerSavedInventory = [];
|
|
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 = "";
|
|
Common_PlayerCloth = NewCloth;
|
|
Common_PlayerUnderwear = (NewCloth == "Underwear");
|
|
Common_PlayerNaked = (NewCloth == "Naked");
|
|
Common_PlayerClothed = (!Common_PlayerUnderwear && !Common_PlayerNaked);
|
|
}
|
|
|
|
// Set the restrained and gagged common variables, used by many scenes
|
|
function LoadRestrainStatus() {
|
|
Common_PlayerRestrained = (PlayerHasLockedInventory("Cuffs") || PlayerHasLockedInventory("Rope") || PlayerHasLockedInventory("Armbinder") || PlayerHasLockedInventory("Manacles"));
|
|
Common_PlayerGagged = (PlayerHasLockedInventory("BallGag") || PlayerHasLockedInventory("TapeGag") || PlayerHasLockedInventory("ClothGag") || PlayerHasLockedInventory("PantieGag") || PlayerHasLockedInventory("SockGag") || PlayerHasLockedInventory("DoubleOpenGag"));
|
|
Common_PlayerChaste = PlayerHasLockedInventory("ChastityBelt");
|
|
Common_PlayerNotRestrained = !Common_PlayerRestrained;
|
|
Common_PlayerNotGagged = !Common_PlayerGagged;
|
|
}
|
|
|
|
// Save the current full inventory for the player
|
|
function PlayerSaveAllInventory() {
|
|
PlayerSavedInventory = PlayerInventory.slice();
|
|
}
|
|
|
|
// Restore the full saved inventory for the player, one item by item
|
|
function PlayerRestoreAllInventory() {
|
|
for (var I = 0; I < PlayerSavedInventory.length; I++)
|
|
PlayerAddInventory(PlayerSavedInventory[I][PlayerInventoryName], PlayerSavedInventory[I][PlayerInventoryQuantity]);
|
|
PlayerSavedInventory = [];
|
|
}
|
|
|
|
// Add a new item to the locked inventory
|
|
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;
|
|
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");
|
|
|
|
}
|
|
|
|
// Remove an item from the locked inventory
|
|
function PlayerUnlockInventory(UnlockedInventory) {
|
|
|
|
// Check if the item is already locked before adding it
|
|
for (var I = 0; I < PlayerLockedInventory.length; I++)
|
|
if (PlayerLockedInventory[I] == UnlockedInventory)
|
|
PlayerLockedInventory.splice(I, 1);
|
|
LoadRestrainStatus();
|
|
|
|
}
|
|
|
|
// Remove all items from the locked inventory except the egg, plug, collar and chastity belt
|
|
function PlayerUnlockAllInventory(UnlockedInventory) {
|
|
var HadCollar = PlayerHasLockedInventory("Collar");
|
|
var HadEgg = PlayerHasLockedInventory("VibratingEgg");
|
|
var HadPlug = PlayerHasLockedInventory("ButtPlug");
|
|
var HadBelt = PlayerHasLockedInventory("ChastityBelt");
|
|
while (PlayerLockedInventory.length > 0)
|
|
PlayerLockedInventory.splice(0, 1);
|
|
if (HadCollar) PlayerLockInventory("Collar");
|
|
if (HadEgg) PlayerLockInventory("VibratingEgg");
|
|
if (HadPlug) PlayerLockInventory("ButtPlug");
|
|
if (HadBelt) PlayerLockInventory("ChastityBelt");
|
|
LoadRestrainStatus();
|
|
}
|
|
|
|
// 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
|
|
function PlayerAddInventory(NewInventory, NewQuantity) {
|
|
|
|
// If inventory already exists, we add 1 quantity
|
|
for (var I = 0; I < PlayerInventory.length; I++)
|
|
if (NewInventory == PlayerInventory[I][PlayerInventoryName]) {
|
|
PlayerInventory[I][PlayerInventoryQuantity] = PlayerInventory[I][PlayerInventoryQuantity] + 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])
|
|
if (RemQuantity >= PlayerInventory[I][PlayerInventoryQuantity])
|
|
PlayerInventory.splice(I, 1);
|
|
else
|
|
PlayerInventory[I][PlayerInventoryQuantity] = PlayerInventory[I][PlayerInventoryQuantity] - RemQuantity;
|
|
|
|
}
|
|
|
|
// Remove all inventory from the player
|
|
function PlayerRemoveAllInventory() {
|
|
while (PlayerInventory.length > 0)
|
|
PlayerInventory.splice(0, 1);
|
|
}
|
|
|
|
// Remove half of the inventory from the player (rounded up)
|
|
function PlayerRemoveHalfInventory() {
|
|
for (var I = 0; I < PlayerInventory.length; I++) {
|
|
if (PlayerInventory[I][PlayerInventoryQuantity] <= 1) {
|
|
PlayerInventory.splice(I, 1);
|
|
I--;
|
|
} else PlayerInventory[I][PlayerInventoryQuantity] = Math.floor(PlayerInventory[I][PlayerInventoryQuantity] / 2);
|
|
}
|
|
}
|
|
|
|
// 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
|
|
function PlayerRandomRestrain() {
|
|
|
|
// Selects the restrain type
|
|
var R = "";
|
|
if (!Common_PlayerRestrained) {
|
|
var RT = [];
|
|
if (PlayerHasInventory("Rope")) RT.push("Rope");
|
|
if (PlayerHasInventory("Cuffs")) RT.push("Cuffs");
|
|
if (PlayerHasInventory("Armbinder")) RT.push("Armbinder");
|
|
if (PlayerHasInventory("Manacles")) RT.push("Manacles");
|
|
if (RT.length > 0) R = RT[Math.floor(Math.random() * RT.length)];
|
|
}
|
|
|
|
// Applies it on the player
|
|
if (R != "") { PlayerRemoveInventory(R, 1); PlayerLockInventory(R); }
|
|
|
|
}
|
|
|
|
// Pick a random gag and applies it on the player
|
|
function PlayerRandomGag() {
|
|
|
|
// Selects the gag type
|
|
var G = "";
|
|
if (!Common_PlayerGagged) {
|
|
var GT = [];
|
|
if (PlayerHasInventory("BallGag")) GT.push("BallGag");
|
|
if (PlayerHasInventory("TapeGag")) GT.push("TapeGag");
|
|
if (PlayerHasInventory("ClothGag")) GT.push("ClothGag");
|
|
if (GT.length > 0) G = GT[Math.floor(Math.random() * GT.length)];
|
|
}
|
|
|
|
// Applies it on the player
|
|
if (G != "") { PlayerRemoveInventory(G, 1); PlayerLockInventory(G); }
|
|
|
|
}
|
|
|
|
// Restrains the player randomly from her own inventory
|
|
function PlayerRandomBondage() {
|
|
PlayerRandomRestrain();
|
|
PlayerRandomGag();
|
|
}
|
|
|
|
// Release the player from bondage and restore it's inventory
|
|
function PlayerReleaseBondage() {
|
|
if (PlayerHasLockedInventory("Cuffs")) { PlayerUnlockInventory("Cuffs"); PlayerAddInventory("Cuffs", 1); }
|
|
if (PlayerHasLockedInventory("Rope")) { PlayerUnlockInventory("Rope"); PlayerAddInventory("Rope", 1); }
|
|
if (PlayerHasLockedInventory("Armbinder")) { PlayerUnlockInventory("Armbinder"); PlayerAddInventory("Armbinder", 1); }
|
|
if (PlayerHasLockedInventory("Manacles")) PlayerUnlockInventory("Manacles");
|
|
PlayerUngag();
|
|
}
|
|
|
|
// Ungag the player and restore it's inventory
|
|
function PlayerUngag() {
|
|
if (PlayerHasLockedInventory("BallGag")) { PlayerUnlockInventory("BallGag"); PlayerAddInventory("BallGag", 1); }
|
|
if (PlayerHasLockedInventory("ClothGag")) { PlayerUnlockInventory("ClothGag"); PlayerAddInventory("ClothGag", 1); }
|
|
if (PlayerHasLockedInventory("TapeGag")) { PlayerUnlockInventory("TapeGag"); }
|
|
if (PlayerHasLockedInventory("PantieGag")) { PlayerUnlockInventory("PantieGag"); PlayerAddInventory("PantieGag", 1); }
|
|
if (PlayerHasLockedInventory("SockGag")) { PlayerUnlockInventory("SockGag"); PlayerAddInventory("SockGag", 1); }
|
|
}
|
|
|
|
// Add a random item in the player inventory
|
|
function PlayerAddRandomItem() {
|
|
var ItemList = ["BallGag", "TapeGag", "ClothGag", "Cuffs", "Rope", "Armbinder", "ChastityBelt", "VibratingEgg", "Crop", "Collar", "SleepingPill"];
|
|
var Item = ItemList[Math.floor(Math.random() * 11)];
|
|
PlayerAddInventory(Item, 1);
|
|
if (Item == "TapeGag") PlayerAddInventory(Item, 7); // For tape gag, add a bonus + 7 quantity
|
|
if ((Item == "Cuffs") && (Math.floor(Math.random() * 2) == 1)) PlayerAddInventory("CuffsKey", 1); // For cuffs, can randomly add keys
|
|
}
|
|
|
|
// Returns the total quantity of items that the player has
|
|
function PlayerInventoryTotalQuantity() {
|
|
var TotalQuantity = 0;
|
|
for (var I = 0; I < PlayerInventory.length; I++)
|
|
TotalQuantity = TotalQuantity + PlayerInventory[I][PlayerInventoryQuantity];
|
|
return TotalQuantity;
|
|
}
|
|
|
|
// 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)) {
|
|
|
|
// Check if the player icon was clicked
|
|
if ((MouseX >= 1) && (MouseX <= 74))
|
|
Inv = "Player";
|
|
|
|
// Check in the regular inventory
|
|
var I;
|
|
if (Inv == "")
|
|
for (I = 0; I < PlayerInventory.length; I++)
|
|
if ((MouseX >= 1 + (I + 1 - (PlayerInventoryTab * 11)) * 75) && (MouseX <= 74 + (I + 1 - (PlayerInventoryTab * 11)) * 75)) {
|
|
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++)
|
|
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];
|
|
else PlayerInventoryTab = 1;
|
|
}
|
|
I++;
|
|
}
|
|
|
|
// If we must go back to the first tab (on the second, after the first item)
|
|
if ((Inv == "") && (PlayerInventoryTab > 0))
|
|
if ((MouseX >= 1 + (I + 1 - (PlayerInventoryTab * 11)) * 75) && (MouseX <= 74 + (I + 1 - (PlayerInventoryTab * 11)) * 75))
|
|
PlayerInventoryTab = 0;
|
|
|
|
}
|
|
|
|
// Returns the inventory found
|
|
return Inv;
|
|
|
|
}
|
|
|
|
// Regular event for inventory clicks, set the common scene for the item
|
|
function InventoryClick(Inv, LChapter, LScreen) {
|
|
if (Inv != "") {
|
|
SetScene("C999_Common", Inv.replace("Locked_", ""));
|
|
LeaveChapter = LChapter;
|
|
LeaveScreen = LScreen;
|
|
}
|
|
} |