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);
    }
Example #3
0
        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);
        }
Example #4
0
        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);
        }