From 7fc593f15666a8fe255dd19bbf721a4b1a569585 Mon Sep 17 00:00:00 2001
From: neon443 <69979447+neon443@users.noreply.github.com>
Date: Sun, 29 Dec 2024 11:20:47 +0000
Subject: [PATCH] broke multibuy need to fix - on a better note i redid the ui
- a lot less cluttered
---
.../xcschemes/CookieSwifter.xcscheme | 102 ++++++
.../CookieSwifter/AchievementsView.swift | 59 ++++
CookieSwifter/CookieSwifter/ContentView.swift | 298 +++++++++---------
CookieSwifter/CookieSwifter/CookieGame.swift | 3 +-
.../CookieSwifter/CookieSwifterApp.swift | 2 +-
wak.toml | 15 -
6 files changed, 313 insertions(+), 166 deletions(-)
create mode 100644 CookieSwifter/CookieSwifter.xcodeproj/xcshareddata/xcschemes/CookieSwifter.xcscheme
create mode 100644 CookieSwifter/CookieSwifter/AchievementsView.swift
delete mode 100644 wak.toml
diff --git a/CookieSwifter/CookieSwifter.xcodeproj/xcshareddata/xcschemes/CookieSwifter.xcscheme b/CookieSwifter/CookieSwifter.xcodeproj/xcshareddata/xcschemes/CookieSwifter.xcscheme
new file mode 100644
index 0000000..36acad4
--- /dev/null
+++ b/CookieSwifter/CookieSwifter.xcodeproj/xcshareddata/xcschemes/CookieSwifter.xcscheme
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CookieSwifter/CookieSwifter/AchievementsView.swift b/CookieSwifter/CookieSwifter/AchievementsView.swift
new file mode 100644
index 0000000..88d1aab
--- /dev/null
+++ b/CookieSwifter/CookieSwifter/AchievementsView.swift
@@ -0,0 +1,59 @@
+//
+// AchievementsView.swift
+// CookieSwifter
+//
+// Created by Nihaal Sharma on 28/12/2024.
+//
+
+import SwiftUI
+
+struct AchievementButton: View {
+ @ObservedObject var game: CookieGame
+ @Binding var showAchievements: Bool
+
+ var body: some View {
+ VStack(spacing: 10) {
+ Button(action: {
+ showAchievements.toggle()
+ }) {
+ Text("\(game.achievements.count) Achievements")
+ .font(.title3)
+ .padding(5)
+ .background(Color.purple.opacity(0.2))
+ .cornerRadius(10)
+ }
+ .sheet(isPresented: $showAchievements) {
+ AchievementsView(achievements: game.achievements)
+ }
+ }
+ }
+}
+struct AchievementsView: View {
+ let achievements: [Achievement]
+
+ var body: some View {
+ NavigationView {
+ List(achievements, id: \.title) { achievement in
+ VStack(alignment: .leading) {
+ Text(achievement.title)
+ .font(.headline)
+ Text(achievement.description)
+ .font(.subheadline)
+ .foregroundColor(.gray)
+ }
+ }
+ .navigationTitle("Achievements")
+ }
+ }
+}
+
+#Preview {
+ AchievementsView(
+ achievements: [
+ Achievement(
+ title: "Cookie Beginner",
+ description: "Earn 100 cookies."
+ )
+ ]
+ )
+}
diff --git a/CookieSwifter/CookieSwifter/ContentView.swift b/CookieSwifter/CookieSwifter/ContentView.swift
index 0f85b54..43273c4 100644
--- a/CookieSwifter/CookieSwifter/ContentView.swift
+++ b/CookieSwifter/CookieSwifter/ContentView.swift
@@ -8,7 +8,7 @@
import SwiftUI
struct ContentView: View {
- @ObservedObject var gameManager: CookieGame
+ @ObservedObject var game: CookieGame
@State private var selectedSave: String? = nil
@State private var showSavedGames: Bool = false
@State private var buyQuantity: Int = 1
@@ -16,10 +16,7 @@ struct ContentView: View {
@State var showAchievemetns: Bool = false
var body: some View {
- VStack(spacing: 10) {
- Text("\(gameManager.cookies)")
- .font(.largeTitle)
- .fontWeight(.bold)
+ VStack {
HStack {
Text("Game Name")
.font(.caption)
@@ -27,75 +24,108 @@ struct ContentView: View {
TextField("", text: $gameName)
.textFieldStyle(RoundedBorderTextFieldStyle())
}
- .padding(.horizontal)
-
- Picker("Buy", selection: $buyQuantity) {
- ForEach([1, 10, 100], id: \.self) { option in
- Text("\(option)").tag(option)
- }
- }
- .pickerStyle(SegmentedPickerStyle())
- .padding(.horizontal)
- .padding(.top)
- ItemsListView(gameManager: gameManager, buyQuantity: $buyQuantity)
- UpgradesListView(gameManager: gameManager)
-
- Spacer()
HStack {
- VStack {
- Button("Save Game") {
- let saveDate = "Saved \(Date().formatted())"
- gameManager.saveGame(name: gameName+saveDate)
- }
- .padding()
- .background(Color.green)
- .foregroundColor(.white)
- .cornerRadius(10)
-
- Button("Load Game") {
- showSavedGames = true
- }
- .padding()
- .background(Color.blue)
- .foregroundColor(.white)
- .cornerRadius(10)
- }
- .sheet(isPresented: $showSavedGames) {
- SavedGamesListView(gameManager: gameManager, selectedSave: $selectedSave)
- }
- .onChange(of: selectedSave) { newValue in
- if let saveName = newValue {
- gameManager.loadGame(named: saveName)
- }
- }
-
+ Text("\(game.cookies)")
+ .font(.largeTitle)
+ .fontWeight(.bold)
Spacer()
-
VStack {
- CookieTapView(gameManager: gameManager)
- Text("CPS: \(gameManager.cps)")
+ CookieTapView(game: game)
+ Text("CPS: \(game.cps)")
.font(.headline)
}
- Spacer()
-
- AchievementButton(
- gameManager: gameManager,
- showAchievements: $showAchievemetns
- )
}
- .padding(.horizontal)
+ TabView {
+ Tab {
+ Picker("Buy", selection: $buyQuantity) {
+ ForEach([1, 10, 100], id: \.self) { option in
+ Text("\(option)").tag(option)
+ }
+ }
+ .pickerStyle(SegmentedPickerStyle())
+ .padding(.top)
+ ScrollView(.vertical) {
+ ItemsListView(game: game, buyQuantity: $buyQuantity)
+ }
+// Spacer()
+ } label: {
+ Image(systemName: "star.fill")
+ Text("Items")
+ }
+
+ Tab {
+ ScrollView(.vertical) {
+ UpgradesListView(game: game)
+ }
+ } label: {
+ Image(systemName: "wand.and.stars")
+ Text("Upgrades")
+ }
+
+ Tab {
+ HStack {
+ VStack {
+ Button("Save Game") {
+ let saveDate = "Saved \(Date().formatted())"
+ game.saveGame(name: gameName+saveDate)
+ }
+ .padding()
+ .background(Color.green)
+ .foregroundColor(.white)
+ .cornerRadius(10)
+
+ Button("Load Game") {
+ showSavedGames = true
+ }
+ .padding()
+ .background(Color.blue)
+ .foregroundColor(.white)
+ .cornerRadius(10)
+ }
+ .sheet(isPresented: $showSavedGames) {
+ SavedGamesListView(game: game, selectedSave: $selectedSave)
+ }
+ .onChange(of: selectedSave) { newValue in
+ if let saveName = newValue {
+ game.loadGame(named: saveName)
+ }
+ }
+
+ Spacer()
+
+ VStack {
+ CookieTapView(game: game)
+ Text("CPS: \(game.cps)")
+ .font(.headline)
+ }
+ }
+
+ } label: {
+ Image(systemName: "gear")
+ Text("Settings")
+ }
+ Tab {
+ ScrollView(.vertical) {
+ AchievementsView(achievements: game.achievements)
+ }
+ } label: {
+ Image(systemName: "trophy.fill")
+ .badge(game.achievements.count)
+ Text("hi")
+ }
+ }
}
}
}
struct SavedGamesListView: View {
- @ObservedObject var gameManager: CookieGame
+ @ObservedObject var game: CookieGame
@Binding var selectedSave: String?
var body: some View {
NavigationView {
List {
- ForEach(gameManager.savedGames, id: \ .name) { save in
+ ForEach(game.savedGames, id: \ .name) { save in
HStack {
VStack(alignment: .leading) {
Text(save.name).font(.headline)
@@ -113,7 +143,7 @@ struct SavedGamesListView: View {
}
}
.onDelete { indexSet in
- indexSet.map { gameManager.savedGames[$0].name }.forEach(gameManager.deleteGame(named:))
+ indexSet.map { game.savedGames[$0].name }.forEach(game.deleteGame(named:))
}
}
.navigationTitle("Saved Games")
@@ -122,13 +152,13 @@ struct SavedGamesListView: View {
}
struct CookieTapView: View {
- @ObservedObject var gameManager: CookieGame
+ @ObservedObject var game: CookieGame
var body: some View {
- VStack(spacing: 10) {
+ VStack {
Button(action: {
- gameManager.cookies += 1
- gameManager.checkAchievements()
+ game.cookies += 1
+ game.checkAchievements()
}) {
Text("🍪")
.font(.system(size: 75))
@@ -137,7 +167,7 @@ struct CookieTapView: View {
}
}
struct ItemsListView: View {
- @ObservedObject var gameManager: CookieGame
+ @ObservedObject var game: CookieGame
@Binding var buyQuantity: Int
var body: some View {
@@ -152,122 +182,92 @@ struct ItemsListView: View {
.font(.footnote)
}
.padding(.horizontal, 5)
- VStack(spacing: 10) {
- ForEach(gameManager.items.indices, id: \.self) { index in
- HStack(spacing: 10) {
- Button(action: {
- gameManager.buyItem(at: index, quantity: buyQuantity)
- }) {
- HStack {
- Text("\(gameManager.items[index].count) x \(gameManager.items[index].name)")
- Spacer()
- Text("🍪 \(gameManager.totalCost(of: index, quantity: buyQuantity))")
- .font(.caption2)
- }
- .padding(5)
- .background(Color.blue.opacity(0.2))
- .cornerRadius(10)
- }
- .disabled(gameManager.cookies < gameManager.totalCost(of: index, quantity: buyQuantity))
- // if gameManager.cookies < gameManager.totalCost(of: index, quantity: buyQuantity) {
- // Gauge(
- // value: gameManager.cookies,
- // in: 1..= quantity else { return }
items[index].count -= quantity
diff --git a/CookieSwifter/CookieSwifter/CookieSwifterApp.swift b/CookieSwifter/CookieSwifter/CookieSwifterApp.swift
index ff2dffb..5f06762 100644
--- a/CookieSwifter/CookieSwifter/CookieSwifterApp.swift
+++ b/CookieSwifter/CookieSwifter/CookieSwifterApp.swift
@@ -13,7 +13,7 @@ struct CookieSwifterApp: App {
var body: some Scene {
WindowGroup {
ContentView(
- gameManager: CookieGame(),
+ game: CookieGame(),
gameName: (listOfNames.randomElement() ?? "Bob") + "'s Bakery"
)
}
diff --git a/wak.toml b/wak.toml
deleted file mode 100644
index 2bd927b..0000000
--- a/wak.toml
+++ /dev/null
@@ -1,15 +0,0 @@
-# https://github.com/iamawatermelo/wakapi-anyide v0.6.8
-
-[meta]
-version = 1
-watchers = ['files']
-
-[files]
-include = ["*"] # files to include in tracking
-exclude = [] # files to exclude in tracking
-exclude_files = [] # files whose contents will be used to exclude other files from tracking
-exclude_binary_files = true # whether to ignore binary files
-# language_mapping = {".kicad_sch" = "Kicad Schematic"} # custom language mapping
-
-[project]
-name = "CookieSwifter" # your project name
\ No newline at end of file