From 208fc77b7f9dfb9e39e6b02b0d236cf9a99c2440 Mon Sep 17 00:00:00 2001 From: Yu Sung <hwchon1234@gmail.com> Date: Tue, 26 Dec 2023 15:56:04 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A3=B0=EB=A0=9B=20=EC=B5=9C=EB=8C=80=20?= =?UTF-8?q?=EA=B0=9C=EC=88=98=20=EC=88=98=EC=A0=95=20AS-IS=20:=20=EC=B5=9C?= =?UTF-8?q?=EB=8C=80=206=EA=B0=9C=20TO-BE=20:=20=EC=B5=9C=EB=8C=80=2010?= =?UTF-8?q?=EA=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 룰렛 확률 수정 AS-IS : 소수점 없음 TO-BE : 소수점 2자리 --- SodaLive/Sources/FortuneWheel/FortuneWheelModel.swift | 6 +++++- SodaLive/Sources/Live/Room/LiveRoomViewModel.swift | 3 ++- .../Sources/Live/Room/Routlette/Config/RouletteOption.swift | 2 +- .../Live/Room/Routlette/Config/RouletteSettingsView.swift | 2 +- .../Room/Routlette/Config/RouletteSettingsViewModel.swift | 5 +++-- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/SodaLive/Sources/FortuneWheel/FortuneWheelModel.swift b/SodaLive/Sources/FortuneWheel/FortuneWheelModel.swift index 4c2c615..4139172 100644 --- a/SodaLive/Sources/FortuneWheel/FortuneWheelModel.swift +++ b/SodaLive/Sources/FortuneWheel/FortuneWheelModel.swift @@ -39,7 +39,11 @@ struct FortuneWheelModel { Color(hex: "#E6AAC1"), Color(hex: "#8FCEEA"), Color(hex: "#CD5880"), - Color(hex: "#C2C85E") + Color(hex: "#C2C85E"), + Color(hex: "#000000"), + Color(hex: "#888888"), + Color(hex: "#FFFFFF"), + Color(hex: "#000080"), ] self.pointerColor = pointerColor self.strokeWidth = strokeWidth diff --git a/SodaLive/Sources/Live/Room/LiveRoomViewModel.swift b/SodaLive/Sources/Live/Room/LiveRoomViewModel.swift index a92d05f..677cc30 100644 --- a/SodaLive/Sources/Live/Room/LiveRoomViewModel.swift +++ b/SodaLive/Sources/Live/Room/LiveRoomViewModel.swift @@ -1474,7 +1474,8 @@ final class LiveRoomViewModel: NSObject, ObservableObject { private func calculatePercentages(options: [RouletteItem]) -> [RoulettePreviewItem] { let totalWeight = options.reduce(0) { $0 + $1.weight } let updatedOptions = options.map { option in - RoulettePreviewItem(title: option.title, percent: "\(Int(Float(option.weight) / Float(totalWeight) * Float(100)))%") + let percent = floor(Double(option.weight) / Double(totalWeight) * 10000) / 100 + return RoulettePreviewItem(title: option.title, percent: "\(String(format: "%.2f", percent))%") } return updatedOptions diff --git a/SodaLive/Sources/Live/Room/Routlette/Config/RouletteOption.swift b/SodaLive/Sources/Live/Room/Routlette/Config/RouletteOption.swift index 6ddeb49..e238003 100644 --- a/SodaLive/Sources/Live/Room/Routlette/Config/RouletteOption.swift +++ b/SodaLive/Sources/Live/Room/Routlette/Config/RouletteOption.swift @@ -10,7 +10,7 @@ import SwiftUI class RouletteOption: ObservableObject { var title: String var weight: Int - var percentage: Int = 50 + var percentage: String = "50.00" init(title: String, weight: Int) { self.title = title diff --git a/SodaLive/Sources/Live/Room/Routlette/Config/RouletteSettingsView.swift b/SodaLive/Sources/Live/Room/Routlette/Config/RouletteSettingsView.swift index 1be5d55..ece0466 100644 --- a/SodaLive/Sources/Live/Room/Routlette/Config/RouletteSettingsView.swift +++ b/SodaLive/Sources/Live/Room/Routlette/Config/RouletteSettingsView.swift @@ -80,7 +80,7 @@ struct RouletteSettingsView: View { .foregroundColor(Color(hex: "eeeeee")) HStack(spacing: 0) { - Text("※ 룰렛 옵션은 최소 2개,\n최대 6개까지 설정할 수 있습니다.") + Text("※ 룰렛 옵션은 최소 2개,\n최대 10개까지 설정할 수 있습니다.") .font(.custom(Font.medium.rawValue, size: 13.3)) .foregroundColor(Color(hex: "ff5c49")) diff --git a/SodaLive/Sources/Live/Room/Routlette/Config/RouletteSettingsViewModel.swift b/SodaLive/Sources/Live/Room/Routlette/Config/RouletteSettingsViewModel.swift index 8b054b3..be20f16 100644 --- a/SodaLive/Sources/Live/Room/Routlette/Config/RouletteSettingsViewModel.swift +++ b/SodaLive/Sources/Live/Room/Routlette/Config/RouletteSettingsViewModel.swift @@ -49,7 +49,7 @@ final class RouletteSettingsViewModel: ObservableObject { } func addOption() { - if (options.count >= 6) { + if (options.count >= 10) { return } options.append(RouletteOption(title: "", weight: 1)) @@ -72,7 +72,8 @@ final class RouletteSettingsViewModel: ObservableObject { guard totalWeight > 0 else { return } for i in 0..<options.count { - options[i].percentage = Int(Double(options[i].weight) / Double(totalWeight) * 100) + let percent = floor(Double(options[i].weight) / Double(totalWeight) * 10000) / 100 + options[i].percentage = String(format: "%.2f", percent) } removeAllAndAddOptions(options: options)