Ejemplo n.º 1
0
        /// <summary>
        /// 判断制定地图上的指定位置上的事件是否已经触发过
        /// </summary>
        /// <returns><c>true</c>, if map event triggered was ised, <c>false</c> otherwise.</returns>
        /// <param name="mapIndex">Map index.</param>
        /// <param name="eventPos">Event position.</param>
        public bool IsMapEventTriggered(int mapIndex, Vector2 eventPos)
        {
            bool eventTriggered = false;

            for (int i = 0; i < GameManager.Instance.gameDataCenter.currentMapEventsRecord.triggeredEventPositions.Count; i++)
            {
                Vector2 triggeredPos = GameManager.Instance.gameDataCenter.currentMapEventsRecord.triggeredEventPositions[i];

                if (MyTool.ApproximatelySameIntPosition2D(eventPos, triggeredPos))
                {
                    eventTriggered = true;
                    break;
                }
            }

            return(eventTriggered);
        }
Ejemplo n.º 2
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (isInSavingData)
            {
                return;
            }

            if (collision == null)
            {
                return;
            }

            BattlePlayerController bp = collision.GetComponent <BattlePlayerController>();

            if (bp == null)
            {
                return;
            }

            if (bp.isInPosFixAfterFight)
            {
                return;
            }

            if (!MyTool.ApproximatelySameIntPosition2D(bp.singleMoveEndPos, this.transform.position))
            {
                return;
            }


            if (Mathf.Abs(bp.transform.position.x - transform.position.x) < 0.1f && Mathf.Abs(bp.transform.position.y - transform.position.y) < 0.1f)
            {
                return;
            }


            if (autoDetectCallBack != null)
            {
                autoDetectCallBack();
            }

            isInSavingData = false;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 判断制定地图上的指定位置上的事件是否已经触发过
        /// </summary>
        /// <returns><c>true</c>, if map event triggered was ised, <c>false</c> otherwise.</returns>
        /// <param name="mapIndex">Map index.</param>
        /// <param name="eventPos">Event position.</param>
        public static bool IsMapEventTriggered(int mapIndex, Vector2 eventPos)
        {
            bool eventTriggered = false;

            MapEventsRecord mapEventsRecord = GameManager.Instance.gameDataCenter.mapEventsRecords.Find(delegate(MapEventsRecord obj)
            {
                return(obj.mapIndex == mapIndex);
            });

            for (int i = 0; i < mapEventsRecord.triggeredEventPositions.Count; i++)
            {
                Vector2 triggeredPos = mapEventsRecord.triggeredEventPositions[i];

                if (MyTool.ApproximatelySameIntPosition2D(eventPos, triggeredPos))
                {
                    eventTriggered = true;
                    break;
                }
            }


            return(eventTriggered);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 初始化地图npc
        /// </summary>
        /// <param name="mapIndex">Map index.</param>
        /// <param name="attachedInfo">Attached info.</param>
        public override void InitializeWithAttachedInfo(int mapIndex, MapAttachedInfoTile attachedInfo)
        {
            transform.position = attachedInfo.position;

            this.moveOrigin = attachedInfo.position;

            this.moveDestination = attachedInfo.position;


            baCtr.SetSortingOrder(-(int)transform.position.y);

            npc = null;

            for (int i = 0; i < GameManager.Instance.gameDataCenter.currentMapEventsRecord.npcPosArray.Length; i++)
            {
                Vector2 pos = GameManager.Instance.gameDataCenter.currentMapEventsRecord.npcPosArray[i];

                if (MyTool.ApproximatelySameIntPosition2D(pos, attachedInfo.position))
                {
                    npc = GameManager.Instance.gameDataCenter.currentMapEventsRecord.npcArray[i];
                    break;
                }
            }

            if (npc == null)
            {
                npc = GameManager.Instance.gameDataCenter.LoadNpc(npcId);
                for (int i = 0; i < GameManager.Instance.gameDataCenter.currentMapEventsRecord.npcPosArray.Length; i++)
                {
                    Vector2 pos = GameManager.Instance.gameDataCenter.currentMapEventsRecord.npcPosArray[i];

                    if (pos == -Vector2.one)
                    {
                        GameManager.Instance.gameDataCenter.currentMapEventsRecord.npcPosArray[i] = transform.position;
                        GameManager.Instance.gameDataCenter.currentMapEventsRecord.npcArray[i]    = npc;
                        break;
                    }
                }
            }

            bc2d.enabled = true;

            gameObject.SetActive(true);

            baCtr.PlayRoleAnim(CommonData.roleIdleAnimName, 0, null);

            bc2d.enabled = true;

            isTriggered = false;

            isInAutoWalk = false;

            needPosFix = false;

            Sprite miniMapNpcSprite = GameManager.Instance.gameDataCenter.allMiniMapSprites.Find(delegate(Sprite obj)
            {
                return(obj.name == string.Format("MiniMapNPC_{0}", npc.npcId));
            });

            miniMapInstance.GetComponent <SpriteRenderer>().sprite = miniMapNpcSprite;
        }