# CodeTower **Code your tower ! (coding tower defense)** CodeTower is a Tower Defense coding game where the towers are driven by Python code. **Stop the minions waves with your favorite editing software !** [![CodeTower - Gameplay](img/screen-04-ytb.png)](https://www.youtube.com/watch?v=snZaTSre8FA "CodeTower - Gameplay") It's a early prototype. CodeTower is a open source software distributed under the terms of the [GPLv3 license](https://www.gnu.org/licenses/gpl-3.0.html). The game engine is open source : [Blender](https://blender.org) / [UPBGE](https://upbge.org). Assets (3D models, sounds, icons) : [Kenney]( https://www.kenney.nl/ ) and [Kaylousberg](https://www.kaylousberg.com). ### Download * itch.io : [itch.io / codetower](https://phroy.itch.io/codetower) * Source repository (Gitlab) : https://gitlab.com/phroy/codetower * Binaries repository (GNU/Linux and Windows) : [www.phroy.org](http://www.phroy.org/cloud/index.php/s/nyoWT6xMkxAJ9Pm) ### Python script The Python script is the file **"ct_cmd.py"** (in the game folder), you have to edit it with your favorite editing software (Spyder, Emacs, Atom, ...). ### Map commands The level points will be spent for build or upgrade. So you have to know your level before action. * **Get your level : ct_level ()** - Return your level (integer) * **Time management (temporization) : ct_sleep (delay)** - delay : duration in seconds (float) ### Tower commands With your Python script, you can build, remove and upgrade your towers. For each tower, you will be able to choose dynamically most appropriate techno (archer tower) or spell (mage tower). * **Build a tower : ct_build (x, y, category, name, color, style)** - x position (integer) - y position (integer) - category (string) : "Archer tower", "Mage tower" or "Barrack" (not implemented) - name (string) - color (RGB model) : purple, turquoise, magenta, orange, yellow, green, red or [R, G, B, 1] - style : square or round and version (A,B or C), exemple : 'square-A' - Return boolean flag - True : builded without error - False : not builded (error) - Exemple : ct_build(1,1, "Archer tower", "Tower \#1",yellow,"round-A") * **Remove a tower : ct_remove (x, y)** - x position (integer) - y position (integer)