public Entity BuildEntity(Entity e, params object[] args) { #region Body string spriteKey = "redgrayblobship"; Body bitch = e.AddComponent<Body>(new Body(_World, e)); FixtureFactory.AttachEllipse(ConvertUnits.ToSimUnits(_SpriteSheet[spriteKey][0].Width / 2), ConvertUnits.ToSimUnits(_SpriteSheet[spriteKey][0].Height / 2), 5, 1f, bitch); Sprite s = e.AddComponent<Sprite>(new Sprite(_SpriteSheet, spriteKey, bitch, 1f, Color.White, 0.55f + (float)destroyers / 1000000f)); bitch.BodyType = GameLibrary.Dependencies.Physics.Dynamics.BodyType.Dynamic; bitch.CollisionCategories = GameLibrary.Dependencies.Physics.Dynamics.Category.Cat2; bitch.CollidesWith = GameLibrary.Dependencies.Physics.Dynamics.Category.Cat1 | GameLibrary.Dependencies.Physics.Dynamics.Category.Cat3; bitch.OnCollision += LambdaComplex.BasicCollision(); ++bitch.Mass; Vector2 pos = new Vector2((float)(rbitch.NextDouble() * 2) - 1, (float)(rbitch.NextDouble() * 2) - 1); pos.Normalize(); pos *= MookTemplate.dist; pos = ConvertUnits.ToSimUnits(pos); bitch.Position = pos; #endregion Body #region Crystal Color crystalColor = DirectorSystem.CrystalColor(); int amount = 10; e.AddComponent<Crystal>(new Crystal(crystalColor, amount)); #endregion Crystal #region AI/Health AI a = new AI(null, AI.CreateShoot(e, 2, ConvertUnits.ToSimUnits(400), true), "Players"); AI shootingAi = e.AddComponent<AI>(a); e.AddComponent<Health>(new Health(10)).OnDeath += LambdaComplex.BigEnemyDeath(e, _World, 50); #endregion AI/Health #region Inventory Inventory i = new Inventory(0, 0, 0, 0, InvType.Cannon, spriteKey); e.AddComponent<Inventory>(i); #endregion Inventory ++destroyers; e.Group = "Enemies"; return e; }
public Entity BuildEntity(Entity e, params object[] args) { #region Body string spriteKey = "blaster"; bool rotateTo = true; if (args.Length > 2) { spriteKey = (string)args[2]; rotateTo = false; } Body bitch = e.AddComponent<Body>(new Body(_World, e)); FixtureFactory.AttachEllipse(ConvertUnits.ToSimUnits(_SpriteSheet[spriteKey][0].Width / 2), ConvertUnits.ToSimUnits(_SpriteSheet[spriteKey][0].Height / 2), 5, 1f, bitch); Sprite s = e.AddComponent<Sprite>(new Sprite(_SpriteSheet, spriteKey, bitch, 1f, Color.White, 0.55f + (float)cannons / 1000000f)); bitch.BodyType = GameLibrary.Dependencies.Physics.Dynamics.BodyType.Dynamic; bitch.CollisionCategories = GameLibrary.Dependencies.Physics.Dynamics.Category.Cat2; bitch.CollidesWith = GameLibrary.Dependencies.Physics.Dynamics.Category.Cat1 | GameLibrary.Dependencies.Physics.Dynamics.Category.Cat3; bitch.OnCollision += LambdaComplex.BasicCollision(); ++bitch.Mass; bitch.Position = (Vector2)args[0]; #endregion Body #region Crystal Color crystalColor = DirectorSystem.CrystalColor(); int amount = 5; e.AddComponent<Crystal>(new Crystal(crystalColor, amount)); #endregion Crystal #region AI/Health e.AddComponent<Origin>(new Origin(args[1] as Entity)); AI a = new AI(null, AI.CreateCannon(e, rotateTo), "Players"); AI shootingAi = e.AddComponent<AI>(a); e.AddComponent<Health>(new Health(50)).OnDeath += LambdaComplex.BigEnemyDeath(e, _World, 50); #endregion AI/Health #region Inventory Inventory i = new Inventory(0, 0, 0, 0, InvType.Cannon, spriteKey); if (spriteKey == "killerleftgun") { i.CurrentGun.GunOffsets.Add(new Vector2(54, -19)); } e.AddComponent<Inventory>(i); #endregion Inventory ++cannons; e.Tag = "Cannon" + cannons.ToString(); e.Group = "Enemies"; return e; }
public Entity BuildEntity(Entity e, params object[] args) { int type = (int)args[0]; #region Body string spriteKey = ""; switch (type) { case 0: spriteKey = "purpleship"; break; case 1: spriteKey = "brownarmship"; break; } if (args.Length > 1) spriteKey = (string)args[1]; Body bitch = e.AddComponent<Body>(new Body(_World, e)); FixtureFactory.AttachEllipse(ConvertUnits.ToSimUnits(_SpriteSheet[spriteKey][0].Width / 2), ConvertUnits.ToSimUnits(_SpriteSheet[spriteKey][0].Height / 2), 5, 1f, bitch); Sprite s = e.AddComponent<Sprite>(new Sprite(_SpriteSheet, spriteKey, bitch, 1f, Color.White, 0.51f + (float)gunners / 1000000f)); bitch.BodyType = GameLibrary.Dependencies.Physics.Dynamics.BodyType.Dynamic; bitch.CollisionCategories = GameLibrary.Dependencies.Physics.Dynamics.Category.Cat2; bitch.CollidesWith = GameLibrary.Dependencies.Physics.Dynamics.Category.Cat1 | GameLibrary.Dependencies.Physics.Dynamics.Category.Cat3; bitch.OnCollision += LambdaComplex.BasicCollision(); ++bitch.Mass; Vector2 pos = new Vector2((float)(rbitch.NextDouble() * 2) - 1, (float)(rbitch.NextDouble() * 2) - 1); pos.Normalize(); pos *= MookTemplate.dist; pos = ConvertUnits.ToSimUnits(pos); bitch.Position = pos; #endregion Body #region Animation if (s.Source.Count() > 1) e.AddComponent<Animation>(new Animation(AnimationType.Bounce, 10)); #endregion Animation #region Crystal Color crystalColor = DirectorSystem.CrystalColor(); int amount = 5; if (crystalColor == Color.Gray) amount = 2; e.AddComponent<Crystal>(new Crystal(crystalColor, amount)); #endregion Crystal #region AI/Health AI a = new AI(null, AI.CreateShoot(e, ConvertUnits.ToSimUnits(4f), ConvertUnits.ToSimUnits(400), true), "Structures"); AI shootingAi = e.AddComponent<AI>(a); e.AddComponent<Health>(new Health(1)).OnDeath += LambdaComplex.SmallEnemyDeath(e, _World as SpaceWorld, 30); #endregion AI/Health #region Inventory Inventory i = new Inventory(0, 0, 0, 0, InvType.Gunner, spriteKey); e.AddComponent<Inventory>(i); #endregion Inventory ++gunners; e.Group = "Enemies"; return e; }