72 lines
2.6 KiB
C#
72 lines
2.6 KiB
C#
/*
|
|
zlib License
|
|
|
|
跳出一方天地 (C) 2022-2023 Lucas
|
|
|
|
This software is provided 'as-is', without any express or implied
|
|
warranty. In no event will the authors be held liable for any damages
|
|
arising from the use of this software.
|
|
|
|
Permission is granted to anyone to use this software for any purpose,
|
|
including commercial applications, and to alter it and redistribute it
|
|
freely, subject to the following restrictions:
|
|
|
|
1.The origin of this software must not be misrepresented; you must not
|
|
claim that you wrote the original software. If you use this software
|
|
in a product, an acknowledgment in the product documentation would be
|
|
appreciated but is not required.
|
|
2. Altered source versions must be plainly marked as such, and must not be
|
|
misrepresented as being the original software.
|
|
3. This notice may not be removed or altered from any source distribution.
|
|
*/
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
public class HealthController : MonoBehaviour
|
|
{
|
|
// Start is called before the first frame update
|
|
private int health;
|
|
public int initialHealth;
|
|
public GameObject healthBarPrefab;
|
|
private GameObject healthBar;
|
|
private HealthBarController controller;
|
|
void Start()
|
|
{
|
|
health = initialHealth;
|
|
healthBar = Instantiate(healthBarPrefab, GameObject.Find("Canvas").transform, false);
|
|
controller = healthBar.GetComponent<HealthBarController>();
|
|
controller.maxHealthValue = initialHealth;
|
|
healthBar.SetActive(true);
|
|
}
|
|
|
|
// Update is called once per frame
|
|
|
|
public void IncreaseHealth()
|
|
{
|
|
if (health >= initialHealth) return;
|
|
controller.SetHealth(++health);
|
|
if (health != initialHealth) return;
|
|
var gameController = GameObject.FindGameObjectWithTag("GameController");
|
|
gameController.GetComponent<HealthPotionGenerator>().DisNotifyGenerate();
|
|
}
|
|
|
|
public void DecreaseHealth()
|
|
{
|
|
controller.SetHealth(--health);
|
|
if (health <= 0)
|
|
{
|
|
SceneManager.LoadScene("StartupScene");
|
|
var score = GlobalGameDataManager.GetScore();
|
|
print(GlobalGameDataManager.NeedUpdateName(score));
|
|
SceneManager.LoadScene(GlobalGameDataManager.NeedUpdateName(score) ? "HighScoreScene" : "SettlementScene");
|
|
return;
|
|
}
|
|
var gameController = GameObject.FindGameObjectWithTag("GameController");
|
|
gameController.GetComponent<HealthPotionGenerator>().NotifyGenerate(gameObject);
|
|
}
|
|
|
|
public bool NeedPotion => health < initialHealth;
|
|
}
|