|
|
|
@ -12,249 +12,110 @@ int PANEL_WIDTH=620; |
|
|
|
|
int PANEL_HEIGHT=240; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum Image{ |
|
|
|
|
PRODUCTION, |
|
|
|
|
COLLECTIBLE, |
|
|
|
|
COLLECTIBLE2 |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum Grade{ |
|
|
|
|
GRADE_NONE, |
|
|
|
|
GRADEL, |
|
|
|
|
GRADEM, |
|
|
|
|
GRADEH, |
|
|
|
|
GRADE1, |
|
|
|
|
GRADE2, |
|
|
|
|
GRADE3, |
|
|
|
|
GRADE4, |
|
|
|
|
GRADE5, |
|
|
|
|
}; |
|
|
|
|
class FiestaCraftingCalculator : public olc::PixelGameEngine |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
struct ItemData{ |
|
|
|
|
std::string name; |
|
|
|
|
Pixel borderCol; |
|
|
|
|
vi2d tilesheetPos={0,0}; |
|
|
|
|
Image img=COLLECTIBLE; |
|
|
|
|
Grade grade=GRADE_NONE; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
std::map<std::string,ItemData>IDToName={ |
|
|
|
|
{"El1",{"Elrue [1]",{0,0,0},{6,2},PRODUCTION,GRADE1}}, |
|
|
|
|
{"El2",{"Elrue [2]",{0,0,0},{6,2},PRODUCTION,GRADE2}}, |
|
|
|
|
{"El3",{"Elrue [3]",{0,0,0},{6,2},PRODUCTION,GRADE3}}, |
|
|
|
|
{"El4",{"Elrue [4]",{0,0,0},{6,2},PRODUCTION,GRADE4}}, |
|
|
|
|
{"El5",{"Elrue [5]",{0,0,0},{6,2},PRODUCTION,GRADE5}}, |
|
|
|
|
{"Lix1",{"Lix [1]",{0,0,0},{1,3},PRODUCTION,GRADE1}}, |
|
|
|
|
{"Lix2",{"Lix [2]",{0,0,0},{1,3},PRODUCTION,GRADE2}}, |
|
|
|
|
{"Lix3",{"Lix [3]",{0,0,0},{1,3},PRODUCTION,GRADE3}}, |
|
|
|
|
{"Lix4",{"Lix [4]",{0,0,0},{1,3},PRODUCTION,GRADE4}}, |
|
|
|
|
{"Lix5",{"Lix [5]",{0,0,0},{1,3},PRODUCTION,GRADE5}}, |
|
|
|
|
{"Xir1",{"Xir [1]",{0,0,0},{4,3},PRODUCTION,GRADE1}}, |
|
|
|
|
{"Xir2",{"Xir [2]",{0,0,0},{4,3},PRODUCTION,GRADE2}}, |
|
|
|
|
{"Xir3",{"Xir [3]",{0,0,0},{4,3},PRODUCTION,GRADE3}}, |
|
|
|
|
{"Xir4",{"Xir [4]",{0,0,0},{4,3},PRODUCTION,GRADE4}}, |
|
|
|
|
{"Xir5",{"Xir [5]",{0,0,0},{4,3},PRODUCTION,GRADE5}}, |
|
|
|
|
{"BestLowHpPotion",{"HP Potion (Tier 1)",{0,0,0},{0,0},PRODUCTION}}, |
|
|
|
|
{"LowHpPotion",{"HP Potion (Tier 2)",{0,0,0},{0,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorHpPotion",{"HP Potion (Tier 3)",{0,0,0},{1,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighHpPotion",{"HP Potion (Tier 4)",{0,0,0},{1,0},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighHpPotion",{"HP Potion (Tier 5)",{0,0,0},{2,0},PRODUCTION}}, |
|
|
|
|
{"BestLowSpPotion",{"SP Potion (Tier 1)",{0,0,0},{3,0},PRODUCTION}}, |
|
|
|
|
{"LowSpPotion",{"SP Potion (Tier 2)",{0,0,0},{3,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorSpPotion",{"SP Potion (Tier 3)",{0,0,0},{4,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighSpPotion",{"SP Potion (Tier 4)",{0,0,0},{4,0},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighSpPotion",{"SP Potion (Tier 5)",{0,0,0},{5,0},PRODUCTION}}, |
|
|
|
|
{"BestLowConHPPotion",{"HP Regeneration Potion (Tier 1)",{0,0,0},{0,0},PRODUCTION}}, |
|
|
|
|
{"LowConHPPotion",{"HP Regeneration Potion (Tier 2)",{0,0,0},{0,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorConHPPotion",{"HP Regeneration Potion (Tier 3)",{0,0,0},{1,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighConHPPotion",{"HP Regeneration Potion (Tier 4)",{0,0,0},{1,0},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighConHPPotion",{"HP Regeneration Potion (Tier 5)",{0,0,0},{2,0},PRODUCTION}}, |
|
|
|
|
{"BestLowConSPPotion",{"SP Regeneration Potion (Tier 1)",{0,0,0},{3,0},PRODUCTION}}, |
|
|
|
|
{"LowConSPPotion",{"SP Regeneration Potion (Tier 2)",{0,0,0},{3,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorConSPPotion",{"SP Regeneration Potion (Tier 3)",{0,0,0},{4,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighConSPPotion",{"SP Regeneration Potion (Tier 4)",{0,0,0},{4,0},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighConSPPotion",{"SP Regeneration Potion (Tier 5)",{0,0,0},{5,0},PRODUCTION}}, |
|
|
|
|
{"BestLowTHScroll",{"Aim(Tier 1)",{0,0,0},{4,1},PRODUCTION}}, |
|
|
|
|
{"LowTHScroll",{"Aim(Tier 2)",{0,0,0},{4,1},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorTHScroll",{"Aim(Tier 3)",{0,0,0},{4,1},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighTHScroll",{"Aim(Tier 4)",{0,0,0},{4,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighTHScroll",{"Aim(Tier 5)",{0,0,0},{4,1},PRODUCTION}}, |
|
|
|
|
{"BestLowTBScroll",{"Nature's Agility (Tier 1)",{0,0,0},{5,1},PRODUCTION}}, |
|
|
|
|
{"LowTBScroll",{"Nature's Agility (Tier 2)",{0,0,0},{5,1},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorTBScroll",{"Nature's Agility (Tier 3)",{0,0,0},{5,1},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighTBScroll",{"Nature's Agility (Tier 4)",{0,0,0},{5,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighTBScroll",{"Nature's Agility (Tier 5)",{0,0,0},{5,1},PRODUCTION}}, |
|
|
|
|
{"BestLowMRScroll",{"Magical Defense (Tier 1)",{0,0,0},{6,1},PRODUCTION}}, |
|
|
|
|
{"LowMRScroll",{"Magical Defense (Tier 2)",{0,0,0},{6,1},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorMRScroll",{"Magical Defense (Tier 3)",{0,0,0},{6,1},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighMRScroll",{"Magical Defense (Tier 4)",{0,0,0},{6,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighMRScroll",{"Magical Defense (Tier 5)",{0,0,0},{6,1},PRODUCTION}}, |
|
|
|
|
{"BestLowACScroll",{"Shield Increase (Tier 1)",{0,0,0},{6,1},PRODUCTION}}, |
|
|
|
|
{"LowACScroll",{"Shield Increase (Tier 2)",{0,0,0},{6,1},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorACScroll",{"Shield Increase (Tier 3)",{0,0,0},{6,1},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighACScroll",{"Shield Increase (Tier 4)",{0,0,0},{6,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighACScroll",{"Shield Increase (Tier 5)",{0,0,0},{6,1},PRODUCTION}}, |
|
|
|
|
{"BestLowMaxHPScroll",{"Vitality (Tier 1)",{0,0,0},{0,2},PRODUCTION}}, |
|
|
|
|
{"LowMaxHPScroll",{"Vitality (Tier 2)",{0,0,0},{0,2},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorMaxHPScroll",{"Vitality (Tier 3)",{0,0,0},{0,2},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighMaxHPScroll",{"Vitality (Tier 4)",{0,0,0},{0,2},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighMaxHPScroll",{"Vitality (Tier 5)",{0,0,0},{0,2},PRODUCTION}}, |
|
|
|
|
{"BestLowMaxSPScroll",{"Mentality (Tier 1)",{0,0,0},{1,2},PRODUCTION}}, |
|
|
|
|
{"LowMaxSPScroll",{"Mentality (Tier 2)",{0,0,0},{1,2},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorMaxSPScroll",{"Mentality (Tier 3)",{0,0,0},{1,2},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighMaxSPScroll",{"Mentality (Tier 4)",{0,0,0},{1,2},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighMaxSPScroll",{"Mentality (Tier 5)",{0,0,0},{1,2},PRODUCTION}}, |
|
|
|
|
{"NorMSScroll",{"Speed Increase (Tier 3)",{0,0,0},{1,2},PRODUCTION,GRADEM}}, |
|
|
|
|
{"LowMSScroll",{"Speed Increase (Tier 2)",{0,0,0},{1,2},PRODUCTION,GRADEL}}, |
|
|
|
|
{"HighMSScroll",{"Speed Increase (Tier 4)",{0,0,0},{1,2},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestMSScroll",{"Speed Increase (Tier 5)",{0,0,0},{1,2},PRODUCTION}}, |
|
|
|
|
{"BestLowMSScroll",{"Speed Increase (Tier 1)",{0,0,0},{1,2},PRODUCTION}}, |
|
|
|
|
{"LowPsnResiPotion",{"Antitoxin (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorPsnResiPotion",{"Antitoxin (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighPsnResiPotion",{"Antitoxin (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"LowDssResiPotion",{"Antibiotic (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorDssResiPotion",{"Antibiotic (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighDssResiPotion",{"Antibiotic (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"LowCurResiPotion",{"Bless (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorCurResiPotion",{"Bless (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighCurResiPotion",{"Bless (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"LowPsnCurPotion",{"Antidote (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorPsnCurPotion",{"Antidote (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighPsnCurPotion",{"Antidote (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"LowDssCurPotion",{"Cure (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorDssCurPotion",{"Cure (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighDssCurPotion",{"Cure (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestLowCurScroll",{"Divine Magic (Tier 1)",{0,0,0},{2,2},PRODUCTION}}, |
|
|
|
|
{"LowCurScroll",{"Divine Magic (Tier 2)",{0,0,0},{2,2},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorCurScroll",{"Divine Magic (Tier 3)",{0,0,0},{2,2},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighCurScroll",{"Divine Magic (Tier 4)",{0,0,0},{2,2},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighCurScroll",{"Divine Magic (Tier 5)",{0,0,0},{2,2},PRODUCTION}}, |
|
|
|
|
{"NorBeastLeather",{"Beast Leather (Normal Quality)",{255,255,0},{7,1}}}, |
|
|
|
|
{"HighBeastLeather",{"Beast Leather (High Quality)",{0,255,0},{0,2}}}, |
|
|
|
|
{"BeastHead",{"Beast Head",{0,255,255},{1,2}}}, |
|
|
|
|
{"NorBeastTooth",{"Beast Dogtooth (Normal Quality)",{255,255,0},{5,1}}}, |
|
|
|
|
{"HighBeastTooth",{"Beast Dogtooth (High Quality)",{0,255,0},{6,1}}}, |
|
|
|
|
{"NorBrokenBone",{"Bone (Normal Quality)",{255,255,0},{4,0}}}, |
|
|
|
|
{"HighBrokenBone",{"Bone (High Quality)",{0,255,0},{4,0}}}, |
|
|
|
|
{"BestBrokenBone",{"Bone (Highest Quality)",{0,255,255},{4,0}}}, |
|
|
|
|
{"NorCleanWater",{"Spirit's Nectar (Normal Quality)",{255,255,0},{7,5}}}, |
|
|
|
|
{"HighCleanWater",{"Spirit's Nectar (High Quality)",{0,255,0},{0,6}}}, |
|
|
|
|
{"BestCleanWater",{"Spirit's Nectar (Highest Quality)",{0,255,255},{0,6}}}, |
|
|
|
|
{"IronBadge",{"Iron Badge",{255,255,0},{2,4}}}, |
|
|
|
|
{"NorCopperOre",{"Copper Ore (Normal Quality)",{255,255,0},{4,4}}}, |
|
|
|
|
{"HighCopperOre",{"Copper Ore (High Quality)",{0,255,0},{5,4}}}, |
|
|
|
|
{"NorGemDust",{"Gem Dust (Normal Quality)",{255,255,0},{6,0}}}, |
|
|
|
|
{"HighGemDust",{"Gem Dust (High Quality)",{0,255,0},{6,0}}}, |
|
|
|
|
{"BestGemDust",{"Gem Dust (Highest Quality)",{0,255,255},{6,0}}}, |
|
|
|
|
{"Violet",{"Vilolet",{0,0,0},{1,1},COLLECTIBLE2}}, |
|
|
|
|
{"Ramsear",{"Ramsear",{0,0,0},{1,1},COLLECTIBLE2}}, |
|
|
|
|
{"Salvia",{"Eucalyptus",{255,255,255},{5,7}}}, |
|
|
|
|
{"LowGoldOre",{"Gold Ore (Low Quality)",{255,255,255},{1,6}}}, |
|
|
|
|
{"NorGoldOre",{"Gold Ore (Normal Quality)",{255,255,0},{2,6}}}, |
|
|
|
|
{"HighGoldOre",{"Gold Ore (High Quality)",{0,255,0},{3,6}}}, |
|
|
|
|
{"NorKylinLeather",{"Summoned Beast Leather (Normal Quality)",{255,255,0},{3,2}}}, |
|
|
|
|
{"HighKylinLeather",{"Summoned Beast Leather (High Quality)",{0,255,0},{4,2}}}, |
|
|
|
|
{"KylinTooth",{"Summoned Beast's Tooth",{0,255,0},{7,2}}}, |
|
|
|
|
{"MermaidScale",{"Mermaid's Scale",{0,0,0},{2,3}}}, |
|
|
|
|
{"KylinFighterTail",{"Summoned Beast Fighter's Tail",{255,255,0},{6,2}}}, |
|
|
|
|
{"NorMagicCrystal",{"Magic Crystal (Normal Quality)",{255,255,0},{4,5}}}, |
|
|
|
|
{"HighMagicCrystal",{"Magic Crystal (High Quality)",{0,255,0},{5,5}}}, |
|
|
|
|
{"BestMagicCrystal",{"Magic Crystal (Highest Quality)",{0,255,255},{5,5}}}, |
|
|
|
|
{"NorMeat",{"Meat (Normal Quality)",{255,255,0},{1,0}}}, |
|
|
|
|
{"HighMeat",{"Meat (High Quality)",{0,255,0},{1,0}}}, |
|
|
|
|
{"BestMeat",{"Meat (Highest Quality)",{0,255,255},{1,0}}}, |
|
|
|
|
{"NorMushrooms",{"Mushroom (Normal Quality)",{255,255,0},{4,3}}}, |
|
|
|
|
{"HighMushrooms",{"Mushroom (High Quality)",{0,255,0},{4,3}}}, |
|
|
|
|
{"BestMushrooms",{"Mushroom (Highest Quality)",{0,255,255},{4,3}}}, |
|
|
|
|
{"NorPledge",{"Sign (Normal Quality)",{255,255,0},{3,0}}}, |
|
|
|
|
{"HighPledge",{"Sign (High Quality)",{0,255,0},{3,0}}}, |
|
|
|
|
{"BestPledge",{"Sign (Highest Quality)",{0,255,255},{3,0}}}, |
|
|
|
|
{"Rosemary",{"Rosemary",{0,255,0},{4,7}}}, |
|
|
|
|
{"Basil",{"Basil",{0,255,255},{5,7}}}, |
|
|
|
|
{"Marigold",{"Marigold",{0,0,255},{6,7}}}, |
|
|
|
|
{"LowSilverOre",{"Silver Ore (Low Quality)",{255,255,255},{6,4}}}, |
|
|
|
|
{"NorSilverOre",{"Silver Ore (Normal Quality)",{255,255,0},{7,4}}}, |
|
|
|
|
{"HighSilverOre",{"Silver Ore (High Quality)",{0,255,0},{0,5}}}, |
|
|
|
|
{"NorSkin",{"Leather (Normal Quality)",{255,255,0},{5,0}}}, |
|
|
|
|
{"HighSkin",{"Leather (High Quality)",{0,255,0},{5,0}}}, |
|
|
|
|
{"BestSkin",{"Leather (Highest Quality)",{0,255,255},{5,0}}}, |
|
|
|
|
{"NorSoulDust",{"Soul Dust (Normal Quality)",{255,255,0},{2,1}}}, |
|
|
|
|
{"HighSoulDust",{"Soul Dust (High Quality)",{0,255,0},{2,1}}}, |
|
|
|
|
{"BestSoulDust",{"Soul Dust (Highest Quality)",{0,255,255},{2,1}}}, |
|
|
|
|
{"NorSpiritDust",{"Spirit Dust (Normal Quality)",{255,255,0},{0,0}}}, |
|
|
|
|
{"HighSpiritDust",{"Spirit Dust (High Quality)",{0,255,0},{0,0}}}, |
|
|
|
|
{"BestSpiritDust",{"Spirit Dust (Highest Quality)",{0,255,255},{0,0}}}, |
|
|
|
|
{"NorToadStool",{"Toadstool (Normal Quality)",{255,255,0},{3,3}}}, |
|
|
|
|
{"HighToadStool",{"Toadstool (High Quality)",{0,255,0},{3,3}}}, |
|
|
|
|
{"BestToadStool",{"Toadstool (Highest Quality)",{0,255,255},{3,3}}}, |
|
|
|
|
{"Ruby",{"Ruby",{255,255,0},{2,5}}}, |
|
|
|
|
{"Sapphire",{"Sapphire",{0,255,0},{4,6}}}, |
|
|
|
|
{"NorWoodSab",{"Sap (Normal Quality)",{255,255,0},{6,6}}}, |
|
|
|
|
{"HighWoodSab",{"Sap (High Quality)",{0,255,0},{7,6}}}, |
|
|
|
|
{"BestWoodSab",{"Sap (Highest Quality)",{0,255,255},{0,7}}}, |
|
|
|
|
{"LowBeastLeather",{"Beast Leather (Low Quality)",{255,255,255},{7,1}}}, |
|
|
|
|
{"LowBeastTooth",{"Beast Dogtooth (Low Quality)",{255,255,255},{4,1}}}, |
|
|
|
|
{"LowBrokenBone",{"Bone (Low Quality)",{255,255,255},{4,0}}}, |
|
|
|
|
{"LowCleanWater",{"Spirit's Nectar (Low Quality)",{255,255,255},{6,5}}}, |
|
|
|
|
{"CommanderBadge",{"Master Commander's Badge",{255,255,255},{1,4}}}, |
|
|
|
|
{"LowCopperOre",{"Copper Ore (Low Quality)",{255,255,255},{3,4}}}, |
|
|
|
|
{"LowGemDust",{"Gem Dust (Low Quality)",{255,255,255},{6,0}}}, |
|
|
|
|
{"Geranium",{"Geranium",{0,0,0},{1,1},COLLECTIBLE2}}, |
|
|
|
|
{"LowKylinLeather",{"Summoned Beast Leather (Low Quality)",{255,255,255},{2,2}}}, |
|
|
|
|
{"KylinTail",{"Summoned Beast's Tail",{255,255,255},{5,2}}}, |
|
|
|
|
{"LowMagicCrystal",{"Magic Crystal (Low Quality)",{255,255,255},{3,5}}}, |
|
|
|
|
{"LowMeat",{"Meat (Low Quality)",{255,255,255},{1,0}}}, |
|
|
|
|
{"LowMushrooms",{"Mushroom (Low Quality)",{255,255,255},{4,3}}}, |
|
|
|
|
{"LowPledge",{"Sign (Low Quality)",{255,255,255},{3,0}}}, |
|
|
|
|
{"Sage",{"Sage",{255,255,0},{3,7}}}, |
|
|
|
|
{"LowSkin",{"Leather (Low Quality)",{255,255,255},{5,0}}}, |
|
|
|
|
{"LowSoulDust",{"Soul Dust (Low Quality)",{255,255,255},{2,1}}}, |
|
|
|
|
{"LowSpiritDust",{"Spirit Dust (Low Quality)",{255,255,255},{0,0}}}, |
|
|
|
|
{"LowToadStool",{"Toadstool (Low Quality)",{255,255,255},{3,3}}}, |
|
|
|
|
{"Topaz",{"Topaz",{255,255,255},{1,5}}}, |
|
|
|
|
{"LowWoodSab",{"Sap (Low Quality)",{255,255,255},{5,6}}}, |
|
|
|
|
{"LowSlimeJelly",{"Slime Jelly (Low Quality)",{255,255,255},{0,3}}}, |
|
|
|
|
{"HighSlimeJelly",{"Slime Jelly (High Quality)",{255,255,0},{1,3}}}, |
|
|
|
|
{"Converter1",{"Alchemy Stone[1]",{255,255,255},{4,2},PRODUCTION}}, |
|
|
|
|
{"Converter3",{"Alchemy Stone[3]",{0,255,0},{4,2},PRODUCTION}}, |
|
|
|
|
{"Converter5",{"Alchemy Stone[5]",{0,255,255},{4,2},PRODUCTION}}, |
|
|
|
|
{"Converter2",{"Alchemy Stone[2]",{255,255,0},{4,2},PRODUCTION}}, |
|
|
|
|
{"Converter4",{"Alchemy Stone[4]",{0,255,255},{4,2},PRODUCTION}}, |
|
|
|
|
}; |
|
|
|
|
enum Image{ |
|
|
|
|
PRODUCTION, |
|
|
|
|
COLLECTIBLE, |
|
|
|
|
COLLECTIBLE2 |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class Recipe{ |
|
|
|
|
public: |
|
|
|
|
std::string ProduceIndex; |
|
|
|
|
std::string DisplayName; |
|
|
|
|
std::string Product; |
|
|
|
|
int amt; |
|
|
|
|
std::vector<std::pair<std::string,int>>requiredItems; |
|
|
|
|
int expGained; |
|
|
|
|
int requiredExp; |
|
|
|
|
Recipe(std::vector<std::string>&data){ |
|
|
|
|
ProduceIndex=data[1]; |
|
|
|
|
DisplayName=data[2]; |
|
|
|
|
Product=data[3]; |
|
|
|
|
amt=stoi(data[4]); |
|
|
|
|
for(int i=5;i<=20;i+=2){ |
|
|
|
|
if(data[i].size()>1){ |
|
|
|
|
requiredItems.push_back({data[i],stoi(data[i+1])}); |
|
|
|
|
enum Grade{ |
|
|
|
|
GRADE_NONE, |
|
|
|
|
GRADEL, |
|
|
|
|
GRADEM, |
|
|
|
|
GRADEH, |
|
|
|
|
GRADE1, |
|
|
|
|
GRADE2, |
|
|
|
|
GRADE3, |
|
|
|
|
GRADE4, |
|
|
|
|
GRADE5, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
struct ItemData{ |
|
|
|
|
std::string name; |
|
|
|
|
Pixel borderCol; |
|
|
|
|
vi2d tilesheetPos={0,0}; |
|
|
|
|
Image img=COLLECTIBLE; |
|
|
|
|
Grade grade=GRADE_NONE; |
|
|
|
|
void DrawIcon(PixelGameEngine*pge,vf2d pos){ |
|
|
|
|
Renderable*r=nullptr; |
|
|
|
|
switch(img){ |
|
|
|
|
case PRODUCTION:{ |
|
|
|
|
r=&FiestaCraftingCalculator::ProdIcon; |
|
|
|
|
}break; |
|
|
|
|
case COLLECTIBLE:{ |
|
|
|
|
r=&FiestaCraftingCalculator::CollectibleIcons; |
|
|
|
|
}break; |
|
|
|
|
case COLLECTIBLE2:{ |
|
|
|
|
r=&FiestaCraftingCalculator::CollectibleIcons2; |
|
|
|
|
}break; |
|
|
|
|
} |
|
|
|
|
pge->DrawPartialDecal(pos,{32,32},r->Decal(),tilesheetPos*32,{32,32}); |
|
|
|
|
switch(grade){ |
|
|
|
|
case GRADEL:{ |
|
|
|
|
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{0,0},{32,32}); |
|
|
|
|
}break; |
|
|
|
|
case GRADEM:{ |
|
|
|
|
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{32,0},{32,32}); |
|
|
|
|
}break; |
|
|
|
|
case GRADEH:{ |
|
|
|
|
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{64,0},{32,32}); |
|
|
|
|
}break; |
|
|
|
|
case GRADE1:{ |
|
|
|
|
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{96,0},{32,32}); |
|
|
|
|
}break; |
|
|
|
|
case GRADE2:{ |
|
|
|
|
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{0,32},{32,32}); |
|
|
|
|
}break; |
|
|
|
|
case GRADE3:{ |
|
|
|
|
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{32,32},{32,32}); |
|
|
|
|
}break; |
|
|
|
|
case GRADE4:{ |
|
|
|
|
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{64,32},{32,32}); |
|
|
|
|
}break; |
|
|
|
|
case GRADE5:{ |
|
|
|
|
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{96,32},{32,32}); |
|
|
|
|
}break; |
|
|
|
|
} |
|
|
|
|
pge->DrawRectDecal(pos,{32,32},borderCol); |
|
|
|
|
} |
|
|
|
|
expGained=stoi(data[22]); |
|
|
|
|
requiredExp=stoi(data[24]); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
std::vector<Recipe>PotionProdRecipes; |
|
|
|
|
std::vector<Recipe>StoneProdRecipes; |
|
|
|
|
std::vector<Recipe>ScrollProdRecipes; |
|
|
|
|
std::vector<Recipe>CompRecipes; |
|
|
|
|
std::vector<Recipe>DecompRecipes; |
|
|
|
|
static std::map<std::string,ItemData>IDToName; |
|
|
|
|
|
|
|
|
|
class FiestaCraftingCalculator : public olc::PixelGameEngine |
|
|
|
|
{ |
|
|
|
|
static Renderable ProdIcon,CloseIcon,CloseBackIcon; |
|
|
|
|
class Recipe{ |
|
|
|
|
public: |
|
|
|
|
std::string ProduceIndex; |
|
|
|
|
std::string DisplayName; |
|
|
|
|
std::string Product; |
|
|
|
|
int amt; |
|
|
|
|
std::vector<std::pair<std::string,int>>requiredItems; |
|
|
|
|
int expGained; |
|
|
|
|
int requiredExp; |
|
|
|
|
Recipe(std::vector<std::string>&data){ |
|
|
|
|
ProduceIndex=data[1]; |
|
|
|
|
DisplayName=data[2]; |
|
|
|
|
Product=data[3]; |
|
|
|
|
amt=stoi(data[4]); |
|
|
|
|
for(int i=5;i<=20;i+=2){ |
|
|
|
|
if(data[i].size()>1){ |
|
|
|
|
requiredItems.push_back({data[i],stoi(data[i+1])}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
expGained=stoi(data[22]); |
|
|
|
|
requiredExp=stoi(data[24]); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static std::vector<Recipe>PotionProdRecipes; |
|
|
|
|
static std::vector<Recipe>StoneProdRecipes; |
|
|
|
|
static std::vector<Recipe>ScrollProdRecipes; |
|
|
|
|
static std::vector<Recipe>CompRecipes; |
|
|
|
|
static std::vector<Recipe>DecompRecipes; |
|
|
|
|
class Calculator{ |
|
|
|
|
Manager manager; |
|
|
|
|
vf2d displayPos={10,10}; |
|
|
|
@ -268,6 +129,7 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine |
|
|
|
|
std::string DisplayProdText; |
|
|
|
|
std::string SelectedProdText; |
|
|
|
|
std::vector<std::string> recipeItems; |
|
|
|
|
Recipe*selectedItem; |
|
|
|
|
public: |
|
|
|
|
Calculator(){ |
|
|
|
|
PotionProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{10,10},{40,40},{192,128},{32,32}); |
|
|
|
@ -303,8 +165,9 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine |
|
|
|
|
RecipeList->m_pSlider->fValue=0; |
|
|
|
|
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; |
|
|
|
|
for(Recipe&r:PotionProdRecipes){ |
|
|
|
|
recipeItems.push_back(r.DisplayName); |
|
|
|
|
recipeItems.push_back(IDToName[r.Product].name); |
|
|
|
|
} |
|
|
|
|
selectedItem=&PotionProdRecipes[0]; |
|
|
|
|
} |
|
|
|
|
if(PotionProd->bHovered){ |
|
|
|
|
DisplayProdText="Potion Production"; |
|
|
|
@ -317,8 +180,9 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine |
|
|
|
|
RecipeList->m_pSlider->fValue=0; |
|
|
|
|
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; |
|
|
|
|
for(Recipe&r:StoneProdRecipes){ |
|
|
|
|
recipeItems.push_back(r.DisplayName); |
|
|
|
|
recipeItems.push_back(IDToName[r.Product].name); |
|
|
|
|
} |
|
|
|
|
selectedItem=&StoneProdRecipes[0]; |
|
|
|
|
} |
|
|
|
|
if(StoneProd->bHovered){ |
|
|
|
|
DisplayProdText="Stone Production"; |
|
|
|
@ -331,8 +195,9 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine |
|
|
|
|
RecipeList->m_pSlider->fValue=0; |
|
|
|
|
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; |
|
|
|
|
for(Recipe&r:ScrollProdRecipes){ |
|
|
|
|
recipeItems.push_back(r.DisplayName); |
|
|
|
|
recipeItems.push_back(IDToName[r.Product].name); |
|
|
|
|
} |
|
|
|
|
selectedItem=&ScrollProdRecipes[0]; |
|
|
|
|
} |
|
|
|
|
if(ScrollProd->bHovered){ |
|
|
|
|
DisplayProdText="Scroll Production"; |
|
|
|
@ -345,8 +210,9 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine |
|
|
|
|
RecipeList->m_pSlider->fValue=0; |
|
|
|
|
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; |
|
|
|
|
for(Recipe&r:CompRecipes){ |
|
|
|
|
recipeItems.push_back(r.DisplayName); |
|
|
|
|
recipeItems.push_back(IDToName[r.Product].name); |
|
|
|
|
} |
|
|
|
|
selectedItem=&CompRecipes[0]; |
|
|
|
|
} |
|
|
|
|
if(CompProd->bHovered){ |
|
|
|
|
DisplayProdText="Material Composition"; |
|
|
|
@ -359,15 +225,60 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine |
|
|
|
|
RecipeList->m_pSlider->fValue=0; |
|
|
|
|
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; |
|
|
|
|
for(Recipe&r:DecompRecipes){ |
|
|
|
|
recipeItems.push_back(r.DisplayName); |
|
|
|
|
recipeItems.push_back(IDToName[r.Product].name); |
|
|
|
|
} |
|
|
|
|
selectedItem=&DecompRecipes[0]; |
|
|
|
|
} |
|
|
|
|
if(DecompProd->bHovered){ |
|
|
|
|
DisplayProdText="Material Decomposition"; |
|
|
|
|
} |
|
|
|
|
if(RecipeList->bSelectionChanged){ |
|
|
|
|
if(PotionProd->bChecked){ |
|
|
|
|
selectedItem=&PotionProdRecipes[RecipeList->nSelectedItem]; |
|
|
|
|
} |
|
|
|
|
if(StoneProd->bChecked){ |
|
|
|
|
selectedItem=&StoneProdRecipes[RecipeList->nSelectedItem]; |
|
|
|
|
} |
|
|
|
|
if(ScrollProd->bChecked){ |
|
|
|
|
selectedItem=&ScrollProdRecipes[RecipeList->nSelectedItem]; |
|
|
|
|
} |
|
|
|
|
if(CompProd->bChecked){ |
|
|
|
|
selectedItem=&CompRecipes[RecipeList->nSelectedItem]; |
|
|
|
|
} |
|
|
|
|
if(DecompProd->bChecked){ |
|
|
|
|
selectedItem=&DecompRecipes[RecipeList->nSelectedItem]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
pge->GradientFillRectDecal(displayPos-vf2d{2,2},{float(PANEL_WIDTH),float(PANEL_HEIGHT)},{49, 32, 61,216},{0,0,0,216},{0,0,0,216},{49, 32, 61,216}); |
|
|
|
|
pge->DrawRectDecal(displayPos-vf2d{1,1},{float(PANEL_WIDTH),float(PANEL_HEIGHT)},{131, 90, 161}); |
|
|
|
|
pge->DrawStringPropDecal(displayPos+vf2d{10,10+54},DisplayProdText,WHITE,{2,2}); |
|
|
|
|
if(RecipeList->bVisible){ |
|
|
|
|
ItemData data = IDToName[selectedItem->Product]; |
|
|
|
|
data.DrawIcon(pge,displayPos+vf2d{320,40}); |
|
|
|
|
float stringWidth=pge->GetTextSizeProp(data.name).x*2; |
|
|
|
|
if(stringWidth>PANEL_WIDTH-356){ |
|
|
|
|
float scale=(PANEL_WIDTH-356)/stringWidth; |
|
|
|
|
pge->DrawStringPropDecal(displayPos+vf2d{356,40},data.name,WHITE,{2*scale,2});
|
|
|
|
|
} else { |
|
|
|
|
pge->DrawStringPropDecal(displayPos+vf2d{356,40},data.name,WHITE,{2,2});
|
|
|
|
|
} |
|
|
|
|
pge->DrawStringPropDecal(displayPos+vf2d{360,58},"x "+std::to_string(selectedItem->amt),WHITE,{1.75,1.75}); |
|
|
|
|
pge->DrawStringDecal(displayPos+vf2d{320,80},"Requires:"); |
|
|
|
|
float yOffset=0; |
|
|
|
|
for(std::pair<std::string,int>&item:selectedItem->requiredItems){ |
|
|
|
|
data = IDToName[item.first]; |
|
|
|
|
data.DrawIcon(pge,displayPos+vf2d{320,92+yOffset}); |
|
|
|
|
float stringWidth=pge->GetTextSizeProp(data.name).x*2; |
|
|
|
|
if(stringWidth>PANEL_WIDTH-356){ |
|
|
|
|
float scale=(PANEL_WIDTH-356)/stringWidth; |
|
|
|
|
pge->DrawStringPropDecal(displayPos+vf2d{356,92+yOffset},data.name,WHITE,{2*scale,2});
|
|
|
|
|
} else { |
|
|
|
|
pge->DrawStringPropDecal(displayPos+vf2d{356,92+yOffset},data.name,WHITE,{2,2});
|
|
|
|
|
} |
|
|
|
|
pge->DrawStringPropDecal(displayPos+vf2d{360,110+yOffset},"x "+std::to_string(item.second),WHITE,{1.75,1.75}); |
|
|
|
|
yOffset+=36; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
manager.DrawDecal(pge); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
@ -380,6 +291,7 @@ public: |
|
|
|
|
sAppName = "Fiesta Crafting Calculator"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static Renderable ProdIcon,CloseIcon,CloseBackIcon,ProductionIcons,CollectibleIcons,CollectibleIcons2,GradeIcons; |
|
|
|
|
public: |
|
|
|
|
std::string slurp(std::ifstream& in) { |
|
|
|
|
std::ostringstream sstr; |
|
|
|
@ -453,6 +365,10 @@ public: |
|
|
|
|
Karen.Load("assets/AdlF_Karen.png",nullptr,true); |
|
|
|
|
CloseIcon.Load("assets/close_button.png",nullptr,true); |
|
|
|
|
CloseBackIcon.Load("assets/button_mask.png",nullptr,true); |
|
|
|
|
ProductionIcons.Load("assets/production_icons.png",nullptr,true); |
|
|
|
|
CollectibleIcons.Load("assets/collectibles.png",nullptr,true); |
|
|
|
|
CollectibleIcons2.Load("assets/collectibles2.png",nullptr,true); |
|
|
|
|
GradeIcons.Load("assets/grade.png",nullptr,true); |
|
|
|
|
calculators.push_back(new Calculator()); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
@ -478,8 +394,195 @@ public: |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
Renderable FiestaCraftingCalculator::ProdIcon,FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon; |
|
|
|
|
|
|
|
|
|
Renderable FiestaCraftingCalculator::ProdIcon,FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon,FiestaCraftingCalculator::ProductionIcons,FiestaCraftingCalculator::CollectibleIcons,FiestaCraftingCalculator::CollectibleIcons2,FiestaCraftingCalculator::GradeIcons; |
|
|
|
|
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::PotionProdRecipes; |
|
|
|
|
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::StoneProdRecipes; |
|
|
|
|
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::ScrollProdRecipes; |
|
|
|
|
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::CompRecipes; |
|
|
|
|
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::DecompRecipes; |
|
|
|
|
std::map<std::string,FiestaCraftingCalculator::ItemData>FiestaCraftingCalculator::IDToName={ |
|
|
|
|
{"El1",{"Elrue [1]",{0,0,0},{6,2},PRODUCTION,GRADE1}}, |
|
|
|
|
{"El2",{"Elrue [2]",{0,0,0},{6,2},PRODUCTION,GRADE2}}, |
|
|
|
|
{"El3",{"Elrue [3]",{0,0,0},{6,2},PRODUCTION,GRADE3}}, |
|
|
|
|
{"El4",{"Elrue [4]",{0,0,0},{6,2},PRODUCTION,GRADE4}}, |
|
|
|
|
{"El5",{"Elrue [5]",{0,0,0},{6,2},PRODUCTION,GRADE5}}, |
|
|
|
|
{"Lix1",{"Lix [1]",{0,0,0},{1,3},PRODUCTION,GRADE1}}, |
|
|
|
|
{"Lix2",{"Lix [2]",{0,0,0},{1,3},PRODUCTION,GRADE2}}, |
|
|
|
|
{"Lix3",{"Lix [3]",{0,0,0},{1,3},PRODUCTION,GRADE3}}, |
|
|
|
|
{"Lix4",{"Lix [4]",{0,0,0},{1,3},PRODUCTION,GRADE4}}, |
|
|
|
|
{"Lix5",{"Lix [5]",{0,0,0},{1,3},PRODUCTION,GRADE5}}, |
|
|
|
|
{"Xir1",{"Xir [1]",{0,0,0},{4,3},PRODUCTION,GRADE1}}, |
|
|
|
|
{"Xir2",{"Xir [2]",{0,0,0},{4,3},PRODUCTION,GRADE2}}, |
|
|
|
|
{"Xir3",{"Xir [3]",{0,0,0},{4,3},PRODUCTION,GRADE3}}, |
|
|
|
|
{"Xir4",{"Xir [4]",{0,0,0},{4,3},PRODUCTION,GRADE4}}, |
|
|
|
|
{"Xir5",{"Xir [5]",{0,0,0},{4,3},PRODUCTION,GRADE5}}, |
|
|
|
|
{"BestLowHpPotion",{"HP Potion (Tier 1)",{0,0,0},{0,0},PRODUCTION}}, |
|
|
|
|
{"LowHpPotion",{"HP Potion (Tier 2)",{0,0,0},{0,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorHpPotion",{"HP Potion (Tier 3)",{0,0,0},{1,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighHpPotion",{"HP Potion (Tier 4)",{0,0,0},{1,0},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighHpPotion",{"HP Potion (Tier 5)",{0,0,0},{2,0},PRODUCTION}}, |
|
|
|
|
{"BestLowSpPotion",{"SP Potion (Tier 1)",{0,0,0},{3,0},PRODUCTION}}, |
|
|
|
|
{"LowSpPotion",{"SP Potion (Tier 2)",{0,0,0},{3,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorSpPotion",{"SP Potion (Tier 3)",{0,0,0},{4,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighSpPotion",{"SP Potion (Tier 4)",{0,0,0},{4,0},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighSpPotion",{"SP Potion (Tier 5)",{0,0,0},{5,0},PRODUCTION}}, |
|
|
|
|
{"BestLowConHPPotion",{"HP Regeneration Potion (Tier 1)",{0,0,0},{0,0},PRODUCTION}}, |
|
|
|
|
{"LowConHPPotion",{"HP Regeneration Potion (Tier 2)",{0,0,0},{0,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorConHPPotion",{"HP Regeneration Potion (Tier 3)",{0,0,0},{1,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighConHPPotion",{"HP Regeneration Potion (Tier 4)",{0,0,0},{1,0},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighConHPPotion",{"HP Regeneration Potion (Tier 5)",{0,0,0},{2,0},PRODUCTION}}, |
|
|
|
|
{"BestLowConSPPotion",{"SP Regeneration Potion (Tier 1)",{0,0,0},{3,0},PRODUCTION}}, |
|
|
|
|
{"LowConSPPotion",{"SP Regeneration Potion (Tier 2)",{0,0,0},{3,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorConSPPotion",{"SP Regeneration Potion (Tier 3)",{0,0,0},{4,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighConSPPotion",{"SP Regeneration Potion (Tier 4)",{0,0,0},{4,0},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighConSPPotion",{"SP Regeneration Potion (Tier 5)",{0,0,0},{5,0},PRODUCTION}}, |
|
|
|
|
{"BestLowTHScroll",{"Aim(Tier 1)",{0,0,0},{4,1},PRODUCTION}}, |
|
|
|
|
{"LowTHScroll",{"Aim(Tier 2)",{0,0,0},{4,1},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorTHScroll",{"Aim(Tier 3)",{0,0,0},{4,1},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighTHScroll",{"Aim(Tier 4)",{0,0,0},{4,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighTHScroll",{"Aim(Tier 5)",{0,0,0},{4,1},PRODUCTION}}, |
|
|
|
|
{"BestLowTBScroll",{"Nature's Agility (Tier 1)",{0,0,0},{5,1},PRODUCTION}}, |
|
|
|
|
{"LowTBScroll",{"Nature's Agility (Tier 2)",{0,0,0},{5,1},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorTBScroll",{"Nature's Agility (Tier 3)",{0,0,0},{5,1},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighTBScroll",{"Nature's Agility (Tier 4)",{0,0,0},{5,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighTBScroll",{"Nature's Agility (Tier 5)",{0,0,0},{5,1},PRODUCTION}}, |
|
|
|
|
{"BestLowMRScroll",{"Magical Defense (Tier 1)",{0,0,0},{6,1},PRODUCTION}}, |
|
|
|
|
{"LowMRScroll",{"Magical Defense (Tier 2)",{0,0,0},{6,1},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorMRScroll",{"Magical Defense (Tier 3)",{0,0,0},{6,1},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighMRScroll",{"Magical Defense (Tier 4)",{0,0,0},{6,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighMRScroll",{"Magical Defense (Tier 5)",{0,0,0},{6,1},PRODUCTION}}, |
|
|
|
|
{"BestLowACScroll",{"Shield Increase (Tier 1)",{0,0,0},{6,1},PRODUCTION}}, |
|
|
|
|
{"LowACScroll",{"Shield Increase (Tier 2)",{0,0,0},{6,1},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorACScroll",{"Shield Increase (Tier 3)",{0,0,0},{6,1},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighACScroll",{"Shield Increase (Tier 4)",{0,0,0},{6,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighACScroll",{"Shield Increase (Tier 5)",{0,0,0},{6,1},PRODUCTION}}, |
|
|
|
|
{"BestLowMaxHPScroll",{"Vitality (Tier 1)",{0,0,0},{0,2},PRODUCTION}}, |
|
|
|
|
{"LowMaxHPScroll",{"Vitality (Tier 2)",{0,0,0},{0,2},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorMaxHPScroll",{"Vitality (Tier 3)",{0,0,0},{0,2},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighMaxHPScroll",{"Vitality (Tier 4)",{0,0,0},{0,2},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighMaxHPScroll",{"Vitality (Tier 5)",{0,0,0},{0,2},PRODUCTION}}, |
|
|
|
|
{"BestLowMaxSPScroll",{"Mentality (Tier 1)",{0,0,0},{1,2},PRODUCTION}}, |
|
|
|
|
{"LowMaxSPScroll",{"Mentality (Tier 2)",{0,0,0},{1,2},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorMaxSPScroll",{"Mentality (Tier 3)",{0,0,0},{1,2},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighMaxSPScroll",{"Mentality (Tier 4)",{0,0,0},{1,2},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighMaxSPScroll",{"Mentality (Tier 5)",{0,0,0},{1,2},PRODUCTION}}, |
|
|
|
|
{"NorMSScroll",{"Speed Increase (Tier 3)",{0,0,0},{1,2},PRODUCTION,GRADEM}}, |
|
|
|
|
{"LowMSScroll",{"Speed Increase (Tier 2)",{0,0,0},{1,2},PRODUCTION,GRADEL}}, |
|
|
|
|
{"HighMSScroll",{"Speed Increase (Tier 4)",{0,0,0},{1,2},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestMSScroll",{"Speed Increase (Tier 5)",{0,0,0},{1,2},PRODUCTION}}, |
|
|
|
|
{"BestLowMSScroll",{"Speed Increase (Tier 1)",{0,0,0},{1,2},PRODUCTION}}, |
|
|
|
|
{"LowPsnResiPotion",{"Antitoxin (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorPsnResiPotion",{"Antitoxin (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighPsnResiPotion",{"Antitoxin (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"LowDssResiPotion",{"Antibiotic (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorDssResiPotion",{"Antibiotic (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighDssResiPotion",{"Antibiotic (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"LowCurResiPotion",{"Bless (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorCurResiPotion",{"Bless (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighCurResiPotion",{"Bless (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"LowPsnCurPotion",{"Antidote (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorPsnCurPotion",{"Antidote (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighPsnCurPotion",{"Antidote (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"LowDssCurPotion",{"Cure (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorDssCurPotion",{"Cure (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighDssCurPotion",{"Cure (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestLowCurScroll",{"Divine Magic (Tier 1)",{0,0,0},{2,2},PRODUCTION}}, |
|
|
|
|
{"LowCurScroll",{"Divine Magic (Tier 2)",{0,0,0},{2,2},PRODUCTION,GRADEL}}, |
|
|
|
|
{"NorCurScroll",{"Divine Magic (Tier 3)",{0,0,0},{2,2},PRODUCTION,GRADEM}}, |
|
|
|
|
{"HighCurScroll",{"Divine Magic (Tier 4)",{0,0,0},{2,2},PRODUCTION,GRADEH}}, |
|
|
|
|
{"BestHighCurScroll",{"Divine Magic (Tier 5)",{0,0,0},{2,2},PRODUCTION}}, |
|
|
|
|
{"NorBeastLeather",{"Beast Leather (Normal Quality)",{255,255,0},{7,1}}}, |
|
|
|
|
{"HighBeastLeather",{"Beast Leather (High Quality)",{0,255,0},{0,2}}}, |
|
|
|
|
{"BeastHead",{"Beast Head",{0,255,255},{1,2}}}, |
|
|
|
|
{"NorBeastTooth",{"Beast Dogtooth (Normal Quality)",{255,255,0},{5,1}}}, |
|
|
|
|
{"HighBeastTooth",{"Beast Dogtooth (High Quality)",{0,255,0},{6,1}}}, |
|
|
|
|
{"NorBrokenBone",{"Bone (Normal Quality)",{255,255,0},{4,0}}}, |
|
|
|
|
{"HighBrokenBone",{"Bone (High Quality)",{0,255,0},{4,0}}}, |
|
|
|
|
{"BestBrokenBone",{"Bone (Highest Quality)",{0,255,255},{4,0}}}, |
|
|
|
|
{"NorCleanWater",{"Spirit's Nectar (Normal Quality)",{255,255,0},{7,5}}}, |
|
|
|
|
{"HighCleanWater",{"Spirit's Nectar (High Quality)",{0,255,0},{0,6}}}, |
|
|
|
|
{"BestCleanWater",{"Spirit's Nectar (Highest Quality)",{0,255,255},{0,6}}}, |
|
|
|
|
{"IronBadge",{"Iron Badge",{255,255,0},{2,4}}}, |
|
|
|
|
{"NorCopperOre",{"Copper Ore (Normal Quality)",{255,255,0},{4,4}}}, |
|
|
|
|
{"HighCopperOre",{"Copper Ore (High Quality)",{0,255,0},{5,4}}}, |
|
|
|
|
{"NorGemDust",{"Gem Dust (Normal Quality)",{255,255,0},{6,0}}}, |
|
|
|
|
{"HighGemDust",{"Gem Dust (High Quality)",{0,255,0},{6,0}}}, |
|
|
|
|
{"BestGemDust",{"Gem Dust (Highest Quality)",{0,255,255},{6,0}}}, |
|
|
|
|
{"Violet",{"Vilolet",{0,0,0},{1,1},COLLECTIBLE2}}, |
|
|
|
|
{"Ramsear",{"Ramsear",{0,0,0},{1,1},COLLECTIBLE2}}, |
|
|
|
|
{"Salvia",{"Eucalyptus",{255,255,255},{5,7}}}, |
|
|
|
|
{"LowGoldOre",{"Gold Ore (Low Quality)",{255,255,255},{1,6}}}, |
|
|
|
|
{"NorGoldOre",{"Gold Ore (Normal Quality)",{255,255,0},{2,6}}}, |
|
|
|
|
{"HighGoldOre",{"Gold Ore (High Quality)",{0,255,0},{3,6}}}, |
|
|
|
|
{"NorKylinLeather",{"Summoned Beast Leather (Normal Quality)",{255,255,0},{3,2}}}, |
|
|
|
|
{"HighKylinLeather",{"Summoned Beast Leather (High Quality)",{0,255,0},{4,2}}}, |
|
|
|
|
{"KylinTooth",{"Summoned Beast's Tooth",{0,255,0},{7,2}}}, |
|
|
|
|
{"MermaidScale",{"Mermaid's Scale",{0,0,0},{2,3}}}, |
|
|
|
|
{"KylinFighterTail",{"Summoned Beast Fighter's Tail",{255,255,0},{6,2}}}, |
|
|
|
|
{"NorMagicCrystal",{"Magic Crystal (Normal Quality)",{255,255,0},{4,5}}}, |
|
|
|
|
{"HighMagicCrystal",{"Magic Crystal (High Quality)",{0,255,0},{5,5}}}, |
|
|
|
|
{"BestMagicCrystal",{"Magic Crystal (Highest Quality)",{0,255,255},{5,5}}}, |
|
|
|
|
{"NorMeat",{"Meat (Normal Quality)",{255,255,0},{1,0}}}, |
|
|
|
|
{"HighMeat",{"Meat (High Quality)",{0,255,0},{1,0}}}, |
|
|
|
|
{"BestMeat",{"Meat (Highest Quality)",{0,255,255},{1,0}}}, |
|
|
|
|
{"NorMushrooms",{"Mushroom (Normal Quality)",{255,255,0},{4,3}}}, |
|
|
|
|
{"HighMushrooms",{"Mushroom (High Quality)",{0,255,0},{4,3}}}, |
|
|
|
|
{"BestMushrooms",{"Mushroom (Highest Quality)",{0,255,255},{4,3}}}, |
|
|
|
|
{"NorPledge",{"Sign (Normal Quality)",{255,255,0},{3,0}}}, |
|
|
|
|
{"HighPledge",{"Sign (High Quality)",{0,255,0},{3,0}}}, |
|
|
|
|
{"BestPledge",{"Sign (Highest Quality)",{0,255,255},{3,0}}}, |
|
|
|
|
{"Rosemary",{"Rosemary",{0,255,0},{4,7}}}, |
|
|
|
|
{"Basil",{"Basil",{0,255,255},{5,7}}}, |
|
|
|
|
{"Marigold",{"Marigold",{0,0,255},{6,7}}}, |
|
|
|
|
{"LowSilverOre",{"Silver Ore (Low Quality)",{255,255,255},{6,4}}}, |
|
|
|
|
{"NorSilverOre",{"Silver Ore (Normal Quality)",{255,255,0},{7,4}}}, |
|
|
|
|
{"HighSilverOre",{"Silver Ore (High Quality)",{0,255,0},{0,5}}}, |
|
|
|
|
{"NorSkin",{"Leather (Normal Quality)",{255,255,0},{5,0}}}, |
|
|
|
|
{"HighSkin",{"Leather (High Quality)",{0,255,0},{5,0}}}, |
|
|
|
|
{"BestSkin",{"Leather (Highest Quality)",{0,255,255},{5,0}}}, |
|
|
|
|
{"NorSoulDust",{"Soul Dust (Normal Quality)",{255,255,0},{2,1}}}, |
|
|
|
|
{"HighSoulDust",{"Soul Dust (High Quality)",{0,255,0},{2,1}}}, |
|
|
|
|
{"BestSoulDust",{"Soul Dust (Highest Quality)",{0,255,255},{2,1}}}, |
|
|
|
|
{"NorSpiritDust",{"Spirit Dust (Normal Quality)",{255,255,0},{0,0}}}, |
|
|
|
|
{"HighSpiritDust",{"Spirit Dust (High Quality)",{0,255,0},{0,0}}}, |
|
|
|
|
{"BestSpiritDust",{"Spirit Dust (Highest Quality)",{0,255,255},{0,0}}}, |
|
|
|
|
{"NorToadStool",{"Toadstool (Normal Quality)",{255,255,0},{3,3}}}, |
|
|
|
|
{"HighToadStool",{"Toadstool (High Quality)",{0,255,0},{3,3}}}, |
|
|
|
|
{"BestToadStool",{"Toadstool (Highest Quality)",{0,255,255},{3,3}}}, |
|
|
|
|
{"Ruby",{"Ruby",{255,255,0},{2,5}}}, |
|
|
|
|
{"Sapphire",{"Sapphire",{0,255,0},{4,6}}}, |
|
|
|
|
{"NorWoodSab",{"Sap (Normal Quality)",{255,255,0},{6,6}}}, |
|
|
|
|
{"HighWoodSab",{"Sap (High Quality)",{0,255,0},{7,6}}}, |
|
|
|
|
{"BestWoodSab",{"Sap (Highest Quality)",{0,255,255},{0,7}}}, |
|
|
|
|
{"LowBeastLeather",{"Beast Leather (Low Quality)",{255,255,255},{7,1}}}, |
|
|
|
|
{"LowBeastTooth",{"Beast Dogtooth (Low Quality)",{255,255,255},{4,1}}}, |
|
|
|
|
{"LowBrokenBone",{"Bone (Low Quality)",{255,255,255},{4,0}}}, |
|
|
|
|
{"LowCleanWater",{"Spirit's Nectar (Low Quality)",{255,255,255},{6,5}}}, |
|
|
|
|
{"CommanderBadge",{"Master Commander's Badge",{255,255,255},{1,4}}}, |
|
|
|
|
{"LowCopperOre",{"Copper Ore (Low Quality)",{255,255,255},{3,4}}}, |
|
|
|
|
{"LowGemDust",{"Gem Dust (Low Quality)",{255,255,255},{6,0}}}, |
|
|
|
|
{"Geranium",{"Geranium",{0,0,0},{1,1},COLLECTIBLE2}}, |
|
|
|
|
{"LowKylinLeather",{"Summoned Beast Leather (Low Quality)",{255,255,255},{2,2}}}, |
|
|
|
|
{"KylinTail",{"Summoned Beast's Tail",{255,255,255},{5,2}}}, |
|
|
|
|
{"LowMagicCrystal",{"Magic Crystal (Low Quality)",{255,255,255},{3,5}}}, |
|
|
|
|
{"LowMeat",{"Meat (Low Quality)",{255,255,255},{1,0}}}, |
|
|
|
|
{"LowMushrooms",{"Mushroom (Low Quality)",{255,255,255},{4,3}}}, |
|
|
|
|
{"LowPledge",{"Sign (Low Quality)",{255,255,255},{3,0}}}, |
|
|
|
|
{"Sage",{"Sage",{255,255,0},{3,7}}}, |
|
|
|
|
{"LowSkin",{"Leather (Low Quality)",{255,255,255},{5,0}}}, |
|
|
|
|
{"LowSoulDust",{"Soul Dust (Low Quality)",{255,255,255},{2,1}}}, |
|
|
|
|
{"LowSpiritDust",{"Spirit Dust (Low Quality)",{255,255,255},{0,0}}}, |
|
|
|
|
{"LowToadStool",{"Toadstool (Low Quality)",{255,255,255},{3,3}}}, |
|
|
|
|
{"Topaz",{"Topaz",{255,255,255},{1,5}}}, |
|
|
|
|
{"LowWoodSab",{"Sap (Low Quality)",{255,255,255},{5,6}}}, |
|
|
|
|
{"LowSlimeJelly",{"Slime Jelly (Low Quality)",{255,255,255},{0,3}}}, |
|
|
|
|
{"HighSlimeJelly",{"Slime Jelly (High Quality)",{255,255,0},{1,3}}}, |
|
|
|
|
{"Converter1",{"Alchemy Stone[1]",{255,255,255},{4,2},PRODUCTION}}, |
|
|
|
|
{"Converter3",{"Alchemy Stone[3]",{0,255,0},{4,2},PRODUCTION}}, |
|
|
|
|
{"Converter5",{"Alchemy Stone[5]",{0,255,255},{4,2},PRODUCTION}}, |
|
|
|
|
{"Converter2",{"Alchemy Stone[2]",{255,255,0},{4,2},PRODUCTION}}, |
|
|
|
|
{"Converter4",{"Alchemy Stone[4]",{0,255,255},{4,2},PRODUCTION}}, |
|
|
|
|
}; |
|
|
|
|
int main() |
|
|
|
|
{ |
|
|
|
|
FiestaCraftingCalculator calculator; |
|
|
|
|