/* =============================
* 作者:Snowe (斯诺)
* QQ:275273997
* Email:snowe0517@gmail.com ,snowe@isnowe.com
*==============================*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Nexus : MonoBehaviour {
static Nexus currentInstance;
public int maxHealth = 1000;
public int maxMana = 1000;
public float manaRegenRate = 1.0f; // per second
int currentHealth;
int currentMana;
int manaSpent = 0; //计算金钱消耗总量
//float manaRegenCurrent = 0;
MeshRenderer mRen;//模型网格
//基地爆炸的对象组建
public GameObject explosionPrefab;
///
/// 获取当前血量
///
public int CurrentHealth
{
get { return currentHealth; }
}
///
/// 当前血量百分比
///
public float CurrentHealthPercent
{
get { return (float)currentHealth / (float)maxHealth; }
}
///
/// 获取当前能源
///
public int CurrentMana
{
get { return currentMana; }
}
///
/// 能源百分比
///
public float CurrentManaPercent
{
get { return (float)currentMana / (float)maxMana; }
}
///
/// 死亡判定值
///
public bool IsDead
{
get { return currentHealth <= 0; }
}
///
/// 获取静态化对象
///
public static Nexus CurrentInstance
{
get { return currentInstance; }
}
// 初始化
void Awake () {
currentHealth = maxHealth;
currentMana = 200;
currentInstance = this;
mRen = GetComponent();
explosionPrefab.SetActive(false);
}
public void GoToTitle()
{
SceneManager.LoadScene(0);
}
// Update is called once per frame
void Update () {
//manaRegenCurrent += Time.deltaTime * manaRegenRate;
//while (manaRegenCurrent > 1)
//{
// manaRegenCurrent -= 1;
// currentMana += 1;
//}
if (Input.GetKey(KeyCode.Alpha1)) Time.timeScale = 5;
else Time.timeScale = 1;
// if(Input.GetKeyUp())
if (IsDead)
{
Time.timeScale = 0;
if (Input.GetKeyDown(KeyCode.Space))
SceneManager.LoadScene(0);
}
}
///
/// 增加伤害
///
/// 伤害
public void Damage(int power)
{
bool alreadyDead = IsDead;
currentHealth -= power;
if (IsDead && !alreadyDead) Death();
}
///
/// 增加能源
///
///
public void GainMana(int amount)
{
currentMana += amount;
}
///
/// 消费能源
///
///
///
public bool UseMana(int amount)
{
//判断能源是否足够
if(amount > currentMana)
{
Debug.Log("钱不够!");
return false;
}
//减少当前能源
currentMana -= amount;
//增加消费总量
manaSpent += amount;
return true;
}
///
/// 死亡判定
///
void Death()
{
explosionPrefab.SetActive(true);
//Instantiate(explosionPrefab, transform.position, transform.rotation);
mRen.enabled = false;
for(int i = 0; i < transform.childCount; i++)
{
transform.GetChild(i).gameObject.SetActive(false);
}
}
}