Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        /// <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();
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        /// <Summary>
        /// Set direction to the player's back side.
        /// </Summary>
        public static void TurnBack()
        {
            Direction dir = new Direction();

            direction = dir.GetReverseDir(direction);
        }
Пример #8
0
        /// <Summary>
        /// Set direction to player's right hand side.
        /// </Summary>
        public static void TurnRight()
        {
            Direction dir = new Direction();

            direction = dir.GetClockwiseDir(direction);
        }
Пример #9
0
        /// <Summary>
        /// Set direction to player's left hand side.
        /// </Summary>
        public static void TurnLeft()
        {
            Direction dir = new Direction();

            direction = dir.GetCounterclockwiseDir(direction);
        }