Achievements
This commit is contained in:
parent
2b875bebbf
commit
2a31201cec
7 changed files with 156 additions and 24 deletions
|
@ -65,7 +65,7 @@
|
|||
<Compile Include="Assets\Scripts\Parallaxing.cs" />
|
||||
<Compile Include="Assets\Scripts\PlatformSpawner.cs" />
|
||||
<Compile Include="Assets\Scripts\RocketScript.cs" />
|
||||
<Compile Include="Assets\Scripts\ScoreSystem.cs" />
|
||||
<Compile Include="Assets\Scripts\ScoreAndAchievements.cs" />
|
||||
<Compile Include="Assets\Scripts\Tiling.cs" />
|
||||
<Compile Include="Assets\Scripts\WeaponFireController.cs" />
|
||||
<Reference Include="UnityEngine">
|
||||
|
|
|
@ -444,6 +444,7 @@ MonoBehaviour:
|
|||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
scoreText: {fileID: 211969292}
|
||||
achievementText: {fileID: 501223422}
|
||||
--- !u!114 &219260676
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -804,6 +805,84 @@ MonoBehaviour:
|
|||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
smoothing: 1
|
||||
--- !u!1 &501223420
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 501223421}
|
||||
- component: {fileID: 501223423}
|
||||
- component: {fileID: 501223422}
|
||||
m_Layer: 5
|
||||
m_Name: AchievementText
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &501223421
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 501223420}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 535991319}
|
||||
m_RootOrder: 6
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -9.5, y: -42.6}
|
||||
m_SizeDelta: {x: -445, y: 30}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &501223422
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 501223420}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 0.4, b: 0, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_FontData:
|
||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_FontSize: 20
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 2
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 1
|
||||
m_VerticalOverflow: 1
|
||||
m_LineSpacing: 1
|
||||
m_Text: Achievement
|
||||
--- !u!222 &501223423
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 501223420}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!1 &535991315
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -900,6 +979,7 @@ RectTransform:
|
|||
- {fileID: 984084302}
|
||||
- {fileID: 94608202}
|
||||
- {fileID: 1379112360}
|
||||
- {fileID: 501223421}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 12
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
|
@ -2387,7 +2467,7 @@ MonoBehaviour:
|
|||
movementSpeed: 2
|
||||
sprintSpeed: 1.5
|
||||
platformSpawner: {fileID: 219260673}
|
||||
scoreSystem: {fileID: 219260675}
|
||||
scoreAndAchievements: {fileID: 219260675}
|
||||
hudManager: {fileID: 219260676}
|
||||
--- !u!114 &2053847426
|
||||
MonoBehaviour:
|
||||
|
|
|
@ -13,7 +13,7 @@ public class EnemyController : CharacterControllerBase
|
|||
private short _hitsToRemove;
|
||||
private readonly Random _random = new Random();
|
||||
private PlatformSpawner _platformSpawner;
|
||||
private ScoreSystem _scoreSystem;
|
||||
private ScoreAndAchievements _scoreAndAchievements;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
|
@ -21,7 +21,7 @@ public class EnemyController : CharacterControllerBase
|
|||
_rb = GetComponent<Rigidbody2D>();
|
||||
var gm = GameObject.FindGameObjectWithTag("Game manager");
|
||||
_platformSpawner = gm.GetComponent<PlatformSpawner>();
|
||||
_scoreSystem = gm.GetComponent<ScoreSystem>();
|
||||
_scoreAndAchievements = gm.GetComponent<ScoreAndAchievements>();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
|
@ -64,7 +64,8 @@ public class EnemyController : CharacterControllerBase
|
|||
_rb.mass = 0.00001f;
|
||||
_rb.gravityScale = 0.01f;
|
||||
_rb.freezeRotation = false;
|
||||
_scoreSystem.AddScore(1);
|
||||
_scoreAndAchievements.AddScore(1);
|
||||
_scoreAndAchievements.CountKill();
|
||||
}
|
||||
|
||||
public bool IsAlive() => _rb.mass > 0.001f;
|
||||
|
|
|
@ -12,7 +12,7 @@ public class OwnCharacterController : CharacterControllerBase
|
|||
public float movementSpeed;
|
||||
public float sprintSpeed;
|
||||
public PlatformSpawner platformSpawner;
|
||||
public ScoreSystem scoreSystem;
|
||||
[FormerlySerializedAs("scoreSystem")] public ScoreAndAchievements scoreAndAchievements;
|
||||
public HUDManager hudManager;
|
||||
|
||||
private Vector3 _spawnPos;
|
||||
|
@ -88,7 +88,8 @@ public class OwnCharacterController : CharacterControllerBase
|
|||
private void CheckpointReached()
|
||||
{
|
||||
_spawnPos = _checkpointPos;
|
||||
scoreSystem.AddScore(100);
|
||||
scoreAndAchievements.AddScore(100);
|
||||
scoreAndAchievements.NextLevel();
|
||||
}
|
||||
|
||||
public void Hit()
|
||||
|
@ -101,7 +102,7 @@ public class OwnCharacterController : CharacterControllerBase
|
|||
|
||||
public void Respawn()
|
||||
{
|
||||
scoreSystem.AddScore(-20);
|
||||
scoreAndAchievements.AddScore(-20);
|
||||
transform.position = _spawnPos;
|
||||
_health = 100f;
|
||||
hudManager.UpdateHealth(_health);
|
||||
|
|
66
Assets/Scripts/ScoreAndAchievements.cs
Normal file
66
Assets/Scripts/ScoreAndAchievements.cs
Normal file
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class ScoreAndAchievements : MonoBehaviour
|
||||
{
|
||||
public Text scoreText;
|
||||
public Text achievementText;
|
||||
private int _score;
|
||||
private float _displayedTime;
|
||||
private int _killCount;
|
||||
private int _level;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
achievementText.text = "";
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (_displayedTime > 0 && Time.time - _displayedTime > 5f)
|
||||
{
|
||||
achievementText.text = "";
|
||||
_displayedTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddScore(int score)
|
||||
{
|
||||
_score += score;
|
||||
scoreText.text = "Score: " + _score;
|
||||
}
|
||||
|
||||
public void CountKill()
|
||||
{
|
||||
_killCount++;
|
||||
|
||||
if (_killCount == 1)
|
||||
CheckAndDisplayAchievement("Kills", 1, "First kill");
|
||||
else if (_killCount == 25)
|
||||
CheckAndDisplayAchievement("Kills", 2, "25 kills");
|
||||
else if (_killCount == 50)
|
||||
CheckAndDisplayAchievement("Kills", 3, "50 kills");
|
||||
}
|
||||
|
||||
public void NextLevel()
|
||||
{
|
||||
_level++;
|
||||
if (_level == 5)
|
||||
CheckAndDisplayAchievement("NextLevel", 1, "Level 5 completed");
|
||||
else if (_level == 8)
|
||||
CheckAndDisplayAchievement("NextLevel", 2, "Level 8 completed");
|
||||
else if (_level == 10)
|
||||
CheckAndDisplayAchievement("NextLevel", 3, "This is so next level");
|
||||
}
|
||||
|
||||
private void CheckAndDisplayAchievement(string key, int value, string message)
|
||||
{
|
||||
if (PlayerPrefs.GetInt(key) >= value) return;
|
||||
achievementText.text = message;
|
||||
_displayedTime = Time.time;
|
||||
PlayerPrefs.SetInt(key, value);
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class ScoreSystem : MonoBehaviour
|
||||
{
|
||||
public Text scoreText;
|
||||
private int _score;
|
||||
|
||||
public void AddScore(int score)
|
||||
{
|
||||
_score += score;
|
||||
scoreText.text = "Score: " + _score;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue