Esempio n. 1
0
    public void SetHouseMode(HouseModes mode, GameObject prefab)
    {
        if (state == Modes.SetWalls || state == Modes.SetDoors)
        {
            Phantom.RemoveIndicators();
        }
        if (state == Modes.SetObject)
        {
            Phantom.RemovePhantom();
        }
        bool showRotationBtn = false;

        switch (mode)
        {
        case HouseModes.Idle:
            state          = Modes.Idle;
            selectedPrefab = null;
            break;

        case HouseModes.SetWalls:
            state          = Modes.SetWalls;
            selectedPrefab = prefab;
            Phantom.PlaceIndicators(cells, walls, prefab.GetComponent <WallController>());
            break;

        case HouseModes.SetDoors:
            state          = Modes.SetDoors;
            selectedPrefab = prefab;
            Phantom.PlaceIndicators(cells, walls, prefab.GetComponent <WallController>());
            break;

        case HouseModes.SetObject:
            state          = Modes.SetObject;
            selectedPrefab = prefab;

            showRotationBtn = !prefab.GetComponent <CellController>().IsSquare;
            break;

        case HouseModes.RemoveWalls:
            state          = Modes.RemoveWall;
            selectedPrefab = null;
            break;

        case HouseModes.RemoveObjects:
            state          = Modes.RemoveObject;
            selectedPrefab = null;
            break;

        case HouseModes.Sale:
            state          = Modes.Sale;
            selectedPrefab = null;
            Sale();
            break;
        }

        M.UI.bCommandsPanel.ShowRotateButton(showRotationBtn);
    }
Esempio n. 2
0
    // Use this for initialization
    public void Start()
    {
        isFirstMove   = true;
        currentMode   = startMode;
        houseMode     = startHouseMode;
        nextDirection = startDirection;
        anim          = GetComponent <Animator>();

        UpdateTile();

        if (gameController == null)
        {
            GameObject Camera = GameObject.Find("Main Camera");
            gameController = Camera.GetComponent <GameController>();
        }

        if (player == null)
        {
            player = gameController.player;
        }


        //InitializePathFinder();
    }
Esempio n. 3
0
	public void SetHouseMode(HouseModes mode, GameObject prefab)
	{
		if(state==Modes.SetWalls || state==Modes.SetDoors)
			Phantom.RemoveIndicators();
		if(state==Modes.SetObject)
			Phantom.RemovePhantom();
		bool showRotationBtn = false;

		switch(mode)
		{
		case HouseModes.Idle:
			state = Modes.Idle;
			selectedPrefab = null;
			break;
		case HouseModes.SetWalls:
			state = Modes.SetWalls;
			selectedPrefab = prefab;
			Phantom.PlaceIndicators(cells,walls,prefab.GetComponent<WallController>());
			break;
		case HouseModes.SetDoors:
			state = Modes.SetDoors;
			selectedPrefab = prefab;
			Phantom.PlaceIndicators(cells,walls,prefab.GetComponent<WallController>());
			break;
		case HouseModes.SetObject:
			state = Modes.SetObject;
			selectedPrefab = prefab;

			showRotationBtn = !prefab.GetComponent<CellController>().IsSquare;
			break;
		case HouseModes.RemoveWalls:
			state = Modes.RemoveWall;
			selectedPrefab = null;
			break;
		case HouseModes.RemoveObjects:
			state = Modes.RemoveObject;
			selectedPrefab = null;
			break;
		case HouseModes.Sale:
			state = Modes.Sale;
			selectedPrefab = null;
			Sale ();
			break;
		}

		M.UI.bCommandsPanel.ShowRotateButton(showRotationBtn);
	}
Esempio n. 4
0
 public void SetHouseMode(HouseModes newHouseMode)
 {
     houseMode = newHouseMode;
 }
Esempio n. 5
0
    public IEnumerator HouseMove(HouseModes mode)
    {
        float t             = 0;
        var   endPosition   = new Vector2();
        var   startPosition = new Vector2();

        isMoving      = true;
        startPosition = transform.position;

        setDirection((int)currentDirection);

        switch (mode)
        {
        case (HouseModes.Idle):

            setDirection((int)currentIdleDirection);
            switch (currentIdleDirection)
            {
            case (Directions.Up):
                endPosition = new Vector2(startPosition.x, startPosition.y + 0.5f);
                break;

            case (Directions.Down):
                endPosition = new Vector2(startPosition.x, startPosition.y - 0.5f);
                break;
            }
            // If it can't go up anymore.
            if (endPosition.y == houseTile.y + 0.5f)
            {
                currentIdleDirection = Directions.Down;
            }

            // If it can't go down anymore.
            if (endPosition.y == houseTile.y - 0.5f)
            {
                currentIdleDirection = Directions.Up;
            }
            break;

        case (HouseModes.Leaving):

            // If it is on the Left Side.
            if (tile.x - (respawnTile.x + 1) < 0)
            {
                endPosition = new Vector2(startPosition.x + 1f, startPosition.y);
            }
            else
            {
                // If it is on the Right Side
                if (tile.x - (respawnTile.x + 1) > 0)
                {
                    endPosition = new Vector2(startPosition.x - 1f, startPosition.y);
                }
                else
                {
                    // If it is just below the respawn point
                    endPosition = new Vector2(startPosition.x, startPosition.y + 1f);

                    // If the end position equals the respawn position,
                    // switch to the current game mode (Scatter/Chase/Frightened)
                    if (endPosition.y == respawnTile.y - 0.5f)
                    {
                        if (isVulnerable)
                        {
                            setMode(Modes.Frightened);
                        }
                        else
                        {
                            setMode(currentGlobalMode);
                        }

                        SetHouseMode(HouseModes.None);
                        isOutside     = true;
                        nextDirection = startDirection;
                    }
                }
            }
            break;

        case (HouseModes.Entering):

            if (new Vector2(tile.x, -1 * tile.y) == respawnTile)
            {
                endPosition = new Vector2(startPosition.x + 0.5f, startPosition.y);
            }
            else
            {
                if (startPosition.y != houseTile.y)
                {
                    endPosition = new Vector2(startPosition.x, startPosition.y - 1f);
                }
                else
                {
                    // If it is on the Left Side.
                    if (startPosition.x - houseTile.x < 0)
                    {
                        endPosition = new Vector2(startPosition.x + 1f, startPosition.y);
                    }
                    else
                    {
                        // If it is on the Right Side
                        if (startPosition.x - houseTile.x > 0)
                        {
                            endPosition = new Vector2(startPosition.x - 1f, startPosition.y);
                        }
                        else
                        {
                            SetHouseMode(HouseModes.Idle);
                            Respawn();
                        }
                    }
                }
            }
            break;
        }

        if (endPosition == Vector2.zero)
        {
            isMoving = false;
            yield break;
        }

        UpdateMoveSpeed();

        while (t < 1f)
        {
            t += moveSpeed * Time.smoothDeltaTime;

            transform.position = Vector2.Lerp(startPosition, endPosition, t);

            if (t >= 1f)
            {
                break;
            }
            else
            {
                yield return(1);
            }
        }

        isMoving = false;
        yield break;
    }
Esempio n. 6
0
    // Use this for initialization
    public void Start()
    {
        isFirstMove = true;
        currentMode = startMode;
        houseMode = startHouseMode;
        nextDirection = startDirection;
        anim = GetComponent<Animator>();

        UpdateTile();

        if (gameController == null)
        {
            GameObject Camera = GameObject.Find("Main Camera");
            gameController = Camera.GetComponent<GameController>();
        }

        if (player == null)
        {
            player = gameController.player;
        }

        //InitializePathFinder();
    }
Esempio n. 7
0
 public void SetHouseMode(HouseModes newHouseMode)
 {
     houseMode = newHouseMode;
 }
Esempio n. 8
0
    public IEnumerator HouseMove(HouseModes mode)
    {
        float t = 0;
        var endPosition = new Vector2();
        var startPosition = new Vector2();
        isMoving = true;
        startPosition = transform.position;

        setDirection((int)currentDirection);

        switch (mode)
        {
            case(HouseModes.Idle):

                setDirection((int)currentIdleDirection);
                switch (currentIdleDirection)
                {
                    case(Directions.Up):
                        endPosition = new Vector2(startPosition.x, startPosition.y + 0.5f);
                        break;
                    case(Directions.Down):
                        endPosition = new Vector2(startPosition.x, startPosition.y - 0.5f);
                        break;
                }
                // If it can't go up anymore.
                if (endPosition.y == houseTile.y + 0.5f)
                {
                    currentIdleDirection = Directions.Down;
                }

                // If it can't go down anymore.
                if (endPosition.y == houseTile.y - 0.5f)
                {
                    currentIdleDirection = Directions.Up;
                }
                break;

            case(HouseModes.Leaving):

                // If it is on the Left Side.
                if (tile.x - (respawnTile.x + 1) < 0)
                {
                    endPosition = new Vector2(startPosition.x + 1f, startPosition.y);
                }
                else
                {
                    // If it is on the Right Side
                    if (tile.x - (respawnTile.x + 1) > 0)
                    {
                        endPosition = new Vector2(startPosition.x - 1f, startPosition.y);
                    }
                    else
                    {
                        // If it is just below the respawn point
                        endPosition = new Vector2(startPosition.x, startPosition.y + 1f);

                        // If the end position equals the respawn position,
                        // switch to the current game mode (Scatter/Chase/Frightened)
                        if (endPosition.y == respawnTile.y - 0.5f)
                        {
                            if (isVulnerable)
                                setMode(Modes.Frightened);
                            else
                                setMode(currentGlobalMode);

                            SetHouseMode(HouseModes.None);
                            isOutside = true;
                            nextDirection = startDirection;
                        }
                    }
                }
                break;

            case(HouseModes.Entering):

                if (new Vector2(tile.x, -1 * tile.y) == respawnTile)
                {
                    endPosition = new Vector2(startPosition.x + 0.5f, startPosition.y);
                }
                else
                {
                    if (startPosition.y != houseTile.y)
                    {
                        endPosition = new Vector2(startPosition.x, startPosition.y - 1f);
                    }
                    else
                    {
                        // If it is on the Left Side.
                        if (startPosition.x - houseTile.x < 0)
                        {
                            endPosition = new Vector2(startPosition.x + 1f, startPosition.y);
                        }
                        else
                        {
                            // If it is on the Right Side
                            if (startPosition.x - houseTile.x > 0)
                            {
                                endPosition = new Vector2(startPosition.x - 1f, startPosition.y);
                            }
                            else
                            {
                                SetHouseMode(HouseModes.Idle);
                                Respawn();
                            }
                        }
                    }
                }
                break;
        }

        if (endPosition == Vector2.zero)
        {
            isMoving = false;
            yield break;
        }

        UpdateMoveSpeed();

        while (t < 1f)
        {
            t += moveSpeed * Time.smoothDeltaTime;

            transform.position = Vector2.Lerp(startPosition, endPosition, t);

            if (t >= 1f)
                break;
            else
                yield return 1;
        }

        isMoving = false;
        yield break;
    }