From d191670d56302f73186dd6e55e2566d9069a8140 Mon Sep 17 00:00:00 2001 From: keith-gan Date: Fri, 19 Apr 2024 15:51:53 +0800 Subject: [PATCH] Add powerups and cooldown --- .../damage.imageset/Contents.json | 23 ++++++++++ .../damage.imageset/damage 1.png | Bin 0 -> 14723 bytes .../damage.imageset/damage 2.png | Bin 0 -> 14723 bytes .../damage.imageset/damage.png | Bin 0 -> 14723 bytes .../nocost.imageset/Contents.json | 23 ++++++++++ .../nocost.imageset/nocost 1.png | Bin 0 -> 19697 bytes .../nocost.imageset/nocost 2.png | Bin 0 -> 19697 bytes .../nocost.imageset/nocost.png | Bin 0 -> 19697 bytes .../TowerForge.xcodeproj/project.pbxproj | 16 +++++++ .../GameModule/PowerUps/DamagePowerUp.swift | 29 ++++++++++++ .../PowerUps/DamagePowerUpDelegate.swift | 25 +++++++++++ .../GameModule/PowerUps/NoCostPowerUp.swift | 28 ++++++++++++ .../PowerUps/NoCostPowerUpDelegate.swift | 25 +++++++++++ .../PowerUps/PowerUpDelegateFactory.swift | 4 ++ .../Inference/InferenceEngineFactory.swift | 4 +- TowerForge/TowerForge/Nodes/PowerUpNode.swift | 42 +++++++++++++++++- 16 files changed, 214 insertions(+), 5 deletions(-) create mode 100644 TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/Contents.json create mode 100644 TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/damage 1.png create mode 100644 TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/damage 2.png create mode 100644 TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/damage.png create mode 100644 TowerForge/Assets.xcassets/Sprites.spriteatlas/nocost.imageset/Contents.json create mode 100644 TowerForge/Assets.xcassets/Sprites.spriteatlas/nocost.imageset/nocost 1.png create mode 100644 TowerForge/Assets.xcassets/Sprites.spriteatlas/nocost.imageset/nocost 2.png create mode 100644 TowerForge/Assets.xcassets/Sprites.spriteatlas/nocost.imageset/nocost.png create mode 100644 TowerForge/TowerForge/GameModule/PowerUps/DamagePowerUp.swift create mode 100644 TowerForge/TowerForge/GameModule/PowerUps/DamagePowerUpDelegate.swift create mode 100644 TowerForge/TowerForge/GameModule/PowerUps/NoCostPowerUp.swift create mode 100644 TowerForge/TowerForge/GameModule/PowerUps/NoCostPowerUpDelegate.swift diff --git a/TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/Contents.json b/TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/Contents.json new file mode 100644 index 00000000..75949a8e --- /dev/null +++ b/TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "damage.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "damage 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "damage 2.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/damage 1.png b/TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/damage 1.png new file mode 100644 index 0000000000000000000000000000000000000000..6936f6a4338aaa64e185696f51b74876b095737f GIT binary patch literal 14723 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 LRo(n^HV^*~mJc~) literal 0 HcmV?d00001 diff --git a/TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/damage 2.png b/TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/damage 2.png new file mode 100644 index 0000000000000000000000000000000000000000..6936f6a4338aaa64e185696f51b74876b095737f GIT binary patch literal 14723 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 LRo(n^HV^*~mJc~) literal 0 HcmV?d00001 diff --git a/TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/damage.png b/TowerForge/Assets.xcassets/Sprites.spriteatlas/damage.imageset/damage.png new file mode 100644 index 0000000000000000000000000000000000000000..6936f6a4338aaa64e185696f51b74876b095737f GIT binary patch literal 14723 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 LRo(n^HV^*~mJc~) literal 0 HcmV?d00001 diff --git a/TowerForge/Assets.xcassets/Sprites.spriteatlas/nocost.imageset/Contents.json b/TowerForge/Assets.xcassets/Sprites.spriteatlas/nocost.imageset/Contents.json new file mode 100644 index 00000000..a21d33e8 --- /dev/null +++ b/TowerForge/Assets.xcassets/Sprites.spriteatlas/nocost.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "nocost.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "nocost 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "nocost 2.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/TowerForge/Assets.xcassets/Sprites.spriteatlas/nocost.imageset/nocost 1.png b/TowerForge/Assets.xcassets/Sprites.spriteatlas/nocost.imageset/nocost 1.png new file mode 100644 index 0000000000000000000000000000000000000000..618ef8017134cd1e18cbe3411eb0da1c4f2139e2 GIT binary patch literal 19697 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 TFEvent { + guard let damageEvent = event as? DamageEvent, damageEvent.player == player else { + return event + } + + return DamageEvent(on: damageEvent.entityId, at: damageEvent.timestamp, with: damageEvent.damage * DAMAGE_SCALE, + player: damageEvent.player) + } +} diff --git a/TowerForge/TowerForge/GameModule/PowerUps/DamagePowerUpDelegate.swift b/TowerForge/TowerForge/GameModule/PowerUps/DamagePowerUpDelegate.swift new file mode 100644 index 00000000..d3b13cf7 --- /dev/null +++ b/TowerForge/TowerForge/GameModule/PowerUps/DamagePowerUpDelegate.swift @@ -0,0 +1,25 @@ +// +// DamagePowerUpDelegate.swift +// TowerForge +// +// Created by Keith Gan on 19/4/24. +// + +import Foundation + +class DamagePowerUpDelegate: PowerUpNodeDelegate { + let eventManager: EventManager + + init(eventManager: EventManager) { + self.eventManager = eventManager + } + + func powerUpNodeDidSelect() { + let damagePowerUp = DamagePowerUp() + eventManager.addTransformation(eventTransformation: damagePowerUp) + + DispatchQueue.main.asyncAfter(deadline: .now() + damagePowerUp.DURATION) { + self.eventManager.removeTransformation(eventTransformation: damagePowerUp) + } + } +} diff --git a/TowerForge/TowerForge/GameModule/PowerUps/NoCostPowerUp.swift b/TowerForge/TowerForge/GameModule/PowerUps/NoCostPowerUp.swift new file mode 100644 index 00000000..69cbc23b --- /dev/null +++ b/TowerForge/TowerForge/GameModule/PowerUps/NoCostPowerUp.swift @@ -0,0 +1,28 @@ +// +// NoCostPowerUp.swift +// TowerForge +// +// Created by Keith Gan on 19/4/24. +// + +import Foundation + +class NoCostPowerUp: EventTransformation { + let DURATION = CGFloat(3) + let id: UUID + let player: Player + + required init(player: Player = .ownPlayer) { + self.id = UUID() + self.player = player + } + + func transformEvent(event: TFEvent) -> TFEvent { + guard let requestSpawnEvent = event as? RequestSpawnEvent, requestSpawnEvent.player == player else { + return event + } + + return WaveSpawnEvent(ofType: requestSpawnEvent.entityType, timestamp: requestSpawnEvent.timestamp, position: + requestSpawnEvent.position, player: requestSpawnEvent.player) + } +} diff --git a/TowerForge/TowerForge/GameModule/PowerUps/NoCostPowerUpDelegate.swift b/TowerForge/TowerForge/GameModule/PowerUps/NoCostPowerUpDelegate.swift new file mode 100644 index 00000000..0dcdd8b8 --- /dev/null +++ b/TowerForge/TowerForge/GameModule/PowerUps/NoCostPowerUpDelegate.swift @@ -0,0 +1,25 @@ +// +// NoCostPowerUpDelegate.swift +// TowerForge +// +// Created by Keith Gan on 19/4/24. +// + +import Foundation + +class NoCostPowerUpDelegate: PowerUpNodeDelegate { + let eventManager: EventManager + + init(eventManager: EventManager) { + self.eventManager = eventManager + } + + func powerUpNodeDidSelect() { + let noCostPowerUp = NoCostPowerUp() + eventManager.addTransformation(eventTransformation: noCostPowerUp) + + DispatchQueue.main.asyncAfter(deadline: .now() + noCostPowerUp.DURATION) { + self.eventManager.removeTransformation(eventTransformation: noCostPowerUp) + } + } +} diff --git a/TowerForge/TowerForge/GameModule/PowerUps/PowerUpDelegateFactory.swift b/TowerForge/TowerForge/GameModule/PowerUps/PowerUpDelegateFactory.swift index 3365a9bc..84d8889c 100644 --- a/TowerForge/TowerForge/GameModule/PowerUps/PowerUpDelegateFactory.swift +++ b/TowerForge/TowerForge/GameModule/PowerUps/PowerUpDelegateFactory.swift @@ -13,6 +13,10 @@ class PowerUpDelegateFactory { switch type { case .invulnerability: return InvulnerabilityPowerUpDelegate(eventManager: eventManager) + case .damage: + return DamagePowerUpDelegate(eventManager: eventManager) + case .nocost: + return NoCostPowerUpDelegate(eventManager: eventManager) } } } diff --git a/TowerForge/TowerForge/Metrics/Inference/InferenceEngineFactory.swift b/TowerForge/TowerForge/Metrics/Inference/InferenceEngineFactory.swift index 09f8d16f..d82e6c1d 100644 --- a/TowerForge/TowerForge/Metrics/Inference/InferenceEngineFactory.swift +++ b/TowerForge/TowerForge/Metrics/Inference/InferenceEngineFactory.swift @@ -10,7 +10,5 @@ import Foundation class InferenceEngineFactory { static var availableInferenceEngines: [(StatisticsEngine) -> any InferenceEngine] = - [ { stats in AchievementsEngine(stats) }, - { stats in MissionsEngine(stats) }, - { stats in RankingEngine(stats) } ] + [ { stats in AchievementsEngine(stats) }, { stats in MissionsEngine(stats) }, { stats in RankingEngine(stats) } ] } diff --git a/TowerForge/TowerForge/Nodes/PowerUpNode.swift b/TowerForge/TowerForge/Nodes/PowerUpNode.swift index 6c195592..092352d7 100644 --- a/TowerForge/TowerForge/Nodes/PowerUpNode.swift +++ b/TowerForge/TowerForge/Nodes/PowerUpNode.swift @@ -9,16 +9,33 @@ import SpriteKit enum PowerUp: String { case invulnerability + case damage + case nocost var imageName: String { switch self { case .invulnerability: return "invulnerability" + case .damage: + return "damage" + case .nocost: + return "nocost" + } + } + + var cooldown: CGFloat { + switch self { + case .invulnerability: + return CGFloat(10) + case .damage: + return CGFloat(10) + case .nocost: + return CGFloat(30) } } static var allPowerUps: [PowerUp] { - [.invulnerability] + [.invulnerability, .damage, .nocost] } } @@ -30,6 +47,7 @@ class PowerUpNode: TFEntity { static let size = UnitNode.size let type: PowerUp var delegate: PowerUpNodeDelegate + var enabled = true init(type: PowerUp, delegate: PowerUpNodeDelegate, at position: CGPoint) { self.type = type @@ -45,7 +63,27 @@ class PowerUpNode: TFEntity { } private func setUpButtonComponent(size: CGSize) { - let buttonDelegate = TFButtonDelegate(onTouchBegan: { self.delegate.powerUpNodeDidSelect() }, onTouchEnded: {}) + let buttonDelegate = TFButtonDelegate(onTouchBegan: onTouchBegan, onTouchEnded: {}) addComponent(ButtonComponent(size: size, buttonDelegate: buttonDelegate)) } + + private func onTouchBegan() { + if !self.enabled { + return + } + self.enabled = false + update(alpha: 0.5) + self.delegate.powerUpNodeDidSelect() + Foundation.Timer.scheduledTimer(withTimeInterval: self.type.cooldown, repeats: false) { _ in + self.enabled = true + self.update(alpha: 1.0) + } + } + + private func update(alpha: CGFloat) { + guard let spriteComponent = component(ofType: SpriteComponent.self) else { + return + } + spriteComponent.alpha = alpha + } }