public moods setMood(moods mood) { OnMoodChange(); currentMood = mood; return(currentMood); }
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; } }
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; }