/** * Announcer for `ACommandTrader`. * Copyright 2022 Anton Tarasenko *------------------------------------------------------------------------------ * This file is part of Acedia. * * Acedia is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License, or * (at your option) any later version. * * Acedia is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Acedia. If not, see . */ class ACommandTrader_Announcer extends CommandAnnouncer; var private AnnouncementVariations tradingNoChange; var private AnnouncementVariations activatedTrading, deactivatedTrading; var private AnnouncementVariations pausedTime, unpausedTime, changedCountdown; var private AnnouncementVariations tradersOpened, tradersClosed; var private AnnouncementVariations selectedNoTrader, selectedSameTrader; var private AnnouncementVariations selectedTrader, bootedPlayers; var private AnnouncementVariations enabledTraders, disabledTraders; var private AnnouncementVariations autoOpenTraders, doNotAutoOpenTraders; protected function Finalizer() { FreeVariations(tradingNoChange); FreeVariations(activatedTrading); FreeVariations(deactivatedTrading); FreeVariations(pausedTime); FreeVariations(unpausedTime); FreeVariations(changedCountdown); FreeVariations(tradersOpened); FreeVariations(tradersClosed); FreeVariations(selectedNoTrader); FreeVariations(selectedSameTrader); FreeVariations(selectedTrader); FreeVariations(bootedPlayers); FreeVariations(enabledTraders); FreeVariations(disabledTraders); FreeVariations(autoOpenTraders); FreeVariations(doNotAutoOpenTraders); super.Finalizer(); } public final function AnnounceTradingNoChange() { local int i; local array templates; if (!tradingNoChange.initialized) { tradingNoChange.initialized = true; tradingNoChange.toSelfReport = _.text.MakeTemplate_S( "There was {$TextNegative no change} in trading time status"); } templates = MakeArray(tradingNoChange); for (i = 0; i < templates.length; i += 1) { templates[i].Reset(); } MakeAnnouncement(tradingNoChange); } public final function AnnounceActivatedTrading() { local int i; local array templates; if (!activatedTrading.initialized) { activatedTrading.initialized = true; activatedTrading.toSelfReport = _.text.MakeTemplate_S( "Trader time {$TextPositive started}"); activatedTrading.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextPositive started} trader time"); } templates = MakeArray(activatedTrading); for (i = 0; i < templates.length; i += 1) { templates[i].Reset(); } MakeAnnouncement(activatedTrading); } public final function AnnounceDeactivatedTrading() { local int i; local array templates; if (!deactivatedTrading.initialized) { deactivatedTrading.initialized = true; deactivatedTrading.toSelfReport = _.text.MakeTemplate_S( "Trader time {$TextNegative ended}"); deactivatedTrading.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextNegative ended} trader time"); } templates = MakeArray(pausedTime); for (i = 0; i < templates.length; i += 1) { templates[i].Reset(); } MakeAnnouncement(deactivatedTrading); } public final function AnnouncePausedTime() { local int i; local array templates; if (!pausedTime.initialized) { pausedTime.initialized = true; pausedTime.toSelfReport = _.text.MakeTemplate_S( "Trader time {$TextNeutral paused}"); pausedTime.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextNeutral paused} trader time"); } templates = MakeArray(pausedTime); for (i = 0; i < templates.length; i += 1) { templates[i].Reset(); } MakeAnnouncement(pausedTime); } public final function AnnounceUnpausedTime() { local int i; local array templates; if (!unpausedTime.initialized) { unpausedTime.initialized = true; unpausedTime.toSelfReport = _.text.MakeTemplate_S( "Trader time {$TextNeutral unpaused}"); unpausedTime.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextNeutral unpaused} trader time"); } templates = MakeArray(unpausedTime); for (i = 0; i < templates.length; i += 1) { templates[i].Reset(); } MakeAnnouncement(unpausedTime); } public final function AnnounceChangedCountdown(int userTimerValue) { local int i; local array templates; if (!changedCountdown.initialized) { changedCountdown.initialized = true; changedCountdown.toSelfReport = _.text.MakeTemplate_S( "Trader time {$TextNeutral changed} to %1"); changedCountdown.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextNeutral changed} trader time to %1"); } templates = MakeArray(changedCountdown); for (i = 0; i < templates.length; i += 1) { templates[i].Reset().ArgInt(userTimerValue); } MakeAnnouncement(changedCountdown); } public final function AnnounceTradersOpened(ListBuilder traderList) { local int i; local MutableText traderListAsText; local array templates; if (!tradersOpened.initialized) { tradersOpened.initialized = true; tradersOpened.toSelfReport = _.text.MakeTemplate_S( "{$TextPositive Opened} following traders: %1"); tradersOpened.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextPositive opened} following traders: %1"); } if (traderList.IsEmpty()) { return; } traderListAsText = traderList.GetMutable(); templates = MakeArray(tradersOpened); for (i = 0; i < templates.length; i += 1) { templates[i].Reset().Arg(traderListAsText); } MakeAnnouncement(tradersOpened); _.memory.Free(traderListAsText); } public final function AnnounceTradersClosed(ListBuilder traderList) { local int i; local MutableText traderListAsText; local array templates; if (!tradersClosed.initialized) { tradersClosed.initialized = true; tradersClosed.toSelfReport = _.text.MakeTemplate_S( "{$TextNegative Closed} following traders: %1"); tradersClosed.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextNegative closed} following traders: %1"); } if (traderList.IsEmpty()) { return; } traderListAsText = traderList.GetMutable(); templates = MakeArray(tradersClosed); for (i = 0; i < templates.length; i += 1) { templates[i].Reset().Arg(traderListAsText); } MakeAnnouncement(tradersClosed); _.memory.Free(traderListAsText); } public final function AnnounceSelectedNoTrader() { local int i; local array templates; if (!selectedNoTrader.initialized) { selectedNoTrader.initialized = true; selectedNoTrader.toSelfReport = _.text.MakeTemplate_S( "All traders were {$TextNegative deselected}"); selectedNoTrader.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextNegative deselected} all traders"); } templates = MakeArray(selectedNoTrader); for (i = 0; i < templates.length; i += 1) { templates[i].Reset(); } MakeAnnouncement(selectedNoTrader); } public final function AnnounceSelectedSameTrader() { local int i; local array templates; if (!selectedSameTrader.initialized) { selectedSameTrader.initialized = true; selectedSameTrader.toSelfReport = _.text.MakeTemplate_S( "{$TestNeutral No changes} made as a result of" @ "{$TextEmphasis select} command"); } templates = MakeArray(selectedSameTrader); for (i = 0; i < templates.length; i += 1) { templates[i].Reset(); } MakeAnnouncement(selectedSameTrader); } public final function AnnounceSelectedTrader(ETrader trader) { local int i; local Text traderName; local array templates; if (!selectedTrader.initialized) { selectedTrader.initialized = true; selectedTrader.toSelfReport = _.text.MakeTemplate_S( "{$TextNeutral Selected} trader \"%1\""); selectedTrader.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextNeutral selected} trader \"%1\""); } traderName = trader.GetName(); templates = MakeArray(selectedTrader); for (i = 0; i < templates.length; i += 1) { templates[i].Reset().Arg(traderName); } MakeAnnouncement(selectedTrader); _.memory.Free(traderName); } public final function AnnounceBootedPlayers(ListBuilder traderList) { local int i; local MutableText traderListAsText; local array templates; if (!bootedPlayers.initialized) { bootedPlayers.initialized = true; bootedPlayers.toSelfReport = _.text.MakeTemplate_S( "{$TextNegative Booted} players from following traders: %1"); bootedPlayers.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextNegative booted} players from following" @ "traders: %1"); } if (traderList.IsEmpty()) { return; } traderListAsText = traderList.GetMutable(); templates = MakeArray(bootedPlayers); for (i = 0; i < templates.length; i += 1) { templates[i].Reset().Arg(traderListAsText); } MakeAnnouncement(bootedPlayers); _.memory.Free(traderListAsText); } public final function AnnounceEnabledTraders(ListBuilder traderList) { local int i; local MutableText traderListAsText; local array templates; if (!enabledTraders.initialized) { enabledTraders.initialized = true; enabledTraders.toSelfReport = _.text.MakeTemplate_S( "{$TextPositive Enabled} following traders: %1"); enabledTraders.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextPositive enabled} following traders: %1"); } if (traderList.IsEmpty()) { return; } traderListAsText = traderList.GetMutable(); templates = MakeArray(enabledTraders); for (i = 0; i < templates.length; i += 1) { templates[i].Reset().Arg(traderListAsText); } MakeAnnouncement(enabledTraders); _.memory.Free(traderListAsText); } public final function AnnounceDisabledTraders(ListBuilder traderList) { local int i; local MutableText traderListAsText; local array templates; if (!disabledTraders.initialized) { disabledTraders.initialized = true; disabledTraders.toSelfReport = _.text.MakeTemplate_S( "{$TextNegative Disabled} following traders: %1"); disabledTraders.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% {$TextNegative disabled} following traders: %1"); } if (traderList.IsEmpty()) { return; } traderListAsText = traderList.GetMutable(); templates = MakeArray(disabledTraders); for (i = 0; i < templates.length; i += 1) { templates[i].Reset().Arg(traderListAsText); } MakeAnnouncement(disabledTraders); _.memory.Free(traderListAsText); } public final function AnnounceAutoOpenTraders(ListBuilder traderList) { local int i; local MutableText traderListAsText; local array templates; if (!autoOpenTraders.initialized) { autoOpenTraders.initialized = true; autoOpenTraders.toSelfReport = _.text.MakeTemplate_S( "Following traders will be {$TextPositive auto-opened}: %1"); autoOpenTraders.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% made following traders {$TextPositive automatically" @ "openable}: %1"); } if (traderList.IsEmpty()) { return; } traderListAsText = traderList.GetMutable(); templates = MakeArray(autoOpenTraders); for (i = 0; i < templates.length; i += 1) { templates[i].Reset().Arg(traderListAsText); } MakeAnnouncement(autoOpenTraders); _.memory.Free(traderListAsText); } public final function AnnounceDoNotAutoOpenTraders(ListBuilder traderList) { local int i; local MutableText traderListAsText; local array templates; if (!doNotAutoOpenTraders.initialized) { doNotAutoOpenTraders.initialized = true; doNotAutoOpenTraders.toSelfReport = _.text.MakeTemplate_S( "Following traders will {$TextNegative no longer} be auto-opened:" @ "%1"); doNotAutoOpenTraders.toSelfPublic = _.text.MakeTemplate_S( "%%instigator%% made following traders {$TextNegative no longer}" @ "automatically openable: %1"); } if (traderList.IsEmpty()) { return; } traderListAsText = traderList.GetMutable(); templates = MakeArray(doNotAutoOpenTraders); for (i = 0; i < templates.length; i += 1) { templates[i].Reset().Arg(traderListAsText); } MakeAnnouncement(doNotAutoOpenTraders); _.memory.Free(traderListAsText); } defaultproperties { }