comp380team3/PuzzlePathDimension — pull request #32 by Jjp137 (2013-04-08 22:22:30+00:00)
Title: Physics/collision + game mechanics + sound

Okay, this is a lot. Maybe a bit too much to take in for one pull request :\ Just make sure you read all of this :)

First of all, everything that's in Brian_Collision is in this pull request, so you don't need to merge that branch.

And I don't even know where to start, so here's a list of bullet points:
* The simulation state uses the Farseer physics engine
* There are now breakable platforms, treasures, and death traps, and the goal now works
* The launcher has a power meter
* The number of maximum attempts that a player can use is taken into account
* There's text displaying how many balls you have left, as well as placeholder "you win" and "you lose" messages
* Statistics, such as the time spent and the number of treasures collected, are gathered as you play
* Collision detection with all the types of level objects works
* A UnitConverter static class to help with converting from meters to pixels, and vice versa
* Sound effects (taken from Freesound)
* Made the Simulation's properties less accessible (it's the Editor that should be really changing things around)
* More unit tests
* Some usage of events
* Way too many comments :p

...and other things that I usually end up forgetting.

And a few caveats:
* Resizing a Platform that has had InitBody() called on it is not supported at the moment
* The number of attempts is still hard-coded for now
* I think that we need to do a deep copy of all the Level's objects, but I have no idea how...
* Goal.cs, Treasure.cs, DeathTrap.cs, and possibly other files have a ton of duplicate code

I wouldn't be surprised if there are merge conflicts...

But yea, this is a lot of code. Take your time reviewing this, because this is an important part of the game. 90% of the code is from the physics engine, though, so skip that part :p

Before I forget, I got the sounds from here:
* http://www.freesound.org/people/iwilldstroyu/sounds/65787/
* http://www.freesound.org/people/davidou/sounds/88451/

And the sound part was easy to do :)