update win modal to link to patreon, create game mode rotation

This commit is contained in:
Evan
2025-04-07 18:31:42 -07:00
parent ec895af600
commit d1da506201
4 changed files with 48 additions and 30 deletions
+11 -1
View File
@@ -1,4 +1,4 @@
import { GameMapType } from "../core/game/Game";
import { GameMapType, GameMode } from "../core/game/Game";
import { PseudoRandom } from "../core/PseudoRandom";
enum PlaylistType {
@@ -9,6 +9,9 @@ enum PlaylistType {
const random = new PseudoRandom(123);
export class MapPlaylist {
private gameModeRotation = [GameMode.FFA, GameMode.FFA, GameMode.Team];
private currentGameModeIndex = 0;
private mapsPlaylistBig: GameMapType[] = [];
private mapsPlaylistSmall: GameMapType[] = [];
private currentPlaylistCounter = 0;
@@ -20,6 +23,13 @@ export class MapPlaylist {
return mapsPlaylist.shift()!;
}
public getNextGameMode(): GameMode {
const nextGameMode = this.gameModeRotation[this.currentGameModeIndex];
this.currentGameModeIndex =
(this.currentGameModeIndex + 1) % this.gameModeRotation.length;
return nextGameMode;
}
private getNextMapsPlayList(playlistType: PlaylistType): GameMapType[] {
switch (playlistType) {
case PlaylistType.BigMaps:
+13 -2
View File
@@ -222,11 +222,22 @@ async function fetchLobbies(): Promise<number> {
return publicLobbyIDs.size;
}
let lastGameMode: GameMode = GameMode.FFA;
// Function to schedule a new public game
async function schedulePublicGame(playlist: MapPlaylist) {
const gameID = generateID();
const map = playlist.getNextMap();
publicLobbyIDs.add(gameID);
if (lastGameMode == GameMode.FFA) {
lastGameMode = GameMode.Team;
} else {
lastGameMode = GameMode.FFA;
}
const gameMode = playlist.getNextGameMode();
// Create the default public game config (from your GameManager)
const defaultGameConfig = {
gameMap: map,
@@ -236,9 +247,9 @@ async function schedulePublicGame(playlist: MapPlaylist) {
infiniteGold: false,
infiniteTroops: false,
instantBuild: false,
disableNPCs: false,
disableNPCs: gameMode == GameMode.Team,
disableNukes: false,
gameMode: Math.random() < 0.5 ? GameMode.FFA : GameMode.Team,
gameMode: gameMode,
bots: 400,
} as GameConfig;