How about something like this:
Code:const BOMB_DAMAGE = -10; procedure TBomb.DoCollision((Sprite: TSprite; var Done: Boolean); begin if sprite is TPlayer then begin (sprite as TPlayer).UpdateShields(BOMB_DAMAGE); //other collision stuff end; end; procedure TPlayer.UpdateShields)amount : integer); begin Inc(self.FShields,amount); if self.FShields < 0 then self.Dead; end;
Bookmarks