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

namespace ET.Server
{
    /// <summary>
    /// 游戏场景实体
    /// </summary>
    [ChildOf(typeof(GameMapComponent))]
    public class Map: Entity, IAwake<JObject, WNPlayer>, IDestroy
    {
        /** 地图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 bool HasPlayerEntered { get; set; }
        /** 地图场景创建时间 **/
        public long CreateTime { get; set; }
        /** 场景里的单位玩家 [key:openId, value:单位玩家数据] **/
        public Dictionary<long, Struct.Actor> Actors { get; set; }
        /** 死亡的单位 **/
        public List<int> DeadUnits { get; set; }
        /** 死亡的单位玩家 **/
        public List<int> DeadUnitPlayer { get; set; }
        /** 是否是一个保持玩家场景模型的场景, 如果需要单独在此列出 **/
        public bool IsLeaveKeepObject { get; set; }
    }
}