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); }
// 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(); }
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); }
public void SetHouseMode(HouseModes newHouseMode) { houseMode = newHouseMode; }
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; }
// 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(); }
public void SetHouseMode(HouseModes newHouseMode) { houseMode = newHouseMode; }
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; }