12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- states.push({
- id: "refine",
- button: "Refine Materials",
- action: "Smelting",
- duration: () => selectedItems.length * 500,
- step: () => selectedItems.length,
- requires: () => {
- let selectCount = selectedItems.length;
- let enoughEnergy = selectCount <= userData.energy;
- if (!enoughEnergy) { errorMessage = "insufficient energy to refine all selected ore"; }
- if(selectedItems.length == 0) {
- receiveMessage({name:"[Refinery]", id:-1, style: ""}, "Ther's nathin I can smelt!");
- }
- return enoughEnergy && selectedItems.length > 0;
- },
- start: () => {},
- run: () => {
- selectedItems.forEach(item => {
- let index = userData.inCargoHold.indexOf(item);
- if(index > -1) {
- userData.inCargoHold.splice(index, 1, refineItem(item));
- }
- });
- selectedItems = [];
- },
- });
- var refineMap = [
- { input: "ironore", output: "iron", outputName: "Iron Bar", cost: 1, duration: 500 },
- { input: "silverore", output: "silver", outputName: "Silver Bar", cost: 1, duration: 500 },
- { input: "goldore", output: "gold", outputName: "Gold Bar", cost: 1, duration: 500 },
- { input: "platinumore", output: "platinum", outputName: "Platinum Bar", cost: 2, duration: 500 },
- { input: "rawdiamond", output: "diamond", outputName: "Diamond", cost: 5, duration: 500 },
- ];
- function refineItem(item) {
- let refineRule = refineMap.find(refine => refine.input == item.type);
- if (!refineRule) {
- return item;
- }
- userData.energy -= refineRule.cost;
- return { id: item.id, type: refineRule.output, description: refineRule.outputName };
- }
|