← EquipamientoObjeto 3Dfogon/espada-larga
Espada larga
Arrastrá para girarlo// «Espada larga» · gpt-6-sol (medium)
// A long knight's sword: a long narrow straight steel blade in three shades of grey with a pointed tip, a wide straight gold crossguard, a dark blue leather grip with gold bands and a gold pommel with a small red gem. It LIES FLAT horizontally on the ground (z=0), as a chunky toy-like item seen from above: tip/front toward -y, handle/back toward +y, centered on x, using most of the grid along y, at least 4-5 blocks thick so it reads at small size. No hands, no stand, no base plate.
const steelDark = "#687782";
const steelMid = "#a0afb9";
const steelLight = "#d2dde2";
const steelRidge = "#edf2ef";
const goldDark = "#946018";
const gold = "#d5a334";
const goldLight = "#f5d372";
const blueDark = "#142b55";
const blue = "#254b85";
const blueLight = "#38659c";
// Long, straight blade, tapering to a point toward -y.
for (let y = 2; y <= 29; y++) {
const half = Math.min(5, y - 1);
for (let x = 24 - half; x <= 24 + half; x++) {
const edge = Math.abs(x - 24);
box(x, y, 0, x, y, 2, edge === half ? steelDark : steelMid);
if (edge <= Math.max(0, half - 1)) {
set(x, y, 3, edge >= half - 1 ? steelLight : steelMid);
}
if (y >= 5 && edge <= 1) {
set(x, y, 4, rand() < 0.09 ? steelLight : steelRidge);
}
}
}
// Subtle darker steel at the blade's heel.
box(20, 28, 3, 22, 29, 3, "#81919b");
box(26, 28, 3, 28, 29, 3, "#81919b");
// Wide, straight crossguard with heavy rounded-looking ends.
box(9, 30, 0, 39, 33, 2, goldDark);
box(9, 30, 3, 39, 33, 3, gold);
box(11, 31, 4, 37, 32, 4, goldLight);
box(8, 29, 0, 11, 34, 3, goldDark);
box(37, 29, 0, 40, 34, 3, goldDark);
box(9, 30, 4, 11, 33, 4, goldLight);
box(37, 30, 4, 39, 33, 4, goldLight);
box(18, 30, 4, 30, 33, 4, gold);
box(21, 31, 5, 27, 32, 5, goldLight);
box(8, 31, 3, 8, 32, 3, gold);
box(40, 31, 3, 40, 32, 3, gold);
// Dark blue leather grip, with a lighter raised face.
box(21, 34, 0, 27, 43, 3, blueDark);
box(22, 34, 4, 26, 42, 4, blue);
for (let y = 36; y <= 41; y++) {
if (y !== 39) set(23, y, 4, blueLight);
}
for (const y of [35, 39, 42]) {
box(20, y, 0, 28, y, 3, goldDark);
box(21, y, 4, 27, y, 4, goldLight);
set(20, y, 3, gold);
set(28, y, 3, gold);
}
// Broad gold pommel at the back of the sword.
box(21, 43, 0, 27, 46, 3, goldDark);
box(19, 44, 0, 29, 45, 3, goldDark);
box(20, 44, 4, 28, 45, 4, gold);
box(22, 46, 4, 26, 46, 4, goldLight);
box(21, 43, 4, 27, 43, 4, gold);
box(21, 44, 5, 27, 45, 5, goldLight);
box(22, 44, 5, 26, 45, 5, "#a96d20");
// The ruby is its own animated part, set into the pommel.
part("ruby", [24, 45, 5]);
box(23, 44, 6, 25, 45, 6, "#ac1730");
set(24, 44, 7, "#f04454");
animate("ruby", {
type: "colors",
palette: ["#9c102b", "#d8233c", "#ff5861"],
pattern: "pulse",
glow: 0.5
});
part("body");import { draw } from "./assets/voxel";
import { espadaLarga } from "./assets/espada-larga";
// En cada cuadro: parado sobre (x, y), el centro de su base.
draw(ctx, espadaLarga, x, y, { size: 64, angle: 0, t: performance.now() / 1000 });
// size: lo que mide en px su lado más largo
// angle: giro sobre el piso, en radianes
// t: segundos; si se mueve, se anima solo con eso# En una terminal, en la carpeta del juego
fogon assets add espada-larga
# Con las herramientas de Fogón (conector)
add_assets({ slug: "<tu-juego>", ids: ["espada-larga"] })
# Queda en client/assets/espada-larga.ts
# https://fogon.page/object/espada-larga