public Player(PlayerData opts, GameObject scene, Map map) : base(opts, scene, map) { this.id = opts.id; this.type = EnumChange <Consts.EntityType> .EnumToString(Consts.EntityType.player); this.target = null; }
public Npc(EntityData opts, GameObject scene, Map map) : base(opts, scene, map) { this.id = opts.id; this.type = this.type = EnumChange <Consts.EntityType> .EnumToString(Consts.EntityType.npc); this.name = opts.name; this.target = null; this.sprite = new SpriteUI(this); }
public virtual void Init(GameMapManager.Attack_Data attack_Data, float radius, IGameUnitBattleFun gameUnitBattleFun) { maxDetectable_Range = attack_Data.maxDetectable_Range; string[] attack_Priority = attack_Data.attack_Priority.Split(','); _attackPriority = new CollisionDetectionType[attack_Priority.Length]; for (int i = 0; i < attack_Priority.Length; ++i) { _attackPriority[i] = EnumChange <CollisionDetectionType> .StringToEnum(attack_Priority[i]); } this.radius = radius; _gameUnitBattleFun = gameUnitBattleFun; }
public Item(ItemData opts, GameObject scene, Map map) : base(opts, scene, map) { this.type = EnumChange <Consts.EntityType> .EnumToString(Consts.EntityType.item); this.name = opts.name; this.desc = opts.desc; this.kind = opts.kind; this.hp = opts.hp; this.mp = opts.mp; this.price = opts.price; this.heroLevel = opts.heroLevel; this.imgId = opts.imgId; this.kindId = imgId; this.sprite = new SpriteUI(this); }
private void _init() { Consts.EntityType type = EnumChange <Consts.EntityType> .StringToEnum(this.entity.type); if (type == Consts.EntityType.player || type == Consts.EntityType.mob) { character = (Character)this.entity; _initDynamictNode(); } else if (type == Consts.EntityType.npc || type == Consts.EntityType.item || type == Consts.EntityType.equipment) { _initStaticNode(); } setDirection(false); this.stand(); }
/** * 初始化静态节点:npc,item,equipment */ private void _initStaticNode() { var position = this.getPosition(); int x = this.entity.getPosition().x; int y = this.entity.getPosition().y; Consts.EntityType type = EnumChange <Consts.EntityType> .StringToEnum(this.entity.type); if (type == Consts.EntityType.npc) { var obj = this.getAnimatorFromPool(this.entity.kindId, this.entity.type, 1); if (obj == null) { Debug.LogError("Create GameObject faild!!!"); return; } obj.tag = "Npc"; obj.layer = LayerMask.NameToLayer("Npc"); obj.transform.parent = this.mapNode.transform; obj.transform.localPosition = new Vector3(x, -y, 0); //以左上角为原点坐标轴 this.curNode = obj; this.curNode.name = this.entity.name + "_" + this.entity.type + "_" + this.entity.entityId; this.curNode.transform.Find("Name").GetComponent <TextMesh>().text = this.entity.name; } else { var obj = this.getAnimatorFromPool(this.entity.kindId, this.entity.type, 5); if (obj == null) { Debug.LogError("Create GameObject faild!!!"); return; } obj.tag = "Item"; obj.layer = LayerMask.NameToLayer("Item"); obj.transform.parent = this.mapNode.transform; obj.transform.localPosition = new Vector3(x, -y, 0); //以左上角为原点坐标轴 this.curNode = obj; this.curNode.name = this.entity.name + "_" + this.entity.type + "_" + this.entity.entityId; this.curNode.transform.Find("Name").GetComponent <TextMesh>().text = this.entity.name; } }
protected override void Init() { base.Init(); if (null != GetComponent <TrollDrawLine>()) { trollDrawLine = GetComponent <TrollDrawLine>(); } GameMapManager.UnitData UnitData = GameMapManager.Instance.GetUnitData(gameObject.tag); if (UnitData.object_UnitName != "") { Object_UnitName = EnumChange <GameUnitName> .StringToEnum(UnitData.object_UnitName); Object_Camp = EnumChange <CampEnum> .StringToEnum(UnitData.object_Camp); Object_UnitType = EnumChange <UnitTypeEnum> .StringToEnum(UnitData.object_UnitType); Object_HP = UnitData.object_HP; Max_HP = UnitData.object_HP; Object_Radius = UnitData.unit_Radius; if (Object_Camp == GameMapManager.Instance.PlayerCamp) { IsPlayerCamp = true; } else { IsPlayerCamp = false; } } if (IsPlayerCamp) { gameObject.AddComponent <HighlightableObject>(); highlightable = GetComponent <HighlightableObject>(); } else { StartCoroutine(StartAI()); } Is_AI = !IsPlayerCamp; }
/// <summary> /// 添加所有aoi区域的对象:玩家,mob,npc /// </summary> /// <param name="data"></param> public void addOtherEntity(JsonObject data) { // Debug.Log(data.ToString()); SimpleJSON.JSONNode jsondata = SimpleJSON.JSON.Parse(data.ToString().Trim()); ICollection <string> keys = data.Keys; foreach (string key in keys) { SimpleJSON.JSONArray array = jsondata[key].AsArray; if (array == null || array.Count == 0) { continue; } Debug.LogFormat("<color=#1395E7> add other entity >>>>>> {0} </color>", key); Consts.EntityType type = EnumChange <Consts.EntityType> .StringToEnum(key); for (int i = 0; i < array.Count; i++) { var _data = array[i]; if (getEntity(_data["entityId"].AsInt) != null) { Debug.LogFormat("<color=#FDB53B> Warining :add exist entity id:{0}</color>", _data["entityId"].AsInt); continue; } JsonObject configdata = null; if (type == Consts.EntityType.player || type == Consts.EntityType.mob) { configdata = DataApi.Inst.character.FindById(_data["kindId"].AsInt); buildEntity(configdata, ref _data); _data.Add("type", key); Debug.Log(_data.ToString()); PlayerData entitydata = JsonUtility.FromJson <PlayerData>(_data.ToString()); //addEntity(entitydata); this.actionManager.addAction(new AddEntityAction(entitydata)); } else if (type == Consts.EntityType.npc) { configdata = DataApi.Inst.npc.FindById(_data["kindId"].AsInt); buildEntity(configdata, ref _data); _data.Add("type", key); Debug.Log(_data.ToString()); EntityData entitydata = JsonUtility.FromJson <EntityData>(_data.ToString()); //addEntity(entitydata); this.actionManager.addAction(new AddEntityAction(entitydata)); } else if (type == Consts.EntityType.item) { configdata = DataApi.Inst.item.FindById(_data["kindId"].AsInt); buildEntity(configdata, ref _data); _data.Add("type", key); Debug.Log(_data.ToString()); ItemData entitydata = JsonUtility.FromJson <ItemData>(_data.ToString()); //addEntity(entitydata); this.actionManager.addAction(new AddEntityAction(entitydata)); } else { configdata = DataApi.Inst.equipment.FindById(_data["kindId"].AsInt); buildEntity(configdata, ref _data); _data.Add("type", key); Debug.Log(_data.ToString()); EntityData entitydata = JsonUtility.FromJson <EntityData>(_data.ToString()); //addEntity(entitydata); this.actionManager.addAction(new AddEntityAction(entitydata)); } } } }
//鼠标弹起时候触发,后于move动作,以免rpc调用覆盖数据 private void OnMouseUp() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit2D rayHit = Physics2D.Raycast(ray.origin, Vector3.forward, 100f, 1 << nNpcLayer | 1 << nMobLayer | 1 << nPlayerLayer | 1 << nItemLayer); if (rayHit.collider != null) { string[] infos = rayHit.collider.gameObject.name.Split('_'); if (infos.Length < 2) { return; } string ids = infos[2]; int targetId = System.Convert.ToInt32(ids); //Debug.LogFormat("<color=#0ff000> ===>{0},{1} </color>", type, entityId); //本人 if (targetId == DataManager.Inst.playerdata.entityId) { return; } int areaId = DataManager.Inst.playerdata.areaId; int playerId = DataManager.Inst.playerdata.id; var area = App.Inst.getArea(); var entity = area.getEntity(targetId); if (entity.isDied()) { return; } Consts.EntityType type = EnumChange <Consts.EntityType> .StringToEnum(entity.type); switch (type) { case Consts.EntityType.player: { var curPlayer = App.Inst.getCurPlayer(); AppFacade.Instance.SendNotification(GameNotify.OpenPlayerDialog, entity); break; } case Consts.EntityType.npc: { SimpleJson.JsonObject msg = new SimpleJson.JsonObject(); msg["areaId"] = areaId; msg["playerId"] = playerId; msg["targetId"] = targetId; PomeloSocket.Inst.Notify("area.playerHandler.npcTalk", msg); break; } case Consts.EntityType.mob: { SimpleJson.JsonObject msg = new SimpleJson.JsonObject(); msg["targetId"] = targetId; PomeloSocket.Inst.Request("area.fightHandler.attack", msg, (data) => { }); break; } case Consts.EntityType.item: case Consts.EntityType.equipment: { SimpleJson.JsonObject msg = new SimpleJson.JsonObject(); msg["areaId"] = areaId; msg["playerId"] = playerId; msg["targetId"] = targetId; PomeloSocket.Inst.Request("area.playerHandler.pickItem", msg, (data) => { }); break; } } } }
public Mob(PlayerData opts, GameObject scene, Map map) : base(opts, scene, map) { this.type = EnumChange <Consts.EntityType> .EnumToString(Consts.EntityType.mob); }