mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2025-12-07 08:58:23 +00:00
优化文本输出
This commit is contained in:
parent
a23802bdb0
commit
ef349b5d45
@ -14,7 +14,7 @@ namespace Oshima.FunGame.OshimaServers.Model
|
||||
Dictionary<long, int> userPoints = [];
|
||||
|
||||
StringBuilder builder = new();
|
||||
builder.AppendLine("--- 参赛选手 ---");
|
||||
builder.AppendLine("☆--- 参赛选手 ---☆");
|
||||
|
||||
List<Horse> horses = [];
|
||||
foreach (User user in room.UserAndIsReady.Keys)
|
||||
@ -33,14 +33,14 @@ namespace Oshima.FunGame.OshimaServers.Model
|
||||
}
|
||||
}
|
||||
|
||||
builder.AppendLine("\r\n--- 比赛开始! ---");
|
||||
builder.AppendLine("\r\n☆--- 比赛开始! ---☆");
|
||||
|
||||
int maxLength = _random.Next(8, 16);
|
||||
builder.AppendLine($"本次抽取赛道长度:{maxLength} 步!");
|
||||
|
||||
for (int turn = 1; turn <= MaxTurns; turn++)
|
||||
{
|
||||
builder.AppendLine($"\r\n--- 第 {turn} 回合 ---");
|
||||
builder.AppendLine($"\r\n\r\n☆--- 第 {turn} 回合 ---☆");
|
||||
bool raceFinished = false;
|
||||
Dictionary<Horse, int> turnSteps = [];
|
||||
Dictionary<Horse, Dictionary<HorseSkill, Horse>> turnSkills = [];
|
||||
@ -161,19 +161,19 @@ namespace Oshima.FunGame.OshimaServers.Model
|
||||
|
||||
if (horse.CurrentPosition >= maxLength)
|
||||
{
|
||||
builder.AppendLine($"\r\n🎯 恭喜 [ {horse}({horse.HP}) ] 冲过终点线!它赢得了比赛!");
|
||||
builder.AppendLine($"\r\n🎯 恭喜 [ {horse}({horse.HP}) ] 冲过终点线!它赢得了比赛!\r\n");
|
||||
raceFinished = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
builder.AppendLine("\r\n--- 赛道状况 ---");
|
||||
builder.AppendLine("☆--- 赛道状况 ---☆");
|
||||
for (int i = 0; i < horses.Count; i++)
|
||||
{
|
||||
builder.AppendLine(GenerateTrackString(horses[i], i + 1, maxLength, turnSteps));
|
||||
}
|
||||
|
||||
msgs.Add(builder.ToString().Trim());
|
||||
msgs.Add($"{builder.ToString().Trim()}\r\n");
|
||||
builder.Clear();
|
||||
|
||||
if (raceFinished)
|
||||
@ -183,7 +183,7 @@ namespace Oshima.FunGame.OshimaServers.Model
|
||||
}
|
||||
|
||||
builder.Clear();
|
||||
builder.AppendLine("\r\n--- 比赛结果 ---");
|
||||
builder.AppendLine("☆--- 比赛结果 ---☆");
|
||||
List<Horse> finalRanking = [.. horses.OrderByDescending(h => h.CurrentPosition)];
|
||||
int points = 10;
|
||||
for (int i = 0; i < finalRanking.Count; i++)
|
||||
@ -194,8 +194,8 @@ namespace Oshima.FunGame.OshimaServers.Model
|
||||
if (points == 0) points = 1;
|
||||
}
|
||||
|
||||
builder.AppendLine("\r\n--- 比赛结束,奖励将在稍后发放! ---");
|
||||
msgs.Add(builder.ToString().Trim());
|
||||
builder.AppendLine("\r\n比赛结束,奖励将在稍后发放!");
|
||||
msgs.Add($"\r\n{builder.ToString().Trim()}");
|
||||
|
||||
return userPoints;
|
||||
}
|
||||
|
||||
@ -4324,9 +4324,9 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
public static string GetMarketInfo(Market market, User? user = null, int page = 1, bool simply = false, bool showListed = true)
|
||||
{
|
||||
if (page <= 0) page = 1;
|
||||
int maxPage = market.MarketItems.Values.MaxPage(10);
|
||||
int maxPage = market.MarketItems.Values.MaxPage(8);
|
||||
if (page > maxPage) page = maxPage;
|
||||
IEnumerable<MarketItem> marketItems = market.MarketItems.Values.GetPage(page, 10);
|
||||
IEnumerable<MarketItem> marketItems = market.MarketItems.Values.GetPage(page, 8);
|
||||
|
||||
StringBuilder builder = new();
|
||||
|
||||
@ -4391,7 +4391,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
{
|
||||
foreach (MarketItem marketItem in MarketItemsValid)
|
||||
{
|
||||
builder.AppendLine(GetMarketItemInfo(marketItem, true, user ?? General.UnknownUserInstance));
|
||||
builder.AppendLine(GetMarketItemInfo(marketItem, simply, user ?? General.UnknownUserInstance));
|
||||
}
|
||||
builder.AppendLine("提示:使用【市场查看+序号】查看商品详细信息,使用【市场购买+序号】购买商品。");
|
||||
}
|
||||
|
||||
@ -7074,10 +7074,15 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
||||
MarketItem[] marketItems = [.. market.MarketItems.Values.Where(m => m.User == userid)];
|
||||
if (marketItems.Length > 0)
|
||||
{
|
||||
if (page <= 0) page = 1;
|
||||
int maxPage = market.MarketItems.Values.MaxPage(8);
|
||||
if (page > maxPage) page = maxPage;
|
||||
marketItems = [.. market.MarketItems.Values.GetPage(page, 8)];
|
||||
foreach (MarketItem marketItem in marketItems)
|
||||
{
|
||||
msg += FunGameService.GetMarketItemInfo(marketItem, true, user) + "\r\n";
|
||||
}
|
||||
msg += $"页数:{page} / {maxPage},使用【市场+页码】快速跳转指定页面。";
|
||||
}
|
||||
else msg += "你还没有上架过任何物品。";
|
||||
|
||||
|
||||
@ -320,7 +320,8 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
FunGameSimulation = true;
|
||||
List<string> msgs = await Controller.GetTest(false, maxRespawnTimesMix: 0);
|
||||
List<string> real = [];
|
||||
int remain = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int perMergeLength = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int remain = perMergeLength;
|
||||
string merge = "";
|
||||
for (int i = 0; i < msgs.Count - 2; i++)
|
||||
{
|
||||
@ -330,11 +331,11 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
real.Add(merge);
|
||||
merge = "";
|
||||
if ((msgs.Count - i - 3) < 7)
|
||||
if ((msgs.Count - i - 3) < perMergeLength)
|
||||
{
|
||||
remain = msgs.Count - i - 3;
|
||||
}
|
||||
else remain = 7;
|
||||
else remain = perMergeLength;
|
||||
}
|
||||
}
|
||||
if (msgs.Count > 2)
|
||||
@ -375,7 +376,8 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
FunGameSimulation = true;
|
||||
List<string> msgs = await Controller.GetTest(false, maxRespawnTimesMix: maxRespawnTimesMix);
|
||||
List<string> real = [];
|
||||
int remain = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int perMergeLength = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int remain = perMergeLength;
|
||||
string merge = "";
|
||||
for (int i = 0; i < msgs.Count - 2; i++)
|
||||
{
|
||||
@ -385,11 +387,11 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
real.Add(merge);
|
||||
merge = "";
|
||||
if ((msgs.Count - i - 3) < 7)
|
||||
if ((msgs.Count - i - 3) < perMergeLength)
|
||||
{
|
||||
remain = msgs.Count - i - 3;
|
||||
}
|
||||
else remain = 7;
|
||||
else remain = perMergeLength;
|
||||
}
|
||||
}
|
||||
if (msgs.Count > 2)
|
||||
@ -435,7 +437,8 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
real.Add(msgs[0]);
|
||||
}
|
||||
int remain = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int perMergeLength = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int remain = perMergeLength;
|
||||
string merge = "";
|
||||
for (int i = 1; i < msgs.Count - 2; i++)
|
||||
{
|
||||
@ -445,11 +448,11 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
real.Add(merge);
|
||||
merge = "";
|
||||
if ((msgs.Count - i - 3) < 7)
|
||||
if ((msgs.Count - i - 3) < perMergeLength)
|
||||
{
|
||||
remain = msgs.Count - i - 3;
|
||||
}
|
||||
else remain = 7;
|
||||
else remain = perMergeLength;
|
||||
}
|
||||
}
|
||||
if (msgs.Count > 2)
|
||||
@ -1693,7 +1696,8 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
if (msgs.Count < 20)
|
||||
{
|
||||
int remain = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int perMergeLength = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int remain = perMergeLength;
|
||||
string merge = "";
|
||||
for (int i = 0; i < msgs.Count - 1; i++)
|
||||
{
|
||||
@ -1703,11 +1707,11 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
real.Add(merge);
|
||||
merge = "";
|
||||
if ((msgs.Count - i - 2) < 7)
|
||||
if ((msgs.Count - i - 2) < perMergeLength)
|
||||
{
|
||||
remain = msgs.Count - i - 2;
|
||||
}
|
||||
else remain = 7;
|
||||
else remain = perMergeLength;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1750,7 +1754,8 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
List<string> real = [];
|
||||
if (msgs.Count > 2)
|
||||
{
|
||||
int remain = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int perMergeLength = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int remain = perMergeLength;
|
||||
string merge = "";
|
||||
for (int i = 0; i < msgs.Count - 1; i++)
|
||||
{
|
||||
@ -1760,11 +1765,11 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
real.Add(merge);
|
||||
merge = "";
|
||||
if ((msgs.Count - i - 3) < 7)
|
||||
if ((msgs.Count - i - 3) < perMergeLength)
|
||||
{
|
||||
remain = msgs.Count - i - 3;
|
||||
}
|
||||
else remain = 7;
|
||||
else remain = perMergeLength;
|
||||
}
|
||||
}
|
||||
real.Add(msgs[^1]);
|
||||
@ -1803,7 +1808,8 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
if (msgs.Count < 20)
|
||||
{
|
||||
int remain = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int perMergeLength = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int remain = perMergeLength;
|
||||
string merge = "";
|
||||
for (int i = 0; i < msgs.Count - 1; i++)
|
||||
{
|
||||
@ -1813,11 +1819,11 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
real.Add(merge);
|
||||
merge = "";
|
||||
if ((msgs.Count - i - 3) < 7)
|
||||
if ((msgs.Count - i - 3) < perMergeLength)
|
||||
{
|
||||
remain = msgs.Count - i - 3;
|
||||
}
|
||||
else remain = 7;
|
||||
else remain = perMergeLength;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1876,7 +1882,8 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
if (msgs.Count < 20)
|
||||
{
|
||||
int remain = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int perMergeLength = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int remain = perMergeLength;
|
||||
string merge = "";
|
||||
for (int i = 0; i < msgs.Count - 1; i++)
|
||||
{
|
||||
@ -1886,11 +1893,11 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
real.Add(merge);
|
||||
merge = "";
|
||||
if ((msgs.Count - i - 3) < 7)
|
||||
if ((msgs.Count - i - 3) < perMergeLength)
|
||||
{
|
||||
remain = msgs.Count - i - 3;
|
||||
}
|
||||
else remain = 7;
|
||||
else remain = perMergeLength;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1935,7 +1942,8 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
if (msgs.Count < 20)
|
||||
{
|
||||
int remain = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int perMergeLength = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int remain = perMergeLength;
|
||||
string merge = "";
|
||||
for (int i = 0; i < msgs.Count - 1; i++)
|
||||
{
|
||||
@ -1945,11 +1953,11 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
real.Add(merge);
|
||||
merge = "";
|
||||
if ((msgs.Count - i - 3) < 7)
|
||||
if ((msgs.Count - i - 3) < perMergeLength)
|
||||
{
|
||||
remain = msgs.Count - i - 3;
|
||||
}
|
||||
else remain = 7;
|
||||
else remain = perMergeLength;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3415,7 +3423,7 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
return result;
|
||||
}
|
||||
|
||||
if (e.Detail == "开始游戏")
|
||||
if (e.Detail == "开始游戏" || e.Detail == "开始赛马")
|
||||
{
|
||||
string groupId = "";
|
||||
if (e.IsGroup && e is GroupAtMessage groupAtMessage && groupAtMessage.GroupOpenId != "")
|
||||
@ -3428,6 +3436,15 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
}
|
||||
if (groupId != "")
|
||||
{
|
||||
if (e.Detail == "开始赛马" && FunGameConstant.UsersInRoom.TryGetValue(uid, out Room? value) && value != null && value.Name == "赛马房间")
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
else
|
||||
{
|
||||
await SendAsync(e, "房间", "你不在房间中或者所在的房间不是赛马房间,请使用【开始游戏】指令。注意:只有房主才可以开始游戏。");
|
||||
return result;
|
||||
}
|
||||
(Room room, List<string> msgs) = await Controller.RunGame(uid);
|
||||
List<string> real = [];
|
||||
if (msgs.Count > 1)
|
||||
@ -3436,24 +3453,24 @@ namespace Oshima.FunGame.WebAPI.Services
|
||||
{
|
||||
msgs = [msgs[0], .. msgs[^20..]];
|
||||
}
|
||||
int remain = msgs.Count > 7 ? 7 : msgs.Count - 1;
|
||||
int perMergeLength = msgs.Count > 5 ? 5 : msgs.Count;
|
||||
int remain = perMergeLength;
|
||||
string merge = "";
|
||||
for (int i = 0; i < msgs.Count - 1; i++)
|
||||
for (int i = 0; i < msgs.Count; i++)
|
||||
{
|
||||
remain--;
|
||||
merge += msgs[i] + "\r\n";
|
||||
if (remain == 0)
|
||||
if (remain == 0 || i == msgs.Count - 1)
|
||||
{
|
||||
real.Add(merge);
|
||||
merge = "";
|
||||
if ((msgs.Count - i - 1) < 7)
|
||||
if (msgs.Count < perMergeLength)
|
||||
{
|
||||
remain = msgs.Count - i - 1;
|
||||
remain = msgs.Count;
|
||||
}
|
||||
else remain = 7;
|
||||
else remain = perMergeLength;
|
||||
}
|
||||
}
|
||||
real.Add(msgs[^1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user