| [8edd04e] | 1 | package main;
|
|---|
| 2 |
|
|---|
| 3 | import java.awt.Font;
|
|---|
| 4 | import java.awt.Graphics;
|
|---|
| 5 | import java.awt.MouseInfo;
|
|---|
| 6 | import java.io.*;
|
|---|
| 7 | import java.util.*;
|
|---|
| 8 |
|
|---|
| 9 | import gamegui.*;
|
|---|
| 10 |
|
|---|
| 11 | public class Player extends Creature {
|
|---|
| 12 |
|
|---|
| 13 | private int gold;
|
|---|
| 14 | private int attributePoints;
|
|---|
| 15 | private int[] skills;
|
|---|
| 16 | private int skillPoints;
|
|---|
| 17 | private LinkedList<Item> inventory;
|
|---|
| 18 | private LinkedList<Item> gemsUsed;
|
|---|
| 19 | private HashMap<Gem, Integer> gems;
|
|---|
| 20 | private int relicCount;
|
|---|
| 21 | private int gemValue;
|
|---|
| 22 | private long timePlayed;
|
|---|
| 23 | private long timeLoggedOn;
|
|---|
| 24 |
|
|---|
| 25 | public Player() {
|
|---|
| 26 | this.name = "Player";
|
|---|
| 27 | this.type = CreatureType.Player;
|
|---|
| 28 | this.skills = new int[9];
|
|---|
| 29 | this.inventory = new LinkedList<Item>();
|
|---|
| 30 | this.gemsUsed = new LinkedList<Item>();
|
|---|
| 31 | this.gems = new HashMap<Gem, Integer>();
|
|---|
| 32 | this.relicCount = 0;
|
|---|
| 33 | this.gemValue = 0;
|
|---|
| 34 | this.timePlayed = 0L;
|
|---|
| 35 | this.timeLoggedOn = 0L;
|
|---|
| 36 | }
|
|---|
| 37 |
|
|---|
| 38 | public Player(Player p) {
|
|---|
| 39 | super(p);
|
|---|
| 40 | this.skills = (int[])p.skills.clone();
|
|---|
| 41 | this.attributePoints = p.attributePoints;
|
|---|
| 42 | this.skillPoints = p.skillPoints;
|
|---|
| 43 | this.inventory = new LinkedList<Item>(p.inventory);
|
|---|
| 44 | this.gemsUsed = new LinkedList<Item>(p.gemsUsed);
|
|---|
| 45 | this.gems = new HashMap<Gem, Integer>(p.gems);
|
|---|
| 46 | this.relicCount = p.relicCount;
|
|---|
| 47 | this.gemValue = p.gemValue;
|
|---|
| 48 | this.timePlayed = p.timePlayed;
|
|---|
| 49 | this.timeLoggedOn = p.timeLoggedOn;
|
|---|
| 50 | }
|
|---|
| 51 |
|
|---|
| 52 | public Player copy() {
|
|---|
| 53 | return new Player(this);
|
|---|
| 54 | }
|
|---|
| 55 |
|
|---|
| 56 | public boolean readyForBoss() {
|
|---|
| 57 | return (this.relicCount >= 4);
|
|---|
| 58 | }
|
|---|
| 59 |
|
|---|
| 60 | public void setTimeLoggedOn(long time) {
|
|---|
| 61 | this.timeLoggedOn = time;
|
|---|
| 62 | }
|
|---|
| 63 |
|
|---|
| 64 | public long getTimePlayed() {
|
|---|
| 65 | return this.timePlayed;
|
|---|
| 66 | }
|
|---|
| 67 |
|
|---|
| 68 | public void updateTimePlayed() {
|
|---|
| 69 | this.timePlayed += System.currentTimeMillis() - this.timeLoggedOn;
|
|---|
| 70 | }
|
|---|
| 71 |
|
|---|
| 72 | public void drawInventory(Graphics g, ScrollList inv, int x, int y) {
|
|---|
| 73 | int mouseX = (MouseInfo.getPointerInfo().getLocation()).x;
|
|---|
| 74 | int mouseY = (MouseInfo.getPointerInfo().getLocation()).y;
|
|---|
| 75 | int locX = (mouseX - x) / 50;
|
|---|
| 76 | int locY = (mouseY - y + inv.getTextStart()) / 50;
|
|---|
| 77 | if (locX + 4 * locY >= 0 && locX + 4 * locY < inv.getList().size()) {
|
|---|
| 78 | Window popup;
|
|---|
| 79 | String itemType;
|
|---|
| 80 | MultiTextbox desc;
|
|---|
| 81 | Item i = ((ItemImg)inv.getList().get(locX + locY * 4)).getItem();
|
|---|
| 82 | switch (i.getType()) {
|
|---|
| 83 | case Relic:
|
|---|
| 84 | popup = new Window("popup", mouseX - 100, mouseY - 150, 100, 165, false);
|
|---|
| 85 | break;
|
|---|
| 86 | default:
|
|---|
| 87 | popup = new Window("popup", mouseX - 100, mouseY - 100, 100, 100, false);
|
|---|
| 88 | break;
|
|---|
| 89 | }
|
|---|
| 90 | Font font12 = new Font("Arial", 0, 12);
|
|---|
| 91 | switch (i.getType()) {
|
|---|
| 92 | case LightWeapon:
|
|---|
| 93 | itemType = "Light Weapon";
|
|---|
| 94 | break;
|
|---|
| 95 | case HeavyWeapon:
|
|---|
| 96 | itemType = "Heavy Weapon";
|
|---|
| 97 | break;
|
|---|
| 98 | case RangedWeapon:
|
|---|
| 99 | itemType = "Ranged Weapon";
|
|---|
| 100 | break;
|
|---|
| 101 | default:
|
|---|
| 102 | itemType = i.getType().toString();
|
|---|
| 103 | break;
|
|---|
| 104 | }
|
|---|
| 105 | popup.add(new Label("name", 5, 5, 90, 15, i.getName(), font12));
|
|---|
| 106 | popup.add(new Label("type", 5, 35, 90, 15, itemType, font12));
|
|---|
| 107 | switch (i.getType()) {
|
|---|
| 108 | case LightWeapon:
|
|---|
| 109 | case HeavyWeapon:
|
|---|
| 110 | case RangedWeapon:
|
|---|
| 111 | popup.add(new Label("damage", 5, 50, 90, 15, "Damage: " + ((Weapon)i).getDamage(), font12));
|
|---|
| 112 | popup.add(new Label("damage", 5, 65, 90, 15, "Cooldown: " + (((Weapon)i).getAttackSpeed() / 10.0D) + " s", font12));
|
|---|
| 113 | break;
|
|---|
| 114 | case Spell:
|
|---|
| 115 | popup.add(new Label("energy", 5, 50, 90, 15, "Energy: " + ((Gem)i).getValue(), font12));
|
|---|
| 116 | desc = new MultiTextbox("description", 1, 80, 99, 84, "", false, font12, g.getFontMetrics(font12));
|
|---|
| 117 | desc.setText(i.getDescription());
|
|---|
| 118 | desc.setBorder(false);
|
|---|
| 119 | popup.add(desc);
|
|---|
| 120 | break;
|
|---|
| 121 | }
|
|---|
| 122 | popup.draw(g);
|
|---|
| 123 | }
|
|---|
| 124 | }
|
|---|
| 125 |
|
|---|
| 126 | public void save(PrintWriter out) {
|
|---|
| 127 | super.save(out);
|
|---|
| 128 | out.println(this.name);
|
|---|
| 129 | out.println(this.level);
|
|---|
| 130 | out.println(this.timePlayed);
|
|---|
| 131 | out.println(this.experience);
|
|---|
| 132 | out.println(String.valueOf(getTarget().getX()) + "," + getTarget().getY());
|
|---|
| 133 | out.println(getAttribute(Attribute.Strength));
|
|---|
| 134 | out.println(getAttribute(Attribute.Dexterity));
|
|---|
| 135 | out.println(getAttribute(Attribute.Constitution));
|
|---|
| 136 | out.println(getAttribute(Attribute.Wisdom));
|
|---|
| 137 | out.println(getSkill(Skill.LightWeapons));
|
|---|
| 138 | out.println(getSkill(Skill.HeavyWeapons));
|
|---|
| 139 | out.println(getSkill(Skill.RangedWeapons));
|
|---|
| 140 | out.println(getSkill(Skill.Evocation));
|
|---|
| 141 | out.println(getSkill(Skill.Enchantment));
|
|---|
| 142 | out.println(this.attributePoints);
|
|---|
| 143 | out.println(this.skillPoints);
|
|---|
| 144 | out.println(getMaxHitpoints());
|
|---|
| 145 | out.println(getMaxManapoints());
|
|---|
| 146 | Object[] arr = LostHavenRPG.respawnPoints.toArray();
|
|---|
| 147 | for (int x = 0; x < arr.length; x++) {
|
|---|
| 148 | if (((RespawnPoint)arr[x]).isMarked())
|
|---|
| 149 | out.println(x);
|
|---|
| 150 | }
|
|---|
| 151 | out.println("---");
|
|---|
| 152 | Iterator<Item> iter = this.inventory.iterator();
|
|---|
| 153 | while (iter.hasNext())
|
|---|
| 154 | out.println(((Item)iter.next()).getName());
|
|---|
| 155 | out.println("---");
|
|---|
| 156 | iter = this.gemsUsed.iterator();
|
|---|
| 157 | while (iter.hasNext())
|
|---|
| 158 | out.println(((Item)iter.next()).getName());
|
|---|
| 159 | out.println("---");
|
|---|
| 160 | }
|
|---|
| 161 |
|
|---|
| 162 | public static Player loadTemplate(BufferedReader in) {
|
|---|
| 163 | Player p = new Player();
|
|---|
| 164 | try {
|
|---|
| 165 | p.level = Integer.parseInt(in.readLine());
|
|---|
| 166 | p.setSkill(Skill.LightWeapons, Integer.parseInt(in.readLine()));
|
|---|
| 167 | p.setSkill(Skill.HeavyWeapons, Integer.parseInt(in.readLine()));
|
|---|
| 168 | p.setSkill(Skill.RangedWeapons, Integer.parseInt(in.readLine()));
|
|---|
| 169 | p.setSkill(Skill.Evocation, Integer.parseInt(in.readLine()));
|
|---|
| 170 | p.setSkill(Skill.Enchantment, Integer.parseInt(in.readLine()));
|
|---|
| 171 | p.attributePoints = Integer.parseInt(in.readLine());
|
|---|
| 172 | p.skillPoints = Integer.parseInt(in.readLine());
|
|---|
| 173 | } catch (IOException ioe) {
|
|---|
| 174 | ioe.printStackTrace();
|
|---|
| 175 | }
|
|---|
| 176 | return p;
|
|---|
| 177 | }
|
|---|
| 178 |
|
|---|
| 179 | public void load(BufferedReader in) {
|
|---|
| 180 | try {
|
|---|
| 181 | super.load(in);
|
|---|
| 182 | int hp = getHitpoints();
|
|---|
| 183 | int mp = getManapoints();
|
|---|
| 184 | setName(in.readLine());
|
|---|
| 185 | this.level = Integer.valueOf(in.readLine()).intValue();
|
|---|
| 186 | this.timePlayed = Long.valueOf(in.readLine()).longValue();
|
|---|
| 187 | setExperience(Integer.valueOf(in.readLine()).intValue());
|
|---|
| 188 | String strTarget = in.readLine();
|
|---|
| 189 | getTarget().setX(Integer.valueOf(strTarget.substring(0, strTarget.indexOf(","))).intValue());
|
|---|
| 190 | getTarget().setY(Integer.valueOf(strTarget.substring(strTarget.indexOf(",") + 1)).intValue());
|
|---|
| 191 | setAttribute(Attribute.Strength, Integer.parseInt(in.readLine()));
|
|---|
| 192 | setAttribute(Attribute.Dexterity, Integer.parseInt(in.readLine()));
|
|---|
| 193 | setAttribute(Attribute.Constitution, Integer.parseInt(in.readLine()));
|
|---|
| 194 | setAttribute(Attribute.Wisdom, Integer.parseInt(in.readLine()));
|
|---|
| 195 | setSkill(Skill.LightWeapons, Integer.parseInt(in.readLine()));
|
|---|
| 196 | setSkill(Skill.HeavyWeapons, Integer.parseInt(in.readLine()));
|
|---|
| 197 | setSkill(Skill.RangedWeapons, Integer.parseInt(in.readLine()));
|
|---|
| 198 | setSkill(Skill.Evocation, Integer.parseInt(in.readLine()));
|
|---|
| 199 | setSkill(Skill.Enchantment, Integer.parseInt(in.readLine()));
|
|---|
| 200 | this.attributePoints = Integer.parseInt(in.readLine());
|
|---|
| 201 | this.skillPoints = Integer.parseInt(in.readLine());
|
|---|
| 202 | setMaxHitpoints(Integer.parseInt(in.readLine()));
|
|---|
| 203 | setMaxManapoints(Integer.parseInt(in.readLine()));
|
|---|
| 204 | setHitpoints(hp);
|
|---|
| 205 | setManapoints(mp);
|
|---|
| 206 | setWeapon(this.weapon.baseWeapon);
|
|---|
| 207 | String strItem;
|
|---|
| 208 | while (!(strItem = in.readLine()).equals("---"))
|
|---|
| 209 | ((RespawnPoint)LostHavenRPG.respawnPoints.get(Integer.parseInt(strItem))).mark();
|
|---|
| 210 | this.weapon.update();
|
|---|
| 211 | while (!(strItem = in.readLine()).equals("---"))
|
|---|
| 212 | pickUp(LostHavenRPG.items.get(strItem));
|
|---|
| 213 | while (!(strItem = in.readLine()).equals("---")) {
|
|---|
| 214 | pickUp(LostHavenRPG.items.get(strItem));
|
|---|
| 215 | activateGem((Gem)LostHavenRPG.items.get(strItem));
|
|---|
| 216 | }
|
|---|
| 217 | } catch (IOException ioe) {
|
|---|
| 218 | ioe.printStackTrace();
|
|---|
| 219 | }
|
|---|
| 220 | }
|
|---|
| 221 |
|
|---|
| 222 | public void pickUp(Item item) {
|
|---|
| 223 | this.inventory.add(item);
|
|---|
| 224 | LostHavenRPG.lstInventory.getList().add(new ItemImg(item));
|
|---|
| 225 | if (item.isRelic()) {
|
|---|
| 226 | this.relicCount++;
|
|---|
| 227 | }
|
|---|
| 228 | }
|
|---|
| 229 |
|
|---|
| 230 | public boolean activateGem(Gem item) {
|
|---|
| 231 | if (this.gemValue + item.getValue() > getSkill(Skill.Evocation))
|
|---|
| 232 | return false;
|
|---|
| 233 | this.gemsUsed.add(item);
|
|---|
| 234 | LostHavenRPG.lstGems.getList().add(new ItemImg(item));
|
|---|
| 235 | this.inventory.remove(item);
|
|---|
| 236 | LostHavenRPG.lstInventory.getList().remove(new ItemImg(item));
|
|---|
| 237 | this.gemValue += item.getValue();
|
|---|
| 238 | addGem((Gem)LostHavenRPG.items.get(item.getName()));
|
|---|
| 239 | if (getSpell() == null) {
|
|---|
| 240 | setSpell(new Weapon("spell", ItemType.Spell, "Dagger.png", new java.awt.image.BufferedImage[8], 10, 250, 0));
|
|---|
| 241 | }
|
|---|
| 242 | getSpell().update();
|
|---|
| 243 | return true;
|
|---|
| 244 | }
|
|---|
| 245 |
|
|---|
| 246 | public void deactivateGem(Gem item) {
|
|---|
| 247 | this.inventory.add(item);
|
|---|
| 248 | LostHavenRPG.lstInventory.getList().add(new ItemImg(item));
|
|---|
| 249 | this.gemsUsed.remove(item);
|
|---|
| 250 | LostHavenRPG.lstGems.getList().remove(new ItemImg(item));
|
|---|
| 251 | this.gemValue -= item.getValue();
|
|---|
| 252 | removeGem((Gem)LostHavenRPG.items.get(item.getName()));
|
|---|
| 253 | if (this.gemsUsed.size() == 0) {
|
|---|
| 254 | this.spell = null;
|
|---|
| 255 | } else {
|
|---|
| 256 | getSpell().update();
|
|---|
| 257 | }
|
|---|
| 258 | }
|
|---|
| 259 |
|
|---|
| 260 | public LinkedList<Item> getInventory() {
|
|---|
| 261 | return this.inventory;
|
|---|
| 262 | }
|
|---|
| 263 |
|
|---|
| 264 | public LinkedList<Item> getGems() {
|
|---|
| 265 | return this.gemsUsed;
|
|---|
| 266 | }
|
|---|
| 267 |
|
|---|
| 268 | public void initGems(LinkedList<Gem> lstGems) {
|
|---|
| 269 | Iterator<Gem> iter = lstGems.iterator();
|
|---|
| 270 | while (iter.hasNext())
|
|---|
| 271 | this.gems.put(iter.next(), Integer.valueOf(0));
|
|---|
| 272 | }
|
|---|
| 273 |
|
|---|
| 274 | public void addGem(Gem gem) {
|
|---|
| 275 | this.gems.put(gem, Integer.valueOf(((Integer)this.gems.get(gem)).intValue() + 1));
|
|---|
| 276 | }
|
|---|
| 277 |
|
|---|
| 278 | public void removeGem(Gem gem) {
|
|---|
| 279 | this.gems.put(gem, Integer.valueOf(((Integer)this.gems.get(gem)).intValue() - 1));
|
|---|
| 280 | }
|
|---|
| 281 |
|
|---|
| 282 | public int getGemNum(String name) {
|
|---|
| 283 | Iterator<Gem> iter = this.gems.keySet().iterator();
|
|---|
| 284 | while (iter.hasNext()) {
|
|---|
| 285 | Gem cur = iter.next();
|
|---|
| 286 | if (cur.getName().equals(name)) {
|
|---|
| 287 | return ((Integer)this.gems.get(cur)).intValue();
|
|---|
| 288 | }
|
|---|
| 289 | }
|
|---|
| 290 | return 0;
|
|---|
| 291 | }
|
|---|
| 292 |
|
|---|
| 293 | public void increaseLevel() {
|
|---|
| 294 | this.skillPoints += 2;
|
|---|
| 295 | setHitpoints(getHitpoints() + getAttribute(Attribute.Constitution));
|
|---|
| 296 | setMaxHitpoints(getMaxHitpoints() + getAttribute(Attribute.Constitution));
|
|---|
| 297 | setManapoints(getManapoints() + getAttribute(Attribute.Wisdom));
|
|---|
| 298 | setMaxManapoints(getMaxManapoints() + getAttribute(Attribute.Wisdom));
|
|---|
| 299 | setLevel(getLevel() + 1);
|
|---|
| 300 | }
|
|---|
| 301 |
|
|---|
| 302 | public void allocateAttribute(Attribute point) {
|
|---|
| 303 | if (this.attributePoints > 0) {
|
|---|
| 304 | setAttribute(point, getAttribute(point) + 1);
|
|---|
| 305 | this.attributePoints--;
|
|---|
| 306 | }
|
|---|
| 307 | }
|
|---|
| 308 |
|
|---|
| 309 | public void repickAttribute(Attribute point) {
|
|---|
| 310 | if (getAttribute(point) > 6) {
|
|---|
| 311 | setAttribute(point, getAttribute(point) - 1);
|
|---|
| 312 | this.attributePoints++;
|
|---|
| 313 | }
|
|---|
| 314 | }
|
|---|
| 315 |
|
|---|
| 316 | public void allocateSkill(Skill point) {
|
|---|
| 317 | if (this.skillPoints > 0) {
|
|---|
| 318 | setSkill(point, getSkill(point) + 1);
|
|---|
| 319 | this.skillPoints--;
|
|---|
| 320 | this.weapon.update();
|
|---|
| 321 | }
|
|---|
| 322 | }
|
|---|
| 323 |
|
|---|
| 324 | public void repickSkill(Skill point) {
|
|---|
| 325 | if (getSkill(point) > 0) {
|
|---|
| 326 | setSkill(point, getSkill(point) - 1);
|
|---|
| 327 | this.skillPoints++;
|
|---|
| 328 | this.weapon.update();
|
|---|
| 329 | }
|
|---|
| 330 | }
|
|---|
| 331 |
|
|---|
| 332 | private int skillIndex(Skill skill) {
|
|---|
| 333 | switch (skill) {
|
|---|
| 334 | case LightWeapons:
|
|---|
| 335 | return 0;
|
|---|
| 336 | case HeavyWeapons:
|
|---|
| 337 | return 1;
|
|---|
| 338 | case RangedWeapons:
|
|---|
| 339 | return 2;
|
|---|
| 340 | case Evocation:
|
|---|
| 341 | return 3;
|
|---|
| 342 | case Enchantment:
|
|---|
| 343 | return 4;
|
|---|
| 344 | }
|
|---|
| 345 | return -1;
|
|---|
| 346 | }
|
|---|
| 347 |
|
|---|
| 348 | public int getSkill(Skill skill) {
|
|---|
| 349 | return this.skills[skillIndex(skill)];
|
|---|
| 350 | }
|
|---|
| 351 |
|
|---|
| 352 | public void setSkill(Skill skill, int num) {
|
|---|
| 353 | this.skills[skillIndex(skill)] = num;
|
|---|
| 354 | }
|
|---|
| 355 |
|
|---|
| 356 | public int getGold() {
|
|---|
| 357 | return this.gold;
|
|---|
| 358 | }
|
|---|
| 359 |
|
|---|
| 360 | public int getAttributePoints() {
|
|---|
| 361 | return this.attributePoints;
|
|---|
| 362 | }
|
|---|
| 363 |
|
|---|
| 364 | public int getSkillPoints() {
|
|---|
| 365 | return this.skillPoints;
|
|---|
| 366 | }
|
|---|
| 367 |
|
|---|
| 368 | public int getGemValue() {
|
|---|
| 369 | return this.gemValue;
|
|---|
| 370 | }
|
|---|
| 371 |
|
|---|
| 372 | public int getRelicCount() {
|
|---|
| 373 | return this.relicCount;
|
|---|
| 374 | }
|
|---|
| 375 |
|
|---|
| 376 | public void setWeapon(Weapon weapon) {
|
|---|
| 377 | this.weapon = new EquippedWeapon(this, weapon);
|
|---|
| 378 | switch (weapon.getType()) {
|
|---|
| 379 | case LightWeapon:
|
|---|
| 380 | case HeavyWeapon:
|
|---|
| 381 | setModel(LostHavenRPG.meleeModel);
|
|---|
| 382 | break;
|
|---|
| 383 | case RangedWeapon:
|
|---|
| 384 | setModel(LostHavenRPG.rangedModel);
|
|---|
| 385 | break;
|
|---|
| 386 | }
|
|---|
| 387 | this.weapon.update();
|
|---|
| 388 | (this.model.getAnimation(Direction.North, Action.Attacking)).drawInterval = (this.weapon.getAttackSpeed() * 100 / (this.model.getAnimation(Direction.North, Action.Attacking)).frames.size());
|
|---|
| 389 | (this.model.getAnimation(Direction.South, Action.Attacking)).drawInterval = (this.weapon.getAttackSpeed() * 100 / (this.model.getAnimation(Direction.South, Action.Attacking)).frames.size());
|
|---|
| 390 | (this.model.getAnimation(Direction.East, Action.Attacking)).drawInterval = (this.weapon.getAttackSpeed() * 100 / (this.model.getAnimation(Direction.East, Action.Attacking)).frames.size());
|
|---|
| 391 | (this.model.getAnimation(Direction.West, Action.Attacking)).drawInterval = (this.weapon.getAttackSpeed() * 100 / (this.model.getAnimation(Direction.West, Action.Attacking)).frames.size());
|
|---|
| 392 | }
|
|---|
| 393 |
|
|---|
| 394 | public void setGold(int gold) {
|
|---|
| 395 | this.gold = gold;
|
|---|
| 396 | }
|
|---|
| 397 |
|
|---|
| 398 | public void setAttributePoints(int attributePoints) {
|
|---|
| 399 | this.attributePoints = attributePoints;
|
|---|
| 400 | }
|
|---|
| 401 |
|
|---|
| 402 | public void setAttribute(Attribute attribute, int num) {
|
|---|
| 403 | this.attributes[attributeIndex(attribute)] = num;
|
|---|
| 404 | updateStats();
|
|---|
| 405 | }
|
|---|
| 406 |
|
|---|
| 407 | private void updateStats() {
|
|---|
| 408 | this.hitpoints = 4 * this.attributes[2];
|
|---|
| 409 | this.maxHitpoints = 4 * this.attributes[2];
|
|---|
| 410 | this.manapoints = 2 * this.attributes[3];
|
|---|
| 411 | this.maxManapoints = 2 * this.attributes[3];
|
|---|
| 412 | }
|
|---|
| 413 |
|
|---|
| 414 | public class ItemImg implements Listable {
|
|---|
| 415 | public Item i;
|
|---|
| 416 | public int xCoord;
|
|---|
| 417 | public int yCoord;
|
|---|
| 418 |
|
|---|
| 419 | public ItemImg(Item i) {
|
|---|
| 420 | this.i = i;
|
|---|
| 421 | }
|
|---|
| 422 |
|
|---|
| 423 | public void draw(int x, int y, Graphics g) {
|
|---|
| 424 | this.xCoord = x;
|
|---|
| 425 | this.yCoord = y;
|
|---|
| 426 | this.i.drawStatic(g, x, y);
|
|---|
| 427 | }
|
|---|
| 428 |
|
|---|
| 429 | public Item getItem() {
|
|---|
| 430 | return this.i;
|
|---|
| 431 | }
|
|---|
| 432 |
|
|---|
| 433 | public int getHeight() {
|
|---|
| 434 | return this.i.getImg().getHeight();
|
|---|
| 435 | }
|
|---|
| 436 |
|
|---|
| 437 | public int getWidth() {
|
|---|
| 438 | return this.i.getImg().getWidth();
|
|---|
| 439 | }
|
|---|
| 440 |
|
|---|
| 441 | public int getXOffset() {
|
|---|
| 442 | return 0;
|
|---|
| 443 | }
|
|---|
| 444 |
|
|---|
| 445 | public int getYOffset() {
|
|---|
| 446 | return 0;
|
|---|
| 447 | }
|
|---|
| 448 |
|
|---|
| 449 | public boolean equals(Object o) {
|
|---|
| 450 | return (((ItemImg)o).i == this.i);
|
|---|
| 451 | }
|
|---|
| 452 | }
|
|---|
| 453 | }
|
|---|