Complete Cocos Creator port with level bundles, themes, and tooling.

Adds level prefabs, theme assets, audio, extensions, and deployment scripts for the Unity WebGL migration.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-16 15:30:58 +08:00
parent cba5105908
commit d393302388
6248 changed files with 17322729 additions and 11036 deletions

View File

@@ -0,0 +1,56 @@
/**
* 移动 / 骑乘规则moveCondition 查表与 Unity Movement.MoveNextCheck 一致)
*
* 骑乘联动、上下车见 PlayerController / VehicleController非查表部分
*/
import { GridType, MoverRole, getMoveCondition, lookupMove } from '../core/Define';
export type MoveCheckResult = -1 | 0 | 1;
/** Unity PlayerController.OnMovingtargetGridType === None 时载具跟随 */
export function vehicleFollowsLandingTile(liveGrid: GridType): boolean {
return liveGrid === GridType.None;
}
/** 落到瓦片砖面时下车None 保持骑乘Ride 动态格由上车逻辑处理) */
export function shouldDismountOnTile(tileGrid: GridType): boolean {
return tileGrid === GridType.Across
|| tileGrid === GridType.Jump
|| tileGrid === GridType.Block
|| tileGrid === GridType.Boundary;
}
/** 落格后尝试保持骑乘:脚下为 None或动态 Ride 且同格有载具 */
export function canStayMountedAfterLanding(liveGrid: GridType): boolean {
return liveGrid === GridType.None || liveGrid === GridType.Ride;
}
/** 移动落点世界坐标应使用的 mover 角色(对齐 Unity 共享 transform / 载具甲板) */
export function moverRoleForLandingCell(
role: MoverRole,
liveGrid: GridType,
mounted: boolean,
): MoverRole {
if (mounted && vehicleFollowsLandingTile(liveGrid)) return 'vehicle';
if (!mounted && liveGrid === GridType.Ride) return 'vehicle';
return role;
}
/**
* 查表判定一步移动(对齐 Unity Movement.MoveNextCheck
* - 1可移动
* - 0不动仅多人模式表外组合单人表外为 -1
* - -1失败
*/
export function checkMoveStep(
role: MoverRole,
curGrid: GridType,
nextGrid: GridType,
isJump: boolean,
mult = false,
): MoveCheckResult {
const table = getMoveCondition(mult);
const v = lookupMove(table, role, curGrid, nextGrid, isJump);
if (v === undefined) return mult ? 0 : -1;
return v as MoveCheckResult;
}