123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using FSEvent;
- namespace FSBattle {
-
- public enum BattleFieldRound {
- BATTLE_FIELD_READY_GAME = 0X0010001,
- BATTLE_FIELD_DRAW_CARDS = 0X0010002,
- BATTLE_FIELD_ENEMY_DEAL = 0X0010003,
- BATTLE_FIELD_PLAYER_DEAL = 0X0010004,
- BATTLE_FIELD_COMPAIRE_CARDS = 0X0010005,
- BATTLE_FIELD_MAKE_UP_CARDS = 0X0010006,
- BATTLE_FIELD_PLAYER_PLAY_A_HAND = 0X0010007,
- BATTLE_FIELD_ENEMY_ACTION = 0X0010008,
- BATTLE_FIELD_ROUND_END = 0X0010009,
- }
-
- public class BattleField : MonoBehaviour {
-
- private BattleFieldRound round = BattleFieldRound.BATTLE_FIELD_READY_GAME;
-
- public Transform player;
- public Transform enemy;
-
- void Start() {
- InitEvent();
- Invoke("ReadyHandle", 1.0f);
-
- if (player != null)
- BattleFieldManager.Instance.GetRoleArray().Add(player);
- if (enemy)
- BattleFieldManager.Instance.GetRoleArray().Add(enemy);
- }
-
- void Update() {
-
- }
- private void OnDestroy() {
- RemoveEvent();
- }
-
- private void InitEvent() {
- EventListener.Instance.RegisterEvent(EventEnum.EVENT_ENTER_COMPAIRE_CARD_ROUND, EnterCompaireRound);
- EventListener.Instance.RegisterEvent(EventEnum.EVENT_ENTER_ENEMY_DEAL_ROUND, EnterEnemyDealRound);
- EventListener.Instance.RegisterEvent(EventEnum.EVENT_ENTER_PLAYER_DEAL_ROUND, EnterPlayerDealRound);
- EventListener.Instance.RegisterEvent(EventEnum.EVENT_ENTER_PLAY_A_HAND_ROUND, EnterPlayAHandRound);
- }
-
- private void RemoveEvent() {
- EventListener.Instance.RemoveEvent(EventEnum.EVENT_ENTER_COMPAIRE_CARD_ROUND);
- EventListener.Instance.RemoveEvent(EventEnum.EVENT_ENTER_PLAYER_DEAL_ROUND);
- EventListener.Instance.RemoveEvent(EventEnum.EVENT_ENTER_PLAY_A_HAND_ROUND);
- }
-
- public void NextRound() {
-
- switch (round) {
- case BattleFieldRound.BATTLE_FIELD_READY_GAME:
- round = BattleFieldRound.BATTLE_FIELD_DRAW_CARDS;
-
- EventListener.Instance.PostEvent(EventEnum.EVENT_PLAYER_SHUFFLING_CARD);
-
- print("抽牌");
- break;
- case BattleFieldRound.BATTLE_FIELD_DRAW_CARDS:
- round = BattleFieldRound.BATTLE_FIELD_ENEMY_DEAL;
-
- EventListener.Instance.PostEvent(EventEnum.EVENT_ENEMY_DEAL_CARD);
- print("敌人出牌");
- break;
- case BattleFieldRound.BATTLE_FIELD_ENEMY_DEAL:
- round = BattleFieldRound.BATTLE_FIELD_PLAYER_DEAL;
- print("我方出牌,直到按下回合结束按钮 ... ");
- break;
- case BattleFieldRound.BATTLE_FIELD_PLAYER_DEAL:
- round = BattleFieldRound.BATTLE_FIELD_COMPAIRE_CARDS;
-
-
- Invoke("NextRound", 2.0f);
- print("开始比牌 ... ");
- break;
- case BattleFieldRound.BATTLE_FIELD_COMPAIRE_CARDS:
- round = BattleFieldRound.BATTLE_FIELD_READY_GAME;
-
- Invoke("NextRound", 2.0f);
- print("准备好了 ... ");
- break;
- case BattleFieldRound.BATTLE_FIELD_MAKE_UP_CARDS:
- break;
- }
- }
-
- private void ReadyHandle() {
-
- Dictionary<string, object> info = new Dictionary<string, object>();
- info.Add("remind", "准备中 ... ");
- EventListener.Instance.PostEvent(EventEnum.EVENT_UPDATE_ROUND_TEXT, info);
-
- Invoke("NextRound", 1.0f);
- }
-
- private void EnterEnemyDealRound() {
-
- if (round == BattleFieldRound.BATTLE_FIELD_DRAW_CARDS) {
- NextRound();
- }
- }
-
- private void EnterPlayerDealRound() {
-
- if (round == BattleFieldRound.BATTLE_FIELD_ENEMY_DEAL) {
- NextRound();
- }
- }
-
- private void EnterCompaireRound() {
-
- if (round == BattleFieldRound.BATTLE_FIELD_PLAYER_DEAL) {
- NextRound();
- }
- }
-
- private void EnterPlayAHandRound() {
-
- if (round == BattleFieldRound.BATTLE_FIELD_ROUND_END) {
- NextRound();
- }
- }
- }
- }
|