AIGameSettingControls.NumSentryTowers = class extends AIGameSettingControlInt
{
	constructor(...args)
	{
		super(...args);
		this.defaultValue = 1;
		g_GameSettings.playerAI.watch(() => this.render(), ["values"]);
	}

	onOpenPage(playerIndex, enabled)
	{
		super.onOpenPage(playerIndex, enabled);
		this.render();
	}

	render()
	{
		const ai = g_GameSettings.playerAI.get(this.playerIndex);
		this.setHidden(!ai);
		if (ai)
		{
			const value = ai.military?.numSentryTowers ?? this.defaultValue;
			this.setIntValue(value);
		}
	}

	onValueChange(value)
	{
		const ai = g_GameSettings.playerAI.get(this.playerIndex);
		const military = ai && ai.military ? { ...ai.military, "numSentryTowers": value } : { "numSentryTowers": value };
		g_GameSettings.playerAI.setMilitary(this.playerIndex, military);
		this.gameSettingsController.setNetworkInitAttributes();
	}
};

AIGameSettingControls.NumSentryTowers.prototype.TitleCaption =
	translate("Num Sentry Towers");
