From 94e923f2760df4f42f0bec921af64fde24d5b5f6 Mon Sep 17 00:00:00 2001 From: Colin Halseth Date: Thu, 29 Apr 2021 19:13:04 -0700 Subject: [PATCH] Few more items; pages can now set their own title suffix --- TrekSharp.AdventureTools/Pages/ComputeStardate.razor | 1 + TrekSharp.AdventureTools/Pages/ComputeWarp.razor | 1 + TrekSharp.AdventureTools/Pages/CreateBattleGrid.razor | 1 + TrekSharp.AdventureTools/Pages/CreateCustomData.razor | 1 + TrekSharp.AdventureTools/Pages/CreateItem.razor | 2 +- TrekSharp.AdventureTools/Pages/CreateNpcType.razor | 2 +- TrekSharp.AdventureTools/Pages/CreatePlayer.razor | 2 +- TrekSharp.AdventureTools/Pages/CreatePlotWriter.razor | 2 +- .../Pages/CreateRandomPlayer.razor | 2 +- TrekSharp.AdventureTools/Pages/CreateShip.razor | 1 + TrekSharp.AdventureTools/Pages/CreateSpecies.razor | 2 +- TrekSharp.AdventureTools/Pages/CreateSupport.razor | 1 + TrekSharp.AdventureTools/Pages/Index.razor | 2 +- TrekSharp.AdventureTools/Pages/ManageCharacters.razor | 2 +- TrekSharp.AdventureTools/Pages/ManageCustom.razor | 2 +- TrekSharp.AdventureTools/Pages/ManageEncounter.razor | 2 +- .../Pages/ManageExtendedTask.razor | 2 +- TrekSharp.AdventureTools/Pages/ManageShips.razor | 2 +- .../Pages/ViewCharacterNpcSheet.razor | 4 +++- .../Pages/ViewCharacterSheet.razor | 10 ++++++++-- .../Pages/ViewCharacterSupportSheet.razor | 4 +++- TrekSharp.AdventureTools/Pages/ViewNpcShip.razor | 4 +++- TrekSharp.AdventureTools/Pages/ViewShip.razor | 4 +++- .../Shared/AppComponentBase.razor | 6 ++++++ TrekSharp.AdventureTools/Shared/Page.razor | 11 +++++++++++ TrekSharp.AdventureTools/wwwroot/js/helpers.js | 8 ++++++++ TrekSharp/src/Rulebooks/OperationsDivision.cs | 1 + TrekSharp/src/Rulebooks/ScienceDivision.cs | 1 + TrekSharp/src/Ships.cs | 2 +- 29 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 TrekSharp.AdventureTools/Shared/Page.razor diff --git a/TrekSharp.AdventureTools/Pages/ComputeStardate.razor b/TrekSharp.AdventureTools/Pages/ComputeStardate.razor index a8928d9..cbd7142 100644 --- a/TrekSharp.AdventureTools/Pages/ComputeStardate.razor +++ b/TrekSharp.AdventureTools/Pages/ComputeStardate.razor @@ -1,4 +1,5 @@ @page "/calculate/stardate" +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/ComputeWarp.razor b/TrekSharp.AdventureTools/Pages/ComputeWarp.razor index 1b650a8..42a9c91 100644 --- a/TrekSharp.AdventureTools/Pages/ComputeWarp.razor +++ b/TrekSharp.AdventureTools/Pages/ComputeWarp.razor @@ -1,5 +1,6 @@ @page "/calculate/warpspeed" @using Qkmaxware.Astro +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/CreateBattleGrid.razor b/TrekSharp.AdventureTools/Pages/CreateBattleGrid.razor index 674dd2c..2d1fcb2 100644 --- a/TrekSharp.AdventureTools/Pages/CreateBattleGrid.razor +++ b/TrekSharp.AdventureTools/Pages/CreateBattleGrid.razor @@ -1,4 +1,5 @@ @page "/new/grid" +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/CreateCustomData.razor b/TrekSharp.AdventureTools/Pages/CreateCustomData.razor index 9cd0ab6..bb70a90 100644 --- a/TrekSharp.AdventureTools/Pages/CreateCustomData.razor +++ b/TrekSharp.AdventureTools/Pages/CreateCustomData.razor @@ -1,4 +1,5 @@ @page "/new/custom" +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/CreateItem.razor b/TrekSharp.AdventureTools/Pages/CreateItem.razor index a071963..08add67 100644 --- a/TrekSharp.AdventureTools/Pages/CreateItem.razor +++ b/TrekSharp.AdventureTools/Pages/CreateItem.razor @@ -1,5 +1,5 @@ @page "/new/custom/item" -@inherits AppComponentBase +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/CreateNpcType.razor b/TrekSharp.AdventureTools/Pages/CreateNpcType.razor index f3f238c..ffde6e3 100644 --- a/TrekSharp.AdventureTools/Pages/CreateNpcType.razor +++ b/TrekSharp.AdventureTools/Pages/CreateNpcType.razor @@ -1,6 +1,6 @@ @page "/new/custom/npc" @using Data -@inherits AppComponentBase +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/CreatePlayer.razor b/TrekSharp.AdventureTools/Pages/CreatePlayer.razor index 79af406..176f066 100644 --- a/TrekSharp.AdventureTools/Pages/CreatePlayer.razor +++ b/TrekSharp.AdventureTools/Pages/CreatePlayer.razor @@ -1,7 +1,7 @@ @page "/new/player/lifepath" @using System.Globalization -@inherits AppComponentBase +@inherits Page @inject IJSRuntime JsRuntime diff --git a/TrekSharp.AdventureTools/Pages/CreatePlotWriter.razor b/TrekSharp.AdventureTools/Pages/CreatePlotWriter.razor index 21822d8..5559a4a 100644 --- a/TrekSharp.AdventureTools/Pages/CreatePlotWriter.razor +++ b/TrekSharp.AdventureTools/Pages/CreatePlotWriter.razor @@ -1,5 +1,5 @@ @page "/new/plot/writer" -@inject AppData Data +@inherits Page diff --git a/TrekSharp.AdventureTools/Pages/CreateRandomPlayer.razor b/TrekSharp.AdventureTools/Pages/CreateRandomPlayer.razor index a890eba..7906b17 100644 --- a/TrekSharp.AdventureTools/Pages/CreateRandomPlayer.razor +++ b/TrekSharp.AdventureTools/Pages/CreateRandomPlayer.razor @@ -1,5 +1,5 @@ @page "/new/player/random" -@inherits AppComponentBase +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/CreateShip.razor b/TrekSharp.AdventureTools/Pages/CreateShip.razor index a05cb45..7e4db0e 100644 --- a/TrekSharp.AdventureTools/Pages/CreateShip.razor +++ b/TrekSharp.AdventureTools/Pages/CreateShip.razor @@ -1,4 +1,5 @@ @page "/new/ship" +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/CreateSpecies.razor b/TrekSharp.AdventureTools/Pages/CreateSpecies.razor index db5200f..1cdeeda 100644 --- a/TrekSharp.AdventureTools/Pages/CreateSpecies.razor +++ b/TrekSharp.AdventureTools/Pages/CreateSpecies.razor @@ -1,5 +1,5 @@ @page "/new/custom/species" -@inherits AppComponentBase +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/CreateSupport.razor b/TrekSharp.AdventureTools/Pages/CreateSupport.razor index d9797e2..86a3e17 100644 --- a/TrekSharp.AdventureTools/Pages/CreateSupport.razor +++ b/TrekSharp.AdventureTools/Pages/CreateSupport.razor @@ -1,4 +1,5 @@ @page "/new/support" +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/Index.razor b/TrekSharp.AdventureTools/Pages/Index.razor index 6ed6d87..bcd3849 100644 --- a/TrekSharp.AdventureTools/Pages/Index.razor +++ b/TrekSharp.AdventureTools/Pages/Index.razor @@ -1,5 +1,5 @@ @page "/" -@inherits AppComponentBase +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/ManageCharacters.razor b/TrekSharp.AdventureTools/Pages/ManageCharacters.razor index eb53374..6aeef0e 100644 --- a/TrekSharp.AdventureTools/Pages/ManageCharacters.razor +++ b/TrekSharp.AdventureTools/Pages/ManageCharacters.razor @@ -1,5 +1,5 @@ @page "/manage/characters" -@inherits AppComponentBase +@inherits Page @using Data
diff --git a/TrekSharp.AdventureTools/Pages/ManageCustom.razor b/TrekSharp.AdventureTools/Pages/ManageCustom.razor index 6c29672..64a380c 100644 --- a/TrekSharp.AdventureTools/Pages/ManageCustom.razor +++ b/TrekSharp.AdventureTools/Pages/ManageCustom.razor @@ -1,5 +1,5 @@ @page "/manage/custom" -@inherits AppComponentBase +@inherits Page @if (Data.Custom != null && Data.Custom.Species != null && Data.Custom.Species.Definitions != null) { diff --git a/TrekSharp.AdventureTools/Pages/ManageEncounter.razor b/TrekSharp.AdventureTools/Pages/ManageEncounter.razor index 428b9a8..99efce4 100644 --- a/TrekSharp.AdventureTools/Pages/ManageEncounter.razor +++ b/TrekSharp.AdventureTools/Pages/ManageEncounter.razor @@ -1,7 +1,7 @@ @page "/manage/encounters" @using System.Globalization @using Data -@inherits AppComponentBase +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/ManageExtendedTask.razor b/TrekSharp.AdventureTools/Pages/ManageExtendedTask.razor index 469f25b..061ce95 100644 --- a/TrekSharp.AdventureTools/Pages/ManageExtendedTask.razor +++ b/TrekSharp.AdventureTools/Pages/ManageExtendedTask.razor @@ -1,5 +1,5 @@ @page "/manage/task/extended" -@inherits AppComponentBase +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/ManageShips.razor b/TrekSharp.AdventureTools/Pages/ManageShips.razor index 59a2b02..8072c00 100644 --- a/TrekSharp.AdventureTools/Pages/ManageShips.razor +++ b/TrekSharp.AdventureTools/Pages/ManageShips.razor @@ -1,6 +1,6 @@ @page "/manage/ships" @using Data -@inherits AppComponentBase +@inherits Page
diff --git a/TrekSharp.AdventureTools/Pages/ViewCharacterNpcSheet.razor b/TrekSharp.AdventureTools/Pages/ViewCharacterNpcSheet.razor index 5f13f5c..175cae1 100644 --- a/TrekSharp.AdventureTools/Pages/ViewCharacterNpcSheet.razor +++ b/TrekSharp.AdventureTools/Pages/ViewCharacterNpcSheet.razor @@ -1,5 +1,5 @@ @page "/manage/characters/npc/{EncounterId}/{ListId}/{PlayerId}" -@inherits AppComponentBase +@inherits Page @if (HasCharacter) { @@ -121,6 +121,8 @@ } public bool HasCharacter => Player != null; + public override string PageTitle => Player?.Name; + private void confirmDelete() { confirm.Open($"Are you sure you want to delete the character '{this.Player.Name}'?", () => Delete()); } diff --git a/TrekSharp.AdventureTools/Pages/ViewCharacterSheet.razor b/TrekSharp.AdventureTools/Pages/ViewCharacterSheet.razor index 39d0fc8..672976c 100644 --- a/TrekSharp.AdventureTools/Pages/ViewCharacterSheet.razor +++ b/TrekSharp.AdventureTools/Pages/ViewCharacterSheet.razor @@ -1,5 +1,5 @@ @page "/manage/characters/player/{PlayerId}" -@inherits AppComponentBase +@inherits Page @if (HasCharacter) { @@ -163,6 +163,8 @@ public PlayerCharacter Player => PlayerIndex >=0 && PlayerIndex < Data.Party.Count ? Data.Party[PlayerIndex] : null; public bool HasCharacter => Player != null; + public override string PageTitle => Player?.Name; + private void confirmDelete() { confirm.Open($"Are you sure you want to delete the character '{this.Player.Name}'?", () => Delete()); } @@ -188,4 +190,8 @@ milestones.Open(this.Player); } -} \ No newline at end of file +} + + protected override string + + public override string \ No newline at end of file diff --git a/TrekSharp.AdventureTools/Pages/ViewCharacterSupportSheet.razor b/TrekSharp.AdventureTools/Pages/ViewCharacterSupportSheet.razor index 88a0410..21ee82e 100644 --- a/TrekSharp.AdventureTools/Pages/ViewCharacterSupportSheet.razor +++ b/TrekSharp.AdventureTools/Pages/ViewCharacterSupportSheet.razor @@ -1,5 +1,5 @@ @page "/manage/characters/support/{PlayerId}" -@inherits AppComponentBase +@inherits Page @if (HasCharacter) { @@ -92,6 +92,8 @@ public SupportCharacter Player => PlayerIndex >=0 && PlayerIndex < Data.Supports.Count ? Data.Supports[PlayerIndex] : null; public bool HasCharacter => Player != null; + public override string PageTitle => Player?.Name; + private void confirmDelete() { confirm.Open($"Are you sure you want to delete the character '{this.Player.Name}'?", () => Delete()); } diff --git a/TrekSharp.AdventureTools/Pages/ViewNpcShip.razor b/TrekSharp.AdventureTools/Pages/ViewNpcShip.razor index 5119490..dd0a665 100644 --- a/TrekSharp.AdventureTools/Pages/ViewNpcShip.razor +++ b/TrekSharp.AdventureTools/Pages/ViewNpcShip.razor @@ -1,5 +1,5 @@ @page "/manage/ships/npc/{EncounterId}/{ListId}/{ShipId}" -@inherits AppComponentBase +@inherits Page @if (HasShip) { @@ -188,6 +188,8 @@ } public bool HasShip => Ship != null; + public override string PageTitle => Ship?.Name; + private void confirmDelete() { confirm.Open($"Are you sure you want to delete the ship '{this.Ship.Name}'?", () => Delete()); } diff --git a/TrekSharp.AdventureTools/Pages/ViewShip.razor b/TrekSharp.AdventureTools/Pages/ViewShip.razor index 405e83a..6108890 100644 --- a/TrekSharp.AdventureTools/Pages/ViewShip.razor +++ b/TrekSharp.AdventureTools/Pages/ViewShip.razor @@ -1,5 +1,5 @@ @page "/manage/ships/vessel/{ShipId}" -@inherits AppComponentBase +@inherits Page @if (HasShip) { @@ -161,6 +161,8 @@ } public PlayerVessel Ship => ShipIndex >=0 && ShipIndex < Data.Ships.Count ? Data.Ships[ShipIndex] : null; public bool HasShip => Ship != null; + + public override string PageTitle => Ship?.Name; private void confirmDelete() { confirm.Open($"Are you sure you want to delete the ship '{this.Ship.Name}'?", () => Delete()); diff --git a/TrekSharp.AdventureTools/Shared/AppComponentBase.razor b/TrekSharp.AdventureTools/Shared/AppComponentBase.razor index e83e8f7..e8ddbdd 100644 --- a/TrekSharp.AdventureTools/Shared/AppComponentBase.razor +++ b/TrekSharp.AdventureTools/Shared/AppComponentBase.razor @@ -3,6 +3,7 @@ @inject NavigationManager AppNavigationManager; @code { + protected AppData Data => AppDataService; protected NavigationManager NavigationManager => AppNavigationManager; public async Task DownloadJson(string filename, T data) { @@ -11,6 +12,11 @@ await JSRuntime.InvokeVoidAsync("BlazorDownloadFile", $"{filename}.json", "text/json", file); } + protected async Task SetPageTitle(string title) { + Console.WriteLine("Setting Page Title To: " + title); + await JSRuntime.InvokeVoidAsync("BlazorSetPageTitle", title); + } + protected void NavigateHome() { NavigationManager.NavigateTo(string.Empty); } diff --git a/TrekSharp.AdventureTools/Shared/Page.razor b/TrekSharp.AdventureTools/Shared/Page.razor new file mode 100644 index 0000000..01ae442 --- /dev/null +++ b/TrekSharp.AdventureTools/Shared/Page.razor @@ -0,0 +1,11 @@ +@inherits AppComponentBase + +@code { + public virtual string PageTitle => null; + + protected override async Task OnAfterRenderAsync(bool firstRender) { + if (firstRender) { + await SetPageTitle(PageTitle); + } + } +} \ No newline at end of file diff --git a/TrekSharp.AdventureTools/wwwroot/js/helpers.js b/TrekSharp.AdventureTools/wwwroot/js/helpers.js index bcbad41..e51ad37 100644 --- a/TrekSharp.AdventureTools/wwwroot/js/helpers.js +++ b/TrekSharp.AdventureTools/wwwroot/js/helpers.js @@ -1,3 +1,11 @@ +function BlazorSetPageTitle(title) { + if (title && title.length > 0) { + document.title = "TrekSharp - " + title; + } else { + document.title = "TrekSharp"; + } +} + function BlazorDownloadFile(filename, contentType, content) { // Blazor marshall byte[] to a base64 string, so we first need to convert the string (content) to a Uint8Array to create the File const data = base64DecToArr(content); diff --git a/TrekSharp/src/Rulebooks/OperationsDivision.cs b/TrekSharp/src/Rulebooks/OperationsDivision.cs index 988af27..d3628a4 100644 --- a/TrekSharp/src/Rulebooks/OperationsDivision.cs +++ b/TrekSharp/src/Rulebooks/OperationsDivision.cs @@ -183,6 +183,7 @@ private OperationsDivision() {} ) }, Items = new List { + new Item { Name = "Engineering Tricorder", Size = ItemSize.OneHanded }, new Item { Name = "Micro-Optic Drill", Size = ItemSize.OneHanded }, new Item { Name = "Phaser Drill", Size = ItemSize.TwoHanded }, new Item { Name = "Engineering Tricorder", Size = ItemSize.OneHanded }, diff --git a/TrekSharp/src/Rulebooks/ScienceDivision.cs b/TrekSharp/src/Rulebooks/ScienceDivision.cs index 0c38ffe..dabb0f3 100644 --- a/TrekSharp/src/Rulebooks/ScienceDivision.cs +++ b/TrekSharp/src/Rulebooks/ScienceDivision.cs @@ -251,6 +251,7 @@ private ScienceDivision() {} ) }, Items = new List { + new Item { Name = "Medical Tricorder", Size = ItemSize.OneHanded }, new Item { Name = "Blood Gas Infuser", Size = ItemSize.TwoHanded }, new Item { Name = "Bone Regenerator", Size = ItemSize.TwoHanded }, new Item { Name = "Blood Gas Infuser", Size = ItemSize.OneHanded }, diff --git a/TrekSharp/src/Ships.cs b/TrekSharp/src/Ships.cs index 6318e06..dffa8b5 100644 --- a/TrekSharp/src/Ships.cs +++ b/TrekSharp/src/Ships.cs @@ -140,7 +140,7 @@ public int ShieldsRemaining { this.UsedShields = Shields - value; } } - public int Shields => Systems.Structure + (Talents == null ? 0 : Talents.Select(talent => talent.ShieldModifier).Sum()); + public int Shields => Systems.Structure + Departments.Security + (Talents == null ? 0 : Talents.Select(talent => talent.ShieldModifier).Sum()); public int UsedPower; public int PowerRemaining { get => Math.Max(0, Power - UsedPower);