Ada-Au / ENGG1340_group_project

A roguelike and turn-based RPG game using c++
MIT License
2 stars 1 forks source link
game

What A HELL

A roguelike and turn-based RPG game

Members

Au Wing Yan, Ada (3035783728)
Chau Hiu Man, Humen (3035783716)

About this game

YOU DIED. Welcome to the HEll!

In this game, you control a dead man who falls into hell with plenty of monsters. Now you must find a way out… or stay trapped and tortured forever.

Game Rules

  1. Enjoy is the first most important :D
  2. Turn-based battles with your strategy
  3. WASD for movement control
  4. When HP goes zero, player dies with permadeath
  5. When MP or Energy goes zero, player cannot attack in battle
  6. When Energy goes zero, there are random punishment for the player. (i.e. player's HP decreases 1 per action)
  7. Energy decreases when player makes any steps on map.
  8. Game goal: defeat all the bosses and achieve different endings.

Features

How do the features match the requirements

  1. Generation of random game sets or events

    • Generation of map, monsters, NPCs, and items, such as weapons and armors, is random
    • The attack value of player and the monster's damages to player are generated randomly according to the ability of player and the monsters
  2. Data structures for storing game status

    • Class Player defines all the status of player, it contains:
      • player's status (inc. mp, hp, energy, maxMp, maxHp, max energy, max Exp, damage, defense, level, game level, and coin)
      • vector of player's buffs and debuffs
      • player x, y coordination
      • player's name, role, gender
    • Structures for items, healing, armor, and weapon, contains:
      • name
      • description
      • functions
      • cost and price
    • Class Map stores in a 2D array for the landscape, generation of the map, and removing icons
    • Vectors to store player's items and shop items
    • Structure to store NPCs information and array of string to store NPCs' figures
  3. Dynamic memory management

    • array and pointer using in map generation
    • Array for player status, interaction, items
  4. File input/output

    • savings is file output and loading is file input. Saving includes the following types of information:
      1. Level of the player
      2. The game progress of player
      3. The states (inc. HP, MP and energy...) of the player
      4. The ability of players (inc. damage and defense etc.)
      5. The items in player's backpack (inc. money, weapons, armors, healings)
      6. Player's equipment (player's armor and player's weapon)
  5. Program codes in multiple files

    • programs are divided into:
      • action.cpp & action.h: movement of player character; interaction of players between monsters, NPC and chests; ending of game
      • backpack.cpp & backpack.h: generation and storage of items; interface for backpack; interactions between players and backpack
      • fight.cpp & fight.h: interface for battles; deal with player's actions in battle; set up of monsters' ability according to player game progress
      • homepage.cpp & homepage.h: menu for player to save/load/quit game
      • map.cpp & map.h: generation of map, monsters, NPCs and chests; monster's movement
      • npc.cpp & npc.h: render NPC with talk screen; NPCs' ability and figure
      • player.cpp & player.h: status of player character; upgrade of player; add & update buffs/debuffs on player
      • saving.cpp & saving.h: save game and load game (game file is in [player's name].txt); deal with repeat of player's name in creating files
      • screen.cpp & screen.h: render map screen; print player's status on right side of map; help menu; clear screen
      • setup.cpp & setup.h: set up player's information and storyline at beginning
      • shop.cpp & shop.h: render shop screen; generate shop items; deal with player's actions in shop
      • main.cpp: execute file

        List of Non-standard C/C++ libraries

    • conio.h:

Compilation and Execution Instructions