public override void Exicute(TheAI ai) { if (ai.battaryCharge < 0) { status = RetunWork.Fail; return; } distance = Vector3.Distance(ai.transform.position, ai.moveToPosition); if (Vector3.Distance(ai.transform.position, ai.moveToPosition) <= 0.5f) { if (ai.waypointTracker < ai.waypoints.Length) { ai.waypointTracker++; } else { ai.waypointTracker = 0; } ai.moveToPosition = ai.waypoints[ai.waypointTracker].position; } status = RetunWork.Running; ai.transform.position = Vector3.MoveTowards(ai.transform.position, ai.moveToPosition, ai.movementSpeed); ai.battaryCharge -= Time.deltaTime * 2; }
public override void Exicute(TheAI ai) { for (int i = 0; i < referancesToChildern.Count; i++) { check = true; if (ai.skipForMe) { if (referancesToChildern[i].skipWhenRunning) { check = false; } } if (check) { referancesToChildern[i].Exicute(ai); if (referancesToChildern[i].status == RetunWork.Fail || referancesToChildern[i].status == RetunWork.Running) { Debug.Log("<color=yellow> RETURNED </color>"); status = referancesToChildern[i].status; return; } } else if (i == referancesToChildern.Count - 1) { Debug.Log("<color=pink> Siquance Fail </color>"); status = RetunWork.Fail; return; } } status = RetunWork.Success; }
public override void Exicute(TheAI ai) { for (int i = 0; i < referancesToChildern.Count; i++) { check = true; if (ai.skipForMe) { if (referancesToChildern[i].skipWhenRunning) { check = false; } } if (check) { referancesToChildern[i].Exicute(ai); if (referancesToChildern[i].status == RetunWork.Success || referancesToChildern[i].status == RetunWork.Running) { status = referancesToChildern[i].status; return; } } } status = RetunWork.Fail; }
public override void Exicute(TheAI ai) { if (ai.battaryCharge >= 100) { status = RetunWork.Success; ai.skipForMe = false; return; } Debug.Log("<color=blue> IN Charging </color>"); status = RetunWork.Running; ai.skipForMe = true; ai.battaryCharge += Time.deltaTime * 20; }
public override void Exicute(TheAI ai) { distance = Vector3.Distance(ai.transform.position, ai.moveToPosition); if (distance <= 0.5f) { status = RetunWork.Success; return; } Debug.Log("<color=red> IN Moving </color>"); status = RetunWork.Running; ai.transform.position = Vector3.MoveTowards(ai.transform.position, ai.moveToPosition, ai.movementSpeed); ai.battaryCharge -= Time.deltaTime * 10; }
public override void Exicute(TheAI ai) { if (ai.waypointTracker < ai.waypoints.Length - 1) { ai.waypointTracker++; } else { ai.waypointTracker = 0; } ai.moveToPosition = ai.waypoints[ai.waypointTracker].position; status = RetunWork.Success; }
public override void Exicute(TheAI ai) { if (ai.battaryCharge < 0) { ai.moveToPosition = ai.chargingPoint.position; status = RetunWork.Fail; return; } else { status = RetunWork.Success; return; } }
public abstract void Exicute(TheAI ai);
public override void Exicute(TheAI ai) { //Action logic will go here }