70 lines
2.7 KiB
C#
70 lines
2.7 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class EventSvcForExample : MonoBehaviour
|
|
{
|
|
// ================================
|
|
// 1. 定义事件类型和结构体 (EVENT_STRUCT)/(EVENT_ENUM)
|
|
// ================================
|
|
|
|
// private enum EVENT_REGISTER_EVENT_ENUM_EXAMPLE
|
|
// {
|
|
// EVENT_LET_OS_FOR_EXAMPLE, // 系统发牌
|
|
// }
|
|
|
|
|
|
// ================================
|
|
// 2. 绑定事件 (EventSvcHandler)
|
|
// ================================
|
|
|
|
// private readonly Dictionary<EVENT_ENUM, Type> actionBindMap = new() // 事件类型类型绑定
|
|
// {
|
|
// // ========== 系统事件 ==========
|
|
// { EVENT_ENUM.EVENT_LET_OS_DEAL_CARD, typeof(EVENT_STRUCT.STRUCT_EVENT_OS_DEAL_CARD) }, // 系统发牌事件
|
|
//
|
|
// // ========== 卡牌事件 ==========
|
|
// { EVENT_ENUM.EVENT_LET_CARD_DRAW_CARD, typeof(EVENT_STRUCT.STRUCT_EVENT_CARD_DRAW_CARD) } // 卡牌抽牌事件
|
|
// };
|
|
|
|
// ================================
|
|
// 3. 注册事件
|
|
// ================================
|
|
|
|
// private void REGISTER_EVENT_drop_card() // 系统弃牌
|
|
// {
|
|
// EventOS.EVENT_REGISTER<bool>(EVENT_ENUM.EVENT_LET_OS_DROP_CARD, callback);
|
|
// return;
|
|
// void callback(bool placeholder)
|
|
// {
|
|
// if (EventOS.LOCK_GET(EVENT_EXCLUSIVE_LOCK.LOCK_OS_DEAL_CARD)) return; // 系统是否正在发牌
|
|
// if (!EventOS.LOCK_APPLY(EVENT_EXCLUSIVE_LOCK.LOCK_OS_DROP_CARD)) return; // 系统弃牌加锁失败
|
|
// StartCoroutine(coroutine());
|
|
// return;
|
|
//
|
|
//
|
|
// IEnumerator coroutine()
|
|
// {
|
|
// if (handCardList.Count > 0)
|
|
// {
|
|
// // for (var i = handCardList.Count; i >= 0; i--)
|
|
// for (var i = 0; i < handCardList.Count; i++)
|
|
// {
|
|
// EventOS.EVENT_TRIGGER(EventData.EVENT_REGISTER_EVENT_ENUM.EVENT_LET_CARD_DROP_SELF,
|
|
// new EventStruct.STRUCT_EVENT_DROP_CARD
|
|
// {
|
|
// ID = i,
|
|
// POSITION = drop_card_point_world_position,
|
|
// DURATION = cardDropDuration,
|
|
// });
|
|
// yield return new WaitForSeconds(cardDropDuration);
|
|
// }
|
|
// }
|
|
//
|
|
// handCardList.Clear(); // 清空
|
|
// EventOS.LOCK_RELEASE(EventLock.LOCK_EXCLUSIVE_CARD_ENUM.LOCK_OS_DROP_CARD);
|
|
// // REGISTER_EVENT_ENEMY_TURN_START();
|
|
// }
|
|
// }
|
|
// }
|
|
} |