CultivateImmortal/Assets/Scripts/GameScene/GameMgr.cs

145 lines
4.2 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
public class GameMgr:SingletonAutoMono<GameMgr>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
public bool isStartAtk = true;
//<2F>ɽ<EFBFBD><C9BD>Ƿ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ʧ
public bool isFeijianClose = false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ
public bool isUserNumAndGas = false;
void Start()
{
StartCoroutine(UserGasAdd());
}
/// <summary>
/// <20><><EFBFBD>ߺ<EFBFBD>ÿ5<C3BF><35><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
IEnumerator UserGasAdd()
{
while (true)
{
yield return new WaitForSeconds(5f);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
int gas = GameDataMgr.Instance.player.minuteGas / 12;
GameDataMgr.Instance.player.gas += gas;
if (UIManager.Instance.GetPanel<UserPanel>()!=null)
{
EventCenter.Instance.EventTrigger<int>(E_EventType.E_Pool_GasTip,gas);
}
//<2F><><EFBFBD><EFBFBD>TopPanel<65><6C><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
if (UIManager.Instance.GetPanel<TopPanel>() != null)
{
UIManager.Instance.GetPanel<TopPanel>().UpdatePanel();
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GameDataMgr.Instance.PlayerDataSave();
}
}
//<2F><><EFBFBD>Һ͹<D2BA><CDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
public void StartInit()
{
StartCoroutine(InitPlayerAndMonster());
}
//<2F><><EFBFBD>һ<EFBFBD><D2BB>߹<EFBFBD><DFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ȴ<EFBFBD>1s<31><73><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private IEnumerator InitPlayerAndMonster()
{
yield return new WaitForSeconds(2f);
EventCenter.Instance.EventTrigger(E_EventType.E_Player_Init);
EventCenter.Instance.EventTrigger(E_EventType.E_Monster_Init);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
isStartAtk = true;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>򻯺<EFBFBD><F2BBAFBA>ı<EFBFBD>ʾ
public string SetNumber(long num)
{
if (num >= 1000000)
{
return ((float)num / 1000000).ToString("F2") + "<22><><EFBFBD><EFBFBD>";
}
else if (num >= 10000)
{
return ((float)num / 10000).ToString("F2") + "<22><>";
}
else if (num >= 100000000)
{
return ((float)num / 100000000).ToString("F2") + "<22><>";
}
else
{
return num.ToString();
}
}
// <20><>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫת<C9AB><D7AA>Ϊ Color
public Color HexToColor(string hex)
{
byte r = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
byte g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
byte b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
return new Color32(r, g, b, 255);
}
public Color HexToColorAlaph(string hex)
{
byte r = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
byte g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
byte b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
return new Color32(r, g, b, 120);
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>Ϣ
/// </summary>
/// <param name="stone"></param>
/// <param name="yu"></param>
/// <param name="gas"></param>
public void StartTip(int stone, int yuan)
{
StartCoroutine(TipMessage(stone, yuan));
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢЭ<CFA2><D0AD>
/// </summary>
/// <param name="stone"></param>
/// <param name="yu"></param>
/// <param name="gas"></param>
/// <returns></returns>
IEnumerator TipMessage(int stone, int yuan)
{
if (UIManager.Instance.GetPanel<TopPanel>() != null)
{
UIManager.Instance.GetPanel<TopPanel>().UpdatePanel();
}
EventCenter.Instance.EventTrigger<string>(E_EventType.E_Pool_Register2, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʯ+" + SetNumber(stone));
yield return new WaitForSeconds(0.5f);
EventCenter.Instance.EventTrigger<string>(E_EventType.E_Pool_Register2, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դʯ+" + yuan);
}
2024-12-02 18:00:58 +08:00
/// <summary>
/// <20><><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD>
/// </summary>
/// <param name="probability"><3E><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD></param>
/// <returns></returns>
public bool ProbaReturn(float probability)
{
//<2F><><EFBFBD><EFBFBD>0-1<>м<EFBFBD><D0BC>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
float f = Random.value;
if (f <= (probability/100))
{
return true;
}
return false;
}
}