public void FireBallHandleLoop(IList<IBlock> BlocksAround, Fireball fireball, Rectangle fireballBox, IWorld Level, IPlayer mario) { foreach (IBoss boss in Level.Bosses) { if (boss.BossPhysics.IsAlive) { Rectangle bossBox = boss.Rectangle; Rectangle intersectionBox = Rectangle.Intersect(fireballBox, bossBox); if (!intersectionBox.IsEmpty) { FireBallBossHandler.HandleCollision(fireball, boss); if (boss.Life == 0) { mario.ScoreObjects.Add(new Score.ScoreObject(Util.Instance.BossScore, boss.Location, true)); mario.Scores += 3000; } } } } }
public AllCollisionHandler(GameStateManager gameState) { this.gameState = gameState; Level = gameState.world; mario = gameState.world.Mario; MBHandler = new MarioBlockHandler(); MOHandler = new MarioBossHandler(); MEHandler = new MarioEnemyHandler(); MFHandler = new MarioFlagStuffHandler(); MIHandler = new MarioItemHandler(); MCHandler = new MarioCastleCollisionHandler(); IBHandler = new ItemBlockHandler(); EBHandler = new EnemyBlockHandler(); BBHandler = new BossBlockHandler(); SEHandler = new ShellEnemyHandler(); SBHandler = new ShellBossHandler(); FBHandler = new FireBallBlockHandler(); FEHandler = new FireBallEnemyHandler(); FOHandler = new FireBallBossHandler(); FSBHandler = new FireShotBlockHandler(); FSMHandler = new FireShotMarioHandler(); FHMHandler = new FireHellMarioHandler(); }