/// <Summary> /// Copy constructor of base parts. /// </Summary> /// <param name="baseParts">Base parts data for copying.</param> public AriadneEventParts(AriadneEventParts baseParts) { eventCategory = baseParts.eventCategory; eventTrigger = baseParts.eventTrigger; eventPos = baseParts.eventPos; startCondition = baseParts.startCondition; startFlagName = baseParts.startFlagName; startItemId = baseParts.startItemId; startNum = baseParts.startNum; comparisonOperator = baseParts.comparisonOperator; hasExecutedFlag = baseParts.hasExecutedFlag; executedFlagName = baseParts.executedFlagName; doorKeyType = baseParts.doorKeyType; destDungeon = baseParts.destDungeon; destMap = baseParts.destMap; destPos = baseParts.destPos; direction = baseParts.direction; treasureType = baseParts.treasureType; itemId = baseParts.itemId; itemNum = baseParts.itemNum; msgList = new List <string>(); foreach (string msg in baseParts.msgList) { msgList.Add(msg); } }
/// <Summary> /// Set the initial position of the player. /// </Summary> void SetInitPos() { Vector2Int initPos = Vector2Int.zero; DungeonDir initDir = DungeonDir.North; if (floorMapData != null) { initPos = floorMapData.entrancePos; initDir = floorMapData.enteringDir; } PlayerPosition.playerPos = initPos; PlayerPosition.direction = initDir; PlayerPosition.currentFloorId = floorMapData.floorId; PlayerPosition.currentDungeonId = dungeonData.dungeonId; float targetAngle = CurrentDirAngle(); player.transform.eulerAngles = new Vector3(0, targetAngle, 0); SetCameraPos(); }
/// <Summary> /// Get the reverse direction of the argument. /// </Summary> /// <param name="direction">Base direction.</param> public DungeonDir GetReverseDir(DungeonDir direction) { DungeonDir dir = direction; switch (direction) { case DungeonDir.North: dir = DungeonDir.South; break; case DungeonDir.East: dir = DungeonDir.West; break; case DungeonDir.South: dir = DungeonDir.North; break; case DungeonDir.West: dir = DungeonDir.East; break; } return(dir); }
/// <Summary> /// Returns the rotation of the object that corresponds to DungeonDir. /// </Summary> /// <param name="dir">The direction of the object.</param> public Vector3 GetRotationOfDirection(DungeonDir dir) { Vector3 rotation = Vector3.zero; switch (dir) { case DungeonDir.North: rotation = Vector3.zero; break; case DungeonDir.East: rotation = new Vector3(0f, 90f, 0f); break; case DungeonDir.South: rotation = new Vector3(0f, 180f, 0f); break; case DungeonDir.West: rotation = new Vector3(0f, 270f, 0f); break; } return(rotation); }
/// <Summary> /// Get the direction name of the argument. /// </Summary> /// <param name="direction">Base direction.</param> public string GetDirectionName(DungeonDir direction) { string dirName = ""; switch (direction) { case DungeonDir.North: dirName = "North"; break; case DungeonDir.East: dirName = "East"; break; case DungeonDir.South: dirName = "South"; break; case DungeonDir.West: dirName = "West"; break; } return(dirName); }
/// <Summary> /// Returns the map attribute of the position that is specified direction of target position. /// </Summary> /// <param name="mapData">Target position to check.</param> /// <param name="pos">Target position to check.</param> /// <param name="dir">Direction to check.</param> public static int GetMapInfoByDirection(FloorMapMasterData mapData, Vector2Int pos, DungeonDir dir) { int wallInfo = 0; Vector2Int targetPos = pos; switch (dir) { case DungeonDir.North: targetPos.y += 1; break; case DungeonDir.East: targetPos.x += 1; break; case DungeonDir.South: targetPos.y -= 1; break; case DungeonDir.West: targetPos.x -= 1; break; } if (CheckPositionIsValid(targetPos, mapData.floorSizeHorizontal, mapData.floorSizeVertical)) { int index = targetPos.x + targetPos.y * mapData.floorSizeHorizontal; wallInfo = mapData.mapInfo[index].mapAttr; } else { wallInfo = 1; } return(wallInfo); }
/// <Summary> /// Set direction to the player's back side. /// </Summary> public static void TurnBack() { Direction dir = new Direction(); direction = dir.GetReverseDir(direction); }
/// <Summary> /// Set direction to player's right hand side. /// </Summary> public static void TurnRight() { Direction dir = new Direction(); direction = dir.GetClockwiseDir(direction); }
/// <Summary> /// Set direction to player's left hand side. /// </Summary> public static void TurnLeft() { Direction dir = new Direction(); direction = dir.GetCounterclockwiseDir(direction); }