- The
AcademyPopcorn
class contains anIndestructibleBlock
class. Use it to create side and ceiling walls to the game. You can ONLY edit theAcademyPopcornMain.cs
file. - The
Engine
class has a hardcoded sleep time (search for "System.Threading.Sleep(500)". Make the sleep time a field in theEngine
and implement a constructor, which takes it as an additional parameter. - Search for a "TODO" in the
Engine
class, regarding theAddRacket
method. Solve the problem mentioned there. There should always be only one Racket. Note: comment in TODO not completely correct. - Inherit the
Engine
class. Create a methodShootPlayerRacket
. Leave it empty for now. - Implement a
TrailObject
class. It should inherit theGameObject
class and should have a constructor which takes an additional "lifetime" integer. TheTrailObject
should disappear after a "lifetime" amount of turns. You must NOT edit any existing .cs file. Then test theTrailObject
by adding an instance of it in the engine through the AcademyPopcornMain.cs file. - Implement a
MeteoriteBall
. It should inherit theBall
class and should leave a trail ofTrailObject
objects. Each trail objects should last for 3 "turns". Other than that, the Meteorite ball should behave the same way as the normal ball. You must NOT edit any existing .cs file. - Test the
MeteoriteBall
by replacing the normal ball in theAcademyPopcornMain.cs
file. - Implement an
UnstoppableBall
and anUnpassableBlock
. TheUnstopableBall
only bounces offUnpassableBlocks
and will destroy any other block it passes through. TheUnpassableBlock
should be indestructible. Hint: Take a look at theRespondToCollision
method, theGetCollisionGroupString
method and theCollisionData
class. - Test the
UnpassableBlock
and theUnstoppableBall
by adding them to the engine inAcademyPopcornMain.cs
file - Implement an
ExplodingBlock
. It should destroy all blocks around it when it is destroyed. You must NOT edit any existing .cs file. Hint: what does an explosion "produce"? - Implement a
Gift
class. It should be a moving object, which always falls down. The gift shouldn't collide with any ball, but should collide (and be destroyed) with the racket. You must NOT edit any existing .cs file. - Implement a
GiftBlock
class. It should be a block, which "drops" aGift
object when it is destroyed. You must NOT edit any existing .cs file. Test theGift
andGiftBlock
classes by adding them through theAcademyPopcornMain.cs
file. - Implement a shoot ability for the player racket. The ability should only be activated when a
Gift
object falls on the racket. The shot objects should be a new class (e.g. Bullet) and should destroy normal Block objects (and be destroyed on collision with any block). Use the engine andShootPlayerRacket
method you implemented in task 4, but don't add items in any of the engine lists through theShootPlayerRacket
method. Also don't edit the Racket.cs file. Hint: you should have aShootingRacket
class and override itsProduceObjects
method.