refactor: mejorar la legibilidad del código en los comandos de mina, pelear y pescar; ajustar formato en la función de durabilidad de herramientas
This commit is contained in:
@@ -138,10 +138,18 @@ export const command: CommandMessage = {
|
|||||||
return `${base} (agotada)${durabilityBar()}`;
|
return `${base} (agotada)${durabilityBar()}`;
|
||||||
}
|
}
|
||||||
if (result.tool.brokenInstance) {
|
if (result.tool.brokenInstance) {
|
||||||
return `${base} (se rompió una instancia, quedan ${result.tool.instancesRemaining}) (-${result.tool.durabilityDelta ?? 0} dur.)${durabilityBar()}`;
|
return `${base} (se rompió una instancia, quedan ${
|
||||||
|
result.tool.instancesRemaining
|
||||||
|
}) (-${result.tool.durabilityDelta ?? 0} dur.)${durabilityBar()}`;
|
||||||
}
|
}
|
||||||
const multi = result.tool.instancesRemaining && result.tool.instancesRemaining > 1 ? ` (x${result.tool.instancesRemaining})` : "";
|
const multi =
|
||||||
return `${base}${multi} (-${result.tool.durabilityDelta ?? 0} dur.)${durabilityBar()}`;
|
result.tool.instancesRemaining &&
|
||||||
|
result.tool.instancesRemaining > 1
|
||||||
|
? ` (x${result.tool.instancesRemaining})`
|
||||||
|
: "";
|
||||||
|
return `${base}${multi} (-${
|
||||||
|
result.tool.durabilityDelta ?? 0
|
||||||
|
} dur.)${durabilityBar()}`;
|
||||||
})()
|
})()
|
||||||
: "—";
|
: "—";
|
||||||
|
|
||||||
|
|||||||
@@ -142,11 +142,20 @@ export const command: CommandMessage = {
|
|||||||
},
|
},
|
||||||
{ fallbackIcon: "🗡️" }
|
{ fallbackIcon: "🗡️" }
|
||||||
);
|
);
|
||||||
if (result.tool.broken) return `${base} (agotada)${durabilityBar()}`;
|
if (result.tool.broken)
|
||||||
|
return `${base} (agotada)${durabilityBar()}`;
|
||||||
if (result.tool.brokenInstance)
|
if (result.tool.brokenInstance)
|
||||||
return `${base} (se rompió una instancia, quedan ${result.tool.instancesRemaining}) (-${result.tool.durabilityDelta ?? 0} dur.)${durabilityBar()}`;
|
return `${base} (se rompió una instancia, quedan ${
|
||||||
const multi = result.tool.instancesRemaining && result.tool.instancesRemaining > 1 ? ` (x${result.tool.instancesRemaining})` : "";
|
result.tool.instancesRemaining
|
||||||
return `${base}${multi} (-${result.tool.durabilityDelta ?? 0} dur.)${durabilityBar()}`;
|
}) (-${result.tool.durabilityDelta ?? 0} dur.)${durabilityBar()}`;
|
||||||
|
const multi =
|
||||||
|
result.tool.instancesRemaining &&
|
||||||
|
result.tool.instancesRemaining > 1
|
||||||
|
? ` (x${result.tool.instancesRemaining})`
|
||||||
|
: "";
|
||||||
|
return `${base}${multi} (-${
|
||||||
|
result.tool.durabilityDelta ?? 0
|
||||||
|
} dur.)${durabilityBar()}`;
|
||||||
})()
|
})()
|
||||||
: "—";
|
: "—";
|
||||||
const combatSummary = (() => {
|
const combatSummary = (() => {
|
||||||
|
|||||||
@@ -128,11 +128,20 @@ export const command: CommandMessage = {
|
|||||||
},
|
},
|
||||||
{ fallbackIcon: "🎣" }
|
{ fallbackIcon: "🎣" }
|
||||||
);
|
);
|
||||||
if (result.tool.broken) return `${base} (agotada)${durabilityBar()}`;
|
if (result.tool.broken)
|
||||||
|
return `${base} (agotada)${durabilityBar()}`;
|
||||||
if (result.tool.brokenInstance)
|
if (result.tool.brokenInstance)
|
||||||
return `${base} (se rompió una instancia, quedan ${result.tool.instancesRemaining}) (-${result.tool.durabilityDelta ?? 0} dur.)${durabilityBar()}`;
|
return `${base} (se rompió una instancia, quedan ${
|
||||||
const multi = result.tool.instancesRemaining && result.tool.instancesRemaining > 1 ? ` (x${result.tool.instancesRemaining})` : "";
|
result.tool.instancesRemaining
|
||||||
return `${base}${multi} (-${result.tool.durabilityDelta ?? 0} dur.)${durabilityBar()}`;
|
}) (-${result.tool.durabilityDelta ?? 0} dur.)${durabilityBar()}`;
|
||||||
|
const multi =
|
||||||
|
result.tool.instancesRemaining &&
|
||||||
|
result.tool.instancesRemaining > 1
|
||||||
|
? ` (x${result.tool.instancesRemaining})`
|
||||||
|
: "";
|
||||||
|
return `${base}${multi} (-${
|
||||||
|
result.tool.durabilityDelta ?? 0
|
||||||
|
} dur.)${durabilityBar()}`;
|
||||||
})()
|
})()
|
||||||
: "—";
|
: "—";
|
||||||
const combatSummary = (() => {
|
const combatSummary = (() => {
|
||||||
|
|||||||
@@ -68,10 +68,7 @@ export const command: CommandMessage = {
|
|||||||
const durLines = instances.length
|
const durLines = instances.length
|
||||||
? instances
|
? instances
|
||||||
.map((inst, idx) => {
|
.map((inst, idx) => {
|
||||||
const cur = Math.min(
|
const cur = Math.min(Math.max(0, inst?.durability ?? max), max);
|
||||||
Math.max(0, inst?.durability ?? max),
|
|
||||||
max
|
|
||||||
);
|
|
||||||
return `#${idx + 1} [${renderBar(cur)}] ${cur}/${max}`;
|
return `#${idx + 1} [${renderBar(cur)}] ${cur}/${max}`;
|
||||||
})
|
})
|
||||||
.join("\n")
|
.join("\n")
|
||||||
|
|||||||
@@ -164,7 +164,8 @@ export async function addItemByKey(
|
|||||||
// Inicializar durabilidad si corresponde
|
// Inicializar durabilidad si corresponde
|
||||||
const props = parseItemProps(item.props);
|
const props = parseItemProps(item.props);
|
||||||
const breakable = props.breakable;
|
const breakable = props.breakable;
|
||||||
const maxDurability = breakable?.enabled !== false ? breakable?.maxDurability : undefined;
|
const maxDurability =
|
||||||
|
breakable?.enabled !== false ? breakable?.maxDurability : undefined;
|
||||||
for (let i = 0; i < canAdd; i++) {
|
for (let i = 0; i < canAdd; i++) {
|
||||||
if (maxDurability && maxDurability > 0) {
|
if (maxDurability && maxDurability > 0) {
|
||||||
state.instances.push({ durability: maxDurability });
|
state.instances.push({ durability: maxDurability });
|
||||||
|
|||||||
@@ -222,7 +222,14 @@ async function reduceToolDurability(
|
|||||||
// Consideramos "rota" sólo si después de consumir ya no queda ninguna unidad
|
// Consideramos "rota" sólo si después de consumir ya no queda ninguna unidad
|
||||||
broken = (updated.quantity ?? 0) <= 0;
|
broken = (updated.quantity ?? 0) <= 0;
|
||||||
}
|
}
|
||||||
return { broken, brokenInstance: broken, delta, remaining: undefined, max: maxConfigured, instancesRemaining: broken ? 0 : (entry.quantity ?? 1) - 1 } as const;
|
return {
|
||||||
|
broken,
|
||||||
|
brokenInstance: broken,
|
||||||
|
delta,
|
||||||
|
remaining: undefined,
|
||||||
|
max: maxConfigured,
|
||||||
|
instancesRemaining: broken ? 0 : (entry.quantity ?? 1) - 1,
|
||||||
|
} as const;
|
||||||
}
|
}
|
||||||
const state = parseInvState(entry.state);
|
const state = parseInvState(entry.state);
|
||||||
state.instances ??= [{}];
|
state.instances ??= [{}];
|
||||||
@@ -259,7 +266,14 @@ async function reduceToolDurability(
|
|||||||
`[tool-break] user=${userId} guild=${guildId} toolKey=${toolKey}`
|
`[tool-break] user=${userId} guild=${guildId} toolKey=${toolKey}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return { broken, brokenInstance, delta, remaining: broken ? 0 : next, max, instancesRemaining } as const;
|
return {
|
||||||
|
broken,
|
||||||
|
brokenInstance,
|
||||||
|
delta,
|
||||||
|
remaining: broken ? 0 : next,
|
||||||
|
max,
|
||||||
|
instancesRemaining,
|
||||||
|
} as const;
|
||||||
}
|
}
|
||||||
|
|
||||||
export { reduceToolDurability };
|
export { reduceToolDurability };
|
||||||
|
|||||||
Reference in New Issue
Block a user