Warning: The English translation might not be up to date. If anything seems to be deprecated, post an issue.
Magic Tower Python (a.k.a Tower of the Sorcerer) is created with Pygame module of Python. Magic Tower Python should be able to run on most of the major platforms!
Note: Magic Tower is the word by word translation of 魔法の塔(Japanese) and 魔塔(Chinese)
The following needs to be installed:
- Python 3.6 or above
- Pygame (installed from PIP)
Run test.py to play the game~
The content of the demo game is the easiest difficulty taken from "Mid-Autumn Festival 2019: Moon", and it should be quite easy even without the starter items / tools in backpack. All the maps for the current demo tower are playable. However, if you can't beat the game, feel free to use all the items in backpack~
Currently available shortcuts:
- X = Monster Manual
- G = Floor Teleporter
- T = Backpack (sorted by category, has a secondary menu)
- S = Save File
- D = Load File
- Z = Rotate player (clockwise)
- H = Help
- B = Textbox Demo (for testing)
- ESC = generally for returning from various menus
- Input = generally for confirmation in various menus
In some interfaces such as Monster Manual, Save File, etc., you can use the left and right arrow keys to quickly navigate through pages.
If there's no monster on the current map, it shows "No Monsters on this floor (本层无怪物)".
A typical Monster data displayed in Monster Manual should look like this:
| Icon | Name | HP | ATK | DEF |
|---|---|---|---|---|
| Possible Ability | GOLD | EXP | DAMAGE | |
| Possible Ability | Critical Point | Decrease Damage by +ATK | Decrease Damage by +DEF |
Critical Point is the amount of ATK needed to see the decrease of damage.
Decrease Damage by +ATK is the amount of damaged decreased after reaching the critical point.
Decrease Damage by +DEF is the amount of damaged decreased after +1 DEF
Example for these concepts:
Hero: HP = 1000, ATK = 10, DEF = 8
Monster: HP = 50, ATK = 14, DEF = 1
Hero's effective ATK = hero's ATK - monster's DEF = 10 - 1 = 9
hero attack times = monster's HP / Hero's effective ATK = 50 / 9 = 5.56
Since we don't have 0.56 turn, the actual hero attack times should be 6. In other words, just simply take the smallest integer larger than hero attack times.
Due to the fact that hero always attack first (unless the monster has the ability to attack first), the monster can only attack 6 - 1 = 5 times.
Monster's effective ATK = monster's ATK - hero's DEF = 14 - 8 = 6
Finally, Damage = Monster's effective ATK * Monster attack times = 6 * 5 = 30
Refering to the Monster Manual, we can see that Critical Point is 1.
When we raise the hero's ATK by 1, DAMAGE = (50 / (11 - 1) - 1) * 6 = 24
You should see that NEW_DAMAGE - PREVIOUS_DAMAGE = 30 - 24 = 6
That's why 6 is shown in the "Decrease Damage by +ATK" field.
Since "Decrease Damage by +DEF" field uses basically the same approach to calculate, I am not going to do another illustration.
There are 5 categories and they are keys, items, permanent items, tools, equipments.
For individual items, you can try to use some translator app with OCR feature.
These are self-explanatory. The save file info should be in English Acronyms and numbers.
Please refer to the Chinese Version.