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
        }
Exemplo n.º 2
0
 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.");
            }
        }
    }
Exemplo n.º 5
0
 public override void OnHit(Mobile attacker, IDamageable defender, double damageBonus)
 {
     HealthOrb.DropHealthOrb(attacker);
     base.OnHit(attacker, defender, damageBonus);
 }
Exemplo n.º 6
0
        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);
        }