Skip to content

Commit

Permalink
讓畫面元件依照資料進行初始化
Browse files Browse the repository at this point in the history
  • Loading branch information
Bean90638 committed May 30, 2024
1 parent dd33d3f commit a9953a8
Show file tree
Hide file tree
Showing 15 changed files with 147 additions and 106 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Client.Pages.Ready.Entities;
namespace Client.Pages.Enums;

public enum ColorEnum
{
Expand Down
6 changes: 6 additions & 0 deletions Client/Pages/Enums/GamingStatusEnum.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace Client.Pages.Enums;

public enum GamingStatusEnum
{
None,
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace Client.Pages.Ready.Entities;
namespace Client.Pages.Enums;

public enum RoleEnum
{
Expand Down
15 changes: 9 additions & 6 deletions Client/Pages/Gaming/Components/PlayerInfo.razor
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
<dlv class="PlayerInfo">
@using Client.Pages.Gaming.Entities
@code {
[CascadingParameter]
public GamingPage Parent { get; set; } = default!;
private Player player => Parent?.Players.FirstOrDefault();
}
<dlv class="PlayerInfo">
<div class="money">
<span>9,000</span>
<span>@player.Money</span>
</div>
<div class="TotalMoney">
<span>9,000</span>
</div>
<div class="TotalMoney">
<span>9,000</span>
<span>@player.GetTotalMoney</span>
</div>
<hr class="withBalls">
<div class="collapseBtn">
Expand Down
115 changes: 31 additions & 84 deletions Client/Pages/Gaming/Components/PlayerRankList.razor
Original file line number Diff line number Diff line change
@@ -1,86 +1,33 @@
<div class="PlayerRankList">
<div class="Player">
<div class="PlayerInfo">
<div class="Rank">
<div class="Round">
<span class="Number">1</span>
</div>
<p class="Name">
Jason1
</p>
</div>
<div class="PlayerMoney">
<div class="Icon oldman"></div>
<div class="MoneyBox">
<p class="Money">1,0000</p>
<p class="TotalMoney">9,000</p>
</div>
</div>
<div class="Status"></div>
</div>
<div class="Host_Flag"></div>
</div>
<div class="Player">
<div class="PlayerInfo">
<div class="Rank">
<div class="Round">
<span class="Number">2</span>
</div>
<p class="Name">
Jason2
</p>
</div>
<div class="PlayerMoney">
<div class="Icon baby"></div>
<div class="MoneyBox">
<p class="Money">1,0000</p>
<p class="TotalMoney">9,000</p>
</div>
</div>
<div class="Status"></div>
</div>
<div class="Host_Flag"></div>
</div>
<div class="Player">
<div class="PlayerInfo">
<div class="Rank">
<div class="Round">
<span class="Number">3</span>
</div>
<p class="Name">
<span>Jason3</span>
</p>
</div>
<div class="PlayerMoney">
<div class="Icon dai"></div>
<div class="MoneyBox">
<p class="Money">1,0000</p>
<p class="TotalMoney">9,000</p>
</div>
</div>
<div class="Status"></div>
</div>
<div class="Host_Flag"></div>
</div>
<div class="Player">
<div class="PlayerInfo">
<div class="Rank">
<div class="Round">
<span class="Number">4</span>
</div>
<p class="Name">
<span>Jason4</span>
</p>
</div>
<div class="PlayerMoney">
<div class="Icon mei"></div>
<div class="MoneyBox">
<p class="Money">1,0000</p>
<p class="TotalMoney">9,000</p>
</div>
</div>
<div class="Status"></div>
@using Client.Pages.Gaming.Entities
@code {
[CascadingParameter]
public GamingPage Parent { get; set; } = default!;
private IEnumerable<Player> players => Parent?.Players;
}

<div class="PlayerRankList">
@foreach (var (player, index) in players.OrderBy(p=>p.GetTotalMoney).Select((item, index) => (item, index)))
{
<div class="Player">
<div class="PlayerInfo">
<div class="Rank">
<div class="Round">
<span class="Number">@(@index + 1)</span>
</div>
<p class="Name">
<span>@player.Name</span>
</p>
</div>
<div class="PlayerMoney">
<div class="Icon @player.Role.ToString().ToLower()"></div>
<div class="MoneyBox">
<p class="Money">@player.Money</p>
<p class="TotalMoney">@player.GetTotalMoney</p>
</div>
</div>
<div class="Status"></div>
</div>
<div class="Host_Flag"></div>
</div>
<div class="Host_Flag"></div>
</div>
}
</div>
9 changes: 9 additions & 0 deletions Client/Pages/Gaming/Entities/ILandContract.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Client.Pages.Gaming.Entities;

public interface ILandContract
{
int Money { get; set; }
int HouseCount { get; set; }

int HouseMoney => HouseCount * 50; //TODO
}
19 changes: 19 additions & 0 deletions Client/Pages/Gaming/Entities/Player.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using Client.Pages.Enums;

namespace Client.Pages.Gaming.Entities;

public class Player
{
public string Id { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public bool IsHost { get; set; } = false;
public ColorEnum Color { get; set; } = ColorEnum.None;
public RoleEnum Role { get; set; } = RoleEnum.None;
public int Order { get; set; } = 0;

public int Money { get; set; } = 0;
public IEnumerable<ILandContract> LandContracts { get; set; } = [];
public GamingStatusEnum Status { get; set; } = GamingStatusEnum.None;

public int GetTotalMoney => Money + LandContracts.Sum(x => x.Money + x.HouseMoney);
}
16 changes: 9 additions & 7 deletions Client/Pages/Gaming/GamingPage.razor
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@
@using Client.Pages.Gaming.Components

<div class="background">
<GameMap></GameMap>
<CascadingValue Value="this">
<GameMap></GameMap>

<GameRound></GameRound>
<PlayerRankList></PlayerRankList>
<ChatBox></ChatBox>
<GameRound></GameRound>
<PlayerRankList></PlayerRankList>
<ChatBox></ChatBox>

<Settings></Settings>
<PlayerInfo></PlayerInfo>
<Go></Go>
<Settings></Settings>
<PlayerInfo></PlayerInfo>
<Go></Go>
</CascadingValue>
</div>
52 changes: 51 additions & 1 deletion Client/Pages/Gaming/GamingPage.razor.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,55 @@
namespace Client.Pages.Gaming;
using Client.Pages.Enums;
using Client.Pages.Gaming.Entities;

namespace Client.Pages.Gaming;

public partial class GamingPage
{
public IEnumerable<Player> Players { get; set; } = [];


protected override async Task OnInitializedAsync()
{
//假資料
Players =
[
new Player
{
Name = "Player1",
Money = 1000,
Color = ColorEnum.Red,
Role = RoleEnum.Baby,
Order = 1,

IsHost = true
},
new Player
{
Name = "Player2",
Money = 1000,
Color = ColorEnum.Blue,
Role = RoleEnum.Dai,
Order = 2
},
new Player
{
Name = "Player3",
Money = 1000,
Color = ColorEnum.Green,
Role = RoleEnum.Mei,
Order = 3
},
new Player
{
Name = "Player4",
Money = 1000,
Color = ColorEnum.Yellow,
Role = RoleEnum.OldMan,
Order = 4
}
];

//初始化遊戲介面,從Ready轉入Player資料

}
}
2 changes: 1 addition & 1 deletion Client/Pages/Ready/Components/ColorChoicePanel.razor
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@using Client.Pages.Ready.Entities
@using Client.Pages.Enums
<div class="choice-bar">
@foreach (var color in new[] { ColorEnum.Blue, ColorEnum.Red, ColorEnum.Yellow, ColorEnum.Green })
{
Expand Down
3 changes: 2 additions & 1 deletion Client/Pages/Ready/Components/ColorChoicePanel.razor.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Client.Pages.Ready.Entities;
using Client.Pages.Enums;
using Client.Pages.Ready.Entities;
using Microsoft.AspNetCore.Components;

namespace Client.Pages.Ready.Components;
Expand Down
3 changes: 2 additions & 1 deletion Client/Pages/Ready/Components/ReadyButton.razor.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Client.Pages.Ready.Entities;
using Client.Pages.Enums;
using Client.Pages.Ready.Entities;
using Microsoft.AspNetCore.Components;

namespace Client.Pages.Ready.Components;
Expand Down
2 changes: 1 addition & 1 deletion Client/Pages/Ready/Components/RoleChoicePanel.razor
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@using Client.Pages.Ready.Entities
@using Client.Pages.Enums
@if (CurrentPlayer is not null)
{
<div class="choice-role-area">
Expand Down
3 changes: 2 additions & 1 deletion Client/Pages/Ready/Components/RoleChoicePanel.razor.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Client.Pages.Ready.Entities;
using Client.Pages.Enums;
using Client.Pages.Ready.Entities;
using Microsoft.AspNetCore.Components;

namespace Client.Pages.Ready.Components;
Expand Down
4 changes: 3 additions & 1 deletion Client/Pages/Ready/Entities/Player.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
namespace Client.Pages.Ready.Entities;
using Client.Pages.Enums;

namespace Client.Pages.Ready.Entities;

public class Player
{
Expand Down

0 comments on commit a9953a8

Please sign in to comment.