using System.Collections.Generic;
using Newtonsoft.Json.Linq;

namespace ET.Server
{
    /// <summary>
    /// 游戏场景实体
    /// </summary>
    [ChildOf(typeof(GameMapComponent))]
    public class Map: Entity, IAwake<JObject, WNPlayer>, IDestroy
    {
        /** 房间id **/
        public long RoomId { get; set; }
        /** 抖音接口全局唯一调用凭据 **/
        public string AccessToken { get; set; }
        /** 地图id **/
        public int MapId { get; set; }
        /** 场景玩法类型 **/
        public int Type { get; set; }
        /** 场景配置 **/
        public MapConfig Prop { get; set; }
        /** 战斗服id **/
        public string BattleServerId { get; set; }
        /** 游戏服id **/
        public int LogicServerId { get; set; }
        /** 副本创建时间 **/
        public long createTime { get; set; }
        /** 场景里的角色(主播) **/
        public WNPlayer Player { get; set; }
        /** 场景里的单位玩家 [key:openId, value:单位玩家数据] **/
        public Dictionary<string, Struct.UnitPlayerData> UnitPlayers { get; set; }
        /** 总点赞数 **/
        public long TotalLikeNum { get; set; }
        /** 配置数量达到次数 **/
        public long ConfigNum { get; set; }

        /** 死亡的单位(塔) **/
        [StaticField]
        public List<int> DeadUnits = new List<int>();
        /** 游戏结束标记 **/
        [StaticField]
        public bool IsGameOver = false;
    }
}