예제 #1
0
    public override void Exit()
    {
        if (collisionCtrl != null)
        {
            collisionCtrl.OnObstacleHit -= HandleOnObstacleHit;
            collisionCtrl.OnAgentHit    -= HandleOnAgentHit;
        }

        if (lifeCtrl != null)
        {
            lifeCtrl.OnBossDead -= HandleOnBossDead;
        }

        if (bossPhaseCtrl != null)
        {
            bossPhaseCtrl.OnSecondPhaseStart -= HandleOnSecondPhaseStart;
            bossPhaseCtrl.OnThirdPhaseStart  -= HandleOnThirdPhaseStart;
        }

        if (trailController != null && leaveTrail)
        {
            trailController.EndTrail();
        }

        bossCtrl         = null;
        collisionCtrl    = null;
        bossPhaseCtrl    = null;
        lifeCtrl         = null;
        distanceTraveled = 0;
    }
예제 #2
0
    public override void Exit()
    {
        if (collisionCtrl != null)
        {
            collisionCtrl.OnObstacleHit -= HandleOnObstacleHit;
            collisionCtrl.OnAgentHit    -= HandleOnAgentHit;
        }

        if (lifeCtrl != null)
        {
            lifeCtrl.OnBossDead -= HandleOnBossDead;
        }

        if (bossPhaseCtrl != null)
        {
            bossPhaseCtrl.OnSecondPhaseStart -= HandleOnSecondPhaseStart;
            bossPhaseCtrl.OnThirdPhaseStart  -= HandleOnThirdPhaseStart;
        }

        if (rb != null)
        {
            rb.useGravity = true;
        }

        bossCtrl          = null;
        collisionCtrl     = null;
        bossPhaseCtrl     = null;
        lifeCtrl          = null;
        currentStatePhase = StatePhases.Raising;
        distanceTraveled  = 0;
        distanceToTravel  = 0;
        startHeigth       = 0;
        maxHeigth         = 0;
    }
예제 #3
0
    /// <summary>
    /// Funzione di Setup
    /// </summary>
    /// <param name="_lvlMng"></param>
    public override void Setup(LevelManager _lvlMng)
    {
        base.Setup(_lvlMng);

        sm            = GetComponent <Boss1SMController>();
        shootCtrl     = GetComponent <Boss1ShootController>();
        phaseCtrl     = GetComponent <Boss1PhaseController>();
        trailCtrl     = GetComponent <Boss1TrailController>();
        cubeExplosion = GetComponent <CubeExplosion>();
    }
예제 #4
0
    public override void Enter()
    {
        groupCtrl     = context.GetLevelManager().GetGroupController();
        bossCtrl      = context.GetBossController();
        lifeCtrl      = bossCtrl.GetBossLifeController();
        collisionCtrl = bossCtrl.GetBossCollisionController();
        bossPhaseCtrl = bossCtrl.GetBossPhaseController();

        timer    = 0;
        waitTime = Random.Range(waitTimeRange.x, waitTimeRange.y);

        bossPhaseCtrl.OnSecondPhaseStart += HandleOnSecondPhaseStart;
        bossPhaseCtrl.OnThirdPhaseStart  += HandleOnThirdPhaseStart;
        lifeCtrl.OnBossDead      += HandleOnBossDead;
        collisionCtrl.OnAgentHit += HandleOnAgentHit;
    }
예제 #5
0
    public override void Enter()
    {
        bossCtrl      = context.GetBossController();
        lifeCtrl      = bossCtrl.GetBossLifeController();
        collisionCtrl = bossCtrl.GetBossCollisionController();
        bossPhaseCtrl = bossCtrl.GetBossPhaseController();
        groupCtrl     = context.GetLevelManager().GetGroupController();

        Boss1ShootController shootCtrl = context.GetBossController().GetBossShootController();

        //HACK: Così i designer possono partire a contare da 1
        shootCtrl.Shoot(shootPointIndex - 1);

        bossPhaseCtrl.OnSecondPhaseStart += HandleOnSecondPhaseStart;
        bossPhaseCtrl.OnThirdPhaseStart  += HandleOnThirdPhaseStart;
        lifeCtrl.OnBossDead      += HandleOnBossDead;
        collisionCtrl.OnAgentHit += HandleOnAgentHit;

        Complete();
    }
예제 #6
0
    public override void Exit()
    {
        if (bossPhaseCtrl != null)
        {
            bossPhaseCtrl.OnSecondPhaseStart -= HandleOnSecondPhaseStart;
            bossPhaseCtrl.OnThirdPhaseStart  -= HandleOnThirdPhaseStart;
        }

        if (lifeCtrl != null)
        {
            lifeCtrl.OnBossDead -= HandleOnBossDead;
        }

        if (collisionCtrl != null)
        {
            collisionCtrl.OnAgentHit -= HandleOnAgentHit;
        }

        bossPhaseCtrl = null;
        lifeCtrl      = null;
        bossCtrl      = null;
    }
예제 #7
0
    public override void Enter()
    {
        groupCtrl     = context.GetLevelManager().GetGroupController();
        bossCtrl      = context.GetBossController();
        lifeCtrl      = bossCtrl.GetBossLifeController();
        collisionCtrl = bossCtrl.GetBossCollisionController();
        rb            = collisionCtrl.GetRigidBody();
        bossPhaseCtrl = bossCtrl.GetBossPhaseController();

        rb.useGravity     = false;
        startHeigth       = bossCtrl.transform.position.y;
        maxHeigth         = startHeigth + jumpHeight;
        distanceTraveled  = 0;
        distanceToTravel  = 0;
        currentStatePhase = StatePhases.Raising;

        bossPhaseCtrl.OnSecondPhaseStart += HandleOnSecondPhaseStart;
        bossPhaseCtrl.OnThirdPhaseStart  += HandleOnThirdPhaseStart;
        lifeCtrl.OnBossDead         += HandleOnBossDead;
        collisionCtrl.OnObstacleHit += HandleOnObstacleHit;
        collisionCtrl.OnAgentHit    += HandleOnAgentHit;
    }
예제 #8
0
    public override void Enter()
    {
        groupCtrl       = context.GetLevelManager().GetGroupController();
        bossCtrl        = context.GetBossController();
        lifeCtrl        = bossCtrl.GetBossLifeController();
        collisionCtrl   = bossCtrl.GetBossCollisionController();
        bossPhaseCtrl   = bossCtrl.GetBossPhaseController();
        trailController = bossCtrl.GetBossTrailController();

        distanceTraveled = 0;
        LookAtPosition(groupCtrl.GetGroupCenterPoint());

        if (leaveTrail)
        {
            trailController.InstantiateNewTrail();
        }

        bossPhaseCtrl.OnSecondPhaseStart += HandleOnSecondPhaseStart;
        bossPhaseCtrl.OnThirdPhaseStart  += HandleOnThirdPhaseStart;
        lifeCtrl.OnBossDead         += HandleOnBossDead;
        collisionCtrl.OnObstacleHit += HandleOnObstacleHit;
        collisionCtrl.OnAgentHit    += HandleOnAgentHit;
    }