Upgrade System

This commit is contained in:
2023-10-22 15:08:39 +02:00
parent d265c8214a
commit 7ebff78708
34 changed files with 1901 additions and 199 deletions
+50 -13
View File
@@ -3,23 +3,27 @@ using UnityEngine;
public class Halo : MonoBehaviour
{
[SerializeField]
private int radius = 1;
[SerializeField]
private int initialSwordsCount = 5;
[SerializeField]
private GameObject _sword;
private PlayerManager _manager;
private List<GameObject> swords = new();
private float _oldRadius;
private int _oldSwordsCount;
private void Start()
{
float angle = Mathf.PI*2f / initialSwordsCount;
for(int i = 0; i < initialSwordsCount; i++)
_manager = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerManager>();
_oldRadius = _manager.SwordsHaloRadius;
_oldSwordsCount = (int)_manager.SwordsQuantity;
float angle = Mathf.PI*2f / _manager.SwordsQuantity;
for(int i = 0; i < _manager.SwordsQuantity; i++)
{
GameObject sword = Instantiate(
_sword,
transform.position + new Vector3(Mathf.Cos(i * angle), Mathf.Sin(i * angle), 0),
transform.position + new Vector3(Mathf.Cos(i * angle) * _manager.SwordsHaloRadius, Mathf.Sin(i * angle) * _manager.SwordsHaloRadius, 0),
Quaternion.identity,
transform
);
@@ -29,28 +33,61 @@ public class Halo : MonoBehaviour
private void Update()
{
if (_oldRadius != _manager.SwordsHaloRadius)
{
_oldRadius = _manager.SwordsHaloRadius;
ResizeHalo();
}
if (_oldSwordsCount != _manager.SwordsQuantity)
{
AddSword();
_oldSwordsCount = (int)_manager.SwordsQuantity;
}
transform.Rotate(Vector3.forward, 200f * Time.deltaTime, Space.Self);
}
private void OnDrawGizmos()
{
Gizmos.DrawWireSphere(transform.position, radius);
Gizmos.DrawWireSphere(transform.position, _manager ? _manager.SwordsHaloRadius : 1f);
}
public void AddSword()
private void AddSword()
{
for(int i = 0; i < swords.Count; i++)
for (int i = 0; i < _oldSwordsCount; i++)
{
Destroy(swords[i]);
}
swords.Clear();
float angle = Mathf.PI * 2f / initialSwordsCount;
for (int i = 0; i < initialSwordsCount; i++)
float angle = Mathf.PI * 2f / _manager.SwordsQuantity;
for (int i = 0; i < _manager.SwordsQuantity; i++)
{
GameObject sword = Instantiate(
_sword,
transform.position + new Vector3(Mathf.Cos(i * angle), Mathf.Sin(i * angle), 0),
transform.position + new Vector3(Mathf.Cos(i * angle) * _manager.SwordsHaloRadius, Mathf.Sin(i * angle) * _manager.SwordsHaloRadius, 0),
Quaternion.identity,
transform
);
swords.Add(sword);
}
}
private void ResizeHalo()
{
for (int i = 0; i < _manager.SwordsQuantity; i++)
{
DestroyImmediate(swords[i]);
}
swords.Clear();
float angle = Mathf.PI * 2f / _manager.SwordsQuantity;
for (int i = 0; i < _manager.SwordsQuantity; i++)
{
GameObject sword = Instantiate(
_sword,
transform.position + new Vector3(Mathf.Cos(i * angle) * _manager.SwordsHaloRadius, Mathf.Sin(i * angle) * _manager.SwordsHaloRadius, 0),
Quaternion.identity,
transform
);
+1 -1
View File
@@ -45,5 +45,5 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
radius: 1
initialSwordsCount: 10
initialSwordsCount: 5
_sword: {fileID: 4974588604955100116, guid: d21b2e937bf67eb4c8fc3db75696d4ce, type: 3}
+1 -4
View File
@@ -3,8 +3,6 @@ using UnityEngine;
[RequireComponent (typeof(BoxCollider2D))]
public class Sword : MonoBehaviour
{
public int Damages = 25;
private PlayerManager _manager;
private void Start()
@@ -14,7 +12,6 @@ public class Sword : MonoBehaviour
private void Update()
{
Damages = _manager.SwordsDamages;
RotateSword();
}
@@ -35,7 +32,7 @@ public class Sword : MonoBehaviour
{
if (collision.CompareTag("Ennemy") && collision.gameObject != null)
{
collision.GetComponent<Ennemy>().Life -= Damages;
collision.GetComponent<Ennemy>().Life -= _manager.SwordsDamages;
collision.gameObject.GetComponent<Ennemy>().AnimateHit();
}
}
+2 -1
View File
@@ -130,6 +130,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: eb7d27bb22bd0cb4aaa180bffb894086, type: 3}
m_Name:
m_EditorClassIdentifier:
Damages: 25
--- !u!61 &5490123958980842494
BoxCollider2D:
m_ObjectHideFlags: 0
@@ -145,7 +146,7 @@ BoxCollider2D:
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_Bits: 63
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2