Giter VIP home page Giter VIP logo

itp298_capstone's People

Contributors

133794m3r avatar nathanielmullins avatar

Stargazers

 avatar

Watchers

 avatar  avatar

itp298_capstone's Issues

Battle System

Basic battle system done. This issue will make sure that a person can undertake a battle.

Tasks To Be Completed

Lists the basic things that should be done for the system to work.

Basic Ones

  • Menu system implemented
  • Input validation
  • Mob "AI" implemented.

Better UX

  • Partial Refreshes during menu
  • Shows messages in Menu and then redraws menu

Advanced

  • Checks for Death of player/mob
  • Returns who died.
  • Handles awarding rewards post battle

Tests

  • Basic battle carried out via user input.
  • Shows who died/won.

Item class

This issue tracks the Item class. It has to be created prior to the Loot table class as that class contains a std::vector of this class.

  • Basic class laid out
    Private properties
  • value
  • Type
  • Name

Further we'lll have an "Armor" and a "Weapon" class that are subscripted from here.

Documentation completed

Tracks the various documents we should have done.

  • Readme.md file
  • License.md file
  • Security policy/contact file
  • Code style.md

Item creation Parsers

This issue will track the parsers that'll let people create objects from the text file.

  • Mobs
  • Items
  • Maps
  • Shops
  • Loot Tables

Inventory Class

This issue tracks the inventory system base class. Which'll then be used for the loot table, and also the shop people.

Room class

Decided that we need to have a room class.

  • Room types: Shop room, Empty Room, Boss Room, Enemy Room(enum)
  • Containing something not sure how to do this just yet.
  • Show "exits" that the player can utilize.
  • Room they are moving towards.

User Input/UI Options

This issue will track the UI/UX. It'll go through all of the various stages.

  • User can enter information upon startup to start the game.
  • Battle lets them make choices of what to do.
  • Shopkeeper asks them what to buy and shows prices.
  • The player during the "movement" phase will ask them which room to go to.
    • The "maps" are always just 3-4 rooms in total. One in front and on either side. So they should be able to return to the normal room.
    • Further it should let them move to the next one after defeating the boss. We'll have some return value maybe.
  • User gets shown their gravestone when they die/name on the honor list or whatever.

Due to this tracking all UX this is targetting the gamma stage but will be worked on throughout.

Tests -- All of them

This issue will be the master test issue. It'll track the other test issues also.

Initial tests

  • Actor
  • Mob
  • Player
  • Battle
  • Map

Final Tests

  • Actor
  • Mob
  • Player
  • Battle
  • Map

Mobs data

  • 2 Trash tier mobs (the mob will be used 3x for battle purposes)
  • 1 boss Mob

Mob class completed

This issue tracks the mob classes final steps.

  • Has a loot table linked to it.
  • Returns a random piece of loot upon death.

Mob class Completed

This issue will track the creation of a mob class and the methods required of it.

  • Constructor
  • Deconstructor
    Private properties
  • Attack, Defense, Life, Name, XP
  • Loot table linked blocked by
    Public methods
  • Damaged
  • Announce

Nice to have

  • Mob has the ability to call different attacks of different strengths.
  • Mob can use an item.

Shops data

This will track the shops
The first shop will contain the first weapon/armor and the second will hold the second one.

Mob class started

This issue tracks the basic beginnings of the mob class.

  • Returns XP/Gold when dying.
  • Stats are set based upon what it should be.
  • Default name for each mob.

Weapon Class completed

Must do the following

  • Base/max damage based upon item level.
  • Passes back values to the original Item class for all other properties.
  • Has a different value curve than base item class.

Item class Completed

Item class is completed

  • Value of the item is correctly handled.
  • Item gives it's stats to the player upon equipping
  • Item has it's value calculated via a formula based upon it's level.
  • Item class has constructor created with default arguments.
  • Each item has an id that allows it to be uniquey identified amongst the item types
  • has getters for all of the properties as needed
  • private properties that are utilized by child classes are listed as protected
  • some sort of (std::string) operator like method to cast the thing into a string for testing
  • Unit test for making sure item is created correctly.
  • Tests make sure that calculations are inline with expectations.
  • Child classes inherit properties as needed and thus methods will be virtual for those ones that must be overriden.

Classes Started and mostly done

This issue will track the various classes as they're being started on. It'll be a grouop issue that'll track the other ones.

  • Actor class tracked via #2
  • Mob Class tracked via #16
  • Player Class tracked via #4
  • Item class tracked via #18
  • Map class tracked via #11
  • Basic class tests tracked via #7

Initial Tests -- For all classes

This issue will track the initial tests for the various classes.

  • Actor class
  • Mob class
  • Player class
  • Item class
  • Weapon class
  • Armor Class
  • Map class
  • Loot table class
  • Shop class

These tests will be basic ones like making sure that the damage handler works for healing and also damaging, that they can have methods set and read etc.

Map class

This will track the basic map class. It'll just hold 3 rooms that the person can travel between(maybe) and then it'll have one marked as a "final" room.
This may required a "Room" class.

  • Room class
  • Make sure that they can "move" btween rooms.
  • Contain a boss/mob/something in each room.

Armor Class Completed

  • Armor has it's defense calculated based upon it's item level
  • Passes back all other values back into the Item class.

Readme completed

This issue is to remind us to actually create a readme or at least a basic one. This way that we can have something to show.

Actor class completed

This issue will also block #1 and #3. As both of them require this class to be completed.

The "actor" class is the base class of both the mob and the player.

Private properties.

  • Name, Attack, Defense, Life
  • Level

Private methods

  • Constructor, Deconstructor
  • Damaged (When it is attacked/healed)

Public Methods

  • Attack, it will take 2 arguments the target object and the amount.
  • Intro/Outro will be what it says upon meeting/death respectively.

Blocks battle menu/other menus from working.

  • Getters for private properties.

Armor/Weapon classes

Armor/Weapon classes. May just be called equipement. This is blocked by #8.

  • Armor/Weapon has a "power" property.

It'll be subscripted from the Item class.
Item class wont'

Player class completed

This issue tracks the player class. And when it is completed. This includes holding items and also replacing equipment.

Shop Class completed

Show including menu done.

  • Shop will have items(an inventory).
  • Will allow the player to purchase and sell things.
  • Will use the menu code from the battle menu system for drawing/same sorta UX
  • Will have an inventory object attached to them

Along with tests for it.

  • Having a player buy some items(watching quantity go down)
  • Havin the player sell something(quantity goes up)
  • If last of an item is bought it is removed from the inventory
  • doesn't allow players to buy something for more than they have on them

Items created

This issue will track the creation of a few items for use with the game(in it's demo state)

  • 2 Weapons
  • 2 Pieces of armor
  • 2 "junk" items that are only used for selling.

Inventory menu

can't obviously equip/unequip stuff if you don't have a menu to do that. So this issue will track that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.