Inventory.java 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. public class Inventory
  2. {
  3. private Item[] items;
  4. public Inventory(Item[] items) {
  5. super();
  6. this.items = items;
  7. }
  8. public void updateQuality() {
  9. for (int i = 0; i < items.length; i++)
  10. {
  11. String itemName = items[i].getName().toUpperCase();
  12. String[] nameArr = itemName.replaceAll("[^A-Z0-9\\s]", "").split(" ");
  13. String output = (nameArr[0].equals("5")) ? "FIVE" : nameArr[0];
  14. BigSellers.valueOf(output).quality(items[i]);
  15. }
  16. }
  17. //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvBIG OL ENUMvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
  18. public enum BigSellers {
  19. //-------------------------CONJURED MANA BISCUIT------------------------------
  20. CONJURED() {
  21. @Override public void quality(Item x) {
  22. int currentQuality = x.getQuality();
  23. int sellIn = x.getSellIn();
  24. //------------------------------------------
  25. if (currentQuality > 0) {
  26. if(sellIn >= 0) {
  27. x.setQuality(currentQuality - 2);
  28. }
  29. else x.setQuality(currentQuality - 4);
  30. }
  31. //------------------------------------------
  32. x.setSellIn(sellIn - 1);
  33. }
  34. },
  35. //-----------------------------------------------------------------------------
  36. //------------------------------SULFURAS---------------------------------------
  37. SULFURAS() {
  38. @Override public void quality(Item x) {
  39. return;
  40. }
  41. },
  42. //----------------------------------------------------------------------------
  43. //----------------------------AGED BRIE---------------------------------------
  44. AGED() {
  45. @Override public void quality(Item x) {
  46. int currentQuality = x.getQuality();
  47. int sellIn = x.getSellIn();
  48. int adjustPrice = sellIn > 0 ? 1 : 2;
  49. //---------------------------------------
  50. if (currentQuality < 50) {
  51. x.setQuality(currentQuality + adjustPrice);
  52. }
  53. //--------------------------------------
  54. x.setSellIn(sellIn - 1);
  55. }
  56. },
  57. //-----------------------------------------------------------------------------
  58. //-------------------------BACKSTAGE PASSES------------------------------------
  59. BACKSTAGE() {
  60. @Override public void quality(Item x) {
  61. int currentQuality = x.getQuality();
  62. int sellIn = x.getSellIn();
  63. int adjustPrice = sellIn <= 5 ? 3 :
  64. sellIn <= 10 ? 2 :
  65. 1 ;
  66. //-------------------------------------
  67. if (sellIn >= 0) {
  68. if (currentQuality + adjustPrice >= 50) {
  69. x.setQuality(50);
  70. }
  71. else x.setQuality(currentQuality + adjustPrice);
  72. }
  73. else x.setQuality(0);
  74. //--------------------------------------
  75. x.setSellIn(sellIn - 1);
  76. }
  77. },
  78. //-----------------------------------------------------------------------------
  79. //-----------------------------+5 DEX------------------------------------------
  80. FIVE() {
  81. @Override public void quality(Item x) {
  82. int currentQuality = x.getQuality();
  83. int sellIn = x.getSellIn();
  84. //------------------------------------------
  85. if (currentQuality > 0) {
  86. if(sellIn >= 0) {
  87. x.setQuality(currentQuality - 1);
  88. }
  89. else x.setQuality(currentQuality - 2);
  90. }
  91. //------------------------------------------
  92. x.setSellIn(sellIn - 1);
  93. }
  94. };
  95. //-----------------------------------------------------------------------------
  96. public abstract void quality(Item x); //<--------template method
  97. }
  98. //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^END OF ENUM^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  99. }