Pull request #18: Enemies now have HP values
Merge in CEGJ/creative-jam-20 from enemyHP to main * commit '989f2ef6fca390ab45b270b58013efd0cb1663ca': Enemies now have HP values
This commit is contained in:
commit
b50e9a50e5
@ -99,8 +99,12 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 3d66a652767ef0249ae03fc7183790d7, type: 3}
|
m_Script: {fileID: 11500000, guid: 3d66a652767ef0249ae03fc7183790d7, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
explosion: {fileID: 0}
|
||||||
|
explosionDebris: {fileID: 0}
|
||||||
landingPoint: {fileID: 0}
|
landingPoint: {fileID: 0}
|
||||||
|
body: {fileID: 0}
|
||||||
flyingSpeed: 25
|
flyingSpeed: 25
|
||||||
|
maxHP: 1
|
||||||
--- !u!111 &2748099788876613564
|
--- !u!111 &2748099788876613564
|
||||||
Animation:
|
Animation:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -418,6 +418,7 @@ MonoBehaviour:
|
|||||||
landingPoint: {fileID: 0}
|
landingPoint: {fileID: 0}
|
||||||
body: {fileID: 4916962407531476031}
|
body: {fileID: 4916962407531476031}
|
||||||
flyingSpeed: 50
|
flyingSpeed: 50
|
||||||
|
maxHP: 1
|
||||||
--- !u!54 &3119225800646921348
|
--- !u!54 &3119225800646921348
|
||||||
Rigidbody:
|
Rigidbody:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -299,6 +299,7 @@ MonoBehaviour:
|
|||||||
landingPoint: {fileID: 0}
|
landingPoint: {fileID: 0}
|
||||||
body: {fileID: 6601239271941144557}
|
body: {fileID: 6601239271941144557}
|
||||||
flyingSpeed: 50
|
flyingSpeed: 50
|
||||||
|
maxHP: 2
|
||||||
--- !u!135 &1871861664620959488
|
--- !u!135 &1871861664620959488
|
||||||
SphereCollider:
|
SphereCollider:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -189,6 +189,63 @@ Transform:
|
|||||||
m_Father: {fileID: 24694198}
|
m_Father: {fileID: 24694198}
|
||||||
m_RootOrder: 3
|
m_RootOrder: 3
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1001 &149397357
|
||||||
|
PrefabInstance:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
m_TransformParent: {fileID: 0}
|
||||||
|
m_Modifications:
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_RootOrder
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.x
|
||||||
|
value: 4.92
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalPosition.z
|
||||||
|
value: 69.91
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.w
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalRotation.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1039445016908976971, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 4677231174284622268, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
|
propertyPath: m_Name
|
||||||
|
value: Meteorite
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_SourcePrefab: {fileID: 100100000, guid: b9d1df034f0e64d49bb6cee268acbb3a, type: 3}
|
||||||
--- !u!1 &157775445
|
--- !u!1 &157775445
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -224,7 +281,7 @@ Transform:
|
|||||||
- {fileID: 416476323}
|
- {fileID: 416476323}
|
||||||
- {fileID: 720696128}
|
- {fileID: 720696128}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &160686337
|
--- !u!1 &160686337
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -339,7 +396,7 @@ Transform:
|
|||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 3
|
m_RootOrder: 4
|
||||||
m_LocalEulerAnglesHint: {x: 20.367, y: -442.989, z: 350.052}
|
m_LocalEulerAnglesHint: {x: 20.367, y: -442.989, z: 350.052}
|
||||||
--- !u!1 &191659641
|
--- !u!1 &191659641
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -567,7 +624,7 @@ Transform:
|
|||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 9
|
m_RootOrder: 10
|
||||||
m_LocalEulerAnglesHint: {x: 122.92801, y: -899.931, z: -13.550995}
|
m_LocalEulerAnglesHint: {x: 122.92801, y: -899.931, z: -13.550995}
|
||||||
--- !u!1 &249981357
|
--- !u!1 &249981357
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -685,7 +742,7 @@ Transform:
|
|||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 5
|
m_RootOrder: 6
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &256704238
|
--- !u!1 &256704238
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -2426,7 +2483,7 @@ Transform:
|
|||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 6
|
m_RootOrder: 8
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &893114646
|
--- !u!1 &893114646
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -2903,7 +2960,7 @@ Transform:
|
|||||||
- {fileID: 777216979}
|
- {fileID: 777216979}
|
||||||
- {fileID: 746849842}
|
- {fileID: 746849842}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 10
|
m_RootOrder: 11
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1007592126
|
--- !u!1 &1007592126
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -3869,6 +3926,8 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: cbbe9406db76ed447bdc7c36883ee139, type: 3}
|
m_Script: {fileID: 11500000, guid: cbbe9406db76ed447bdc7c36883ee139, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_controls: {fileID: 2089817556}
|
||||||
|
_state: 0
|
||||||
--- !u!4 &1461729127
|
--- !u!4 &1461729127
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -3882,7 +3941,7 @@ Transform:
|
|||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 12
|
m_RootOrder: 13
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1556790003
|
--- !u!1 &1556790003
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -4426,7 +4485,7 @@ Transform:
|
|||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 1335518417}
|
- {fileID: 1335518417}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 2
|
m_RootOrder: 3
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1752478143
|
--- !u!1 &1752478143
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -4766,7 +4825,7 @@ Transform:
|
|||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 4
|
m_RootOrder: 5
|
||||||
m_LocalEulerAnglesHint: {x: 127.08, y: -729.385, z: 146.565}
|
m_LocalEulerAnglesHint: {x: 127.08, y: -729.385, z: 146.565}
|
||||||
--- !u!1 &1770109362
|
--- !u!1 &1770109362
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -5661,6 +5720,7 @@ MonoBehaviour:
|
|||||||
cannonForce: 600
|
cannonForce: 600
|
||||||
fireRate: 0.5
|
fireRate: 0.5
|
||||||
fireTimer: 0
|
fireTimer: 0
|
||||||
|
damage: 1
|
||||||
--- !u!65 &2089817558
|
--- !u!65 &2089817558
|
||||||
BoxCollider:
|
BoxCollider:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -5740,7 +5800,7 @@ Transform:
|
|||||||
- {fileID: 1752478144}
|
- {fileID: 1752478144}
|
||||||
- {fileID: 1030989722}
|
- {fileID: 1030989722}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 11
|
m_RootOrder: 12
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1001 &1002961340066712741
|
--- !u!1001 &1002961340066712741
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
@ -5751,7 +5811,7 @@ PrefabInstance:
|
|||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 1002961339065835566, guid: 3c33f37ff1cce2d48b88e476df2d47a0, type: 3}
|
- target: {fileID: 1002961339065835566, guid: 3c33f37ff1cce2d48b88e476df2d47a0, type: 3}
|
||||||
propertyPath: m_RootOrder
|
propertyPath: m_RootOrder
|
||||||
value: 8
|
value: 9
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 1002961339065835566, guid: 3c33f37ff1cce2d48b88e476df2d47a0, type: 3}
|
- target: {fileID: 1002961339065835566, guid: 3c33f37ff1cce2d48b88e476df2d47a0, type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
|
|||||||
@ -44,9 +44,9 @@ public class CannonScript : MonoBehaviour
|
|||||||
{
|
{
|
||||||
GameObject hitObject = hit.collider.gameObject;
|
GameObject hitObject = hit.collider.gameObject;
|
||||||
|
|
||||||
if (hitObject.tag == "Enemy")
|
if (hitObject.CompareTag("Enemy"))
|
||||||
{
|
{
|
||||||
hitObject.GetComponent<Enemy>().IsShot(hit.distance);
|
hitObject.GetComponent<Enemy>().IsShot(hit.distance, damage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,7 +18,7 @@ public class DimensionController : MonoBehaviour
|
|||||||
if (ReferenceEquals(enemy, null)) return;
|
if (ReferenceEquals(enemy, null)) return;
|
||||||
|
|
||||||
// Update HP (temp for now)
|
// Update HP (temp for now)
|
||||||
_hp -= 1;
|
_hp -= enemy.DamageDealt();
|
||||||
|
|
||||||
// Destroy projectile
|
// Destroy projectile
|
||||||
Destroy(other.gameObject);
|
Destroy(other.gameObject);
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public class Enemy : MonoBehaviour
|
public class Enemy : MonoBehaviour
|
||||||
@ -8,17 +7,22 @@ public class Enemy : MonoBehaviour
|
|||||||
public ParticleSystem explosionDebris;
|
public ParticleSystem explosionDebris;
|
||||||
public Transform landingPoint;
|
public Transform landingPoint;
|
||||||
public GameObject body;
|
public GameObject body;
|
||||||
public float flyingSpeed;
|
|
||||||
|
|
||||||
private void Update()
|
[Header("Enemy Stats")]
|
||||||
|
public float flyingSpeed;
|
||||||
|
[SerializeField] private float maxHP = 1;
|
||||||
|
[SerializeField] private float damage = 1;
|
||||||
|
private float _health;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
{
|
{
|
||||||
//Debug.DrawRay(transform.position, launchDirection, Color.red);
|
_health = maxHP;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetLandingPoint(Transform landingPoint)
|
public void SetLandingPoint(Transform landingPoint)
|
||||||
{
|
{
|
||||||
this.landingPoint = landingPoint;
|
this.landingPoint = landingPoint;
|
||||||
gameObject.transform.LookAt(landingPoint);
|
gameObject.transform.LookAt(landingPoint);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpawnFinished()
|
void SpawnFinished()
|
||||||
@ -32,15 +36,17 @@ public class Enemy : MonoBehaviour
|
|||||||
gameObject.GetComponent<Rigidbody>().velocity = gameObject.transform.forward * flyingSpeed;
|
gameObject.GetComponent<Rigidbody>().velocity = gameObject.transform.forward * flyingSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void IsShot(float distance)
|
public void IsShot(float distance, float turretDamage)
|
||||||
{
|
{
|
||||||
float destroyDelay = Mathf.Sqrt(distance)/(500/5);
|
float destroyDelay = Mathf.Sqrt(distance)/(500/5);
|
||||||
Debug.Log(distance+" : "+destroyDelay);
|
Debug.Log(distance+" : "+destroyDelay);
|
||||||
StartCoroutine(Destroy(destroyDelay));
|
_health -= turretDamage;
|
||||||
|
if (_health <= 0) StartCoroutine(Destroy(destroyDelay));
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator Destroy(float waitTime)
|
private IEnumerator Destroy(float waitTime)
|
||||||
{
|
{
|
||||||
|
GameManager.Instance.GainPoints(maxHP);
|
||||||
gameObject.GetComponent<Rigidbody>().velocity = gameObject.transform.forward * (flyingSpeed / 3);
|
gameObject.GetComponent<Rigidbody>().velocity = gameObject.transform.forward * (flyingSpeed / 3);
|
||||||
yield return new WaitForSeconds(waitTime);
|
yield return new WaitForSeconds(waitTime);
|
||||||
body.SetActive(false);
|
body.SetActive(false);
|
||||||
@ -49,4 +55,9 @@ public class Enemy : MonoBehaviour
|
|||||||
yield return new WaitForSeconds(3f);
|
yield return new WaitForSeconds(3f);
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float DamageDealt()
|
||||||
|
{
|
||||||
|
return damage;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,8 +3,13 @@ using UnityEngine.InputSystem;
|
|||||||
|
|
||||||
public class GameManager : MonoBehaviour
|
public class GameManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField] private PlayerInput _controls;
|
[SerializeField] private PlayerInput controls;
|
||||||
[SerializeField, ReadOnly] private GameState _state;
|
[SerializeField] private CannonScript[] cannonList;
|
||||||
|
[SerializeField] private UIController uiController;
|
||||||
|
|
||||||
|
[Header("Game Variables")]
|
||||||
|
[SerializeField, ReadOnly] private GameState state;
|
||||||
|
[SerializeField, ReadOnly] private float points;
|
||||||
|
|
||||||
public static GameManager Instance { get; private set; }
|
public static GameManager Instance { get; private set; }
|
||||||
|
|
||||||
@ -17,22 +22,81 @@ public class GameManager : MonoBehaviour
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Instance = this;
|
Instance = this;
|
||||||
_state = GameState.InGame;
|
state = GameState.InGame;
|
||||||
|
points = 0f;
|
||||||
|
uiController.UpdatePointsText(points);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TriggerGameOver(int dimensionID)
|
public void TriggerGameOver(int dimensionID)
|
||||||
{
|
{
|
||||||
if (_state == GameState.Loss) return;
|
if (state == GameState.Loss) return;
|
||||||
|
|
||||||
// Stop controls
|
// Stop controls
|
||||||
_controls.SwitchCurrentActionMap("UI");
|
controls.SwitchCurrentActionMap("UI");
|
||||||
|
|
||||||
// Show Game Over Message
|
// Show Game Over Message
|
||||||
Debug.Log("Game Over: Dimension " + dimensionID + " has been destroyed");
|
Debug.Log("Game Over: Dimension " + dimensionID + " has been destroyed");
|
||||||
|
|
||||||
// Show Options (Return to Menu / Retry)
|
// Show Options (Return to Menu / Retry)
|
||||||
_state = GameState.Loss;
|
state = GameState.Loss;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnUpgrade(Upgrade selectedUpgrade)
|
||||||
|
{
|
||||||
|
if (!(points >= selectedUpgrade.GetCost())) return false;
|
||||||
|
points -= selectedUpgrade.GetCost();
|
||||||
|
uiController.UpdatePointsText(points);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpgradeFireRate(FireRateUpgrade upgrade)
|
||||||
|
{
|
||||||
|
foreach (var cannon in cannonList)
|
||||||
|
{
|
||||||
|
cannon.SetFireRate(upgrade.GetFireRate());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpgradeDamage(DamageUpgrade upgrade)
|
||||||
|
{
|
||||||
|
foreach (var cannon in cannonList)
|
||||||
|
{
|
||||||
|
cannon.SetDamage(upgrade.GetDamage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpgradeBullets(BulletsAmountUpgrade upgrade)
|
||||||
|
{
|
||||||
|
foreach (var cannon in cannonList)
|
||||||
|
{
|
||||||
|
cannon.SetBullets(upgrade.GetBullets());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public float GetPoints()
|
||||||
|
{
|
||||||
|
return points;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetPoints(float nPoints)
|
||||||
|
{
|
||||||
|
points = nPoints;
|
||||||
|
uiController.UpdatePointsText(points);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SpendPoints(float amount)
|
||||||
|
{
|
||||||
|
if (amount > points) return;
|
||||||
|
points -= amount;
|
||||||
|
uiController.UpdatePointsText(points);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GainPoints(float amount)
|
||||||
|
{
|
||||||
|
points += amount;
|
||||||
|
uiController.UpdatePointsText(points);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,17 +5,10 @@ using TMPro;
|
|||||||
|
|
||||||
public class UIController : MonoBehaviour
|
public class UIController : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField]private PlayerController player;
|
|
||||||
[SerializeField]private TMP_Text pointsTxt;
|
[SerializeField]private TMP_Text pointsTxt;
|
||||||
// Start is called before the first frame update
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
public void UpdatePointsText(float points)
|
||||||
|
|
||||||
// Update is called once per frame
|
|
||||||
void Update()
|
|
||||||
{
|
{
|
||||||
pointsTxt.text = player.GetPoints().ToString();
|
pointsTxt.text = points.ToString("0");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@ public class BulletsAmountUpgrade : Upgrade
|
|||||||
|
|
||||||
public override void Activate(){
|
public override void Activate(){
|
||||||
if(base.UpgradeAttempt()){
|
if(base.UpgradeAttempt()){
|
||||||
player.UpgradeBullets(this);
|
GameManager.Instance.UpgradeBullets(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@ public class DamageUpgrade : Upgrade
|
|||||||
|
|
||||||
public override void Activate(){
|
public override void Activate(){
|
||||||
if(base.UpgradeAttempt()){
|
if(base.UpgradeAttempt()){
|
||||||
player.UpgradeDamage(this);
|
GameManager.Instance.UpgradeDamage(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@ public class FireRateUpgrade : Upgrade
|
|||||||
|
|
||||||
public override void Activate(){
|
public override void Activate(){
|
||||||
if(base.UpgradeAttempt()){
|
if(base.UpgradeAttempt()){
|
||||||
player.UpgradeFireRate(this);
|
GameManager.Instance.UpgradeFireRate(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,7 +45,7 @@ public abstract class Upgrade : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected bool UpgradeAttempt(){
|
protected bool UpgradeAttempt(){
|
||||||
if(lvlUnlocked < imgs.Length && player.OnUpgrade(this)){
|
if(lvlUnlocked < imgs.Length && GameManager.Instance.OnUpgrade(this)){
|
||||||
imgs[lvlUnlocked].sprite = unlockedSprite;
|
imgs[lvlUnlocked].sprite = unlockedSprite;
|
||||||
lvlUnlocked++;
|
lvlUnlocked++;
|
||||||
if(lvlUnlocked < imgs.Length){
|
if(lvlUnlocked < imgs.Length){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user