public moods setMood(moods mood)
    {
        OnMoodChange();
        currentMood = mood;

        return(currentMood);
    }
Example #2
0
    public void ChangeMood(moods mood)
    {
        switch (mood)
        {
        case moods.idle:
            enemy.anim.Play("Idle_Battle");
            break;

        case moods.happy:
            enemy.anim.Play("GetHit");
            break;

        case moods.angry:
            enemy.anim.Play("Defend");
            break;
        }
    }
Example #3
0
    void Update()
    {
        Vector2 goal;

        if (Vector2.Distance(wandergoal, transform.position) < 100)
        {
            updateWandering();
        }

        // Raycast ahead
        int oldLayer = gameObject.layer;

        gameObject.layer = LayerMask.NameToLayer("UI");
        int layerToIgnore = 1 << gameObject.layer;

        layerToIgnore = ~layerToIgnore;
        Vector2      forwards = transform.TransformDirection(Vector3.right);
        RaycastHit2D hit      = Physics2D.Raycast(transform.position, forwards, eyesight, layerToIgnore);

        gameObject.layer = oldLayer;
        if (hit.collider)
        {
            sees = hit.collider.transform.gameObject;
        }
        else
        {
            sees = null;
        }

        // -------

        // Decide Mood
        if (moodcounter <= 0)
        {
            float state = Random.Range(0.0f, aggresssiveness + cowardliness + idleness);
            if (state <= aggresssiveness)
            {
                mood = moods.aggressive;
            }
            else if (state > aggresssiveness && state <= aggresssiveness + cowardliness)
            {
                mood = moods.fleeing;
            }
            else
            {
                mood = moods.idle;
            }
            moodcounter = moodreset;
        }
        else
        {
            moodcounter -= Time.deltaTime;
        }

        // -------

        if (memorycooldown > 0)   // Remember player
        {
            remember = true;
        }
        else
        {
            remember = false;
        }

        if (sees != null)                       // Sees some object
        {
            if (sees == Game.player.gameObject) // Sees Player
            {
                goal = seesPlayer();
            }

            else   // Sees something else
            {
                goal = seesObject();
            }
        }

        else   // Sees nothing
        {
            goal = seesNothing();
        }

        movement.target = goal;
        if (memorycooldown > 0)
        {
            memorycooldown -= Time.deltaTime;
        }
    }
 void Start()
 {
     currentMood = moods.Passive;
 }