@almadar/ui 5.96.0 → 5.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/avl/index.cjs +50 -42
- package/dist/avl/index.js +52 -44
- package/dist/components/game/3d/index.cjs +376 -253
- package/dist/components/game/3d/index.js +377 -254
- package/dist/components/game/3d/molecules/ModelLoader.d.ts +3 -1
- package/dist/components/game/shared/isometricTypes.d.ts +2 -0
- package/dist/components/index.cjs +29 -32
- package/dist/components/index.js +29 -32
- package/dist/lib/index.cjs +5 -2
- package/dist/lib/index.js +5 -2
- package/dist/providers/index.cjs +40 -40
- package/dist/providers/index.js +40 -40
- package/dist/runtime/index.cjs +50 -42
- package/dist/runtime/index.js +52 -44
- package/package.json +3 -3
|
@@ -32,6 +32,8 @@ export interface ModelLoaderProps {
|
|
|
32
32
|
* unknown or absent name leaves the model static (bind pose).
|
|
33
33
|
*/
|
|
34
34
|
animation?: string;
|
|
35
|
+
/** Multiply the model's material colors by this CSS color (per-instance; e.g. team tint). */
|
|
36
|
+
tint?: string;
|
|
35
37
|
/** Enable shadows */
|
|
36
38
|
castShadow?: boolean;
|
|
37
39
|
/** Receive shadows */
|
|
@@ -46,5 +48,5 @@ export interface ModelLoaderProps {
|
|
|
46
48
|
/**
|
|
47
49
|
* ModelLoader component for rendering GLB models in React Three Fiber
|
|
48
50
|
*/
|
|
49
|
-
export declare function ModelLoader({ url, position, scale, rotation, isSelected, isHovered, onClick, onHover, fallbackGeometry, castShadow, receiveShadow, resourceBasePath, animation, }: ModelLoaderProps): React.JSX.Element;
|
|
51
|
+
export declare function ModelLoader({ url, position, scale, rotation, isSelected, isHovered, onClick, onHover, fallbackGeometry, castShadow, receiveShadow, resourceBasePath, animation, tint, }: ModelLoaderProps): React.JSX.Element;
|
|
50
52
|
export default ModelLoader;
|
|
@@ -46,6 +46,8 @@ export interface IsometricTile {
|
|
|
46
46
|
elevation?: number;
|
|
47
47
|
/** 3D model URL (GLB format) for GameCanvas3D — rendered via ModelLoader with box fallback */
|
|
48
48
|
modelUrl?: Asset;
|
|
49
|
+
/** Y-axis rotation in degrees (3D) — orients directional pieces (track corners, road bends) */
|
|
50
|
+
rotation?: number;
|
|
49
51
|
}
|
|
50
52
|
/** A unit positioned on the isometric grid */
|
|
51
53
|
export type IsometricUnit = {
|
|
@@ -20098,7 +20098,7 @@ var init_ConnectionBlock = __esm({
|
|
|
20098
20098
|
}
|
|
20099
20099
|
});
|
|
20100
20100
|
function ControlButton({
|
|
20101
|
-
assetUrl
|
|
20101
|
+
assetUrl,
|
|
20102
20102
|
label,
|
|
20103
20103
|
icon,
|
|
20104
20104
|
size = "md",
|
|
@@ -20176,7 +20176,7 @@ function ControlButton({
|
|
|
20176
20176
|
}
|
|
20177
20177
|
);
|
|
20178
20178
|
}
|
|
20179
|
-
var sizeMap5, shapeMap, variantMap
|
|
20179
|
+
var sizeMap5, shapeMap, variantMap;
|
|
20180
20180
|
var init_ControlButton = __esm({
|
|
20181
20181
|
"components/game/2d/atoms/ControlButton.tsx"() {
|
|
20182
20182
|
"use client";
|
|
@@ -20203,11 +20203,6 @@ var init_ControlButton = __esm({
|
|
|
20203
20203
|
secondary: "bg-secondary text-secondary-foreground border-border hover:bg-secondary-hover",
|
|
20204
20204
|
ghost: "bg-transparent text-foreground border-border hover:bg-muted"
|
|
20205
20205
|
};
|
|
20206
|
-
DEFAULT_ASSET_URL3 = {
|
|
20207
|
-
url: "https://almadar-kflow-assets.web.app/shared/effects/particles/circle_01.png",
|
|
20208
|
-
role: "ui",
|
|
20209
|
-
category: "control"
|
|
20210
|
-
};
|
|
20211
20206
|
ControlButton.displayName = "ControlButton";
|
|
20212
20207
|
}
|
|
20213
20208
|
});
|
|
@@ -20277,15 +20272,17 @@ function ControlGrid({
|
|
|
20277
20272
|
},
|
|
20278
20273
|
d
|
|
20279
20274
|
);
|
|
20275
|
+
const usesSemantic = !!directionEvents;
|
|
20276
|
+
const cell = (d) => !usesSemantic || directionEvents?.[d] ? dir(d) : /* @__PURE__ */ jsxRuntime.jsx(exports.Box, {}, d);
|
|
20280
20277
|
return /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: cn("inline-grid grid-cols-3", ds.gap, ds.container, className), children: [
|
|
20281
20278
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, {}),
|
|
20282
|
-
|
|
20279
|
+
cell("up"),
|
|
20283
20280
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, {}),
|
|
20284
|
-
|
|
20281
|
+
cell("left"),
|
|
20285
20282
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-6 h-6 rounded-interactive bg-muted border-2 border-muted-foreground" }) }),
|
|
20286
|
-
|
|
20283
|
+
cell("right"),
|
|
20287
20284
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, {}),
|
|
20288
|
-
|
|
20285
|
+
cell("down"),
|
|
20289
20286
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, {})
|
|
20290
20287
|
] });
|
|
20291
20288
|
}
|
|
@@ -20632,7 +20629,7 @@ var init_CounterTemplate = __esm({
|
|
|
20632
20629
|
}
|
|
20633
20630
|
});
|
|
20634
20631
|
function DamageNumber({
|
|
20635
|
-
assetUrl =
|
|
20632
|
+
assetUrl = DEFAULT_ASSET_URL3,
|
|
20636
20633
|
value = 42,
|
|
20637
20634
|
type = "damage",
|
|
20638
20635
|
size = "md",
|
|
@@ -20660,7 +20657,7 @@ function DamageNumber({
|
|
|
20660
20657
|
)
|
|
20661
20658
|
] });
|
|
20662
20659
|
}
|
|
20663
|
-
var sizeMap6, typeStyles, floatKeyframes,
|
|
20660
|
+
var sizeMap6, typeStyles, floatKeyframes, DEFAULT_ASSET_URL3;
|
|
20664
20661
|
var init_DamageNumber = __esm({
|
|
20665
20662
|
"components/game/2d/atoms/DamageNumber.tsx"() {
|
|
20666
20663
|
init_cn();
|
|
@@ -20684,7 +20681,7 @@ var init_DamageNumber = __esm({
|
|
|
20684
20681
|
100% { opacity: 0; transform: translateY(-32px) scale(0.8); }
|
|
20685
20682
|
}
|
|
20686
20683
|
`;
|
|
20687
|
-
|
|
20684
|
+
DEFAULT_ASSET_URL3 = {
|
|
20688
20685
|
url: "https://almadar-kflow-assets.web.app/shared/effects/particles/spark_01.png",
|
|
20689
20686
|
role: "effect",
|
|
20690
20687
|
category: "effect"
|
|
@@ -27322,7 +27319,7 @@ function isKnownState(s) {
|
|
|
27322
27319
|
return s in DEFAULT_STATE_STYLES;
|
|
27323
27320
|
}
|
|
27324
27321
|
function StateIndicator({
|
|
27325
|
-
assetUrl =
|
|
27322
|
+
assetUrl = DEFAULT_ASSET_URL4,
|
|
27326
27323
|
state = "idle",
|
|
27327
27324
|
label,
|
|
27328
27325
|
size = "md",
|
|
@@ -27352,14 +27349,14 @@ function StateIndicator({
|
|
|
27352
27349
|
}
|
|
27353
27350
|
);
|
|
27354
27351
|
}
|
|
27355
|
-
var
|
|
27352
|
+
var DEFAULT_ASSET_URL4, DEFAULT_STATE_STYLES, DEFAULT_STYLE, STATIC_STATES, SIZE_CLASSES;
|
|
27356
27353
|
var init_StateIndicator = __esm({
|
|
27357
27354
|
"components/game/2d/atoms/StateIndicator.tsx"() {
|
|
27358
27355
|
init_Box();
|
|
27359
27356
|
init_Icon();
|
|
27360
27357
|
init_cn();
|
|
27361
27358
|
init_GameIcon();
|
|
27362
|
-
|
|
27359
|
+
DEFAULT_ASSET_URL4 = {
|
|
27363
27360
|
url: "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png",
|
|
27364
27361
|
role: "ui",
|
|
27365
27362
|
category: "state"
|
|
@@ -27445,7 +27442,7 @@ var init_TimerDisplay = __esm({
|
|
|
27445
27442
|
}
|
|
27446
27443
|
});
|
|
27447
27444
|
function ResourceCounter({
|
|
27448
|
-
assetUrl =
|
|
27445
|
+
assetUrl = DEFAULT_ASSET_URL5,
|
|
27449
27446
|
icon,
|
|
27450
27447
|
label = "Gold",
|
|
27451
27448
|
value = 250,
|
|
@@ -27478,7 +27475,7 @@ function ResourceCounter({
|
|
|
27478
27475
|
}
|
|
27479
27476
|
);
|
|
27480
27477
|
}
|
|
27481
|
-
var colorTokenClasses2,
|
|
27478
|
+
var colorTokenClasses2, DEFAULT_ASSET_URL5, sizeMap10;
|
|
27482
27479
|
var init_ResourceCounter = __esm({
|
|
27483
27480
|
"components/game/2d/atoms/ResourceCounter.tsx"() {
|
|
27484
27481
|
init_cn();
|
|
@@ -27494,7 +27491,7 @@ var init_ResourceCounter = __esm({
|
|
|
27494
27491
|
error: "text-error",
|
|
27495
27492
|
muted: "text-muted-foreground"
|
|
27496
27493
|
};
|
|
27497
|
-
|
|
27494
|
+
DEFAULT_ASSET_URL5 = {
|
|
27498
27495
|
url: "https://almadar-kflow-assets.web.app/shared/world-map/gold_mine.png",
|
|
27499
27496
|
role: "ui",
|
|
27500
27497
|
category: "coin"
|
|
@@ -27508,7 +27505,7 @@ var init_ResourceCounter = __esm({
|
|
|
27508
27505
|
}
|
|
27509
27506
|
});
|
|
27510
27507
|
function ItemSlot({
|
|
27511
|
-
assetUrl =
|
|
27508
|
+
assetUrl = DEFAULT_ASSET_URL6,
|
|
27512
27509
|
icon = "sword",
|
|
27513
27510
|
label = "Iron Sword",
|
|
27514
27511
|
quantity,
|
|
@@ -27563,7 +27560,7 @@ function ItemSlot({
|
|
|
27563
27560
|
}
|
|
27564
27561
|
);
|
|
27565
27562
|
}
|
|
27566
|
-
var sizeMap11, rarityBorderMap, rarityGlowMap,
|
|
27563
|
+
var sizeMap11, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL6, assetSizeMap;
|
|
27567
27564
|
var init_ItemSlot = __esm({
|
|
27568
27565
|
"components/game/2d/atoms/ItemSlot.tsx"() {
|
|
27569
27566
|
"use client";
|
|
@@ -27593,7 +27590,7 @@ var init_ItemSlot = __esm({
|
|
|
27593
27590
|
epic: "shadow-lg",
|
|
27594
27591
|
legendary: "shadow-lg"
|
|
27595
27592
|
};
|
|
27596
|
-
|
|
27593
|
+
DEFAULT_ASSET_URL6 = {
|
|
27597
27594
|
url: "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png",
|
|
27598
27595
|
role: "item",
|
|
27599
27596
|
category: "item"
|
|
@@ -27607,7 +27604,7 @@ var init_ItemSlot = __esm({
|
|
|
27607
27604
|
}
|
|
27608
27605
|
});
|
|
27609
27606
|
function TurnIndicator({
|
|
27610
|
-
assetUrl =
|
|
27607
|
+
assetUrl = DEFAULT_ASSET_URL7,
|
|
27611
27608
|
currentTurn = 1,
|
|
27612
27609
|
maxTurns,
|
|
27613
27610
|
activeTeam,
|
|
@@ -27647,7 +27644,7 @@ function TurnIndicator({
|
|
|
27647
27644
|
}
|
|
27648
27645
|
);
|
|
27649
27646
|
}
|
|
27650
|
-
var sizeMap12,
|
|
27647
|
+
var sizeMap12, DEFAULT_ASSET_URL7;
|
|
27651
27648
|
var init_TurnIndicator = __esm({
|
|
27652
27649
|
"components/game/2d/atoms/TurnIndicator.tsx"() {
|
|
27653
27650
|
init_cn();
|
|
@@ -27659,7 +27656,7 @@ var init_TurnIndicator = __esm({
|
|
|
27659
27656
|
md: { wrapper: "text-sm gap-2 px-3 py-1", dot: "w-2 h-2" },
|
|
27660
27657
|
lg: { wrapper: "text-base gap-2.5 px-4 py-1.5", dot: "w-2.5 h-2.5" }
|
|
27661
27658
|
};
|
|
27662
|
-
|
|
27659
|
+
DEFAULT_ASSET_URL7 = {
|
|
27663
27660
|
url: "https://almadar-kflow-assets.web.app/shared/effects/particles/symbol_01.png",
|
|
27664
27661
|
role: "ui",
|
|
27665
27662
|
category: "turn"
|
|
@@ -27668,7 +27665,7 @@ var init_TurnIndicator = __esm({
|
|
|
27668
27665
|
}
|
|
27669
27666
|
});
|
|
27670
27667
|
function WaypointMarker({
|
|
27671
|
-
assetUrl =
|
|
27668
|
+
assetUrl = DEFAULT_ASSET_URL8,
|
|
27672
27669
|
label,
|
|
27673
27670
|
icon,
|
|
27674
27671
|
active = true,
|
|
@@ -27728,7 +27725,7 @@ function WaypointMarker({
|
|
|
27728
27725
|
)
|
|
27729
27726
|
] });
|
|
27730
27727
|
}
|
|
27731
|
-
var
|
|
27728
|
+
var DEFAULT_ASSET_URL8, sizeMap13, checkIcon;
|
|
27732
27729
|
var init_WaypointMarker = __esm({
|
|
27733
27730
|
"components/game/2d/atoms/WaypointMarker.tsx"() {
|
|
27734
27731
|
init_cn();
|
|
@@ -27736,7 +27733,7 @@ var init_WaypointMarker = __esm({
|
|
|
27736
27733
|
init_Box();
|
|
27737
27734
|
init_Typography();
|
|
27738
27735
|
init_GameIcon();
|
|
27739
|
-
|
|
27736
|
+
DEFAULT_ASSET_URL8 = {
|
|
27740
27737
|
url: "https://almadar-kflow-assets.web.app/shared/world-map/battle_marker.png",
|
|
27741
27738
|
role: "ui",
|
|
27742
27739
|
category: "waypoint"
|
|
@@ -27757,7 +27754,7 @@ function formatDuration(seconds) {
|
|
|
27757
27754
|
return `${Math.round(seconds)}s`;
|
|
27758
27755
|
}
|
|
27759
27756
|
function StatusEffect({
|
|
27760
|
-
assetUrl =
|
|
27757
|
+
assetUrl = DEFAULT_ASSET_URL9,
|
|
27761
27758
|
icon,
|
|
27762
27759
|
label = "Shield",
|
|
27763
27760
|
duration = 30,
|
|
@@ -27808,7 +27805,7 @@ function StatusEffect({
|
|
|
27808
27805
|
label && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { as: "span", className: "text-xs text-muted-foreground mt-0.5 text-center whitespace-nowrap", children: label })
|
|
27809
27806
|
] });
|
|
27810
27807
|
}
|
|
27811
|
-
var
|
|
27808
|
+
var DEFAULT_ASSET_URL9, sizeMap14, variantStyles8;
|
|
27812
27809
|
var init_StatusEffect = __esm({
|
|
27813
27810
|
"components/game/2d/atoms/StatusEffect.tsx"() {
|
|
27814
27811
|
init_cn();
|
|
@@ -27816,7 +27813,7 @@ var init_StatusEffect = __esm({
|
|
|
27816
27813
|
init_Box();
|
|
27817
27814
|
init_Typography();
|
|
27818
27815
|
init_GameIcon();
|
|
27819
|
-
|
|
27816
|
+
DEFAULT_ASSET_URL9 = {
|
|
27820
27817
|
url: "https://almadar-kflow-assets.web.app/shared/effects/particles/flame_01.png",
|
|
27821
27818
|
role: "ui",
|
|
27822
27819
|
category: "effect"
|
package/dist/components/index.js
CHANGED
|
@@ -20052,7 +20052,7 @@ var init_ConnectionBlock = __esm({
|
|
|
20052
20052
|
}
|
|
20053
20053
|
});
|
|
20054
20054
|
function ControlButton({
|
|
20055
|
-
assetUrl
|
|
20055
|
+
assetUrl,
|
|
20056
20056
|
label,
|
|
20057
20057
|
icon,
|
|
20058
20058
|
size = "md",
|
|
@@ -20130,7 +20130,7 @@ function ControlButton({
|
|
|
20130
20130
|
}
|
|
20131
20131
|
);
|
|
20132
20132
|
}
|
|
20133
|
-
var sizeMap5, shapeMap, variantMap
|
|
20133
|
+
var sizeMap5, shapeMap, variantMap;
|
|
20134
20134
|
var init_ControlButton = __esm({
|
|
20135
20135
|
"components/game/2d/atoms/ControlButton.tsx"() {
|
|
20136
20136
|
"use client";
|
|
@@ -20157,11 +20157,6 @@ var init_ControlButton = __esm({
|
|
|
20157
20157
|
secondary: "bg-secondary text-secondary-foreground border-border hover:bg-secondary-hover",
|
|
20158
20158
|
ghost: "bg-transparent text-foreground border-border hover:bg-muted"
|
|
20159
20159
|
};
|
|
20160
|
-
DEFAULT_ASSET_URL3 = {
|
|
20161
|
-
url: "https://almadar-kflow-assets.web.app/shared/effects/particles/circle_01.png",
|
|
20162
|
-
role: "ui",
|
|
20163
|
-
category: "control"
|
|
20164
|
-
};
|
|
20165
20160
|
ControlButton.displayName = "ControlButton";
|
|
20166
20161
|
}
|
|
20167
20162
|
});
|
|
@@ -20231,15 +20226,17 @@ function ControlGrid({
|
|
|
20231
20226
|
},
|
|
20232
20227
|
d
|
|
20233
20228
|
);
|
|
20229
|
+
const usesSemantic = !!directionEvents;
|
|
20230
|
+
const cell = (d) => !usesSemantic || directionEvents?.[d] ? dir(d) : /* @__PURE__ */ jsx(Box, {}, d);
|
|
20234
20231
|
return /* @__PURE__ */ jsxs(Box, { className: cn("inline-grid grid-cols-3", ds.gap, ds.container, className), children: [
|
|
20235
20232
|
/* @__PURE__ */ jsx(Box, {}),
|
|
20236
|
-
|
|
20233
|
+
cell("up"),
|
|
20237
20234
|
/* @__PURE__ */ jsx(Box, {}),
|
|
20238
|
-
|
|
20235
|
+
cell("left"),
|
|
20239
20236
|
/* @__PURE__ */ jsx(Box, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(Box, { className: "w-6 h-6 rounded-interactive bg-muted border-2 border-muted-foreground" }) }),
|
|
20240
|
-
|
|
20237
|
+
cell("right"),
|
|
20241
20238
|
/* @__PURE__ */ jsx(Box, {}),
|
|
20242
|
-
|
|
20239
|
+
cell("down"),
|
|
20243
20240
|
/* @__PURE__ */ jsx(Box, {})
|
|
20244
20241
|
] });
|
|
20245
20242
|
}
|
|
@@ -20586,7 +20583,7 @@ var init_CounterTemplate = __esm({
|
|
|
20586
20583
|
}
|
|
20587
20584
|
});
|
|
20588
20585
|
function DamageNumber({
|
|
20589
|
-
assetUrl =
|
|
20586
|
+
assetUrl = DEFAULT_ASSET_URL3,
|
|
20590
20587
|
value = 42,
|
|
20591
20588
|
type = "damage",
|
|
20592
20589
|
size = "md",
|
|
@@ -20614,7 +20611,7 @@ function DamageNumber({
|
|
|
20614
20611
|
)
|
|
20615
20612
|
] });
|
|
20616
20613
|
}
|
|
20617
|
-
var sizeMap6, typeStyles, floatKeyframes,
|
|
20614
|
+
var sizeMap6, typeStyles, floatKeyframes, DEFAULT_ASSET_URL3;
|
|
20618
20615
|
var init_DamageNumber = __esm({
|
|
20619
20616
|
"components/game/2d/atoms/DamageNumber.tsx"() {
|
|
20620
20617
|
init_cn();
|
|
@@ -20638,7 +20635,7 @@ var init_DamageNumber = __esm({
|
|
|
20638
20635
|
100% { opacity: 0; transform: translateY(-32px) scale(0.8); }
|
|
20639
20636
|
}
|
|
20640
20637
|
`;
|
|
20641
|
-
|
|
20638
|
+
DEFAULT_ASSET_URL3 = {
|
|
20642
20639
|
url: "https://almadar-kflow-assets.web.app/shared/effects/particles/spark_01.png",
|
|
20643
20640
|
role: "effect",
|
|
20644
20641
|
category: "effect"
|
|
@@ -27276,7 +27273,7 @@ function isKnownState(s) {
|
|
|
27276
27273
|
return s in DEFAULT_STATE_STYLES;
|
|
27277
27274
|
}
|
|
27278
27275
|
function StateIndicator({
|
|
27279
|
-
assetUrl =
|
|
27276
|
+
assetUrl = DEFAULT_ASSET_URL4,
|
|
27280
27277
|
state = "idle",
|
|
27281
27278
|
label,
|
|
27282
27279
|
size = "md",
|
|
@@ -27306,14 +27303,14 @@ function StateIndicator({
|
|
|
27306
27303
|
}
|
|
27307
27304
|
);
|
|
27308
27305
|
}
|
|
27309
|
-
var
|
|
27306
|
+
var DEFAULT_ASSET_URL4, DEFAULT_STATE_STYLES, DEFAULT_STYLE, STATIC_STATES, SIZE_CLASSES;
|
|
27310
27307
|
var init_StateIndicator = __esm({
|
|
27311
27308
|
"components/game/2d/atoms/StateIndicator.tsx"() {
|
|
27312
27309
|
init_Box();
|
|
27313
27310
|
init_Icon();
|
|
27314
27311
|
init_cn();
|
|
27315
27312
|
init_GameIcon();
|
|
27316
|
-
|
|
27313
|
+
DEFAULT_ASSET_URL4 = {
|
|
27317
27314
|
url: "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png",
|
|
27318
27315
|
role: "ui",
|
|
27319
27316
|
category: "state"
|
|
@@ -27399,7 +27396,7 @@ var init_TimerDisplay = __esm({
|
|
|
27399
27396
|
}
|
|
27400
27397
|
});
|
|
27401
27398
|
function ResourceCounter({
|
|
27402
|
-
assetUrl =
|
|
27399
|
+
assetUrl = DEFAULT_ASSET_URL5,
|
|
27403
27400
|
icon,
|
|
27404
27401
|
label = "Gold",
|
|
27405
27402
|
value = 250,
|
|
@@ -27432,7 +27429,7 @@ function ResourceCounter({
|
|
|
27432
27429
|
}
|
|
27433
27430
|
);
|
|
27434
27431
|
}
|
|
27435
|
-
var colorTokenClasses2,
|
|
27432
|
+
var colorTokenClasses2, DEFAULT_ASSET_URL5, sizeMap10;
|
|
27436
27433
|
var init_ResourceCounter = __esm({
|
|
27437
27434
|
"components/game/2d/atoms/ResourceCounter.tsx"() {
|
|
27438
27435
|
init_cn();
|
|
@@ -27448,7 +27445,7 @@ var init_ResourceCounter = __esm({
|
|
|
27448
27445
|
error: "text-error",
|
|
27449
27446
|
muted: "text-muted-foreground"
|
|
27450
27447
|
};
|
|
27451
|
-
|
|
27448
|
+
DEFAULT_ASSET_URL5 = {
|
|
27452
27449
|
url: "https://almadar-kflow-assets.web.app/shared/world-map/gold_mine.png",
|
|
27453
27450
|
role: "ui",
|
|
27454
27451
|
category: "coin"
|
|
@@ -27462,7 +27459,7 @@ var init_ResourceCounter = __esm({
|
|
|
27462
27459
|
}
|
|
27463
27460
|
});
|
|
27464
27461
|
function ItemSlot({
|
|
27465
|
-
assetUrl =
|
|
27462
|
+
assetUrl = DEFAULT_ASSET_URL6,
|
|
27466
27463
|
icon = "sword",
|
|
27467
27464
|
label = "Iron Sword",
|
|
27468
27465
|
quantity,
|
|
@@ -27517,7 +27514,7 @@ function ItemSlot({
|
|
|
27517
27514
|
}
|
|
27518
27515
|
);
|
|
27519
27516
|
}
|
|
27520
|
-
var sizeMap11, rarityBorderMap, rarityGlowMap,
|
|
27517
|
+
var sizeMap11, rarityBorderMap, rarityGlowMap, DEFAULT_ASSET_URL6, assetSizeMap;
|
|
27521
27518
|
var init_ItemSlot = __esm({
|
|
27522
27519
|
"components/game/2d/atoms/ItemSlot.tsx"() {
|
|
27523
27520
|
"use client";
|
|
@@ -27547,7 +27544,7 @@ var init_ItemSlot = __esm({
|
|
|
27547
27544
|
epic: "shadow-lg",
|
|
27548
27545
|
legendary: "shadow-lg"
|
|
27549
27546
|
};
|
|
27550
|
-
|
|
27547
|
+
DEFAULT_ASSET_URL6 = {
|
|
27551
27548
|
url: "https://almadar-kflow-assets.web.app/shared/isometric-dungeon/Isometric/chestClosed_E.png",
|
|
27552
27549
|
role: "item",
|
|
27553
27550
|
category: "item"
|
|
@@ -27561,7 +27558,7 @@ var init_ItemSlot = __esm({
|
|
|
27561
27558
|
}
|
|
27562
27559
|
});
|
|
27563
27560
|
function TurnIndicator({
|
|
27564
|
-
assetUrl =
|
|
27561
|
+
assetUrl = DEFAULT_ASSET_URL7,
|
|
27565
27562
|
currentTurn = 1,
|
|
27566
27563
|
maxTurns,
|
|
27567
27564
|
activeTeam,
|
|
@@ -27601,7 +27598,7 @@ function TurnIndicator({
|
|
|
27601
27598
|
}
|
|
27602
27599
|
);
|
|
27603
27600
|
}
|
|
27604
|
-
var sizeMap12,
|
|
27601
|
+
var sizeMap12, DEFAULT_ASSET_URL7;
|
|
27605
27602
|
var init_TurnIndicator = __esm({
|
|
27606
27603
|
"components/game/2d/atoms/TurnIndicator.tsx"() {
|
|
27607
27604
|
init_cn();
|
|
@@ -27613,7 +27610,7 @@ var init_TurnIndicator = __esm({
|
|
|
27613
27610
|
md: { wrapper: "text-sm gap-2 px-3 py-1", dot: "w-2 h-2" },
|
|
27614
27611
|
lg: { wrapper: "text-base gap-2.5 px-4 py-1.5", dot: "w-2.5 h-2.5" }
|
|
27615
27612
|
};
|
|
27616
|
-
|
|
27613
|
+
DEFAULT_ASSET_URL7 = {
|
|
27617
27614
|
url: "https://almadar-kflow-assets.web.app/shared/effects/particles/symbol_01.png",
|
|
27618
27615
|
role: "ui",
|
|
27619
27616
|
category: "turn"
|
|
@@ -27622,7 +27619,7 @@ var init_TurnIndicator = __esm({
|
|
|
27622
27619
|
}
|
|
27623
27620
|
});
|
|
27624
27621
|
function WaypointMarker({
|
|
27625
|
-
assetUrl =
|
|
27622
|
+
assetUrl = DEFAULT_ASSET_URL8,
|
|
27626
27623
|
label,
|
|
27627
27624
|
icon,
|
|
27628
27625
|
active = true,
|
|
@@ -27682,7 +27679,7 @@ function WaypointMarker({
|
|
|
27682
27679
|
)
|
|
27683
27680
|
] });
|
|
27684
27681
|
}
|
|
27685
|
-
var
|
|
27682
|
+
var DEFAULT_ASSET_URL8, sizeMap13, checkIcon;
|
|
27686
27683
|
var init_WaypointMarker = __esm({
|
|
27687
27684
|
"components/game/2d/atoms/WaypointMarker.tsx"() {
|
|
27688
27685
|
init_cn();
|
|
@@ -27690,7 +27687,7 @@ var init_WaypointMarker = __esm({
|
|
|
27690
27687
|
init_Box();
|
|
27691
27688
|
init_Typography();
|
|
27692
27689
|
init_GameIcon();
|
|
27693
|
-
|
|
27690
|
+
DEFAULT_ASSET_URL8 = {
|
|
27694
27691
|
url: "https://almadar-kflow-assets.web.app/shared/world-map/battle_marker.png",
|
|
27695
27692
|
role: "ui",
|
|
27696
27693
|
category: "waypoint"
|
|
@@ -27711,7 +27708,7 @@ function formatDuration(seconds) {
|
|
|
27711
27708
|
return `${Math.round(seconds)}s`;
|
|
27712
27709
|
}
|
|
27713
27710
|
function StatusEffect({
|
|
27714
|
-
assetUrl =
|
|
27711
|
+
assetUrl = DEFAULT_ASSET_URL9,
|
|
27715
27712
|
icon,
|
|
27716
27713
|
label = "Shield",
|
|
27717
27714
|
duration = 30,
|
|
@@ -27762,7 +27759,7 @@ function StatusEffect({
|
|
|
27762
27759
|
label && /* @__PURE__ */ jsx(Typography, { as: "span", className: "text-xs text-muted-foreground mt-0.5 text-center whitespace-nowrap", children: label })
|
|
27763
27760
|
] });
|
|
27764
27761
|
}
|
|
27765
|
-
var
|
|
27762
|
+
var DEFAULT_ASSET_URL9, sizeMap14, variantStyles8;
|
|
27766
27763
|
var init_StatusEffect = __esm({
|
|
27767
27764
|
"components/game/2d/atoms/StatusEffect.tsx"() {
|
|
27768
27765
|
init_cn();
|
|
@@ -27770,7 +27767,7 @@ var init_StatusEffect = __esm({
|
|
|
27770
27767
|
init_Box();
|
|
27771
27768
|
init_Typography();
|
|
27772
27769
|
init_GameIcon();
|
|
27773
|
-
|
|
27770
|
+
DEFAULT_ASSET_URL9 = {
|
|
27774
27771
|
url: "https://almadar-kflow-assets.web.app/shared/effects/particles/flame_01.png",
|
|
27775
27772
|
role: "ui",
|
|
27776
27773
|
category: "effect"
|
package/dist/lib/index.cjs
CHANGED
|
@@ -503,11 +503,14 @@ function recordTransition(trace) {
|
|
|
503
503
|
}
|
|
504
504
|
if (entry.event === "INIT") {
|
|
505
505
|
const hasFetch = entry.effects.some((e) => e.type === "fetch");
|
|
506
|
+
const hasEntitySeed = entry.effects.some(
|
|
507
|
+
(e) => e.type === "set" && typeof e.args[0] === "string" && e.args[0].startsWith("@entity.")
|
|
508
|
+
);
|
|
506
509
|
const checkId = `init-fetch-${entry.traitName}`;
|
|
507
|
-
if (hasFetch) {
|
|
510
|
+
if (hasFetch || hasEntitySeed) {
|
|
508
511
|
registerCheck(
|
|
509
512
|
checkId,
|
|
510
|
-
`INIT transition for "${entry.traitName}" has fetch effect`,
|
|
513
|
+
`INIT transition for "${entry.traitName}" has fetch or entity-seed effect`,
|
|
511
514
|
"pass"
|
|
512
515
|
);
|
|
513
516
|
} else {
|
package/dist/lib/index.js
CHANGED
|
@@ -501,11 +501,14 @@ function recordTransition(trace) {
|
|
|
501
501
|
}
|
|
502
502
|
if (entry.event === "INIT") {
|
|
503
503
|
const hasFetch = entry.effects.some((e) => e.type === "fetch");
|
|
504
|
+
const hasEntitySeed = entry.effects.some(
|
|
505
|
+
(e) => e.type === "set" && typeof e.args[0] === "string" && e.args[0].startsWith("@entity.")
|
|
506
|
+
);
|
|
504
507
|
const checkId = `init-fetch-${entry.traitName}`;
|
|
505
|
-
if (hasFetch) {
|
|
508
|
+
if (hasFetch || hasEntitySeed) {
|
|
506
509
|
registerCheck(
|
|
507
510
|
checkId,
|
|
508
|
-
`INIT transition for "${entry.traitName}" has fetch effect`,
|
|
511
|
+
`INIT transition for "${entry.traitName}" has fetch or entity-seed effect`,
|
|
509
512
|
"pass"
|
|
510
513
|
);
|
|
511
514
|
} else {
|