Skip to content

Commit

Permalink
Give bullets to player on lvl up.
Browse files Browse the repository at this point in the history
  • Loading branch information
adiRandom authored and brown121407 committed Dec 17, 2022
1 parent 6f95309 commit c6c3469
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 24 deletions.
9 changes: 7 additions & 2 deletions Assets/Prefabs/Player.prefab
Original file line number Diff line number Diff line change
Expand Up @@ -169,8 +169,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
<CurrentHealth>k__BackingField: 4
<MaxHealth>k__BackingField: 4
<AvailableBullets>k__BackingField:
<UnlockedBulletTypes>k__BackingField: []
<AvailableBulletTypes>k__BackingField:
- {fileID: 11400000, guid: 905472c42630e43e9bbbd648e9d6e1d3, type: 2}
- {fileID: 11400000, guid: 77ff25d58ccf34aeab600974fbf652c2, type: 2}
- {fileID: 11400000, guid: 2dc5013f6011348ce9873fdabd751c6b, type: 2}
- {fileID: 11400000, guid: 6b9d746e74638481280040505dd07240, type: 2}
- {fileID: 11400000, guid: f9a8cf6d236504294b9d055e487f6904, type: 2}
<CurrentBullet>k__BackingField: {fileID: 11400000, guid: 905472c42630e43e9bbbd648e9d6e1d3, type: 2}
<CanShoot>k__BackingField: 1
ui: {fileID: 0}
Expand Down Expand Up @@ -220,7 +225,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
<IsRhythmActive>k__BackingField: 1
speed: 12
pityTime: 0.13
beatLeeway: 0.5
--- !u!1001 &3192674581181291927
PrefabInstance:
m_ObjectHideFlags: 0
Expand Down
4 changes: 4 additions & 0 deletions Assets/Scenes/Level 2.unity
Original file line number Diff line number Diff line change
Expand Up @@ -7856,6 +7856,10 @@ PrefabInstance:
propertyPath: <Offset>k__BackingField
value: 0.0485
objectReference: {fileID: 0}
- target: {fileID: 12744624317710530, guid: 202027c59e52e421ab0aafec69ab8e16, type: 3}
propertyPath: level
value: 2
objectReference: {fileID: 0}
- target: {fileID: 12744624317710531, guid: 202027c59e52e421ab0aafec69ab8e16, type: 3}
propertyPath: m_audioClip
value:
Expand Down
4 changes: 4 additions & 0 deletions Assets/Scenes/Level 3.unity
Original file line number Diff line number Diff line change
Expand Up @@ -5928,6 +5928,10 @@ PrefabInstance:
propertyPath: <Offset>k__BackingField
value: 0.036
objectReference: {fileID: 0}
- target: {fileID: 12744624317710530, guid: 202027c59e52e421ab0aafec69ab8e16, type: 3}
propertyPath: level
value: 3
objectReference: {fileID: 0}
- target: {fileID: 12744624317710531, guid: 202027c59e52e421ab0aafec69ab8e16, type: 3}
propertyPath: m_audioClip
value:
Expand Down
10 changes: 9 additions & 1 deletion Assets/Scenes/Level 4.unity
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.17307952, g: 0.21632008, b: 0.29832444, a: 1}
m_IndirectSpecularColor: {r: 0.173079, g: 0.21631923, b: 0.29832268, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
Expand Down Expand Up @@ -19370,6 +19370,14 @@ PrefabInstance:
propertyPath: <Offset>k__BackingField
value: 0.0515
objectReference: {fileID: 0}
- target: {fileID: 12744624317710530, guid: 202027c59e52e421ab0aafec69ab8e16, type: 3}
propertyPath: level
value: 4
objectReference: {fileID: 0}
- target: {fileID: 12744624317710530, guid: 202027c59e52e421ab0aafec69ab8e16, type: 3}
propertyPath: secondsTillSpawn
value: 4
objectReference: {fileID: 0}
- target: {fileID: 12744624317710531, guid: 202027c59e52e421ab0aafec69ab8e16, type: 3}
propertyPath: m_audioClip
value:
Expand Down
25 changes: 16 additions & 9 deletions Assets/Scripts/GameManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,32 @@ public class GameManager : MonoBehaviour
{
[SerializeField] private Texture2D crosshairImg;
[SerializeField] private GameObject panel;

[Header("Enemy settings")]
[SerializeField] private GameObject enemyPrefab;
[SerializeField] private int maxWidth = 10;
[SerializeField] private int maxDistance = 5;
[SerializeField] private float secondsTillSpawn = 3f;
[SerializeField] private float percentToNextWave = .75f;


[Header("Level settings")]
[SerializeField] private int level = 1;

private int _numberOfWaves;
private int _constEnemies = 5;
private bool _spawning = false;
private int _pause = 0;
private int _pause = 0;
private int _waveCount = 0;
private int _waveConst = 3;
private HudManager _ui;
private Player _player;

private void Awake()
{
_numberOfWaves = _waveConst * (SceneManager.GetActiveScene().buildIndex - 2);
_ui = GameObject.Find("HUD").GetComponent<HudManager>();
_player = GetComponentInChildren<Player>();
_player.UnlockBulletsForLevel(level);
}

private void Start()
Expand All @@ -48,7 +54,7 @@ private void Update()
if (_pause == 0)
{
PauseGame();
}
}
else
{
ResumeGame();
Expand All @@ -68,17 +74,18 @@ private void CheckNoEnemies()
NextWave();
}
}

private Vector3 GetRandomPosition()
{
while (true)
{
var randomPosition = new Vector3(Random.Range(-maxWidth, maxWidth), 0.5f, Random.Range(-maxWidth, maxWidth));
var randomPosition =
new Vector3(Random.Range(-maxWidth, maxWidth), 0.5f, Random.Range(-maxWidth, maxWidth));
var distance = Vector3.Distance(transform.position, randomPosition);

if (distance < maxDistance)
{
if (Physics.CheckSphere(randomPosition, 0.7f, (int) Layers.Floor))
if (Physics.CheckSphere(randomPosition, 0.7f, (int)Layers.Floor))
{
continue;
}
Expand Down Expand Up @@ -130,7 +137,7 @@ private void PauseGame()
Time.timeScale = 0f;
panel.SetActive(true);
}

public void ResumeGame()
{
_pause = 0;
Expand All @@ -145,6 +152,6 @@ public void GoBackMain()
PlayerPrefs.SetInt(PlayerPrefsKeys.GamePause, _pause);
Time.timeScale = 1f;
panel.SetActive(false);
SceneManager.LoadScene((int) Scenes.MainMenuScene);
SceneManager.LoadScene((int)Scenes.MainMenuScene);
}
}
12 changes: 6 additions & 6 deletions Assets/Scripts/InputController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,31 +67,31 @@ private void HandleChangeBullet()
BulletType newBullet = null;
if (Input.GetKeyDown(SPrevBulletKey))
{
var currentBulletIndex = _player.AvailableBullets.FindIndex(
var currentBulletIndex = _player.UnlockedBulletTypes.FindIndex(
bullet => bullet == _player.CurrentBullet
);

var nextIndex = currentBulletIndex - 1;
if (nextIndex < 0)
{
nextIndex = _player.AvailableBullets.Count - 1;
nextIndex = _player.UnlockedBulletTypes.Count - 1;
}
newBullet = _player.AvailableBullets[nextIndex];
newBullet = _player.UnlockedBulletTypes[nextIndex];
}

if (Input.GetKeyDown(SNextBulletKey))
{
var currentBulletIndex = _player.AvailableBullets.FindIndex(
var currentBulletIndex = _player.UnlockedBulletTypes.FindIndex(
bullet => bullet == _player.CurrentBullet
);

var nextIndex = currentBulletIndex + 1;
if (nextIndex >= _player.AvailableBullets.Count)
if (nextIndex >= _player.UnlockedBulletTypes.Count)
{
nextIndex = 0;
}

newBullet = _player.AvailableBullets[nextIndex];
newBullet = _player.UnlockedBulletTypes[nextIndex];
}

if (newBullet != null)
Expand Down
14 changes: 9 additions & 5 deletions Assets/Scripts/Player.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ public class Player : MonoBehaviour
{
[field: SerializeField] public float CurrentHealth { get; private set; } = 4;
[field: SerializeField] public float MaxHealth { get; private set; } = 4;
[field: SerializeField] public List<BulletType> AvailableBullets { get; private set; } = new();
[field: SerializeField] public List<BulletType> UnlockedBulletTypes { get; private set; } = new();
[field: SerializeField] public List<BulletType> AvailableBulletTypes { get; private set; } = new();
[field: SerializeField] public BulletType CurrentBullet { get; set; }
[field: SerializeField] public bool CanShoot { get; set; }

Expand Down Expand Up @@ -99,7 +100,7 @@ private void CheckStatus()
PlayerPrefs.SetInt(PlayerPrefsKeys.CurrentScene, SceneManager.GetActiveScene().buildIndex);
PlayerPrefs.Save();
Destroy(gameObject);
SceneManager.LoadScene((int) Scenes.GameOverMenu);
SceneManager.LoadScene((int)Scenes.GameOverMenu);
}
}

Expand All @@ -119,8 +120,11 @@ public void SetBullet(BulletType bulletType)
);
}

public void AddBullet(BulletType bulletType)
public void UnlockBulletsForLevel(int upToIndex)
{
AvailableBullets.Add(bulletType);
for (int i = 0; i < upToIndex; i++)
{
UnlockedBulletTypes.Add(AvailableBulletTypes[i]);
}
}
}
}
2 changes: 1 addition & 1 deletion Assets/Scripts/UI/HudManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ private void Update()
{
// TODO: It doesn't make sense to call these every frame. We should only call them in resposponse to some
// event, such as when the player gets a new class of projectiles or they change the active ones.
AddBullets(Player.AvailableBullets);
AddBullets(Player.UnlockedBulletTypes);
StartCoroutine(SelectBullet(Player.CurrentBullet));
}

Expand Down

0 comments on commit c6c3469

Please sign in to comment.