feat(jump-hop): redesign sling platform gameplay
This commit is contained in:
@@ -24,7 +24,6 @@ export type JumpHopTileType =
|
||||
|
||||
export type JumpHopActionType =
|
||||
| 'compile-draft'
|
||||
| 'regenerate-character'
|
||||
| 'regenerate-tiles'
|
||||
| 'update-work-meta'
|
||||
| 'update-difficulty';
|
||||
@@ -35,19 +34,21 @@ export type JumpHopJumpResult = 'miss' | 'hit' | 'perfect' | 'finish';
|
||||
|
||||
export interface JumpHopWorkspaceCreateRequest {
|
||||
templateId: string;
|
||||
workTitle: string;
|
||||
workDescription: string;
|
||||
themeTags: string[];
|
||||
difficulty: JumpHopDifficulty;
|
||||
stylePreset: JumpHopStylePreset;
|
||||
characterPrompt: string;
|
||||
tilePrompt: string;
|
||||
themeText: string;
|
||||
workTitle?: string;
|
||||
workDescription?: string;
|
||||
themeTags?: string[];
|
||||
difficulty?: JumpHopDifficulty;
|
||||
stylePreset?: JumpHopStylePreset;
|
||||
characterPrompt?: string;
|
||||
tilePrompt?: string;
|
||||
endMoodPrompt?: string | null;
|
||||
}
|
||||
|
||||
export interface JumpHopActionRequest {
|
||||
actionType: JumpHopActionType;
|
||||
profileId?: string | null;
|
||||
themeText?: string | null;
|
||||
workTitle?: string | null;
|
||||
workDescription?: string | null;
|
||||
themeTags?: string[] | null;
|
||||
@@ -73,12 +74,23 @@ export interface JumpHopCharacterAsset {
|
||||
height: number;
|
||||
}
|
||||
|
||||
export interface JumpHopDefaultCharacter {
|
||||
characterId: string;
|
||||
displayName: string;
|
||||
modelKind: 'builtin-three';
|
||||
bodyColor: string;
|
||||
accentColor: string;
|
||||
}
|
||||
|
||||
export interface JumpHopTileAsset {
|
||||
tileType: JumpHopTileType;
|
||||
tileId?: string;
|
||||
imageSrc: string;
|
||||
imageObjectKey: string;
|
||||
assetObjectId: string;
|
||||
sourceAtlasCell: string;
|
||||
atlasRow?: number;
|
||||
atlasCol?: number;
|
||||
visualWidth: number;
|
||||
visualHeight: number;
|
||||
topSurfaceRadius: number;
|
||||
@@ -126,11 +138,13 @@ export interface JumpHopDraftResponse {
|
||||
templateId: string;
|
||||
templateName: string;
|
||||
profileId: string | null;
|
||||
themeText: string;
|
||||
workTitle: string;
|
||||
workDescription: string;
|
||||
themeTags: string[];
|
||||
difficulty: JumpHopDifficulty;
|
||||
stylePreset: JumpHopStylePreset;
|
||||
defaultCharacter?: JumpHopDefaultCharacter | null;
|
||||
characterPrompt: string;
|
||||
tilePrompt: string;
|
||||
endMoodPrompt: string | null;
|
||||
@@ -167,6 +181,7 @@ export interface JumpHopWorkSummaryResponse {
|
||||
profileId: string;
|
||||
ownerUserId: string;
|
||||
sourceSessionId: string | null;
|
||||
themeText: string;
|
||||
workTitle: string;
|
||||
workDescription: string;
|
||||
themeTags: string[];
|
||||
@@ -185,6 +200,7 @@ export interface JumpHopWorkProfileResponse {
|
||||
summary: JumpHopWorkSummaryResponse;
|
||||
draft: JumpHopDraftResponse;
|
||||
path: JumpHopPath;
|
||||
defaultCharacter?: JumpHopDefaultCharacter | null;
|
||||
characterAsset: JumpHopCharacterAsset;
|
||||
tileAtlasAsset: JumpHopCharacterAsset;
|
||||
tileAssets: JumpHopTileAsset[];
|
||||
@@ -208,6 +224,7 @@ export interface JumpHopGalleryCardResponse {
|
||||
profileId: string;
|
||||
ownerUserId: string;
|
||||
authorDisplayName: string;
|
||||
themeText: string;
|
||||
workTitle: string;
|
||||
workDescription: string;
|
||||
coverImageSrc: string | null;
|
||||
@@ -237,6 +254,8 @@ export interface JumpHopRuntimeRunSnapshotResponse {
|
||||
ownerUserId: string;
|
||||
status: JumpHopRunStatus;
|
||||
currentPlatformIndex: number;
|
||||
successfulJumpCount: number;
|
||||
durationMs: number;
|
||||
score: number;
|
||||
combo: number;
|
||||
path: JumpHopPath;
|
||||
@@ -251,10 +270,13 @@ export interface JumpHopRunResponse {
|
||||
|
||||
export interface JumpHopStartRunRequest {
|
||||
profileId: string;
|
||||
runtimeMode?: 'draft' | 'published';
|
||||
}
|
||||
|
||||
export interface JumpHopJumpRequest {
|
||||
chargeMs: number;
|
||||
dragDistance: number;
|
||||
dragVectorX?: number;
|
||||
dragVectorY?: number;
|
||||
clientEventId: string;
|
||||
}
|
||||
|
||||
@@ -265,3 +287,17 @@ export interface JumpHopRestartRunRequest {
|
||||
export interface JumpHopJumpResponse {
|
||||
run: JumpHopRuntimeRunSnapshotResponse;
|
||||
}
|
||||
|
||||
export interface JumpHopLeaderboardEntry {
|
||||
rank: number;
|
||||
playerId: string;
|
||||
successfulJumpCount: number;
|
||||
durationMs: number;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface JumpHopLeaderboardResponse {
|
||||
profileId: string;
|
||||
items: JumpHopLeaderboardEntry[];
|
||||
viewerBest?: JumpHopLeaderboardEntry | null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user