// Use this for initialization
    void Start()
    {
        m_AttackCooldownTimer = Services.TimerManager.CreateTimer("AttackCooldownTimer", 1.5f, false);

        m_Animator    = GetComponentInChildren <Animator>();
        initalRotaton = transform.rotation;

        // Player Watcher Setup
        m_PlayerWatcher = GameObject.Find("PlayerWatcher");

        m_PlayerCamera = GameObject.Find("PlayerCamera");

        m_ToadBoss = gameObject.GetComponent <ToadBoss>();

        // Jump Position initialization
        //m_JumpPosition[1] = GameObject.Find("GroundJumpPosition1");

        m_JumpID        = -1;
        m_NumberOfJumps = m_JumpPosition.Length;

        m_AiActive = true;

        m_AIActions.Add(((int)Action.None), new ToadNone(this));
        m_AIActions.Add(((int)Action.Jump), new CutSceneJump(this));

        m_AIBehaviours.Add((int)Behaviour.Cinematic, new ToadCutsceneBehaviour(this));

        SetBehaviour((int)AIToadController.Behaviour.Cinematic);
        SetAction((int)AIToadController.Action.Jump);
    }
Esempio n. 2
0
    public void Respawn()
    {
        Services.UIManager.PopAllScreens();

        //SetCursorVisibility(true);
        UnFreezeGame();
        Player.Respawn();

        Services.GameManager.SetCursorVisibility(false);
        CurrentGameState = GameState.Playing;


        ToadBoss.Reset();

        //SceneManager.LoadScene("MainMenu");
    }
    // Use this for initialization
    void Start()
    {
        m_AttackCooldownTimer = Services.TimerManager.CreateTimer("AttackCooldownTimer", 1.5f, false);

        m_Animator    = GetComponentInChildren <Animator>();
        initalRotaton = transform.rotation;
        m_HealthBarSize.Set(0.65765f, 0.188084f, 0.188084f);

        m_BossName = "Odell the Abomination";

        m_BossText.text = m_BossName;
        //m_BossDecidedActionText = GameObject.Find("Text_BossDecidedAction").GetComponent<Text>();
        //m_BossActionText = GameObject.Find("Text_BossAction").GetComponent<Text>();

        m_ToadTongueWhipCube = GameObject.Find("ToadParryCube").GetComponent <ToadTongueWhipCube>();
        m_ToadTongueWhipCube.gameObject.SetActive(false);

        m_MaxHealth            = m_ToadBoss.m_MaxHealth;
        m_CurrentHealth        = m_ToadBoss.GetCurrentHealth();
        m_NextHealthThreshhold = (m_MaxHealth / 4) * 3;
        m_GoToPillar           = false;

        // Get a random starting pillar
        m_PillarToGoTo = Random.Range(1, 4);

        Services.GameManager.RegisterToad(this);

        // Player Watcher Setup
        m_PlayerWatcher = GameObject.Find("PlayerWatcher");

        m_PlayerCamera = GameObject.Find("PlayerCamera");
        //m_CutsceneCamera = GameObject.Find("CutsceneCamera");

        // Face and Lips Setup
        m_ToadLips = GameObject.Find("Lips");

        //Tongue Setup
        m_Tongue = GameObject.Find("Tongue");

        m_TongueGrabGameOject = GameObject.Find("TongueGrabCollisionBox");
        m_MineSplitPosition   = GameObject.Find("MineSplitPosition");

        m_ToadBoss = gameObject.GetComponent <ToadBoss>();

        // Jump Position initialization
        m_JumpPosition[0] = GameObject.Find("PillarJumpPosition1");
        m_JumpPosition[1] = GameObject.Find("PillarJumpPosition2");
        m_JumpPosition[2] = GameObject.Find("PillarJumpPosition3");
        m_JumpPosition[3] = GameObject.Find("GroundJumpPosition1");
        m_JumpPosition[4] = GameObject.Find("GroundJumpPosition2");
        m_JumpPosition[5] = GameObject.Find("GroundJumpPosition3");
        m_JumpPosition[6] = GameObject.Find("GroundJumpPosition4");
        m_JumpPosition[7] = GameObject.Find("GroundJumpPosition5");
        m_JumpPosition[8] = GameObject.Find("GroundJumpPosition6");

        // Mine Position initialization
        m_MinePositions[0]  = GameObject.Find("MineSplitPosition");
        m_MinePositions[1]  = GameObject.Find("MinePosition1");
        m_MinePositions[2]  = GameObject.Find("MinePosition2");
        m_MinePositions[3]  = GameObject.Find("MinePosition3");
        m_MinePositions[4]  = GameObject.Find("MinePosition4");
        m_MinePositions[5]  = GameObject.Find("MinePosition5");
        m_MinePositions[6]  = GameObject.Find("MinePosition6");
        m_MinePositions[7]  = GameObject.Find("MinePosition7");
        m_MinePositions[8]  = GameObject.Find("MinePosition8");
        m_MinePositions[9]  = GameObject.Find("MinePosition9");
        m_MinePositions[10] = GameObject.Find("MinePosition10");
        m_MinePositions[11] = GameObject.Find("MinePosition11");

        for (int i = 0; i < m_WhipColliders.Count; i++)
        {
            m_WhipColliders[i].gameObject.SetActive(false);
        }

        m_Prefab_Projectile_Reference_VERT.GetComponent <BasicProjectile>().m_FirstDamageDirection  = AttackDirection.North;
        m_Prefab_Projectile_Reference_VERT.GetComponent <BasicProjectile>().m_SecondDamageDirection = AttackDirection.South;

        m_Prefab_Projectile_Reference_HOR.GetComponent <BasicProjectile>().m_FirstDamageDirection  = AttackDirection.East;
        m_Prefab_Projectile_Reference_HOR.GetComponent <BasicProjectile>().m_SecondDamageDirection = AttackDirection.West;

        m_Prefab_Projectile_Reference_TL.GetComponent <BasicProjectile>().m_FirstDamageDirection  = AttackDirection.NorthWest;
        m_Prefab_Projectile_Reference_TL.GetComponent <BasicProjectile>().m_SecondDamageDirection = AttackDirection.SouthEast;

        m_Prefab_Projectile_Reference_TR.GetComponent <BasicProjectile>().m_FirstDamageDirection  = AttackDirection.NorthEast;
        m_Prefab_Projectile_Reference_TR.GetComponent <BasicProjectile>().m_SecondDamageDirection = AttackDirection.SouthWest;

        for (int i = 0; i < 4; i++)
        {
            if (i == 0)
            {
                m_ProjectilesAttackList.Add(Instantiate <BasicProjectile>(m_Prefab_Projectile_Reference_HOR.GetComponent <BasicProjectile>(), m_ProjectileSpawnPoint_Reference.transform));
            }
            if (i == 1)
            {
                m_ProjectilesAttackList.Add(Instantiate <BasicProjectile>(m_Prefab_Projectile_Reference_TL.GetComponent <BasicProjectile>(), m_ProjectileSpawnPoint_Reference.transform));
            }
            if (i == 2)
            {
                m_ProjectilesAttackList.Add(Instantiate <BasicProjectile>(m_Prefab_Projectile_Reference_VERT.GetComponent <BasicProjectile>(), m_ProjectileSpawnPoint_Reference.transform));
            }
            if (i == 3)
            {
                m_ProjectilesAttackList.Add(Instantiate <BasicProjectile>(m_Prefab_Projectile_Reference_TR.GetComponent <BasicProjectile>(), m_ProjectileSpawnPoint_Reference.transform));
            }

            Debug.Log(i);

            // Making a pool of projectiles to spawn
            // m_ProjectilesAttackList.Add(Instantiate<BasicProjectile>(m_Prefab_Projectile_Reference.GetComponent<BasicProjectile>(), m_ProjectileSpawnPoint_Reference.transform));


            Debug.Log(m_ProjectilesAttackList[i].GetComponent <BasicProjectile>().m_FirstDamageDirection);
            //Turning the Objects off
            m_ProjectilesAttackList[i].gameObject.SetActive(false);
            m_ProjectilesAttackList[i].transform.parent = null;
            m_ProjectilesAttackList[i].m_HasDied        = true;
        }

        for (int i = 0; i < 7; i++)
        {
            //Making a pool of projectiles to spawn
            m_ProjectilesMineList.Add(Instantiate <MineProjectiles>(m_Prefab_ProjectileRain_Reference.GetComponent <MineProjectiles>()));
            //Turning the Objects off
            m_ProjectilesMineList[i].gameObject.SetActive(false);
            m_ProjectilesMineList[i].transform.parent = null;
        }

        m_AIBehaviours.Add((int)Behaviour.Aggressive, new ToadAgressiveBehaviour(this));
        m_AIBehaviours.Add((int)Behaviour.Defensive, new ToadDefensiveBehaviour(this));
        m_AIBehaviours.Add((int)Behaviour.Passive, new ToadPassiveBehaviour(this));
        m_AIBehaviours.Add((int)Behaviour.Cinematic, new ToadCutsceneBehaviour(this));
        m_AIActions.Add(((int)Action.ProjectileMines), new ToadProjectileMines(this));
        m_AIActions.Add(((int)Action.ProjectileAttack), new ToadProjectileAttack(this));
        m_AIActions.Add(((int)Action.SpinHead), new ToadSpinHead(this));
        m_AIActions.Add(((int)Action.Stomp), new ToadStomp(this));
        m_AIActions.Add(((int)Action.Charge), new ToadCharge(this));
        m_AIActions.Add(((int)Action.Turn), new ToadTurn(this));
        m_AIActions.Add(((int)Action.Jump), new ToadJump(this));
        m_AIActions.Add(((int)Action.TongueWhip), new ToadTongueWhip(this));
        m_AIActions.Add(((int)Action.Buck), new ToadBuck(this));
        m_AIActions.Add(((int)Action.None), new ToadNone(this));

        SetDecidedAction((int)AIToadController.Action.None);
        SetAction((int)AIToadController.Action.None);
        SetNextAction((int)AIToadController.Action.None);
        SetBehaviour((int)AIToadController.Behaviour.Passive);
    }