From edb7836e55037883a7bed00bd4d40ea152b737b9 Mon Sep 17 00:00:00 2001 From: Andrei Date: Thu, 23 Jan 2025 13:42:26 -0600 Subject: [PATCH] Weather values randomized if no number is given as a command argument --- src/events/chat/gameMaster/toggleFogCommand.ts | 7 ++++++- src/events/chat/gameMaster/toggleRainCommand.ts | 8 ++++++-- src/managers/weatherManager.ts | 14 +++++++------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/events/chat/gameMaster/toggleFogCommand.ts b/src/events/chat/gameMaster/toggleFogCommand.ts index 8500e09..1d69c39 100644 --- a/src/events/chat/gameMaster/toggleFogCommand.ts +++ b/src/events/chat/gameMaster/toggleFogCommand.ts @@ -22,7 +22,12 @@ export default class ToggleFogCommand extends BaseEvent { const args = ChatService.getArgs('fog', data.message) - await WeatherManager.setFogValue(Number(args![0])) + if (args![0]) { + await WeatherManager.setFogValue(Number(args![0])) + } + else { + await WeatherManager.setFogValue(null) + } } catch (error: any) { this.logger.error('command error', error.message) diff --git a/src/events/chat/gameMaster/toggleRainCommand.ts b/src/events/chat/gameMaster/toggleRainCommand.ts index e83fe3d..0c58314 100644 --- a/src/events/chat/gameMaster/toggleRainCommand.ts +++ b/src/events/chat/gameMaster/toggleRainCommand.ts @@ -22,8 +22,12 @@ export default class ToggleRainCommand extends BaseEvent { let args = ChatService.getArgs('rain', data.message) - //if no arguments are given, should default to random - await WeatherManager.setRainValue(Number(args![0])) + if (args![0]) { + await WeatherManager.setRainValue(Number(args![0])) + } + else { + await WeatherManager.setRainValue(null) + } } catch (error: any) { this.logger.error('command error', error.message) diff --git a/src/managers/weatherManager.ts b/src/managers/weatherManager.ts index 39e6157..a245bf6 100644 --- a/src/managers/weatherManager.ts +++ b/src/managers/weatherManager.ts @@ -48,18 +48,18 @@ class WeatherManager { } } - public async setRainValue(value? : number): Promise { - if (value === undefined) { - value = this.weatherState.rainPercentage > 0 ? 0 : this.randomWeatherValue('rain') + public async setRainValue(value : number | null): Promise { + if (value === null) { + value = this.randomWeatherValue('rain') } this.updateWeatherProperty('rain', value) await this.saveAndEmitWeather() } - public async setFogValue(value? : number): Promise { - if (value === undefined) { - value = this.weatherState.fogDensity > 0 ? 0 : this.randomWeatherValue('fog') + public async setFogValue(value : number | null): Promise { + if (value === null) { + value = this.randomWeatherValue('fog') } this.updateWeatherProperty('fog', value) @@ -127,7 +127,7 @@ class WeatherManager { let world = await worldRepository.getFirst() if (!world) world = new World() - //left them in here because the + //the data model still contains the booleans await world .setRainPercentage(this.weatherState.rainPercentage) .setIsRainEnabled(this.weatherState.rainPercentage > 0)