diff --git a/OshimaCore/Controllers/FunGameController.cs b/OshimaCore/Controllers/FunGameController.cs index ebec8f5..2a03553 100644 --- a/OshimaCore/Controllers/FunGameController.cs +++ b/OshimaCore/Controllers/FunGameController.cs @@ -21,7 +21,7 @@ namespace Oshima.Core.Controllers private readonly ILogger _logger = logger; private const int drawCardReduce = 2000; private const int drawCardReduce_Material = 10; - private const string noSaved = "你还没有创建存档!请发送【创建存档】创建。"; + private const string noSaved = "浣犺繕娌℃湁鍒涘缓瀛樻。锛佽鍙戦併愬垱寤哄瓨妗c戝垱寤恒"; private readonly ItemType[] itemCanUsed = [ItemType.Consumable, ItemType.MagicCard, ItemType.SpecialItem, ItemType.GiftBox, ItemType.Others]; [HttpGet("test")] @@ -44,42 +44,42 @@ namespace Oshima.Core.Controllers StringBuilder builder = new(); builder.AppendLine(character.ToString()); - builder.AppendLine($"总计造成伤害:{stats.TotalDamage:0.##} / 场均:{stats.AvgDamage:0.##}"); - builder.AppendLine($"总计造成物理伤害:{stats.TotalPhysicalDamage:0.##} / 场均:{stats.AvgPhysicalDamage:0.##}"); - builder.AppendLine($"总计造成魔法伤害:{stats.TotalMagicDamage:0.##} / 场均:{stats.AvgMagicDamage:0.##}"); - builder.AppendLine($"总计造成真实伤害:{stats.TotalRealDamage:0.##} / 场均:{stats.AvgRealDamage:0.##}"); - builder.AppendLine($"总计承受伤害:{stats.TotalTakenDamage:0.##} / 场均:{stats.AvgTakenDamage:0.##}"); - builder.AppendLine($"总计承受物理伤害:{stats.TotalTakenPhysicalDamage:0.##} / 场均:{stats.AvgTakenPhysicalDamage:0.##}"); - builder.AppendLine($"总计承受魔法伤害:{stats.TotalTakenMagicDamage:0.##} / 场均:{stats.AvgTakenMagicDamage:0.##}"); - builder.AppendLine($"总计承受真实伤害:{stats.TotalTakenRealDamage:0.##} / 场均:{stats.AvgTakenRealDamage:0.##}"); - builder.AppendLine($"总计存活回合数:{stats.LiveRound} / 场均:{stats.AvgLiveRound}"); - builder.AppendLine($"总计行动回合数:{stats.ActionTurn} / 场均:{stats.AvgActionTurn}"); - builder.AppendLine($"总计存活时长:{stats.LiveTime:0.##} / 场均:{stats.AvgLiveTime:0.##}"); - builder.AppendLine($"总计赚取金钱:{stats.TotalEarnedMoney} / 场均:{stats.AvgEarnedMoney}"); - builder.AppendLine($"每回合伤害:{stats.DamagePerRound:0.##}"); - builder.AppendLine($"每行动回合伤害:{stats.DamagePerTurn:0.##}"); - builder.AppendLine($"每秒伤害:{stats.DamagePerSecond:0.##}"); - builder.AppendLine($"总计击杀数:{stats.Kills}" + (stats.Plays != 0 ? $" / 场均:{(double)stats.Kills / stats.Plays:0.##}" : "")); - builder.AppendLine($"总计死亡数:{stats.Deaths}" + (stats.Plays != 0 ? $" / 场均:{(double)stats.Deaths / stats.Plays:0.##}" : "")); - builder.AppendLine($"总计助攻数:{stats.Assists}" + (stats.Plays != 0 ? $" / 场均:{(double)stats.Assists / stats.Plays:0.##}" : "")); - builder.AppendLine($"总计首杀数:{stats.FirstKills}" + (stats.Plays != 0 ? $" / 首杀率:{(double)stats.FirstKills / stats.Plays * 100:0.##}%" : "")); - builder.AppendLine($"总计首死数:{stats.FirstDeaths}" + (stats.Plays != 0 ? $" / 首死率:{(double)stats.FirstDeaths / stats.Plays * 100:0.##}%" : "")); - builder.AppendLine($"总计参赛数:{stats.Plays}"); - builder.AppendLine($"总计冠军数:{stats.Wins}"); - builder.AppendLine($"总计前三数:{stats.Top3s}"); - builder.AppendLine($"总计败场数:{stats.Loses}"); + builder.AppendLine($"鎬昏閫犳垚浼ゅ锛歿stats.TotalDamage:0.##} / 鍦哄潎锛歿stats.AvgDamage:0.##}"); + builder.AppendLine($"鎬昏閫犳垚鐗╃悊浼ゅ锛歿stats.TotalPhysicalDamage:0.##} / 鍦哄潎锛歿stats.AvgPhysicalDamage:0.##}"); + builder.AppendLine($"鎬昏閫犳垚榄旀硶浼ゅ锛歿stats.TotalMagicDamage:0.##} / 鍦哄潎锛歿stats.AvgMagicDamage:0.##}"); + builder.AppendLine($"鎬昏閫犳垚鐪熷疄浼ゅ锛歿stats.TotalRealDamage:0.##} / 鍦哄潎锛歿stats.AvgRealDamage:0.##}"); + builder.AppendLine($"鎬昏鎵垮彈浼ゅ锛歿stats.TotalTakenDamage:0.##} / 鍦哄潎锛歿stats.AvgTakenDamage:0.##}"); + builder.AppendLine($"鎬昏鎵垮彈鐗╃悊浼ゅ锛歿stats.TotalTakenPhysicalDamage:0.##} / 鍦哄潎锛歿stats.AvgTakenPhysicalDamage:0.##}"); + builder.AppendLine($"鎬昏鎵垮彈榄旀硶浼ゅ锛歿stats.TotalTakenMagicDamage:0.##} / 鍦哄潎锛歿stats.AvgTakenMagicDamage:0.##}"); + builder.AppendLine($"鎬昏鎵垮彈鐪熷疄浼ゅ锛歿stats.TotalTakenRealDamage:0.##} / 鍦哄潎锛歿stats.AvgTakenRealDamage:0.##}"); + builder.AppendLine($"鎬昏瀛樻椿鍥炲悎鏁帮細{stats.LiveRound} / 鍦哄潎锛歿stats.AvgLiveRound}"); + builder.AppendLine($"鎬昏琛屽姩鍥炲悎鏁帮細{stats.ActionTurn} / 鍦哄潎锛歿stats.AvgActionTurn}"); + builder.AppendLine($"鎬昏瀛樻椿鏃堕暱锛歿stats.LiveTime:0.##} / 鍦哄潎锛歿stats.AvgLiveTime:0.##}"); + builder.AppendLine($"鎬昏璧氬彇閲戦挶锛歿stats.TotalEarnedMoney} / 鍦哄潎锛歿stats.AvgEarnedMoney}"); + builder.AppendLine($"姣忓洖鍚堜激瀹筹細{stats.DamagePerRound:0.##}"); + builder.AppendLine($"姣忚鍔ㄥ洖鍚堜激瀹筹細{stats.DamagePerTurn:0.##}"); + builder.AppendLine($"姣忕浼ゅ锛歿stats.DamagePerSecond:0.##}"); + builder.AppendLine($"鎬昏鍑绘潃鏁帮細{stats.Kills}" + (stats.Plays != 0 ? $" / 鍦哄潎锛歿(double)stats.Kills / stats.Plays:0.##}" : "")); + builder.AppendLine($"鎬昏姝讳骸鏁帮細{stats.Deaths}" + (stats.Plays != 0 ? $" / 鍦哄潎锛歿(double)stats.Deaths / stats.Plays:0.##}" : "")); + builder.AppendLine($"鎬昏鍔╂敾鏁帮細{stats.Assists}" + (stats.Plays != 0 ? $" / 鍦哄潎锛歿(double)stats.Assists / stats.Plays:0.##}" : "")); + builder.AppendLine($"鎬昏棣栨潃鏁帮細{stats.FirstKills}" + (stats.Plays != 0 ? $" / 棣栨潃鐜囷細{(double)stats.FirstKills / stats.Plays * 100:0.##}%" : "")); + builder.AppendLine($"鎬昏棣栨鏁帮細{stats.FirstDeaths}" + (stats.Plays != 0 ? $" / 棣栨鐜囷細{(double)stats.FirstDeaths / stats.Plays * 100:0.##}%" : "")); + builder.AppendLine($"鎬昏鍙傝禌鏁帮細{stats.Plays}"); + builder.AppendLine($"鎬昏鍐犲啗鏁帮細{stats.Wins}"); + builder.AppendLine($"鎬昏鍓嶄笁鏁帮細{stats.Top3s}"); + builder.AppendLine($"鎬昏璐ュ満鏁帮細{stats.Loses}"); List names = [.. FunGameSimulation.CharacterStatistics.OrderByDescending(kv => kv.Value.MVPs).Select(kv => kv.Key.GetName())]; - builder.AppendLine($"MVP次数:{stats.MVPs}(#{names.IndexOf(character.GetName()) + 1})"); + builder.AppendLine($"MVP娆℃暟锛歿stats.MVPs}锛#{names.IndexOf(character.GetName()) + 1}锛"); names = [.. FunGameSimulation.CharacterStatistics.OrderByDescending(kv => kv.Value.Winrates).Select(kv => kv.Key.GetName())]; - builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%(#{names.IndexOf(character.GetName()) + 1})"); - builder.AppendLine($"前三率:{stats.Top3rates * 100:0.##}%"); + builder.AppendLine($"鑳滅巼锛歿stats.Winrates * 100:0.##}%锛#{names.IndexOf(character.GetName()) + 1}锛"); + builder.AppendLine($"鍓嶄笁鐜囷細{stats.Top3rates * 100:0.##}%"); names = [.. FunGameSimulation.CharacterStatistics.OrderByDescending(kv => kv.Value.Rating).Select(kv => kv.Key.GetName())]; - builder.AppendLine($"技术得分:{stats.Rating:0.0#}(#{names.IndexOf(character.GetName()) + 1})"); + builder.AppendLine($"鎶鏈緱鍒嗭細{stats.Rating:0.0#}锛#{names.IndexOf(character.GetName()) + 1}锛"); - builder.AppendLine($"上次排名:{stats.LastRank} / 场均名次:{stats.AvgRank:0.##}"); + builder.AppendLine($"涓婃鎺掑悕锛歿stats.LastRank} / 鍦哄潎鍚嶆锛歿stats.AvgRank:0.##}"); return NetworkUtility.JsonSerialize(builder.ToString()); } @@ -98,37 +98,37 @@ namespace Oshima.Core.Controllers StringBuilder builder = new(); builder.AppendLine(character.ToString()); - builder.AppendLine($"总计造成伤害:{stats.TotalDamage:0.##} / 场均:{stats.AvgDamage:0.##}"); - builder.AppendLine($"总计造成物理伤害:{stats.TotalPhysicalDamage:0.##} / 场均:{stats.AvgPhysicalDamage:0.##}"); - builder.AppendLine($"总计造成魔法伤害:{stats.TotalMagicDamage:0.##} / 场均:{stats.AvgMagicDamage:0.##}"); - builder.AppendLine($"总计造成真实伤害:{stats.TotalRealDamage:0.##} / 场均:{stats.AvgRealDamage:0.##}"); - builder.AppendLine($"总计承受伤害:{stats.TotalTakenDamage:0.##} / 场均:{stats.AvgTakenDamage:0.##}"); - builder.AppendLine($"总计承受物理伤害:{stats.TotalTakenPhysicalDamage:0.##} / 场均:{stats.AvgTakenPhysicalDamage:0.##}"); - builder.AppendLine($"总计承受魔法伤害:{stats.TotalTakenMagicDamage:0.##} / 场均:{stats.AvgTakenMagicDamage:0.##}"); - builder.AppendLine($"总计承受真实伤害:{stats.TotalTakenRealDamage:0.##} / 场均:{stats.AvgTakenRealDamage:0.##}"); - builder.AppendLine($"总计存活回合数:{stats.LiveRound} / 场均:{stats.AvgLiveRound}"); - builder.AppendLine($"总计行动回合数:{stats.ActionTurn} / 场均:{stats.AvgActionTurn}"); - builder.AppendLine($"总计存活时长:{stats.LiveTime:0.##} / 场均:{stats.AvgLiveTime:0.##}"); - builder.AppendLine($"总计赚取金钱:{stats.TotalEarnedMoney} / 场均:{stats.AvgEarnedMoney}"); - builder.AppendLine($"每回合伤害:{stats.DamagePerRound:0.##}"); - builder.AppendLine($"每行动回合伤害:{stats.DamagePerTurn:0.##}"); - builder.AppendLine($"每秒伤害:{stats.DamagePerSecond:0.##}"); - builder.AppendLine($"总计击杀数:{stats.Kills}" + (stats.Plays != 0 ? $" / 场均:{(double)stats.Kills / stats.Plays:0.##}" : "")); - builder.AppendLine($"总计死亡数:{stats.Deaths}" + (stats.Plays != 0 ? $" / 场均:{(double)stats.Deaths / stats.Plays:0.##}" : "")); - builder.AppendLine($"击杀死亡比:{(stats.Deaths == 0 ? stats.Kills : ((double)stats.Kills / stats.Deaths)):0.##}"); - builder.AppendLine($"总计助攻数:{stats.Assists}" + (stats.Plays != 0 ? $" / 场均:{(double)stats.Assists / stats.Plays:0.##}" : "")); - builder.AppendLine($"总计首杀数:{stats.FirstKills}" + (stats.Plays != 0 ? $" / 首杀率:{(double)stats.FirstKills / stats.Plays * 100:0.##}%" : "")); - builder.AppendLine($"总计首死数:{stats.FirstDeaths}" + (stats.Plays != 0 ? $" / 首死率:{(double)stats.FirstDeaths / stats.Plays * 100:0.##}%" : "")); - builder.AppendLine($"总计参赛数:{stats.Plays}"); - builder.AppendLine($"总计胜场数:{stats.Wins}"); - builder.AppendLine($"总计败场数:{stats.Loses}"); + builder.AppendLine($"鎬昏閫犳垚浼ゅ锛歿stats.TotalDamage:0.##} / 鍦哄潎锛歿stats.AvgDamage:0.##}"); + builder.AppendLine($"鎬昏閫犳垚鐗╃悊浼ゅ锛歿stats.TotalPhysicalDamage:0.##} / 鍦哄潎锛歿stats.AvgPhysicalDamage:0.##}"); + builder.AppendLine($"鎬昏閫犳垚榄旀硶浼ゅ锛歿stats.TotalMagicDamage:0.##} / 鍦哄潎锛歿stats.AvgMagicDamage:0.##}"); + builder.AppendLine($"鎬昏閫犳垚鐪熷疄浼ゅ锛歿stats.TotalRealDamage:0.##} / 鍦哄潎锛歿stats.AvgRealDamage:0.##}"); + builder.AppendLine($"鎬昏鎵垮彈浼ゅ锛歿stats.TotalTakenDamage:0.##} / 鍦哄潎锛歿stats.AvgTakenDamage:0.##}"); + builder.AppendLine($"鎬昏鎵垮彈鐗╃悊浼ゅ锛歿stats.TotalTakenPhysicalDamage:0.##} / 鍦哄潎锛歿stats.AvgTakenPhysicalDamage:0.##}"); + builder.AppendLine($"鎬昏鎵垮彈榄旀硶浼ゅ锛歿stats.TotalTakenMagicDamage:0.##} / 鍦哄潎锛歿stats.AvgTakenMagicDamage:0.##}"); + builder.AppendLine($"鎬昏鎵垮彈鐪熷疄浼ゅ锛歿stats.TotalTakenRealDamage:0.##} / 鍦哄潎锛歿stats.AvgTakenRealDamage:0.##}"); + builder.AppendLine($"鎬昏瀛樻椿鍥炲悎鏁帮細{stats.LiveRound} / 鍦哄潎锛歿stats.AvgLiveRound}"); + builder.AppendLine($"鎬昏琛屽姩鍥炲悎鏁帮細{stats.ActionTurn} / 鍦哄潎锛歿stats.AvgActionTurn}"); + builder.AppendLine($"鎬昏瀛樻椿鏃堕暱锛歿stats.LiveTime:0.##} / 鍦哄潎锛歿stats.AvgLiveTime:0.##}"); + builder.AppendLine($"鎬昏璧氬彇閲戦挶锛歿stats.TotalEarnedMoney} / 鍦哄潎锛歿stats.AvgEarnedMoney}"); + builder.AppendLine($"姣忓洖鍚堜激瀹筹細{stats.DamagePerRound:0.##}"); + builder.AppendLine($"姣忚鍔ㄥ洖鍚堜激瀹筹細{stats.DamagePerTurn:0.##}"); + builder.AppendLine($"姣忕浼ゅ锛歿stats.DamagePerSecond:0.##}"); + builder.AppendLine($"鎬昏鍑绘潃鏁帮細{stats.Kills}" + (stats.Plays != 0 ? $" / 鍦哄潎锛歿(double)stats.Kills / stats.Plays:0.##}" : "")); + builder.AppendLine($"鎬昏姝讳骸鏁帮細{stats.Deaths}" + (stats.Plays != 0 ? $" / 鍦哄潎锛歿(double)stats.Deaths / stats.Plays:0.##}" : "")); + builder.AppendLine($"鍑绘潃姝讳骸姣旓細{(stats.Deaths == 0 ? stats.Kills : ((double)stats.Kills / stats.Deaths)):0.##}"); + builder.AppendLine($"鎬昏鍔╂敾鏁帮細{stats.Assists}" + (stats.Plays != 0 ? $" / 鍦哄潎锛歿(double)stats.Assists / stats.Plays:0.##}" : "")); + builder.AppendLine($"鎬昏棣栨潃鏁帮細{stats.FirstKills}" + (stats.Plays != 0 ? $" / 棣栨潃鐜囷細{(double)stats.FirstKills / stats.Plays * 100:0.##}%" : "")); + builder.AppendLine($"鎬昏棣栨鏁帮細{stats.FirstDeaths}" + (stats.Plays != 0 ? $" / 棣栨鐜囷細{(double)stats.FirstDeaths / stats.Plays * 100:0.##}%" : "")); + builder.AppendLine($"鎬昏鍙傝禌鏁帮細{stats.Plays}"); + builder.AppendLine($"鎬昏鑳滃満鏁帮細{stats.Wins}"); + builder.AppendLine($"鎬昏璐ュ満鏁帮細{stats.Loses}"); List names = [.. FunGameSimulation.TeamCharacterStatistics.OrderByDescending(kv => kv.Value.MVPs).Select(kv => kv.Key.GetName())]; - builder.AppendLine($"MVP次数:{stats.MVPs}(#{names.IndexOf(character.GetName()) + 1})"); + builder.AppendLine($"MVP娆℃暟锛歿stats.MVPs}锛#{names.IndexOf(character.GetName()) + 1}锛"); names = [.. FunGameSimulation.TeamCharacterStatistics.OrderByDescending(kv => kv.Value.Winrates).Select(kv => kv.Key.GetName())]; - builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%(#{names.IndexOf(character.GetName()) + 1})"); + builder.AppendLine($"鑳滅巼锛歿stats.Winrates * 100:0.##}%锛#{names.IndexOf(character.GetName()) + 1}锛"); names = [.. FunGameSimulation.TeamCharacterStatistics.OrderByDescending(kv => kv.Value.Rating).Select(kv => kv.Key.GetName())]; - builder.AppendLine($"技术得分:{stats.Rating:0.0#}(#{names.IndexOf(character.GetName()) + 1})"); + builder.AppendLine($"鎶鏈緱鍒嗭細{stats.Rating:0.0#}锛#{names.IndexOf(character.GetName()) + 1}锛"); return NetworkUtility.JsonSerialize(builder.ToString()); } @@ -149,11 +149,11 @@ namespace Oshima.Core.Controllers StringBuilder builder = new(); CharacterStatistics stats = FunGameSimulation.TeamCharacterStatistics[character]; builder.AppendLine(character.ToString()); - builder.AppendLine($"总计参赛数:{stats.Plays}"); - builder.AppendLine($"总计冠军数:{stats.Wins}"); - builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%"); - builder.AppendLine($"技术得分:{stats.Rating:0.0#}"); - builder.AppendLine($"MVP次数:{stats.MVPs}"); + builder.AppendLine($"鎬昏鍙傝禌鏁帮細{stats.Plays}"); + builder.AppendLine($"鎬昏鍐犲啗鏁帮細{stats.Wins}"); + builder.AppendLine($"鑳滅巼锛歿stats.Winrates * 100:0.##}%"); + builder.AppendLine($"鎶鏈緱鍒嗭細{stats.Rating:0.0#}"); + builder.AppendLine($"MVP娆℃暟锛歿stats.MVPs}"); strings.Add(builder.ToString()); } return NetworkUtility.JsonSerialize(strings); @@ -167,13 +167,13 @@ namespace Oshima.Core.Controllers StringBuilder builder = new(); CharacterStatistics stats = FunGameSimulation.CharacterStatistics[character]; builder.AppendLine(character.ToString()); - builder.AppendLine($"总计参赛数:{stats.Plays}"); - builder.AppendLine($"总计冠军数:{stats.Wins}"); - builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%"); - builder.AppendLine($"前三率:{stats.Top3rates * 100:0.##}%"); - builder.AppendLine($"技术得分:{stats.Rating:0.0#}"); - builder.AppendLine($"上次排名:{stats.LastRank} / 场均名次:{stats.AvgRank:0.##}"); - builder.AppendLine($"MVP次数:{stats.MVPs}"); + builder.AppendLine($"鎬昏鍙傝禌鏁帮細{stats.Plays}"); + builder.AppendLine($"鎬昏鍐犲啗鏁帮細{stats.Wins}"); + builder.AppendLine($"鑳滅巼锛歿stats.Winrates * 100:0.##}%"); + builder.AppendLine($"鍓嶄笁鐜囷細{stats.Top3rates * 100:0.##}%"); + builder.AppendLine($"鎶鏈緱鍒嗭細{stats.Rating:0.0#}"); + builder.AppendLine($"涓婃鎺掑悕锛歿stats.LastRank} / 鍦哄潎鍚嶆锛歿stats.AvgRank:0.##}"); + builder.AppendLine($"MVP娆℃暟锛歿stats.MVPs}"); strings.Add(builder.ToString()); } return NetworkUtility.JsonSerialize(strings); @@ -193,11 +193,11 @@ namespace Oshima.Core.Controllers StringBuilder builder = new(); CharacterStatistics stats = FunGameSimulation.TeamCharacterStatistics[character]; builder.AppendLine(character.ToString()); - builder.AppendLine($"总计参赛数:{stats.Plays}"); - builder.AppendLine($"总计冠军数:{stats.Wins}"); - builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%"); - builder.AppendLine($"技术得分:{stats.Rating:0.0#}"); - builder.AppendLine($"MVP次数:{stats.MVPs}"); + builder.AppendLine($"鎬昏鍙傝禌鏁帮細{stats.Plays}"); + builder.AppendLine($"鎬昏鍐犲啗鏁帮細{stats.Wins}"); + builder.AppendLine($"鑳滅巼锛歿stats.Winrates * 100:0.##}%"); + builder.AppendLine($"鎶鏈緱鍒嗭細{stats.Rating:0.0#}"); + builder.AppendLine($"MVP娆℃暟锛歿stats.MVPs}"); strings.Add(builder.ToString()); } return NetworkUtility.JsonSerialize(strings); @@ -211,13 +211,13 @@ namespace Oshima.Core.Controllers StringBuilder builder = new(); CharacterStatistics stats = FunGameSimulation.CharacterStatistics[character]; builder.AppendLine(character.ToString()); - builder.AppendLine($"总计参赛数:{stats.Plays}"); - builder.AppendLine($"总计冠军数:{stats.Wins}"); - builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%"); - builder.AppendLine($"前三率:{stats.Top3rates * 100:0.##}%"); - builder.AppendLine($"技术得分:{stats.Rating:0.0#}"); - builder.AppendLine($"上次排名:{stats.LastRank} / 场均名次:{stats.AvgRank:0.##}"); - builder.AppendLine($"MVP次数:{stats.MVPs}"); + builder.AppendLine($"鎬昏鍙傝禌鏁帮細{stats.Plays}"); + builder.AppendLine($"鎬昏鍐犲啗鏁帮細{stats.Wins}"); + builder.AppendLine($"鑳滅巼锛歿stats.Winrates * 100:0.##}%"); + builder.AppendLine($"鍓嶄笁鐜囷細{stats.Top3rates * 100:0.##}%"); + builder.AppendLine($"鎶鏈緱鍒嗭細{stats.Rating:0.0#}"); + builder.AppendLine($"涓婃鎺掑悕锛歿stats.LastRank} / 鍦哄潎鍚嶆锛歿stats.AvgRank:0.##}"); + builder.AppendLine($"MVP娆℃暟锛歿stats.MVPs}"); strings.Add(builder.ToString()); } return NetworkUtility.JsonSerialize(strings); @@ -251,7 +251,7 @@ namespace Oshima.Core.Controllers if (s != null) { s.Character = c; - msg.Add($"技能展示的属性基于演示角色:[ {c} ]"); + msg.Add($"鎶鑳藉睍绀虹殑灞炴у熀浜庢紨绀鸿鑹诧細[ {c} ]"); msg.Add(c.ToStringWithLevel() + "\r\n" + s.ToString()); s.Level++; ; msg.Add(c.ToStringWithLevel() + "\r\n" + s.ToString()); @@ -319,11 +319,11 @@ namespace Oshima.Core.Controllers FunGameService.UserIdAndUsername[userid] = username; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"创建存档成功!你的用户名是【{username}】。"); + return NetworkUtility.JsonSerialize($"鍒涘缓瀛樻。鎴愬姛锛佷綘鐨勭敤鎴峰悕鏄恵username}銆戙"); } else { - return NetworkUtility.JsonSerialize("你已经创建过存档!"); + return NetworkUtility.JsonSerialize("浣犲凡缁忓垱寤鸿繃瀛樻。锛"); } } @@ -346,7 +346,7 @@ namespace Oshima.Core.Controllers user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"你的存档已还原成功。"); + return NetworkUtility.JsonSerialize($"浣犵殑瀛樻。宸茶繕鍘熸垚鍔熴"); } else { @@ -367,24 +367,24 @@ namespace Oshima.Core.Controllers User user = FunGameService.GetUser(pc); StringBuilder builder = new(); - builder.AppendLine($"☆★☆ {user.Username}的存档信息 ☆★☆"); - builder.AppendLine($"{General.GameplayEquilibriumConstant.InGameCurrency}:{user.Inventory.Credits:0.00}"); - builder.AppendLine($"{General.GameplayEquilibriumConstant.InGameMaterial}:{user.Inventory.Materials:0.00}"); - builder.AppendLine($"角色数量:{user.Inventory.Characters.Count}"); - builder.AppendLine($"主战角色:{user.Inventory.MainCharacter.ToStringWithLevelWithOutUser()}"); + builder.AppendLine($"鈽嗏槄鈽 {user.Username}鐨勫瓨妗d俊鎭 鈽嗏槄鈽"); + builder.AppendLine($"{General.GameplayEquilibriumConstant.InGameCurrency}锛歿user.Inventory.Credits:0.00}"); + builder.AppendLine($"{General.GameplayEquilibriumConstant.InGameMaterial}锛歿user.Inventory.Materials:0.00}"); + builder.AppendLine($"瑙掕壊鏁伴噺锛歿user.Inventory.Characters.Count}"); + builder.AppendLine($"涓绘垬瑙掕壊锛歿user.Inventory.MainCharacter.ToStringWithLevelWithOutUser()}"); Character[] squad = [.. user.Inventory.Characters.Where(c => user.Inventory.Squad.Contains(c.Id))]; Dictionary characters = user.Inventory.Characters .Select((character, index) => new { character, index }) .ToDictionary(x => x.character, x => x.index + 1); - builder.AppendLine($"小队成员:{(squad.Length > 0 ? string.Join(" / ", squad.Select(c => $"[#{characters[c]}]{c.Name}({c.Level})")) : "空")}"); + builder.AppendLine($"灏忛槦鎴愬憳锛歿(squad.Length > 0 ? string.Join(" / ", squad.Select(c => $"[#{characters[c]}]{c.Name}({c.Level})")) : "绌")}"); if (user.Inventory.Training.Count > 0) { - builder.AppendLine($"正在练级:{string.Join(" / ", user.Inventory.Characters.Where(c => user.Inventory.Training.ContainsKey(c.Id)).Select(c => c.ToStringWithLevelWithOutUser()))}"); + builder.AppendLine($"姝e湪缁冪骇锛歿string.Join(" / ", user.Inventory.Characters.Where(c => user.Inventory.Training.ContainsKey(c.Id)).Select(c => c.ToStringWithLevelWithOutUser()))}"); } - builder.AppendLine($"物品数量:{user.Inventory.Items.Count}"); - builder.AppendLine($"所属社团:无"); - builder.AppendLine($"注册时间:{user.RegTime.ToString(General.GeneralDateTimeFormatChinese)}"); - builder.AppendLine($"最后访问:{user.LastTime.ToString(General.GeneralDateTimeFormatChinese)}"); + builder.AppendLine($"鐗╁搧鏁伴噺锛歿user.Inventory.Items.Count}"); + builder.AppendLine($"鎵灞炵ぞ鍥細鏃"); + builder.AppendLine($"娉ㄥ唽鏃堕棿锛歿user.RegTime.ToString(General.GeneralDateTimeFormatChinese)}"); + builder.AppendLine($"鏈鍚庤闂細{user.LastTime.ToString(General.GeneralDateTimeFormatChinese)}"); user.LastTime = DateTime.Now; pc.Add("user", user); @@ -416,7 +416,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {reduce} 呢,无法改名!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameCurrency}涓嶈冻 {reduce} 鍛紝鏃犳硶鏀瑰悕锛"); } user.Username = FunGameService.GenerateRandomChineseUserName(); @@ -424,15 +424,15 @@ namespace Oshima.Core.Controllers { character.Name = user.Username; } - if (user.Inventory.Name.EndsWith("的库存")) + if (user.Inventory.Name.EndsWith("鐨勫簱瀛")) { - user.Inventory.Name = user.Username + "的库存"; + user.Inventory.Name = user.Username + "鐨勫簱瀛"; } FunGameService.UserIdAndUsername[user.Id] = user.Username; user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameCurrency},你的新名字是【{user.Username}】"); + return NetworkUtility.JsonSerialize($"娑堣 {reduce} {General.GameplayEquilibriumConstant.InGameCurrency}锛屼綘鐨勬柊鍚嶅瓧鏄恵user.Username}銆"); } else { @@ -482,15 +482,15 @@ namespace Oshima.Core.Controllers pc.SaveConfig(); emc.Clear(); emc.SaveConfig(); - return NetworkUtility.JsonSerialize($"你已完成重随属性确认,新的自建角色属性如下:\r\n" + - $"核心属性:{CharacterSet.GetPrimaryAttributeName(oldPA)} => {CharacterSet.GetPrimaryAttributeName(character.PrimaryAttribute)}\r\n" + - $"初始力量:{oldSTR}(+{oldSTRG}/Lv)=> {character.InitialSTR}(+{character.STRGrowth}/Lv)\r\n" + - $"初始敏捷:{oldAGI}(+{oldAGIG}/Lv)=> {character.InitialAGI}(+{character.AGIGrowth}/Lv)\r\n" + - $"初始智力:{oldINT}(+{oldINTG}/Lv)=> {character.InitialINT}(+{character.INTGrowth}/Lv)"); + return NetworkUtility.JsonSerialize($"浣犲凡瀹屾垚閲嶉殢灞炴х‘璁わ紝鏂扮殑鑷缓瑙掕壊灞炴у涓嬶細\r\n" + + $"鏍稿績灞炴э細{CharacterSet.GetPrimaryAttributeName(oldPA)} => {CharacterSet.GetPrimaryAttributeName(character.PrimaryAttribute)}\r\n" + + $"鍒濆鍔涢噺锛歿oldSTR}锛+{oldSTRG}/Lv锛=> {character.InitialSTR}锛+{character.STRGrowth}/Lv锛塡r\n" + + $"鍒濆鏁忔嵎锛歿oldAGI}锛+{oldAGIG}/Lv锛=> {character.InitialAGI}锛+{character.AGIGrowth}/Lv锛塡r\n" + + $"鍒濆鏅哄姏锛歿oldINT}锛+{oldINTG}/Lv锛=> {character.InitialINT}锛+{character.INTGrowth}/Lv锛"); } else { - return NetworkUtility.JsonSerialize($"你还没有获取过重随属性预览!"); + return NetworkUtility.JsonSerialize($"浣犺繕娌℃湁鑾峰彇杩囬噸闅忓睘鎬ч瑙堬紒"); } } else @@ -504,7 +504,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {reduce} 呢,无法重随自建角色属性!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameMaterial}涓嶈冻 {reduce} 鍛紝鏃犳硶閲嶉殢鑷缓瑙掕壊灞炴э紒"); } newCustom = new CustomCharacter(user.Id, ""); user.LastTime = DateTime.Now; @@ -512,31 +512,31 @@ namespace Oshima.Core.Controllers pc.SaveConfig(); emc.Add("newCustom", newCustom); emc.SaveConfig(); - return NetworkUtility.JsonSerialize($"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial},获取到重随属性预览如下:\r\n" + - $"核心属性:{CharacterSet.GetPrimaryAttributeName(oldPA)} => {CharacterSet.GetPrimaryAttributeName(newCustom.PrimaryAttribute)}\r\n" + - $"初始力量:{oldSTR}(+{oldSTRG}/Lv)=> {newCustom.InitialSTR}(+{newCustom.STRGrowth}/Lv)\r\n" + - $"初始敏捷:{oldAGI}(+{oldAGIG}/Lv)=> {newCustom.InitialAGI}(+{newCustom.AGIGrowth}/Lv)\r\n" + - $"初始智力:{oldINT}(+{oldINTG}/Lv)=> {newCustom.InitialINT}(+{newCustom.INTGrowth}/Lv)\r\n" + - $"请发送【确认角色重随】来确认更新,或者发送【取消角色重随】来取消操作。"); + return NetworkUtility.JsonSerialize($"娑堣 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial}锛岃幏鍙栧埌閲嶉殢灞炴ч瑙堝涓嬶細\r\n" + + $"鏍稿績灞炴э細{CharacterSet.GetPrimaryAttributeName(oldPA)} => {CharacterSet.GetPrimaryAttributeName(newCustom.PrimaryAttribute)}\r\n" + + $"鍒濆鍔涢噺锛歿oldSTR}锛+{oldSTRG}/Lv锛=> {newCustom.InitialSTR}锛+{newCustom.STRGrowth}/Lv锛塡r\n" + + $"鍒濆鏁忔嵎锛歿oldAGI}锛+{oldAGIG}/Lv锛=> {newCustom.InitialAGI}锛+{newCustom.AGIGrowth}/Lv锛塡r\n" + + $"鍒濆鏅哄姏锛歿oldINT}锛+{oldINTG}/Lv锛=> {newCustom.InitialINT}锛+{newCustom.INTGrowth}/Lv锛塡r\n" + + $"璇峰彂閫併愮‘璁よ鑹查噸闅忋戞潵纭鏇存柊锛屾垨鑰呭彂閫併愬彇娑堣鑹查噸闅忋戞潵鍙栨秷鎿嶄綔銆"); } else if (newCustom.Id == user.Id) { - return NetworkUtility.JsonSerialize($"你已经有一个待确认的重随属性如下:\r\n" + - $"核心属性:{CharacterSet.GetPrimaryAttributeName(oldPA)} => {CharacterSet.GetPrimaryAttributeName(newCustom.PrimaryAttribute)}\r\n" + - $"初始力量:{oldSTR}(+{oldSTRG}/Lv)=> {newCustom.InitialSTR}(+{newCustom.STRGrowth}/Lv)\r\n" + - $"初始敏捷:{oldAGI}(+{oldAGIG}/Lv)=> {newCustom.InitialAGI}(+{newCustom.AGIGrowth}/Lv)\r\n" + - $"初始智力:{oldINT}(+{oldINTG}/Lv)=> {newCustom.InitialINT}(+{newCustom.INTGrowth}/Lv)\r\n"+ - $"请发送【确认角色重随】来确认更新,或者发送【取消角色重随】来取消操作。"); + return NetworkUtility.JsonSerialize($"浣犲凡缁忔湁涓涓緟纭鐨勯噸闅忓睘鎬у涓嬶細\r\n" + + $"鏍稿績灞炴э細{CharacterSet.GetPrimaryAttributeName(oldPA)} => {CharacterSet.GetPrimaryAttributeName(newCustom.PrimaryAttribute)}\r\n" + + $"鍒濆鍔涢噺锛歿oldSTR}锛+{oldSTRG}/Lv锛=> {newCustom.InitialSTR}锛+{newCustom.STRGrowth}/Lv锛塡r\n" + + $"鍒濆鏁忔嵎锛歿oldAGI}锛+{oldAGIG}/Lv锛=> {newCustom.InitialAGI}锛+{newCustom.AGIGrowth}/Lv锛塡r\n" + + $"鍒濆鏅哄姏锛歿oldINT}锛+{oldINTG}/Lv锛=> {newCustom.InitialINT}锛+{newCustom.INTGrowth}/Lv锛塡r\n"+ + $"璇峰彂閫併愮‘璁よ鑹查噸闅忋戞潵纭鏇存柊锛屾垨鑰呭彂閫併愬彇娑堣鑹查噸闅忋戞潵鍙栨秷鎿嶄綔銆"); } else { - return NetworkUtility.JsonSerialize($"重随自建角色属性失败!"); + return NetworkUtility.JsonSerialize($"閲嶉殢鑷缓瑙掕壊灞炴уけ璐ワ紒"); } } } else { - return NetworkUtility.JsonSerialize($"你似乎没有自建角色,请发送【生成自建角色】创建!"); + return NetworkUtility.JsonSerialize($"浣犱技涔庢病鏈夎嚜寤鸿鑹诧紝璇峰彂閫併愮敓鎴愯嚜寤鸿鑹层戝垱寤猴紒"); } } else @@ -561,11 +561,11 @@ namespace Oshima.Core.Controllers { emc.Clear(); emc.SaveConfig(); - return NetworkUtility.JsonSerialize($"已取消角色重随。"); + return NetworkUtility.JsonSerialize($"宸插彇娑堣鑹查噸闅忋"); } else { - return NetworkUtility.JsonSerialize($"你目前没有待确认的角色重随。"); + return NetworkUtility.JsonSerialize($"浣犵洰鍓嶆病鏈夊緟纭鐨勮鑹查噸闅忋"); } } else @@ -608,9 +608,9 @@ namespace Oshima.Core.Controllers if (pc.Count > 0) { User user = FunGameService.GetUser(pc); - list.Add($"☆★☆ {user.Inventory.Name} ☆★☆"); - list.Add($"{General.GameplayEquilibriumConstant.InGameCurrency}:{user.Inventory.Credits:0.00}"); - list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}:{user.Inventory.Materials:0.00}"); + list.Add($"鈽嗏槄鈽 {user.Inventory.Name} 鈽嗏槄鈽"); + list.Add($"{General.GameplayEquilibriumConstant.InGameCurrency}锛歿user.Inventory.Credits:0.00}"); + list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}锛歿user.Inventory.Materials:0.00}"); List characters = [.. user.Inventory.Characters]; List items = [.. user.Inventory.Items]; int total = characters.Count + items.Count; @@ -638,7 +638,7 @@ namespace Oshima.Core.Controllers if (showCharacter) { showCharacter = false; - list.Add("======= 角色 ======="); + list.Add("======= 瑙掕壊 ======="); } str = $"{prevSequence + characterCount}. {character.ToStringWithLevelWithOutUser()}"; } @@ -648,7 +648,7 @@ namespace Oshima.Core.Controllers if (showItem) { showItem = false; - list.Add("======= 物品 ======="); + list.Add("======= 鐗╁搧 ======="); } str = $"{index - (characterCount > 0 ? prevSequence + characterCount : characters.Count)}. [{ItemSet.GetQualityTypeName(item.QualityType)}|{ItemSet.GetItemTypeName(item.ItemType)}] {item.Name}\r\n"; str += $"{item.ToStringInventory(false).Trim()}"; @@ -656,11 +656,11 @@ namespace Oshima.Core.Controllers list.Add(str); } - list.Add($"页数:{showPage} / {maxPage}"); + list.Add($"椤垫暟锛歿showPage} / {maxPage}"); } else { - list.Add($"没有这么多页!当前总页数为 {maxPage},但你请求的是第 {showPage} 页。"); + list.Add($"娌℃湁杩欎箞澶氶〉锛佸綋鍓嶆婚〉鏁颁负 {maxPage}锛屼絾浣犺姹傜殑鏄 {showPage} 椤点"); } } else @@ -684,9 +684,9 @@ namespace Oshima.Core.Controllers if (pc.Count > 0) { User user = FunGameService.GetUser(pc); - list.Add($"☆★☆ {user.Inventory.Name} ☆★☆"); - list.Add($"{General.GameplayEquilibriumConstant.InGameCurrency}:{user.Inventory.Credits:0.00}"); - list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}:{user.Inventory.Materials:0.00}"); + list.Add($"鈽嗏槄鈽 {user.Inventory.Name} 鈽嗏槄鈽"); + list.Add($"{General.GameplayEquilibriumConstant.InGameCurrency}锛歿user.Inventory.Credits:0.00}"); + list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}锛歿user.Inventory.Materials:0.00}"); List items = [.. user.Inventory.Items]; Dictionary> itemCategory = []; @@ -731,30 +731,30 @@ namespace Oshima.Core.Controllers { List keys = [.. FunGameService.GetPage(itemCategory.Keys, showPage, 10)]; int itemCount = 0; - list.Add("======= 物品 ======="); + list.Add("======= 鐗╁搧 ======="); foreach (string key in keys) { itemCount++; List objs = itemCategory[key]; Item first = objs[0]; string str = $"{itemCount}. [{ItemSet.GetQualityTypeName(first.QualityType)}|{ItemSet.GetItemTypeName(first.ItemType)}] {first.Name}\r\n"; - str += $"物品描述:{first.Description}\r\n"; - string itemsIndex = string.Join(",", objs.Select(i => items.IndexOf(i) + 1)); + str += $"鐗╁搧鎻忚堪锛歿first.Description}\r\n"; + string itemsIndex = string.Join("锛", objs.Select(i => items.IndexOf(i) + 1)); if (objs.Count > 10) { - itemsIndex = string.Join(",", objs.Take(10).Select(i => items.IndexOf(i) + 1)) + ",..."; + itemsIndex = string.Join("锛", objs.Take(10).Select(i => items.IndexOf(i) + 1)) + "锛..."; } - str += $"物品序号:{itemsIndex}\r\n"; - str += $"拥有数量:{objs.Count}(" + (first.IsEquipment ? $"可装备数量:{objs.Count(i => i.Character is null)}," : "") + - (itemCanUsed.Contains(first.ItemType) ? $"可使用数量:{objs.Count(i => i.RemainUseTimes > 0)}," : "") + - $"可出售数量:{objs.Count(i => i.IsSellable)},可交易数量:{objs.Count(i => i.IsTradable)})"; + str += $"鐗╁搧搴忓彿锛歿itemsIndex}\r\n"; + str += $"鎷ユ湁鏁伴噺锛歿objs.Count}锛" + (first.IsEquipment ? $"鍙澶囨暟閲忥細{objs.Count(i => i.Character is null)}锛" : "") + + (itemCanUsed.Contains(first.ItemType) ? $"鍙娇鐢ㄦ暟閲忥細{objs.Count(i => i.RemainUseTimes > 0)}锛" : "") + + $"鍙嚭鍞暟閲忥細{objs.Count(i => i.IsSellable)}锛屽彲浜ゆ槗鏁伴噺锛歿objs.Count(i => i.IsTradable)}锛"; list.Add(str); } - list.Add($"页数:{showPage} / {maxPage}"); + list.Add($"椤垫暟锛歿showPage} / {maxPage}"); } else { - list.Add($"没有这么多页!当前总页数为 {maxPage},但你请求的是第 {showPage} 页。"); + list.Add($"娌℃湁杩欎箞澶氶〉锛佸綋鍓嶆婚〉鏁颁负 {maxPage}锛屼絾浣犺姹傜殑鏄 {showPage} 椤点"); } } else @@ -780,13 +780,13 @@ namespace Oshima.Core.Controllers { if (type == -1) { - return ["没有指定物品的类型,请使用通用查询方法!"]; + return ["娌℃湁鎸囧畾鐗╁搧鐨勭被鍨嬶紝璇蜂娇鐢ㄩ氱敤鏌ヨ鏂规硶锛"]; } User user = FunGameService.GetUser(pc); - list.Add($"☆★☆ {user.Inventory.Name} ☆★☆"); - list.Add($"{General.GameplayEquilibriumConstant.InGameCurrency}:{user.Inventory.Credits:0.00}"); - list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}:{user.Inventory.Materials:0.00}"); + list.Add($"鈽嗏槄鈽 {user.Inventory.Name} 鈽嗏槄鈽"); + list.Add($"{General.GameplayEquilibriumConstant.InGameCurrency}锛歿user.Inventory.Credits:0.00}"); + list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}锛歿user.Inventory.Materials:0.00}"); List items = [.. user.Inventory.Items]; Dictionary> itemCategory = []; @@ -798,10 +798,10 @@ namespace Oshima.Core.Controllers } } - // 按品质倒序、数量倒序排序 + // 鎸夊搧璐ㄥ掑簭銆佹暟閲忓掑簭鎺掑簭 itemCategory = itemCategory.OrderByDescending(kv => kv.Value.FirstOrDefault()?.QualityType ?? 0).ThenByDescending(kv => kv.Value.Count).ToDictionary(); - // 移除所有非指定类型的物品 + // 绉婚櫎鎵鏈夐潪鎸囧畾绫诲瀷鐨勭墿鍝 foreach (List listTemp in itemCategory.Values) { if (listTemp.First() is Item item && (int)item.ItemType != itemtype) @@ -823,23 +823,23 @@ namespace Oshima.Core.Controllers List objs = itemCategory[key]; Item first = objs[0]; string str = $"{itemCount}. [{ItemSet.GetQualityTypeName(first.QualityType)}|{ItemSet.GetItemTypeName(first.ItemType)}] {first.Name}\r\n"; - str += $"物品描述:{first.Description}\r\n"; - string itemsIndex = string.Join(",", objs.Select(i => items.IndexOf(i) + 1)); + str += $"鐗╁搧鎻忚堪锛歿first.Description}\r\n"; + string itemsIndex = string.Join("锛", objs.Select(i => items.IndexOf(i) + 1)); if (objs.Count > 10) { - itemsIndex = string.Join(",", objs.Take(10).Select(i => items.IndexOf(i) + 1)) + ",..."; + itemsIndex = string.Join("锛", objs.Take(10).Select(i => items.IndexOf(i) + 1)) + "锛..."; } - str += $"物品序号:{itemsIndex}\r\n"; - str += $"拥有数量:{objs.Count}(" + (first.IsEquipment ? $"可装备数量:{objs.Count(i => i.Character is null)}," : "") + - (itemCanUsed.Contains(first.ItemType) ? $"可使用数量:{objs.Count(i => i.RemainUseTimes > 0)}," : "") + - $"可出售数量:{objs.Count(i => i.IsSellable)},可交易数量:{objs.Count(i => i.IsTradable)})"; + str += $"鐗╁搧搴忓彿锛歿itemsIndex}\r\n"; + str += $"鎷ユ湁鏁伴噺锛歿objs.Count}锛" + (first.IsEquipment ? $"鍙澶囨暟閲忥細{objs.Count(i => i.Character is null)}锛" : "") + + (itemCanUsed.Contains(first.ItemType) ? $"鍙娇鐢ㄦ暟閲忥細{objs.Count(i => i.RemainUseTimes > 0)}锛" : "") + + $"鍙嚭鍞暟閲忥細{objs.Count(i => i.IsSellable)}锛屽彲浜ゆ槗鏁伴噺锛歿objs.Count(i => i.IsTradable)}锛"; list.Add(str); } - list.Add($"页数:{showPage} / {maxPage}"); + list.Add($"椤垫暟锛歿showPage} / {maxPage}"); } else { - list.Add($"没有这么多页!当前总页数为 {maxPage},但你请求的是第 {showPage} 页。"); + list.Add($"娌℃湁杩欎箞澶氶〉锛佸綋鍓嶆婚〉鏁颁负 {maxPage}锛屼絾浣犺姹傜殑鏄 {showPage} 椤点"); } } else @@ -863,9 +863,9 @@ namespace Oshima.Core.Controllers if (pc.Count > 0) { User user = FunGameService.GetUser(pc); - list.Add($"☆★☆ {user.Inventory.Name} ☆★☆"); - list.Add($"{General.GameplayEquilibriumConstant.InGameCurrency}:{user.Inventory.Credits:0.00}"); - list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}:{user.Inventory.Materials:0.00}"); + list.Add($"鈽嗏槄鈽 {user.Inventory.Name} 鈽嗏槄鈽"); + list.Add($"{General.GameplayEquilibriumConstant.InGameCurrency}锛歿user.Inventory.Credits:0.00}"); + list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}锛歿user.Inventory.Materials:0.00}"); List characters = [.. user.Inventory.Characters]; int total = characters.Count; int maxPage = (int)Math.Ceiling((double)total / 6); @@ -890,18 +890,18 @@ namespace Oshima.Core.Controllers if (showCharacter) { showCharacter = false; - list.Add("======= 角色 ======="); + list.Add("======= 瑙掕壊 ======="); } str = $"{prevSequence + characterCount}. {character.ToStringWithLevelWithOutUser()}"; } list.Add(str); } - list.Add($"页数:{showPage} / {maxPage}"); + list.Add($"椤垫暟锛歿showPage} / {maxPage}"); } else { - list.Add($"没有这么多页!当前总页数为 {maxPage},但你请求的是第 {showPage} 页。"); + list.Add($"娌℃湁杩欎箞澶氶〉锛佸綋鍓嶆婚〉鏁颁负 {maxPage}锛屼絾浣犺姹傜殑鏄 {showPage} 椤点"); } } else @@ -924,7 +924,7 @@ namespace Oshima.Core.Controllers User user = FunGameService.GetUser(pc); if (user.Inventory.Characters.Any(c => c.Id == user.Id)) { - return NetworkUtility.JsonSerialize($"你已经拥有一个自建角色【{user.Username}】,无法再创建!"); + return NetworkUtility.JsonSerialize($"浣犲凡缁忔嫢鏈変竴涓嚜寤鸿鑹层恵user.Username}銆戯紝鏃犳硶鍐嶅垱寤猴紒"); } else { @@ -932,7 +932,7 @@ namespace Oshima.Core.Controllers user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"恭喜你成功创建了一个自建角色【{user.Username}】,请查看你的角色库存!"); + return NetworkUtility.JsonSerialize($"鎭枩浣犳垚鍔熷垱寤轰簡涓涓嚜寤鸿鑹层恵user.Username}銆戯紝璇锋煡鐪嬩綘鐨勮鑹插簱瀛橈紒"); } } else @@ -960,7 +960,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {reduce} 呢,无法抽卡!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameCurrency}涓嶈冻 {reduce} 鍛紝鏃犳硶鎶藉崱锛"); } double dice = Random.Shared.NextDouble(); @@ -975,7 +975,7 @@ namespace Oshima.Core.Controllers else { pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameCurrency},你什么也没抽中……"); + return NetworkUtility.JsonSerialize($"娑堣 {reduce} {General.GameplayEquilibriumConstant.InGameCurrency}锛屼綘浠涔堜篃娌℃娊涓︹"); } } else @@ -1003,10 +1003,10 @@ namespace Oshima.Core.Controllers } else { - return [$"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {reduce} 呢,无法十连抽卡!"]; + return [$"浣犵殑{General.GameplayEquilibriumConstant.InGameCurrency}涓嶈冻 {reduce} 鍛紝鏃犳硶鍗佽繛鎶藉崱锛"]; } - List result = [$"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameCurrency},恭喜你抽到了:"]; + List result = [$"娑堣 {reduce} {General.GameplayEquilibriumConstant.InGameCurrency}锛屾伃鍠滀綘鎶藉埌浜嗭細"]; int count = 0; for (int i = 0; i < 10; i++) { @@ -1019,7 +1019,7 @@ namespace Oshima.Core.Controllers } if (result.Count == 1) { - result[0] = $"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameCurrency},你什么也没抽中……"; + result[0] = $"娑堣 {reduce} {General.GameplayEquilibriumConstant.InGameCurrency}锛屼綘浠涔堜篃娌℃娊涓︹"; } user.LastTime = DateTime.Now; pc.Add("user", user); @@ -1051,7 +1051,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {reduce} 呢,无法抽卡!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameMaterial}涓嶈冻 {reduce} 鍛紝鏃犳硶鎶藉崱锛"); } double dice = Random.Shared.NextDouble(); @@ -1066,7 +1066,7 @@ namespace Oshima.Core.Controllers else { pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial},你什么也没抽中……"); + return NetworkUtility.JsonSerialize($"娑堣 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial}锛屼綘浠涔堜篃娌℃娊涓︹"); } } else @@ -1094,10 +1094,10 @@ namespace Oshima.Core.Controllers } else { - return [$"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {reduce} 呢,无法十连抽卡!"]; + return [$"浣犵殑{General.GameplayEquilibriumConstant.InGameMaterial}涓嶈冻 {reduce} 鍛紝鏃犳硶鍗佽繛鎶藉崱锛"]; } - List result = [$"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial},恭喜你抽到了:"]; + List result = [$"娑堣 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial}锛屾伃鍠滀綘鎶藉埌浜嗭細"]; int count = 0; for (int i = 0; i < 10; i++) { @@ -1110,7 +1110,7 @@ namespace Oshima.Core.Controllers } if (result.Count == 1) { - result[0] = $"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial},你什么也没抽中……"; + result[0] = $"娑堣 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial}锛屼綘浠涔堜篃娌℃娊涓︹"; } user.LastTime = DateTime.Now; pc.Add("user", user); @@ -1146,11 +1146,11 @@ namespace Oshima.Core.Controllers user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"兑换成功!你消耗了 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial},增加了 {reward} {General.GameplayEquilibriumConstant.InGameCurrency}!"); + return NetworkUtility.JsonSerialize($"鍏戞崲鎴愬姛锛佷綘娑堣椾簡 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial}锛屽鍔犱簡 {reward} {General.GameplayEquilibriumConstant.InGameCurrency}锛"); } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {reduce},最低消耗 10 {General.GameplayEquilibriumConstant.InGameMaterial}兑换 2000 {General.GameplayEquilibriumConstant.InGameCurrency}!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameMaterial}涓嶈冻 {reduce}锛屾渶浣庢秷鑰 10 {General.GameplayEquilibriumConstant.InGameMaterial}鍏戞崲 2000 {General.GameplayEquilibriumConstant.InGameCurrency}锛"); } } else @@ -1179,9 +1179,9 @@ namespace Oshima.Core.Controllers { if (isSimple) { - return NetworkUtility.JsonSerialize($"这是你的主战角色简略信息:\r\n{user.Inventory.MainCharacter.GetSimpleInfo(showEXP: true).Trim()}"); + return NetworkUtility.JsonSerialize($"杩欐槸浣犵殑涓绘垬瑙掕壊绠鐣ヤ俊鎭細\r\n{user.Inventory.MainCharacter.GetSimpleInfo(showEXP: true).Trim()}"); } - return NetworkUtility.JsonSerialize($"这是你的主战角色详细信息:\r\n{user.Inventory.MainCharacter.GetInfo().Trim()}"); + return NetworkUtility.JsonSerialize($"杩欐槸浣犵殑涓绘垬瑙掕壊璇︾粏淇℃伅锛歕r\n{user.Inventory.MainCharacter.GetInfo().Trim()}"); } else { @@ -1190,13 +1190,13 @@ namespace Oshima.Core.Controllers Character character = user.Inventory.Characters.ToList()[cIndex - 1]; if (isSimple) { - return NetworkUtility.JsonSerialize($"这是你库存中序号为 {cIndex} 的角色简略信息:\r\n{character.GetSimpleInfo(showEXP: true).Trim()}"); + return NetworkUtility.JsonSerialize($"杩欐槸浣犲簱瀛樹腑搴忓彿涓 {cIndex} 鐨勮鑹茬畝鐣ヤ俊鎭細\r\n{character.GetSimpleInfo(showEXP: true).Trim()}"); } - return NetworkUtility.JsonSerialize($"这是你库存中序号为 {cIndex} 的角色详细信息:\r\n{character.GetInfo().Trim()}"); + return NetworkUtility.JsonSerialize($"杩欐槸浣犲簱瀛樹腑搴忓彿涓 {cIndex} 鐨勮鑹茶缁嗕俊鎭細\r\n{character.GetInfo().Trim()}"); } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } } } @@ -1228,18 +1228,18 @@ namespace Oshima.Core.Controllers if (cIndex == 0) { - return NetworkUtility.JsonSerialize($"这是你的主战角色技能信息:\r\n{user.Inventory.MainCharacter.GetSkillInfo().Trim()}"); + return NetworkUtility.JsonSerialize($"杩欐槸浣犵殑涓绘垬瑙掕壊鎶鑳戒俊鎭細\r\n{user.Inventory.MainCharacter.GetSkillInfo().Trim()}"); } else { if (cIndex > 0 && cIndex <= user.Inventory.Characters.Count) { Character character = user.Inventory.Characters.ToList()[cIndex - 1]; - return NetworkUtility.JsonSerialize($"这是你库存中序号为 {cIndex} 的角色技能信息:\r\n{character.GetSkillInfo().Trim()}"); + return NetworkUtility.JsonSerialize($"杩欐槸浣犲簱瀛樹腑搴忓彿涓 {cIndex} 鐨勮鑹叉妧鑳戒俊鎭細\r\n{character.GetSkillInfo().Trim()}"); } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } } } @@ -1271,18 +1271,18 @@ namespace Oshima.Core.Controllers if (cIndex == 0) { - return NetworkUtility.JsonSerialize($"这是你的主战角色装备物品信息:\r\n{user.Inventory.MainCharacter.GetItemInfo(showEXP: true).Trim()}"); + return NetworkUtility.JsonSerialize($"杩欐槸浣犵殑涓绘垬瑙掕壊瑁呭鐗╁搧淇℃伅锛歕r\n{user.Inventory.MainCharacter.GetItemInfo(showEXP: true).Trim()}"); } else { if (cIndex > 0 && cIndex <= user.Inventory.Characters.Count) { Character character = user.Inventory.Characters.ToList()[cIndex - 1]; - return NetworkUtility.JsonSerialize($"这是你库存中序号为 {cIndex} 的角色装备物品信息:\r\n{character.GetItemInfo(showEXP: true).Trim()}"); + return NetworkUtility.JsonSerialize($"杩欐槸浣犲簱瀛樹腑搴忓彿涓 {cIndex} 鐨勮鑹茶澶囩墿鍝佷俊鎭細\r\n{character.GetItemInfo(showEXP: true).Trim()}"); } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } } } @@ -1315,11 +1315,11 @@ namespace Oshima.Core.Controllers if (itemIndex > 0 && itemIndex <= user.Inventory.Items.Count) { Item item = user.Inventory.Items.ToList()[itemIndex - 1]; - return NetworkUtility.JsonSerialize($"这是你库存中序号为 {itemIndex} 的物品详细信息:\r\n{item.ToStringInventory(true).Trim()}"); + return NetworkUtility.JsonSerialize($"杩欐槸浣犲簱瀛樹腑搴忓彿涓 {itemIndex} 鐨勭墿鍝佽缁嗕俊鎭細\r\n{item.ToStringInventory(true).Trim()}"); } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的物品!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勭墿鍝侊紒"); } } else @@ -1357,35 +1357,35 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } if (itemIndex > 0 && itemIndex <= user.Inventory.Items.Count) { item = user.Inventory.Items.ToList()[itemIndex - 1]; if ((int)item.ItemType < (int)ItemType.MagicCardPack || (int)item.ItemType > (int)ItemType.Accessory) { - return NetworkUtility.JsonSerialize($"这个物品无法被装备!"); + return NetworkUtility.JsonSerialize($"杩欎釜鐗╁搧鏃犳硶琚澶囷紒"); } else if (item.Character != null) { - return NetworkUtility.JsonSerialize($"这个物品无法被装备![ {item.Character.ToStringWithLevelWithOutUser()} ] 已装备此物品。"); + return NetworkUtility.JsonSerialize($"杩欎釜鐗╁搧鏃犳硶琚澶囷紒[ {item.Character.ToStringWithLevelWithOutUser()} ] 宸茶澶囨鐗╁搧銆"); } } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的物品!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勭墿鍝侊紒"); } if (character != null && item != null && character.Equip(item)) { user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"装备{ItemSet.GetQualityTypeName(item.QualityType)}{ItemSet.GetItemTypeName(item.ItemType)}【{item.Name}】成功!" + - $"({ItemSet.GetEquipSlotTypeName(item.EquipSlotType)}栏位)\r\n物品描述:{item.Description}"); + return NetworkUtility.JsonSerialize($"瑁呭{ItemSet.GetQualityTypeName(item.QualityType)}{ItemSet.GetItemTypeName(item.ItemType)}銆恵item.Name}銆戞垚鍔燂紒" + + $"锛坽ItemSet.GetEquipSlotTypeName(item.EquipSlotType)}鏍忎綅锛塡r\n鐗╁搧鎻忚堪锛歿item.Description}"); } else { - return NetworkUtility.JsonSerialize($"装备失败!可能是角色、物品不存在或者其他原因。"); + return NetworkUtility.JsonSerialize($"瑁呭澶辫触锛佸彲鑳芥槸瑙掕壊銆佺墿鍝佷笉瀛樺湪鎴栬呭叾浠栧師鍥犮"); } } else @@ -1426,13 +1426,13 @@ namespace Oshima.Core.Controllers user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"取消装备{ItemSet.GetQualityTypeName(item.QualityType)}{ItemSet.GetItemTypeName(item.ItemType)}【{item.Name}】成功!({ItemSet.GetEquipSlotTypeName(type)}栏位)"); + return NetworkUtility.JsonSerialize($"鍙栨秷瑁呭{ItemSet.GetQualityTypeName(item.QualityType)}{ItemSet.GetItemTypeName(item.ItemType)}銆恵item.Name}銆戞垚鍔燂紒锛坽ItemSet.GetEquipSlotTypeName(type)}鏍忎綅锛"); } - else return NetworkUtility.JsonSerialize($"取消装备失败!角色并没有装备{ItemSet.GetEquipSlotTypeName(type)},或者库存中不存在此物品!"); + else return NetworkUtility.JsonSerialize($"鍙栨秷瑁呭澶辫触锛佽鑹插苟娌℃湁瑁呭{ItemSet.GetEquipSlotTypeName(type)}锛屾垨鑰呭簱瀛樹腑涓嶅瓨鍦ㄦ鐗╁搧锛"); } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } } else @@ -1484,7 +1484,7 @@ namespace Oshima.Core.Controllers } else { - return [$"对方貌似还没有创建存档呢!"]; + return [$"瀵规柟璨屼技杩樻病鏈夊垱寤哄瓨妗e憿锛"]; } if (user1 != null && user2 != null) @@ -1493,7 +1493,7 @@ namespace Oshima.Core.Controllers } else { - return [$"决斗发起失败!"]; + return [$"鍐虫枟鍙戣捣澶辫触锛"]; } } catch (Exception e) @@ -1512,11 +1512,11 @@ namespace Oshima.Core.Controllers long enemyid = FunGameService.UserIdAndUsername.Where(kv => kv.Value == name).Select(kv => kv.Key).FirstOrDefault(); if (enemyid == 0) { - return [$"找不到此名称对应的玩家!"]; + return [$"鎵句笉鍒版鍚嶇О瀵瑰簲鐨勭帺瀹讹紒"]; } return FightCustom(qq, enemyid, all); } - return [$"决斗发起失败!"]; + return [$"鍐虫枟鍙戣捣澶辫触锛"]; } catch (Exception e) { @@ -1547,7 +1547,7 @@ namespace Oshima.Core.Controllers if (user1.Inventory.Squad.Count == 0) { - return [$"你尚未设置小队,请先设置1-4名角色!"]; + return [$"浣犲皻鏈缃皬闃燂紝璇峰厛璁剧疆1-4鍚嶈鑹诧紒"]; } user1.LastTime = DateTime.Now; @@ -1565,7 +1565,7 @@ namespace Oshima.Core.Controllers if (user2.Inventory.Squad.Count == 0) { - return [$"对方尚未设置小队,无法决斗。"]; + return [$"瀵规柟灏氭湭璁剧疆灏忛槦锛屾棤娉曞喅鏂椼"]; } user2.LastTime = DateTime.Now; @@ -1574,20 +1574,20 @@ namespace Oshima.Core.Controllers } else { - return [$"对方貌似还没有创建存档呢!"]; + return [$"瀵规柟璨屼技杩樻病鏈夊垱寤哄瓨妗e憿锛"]; } if (user1 != null && user2 != null) { Character[] squad1 = [.. user1.Inventory.Characters.Where(c => user1.Inventory.Squad.Contains(c.Id)).Select(c => c.Copy())]; Character[] squad2 = [.. user2.Inventory.Characters.Where(c => user2.Inventory.Squad.Contains(c.Id)).Select(c => c.Copy())]; - Team team1 = new($"{user1.Username}的小队", squad1); - Team team2 = new($"{user2.Username}的小队", squad2); + Team team1 = new($"{user1.Username}鐨勫皬闃", squad1); + Team team2 = new($"{user2.Username}鐨勫皬闃", squad2); return FunGameActionQueue.NewAndStartTeamGame([team1, team2], 0, 0, false, false, false, false, showAllRound); } else { - return [$"决斗发起失败!"]; + return [$"鍐虫枟鍙戣捣澶辫触锛"]; } } catch (Exception e) @@ -1606,11 +1606,11 @@ namespace Oshima.Core.Controllers long enemyid = FunGameService.UserIdAndUsername.Where(kv => kv.Value == name).Select(kv => kv.Key).FirstOrDefault(); if (enemyid == 0) { - return [$"找不到此名称对应的玩家!"]; + return [$"鎵句笉鍒版鍚嶇О瀵瑰簲鐨勭帺瀹讹紒"]; } return FightCustomTeam(qq, enemyid, all); } - return [$"决斗发起失败!"]; + return [$"鍐虫枟鍙戣捣澶辫触锛"]; } catch (Exception e) { @@ -1643,7 +1643,7 @@ namespace Oshima.Core.Controllers { if (item.RemainUseTimes <= 0) { - return NetworkUtility.JsonSerialize("此物品剩余使用次数为0,无法使用!"); + return NetworkUtility.JsonSerialize("姝ょ墿鍝佸墿浣欎娇鐢ㄦ鏁颁负0锛屾棤娉曚娇鐢紒"); } List targets = []; @@ -1666,12 +1666,12 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"这个物品无法使用!"); + return NetworkUtility.JsonSerialize($"杩欎釜鐗╁搧鏃犳硶浣跨敤锛"); } } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的物品!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勭墿鍝侊紒"); } } else @@ -1705,7 +1705,7 @@ namespace Oshima.Core.Controllers IEnumerable items = user.Inventory.Items.Where(i => i.Name == name && i.Character is null && i.ItemType != ItemType.MagicCard); if (!items.Any()) { - return NetworkUtility.JsonSerialize($"库存中不存在名称为【{name}】的物品!如果是魔法卡,请用【使用魔法卡】指令。"); + return NetworkUtility.JsonSerialize($"搴撳瓨涓笉瀛樺湪鍚嶇О涓恒恵name}銆戠殑鐗╁搧锛佸鏋滄槸榄旀硶鍗★紝璇风敤銆愪娇鐢ㄩ瓟娉曞崱銆戞寚浠ゃ"); } if (items.Count() >= useCount) @@ -1725,7 +1725,7 @@ namespace Oshima.Core.Controllers } else { - msgs.Add($"库存中不存在序号为 {characterIndex} 的角色!"); + msgs.Add($"搴撳瓨涓笉瀛樺湪搴忓彿涓 {characterIndex} 鐨勮鑹诧紒"); } } @@ -1735,7 +1735,7 @@ namespace Oshima.Core.Controllers { if (item.RemainUseTimes <= 0) { - msgs.Add("此物品剩余使用次数为0,无法使用!"); + msgs.Add("姝ょ墿鍝佸墿浣欎娇鐢ㄦ鏁颁负0锛屾棤娉曚娇鐢紒"); } if (FunGameService.UseItem(item, user, [.. targets], out string msg)) @@ -1746,7 +1746,7 @@ namespace Oshima.Core.Controllers } else { - msgs.Add($"这个物品无法使用!"); + msgs.Add($"杩欎釜鐗╁搧鏃犳硶浣跨敤锛"); } } if (successCount > 0) @@ -1755,11 +1755,11 @@ namespace Oshima.Core.Controllers pc.Add("user", user); pc.SaveConfig(); } - return NetworkUtility.JsonSerialize($"使用完毕!使用 {useCount} 件物品,成功 {successCount} 件!\r\n" + string.Join("\r\n", msgs.Count > 30 ? msgs.Take(30) : msgs)); + return NetworkUtility.JsonSerialize($"浣跨敤瀹屾瘯锛佷娇鐢 {useCount} 浠剁墿鍝侊紝鎴愬姛 {successCount} 浠讹紒\r\n" + string.Join("\r\n", msgs.Count > 30 ? msgs.Take(30) : msgs)); } else { - return NetworkUtility.JsonSerialize("此物品的可使用数量小于你想要使用的数量!"); + return NetworkUtility.JsonSerialize("姝ょ墿鍝佺殑鍙娇鐢ㄦ暟閲忓皬浜庝綘鎯宠浣跨敤鐨勬暟閲忥紒"); } } else @@ -1798,7 +1798,7 @@ namespace Oshima.Core.Controllers { if (item.RemainUseTimes <= 0) { - return NetworkUtility.JsonSerialize("此物品剩余使用次数为0,无法使用!"); + return NetworkUtility.JsonSerialize("姝ょ墿鍝佸墿浣欎娇鐢ㄦ鏁颁负0锛屾棤娉曚娇鐢紒"); } string msg = ""; @@ -1817,17 +1817,17 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"库存中没有找到此角色对应的魔法卡包!"); + return NetworkUtility.JsonSerialize($"搴撳瓨涓病鏈夋壘鍒版瑙掕壊瀵瑰簲鐨勯瓟娉曞崱鍖咃紒"); } } else { - return NetworkUtility.JsonSerialize($"这个角色没有装备魔法卡包,无法对其使用魔法卡!"); + return NetworkUtility.JsonSerialize($"杩欎釜瑙掕壊娌℃湁瑁呭榄旀硶鍗″寘锛屾棤娉曞鍏朵娇鐢ㄩ瓟娉曞崱锛"); } } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } } else @@ -1841,12 +1841,12 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"与目标序号相对应的物品不是魔法卡包!"); + return NetworkUtility.JsonSerialize($"涓庣洰鏍囧簭鍙风浉瀵瑰簲鐨勭墿鍝佷笉鏄瓟娉曞崱鍖咃紒"); } } else { - return NetworkUtility.JsonSerialize($"没有找到与目标序号相对应的物品!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庣洰鏍囧簭鍙风浉瀵瑰簲鐨勭墿鍝侊紒"); } } @@ -1857,12 +1857,12 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"这个物品不是魔法卡!"); + return NetworkUtility.JsonSerialize($"杩欎釜鐗╁搧涓嶆槸榄旀硶鍗★紒"); } } else { - return NetworkUtility.JsonSerialize($"没有找到与目标序号相对应的物品!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庣洰鏍囧簭鍙风浉瀵瑰簲鐨勭墿鍝侊紒"); } } else @@ -1899,34 +1899,34 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } if (character.Level == General.GameplayEquilibriumConstant.MaxLevel) { - return NetworkUtility.JsonSerialize($"该角色等级已满,无需再升级!"); + return NetworkUtility.JsonSerialize($"璇ヨ鑹茬瓑绾у凡婊★紝鏃犻渶鍐嶅崌绾э紒"); } int originalLevel = character.Level; character.OnLevelUp(upCount); - string msg = $"升级完成!角色 [ {character} ] 共提升 {character.Level - originalLevel} 级,当前等级:{character.Level} 级。"; + string msg = $"鍗囩骇瀹屾垚锛佽鑹 [ {character} ] 鍏辨彁鍗 {character.Level - originalLevel} 绾э紝褰撳墠绛夌骇锛歿character.Level} 绾с"; if (character.Level != General.GameplayEquilibriumConstant.MaxLevel && General.GameplayEquilibriumConstant.EXPUpperLimit.TryGetValue(character.Level, out double need)) { if (character.EXP < need) { - msg += $"\r\n角色 [ {character} ] 仍需 {need - character.EXP} 点经验值才能继续升级。"; + msg += $"\r\n瑙掕壊 [ {character} ] 浠嶉渶 {need - character.EXP} 鐐圭粡楠屽兼墠鑳界户缁崌绾с"; } else { - msg += $"\r\n角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count},需要进行【角色突破】才能继续升级。"; + msg += $"\r\n瑙掕壊 [ {character} ] 鐩墠绐佺牬杩涘害锛歿character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}锛岄渶瑕佽繘琛屻愯鑹茬獊鐮淬戞墠鑳界户缁崌绾с"; } } else if (character.Level == General.GameplayEquilibriumConstant.MaxLevel) { - msg += $"\r\n该角色已升级至满级,恭喜!"; + msg += $"\r\n璇ヨ鑹插凡鍗囩骇鑷虫弧绾э紝鎭枩锛"; } user.LastTime = DateTime.Now; @@ -1964,16 +1964,16 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } if (character.LevelBreak + 1 == General.GameplayEquilibriumConstant.LevelBreakList.Count) { - return NetworkUtility.JsonSerialize($"该角色已完成全部的突破阶段,无需再突破!"); + return NetworkUtility.JsonSerialize($"璇ヨ鑹插凡瀹屾垚鍏ㄩ儴鐨勭獊鐮撮樁娈碉紝鏃犻渶鍐嶇獊鐮达紒"); } - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}" + - $"\r\n该角色下一个等级突破阶段在 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 级,所需材料:\r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1)); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 鐩墠绐佺牬杩涘害锛歿character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}" + + $"\r\n璇ヨ鑹蹭笅涓涓瓑绾х獊鐮撮樁娈靛湪 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 绾э紝鎵闇鏉愭枡锛歕r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1)); } else { @@ -2003,12 +2003,12 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } if (character.LevelBreak + 1 == General.GameplayEquilibriumConstant.LevelBreakList.Count) { - return NetworkUtility.JsonSerialize($"该角色已完成全部的突破阶段,无需再突破!"); + return NetworkUtility.JsonSerialize($"璇ヨ鑹插凡瀹屾垚鍏ㄩ儴鐨勭獊鐮撮樁娈碉紝鏃犻渶鍐嶇獊鐮达紒"); } int originalBreak = character.LevelBreak; @@ -2026,7 +2026,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {needCount} 呢,不满足突破条件!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameMaterial}涓嶈冻 {needCount} 鍛紝涓嶆弧瓒崇獊鐮存潯浠讹紒"); } } else @@ -2044,7 +2044,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的物品【{key}】数量不足 {needCount} 呢,不满足突破条件!"); + return NetworkUtility.JsonSerialize($"浣犵殑鐗╁搧銆恵key}銆戞暟閲忎笉瓒 {needCount} 鍛紝涓嶆弧瓒崇獊鐮存潯浠讹紒"); } } } @@ -2055,18 +2055,18 @@ namespace Oshima.Core.Controllers if (originalBreak == character.LevelBreak) { - return NetworkUtility.JsonSerialize($"突破失败!角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}。" + - $"\r\n该角色下一个等级突破阶段在 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 级,所需材料:\r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1)); + return NetworkUtility.JsonSerialize($"绐佺牬澶辫触锛佽鑹 [ {character} ] 鐩墠绐佺牬杩涘害锛歿character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}銆" + + $"\r\n璇ヨ鑹蹭笅涓涓瓑绾х獊鐮撮樁娈靛湪 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 绾э紝鎵闇鏉愭枡锛歕r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1)); } else { user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"突破成功!角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}。" + + return NetworkUtility.JsonSerialize($"绐佺牬鎴愬姛锛佽鑹 [ {character} ] 鐩墠绐佺牬杩涘害锛歿character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}銆" + $"{(character.LevelBreak + 1 == General.GameplayEquilibriumConstant.LevelBreakList.Count ? - "\r\n该角色已完成全部的突破阶段,恭喜!" : - $"\r\n该角色下一个等级突破阶段在 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 级,所需材料:\r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1))}"); + "\r\n璇ヨ鑹插凡瀹屾垚鍏ㄩ儴鐨勭獊鐮撮樁娈碉紝鎭枩锛" : + $"\r\n璇ヨ鑹蹭笅涓涓瓑绾х獊鐮撮樁娈靛湪 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 绾э紝鎵闇鏉愭枡锛歕r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1))}"); } } else @@ -2106,18 +2106,18 @@ namespace Oshima.Core.Controllers if (itemName == General.GameplayEquilibriumConstant.InGameCurrency) { user2.Inventory.Credits += itemCount; - msg = $"已为 [ {user2} ] 生成 {itemCount} {General.GameplayEquilibriumConstant.InGameCurrency}"; + msg = $"宸蹭负 [ {user2} ] 鐢熸垚 {itemCount} {General.GameplayEquilibriumConstant.InGameCurrency}"; } else if (itemName == General.GameplayEquilibriumConstant.InGameMaterial) { user2.Inventory.Materials += itemCount; - msg = $"已为 [ {user2} ] 生成 {itemCount} {General.GameplayEquilibriumConstant.InGameMaterial}"; + msg = $"宸蹭负 [ {user2} ] 鐢熸垚 {itemCount} {General.GameplayEquilibriumConstant.InGameMaterial}"; } - else if (itemName.Contains("魔法卡包")) + else if (itemName.Contains("榄旀硶鍗″寘")) { foreach (string type in ItemSet.QualityTypeNameArray) { - if (itemName == $"{type}魔法卡包") + if (itemName == $"{type}榄旀硶鍗″寘") { int success = 0; for (int i = 0; i < itemCount; i++) @@ -2130,16 +2130,16 @@ namespace Oshima.Core.Controllers success++; } } - msg = $"已为 [ {user2} ] 成功生成 {success} 个{type}魔法卡包"; + msg = $"宸蹭负 [ {user2} ] 鎴愬姛鐢熸垚 {success} 涓獅type}榄旀硶鍗″寘"; break; } } } - else if (itemName.Contains("魔法卡")) + else if (itemName.Contains("榄旀硶鍗")) { foreach (string type in ItemSet.QualityTypeNameArray) { - if (itemName == $"{type}魔法卡") + if (itemName == $"{type}榄旀硶鍗") { for (int i = 0; i < itemCount; i++) { @@ -2147,7 +2147,7 @@ namespace Oshima.Core.Controllers item.User = user2; user2.Inventory.Items.Add(item); } - msg = $"已为 [ {user2} ] 生成 {itemCount} 张{type}魔法卡"; + msg = $"宸蹭负 [ {user2} ] 鐢熸垚 {itemCount} 寮爗type}榄旀硶鍗"; break; } } @@ -2160,23 +2160,23 @@ namespace Oshima.Core.Controllers newItem.User = user2; user2.Inventory.Items.Add(newItem); } - msg = $"已为 [ {user2} ] 生成 {itemCount} 个 [{ItemSet.GetQualityTypeName(item.QualityType)}|{ItemSet.GetItemTypeName(item.ItemType)}] {item.Name}"; + msg = $"宸蹭负 [ {user2} ] 鐢熸垚 {itemCount} 涓 [{ItemSet.GetQualityTypeName(item.QualityType)}|{ItemSet.GetItemTypeName(item.ItemType)}] {item.Name}"; } else { - return NetworkUtility.JsonSerialize($"此物品不存在!"); + return NetworkUtility.JsonSerialize($"姝ょ墿鍝佷笉瀛樺湪锛"); } pc2.Add("user", user2); pc2.SaveConfig(); } else { - return NetworkUtility.JsonSerialize($"目标 UID 不存在!"); + return NetworkUtility.JsonSerialize($"鐩爣 UID 涓嶅瓨鍦紒"); } } else { - return NetworkUtility.JsonSerialize($"你没有权限使用此指令!"); + return NetworkUtility.JsonSerialize($"浣犳病鏈夋潈闄愪娇鐢ㄦ鎸囦护锛"); } return NetworkUtility.JsonSerialize(msg); @@ -2237,7 +2237,7 @@ namespace Oshima.Core.Controllers pc.Add("user", user); pc.SaveConfig(); } - return NetworkUtility.JsonSerialize($"分解完毕!分解 {ids.Length} 件,成功 {successCount} 件,得到了 {totalGained} {General.GameplayEquilibriumConstant.InGameMaterial}!"); + return NetworkUtility.JsonSerialize($"鍒嗚В瀹屾瘯锛佸垎瑙 {ids.Length} 浠讹紝鎴愬姛 {successCount} 浠讹紝寰楀埌浜 {totalGained} {General.GameplayEquilibriumConstant.InGameMaterial}锛"); } else { @@ -2269,7 +2269,7 @@ namespace Oshima.Core.Controllers IEnumerable items = user.Inventory.Items.Where(i => i.Name == name && i.Character is null); if (!items.Any()) { - return NetworkUtility.JsonSerialize($"库存中不存在名称为【{name}】的物品!"); + return NetworkUtility.JsonSerialize($"搴撳瓨涓笉瀛樺湪鍚嶇О涓恒恵name}銆戠殑鐗╁搧锛"); } if (items.Count() >= useCount) @@ -2304,11 +2304,11 @@ namespace Oshima.Core.Controllers pc.Add("user", user); pc.SaveConfig(); } - return NetworkUtility.JsonSerialize($"分解完毕!分解 {useCount} 件物品,成功 {successCount} 件,得到了 {totalGained} {General.GameplayEquilibriumConstant.InGameMaterial}!"); + return NetworkUtility.JsonSerialize($"鍒嗚В瀹屾瘯锛佸垎瑙 {useCount} 浠剁墿鍝侊紝鎴愬姛 {successCount} 浠讹紝寰楀埌浜 {totalGained} {General.GameplayEquilibriumConstant.InGameMaterial}锛"); } else { - return NetworkUtility.JsonSerialize("此物品的可分解数量小于你想要分解的数量!"); + return NetworkUtility.JsonSerialize("姝ょ墿鍝佺殑鍙垎瑙f暟閲忓皬浜庝綘鎯宠鍒嗚В鐨勬暟閲忥紒"); } } else @@ -2332,7 +2332,7 @@ namespace Oshima.Core.Controllers if (qType < 0 || qType > (int)QualityType.Gold) { - return NetworkUtility.JsonSerialize($"品质序号输入错误!"); + return NetworkUtility.JsonSerialize($"鍝佽川搴忓彿杈撳叆閿欒锛"); } PluginConfig pc = new("saved", userid.ToString()); @@ -2346,7 +2346,7 @@ namespace Oshima.Core.Controllers IEnumerable items = user.Inventory.Items.Where(i => (int)i.QualityType == qType && i.Character is null); if (!items.Any()) { - return NetworkUtility.JsonSerialize($"库存中{qualityName}物品数量为零!"); + return NetworkUtility.JsonSerialize($"搴撳瓨涓瓄qualityName}鐗╁搧鏁伴噺涓洪浂锛"); } List msgs = []; @@ -2379,7 +2379,7 @@ namespace Oshima.Core.Controllers pc.Add("user", user); pc.SaveConfig(); } - return NetworkUtility.JsonSerialize($"分解完毕!成功分解 {successCount} 件{qualityName}物品,得到了 {totalGained} {General.GameplayEquilibriumConstant.InGameMaterial}!"); + return NetworkUtility.JsonSerialize($"鍒嗚В瀹屾瘯锛佹垚鍔熷垎瑙 {successCount} 浠秢qualityName}鐗╁搧锛屽緱鍒颁簡 {totalGained} {General.GameplayEquilibriumConstant.InGameMaterial}锛"); } else { @@ -2420,12 +2420,12 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"此物品不是魔法卡或者使用次数为0:{itemIndex}. {item.Name}"); + return NetworkUtility.JsonSerialize($"姝ょ墿鍝佷笉鏄瓟娉曞崱鎴栬呬娇鐢ㄦ鏁颁负0锛歿itemIndex}. {item.Name}"); } } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的物品:{itemIndex}"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勭墿鍝侊細{itemIndex}"); } } if (mfks.Count >= 3) @@ -2442,16 +2442,16 @@ namespace Oshima.Core.Controllers user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"合成魔法卡包成功!获得魔法卡包:\r\n{item.ToStringInventory(true)}"); + return NetworkUtility.JsonSerialize($"鍚堟垚榄旀硶鍗″寘鎴愬姛锛佽幏寰楅瓟娉曞崱鍖咃細\r\n{item.ToStringInventory(true)}"); } else { - return NetworkUtility.JsonSerialize($"合成魔法卡包失败!"); + return NetworkUtility.JsonSerialize($"鍚堟垚榄旀硶鍗″寘澶辫触锛"); } } else { - return NetworkUtility.JsonSerialize($"选用的魔法卡不足 3 张,请重新选择!"); + return NetworkUtility.JsonSerialize($"閫夌敤鐨勯瓟娉曞崱涓嶈冻 3 寮狅紝璇烽噸鏂伴夋嫨锛"); } } else @@ -2487,14 +2487,14 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } user.Inventory.MainCharacter = character; user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"设置主战角色成功:{character}"); + return NetworkUtility.JsonSerialize($"璁剧疆涓绘垬瑙掕壊鎴愬姛锛歿character}"); } else { @@ -2529,19 +2529,19 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } if (user.Inventory.Training.Count > 0) { - return NetworkUtility.JsonSerialize($"你已经有角色在练级中,请使用【练级结算】指令结束并获取奖励:{user.Inventory.Training.First()}!"); + return NetworkUtility.JsonSerialize($"浣犲凡缁忔湁瑙掕壊鍦ㄧ粌绾т腑锛岃浣跨敤銆愮粌绾х粨绠椼戞寚浠ょ粨鏉熷苟鑾峰彇濂栧姳锛歿user.Inventory.Training.First()}锛"); } user.Inventory.Training[character.Id] = DateTime.Now; user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"角色 [{character}] 开始练级,请过一段时间后进行【练级结算】,时间越长奖励越丰盛!练级时间上限 1440 分钟(24小时),超时将不会再产生收益,请按时领取奖励!"); + return NetworkUtility.JsonSerialize($"瑙掕壊 [{character}] 寮濮嬬粌绾э紝璇疯繃涓娈垫椂闂村悗杩涜銆愮粌绾х粨绠椼戯紝鏃堕棿瓒婇暱濂栧姳瓒婁赴鐩涳紒缁冪骇鏃堕棿涓婇檺 1440 鍒嗛挓锛24灏忔椂锛夛紝瓒呮椂灏嗕笉浼氬啀浜х敓鏀剁泭锛岃鎸夋椂棰嗗彇濂栧姳锛"); } else { @@ -2570,7 +2570,7 @@ namespace Oshima.Core.Controllers if (user.Inventory.Training.Count == 0) { - return NetworkUtility.JsonSerialize($"你目前没有角色在练级中,请使用【开启练级+角色序号】指令进行练级。"); + return NetworkUtility.JsonSerialize($"浣犵洰鍓嶆病鏈夎鑹插湪缁冪骇涓紝璇蜂娇鐢ㄣ愬紑鍚粌绾+瑙掕壊搴忓彿銆戞寚浠よ繘琛岀粌绾с"); } long cid = user.Inventory.Training.Keys.First(); @@ -2591,30 +2591,30 @@ namespace Oshima.Core.Controllers for (int i = 0; i < smallBookCount; i++) { - Item item = new 小经验书(user); + Item item = new 灏忕粡楠屼功(user); user.Inventory.Items.Add(item); } for (int i = 0; i < mediumBookCount; i++) { - Item item = new 中经验书(user); + Item item = new 涓粡楠屼功(user); user.Inventory.Items.Add(item); } for (int i = 0; i < largeBookCount; i++) { - Item item = new 大经验书(user); + Item item = new 澶х粡楠屼功(user); user.Inventory.Items.Add(item); } user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 练级结束,{msg}"); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 缁冪骇缁撴潫锛寋msg}"); } else { - return NetworkUtility.JsonSerialize($"你目前没有角色在练级中,也可能是库存信息获取异常,请稍后再试。"); + return NetworkUtility.JsonSerialize($"浣犵洰鍓嶆病鏈夎鑹插湪缁冪骇涓紝涔熷彲鑳芥槸搴撳瓨淇℃伅鑾峰彇寮傚父锛岃绋嶅悗鍐嶈瘯銆"); } } else @@ -2644,7 +2644,7 @@ namespace Oshima.Core.Controllers if (user.Inventory.Training.Count == 0) { - return NetworkUtility.JsonSerialize($"你目前没有角色在练级中,请使用【开启练级+角色序号】指令进行练级。"); + return NetworkUtility.JsonSerialize($"浣犵洰鍓嶆病鏈夎鑹插湪缁冪骇涓紝璇蜂娇鐢ㄣ愬紑鍚粌绾+瑙掕壊搴忓彿銆戞寚浠よ繘琛岀粌绾с"); } long cid = user.Inventory.Training.Keys.First(); @@ -2656,11 +2656,11 @@ namespace Oshima.Core.Controllers TimeSpan diff = now - time; string msg = FunGameService.GetTrainingInfo(diff, true, out int totalExperience, out int smallBookCount, out int mediumBookCount, out int largeBookCount); - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 正在练级中,{msg}\r\n确认无误后请输入【练级结算】领取奖励!"); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 姝e湪缁冪骇涓紝{msg}\r\n纭鏃犺鍚庤杈撳叆銆愮粌绾х粨绠椼戦鍙栧鍔憋紒"); } else { - return NetworkUtility.JsonSerialize($"你目前没有角色在练级中,也可能是库存信息获取异常,请稍后再试。"); + return NetworkUtility.JsonSerialize($"浣犵洰鍓嶆病鏈夎鑹插湪缁冪骇涓紝涔熷彲鑳芥槸搴撳瓨淇℃伅鑾峰彇寮傚父锛岃绋嶅悗鍐嶈瘯銆"); } } else @@ -2694,7 +2694,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } if (character.Skills.FirstOrDefault(s => s.Name == skillName) is Skill skill) @@ -2703,17 +2703,17 @@ namespace Oshima.Core.Controllers { if (skill.Level + 1 == General.GameplayEquilibriumConstant.MaxSkillLevel) { - return NetworkUtility.JsonSerialize($"此技能【{skill.Name}】已经升至满级!"); + return NetworkUtility.JsonSerialize($"姝ゆ妧鑳姐恵skill.Name}銆戝凡缁忓崌鑷虫弧绾э紒"); } - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 的【{skill.Name}】技能等级:{skill.Level} / {General.GameplayEquilibriumConstant.MaxSkillLevel}" + - $"\r\n下一级所需升级材料:\r\n" + FunGameService.GetSkillLevelUpNeedy(skill.Level + 1)); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 鐨勩恵skill.Name}銆戞妧鑳界瓑绾э細{skill.Level} / {General.GameplayEquilibriumConstant.MaxSkillLevel}" + + $"\r\n涓嬩竴绾ф墍闇鍗囩骇鏉愭枡锛歕r\n" + FunGameService.GetSkillLevelUpNeedy(skill.Level + 1)); } - return NetworkUtility.JsonSerialize($"此技能无法升级!"); + return NetworkUtility.JsonSerialize($"姝ゆ妧鑳芥棤娉曞崌绾э紒"); } else { - return NetworkUtility.JsonSerialize($"此角色没有【{skillName}】技能!"); + return NetworkUtility.JsonSerialize($"姝よ鑹叉病鏈夈恵skillName}銆戞妧鑳斤紒"); } } else @@ -2745,18 +2745,18 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } if (character.Skills.FirstOrDefault(s => s.Name == skillName) is Skill skill) { - string isStudy = skill.Level == 0 ? "学习" : "升级"; + string isStudy = skill.Level == 0 ? "瀛︿範" : "鍗囩骇"; if (skill.SkillType == SkillType.Skill || skill.SkillType == SkillType.SuperSkill) { if (skill.Level == General.GameplayEquilibriumConstant.MaxSkillLevel) { - return NetworkUtility.JsonSerialize($"此技能【{skill.Name}】已经升至满级!"); + return NetworkUtility.JsonSerialize($"姝ゆ妧鑳姐恵skill.Name}銆戝凡缁忓崌鑷虫弧绾э紒"); } if (FunGameService.SkillLevelUpList.TryGetValue(skill.Level + 1, out Dictionary? needy) && needy != null && needy.Count > 0) @@ -2764,18 +2764,18 @@ namespace Oshima.Core.Controllers foreach (string key in needy.Keys) { int needCount = needy[key]; - if (key == "角色等级") + if (key == "瑙掕壊绛夌骇") { if (character.Level < needCount) { - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 等级不足 {needCount} 级,无法{isStudy}此技能!"); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 绛夌骇涓嶈冻 {needCount} 绾э紝鏃犳硶{isStudy}姝ゆ妧鑳斤紒"); } } - else if (key == "角色突破进度") + else if (key == "瑙掕壊绐佺牬杩涘害") { if (character.LevelBreak < needCount) { - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 等级突破进度不足 {needCount} 等阶,无法{isStudy}此技能!"); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 绛夌骇绐佺牬杩涘害涓嶈冻 {needCount} 绛夐樁锛屾棤娉晎isStudy}姝ゆ妧鑳斤紒"); } } else if (key == General.GameplayEquilibriumConstant.InGameCurrency) @@ -2786,7 +2786,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {needCount} 呢,不满足{isStudy}条件!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameCurrency}涓嶈冻 {needCount} 鍛紝涓嶆弧瓒硔isStudy}鏉′欢锛"); } } else if (key == General.GameplayEquilibriumConstant.InGameMaterial) @@ -2797,7 +2797,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {needCount} 呢,不满足{isStudy}条件!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameMaterial}涓嶈冻 {needCount} 鍛紝涓嶆弧瓒硔isStudy}鏉′欢锛"); } } else @@ -2815,7 +2815,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的物品【{key}】数量不足 {needCount} 呢,不满足{isStudy}条件!"); + return NetworkUtility.JsonSerialize($"浣犵殑鐗╁搧銆恵key}銆戞暟閲忎笉瓒 {needCount} 鍛紝涓嶆弧瓒硔isStudy}鏉′欢锛"); } } } @@ -2826,30 +2826,30 @@ namespace Oshima.Core.Controllers user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - needy.Remove("角色等级"); - needy.Remove("角色突破进度"); - string msg = $"{isStudy}技能成功!本次消耗:{string.Join(",", needy.Select(kv => kv.Key + " * " + kv.Value))},成功将【{skill.Name}】技能提升至 {skill.Level} 级!"; + needy.Remove("瑙掕壊绛夌骇"); + needy.Remove("瑙掕壊绐佺牬杩涘害"); + string msg = $"{isStudy}鎶鑳芥垚鍔燂紒鏈娑堣楋細{string.Join("锛", needy.Select(kv => kv.Key + " * " + kv.Value))}锛屾垚鍔熷皢銆恵skill.Name}銆戞妧鑳芥彁鍗囪嚦 {skill.Level} 绾э紒"; if (skill.Level == General.GameplayEquilibriumConstant.MaxSkillLevel) { - msg += $"\r\n此技能已经升至满级,恭喜!"; + msg += $"\r\n姝ゆ妧鑳藉凡缁忓崌鑷虫弧绾э紝鎭枩锛"; } else { - msg += $"\r\n下一级所需升级材料:\r\n" + FunGameService.GetSkillLevelUpNeedy(skill.Level + 1); + msg += $"\r\n涓嬩竴绾ф墍闇鍗囩骇鏉愭枡锛歕r\n" + FunGameService.GetSkillLevelUpNeedy(skill.Level + 1); } return NetworkUtility.JsonSerialize(msg); } - return NetworkUtility.JsonSerialize($"{isStudy}技能失败!角色 [ {character} ] 的【{skill.Name}】技能当前等级:{skill.Level}/{General.GameplayEquilibriumConstant.MaxSkillLevel}" + - $"\r\n下一级所需升级材料:\r\n" + FunGameService.GetSkillLevelUpNeedy(skill.Level + 1)); + return NetworkUtility.JsonSerialize($"{isStudy}鎶鑳藉け璐ワ紒瑙掕壊 [ {character} ] 鐨勩恵skill.Name}銆戞妧鑳藉綋鍓嶇瓑绾э細{skill.Level}/{General.GameplayEquilibriumConstant.MaxSkillLevel}" + + $"\r\n涓嬩竴绾ф墍闇鍗囩骇鏉愭枡锛歕r\n" + FunGameService.GetSkillLevelUpNeedy(skill.Level + 1)); } - return NetworkUtility.JsonSerialize($"此技能无法{isStudy}!"); + return NetworkUtility.JsonSerialize($"姝ゆ妧鑳芥棤娉晎isStudy}锛"); } else { - return NetworkUtility.JsonSerialize($"此角色没有【{skillName}】技能!"); + return NetworkUtility.JsonSerialize($"姝よ鑹叉病鏈夈恵skillName}銆戞妧鑳斤紒"); } } else @@ -2882,17 +2882,17 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } NormalAttack na = character.NormalAttack; if (na.Level + 1 == General.GameplayEquilibriumConstant.MaxNormalAttackLevel) { - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 的【{na.Name}】已经升至满级!"); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 鐨勩恵na.Name}銆戝凡缁忓崌鑷虫弧绾э紒"); } - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 的【{na.Name}】等级:{na.Level} / {General.GameplayEquilibriumConstant.MaxNormalAttackLevel}" + - $"\r\n下一级所需升级材料:\r\n" + FunGameService.GetNormalAttackLevelUpNeedy(na.Level + 1)); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 鐨勩恵na.Name}銆戠瓑绾э細{na.Level} / {General.GameplayEquilibriumConstant.MaxNormalAttackLevel}" + + $"\r\n涓嬩竴绾ф墍闇鍗囩骇鏉愭枡锛歕r\n" + FunGameService.GetNormalAttackLevelUpNeedy(na.Level + 1)); } else { @@ -2922,13 +2922,13 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } NormalAttack na = character.NormalAttack; if (na.Level == General.GameplayEquilibriumConstant.MaxNormalAttackLevel) { - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 的【{na.Name}】已经升至满级!"); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 鐨勩恵na.Name}銆戝凡缁忓崌鑷虫弧绾э紒"); } if (FunGameService.NormalAttackLevelUpList.TryGetValue(na.Level + 1, out Dictionary? needy) && needy != null && needy.Count > 0) @@ -2936,18 +2936,18 @@ namespace Oshima.Core.Controllers foreach (string key in needy.Keys) { int needCount = needy[key]; - if (key == "角色等级") + if (key == "瑙掕壊绛夌骇") { if (character.Level < needCount) { - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 等级不足 {needCount} 级,无法升级此技能!"); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 绛夌骇涓嶈冻 {needCount} 绾э紝鏃犳硶鍗囩骇姝ゆ妧鑳斤紒"); } } - else if (key == "角色突破进度") + else if (key == "瑙掕壊绐佺牬杩涘害") { if (character.LevelBreak < needCount) { - return NetworkUtility.JsonSerialize($"角色 [ {character} ] 等级突破进度不足 {needCount} 等阶,无法升级此技能!"); + return NetworkUtility.JsonSerialize($"瑙掕壊 [ {character} ] 绛夌骇绐佺牬杩涘害涓嶈冻 {needCount} 绛夐樁锛屾棤娉曞崌绾ф鎶鑳斤紒"); } } else if (key == General.GameplayEquilibriumConstant.InGameCurrency) @@ -2958,7 +2958,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {needCount} 呢,不满足升级条件!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameCurrency}涓嶈冻 {needCount} 鍛紝涓嶆弧瓒冲崌绾ф潯浠讹紒"); } } else if (key == General.GameplayEquilibriumConstant.InGameMaterial) @@ -2969,7 +2969,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {needCount} 呢,不满足升级条件!"); + return NetworkUtility.JsonSerialize($"浣犵殑{General.GameplayEquilibriumConstant.InGameMaterial}涓嶈冻 {needCount} 鍛紝涓嶆弧瓒冲崌绾ф潯浠讹紒"); } } else @@ -2987,7 +2987,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"你的物品【{key}】数量不足 {needCount} 呢,不满足升级条件!"); + return NetworkUtility.JsonSerialize($"浣犵殑鐗╁搧銆恵key}銆戞暟閲忎笉瓒 {needCount} 鍛紝涓嶆弧瓒冲崌绾ф潯浠讹紒"); } } } @@ -2998,24 +2998,24 @@ namespace Oshima.Core.Controllers user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - needy.Remove("角色等级"); - needy.Remove("角色突破进度"); - string msg = $"角色 [ {character} ] 升级【{na.Name}】成功!本次消耗:{string.Join(",", needy.Select(kv => kv.Key + " * " + kv.Value))},成功将【{na.Name}】提升至 {na.Level} 级!"; + needy.Remove("瑙掕壊绛夌骇"); + needy.Remove("瑙掕壊绐佺牬杩涘害"); + string msg = $"瑙掕壊 [ {character} ] 鍗囩骇銆恵na.Name}銆戞垚鍔燂紒鏈娑堣楋細{string.Join("锛", needy.Select(kv => kv.Key + " * " + kv.Value))}锛屾垚鍔熷皢銆恵na.Name}銆戞彁鍗囪嚦 {na.Level} 绾э紒"; if (na.Level == General.GameplayEquilibriumConstant.MaxNormalAttackLevel) { - msg += $"\r\n{na.Name}已经升至满级,恭喜!"; + msg += $"\r\n{na.Name}宸茬粡鍗囪嚦婊$骇锛屾伃鍠滐紒"; } else { - msg += $"\r\n下一级所需升级材料:\r\n" + FunGameService.GetNormalAttackLevelUpNeedy(na.Level + 1); + msg += $"\r\n涓嬩竴绾ф墍闇鍗囩骇鏉愭枡锛歕r\n" + FunGameService.GetNormalAttackLevelUpNeedy(na.Level + 1); } return NetworkUtility.JsonSerialize(msg); } - return NetworkUtility.JsonSerialize($"升级{na.Name}失败!角色 [ {character} ] 的【{na.Name}】当前等级:{na.Level}/{General.GameplayEquilibriumConstant.MaxNormalAttackLevel}" + - $"\r\n下一级所需升级材料:\r\n" + FunGameService.GetSkillLevelUpNeedy(na.Level + 1)); + return NetworkUtility.JsonSerialize($"鍗囩骇{na.Name}澶辫触锛佽鑹 [ {character} ] 鐨勩恵na.Name}銆戝綋鍓嶇瓑绾э細{na.Level}/{General.GameplayEquilibriumConstant.MaxNormalAttackLevel}" + + $"\r\n涓嬩竴绾ф墍闇鍗囩骇鏉愭枡锛歕r\n" + FunGameService.GetSkillLevelUpNeedy(na.Level + 1)); } else { @@ -3040,12 +3040,12 @@ namespace Oshima.Core.Controllers } else { - bosses.Add($"找不到指定编号的 Boss!"); + bosses.Add($"鎵句笉鍒版寚瀹氱紪鍙风殑 Boss锛"); } } else if (FunGameService.Bosses.Count > 0) { - bosses.Add($"Boss 列表:"); + bosses.Add($"Boss 鍒楄〃锛"); foreach (int i in FunGameService.Bosses.Keys) { Character boss = FunGameService.Bosses[i]; @@ -3054,7 +3054,7 @@ namespace Oshima.Core.Controllers } else { - bosses.Add($"现在没有任何 Boss,请等待刷新~"); + bosses.Add($"鐜板湪娌℃湁浠讳綍 Boss锛岃绛夊緟鍒锋柊~"); } return bosses; } @@ -3077,7 +3077,7 @@ namespace Oshima.Core.Controllers { if (user.Inventory.MainCharacter.HP < user.Inventory.MainCharacter.MaxHP * 0.1) { - return [$"主战角色重伤未愈,当前生命值低于 10%,请先等待生命值自动回复或设置其他主战角色!"]; + return [$"涓绘垬瑙掕壊閲嶄激鏈剤锛屽綋鍓嶇敓鍛藉间綆浜 10%锛岃鍏堢瓑寰呯敓鍛藉艰嚜鍔ㄥ洖澶嶆垨璁剧疆鍏朵粬涓绘垬瑙掕壊锛"]; } Character boss2 = CharacterBuilder.Build(boss, false, true, null, FunGameService.AllItems, FunGameService.AllSkills, false); @@ -3088,14 +3088,14 @@ namespace Oshima.Core.Controllers FunGameService.Bosses.Remove(bossIndex); double gained = boss.Level; user.Inventory.Materials += gained; - msgs.Add($"恭喜你击败了 Boss,获得 {gained} 材料奖励!"); + msgs.Add($"鎭枩浣犲嚮璐ヤ簡 Boss锛岃幏寰 {gained} 鏉愭枡濂栧姳锛"); } else { boss.HP = boss2.HP; boss.MP = boss2.MP; boss.EP = boss2.EP; - msgs.Add($"挑战 Boss 失败,请稍后再来!"); + msgs.Add($"鎸戞垬 Boss 澶辫触锛岃绋嶅悗鍐嶆潵锛"); } user.LastTime = DateTime.Now; pc.Add("user", user); @@ -3105,7 +3105,7 @@ namespace Oshima.Core.Controllers } else { - return [$"找不到指定编号的 Boss!"]; + return [$"鎵句笉鍒版寚瀹氱紪鍙风殑 Boss锛"]; } } else @@ -3136,25 +3136,25 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } if (user.Inventory.Squad.Count >= 4) { - return NetworkUtility.JsonSerialize($"小队人数已满 4 人,无法继续添加角色!当前小队角色如下:\r\n" + + return NetworkUtility.JsonSerialize($"灏忛槦浜烘暟宸叉弧 4 浜猴紝鏃犳硶缁х画娣诲姞瑙掕壊锛佸綋鍓嶅皬闃熻鑹插涓嬶細\r\n" + string.Join("\r\n", user.Inventory.Characters.Where(c => user.Inventory.Squad.Contains(c.Id)))); } if (user.Inventory.Squad.Contains(character.Id)) { - return NetworkUtility.JsonSerialize($"此角色已经在小队中了!"); + return NetworkUtility.JsonSerialize($"姝よ鑹插凡缁忓湪灏忛槦涓簡锛"); } user.Inventory.Squad.Add(character.Id); user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"添加小队角色成功:{character}\r\n当前小队角色如下:\r\n" + + return NetworkUtility.JsonSerialize($"娣诲姞灏忛槦瑙掕壊鎴愬姛锛歿character}\r\n褰撳墠灏忛槦瑙掕壊濡備笅锛歕r\n" + string.Join("\r\n", user.Inventory.Characters.Where(c => user.Inventory.Squad.Contains(c.Id)))); } else @@ -3190,19 +3190,19 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!"); + return NetworkUtility.JsonSerialize($"娌℃湁鎵惧埌涓庤繖涓簭鍙风浉瀵瑰簲鐨勮鑹诧紒"); } if (!user.Inventory.Squad.Contains(character.Id)) { - return NetworkUtility.JsonSerialize($"此角色不在小队中!"); + return NetworkUtility.JsonSerialize($"姝よ鑹蹭笉鍦ㄥ皬闃熶腑锛"); } user.Inventory.Squad.Remove(character.Id); user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"移除小队角色成功:{character}\r\n当前小队角色如下:\r\n" + + return NetworkUtility.JsonSerialize($"绉婚櫎灏忛槦瑙掕壊鎴愬姛锛歿character}\r\n褰撳墠灏忛槦瑙掕壊濡備笅锛歕r\n" + string.Join("\r\n", user.Inventory.Characters.Where(c => user.Inventory.Squad.Contains(c.Id)))); } else @@ -3241,7 +3241,7 @@ namespace Oshima.Core.Controllers } else { - return NetworkUtility.JsonSerialize($"设置失败:没有找到与序号 {characterIndex} 相对应的角色!"); + return NetworkUtility.JsonSerialize($"璁剧疆澶辫触锛氭病鏈夋壘鍒颁笌搴忓彿 {characterIndex} 鐩稿搴旂殑瑙掕壊锛"); } user.Inventory.Squad.Add(character.Id); } @@ -3249,7 +3249,7 @@ namespace Oshima.Core.Controllers user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"设置小队成员成功!当前小队角色如下:\r\n" + + return NetworkUtility.JsonSerialize($"璁剧疆灏忛槦鎴愬憳鎴愬姛锛佸綋鍓嶅皬闃熻鑹插涓嬶細\r\n" + string.Join("\r\n", user.Inventory.Characters.Where(c => user.Inventory.Squad.Contains(c.Id)))); } else @@ -3282,7 +3282,7 @@ namespace Oshima.Core.Controllers user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); - return NetworkUtility.JsonSerialize($"清空小队成员成功!"); + return NetworkUtility.JsonSerialize($"娓呯┖灏忛槦鎴愬憳鎴愬姛锛"); } else { @@ -3308,7 +3308,7 @@ namespace Oshima.Core.Controllers if (pc.Count > 0) { User user = FunGameService.GetUser(pc); - return NetworkUtility.JsonSerialize($"你的当前小队角色如下:\r\n" + + return NetworkUtility.JsonSerialize($"浣犵殑褰撳墠灏忛槦瑙掕壊濡備笅锛歕r\n" + string.Join("\r\n", user.Inventory.Characters.Where(c => user.Inventory.Squad.Contains(c.Id)))); } else @@ -3342,13 +3342,13 @@ namespace Oshima.Core.Controllers if (squad.All(c => c.HP < c.MaxHP * 0.1)) { - return [$"小队角色均重伤未愈,当前生命值低于 10%,请先等待生命值自动回复或重组小队!\r\n" + - "当前小队角色如下:\r\n" + + return [$"灏忛槦瑙掕壊鍧囬噸浼ゆ湭鎰堬紝褰撳墠鐢熷懡鍊间綆浜 10%锛岃鍏堢瓑寰呯敓鍛藉艰嚜鍔ㄥ洖澶嶆垨閲嶇粍灏忛槦锛乗r\n" + + "褰撳墠灏忛槦瑙掕壊濡備笅锛歕r\n" + string.Join("\r\n", user.Inventory.Characters.Where(c => user.Inventory.Squad.Contains(c.Id)))]; } Character boss2 = CharacterBuilder.Build(boss, false, true, null, FunGameService.AllItems, FunGameService.AllSkills, false); - Team team1 = new($"{user.Username}的小队", squad); + Team team1 = new($"{user.Username}鐨勫皬闃", squad); Team team2 = new($"Boss", [boss2]); List msgs = FunGameActionQueue.NewAndStartTeamGame([team1, team2], showAllRound: showAllRound); @@ -3357,14 +3357,14 @@ namespace Oshima.Core.Controllers FunGameService.Bosses.Remove(bossIndex); double gained = boss.Level; user.Inventory.Materials += gained; - msgs.Add($"恭喜你击败了 Boss,获得 {gained} 材料奖励!"); + msgs.Add($"鎭枩浣犲嚮璐ヤ簡 Boss锛岃幏寰 {gained} 鏉愭枡濂栧姳锛"); } else { boss.HP = boss2.HP; boss.MP = boss2.MP; boss.EP = boss2.EP; - msgs.Add($"挑战 Boss 失败,请稍后再来!"); + msgs.Add($"鎸戞垬 Boss 澶辫触锛岃绋嶅悗鍐嶆潵锛"); } user.LastTime = DateTime.Now; pc.Add("user", user); @@ -3374,7 +3374,7 @@ namespace Oshima.Core.Controllers } else { - return [$"找不到指定编号的 Boss!"]; + return [$"鎵句笉鍒版寚瀹氱紪鍙风殑 Boss锛"]; } } else @@ -3395,10 +3395,10 @@ namespace Oshima.Core.Controllers { User user = FunGameService.GetUser(pc); - PluginConfig pc2 = new("quests", userid.ToString()); - pc2.LoadConfig(); - string msg = FunGameService.CheckQuestList(pc2); - pc2.SaveConfig(); + EntityModuleConfig quests = new("quests", userid.ToString()); + quests.LoadConfig(); + string msg = FunGameService.CheckQuestList(quests); + quests.SaveConfig(); user.LastTime = DateTime.Now; pc.Add("user", user); @@ -3426,48 +3426,36 @@ namespace Oshima.Core.Controllers User user = FunGameService.GetUser(pc); string msg = ""; - PluginConfig pc2 = new("quests", userid.ToString()); - pc2.LoadConfig(); - if (pc2.Count > 0) + EntityModuleConfig quests = new("quests", userid.ToString()); + quests.LoadConfig(); + if (quests.Count > 0) { - List quests = pc2.Get>("list") ?? []; - if (quests.Count > 0) + if (quests.Values.FirstOrDefault(q => q.Status == 1) is Quest quest) { - if (quests.FirstOrDefault(q => q.Status == 1) is Quest quest) + msg = $"浣犳鍦ㄨ繘琛屼换鍔°恵quest.Name}銆戯紝鏃犳硶寮濮嬫柊浠诲姟锛乗r\n{quest}"; + } + else if (quests.Values.FirstOrDefault(q => q.Id == questid) is Quest quest2) + { + if (quest2.Status != 0) { - msg = $"你正在进行任务【{quest.Name}】,无法开始新任务!\r\n{quest}"; - } - else if (quests.FirstOrDefault(q => q.Id == questid) is Quest quest2) - { - if (quest2.Status != 0) - { - msg = $"这个任务正在进行中,或已经完成,不能重复做任务!"; - } - else - { - quest2.Status = 1; - pc2.Add("list", quests); - pc2.SaveConfig(); - msg = $"开始任务【{quest2.Name}】成功!\r\n任务信息如下:{quest2}\r\n预计完成时间:{DateTime.Now.AddMinutes(quest2.EstimatedMinutes).ToString(General.GeneralDateTimeFormatChinese)}"; - Milimoe.FunGame.Core.Api.Utility.TaskScheduler.Shared.AddTask($"{userid}-{quest2.Name}", TimeSpan.FromMinutes(quest2.EstimatedMinutes), () => - { - quest2.Status = 2; - }); - } + msg = $"杩欎釜浠诲姟姝e湪杩涜涓紝鎴栧凡缁忓畬鎴愶紝涓嶈兘閲嶅鍋氫换鍔★紒"; } else { - msg = $"没有找到序号为 {questid} 的任务!"; + quest2.StartTime = DateTime.Now; + quest2.Status = 1; + quests.SaveConfig(); + msg = $"寮濮嬩换鍔°恵quest2.Name}銆戞垚鍔燂紒\r\n浠诲姟淇℃伅濡備笅锛歿quest2}\r\n棰勮瀹屾垚鏃堕棿锛歿DateTime.Now.AddMinutes(quest2.EstimatedMinutes).ToString(General.GeneralDateTimeFormatChinese)}"; } } else { - msg = "任务列表为空,请等待刷新!"; + msg = $"娌℃湁鎵惧埌搴忓彿涓 {questid} 鐨勪换鍔★紒"; } } else { - msg = "任务列表为空,请等待刷新!"; + msg = "浠诲姟鍒楄〃涓虹┖锛岃绛夊緟鍒锋柊锛"; } user.LastTime = DateTime.Now; @@ -3489,9 +3477,9 @@ namespace Oshima.Core.Controllers { FunGameService.Reload(); FunGameSimulation.InitFunGameSimulation(); - return NetworkUtility.JsonSerialize("FunGame已重新加载。"); + return NetworkUtility.JsonSerialize("FunGame宸查噸鏂板姞杞姐"); } - return NetworkUtility.JsonSerialize("提供的参数不正确。"); + return NetworkUtility.JsonSerialize("鎻愪緵鐨勫弬鏁颁笉姝g‘銆"); } [HttpPost("post")] @@ -3503,7 +3491,7 @@ namespace Oshima.Core.Controllers [HttpPost("bind")] public string Post([FromBody] BindQQ b) { - return NetworkUtility.JsonSerialize("绑定失败,请稍后再试。"); + return NetworkUtility.JsonSerialize("缁戝畾澶辫触锛岃绋嶅悗鍐嶈瘯銆"); } } } diff --git a/OshimaCore/OshimaWebAPI.cs b/OshimaCore/OshimaWebAPI.cs index ff89189..f3020a0 100644 --- a/OshimaCore/OshimaWebAPI.cs +++ b/OshimaCore/OshimaWebAPI.cs @@ -1,4 +1,4 @@ -锘縰sing Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Common.Addon; using Oshima.Core.Configs; @@ -92,10 +92,10 @@ namespace Oshima.Core.WebAPI foreach (string filePath in filePaths) { string fileName = Path.GetFileNameWithoutExtension(filePath); - PluginConfig pc = new("quests", fileName); - pc.Clear(); - FunGameService.CheckQuestList(pc); - pc.SaveConfig(); + EntityModuleConfig quests = new("quests", fileName); + quests.Clear(); + FunGameService.CheckQuestList(quests); + quests.SaveConfig(); } Controller.WriteLine("鍒锋柊姣忔棩浠诲姟"); } diff --git a/OshimaCore/Utils/FunGameService.cs b/OshimaCore/Utils/FunGameService.cs index 3cf8242..2e115ed 100644 --- a/OshimaCore/Utils/FunGameService.cs +++ b/OshimaCore/Utils/FunGameService.cs @@ -1,4 +1,4 @@ -锘縰sing System.Text; +using System.Text; using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; @@ -554,39 +554,43 @@ namespace Oshima.Core.Utils } // 浠诲姟缁撶畻 - PluginConfig pc2 = new("quests", user.Id.ToString()); - pc2.LoadConfig(); - if (pc2.Count > 0) + EntityModuleConfig quests = new("quests", user.Id.ToString()); + quests.LoadConfig(); + if (quests.Count > 0) { - List quests = pc2.Get>("list") ?? []; - if (quests.Count > 0) + IEnumerable workingQuests = quests.Values.Where(q => q.Status == 1); + foreach (Quest quest in workingQuests) { - IEnumerable finishQuests = quests.Where(q => q.Status == 2); - foreach (Quest quest in finishQuests) + if (quest.StartTime.HasValue && quest.StartTime.Value.AddMinutes(quest.EstimatedMinutes) <= DateTime.Now) { - quest.Status = 3; - foreach (string name in quest.Awards.Keys) + quest.Status = 2; + } + } + IEnumerable finishQuests = quests.Values.Where(q => q.Status == 2); + foreach (Quest quest in finishQuests) + { + quest.Status = 3; + quest.SettleTime = DateTime.Now; + foreach (string name in quest.Awards.Keys) + { + if (name == General.GameplayEquilibriumConstant.InGameCurrency) { - if (name == General.GameplayEquilibriumConstant.InGameCurrency) - { - user.Inventory.Credits += quest.Awards[name]; - } - else if (name == General.GameplayEquilibriumConstant.InGameMaterial) - { - user.Inventory.Credits += quest.Awards[name]; - } - else if (AllItems.FirstOrDefault(i => i.Name == name) is Item item) - { - Item newItem = item.Copy(); - newItem.User = user; - SetSellAndTradeTime(newItem); - user.Inventory.Items.Add(newItem); - } + user.Inventory.Credits += quest.Awards[name]; + } + else if (name == General.GameplayEquilibriumConstant.InGameMaterial) + { + user.Inventory.Materials += quest.Awards[name]; + } + else if (AllItems.FirstOrDefault(i => i.Name == name) is Item item) + { + Item newItem = item.Copy(); + newItem.User = user; + SetSellAndTradeTime(newItem); + user.Inventory.Items.Add(newItem); } } - pc2.Add("list", quests); - pc2.SaveConfig(); } + quests.SaveConfig(); } return user; @@ -1777,17 +1781,17 @@ namespace Oshima.Core.Utils } } - public static string CheckQuestList(PluginConfig pc) + public static string CheckQuestList(EntityModuleConfig quests) { - if (pc.Count == 0) + if (quests.Count == 0) { - // 鐢熸垚浠诲姟锛屼换鍔″悕鍜屽鍔辩墿鍝佺殑鏁扮粍 - List quests = []; + // 鐢熸垚浠诲姟 for (int i = 0; i < 6; i++) { + int minutes = Random.Shared.Next(10, 41); Dictionary items = []; - items[General.GameplayEquilibriumConstant.InGameCurrency] = 1500; - items[General.GameplayEquilibriumConstant.InGameMaterial] = 5; + items[General.GameplayEquilibriumConstant.InGameCurrency] = minutes * 50; + items[General.GameplayEquilibriumConstant.InGameMaterial] = minutes / 10 * 2; int index = Random.Shared.Next(AllItems.Count); Item item = AllItems[index]; items.Add(item.Name, 1); @@ -1804,20 +1808,18 @@ namespace Oshima.Core.Utils string name = QuestList.Keys.OrderBy(o => Random.Shared.Next()).First(); Quest quest = new() { - Id = quests.Count > 0 ? quests.Max(q => q.Id) + 1 : 1, + Id = quests.Count > 0 ? quests.Values.Max(q => q.Id) + 1 : 1, Name = name, Description = QuestList[name], - EstimatedMinutes = Random.Shared.Next(10, 41), + EstimatedMinutes = minutes, Awards = items }; - quests.Add(quest); + quests.Add(quest.GetIdName(), quest); } - pc.Add("list", quests); return string.Join("\r\n", quests); } else { - List quests = pc.Get>("list") ?? []; if (quests.Count > 0) { return string.Join("\r\n", quests);