UI/Window/ParkManagement.razor
@using Sandbox
@using Sandbox.UI
@using HC3
@namespace HC3.UI
@inherits Window
<root>
<tabview>
<tab Icon="money_add" Title="Finance">
<div class="table">
<row class="head">Income</row>
@foreach (var statName in GetEarnedStats())
{
<row>
<label class="col name">@statName.ToTitleCase()</label>
<label class="col value earned">
@($"+{Stats.Get($"money_earned.{statName}").ToString("C")}")
</label>
</row>
}
<row class="head">Spendings</row>
@foreach (var statName in GetSpentStats())
{
<row>
<label class="col name">@statName.ToTitleCase()</label>
<label class="col value spent">
@($"-{Stats.Get($"money_spent.{statName}").ToString("C")}")
</label>
</row>
}
<row class="head">Total</row>
<row>
@if (true)
{
var total = Stats.Get("money_earned") - Stats.Get("money_spent");
<label class="col name">Total Earnings</label>
<label class="col value @(total > 0 ? "earned" : "spent")">
@if (total > 0)
{
@($"{total.ToString("C")}")
}
else
{
@($"-{total.ToString("C")}")
}
</label>
}
</row>
</div>
<row>
<label>Daily Income: @ParkManager.Instance.DailyIncome.ToString("C")</label>
</row>
<row>
<label>Best Daily Income: @Stats.Get("park.max_daily_income").ToString("C")</label>
</row>
</tab>
<tab Icon="tab_go" Title="Admission">
<div class="row">
<label>Admission Fee</label>
<TextEntry Numeric=@(true) Prefix="@GameUtils.Currency" Text=@(ParkManager.Instance.AdmissionFee.ToString()) OnTextEdited=@((string x) => { ParkManager.Instance.AdmissionFee = int.Parse(x); }) />
</div>
</tab>
<tab Icon="group" Title="Guests">
<GuestInfoPanel />
<scrolllist style="height: 250px">
@foreach (var guest in GuestManager.Instance.GuestList)
{
<Button [email protected] onclick="@(() => HC3.SelectionSystem.Instance.Select( guest.GameObject ))"</Button>
}
</scrolllist>
</tab>
<tab Icon="cake" Title="Rides">
<RideInfoPanel/>
<scrolllist style="height: 250px">
@foreach (var building in Scene.GetAll<BasicRide>())
{
<Button [email protected] onclick="@(() => HC3.SelectionSystem.Instance.Select( building.GameObject ))"</Button>
}
</scrolllist>
</tab>
</tabview>
<div class="footer">
<div class="button" onclick=@(() => Rename()) tooltip="Rename">
<Silkicon Icon="tag_blue_edit" />
</div>
<DropDown Value:[email protected]/>
</div>
</root>
@code
{
public override string Title => ParkManager.Instance.Name;
public override object Key => "ParkManagement";
public override string Icon => "information";
static ParkManagement instance;
private void Rename()
{
var window = new RenameDialog($"Rename {ParkManager.Instance.Name}", ParkManager.Instance.Name, (s) => ParkManager.Instance.Name = s );
OpenSubwindow(window);
}
IEnumerable<string> GetEarnedStats()
{
var stats = Stats.Current.Values;
foreach (var stat in stats)
{
if (stat.Key.StartsWith("money_earned."))
{
var parts = stat.Key.Split('.');
if (parts.Length == 1) continue;
yield return parts[1];
}
}
}
IEnumerable<string> GetSpentStats()
{
var stats = Stats.Current.Values;
foreach (var stat in stats)
{
if (stat.Key.StartsWith("money_spent."))
{
var parts = stat.Key.Split('.');
if (parts.Length == 1) continue;
yield return parts[1];
}
}
}
public static void Show( bool openAtCursor = false )
{
if (instance.IsValid())
{
WindowManager.Instance.Open(instance);
return;
}
instance = new ParkManagement();
WindowManager.Instance.Open(instance);
if ( !openAtCursor )
{
instance.SetPosition(new Vector2(Screen.Size.x - 16, Screen.Size.y / 2.0f), Window.ScreenAlignment.CenterRight);
}
}
}