Пример #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 (rb != null)
        {
            rb.useGravity = true;
        }

        bossCtrl          = null;
        collisionCtrl     = null;
        bossPhaseCtrl     = null;
        lifeCtrl          = null;
        currentStatePhase = StatePhases.Raising;
        distanceTraveled  = 0;
        distanceToTravel  = 0;
        startHeigth       = 0;
        maxHeigth         = 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 (trailController != null && leaveTrail)
        {
            trailController.EndTrail();
        }

        bossCtrl         = null;
        collisionCtrl    = null;
        bossPhaseCtrl    = null;
        lifeCtrl         = null;
        distanceTraveled = 0;
    }
Пример #3
0
 /// <summary>
 /// Funzione di Setup
 /// </summary>
 public virtual void Setup(LevelManager _lvlMng)
 {
     lvlMng        = _lvlMng;
     lifeCtrl      = GetComponent <BossLifeController>();
     collisionCtrl = GetComponent <BossCollisionController>();
     isSetupped    = true;
 }
Пример #4
0
    /// <summary>
    /// Funzione che esegue il Setup
    /// </summary>
    /// <param name="_bossCtrl"></param>
    public void Setup(BossControllerBase _bossCtrl)
    {
        bossLifeCtrl      = _bossCtrl.GetBossLifeController();
        bossMaxLife       = bossLifeCtrl.GetMaxBossLife();
        bossLifeBar.value = 1;

        bossLifeCtrl.OnBossTakeDamage += HandleOnBossTakeDamage;
    }
Пример #5
0
    /// <summary>
    /// Funzione di Setup
    /// </summary>
    /// <param name="_bossCtrl"></param>
    public void Setup(Boss1Controller _bossCtrl)
    {
        bossCtrl     = _bossCtrl;
        bossLifeCtrl = bossCtrl.GetBossLifeController();
        maxBossLife  = bossLifeCtrl.GetMaxBossLife();
        currentPhase = 1;

        bossLifeCtrl.OnBossTakeDamage += HandleOnBossTakeDamage;
    }
Пример #6
0
    /// <summary>
    /// Funzione di Setup
    /// </summary>
    /// <param name="_bossCtrl"></param>
    public void Setup(Boss2Controller _bossCtrl)
    {
        bossCtrl     = _bossCtrl;
        bossLifeCtrl = bossCtrl.GetBossLifeController();
        maxBossLife  = bossLifeCtrl.GetMaxBossLife();
        thirdPhase   = false;

        bossLifeCtrl.OnBossTakeDamage += HandleOnBossTakeDamage;
    }
Пример #7
0
    public override void Enter()
    {
        bossCltr = context.GetBossController();
        lifeCtrl = bossCltr.GetBossLifeController();

        lifeCtrl.SetCanTakeDamage(canTakeDirectDamage);

        Debug.Log("Phase 3 Iniziata");
        Complete();
    }
Пример #8
0
    public override void Enter()
    {
        bossCtrl         = context.GetBossController();
        bossTourretsCtrl = bossCtrl.GetTourretsController();
        lifeCtrl         = bossCtrl.GetBossLifeController();

        lifeCtrl.SetCanTakeDamage(canTakeDirectDamage);
        bossTourretsCtrl.SetCanAim(false);

        Debug.Log("Phase 2 Iniziata");
        Complete();
    }
Пример #9
0
    public override void Enter()
    {
        groupCtrl     = context.GetLevelManager().GetGroupController();
        bossCtrl      = context.GetBossController();
        laserCtrl     = bossCtrl.GetLaserController();
        lifeCtrl      = bossCtrl.GetBossLifeController();
        collisionCtrl = bossCtrl.GetBossCollisionController();

        lifeCtrl.OnBossDead      += HandleOnBossDead;
        collisionCtrl.OnAgentHit += HandleOnAgentHit;

        laserTimer = laserDuration;
        laserCtrl.StartLaser();
    }
Пример #10
0
    public override void Enter()
    {
        groupCtrl         = context.GetLevelManager().GetGroupController();
        groupMovementCtrl = groupCtrl.GetGroupMovementController();
        bossCtrl          = context.GetBossController();
        lifeCtrl          = bossCtrl.GetBossLifeController();
        collisionCtrl     = bossCtrl.GetBossCollisionController();
        phaseCtrl         = bossCtrl.GetPhaseController();

        lifeCtrl.OnBossDead         += HandleOnBossDead;
        collisionCtrl.OnAgentHit    += HandleOnAgentHit;
        phaseCtrl.OnThirdPhaseStart += HandleOnThirdPhaseStart;

        suckTimer = suckDuration;
    }
Пример #11
0
    public override void Enter()
    {
        bossCtrl         = context.GetBossController();
        bossTourretsCtrl = bossCtrl.GetTourretsController();
        coverBlockCtrl   = bossCtrl.GetCoverBlocksController();
        lifeCtrl         = bossCtrl.GetBossLifeController();

        lifeCtrl.SetCanTakeDamage(canTakeDirectDamage);
        coverBlockCtrl.EnableCoverBlocks(true);
        bossTourretsCtrl.TourretsSetup();
        bossTourretsCtrl.SetCanAim(true);

        Debug.Log("Phase 1 Iniziata");
        Complete();
    }
Пример #12
0
    public override void Enter()
    {
        groupCtrl     = context.GetLevelManager().GetGroupController();
        bossCtrl      = context.GetBossController();
        tourretsCtrl  = bossCtrl.GetTourretsController();
        collisionCtrl = bossCtrl.GetBossCollisionController();
        lifeCtrl      = bossCtrl.GetBossLifeController();

        tourretsCtrl.OnTourretDead     += HandleOnTourretDead;
        tourretsCtrl.OnAllTourretsDead += HandleOnAllTourretsDead;
        collisionCtrl.OnAgentHit       += HandleOnAgentHit;
        lifeCtrl.OnBossDead            += HandleOnBossDead;

        tourretsShootRoutine = TourretsShootCoroutine();
        tourretsCtrl.StartCoroutine(tourretsShootRoutine);
    }
Пример #13
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;
    }
Пример #14
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();
    }
Пример #15
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;
    }
Пример #16
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;
    }
Пример #17
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;
    }