-
Notifications
You must be signed in to change notification settings - Fork 2
/
ServerObject.java
87 lines (72 loc) · 1.75 KB
/
ServerObject.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package net.dreamersnet.ChatServer;
import java.util.HashMap;
/**
* ServerObject : a class that allows clients to create an object for users to interact with.
*
* @author Ben Parker
*/
class ServerObject {
Server serv;
HashMap<String, Object> property = new HashMap<String, Object>(); // allows custom properties
String itemName = new String ("SO");
String desc = new String ("Newly Created Object");
String creator = new String(" ");
boolean destroyed=false;
int health = 100;
int durability = 1;
int dmg = 0;
int delay = 0;
ServerObject(Server serv, String itemName, String creator) {
this.serv = serv;
this.itemName= itemName;
this.creator=creator;
}
ServerObject(Server serv, String itemName, String creator, String desc ) {
this.serv = serv;
this.itemName = itemName;
this.desc = desc;
this.creator = creator;
}
void setStat(int health, int durability, int dmg, int delay) {
this.health= health;
this.durability = durability;
this.dmg = dmg;
this.delay = delay;
}
int calcDamage() {
return dmg/durability;
}
void takeDamage(int baseDmg) {
health -= baseDmg/durability;
if (health<=0)
{
health = 0;
destroyed = true;
}
}
String getStat(){
String tmp = "Health: " + this.health + " Durability: " + this.durability + " Damage: " + this.dmg + " Delay: " + this.delay;
return tmp;
}
String getDesc(){
if (this.destroyed)
return "a destroyed " + this.desc;
else
return this.desc;
}
String getName() {
return this.itemName;
}
String getCreator() {
return this.creator;
}
void addProperty(String str, Object obj) {
property.put(str, obj);
}
String getProperty(String str) {
return property.get(str).toString();
}
boolean isUsable(){
return !(this.destroyed);
}
}