Installation
Requirements:
- Git
- Rust compiler
- Cargo
Installation instructions:
git clone https://github.com/Incorrectish/Conquer-World/ ./Conquer-World
cd Conquer-World
cargo run
After running these three commands, you should see a screen like this:
You should also hear music playing. If you do, the process was successful. If not, you might have misentered one of the previous commands, or you may be missing either git, rustc, or cargo.
Player Abilities
Ability | Description |
---|---|
Directions | Press WASD to change directions |
Movement | Press the arrow keys to move in the corresponding direction |
Melee | Press M to deal damage in the direction you are facing |
Slam | Press Z to deal damage to all eight squares around you |
Lightning | Click a tile and press L to summon lightning |
Projectiles | Press Space to spawn a projectile that travels in the direction that the player is facing |
Building | Click a tile within one tile of the player and press B to build a wall on that square |
Fire | Press F to summon a wave of fire in the direction that the player is facing |
Heal | Press H to heal |
Teleport | Click a square and press T to teleport to that tile |
Missiles | Press X to spawn a missile that tracks the closest enemies to it and deals massive damage |
Warning: The rest of this file contains massive spoilers for the game and mechanics. Don't read on if you want the most interesting experience
General Game Model
The game takes place on a 7x7 grid of "worlds", as shown below
Where M marks a mini boss and F marks a final boss.
The player field of vision is one "world", and crossing a boundary shifts the field of vision into the next world
Unlike most games, which are based on time, every mechanic in our game takes place around actions. Every single entity and object in the game takes one
action for every action that the player takes. So for example, using an ability or moving up would be one action, and each enemy would make one move
towards you and every projectile would make one move in it's intended direction.
World Generation
The program uses depth first search and probabalistic random generation to create unique lakes and mountains at runtime. Mountains are uncrossable by most
enemies, and lakes are crossable by major enemies and projectiles. Further documentation is availible in the function gen_lakes
in src/world.rs
.
Enemies
There are 3 different types of enemies
Enemy | Description |
---|---|
Chaser | Relentlessly chases the player, and attacks the player with melees |
Bomber | Gets close to the player and explodes, dealing damage if the player is in the explosion radius |
Major | Chases the player, can move through walls, mountains, and lakes. Deals a lot of damage, but is larger and easier to damage |
Player Abilities
Lightning
Projectiles
Heal
Invisibility
Missile
Teleport
Fire
Bosses and Mechanics
Laser Grid Boss
Spawns grid of lasers with short activation time. Stay away from the lasers to avoid damage. Two types of enemies in this room, majors and bombers. Kill all enemies in the room to activate a boss damage phase. Repeat until boss is dead.
Chasing Boss
Relentlessly chases the player, spawns stun wels around the room. Stepping in a stun well temporarily prevents a player from acting. Stepping in the path of the boss provokes it to do a charge attack, which kills you if you get caught. It leaves behind a trail of fire which should be avoided. Damage the boss once it has charged into a wall. No enemies in this room.
SlidingLaser Boss
The boss creates a full map range laser horizontally or vertically depending on the players position and creates a full map range laser and begins moving towards the player vertically or horizontally. Additionally, asteroids will spawn every few turns which linger for a couple of turns and do damage to the player if stood in. Once the boss has finished it's laser animation, a short damage phase will begin. Chasers and majors spawn in this room.
Blackout Boss
Creates safe zones around the dungeon that the player must get into before the timer expires. If the player doesn't reach the zone by the time the blackout effect happens(timer expiring), the player will instantly die. Damage specific parts of the boss that glow yellow to activate this damage phase. Only chasers spawn in this room.
Final Boss
This boss is by far the hardest and it combines mechanics of all the previous bosses. The mechanics aren't shown, because the boss is an interesting surprise for players.