void Spikon_deathEvent(Actor deadActor) { (world as GameWorld).player.totalEXP += this.expvalue; (world as GameWorld).player.killedEnemy(); Animation deathAnim = new Animation(4, 7, 10f, false, 0, 0); deathAnim.addEndAct((frame) => { removeMe = true; }); anim = deathAnim; #if false // TODO: FUNCTIONIZE THIS if (World.randomGenerator.NextDouble() < .2) { double rotation = World.randomGenerator.NextDouble() * Math.PI * 2; HealthOrb healthorb = new HealthOrb(world as GameWorld, this.position, new Vector2((float)Math.Sin(rotation), (float)Math.Cos(rotation)) * 2); world.addActor(healthorb); rotation += Math.PI * 2 / 3; healthorb = new HealthOrb(world as GameWorld, this.position, new Vector2((float)Math.Sin(rotation), (float)Math.Cos(rotation)) * 2); world.addActor(healthorb); rotation += Math.PI * 2 / 3; healthorb = new HealthOrb(world as GameWorld, this.position, new Vector2((float)Math.Sin(rotation), (float)Math.Cos(rotation)) * 2); world.addActor(healthorb); } #endif }
public static void spawn(Actor a, int id, int num) { for (int i = 0; i < num; i++) { double rotation = a.world.tileEngine.randGen.NextDouble() * Math.PI * 2; HealthOrb healthorb = new HealthOrb(a.world as GameWorld, a.position, new Vector2((float)Math.Sin(rotation), (float)Math.Cos(rotation)) * 2); a.world.addActor(healthorb); rotation += Math.PI * 2 / num; } }
void Start() { healthOrbs = new List <HealthOrb>(); foreach (Transform orb in transform) { HealthOrb healthOrb = orb.gameObject.GetComponent <HealthOrb>(); healthOrbs.Add(healthOrb); } GameManager.instance.onGameStart.AddListener(SpawnHealthOrbs); GameManager.instance.onGameOver.AddListener(DestroyOrbs); }
private void PickupHealth() { RaycastHit hit; if (Physics.Raycast(CamTransform.position, CamTransform.forward, out hit)) { Debug.DrawLine(CamTransform.position + new Vector3(0f, -1f, 0f), hit.point, Color.green, 5f); HealthOrb hitOrb = hit.collider.gameObject.GetComponent <HealthOrb>(); if (hitOrb != null) { Debug.Log("Hit a health orb! Has " + hitOrb.HealingValue + " healing."); hitOrb.OnUse(); } else { Debug.Log("Hit a non-health orb."); } } }
public override void OnHit(Mobile attacker, IDamageable defender, double damageBonus) { HealthOrb.DropHealthOrb(attacker); base.OnHit(attacker, defender, damageBonus); }
public override Actor createActor(int id, Vector2 position, Microsoft.Xna.Framework.Vector2?velocity = null, double color = -1) { Actor a = null; if ((position.X >= 0 && position.X < world.width * Tile.size && position.Y >= 0 && position.Y < world.height * Tile.size)) { switch (id) { case 0: a = new Player(world, position); return(a); case 1: a = new Octo(world, position); break; case 2: a = new Blob(world, position, velocity ?? Vector2.Zero, color); break; case 3: a = new Sentinel(world, position); break; case 4: a = new Spikon(world, position); break; case 5: a = new Arrow(world, position, velocity ?? Vector2.Zero); return(a); case 6: a = new OctoBall(world, position, velocity ?? Vector2.Zero); return(a); case 7: a = new HealthOrb(world, position, velocity ?? Vector2.Zero); return(a); case 8: a = new FireShuriken(world, position, velocity ?? Vector2.Zero); return(a); case 9: a = new IceSpike(world, position, velocity ?? Vector2.Zero); return(a); case 10: a = new Numbers(world, position, velocity ?? Vector2.Zero); return(a); case 11: a = new FirstBoss(world, position); return(a); case 12: a = new LevelUp(world, position, velocity ?? Vector2.Zero); return(a); case 13: a = new Laser(world, position, velocity ?? Vector2.Zero); return(a); case 14: a = new FirePillar(world, position, velocity ?? Vector2.Zero); return(a); case 15: a = new ManaOrb(world, position, velocity ?? Vector2.Zero); return(a); case 16: a = new Zazzle(world, position); return(a); case 17: a = new ZazzleShot(world, position, velocity ?? Vector2.Zero); return(a); case 18: a = new Basilisk(world, position); return(a); case 19: a = new BlobSpawner(world, position); return(a); case 20: a = new Charger(world, position); return(a); case 21: a = new Grapple(world, position, velocity ?? Vector2.Zero); return(a); case 22: a = new Generator(world, position); return(a); case 23: a = new Explosion(world, position, velocity ?? Vector2.Zero); return(a); case 24: a = new Torch(world, position); return(a); case 25: a = new MagicPrimary(world, position, velocity ?? Vector2.Zero); return(a); case 26: a = new WizBlob(world, position); return(a); case 27: a = new LaserArrow(world, position, velocity ?? Vector2.Zero); return(a); case 28: a = new DiscoBlob(world, position, velocity ?? Vector2.Zero, color, checkpointCount++); break; case 29: a = new FireBlob(world, position, velocity ?? Vector2.Zero); break; case 30: a = new MrHammer(world, position, velocity ?? Vector2.Zero); break; case 31: a = new GigaBlob(world, position, velocity ?? Vector2.Zero); break; case 32: a = new MagicPrimary(world, position, velocity ?? Vector2.Zero); return(a); case 33: a = new DarkLucyPortrait(world, position, velocity ?? Vector2.Zero); return(a); case 34: a = new BloodyArrow(world, position, velocity ?? Vector2.Zero); return(a); case 35: a = new LucyFirePillar(world, position, velocity ?? Vector2.Zero); return(a); case 36: a = new WeddingPhoto(world, position, velocity ?? Vector2.Zero); return(a); case 37: a = new FancyPortrait(world, position, velocity ?? Vector2.Zero); return(a); case 38: a = new CoatOfArms(world, position, velocity ?? Vector2.Zero); return(a); case 39: a = new TandemBike(world, position, velocity ?? Vector2.Zero); return(a); case 40: a = new KnightStatue(world, position, velocity ?? Vector2.Zero); return(a); case 41: a = new SwordSlash(world, position, velocity ?? Vector2.Zero); return(a); } } return(a); }