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++; }
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); }
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); } } }
/// <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); } }