-
Notifications
You must be signed in to change notification settings - Fork 2
tanzeelrana/Zuul-Game
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Read Me ************************************************* * World of Zuul * * V 1.0 * * * * Developed By: * * Tanzeel Rana * * Muhammad Mohd Johari * * Sean Byron * * Ethan Aubuchon * * * * Created October 23, 2012 * ************************************************* 1.0 About: The world of Zuul is a thrilling, text-based, action adventure fanatasy game. The player embarks on a misticle journey through the world of Zuul, on a quest to do nothing of note. Along the way the player will encounter multiple foes, which he/she can choose to slay. Their scary names may strike fear into your heart but have no fear, for they shall not attack. 1.1 Monsters: There are three monsters hidden in the world of Zuul. ********************** *Name * Health * ********************** ********************** *Kracken * 10 * ********************** *Grendel * 8 * ********************** *Goblin * 3 * ********************** 1.2 Items: Throught Zuul, there are three items, hidden in plain view in three seperate rooms. All three of these hold absolutely no purpose. Each item has a weight. You cannot exceed the maximum weight of 1000 units. ********************** *Name * Weight * ********************** ********************** *Plant * 2.0 * ********************** *Sword * 7.0 * ********************** *Pogo Stick * 5.0 * ********************** 1.3 Map: The World of Zuul consists of 10 rooms. They are mapped as follows. ******************* * * * * * * * Entrance * * * * * * * * * ******** ******** * * * * ******************* ******** ******** ******************* * * * * * * * * * * * * * ***** ***** * * Waiting Lobby Dining * * Room Room * * ***** ***** * * * * * * * * * * * * * ******************* ******** ******** ******** ******** * * * * * * * * ******************* ******** ******** ******** ******** * * * * * * * * * * * * * * * ***** * * Gallery * * Theatre Studio * * * * * * * * ***** * * * * * * * * * * * * * ******** ******** ******************* ******** ******** * * * * * * * * ******** ******** ******************* ******** ******** * * * * * * * * * * * * * ***** ***** * * Workshop Dressing Technician * * Room * * ***** ***** * * * * * * * * * * * * * ******************* ******************* ******************* 2.0 Implementation: 2.1 Undo/Redo: We chose to use an undo and redo stack to help implement the undo and redo methods. Whenever a new command is entered, if it is a command that we have programmed to be "reversible" (a command we wish for the user to be able to undo), the command is pushed into the undo stack. Whenever undo is called, the command is popped of the stack, inverted (pick becomes drop, attack becomes heal, go north becomes go south, ect), this reversed command is followed, and then stored into a redo stack. If redo is called the command is popped out of the stack, reversed, followed, and stuck into the undo stack. Whenever a reversable command is called, the redo stack is emptied. 2.2 Command words: The command words have been broken into two categories: reversible and nonreversible. The non-reversible commands are stored in a final static array of Strings. The reversible commands are stored as keys in a hashmap, their reverse being stored as the value. Only reversible commands can be undone. If a command appears as its own reverse, then the code will go to a hashmap of second words and their reverse. Currently, this rule only effect go and its directions. Only reversible commands will be put into the undo/redo stacks, meaning undo and redo will only affect reversible commands. The commands are as follows: Reversible: go - go pick - drop drop - pick attack - heal heal - attack ***NEW COMMAND**** eat - uneat uneat - eat (for undo/redo method) eat After player has pick up plant, player can now eat to restore player's health to the initial health uneat Undo for eat. Non-reversible: help look undo redo quit 2.3 Items and Monster Items and monsters are stored in hashmaps. Their string equivalent that the user inputs are the keys. This makes it easy to return the proper monster or item to the Game class. *****************ITEM NOW HAVE SPECIFIC FUCTION IN THE GAME******************* Sword - Increase player damage by one Plant - can be use to eat and restore player's health PogoStix - Can be use to skip monster guarding the door(go to other room without killing monster) 3.0 View Instead of text-based view, player now will have GUI view showing the map and current room where the player are. The current room will be in the middle of the map and only the room that has been visited by the player will be shown in the map. The exits of the room will be shown to player so that player will know which exit is available. 4.0 Control For now,player still will be using console input to control the game same as previous milestone. 5.0 Package All the class have been rearranged into packages to follow MVC representation Model: game.java Parser.java Room.java **removed** -exits:HashMap<String,Room> -items:HashMap<String,Item> -monster:HashMap<String,Monster> **Room class now has a hash map that stores the walls of the room the walls now have monsters items and exits on them insted. Wall.java This class represents the wall of a room. each room will contain 4 walls each wall can have one monster and one item ++ getWall(String) method added, it returns the Wall corresponding to the String Model.command: Command.java CommandStack.java CommandWords.java Model.object: Item.java Monster.java Player.java testSuite : GameTest.java *added test for new method eat and unEat,attack with sword and skip monster with PogoStix PlayerTest.java *added test for new method eat and unEat MonsterTest.java CommandStackTest.java RoomTest.java TestCommand.java TestCommandWords.java view: Removed *****DrawableRoom.java**** changed to ****MapRoom.java**** MapRoom.java provides support for drawing a visual representation of the room on a JPanel MapView.java this class is used to show the room in a 2-D view FirstPersonItem.java FirstPersonItem helps in the visual representation of an item on the wall of a Room. FirstPersonMonster.java FirstPersonMonster helps in the visual representation of an monster on the wall of a Room. FirstPersonRoom.java this class is used to represent the room in a 3-D view on the Jpanel FirstPersonView.java FirstPersonView is the class that creates the main frame for the game and hold all the panels,menu bars and menu items.It keeps the view updated every time a new move is executed. HealthPanel.java this is a panel at the bottom that represresents the current health of a player. controller: FPKeyListener.java FPMouseListener.java editor: EditorDriver.java editor.controller: EditorListener.java EditorUpdateObject.java eidtor.model: LevelEditor.java editor.view: EditorMap.java EditorView.java save: GameSave.java start: GameDriver.java WelcomeScreen.java xml: ExitWriter.java ItemWriter.java MonsterWriter.java RoomWriter.java TopLevelParser.java XMLExit.java XMLItem.java XMLMonster.java XMLParser.java XMLReader.java XMLRoom.java XMLWriter.java 6.0 UML The UML diagram is updated and added the new class for the GUI part (DrawableRoom.java and MapView.java) and rearranged into their package. Sequence diagram for each command available for the player created. List of sequence diagram: play() goRoom() pick() drop() attack() heal() eat() uneat()
About
Zuul-Game -Project Sysy 3110
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published