IEnumerator LoadFinish() { if (GameObject.FindGameObjectWithTag("Player") != null) { Transform playerTrans = GameObject.FindGameObjectWithTag("Player").transform; playerTrans.GetComponent <PlayerChange>().ForceChangeForm(OKAID_now); if (SceneManager.GetActiveScene().buildIndex == 1) { playerTrans.position = LevelDoor.get_lastEnterDoorPos(); } else { playerTrans.position = Vector3.zero; } GameObject.Find("ParallaxCamera").transform.position = Vector3.zero; playerTrans.GetComponent <PlayerEnergy>().ResetEnegy(); PlayerStatus.set_inSeason(PlayerStatus.Season.none); yield return(new WaitForSeconds(0.5f)); //等待攝影機規定位 } changeScene_canvasGroup.DOFade(0f, BlackFadeTime); yield return(new WaitForSeconds(BlackFadeTime)); PlayerStatus.canControl = true; }
private IPromise TransitionRight() { // animate the doors Promise[] doorAnimations = this.levelDoors.map((door, index) => { int indexWaypoint = this.goRightOrder[index]; Vector2 position = this.waypoints[indexWaypoint].position; if (index == 2) { var promise = new Promise(); door.SetPosition(position); promise.Resolve(); return(promise); } return(door.MoveTo(position)); }).ToArray(); //animation world up change when not visible and then go down Promise[] extraAnimations = new Promise[] { new Promise((resolve, reject) => { Sequence mySequence = DOTween.Sequence(); Vector2 targetPosition = this.highScore.GetComponentInChildren <WaypointUi>().GetPosition(); Vector2 originalPosition = this.highScore.position; mySequence.Append(this.highScore.DOMove(targetPosition, 0.5f, false)); mySequence.AppendCallback(() => { string worldName = this.levelDoors.First().GetWorldName(); WorldSave foundWorldSave = Array.Find(this.worldSaves, (worldSave) => worldSave.name == worldName); this.highScoreText.text = foundWorldSave.highScore.ToString(); }); mySequence.Append(this.highScore.DOMove(originalPosition, 0.5f, false)); mySequence.AppendCallback(() => resolve()); }), new Promise((resolve, reject) => { string worldName = this.levelDoors.First().GetWorldName(); Sequence mySequence = DOTween.Sequence(); Vector2 targetPosition = this.worldTitle.GetComponentInChildren <WaypointUi>().GetPosition(); Vector2 originalPosition = this.worldTitle.position; mySequence.Append(this.worldTitle.DOMove(targetPosition, 0.5f, false)); mySequence.AppendCallback(() => this.worldTitle.GetComponent <WorldTitle>().ChangeTextImage(worldName)); mySequence.Append(this.worldTitle.DOMove(originalPosition, 0.5f, false)); mySequence.AppendCallback(() => resolve()); }), new Promise((resolve, reject) => { this.levelDoors.First() .ResetVolkaRotation() .AnimateEnterVolka(worldSaves[this.makeInsideBoundaries(this.startingIndex - 1, WorldsConfig.names.Length)].unlocked) .Then(() => resolve()); }), }; Promise[] animations = doorAnimations.Union(extraAnimations).ToArray(); // set highScore world return(Promise.All(animations) .Then(() => { // move last element to first position LevelDoor lastDoor = this.levelDoors.Last(); this.levelDoors.Remove(lastDoor); this.levelDoors.Insert(0, lastDoor); this.startingIndex--; this.startingIndex = this.makeInsideBoundaries(this.startingIndex, WorldsConfig.names.Length); AssingLevelDoorValues(this.startingIndex, this.levelDoors); })); }
void OnTriggerEnter2D(Collider2D collider) { HeroRabbit rabit = collider.GetComponent <HeroRabbit>(); if (rabit != null) { current = this; GameObject parent = UICamera.first.transform.parent.gameObject; GameObject obj = NGUITools.AddChild(parent, winPrefab); } }
void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "SlidingElement") { SimpleMovableElement element = other.gameObject.GetComponentInParent <SimpleMovableElement>(); transform.parent = element.transform; element.SetPlayerOnTop(true); } if (other.gameObject.tag == "EndScreen") { int clicks = GameManager.GetInstance().GetTotalClicks(); UIManager.GetInstance().showEndPanel(clicks); } if (other.gameObject.tag == "Gate") { Gate gate = other.gameObject.GetComponentInParent <Gate>(); if (gate != null) { gate.TryToOpen(); } } if (other.gameObject.tag == "LevelEntry") { LevelEntryDoor door = other.gameObject.GetComponentInParent <LevelEntryDoor>(); if (door != null) { door.startLevel(); } } if (other.gameObject.tag == "LevelDoor") { LevelDoor door = other.gameObject.GetComponentInParent <LevelDoor>(); if (door != null) { door.startLevel(); } } if (other.gameObject.tag == "Key") { Key key = other.gameObject.GetComponent <Key> (); if (key != null) { key.setFound(); key.GetComponent <PathElement> ().SetActive(false); } } }
// Enter a door public void UseDoor() { Collider2D col = Physics2D.OverlapPoint(transform.FindChild("Head").position, DoorLayer); if (Me == Character.NANO && col) { LevelDoor door = col.GetComponent <LevelDoor>(); if (!door.isLocked) { canMove = false; door.EndScene(); } } }
private LevelSelector InitializeDoors(WorldSave[] worldSaves) { this.worldSaves = worldSaves; this.levelDoors = this.waypoints.map((waypoint, index) => { LevelDoor levelDoor = Resources.Door.Instantiate().GetComponent <LevelDoor>(); levelDoor.Initialize(worldSaves); levelDoor.SetPosition(waypoint.position); levelDoor.transform.SetParent(this.gameObject.transform, false); return(levelDoor); }).ToList(); AssingLevelDoorValues(this.startingIndex, this.levelDoors); WorldSave foundWorldSave = this.worldSaves.First(); this.highScoreText.text = foundWorldSave.highScore.ToString(); return(this); }
// Update is called once per frame void Update() { if (m_exterminateTargets.Count > 0) { bool exterminatedEnemies = true; foreach (GameObject target in m_exterminateTargets) { if (target.activeSelf) { exterminatedEnemies = false; break; } } if (exterminatedEnemies) { if (m_fadeMusic) { Singleton_Sound.m_instance.fadeOutSound(0.15f); } if (m_soundToPlayWhenItemSpawns.Length != 0) { Singleton_Sound.m_instance.PlayAudioClipOneShot(m_soundToPlayWhenItemSpawns, 0.4f); } if (null != m_itemToSpawn) { GameObject spawnedItem = System_Spawn.instance.GetObjectFromPool(m_itemToSpawn, true); spawnedItem.transform.position = m_spawnLocation.transform.position; } m_exterminateTargets.Clear(); if (null != m_levelDoor) { LevelDoor door = m_levelDoor.GetComponent <LevelDoor>(); if (null != door) { door.SetDoorOpen(true); } } } } }
public void KillEntity() { foreach (GameObject levelDoor in m_levelDoors) { if (null == levelDoor) { continue; } LevelDoor door = levelDoor.GetComponent <LevelDoor>(); if (null != door) { door.SetDoorOpen(true); } } foreach (GameObject rewardSpawner in m_rewardSpawners) { if (null == rewardSpawner) { continue; } ISpawner spawner = rewardSpawner.GetComponent <ISpawner>(); if (null != spawner) { spawner.ForceSpawn(); } } Singleton_Sound.m_instance.PlayAudioClip(m_defeatedSound); Singleton_Sound.m_instance.fadeOutSound(0.005f); gameObject.SetActive(false); }
public override void Paint(Level level) { // WallRegistry.Paint(level, this, EntranceWallPool.Instance); var w = GetTileCenter(); var d = w + new Dot(0, -2); Painter.Fill(level, d.X - 1, d.Y - 1, 3, 3, Tile.WallA); Painter.Set(level, d.X, d.Y, Tiles.RandomFloor()); Painter.Set(level, d.X, d.Y + 1, Tiles.RandomFloor()); var door = new LevelDoor(); level.Area.Add(door); door.X = d.X * 16; door.Y = d.Y * 16 + 16; PlaceExit(level, d); PlaceEntrance(level, w + new Dot(0, 1)); MakeSafe(level); }
private void OnTriggerEnter2D(Collider2D other) { elevator = other.gameObject.GetComponent <DoorScript>(); levelVator = other.gameObject.GetComponent <LevelDoor>(); // Debug.Log("collision happinin"); }