├── Part 1
├── constants.py
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── logo.png
│ │ └── heart.png
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ └── constants.cpython-310.pyc
└── main.py
├── Part 2
├── constants.py
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── logo.png
│ │ └── heart.png
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── enemy.cpython-310.pyc
│ └── constants.cpython-310.pyc
├── enemy.py
└── main.py
├── Part 3
├── constants.py
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── logo.png
│ │ └── heart.png
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── enemy.cpython-310.pyc
│ └── constants.cpython-310.pyc
├── main.py
└── enemy.py
├── .gitattributes
├── Part 4
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── logo.png
│ │ └── heart.png
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── enemy.cpython-310.pyc
│ ├── world.cpython-310.pyc
│ └── constants.cpython-310.pyc
├── constants.py
├── world.py
├── main.py
└── enemy.py
├── Part 5
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── logo.png
│ │ └── heart.png
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── enemy.cpython-310.pyc
│ ├── world.cpython-310.pyc
│ ├── turret.cpython-310.pyc
│ └── constants.cpython-310.pyc
├── constants.py
├── turret.py
├── world.py
└── enemy.py
├── Part 6
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── logo.png
│ │ └── heart.png
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── enemy.cpython-310.pyc
│ ├── world.cpython-310.pyc
│ ├── button.cpython-310.pyc
│ ├── turret.cpython-310.pyc
│ └── constants.cpython-310.pyc
├── constants.py
├── turret.py
├── button.py
├── world.py
└── enemy.py
├── Part 7
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── logo.png
│ │ └── heart.png
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── enemy.cpython-310.pyc
│ ├── world.cpython-310.pyc
│ ├── button.cpython-310.pyc
│ ├── turret.cpython-310.pyc
│ └── constants.cpython-310.pyc
├── constants.py
├── button.py
└── world.py
├── Part 8
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── logo.png
│ │ └── heart.png
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── button.cpython-39.pyc
│ ├── enemy.cpython-310.pyc
│ ├── enemy.cpython-39.pyc
│ ├── turret.cpython-39.pyc
│ ├── world.cpython-310.pyc
│ ├── world.cpython-39.pyc
│ ├── button.cpython-310.pyc
│ ├── constants.cpython-39.pyc
│ ├── turret.cpython-310.pyc
│ └── constants.cpython-310.pyc
├── constants.py
├── button.py
└── world.py
├── Part 9
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── logo.png
│ │ └── heart.png
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── button.cpython-39.pyc
│ ├── enemy.cpython-310.pyc
│ ├── enemy.cpython-39.pyc
│ ├── turret.cpython-39.pyc
│ ├── world.cpython-310.pyc
│ ├── world.cpython-39.pyc
│ ├── button.cpython-310.pyc
│ ├── constants.cpython-39.pyc
│ ├── turret.cpython-310.pyc
│ ├── constants.cpython-310.pyc
│ ├── turret_data.cpython-39.pyc
│ └── turret_data.cpython-310.pyc
├── constants.py
├── turret_data.py
├── button.py
└── world.py
├── Part 10
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ ├── 9.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ └── 12.png
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── heart.png
│ │ └── logo.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── enemy.cpython-39.pyc
│ ├── world.cpython-39.pyc
│ ├── button.cpython-310.pyc
│ ├── button.cpython-39.pyc
│ ├── enemy.cpython-310.pyc
│ ├── turret.cpython-310.pyc
│ ├── turret.cpython-39.pyc
│ ├── world.cpython-310.pyc
│ ├── constants.cpython-310.pyc
│ ├── constants.cpython-39.pyc
│ ├── enemy_data.cpython-39.pyc
│ ├── enemy_data.cpython-310.pyc
│ ├── turret_data.cpython-310.pyc
│ └── turret_data.cpython-39.pyc
├── constants.py
├── turret_data.py
├── button.py
└── world.py
├── Part 11
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ ├── 9.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ └── 12.png
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── heart.png
│ │ └── logo.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── button.cpython-310.pyc
│ ├── enemy.cpython-310.pyc
│ ├── turret.cpython-310.pyc
│ ├── world.cpython-310.pyc
│ ├── constants.cpython-310.pyc
│ ├── enemy_data.cpython-310.pyc
│ └── turret_data.cpython-310.pyc
├── turret_data.py
├── constants.py
├── button.py
└── world.py
├── Part 12
├── levels
│ ├── level.png
│ ├── level.tmx
│ └── TD tileset.tsx
├── assets
│ ├── audio
│ │ └── shot.wav
│ └── images
│ │ ├── tiles
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ ├── 9.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ └── 12.png
│ │ ├── gui
│ │ ├── coin.png
│ │ ├── heart.png
│ │ └── logo.png
│ │ ├── buttons
│ │ ├── begin.png
│ │ ├── cancel.png
│ │ ├── restart.png
│ │ ├── buy_turret.png
│ │ ├── fast_forward.png
│ │ └── upgrade_turret.png
│ │ ├── enemies
│ │ ├── enemy_1.png
│ │ ├── enemy_2.png
│ │ ├── enemy_3.png
│ │ └── enemy_4.png
│ │ └── turrets
│ │ ├── turret_1.png
│ │ ├── turret_2.png
│ │ ├── turret_3.png
│ │ ├── turret_4.png
│ │ └── cursor_turret.png
├── __pycache__
│ ├── enemy.cpython-39.pyc
│ ├── world.cpython-39.pyc
│ ├── button.cpython-310.pyc
│ ├── button.cpython-39.pyc
│ ├── enemy.cpython-310.pyc
│ ├── turret.cpython-310.pyc
│ ├── turret.cpython-39.pyc
│ ├── world.cpython-310.pyc
│ ├── constants.cpython-310.pyc
│ ├── constants.cpython-39.pyc
│ ├── enemy_data.cpython-39.pyc
│ ├── enemy_data.cpython-310.pyc
│ ├── turret_data.cpython-310.pyc
│ └── turret_data.cpython-39.pyc
├── turret_data.py
├── constants.py
└── button.py
└── Part 13
├── levels
├── level.png
├── level.tmx
└── TD tileset.tsx
├── assets
├── audio
│ └── shot.wav
└── images
│ ├── tiles
│ ├── 0.png
│ ├── 1.png
│ ├── 2.png
│ ├── 3.png
│ ├── 4.png
│ ├── 5.png
│ ├── 6.png
│ ├── 7.png
│ ├── 8.png
│ ├── 9.png
│ ├── 10.png
│ ├── 11.png
│ └── 12.png
│ ├── gui
│ ├── coin.png
│ ├── heart.png
│ └── logo.png
│ ├── buttons
│ ├── begin.png
│ ├── cancel.png
│ ├── restart.png
│ ├── buy_turret.png
│ ├── fast_forward.png
│ └── upgrade_turret.png
│ ├── enemies
│ ├── enemy_1.png
│ ├── enemy_2.png
│ ├── enemy_3.png
│ └── enemy_4.png
│ └── turrets
│ ├── turret_1.png
│ ├── turret_2.png
│ ├── turret_3.png
│ ├── turret_4.png
│ └── cursor_turret.png
├── __pycache__
├── button.cpython-310.pyc
├── enemy.cpython-310.pyc
├── turret.cpython-310.pyc
├── world.cpython-310.pyc
├── constants.cpython-310.pyc
├── enemy_data.cpython-310.pyc
└── turret_data.cpython-310.pyc
├── turret_data.py
├── constants.py
└── button.py
/Part 1/constants.py:
--------------------------------------------------------------------------------
1 | SCREEN_WIDTH = 500
2 | SCREEN_HEIGHT = 500
3 | FPS = 60
--------------------------------------------------------------------------------
/Part 2/constants.py:
--------------------------------------------------------------------------------
1 | SCREEN_WIDTH = 500
2 | SCREEN_HEIGHT = 500
3 | FPS = 60
--------------------------------------------------------------------------------
/Part 3/constants.py:
--------------------------------------------------------------------------------
1 | SCREEN_WIDTH = 500
2 | SCREEN_HEIGHT = 500
3 | FPS = 60
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/Part 1/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/levels/level.png
--------------------------------------------------------------------------------
/Part 2/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/levels/level.png
--------------------------------------------------------------------------------
/Part 3/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/levels/level.png
--------------------------------------------------------------------------------
/Part 4/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/levels/level.png
--------------------------------------------------------------------------------
/Part 5/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/levels/level.png
--------------------------------------------------------------------------------
/Part 6/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/levels/level.png
--------------------------------------------------------------------------------
/Part 7/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/levels/level.png
--------------------------------------------------------------------------------
/Part 8/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/levels/level.png
--------------------------------------------------------------------------------
/Part 9/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/levels/level.png
--------------------------------------------------------------------------------
/Part 10/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/levels/level.png
--------------------------------------------------------------------------------
/Part 11/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/levels/level.png
--------------------------------------------------------------------------------
/Part 12/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/levels/level.png
--------------------------------------------------------------------------------
/Part 13/levels/level.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/levels/level.png
--------------------------------------------------------------------------------
/Part 1/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 2/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 3/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 4/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 5/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 6/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 7/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 8/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 9/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 10/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 11/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 12/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 13/assets/audio/shot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/audio/shot.wav
--------------------------------------------------------------------------------
/Part 1/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 1/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 1/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 2/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 2/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 2/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 3/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 3/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 3/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 4/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 4/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 4/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 5/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 5/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 5/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 6/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 6/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 6/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 7/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 7/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 7/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 8/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 8/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 8/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 9/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 9/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/0.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/1.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/2.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/3.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/4.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/5.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/6.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/7.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/8.png
--------------------------------------------------------------------------------
/Part 9/assets/images/tiles/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/tiles/9.png
--------------------------------------------------------------------------------
/Part 1/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 10/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 10/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 10/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 10/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 11/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 11/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 11/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 11/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 12/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 12/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 12/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 12/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 13/assets/images/gui/coin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/gui/coin.png
--------------------------------------------------------------------------------
/Part 13/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 13/assets/images/gui/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/gui/logo.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/10.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/11.png
--------------------------------------------------------------------------------
/Part 13/assets/images/tiles/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/tiles/12.png
--------------------------------------------------------------------------------
/Part 2/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 3/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 4/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 5/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 6/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 7/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 8/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 9/assets/images/gui/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/gui/heart.png
--------------------------------------------------------------------------------
/Part 1/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 2/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 3/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 4/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 5/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 6/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 7/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 8/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 9/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 1/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 1/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 1/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 1/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 1/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 1/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 10/__pycache__/enemy.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/enemy.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/world.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/world.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 10/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 10/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 11/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 11/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 12/__pycache__/enemy.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/enemy.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/world.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/world.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 12/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 12/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 13/assets/images/buttons/begin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/buttons/begin.png
--------------------------------------------------------------------------------
/Part 13/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 2/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 2/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 2/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 2/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 2/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 2/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 2/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 3/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 3/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 3/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 3/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 3/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 3/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 3/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 4/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 4/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 4/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 4/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 4/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 4/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 4/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 4/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 5/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 5/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 5/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 5/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 5/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 5/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 5/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 5/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 6/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 6/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 6/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 6/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 6/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 6/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 6/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 6/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 7/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 7/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 7/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 7/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 7/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 7/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 7/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 7/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 8/__pycache__/button.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/button.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 8/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 8/__pycache__/enemy.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/enemy.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 8/__pycache__/turret.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/turret.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 8/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 8/__pycache__/world.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/world.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 8/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 8/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 8/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 8/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 8/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 8/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 9/__pycache__/button.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/button.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 9/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 9/__pycache__/enemy.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/enemy.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 9/__pycache__/turret.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/turret.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 9/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 9/__pycache__/world.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/world.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 9/assets/images/buttons/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/buttons/cancel.png
--------------------------------------------------------------------------------
/Part 9/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 9/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 9/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 9/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 9/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 1/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 1/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 1/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 1/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 1/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 10/__pycache__/button.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/button.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/button.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/button.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/turret.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/turret.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/turret.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/turret.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 10/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 10/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 10/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 10/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 10/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 10/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 10/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 10/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 10/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 11/__pycache__/button.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/__pycache__/button.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 11/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 11/__pycache__/turret.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/__pycache__/turret.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 11/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 11/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 11/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 11/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 11/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 11/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 11/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 11/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 11/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 11/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 12/__pycache__/button.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/button.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/button.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/button.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/turret.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/turret.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/turret.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/turret.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 12/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 12/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 12/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 12/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 12/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 12/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 12/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 12/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 12/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 13/__pycache__/button.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/__pycache__/button.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 13/__pycache__/enemy.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/__pycache__/enemy.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 13/__pycache__/turret.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/__pycache__/turret.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 13/__pycache__/world.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/__pycache__/world.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 13/assets/images/buttons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/buttons/restart.png
--------------------------------------------------------------------------------
/Part 13/assets/images/enemies/enemy_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/enemies/enemy_1.png
--------------------------------------------------------------------------------
/Part 13/assets/images/enemies/enemy_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/enemies/enemy_2.png
--------------------------------------------------------------------------------
/Part 13/assets/images/enemies/enemy_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/enemies/enemy_3.png
--------------------------------------------------------------------------------
/Part 13/assets/images/enemies/enemy_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/enemies/enemy_4.png
--------------------------------------------------------------------------------
/Part 13/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 13/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 13/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 13/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 2/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 2/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 2/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 2/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 2/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 3/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 3/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 3/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 3/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 3/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 4/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 4/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 4/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 4/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 4/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 4/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SCREEN_WIDTH = TILE_SIZE * COLS
5 | SCREEN_HEIGHT = TILE_SIZE * ROWS
6 | FPS = 60
--------------------------------------------------------------------------------
/Part 5/__pycache__/turret.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/__pycache__/turret.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 5/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 5/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 5/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 5/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 5/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 5/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SCREEN_WIDTH = TILE_SIZE * COLS
5 | SCREEN_HEIGHT = TILE_SIZE * ROWS
6 | FPS = 60
--------------------------------------------------------------------------------
/Part 6/__pycache__/button.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/__pycache__/button.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 6/__pycache__/turret.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/__pycache__/turret.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 6/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 6/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 6/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 6/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 6/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 7/__pycache__/button.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/__pycache__/button.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 7/__pycache__/turret.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/__pycache__/turret.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 7/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 7/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 7/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 7/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 7/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 8/__pycache__/button.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/button.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 8/__pycache__/constants.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/constants.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 8/__pycache__/turret.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/turret.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 8/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 8/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 8/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 8/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 8/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 9/__pycache__/button.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/button.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 9/__pycache__/constants.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/constants.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 9/__pycache__/turret.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/turret.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 9/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 9/assets/images/turrets/turret_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/turrets/turret_1.png
--------------------------------------------------------------------------------
/Part 9/assets/images/turrets/turret_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/turrets/turret_2.png
--------------------------------------------------------------------------------
/Part 9/assets/images/turrets/turret_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/turrets/turret_3.png
--------------------------------------------------------------------------------
/Part 9/assets/images/turrets/turret_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/turrets/turret_4.png
--------------------------------------------------------------------------------
/Part 1/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 1/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 10/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/constants.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/constants.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/enemy_data.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/enemy_data.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 10/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 11/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 11/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 12/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/constants.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/constants.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/enemy_data.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/enemy_data.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 12/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 13/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 13/assets/images/buttons/buy_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/buttons/buy_turret.png
--------------------------------------------------------------------------------
/Part 2/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 2/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 3/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 3/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 4/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 4/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 5/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 5/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 6/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 6/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 7/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 7/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 8/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 8/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 9/__pycache__/constants.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/constants.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 9/__pycache__/turret_data.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/turret_data.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 9/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 1/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 1/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 1/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 10/__pycache__/enemy_data.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/enemy_data.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/turret_data.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/turret_data.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 10/__pycache__/turret_data.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/__pycache__/turret_data.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 10/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 10/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 10/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 10/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 11/__pycache__/enemy_data.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/__pycache__/enemy_data.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 11/__pycache__/turret_data.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/__pycache__/turret_data.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 11/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 11/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 11/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 11/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 12/__pycache__/enemy_data.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/enemy_data.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/turret_data.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/turret_data.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 12/__pycache__/turret_data.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/__pycache__/turret_data.cpython-39.pyc
--------------------------------------------------------------------------------
/Part 12/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 12/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 12/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 12/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 13/__pycache__/enemy_data.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/__pycache__/enemy_data.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 13/__pycache__/turret_data.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/__pycache__/turret_data.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 13/assets/images/buttons/fast_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/buttons/fast_forward.png
--------------------------------------------------------------------------------
/Part 13/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 13/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 13/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 2/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 2/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 2/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 3/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 3/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 3/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 4/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 4/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 4/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 5/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 5/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 5/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 6/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 6/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 6/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 7/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 7/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 7/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 8/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 8/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 8/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 9/__pycache__/turret_data.cpython-310.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/__pycache__/turret_data.cpython-310.pyc
--------------------------------------------------------------------------------
/Part 9/assets/images/buttons/upgrade_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/buttons/upgrade_turret.png
--------------------------------------------------------------------------------
/Part 9/assets/images/turrets/cursor_turret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/russs123/tower_defence_tut/HEAD/Part 9/assets/images/turrets/cursor_turret.png
--------------------------------------------------------------------------------
/Part 6/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SIDE_PANEL = 300
5 | SCREEN_WIDTH = TILE_SIZE * COLS
6 | SCREEN_HEIGHT = TILE_SIZE * ROWS
7 | FPS = 60
--------------------------------------------------------------------------------
/Part 7/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SIDE_PANEL = 300
5 | SCREEN_WIDTH = TILE_SIZE * COLS
6 | SCREEN_HEIGHT = TILE_SIZE * ROWS
7 | FPS = 60
8 |
9 | #turret constants
10 | ANIMATION_STEPS = 8
11 | ANIMATION_DELAY = 15
--------------------------------------------------------------------------------
/Part 8/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SIDE_PANEL = 300
5 | SCREEN_WIDTH = TILE_SIZE * COLS
6 | SCREEN_HEIGHT = TILE_SIZE * ROWS
7 | FPS = 60
8 |
9 | #turret constants
10 | ANIMATION_STEPS = 8
11 | ANIMATION_DELAY = 15
--------------------------------------------------------------------------------
/Part 9/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SIDE_PANEL = 300
5 | SCREEN_WIDTH = TILE_SIZE * COLS
6 | SCREEN_HEIGHT = TILE_SIZE * ROWS
7 | FPS = 60
8 |
9 | #turret constants
10 | TURRET_LEVELS = 4
11 | ANIMATION_STEPS = 8
12 | ANIMATION_DELAY = 15
--------------------------------------------------------------------------------
/Part 10/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SIDE_PANEL = 300
5 | SCREEN_WIDTH = TILE_SIZE * COLS
6 | SCREEN_HEIGHT = TILE_SIZE * ROWS
7 | FPS = 60
8 |
9 | #enemy constants
10 | SPAWN_COOLDOWN = 400
11 |
12 | #turret constants
13 | TURRET_LEVELS = 4
14 | ANIMATION_STEPS = 8
15 | ANIMATION_DELAY = 15
--------------------------------------------------------------------------------
/Part 10/turret_data.py:
--------------------------------------------------------------------------------
1 | TURRET_DATA = [
2 | {
3 | #1
4 | "range": 90,
5 | "cooldown": 1500,
6 | },
7 | {
8 | #2
9 | "range": 110,
10 | "cooldown": 1200,
11 | },
12 | {
13 | #3
14 | "range": 125,
15 | "cooldown": 1000,
16 | },
17 | {
18 | #4
19 | "range": 150,
20 | "cooldown": 900,
21 | }
22 | ]
--------------------------------------------------------------------------------
/Part 11/turret_data.py:
--------------------------------------------------------------------------------
1 | TURRET_DATA = [
2 | {
3 | #1
4 | "range": 90,
5 | "cooldown": 1500,
6 | },
7 | {
8 | #2
9 | "range": 110,
10 | "cooldown": 1200,
11 | },
12 | {
13 | #3
14 | "range": 125,
15 | "cooldown": 1000,
16 | },
17 | {
18 | #4
19 | "range": 150,
20 | "cooldown": 900,
21 | }
22 | ]
--------------------------------------------------------------------------------
/Part 12/turret_data.py:
--------------------------------------------------------------------------------
1 | TURRET_DATA = [
2 | {
3 | #1
4 | "range": 90,
5 | "cooldown": 1500,
6 | },
7 | {
8 | #2
9 | "range": 110,
10 | "cooldown": 1200,
11 | },
12 | {
13 | #3
14 | "range": 125,
15 | "cooldown": 1000,
16 | },
17 | {
18 | #4
19 | "range": 150,
20 | "cooldown": 900,
21 | }
22 | ]
--------------------------------------------------------------------------------
/Part 13/turret_data.py:
--------------------------------------------------------------------------------
1 | TURRET_DATA = [
2 | {
3 | #1
4 | "range": 90,
5 | "cooldown": 1500,
6 | },
7 | {
8 | #2
9 | "range": 110,
10 | "cooldown": 1200,
11 | },
12 | {
13 | #3
14 | "range": 125,
15 | "cooldown": 1000,
16 | },
17 | {
18 | #4
19 | "range": 150,
20 | "cooldown": 900,
21 | }
22 | ]
--------------------------------------------------------------------------------
/Part 2/enemy.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class Enemy(pg.sprite.Sprite):
4 | def __init__(self, pos, image):
5 | pg.sprite.Sprite.__init__(self)
6 | self.image = image
7 | self.rect = self.image.get_rect()
8 | self.rect.center = pos
9 |
10 | def update(self):
11 | self.move()
12 |
13 | def move(self):
14 | self.rect.x += 1
--------------------------------------------------------------------------------
/Part 9/turret_data.py:
--------------------------------------------------------------------------------
1 | TURRET_DATA = [
2 | {
3 | #1
4 | "range": 90,
5 | "cooldown": 1500,
6 | },
7 | {
8 | #2
9 | "range": 110,
10 | "cooldown": 1200,
11 | },
12 | {
13 | #3
14 | "range": 125,
15 | "cooldown": 1000,
16 | },
17 | {
18 | #4
19 | "range": 150,
20 | "cooldown": 900,
21 | }
22 | ]
--------------------------------------------------------------------------------
/Part 11/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SIDE_PANEL = 300
5 | SCREEN_WIDTH = TILE_SIZE * COLS
6 | SCREEN_HEIGHT = TILE_SIZE * ROWS
7 | FPS = 60
8 | HEALTH = 100
9 | MONEY = 650
10 |
11 | #enemy constants
12 | SPAWN_COOLDOWN = 400
13 |
14 | #turret constants
15 | TURRET_LEVELS = 4
16 | BUY_COST = 200
17 | UPGRADE_COST = 100
18 | KILL_REWARD = 1
19 | ANIMATION_STEPS = 8
20 | ANIMATION_DELAY = 15
21 | DAMAGE = 5
--------------------------------------------------------------------------------
/Part 12/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SIDE_PANEL = 300
5 | SCREEN_WIDTH = TILE_SIZE * COLS
6 | SCREEN_HEIGHT = TILE_SIZE * ROWS
7 | FPS = 60
8 | HEALTH = 1
9 | MONEY = 650
10 | TOTAL_LEVELS = 1
11 |
12 | #enemy constants
13 | SPAWN_COOLDOWN = 400
14 |
15 | #turret constants
16 | TURRET_LEVELS = 4
17 | BUY_COST = 200
18 | UPGRADE_COST = 100
19 | KILL_REWARD = 1
20 | LEVEL_COMPLETE_REWARD = 100
21 | ANIMATION_STEPS = 8
22 | ANIMATION_DELAY = 15
23 | DAMAGE = 5
--------------------------------------------------------------------------------
/Part 13/constants.py:
--------------------------------------------------------------------------------
1 | ROWS = 15
2 | COLS = 15
3 | TILE_SIZE = 48
4 | SIDE_PANEL = 300
5 | SCREEN_WIDTH = TILE_SIZE * COLS
6 | SCREEN_HEIGHT = TILE_SIZE * ROWS
7 | FPS = 60
8 | HEALTH = 100
9 | MONEY = 650
10 | TOTAL_LEVELS = 15
11 |
12 | #enemy constants
13 | SPAWN_COOLDOWN = 400
14 |
15 | #turret constants
16 | TURRET_LEVELS = 4
17 | BUY_COST = 200
18 | UPGRADE_COST = 100
19 | KILL_REWARD = 1
20 | LEVEL_COMPLETE_REWARD = 100
21 | ANIMATION_STEPS = 8
22 | ANIMATION_DELAY = 15
23 | DAMAGE = 5
--------------------------------------------------------------------------------
/Part 5/turret.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | import constants as c
3 |
4 | class Turret(pg.sprite.Sprite):
5 | def __init__(self, image, tile_x, tile_y):
6 | pg.sprite.Sprite.__init__(self)
7 | self.tile_x = tile_x
8 | self.tile_y = tile_y
9 | #calculate center coordinates
10 | self.x = (self.tile_x + 0.5) * c.TILE_SIZE
11 | self.y = (self.tile_y + 0.5) * c.TILE_SIZE
12 | self.image = image
13 | self.rect = self.image.get_rect()
14 | self.rect.center = (self.x, self.y)
--------------------------------------------------------------------------------
/Part 6/turret.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | import constants as c
3 |
4 | class Turret(pg.sprite.Sprite):
5 | def __init__(self, image, tile_x, tile_y):
6 | pg.sprite.Sprite.__init__(self)
7 | self.tile_x = tile_x
8 | self.tile_y = tile_y
9 | #calculate center coordinates
10 | self.x = (self.tile_x + 0.5) * c.TILE_SIZE
11 | self.y = (self.tile_y + 0.5) * c.TILE_SIZE
12 | self.image = image
13 | self.rect = self.image.get_rect()
14 | self.rect.center = (self.x, self.y)
--------------------------------------------------------------------------------
/Part 1/main.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | import constants as c
3 |
4 | #initialise pygame
5 | pg.init()
6 |
7 | #create clock
8 | clock = pg.time.Clock()
9 |
10 | #create game window
11 | screen = pg.display.set_mode((c.SCREEN_WIDTH, c.SCREEN_HEIGHT))
12 | pg.display.set_caption("Tower Defence")
13 |
14 | #game loop
15 | run = True
16 | while run:
17 |
18 | clock.tick(c.FPS)
19 |
20 | #event handler
21 | for event in pg.event.get():
22 | #quit program
23 | if event.type == pg.QUIT:
24 | run = False
25 |
26 | pg.quit()
--------------------------------------------------------------------------------
/Part 4/world.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class World():
4 | def __init__(self, data, map_image):
5 | self.waypoints = []
6 | self.level_data = data
7 | self.image = map_image
8 |
9 | def process_data(self):
10 | #look through data to extract relevant info
11 | for layer in self.level_data["layers"]:
12 | if layer["name"] == "waypoints":
13 | for obj in layer["objects"]:
14 | waypoint_data = obj["polyline"]
15 | self.process_waypoints(waypoint_data)
16 |
17 | def process_waypoints(self, data):
18 | #iterate through waypoints to extract individual sets of x and y coordinates
19 | for point in data:
20 | temp_x = point.get("x")
21 | temp_y = point.get("y")
22 | self.waypoints.append((temp_x, temp_y))
23 |
24 | def draw(self, surface):
25 | surface.blit(self.image, (0, 0))
--------------------------------------------------------------------------------
/Part 6/button.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class Button():
4 | def __init__(self, x, y, image, single_click):
5 | self.image = image
6 | self.rect = self.image.get_rect()
7 | self.rect.topleft = (x, y)
8 | self.clicked = False
9 | self.single_click = single_click
10 |
11 | def draw(self, surface):
12 | action = False
13 | #get mouse position
14 | pos = pg.mouse.get_pos()
15 |
16 | #check mouseover and clicked conditions
17 | if self.rect.collidepoint(pos):
18 | if pg.mouse.get_pressed()[0] == 1 and self.clicked == False:
19 | action = True
20 | #if button is a single click type, then set clicked to True
21 | if self.single_click:
22 | self.clicked = True
23 |
24 | if pg.mouse.get_pressed()[0] == 0:
25 | self.clicked = False
26 |
27 | #draw button on screen
28 | surface.blit(self.image, self.rect)
29 |
30 | return action
--------------------------------------------------------------------------------
/Part 7/button.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class Button():
4 | def __init__(self, x, y, image, single_click):
5 | self.image = image
6 | self.rect = self.image.get_rect()
7 | self.rect.topleft = (x, y)
8 | self.clicked = False
9 | self.single_click = single_click
10 |
11 | def draw(self, surface):
12 | action = False
13 | #get mouse position
14 | pos = pg.mouse.get_pos()
15 |
16 | #check mouseover and clicked conditions
17 | if self.rect.collidepoint(pos):
18 | if pg.mouse.get_pressed()[0] == 1 and self.clicked == False:
19 | action = True
20 | #if button is a single click type, then set clicked to True
21 | if self.single_click:
22 | self.clicked = True
23 |
24 | if pg.mouse.get_pressed()[0] == 0:
25 | self.clicked = False
26 |
27 | #draw button on screen
28 | surface.blit(self.image, self.rect)
29 |
30 | return action
--------------------------------------------------------------------------------
/Part 8/button.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class Button():
4 | def __init__(self, x, y, image, single_click):
5 | self.image = image
6 | self.rect = self.image.get_rect()
7 | self.rect.topleft = (x, y)
8 | self.clicked = False
9 | self.single_click = single_click
10 |
11 | def draw(self, surface):
12 | action = False
13 | #get mouse position
14 | pos = pg.mouse.get_pos()
15 |
16 | #check mouseover and clicked conditions
17 | if self.rect.collidepoint(pos):
18 | if pg.mouse.get_pressed()[0] == 1 and self.clicked == False:
19 | action = True
20 | #if button is a single click type, then set clicked to True
21 | if self.single_click:
22 | self.clicked = True
23 |
24 | if pg.mouse.get_pressed()[0] == 0:
25 | self.clicked = False
26 |
27 | #draw button on screen
28 | surface.blit(self.image, self.rect)
29 |
30 | return action
--------------------------------------------------------------------------------
/Part 9/button.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class Button():
4 | def __init__(self, x, y, image, single_click):
5 | self.image = image
6 | self.rect = self.image.get_rect()
7 | self.rect.topleft = (x, y)
8 | self.clicked = False
9 | self.single_click = single_click
10 |
11 | def draw(self, surface):
12 | action = False
13 | #get mouse position
14 | pos = pg.mouse.get_pos()
15 |
16 | #check mouseover and clicked conditions
17 | if self.rect.collidepoint(pos):
18 | if pg.mouse.get_pressed()[0] == 1 and self.clicked == False:
19 | action = True
20 | #if button is a single click type, then set clicked to True
21 | if self.single_click:
22 | self.clicked = True
23 |
24 | if pg.mouse.get_pressed()[0] == 0:
25 | self.clicked = False
26 |
27 | #draw button on screen
28 | surface.blit(self.image, self.rect)
29 |
30 | return action
--------------------------------------------------------------------------------
/Part 10/button.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class Button():
4 | def __init__(self, x, y, image, single_click):
5 | self.image = image
6 | self.rect = self.image.get_rect()
7 | self.rect.topleft = (x, y)
8 | self.clicked = False
9 | self.single_click = single_click
10 |
11 | def draw(self, surface):
12 | action = False
13 | #get mouse position
14 | pos = pg.mouse.get_pos()
15 |
16 | #check mouseover and clicked conditions
17 | if self.rect.collidepoint(pos):
18 | if pg.mouse.get_pressed()[0] == 1 and self.clicked == False:
19 | action = True
20 | #if button is a single click type, then set clicked to True
21 | if self.single_click:
22 | self.clicked = True
23 |
24 | if pg.mouse.get_pressed()[0] == 0:
25 | self.clicked = False
26 |
27 | #draw button on screen
28 | surface.blit(self.image, self.rect)
29 |
30 | return action
--------------------------------------------------------------------------------
/Part 11/button.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class Button():
4 | def __init__(self, x, y, image, single_click):
5 | self.image = image
6 | self.rect = self.image.get_rect()
7 | self.rect.topleft = (x, y)
8 | self.clicked = False
9 | self.single_click = single_click
10 |
11 | def draw(self, surface):
12 | action = False
13 | #get mouse position
14 | pos = pg.mouse.get_pos()
15 |
16 | #check mouseover and clicked conditions
17 | if self.rect.collidepoint(pos):
18 | if pg.mouse.get_pressed()[0] == 1 and self.clicked == False:
19 | action = True
20 | #if button is a single click type, then set clicked to True
21 | if self.single_click:
22 | self.clicked = True
23 |
24 | if pg.mouse.get_pressed()[0] == 0:
25 | self.clicked = False
26 |
27 | #draw button on screen
28 | surface.blit(self.image, self.rect)
29 |
30 | return action
--------------------------------------------------------------------------------
/Part 12/button.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class Button():
4 | def __init__(self, x, y, image, single_click):
5 | self.image = image
6 | self.rect = self.image.get_rect()
7 | self.rect.topleft = (x, y)
8 | self.clicked = False
9 | self.single_click = single_click
10 |
11 | def draw(self, surface):
12 | action = False
13 | #get mouse position
14 | pos = pg.mouse.get_pos()
15 |
16 | #check mouseover and clicked conditions
17 | if self.rect.collidepoint(pos):
18 | if pg.mouse.get_pressed()[0] == 1 and self.clicked == False:
19 | action = True
20 | #if button is a single click type, then set clicked to True
21 | if self.single_click:
22 | self.clicked = True
23 |
24 | if pg.mouse.get_pressed()[0] == 0:
25 | self.clicked = False
26 |
27 | #draw button on screen
28 | surface.blit(self.image, self.rect)
29 |
30 | return action
--------------------------------------------------------------------------------
/Part 13/button.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class Button():
4 | def __init__(self, x, y, image, single_click):
5 | self.image = image
6 | self.rect = self.image.get_rect()
7 | self.rect.topleft = (x, y)
8 | self.clicked = False
9 | self.single_click = single_click
10 |
11 | def draw(self, surface):
12 | action = False
13 | #get mouse position
14 | pos = pg.mouse.get_pos()
15 |
16 | #check mouseover and clicked conditions
17 | if self.rect.collidepoint(pos):
18 | if pg.mouse.get_pressed()[0] == 1 and self.clicked == False:
19 | action = True
20 | #if button is a single click type, then set clicked to True
21 | if self.single_click:
22 | self.clicked = True
23 |
24 | if pg.mouse.get_pressed()[0] == 0:
25 | self.clicked = False
26 |
27 | #draw button on screen
28 | surface.blit(self.image, self.rect)
29 |
30 | return action
--------------------------------------------------------------------------------
/Part 5/world.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class World():
4 | def __init__(self, data, map_image):
5 | self.tile_map = []
6 | self.waypoints = []
7 | self.level_data = data
8 | self.image = map_image
9 |
10 | def process_data(self):
11 | #look through data to extract relevant info
12 | for layer in self.level_data["layers"]:
13 | if layer["name"] == "tilemap":
14 | self.tile_map = layer["data"]
15 | elif layer["name"] == "waypoints":
16 | for obj in layer["objects"]:
17 | waypoint_data = obj["polyline"]
18 | self.process_waypoints(waypoint_data)
19 |
20 | def process_waypoints(self, data):
21 | #iterate through waypoints to extract individual sets of x and y coordinates
22 | for point in data:
23 | temp_x = point.get("x")
24 | temp_y = point.get("y")
25 | self.waypoints.append((temp_x, temp_y))
26 |
27 | def draw(self, surface):
28 | surface.blit(self.image, (0, 0))
--------------------------------------------------------------------------------
/Part 6/world.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class World():
4 | def __init__(self, data, map_image):
5 | self.tile_map = []
6 | self.waypoints = []
7 | self.level_data = data
8 | self.image = map_image
9 |
10 | def process_data(self):
11 | #look through data to extract relevant info
12 | for layer in self.level_data["layers"]:
13 | if layer["name"] == "tilemap":
14 | self.tile_map = layer["data"]
15 | elif layer["name"] == "waypoints":
16 | for obj in layer["objects"]:
17 | waypoint_data = obj["polyline"]
18 | self.process_waypoints(waypoint_data)
19 |
20 | def process_waypoints(self, data):
21 | #iterate through waypoints to extract individual sets of x and y coordinates
22 | for point in data:
23 | temp_x = point.get("x")
24 | temp_y = point.get("y")
25 | self.waypoints.append((temp_x, temp_y))
26 |
27 | def draw(self, surface):
28 | surface.blit(self.image, (0, 0))
--------------------------------------------------------------------------------
/Part 7/world.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class World():
4 | def __init__(self, data, map_image):
5 | self.tile_map = []
6 | self.waypoints = []
7 | self.level_data = data
8 | self.image = map_image
9 |
10 | def process_data(self):
11 | #look through data to extract relevant info
12 | for layer in self.level_data["layers"]:
13 | if layer["name"] == "tilemap":
14 | self.tile_map = layer["data"]
15 | elif layer["name"] == "waypoints":
16 | for obj in layer["objects"]:
17 | waypoint_data = obj["polyline"]
18 | self.process_waypoints(waypoint_data)
19 |
20 | def process_waypoints(self, data):
21 | #iterate through waypoints to extract individual sets of x and y coordinates
22 | for point in data:
23 | temp_x = point.get("x")
24 | temp_y = point.get("y")
25 | self.waypoints.append((temp_x, temp_y))
26 |
27 | def draw(self, surface):
28 | surface.blit(self.image, (0, 0))
--------------------------------------------------------------------------------
/Part 8/world.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class World():
4 | def __init__(self, data, map_image):
5 | self.tile_map = []
6 | self.waypoints = []
7 | self.level_data = data
8 | self.image = map_image
9 |
10 | def process_data(self):
11 | #look through data to extract relevant info
12 | for layer in self.level_data["layers"]:
13 | if layer["name"] == "tilemap":
14 | self.tile_map = layer["data"]
15 | elif layer["name"] == "waypoints":
16 | for obj in layer["objects"]:
17 | waypoint_data = obj["polyline"]
18 | self.process_waypoints(waypoint_data)
19 |
20 | def process_waypoints(self, data):
21 | #iterate through waypoints to extract individual sets of x and y coordinates
22 | for point in data:
23 | temp_x = point.get("x")
24 | temp_y = point.get("y")
25 | self.waypoints.append((temp_x, temp_y))
26 |
27 | def draw(self, surface):
28 | surface.blit(self.image, (0, 0))
--------------------------------------------------------------------------------
/Part 9/world.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 |
3 | class World():
4 | def __init__(self, data, map_image):
5 | self.tile_map = []
6 | self.waypoints = []
7 | self.level_data = data
8 | self.image = map_image
9 |
10 | def process_data(self):
11 | #look through data to extract relevant info
12 | for layer in self.level_data["layers"]:
13 | if layer["name"] == "tilemap":
14 | self.tile_map = layer["data"]
15 | elif layer["name"] == "waypoints":
16 | for obj in layer["objects"]:
17 | waypoint_data = obj["polyline"]
18 | self.process_waypoints(waypoint_data)
19 |
20 | def process_waypoints(self, data):
21 | #iterate through waypoints to extract individual sets of x and y coordinates
22 | for point in data:
23 | temp_x = point.get("x")
24 | temp_y = point.get("y")
25 | self.waypoints.append((temp_x, temp_y))
26 |
27 | def draw(self, surface):
28 | surface.blit(self.image, (0, 0))
--------------------------------------------------------------------------------
/Part 2/main.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | from enemy import Enemy
3 | import constants as c
4 |
5 | #initialise pygame
6 | pg.init()
7 |
8 | #create clock
9 | clock = pg.time.Clock()
10 |
11 | #create game window
12 | screen = pg.display.set_mode((c.SCREEN_WIDTH, c.SCREEN_HEIGHT))
13 | pg.display.set_caption("Tower Defence")
14 |
15 | #load images
16 | enemy_image = pg.image.load('assets/images/enemies/enemy_1.png').convert_alpha()
17 |
18 | #create groups
19 | enemy_group = pg.sprite.Group()
20 |
21 | enemy = Enemy((200, 300), enemy_image)
22 | enemy_group.add(enemy)
23 |
24 | #game loop
25 | run = True
26 | while run:
27 |
28 | clock.tick(c.FPS)
29 |
30 | screen.fill("grey100")
31 |
32 | #update groups
33 | enemy_group.update()
34 |
35 | #draw groups
36 | enemy_group.draw(screen)
37 |
38 | #event handler
39 | for event in pg.event.get():
40 | #quit program
41 | if event.type == pg.QUIT:
42 | run = False
43 |
44 | #update display
45 | pg.display.flip()
46 |
47 | pg.quit()
--------------------------------------------------------------------------------
/Part 3/main.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | from enemy import Enemy
3 | import constants as c
4 |
5 | #initialise pygame
6 | pg.init()
7 |
8 | #create clock
9 | clock = pg.time.Clock()
10 |
11 | #create game window
12 | screen = pg.display.set_mode((c.SCREEN_WIDTH, c.SCREEN_HEIGHT))
13 | pg.display.set_caption("Tower Defence")
14 |
15 | #load images
16 | enemy_image = pg.image.load('assets/images/enemies/enemy_1.png').convert_alpha()
17 |
18 | #create groups
19 | enemy_group = pg.sprite.Group()
20 |
21 | waypoints = [
22 | (100, 100),
23 | (400, 200),
24 | (400, 100),
25 | (200, 300)
26 | ]
27 |
28 | enemy = Enemy(waypoints, enemy_image)
29 | enemy_group.add(enemy)
30 |
31 | #game loop
32 | run = True
33 | while run:
34 |
35 | clock.tick(c.FPS)
36 |
37 | screen.fill("grey100")
38 |
39 | #draw enemy path
40 | pg.draw.lines(screen, "grey0", False, waypoints)
41 |
42 | #update groups
43 | enemy_group.update()
44 |
45 | #draw groups
46 | enemy_group.draw(screen)
47 |
48 | #event handler
49 | for event in pg.event.get():
50 | #quit program
51 | if event.type == pg.QUIT:
52 | run = False
53 |
54 | #update display
55 | pg.display.flip()
56 |
57 | pg.quit()
--------------------------------------------------------------------------------
/Part 1/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 10/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 11/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 12/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 13/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 2/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 3/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 4/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 4/main.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | import json
3 | from enemy import Enemy
4 | from world import World
5 | import constants as c
6 |
7 | #initialise pygame
8 | pg.init()
9 |
10 | #create clock
11 | clock = pg.time.Clock()
12 |
13 | #create game window
14 | screen = pg.display.set_mode((c.SCREEN_WIDTH, c.SCREEN_HEIGHT))
15 | pg.display.set_caption("Tower Defence")
16 |
17 | #load images
18 | #map
19 | map_image = pg.image.load('levels/level.png').convert_alpha()
20 | #enemies
21 | enemy_image = pg.image.load('assets/images/enemies/enemy_1.png').convert_alpha()
22 |
23 | #load json data for level
24 | with open('levels/level.tmj') as file:
25 | world_data = json.load(file)
26 |
27 | #create world
28 | world = World(world_data, map_image)
29 | world.process_data()
30 |
31 | #create groups
32 | enemy_group = pg.sprite.Group()
33 |
34 | enemy = Enemy(world.waypoints, enemy_image)
35 | enemy_group.add(enemy)
36 |
37 | #game loop
38 | run = True
39 | while run:
40 |
41 | clock.tick(c.FPS)
42 |
43 | screen.fill("grey100")
44 |
45 | #draw level
46 | world.draw(screen)
47 |
48 | #update groups
49 | enemy_group.update()
50 |
51 | #draw groups
52 | enemy_group.draw(screen)
53 |
54 | #event handler
55 | for event in pg.event.get():
56 | #quit program
57 | if event.type == pg.QUIT:
58 | run = False
59 |
60 | #update display
61 | pg.display.flip()
62 |
63 | pg.quit()
--------------------------------------------------------------------------------
/Part 5/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 6/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 7/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 8/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 9/levels/level.tmx:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/Part 10/world.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | import random
3 | from enemy_data import ENEMY_SPAWN_DATA
4 |
5 | class World():
6 | def __init__(self, data, map_image):
7 | self.level = 1
8 | self.tile_map = []
9 | self.waypoints = []
10 | self.level_data = data
11 | self.image = map_image
12 | self.enemy_list = []
13 | self.spawned_enemies = 0
14 |
15 | def process_data(self):
16 | #look through data to extract relevant info
17 | for layer in self.level_data["layers"]:
18 | if layer["name"] == "tilemap":
19 | self.tile_map = layer["data"]
20 | elif layer["name"] == "waypoints":
21 | for obj in layer["objects"]:
22 | waypoint_data = obj["polyline"]
23 | self.process_waypoints(waypoint_data)
24 |
25 | def process_waypoints(self, data):
26 | #iterate through waypoints to extract individual sets of x and y coordinates
27 | for point in data:
28 | temp_x = point.get("x")
29 | temp_y = point.get("y")
30 | self.waypoints.append((temp_x, temp_y))
31 |
32 | def process_enemies(self):
33 | enemies = ENEMY_SPAWN_DATA[self.level - 1]
34 | for enemy_type in enemies:
35 | enemies_to_spawn = enemies[enemy_type]
36 | for enemy in range(enemies_to_spawn):
37 | self.enemy_list.append(enemy_type)
38 | #now randomize the list to shuffle the enemies
39 | random.shuffle(self.enemy_list)
40 |
41 | def draw(self, surface):
42 | surface.blit(self.image, (0, 0))
--------------------------------------------------------------------------------
/Part 11/world.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | import random
3 | import constants as c
4 | from enemy_data import ENEMY_SPAWN_DATA
5 |
6 | class World():
7 | def __init__(self, data, map_image):
8 | self.level = 1
9 | self.health = c.HEALTH
10 | self.money = c.MONEY
11 | self.tile_map = []
12 | self.waypoints = []
13 | self.level_data = data
14 | self.image = map_image
15 | self.enemy_list = []
16 | self.spawned_enemies = 0
17 |
18 | def process_data(self):
19 | #look through data to extract relevant info
20 | for layer in self.level_data["layers"]:
21 | if layer["name"] == "tilemap":
22 | self.tile_map = layer["data"]
23 | elif layer["name"] == "waypoints":
24 | for obj in layer["objects"]:
25 | waypoint_data = obj["polyline"]
26 | self.process_waypoints(waypoint_data)
27 |
28 | def process_waypoints(self, data):
29 | #iterate through waypoints to extract individual sets of x and y coordinates
30 | for point in data:
31 | temp_x = point.get("x")
32 | temp_y = point.get("y")
33 | self.waypoints.append((temp_x, temp_y))
34 |
35 | def process_enemies(self):
36 | enemies = ENEMY_SPAWN_DATA[self.level - 1]
37 | for enemy_type in enemies:
38 | enemies_to_spawn = enemies[enemy_type]
39 | for enemy in range(enemies_to_spawn):
40 | self.enemy_list.append(enemy_type)
41 | #now randomize the list to shuffle the enemies
42 | random.shuffle(self.enemy_list)
43 |
44 | def draw(self, surface):
45 | surface.blit(self.image, (0, 0))
--------------------------------------------------------------------------------
/Part 1/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 2/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 3/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 4/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 5/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 6/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 7/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 8/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 9/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 10/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 11/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 12/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 13/levels/TD tileset.tsx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Part 3/enemy.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | from pygame.math import Vector2
3 | import math
4 |
5 | class Enemy(pg.sprite.Sprite):
6 | def __init__(self, waypoints, image):
7 | pg.sprite.Sprite.__init__(self)
8 | self.waypoints = waypoints
9 | self.pos = Vector2(self.waypoints[0])
10 | self.target_waypoint = 1
11 | self.speed = 2
12 | self.angle = 0
13 | self.original_image = image
14 | self.image = pg.transform.rotate(self.original_image, self.angle)
15 | self.rect = self.image.get_rect()
16 | self.rect.center = self.pos
17 |
18 | def update(self):
19 | self.move()
20 | self.rotate()
21 |
22 | def move(self):
23 | #define a target waypoint
24 | if self.target_waypoint < len(self.waypoints):
25 | self.target = Vector2(self.waypoints[self.target_waypoint])
26 | self.movement = self.target - self.pos
27 | else:
28 | #enemy has reached the end of the path
29 | self.kill()
30 |
31 | #calculate distance to target
32 | dist = self.movement.length()
33 | #check if remaining distance is greater than the enemy speed
34 | if dist >= self.speed:
35 | self.pos += self.movement.normalize() * self.speed
36 | else:
37 | if dist != 0:
38 | self.pos += self.movement.normalize() * dist
39 | self.target_waypoint += 1
40 |
41 | def rotate(self):
42 | #calculate distance to next waypoint
43 | dist = self.target - self.pos
44 | #use distance to calculate angle
45 | self.angle = math.degrees(math.atan2(-dist[1], dist[0]))
46 | #rotate image and update rectangle
47 | self.image = pg.transform.rotate(self.original_image, self.angle)
48 | self.rect = self.image.get_rect()
49 | self.rect.center = self.pos
--------------------------------------------------------------------------------
/Part 4/enemy.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | from pygame.math import Vector2
3 | import math
4 |
5 | class Enemy(pg.sprite.Sprite):
6 | def __init__(self, waypoints, image):
7 | pg.sprite.Sprite.__init__(self)
8 | self.waypoints = waypoints
9 | self.pos = Vector2(self.waypoints[0])
10 | self.target_waypoint = 1
11 | self.speed = 2
12 | self.angle = 0
13 | self.original_image = image
14 | self.image = pg.transform.rotate(self.original_image, self.angle)
15 | self.rect = self.image.get_rect()
16 | self.rect.center = self.pos
17 |
18 | def update(self):
19 | self.move()
20 | self.rotate()
21 |
22 | def move(self):
23 | #define a target waypoint
24 | if self.target_waypoint < len(self.waypoints):
25 | self.target = Vector2(self.waypoints[self.target_waypoint])
26 | self.movement = self.target - self.pos
27 | else:
28 | #enemy has reached the end of the path
29 | self.kill()
30 |
31 | #calculate distance to target
32 | dist = self.movement.length()
33 | #check if remaining distance is greater than the enemy speed
34 | if dist >= self.speed:
35 | self.pos += self.movement.normalize() * self.speed
36 | else:
37 | if dist != 0:
38 | self.pos += self.movement.normalize() * dist
39 | self.target_waypoint += 1
40 |
41 | def rotate(self):
42 | #calculate distance to next waypoint
43 | dist = self.target - self.pos
44 | #use distance to calculate angle
45 | self.angle = math.degrees(math.atan2(-dist[1], dist[0]))
46 | #rotate image and update rectangle
47 | self.image = pg.transform.rotate(self.original_image, self.angle)
48 | self.rect = self.image.get_rect()
49 | self.rect.center = self.pos
--------------------------------------------------------------------------------
/Part 5/enemy.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | from pygame.math import Vector2
3 | import math
4 |
5 | class Enemy(pg.sprite.Sprite):
6 | def __init__(self, waypoints, image):
7 | pg.sprite.Sprite.__init__(self)
8 | self.waypoints = waypoints
9 | self.pos = Vector2(self.waypoints[0])
10 | self.target_waypoint = 1
11 | self.speed = 2
12 | self.angle = 0
13 | self.original_image = image
14 | self.image = pg.transform.rotate(self.original_image, self.angle)
15 | self.rect = self.image.get_rect()
16 | self.rect.center = self.pos
17 |
18 | def update(self):
19 | self.move()
20 | self.rotate()
21 |
22 | def move(self):
23 | #define a target waypoint
24 | if self.target_waypoint < len(self.waypoints):
25 | self.target = Vector2(self.waypoints[self.target_waypoint])
26 | self.movement = self.target - self.pos
27 | else:
28 | #enemy has reached the end of the path
29 | self.kill()
30 |
31 | #calculate distance to target
32 | dist = self.movement.length()
33 | #check if remaining distance is greater than the enemy speed
34 | if dist >= self.speed:
35 | self.pos += self.movement.normalize() * self.speed
36 | else:
37 | if dist != 0:
38 | self.pos += self.movement.normalize() * dist
39 | self.target_waypoint += 1
40 |
41 | def rotate(self):
42 | #calculate distance to next waypoint
43 | dist = self.target - self.pos
44 | #use distance to calculate angle
45 | self.angle = math.degrees(math.atan2(-dist[1], dist[0]))
46 | #rotate image and update rectangle
47 | self.image = pg.transform.rotate(self.original_image, self.angle)
48 | self.rect = self.image.get_rect()
49 | self.rect.center = self.pos
--------------------------------------------------------------------------------
/Part 6/enemy.py:
--------------------------------------------------------------------------------
1 | import pygame as pg
2 | from pygame.math import Vector2
3 | import math
4 |
5 | class Enemy(pg.sprite.Sprite):
6 | def __init__(self, waypoints, image):
7 | pg.sprite.Sprite.__init__(self)
8 | self.waypoints = waypoints
9 | self.pos = Vector2(self.waypoints[0])
10 | self.target_waypoint = 1
11 | self.speed = 2
12 | self.angle = 0
13 | self.original_image = image
14 | self.image = pg.transform.rotate(self.original_image, self.angle)
15 | self.rect = self.image.get_rect()
16 | self.rect.center = self.pos
17 |
18 | def update(self):
19 | self.move()
20 | self.rotate()
21 |
22 | def move(self):
23 | #define a target waypoint
24 | if self.target_waypoint < len(self.waypoints):
25 | self.target = Vector2(self.waypoints[self.target_waypoint])
26 | self.movement = self.target - self.pos
27 | else:
28 | #enemy has reached the end of the path
29 | self.kill()
30 |
31 | #calculate distance to target
32 | dist = self.movement.length()
33 | #check if remaining distance is greater than the enemy speed
34 | if dist >= self.speed:
35 | self.pos += self.movement.normalize() * self.speed
36 | else:
37 | if dist != 0:
38 | self.pos += self.movement.normalize() * dist
39 | self.target_waypoint += 1
40 |
41 | def rotate(self):
42 | #calculate distance to next waypoint
43 | dist = self.target - self.pos
44 | #use distance to calculate angle
45 | self.angle = math.degrees(math.atan2(-dist[1], dist[0]))
46 | #rotate image and update rectangle
47 | self.image = pg.transform.rotate(self.original_image, self.angle)
48 | self.rect = self.image.get_rect()
49 | self.rect.center = self.pos
--------------------------------------------------------------------------------