Ejemplo n.º 1
0
 public override void CollisionResponse(ICollision collided)
 {
     if (collided is MarioCollision && collided.TopCollision(EntityCollision))
     {
         Dead = true;
         (collided.CurrentEntity as MarioEntity).Sounds.PlaySound(EventSoundEffects.EventSounds.Stomp);
     }
     else if (collided is EnemyCollision)
     {
         if (EntityCollision.TopCollision(collided))
         {
             SpriteVelocity = new Vector2(SpriteVelocity.X, 0);
         }
         else
         {
             SpriteVelocity = new Vector2(SpriteVelocity.X * -1, SpriteVelocity.Y);
             collided.CurrentEntity.SpriteVelocity = new Vector2(SpriteVelocity.X * -1, SpriteVelocity.Y);
         }
     }
     else if (collided is BlockCollision)
     {
         if (EntityCollision.SideCollision(collided))
         {
             SpriteVelocity = new Vector2(SpriteVelocity.X * -1, SpriteVelocity.Y);
         }
         else if (EntityCollision.TopCollision(collided))
         {
             SpriteVelocity = new Vector2(SpriteVelocity.X, 0);
         }
     }
 }
Ejemplo n.º 2
0
    void OnTriggerStay(Collider other)
    {
        // Debug.Log(string.Format("Entity {0} touched other: {1}", this.collider.name, other.name));

        BaseCollision collision = other.GetComponent <BaseCollision>();

        // tell this entity that someone else touched it
        if (collision is EntityCollision)
        {
            EntityCollision entityCollision = (EntityCollision)collision;
            entity.TouchedByEntity(entityCollision.entity);
        }
        // tell this entity that some one else's weapon touched it
        else if (collision is WeaponCollision)
        {
            WeaponCollision weaponCollision = (WeaponCollision)collision;
            entity.TouchedByWeapon(weaponCollision.weapon);
        }
        else if (collision is WallCollision)
        {
            entity.TouchedByWall(other);
        }
        else if (collision is PotCollision)
        {
            PotCollision potCollision = (PotCollision)collision;
            entity.TouchedByPot(potCollision.pot);
        }
    }
Ejemplo n.º 3
0
    void OnTriggerStay(Collider other)
    {
        BaseCollision collision = other.GetComponent <BaseCollision>();

        if (collision is EntityCollision)
        {
            EntityCollision entityCollision = (EntityCollision)collision;
            pot.TouchedByEntity(entityCollision.entity);
        }

        else if (collision is WeaponCollision)
        {
            WeaponCollision weaponCollision = (WeaponCollision)collision;
            pot.TouchedByWeapon(weaponCollision.weapon);
        }

        else if (collision is WallCollision)
        {
            pot.TouchedByWall();
        }
    }
Ejemplo n.º 4
0
    void OnTriggerStay(Collider other)
    {
        // tell the this weapon's owner that another weapon touched it.
        BaseCollision collision = other.GetComponent <BaseCollision>();

        if (collision is WeaponCollision)
        {
            WeaponCollision weaponCollision = (WeaponCollision)collision;
            weapon.owner.WeaponTouchedByWeapon(weaponCollision.weapon);
        }

        // tell the this weapon's owner that someone touched it.
        else if (collision is EntityCollision)
        {
            EntityCollision entityCollision = (EntityCollision)collision;
            weapon.owner.WeaponTouchedByEntity(entityCollision.entity);
        }

        else if (collision is PotCollision)
        {
            PotCollision potCollision = (PotCollision)collision;
            weapon.owner.WeaponTouchedByPot(potCollision.pot);
        }
    }
Ejemplo n.º 5
0
 protected virtual void OnRaiseEntityCollision(EntityCollisionEventArgs e)
 {
     EntityCollision?.Invoke(this, e);
 }