Skip to content

Duke ECE 651: Software Engineering Final Project. RISC: Really Interesting Strategic Conquest. ECE651; Duke ECE651;

License

Notifications You must be signed in to change notification settings

0HugoHu/Harry-Potter-Strategy-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Duke ECE 651 RISC Project [Group 1]

Table of Contents

  1. Group Members
  2. Project Task List
  3. UML Graph
  4. Coverage Report & Statistics
  5. Demo
  6. Tutorials
    1. Start the Server
    2. Start the Clients
    3. Player login
    4. Unit Allocations
    5. Game Stage
    6. New features
  7. Moreover
  8. CopyRight
  9. License

0. Group Members

  • ๐Ÿ‘ง Xueyi Cheng (xc187)
  • ๐Ÿ‘ฆ Yadong Hu (yh342)
  • ๐Ÿ‘ฆ Yu Wu (yw541)

1. Project Task List

  • Evo.1: Click here to visit Excel document.

  • Evo.2: Click here to visit Excel document.

  • ๐Ÿ“œ Evo.3: Document not required!

2. UML Graph

  • Evo.1: Click here to view the full picture.

  • Evo.2: Not required!

  • ๐Ÿ”Ž Evo.3: Not required!

3. Coverage Report & Statistics

  • ๐Ÿ“ƒ Evo.3: Click here for the CI/CD coverage reports.

  • ๐Ÿ“Š Evo.3: Click (Project, Java1, Java2, Java3, Xml) for the project code statistics.

4. Demo

Login Page

For more login pages, please refer to here.

House Page
Buff & Skill & Horcrux Page
World Technology Page

For more world technology pages, please refer to here.

Unit & Move & Attack Page

For more unit upgrade pages, please refer to here.

Action Page

For more territory property pages, please refer to here.

Game Over Page
Other Page

For more waiting pages, please refer to here.

Game Supports 2~4 Players

5. Tutorials

๐Ÿ’ก For this Evolution 3 (final version), you need to run 1 server and 2~4 clients. Each client will be assigned to one house according to the Harry Potter world setting: Gryffindor, Hufflepuff, Ravenclaw or Slytherin.

5.1. Start the Server

โœ… Run the server by command:

./gradlew :server:run

Wait for players to connect to the server.

5.2. Start the Clients

โœ… Start the Andoird application by running the ClientUI Configuration:

If you want to change the virtual machine address, go to ClientAdapter.java and change the Host field:

// Change this IP address to your own virtual machine address
private static final String HOST = "114.514.0.0";

โœ… If it runs smoothly, you will see one of the waiting page like this:

โœ… Next, you can choose to play with your other friends (let them run the Android application as well), or play with AI by running the command:

# Change "vcm-xxxxx.vm.duke.edu" in "client_mock.sh" 
# to your own virtual machine host name, and add or 
# delete some clients if you need.
./client_mock.sh

5.3. Player login

๐Ÿ”ฑ 5.3.1. When all 2~4 players have joined the game, it switches to the login page.

๐Ÿ”ท Note: We didn't actually implement the functions of login pages, so users can input whatever they want in it. But the Username you entered should be unique, and it will be your player name during the game.

๐Ÿ”ฑ 5.3.2. After all others have logged in, you will then automatically be assigned with your house, and whose color is aligned with the territory color. After clicking the "I'm pleased to accept my offer", user goes into next stage.

5.4. Unit Allocations

๐Ÿ”ฑ 5.4.1. After accepted the offer, you can allocate units according to your requirements. Use the sliding bar and place exactly 24 units, then back to the map, and click End button on the right side.

5.5. Game Stage

๐Ÿ”ฑ 5.5.1. The server sends maps to all the players and the game begins!

All players can see the current turn number, and after the first turn, they can see each player's unit in their territories.

๐Ÿ”ฑ 5.5.2. The user can click one territory, and there are three choices: Units, Order and Property.

  • Units allows user to upgrade units.

  • Order allows user to make a Move/Attack actions.

  • Property allows user to check this territory's type and descriptions.

Each player can choose to attack or move or upgrade, and they can do as many orders as they want in one turn as long as they have enough units or resources. After all are done, click the End button on the right to commit this turn.

๐Ÿ”ฑ 5.5.3. The following screenshots are for Unit upgrades. The green or red numbers appending at the end indicate the change of that creature in this turn.

If you successfully upgrade units, you will see the following prompt:

๐Ÿ”ฑ 5.5.4. The following screenshots are for Territory Type descriptions:

๐Ÿ”ฑ 5.5.5. The Order action is complicated. It shows you every territory that you may want to move or attack. If you click any your own territory, you then go to the Move page; and if you click any adjacent enemy's territory, then you go to the Attack page.

๐Ÿ”ฑ 5.5.6. By clicking the Tech button on the right, the user can also upgrade the world technology level using unicron horns, as the following screenshots shown:

๐Ÿ”ฑ 5.5.7. Players can also use Horcrux as of Evolution 3. This will be covered in the following sections.

After all players have finished commiting orders, this turn ends, and in the next turn all battles results will shown on the map, and the corresponding resources will be added to users based on the territories they have.

5.6. New features

๐Ÿ”ฑ 5.6.1. Horcrux: Every two turns, a Horcrux will be randomly assigned to one of the players. The Horcrux is obtained at the beginning of the turn, and can be utilized in this current turn or furture turns.

There are six types of Horcuxes:

  • ๐ŸŒŸ Riddle's Diary: Randomly disable one opponent's actions for his/her next turn.

  • ๐ŸŒŸ Gaunt's Ring: Instantly revive the 10 Gnome units.

  • ๐ŸŒŸ Slytherin's Locket: Destroy all the Dwarf troops for a random opponent in their next turn.

  • ๐ŸŒŸ Hufflepuff's Cup: Instantly increase the number of gold coins by 300.

  • ๐ŸŒŸ Ravenclaw's Diadem: Immediately increase the number of unicorn horns by 150.

  • ๐ŸŒŸ Nagini: Immediately randomly capture an adjacent enemy territory (troops on the territory become yours).

๐Ÿ”ฑ 5.6.2. Buff: At the beginning of this game, each player is assigned one Buff according to their House. The Buff will automatically take effect through the whole game process.

  • ๐Ÿ’ซ Heart of a Warrior (Gryffindor): 50% chance of 1 bonus of creature counting as 1.5 bonus (rounded down) during an attack.

  • ๐Ÿ’ซ Crown of Wisdom (Ravenclaw): An additional 15 of unicorn horns each turn.

  • ๐Ÿ’ซ Shield of Loyalty (Hufflepuff): 20% chance of turning a failed defense into a success, and eliminating all attacking forces.

  • ๐Ÿ’ซ Cunning Claw (Slytherin): Resource consumption (move and attack) reduced by 20%.

๐Ÿ”ฑ 5.6.3. Skill: At the beginning of the game, each player will also be assigned one special Skill according to their House. The special Skill can only be used once.

  • ๐Ÿ”ฎ Lion's Courage (Gryffindor): In the next turn, 30 units of Gnome soldiers will be granted to thee in a random territory.

  • ๐Ÿ”ฎ Wings of Wisdom (Ravenclaw): In the next turn, the unicorn horns required for upgrading all units will be halved.

  • ๐Ÿ”ฎ Steadfast Roots (Hufflepuff): In the next turn, thou shalt be immune to attacks (attacking forces will be repelled).

  • ๐Ÿ”ฎ Serpent's Strategy (Slytherin): In the next turn, all the werewolf creatures of all enemies will be destroyed.

5.7. Game Over

๐Ÿ”ฐ 4.7.1. If one player has lost all her territories, then she lost. If she hasn't lost, they can also click the "player" on the upper left and chose to surrender.

๐Ÿ”ฐ 4.7.2. If then, there is only one player left, she is the Winner, and the following picture (according to her House) will be shown to give her the Triwizard Cup!

6. Moreover

๐Ÿฆ‹ This game has launched its final version.

If you have any suggestions, please feel free to contact us.

This project is open sourced on GitHub to help later Duke students better learn the course.

7. CopyRight

ยฉ Most of the assets used in this project came from the official Harry Potter: The Wizarding Awakening website and mobile games. This project is for personal study only, please do not use the materials for commercial purposes.

8. License

โš–๏ธ This project is under the Apache License 2.0.

About

Duke ECE 651: Software Engineering Final Project. RISC: Really Interesting Strategic Conquest. ECE651; Duke ECE651;

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published