summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/AI/AIRunTimeValueDistance.cs
blob: 8ba9ca6d94e5f380b002be78d4740d0f10bbb5cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Xml;
using XUtliPoolLib;

namespace XMainClient
{
	internal class AIRunTimeValueDistance : AIRunTimeNodeCondition
	{
		private string _target_name;

		private string _distance_name;

		private float _distance = 0f;

		public AIRunTimeValueDistance(XmlElement node) : base(node)
		{
			this._target_name = node.GetAttribute("Shared_TargetName");
			this._distance_name = node.GetAttribute("Shared_MaxDistanceName");
			this._distance = float.Parse(node.GetAttribute("Shared_MaxDistancemValue"));
		}

		public override bool Update(XEntity entity)
		{
			XGameObject xgameObjectByName = entity.AI.AIData.GetXGameObjectByName(this._target_name);
			float floatByName = entity.AI.AIData.GetFloatByName(this._distance_name, this._distance);
			bool flag = xgameObjectByName != null;
			return flag && (entity.EngineObject.Position - xgameObjectByName.Position).magnitude <= floatByName;
		}
	}
}