/// <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); }
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; }
/// <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); }
/// <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; }