123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362 |
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.Serialization;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using Random = UnityEngine.Random;
- public class ManaMiniGame : MonoBehaviour
- {
- #region 变量
- #region GameA
- public static int Score
- {
- get { return _Score; }
- set
- {
- _Score = value;
- ScoreLabA.text = _Score.ToString();
- }
- }
- public static float GameTimer
- {
- get { return _GameTimer; }
- set
- {
- _GameTimer = value;
- TimerBk2.fillAmount = _GameTimer / GameTime;
- TimerLab1.text = _GameTimer.ToString("0.0");
- }
- }
- public static bool GameA
- {
- get { return _GameA; }
- set
- {
- _GameA = value;
- if (_GameA)
- {
- GameStatusLabA.text = "进行中";
- }
- else
- {
- GameStatusLabA.text = "未开始";
- }
- }
- }
- public static bool PauseA
- {
- get { return _PauseA; }
- set
- {
- _PauseA = value;
- if (GameA)
- {
- if (_PauseA)
- {
- GameStatusLabA.text = "已暂停";
- }
- else
- {
- GameStatusLabA.text = "进行中";
- }
- }
- }
- }
- public static bool Panalty
- {
- get { return _Panalty; }
- set
- {
- _Panalty = value;
- if (_Panalty)
- {
- GameStatusLabA.text = "操作被冻结";
- }
- else
- {
- GameStatusLabA.text = "进行中";
- }
- }
- }
- private static int _Score;
- private static float _GameTimer;
- private static float PenaltyTimer;
- private static float OpFrequencyTimer;
- private static float GameTime;
- private static float PenaltyTime;
- private static float OpFrequencyTime;
- private static bool _GameA;
- private static bool _PauseA;
- private static bool _Panalty;
- private static List<Flower> IdleFlowerList;
- private static List<Flower> OperateFlowerList;
- private static Text TimerLab1;
- private static Text ScoreLabA;
- private static Text GameStatusLabA;
- private static Image TimerBk2;
- #endregion
- #endregion
- private void Awake()
- {
- #region MyRegion
- TimerBk2 = ManaReso.Get<Image>("D_TimerBk2");
- TimerLab1 = ManaReso.Get<Text>("D_TimerLab");
- ScoreLabA = ManaReso.Get<Text>("D_ScoreLab");
- GameStatusLabA = ManaReso.Get<Text>("D_StatusLab");
- GameTime = 30;
- PenaltyTime = 1;
- OpFrequencyTime = 1.5f;
- GameTimer = GameTime;
- OpFrequencyTimer = OpFrequencyTime;
- #endregion
- }
- private void FixedUpdate()
- {
- #region 小游戏A
- if (!GameA || PauseA)
- {
- return;
- }
- GameTimer -= Time.fixedDeltaTime; //小游戏计时
- if (GameTimer <= 0)
- {
- GameOverA();
- return; //小游戏结束
- }
- if (PenaltyTimer > 0) //冻结时间计时
- {
- PenaltyTimer -= Time.fixedDeltaTime;
- }
- OpFrequencyTimer -= Time.fixedDeltaTime; //生成操作计时
- if (OpFrequencyTimer <= 0)
- {
- if (IdleFlowerList.Count > 0)
- {
- OpFrequencyTimer = OpFrequencyTime;
- Flower flower = IdleFlowerList[Random.Range(0, IdleFlowerList.Count)];
- flower.CreateOp(OperateFlowerList.Count);
- IdleFlowerList.Remove(flower);
- OperateFlowerList.Add(flower);
- }
- }
- #endregion
- }
- #region 小游戏A
- public static void GetScore(int score)
- {
- Score += score;
- }
- public static void Ripping()
- {
- if (PenaltyTimer > 0) //冻结操作
- {
- return;
- }
- if (OperateFlowerList.Count > 0)
- {
- if (OperateFlowerList[0].Operate(OpType.Ripping)) //操作正确
- {
- IdleFlowerList.Add(OperateFlowerList[0]);
- OperateFlowerList.Remove(OperateFlowerList[0]);
- UpdateSequence();
- }
- else //操作错误
- {
- PenaltyTimer = PenaltyTime;
- ManaMessage.Show("惩罚" + PenaltyTime + "秒", PenaltyTime);
- }
- }
- }
- public static void Watering()
- {
- if (PenaltyTimer > 0) //冻结操作
- {
- return;
- }
- if (OperateFlowerList.Count > 0)
- {
- if (OperateFlowerList[0].Operate(OpType.Watering)) //操作正确
- {
- IdleFlowerList.Add(OperateFlowerList[0]);
- OperateFlowerList.Remove(OperateFlowerList[0]);
- UpdateSequence();
- }
- else //操作错误
- {
- PenaltyTimer = PenaltyTime;
- ManaMessage.Show("惩罚" + PenaltyTime + "秒", PenaltyTime);
- }
- }
- }
- public static void Fertilizing()
- {
- if (PenaltyTimer > 0) //冻结操作
- {
- return;
- }
- if (OperateFlowerList.Count > 0)
- {
- if (OperateFlowerList[0].Operate(OpType.Fertilizing)) //操作正确
- {
- IdleFlowerList.Add(OperateFlowerList[0]);
- OperateFlowerList.Remove(OperateFlowerList[0]);
- UpdateSequence();
- }
- else //操作错误
- {
- PenaltyTimer = PenaltyTime;
- ManaMessage.Show("惩罚" + PenaltyTime + "秒", PenaltyTime);
- }
- }
- }
- public static void GameBeginA()
- {
- ManaReso.Get("D_Rip").SetActive(true);
- ManaReso.Get("D_Water").SetActive(true);
- ManaReso.Get("D_Fertilize").SetActive(true);
- ManaReso.Get("D_Begin").SetActive(false);
- Score = 0;
- GameA = true;
- PauseA = false;
- GameTimer = GameTime;
- for (int i = 0; i < IdleFlowerList.Count; i++)
- {
- IdleFlowerList[i].GameBeginA();
- }
- OperateFlowerList = new List<Flower>();
- }
- public static void GameAbortA()
- {
- ManaReso.Get("D_Rip").SetActive(false);
- ManaReso.Get("D_Water").SetActive(false);
- ManaReso.Get("D_Fertilize").SetActive(false);
- ManaReso.Get("D_Begin").SetActive(true);
- Score = 0;
- GameA = false;
- PauseA = false;
- GameTimer = GameTime;
- OpFrequencyTimer = OpFrequencyTime;
- for (int i = 0; i < IdleFlowerList.Count; i++)
- {
- IdleFlowerList[i].GameOverA();
- }
- for (int i = 0; i < OperateFlowerList.Count; i++)
- {
- OperateFlowerList[i].GameOverA();
- }
- }
- public static void GamePrepareA()
- {
- IdleFlowerList = new List<Flower>();
- OperateFlowerList = new List<Flower>();
- IdleFlowerList.Add(ManaReso.GetFlower(false, ManaReso.Get("FlowerTraC1"), ObjType.Flower0));
- IdleFlowerList.Add(ManaReso.GetFlower(false, ManaReso.Get("FlowerTraC2"), ObjType.Flower1));
- IdleFlowerList.Add(ManaReso.GetFlower(false, ManaReso.Get("FlowerTraC3"), ObjType.Flower2));
- IdleFlowerList.Add(ManaReso.GetFlower(false, ManaReso.Get("FlowerTraC4"), ObjType.Flower3));
- IdleFlowerList.Add(ManaReso.GetFlower(false, ManaReso.Get("FlowerTraC5"), ObjType.Flower4));
- IdleFlowerList.Add(ManaReso.GetFlower(false, ManaReso.Get("FlowerTraC6"), ObjType.Flower5));
- IdleFlowerList.Add(ManaReso.GetFlower(false, ManaReso.Get("FlowerTraD1"), ObjType.Flower6));
- IdleFlowerList.Add(ManaReso.GetFlower(false, ManaReso.Get("FlowerTraD2"), ObjType.Flower7));
- IdleFlowerList.Add(ManaReso.GetFlower(false, ManaReso.Get("FlowerTraD3"), ObjType.Flower8));
- }
- private static void GameOverA()
- {
- ManaReso.SetActive("D_Rip", false);
- ManaReso.SetActive("D_Water",false);
- ManaReso.SetActive("D_Fertilize",false);
- ManaReso.SetActive("D_Begin",true);
- ManaReso.SetText("Da_Tit", "游戏结束");
- ManaReso.SetText("Da_Lab", "得分 : " + Score);
- ManaReso.SetActive("Da_GameInfo", true);
- ManaReso.SetActive("Da_Cancel", false);
- ManaReso.SetActive("Da_GetAward", true);
- Score = 0;
- GameA = false;
- PauseA = false;
- GameTimer = GameTime;
- OpFrequencyTimer = OpFrequencyTime;
- for (int i = 0; i < IdleFlowerList.Count; i++)
- {
- IdleFlowerList[i].GameOverA();
- }
- for (int i = 0; i < OperateFlowerList.Count; i++)
- {
- OperateFlowerList[i].GameOverA();
- }
- IdleFlowerList.AddRange(OperateFlowerList);
- OperateFlowerList = new List<Flower>();
- }
- private static void UpdateSequence()
- {
- if (OperateFlowerList.Count >= 2)
- {
- OperateFlowerList[0].MarkAsFirst();
- OperateFlowerList[1].MarkAsSecond();
- }
- else if (OperateFlowerList.Count >= 1)
- {
- OperateFlowerList[0].MarkAsFirst();
- }
- }
- #endregion
- }
|