geometry-tower-defense/Assets/GameMain/Scripts/UI/Game/RepoParticipantAssignDialog...

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 "当前无法加入参战区,请稍后重试。";
}
}
}
}