1 package test_10_1; 2 3 public class Role { 4 5 /** 生命值 */ 6 private int hp; 7 /** 最大生命值 */ 8 private int maxHP; 9 /** 魔法值 */ 10 private int mp; 11 /** 最大魔法值 */ 12 private int maxMP; 13 /** 攻击力 */ 14 private int atk; 15 /** 防御力 */ 16 private int def; 17 /** 魔法攻击力 */ 18 private int mat; 19 /** 魔法防御力 */ 20 private int mdf; 21 /** 经验值 */ 22 private int exp; 23 /** 下一级经验 */ 24 private int nextExp; 25 /** 等级 */ 26 private int lv; 27 /** 金钱 */ 28 private int money; 29 /** 道具箱 */ 30 private ItemBox item = new ItemBox(); 31 32 /** 33 * 无参构造方法 34 */ 35 public Role() { 36 super(); 37 } 38 39 /** 40 * 带参构造方法 41 * 42 * @param hP 生命值 43 * @param maxHP 最大生命值 44 * @param mP 魔法值 45 * @param maxMP 最大魔法值 46 * @param cP 怒气值 47 * @param atk 攻击力 48 * @param def 防御力 49 * @param mat 魔法攻击力 50 * @param mdf 魔法防御力 51 * @param exp 经验值 52 * @param lv 等级 53 * @param money 金钱 54 */ 55 public Role(int hp, int maxHP, int mp, int maxMP, int atk, int def, int mat, int mdf, int exp, int lv, 56 int money) { 57 super(); 58 this.hp = hp; 59 this.maxHP = maxHP; 60 this.mp = mp; 61 this.maxMP = maxMP; 62 this.atk = atk; 63 this.def = def; 64 this.mat = mat; 65 this.mdf = mdf; 66 this.exp = exp; 67 this.nextExp = countNextExp(); 68 this.lv = lv; 69 this.money = money; 70 } 71 72 /** 73 * 计算下级所需经验 74 * 75 * @return 经验值 76 */ 77 private int countNextExp() { 78 79 int sum = 0; 80 for (int i = 1; i <= lv; i++) { 81 sum += 100 * lv; 82 } 83 return sum; 84 } 85 86 /** 87 * 检查升级 88 */ 89 public void checkExp() { 90 91 while (exp > nextExp) { 92 lv++; 93 maxHP += getRandom(); 94 hp = maxHP; 95 maxMP += getRandom(); 96 mp = maxMP; 97 atk += getRandom(); 98 def += getRandom(); 99 mat += getRandom(); 100 mdf += getRandom(); 101 nextExp = countNextExp(); 102 } 103 } 104 105 /** 106 * 状态提升 107 * 108 * @return 提升值 109 */ 110 private int getRandom() { 111 112 int value = (int) (Math.random() * 5); 113 return value; 114 } 115 116 /** 117 * 获取生命值 118 * 119 * @return hp 生命值 120 */ 121 public int getHp() { 122 return hp; 123 } 124 125 /** 126 * 设置生命值 127 * 128 * @param hp 生命值 129 */ 130 public void setHp(int hp) { 131 this.hp = hp; 132 } 133 134 /** 135 * 增加生命值 136 * 137 * @param hp 生命值 138 */ 139 public void addHp(int hp) { 140 this.hp += hp; 141 } 142 143 /** 144 * 减少生命值 145 * 146 * @param hp 生命值 147 */ 148 public void loseHp(int hp) { 149 this.hp -= hp; 150 } 151 152 /** 153 * 获取最大生命值 154 * 155 * @return maxHP 最大生命值 156 */ 157 public int getMaxHP() { 158 return maxHP; 159 } 160 161 /** 162 * 获取魔法值 163 * 164 * @return mp 魔法值 165 */ 166 public int getMp() { 167 return mp; 168 } 169 170 /** 171 * 设置魔法值 172 * 173 * @param mp 魔法值 174 */ 175 public void setMp(int mp) { 176 this.mp = mp; 177 } 178 179 /** 180 * 增加魔法值 181 * 182 * @param mp 魔法值 183 */ 184 public void addMp(int mp) { 185 this.mp += mp; 186 } 187 188 /** 189 * 消耗魔法值 190 * 191 * @param mp 魔法值 192 */ 193 public void costMp(int mp) { 194 this.mp -= mp; 195 } 196 197 /** 198 * 获取最大魔法值 199 * 200 * @return maxMP 最大魔法值 201 */ 202 public int getMaxMP() { 203 return maxMP; 204 } 205 206 /** 207 * 获取攻击力 208 * 209 * @return atk 攻击力 210 */ 211 public int getAtk() { 212 return atk; 213 } 214 215 /** 216 * 获取防御力 217 * 218 * @return def 防御力 219 */ 220 public int getDef() { 221 return def; 222 } 223 224 /** 225 * 获取魔法攻击力 226 * 227 * @return mat 魔法攻击力 228 */ 229 public int getMat() { 230 return mat; 231 } 232 233 /** 234 * 获取魔法防御力 235 * 236 * @return mdf 魔法防御力 237 */ 238 public int getMdf() { 239 return mdf; 240 } 241 242 /** 243 * 获取经验值 244 * 245 * @return exp 经验值 246 */ 247 public int getExp() { 248 return exp; 249 } 250 251 /** 252 * 获取下一级经验值 253 * 254 * @return nextExp 下一级经验值 255 */ 256 public int getNextExp() { 257 return nextExp; 258 } 259 260 /** 261 * 获取等级 262 * 263 * @return lv 等级 264 */ 265 public int getLv() { 266 return lv; 267 } 268 269 /** 270 * 获取金钱 271 * 272 * @return money 金钱 273 */ 274 public int getMoney() { 275 return money; 276 } 277 278 /** 279 * 增加金钱 280 * 281 * @param money 金钱 282 */ 283 public void addMoney(int money) { 284 this.money += money; 285 } 286 287 /** 288 * 使用金钱 289 * 290 * @param money 金钱 291 */ 292 public void useMoney(int money) { 293 this.money -= money; 294 } 295 296 /** 297 * 获取道具箱 298 * 299 * @return item 道具箱 300 */ 301 public ItemBox getItem() { 302 return item; 303 } 304 305 /** 306 * 设置道具箱 307 * 308 * @param item 道具箱 309 */ 310 public void setItem(ItemBox item) { 311 this.item = item; 312 } 313 314 }
[20-05-12][Self-test 42]Java RolePlayingGame Part 1
原文:https://www.cnblogs.com/mirai3usi9/p/12879645.html