mirror of
https://gitgud.io/BondageProjects/Bondage-College.git
synced 2025-04-25 17:59:34 +00:00
Club Card - Online Play Configuration (WIP)
This commit is contained in:
parent
7958fde01a
commit
df80a09ed2
18 changed files with 305 additions and 14 deletions
BondageClub
Icons/ClubCard
Screens
Character/Player
MiniGame/ClubCard
Online
ChatAdmin
ChatCreate
ChatRoom
ChatSearch
Game
GameClubCard
GameLARP
GameMagicBattle
Scripts
index.html
BIN
BondageClub/Icons/ClubCard/PlayerSlot0.png
Normal file
BIN
BondageClub/Icons/ClubCard/PlayerSlot0.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 12 KiB |
BIN
BondageClub/Icons/ClubCard/PlayerSlot1.png
Normal file
BIN
BondageClub/Icons/ClubCard/PlayerSlot1.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 8 KiB |
BIN
BondageClub/Icons/ClubCard/PlayerSlot2.png
Normal file
BIN
BondageClub/Icons/ClubCard/PlayerSlot2.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 11 KiB |
|
@ -313,7 +313,11 @@ StandUpFail,,,SourceCharacter tries to stand up but loses PronounPossessive bala
|
|||
HelpKneelDown,,,SourceCharacter helps TargetCharacter to kneel down,,
|
||||
HelpStandUp,,,SourceCharacter helps TargetCharacter to stand up,,
|
||||
ChangeClothes,,,SourceCharacter changes DestinationCharacter clothes.,,
|
||||
ClubCardNewPlayerSlot0,,,SourceCharacter will not play Club Card.,,
|
||||
ClubCardNewPlayerSlot1,,,SourceCharacter chose to be the first player.,,
|
||||
ClubCardNewPlayerSlot2,,,SourceCharacter chose to be the second player.,,
|
||||
LARPChangeTeamClass,,,SourceCharacter selects PronounPossessive team and class.,,
|
||||
ClubCardGameStart,,,SourceCharacter has started the Club Card game.,,
|
||||
LARPGameStart,,,SourceCharacter has started the LARP game.,,
|
||||
MagicBattleGameStart,,,SourceCharacter has started the Magic Battle.,,
|
||||
SafewordDisabled,,,"Your safeword is disabled, it cannot be used at the moment.",,
|
||||
|
|
|
|
@ -21,6 +21,8 @@ var ClubCardLevelLimit = [0, 5, 8, 13, 20, 40];
|
|||
var ClubCardLevelCost = [0, 0, 10, 20, 35, 50];
|
||||
/** @type {ClubCardPlayer[]} */
|
||||
var ClubCardPlayer = [];
|
||||
var ClubCardPlayer1MemberNumber = -1;
|
||||
var ClubCardPlayer2MemberNumber = -1;
|
||||
/** @type {ClubCard[]} */
|
||||
var ClubCardList = [
|
||||
|
||||
|
@ -1644,6 +1646,7 @@ function ClubCardEndTurn(Draw = false) {
|
|||
ClubCardLogAdd(TextGet("VictoryFor" + CCPlayer.Control));
|
||||
ClubCardCreatePopup("TEXT", TextGet("VictoryFor" + CCPlayer.Control), TextGet("Return"), null, "ClubCardEndGame()", null);
|
||||
if (MiniGameVictory && (ClubCardReward != null)) ClubCardGetReward();
|
||||
GameClubCardReset();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1965,6 +1968,7 @@ function ClubCardEndGame(Victory) {
|
|||
if (Victory != null) MiniGameVictory = Victory;
|
||||
ClubCardOpponentDeck = [];
|
||||
MiniGameEnd();
|
||||
GameClubCardReset();
|
||||
}
|
||||
|
||||
function ClubCardTextGet(Text) {
|
||||
|
@ -2032,6 +2036,8 @@ function ClubCardCommonLoad() {
|
|||
*/
|
||||
function ClubCardLoad() {
|
||||
ClubCardCommonLoad();
|
||||
ClubCardPlayer1MemberNumber = -1;
|
||||
ClubCardPlayer2MemberNumber = -1;
|
||||
ClubCardTurnCardPlayed = 0;
|
||||
ClubCardLogText = "";
|
||||
ClubCardFocus = null;
|
||||
|
@ -2044,6 +2050,23 @@ function ClubCardLoad() {
|
|||
ClubCardCreatePopup("DECK");
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the two players structure for online play
|
||||
* @param {Number} P1 - The first player member number
|
||||
* @param {number} P2 - The second player member number
|
||||
* @param {number} RNG - The random RNG number generated by the server
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function ClubCardLoadOnlinePlayers(P1, P2, RNG) {
|
||||
ClubCardTurnIndex = Math.round(RNG * 2);
|
||||
ClubCardPlayer1MemberNumber = P1;
|
||||
ClubCardPlayer2MemberNumber = P2;
|
||||
for (let C = 0; C < ChatRoomCharacter.length; C++) {
|
||||
if (ChatRoomCharacter[C].MemberNumber === P1) ClubCardPlayer[0].Character = ChatRoomCharacter[C];
|
||||
if (ChatRoomCharacter[C].MemberNumber === P2) ClubCardPlayer[1].Character = ChatRoomCharacter[C];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Draw the club card player hand on screen, show only sleeves if not controlled by player
|
||||
* @param {Number} Value - The card to draw
|
||||
|
|
|
@ -8,7 +8,7 @@ var ChatAdminLocked = false;
|
|||
/** @type {ChatRoomGame} */
|
||||
var ChatAdminGame = "";
|
||||
/** @type {ChatRoomGame[]} */
|
||||
var ChatAdminGameList = ["", "LARP", "MagicBattle", "GGTS"];
|
||||
var ChatAdminGameList = ["", "ClubCard", "LARP", "MagicBattle", "GGTS"];
|
||||
/** @type {null | string} */
|
||||
var ChatAdminBackgroundSelected = null;
|
||||
/** @type {null | { Name: string, Language: ChatRoomLanguage, Description: string, Limit: string, AdminList: string, BanList: string, Private: boolean, Locked: boolean }} */
|
||||
|
|
|
@ -22,6 +22,7 @@ ResponseAccountError,"Account error, please try to relog"
|
|||
ResponseInvalidRoomData,Invalid chat room data detected
|
||||
BlockCategory,Block Categories
|
||||
Game,No Game
|
||||
GameClubCard,Club Card
|
||||
GameLARP,LARP
|
||||
GameMagicBattle,Magic Battle
|
||||
GameGGTS,GGTS
|
||||
|
|
|
|
@ -9,7 +9,7 @@ var ChatCreateLocked = null;
|
|||
/** @type {ChatRoomGame} */
|
||||
var ChatCreateGame = "";
|
||||
/** @type {ChatRoomGame[]} */
|
||||
var ChatCreateGameList = ["", "LARP", "MagicBattle", "GGTS"];
|
||||
var ChatCreateGameList = ["", "ClubCard", "LARP", "MagicBattle", "GGTS"];
|
||||
var ChatCreateBackgroundIndex = 0;
|
||||
var ChatCreateBackgroundSelect = "";
|
||||
/** @type {null | string[]} */
|
||||
|
@ -27,15 +27,10 @@ var ChatCreateLanguageList = ["EN", "DE", "FR", "ES", "CN", "RU"];
|
|||
*/
|
||||
function ChatCreateLoad() {
|
||||
|
||||
// Resets the LARP game status
|
||||
if ((ChatRoomGame == "LARP") && (GameLARPGetStatus() != "")) {
|
||||
GameLARPSetStatus("");
|
||||
}
|
||||
|
||||
// Resets the Magic Battle game status
|
||||
if ((ChatRoomGame == "MagicBattle") && (GameMagicBattleGetStatus() != "")) {
|
||||
GameMagicBattleSetStatus("");
|
||||
}
|
||||
// Resets the online games status
|
||||
if (GameLARPGetStatus() != "") GameLARPSetStatus("");
|
||||
if (GameMagicBattleGetStatus() != "") GameMagicBattleSetStatus("");
|
||||
if (GameClubCardGetStatus() != "") GameClubCardSetStatus("");
|
||||
|
||||
// If the current background isn't valid, we pick the first one
|
||||
ChatCreateBackgroundIndex = ChatCreateBackgroundList.indexOf(ChatCreateBackgroundSelect);
|
||||
|
|
|
@ -27,6 +27,7 @@ AddLoverAdminList,Add Lovers
|
|||
Background,Background
|
||||
BlockCategory,Block Categories
|
||||
Game,No Game
|
||||
GameClubCard,Club Card
|
||||
GameLARP,LARP
|
||||
GameMagicBattle,Magic Battle
|
||||
GameGGTS,GGTS
|
||||
|
|
|
|
@ -4379,6 +4379,7 @@ function ChatRoomGameResponse(data) {
|
|||
ChatRoomOnlineBountyHandleData(data.Data.OnlineBounty, data.Sender);
|
||||
else if (ChatRoomGame == "LARP") GameLARPProcess(data);
|
||||
else if (ChatRoomGame == "MagicBattle") GameMagicBattleProcess(data);
|
||||
else if (ChatRoomGame == "ClubCard") GameClubCardProcess(data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -50,6 +50,7 @@ Photos,Photographs
|
|||
Arousal,Arousal Activities
|
||||
Fantasy,Fantasy
|
||||
GameLabel,Game:
|
||||
GameClubCard,Club Card
|
||||
GameLARP,LARP
|
||||
GameMagicBattle,Magic Battle
|
||||
GameGGTS,GGTS
|
||||
|
|
|
|
@ -119,6 +119,7 @@ function OnlineGameAllowBlockItems() {
|
|||
* @returns {void} - Nothing
|
||||
*/
|
||||
function OnlineGameLoadStatus() {
|
||||
if (ChatRoomGame == "ClubCard") GameClubCardLoadStatus();
|
||||
if (ChatRoomGame == "LARP") GameLARPLoadStatus();
|
||||
if (ChatRoomGame == "MagicBattle") GameMagicBattleLoadStatus();
|
||||
}
|
||||
|
@ -128,6 +129,7 @@ function OnlineGameLoadStatus() {
|
|||
* @returns {void} - Nothing
|
||||
*/
|
||||
function OnlineGameReset() {
|
||||
if (ChatRoomGame != "ClubCard") GameClubCardReset();
|
||||
if (ChatRoomGame != "LARP") GameLARPReset();
|
||||
if (ChatRoomGame != "MagicBattle") GameMagicBattleReset();
|
||||
if (ChatRoomGame == "GGTS") AsylumGGTSReset();
|
||||
|
@ -155,6 +157,7 @@ function OnlineGameCharacterInChatRoom(MemberNumber) {
|
|||
*/
|
||||
function OnlineGameDrawCharacter(C, X, Y, Zoom) {
|
||||
if (ChatRoomGame === "GGTS") AsylumGGTSDrawCharacter(C, X, Y, Zoom);
|
||||
if (ChatRoomGame === "ClubCard") GameClubCardDrawCharacter(C, X, Y, Zoom);
|
||||
if (ChatRoomGame === "LARP") GameLARPDrawCharacter(C, X, Y, Zoom);
|
||||
if (ChatRoomGame === "MagicBattle") GameMagicBattleDrawCharacter(C, X, Y, Zoom);
|
||||
}
|
||||
|
|
248
BondageClub/Screens/Online/GameClubCard/GameClubCard.js
Normal file
248
BondageClub/Screens/Online/GameClubCard/GameClubCard.js
Normal file
|
@ -0,0 +1,248 @@
|
|||
"use strict";
|
||||
var GameClubCardBackground = "Sheet";
|
||||
var GameClubCardEntryPlayerSlot = 0;
|
||||
|
||||
/**
|
||||
* Gets the current state of online Club Card.
|
||||
* @returns {OnlineGameStatus}
|
||||
*/
|
||||
function GameClubCardGetStatus() {
|
||||
if (Player.Game && Player.Game.ClubCard && ["", "Running"].includes(Player.Game.ClubCard.Status))
|
||||
return Player.Game.ClubCard.Status;
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the current state of online Club Card.
|
||||
* @param {OnlineGameStatus} s
|
||||
* @returns {void}
|
||||
*/
|
||||
function GameClubCardSetStatus(s) {
|
||||
if (!["", "Running"].includes(s))
|
||||
return;
|
||||
|
||||
if (Player.Game == null || Player.Game.ClubCard == null)
|
||||
ClubCardCommonLoad();
|
||||
|
||||
/* @ts-ignore */
|
||||
Player.Game.ClubCard.Status = s;
|
||||
ServerAccountUpdate.QueueData({ Game: Player.Game }, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the character is an admin for the room/game.
|
||||
* @param {Character} C - Character to check for
|
||||
* @returns {boolean} - Returns TRUE if that character is an admin/the game administrator
|
||||
*/
|
||||
function GameClubCardIsAdmin(C) {
|
||||
return (ChatRoomData.Admin.indexOf(C.MemberNumber) >= 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Draws the Club Card icon of a character
|
||||
* @param {Character} C - Character for which to draw the icons
|
||||
* @param {number} X - Position on the X axis of the canvas
|
||||
* @param {number} Y - Position on the Y axis of the canvas
|
||||
* @param {number} Zoom - Zoom factor of the character
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardDrawIcon(C, X, Y, Zoom) {
|
||||
let Icon = 0;
|
||||
if ((C != null) && (C.Game != null) && (C.Game.ClubCard != null) && ((C.Game.ClubCard.PlayerSlot === 1) || (C.Game.ClubCard.PlayerSlot === 2))) Icon = C.Game.ClubCard.PlayerSlot;
|
||||
DrawImageZoomCanvas("Icons/ClubCard/PlayerSlot" + Icon.toString() + ".png", MainCanvas, 0, 0, 100, 100, X, Y, 100 * Zoom, 100 * Zoom);
|
||||
}
|
||||
|
||||
/**
|
||||
* Draws the online game images/text needed on the characters
|
||||
* @param {Character} C - Character to draw the info for
|
||||
* @param {number} X - Position of the character the X axis
|
||||
* @param {number} Y - Position of the character the Y axis
|
||||
* @param {number} Zoom - Amount of zoom the character has (Height)
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardDrawCharacter(C, X, Y, Zoom) {
|
||||
if ((CurrentModule == "Online") && (CurrentScreen == "ChatRoom")) {
|
||||
GameClubCardDrawIcon(C, X + 70 * Zoom, Y + 800 * Zoom, Zoom);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the online Club Card configuration screen.
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardLoad() {
|
||||
ClubCardCommonLoad();
|
||||
if (Player.Game == null) Player.Game = {};
|
||||
if (Player.Game.ClubCard.PlayerSlot == null) Player.Game.ClubCard.PlayerSlot = 0;
|
||||
GameClubCardEntryPlayerSlot = Player.Game.ClubCard.PlayerSlot;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the online Club Card configuration screen
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardRun() {
|
||||
DrawCharacter(Player, 50, 50, 0.9);
|
||||
DrawText(TextGet("Title"), 1100, 150, "Black", "Gray");
|
||||
DrawText(TextGet("SelectPlayerSlot"), 750, 300, "Black", "Gray");
|
||||
DrawText(TextGet((GameClubCardGetStatus() == "") ? "StartCondition" : "RunningGame"), 1100, 450, "Black", "Gray");
|
||||
DrawButton(1815, 75, 90, 90, "", "White", "Icons/Exit.png");
|
||||
if (GameClubCardGetStatus() == "") DrawBackNextButton(1000, 268, 400, 64, TextGet("PlayerSlot" + Player.Game.ClubCard.PlayerSlot.toString()), "White", "", () => "", () => "");
|
||||
else DrawText(TextGet("PlayerSlot" + Player.Game.ClubCard.PlayerSlot.toString()), 1200, 300, "Black", "Gray");
|
||||
GameClubCardDrawIcon(Player, 1480, 210, 1.8);
|
||||
if (GameClubCardCanLaunchGame()) DrawButton(900, 600, 400, 64, TextGet("StartGame"), "White");
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles clicks in the online Club Card configuration screen
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardClick() {
|
||||
|
||||
// When the user exits
|
||||
if (MouseIn(1815, 75, 90, 90)) GameClubCardExit();
|
||||
|
||||
// When the user selects a new player slot
|
||||
if (MouseIn(1000, 268, 200, 64) && (GameClubCardGetStatus() == "")) {
|
||||
Player.Game.ClubCard.PlayerSlot--;
|
||||
if (Player.Game.ClubCard.PlayerSlot < 0) Player.Game.ClubCard.PlayerSlot = 2;
|
||||
}
|
||||
if (MouseIn(1200, 268, 200, 64) && (GameClubCardGetStatus() == "")) {
|
||||
Player.Game.ClubCard.PlayerSlot++;
|
||||
if (Player.Game.ClubCard.PlayerSlot > 2) Player.Game.ClubCard.PlayerSlot = 0;
|
||||
}
|
||||
|
||||
// If the administrator wants to start the game
|
||||
if (MouseIn(900, 600, 400, 64) && GameClubCardCanLaunchGame()) {
|
||||
|
||||
// Updates the player data
|
||||
ServerAccountUpdate.QueueData({ Game: Player.Game }, true);
|
||||
ChatRoomCharacterUpdate(Player);
|
||||
|
||||
// Notices everyone in the room that the game starts
|
||||
const Dictionary = new DictionaryBuilder()
|
||||
.sourceCharacter(Player)
|
||||
.build();
|
||||
Dictionary.push({Tag: "SourceCharacter", Text: CharacterNickname(Player), MemberNumber: Player.MemberNumber});
|
||||
ServerSend("ChatRoomChat", { Content: "ClubCardGameStart", Type: "Action" , Dictionary: Dictionary});
|
||||
|
||||
// Sends the 1st and 2nd players in the packet
|
||||
let P1 = -1;
|
||||
let P2 = -1;
|
||||
for (let C = 0; C < ChatRoomCharacter.length; C++) {
|
||||
if ((ChatRoomCharacter[C].Game != null) && (ChatRoomCharacter[C].Game.ClubCard != null) && (ChatRoomCharacter[C].Game.ClubCard.PlayerSlot === 1)) P1 = ChatRoomCharacter[C].MemberNumber;
|
||||
if ((ChatRoomCharacter[C].Game != null) && (ChatRoomCharacter[C].Game.ClubCard != null) && (ChatRoomCharacter[C].Game.ClubCard.PlayerSlot === 2)) P2 = ChatRoomCharacter[C].MemberNumber;
|
||||
}
|
||||
|
||||
// Sends the start flag to everyone in the room
|
||||
ServerSend("ChatRoomGame", { GameProgress: "Start", Player1: P1, Player2: P2 });
|
||||
GameClubCardSetStatus("Running");
|
||||
ChatRoomCharacterUpdate(Player);
|
||||
CommonSetScreen("Online", "ChatRoom");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Triggered when the player exits the Club Card config screen.
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardExit() {
|
||||
|
||||
// When the game isn't running, we allow to change the class or team
|
||||
if (GameClubCardGetStatus() == "") {
|
||||
|
||||
// Notices everyone in the room of the change in the player slot
|
||||
if (GameClubCardEntryPlayerSlot != Player.Game.ClubCard.PlayerSlot) {
|
||||
const Dictionary = new DictionaryBuilder()
|
||||
.sourceCharacter(Player)
|
||||
.build();
|
||||
ServerSend("ChatRoomChat", { Content: "ClubCardNewPlayerSlot" + Player.Game.ClubCard.PlayerSlot.toString(), Type: "Action", Dictionary: Dictionary });
|
||||
}
|
||||
|
||||
// Updates the player and go back to the chat room
|
||||
ServerAccountUpdate.QueueData({ Game: Player.Game }, true);
|
||||
ChatRoomCharacterUpdate(Player);
|
||||
|
||||
}
|
||||
|
||||
// Returns to the chat screen
|
||||
CommonSetScreen("Online", "ChatRoom");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks there's 1 player in slot 1 and slot 2 so we can start the game.
|
||||
* @returns {boolean} - Returns TRUE if the game can be launched
|
||||
*/
|
||||
function GameClubCardCanLaunchGame() {
|
||||
let P1Count = 0;
|
||||
let P2Count = 0;
|
||||
if (GameClubCardGetStatus() != "") return false;
|
||||
if (!GameClubCardIsAdmin(Player)) return false;
|
||||
for (let C = 0; C < ChatRoomCharacter.length; C++) {
|
||||
if ((ChatRoomCharacter[C].Game != null) && (ChatRoomCharacter[C].Game.ClubCard != null) && (ChatRoomCharacter[C].Game.ClubCard.PlayerSlot === 1)) P1Count++;
|
||||
if ((ChatRoomCharacter[C].Game != null) && (ChatRoomCharacter[C].Game.ClubCard != null) && (ChatRoomCharacter[C].Game.ClubCard.PlayerSlot === 2)) P2Count++;
|
||||
}
|
||||
return ((P1Count == 1) && (P2Count == 1));
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the online Club Card game so a new game might be started
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardReset() {
|
||||
GameClubCardSetStatus("");
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure all character's Club Card game status are the same
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardLoadStatus() {
|
||||
for (let C = 0; C < ChatRoomCharacter.length; C++)
|
||||
if ((ChatRoomData.Admin.indexOf(ChatRoomCharacter[C].MemberNumber) >= 0) && (ChatRoomCharacter[C].Game != null) && (ChatRoomCharacter[C].Game.ClubCard != null) && (ChatRoomCharacter[C].Game.ClubCard.Status != "")) {
|
||||
GameClubCardSetStatus(ChatRoomCharacter[C].Game.ClubCard.Status);
|
||||
return;
|
||||
}
|
||||
GameClubCardReset();
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes the club card game data received from the server
|
||||
* @param {IChatRoomGameResponse} Packet - The data packet to process
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardProcess(Packet) {
|
||||
|
||||
// Filters out invalid packets
|
||||
if ((Packet == null) || (Packet.Data == null) || (Packet.Sender == null)) return;
|
||||
|
||||
// Finds the character that sent the packet
|
||||
let Char = null;
|
||||
for (let C = 0; C < ChatRoomCharacter.length; C++)
|
||||
if (ChatRoomCharacter[C].MemberNumber == Packet.Sender)
|
||||
Char = ChatRoomCharacter[C];
|
||||
if (Char == null) return;
|
||||
|
||||
// If a room admin started the game
|
||||
if ((Packet.Data.GameProgress === "Start") && GameClubCardIsAdmin(Char)) {
|
||||
GameClubCardSetStatus("Running");
|
||||
MiniGameStart("ClubCard", 0, "GameClubCardEnd");
|
||||
ClubCardOpponent = Player;
|
||||
ClubCardOpponentDeck = ClubCardBuilderDefaultDeck;
|
||||
ClubCardLoadOnlinePlayers(Packet.Data.Player1, Packet.Data.Player2, Packet.RNG);
|
||||
ElementRemove("InputChat");
|
||||
ElementRemove("TextAreaChatLog");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* When the game ends, we go back to the online chat room
|
||||
* @returns {void} - Nothing
|
||||
*/
|
||||
function GameClubCardEnd() {
|
||||
CommonSetScreen("Online", "ChatRoom");
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
Title,Online Club Card Configuration
|
||||
SelectPlayerSlot,Your player slot:
|
||||
PlayerSlot0,Not playing
|
||||
PlayerSlot1,First player
|
||||
PlayerSlot2,Second player
|
||||
StartCondition,A room administrator can start the game when two players are selected.
|
||||
RunningGame,"The Club Card game is running, you cannot change settings."
|
||||
StartGame,Start the game
|
|
|
@ -1044,7 +1044,6 @@ function GameLARPLoadStatus() {
|
|||
GameLARPReset();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draws the online game images/text needed on the characters
|
||||
* @param {Character} C - Character to draw the info for
|
||||
|
|
|
@ -525,7 +525,6 @@ function GameMagicBattleLoadStatus() {
|
|||
GameMagicBattleReset();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draws the online game images/text needed on the characters
|
||||
* @param {Character} C - Character to draw the info for
|
||||
|
|
9
BondageClub/Scripts/Typedef.d.ts
vendored
9
BondageClub/Scripts/Typedef.d.ts
vendored
|
@ -464,6 +464,7 @@ interface IChatRoomGameResponse {
|
|||
Data: {
|
||||
KinkyDungeon: any;
|
||||
OnlineBounty: any;
|
||||
|
||||
/* LARP */
|
||||
GameProgress?: "Start" | "Stop" | "Next" | "Skip" | "Action";
|
||||
Action?: undefined;
|
||||
|
@ -473,6 +474,10 @@ interface IChatRoomGameResponse {
|
|||
/* MagicBattle */
|
||||
Spell?: string;
|
||||
Time?: number; /* ms */
|
||||
|
||||
/* Club Card */
|
||||
Player1?: number;
|
||||
Player2?: number;
|
||||
}
|
||||
Sender: number;
|
||||
RNG: number
|
||||
|
@ -508,7 +513,7 @@ interface IChatRoomSyncArousalMessage {
|
|||
type ChatRoomLovershipOption = "" | "CanOfferBeginWedding" | "CanBeginWedding";
|
||||
type ChatRoomOwnershipOption = "" | "CanOfferEndTrial" | "CanOfferTrial" | "CanEndTrial";
|
||||
type ChatRoomSpaceType = "X" | "" | "M" | "Asylum";
|
||||
type ChatRoomGame = "" | "LARP" | "MagicBattle" | "GGTS";
|
||||
type ChatRoomGame = "" | "ClubCard" | "LARP" | "MagicBattle" | "GGTS";
|
||||
type ChatRoomBlockCategory = AssetCategory | "Leashing" | "Photos" | "Arousal";
|
||||
type ChatRoomLanguage = "EN" | "DE" | "FR" | "ES" | "CN" | "RU";
|
||||
|
||||
|
@ -3155,6 +3160,8 @@ interface GamePokerParameters {
|
|||
interface GameClubCardParameters {
|
||||
Deck: string[];
|
||||
Reward?: string;
|
||||
Status?: OnlineGameStatus;
|
||||
PlayerSlot?: number;
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
|
|
@ -210,6 +210,7 @@
|
|||
<script src="Screens/Online/ForbiddenWords/ForbiddenWords.js"></script>
|
||||
<script src="Screens/Online/WheelFortuneCustomize/WheelFortuneCustomize.js"></script>
|
||||
<script src="Screens/Online/Game/OnlineGame.js"></script>
|
||||
<script src="Screens/Online/GameClubCard/GameClubCard.js"></script>
|
||||
<script src="Screens/Online/GameLARP/GameLARP.js"></script>
|
||||
<script src="Screens/Online/GameMagicBattle/GameMagicBattle.js"></script>
|
||||
<script src="Screens/Inventory/ItemNeck/ShockCollar/ShockCollar.js"></script>
|
||||
|
|
Loading…
Add table
Reference in a new issue