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