IEnumerator chargeAndFire(ShipAi enermyAI, ShipSpawner cl)
    {
        AttackHandeler ah = enermyAI.GetComponent <AttackHandeler>();

        ah.ChargeUp();
        for (int i = 0; i < FixedUpdateFramesChargedFor; i++)
        {
            yield return(new WaitForFixedUpdate());

            if (enermyAI == null || ah == null || ah.spawnPoint == null)
            {
                yield break;
            }
            var hit = Physics2D.Raycast(ah.spawnPoint.transform.position, enermyAI.transform.up, 10);
            Debug.DrawRay(ah.spawnPoint.transform.position, enermyAI.transform.up * 10);
            if (hit)
            {
                Debug.Log("hit", hit.transform);
                Debug.Log("by", enermyAI.transform);
                var other_team = hit.transform.GetComponent <TeamHandeler>();
                var my_team    = enermyAI.GetComponent <TeamHandeler>();
                if (!my_team.Equals(other_team))
                {
                    if (ah.charged)
                    {
                        ah.Fire();
                    }
                }
            }
        }
        ah.Discharge();
    }
Example #2
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
    private void Start()
    {
        instance = this;
        EntityManager manager    = World.Active.EntityManager;
        Entity        shipEntity = CreateShipEntity(manager);

        SetShipEntitySettings(shipEntity, manager);
    }
Example #4
0
    /*
     * assign variables and adds a listener to the console to detect input
     */
    void Start()
    {
        textField = gameObject.GetComponent <InputField> ();
        logbox    = GameObject.Find("Log");
        logtext   = logbox.GetComponent <Text> ();

        spawner = GameObject.Find("GameLogic")
                  .GetComponent <ShipSpawner>();

        var submit = new InputField.SubmitEvent();

        submit.AddListener(textSubmit);
        textField.onEndEdit = submit;
    }
        public void playGameTick()
        {
            Dock.unloadCart();

            foreach (var item in GameObjects)
            {
                item.move();
            }
            if (random.Next(1, 5) == 1)
            {
                generateCart();
            }
            if (random.Next(1, 20) == 1)
            {
                GameObjects.Add(ShipSpawner.generateShip());
            }
        }
    public GameObject Spawn(RandomInitable seed, int Decisions, Vector3 pos, ShipSpawner Controler)
    {
        // RandomInitable r = seed;
        GameObject newEnermy = Instantiate(Actor, Controler.transform);
        var        tmp_R     = seed;

        newEnermy.name = string.Format("{0} id = {1}", name, tmp_R.seed);
        newEnermy.transform.position = pos;
        var ai = newEnermy.GetComponent <ShipAi>();

        ai.R = tmp_R;
        for (int i = 0; i < Decisions; i++)
        {
            ai.addDecision(ai.R.Pick(options));
        }
        ai.decisionLoop.StartLoop();
        var repr = Instantiate(Representaion, newEnermy.transform);

        repr.name = repr.name.Replace("(Clone)", "");
        var teemh = newEnermy.GetComponent <TeamHandeler>();

        teemh.team = this.team;
        var parts = repr.GetComponentsInChildren <ShipTextureCreator>();

        foreach (var a in parts)
        {
            var repr_seed = ai.R.valueInt;
            a.setSeed(repr_seed);
        }
        ai.controler  = Controler;
        ai.ScoreValue = ScoreValue;
        var destroyer = newEnermy.GetComponent <DestroyOnAnimationExit>();

        destroyer.animationIndex = ai.R.Pick(explosions);
        var dropHandeler = newEnermy.GetComponent <DropHandeler>();
        var item         = ai.R.Pick(items);

        if (item.chalange.getCr() >= ai.R.value)
        {
            var a = ai.R.Pick(items);
            dropHandeler._drop = a;
        }
        return(newEnermy);
    }
        public void TryingSpawningCollidingShips_Fails()
        {
            int shipsLength = 4;

            int[] shipsStartingCoordinates = { 0, 9 };

            Mock <IField>[] fields = new Mock <IField> [4];
            for (int i = 0; i < fields.Length; i++)
            {
                fields[i] = new Mock <IField>();
            }

            var battlefield = new Mock <IBattlefield>();

            for (int i = 0; i < fields.Length; i++)
            {
                battlefield.Setup(x => x.GetField(shipsStartingCoordinates[0] + i, shipsStartingCoordinates[1]))
                .Returns(fields[i].Object);
            }

            var mockRandom = new Mock <Random>();

            mockRandom.Setup(x => x.Next(2)).Returns(1);
            mockRandom.Setup(x => x.Next(9 - shipsLength + 2)).Returns(shipsStartingCoordinates[0]);
            mockRandom.Setup(x => x.Next(10)).Returns(shipsStartingCoordinates[1]);

            var ship = new Mock <IShip>();

            ship.Setup(x => x.Length).Returns(shipsLength);

            var shipSpawner = new ShipSpawner(battlefield.Object, mockRandom.Object);

            shipSpawner.SpawnShip(ship.Object);

            int[] nextShipsStartingCoordinates = { 3, 6 };
            int   nextShipsLength = shipsLength;

            mockRandom.Setup(x => x.Next(2)).Returns(0);
            mockRandom.Setup(x => x.Next(10)).Returns(nextShipsStartingCoordinates[0]);
            mockRandom.Setup(x => x.Next(9 - nextShipsLength + 2)).Returns(nextShipsStartingCoordinates[1]);

            Assert.False(shipSpawner.SpawnShip(ship.Object));
        }
Example #8
0
    public void GenerateMissionInZone()
    {
        Reset();

        var zone = GetRandomZone();

        if (zone == null)
        {
            return;
        }

        var mission = new GameObject("PLAYERMISSION");

        mission.AddComponent <TargetingInfo>().Init("MISSION", null, false);

        currentMission            = mission;
        currentSpawner            = zone;
        currentSpawner.Triggered += HandleSpawnTriggered;
    }
    internal override void go(ShipAi enermyAI, ShipSpawner cl)
    {
        if (cl)
        {
            Camera cam        = cl.cam;
            var    bottomLeft = cam.ScreenToWorldPoint(Vector3.zero);
            var    topRight   = cam.ScreenToWorldPoint(new Vector3(
                                                           cam.pixelWidth, cam.pixelHeight));

            var cameraRect = new Rect(
                bottomLeft.x,
                bottomLeft.y,
                topRight.x - bottomLeft.x,
                topRight.y - bottomLeft.y);
            if (cameraRect.Contains(enermyAI.transform.position))
            {
                enermyAI.StartCoroutine(chargeAndFire(enermyAI, cl));
            }
        }
    }
        public void TryingSpawningTwoShipsAtExactlySameLocation_Fails()
        {
            int shipsLength = 5;

            int[] shipsStartingCoordinates = { 4, 1 };

            Mock <IField>[] fields = new Mock <IField> [5];
            for (int i = 0; i < fields.Length; i++)
            {
                fields[i] = new Mock <IField>();
            }

            var battlefield = new Mock <IBattlefield>();

            for (int i = 0; i < fields.Length; i++)
            {
                battlefield.Setup(x => x.GetField(shipsStartingCoordinates[0], shipsStartingCoordinates[1] + i))
                .Returns(fields[i].Object);
            }

            var mockRandom = new Mock <Random>();

            mockRandom.Setup(x => x.Next(2)).Returns(0);
            mockRandom.Setup(x => x.Next(10)).Returns(shipsStartingCoordinates[0]);
            mockRandom.Setup(x => x.Next(9 - shipsLength + 2)).Returns(shipsStartingCoordinates[1]);

            var ship = new Mock <IShip>();

            ship.Setup(x => x.Length).Returns(shipsLength);

            var shipSpawner = new ShipSpawner(battlefield.Object, mockRandom.Object);

            Assert.True(shipSpawner.SpawnShip(ship.Object));
            foreach (var field in fields)
            {
                field.Verify(x => x.PlaceShip(ship.Object), Times.Once());
            }
            Assert.False(shipSpawner.SpawnShip(ship.Object));
        }
        public void AfterSpawningVerticalShip_CorrectFieldsHaveShipPlacedOnThem()
        {
            int shipsLength = 4;

            int[] shipsStartingCoordinates = { 0, 9 };

            Mock <IField>[] fields = new Mock <IField> [4];
            for (int i = 0; i < fields.Length; i++)
            {
                fields[i] = new Mock <IField>();
            }

            var battlefield = new Mock <IBattlefield>();

            for (int i = 0; i < fields.Length; i++)
            {
                battlefield.Setup(x => x.GetField(shipsStartingCoordinates[0] + i, shipsStartingCoordinates[1]))
                .Returns(fields[i].Object);
            }

            var mockRandom = new Mock <Random>();

            mockRandom.Setup(x => x.Next(2)).Returns(1);
            mockRandom.Setup(x => x.Next(9 - shipsLength + 2)).Returns(shipsStartingCoordinates[0]);
            mockRandom.Setup(x => x.Next(10)).Returns(shipsStartingCoordinates[1]);

            var ship = new Mock <IShip>();

            ship.Setup(x => x.Length).Returns(shipsLength);

            var shipSpawner = new ShipSpawner(battlefield.Object, mockRandom.Object);

            Assert.True(shipSpawner.SpawnShip(ship.Object));
            foreach (var field in fields)
            {
                field.Verify(x => x.PlaceShip(ship.Object), Times.Once());
            }
        }
    public void Spawn()
    {
        Virus[] viruses = GetComponentsInChildren <Virus>();
        if (viruses.Length >= MaxViruses)
        {
            ShipSpawner shipSpawner = GetComponentInChildren <ShipSpawner>();
            GameObject  ship        = shipSpawner.Spawn();
            ship.GetComponent <Ship>().MakeUnfriendly();
        }
        else
        {
            PolygonCollider2D col      = GetComponent <PolygonCollider2D>();
            Vector2           position = new Vector2();
            bool spawn = false;

            for (int i = 0; i < 1000; ++i)
            {
                position = Random.insideUnitCircle * 2 + new Vector2(transform.position.x, transform.position.y);
                bool inSpawnZone = col.OverlapPoint(position);

                if (inSpawnZone)
                {
                    spawn = true;
                    break;
                }
            }

            if (spawn)
            {
                GameObject virus = (GameObject)Instantiate(Virus, position, transform.rotation, transform);
                Debug.Log("SPAWNED");
            }
            else
            {
                Debug.Log("DUPA!");
            }
        }
    }
Example #13
0
    public void HandleGameplayScene()
    {
        // Move this into PlayerController?
        pc.cam.enabled      = true;
        pc.flycam.enabled   = false;
        pc.listener.enabled = true;
        //

        var playerShip = ShipSpawner.SpawnShip(shipPrefab, Vector3.zero);

        pc.Possess(playerShip);

        var hud = FindObjectOfType <HUDManager>();

        if (hud == null)
        {
            hud = Instantiate(HUDPrefab);
        }

        //DontDestroyOnLoad(hud.gameObject);

        hud.SetPlayerController(pc);
    }
Example #14
0
 void Awake()
 {
     instance = this;
 }
Example #15
0
 private void Awake()
 {
     _shipSpawner = GameObject.FindObjectOfType <ShipSpawner>();
 }
Example #16
0
 internal virtual void go(ShipAi enermyAI, ShipSpawner cl)
 {
     throw new NotImplementedException();
 }
Example #17
0
 internal override void go(ShipAi enermyAI, ShipSpawner cl)
 {
     enermyAI.xDirection = movement;
 }
Example #18
0
 private void Awake()
 {
     shipSpawner = GameObject.Find("Spawner").GetComponent <ShipSpawner>();
 }