public void SetEnemies(float _x, float _y, float _xScale, float _yScale, float _speed, Color _color, int _health, int _level, bool _alive, int _value, GameObject _Target)
    {
        name   = "Enemy_R";      //Default enemies are red
        xPos   = _x;
        yPos   = _y;
        xScale = _xScale;
        yScale = _yScale;
        speed  = _speed;
        color  = _color;
        Health = _health;
        Level  = _level;
        alive  = _alive;
        value  = _value;
        Target = _Target;

        transform.localRotation = Quaternion.identity;        //Reset rotation
        if (Level <= 1)
        {
            GetComponent <Renderer>().material.color = EnemyType [0];           //Spawn only reds in level 1
        }
        if (Level == 2)
        {
            GetComponent <Renderer>().material.color = EnemyType [Random.Range(0, 2)];             //red and green
        }
        if (Level > 2)
        {
            GetComponent <Renderer>().material.color = EnemyType [2];           // red green and yellow
        }

        //ENEMY TYPES

        if (GetComponent <Renderer>().material.color == EnemyType [1])
        {
            name   = "Enemy_G";
            color  = EnemyType[1];
            Health = 3;
            speed  = Random.Range(0.11f, 0.15f);
            value  = 25;
        }
        //Lock on
        if (GetComponent <Renderer>().material.color == EnemyType [2])
        {
            name  = "Enemy_Y";
            color = EnemyType[2];
            speed = Random.Range(0.13f, 0.15f);
            value = 20;
        }
        LoadParticles(transform.position, color, speed, 5, transform);                  //Once everything is set, create particles for each ship

        xPos = Random.Range(ScreenWidthLeft + xScale, ScreenWidthRight);                //Spawns objects in range of -8, 8 as ints
        yPos = ScreenHeight + yScale;                                                   // Spawns above range of bullets
        Vector3 pos = new Vector3(Mathf.Round((xPos - xScale / 2) * 10) / 10, yPos, 0); // so to prevent spawning of screen the equation is My spawn areaa(pos)-half of the enemies widthx-xscale/2, then add its size again to keep it going 1 left and push it 1 right

        transform.position = pos;
        Vector3 scale = new Vector3(xScale, yScale, 0.1f);

        transform.localScale = scale;
        Targetlocked         = false;
        EnemiesList.Add(gameObject);
    }
        void Test_Start()
        {
            DrillRocketUnused  = 5;
            ReturnRocketUnused = 2;

            Time.timeScale = 0f;
            Node begin = Factory.CreatNode(0, new Vector2(-6.44f, 2.91f));

            begin.BecomeBegin();
            Node end = Factory.CreatNode(1, new Vector2(4.43f, 2.8f));

            end.BecomeEnd();
            Node node0 = Factory.CreatNode(2, new Vector2(-1.13f, 0.22f));
            Node node1 = Factory.CreatNode(3, new Vector2(3.83f, -3.29f));
            Node node2 = Factory.CreatNode(4, new Vector2(4, 0));

            LinkList = new List <Link>
            {
                Factory.CreatLink(begin, node0),
                Factory.CreatLink(node0, node1),
                Factory.CreatLink(node0, node2),
                Factory.CreatLink(node1, node2),
                Factory.CreatLink(node0, end)
            };

            RoutePosition r = new RoutePosition(LinkList[0], node0, 0);

            EnemiesList.Add(Factory.CreatEnemy(r));
        }
    }    //end FindPlayer

    // Use this for initialization
    void Start()
    {
        if (alive)
        {
            EnemiesList.Add(gameObject);
        }
        enemyCount++;
    }
Пример #4
0
	public void SetEnemies(float _x, float _y, float _xScale, float _yScale, float _speed, int _health, int _level, bool _alive, int _pointvalue) {
		xPos = _x;
		yPos = _y;
		xScale = _xScale;
		yScale = _yScale;
		speed = _speed;
		Health = _health;
		Level = _level;
		alive = _alive;
		pointvalue = _pointvalue;
		//Apply Texture
//		Material mat;
//		mat = Resources.Load("Materials/EnemyShip") as Material;
//		gameObject.GetComponent<Renderer>().material=mat;
		RocketModel=Resources.Load<GameObject>("isi_textures/Enemy");//Using the inherited RocketModel variable from Ship parent class, Assign enemy ship model
		//
		if (Level <= 1 ) {
			GetComponent<Renderer>().material.color = EnemyType [0];//Spawn only reds in level 1
		}
		if (Level == 2) {
			GetComponent<Renderer>().material.color = EnemyType [Random.Range (0, 2)]; //red and green
		}
		if (Level > 2) {
			GetComponent<Renderer>().material.color = EnemyType [Random.Range (0, EnemyType.Length)];// red green and yellow
		}
		
		//ENEMY TYPES
		//Regular
		if (GetComponent<Renderer>().material.color == EnemyType [0]) {
			name="Enemy_R";//Uses default varibles supplied in Createnemy in main
			speed=0.06f;
			color=EnemyType[0];
		}
		if (GetComponent<Renderer>().material.color == EnemyType [1]) {
			name="Enemy_G";
			Health = 3;
			color=EnemyType[1];
			pointvalue=15;
			speed= Random.Range (0.08f, 0.08f);
		}
		//Lock on
		if (GetComponent<Renderer>().material.color == EnemyType [2]) {
			name="Enemy_Y";
			color=EnemyType[2];
			pointvalue=20;
			speed = Random.Range (0.12f, 0.15f);
		}
		Resetpos ();
		LoadParticles(transform.position,color, speed,5,transform);//Once everything is set, create particles for each ship
		
		Vector3 scale = new Vector3(xScale, yScale, 0.1f);
		transform.localScale = scale;
		EnemiesList.Add (gameObject);
	}
Пример #5
0
    private void SpawnEnemy(GameObject prefabToRender)
    {
        Tile spawnTile  = pC.tileController.GetSpawnTile(WaveNumber);
        Tile targetTile = pC.tileController.GetTargetTile(WaveNumber);


        GameObject enemyObj = Instantiate(
            pC.prefabController.EnemyNormalPrefab,
            new Vector3(spawnTile.X, spawnTile.Y, 0),
            Quaternion.identity,
            pC.EnemyAnchorObj.transform
            );

        _Enemy enemy = enemyObj.GetComponentInChildren <_Enemy>();

        EnemiesList.Add(enemy);
        enemyToGoMap[enemy] = enemyObj;

        enemy.Init(pC, spawnTile, targetTile);
    }
        /// <summary>
        /// Get enemies attributes
        /// </summary>
        /// <param name="xmlDoc">XML doc with attributes</param>
        /// <param name="enemies">enemies list</param>
        public static void LoadEnemiesAttributes(Game game, XmlDocument xmlDoc, ref EnemiesList enemies)
        {
            Debug.Assert(xmlDoc != null);
            Debug.Assert(enemies != null);
            Debug.Assert(game != null);

            XmlNodeList nodeList = xmlDoc.GetElementsByTagName("enemies");

            if (nodeList.Count > 0) //if XML has ammopacks...
            {
                //get list of guns in scene
                XmlElement nodeElement = (XmlElement)nodeList.Item(0);

                //get all guns definitions from XML file
                foreach (XmlElement xmle in nodeElement.ChildNodes)
                {
                    String assetName = null;
                    String[] statesNames = new String[5];
                    Enemy e = new Enemy();

                    try
                    {
                        String modelName = Convert.ToString(xmle.GetAttribute("assetName"));
                        Model m = SystemResources.Content.Load<Model>(@modelName);

                        assetName = Convert.ToString(xmle.GetAttribute("name"));
                        e.ModelAnimator = new ModelAnimator(game, m);
                        e.ScaleFactor = Convert.ToSingle(xmle.GetAttribute("scaleFactor"));
                        e.RunSpeed = Convert.ToSingle(xmle.GetAttribute("runSpeed"));
                        e.WalkSpeed = Convert.ToSingle(xmle.GetAttribute("walkSpeed"));
                        e.Health = Convert.ToInt32(xmle.GetAttribute("health"));
                        int seconds = Convert.ToInt32(xmle.GetAttribute("dieTime"));
                        e.TotalDieTime = new TimeSpan(0, 0, seconds);

                        game.Components.Remove(e.ModelAnimator); //We manage update and call

                        statesNames[0] = Convert.ToString(xmle.GetAttribute("idleState"));
                        statesNames[1] = Convert.ToString(xmle.GetAttribute("walkState"));
                        statesNames[2] = Convert.ToString(xmle.GetAttribute("runState"));
                        statesNames[3] = Convert.ToString(xmle.GetAttribute("attackState"));
                        statesNames[4] = Convert.ToString(xmle.GetAttribute("dieState"));

                        e.IdleController = new AnimationController(game, e.ModelAnimator.Animations[statesNames[0]]);
                        e.WalkController = new AnimationController(game, e.ModelAnimator.Animations[statesNames[1]]);
                        e.RunController = new AnimationController(game, e.ModelAnimator.Animations[statesNames[2]]);
                        e.AttackController = new AnimationController(game, e.ModelAnimator.Animations[statesNames[3]]);
                        e.DieController = new AnimationController(game, e.ModelAnimator.Animations[statesNames[4]]);
                    }
                    catch (InvalidCastException ice)
                    {
                        Log.Write("BuildObjectsList: InvalidCastExpcetion raised (did you forget some enemy setting?)");
                        Log.Write(ice.Message);
                    }

                    enemies.Add(assetName, e);
                }
            }
        }
Пример #7
0
        /// <summary>
        /// Update scene logics
        /// </summary>
        /// <param name="gameTime"></param>
        public override void Update(GameTime gameTime)
        {
            this.camera.Update(gameTime.ElapsedGameTime,
                         ref this.collisionMesh,
                         GamePad.GetState(PlayerIndex.One),
                         Keyboard.GetState());

            this.player.Update(gameTime, this.collisionMesh);

            GamePadState gps = GamePad.GetState(PlayerIndex.One);
            KeyboardState kbs = Keyboard.GetState();

            if (gps.Buttons.Y == ButtonState.Pressed || kbs.IsKeyDown(Keys.Enter))
            {
                if (this.player.ActualGun != null)
                {
                    Bullet b = this.player.ActualGun.Shot();

                    if (b != null)
                    {
                        Vector3 position = this.camera.GetWorldVector(3);
                        Vector3 speed = -this.camera.GetWorldVector(2) * 1000.0f;

                        b.Position = position;
                        b.Speed = speed;

                        this.bullets.Add(b);
                    }
                }
            }

            this.CheckCollisions(gameTime);

            //Manages dead enemies
            EnemiesList deadEnemies = new EnemiesList();

            foreach (KeyValuePair<String, Enemy> kvp in this.enemies)
            {
                if (kvp.Value.Dead)
                {
                    deadEnemies.Add(kvp.Key, kvp.Value);
                }
            }

            foreach (string key in deadEnemies.Keys)
            {
                this.enemies.Remove(key);
            }

            foreach (Enemy e in this.enemies.Values)
            {
                e.Update(gameTime, this.camera.world.Translation, ref this.camera.view,
                            ref this.camera.projection, ref this.collisionMesh);
            }

            ///Manages bullets
            BulletList deadBullets = new BulletList();

            foreach (Bullet b in this.bullets)
            {
                if (b.Dead)
                {
                    deadBullets.Add(b);
                }
                else
                {
                    b.Update(gameTime, this.collisionMesh);
                }
            }

            foreach (Bullet b in deadBullets)
            {
                this.bullets.Remove(b);
            }
        }