internal static void SimpleInitShip(ShipAI shipAI) { AQAccess.Register(shipAI); if (shipAI == null) { Debug.Log("ShipAi function parameter is null -> Aborting."); return; } ShipAPI sapi = shipAI.GetComponentInChildren <ShipAPI>(); TurretAPI tapi = sapi.TurretControl; if (shipAI.ActualShipRoot == null) { Debug.Log("Missing ship root. np."); } if (sapi == null) { Debug.Log("Missing ship API. np."); } if (sapi == null) { Debug.Log("Missing turret API. np."); } AQAccess.Ins.SetData(shipAI, "Source", shipAI); AQAccess.Ins.SetData(shipAI, "Root", shipAI.ActualShipRoot); AQAccess.Ins.SetData(shipAI, "TurretControl", tapi); }
public override AQResult Execute() { TurretAPI api = AQAccess.GetData("TurretControl") as TurretAPI; if (child == null || child.Execute() == AQResult.Success) { Debug.Log("AQFIRe"); api.Fire(fireType); return(AQResult.Success); } return(AQResult.Fail); }
public IEnumerator TestTurretAI_Shooting() { gameGameObject.transform.position = new Vector3(); TurretAPI api = gameGameObject.GetComponentInChildren <TurretAPI>(); api.Fire(FireCommand.FireOneReady); yield return(new WaitForSeconds(1)); Assert.AreEqual(1, api.bulletsFired, "Expected 1 got " + api.bulletsFired); yield return(new WaitForSeconds(1)); // Use the Assert class to test conditions. // Use yield to skip a frame. yield return(null); }
public IEnumerator TestTurretAI_RotationCommands() { TurretAPI api = gameGameObject.GetComponentInChildren <TurretAPI>(); api.TurnTowardsEmptySpace(new Vector2(1, 0)); yield return(new WaitForSeconds(8)); Assert.AreEqual(Quaternion.Euler(0, 0, 0).eulerAngles.z, api.GunRotation(0).eulerAngles.z, 2); api.TurnTowardsEmptySpace(new Vector2(-1, 0)); yield return(new WaitForSeconds(8)); Assert.AreEqual(Quaternion.Euler(0, 0, -180).eulerAngles.z, api.GunRotation(0).eulerAngles.z, 2); api.TurnTowardsEmptySpace(new Vector2(10, 10)); yield return(new WaitForSeconds(8)); Assert.AreEqual(Quaternion.Euler(0, 0, 45).eulerAngles.z, api.GunRotation(0).eulerAngles.z, 2); // Use the Assert class to test conditions. // Use yield to skip a frame. yield return(null); }