Python PyGame Tower Defence - 0.8.0
A TD implemented in python and pygame.
There are only seven maps thus far, and only three playable. I have not put great effort into balancing them yet, as things change constantly. That said, I played through all of them before releasing this and found them to be fairly spot-on in difficulty, if a bit lacking in variety. Balance will not be a top priority until the Beta, version 0.9.
The art is nowhere close to tops and there is no sound whatsoever. I am neither an artist nor musician. If anyone would like to contribute either, I would happily give credit for your work.
Comments are welcome and encouraged!
- Added new Archer tower art.
- Properly implemented the "CostMod" variables.
- Changed the player levelup system: Player abilities are now determined by the maps they have completed, and the rewards those maps give (see Rewards.py).
- Save/Load functions, as well as the Player class have been updated for this.
- Simplified the "player.txt" file as a result.
- Each map also has a related function in Rewards.py. When loading a player.txt file, each map that player has completed will run its related function from Rewards.py, granting bonuses or new abilities to the player.
- Changed the completedMaps variable to a set, so multiple wins on the same map will not give multiple bonuses.
- Modified the maps to be slightly more interesting.
- Does not save on each new wave, now only saves at the completion of a map.
- Melded the tower's sell function into "TowerAbilities", so that it may be granted from completing the "Simple" map.
- As Scores are no longer used, removed all references to them from the code.
- Removed PlayerUpgradeMenu.py and references.
- Removed textbox.py. There should be no references.
- Removed abilities.py and references.
- Removed functions "addCR" and "addHP" from player class.
- Added text at the top of the screen telling players to press 'N' to send the next wave.
- Adjusted the base stats for the two base towers. Both are now the same price, with the Fighter tower doing higher damage at a slower rate and the Archer tower doing low damage at a medium rate with a large range.
- Added an armored enemy type: "Armor".
- Added new tower: "Mage". Has high hit rate, average damage, yet very low range.
- Changed Icon creation so it is a function from player.modDict['towerAccess'], thus allowing giving new towers for winning maps.
- Corrected some code to allow for correct displaying of tower ranges.
- Added new Fighter tower art.
- Added an alpha'd white layer underneath tower images, as they are getting hard to see.
- TODO: Range is not working correctly!!!
- Range correctly working now.
- Got rid of Enemy Types, allowing finer-grained control in mapproperties.txt.
- Changed out the enemy's path tiles. While the previous looked a bit better, this simplifies path-crossing.
- Level3 implemented.
- Changed some tower ability names and filenames.
- Changed tower abilities so most of them can only be bought once-per-tower. In other words, it's now worthwhile for different maps to grant similar abilities. Note that granting the SAME ability will not do any good.
- Removed options.txt and references in code. The only option that was even active was the targetline option. It is now hardcoded as active.
- Removed quite a few unused files from the backgroundimgs folder.
Pygame.org account Comments
Dylan Raub 2012-06-16 15:14
Good to see you are still working on this! Good on ya, mate :D
James Lu 2012-06-17 21:55
i'll upload my music soon
when i get on win7...
win 8 i can't do it, i secured it.
Steve 2012-06-19 02:20
Steve 2012-06-19 02:26
Got it running, that was my fault... but Rewards.py is def. missing
Austin 2012-06-19 02:26
Thanks for the support, Dylan!
Steve, Rewards.py isn't used in version 0.8.3. I replaced that whole mess with the Player Upgrade Screen, accessed by right-clicking on the XP Bar. If you're getting an import error, just remove the "import Random" line near the top of localdefs.py. I think that's the only one I missed.
Thanks for all the feedback, guys!
A faggot 2012-07-09 12:43
sipiatti 2012-07-10 08:08
ImportError: No module named Rewards
It seems one file missed from the zipball?
Mich Nannings 2012-11-27 14:49
it works nice, didnt find any bugs
wcb98 2013-10-08 01:30
Great Game, but can you include python 3 builds?