Files
diehammer/DieHammer/Views/Elements/RollSummaryView.swift
T

71 lines
2.4 KiB
Swift

//
// RollSummaryView.swift
// Bunch O' Dice
//
import SwiftUI
struct RollSummaryView: View {
@EnvironmentObject var current: Roll
@State private var showFillView = false
var body: some View {
VStack{
HStack(spacing: 12) {
VStack {
Text("Dice Pool")
.font(.caption)
Button(action: { showFillView.toggle() }) {
VStack(spacing: 4) {
Text(String(current.total))
.font(.system(size: 28, weight: .black))
}
.frame(maxWidth: .infinity)
.padding(.vertical, 12)
.clipShape(Circle())
.foregroundColor(.black)
.glassEffect(.clear.tint(Color.blue.opacity(0.7)))
}
}
.sheet(isPresented: $showFillView,
onDismiss: { current.resetPool() }) {
VStack {
AddToPool()
Button("Accept", action: { showFillView.toggle() })
.padding(20)
}
}
VStack {
Text(current.state == .armour ? "Model Damage" : current.state.text() + "s")
.font(.caption)
Button(action: current.incrementState) {
VStack(spacing: 4) {
Text(String(current.result))
.font(.system(size: 28, weight: .black))
if current.state == .armour && current.mortalWoundsTotal > 0 {
Text("mortal: \(current.mortalWoundsTotal)")
.font(.caption)
}
}
.frame(maxWidth: .infinity)
.padding(.vertical, 12)
.clipShape(Circle())
.foregroundColor(.black)
.glassEffect(.clear.tint(Color.red.opacity(0.7)))
}
}
}
DiePoolView()
}
.padding()
.frame(maxWidth: .infinity)
.background(Color.gray)
}
}
#Preview {
RollSummaryView()
.environmentObject(Roll())
}