Gaurav Kc (gskc@cs.columbia.edu) Alex Haubold (ah297@columbia.edu) Tao Chao (tc171@columbia.edu) Extra Credit Work: Cool graphical user interface Active State Object (when monsters become angry, it will actively attack players by spawning another thread) Chat and messaging capabilities Kahva MUD Overview Our MUD game can be called crystal caves. There are rooms pre-generated by the server, where the players can interact through the usage of crystals. Crystals can be found randomly through the cave rooms. There are 6 types of crystals: Green, Orange, Black, Blue, Cyan and Red. The Green crystal will heal the player by 5 health points. The Orange crystal will heal the player to the maximum of 20. The Black crystal can only be used on the Unicorn to calm the creature. The Blue crystal once activated damages everyone (excluding the player) in the room for 10 points of damage. The Cyan crystal will give the player +10 shields. Shields must be destroyed before the player can take damage. The Red crystal will damage a select monster or player from 0 to 5 points. Players can attack, move, chat, use various crystals and pickup crystals. There are also three monsters that inhabit the caves for the players to interact with: The Gryphon, Unicorn and Phoenix. These demonstration of state objects. The Gryphon is calm by default. When someone enters the room, it becomes angry and will attack anyone in the room. The Unicorn will be calm initially, but when attack will attack players in the room. It can be make calm again by using the black crystal. The Phoenix can teleport the players to a random room. It can't be hurt by the players. Note: The monsters can't be in the same room. The Client The Client is an applet that connects to the server and allows the users to interact with other clients. The client basically get a status object that tells the client what is going on in the room including personal messages. Then the client will draw the room based the the information. The status of the room is continuously updated. Any action by the client will result in the remote method call as defined by the PlayerInterface. Actions available are register, getStatus, move, pickup, use (attack, heal, etc), say. The Server Initially, the server generates the rooms and place thes incoming players in random rooms. The server synchronizes the client actions and continuously update the status for all rooms. This is done by using the command synchronize on functions such as effectOf, which defines the effects of using crystals. Also certain objects are synchronized when modifying them. The server defines all the instructions and the effects of the interactions. The servers has several threads running: RMI threads to handle incoming method calls. A thread for checking dead players and removing them. A thread for generating crystals in all of the rooms. A thread for Gryphon so that it will attack anyone in the room A thread for Unicron so that it will attack anyone in the room if it is attacked and becomes angry.