Merge pull request #3141 from forsco/skill-calculator-fixes

Add skill calculator missing data and bonus exp fix
This commit is contained in:
Adam
2018-05-23 20:25:34 -04:00
committed by GitHub
10 changed files with 456 additions and 53 deletions

View File

@@ -172,12 +172,12 @@ class SkillCalculator extends JPanel
private void renderBonusOptions()
{
if (skillData.bonuses != null)
if (skillData.getBonuses() != null)
{
for (SkillDataBonus bonus : skillData.bonuses)
for (SkillDataBonus bonus : skillData.getBonuses())
{
JPanel uiOption = new JPanel(new BorderLayout());
JLabel uiLabel = new JLabel(bonus.name);
JLabel uiLabel = new JLabel(bonus.getName());
JCheckBox uiCheckbox = new JCheckBox();
uiLabel.setForeground(Color.WHITE);
@@ -187,7 +187,7 @@ class SkillCalculator extends JPanel
uiOption.setBackground(ColorScheme.DARKER_GRAY_COLOR);
// Adjust XP bonus depending on check-state of the boxes.
uiCheckbox.addActionListener(e -> adjustXPBonus(uiCheckbox.isSelected(), bonus.value));
uiCheckbox.addActionListener(e -> adjustXPBonus(uiCheckbox.isSelected(), bonus.getValue()));
uiCheckbox.setBackground(ColorScheme.MEDIUM_GRAY_COLOR);
uiOption.add(uiLabel, BorderLayout.WEST);
@@ -205,7 +205,7 @@ class SkillCalculator extends JPanel
uiActionSlots.clear();
// Create new components for the action slots.
for (SkillDataEntry action : skillData.actions)
for (SkillDataEntry action : skillData.getActions())
{
UIActionSlot slot = new UIActionSlot(action);
uiActionSlots.add(slot); // Keep our own reference.
@@ -243,13 +243,13 @@ class SkillCalculator extends JPanel
{
int actionCount = 0;
int neededXP = targetXP - currentXP;
double xp = slot.action.xp * xpFactor;
double xp = (slot.action.isIgnoreBonus()) ? slot.action.getXp() : slot.action.getXp() * xpFactor;
if (neededXP > 0)
actionCount = (int) Math.ceil(neededXP / xp);
slot.setText("Lvl. " + slot.action.level + " (" + formatXPActionString(xp, actionCount, "exp) - "));
slot.setAvailable(currentLevel >= slot.action.level);
slot.setText("Lvl. " + slot.action.getLevel() + " (" + formatXPActionString(xp, actionCount, "exp) - "));
slot.setAvailable(currentLevel >= slot.action.getLevel());
slot.value = xp;
}
}

View File

@@ -97,10 +97,10 @@ class UIActionSlot extends JPanel
JLabel uiIcon = new JLabel();
if (action.icon != null)
SkillCalculator.itemManager.getImage(action.icon).addTo(uiIcon);
else if (action.sprite != null)
SkillCalculator.spriteManager.addSpriteTo(uiIcon, action.sprite, 0);
if (action.getIcon() != null)
SkillCalculator.itemManager.getImage(action.getIcon()).addTo(uiIcon);
else if (action.getSprite() != null)
SkillCalculator.spriteManager.addSpriteTo(uiIcon, action.getSprite(), 0);
uiIcon.setMinimumSize(ICON_SIZE);
uiIcon.setMaximumSize(ICON_SIZE);
@@ -111,7 +111,7 @@ class UIActionSlot extends JPanel
uiInfo.setBackground(ColorScheme.DARKER_GRAY_COLOR);
uiInfo.setBorder(new EmptyBorder(0, 5, 0, 0));
JShadowedLabel uiLabelName = new JShadowedLabel(action.name);
JShadowedLabel uiLabelName = new JShadowedLabel(action.getName());
uiLabelName.setForeground(Color.WHITE);
uiLabelActions = new JShadowedLabel("Unknown");

View File

@@ -24,8 +24,11 @@
*/
package net.runelite.client.plugins.skillcalculator.beans;
import lombok.Getter;
@Getter
public class SkillData
{
public SkillDataEntry[] actions;
public SkillDataBonus[] bonuses;
private SkillDataEntry[] actions;
private SkillDataBonus[] bonuses;
}

View File

@@ -24,8 +24,11 @@
*/
package net.runelite.client.plugins.skillcalculator.beans;
import lombok.Getter;
@Getter
public class SkillDataBonus
{
public String name;
public float value;
private String name;
private float value;
}

View File

@@ -24,11 +24,15 @@
*/
package net.runelite.client.plugins.skillcalculator.beans;
import lombok.Getter;
@Getter
public class SkillDataEntry
{
public String name;
public int level;
public double xp;
public Integer icon;
public Integer sprite;
private String name;
private int level;
private double xp;
private Integer icon;
private Integer sprite;
private boolean ignoreBonus;
}

View File

@@ -24,29 +24,221 @@
"name": "Cabbages",
"xp": 10
},
{
"level": 9,
"icon": 249,
"name": "Guam Leaf",
"xp": 11
},
{
"level": 12,
"icon": 1982,
"name": "Tomatoes",
"xp": 12.5
},
{
"level": 14,
"icon": 251,
"name": "Marrentill",
"xp": 13.5
},
{
"level": 15,
"icon": 1521,
"name": "Oak Tree",
"xp": 481.3
},
{
"level": 19,
"icon": 253,
"name": "Tarromin",
"xp": 16
},
{
"level": 20,
"icon": 5986,
"name": "Sweetcorn",
"xp": 17
},
{
"level": 26,
"icon": 255,
"name": "Harralander",
"xp": 21.5
},
{
"level": 26,
"icon": 225,
"name": "Limpwurt Plant",
"xp": 40
},
{
"level": 27,
"icon": 1955,
"name": "Apple Tree",
"xp": 1221.5
},
{
"level": 29,
"icon": 3261,
"name": "Goutweed",
"xp": 105
},
{
"level": 30,
"icon": 1519,
"name": "Willow Tree",
"xp": 1481.5
},
{
"level": 31,
"icon": 5504,
"name": "Strawberries",
"xp": 26
},
{
"level": 32,
"icon": 257,
"name": "Ranarr Weed",
"xp": 27
},
{
"level": 33,
"icon": 1963,
"name": "Banana Tree",
"xp": 1778.5
},
{
"level": 35,
"icon": 6333,
"name": "Teak Tree",
"xp": 7315
},
{
"level": 38,
"icon": 2998,
"name": "Toadflax",
"xp": 34
},
{
"level": 39,
"icon": 2108,
"name": "Orange Tree",
"xp": 2505.7
},
{
"level": 42,
"icon": 5970,
"name": "Curry Tree",
"xp": 2946.9
},
{
"level": 44,
"icon": 259,
"name": "Irit Leaf",
"xp": 43
},
{
"level": 45,
"icon": 1517,
"name": "Maple Tree",
"xp": 3448.4
},
{
"level": 47,
"icon": 5982,
"name": "Watermelons",
"xp": 49
},
{
"level": 50,
"icon": 261,
"name": "Avantoe",
"xp": 54.5
},
{
"level": 51,
"icon": 2114,
"name": "Pineapple Plant",
"xp": 4662.7
},
{
"level": 55,
"icon": 6332,
"name": "Mahogany Tree",
"xp": 15783
},
{
"level": 56,
"icon": 263,
"name": "Kwuarm",
"xp": 69
},
{
"level": 57,
"icon": 5972,
"name": "Papaya Tree",
"xp": 6218.4
},
{
"level": 60,
"icon": 1515,
"name": "Yew Tree",
"xp": 7150.9
},
{
"level": 62,
"icon": 3000,
"name": "Snapdragon",
"xp": 87.5
},
{
"level": 67,
"icon": 265,
"name": "Cadantine",
"xp": 106.5
},
{
"level": 68,
"icon": 5974,
"name": "Palm Tree",
"xp": 10260.6
},
{
"level": 72,
"icon": 5980,
"name": "Calquat Tree",
"xp": 12225.5
},
{
"level": 73,
"icon": 2481,
"name": "Lantadyme",
"xp": 134.5
},
{
"level": 75,
"icon": 1513,
"name": "Magic Tree",
"xp": 13913.8
},
{
"level": 79,
"icon": 267,
"name": "Dwarf Weed",
"xp": 170.5
},
{
"level": 83,
"icon": 6063,
"name": "Spirit Tree",
"xp": 19501.3
},
{
"level": 85,
"icon": 269,
"name": "Torstol",
"xp": 199.5
}
]
}

View File

@@ -18,6 +18,12 @@
"name": "Raw Sardine",
"xp": 20
},
{
"level": 5,
"icon": 3150,
"name": "Raw Karambwanji",
"xp": 5
},
{
"level": 10,
"icon": 345,
@@ -144,6 +150,12 @@
"name": "Raw Sea Turtle",
"xp": 38
},
{
"level": 80,
"icon": 21293,
"name": "Infernal Eel",
"xp": 95
},
{
"level": 81,
"icon": 389,
@@ -156,11 +168,23 @@
"name": "Raw Anglerfish",
"xp": 120
},
{
"level": 82,
"icon": 21356,
"name": "Minnow",
"xp": 26.5
},
{
"level": 85,
"icon": 11934,
"name": "Raw Dark Crab",
"xp": 130
},
{
"level": 87,
"icon": 13339,
"name": "Sacred Eel",
"xp": 105
}
]
}

View File

@@ -293,6 +293,18 @@
"icon": 12915,
"name": "Anti-venom+(3)",
"xp": 125
},
{
"level": 98,
"icon": 21981,
"name": "Extended Super Antifire (3)",
"xp": 120
},
{
"level": 98,
"icon": 21978,
"name": "Extended Super Antifire (4)",
"xp": 160
}
]
}

View File

@@ -24,6 +24,12 @@
"name": "Golden Warbler",
"xp": 47
},
{
"level": 5,
"icon": 21512,
"name": "Regular Bird House",
"xp": 280
},
{
"level": 7,
"icon": 9955,
@@ -48,24 +54,48 @@
"name": "Desert Devil",
"xp": 66
},
{
"level": 14,
"icon": 21515,
"name": "Oak Bird House",
"xp": 420
},
{
"level": 15,
"icon": 9970,
"name": "Ruby Harvest",
"xp": 24
},
{
"level": 17,
"icon": 11238,
"name": "Baby Impling",
"xp": 18
},
{
"level": 19,
"icon": 9969,
"name": "Tropical Wagtail",
"xp": 95
},
{
"level": 22,
"icon": 11240,
"name": "Young Impling",
"xp": 20
},
{
"level": 23,
"icon": 9953,
"name": "Wild Kebbit",
"xp": 128
},
{
"level": 24,
"icon": 21518,
"name": "Willow Bird House",
"xp": 560
},
{
"level": 25,
"icon": 9971,
@@ -84,6 +114,12 @@
"name": "White Rabbit",
"xp": 144
},
{
"level": 28,
"icon": 11242,
"name": "Gourmet Impling",
"xp": 22
},
{
"level": 29,
"icon": 10149,
@@ -102,12 +138,24 @@
"name": "Barb-tailed Kebbit",
"xp": 168
},
{
"level": 34,
"icon": 21521,
"name": "Teak Bird House",
"xp": 700
},
{
"level": 35,
"icon": 9972,
"name": "Snowy Knight",
"xp": 44
},
{
"level": 36,
"icon": 11244,
"name": "Earth Impling",
"xp": 25
},
{
"level": 37,
"icon": 9957,
@@ -120,12 +168,24 @@
"name": "Horned Graahk",
"xp": 240
},
{
"level": 42,
"icon": 11246,
"name": "Essence Impling",
"xp": 27
},
{
"level": 43,
"icon": 9960,
"name": "Spotted Kebbit",
"xp": 104
},
{
"level": 44,
"icon": 22192,
"name": "Maple Bird House",
"xp": 820
},
{
"level": 45,
"icon": 9973,
@@ -144,6 +204,18 @@
"name": "Razor-backed Kebbit",
"xp": 348
},
{
"level": 49,
"icon": 22195,
"name": "Mahogany Bird House",
"xp": 960
},
{
"level": 50,
"icon": 11248,
"name": "Eclectic Impling",
"xp": 32
},
{
"level": 51,
"icon": 9959,
@@ -168,12 +240,24 @@
"name": "Dark Kebbit",
"xp": 132
},
{
"level": 58,
"icon": 11250,
"name": "Nature Impling",
"xp": 34
},
{
"level": 59,
"icon": 10147,
"name": "Red Salamander",
"xp": 272
},
{
"level": 59,
"icon": 22198,
"name": "Yew Bird House",
"xp": 1020
},
{
"level": 60,
"icon": 19556,
@@ -186,6 +270,18 @@
"name": "Carnivorous Chinchompa",
"xp": 265
},
{
"level": 65,
"icon": 11252,
"name": "Magpie Impling",
"xp": 44
},
{
"level": 65,
"icon": 11252,
"name": "Magpie Impling (Gielinor)",
"xp": 216
},
{
"level": 67,
"icon": 10148,
@@ -203,6 +299,48 @@
"icon": 5091,
"name": "Black Chinchompa",
"xp": 315
},
{
"level": 74,
"icon": 22201,
"name": "Magic Bird House",
"xp": 1140
},
{
"level": 74,
"icon": 11254,
"name": "Ninja Impling",
"xp": 52
},
{
"level": 74,
"icon": 11254,
"name": "Ninja Impling (Gielinor)",
"xp": 240
},
{
"level": 83,
"icon": 11256,
"name": "Dragon Impling",
"xp": 65
},
{
"level": 83,
"icon": 11256,
"name": "Dragon Impling (Gielinor)",
"xp": 300
},
{
"level": 89,
"icon": 22204,
"name": "Redwood Bird House",
"xp": 1200
},
{
"level": 89,
"icon": 19732,
"name": "Lucky Impling",
"xp": 380
}
]
}

View File

@@ -1,12 +1,12 @@
{
"bonuses": [
{
"name": "Lit Gilded Altar (+350%)",
"value": 3.5
"name": "Lit Gilded Altar (350%)",
"value": 2.5
},
{
"name": "Ectofuntus (+400%)",
"value": 4
"name": "Ectofuntus (400%)",
"value": 3
}
],
"actions": [
@@ -20,133 +20,155 @@
"level": 1,
"icon": 13480,
"name": "Ensouled Elf Head",
"xp": 754
"xp": 754,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13456,
"name": "Ensouled Minotaur Head",
"xp": 364
"xp": 364,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13459,
"name": "Ensouled Scorpion Head",
"xp": 454
"xp": 454,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13462,
"name": "Ensouled Bear Head",
"xp": 480
"xp": 480,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13465,
"name": "Ensouled Unicorn Head",
"xp": 494
"xp": 494,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13468,
"name": "Ensouled Dog Head",
"xp": 520
"xp": 520,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13471,
"name": "Ensouled Chaos Druid Head",
"xp": 584
"xp": 584,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13474,
"name": "Ensouled Giant Head",
"xp": 650
"xp": 650,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13477,
"name": "Ensouled Ogre Head",
"xp": 716
"xp": 716,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13483,
"name": "Ensouled Troll Head",
"xp": 780
"xp": 780,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13450,
"name": "Ensouled Monkey Head",
"xp": 182
"xp": 182,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13486,
"name": "Ensouled Horror Head",
"xp": 832
"xp": 832,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13489,
"name": "Ensouled Kalphite Head",
"xp": 884
"xp": 884,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13492,
"name": "Ensouled Dagannoth Head",
"xp": 936
"xp": 936,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13495,
"name": "Ensouled Bloodveld Head",
"xp": 1040
"xp": 1040,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13498,
"name": "Ensouled Tzhaar Head",
"xp": 1104
"xp": 1104,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13501,
"name": "Ensouled Demon Head",
"xp": 1170
"xp": 1170,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13504,
"name": "Ensouled Aviansie Head",
"xp": 1234
"xp": 1234,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13507,
"name": "Ensouled Abyssal Head",
"xp": 1300
"xp": 1300,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13510,
"name": "Ensouled Dragon Head",
"xp": 1560
"xp": 1560,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13453,
"name": "Ensouled Imp Head",
"xp": 286
"xp": 286,
"ignoreBonus": true
},
{
"level": 1,
"icon": 13447,
"name": "Ensouled Goblin Head",
"xp": 130
"xp": 130,
"ignoreBonus": true
},
{
"level": 1,
@@ -158,7 +180,8 @@
"level": 1,
"icon": 3396,
"name": "Loar Remains",
"xp": 33
"xp": 33,
"ignoreBonus": true
},
{
"level": 1,
@@ -212,7 +235,8 @@
"level": 1,
"icon": 3398,
"name": "Phrin Remains",
"xp": 46.5
"xp": 46.5,
"ignoreBonus": true
},
{
"level": 1,
@@ -224,7 +248,8 @@
"level": 1,
"icon": 3400,
"name": "Riyl Remains",
"xp": 59.5
"xp": 59.5,
"ignoreBonus": true
},
{
"level": 1,
@@ -242,7 +267,8 @@
"level": 1,
"icon": 3402,
"name": "Asyn Remains",
"xp": 82.5
"xp": 82.5,
"ignoreBonus": true
},
{
"level": 1,
@@ -254,7 +280,8 @@
"level": 1,
"icon": 3404,
"name": "Fiyr Remains",
"xp": 84
"xp": 84,
"ignoreBonus": true
},
{
"level": 1,