Spaces:
Sleeping
Sleeping
File size: 3,017 Bytes
2a6d2b0 0bb733c 9fd3a67 0bb733c 42ab4a9 2a6d2b0 0bb733c 9fd3a67 0bb733c 9fd3a67 0bb733c c8e039e 42ab4a9 2a6d2b0 42ab4a9 2a6d2b0 42ab4a9 2a6d2b0 42ab4a9 2a6d2b0 42ab4a9 2a6d2b0 42ab4a9 0bb733c 2a6d2b0 42ab4a9 c8e039e 42ab4a9 0bb733c 42ab4a9 0bb733c 42ab4a9 0bb733c 42ab4a9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
const CELL_SIZE = 50;
let GRID_COLS = 0;
let GRID_ROWS = 0;
let grid = [];
let gameState;
let baseMapImg;
let girlfriendImg;
let clownImg;
let clownSound1Snd;
let clownSound2Snd;
let clownSeesYouSnd;
let gfMoveSnd;
let loseSnd;
let unlockDoorSnd;
let useKnifeSnd;
let messageSnd;
let successSnd;
let isSoundOn =
localStorage.getItem("isSoundOn") === null
? true
: localStorage.getItem("isSoundOn") !== "false";
const soundIcon = document.getElementById("soundIcon");
const bgMusic = document.getElementById("bgMusic");
const mistralAPI = new MistralAPI();
let chatMessages = [];
let furnitureSprites = {};
function preload() {
clownSound1Snd = loadSound('/assets/sounds/clownmove1.mp3');
clownSound2Snd = loadSound('/assets/sounds/clownmove2.mp3');
clownSeesYouSnd = loadSound('/assets/sounds/clownseesyou.mp3');
gfMoveSnd = loadSound('/assets/sounds/gfmove.mp3');
loseSnd = loadSound('/assets/sounds/lose.mp3');
unlockDoorSnd = loadSound('/assets/sounds/unlockdoor.mp3');
useKnifeSnd = loadSound('/assets/sounds/useknife.mp3');
messageSnd = loadSound('/assets/sounds/message.wav');
successSnd = loadSound('/assets/sounds/success.mp3');
}
async function initializeChat() {
const firstPrompt = gameState.getFirstPrompt();
const messages = [
{
role: "system",
content: firstPrompt,
},
];
try {
const response = await mistralAPI.sendMessage(messages);
const jsonResponse = JSON.parse(response);
addMessageToChat("assistant", jsonResponse.textMessage);
} catch (error) {
console.error("Error getting initial message:", error);
}
}
async function setup() {
setStressLevel('no');
baseMapImg = loadImage("/assets/img/appartment/basemap.png");
girlfriendImg = loadImage("/assets/img/gf.png");
clownImg = loadImage("/assets/img/clown.png");
gameState = new GameState({
...getApt(),
grid: getGrid(),
furniture: getFurniture(),
});
furnitureSprites = loadFurnitureSprites(gameState.map_data.furniture);
GRID_COLS = gameState.map_data.gridCols;
GRID_ROWS = gameState.map_data.gridRows;
girlfriend = new Girlfriend(gameState, girlfriendImg);
clown = new Clown(gameState, clownImg);
// Once loaded, initialize the P5 canvas with correct dims
let canvas = createCanvas(GRID_COLS * CELL_SIZE, GRID_ROWS * CELL_SIZE);
canvas.parent("mapWrapper");
adjustScale();
await initializeChat();
}
function draw() {
clear();
if (baseMapImg) {
image(baseMapImg, 0, 0, GRID_COLS * CELL_SIZE, GRID_ROWS * CELL_SIZE);
}
if (furnitureSprites) {
drawFurniture(gameState.map_data.furniture, furnitureSprites);
}
//drawGrid();
// drawWallsAndDoors();
drawLabels(gameState.map_data.rooms);
if (girlfriend) {
//girlfriend.drawPath(CELL_SIZE);
girlfriend.draw(CELL_SIZE);
}
if (clown) {
clown.checkForGirlfriend(girlfriend);
//clown.drawPath(CELL_SIZE);
clown.draw(CELL_SIZE);
}
gameState.update();
if (gameState.game_over) {
noLoop();
}
}
|