Skip to content

Commit 911e901

Browse files
committed
teamcount
1 parent 4b50178 commit 911e901

2 files changed

Lines changed: 16 additions & 6 deletions

File tree

logic/Gaming/Game.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,11 @@ public partial class Game
2626
{
2727
private readonly Map gameMap;
2828
public Map GameMap => gameMap;
29+
private readonly int numOfTeam;
30+
public int NumOfTeam => numOfTeam;
2931
public Game(MapStruct mapResource, int numOfTeam)
3032
{
33+
this.numOfTeam = numOfTeam;
3134
gameMap = new(mapResource);
3235
characterManager = new(this, gameMap);
3336
actionManager = new(this, gameMap, characterManager);

logic/Gaming/Teams.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System;
66
using System.Collections.Concurrent;
77
using System.Collections.Generic;
8+
using System.Linq;
89
using static System.Formats.Asn1.AsnWriter;
910

1011
namespace Gaming
@@ -82,15 +83,21 @@ private void InitTeams()
8283
// MapInfo 中 defaultMap 的工厂位置是 [3,3], [3,46], [46,3], [46,46]
8384
var corners = new (int cx, int cy)[]
8485
{
85-
(3, 3), // Team 1 工厂位置
86-
(3, 46), // Team 2 工厂位置
87-
(46, 3), // Team 3 工厂位置
88-
(46, 46) // Team 4 工厂位置
86+
(3, 3), // 角0 — 左下
87+
(3, 46), // 角1 — 左上
88+
(46, 3), // 角2 — 右下
89+
(46, 46) // 角3 — 右上
8990
};
90-
for (int i = 0; i < 4; i++)
91+
int[] selected = numOfTeam switch
92+
{
93+
2 => new[] { 0, 3 }, // 对角线
94+
3 => new[] { 0, 1, 3 }, // 三角形
95+
_ => Enumerable.Range(0, numOfTeam).ToArray()
96+
};
97+
for (int i = 0; i < numOfTeam; i++)
9198
{
9299
long teamId = i + 1;
93-
var (cx, cy) = corners[i];
100+
var (cx, cy) = corners[selected[i]];
94101
XY pos = GameData.GetCellCenterPos(cx, cy);
95102
var fac = new Factory(pos);
96103
fac.TeamID.SetROri(teamId);

0 commit comments

Comments
 (0)