public override void PlayerWalkedIn(PlayerController player, List <tk2dSpriteAnimator> animators) { if (m_AIActor) { if (m_GungeoneerMimicController) { m_GungeoneerMimicController.m_Player = player; m_GungeoneerMimicController.Init(); } m_AIActor.GetAbsoluteParentRoom().CompletelyPreventLeaving = true; m_AIActor.ToggleRenderers(false); m_AIActor.IsGone = true; m_AIActor.State = AIActor.ActorState.Inactive; } DoInitialConfiguration(player); if (MirrorBase && MirrorBase.GetComponent <tk2dSprite>()) { MirrorBase.GetComponent <tk2dSprite>().HeightOffGround += 2f; MirrorBase.GetComponent <tk2dSprite>().UpdateZDepth(); } m_MirrorHasShattered = false; }
private IEnumerator WalkThroughMirror() { float time = 1.5f; m_AIActor.IsGone = false; m_AIActor.State = AIActor.ActorState.Awakening; // m_AIActor.State = AIActor.ActorState.Normal; m_AIActor.specRigidbody.CollideWithOthers = true; m_AIActor.ToggleRenderers(true); // m_AIActor.aiShooter.handObject.gameObject.SetActive(true); if (MirrorBase && MirrorBase.GetComponent <tk2dSprite>()) { MirrorBase.GetComponent <tk2dSprite>().HeightOffGround -= 2f; MirrorBase.GetComponent <tk2dSprite>().UpdateZDepth(); m_MirrorDepthUpdated = true; } if (m_GungeoneerMimicController.m_Player.UseArmorlessAnim) { m_AIActor.spriteAnimator.Play("dodge_armorless"); while (m_AIActor.spriteAnimator.IsPlaying("dodge_armorless")) { float Y = 0.025f; m_AIActor.gameObject.transform.position -= new Vector3(0, Y); m_AIActor.specRigidbody.Reinitialize(); m_AIActor.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); yield return(null); } } else { m_AIActor.spriteAnimator.Play("dodge"); while (m_AIActor.spriteAnimator.IsPlaying("dodge")) { float Y = 0.05f; m_AIActor.gameObject.transform.position -= new Vector3(0, Y); m_AIActor.specRigidbody.Reinitialize(); m_AIActor.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); yield return(null); } } m_AIActor.spriteAnimator.Play("run_down"); for (float elapsed = 0f; elapsed < time; elapsed += GameManager.INVARIANT_DELTA_TIME) { float Y = 0.025f; m_AIActor.spriteAnimator.UpdateAnimation(GameManager.INVARIANT_DELTA_TIME); m_AIActor.gameObject.transform.position -= new Vector3(0, Y); m_AIActor.specRigidbody.Reinitialize(); yield return(null); } yield break; }
public static GameObject ReinstateAIActorObjectInfo(GameObject gameObject) {//reinstate boss info, otherwise bosses stand and can't take damage AIActor bosscomponent = gameObject.GetComponent <AIActor>(); if (bosscomponent) { bosscomponent.behaviorSpeculator.enabled = true; bosscomponent.specRigidbody.enabled = true; bosscomponent.ToggleRenderers(true); //component.invisibleUntilAwaken = false; bosscomponent.State = AIActor.ActorState.Normal; bosscomponent.specRigidbody.CollideWithOthers = true; bosscomponent.IsGone = false; if (bosscomponent.aiShooter) { bosscomponent.aiShooter.ToggleGunAndHandRenderers(true, "genericIntro"); } bosscomponent.invisibleUntilAwaken = false; bosscomponent.CanTargetPlayers = true; bosscomponent.IsNormalEnemy = true; } else { Debug.Log("No AiActor component found: " + gameObject.name); } return(gameObject); }
private IEnumerator HandleHammerReturn(AIActor targetHammer, Vector3 returnPosition) { GameObject targetObject = Instantiate(hammerSpawnFX, returnPosition, Quaternion.identity); yield return(null); tk2dSpriteAnimator hammerAnimator = targetObject.GetComponent <tk2dSpriteAnimator>(); if (hammerAnimator != null) { hammerAnimator.Play("HammerReturnSpawn"); while (hammerAnimator.Playing) { targetObject.transform.position -= new Vector3(0, 0.02f); yield return(null); } Vector3 m_LastSpritePosition = targetObject.transform.position; targetHammer.gameObject.GetComponent <CompanionController>().enabled = true; targetHammer.ToggleRenderers(true); targetHammer.IsGone = false; targetHammer.behaviorSpeculator.enabled = true; targetHammer.gameObject.transform.position = m_LastSpritePosition; if (targetHammer.specRigidbody) { targetHammer.specRigidbody.CollideWithOthers = true; targetHammer.specRigidbody.Reinitialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(targetHammer.specRigidbody, null, false); } Destroy(targetObject); } else { targetHammer.gameObject.GetComponent <CompanionController>().enabled = true; targetHammer.ToggleRenderers(true); targetHammer.IsGone = false; targetHammer.behaviorSpeculator.enabled = true; targetHammer.gameObject.transform.position = (returnPosition - new Vector3(0, 4.5f)); if (targetHammer.specRigidbody) { targetHammer.specRigidbody.CollideWithOthers = true; targetHammer.specRigidbody.Reinitialize(); PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(targetHammer.specRigidbody, null, false); } Destroy(targetObject); yield break; } }
public override void PlayerWalkedIn(PlayerController player, List <tk2dSpriteAnimator> animators) { if (MirrorBase && MirrorBase.GetComponent <tk2dSprite>()) { MirrorBase.GetComponent <tk2dSprite>().HeightOffGround += 2f; MirrorBase.GetComponent <tk2dSprite>().UpdateZDepth(); } m_MirrorDepthUpdated = false; m_MirrorHasShattered = false; m_AIActor = aiActor; if (m_AIActor) { m_GungeoneerMimicController = m_AIActor.gameObject.GetComponent <ExpandGungeoneerMimicBossController>(); m_AIActor.GetAbsoluteParentRoom().CompletelyPreventLeaving = true; m_AIActor.ToggleRenderers(false); m_AIActor.aiShooter.handObject.gameObject.SetActive(false); m_AIActor.IsGone = true; m_AIActor.State = AIActor.ActorState.Inactive; } }