示例#1
0
    void Awake()
    {
        appleTreeTargeter = (AppleTreeTargeter)GetComponent <AppleTreeTargeter>();
        playerTargeter    = (GameObjectTargeter)GetComponent <GameObjectTargeter>();
        seekComponent     = (Seek)GetComponent <Seek>();
        movement          = (Movement)GetComponent <Movement>();

        playerTargeter.Target = GameObject.Find("Player");

        ResetEatingVars();

        addAudioSource();

        // Difficulty settings

        int        difficulty     = 1;
        GameObject optionsGameObj = GameObject.Find("GameOptions");

        // We won't be able to find the options GameObject if we haven't gone via the main menu
        if (optionsGameObj != null)
        {
            GameOptions options = optionsGameObj.GetComponent <GameOptions>();
            difficulty = options.difficulty;
        }

        switch (difficulty)
        {
        case 0:
            // Easy
            fleeSpeed = 2.5f;
            break;

        case 1:
        default:
            // Normal
            fleeSpeed = 3.0f;
            break;

        case 2:
            // Hard
            fleeSpeed = 3.2f;
            break;

        case 3:
            // Insane
            fleeSpeed = 4.0f;
            break;
        }
    }
示例#2
0
    void Awake()
    {
        appleTreeTargeter = (AppleTreeTargeter)GetComponent <AppleTreeTargeter>();
        playerTargeter    = (GameObjectTargeter)GetComponent <GameObjectTargeter>();
        seekComponent     = (Seek)GetComponent <Seek>();
        movement          = (Movement)GetComponent <Movement>();
        players           = new List <GameObject>(GameObject.FindGameObjectsWithTag("Player"));

        ResetEatingVars();

        addAudioSource();

        // Difficulty settings

        int        difficulty        = 1;
        GameObject gameMasterGameObj = GameObject.Find("GameMaster");

        if (gameMasterGameObj != null)
        {
            GameMaster gameMaster = gameMasterGameObj.GetComponent <GameMaster>();
            difficulty = gameMaster.difficulty;
        }

        switch (difficulty)
        {
        case 0:
            // Easy
            fleeSpeed = 2.5f;
            break;

        case 1:
        default:
            // Normal
            fleeSpeed = 3.0f;
            break;

        case 2:
            // Hard
            fleeSpeed = 3.2f;
            break;

        case 3:
            // Insane
            fleeSpeed = 4.0f;
            break;
        }
    }
示例#3
0
    void Awake()
    {
        homeTargeter  = GetComponent <GameObjectTargeter>();
        huntTargeter  = GetComponent <HuntTargeter>();
        aStarTargeter = GetComponent <AStarTargeter>();
        wanderer      = GetComponent <Wander>();
        seek          = GetComponent <Seek>();
        movement      = GetComponent <Movement>();
        animator      = GetComponent <Animator>();
        originalScale = transform.localScale;

        parentingTimer    = 0f;
        timeSinceWentHome = GoHomeTimeout;

        // Ensure that the snake has someone to target and a home.
        if (Home == null || Player == null)
        {
            // Place in predator hierarchy.
            transform.parent = GameObject.Find("Predators").transform;

            // Set the player for the predator to chase and this predators home base.
            var predStateMac = GetComponent <PredatorStateMachine>();
            predStateMac.Player = GameObject.FindGameObjectWithTag("Player");
            if (Random.Range(0, 2) == 0)
            {
                predStateMac.Home = GameObject.Find("SnakeHomeLeft");
            }
            else
            {
                predStateMac.Home = GameObject.Find("SnakeHomeRight");
            }
        }

        huntTargeter.Target = Player;
        homeTargeter.Target = Home;

        currentState = State.HeadingHome;         // So we don't play the chasing sound immediately!

        SoundSource      = gameObject.AddComponent <AudioSource>();
        SoundSource.loop = false;

        // Difficulty settings
        int        difficulty     = 1;
        GameObject optionsGameObj = GameObject.Find("GameOptions");

        // We won't be able to find the options GameObject if we haven't gone via the main menu
        if (optionsGameObj != null)
        {
            GameOptions options = optionsGameObj.GetComponent <GameOptions>();
            difficulty = options.difficulty;
        }

        switch (difficulty)
        {
        case 0:
            // Easy
            BubbleTime  = 6.0f;
            normalSpeed = 1.5f;
            chaseSpeed  = 1.9f;
            LeashLength = 8.0f;
            break;

        case 1:
        default:
            // Normal
            BubbleTime  = 3.0f;
            normalSpeed = 2.0f;
            chaseSpeed  = 3.0f;
            LeashLength = 8.0f;
            break;

        case 2:
            // Hard
            BubbleTime  = 2.0f;
            normalSpeed = 2.0f;
            chaseSpeed  = 3.5f;
            LeashLength = 12.0f;
            break;

        case 3:
            // Insane
            BubbleTime  = 1.5f;
            normalSpeed = 3.0f;
            chaseSpeed  = 4.0f;
            LeashLength = 9999.0f;
            break;
        }

        if (difficulty == 0)
        {
            huntTargeter.dumbAttack = true;
        }

        MaxSnakes = 5 + difficulty;

        ParentAge = 40.0f - 10.0f * (float)(difficulty);

        // For the class demonstration
        if (DemoMode)
        {
            // Make the snakes chase over the whole map in the demo
            LeashLength = 9999.0f;

            // Default, 1 = true
            int smart = 1;

            if (PlayerPrefs.HasKey("SmartDemoSnakes"))
            {
                smart = PlayerPrefs.GetInt("SmartDemoSnakes");
            }

            if (smart == 1)
            {
                huntTargeter.dumbAttack = false;
            }
            else
            {
                huntTargeter.dumbAttack = true;
            }
        }
    }