Inventory.java 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. public class Inventory {
  2. private Item[] items;
  3. private final int MAX_QUALITY = 50;
  4. private final String AGED_BRIE_NAME = "Aged Brie";
  5. private final String BACKSTAGE_PASS_NAME = "Backstage passes to a TAFKAL80ETC concert";
  6. private final String NORMAL_ITEM_NAME = "+5 Dexterity Vest";
  7. private final String CONJURED_ITEM_NAME = "Conjured Flower Bouquet";
  8. private final String SULFURAS = "Sulfuras, Hand of Ragnaros";
  9. public Inventory(Item[] items) {
  10. super();
  11. this.items = items;
  12. }
  13. public void updateQuality() {
  14. for (int i = 0; i < items.length; i++) {
  15. if (items[i].getName().equals(SULFURAS)) {
  16. continue;
  17. }
  18. switch (items[i].getName()) {
  19. case BACKSTAGE_PASS_NAME :
  20. updateTickets(items[i]);
  21. break;
  22. case AGED_BRIE_NAME :
  23. updateBrie(items[i]);
  24. break;
  25. case CONJURED_ITEM_NAME :
  26. updateConjuredItem(items[i]);
  27. break;
  28. default :
  29. updateNormalItem(items[i]);
  30. break;
  31. }
  32. items[i].setSellIn(items[i].getSellIn() - 1);
  33. }
  34. }
  35. public void updateTickets(Item ticket) {
  36. if (ticket.getSellIn() < 0) {
  37. ticket.setQuality(0);
  38. }
  39. else if (ticket.getQuality() >= 48) {
  40. ticket.setQuality(50);
  41. }
  42. else {
  43. if (ticket.getSellIn() >= 11) {
  44. ticket.setQuality(ticket.getQuality() + 1);
  45. }
  46. else if (ticket.getSellIn() >= 6 && ticket.getSellIn() < 11) {
  47. ticket.setQuality(ticket.getQuality() + 2);
  48. }
  49. else if (ticket.getSellIn() < 6) {
  50. ticket.setQuality(ticket.getQuality() + 3);
  51. }
  52. }
  53. }
  54. public void updateBrie(Item brie) {
  55. if (brie.getSellIn() > 0 && brie.getQuality() < 50) {
  56. brie.setQuality(brie.getQuality() + 1);
  57. }
  58. else if (brie.getSellIn() < 0) {
  59. brie.setQuality(brie.getQuality() + 2);
  60. }
  61. }
  62. public void updateNormalItem(Item item) {
  63. if (item.getQuality() > 0) {
  64. item.setQuality(item.getQuality() - 1);
  65. }
  66. if (item.getSellIn() < 0) {
  67. item.setQuality(item.getQuality() - 1);
  68. }
  69. }
  70. public void updateConjuredItem(Item item) {
  71. if (item.getQuality() > 0) {
  72. item.setQuality(item.getQuality() - 2);
  73. }
  74. if (item.getSellIn() < 0) {
  75. item.setQuality(item.getQuality() - 2);
  76. }
  77. }
  78. }