Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
b8d6f75
wip animated objects
Ameth7st Aug 10, 2026
6c81d99
more changes
Ameth7st Aug 10, 2026
b7aa85d
more objects
Ameth7st Aug 10, 2026
9f37217
new editor tabs and more objects
Ameth7st Aug 10, 2026
d64f2b7
ill sort these later
Ameth7st Aug 10, 2026
275be6f
unclutter deco tab
Ameth7st Aug 10, 2026
285ecfa
wip ldm, and fixed credits white box of doom
Ameth7st Aug 10, 2026
a25d816
finished sorting pixelsheet
Ameth7st Aug 10, 2026
64ab8ee
bigger object previews
Ameth7st Aug 10, 2026
41e9edb
i cant see the end of the horizon.... HATSUNE MIKU!???
Ameth7st Aug 11, 2026
ee60289
menu update
Ameth7st Aug 11, 2026
b53ed27
object fixes.... should be done now gonna do one last playtest
Ameth7st Aug 11, 2026
d1291a1
performance tab and ldm info
Ameth7st Aug 11, 2026
40a8cc7
practice music bypass renamed to practice music sync, info messages a…
Ameth7st Aug 11, 2026
c70b9ab
just- just one more feature so performance tab doesnt look too empty <3
Ameth7st Aug 11, 2026
594ff91
icon kit changes n changed/added some buttons
Ameth7st Aug 12, 2026
9758e2c
ldm objects
Ameth7st Aug 12, 2026
c39f994
more ldm
Ameth7st Aug 12, 2026
da6f121
look at the little script holding a little tiny new piece of code <3
Ameth7st Aug 12, 2026
3c71222
update log... uh... updated.
Ameth7st Aug 12, 2026
58b0755
everytime i update this god forsaken update log i either forget to ad…
Ameth7st Aug 12, 2026
b55c0f6
Merge branch 'main' into main
Ameth7st Aug 12, 2026
25d381d
wave fix 1
Ameth7st Aug 12, 2026
ccf3dad
temp1
Ameth7st Aug 12, 2026
324dde6
temp2
Ameth7st Aug 12, 2026
170664b
wave 2
Ameth7st Aug 12, 2026
0c5a611
wave3
Ameth7st Aug 12, 2026
ca9105c
wave fix final
Ameth7st Aug 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
305 changes: 238 additions & 67 deletions assets/scripts/core/game-scene.js

Large diffs are not rendered by default.

11 changes: 7 additions & 4 deletions assets/scripts/core/level-editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -1546,7 +1546,8 @@ class LevelEditor {
"FireSheet_01-hd",
"PixelSheet_01-hd",
"GJ_GameSheetEditor",
"GJ_ParticleSheet-uhd"
"GJ_ParticleSheet-uhd",
"Wavesheet"
];
for (const key of sheets) {
if (this.textures.exists(key) && this.textures.get(key).has(frameName)) {
Expand Down Expand Up @@ -1823,7 +1824,7 @@ class LevelEditor {
const maxDim = Math.max(visualW, visualH);
const scaleMultiplier = targetSize / maxDim;

preview.setScale(Math.min(scaleMultiplier, 0.6));
preview.setScale(Math.min(scaleMultiplier, 0.725));

return preview;
}
Expand All @@ -1835,10 +1836,12 @@ class LevelEditor {
if (this._categoryContainer) this._categoryContainer.destroy();

const OBJECT_CATEGORIES = [
{ id: "blocks", icon: "tab1", types: ["solid"] },
{ id: "blocks", icon: "tab1", types: ["solid", "soliddeco"] },
{ id: "slopes", icon: "tab6", types: ["slope"] },
{ id: "hazards", icon: "tab2", types: ["hazard", "spike"] },
{ id: "orbs", icon: "tab3", types: ["ring", "pad", "portal", "speed"] },
{ id: "orbs", icon: "tab3", types: ["ring", "pad", "portal", "speed", "coin"] },
{ id: "pixel", icon: "tab7", types: ["pixel"] },
{ id: "particle", icon: "tab8", types: ["particle"] },
{ id: "deco", icon: "tab4", types: ["deco"] },
{ id: "triggers",icon: "tab5", types: ["trigger"] },
];
Expand Down
73 changes: 66 additions & 7 deletions assets/scripts/core/level.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ class Collider {
return leftWall ? "left" : "right";
}
}
const ldm_object = new Set([
503,505,504,1888,1887,1012,1013,1011,1886,1762,1763,1761,1269,1760,1270,1271,1274,1272,1273,1764,1765,1766,1767,1769,1292,1758,1291,1293,1759,1051,1058,1060,1752,1050,1052,1059,1061
]);

function _decodeTextObjectString(value) {
if (value === undefined || value === null) return "";
Expand Down Expand Up @@ -1320,7 +1323,7 @@ window.LevelObject = class LevelObject {
}
}
_isGlowVisible = () => {
return window.showGlow !== false && (!window.isEditor || window.showEditorGlow);
return !window.enableLDM && window.showGlow !== false && (!window.isEditor || window.showEditorGlow);
};
_getGlowAlphaMultiplier = () => {
return window.glowOpacity !== undefined ? window.glowOpacity : 0.5;
Expand Down Expand Up @@ -1742,6 +1745,9 @@ window.LevelObject = class LevelObject {
if (parseInt(levelObj?.id ?? 0, 10) === 749 && !levelObj?._generatedTeleportExit) {
return objectDef || allObjects[749] || null;
}
if (window.enableLDM && ldm_object.has(parseInt(levelObj?.id ?? 0, 10))) {
return null;
}

if (objectDef && objectDef.type === triggerType) {
if (this._nextObjectId === undefined) {
Expand Down Expand Up @@ -2313,7 +2319,7 @@ window.LevelObject = class LevelObject {
}
}

if (objectDef && objectDef.portalParticle && frameName && !window.isEditor && !scene?._editorPlaytestActive) {
if (objectDef && objectDef.portalParticle && frameName && !window.enableLDM && !window.isEditor && !scene?._editorPlaytestActive) {
const particleWorldX = worldX;
const particleWorldY = b(worldY);
const radiusFactor = 2;
Expand Down Expand Up @@ -2630,6 +2636,8 @@ window.LevelObject = class LevelObject {
_0x35f1ae.forEach((levelObj, index) => {
if (!levelObj || levelObj.id === undefined) return;

if (window.enableLDM && ldm_object.has(parseInt(levelObj.id, 10))) return;

const worldX = levelObj.x * 2;
const textY = typeof b === 'function' ? b(levelObj.y * 2) : levelObj.y * 2;

Expand All @@ -2642,7 +2650,7 @@ window.LevelObject = class LevelObject {
});
idText.setOrigin(0.5);
idText.setDepth(999);
idText.setVisible(window.showObjectIds);
idText.setVisible(window.showObjectIds && !window.enableLDM);

worldContainer.add(idText);

Expand Down Expand Up @@ -2681,6 +2689,10 @@ window.LevelObject = class LevelObject {
this._endPortalShine.setTint(window.mainColor);
this._endPortalShine.setScale(1, 960 / _0x3e25a9);
this.additiveContainer.add(this._endPortalShine);
if (window.enableLDM) {
this._endPortalGameY = 240;
return;
}
const _0x58cedb = _0x3b56d4 - 30;
const _0x4f52b7 = {
getRandomPoint: _0x4f04dd => {
Expand Down Expand Up @@ -2738,7 +2750,9 @@ window.LevelObject = class LevelObject {
const _0x32e645 = b(_0x1be4c3);
this._endPortalContainer.y = _0x32e645;
this._endPortalShine.y = _0x32e645;
this._endPortalEmitter.y = _0x32e645;
if (this._endPortalEmitter) {
this._endPortalEmitter.y = _0x32e645;
}
this._endPortalGameY = _0x1be4c3;
}
_isTriggerSaveObjectLive(uid) {
Expand Down Expand Up @@ -2904,12 +2918,54 @@ window.LevelObject = class LevelObject {
}
updateVisibility(_0xa5f1e1) {
this.updateTriggerEditorVisuals();
if (window.enableLDM) {
try {
if (this._endPortalEmitter && typeof this._endPortalEmitter.stop === 'function') {
this._endPortalEmitter.stop();
}
} catch (e) {}
try {
if (Array.isArray(this._sections)) {
for (const sec of this._sections) {
if (!Array.isArray(sec)) continue;
for (const obj of sec) {
if (!obj) continue;
try {
if (typeof obj.stop === 'function') obj.stop();
if (obj.emitters && Array.isArray(obj.emitters)) {
for (const em of obj.emitters) {
try { if (typeof em.stop === 'function') em.stop(); } catch (e) {}
}
}
} catch (e) {}
}
}
}
} catch (e) {}
try { if (this._glowSprites) for (const g of this._glowSprites) g.setVisible(false); } catch(e) {}
}
const _0x1dce22 = this._sectionContainers.length - 1;
if (_0x1dce22 < 0) {
return;
}
const particleScale = Math.max(0, Math.floor((_0xa5f1e1 - 200) / 400));
const sliderHeight = Math.min(_0x1dce22, Math.floor((_0xa5f1e1 + screenWidth + 200) / 400));
let cd = Number(window.cullDistance);
if (!Number.isFinite(cd)) cd = 3;
cd = Math.max(0, Math.min(3, Math.floor(cd)));

let particleScale, sliderHeight;
if (cd === 3) {
particleScale = Math.max(0, Math.floor((_0xa5f1e1 - 200) / 400));
sliderHeight = Math.min(_0x1dce22, Math.floor((_0xa5f1e1 + screenWidth + 200) / 400));
} else if (cd === 0) {
particleScale = _0x1dce22 + 1;
sliderHeight = -1;
} else {
const rightEdgeX = _0xa5f1e1 + screenWidth;
const centerSection = Math.max(0, Math.floor(rightEdgeX / 400));
const rangeRadius = cd;
particleScale = Math.max(0, centerSection - rangeRadius);
sliderHeight = Math.min(_0x1dce22, centerSection + rangeRadius);
}
const _0x1800fc = this._visMinSec;
const _0xc31046 = this._visMaxSec;
if (_0x1800fc < 0) {
Expand Down Expand Up @@ -2946,7 +3002,7 @@ window.LevelObject = class LevelObject {
}
}
updateObjectDebugIds() {
if (window.showObjectIds) {
if (window.showObjectIds && !window.enableLDM) {
if (this._debugIdTextsList && this._debugIdTextsList.length > 0) {
for (const idText of this._debugIdTextsList) {
if (idText) idText.setVisible(true);
Expand Down Expand Up @@ -3298,6 +3354,7 @@ window.LevelObject = class LevelObject {
}

_startPulseTrigger(trig) {
if (window.enableLDM) return;
if (!trig || !this._isTriggerSaveObjectLive(trig.uid)) return;
const totalDur = trig.fadeIn + trig.hold + trig.fadeOut;
this._activePulses.push({ trig, elapsed: 0, totalDuration: totalDur > 0 ? totalDur : 0.01 });
Expand Down Expand Up @@ -3581,6 +3638,7 @@ window.LevelObject = class LevelObject {
}

checkPulseTriggers(playerX) {
if (window.enableLDM) return;
while (this._pulseTriggerIdx < this._pulseTriggers.length) {
const trig = this._pulseTriggers[this._pulseTriggerIdx];
if (trig.x > playerX) break;
Expand All @@ -3589,6 +3647,7 @@ window.LevelObject = class LevelObject {
}
}
stepPulseTriggers(dt, colorManager) {
if (window.enableLDM) return;
let i = 0;
while (i < this._activePulses.length) {
const pulse = this._activePulses[i];
Expand Down
3 changes: 3 additions & 0 deletions assets/scripts/core/loading-screen.js
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ class BootScene extends Phaser.Scene {
this.load.atlas("GJ_GameSheetEditor", "assets/sheets/GJ_GameSheetEditor.png", "assets/sheets/GJ_GameSheetEditor.json");
this.load.atlas("GJ_GameSheetGlow", "assets/sheets/GJ_GameSheetGlow.png", "assets/sheets/GJ_GameSheetGlow.json");
this.load.atlas("GJ_GameSheetIcons", "assets/sheets/GJ_GameSheetIcons.png", "assets/sheets/GJ_GameSheetIcons.json");
this.load.atlas("Wavesheet", "assets/sheets/Wavesheet.png", "assets/sheets/Wavesheet.json");
this.load.json("Spider_AnimDesc", "assets/sheets/Spider_AnimDesc.json");
this.load.json("Robot_AnimDesc", "assets/sheets/Robot_AnimDesc.json");
this.load.atlas("GJ_LaunchSheet", "assets/sheets/GJ_LaunchSheet.png", "assets/sheets/GJ_LaunchSheet.json");
Expand Down Expand Up @@ -280,6 +281,8 @@ class BootScene extends Phaser.Scene {
this.load.image("tab4", "assets/sprites/tab4.png");
this.load.image("tab5", "assets/sprites/tab5.png");
this.load.image("tab6", "assets/sprites/tab6.png");
this.load.image("tab7", "assets/sprites/tab7.png");
this.load.image("tab8", "assets/sprites/tab8.png");
this.load.image("GJ_moveBtn", "assets/sprites/GJ_moveBtn.png");
this.load.image("GJ_moveSBtn", "assets/sprites/GJ_moveSBtn.png");
this.load.image("slidergroove2", "assets/sprites/slidergroove2.png");
Expand Down
32 changes: 26 additions & 6 deletions assets/scripts/core/player.js
Original file line number Diff line number Diff line change
Expand Up @@ -1572,6 +1572,22 @@ class PlayerObject {
return;
}

if (window.enableLDM) {
if (this._particleEmitter) this._particleEmitter.stop();
this._particleActive = false;
if (this._flyParticleEmitter) this._flyParticleEmitter.stop();
this._flyParticleActive = false;
if (this._flyParticle2Emitter) this._flyParticle2Emitter.stop();
this._flyParticle2Active = false;
if (this._shipDragEmitter) this._shipDragEmitter.stop();
this._shipDragActive = false;
this._streak.stop();
this._streak.reset();
this._waveTrail.stop();
this._waveTrail.reset();
return;
}

if (this.p.isDead) {
return;
}
Expand Down Expand Up @@ -2295,11 +2311,13 @@ if (this.p.isFlying || this.p.isUfo) {
}
this.stopRotation();
if (_0x4a38a5 && !this.p.isFlying && !this.p.isWave && !this.p.isSpider && !this._scene?._editorPlaytestActive) {
this._landIdx = !this._landIdx;
const _0x31584b = this._landIdx ? this._landEmitter1 : this._landEmitter2;
const _0x2248d5 = this._scene._playerWorldX;
const _0x17e0bb = this.p.gravityFlipped ? b(this.p.y) - 30 : b(this.p.y) + 30;
_0x31584b.explode(10, _0x2248d5, _0x17e0bb);
if (!window.enableLDM) {
this._landIdx = !this._landIdx;
const _0x31584b = this._landIdx ? this._landEmitter1 : this._landEmitter2;
const _0x2248d5 = this._scene._playerWorldX;
const _0x17e0bb = this.p.gravityFlipped ? b(this.p.y) - 30 : b(this.p.y) + 30;
_0x31584b.explode(10, _0x2248d5, _0x17e0bb);
}
}
}
killPlayer() {
Expand Down Expand Up @@ -3573,7 +3591,9 @@ if (this.p.isFlying || this.p.isUfo) {
this.p.canJump = false;
this.p.isJumping = true;
try {
this._flyParticle2Emitter.explode(6, this._scene._playerWorldX, b(this.p.y) + (this.p.gravityFlipped ? -18 : 18));
if (!window.enableLDM) {
this._flyParticle2Emitter.explode(6, this._scene._playerWorldX, b(this.p.y) + (this.p.gravityFlipped ? -18 : 18));
}
} catch(e) {}
}
}
Expand Down
1 change: 1 addition & 0 deletions assets/scripts/core/triggers.js
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ function circleEffect(gameScene, xPos, yPos, radius, radius2, duration, filled =
});
}
function particleEffect(gameScene, color1 = 16777215, color2 = 16777215) {
if (window.enableLDM) return;
const basePos = 200;
const xPos = basePos + (screenWidth - 400) * Math.random();
const yPos = basePos + Math.random() * 240;
Expand Down
Loading