From d72d398e6eccf242ab45868c5f4e78d2728b59a2 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 10:01:20 -0400 Subject: [PATCH 01/16] Add UpgradeBase class --- Assets/Scenes/BattleScene.unity | 214 ++++++++++++++++-- Assets/Scripts/Upgrades/UpgradeBase.cs | 49 ++++ Assets/Scripts/Upgrades/UpgradeBase.cs.meta | 11 + Assets/Scripts/Upgrades/UpgradeManager.cs | 12 + .../Scripts/Upgrades/UpgradeManager.cs.meta | 11 + Assets/Scripts/Upgrades/UpgradePath.cs | 1 - Assets/Scripts/Upgrades/WeaponUpgrades.meta | 8 + .../WeaponUpgrades/CountUpUpgrades.cs | 25 ++ .../WeaponUpgrades/CountUpUpgrades.cs.meta | 11 + .../Upgrades/WeaponUpgrades/RavenUpgrades.cs | 28 +++ .../WeaponUpgrades/RavenUpgrades.cs.meta | 11 + Assets/Scripts/Weapons/Dart/Dart.cs | 4 +- Assets/Scripts/Weapons/Raven/Raven.cs | 8 +- Assets/Scripts/Weapons/Starfish/Starfish.cs | 2 +- Assets/Scripts/Weapons/WeaponBase.cs | 9 +- 15 files changed, 379 insertions(+), 25 deletions(-) create mode 100644 Assets/Scripts/Upgrades/UpgradeBase.cs create mode 100644 Assets/Scripts/Upgrades/UpgradeBase.cs.meta create mode 100644 Assets/Scripts/Upgrades/UpgradeManager.cs create mode 100644 Assets/Scripts/Upgrades/UpgradeManager.cs.meta create mode 100644 Assets/Scripts/Upgrades/WeaponUpgrades.meta create mode 100644 Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs create mode 100644 Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs.meta create mode 100644 Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs create mode 100644 Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs.meta diff --git a/Assets/Scenes/BattleScene.unity b/Assets/Scenes/BattleScene.unity index 2743cff..c0bc2c9 100644 --- a/Assets/Scenes/BattleScene.unity +++ b/Assets/Scenes/BattleScene.unity @@ -168,6 +168,59 @@ Transform: m_CorrespondingSourceObject: {fileID: 3600334310735166755, guid: ce6ca319e4496403782aea5ae869c333, type: 3} m_PrefabInstance: {fileID: 5667370415085673742} m_PrefabAsset: {fileID: 0} +--- !u!1 &130893740 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 130893741} + - component: {fileID: 130893742} + m_Layer: 0 + m_Name: RavenUpgrades + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &130893741 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 130893740} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 441343834} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &130893742 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 130893740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a5fe70a105da479ab5c9a1df694ecaf, type: 3} + m_Name: + m_EditorClassIdentifier: + _currentLevel: 0 + _icon: {fileID: -41011132, guid: 2d1db680ea22a4dd78b6c2918a56aa0e, type: 3} + _title: Raven + _descriptions: + - heat-seeking bomb targets closest enemy + - +33% damage and +20% cooldown! + - +60% area of effect + _level2DamageModifier: 1.33 + _level3AreaOfEffectRadiusModifier: 1.6 --- !u!1 &170557571 GameObject: m_ObjectHideFlags: 0 @@ -805,6 +858,52 @@ Transform: m_CorrespondingSourceObject: {fileID: 5054089494736014737, guid: a52115208a32b485e8a9cf76bda0d02b, type: 3} m_PrefabInstance: {fileID: 1939657792} m_PrefabAsset: {fileID: 0} +--- !u!1 &441343833 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 441343834} + - component: {fileID: 441343835} + m_Layer: 0 + m_Name: UpgradeManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &441343834 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 441343833} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 784979737} + - {fileID: 130893741} + m_Father: {fileID: 996256050} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &441343835 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 441343833} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cec38740fd6474f2491077f908d65e1d, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &449849008 PrefabInstance: m_ObjectHideFlags: 0 @@ -7567,6 +7666,58 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: ce6ca319e4496403782aea5ae869c333, type: 3} +--- !u!1 &784979736 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 784979737} + - component: {fileID: 784979738} + m_Layer: 0 + m_Name: CountUpUpgrades + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &784979737 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784979736} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 441343834} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &784979738 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784979736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e9488effa5e03442da4c196d16afdc5f, type: 3} + m_Name: + m_EditorClassIdentifier: + _currentLevel: 0 + _icon: {fileID: 21300000, guid: d5250e5db3ce642448c7a5c9ffa33af9, type: 3} + _title: Count++ + _descriptions: + - +1 of each projectile + - +1 of each projectile + - +2 of each projectile! + _countModifiersPerLevel: 020000000300000005000000 --- !u!4 &806077992 stripped Transform: m_CorrespondingSourceObject: {fileID: 3600334310735166755, guid: b5ed0a0f1681f414cb7f4e96615eff9e, type: 3} @@ -7962,6 +8113,41 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 955496693} m_CullTransparentMesh: 1 +--- !u!1 &996256049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 996256050} + m_Layer: 0 + m_Name: Managers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &996256050 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996256049} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.1822462, y: 5.4911523, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1361049654} + - {fileID: 1872998138} + - {fileID: 1686016597} + - {fileID: 441343834} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1102877439 stripped Transform: m_CorrespondingSourceObject: {fileID: 3600334310735166755, guid: 4ab86a383f1ae471d98843b26bdc03cb, type: 3} @@ -8430,12 +8616,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1361049652} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.88758165, y: -0.30522346, z: 0.045927454} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.0698278, y: -5.7963758, z: 0.045927454} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 996256050} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1379408347 GameObject: @@ -30065,12 +30251,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1686016595} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -5.249746, y: -2.8290596, z: -6.6141644} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6.431992, y: -8.320211, z: -6.6141644} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 996256050} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!82 &1686016598 AudioSource: @@ -31071,12 +31257,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1872998136} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 17.373299, y: -0.0069208145, z: 10.2654} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 16.191051, y: -5.498073, z: 10.2654} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 996256050} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1882345547 GameObject: @@ -31126,9 +31312,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 91bd7a4cb211b4c32bfc08d33b3d4ccf, type: 3} m_Name: m_EditorClassIdentifier: - BaseDamage: 10 - BaseCooldownPercentage: 1 - BaseCount: 1 + GlobalDamageModifier: 1 + GlobalCooldownModifier: 1 + GlobalCountModifier: 1 --- !u!1 &1932945646 GameObject: m_ObjectHideFlags: 0 @@ -34479,7 +34665,5 @@ SceneRoots: - {fileID: 4008146429019665031} - {fileID: 715298358} - {fileID: 619394802} - - {fileID: 1361049654} - {fileID: 2022277337} - - {fileID: 1872998138} - - {fileID: 1686016597} + - {fileID: 996256050} diff --git a/Assets/Scripts/Upgrades/UpgradeBase.cs b/Assets/Scripts/Upgrades/UpgradeBase.cs new file mode 100644 index 0000000..f4ea622 --- /dev/null +++ b/Assets/Scripts/Upgrades/UpgradeBase.cs @@ -0,0 +1,49 @@ +using UnityEngine; + +public class UpgradeBase : MonoBehaviour +{ + private static int MAX_LEVEL = 3; + + [SerializeField] + protected int _currentLevel; + + [SerializeField] + private Sprite _icon; + + [SerializeField] + private string _title; + + [SerializeField] + private string[] _descriptions; + + private void Awake() + { + // assert _descriptions is not higher than max level + if (_descriptions.Length != MAX_LEVEL) + { + Debug.LogError("UpgradeBase: _descriptions length is not equal to MAX_LEVEL"); + } + } + + public bool IsMaxLevel() + { + return _currentLevel == MAX_LEVEL; + } + + public void LevelUp() + { + if (IsMaxLevel()) + { + return; + } + + _currentLevel++; + + UpgradeToLevel(_currentLevel); + } + + public virtual void UpgradeToLevel(int level) + { + // override this method in child classes + } +} diff --git a/Assets/Scripts/Upgrades/UpgradeBase.cs.meta b/Assets/Scripts/Upgrades/UpgradeBase.cs.meta new file mode 100644 index 0000000..43339f0 --- /dev/null +++ b/Assets/Scripts/Upgrades/UpgradeBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5eb69a79af8614df78aa16c2ec7e32ab +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Upgrades/UpgradeManager.cs b/Assets/Scripts/Upgrades/UpgradeManager.cs new file mode 100644 index 0000000..3f4c213 --- /dev/null +++ b/Assets/Scripts/Upgrades/UpgradeManager.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using UnityEngine; + +class UpgradeManager : MonoBehaviour +{ + List _upgrades = new List(); + + public void Awake() + { + _upgrades.AddRange(GetComponentsInChildren()); + } +} diff --git a/Assets/Scripts/Upgrades/UpgradeManager.cs.meta b/Assets/Scripts/Upgrades/UpgradeManager.cs.meta new file mode 100644 index 0000000..9b3dca7 --- /dev/null +++ b/Assets/Scripts/Upgrades/UpgradeManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cec38740fd6474f2491077f908d65e1d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Upgrades/UpgradePath.cs b/Assets/Scripts/Upgrades/UpgradePath.cs index c1f58a5..dffa176 100644 --- a/Assets/Scripts/Upgrades/UpgradePath.cs +++ b/Assets/Scripts/Upgrades/UpgradePath.cs @@ -10,7 +10,6 @@ public class UpgradePath { - private string _name; private int _currentLevel; private List _levelDesc; diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades.meta b/Assets/Scripts/Upgrades/WeaponUpgrades.meta new file mode 100644 index 0000000..ff3d165 --- /dev/null +++ b/Assets/Scripts/Upgrades/WeaponUpgrades.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9d5eba71c425438b8d4461549c7493d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs b/Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs new file mode 100644 index 0000000..4ec7c9b --- /dev/null +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs @@ -0,0 +1,25 @@ +using UnityEngine; + +class CountUpUpgrades : UpgradeBase +{ + [SerializeField] + private int[] _countModifiersPerLevel = { 2, 3, 5 }; + + public override void UpgradeToLevel(int level) + { + // get WeaponManager + var weaponManager = FindObjectOfType(); + switch (level) + { + case 1: + weaponManager.GlobalCountModifier = _countModifiersPerLevel[0]; + break; + case 2: + weaponManager.GlobalCountModifier = _countModifiersPerLevel[1]; + break; + case 3: + weaponManager.GlobalCountModifier = _countModifiersPerLevel[2]; + break; + } + } +} diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs.meta b/Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs.meta new file mode 100644 index 0000000..3af70a0 --- /dev/null +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9488effa5e03442da4c196d16afdc5f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs b/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs new file mode 100644 index 0000000..2ca0856 --- /dev/null +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs @@ -0,0 +1,28 @@ +using UnityEngine; + +public class RavenUpgrades : UpgradeBase +{ + [SerializeField] + private float _lvl2DamageMod = 1.33f; + + [SerializeField] + private float _lvl3AreaOfEffectRadiusMod = 1.6f; + + public override void UpgradeToLevel(int level) + { + // get raven + var raven = FindObjectOfType(); + switch (_currentLevel) + { + case 1: + raven.Enable(); + break; + case 2: + raven.BaseDamage *= _lvl2DamageMod; + break; + case 3: + raven.AreaOfEffectRadius *= _lvl3AreaOfEffectRadiusMod; + break; + } + } +} diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs.meta b/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs.meta new file mode 100644 index 0000000..d57f0b9 --- /dev/null +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2a5fe70a105da479ab5c9a1df694ecaf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapons/Dart/Dart.cs b/Assets/Scripts/Weapons/Dart/Dart.cs index 13eb5fc..e214f8c 100644 --- a/Assets/Scripts/Weapons/Dart/Dart.cs +++ b/Assets/Scripts/Weapons/Dart/Dart.cs @@ -108,11 +108,11 @@ public void Upgrade(int level) } else if (level == 2) { - _baseDamage *= 1.5f; + BaseDamage *= 1.5f; } else if (level == 3) { - _baseDamage *= 2f; + BaseDamage *= 2f; _rearFiringDartCount += 2; } } diff --git a/Assets/Scripts/Weapons/Raven/Raven.cs b/Assets/Scripts/Weapons/Raven/Raven.cs index 043d005..219ae0a 100644 --- a/Assets/Scripts/Weapons/Raven/Raven.cs +++ b/Assets/Scripts/Weapons/Raven/Raven.cs @@ -10,7 +10,7 @@ public class Raven : WeaponBase [SerializeField] [Tooltip("Modifies AOE of emitted projectiles")] - private float _areaOfEffectRadius = 1.0f; + public float AreaOfEffectRadius = 1.0f; [SerializeField] [Tooltip("Distance from player to spawn raven")] @@ -41,7 +41,7 @@ public override void Fire() { var projectile = Instantiate(_ravenProjectilePrefab); - projectile.Initialize(Damage, _speed, _areaOfEffectRadius); + projectile.Initialize(Damage, _speed, AreaOfEffectRadius); projectile.transform.parent = _player.transform.parent; Vector3 direction = target.transform.position - _player.transform.position; @@ -111,12 +111,12 @@ public void Upgrade(int level) } else if (level == 2) { - _baseDamage = 2f; + BaseDamage = 2f; _baseCooldown *= 0.8f; } else if (level == 3) { - _areaOfEffectRadius = 1.6f; + AreaOfEffectRadius = 1.6f; } } } diff --git a/Assets/Scripts/Weapons/Starfish/Starfish.cs b/Assets/Scripts/Weapons/Starfish/Starfish.cs index 3553f7d..5ea63f5 100644 --- a/Assets/Scripts/Weapons/Starfish/Starfish.cs +++ b/Assets/Scripts/Weapons/Starfish/Starfish.cs @@ -44,7 +44,7 @@ public void Upgrade(int level) else if (level == 2) { _duration *= 1.2f; - _baseDamage *= 1.2f; + BaseDamage *= 1.2f; } else if (level == 3) { diff --git a/Assets/Scripts/Weapons/WeaponBase.cs b/Assets/Scripts/Weapons/WeaponBase.cs index c7c7887..64deefa 100644 --- a/Assets/Scripts/Weapons/WeaponBase.cs +++ b/Assets/Scripts/Weapons/WeaponBase.cs @@ -9,10 +9,10 @@ public class WeaponBase : MonoBehaviour protected float _baseCooldown; [SerializeField] - public float _baseDamage; + public float BaseDamage; public float Cooldown => _baseCooldown * _weaponManager.GlobalCooldownModifier; - public int Damage => (int)(_weaponManager.GlobalDamageModifier * _baseDamage); + public int Damage => (int)(_weaponManager.GlobalDamageModifier * BaseDamage); public int Count => _weaponManager.GlobalCountModifier; protected float _timeElapsedSinceLastFire = 0.0f; @@ -41,4 +41,9 @@ public virtual void Fire() { _timeElapsedSinceLastFire = 0.0f; } + + public void Enable() + { + _isEnabled = true; + } } From 4046ec2acc37bc1eed8a6ba24cd511c197206bdb Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 11:12:12 -0400 Subject: [PATCH 02/16] Separate upgrading from LevelUpUI, use new upgrading classes --- Assets/Scenes/BattleScene.unity | 58 ++++++---- .../SceneManagers/BattleSceneManager.cs | 81 +++++++------- Assets/Scripts/Upgrades/LevelOption.cs | 97 ----------------- Assets/Scripts/Upgrades/LevelOptionUI.cs | 100 ++++++++++++++++++ ...elOption.cs.meta => LevelOptionUI.cs.meta} | 0 Assets/Scripts/Upgrades/LevelUpUI.cs | 97 +++++------------ Assets/Scripts/Upgrades/UpgradeBase.cs | 20 ++-- Assets/Scripts/Upgrades/UpgradeManager.cs | 62 ++++++++++- .../Upgrades/WeaponUpgrades/RavenUpgrades.cs | 2 +- 9 files changed, 281 insertions(+), 236 deletions(-) delete mode 100644 Assets/Scripts/Upgrades/LevelOption.cs create mode 100644 Assets/Scripts/Upgrades/LevelOptionUI.cs rename Assets/Scripts/Upgrades/{LevelOption.cs.meta => LevelOptionUI.cs.meta} (100%) diff --git a/Assets/Scenes/BattleScene.unity b/Assets/Scenes/BattleScene.unity index c0bc2c9..d2f58be 100644 --- a/Assets/Scenes/BattleScene.unity +++ b/Assets/Scenes/BattleScene.unity @@ -212,15 +212,15 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2a5fe70a105da479ab5c9a1df694ecaf, type: 3} m_Name: m_EditorClassIdentifier: - _currentLevel: 0 + _level: 0 _icon: {fileID: -41011132, guid: 2d1db680ea22a4dd78b6c2918a56aa0e, type: 3} _title: Raven _descriptions: - heat-seeking bomb targets closest enemy - +33% damage and +20% cooldown! - +60% area of effect - _level2DamageModifier: 1.33 - _level3AreaOfEffectRadiusModifier: 1.6 + _lvl2DamageMod: 1.33 + _lvl3AreaOfEffectRadiusMod: 1.6 --- !u!1 &170557571 GameObject: m_ObjectHideFlags: 0 @@ -7710,7 +7710,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e9488effa5e03442da4c196d16afdc5f, type: 3} m_Name: m_EditorClassIdentifier: - _currentLevel: 0 + _level: 0 _icon: {fileID: 21300000, guid: d5250e5db3ce642448c7a5c9ffa33af9, type: 3} _title: Count++ _descriptions: @@ -7731,10 +7731,18 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1882345548} m_Modifications: + - target: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} + propertyPath: BaseDamage + value: 8 + objectReference: {fileID: 0} - target: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} propertyPath: _isEnabled value: 0 objectReference: {fileID: 0} + - target: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} + propertyPath: _baseCooldown + value: 2.8 + objectReference: {fileID: 0} - target: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} propertyPath: _schnitzelProjectilePrefab value: @@ -30062,6 +30070,18 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1882345548} m_Modifications: + - target: {fileID: -801427770401400621, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} + propertyPath: _speed + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -801427770401400621, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} + propertyPath: BaseDamage + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -801427770401400621, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} + propertyPath: _baseCooldown + value: 1.8 + objectReference: {fileID: 0} - target: {fileID: 3476222383509152590, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} propertyPath: m_Name value: Dart @@ -30957,6 +30977,10 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1882345548} m_Modifications: + - target: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} + propertyPath: BaseDamage + value: 15 + objectReference: {fileID: 0} - target: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} propertyPath: _isEnabled value: 0 @@ -30965,6 +30989,10 @@ PrefabInstance: propertyPath: _ravenPrefab value: objectReference: {fileID: 1783361906523289645, guid: 73dffc90c37874381bd50b09415a2c82, type: 3} + - target: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} + propertyPath: _baseCooldown + value: 5 + objectReference: {fileID: 0} - target: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} propertyPath: _ravenProjectilePrefab value: @@ -31864,6 +31892,14 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 5358019133310574137, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} + propertyPath: BaseDamage + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 5358019133310574137, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} + propertyPath: _baseCooldown + value: 5 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -33973,13 +34009,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 48b3dd2a3ab2a477faae51ce48d9c4bb, type: 3} m_Name: m_EditorClassIdentifier: - _countSprite: {fileID: 21300000, guid: d5250e5db3ce642448c7a5c9ffa33af9, type: 3} - _speedSprite: {fileID: 21300000, guid: 8094df7779b004b43b7cc37ee399539b, type: 3} - _damageSprite: {fileID: 21300000, guid: 4af40a0e588594a3c9e45068423eb312, type: 3} - _dartSprite: {fileID: 21300000, guid: 7065380beeb504112b67e70f625d51e3, type: 3} - _ravenSprite: {fileID: -41011132, guid: 2d1db680ea22a4dd78b6c2918a56aa0e, type: 3} - _starfishSprite: {fileID: 900386594, guid: f973a0cae040d40648faf1d1eab27ad7, type: 3} - _schnitzelSprite: {fileID: 21300000, guid: acf14ff16f87c4b4db7ad79a39aab264, type: 3} --- !u!224 &6445608978296428708 RectTransform: m_ObjectHideFlags: 0 @@ -34016,13 +34045,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 48b3dd2a3ab2a477faae51ce48d9c4bb, type: 3} m_Name: m_EditorClassIdentifier: - _countSprite: {fileID: 21300000, guid: d5250e5db3ce642448c7a5c9ffa33af9, type: 3} - _speedSprite: {fileID: 21300000, guid: 8094df7779b004b43b7cc37ee399539b, type: 3} - _damageSprite: {fileID: 21300000, guid: 4af40a0e588594a3c9e45068423eb312, type: 3} - _dartSprite: {fileID: 21300000, guid: 7065380beeb504112b67e70f625d51e3, type: 3} - _ravenSprite: {fileID: -41011132, guid: 2d1db680ea22a4dd78b6c2918a56aa0e, type: 3} - _starfishSprite: {fileID: 900386594, guid: f973a0cae040d40648faf1d1eab27ad7, type: 3} - _schnitzelSprite: {fileID: 21300000, guid: acf14ff16f87c4b4db7ad79a39aab264, type: 3} --- !u!224 &6699254774424834910 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/SceneManagers/BattleSceneManager.cs b/Assets/Scripts/SceneManagers/BattleSceneManager.cs index 5be113e..431059e 100644 --- a/Assets/Scripts/SceneManagers/BattleSceneManager.cs +++ b/Assets/Scripts/SceneManagers/BattleSceneManager.cs @@ -270,13 +270,14 @@ void Start() } ); - EventManager.AddListener( - "UpgradeChosen", - (eventData) => - { - OnUpgradeChosen((UpgradeEventData)eventData.Data); - } - ); + /* + EventManager.AddListener( + "UpgradeChosen", + (eventData) => + { + OnUpgradeChosen((UpgradeEventData)eventData.Data); + } + );*/ } private void OnPickupGrabbed(List eventData) @@ -771,38 +772,38 @@ private void SpawnPickup() pickup.transform.position = GetRandomSpawnPoint(); _pickupsOnScreen++; } - - private void OnUpgradeChosen(UpgradeEventData upgradeEvent) - { - var newLevel = upgradeEvent.Level; - - var weaponManager = Player.Instance.WeaponManager; - - switch (upgradeEvent.UpgradeType) + /* + private void OnUpgradeChosen(UpgradeEventData upgradeEvent) { - case UpgradeType.CountUp: - weaponManager.UpgradeCount(newLevel); - break; - case UpgradeType.CooldownDown: - weaponManager.UpgradeCooldown(newLevel); - break; - case UpgradeType.DamageUp: - weaponManager.UpgradeDamage(newLevel); - break; - case UpgradeType.Dart: - GameObject.Find("Dart").GetComponent().Upgrade(newLevel); - break; - case UpgradeType.Raven: - GameObject.Find("Raven").GetComponent().Upgrade(newLevel); - break; - case UpgradeType.Starfish: - GameObject.Find("Starfish").GetComponent().Upgrade(newLevel); - break; - case UpgradeType.Schnitzel: - GameObject.Find("Schnitzel").GetComponent().Upgrade(newLevel); - break; - default: - break; - } - } + var newLevel = upgradeEvent.Level; + + var weaponManager = Player.Instance.WeaponManager; + + switch (upgradeEvent.UpgradeType) + { + case UpgradeType.CountUp: + weaponManager.UpgradeCount(newLevel); + break; + case UpgradeType.CooldownDown: + weaponManager.UpgradeCooldown(newLevel); + break; + case UpgradeType.DamageUp: + weaponManager.UpgradeDamage(newLevel); + break; + case UpgradeType.Dart: + GameObject.Find("Dart").GetComponent().Upgrade(newLevel); + break; + case UpgradeType.Raven: + GameObject.Find("Raven").GetComponent().Upgrade(newLevel); + break; + case UpgradeType.Starfish: + GameObject.Find("Starfish").GetComponent().Upgrade(newLevel); + break; + case UpgradeType.Schnitzel: + GameObject.Find("Schnitzel").GetComponent().Upgrade(newLevel); + break; + default: + break; + } + }*/ } diff --git a/Assets/Scripts/Upgrades/LevelOption.cs b/Assets/Scripts/Upgrades/LevelOption.cs deleted file mode 100644 index a6d7ba6..0000000 --- a/Assets/Scripts/Upgrades/LevelOption.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using TMPro; -using UnityEngine; -using UnityEngine.UI; - -public class LevelOption : MonoBehaviour -{ - [SerializeField] - [Tooltip("Sprite for the count++ upgrade")] - private Sprite _countSprite; - - [SerializeField] - [Tooltip("Sprite for the speed++ upgrade")] - private Sprite _speedSprite; - - [SerializeField] - [Tooltip("Sprite for the damage++ upgrade")] - private Sprite _damageSprite; - - [SerializeField] - [Tooltip("Sprite for the dart upgrade")] - private Sprite _dartSprite; - - [SerializeField] - [Tooltip("Sprite for the raven upgrade")] - private Sprite _ravenSprite; - - [SerializeField] - [Tooltip("Sprite for the starfish upgrade")] - private Sprite _starfishSprite; - - [SerializeField] - [Tooltip("Sprite for the schnitzel upgrade")] - private Sprite _schnitzelSprite; - - private TextMeshProUGUI _title; - private TextMeshProUGUI _description; - private TextMeshProUGUI _stats; - private Image _icon; - - void Awake() - { - _title = transform.Find("Title").GetComponent(); - _description = transform.Find("Description").GetComponent(); - _stats = transform.Find("Stats").GetComponent(); - _icon = transform.Find("Border/Icon").GetComponent(); - } - - public void SetMaxedOut() - { - _title.text = "ALL OTHER UPGRADES MAXED OUT"; - _description.text = ""; - _stats.text = ""; - } - - // fyi: title -> upgrade name, description -> level, stats -> description - public void Set(UpgradeType upgradeType, string description, string stats) - { - _description.text = description; - _stats.text = stats; - - switch (upgradeType) - { - case UpgradeType.CountUp: - _title.text = "count++"; - _icon.sprite = _countSprite; - break; - case UpgradeType.CooldownDown: - _title.text = "cooldown++"; // should be minus minus? - _icon.sprite = _speedSprite; - break; - case UpgradeType.DamageUp: - _title.text = "damage++"; - _icon.sprite = _damageSprite; - break; - case UpgradeType.Dart: - _title.text = "dart"; - _icon.sprite = _dartSprite; - break; - case UpgradeType.Raven: - _title.text = "raven"; - _icon.sprite = _ravenSprite; - break; - case UpgradeType.Starfish: - _title.text = "starfish"; - _icon.sprite = _starfishSprite; - break; - case UpgradeType.Schnitzel: - _title.text = "schnitzel"; - _icon.sprite = _schnitzelSprite; - break; - default: - break; - } - } -} diff --git a/Assets/Scripts/Upgrades/LevelOptionUI.cs b/Assets/Scripts/Upgrades/LevelOptionUI.cs new file mode 100644 index 0000000..72ef02d --- /dev/null +++ b/Assets/Scripts/Upgrades/LevelOptionUI.cs @@ -0,0 +1,100 @@ +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class LevelOptionUI : MonoBehaviour +{ + /* + [SerializeField] + [Tooltip("Sprite for the count++ upgrade")] + private Sprite _countSprite; + + [SerializeField] + [Tooltip("Sprite for the speed++ upgrade")] + private Sprite _speedSprite; + + [SerializeField] + [Tooltip("Sprite for the damage++ upgrade")] + private Sprite _damageSprite; + + [SerializeField] + [Tooltip("Sprite for the dart upgrade")] + private Sprite _dartSprite; + + [SerializeField] + [Tooltip("Sprite for the raven upgrade")] + private Sprite _ravenSprite; + + [SerializeField] + [Tooltip("Sprite for the starfish upgrade")] + private Sprite _starfishSprite; + + [SerializeField] + [Tooltip("Sprite for the schnitzel upgrade")] + private Sprite _schnitzelSprite;*/ + + private TextMeshProUGUI _title; + private TextMeshProUGUI _description; + private TextMeshProUGUI _stats; + private Image _icon; + + void Awake() + { + _title = transform.Find("Title").GetComponent(); + _description = transform.Find("Description").GetComponent(); + _stats = transform.Find("Stats").GetComponent(); + _icon = transform.Find("Border/Icon").GetComponent(); + } + + public void SetMaxedOut() + { + _title.text = "ALL OTHER UPGRADES MAXED OUT"; + _description.text = ""; + _stats.text = ""; + } + + // fyi: title -> upgrade name, description -> level, stats -> description + public void Set(string title, string description, string stats, Sprite icon) + { + _title.text = title; + _description.text = description; + _stats.text = stats; + _icon.sprite = icon; + /* + switch (upgradeType) + { + case UpgradeType.CountUp: + _title.text = "count++"; + _icon.sprite = _countSprite; + break; + case UpgradeType.CooldownDown: + _title.text = "cooldown++"; // should be minus minus? + _icon.sprite = _speedSprite; + break; + case UpgradeType.DamageUp: + _title.text = "damage++"; + _icon.sprite = _damageSprite; + break; + case UpgradeType.Dart: + _title.text = "dart"; + _icon.sprite = _dartSprite; + break; + case UpgradeType.Raven: + _title.text = "raven"; + _icon.sprite = _ravenSprite; + break; + case UpgradeType.Starfish: + _title.text = "starfish"; + _icon.sprite = _starfishSprite; + break; + case UpgradeType.Schnitzel: + _title.text = "schnitzel"; + _icon.sprite = _schnitzelSprite; + break; + default: + break; + }*/ + } +} diff --git a/Assets/Scripts/Upgrades/LevelOption.cs.meta b/Assets/Scripts/Upgrades/LevelOptionUI.cs.meta similarity index 100% rename from Assets/Scripts/Upgrades/LevelOption.cs.meta rename to Assets/Scripts/Upgrades/LevelOptionUI.cs.meta diff --git a/Assets/Scripts/Upgrades/LevelUpUI.cs b/Assets/Scripts/Upgrades/LevelUpUI.cs index a1f2541..fadeddc 100644 --- a/Assets/Scripts/Upgrades/LevelUpUI.cs +++ b/Assets/Scripts/Upgrades/LevelUpUI.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections.Generic; -using Sentry; using UnityEngine; using UnityEngine.UI; -using Random = UnityEngine.Random; /** * Encapsulates behavior of LevelUpUI prefab @@ -13,17 +9,15 @@ public class LevelUpUI : MonoBehaviour // fyi: title -> upgrade name, description -> level, stats -> description // leveling up an upgrade, changes the stats to new level, increases the level # - private static List _availableUpgradeTypes; + // private static List _availableUpgradeTypes; - private static Dictionary _upgradeData; - - private int MAX_LEVEL = 3; + // private static Dictionary _upgradeData; [SerializeField] - private LevelOption _levelOption1; + private LevelOptionUI _levelOption1; [SerializeField] - private LevelOption _levelOption2; + private LevelOptionUI _levelOption2; private Button _option1Button; private Button _option2Button; @@ -35,6 +29,7 @@ public class LevelUpUI : MonoBehaviour public static void Reset() { + /* _availableUpgradeTypes = new List { UpgradeType.CountUp, @@ -118,7 +113,7 @@ public static void Reset() } ) } - }; + };*/ } void Awake() @@ -132,7 +127,9 @@ void OnEnable() // pause the game Time.timeScale = 0; - (UpgradeType upgradeChoice1, UpgradeType upgradeChoice2) = GetRandomUpgradeChoices(); + // get upgrade manager + (UpgradeBase upgradeChoice1, UpgradeBase upgradeChoice2) = + UpgradeManager.Instance.GetRandomUpgradeChoices(); SetLevelOptionUI(upgradeChoice1, upgradeChoice2); @@ -146,39 +143,20 @@ void OnDisable() _option2Button.onClick.RemoveAllListeners(); } - /** - * Returns a tuple of random level upgrade indices that are valid - */ - (UpgradeType, UpgradeType) GetRandomUpgradeChoices() - { - int option1 = Random.Range(0, _availableUpgradeTypes.Count); - int option2; - - // select a second option that is different from the first option if the number of available - // projectiles is greater than 1 - do - { - option2 = Random.Range(0, _availableUpgradeTypes.Count); - } while (_availableUpgradeTypes.Count > 1 && option2 == option1); - - UpgradeType upgradeType1 = _availableUpgradeTypes[option1]; - UpgradeType upgradeType2 = _availableUpgradeTypes[option2]; - - return (upgradeType1, upgradeType2); - } - /** * Given a set of option choices, update the UI accordingly */ - void SetLevelOptionUI(UpgradeType option1, UpgradeType option2) + void SetLevelOptionUI(UpgradeBase option1, UpgradeBase option2) { - UpgradeType optionTitle = option1; - int optionLevel = _upgradeData[optionTitle].CurrentLevel + 1; - string optionStats = _upgradeData[optionTitle].GetLevelStats(optionLevel); + // UpgradeType optionTitle = option1; + // int optionLevel = _upgradeData[optionTitle].CurrentLevel + 1; + + // string optionStats = _upgradeData[optionTitle].GetLevelStats(optionLevel); _levelOption1.Set( - upgradeType: optionTitle, - description: "Level " + optionLevel, - stats: optionStats + title: option1.Title, + description: "Level " + option1.NextLevel, + stats: option1.NextDescription, + icon: option1.Icon ); if (option1 == option2) @@ -187,43 +165,20 @@ void SetLevelOptionUI(UpgradeType option1, UpgradeType option2) } else { - optionTitle = option2; - optionLevel = _upgradeData[optionTitle].CurrentLevel + 1; - optionStats = _upgradeData[optionTitle].GetLevelStats(optionLevel); + // optionLevel = _upgradeData[optionTitle].CurrentLevel + 1; + // optionStats = _upgradeData[optionTitle].GetLevelStats(optionLevel); _levelOption2.Set( - upgradeType: optionTitle, - description: "Level " + optionLevel, - stats: optionStats + title: option2.Title, + description: "Level " + option2.NextLevel, + stats: option2.NextDescription, + icon: option2.Icon ); } } - void SelectUpgrade(UpgradeType selectedUpgradeType) + void SelectUpgrade(UpgradeBase selectedUpgrade) { - _upgradeData[selectedUpgradeType].LevelUp(); // level up the selected upgrade - - if (_upgradeData[selectedUpgradeType].CurrentLevel == MAX_LEVEL) - { - // take the upgrade out of the pool if it's maxed out - for (int i = 0; i < _availableUpgradeTypes.Count; i++) - { - if (_availableUpgradeTypes[i] == selectedUpgradeType) - { - _availableUpgradeTypes.RemoveAt(i); - break; - } - } - } - - int newLevel = _upgradeData[selectedUpgradeType].CurrentLevel; - - var upgradeEvent = new UpgradeEventData(selectedUpgradeType, newLevel); - EventManager.TriggerEvent("UpgradeChosen", new EventData(upgradeEvent)); - - SentrySdk.Metrics.Increment( - "upgrade_selected", - tags: new Dictionary { { "type", selectedUpgradeType.ToString() } } - ); + UpgradeManager.Instance.UpgradePath(selectedUpgrade); // resume the game and exit the level up popup Time.timeScale = 1; diff --git a/Assets/Scripts/Upgrades/UpgradeBase.cs b/Assets/Scripts/Upgrades/UpgradeBase.cs index f4ea622..15ceca8 100644 --- a/Assets/Scripts/Upgrades/UpgradeBase.cs +++ b/Assets/Scripts/Upgrades/UpgradeBase.cs @@ -5,16 +5,22 @@ public class UpgradeBase : MonoBehaviour private static int MAX_LEVEL = 3; [SerializeField] - protected int _currentLevel; + protected int _level = 0; // 0 => inactive, 1 => level 1, ... + public int Level => _level + 1; + public int NextLevel => Level + 1; [SerializeField] - private Sprite _icon; + protected Sprite _icon; + public Sprite Icon => _icon; [SerializeField] - private string _title; + protected string _title; + public string Title => _title; [SerializeField] - private string[] _descriptions; + // NOTE: _descriptions starts at index 0, but level starts at 1 + protected string[] _descriptions; + public string NextDescription => _descriptions[_level]; private void Awake() { @@ -27,7 +33,7 @@ private void Awake() public bool IsMaxLevel() { - return _currentLevel == MAX_LEVEL; + return _level == MAX_LEVEL; } public void LevelUp() @@ -37,9 +43,9 @@ public void LevelUp() return; } - _currentLevel++; + _level++; - UpgradeToLevel(_currentLevel); + UpgradeToLevel(_level); } public virtual void UpgradeToLevel(int level) diff --git a/Assets/Scripts/Upgrades/UpgradeManager.cs b/Assets/Scripts/Upgrades/UpgradeManager.cs index 3f4c213..d0f26ad 100644 --- a/Assets/Scripts/Upgrades/UpgradeManager.cs +++ b/Assets/Scripts/Upgrades/UpgradeManager.cs @@ -1,12 +1,70 @@ using System.Collections.Generic; +using Sentry; using UnityEngine; class UpgradeManager : MonoBehaviour { - List _upgrades = new List(); + List _availableUpgrades = new List(); + + private static UpgradeManager _instance; + + public static UpgradeManager Instance + { + get + { + if (_instance == null) + { + _instance = GameObject.FindObjectOfType(); + } + return _instance; + } + } public void Awake() { - _upgrades.AddRange(GetComponentsInChildren()); + _availableUpgrades.AddRange(GetComponentsInChildren()); + } + + /** + * Returns a tuple of random upgrade paths that are valid + */ + public (UpgradeBase, UpgradeBase) GetRandomUpgradeChoices() + { + int option1 = Random.Range(0, _availableUpgrades.Count); + int option2; + + // select a second option that is different from the first option if the number of available + // projectiles is greater than 1 + do + { + option2 = Random.Range(0, _availableUpgrades.Count); + } while (_availableUpgrades.Count > 1 && option2 == option1); + + return (_availableUpgrades[option1], _availableUpgrades[option2]); + } + + public void UpgradePath(UpgradeBase upgradePath) + { + upgradePath.LevelUp(); // level up the selected upgrade + + // _upgradeData[selectedUpgrade].LevelUp(); // level up the selected upgrade + + if (upgradePath.IsMaxLevel()) + { + // take the upgrade out of the pool if it's maxed out + for (int i = 0; i < _availableUpgrades.Count; i++) + { + if (_availableUpgrades[i] == upgradePath) + { + _availableUpgrades.RemoveAt(i); + break; + } + } + } + + SentrySdk.Metrics.Increment( + "upgrade_selected", + tags: new Dictionary { { "type", upgradePath.Title } } + ); } } diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs b/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs index 2ca0856..16eba88 100644 --- a/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs @@ -12,7 +12,7 @@ public override void UpgradeToLevel(int level) { // get raven var raven = FindObjectOfType(); - switch (_currentLevel) + switch (_level) { case 1: raven.Enable(); From 019322780f2fe465788cbdb6a01ce8c7895e9d16 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 11:15:57 -0400 Subject: [PATCH 03/16] Delete unused classes --- Assets/Scripts/Upgrades/LevelUpUI.cs | 25 ----------- Assets/Scripts/Upgrades/UpgradeEventData.cs | 16 ------- .../Scripts/Upgrades/UpgradeEventData.cs.meta | 11 ----- Assets/Scripts/Upgrades/UpgradePath.cs | 45 ------------------- Assets/Scripts/Upgrades/UpgradePath.cs.meta | 11 ----- Assets/Scripts/Upgrades/UpgradeType.cs | 17 ------- Assets/Scripts/Upgrades/UpgradeType.cs.meta | 11 ----- 7 files changed, 136 deletions(-) delete mode 100644 Assets/Scripts/Upgrades/UpgradeEventData.cs delete mode 100644 Assets/Scripts/Upgrades/UpgradeEventData.cs.meta delete mode 100644 Assets/Scripts/Upgrades/UpgradePath.cs delete mode 100644 Assets/Scripts/Upgrades/UpgradePath.cs.meta delete mode 100644 Assets/Scripts/Upgrades/UpgradeType.cs delete mode 100644 Assets/Scripts/Upgrades/UpgradeType.cs.meta diff --git a/Assets/Scripts/Upgrades/LevelUpUI.cs b/Assets/Scripts/Upgrades/LevelUpUI.cs index fadeddc..172f874 100644 --- a/Assets/Scripts/Upgrades/LevelUpUI.cs +++ b/Assets/Scripts/Upgrades/LevelUpUI.cs @@ -9,10 +9,6 @@ public class LevelUpUI : MonoBehaviour // fyi: title -> upgrade name, description -> level, stats -> description // leveling up an upgrade, changes the stats to new level, increases the level # - // private static List _availableUpgradeTypes; - - // private static Dictionary _upgradeData; - [SerializeField] private LevelOptionUI _levelOption1; @@ -22,24 +18,9 @@ public class LevelUpUI : MonoBehaviour private Button _option1Button; private Button _option2Button; - // this is in GameManager.cs, but idk how to access it from here - // [SerializeField] - // [Tooltip("The parent UI element containing the active upgrades")] - // private GameObject _activeUpgradesContainer; - public static void Reset() { /* - _availableUpgradeTypes = new List - { - UpgradeType.CountUp, - UpgradeType.CooldownDown, - UpgradeType.DamageUp, - UpgradeType.Dart, - UpgradeType.Raven, - UpgradeType.Starfish, - UpgradeType.Schnitzel - }; _upgradeData = new Dictionary { @@ -148,10 +129,6 @@ void OnDisable() */ void SetLevelOptionUI(UpgradeBase option1, UpgradeBase option2) { - // UpgradeType optionTitle = option1; - // int optionLevel = _upgradeData[optionTitle].CurrentLevel + 1; - - // string optionStats = _upgradeData[optionTitle].GetLevelStats(optionLevel); _levelOption1.Set( title: option1.Title, description: "Level " + option1.NextLevel, @@ -165,8 +142,6 @@ void SetLevelOptionUI(UpgradeBase option1, UpgradeBase option2) } else { - // optionLevel = _upgradeData[optionTitle].CurrentLevel + 1; - // optionStats = _upgradeData[optionTitle].GetLevelStats(optionLevel); _levelOption2.Set( title: option2.Title, description: "Level " + option2.NextLevel, diff --git a/Assets/Scripts/Upgrades/UpgradeEventData.cs b/Assets/Scripts/Upgrades/UpgradeEventData.cs deleted file mode 100644 index f115857..0000000 --- a/Assets/Scripts/Upgrades/UpgradeEventData.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public struct UpgradeEventData -{ - public UpgradeType UpgradeType; - - public int Level; - - public UpgradeEventData(UpgradeType upgradeType, int level) - { - this.UpgradeType = upgradeType; - this.Level = level; - } -} diff --git a/Assets/Scripts/Upgrades/UpgradeEventData.cs.meta b/Assets/Scripts/Upgrades/UpgradeEventData.cs.meta deleted file mode 100644 index b55df9c..0000000 --- a/Assets/Scripts/Upgrades/UpgradeEventData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5dcbb587e7518432c8f1820d6ec5b05c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Upgrades/UpgradePath.cs b/Assets/Scripts/Upgrades/UpgradePath.cs deleted file mode 100644 index dffa176..0000000 --- a/Assets/Scripts/Upgrades/UpgradePath.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -/** - * Describes a weapon upgrade path, with text description for each level - * (e.g. Dart levels 1-3) - */ - -public class UpgradePath -{ - private int _currentLevel; - private List _levelDesc; - - public UpgradePath(List levelStats, int currentLevel = 0) - { - _levelDesc = levelStats; - _currentLevel = currentLevel; - } - - public int CurrentLevel - { - get { return _currentLevel; } - } - - public void LevelUp() - { - _currentLevel++; - } - - public string GetLevelStats(int level) - { - level -= 1; // indexing starts at 0; - try - { - return _levelDesc[level]; - } - catch (IndexOutOfRangeException e) - { - Debug.Log(e.Message); - return ""; - } - } -} diff --git a/Assets/Scripts/Upgrades/UpgradePath.cs.meta b/Assets/Scripts/Upgrades/UpgradePath.cs.meta deleted file mode 100644 index 7c09fda..0000000 --- a/Assets/Scripts/Upgrades/UpgradePath.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 46e9b815f2e1448409be9ac8841122d4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Upgrades/UpgradeType.cs b/Assets/Scripts/Upgrades/UpgradeType.cs deleted file mode 100644 index 3bb61dd..0000000 --- a/Assets/Scripts/Upgrades/UpgradeType.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public enum UpgradeType -{ - CountUp, - CooldownDown, - DamageUp, - - Dart, - Raven, - Starfish, - - // DLC - Schnitzel -} diff --git a/Assets/Scripts/Upgrades/UpgradeType.cs.meta b/Assets/Scripts/Upgrades/UpgradeType.cs.meta deleted file mode 100644 index 14941d0..0000000 --- a/Assets/Scripts/Upgrades/UpgradeType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d803961e432d5497d87bfd23c841188f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: From 1f052c9aa7fffb8b3fb75f777e9c33ab0f02aa17 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 20:31:30 -0400 Subject: [PATCH 04/16] Add DartUpgradePath, enable by defaultt --- Assets/Prefabs/Weapons/Dart.prefab | 6 +- Assets/Prefabs/Weapons/Raven.prefab | 7 +- Assets/Prefabs/Weapons/Schnitzel.prefab | 4 +- Assets/Prefabs/Weapons/Starfish.prefab | 4 +- Assets/Scenes/BattleScene.unity | 244 +++++------------- Assets/Scripts/Upgrades/LevelOptionUI.cs | 65 ----- Assets/Scripts/Upgrades/LevelUpUI.cs | 10 +- Assets/Scripts/Upgrades/UpgradeBase.cs | 2 +- Assets/Scripts/Upgrades/UpgradeManager.cs | 12 +- .../WeaponUpgrades/DartUpgradePath.cs | 27 ++ .../WeaponUpgrades/DartUpgradePath.cs.meta | 11 + ...rades.cs => ProjectileCountUpgradePath.cs} | 2 +- ...eta => ProjectileCountUpgradePath.cs.meta} | 0 .../{RavenUpgrades.cs => RavenUpgradePath.cs} | 7 +- ...rades.cs.meta => RavenUpgradePath.cs.meta} | 0 .../WeaponUpgrades/WeaponUpgradePath.cs | 17 ++ .../WeaponUpgrades/WeaponUpgradePath.cs.meta | 11 + Assets/Scripts/Weapons/Dart/Dart.cs | 23 +- Assets/Scripts/Weapons/WeaponManager.cs | 12 - 19 files changed, 158 insertions(+), 306 deletions(-) create mode 100644 Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs create mode 100644 Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs.meta rename Assets/Scripts/Upgrades/WeaponUpgrades/{CountUpUpgrades.cs => ProjectileCountUpgradePath.cs} (92%) rename Assets/Scripts/Upgrades/WeaponUpgrades/{CountUpUpgrades.cs.meta => ProjectileCountUpgradePath.cs.meta} (100%) rename Assets/Scripts/Upgrades/WeaponUpgrades/{RavenUpgrades.cs => RavenUpgradePath.cs} (78%) rename Assets/Scripts/Upgrades/WeaponUpgrades/{RavenUpgrades.cs.meta => RavenUpgradePath.cs.meta} (100%) create mode 100644 Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs create mode 100644 Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs.meta diff --git a/Assets/Prefabs/Weapons/Dart.prefab b/Assets/Prefabs/Weapons/Dart.prefab index e604924..b866414 100644 --- a/Assets/Prefabs/Weapons/Dart.prefab +++ b/Assets/Prefabs/Weapons/Dart.prefab @@ -45,10 +45,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _isEnabled: 0 - _startingCooldown: 1.8 - _baseDamage: 10 + _baseCooldown: 1.8 + BaseDamage: 10 _speed: 10 - _rearFiringDartCount: 0 + RearFiringDartCount: 0 _spawnDistanceOutsidePlayer: 1.25 _shootingInterval: 0.4 _areaOfEffectRadius: 0.25 diff --git a/Assets/Prefabs/Weapons/Raven.prefab b/Assets/Prefabs/Weapons/Raven.prefab index e60de53..71dd774 100644 --- a/Assets/Prefabs/Weapons/Raven.prefab +++ b/Assets/Prefabs/Weapons/Raven.prefab @@ -45,9 +45,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _isEnabled: 0 - _startingCooldown: 6 - _baseDamage: 15 + _baseCooldown: 5 + BaseDamage: 15 _speed: 12 - _areaOfEffectRadius: 1 + AreaOfEffectRadius: 1 _spawnDistanceOutsidePlayer: 1.25 + _detectRadius: 12 _ravenProjectilePrefab: {fileID: 1783361906523289645, guid: 73dffc90c37874381bd50b09415a2c82, type: 3} diff --git a/Assets/Prefabs/Weapons/Schnitzel.prefab b/Assets/Prefabs/Weapons/Schnitzel.prefab index c7cd02f..c2609e3 100644 --- a/Assets/Prefabs/Weapons/Schnitzel.prefab +++ b/Assets/Prefabs/Weapons/Schnitzel.prefab @@ -45,8 +45,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _isEnabled: 0 - _startingCooldown: 2.9 - _baseDamage: 8 + _baseCooldown: 3.8 + BaseDamage: 8 _speed: 5 _spawnDistanceOutsidePlayer: 1.25 _shootingInterval: 0.25 diff --git a/Assets/Prefabs/Weapons/Starfish.prefab b/Assets/Prefabs/Weapons/Starfish.prefab index 9240c8b..8013c53 100644 --- a/Assets/Prefabs/Weapons/Starfish.prefab +++ b/Assets/Prefabs/Weapons/Starfish.prefab @@ -45,7 +45,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _isEnabled: 0 - _startingCooldown: 5 - _baseDamage: 8 + _baseCooldown: 5 + BaseDamage: 8 _duration: 5 _starfishProjectilePrefab: {fileID: 4760811041620966471, guid: 33fd1a5d339ac4354ba91c77597adb88, type: 3} diff --git a/Assets/Scenes/BattleScene.unity b/Assets/Scenes/BattleScene.unity index d2f58be..3329a45 100644 --- a/Assets/Scenes/BattleScene.unity +++ b/Assets/Scenes/BattleScene.unity @@ -179,7 +179,7 @@ GameObject: - component: {fileID: 130893741} - component: {fileID: 130893742} m_Layer: 0 - m_Name: RavenUpgrades + m_Name: RavenUpgradePath m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -219,6 +219,7 @@ MonoBehaviour: - heat-seeking bomb targets closest enemy - +33% damage and +20% cooldown! - +60% area of effect + _weaponPrefab: {fileID: 0} _lvl2DamageMod: 1.33 _lvl3AreaOfEffectRadiusMod: 1.6 --- !u!1 &170557571 @@ -890,6 +891,7 @@ Transform: m_Children: - {fileID: 784979737} - {fileID: 130893741} + - {fileID: 1721536220} m_Father: {fileID: 996256050} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &441343835 @@ -7677,7 +7679,7 @@ GameObject: - component: {fileID: 784979737} - component: {fileID: 784979738} m_Layer: 0 - m_Name: CountUpUpgrades + m_Name: ProjectileCountUpgradePath m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -30062,91 +30064,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1608051141} m_CullTransparentMesh: 1 ---- !u!1001 &1608604477 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1882345548} - m_Modifications: - - target: {fileID: -801427770401400621, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: _speed - value: 10 - objectReference: {fileID: 0} - - target: {fileID: -801427770401400621, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: BaseDamage - value: 10 - objectReference: {fileID: 0} - - target: {fileID: -801427770401400621, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: _baseCooldown - value: 1.8 - objectReference: {fileID: 0} - - target: {fileID: 3476222383509152590, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_Name - value: Dart - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} ---- !u!4 &1608604478 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4894158285875328385, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - m_PrefabInstance: {fileID: 1608604477} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1608604479 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: -801427770401400621, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} - m_PrefabInstance: {fileID: 1608604477} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0c84f4f9395044e90875a442a439c87a, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!4 &1634516006 stripped Transform: m_CorrespondingSourceObject: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} @@ -30596,6 +30513,60 @@ Transform: - {fileID: 527090877} m_Father: {fileID: 1577739326} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1721536219 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1721536220} + - component: {fileID: 1721536221} + m_Layer: 0 + m_Name: DartUpgradePath + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1721536220 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1721536219} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 441343834} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1721536221 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1721536219} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a33deb6891a248fdbf845d2c09bf87f, type: 3} + m_Name: + m_EditorClassIdentifier: + _level: 0 + _icon: {fileID: 0} + _title: + _descriptions: + - fires in a straight line + - +1 dart firing backwards + - +50% damage + _weaponPrefab: {fileID: -801427770401400621, guid: dccb7313a4fb0404992368741d48aeb0, type: 3} + _lvl2RearFiringDartCount: 1 + _lvl3DamageMod: 1.6 --- !u!1 &1730555519 GameObject: m_ObjectHideFlags: 0 @@ -30969,99 +30940,6 @@ Transform: - {fileID: 806077992} m_Father: {fileID: 1577739326} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1789346430 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1882345548} - m_Modifications: - - target: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: BaseDamage - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: _isEnabled - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: _ravenPrefab - value: - objectReference: {fileID: 1783361906523289645, guid: 73dffc90c37874381bd50b09415a2c82, type: 3} - - target: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: _baseCooldown - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: _ravenProjectilePrefab - value: - objectReference: {fileID: 1783361906523289645, guid: 73dffc90c37874381bd50b09415a2c82, type: 3} - - target: {fileID: 3476222383509152590, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_Name - value: Raven - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} ---- !u!4 &1789346431 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4894158285875328385, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - m_PrefabInstance: {fileID: 1789346430} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1789346432 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} - m_PrefabInstance: {fileID: 1789346430} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 09b14723eded74f51aa81dacbdbbb280, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &1794298694 GameObject: m_ObjectHideFlags: 0 @@ -31322,8 +31200,6 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1608604478} - - {fileID: 1789346431} - {fileID: 1147372094} - {fileID: 1634516006} m_Father: {fileID: 702887974} @@ -33491,11 +33367,11 @@ PrefabInstance: - target: {fileID: 292671231893397069, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} propertyPath: _dart value: - objectReference: {fileID: 1608604479} + objectReference: {fileID: 0} - target: {fileID: 292671231893397069, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} propertyPath: _raven value: - objectReference: {fileID: 1789346432} + objectReference: {fileID: 0} - target: {fileID: 292671231893397069, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} propertyPath: _starfish value: diff --git a/Assets/Scripts/Upgrades/LevelOptionUI.cs b/Assets/Scripts/Upgrades/LevelOptionUI.cs index 72ef02d..6cda4d6 100644 --- a/Assets/Scripts/Upgrades/LevelOptionUI.cs +++ b/Assets/Scripts/Upgrades/LevelOptionUI.cs @@ -1,40 +1,9 @@ -using System.Collections; -using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class LevelOptionUI : MonoBehaviour { - /* - [SerializeField] - [Tooltip("Sprite for the count++ upgrade")] - private Sprite _countSprite; - - [SerializeField] - [Tooltip("Sprite for the speed++ upgrade")] - private Sprite _speedSprite; - - [SerializeField] - [Tooltip("Sprite for the damage++ upgrade")] - private Sprite _damageSprite; - - [SerializeField] - [Tooltip("Sprite for the dart upgrade")] - private Sprite _dartSprite; - - [SerializeField] - [Tooltip("Sprite for the raven upgrade")] - private Sprite _ravenSprite; - - [SerializeField] - [Tooltip("Sprite for the starfish upgrade")] - private Sprite _starfishSprite; - - [SerializeField] - [Tooltip("Sprite for the schnitzel upgrade")] - private Sprite _schnitzelSprite;*/ - private TextMeshProUGUI _title; private TextMeshProUGUI _description; private TextMeshProUGUI _stats; @@ -62,39 +31,5 @@ public void Set(string title, string description, string stats, Sprite icon) _description.text = description; _stats.text = stats; _icon.sprite = icon; - /* - switch (upgradeType) - { - case UpgradeType.CountUp: - _title.text = "count++"; - _icon.sprite = _countSprite; - break; - case UpgradeType.CooldownDown: - _title.text = "cooldown++"; // should be minus minus? - _icon.sprite = _speedSprite; - break; - case UpgradeType.DamageUp: - _title.text = "damage++"; - _icon.sprite = _damageSprite; - break; - case UpgradeType.Dart: - _title.text = "dart"; - _icon.sprite = _dartSprite; - break; - case UpgradeType.Raven: - _title.text = "raven"; - _icon.sprite = _ravenSprite; - break; - case UpgradeType.Starfish: - _title.text = "starfish"; - _icon.sprite = _starfishSprite; - break; - case UpgradeType.Schnitzel: - _title.text = "schnitzel"; - _icon.sprite = _schnitzelSprite; - break; - default: - break; - }*/ } } diff --git a/Assets/Scripts/Upgrades/LevelUpUI.cs b/Assets/Scripts/Upgrades/LevelUpUI.cs index 172f874..cdcf26d 100644 --- a/Assets/Scripts/Upgrades/LevelUpUI.cs +++ b/Assets/Scripts/Upgrades/LevelUpUI.cs @@ -109,8 +109,8 @@ void OnEnable() Time.timeScale = 0; // get upgrade manager - (UpgradeBase upgradeChoice1, UpgradeBase upgradeChoice2) = - UpgradeManager.Instance.GetRandomUpgradeChoices(); + (UpgradePathBase upgradeChoice1, UpgradePathBase upgradeChoice2) = + UpgradeManager.Instance.GetRandomUpgradePaths(); SetLevelOptionUI(upgradeChoice1, upgradeChoice2); @@ -127,7 +127,7 @@ void OnDisable() /** * Given a set of option choices, update the UI accordingly */ - void SetLevelOptionUI(UpgradeBase option1, UpgradeBase option2) + void SetLevelOptionUI(UpgradePathBase option1, UpgradePathBase option2) { _levelOption1.Set( title: option1.Title, @@ -151,9 +151,9 @@ void SetLevelOptionUI(UpgradeBase option1, UpgradeBase option2) } } - void SelectUpgrade(UpgradeBase selectedUpgrade) + void SelectUpgrade(UpgradePathBase selectedUpgrade) { - UpgradeManager.Instance.UpgradePath(selectedUpgrade); + UpgradeManager.Instance.LevelUpUpgradePath(selectedUpgrade); // resume the game and exit the level up popup Time.timeScale = 1; diff --git a/Assets/Scripts/Upgrades/UpgradeBase.cs b/Assets/Scripts/Upgrades/UpgradeBase.cs index 15ceca8..d594674 100644 --- a/Assets/Scripts/Upgrades/UpgradeBase.cs +++ b/Assets/Scripts/Upgrades/UpgradeBase.cs @@ -1,6 +1,6 @@ using UnityEngine; -public class UpgradeBase : MonoBehaviour +public class UpgradePathBase : MonoBehaviour { private static int MAX_LEVEL = 3; diff --git a/Assets/Scripts/Upgrades/UpgradeManager.cs b/Assets/Scripts/Upgrades/UpgradeManager.cs index d0f26ad..1d5db07 100644 --- a/Assets/Scripts/Upgrades/UpgradeManager.cs +++ b/Assets/Scripts/Upgrades/UpgradeManager.cs @@ -4,7 +4,7 @@ class UpgradeManager : MonoBehaviour { - List _availableUpgrades = new List(); + List _availableUpgrades = new List(); private static UpgradeManager _instance; @@ -22,13 +22,17 @@ public static UpgradeManager Instance public void Awake() { - _availableUpgrades.AddRange(GetComponentsInChildren()); + _availableUpgrades.AddRange(GetComponentsInChildren()); + + // dart starts at level 1 + GetComponentInChildren() + .LevelUp(); } /** * Returns a tuple of random upgrade paths that are valid */ - public (UpgradeBase, UpgradeBase) GetRandomUpgradeChoices() + public (UpgradePathBase, UpgradePathBase) GetRandomUpgradePaths() { int option1 = Random.Range(0, _availableUpgrades.Count); int option2; @@ -43,7 +47,7 @@ public void Awake() return (_availableUpgrades[option1], _availableUpgrades[option2]); } - public void UpgradePath(UpgradeBase upgradePath) + public void LevelUpUpgradePath(UpgradePathBase upgradePath) { upgradePath.LevelUp(); // level up the selected upgrade diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs b/Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs new file mode 100644 index 0000000..05d528a --- /dev/null +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +public class DartUpgradePath : WeaponUpgradePath +{ + [SerializeField] + private int _lvl2RearFiringDartCount = 1; + + [SerializeField] + private float _lvl3DamageMod = 1.6f; + + public override void UpgradeToLevel(int level) + { + var dart = (Dart)_weapon; + switch (_level) + { + case 1: + Activate(); + break; + case 2: + dart.RearFiringDartCount = _lvl2RearFiringDartCount; + break; + case 3: + dart.BaseDamage *= _lvl3DamageMod; + break; + } + } +} diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs.meta b/Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs.meta new file mode 100644 index 0000000..d1867bf --- /dev/null +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a33deb6891a248fdbf845d2c09bf87f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs b/Assets/Scripts/Upgrades/WeaponUpgrades/ProjectileCountUpgradePath.cs similarity index 92% rename from Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs rename to Assets/Scripts/Upgrades/WeaponUpgrades/ProjectileCountUpgradePath.cs index 4ec7c9b..a977d79 100644 --- a/Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/ProjectileCountUpgradePath.cs @@ -1,6 +1,6 @@ using UnityEngine; -class CountUpUpgrades : UpgradeBase +class ProjectileCountUpgradePath : UpgradePathBase { [SerializeField] private int[] _countModifiersPerLevel = { 2, 3, 5 }; diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs.meta b/Assets/Scripts/Upgrades/WeaponUpgrades/ProjectileCountUpgradePath.cs.meta similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/CountUpUpgrades.cs.meta rename to Assets/Scripts/Upgrades/WeaponUpgrades/ProjectileCountUpgradePath.cs.meta diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs b/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgradePath.cs similarity index 78% rename from Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs rename to Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgradePath.cs index 16eba88..1dbc4dc 100644 --- a/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgradePath.cs @@ -1,6 +1,6 @@ using UnityEngine; -public class RavenUpgrades : UpgradeBase +public class RavenUpgradePath : WeaponUpgradePath { [SerializeField] private float _lvl2DamageMod = 1.33f; @@ -10,12 +10,11 @@ public class RavenUpgrades : UpgradeBase public override void UpgradeToLevel(int level) { - // get raven - var raven = FindObjectOfType(); + var raven = (Raven)_weapon; switch (_level) { case 1: - raven.Enable(); + Activate(); break; case 2: raven.BaseDamage *= _lvl2DamageMod; diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs.meta b/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgradePath.cs.meta similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgrades.cs.meta rename to Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgradePath.cs.meta diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs b/Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs new file mode 100644 index 0000000..6f592e2 --- /dev/null +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs @@ -0,0 +1,17 @@ +using UnityEngine; + +public class WeaponUpgradePath : UpgradePathBase +{ + [SerializeField] + private WeaponBase _weaponPrefab; + + protected WeaponBase _weapon; + + public void Activate() + { + _weapon = Instantiate(_weaponPrefab); + _weapon.transform.parent = FindObjectOfType().transform; + + _weapon.Enable(); + } +} diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs.meta b/Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs.meta new file mode 100644 index 0000000..e9901c2 --- /dev/null +++ b/Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 775bb042c709d4427a00b477d28a6dee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapons/Dart/Dart.cs b/Assets/Scripts/Weapons/Dart/Dart.cs index e214f8c..d9a992b 100644 --- a/Assets/Scripts/Weapons/Dart/Dart.cs +++ b/Assets/Scripts/Weapons/Dart/Dart.cs @@ -7,7 +7,7 @@ public class Dart : WeaponBase private float _speed = 10.0f; [SerializeField] - private int _rearFiringDartCount = 0; // NOTE: rear-shooting darts + public int RearFiringDartCount = 0; // NOTE: rear-shooting darts [SerializeField] private float _spawnDistanceOutsidePlayer = 1.25f; @@ -53,7 +53,7 @@ public IEnumerator ShootDarts() for (int i = 0; i < Count; i++) { ShootADart(_dartProjectilePrefab, _player, direction); - if (_rearFiringDartCount > i) + if (RearFiringDartCount > i) { ShootADart(_dartProjectilePrefab, _player, direction * -1); } @@ -64,7 +64,7 @@ public IEnumerator ShootDarts() } // accounting for case where # of backwards darts > # of forwards darts - int remainingDarts = _rearFiringDartCount - Count; + int remainingDarts = RearFiringDartCount - Count; if (remainingDarts > 0) { direction *= -1; @@ -99,21 +99,4 @@ private Vector3 CalculateDirection(GameObject player) return direction; } - - public void Upgrade(int level) - { - if (level == 1) - { - _rearFiringDartCount++; - } - else if (level == 2) - { - BaseDamage *= 1.5f; - } - else if (level == 3) - { - BaseDamage *= 2f; - _rearFiringDartCount += 2; - } - } } diff --git a/Assets/Scripts/Weapons/WeaponManager.cs b/Assets/Scripts/Weapons/WeaponManager.cs index a2db85d..076f08b 100644 --- a/Assets/Scripts/Weapons/WeaponManager.cs +++ b/Assets/Scripts/Weapons/WeaponManager.cs @@ -61,16 +61,4 @@ public void UpgradeCooldown(int level) GlobalCooldownModifier = 0.3f; } } - - public void UpgradeCount(int level) - { - if (level == 3) - { - GlobalCountModifier += 2; - } - else - { - GlobalCountModifier++; - } - } } From 0edb79ddc2dd7425b3fbb25c62806b5b798f4851 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 20:36:53 -0400 Subject: [PATCH 05/16] Move weapon upgrade paths into Scripts/Weapons --- .../SceneManagers/BattleSceneManager.cs | 34 ------------------- .../{UpgradeBase.cs => UpgradePathBase.cs} | 0 ...deBase.cs.meta => UpgradePathBase.cs.meta} | 0 .../Dart}/DartUpgradePath.cs | 0 .../Dart}/DartUpgradePath.cs.meta | 0 .../Raven}/RavenUpgradePath.cs | 0 .../Raven}/RavenUpgradePath.cs.meta | 0 .../UpgradePaths.meta} | 2 +- .../ProjectileCountUpgradePath.cs | 0 .../ProjectileCountUpgradePath.cs.meta | 0 .../WeaponUpgradePath.cs | 0 .../WeaponUpgradePath.cs.meta | 0 12 files changed, 1 insertion(+), 35 deletions(-) rename Assets/Scripts/Upgrades/{UpgradeBase.cs => UpgradePathBase.cs} (100%) rename Assets/Scripts/Upgrades/{UpgradeBase.cs.meta => UpgradePathBase.cs.meta} (100%) rename Assets/Scripts/{Upgrades/WeaponUpgrades => Weapons/Dart}/DartUpgradePath.cs (100%) rename Assets/Scripts/{Upgrades/WeaponUpgrades => Weapons/Dart}/DartUpgradePath.cs.meta (100%) rename Assets/Scripts/{Upgrades/WeaponUpgrades => Weapons/Raven}/RavenUpgradePath.cs (100%) rename Assets/Scripts/{Upgrades/WeaponUpgrades => Weapons/Raven}/RavenUpgradePath.cs.meta (100%) rename Assets/Scripts/{Upgrades/WeaponUpgrades.meta => Weapons/UpgradePaths.meta} (77%) rename Assets/Scripts/{Upgrades/WeaponUpgrades => Weapons/UpgradePaths}/ProjectileCountUpgradePath.cs (100%) rename Assets/Scripts/{Upgrades/WeaponUpgrades => Weapons/UpgradePaths}/ProjectileCountUpgradePath.cs.meta (100%) rename Assets/Scripts/{Upgrades/WeaponUpgrades => Weapons}/WeaponUpgradePath.cs (100%) rename Assets/Scripts/{Upgrades/WeaponUpgrades => Weapons}/WeaponUpgradePath.cs.meta (100%) diff --git a/Assets/Scripts/SceneManagers/BattleSceneManager.cs b/Assets/Scripts/SceneManagers/BattleSceneManager.cs index 431059e..5f8fabe 100644 --- a/Assets/Scripts/SceneManagers/BattleSceneManager.cs +++ b/Assets/Scripts/SceneManagers/BattleSceneManager.cs @@ -772,38 +772,4 @@ private void SpawnPickup() pickup.transform.position = GetRandomSpawnPoint(); _pickupsOnScreen++; } - /* - private void OnUpgradeChosen(UpgradeEventData upgradeEvent) - { - var newLevel = upgradeEvent.Level; - - var weaponManager = Player.Instance.WeaponManager; - - switch (upgradeEvent.UpgradeType) - { - case UpgradeType.CountUp: - weaponManager.UpgradeCount(newLevel); - break; - case UpgradeType.CooldownDown: - weaponManager.UpgradeCooldown(newLevel); - break; - case UpgradeType.DamageUp: - weaponManager.UpgradeDamage(newLevel); - break; - case UpgradeType.Dart: - GameObject.Find("Dart").GetComponent().Upgrade(newLevel); - break; - case UpgradeType.Raven: - GameObject.Find("Raven").GetComponent().Upgrade(newLevel); - break; - case UpgradeType.Starfish: - GameObject.Find("Starfish").GetComponent().Upgrade(newLevel); - break; - case UpgradeType.Schnitzel: - GameObject.Find("Schnitzel").GetComponent().Upgrade(newLevel); - break; - default: - break; - } - }*/ } diff --git a/Assets/Scripts/Upgrades/UpgradeBase.cs b/Assets/Scripts/Upgrades/UpgradePathBase.cs similarity index 100% rename from Assets/Scripts/Upgrades/UpgradeBase.cs rename to Assets/Scripts/Upgrades/UpgradePathBase.cs diff --git a/Assets/Scripts/Upgrades/UpgradeBase.cs.meta b/Assets/Scripts/Upgrades/UpgradePathBase.cs.meta similarity index 100% rename from Assets/Scripts/Upgrades/UpgradeBase.cs.meta rename to Assets/Scripts/Upgrades/UpgradePathBase.cs.meta diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs b/Assets/Scripts/Weapons/Dart/DartUpgradePath.cs similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs rename to Assets/Scripts/Weapons/Dart/DartUpgradePath.cs diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs.meta b/Assets/Scripts/Weapons/Dart/DartUpgradePath.cs.meta similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/DartUpgradePath.cs.meta rename to Assets/Scripts/Weapons/Dart/DartUpgradePath.cs.meta diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgradePath.cs b/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgradePath.cs rename to Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgradePath.cs.meta b/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs.meta similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/RavenUpgradePath.cs.meta rename to Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs.meta diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades.meta b/Assets/Scripts/Weapons/UpgradePaths.meta similarity index 77% rename from Assets/Scripts/Upgrades/WeaponUpgrades.meta rename to Assets/Scripts/Weapons/UpgradePaths.meta index ff3d165..13d47b4 100644 --- a/Assets/Scripts/Upgrades/WeaponUpgrades.meta +++ b/Assets/Scripts/Weapons/UpgradePaths.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e9d5eba71c425438b8d4461549c7493d +guid: 95eb746684fe44c7689077a9823a70da folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/ProjectileCountUpgradePath.cs b/Assets/Scripts/Weapons/UpgradePaths/ProjectileCountUpgradePath.cs similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/ProjectileCountUpgradePath.cs rename to Assets/Scripts/Weapons/UpgradePaths/ProjectileCountUpgradePath.cs diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/ProjectileCountUpgradePath.cs.meta b/Assets/Scripts/Weapons/UpgradePaths/ProjectileCountUpgradePath.cs.meta similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/ProjectileCountUpgradePath.cs.meta rename to Assets/Scripts/Weapons/UpgradePaths/ProjectileCountUpgradePath.cs.meta diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs b/Assets/Scripts/Weapons/WeaponUpgradePath.cs similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs rename to Assets/Scripts/Weapons/WeaponUpgradePath.cs diff --git a/Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs.meta b/Assets/Scripts/Weapons/WeaponUpgradePath.cs.meta similarity index 100% rename from Assets/Scripts/Upgrades/WeaponUpgrades/WeaponUpgradePath.cs.meta rename to Assets/Scripts/Weapons/WeaponUpgradePath.cs.meta From 9ada2b468c31b85422570d868adddce78d1cffc6 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 20:43:53 -0400 Subject: [PATCH 06/16] Fix wrong level in level up UI --- Assets/Scripts/Upgrades/UpgradePathBase.cs | 2 +- Assets/Scripts/Weapons/Raven/Raven.cs | 17 ----------------- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/Assets/Scripts/Upgrades/UpgradePathBase.cs b/Assets/Scripts/Upgrades/UpgradePathBase.cs index d594674..51a4c76 100644 --- a/Assets/Scripts/Upgrades/UpgradePathBase.cs +++ b/Assets/Scripts/Upgrades/UpgradePathBase.cs @@ -6,7 +6,7 @@ public class UpgradePathBase : MonoBehaviour [SerializeField] protected int _level = 0; // 0 => inactive, 1 => level 1, ... - public int Level => _level + 1; + public int Level => _level; public int NextLevel => Level + 1; [SerializeField] diff --git a/Assets/Scripts/Weapons/Raven/Raven.cs b/Assets/Scripts/Weapons/Raven/Raven.cs index 219ae0a..3af6bf8 100644 --- a/Assets/Scripts/Weapons/Raven/Raven.cs +++ b/Assets/Scripts/Weapons/Raven/Raven.cs @@ -102,21 +102,4 @@ private List GetTargets(float radius, int count) } return targets; } - - public void Upgrade(int level) - { - if (level == 1) - { - _isEnabled = true; - } - else if (level == 2) - { - BaseDamage = 2f; - _baseCooldown *= 0.8f; - } - else if (level == 3) - { - AreaOfEffectRadius = 1.6f; - } - } } From 4847a43b8f3c89ab6a9e234f2b1ccca7a86f506a Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:42:06 -0400 Subject: [PATCH 07/16] Add Schnitzel upgrade path, fix some random bugs --- Assets/Prefabs/Weapons/Dart.prefab | 2 +- Assets/Prefabs/Weapons/Raven.prefab | 2 +- Assets/Prefabs/Weapons/Schnitzel.prefab | 4 +- Assets/Prefabs/Weapons/Starfish.prefab | 2 +- Assets/Scenes/BattleScene.unity | 153 +++++++----------- Assets/Scripts/Characters/Player.cs | 4 - .../Scripts/Weapons/Raven/RavenUpgradePath.cs | 6 +- Assets/Scripts/Weapons/Schnitzel/Schnitzel.cs | 20 +-- .../Weapons/Schnitzel/SchnitzelUpgradePath.cs | 27 ++++ .../Schnitzel/SchnitzelUpgradePath.cs.meta | 11 ++ Assets/Scripts/Weapons/Starfish/Starfish.cs | 2 +- Assets/Scripts/Weapons/WeaponBase.cs | 4 +- Assets/Scripts/Weapons/WeaponManager.cs | 7 + Assets/Scripts/Weapons/WeaponUpgradePath.cs | 4 +- 14 files changed, 120 insertions(+), 128 deletions(-) create mode 100644 Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs create mode 100644 Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs.meta diff --git a/Assets/Prefabs/Weapons/Dart.prefab b/Assets/Prefabs/Weapons/Dart.prefab index b866414..9ce61aa 100644 --- a/Assets/Prefabs/Weapons/Dart.prefab +++ b/Assets/Prefabs/Weapons/Dart.prefab @@ -45,7 +45,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _isEnabled: 0 - _baseCooldown: 1.8 + BaseCooldown: 1.8 BaseDamage: 10 _speed: 10 RearFiringDartCount: 0 diff --git a/Assets/Prefabs/Weapons/Raven.prefab b/Assets/Prefabs/Weapons/Raven.prefab index 71dd774..4efd85d 100644 --- a/Assets/Prefabs/Weapons/Raven.prefab +++ b/Assets/Prefabs/Weapons/Raven.prefab @@ -45,7 +45,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _isEnabled: 0 - _baseCooldown: 5 + BaseCooldown: 4 BaseDamage: 15 _speed: 12 AreaOfEffectRadius: 1 diff --git a/Assets/Prefabs/Weapons/Schnitzel.prefab b/Assets/Prefabs/Weapons/Schnitzel.prefab index c2609e3..f182d53 100644 --- a/Assets/Prefabs/Weapons/Schnitzel.prefab +++ b/Assets/Prefabs/Weapons/Schnitzel.prefab @@ -45,10 +45,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _isEnabled: 0 - _baseCooldown: 3.8 + BaseCooldown: 2.8 BaseDamage: 8 _speed: 5 _spawnDistanceOutsidePlayer: 1.25 _shootingInterval: 0.25 - _scale: 1 + Scale: 1 _schnitzelProjectilePrefab: {fileID: 8194018987037890526, guid: af50a2a7f0c834ebf90a6f2724b0f298, type: 3} diff --git a/Assets/Prefabs/Weapons/Starfish.prefab b/Assets/Prefabs/Weapons/Starfish.prefab index 8013c53..7861903 100644 --- a/Assets/Prefabs/Weapons/Starfish.prefab +++ b/Assets/Prefabs/Weapons/Starfish.prefab @@ -45,7 +45,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _isEnabled: 0 - _baseCooldown: 5 + BaseCooldown: 5 BaseDamage: 8 _duration: 5 _starfishProjectilePrefab: {fileID: 4760811041620966471, guid: 33fd1a5d339ac4354ba91c77597adb88, type: 3} diff --git a/Assets/Scenes/BattleScene.unity b/Assets/Scenes/BattleScene.unity index 3329a45..6cb7708 100644 --- a/Assets/Scenes/BattleScene.unity +++ b/Assets/Scenes/BattleScene.unity @@ -219,7 +219,7 @@ MonoBehaviour: - heat-seeking bomb targets closest enemy - +33% damage and +20% cooldown! - +60% area of effect - _weaponPrefab: {fileID: 0} + _weaponPrefab: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} _lvl2DamageMod: 1.33 _lvl3AreaOfEffectRadiusMod: 1.6 --- !u!1 &170557571 @@ -892,6 +892,7 @@ Transform: - {fileID: 784979737} - {fileID: 130893741} - {fileID: 1721536220} + - {fileID: 1836248121} m_Father: {fileID: 996256050} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &441343835 @@ -7725,79 +7726,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 3600334310735166755, guid: b5ed0a0f1681f414cb7f4e96615eff9e, type: 3} m_PrefabInstance: {fileID: 449849008} m_PrefabAsset: {fileID: 0} ---- !u!1001 &809693221 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1882345548} - m_Modifications: - - target: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: BaseDamage - value: 8 - objectReference: {fileID: 0} - - target: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: _isEnabled - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: _baseCooldown - value: 2.8 - objectReference: {fileID: 0} - - target: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: _schnitzelProjectilePrefab - value: - objectReference: {fileID: 8194018987037890526, guid: af50a2a7f0c834ebf90a6f2724b0f298, type: 3} - - target: {fileID: 3476222383509152590, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_Name - value: Schnitzel - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} --- !u!1001 &854700013 PrefabInstance: m_ObjectHideFlags: 0 @@ -30064,22 +29992,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1608051141} m_CullTransparentMesh: 1 ---- !u!4 &1634516006 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4894158285875328385, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - m_PrefabInstance: {fileID: 809693221} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1634516007 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} - m_PrefabInstance: {fileID: 809693221} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d279d45005cbf471da3528a6f4e2e03b, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &1635123374 PrefabInstance: m_ObjectHideFlags: 0 @@ -30558,8 +30470,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _level: 0 - _icon: {fileID: 0} - _title: + _icon: {fileID: 21300000, guid: 7065380beeb504112b67e70f625d51e3, type: 3} + _title: Dart _descriptions: - fires in a straight line - +1 dart firing backwards @@ -30992,6 +30904,60 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Softness: {x: 0, y: 0} +--- !u!1 &1836248120 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1836248121} + - component: {fileID: 1836248122} + m_Layer: 0 + m_Name: SchnitzelUpgradePath + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1836248121 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1836248120} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 441343834} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1836248122 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1836248120} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4b581e32dca44837b775e26609bb852, type: 3} + m_Name: + m_EditorClassIdentifier: + _level: 0 + _icon: {fileID: 21300000, guid: acf14ff16f87c4b4db7ad79a39aab264, type: 3} + _title: Schnitzel + _descriptions: + - it's like an axe + - +40% area of effect + - +30% area of effect + _weaponPrefab: {fileID: -2724762005279238218, guid: f29d7771c50b64b0f9a0a54f2a12292a, type: 3} + _lvl2Scale: 1.4 + _lvl3Scale: 1.3 --- !u!1 &1838798710 GameObject: m_ObjectHideFlags: 0 @@ -31201,7 +31167,6 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1147372094} - - {fileID: 1634516006} m_Father: {fileID: 702887974} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1882345549 @@ -33379,7 +33344,7 @@ PrefabInstance: - target: {fileID: 292671231893397069, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} propertyPath: _schnitzel value: - objectReference: {fileID: 1634516007} + objectReference: {fileID: 0} - target: {fileID: 292671231893397069, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} propertyPath: WeaponManager value: diff --git a/Assets/Scripts/Characters/Player.cs b/Assets/Scripts/Characters/Player.cs index 5136f80..a283f95 100644 --- a/Assets/Scripts/Characters/Player.cs +++ b/Assets/Scripts/Characters/Player.cs @@ -1,9 +1,5 @@ using System; using System.Collections; -using System.Collections.Generic; -using System.Linq; -using Unity.Collections; -using Unity.VisualScripting; using UnityEngine; public class Player : MonoBehaviour diff --git a/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs b/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs index 1dbc4dc..5860b79 100644 --- a/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs +++ b/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs @@ -3,10 +3,11 @@ public class RavenUpgradePath : WeaponUpgradePath { [SerializeField] - private float _lvl2DamageMod = 1.33f; + private float _lvl2DamageMod; + private float _lvl2CooldownMod; [SerializeField] - private float _lvl3AreaOfEffectRadiusMod = 1.6f; + private float _lvl3AreaOfEffectRadiusMod; public override void UpgradeToLevel(int level) { @@ -18,6 +19,7 @@ public override void UpgradeToLevel(int level) break; case 2: raven.BaseDamage *= _lvl2DamageMod; + raven.BaseCooldown *= _lvl2CooldownMod; break; case 3: raven.AreaOfEffectRadius *= _lvl3AreaOfEffectRadiusMod; diff --git a/Assets/Scripts/Weapons/Schnitzel/Schnitzel.cs b/Assets/Scripts/Weapons/Schnitzel/Schnitzel.cs index fbc0f19..8cfc9ca 100644 --- a/Assets/Scripts/Weapons/Schnitzel/Schnitzel.cs +++ b/Assets/Scripts/Weapons/Schnitzel/Schnitzel.cs @@ -13,7 +13,7 @@ public class Schnitzel : WeaponBase private float _shootingInterval = 0.25f; // time between consecutive schnitzel [SerializeField] - private float _scale = 1.0f; + public float Scale = 1.0f; [SerializeField] private SchnitzelProjectile _schnitzelProjectilePrefab; @@ -63,24 +63,8 @@ private void ShootOneSchnitzel(SchnitzelProjectile prefab, GameObject player, Ve player.transform.position + direction.normalized * _spawnDistanceOutsidePlayer; // adjust scale - schnitzel.transform.localScale = new Vector3(_scale, _scale, _scale); + schnitzel.transform.localScale = new Vector3(Scale, Scale, Scale); schnitzel.SetDirection(direction); } - - public void Upgrade(int level) - { - if (level == 1) - { - _isEnabled = true; - } - else if (level == 2) - { - _scale *= 1.4f; - } - else if (level == 3) - { - _scale *= 1.3f; - } - } } diff --git a/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs b/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs new file mode 100644 index 0000000..f52caf6 --- /dev/null +++ b/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +class SchnitzelUpgradePath : WeaponUpgradePath +{ + [SerializeField] + private float _lvl2Scale; + + [SerializeField] + private float _lvl3Scale; + + public override void UpgradeToLevel(int level) + { + var schnitzel = (Schnitzel)_weapon; + switch (_level) + { + case 1: + Activate(); + break; + case 2: + schnitzel.Scale *= _lvl2Scale; + break; + case 3: + schnitzel.Scale *= _lvl3Scale; + break; + } + } +} diff --git a/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs.meta b/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs.meta new file mode 100644 index 0000000..23d4460 --- /dev/null +++ b/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f4b581e32dca44837b775e26609bb852 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapons/Starfish/Starfish.cs b/Assets/Scripts/Weapons/Starfish/Starfish.cs index 5ea63f5..2a8412b 100644 --- a/Assets/Scripts/Weapons/Starfish/Starfish.cs +++ b/Assets/Scripts/Weapons/Starfish/Starfish.cs @@ -49,7 +49,7 @@ public void Upgrade(int level) else if (level == 3) { _duration *= 1.5f; - _baseCooldown *= 0.7f; + BaseCooldown *= 0.7f; } } } diff --git a/Assets/Scripts/Weapons/WeaponBase.cs b/Assets/Scripts/Weapons/WeaponBase.cs index 64deefa..015ea4f 100644 --- a/Assets/Scripts/Weapons/WeaponBase.cs +++ b/Assets/Scripts/Weapons/WeaponBase.cs @@ -6,12 +6,12 @@ public class WeaponBase : MonoBehaviour protected bool _isEnabled = false; [SerializeField] - protected float _baseCooldown; + public float BaseCooldown; [SerializeField] public float BaseDamage; - public float Cooldown => _baseCooldown * _weaponManager.GlobalCooldownModifier; + public float Cooldown => BaseCooldown * _weaponManager.GlobalCooldownModifier; public int Damage => (int)(_weaponManager.GlobalDamageModifier * BaseDamage); public int Count => _weaponManager.GlobalCountModifier; diff --git a/Assets/Scripts/Weapons/WeaponManager.cs b/Assets/Scripts/Weapons/WeaponManager.cs index 076f08b..28bf3e5 100644 --- a/Assets/Scripts/Weapons/WeaponManager.cs +++ b/Assets/Scripts/Weapons/WeaponManager.cs @@ -19,6 +19,13 @@ public void Awake() _weapons.AddRange(GetComponentsInChildren()); } + public void Add(WeaponBase weapon) + { + weapon.transform.parent = transform; + + _weapons.Add(weapon); + } + public void Update() { foreach (var weapon in _weapons) diff --git a/Assets/Scripts/Weapons/WeaponUpgradePath.cs b/Assets/Scripts/Weapons/WeaponUpgradePath.cs index 6f592e2..40e7115 100644 --- a/Assets/Scripts/Weapons/WeaponUpgradePath.cs +++ b/Assets/Scripts/Weapons/WeaponUpgradePath.cs @@ -10,8 +10,8 @@ public class WeaponUpgradePath : UpgradePathBase public void Activate() { _weapon = Instantiate(_weaponPrefab); - _weapon.transform.parent = FindObjectOfType().transform; - _weapon.Enable(); + + Player.Instance.WeaponManager.Add(_weapon); } } From 05854f69396f4b27dd4403313724a6a88e169852 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:47:46 -0400 Subject: [PATCH 08/16] Fix raven cooldown being misset to 0 on lvl 2 --- Assets/Scenes/BattleScene.unity | 1 + Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Assets/Scenes/BattleScene.unity b/Assets/Scenes/BattleScene.unity index 6cb7708..088949d 100644 --- a/Assets/Scenes/BattleScene.unity +++ b/Assets/Scenes/BattleScene.unity @@ -221,6 +221,7 @@ MonoBehaviour: - +60% area of effect _weaponPrefab: {fileID: 2205568597176363839, guid: 4c3545b2234564ab382559e5e2db585c, type: 3} _lvl2DamageMod: 1.33 + _lvl2CooldownMod: 0.8 _lvl3AreaOfEffectRadiusMod: 1.6 --- !u!1 &170557571 GameObject: diff --git a/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs b/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs index 5860b79..da13b07 100644 --- a/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs +++ b/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs @@ -4,6 +4,8 @@ public class RavenUpgradePath : WeaponUpgradePath { [SerializeField] private float _lvl2DamageMod; + + [SerializeField] private float _lvl2CooldownMod; [SerializeField] From 85c2e8a48a9bd7994e67b65a72f1e203f3aba82c Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:58:18 -0400 Subject: [PATCH 09/16] Hardcore initial upgrade values to be safe --- Assets/Scripts/Upgrades/UpgradePathBase.cs | 9 +++++++-- Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs | 6 +++--- Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs | 4 ++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Assets/Scripts/Upgrades/UpgradePathBase.cs b/Assets/Scripts/Upgrades/UpgradePathBase.cs index 51a4c76..bf17a24 100644 --- a/Assets/Scripts/Upgrades/UpgradePathBase.cs +++ b/Assets/Scripts/Upgrades/UpgradePathBase.cs @@ -14,12 +14,17 @@ public class UpgradePathBase : MonoBehaviour public Sprite Icon => _icon; [SerializeField] - protected string _title; + protected string _title = "n/a"; public string Title => _title; [SerializeField] // NOTE: _descriptions starts at index 0, but level starts at 1 - protected string[] _descriptions; + protected string[] _descriptions = + { + "Level 1 description", + "Level 2 description", + "Level 3 description" + }; public string NextDescription => _descriptions[_level]; private void Awake() diff --git a/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs b/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs index da13b07..18e6b7f 100644 --- a/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs +++ b/Assets/Scripts/Weapons/Raven/RavenUpgradePath.cs @@ -3,13 +3,13 @@ public class RavenUpgradePath : WeaponUpgradePath { [SerializeField] - private float _lvl2DamageMod; + private float _lvl2DamageMod = 1.33f; [SerializeField] - private float _lvl2CooldownMod; + private float _lvl2CooldownMod = 0.8f; [SerializeField] - private float _lvl3AreaOfEffectRadiusMod; + private float _lvl3AreaOfEffectRadiusMod = 1.5f; public override void UpgradeToLevel(int level) { diff --git a/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs b/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs index f52caf6..e6b8275 100644 --- a/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs +++ b/Assets/Scripts/Weapons/Schnitzel/SchnitzelUpgradePath.cs @@ -3,10 +3,10 @@ class SchnitzelUpgradePath : WeaponUpgradePath { [SerializeField] - private float _lvl2Scale; + private float _lvl2Scale = 1.4f; [SerializeField] - private float _lvl3Scale; + private float _lvl3Scale = 1.3f; public override void UpgradeToLevel(int level) { From 4aaf9389838a7ed213c1012b297836dfe436eb29 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:06:40 -0400 Subject: [PATCH 10/16] Fix bug where knockback was causing dart enemies not to be hit --- Assets/Scripts/Weapons/Dart/DartProjectile.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Weapons/Dart/DartProjectile.cs b/Assets/Scripts/Weapons/Dart/DartProjectile.cs index f2ca20a..b8901de 100644 --- a/Assets/Scripts/Weapons/Dart/DartProjectile.cs +++ b/Assets/Scripts/Weapons/Dart/DartProjectile.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using UnityEngine; public class DartProjectile : ProjectileBase @@ -32,7 +33,15 @@ override protected void DamageEnemy(Enemy initialEnemy) // why 5000? -- the result of experimenting with different values (!) initialEnemy.Knockback(_direction, 5000); + // deal damage to initial enemy + initialEnemy.TakeDamage(_damage); + // dart actually does some minor splash damage - SplashDamage(initialEnemy.transform.position, _areaOfEffectRadius, _damage); + SplashDamage( + initialEnemy.transform.position, + _areaOfEffectRadius, + _damage, + new HashSet() { initialEnemy } + ); } } From d25e18ea37c05c4daacccfb013f4cb0d45286469 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:28:28 -0400 Subject: [PATCH 11/16] Add Starfish WeaponUpgradePath --- Assets/Scenes/BattleScene.unity | 143 +++++++----------- Assets/Scripts/Weapons/Starfish/Starfish.cs | 26 +--- .../Weapons/Starfish/StarfishUpgradePath.cs | 29 ++++ .../Starfish/StarfishUpgradePath.cs.meta | 11 ++ 4 files changed, 102 insertions(+), 107 deletions(-) create mode 100644 Assets/Scripts/Weapons/Starfish/StarfishUpgradePath.cs create mode 100644 Assets/Scripts/Weapons/Starfish/StarfishUpgradePath.cs.meta diff --git a/Assets/Scenes/BattleScene.unity b/Assets/Scenes/BattleScene.unity index 088949d..e4bb022 100644 --- a/Assets/Scenes/BattleScene.unity +++ b/Assets/Scenes/BattleScene.unity @@ -891,9 +891,10 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 784979737} + - {fileID: 1836248121} - {fileID: 130893741} - {fileID: 1721536220} - - {fileID: 1836248121} + - {fileID: 1271167823} m_Father: {fileID: 996256050} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &441343835 @@ -8301,22 +8302,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1116665113} m_CullTransparentMesh: 1 ---- !u!4 &1147372094 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - m_PrefabInstance: {fileID: 2106700609} - m_PrefabAsset: {fileID: 0} ---- !u!114 &1147372095 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 5358019133310574137, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - m_PrefabInstance: {fileID: 2106700609} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fa634c4596c7c42a08aaedd43d7be1d3, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &1213143403 GameObject: m_ObjectHideFlags: 0 @@ -8407,6 +8392,60 @@ Transform: m_CorrespondingSourceObject: {fileID: 3600334310735166755, guid: ce6ca319e4496403782aea5ae869c333, type: 3} m_PrefabInstance: {fileID: 366499900} m_PrefabAsset: {fileID: 0} +--- !u!1 &1271167822 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1271167823} + - component: {fileID: 1271167824} + m_Layer: 0 + m_Name: StarfishUpgradePath + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1271167823 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271167822} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 441343834} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1271167824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271167822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a6cefa1fc849046b7b16b19f2897a61b, type: 3} + m_Name: + m_EditorClassIdentifier: + _level: 0 + _icon: {fileID: 900386594, guid: f973a0cae040d40648faf1d1eab27ad7, type: 3} + _title: Starfish + _descriptions: + - orbits around you, wreaking havoc + - +20% orbit duration + - +50% orbit duration and -30% cooldown! + _weaponPrefab: {fileID: 5358019133310574137, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} + _lvl2DurationMod: 1.2 + _lvl3DurationMod: 1.5 --- !u!4 &1306705493 stripped Transform: m_CorrespondingSourceObject: {fileID: 3600334310735166755, guid: ce6ca319e4496403782aea5ae869c333, type: 3} @@ -31166,8 +31205,7 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1147372094} + m_Children: [] m_Father: {fileID: 702887974} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1882345549 @@ -31682,71 +31720,6 @@ Transform: - {fileID: 415351602} m_Father: {fileID: 1577739326} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &2106700609 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1882345548} - m_Modifications: - - target: {fileID: 3476222383509152590, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_Name - value: Starfish - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4894158285875328385, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5358019133310574137, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: BaseDamage - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 5358019133310574137, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} - propertyPath: _baseCooldown - value: 5 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: b2fbcc052753c4374a4beea0c77b6ebb, type: 3} --- !u!1 &2111087225 GameObject: m_ObjectHideFlags: 0 @@ -33341,7 +33314,7 @@ PrefabInstance: - target: {fileID: 292671231893397069, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} propertyPath: _starfish value: - objectReference: {fileID: 1147372095} + objectReference: {fileID: 0} - target: {fileID: 292671231893397069, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} propertyPath: _schnitzel value: diff --git a/Assets/Scripts/Weapons/Starfish/Starfish.cs b/Assets/Scripts/Weapons/Starfish/Starfish.cs index 2a8412b..52ddd4d 100644 --- a/Assets/Scripts/Weapons/Starfish/Starfish.cs +++ b/Assets/Scripts/Weapons/Starfish/Starfish.cs @@ -3,7 +3,7 @@ public class Starfish : WeaponBase { [SerializeField] - private float _duration = 5f; + public float Duration = 5f; [SerializeField] private StarfishProjectile _starfishProjectilePrefab; @@ -11,13 +11,13 @@ public class Starfish : WeaponBase public void Start() { // hack; when starfish inits, time elapsed starts at duration (see CanFire note) - _timeElapsedSinceLastFire = _duration; + _timeElapsedSinceLastFire = Duration; } public override bool CanFire() { // starfish cooldown doesn't reset until duration is over - return _isEnabled && _timeElapsedSinceLastFire >= Cooldown + _duration; + return _isEnabled && _timeElapsedSinceLastFire >= Cooldown + Duration; } public override void Fire() @@ -30,26 +30,8 @@ public override void Fire() for (int i = 0; i < Count; i++) { var starfish = Instantiate(_starfishProjectilePrefab); - starfish.Initialize(Damage, _duration, degreesBetweenStarfish * i); + starfish.Initialize(Damage, Duration, degreesBetweenStarfish * i); starfish.transform.parent = this.transform; } } - - public void Upgrade(int level) - { - if (level == 1) - { - _isEnabled = true; - } - else if (level == 2) - { - _duration *= 1.2f; - BaseDamage *= 1.2f; - } - else if (level == 3) - { - _duration *= 1.5f; - BaseCooldown *= 0.7f; - } - } } diff --git a/Assets/Scripts/Weapons/Starfish/StarfishUpgradePath.cs b/Assets/Scripts/Weapons/Starfish/StarfishUpgradePath.cs new file mode 100644 index 0000000..d16e37f --- /dev/null +++ b/Assets/Scripts/Weapons/Starfish/StarfishUpgradePath.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +class StarfishUpgradePath : WeaponUpgradePath +{ + [SerializeField] + private float _lvl2DurationMod = 1.2f; + + [SerializeField] + private float _lvl3DurationMod = 1.5f; + private float _lvl3CooldownMod = 0.7f; + + public override void UpgradeToLevel(int level) + { + var starfish = (Starfish)_weapon; + switch (_level) + { + case 1: + Activate(); + break; + case 2: + starfish.Duration *= _lvl2DurationMod; + break; + case 3: + starfish.Duration *= _lvl3DurationMod; + starfish.BaseCooldown *= _lvl3CooldownMod; + break; + } + } +} diff --git a/Assets/Scripts/Weapons/Starfish/StarfishUpgradePath.cs.meta b/Assets/Scripts/Weapons/Starfish/StarfishUpgradePath.cs.meta new file mode 100644 index 0000000..60389db --- /dev/null +++ b/Assets/Scripts/Weapons/Starfish/StarfishUpgradePath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a6cefa1fc849046b7b16b19f2897a61b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From e726fd1ef14c877b7eef73bb0aa48aacf9ebe197 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Sun, 1 Sep 2024 23:47:26 -0400 Subject: [PATCH 12/16] Add ProjectileCount upgrade path --- Assets/Scenes/BattleScene.unity | 56 +++++++++++++++++++ .../{UpgradePaths.meta => GlobalUgrades.meta} | 0 .../GlobalUgrades/DamageUpgradePath.cs | 30 ++++++++++ .../GlobalUgrades/DamageUpgradePath.cs.meta | 11 ++++ .../ProjectileCountUpgradePath.cs | 0 .../ProjectileCountUpgradePath.cs.meta | 0 6 files changed, 97 insertions(+) rename Assets/Scripts/Weapons/{UpgradePaths.meta => GlobalUgrades.meta} (100%) create mode 100644 Assets/Scripts/Weapons/GlobalUgrades/DamageUpgradePath.cs create mode 100644 Assets/Scripts/Weapons/GlobalUgrades/DamageUpgradePath.cs.meta rename Assets/Scripts/Weapons/{UpgradePaths => GlobalUgrades}/ProjectileCountUpgradePath.cs (100%) rename Assets/Scripts/Weapons/{UpgradePaths => GlobalUgrades}/ProjectileCountUpgradePath.cs.meta (100%) diff --git a/Assets/Scenes/BattleScene.unity b/Assets/Scenes/BattleScene.unity index e4bb022..c2fdccf 100644 --- a/Assets/Scenes/BattleScene.unity +++ b/Assets/Scenes/BattleScene.unity @@ -891,6 +891,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 784979737} + - {fileID: 1101724734} - {fileID: 1836248121} - {fileID: 130893741} - {fileID: 1721536220} @@ -8088,6 +8089,61 @@ Transform: - {fileID: 441343834} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1101724733 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1101724734} + - component: {fileID: 1101724735} + m_Layer: 0 + m_Name: DamageUpgradePath + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1101724734 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101724733} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 441343834} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1101724735 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101724733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3728804885a26419889b13663b87eaa8, type: 3} + m_Name: + m_EditorClassIdentifier: + _level: 0 + _icon: {fileID: 21300000, guid: a45e39616891d4a509f1da3f2d7d42aa, type: 3} + _title: Damage++ + _descriptions: + - +30% damage + - +25% damage + - +25% damage + _damageModifiersPerLevel: + - 1.3 + - 1.25 + - 1.25 --- !u!4 &1102877439 stripped Transform: m_CorrespondingSourceObject: {fileID: 3600334310735166755, guid: 4ab86a383f1ae471d98843b26bdc03cb, type: 3} diff --git a/Assets/Scripts/Weapons/UpgradePaths.meta b/Assets/Scripts/Weapons/GlobalUgrades.meta similarity index 100% rename from Assets/Scripts/Weapons/UpgradePaths.meta rename to Assets/Scripts/Weapons/GlobalUgrades.meta diff --git a/Assets/Scripts/Weapons/GlobalUgrades/DamageUpgradePath.cs b/Assets/Scripts/Weapons/GlobalUgrades/DamageUpgradePath.cs new file mode 100644 index 0000000..c63ee9c --- /dev/null +++ b/Assets/Scripts/Weapons/GlobalUgrades/DamageUpgradePath.cs @@ -0,0 +1,30 @@ +using UnityEngine; + +public class DamageUpgradePath : UpgradePathBase +{ + [SerializeField] + private float[] _damageModifiersPerLevel = { 1.3f, 1.25f, 1.25f }; + + public override void UpgradeToLevel(int level) + { + var weaponManager = Player.Instance.WeaponManager; + switch (_level) + { + case 1: + weaponManager.GlobalDamageModifier *= _damageModifiersPerLevel[0]; + break; + case 2: + weaponManager.GlobalDamageModifier *= _damageModifiersPerLevel[1]; + break; + case 3: + weaponManager.GlobalDamageModifier *= _damageModifiersPerLevel[2]; + break; + } + } +} +/* + + { + UpgradeType.DamageUp, + new UpgradePath(new List { "+30% damage", "+60% damage", "+100% damage!" }) + },*/ diff --git a/Assets/Scripts/Weapons/GlobalUgrades/DamageUpgradePath.cs.meta b/Assets/Scripts/Weapons/GlobalUgrades/DamageUpgradePath.cs.meta new file mode 100644 index 0000000..0466219 --- /dev/null +++ b/Assets/Scripts/Weapons/GlobalUgrades/DamageUpgradePath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3728804885a26419889b13663b87eaa8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Weapons/UpgradePaths/ProjectileCountUpgradePath.cs b/Assets/Scripts/Weapons/GlobalUgrades/ProjectileCountUpgradePath.cs similarity index 100% rename from Assets/Scripts/Weapons/UpgradePaths/ProjectileCountUpgradePath.cs rename to Assets/Scripts/Weapons/GlobalUgrades/ProjectileCountUpgradePath.cs diff --git a/Assets/Scripts/Weapons/UpgradePaths/ProjectileCountUpgradePath.cs.meta b/Assets/Scripts/Weapons/GlobalUgrades/ProjectileCountUpgradePath.cs.meta similarity index 100% rename from Assets/Scripts/Weapons/UpgradePaths/ProjectileCountUpgradePath.cs.meta rename to Assets/Scripts/Weapons/GlobalUgrades/ProjectileCountUpgradePath.cs.meta From cad412ba1e2fa9a38a649d598c2dee4bea9e1a24 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:07:42 -0400 Subject: [PATCH 13/16] Add Cooldown upgradepath --- Assets/Prefabs/Characters/Player.prefab | 52 ++++++++- Assets/Scenes/BattleScene.unity | 101 ++++++++++-------- .../GlobalUgrades/CooldownUpgradePath.cs | 21 ++++ .../GlobalUgrades/CooldownUpgradePath.cs.meta | 11 ++ 4 files changed, 138 insertions(+), 47 deletions(-) create mode 100644 Assets/Scripts/Weapons/GlobalUgrades/CooldownUpgradePath.cs create mode 100644 Assets/Scripts/Weapons/GlobalUgrades/CooldownUpgradePath.cs.meta diff --git a/Assets/Prefabs/Characters/Player.prefab b/Assets/Prefabs/Characters/Player.prefab index 949ccfa..14dda20 100644 --- a/Assets/Prefabs/Characters/Player.prefab +++ b/Assets/Prefabs/Characters/Player.prefab @@ -181,6 +181,7 @@ Transform: - {fileID: 6866785369235333201} - {fileID: 4587633499964583152} - {fileID: 5339671386185366077} + - {fileID: 2232351024226081505} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &1496229637230917705 @@ -247,9 +248,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7445bbf6e7dae43f5b79872980c8e394, type: 3} m_Name: m_EditorClassIdentifier: - _dartPrefab: {fileID: -1238747304094502698, guid: f4b2f15faddfa43ee9ea450e341989a3, type: 3} - _ravenPrefab: {fileID: 1783361906523289645, guid: 73dffc90c37874381bd50b09415a2c82, type: 3} - _starfishPrefab: {fileID: 4760811041620966471, guid: 33fd1a5d339ac4354ba91c77597adb88, type: 3} + WeaponManager: {fileID: 0} _schnitzelPrefab: {fileID: 8194018987037890526, guid: af50a2a7f0c834ebf90a6f2724b0f298, type: 3} _hitPoints: 100 _maxHitPoints: 100 @@ -700,6 +699,53 @@ MonoBehaviour: m_BlockingMask: serializedVersion: 2 m_Bits: 4294967295 +--- !u!1 &7554083245618661203 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2232351024226081505} + - component: {fileID: 1700775371577408911} + m_Layer: 7 + m_Name: WeaponManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2232351024226081505 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7554083245618661203} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 71829853537045655} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1700775371577408911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7554083245618661203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 91bd7a4cb211b4c32bfc08d33b3d4ccf, type: 3} + m_Name: + m_EditorClassIdentifier: + GlobalDamageModifier: 1 + GlobalCooldownModifier: 1 + GlobalCountModifier: 1 --- !u!1 &7619805629008050898 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/BattleScene.unity b/Assets/Scenes/BattleScene.unity index c2fdccf..1d97a14 100644 --- a/Assets/Scenes/BattleScene.unity +++ b/Assets/Scenes/BattleScene.unity @@ -349,6 +349,57 @@ Transform: m_CorrespondingSourceObject: {fileID: 3600334310735166755, guid: ba9a3fb92cb4b4e8eb4baf75754235a3, type: 3} m_PrefabInstance: {fileID: 1635123374} m_PrefabAsset: {fileID: 0} +--- !u!1 &185777652 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 185777653} + - component: {fileID: 185777654} + m_Layer: 0 + m_Name: CooldownUpgradePath + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &185777653 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 185777652} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 441343834} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &185777654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 185777652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0c98aadd575a3415d91c117258b2d6db, type: 3} + m_Name: + m_EditorClassIdentifier: + _level: 0 + _icon: {fileID: 21300000, guid: 8094df7779b004b43b7cc37ee399539b, type: 3} + _title: Cooldown++ + _descriptions: + - -20% cooldown time + - -25% cooldown time + - -50% cooldown time! --- !u!1001 &229857960 PrefabInstance: m_ObjectHideFlags: 0 @@ -892,6 +943,7 @@ Transform: m_Children: - {fileID: 784979737} - {fileID: 1101724734} + - {fileID: 185777653} - {fileID: 1836248121} - {fileID: 130893741} - {fileID: 1721536220} @@ -31232,53 +31284,17 @@ Transform: m_Children: [] m_Father: {fileID: 996256050} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1882345547 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1882345548} - - component: {fileID: 1882345549} - m_Layer: 7 - m_Name: WeaponManager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1882345548 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1882345547} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 702887974} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1882345549 +--- !u!114 &1882345549 stripped MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 1700775371577408911, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} + m_PrefabInstance: {fileID: 4086352640654554052} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1882345547} + m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 91bd7a4cb211b4c32bfc08d33b3d4ccf, type: 3} m_Name: m_EditorClassIdentifier: - GlobalDamageModifier: 1 - GlobalCooldownModifier: 1 - GlobalCountModifier: 1 --- !u!1 &1932945646 GameObject: m_ObjectHideFlags: 0 @@ -33409,10 +33425,7 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 71829853537045655, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} - insertIndex: -1 - addedObject: {fileID: 1882345548} + m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5e9a239886cdc4f36bd47c7e2ce1f506, type: 3} --- !u!224 &4107652790464639195 diff --git a/Assets/Scripts/Weapons/GlobalUgrades/CooldownUpgradePath.cs b/Assets/Scripts/Weapons/GlobalUgrades/CooldownUpgradePath.cs new file mode 100644 index 0000000..d43bb9b --- /dev/null +++ b/Assets/Scripts/Weapons/GlobalUgrades/CooldownUpgradePath.cs @@ -0,0 +1,21 @@ +class CooldownUpgradePath : UpgradePathBase +{ + private float[] _cooldownModifiersPerLevel = { 0.8f, 0.75f, 0.5f }; + + public override void UpgradeToLevel(int level) + { + var weaponManager = FindObjectOfType(); + switch (level) + { + case 1: + weaponManager.GlobalCooldownModifier *= _cooldownModifiersPerLevel[0]; + break; + case 2: + weaponManager.GlobalCooldownModifier *= _cooldownModifiersPerLevel[1]; + break; + case 3: + weaponManager.GlobalCooldownModifier *= _cooldownModifiersPerLevel[2]; + break; + } + } +} diff --git a/Assets/Scripts/Weapons/GlobalUgrades/CooldownUpgradePath.cs.meta b/Assets/Scripts/Weapons/GlobalUgrades/CooldownUpgradePath.cs.meta new file mode 100644 index 0000000..3e61125 --- /dev/null +++ b/Assets/Scripts/Weapons/GlobalUgrades/CooldownUpgradePath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c98aadd575a3415d91c117258b2d6db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 15ebac949807532e0b880493cb3678c5d1f2a47d Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:08:20 -0400 Subject: [PATCH 14/16] Remove level 22 (one less lvl now because dart starts at 1) --- Assets/Scripts/SceneManagers/BattleSceneManager.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Assets/Scripts/SceneManagers/BattleSceneManager.cs b/Assets/Scripts/SceneManagers/BattleSceneManager.cs index 5f8fabe..8e8412b 100644 --- a/Assets/Scripts/SceneManagers/BattleSceneManager.cs +++ b/Assets/Scripts/SceneManagers/BattleSceneManager.cs @@ -130,8 +130,7 @@ public class BattleSceneManager : MonoBehaviour 25800, 31350, 38000, // level 20 - 46000, - 55600, // level 22 (max) + 46000, // level 21 (max) }; // for testing: {50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900}; private int _nextLevelXpMilestone; From f8659fde6cadd61abc406fdd0d716be0c2dc5143 Mon Sep 17 00:00:00 2001 From: Ben Vinegar <2153+benvinegar@users.noreply.github.com> Date: Mon, 2 Sep 2024 00:10:14 -0400 Subject: [PATCH 15/16] Add various cleanup --- .../SceneManagers/BattleSceneManager.cs | 2 - Assets/Scripts/Upgrades/LevelUpUI.cs | 79 ------------------- .../WeaponUpgradePath.cs | 0 .../WeaponUpgradePath.cs.meta | 0 .../GlobalUgrades/DamageUpgradePath.cs | 6 -- 5 files changed, 87 deletions(-) rename Assets/Scripts/{Weapons => Upgrades}/WeaponUpgradePath.cs (100%) rename Assets/Scripts/{Weapons => Upgrades}/WeaponUpgradePath.cs.meta (100%) diff --git a/Assets/Scripts/SceneManagers/BattleSceneManager.cs b/Assets/Scripts/SceneManagers/BattleSceneManager.cs index 8e8412b..ef70ef5 100644 --- a/Assets/Scripts/SceneManagers/BattleSceneManager.cs +++ b/Assets/Scripts/SceneManagers/BattleSceneManager.cs @@ -222,8 +222,6 @@ void Start() SetCurrentLevel(_currentLevel); - LevelUpUI.Reset(); - EventManager.AddListener( "EnemyDestroyed", (eventData) => diff --git a/Assets/Scripts/Upgrades/LevelUpUI.cs b/Assets/Scripts/Upgrades/LevelUpUI.cs index cdcf26d..c15fe16 100644 --- a/Assets/Scripts/Upgrades/LevelUpUI.cs +++ b/Assets/Scripts/Upgrades/LevelUpUI.cs @@ -18,85 +18,6 @@ public class LevelUpUI : MonoBehaviour private Button _option1Button; private Button _option2Button; - public static void Reset() - { - /* - - _upgradeData = new Dictionary - { - { - UpgradeType.CountUp, - new UpgradePath( - new List - { - "+1 of each projectile", - "+1 of each projectile", - "+2 of each projectile!" - } - ) - }, - { - UpgradeType.CooldownDown, - new UpgradePath( - new List - { - "-20% cooldown time", - "-25% cooldown time", - "-50% cooldown time!" - } - ) - }, - { - UpgradeType.DamageUp, - new UpgradePath(new List { "+30% damage", "+60% damage", "+100% damage!" }) - }, - { - UpgradeType.Dart, - new UpgradePath( - new List - { - "+1 dart that fires behind you", - "+50% damage", - "+2 dart firing behind and +33% damage!" - } - ) - }, - { - UpgradeType.Raven, - new UpgradePath( - new List - { - "heat-seeking bomb targets closest enemy", - "+33% damage and +20% cooldown!", - "+60% area of effect" - } - ) - }, - { - UpgradeType.Starfish, - new UpgradePath( - new List - { - "orbits around you, wreaking havoc", - "+20% orbit duration", - "+50% orbit duration and -30% cooldown!" - } - ) - }, - { - UpgradeType.Schnitzel, - new UpgradePath( - new List - { - "its like an axe", - "+40% area of effect", - "+30% area of effect" - } - ) - } - };*/ - } - void Awake() { _option1Button = _levelOption1.GetComponent