It should have multiple interactive slots (it's okay to have 4 slots like Kingdom Rush. Currently we still have to decide how many tower types we will support)
Once #32 is done, we need to complete the buy_tower method in strategic-point-menu.gd.
It should:
close the StrategicPointMenu
remove money from the player
disable input (in the future we should implement a logic to show an tower upgrade menu)
Also we need to improve the behaviour of the StrategicPoint:
close the StrategicPointMenu by clicking outside of it
when the user closes the StrategicPointMenu and they didn't buy the tower, make sure that the tower is removed
eg: click on the StrategicPointMenu, click on a Slot to preview the tower, click again on the StrategicPointMenu to hide the menu. Now the tower should not be visible
For audio files: use wav or ogg.
Also read these guidelines on the official Godot documentation.
Assigning issues
Leave a comment in the issue that you want to work on, and I'll assign the issue to you.
Wait for dependent issues
To minimize merge conflicts, avoid working on an issue that depends on another one. It's better to wait for the blocking issue to be implemented first.
Once the game is complete, the credit list will be very long.
I would like to add the functionality to stop it and return to the main menu by pressing ESC.
Towers already detect enemies in range. We need the towers to fire missiles/bullets to enemies.
Dealing HP damage will be implemented in another issue.
Currently level1 layout is fine, but it can be improved by placing some graphic element in the scene (maybe also slightly animated to simulate a wind effect).
Add grass, trees, improve tiles
If you want to create new level tiles, feel free to open a new issue.
The current state of Level1 (at the time of writing) is:
Current behaviour:
Tower and Enemy resources lose the texture references.
This is confirmed as well looking at the git status:
Note
If, after importing all the assets, you close Godot and reset the repository using git reset --hard and you open again the project, the issue is fixed and the resources are in place.
A TowerDescription is a popup menu that appears when a slot of StrategicPointMenu is pressed (see #5).
Requirements:
Create a TowerDescription scene
It should show Tower data (Name, Description, Speed, Attack Power)
Future work
We will need to check the spawn position of the TowerDescription popup to make sure that there is enough space to show all of its content. Should we set a max width and height for this element?
After Level1 is created (#10), we need to update gameplay.tscn to allow for loading multiple levels.
Requirements:
create a placeholder node (eg: LevelPlacholder) that will be used to instantiate the correct level based on passed parameters from a LevelSelection scene (we still need to create this, for now you can assume that we are always loading the first level)
by default, the placeholder node should show the content of Level1
We need a more explicit way to show how to buy a tower.
We currently have a white decoration that is not really intuitive. We could use a texture with an icon and/or a "Buy" text.
We now have 3 tower types but we have 4 slots in the strategic point menu scene. I simple solution would be to block the 4th slot (SlotBottomRight) and show an image to tell the player that the slot could be unlocked in the future.
This project needs a title!
I would say to wait till we have some gameplay in-place or a game pitch to assign any title (we will change this repository name, probably). However if you have any idea, feel free to propose it.
the tower should detect objects (enemies) that are inside the Attack Range
once an enemy enters the Attack Range, the tower should change state to something like ATTACKING and it should save the target enemy in a variable
once the ATTACKING state is started, a timer should be started as well to call a fire method periodically according to the tower's rate of fire
The fire method is optional, we can do it in another issue.
note: Enemies are going to extend the Enemy class which is a KinematicBody2d. I'm working on Enemies in #28. However this can be tested even without the enemy scene itself.
I would add an array to preserve all the bodies in the tower's range. It can be useful for adding a tower that can shoot multiple enemies and for resolving many bugs, for example if an enemy is faster than another. Since it is easy to implement, I can do this issue with another one.