Python PyGame Tower Defense

Software Screenshot:
Python PyGame Tower Defense
Software Details:
Version: 0.8.7
Upload Date: 19 Feb 15
Developer: Austin Morgan
Distribution Type: Freeware
Downloads: 71

Rating: nan/5 (Total Votes: 0)

Python PyGame Tower Defense is an open source real-time strategy game written in Python with PyGame.

Python PyGame Tower Defense features several maps and it's pretty much just like any other TD game out there.

What is new in this release:

  • Player initialization now slightly streamlined.
  • Explosions now display properly and can be changed to last longer/shorter.
  • Added MainFunctions.selectedTower, containing displays/buttons for a selected tower.
  • Removed PlayerUpgradeScreen. Removed PlayerUpgrades.
  • Icons are now initialized by Towers. Icons fit better into the tray.
  • Sections of the screen are now much more easily differentiated.
  • Removed XPBar. Removed player xp.
  • Added an Infobox for enemies. Put your cursor over an enemy to find info about it.
  • Added support for scaling square size. Changed default square size to 30x30.
  • Far and away simplified tower stats. Now all contained in the Tower class, instead of in player.modDict.
  • Added sidebar for tower info/buttons.
  • Added support for enemies having a "level", both a default for the map, as well as adjustments for individual enemies.
  • Massive changes to player class. Removed most of modDict, as no need. Added better support for saving and loading.
  • Adjusted XP modifiers for simplicity and readability.
  • Only the strongest, active slow-timer affects an individual enemy now.
  • Simplified damage function to enemies.
  • Removed multi-placing towers, the cost associated with such, and all references to modDict from Tower class.
  • Removed ability list, button list, and the need for a reload function from Tower class.
  • Added Runes to the game. Towers are simply vessels that use Runes to attack/heal/etc.
  • Added concept and support for "Support" Runes. Runes which improved or change the effects of other runes.
  • Added Rune slots for towers. Only runes in the primary ("Alpha") slot are Active Runes. All others support that Rune.
  • Added support for certain Runes only fitting in certain slots. Each slot will eventually have certain properties.
  • Added support for a "spare runes" list in player object. Included saving and loading of list.
  • Added the save and load functions to the Tower class. Towers placed are actually saved copies of that Tower from previous games.
  • Removed targeting and acting from Towers in accordance with new paradigm.
  • Added the ability to send the next wave by clicking on the "Send Next Wave" text in the top bar.
  • Added support for increasing a Tower's overall stats.
  • Simplified, clarified, and optimized some Event Functions.
  • Changed Tower regeneration to a tower-specific stat.
  • Added Imprints. Small, random bonuses to an individual Rune, rolled when acquired.
  • Added support for Towers, Runes, and Imprints to give bonuses to finding Runes.

What is new in version 0.8.6:

  • Each Basic map now gives +1 Tower and +5 Starting Money.
  • Added customization options for each Tower's image.
  • Added a main menu, allowing to pick maps from a better interface, as well as edit tower images to your liking. Will also accommodate an options menu, in the future.
  • Added menu functionality for rearranging tower abilities, as well as implemented automatic saving of changes to tower abilities and images.
  • Converted the format for mapproperties.txt files, allowing for ease of entry, as well as multiple different types of enemies in the same wave.
  • Upgrades now rarely modify tower costs. Pumping up towers while increasing base costs was counter-intuitive. Now, each copy of a tower you place increases the cost of further towers of that type. This will incentivize spreading out tower abilities.
  • Enemies now have an element of randomness in their walk.
  • Enemies now rotate their images, based on their temporary destination.
  • Enemy waves now come automatically, after about 10 seconds, if not sent before that.
  • Towers now regenerate health a small amount over time.
  • Maps converted to new format: Basic0, Basic1, Basic2. This means Ability0, Basic3, HitPoints0, and HitPoints1 are UNPLAYABLE!.
  • *Note On Difficulty: Any BasicX map assumes you have beaten all other X-1 maps. Any other X map assumes that you have beaten BasicX already.*

What is new in version 0.7.5:

  • Towers and Icons selected now display range as a translucent filled circle instead of simply a lined circle.
  • Towers selected now display their upgrade and sell options as a radial menu set around them instead of listing in boxes to the right.
  • Artwork done for icons for Bonus Damage, Extend Range, and Sell options.
  • Tower.genButtons changed as a result. Simplified.
  • Extra towers removed to work up from simply Fighter and Archer towers.
  • XP completely removed.
  • XP tables/lists removed.
  • Upgrade slots removed.
  • Tower abilities cost changed.
  • Currently both towers qualify for both abilities.
  • Player class given Mod variables for all towers, and for specific types of towers, allowing for extensive customization to take place.
  • Tower stat calculation drastically changed to accomodate Abilities and Player Mod variables.
  • Targeting changed and simplified, though is inconsistent with range displayed.
  • Fighter and Archer base stats changed. Archers are weaker, more expensive, but much quicker to fire.
  • Turns are advanced by the "n" key now.
  • Panel removed, as is now unneeded.
  • PanelClass file removed, as is now unused.

What is new in version 0.5.7:

  • Wave 11a-20a of Map Simple and Curvy are still not balanced.
  • Updating readme.txt.
  • Adding better documentation for the mapmaker.
  • Added a bit more comments.
  • Introduced feature of towers needing 'power' from a link to the base.
  • Added 'Node' tower, which can extend powered area.
  • 'Power' feature removed, too complex at this point.
  • Building class created. This is the backend for any structures that aren't towers.
  • Changed enemy speed from 3 times the speed value in mapproperties to just the value in mapproperties. This allows greater and easier customization of enemies' speed.
  • Fixed bug where map would end if there were only enemies coming from 'c' and/or 'd' paths.
  • Hopefully fixed a bug where the next map would load in a small window, but this is unlikely.
  • Fixed the next-map-small-screen bug, but have realized that switching maps is going to be a whole lot more complex than I had expected. I'm declaring that to be a "Not-yet-implemented Feature" for the time being.
  • Minor update to mapmaker: Can't save without a base (avoids a common error). Also, added began adding step by step instructions to the top of the screen.
  • Added Poison tower.
  • Enemies will have a green health bar when poisoned.

What is new in version 0.5.6:

  • Fixed a bug in the map switching / game ending code, which would allow someone to "win" by just clicking "Next Wave".
  • Fixed a common bug where a slow tower would slow down and already slowed enemy, then the enemy would "pop" back to its original speed.
  • Added a map selecting menu. When starting the game, now, a very simple selection menu will come up first. The only playable map at this point is Map '1'.
  • Added an optional description for map files. Simply put a 'description.txt' file in your map's folder to see it come up in map selection.
  • Added support for map names other than numbers (i.e. Map '1' is now named 'Simple').
  • MapMaker created!!! Run this separately from the game itself from mapmaker.py.
  • Added a Textbox class, taken primarily from DrakeMagi in the thread: http://www.python-forum.org/pythonforum/viewtopic.php?f=4&t=12895 Easily the best implementation I've seen.
  • Wrote Map Maker Guide in the readme.txt.
  • Corrected a bug where enemies would leave the screen and be 'removed', but their .move() function would still run, causing a crash.

What is new in version 0.5.5:

  • Update graphics from: Lost Garden By the way "Danc", thanks for releasing the game art!
  • Added the final two paths for the first map. Still not sure if this is the direction I want to take the game, but it's making it a little more interesting already. Please note, though, that the game is YET AGAIN unbalanced, and incredibly hard to beat thus far.
  • Balanced out an odd skip in enemy stats. I'll look more at these soon.
  • Basic tower is green, slow is blue now...
  • Added the Cannon tower back!
  • Updated the way towers generate their "buttons" to be more versatile... which leaves the door open to a surprise tower I hope to get up and running soon!!
  • Made enemy movement much more fluid! No more "snapping" to corners.
  • All enemy actions contained in Enemy.taketurn() now.
  • Separate moneystolen from enemy.cost.
  • Enemy.die() added to simplify all the different Tower.target()'s there now are.
  • Corrected some bugs when approaching the last wave.
  • Worked on rebalancing waves of enemies. 1-10 are done, 11-20 ARE NOT BALANCED!

What is new in version 0.5.4:

  • Changed HP back to losing one everytime an enemy leaves the screen. You now start with 20 HP, and gain 0.25 HP per turn.
  • Has a "Next Wave" button. Does exactly what you think it does.
  • Implemented the 'slow' ability for towers. It's pretty awesome :D
  • Changed the 'range' price. Its now 20, plus 20 for each range upgrade.
  • Added 'super slow' ability for towers. 'slow' brings enemies to 75% of their speed for 1.25 seconds; while 'super slow' brings enemies to 50% of their speed for 2 seconds.
  • New support for multiple enemy paths in a map.
  • Pausing has been removed. There are no timers anymore, just hit "Next Wave" whenever you want a new wave to come and take as much time between as you'd like!
  • Can have waves where the enemies come from different paths simultaneously.
  • Tower is now a base class for all towers, each of which will be a different class.
  • Testing of selected is now based on __class__ object instead of __name__ for Icon and Menu, and is based on containing Tower in __bases__ for Tower. This is more accurate, better code, and will lead to better performance and adaptability in the future.
  • Icon class now holds a type and the type's towerstats.
  • towerstats has become Basictowerstats, and Slowtowerstats has been created.
  • SlowTower class created.
  • Trimmed down the project folder. I hadn't realized how much extra, useless crap there was just lingering in it.
  • Towers now generate their upgrade/sell buttons. This will make it easier to add new upgrades for other towers.
  • Slow towers can now upgrade the 'amount of slow' applied to enemies, and how long it lasts.
  • Enemies' move modified for accuracy (can now handle float movement), and speed coefficients made equal (they move the same distance whether vertical or horizontal).

What is new in version 0.5.3:

  • Minor update, basically to add the ability to send the next wave at any time, even when enemies are still on the path.

What is new in version 0.5.2:

  • Removed Enemy health options from Options.txt because they weren't used.
  • Tried to balance out towers more.
  • Increased money gained from enemy kills by 1 credit per enemy.
  • Health is now gained: (waveNumberCompleted player.hpt), where hpt is usually one, until abilities are implemented.
  • Began commenting some more.
  • Towers cannot be placed in the path!
  • Tower upgrade buttons are now in the lower right hand corner.
  • Player abilities are implemented! Regen gives you extra health each wave you defeat; while Interest gives you a boost to your interest rate.
  • There is now a 'base' in the middle. Enemies will head toward the base, steal credits from you, then head back toward to entrance. If an enemy steals credits and you kill it before it gets to the entrance, you will recover the stolen credits. This gives you two chances to kill the enemy before it hurts you.

Requirements:

  • Python
  • pygame

Similar Software

ColorCode
ColorCode

11 May 15

Tksol
Tksol

2 Jun 15

Belooted
Belooted

2 Jun 15

Peg-E
Peg-E

20 Feb 15

Comments to Python PyGame Tower Defense

Comments not found
Add Comment
Turn on images!