37 public virtual void Update(
float dt) {
48 m_componentCreature.ComponentHealth.Injured += delegate(
Injury injury) {
105 Vector3 vector = 0.5f * (m_componentCreature.ComponentBody.BoundingBox.Min +
m_componentCreature.ComponentBody.BoundingBox.Max);
107 float num =
float.NegativeInfinity;
109 for (
int i = 0; i < 40; i++) {
111 float y = 0.4f *
m_random.Float(-1f, 1f);
119 delegate(
int value,
float _) {
124 Vector3 vector4 = terrainRaycastResult.HasValue ? vector + v * terrainRaycastResult.Value.Distance : vector3;
135 Vector2 vector =
new(currentPosition.
X, currentPosition.
Z);
136 Vector2 vector2 =
new(safePosition.
X, safePosition.
Z);
137 Vector2? vector3 = herdPosition.HasValue ?
new Vector2?(
new Vector2(herdPosition.Value.
X, herdPosition.Value.
Z)) :
null;
142 Vector2 vector4 =
new(position.
X, position.
Z);
145 return num2 + 1.5f * num3 - num;
override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap)
virtual Vector3 FindSafePlace()
virtual void Update(float dt)
ComponentPathfinding m_componentPathfinding
ComponentHerdBehavior m_componentHerdBehavior
ComponentFrame m_attacker
StateMachine m_stateMachine
override float ImportanceLevel
virtual float ScoreSafePlace(Vector3 currentPosition, Vector3 safePosition, Vector3? herdPosition)
SubsystemTime m_subsystemTime
virtual void SwimAwayFrom(ComponentBody attacker)
SubsystemTerrain m_subsystemTerrain
ComponentCreature m_componentCreature
float m_timeToForgetAttacker
virtual ComponentCreature Attacker
static int ExtractContents(int value)
ValuesDictionary ValuesDictionary
static float Distance(Vector2 v1, Vector2 v2)
static float DistanceSquared(Vector3 v1, Vector3 v2)
static Vector3 Normalize(Vector3 v)
static float Distance(Segment2 s, Vector2 p)