Anton Tarasenko
2 years ago
2 changed files with 532 additions and 45 deletions
@ -0,0 +1,399 @@
|
||||
/** |
||||
* 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 <https://www.gnu.org/licenses/>. |
||||
*/ |
||||
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<TextTemplate> 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<TextTemplate> 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<TextTemplate> 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<TextTemplate> 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<TextTemplate> 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<TextTemplate> 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<TextTemplate> 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"); |
||||
} |
||||
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<TextTemplate> templates; |
||||
|
||||
if (!tradersClosed.initialized) |
||||
{ |
||||
tradersClosed.initialized = true; |
||||
tradersClosed.toSelfReport = _.text.MakeTemplate_S( |
||||
"{$TextPositive Closed} following traders: %1"); |
||||
tradersClosed.toSelfPublic = _.text.MakeTemplate_S( |
||||
"%%instigator%% {$TextPositive closed} following traders: %1"); |
||||
} |
||||
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<TextTemplate> 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<TextTemplate> 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<TextTemplate> 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<TextTemplate> 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"); |
||||
} |
||||
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<TextTemplate> 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"); |
||||
} |
||||
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<TextTemplate> 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"); |
||||
} |
||||
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<TextTemplate> 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"); |
||||
} |
||||
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<TextTemplate> 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"); |
||||
} |
||||
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 |
||||
{ |
||||
} |
Loading…
Reference in new issue