46 lines
1.7 KiB
C#
46 lines
1.7 KiB
C#
using GeometryTD.Definition;
|
|
|
|
namespace GeometryTD.UI
|
|
{
|
|
public static class RepoParticipantAssignDialogUtility
|
|
{
|
|
public static DialogFormRawData BuildDialog(
|
|
ParticipantTowerAssignResult result,
|
|
int maxParticipantCount)
|
|
{
|
|
return new DialogFormRawData
|
|
{
|
|
Mode = 1,
|
|
Title = "无法加入参战区",
|
|
Message = BuildMessage(result, maxParticipantCount),
|
|
PauseGame = false,
|
|
ConfirmText = "知道了"
|
|
};
|
|
}
|
|
|
|
private static string BuildMessage(
|
|
ParticipantTowerAssignResult result,
|
|
int maxParticipantCount)
|
|
{
|
|
if (result == null)
|
|
{
|
|
return "当前无法加入参战区,请稍后重试。";
|
|
}
|
|
|
|
switch (result.FailureReason)
|
|
{
|
|
case ParticipantTowerAssignFailureReason.TowerMissing:
|
|
return $"塔 #{result.TowerInstanceId} 已不存在,无法加入参战区。";
|
|
case ParticipantTowerAssignFailureReason.InvalidTower:
|
|
return $"塔 #{result.TowerInstanceId} {CombatParticipantTowerValidationText.GetFailureReasonMessage(result.ValidationFailureReason)}";
|
|
case ParticipantTowerAssignFailureReason.AlreadyAssigned:
|
|
return $"塔 #{result.TowerInstanceId} 已在参战区中。";
|
|
case ParticipantTowerAssignFailureReason.ParticipantAreaFull:
|
|
return $"参战区已满,最多只能放入 {maxParticipantCount} 座塔。";
|
|
default:
|
|
return "当前无法加入参战区,请稍后重试。";
|
|
}
|
|
}
|
|
}
|
|
}
|