1
0
mirror of https://github.com/shiroikitsu8/Bayshore_6r_legacy.git synced 2025-01-19 18:08:39 +01:00

Merge pull request #18 from ghkkk090/master

fix crown ghost bug, attract screen bug, *hopefully* ghost battle working (both saving and load)
This commit is contained in:
Luna 2022-08-05 16:55:51 +01:00 committed by GitHub
commit ed05c81c55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1509 additions and 747 deletions

View File

@ -0,0 +1,9 @@
-- AlterTable
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
-- AlterTable
ALTER TABLE "GhostTrail" ADD COLUMN "byAreaMergeSerial" INTEGER,
ADD COLUMN "byCarMergeSerial" INTEGER,
ADD COLUMN "byUserMergeSerial" INTEGER,
ADD COLUMN "trendBinaryByCar" BYTEA,
ADD COLUMN "trendBinaryByUser" BYTEA;

View File

@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
-- AlterTable
ALTER TABLE "GhostTrail" ADD COLUMN "driveDMergeSerial" INTEGER;

View File

@ -0,0 +1,8 @@
-- AlterTable
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
-- AlterTable
ALTER TABLE "GhostTrail" ADD COLUMN "tuneHandling" INTEGER NOT NULL DEFAULT 0,
ADD COLUMN "tunePower" INTEGER NOT NULL DEFAULT 0,
ALTER COLUMN "playedAt" SET DEFAULT 0,
ALTER COLUMN "crownBattle" SET DEFAULT false;

View File

@ -0,0 +1,30 @@
-- AlterTable
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
-- CreateTable
CREATE TABLE "GhostBattleRecord" (
"dbId" SERIAL NOT NULL,
"carId" INTEGER NOT NULL,
"tunePower" INTEGER NOT NULL DEFAULT 0,
"tuneHandling" INTEGER NOT NULL DEFAULT 0,
"opponent1CarId" INTEGER NOT NULL,
"opponent1Result" INTEGER NOT NULL,
"opponent1TunePower" INTEGER NOT NULL,
"opponent1TuneHandling" INTEGER NOT NULL,
"opponent2CarId" INTEGER,
"opponent2Result" INTEGER,
"opponent2TunePower" INTEGER,
"opponent2TuneHandling" INTEGER,
"opponent3CarId" INTEGER,
"opponent3Result" INTEGER,
"opponent3TunePower" INTEGER,
"opponent3TuneHandling" INTEGER,
"area" INTEGER NOT NULL DEFAULT 0,
"playedAt" INTEGER NOT NULL DEFAULT 0,
"playedShopName" TEXT NOT NULL DEFAULT 'Bayshore',
CONSTRAINT "GhostBattleRecord_pkey" PRIMARY KEY ("dbId")
);
-- AddForeignKey
ALTER TABLE "GhostBattleRecord" ADD CONSTRAINT "GhostBattleRecord_carId_fkey" FOREIGN KEY ("carId") REFERENCES "Car"("carId") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@ -0,0 +1,18 @@
-- AlterTable
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
-- CreateTable
CREATE TABLE "CarPathandTuning" (
"dbId" SERIAL NOT NULL,
"carId" INTEGER NOT NULL,
"area" INTEGER NOT NULL DEFAULT 0,
"ramp" INTEGER NOT NULL DEFAULT 0,
"path" INTEGER NOT NULL DEFAULT 0,
"tunePower" INTEGER NOT NULL DEFAULT 17,
"tuneHandling" INTEGER NOT NULL DEFAULT 17,
CONSTRAINT "CarPathandTuning_pkey" PRIMARY KEY ("dbId")
);
-- AddForeignKey
ALTER TABLE "CarPathandTuning" ADD CONSTRAINT "CarPathandTuning_carId_fkey" FOREIGN KEY ("carId") REFERENCES "Car"("carId") ON DELETE RESTRICT ON UPDATE CASCADE;

View File

@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
-- AlterTable
ALTER TABLE "CarPathandTuning" ADD COLUMN "lastPlayedAt" INTEGER NOT NULL DEFAULT 0;

View File

@ -132,6 +132,8 @@ model Car {
TimeAttackRecord TimeAttackRecord[]
CarCrown CarCrown[]
GhostTrail GhostTrail[]
GhostBattleRecord GhostBattleRecord[]
CarPathandTuning CarPathandTuning[]
}
model CarGTWing {
@ -215,8 +217,8 @@ model CarCrown {
}
model GhostTrail {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
area Int
ramp Int
@ -224,7 +226,50 @@ model GhostTrail {
trail Bytes
time Int?
driveData Bytes? @db.ByteA
driveDMergeSerial Int?
trendBinaryByUser Bytes? @db.ByteA
byUserMergeSerial Int?
trendBinaryByArea Bytes? @db.ByteA
playedAt Int
crownBattle Boolean
byAreaMergeSerial Int?
trendBinaryByCar Bytes? @db.ByteA
byCarMergeSerial Int?
playedAt Int @default(0)
tunePower Int @default(0)
tuneHandling Int @default(0)
crownBattle Boolean @default(false)
}
model GhostBattleRecord {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
tunePower Int @default(0)
tuneHandling Int @default(0)
opponent1CarId Int
opponent1Result Int
opponent1TunePower Int
opponent1TuneHandling Int
opponent2CarId Int?
opponent2Result Int?
opponent2TunePower Int?
opponent2TuneHandling Int?
opponent3CarId Int?
opponent3Result Int?
opponent3TunePower Int?
opponent3TuneHandling Int?
area Int @default(0)
playedAt Int @default(0)
playedShopName String @default("Bayshore")
}
model CarPathandTuning {
dbId Int @id @default(autoincrement())
car Car @relation(fields: [carId], references: [carId])
carId Int
area Int @default(0)
ramp Int @default(0)
path Int @default(0)
tunePower Int @default(17)
tuneHandling Int @default(17)
lastPlayedAt Int @default(0)
}

File diff suppressed because it is too large Load Diff

View File

@ -66,9 +66,9 @@ export default class StartupModule extends Module {
orderBy: {
time: 'asc'
},
take: 20,
take: 10,
});
if(ta_time.length !== 0){
if(ta_time.length > 0){
let list_ta: wmsrv.wm.protobuf.Ranking.Entry[] = [];
for(let j=0; j<ta_time.length; j++){
let car_ta = await prisma.car.findFirst({
@ -78,7 +78,7 @@ export default class StartupModule extends Module {
});
list_ta.push(wmsrv.wm.protobuf.Ranking.Entry.create({
carId: car_ta!.carId,
carId: ta_time[j].carId,
rank: car_ta!.level,
result: ta_time[j].time,
name: car_ta!.name,
@ -86,26 +86,26 @@ export default class StartupModule extends Module {
model: car_ta!.model,
visualModel: car_ta!.visualModel,
defaultColor: car_ta!.defaultColor,
tunePower: car_ta!.tunePower,
tuneHandling: car_ta!.tuneHandling,
tunePower: ta_time[j].tunePower,
tuneHandling: ta_time[j].tuneHandling,
title: car_ta!.title,
level: car_ta!.level
}));
}
if(ta_time.length < 20){
for(let j=ta_time.length; j<20; j++){
let resulttime = 599999;
if(ta_time.length < 11){
for(let j=ta_time.length; j<11; j++){
let resultTime = 599999;
if(i === 22 || i === 23){
resulttime = 1199999
resultTime = 1199999;
}
list_ta.push(wmsrv.wm.protobuf.Ranking.Entry.create({
carId: 0,
rank: 0,
result: resulttime,
result: resultTime,
name: '',
regionId: 0,
model: Math.floor(Math.random() * 50),
visualModel: Math.floor(Math.random() * 106),
visualModel: Math.floor(Math.random() * 100),
defaultColor: 0,
tunePower: 0,
tuneHandling: 0,
@ -115,6 +115,34 @@ export default class StartupModule extends Module {
}
}
lists.push(new wmsrv.wm.protobuf.Ranking.List({
rankingType: i, // RANKING_TA_*AREA*
topRecords: list_ta
}));
}
else{
let list_ta: wmsrv.wm.protobuf.Ranking.Entry[] = [];
for(let j=0; j<11; j++){
let resulttime = 599999;
if(i === 22 || i === 23){
resulttime = 1199999
}
list_ta.push(wmsrv.wm.protobuf.Ranking.Entry.create({
carId: 0,
rank: 0,
result: resulttime,
name: '',
regionId: 0,
model: Math.floor(Math.random() * 50),
visualModel: Math.floor(Math.random() * 100),
defaultColor: 0,
tunePower: 0,
tuneHandling: 0,
title: 'Wangan Beginner',
level: 0
}));
}
lists.push(new wmsrv.wm.protobuf.Ranking.List({
rankingType: i, // RANKING_TA_*AREA*
topRecords: list_ta
@ -148,7 +176,7 @@ export default class StartupModule extends Module {
}));
}
if(car_vs.length < 20){
for(let j=car_vs.length; j<20; j++){
for(let j=car_vs.length; j<21; j++){
list_vs.push(wmsrv.wm.protobuf.Ranking.Entry.create({
carId: 0,
rank: 0,
@ -156,7 +184,7 @@ export default class StartupModule extends Module {
name: '',
regionId: 0,
model: Math.floor(Math.random() * 50),
visualModel: Math.floor(Math.random() * 106),
visualModel: Math.floor(Math.random() * 100),
defaultColor: 0,
tunePower: 0,
tuneHandling: 0,
@ -196,7 +224,7 @@ export default class StartupModule extends Module {
}));
}
if(car_ghost.length < 20){
for(let j=car_ghost.length; j<20; j++){
for(let j=car_ghost.length; j<21; j++){
list_ghost.push(wmsrv.wm.protobuf.Ranking.Entry.create({
carId: 0,
rank: 0,
@ -204,7 +232,7 @@ export default class StartupModule extends Module {
name: '',
regionId: 0,
model: Math.floor(Math.random() * 50),
visualModel: Math.floor(Math.random() * 106),
visualModel: Math.floor(Math.random() * 100),
defaultColor: 0,
tunePower: 0,
tuneHandling: 0,
@ -247,22 +275,7 @@ export default class StartupModule extends Module {
app.get('/resource/crown_list', async (req, res) => {
console.log('crown_list');
//-------------FOR TESTING PURPOSE---------------
let list_crown: wmsrv.wm.protobuf.Crown[] = [];
/*let car_crown = await prisma.car.findFirst({
where: {
OR: [
{ name: { startsWith: ''}, visualModel: 32 },
{ name: { startsWith: 'きつ', }, visualModel: 32 },
],
},
include: {
gtWing: true
},
orderBy: {
carId: 'asc'
}
});*/
let car_crown = await prisma.carCrown.findMany({
orderBy: {
area: 'asc'
@ -287,10 +300,9 @@ export default class StartupModule extends Module {
if(car!.regionId === 0){
car!.regionId = 1; // Hokkaido
}
//car!.aura = 0;
car!.tunePower = car_crown[counter].tunePower;
car!.tuneHandling = car_crown[counter].tuneHandling;
car!.lastPlayedAt = car_crown[counter].playedAt - 100000;
car!.lastPlayedAt = 1659286800; // 2 August 2022
list_crown.push(wmsrv.wm.protobuf.Crown.create({
carId: car_crown[counter].carId,
area: car_crown[counter].area, // GID_RUNAREA_C1 - GID_RUNAREA_TURNPIKE & GID_RUNAREA_HIROSHIMA
@ -312,25 +324,21 @@ export default class StartupModule extends Module {
}
}
else{
for(let i=0; i<14; i++){
for(let i=0; i<19; i++){
if(i >= 14){
i = 18;
}
list_crown.push(wmsrv.wm.protobuf.Crown.create({
carId: i,
area: i, // GID_RUNAREA_C1 - GID_RUNAREA_TURNPIKE
area: i, // GID_RUNAREA_C1 - GID_RUNAREA_TURNPIKE & GID_RUNAREA_HIROSHIMA
unlockAt: 0,
}));
}
list_crown.push(wmsrv.wm.protobuf.Crown.create({
carId: 18,
area: 18, // GID_RUNAREA_HIROSHIMA
unlockAt: 0,
}));
}
let msg = {
crowns: list_crown
};
//-----------------------------------------------
let resp = wmsrv.wm.protobuf.CrownList.encode(msg);
let end = resp.finish();
let r = res
@ -341,4 +349,4 @@ export default class StartupModule extends Module {
r.send(Buffer.from(end));
})
}
}
}

View File

@ -10,141 +10,233 @@ let scratchSheets = [
[ // Sheet 1
[201, 4], // R2
// Window Stickers
[25, 8], [25, 8], [25, 8], [25, 8], [25, 8], // BAT
[25, 6], [25, 6], [25, 6], [25, 6], [25, 6], // SPEAR
[25, 24], [25, 24], [25, 24], [25, 24], [25, 24], // PULSE
[25, 3], [25, 3], [25, 3], [25, 3], [25, 3], // CIRCLE
[25, 14], [25, 14], [25, 14], [25, 14], [25, 14], // TRIBAL
// Rival Markers
[26, 18], [26, 18], [26, 18], [26, 18], // LIGHTNING
[26, 2], [26, 2], [26, 2], [26, 2], // NEON
[26, 31], [26, 31], [26, 31], [26, 31], // V
[26, 40], [26, 40], [26, 40], [26, 40], // NEW DRIVER
[26, 18], [26, 18], [26, 18], [26, 18], // LIGHTNING
[26, 1], [26, 1], [26, 1], [26, 1], // FIRE
[26, 3], [26, 3], [26, 3], [26, 3], // NEON
[26, 17], [26, 17], [26, 17], [26, 17], // TROPICAL
[26, 31], [26, 31], [26, 31], [26, 31], // V
// Window Stickers
[25, 24], [25, 24], [25, 24], [25, 24], [25, 24], // PULSE
[25, 8], [25, 8], [25, 8], [25, 8], [25, 8], // BAT
[25, 3], [25, 3], [25, 3], [25, 3], [25, 3], // CIRCLE
[25, 6], [25, 6], [25, 6], [25, 6], [25, 6], // SPEAR
[25, 14], [25, 14], [25, 14], [25, 14], [25, 14], // TRIBAL
],
[ // Sheet 2
[201, 3], // Corolla
// Window Stickers
[25, 11], [25, 11], [25, 11], [25, 11], [25, 11], // Thunderbolt
[25, 4], [25, 4], [25, 4], [25, 4], [25, 4], // Circle 2
[25, 28], [25, 28], [25, 28], [25, 28], [25, 28], // Wangan URL
[25, 5], [25, 5], [25, 5], [25, 5], [25, 5], // Triangle
[25, 16], [25, 16], [25, 16], [25, 16], [25, 16], // Cards
// Rival Markers
[26, 9], [26, 9], [26, 9], [26, 9], // GRAFFITI
[26, 6], [26, 6], [26, 6], [26, 6], // CASUAL
[26, 19], [26, 19], [26, 19], [26, 19], // WALL
[26, 29], [26, 29], [26, 29], [26, 29], // BAT
[26, 9], [26, 9], [26, 9], [26, 9], // GRAFFITI
[26, 2], [26, 2], [26, 2], [26, 2], // ANIMAL
[26, 6], [26, 6], [26, 6], [26, 6], // CASUAL
[26, 8], [26, 8], [26, 8], [26, 8], // PAINT SPLASH
]
/*
[ // Sheet 3 (Incomplete)
[26, 19], [26, 19], [26, 19], [26, 19], // WALL
// Window Stickers
[25, 28], [25, 28], [25, 28], [25, 28], [25, 28], // WANGAN URL
[25, 11], [25, 11], [25, 11], [25, 11], [25, 11], // THUNDER BOLT
[25, 5], [25, 5], [25, 5], [25, 5], [25, 5], // TRIANGLE
[25, 4], [25, 4], [25, 4], [25, 4], [25, 4], // CIRCLE 2
[25, 16], [25, 16], [25, 16], [25, 16], [25, 16], // CARDS
],
[ // Sheet 3
[201, 1], // Hiace Van
// Window Stickers
[25, 13], [25, 13], [25, 13], [25, 13], [25, 13], // Arrow
[25, 9], [25, 9], [25, 9], [25, 9], // Star
[25, 7], [25, 7], [25, 7], [25, 7], // Snake
[25, 18], [25, 18], [25, 18], [25, 18], // Heart
[25, ], [25, ], [25, ], [25, ], // ????
// Rival Markers
[26, 36], [26, 36], [26, 36], [26, 36], // Pinstripe
[26, 5], [26, 5], [26, 5], [26, 5], // Dangerous
[26, 14], [26, 14], [26, 14], [26, 14], // Relief
[26, 34], [26, 34], [26, 34], [26, 34], // Diamond
[26, 4], [26, 4], [26, 4], [26, 4], // Metal
[26, 10], [26, 10], [26, 10], [26, 10], // Japonism
[26, 20], [26, 20], [26, 20], [26, 20], // Reggae
[26, 34], [26, 34], [26, 34], [26, 34], // DIAMOND
[26, 36], [26, 36], [26, 36], [26, 36], // PINSTRIPE
[26, 4], [26, 4], [26, 4], [26, 4], // METAL
[26, 5], [26, 5], [26, 5], [26, 5], // DANGEROUS
[26, 10], [26, 10], [26, 10], [26, 10], // JAPANESE PATTERN
[26, 14], [26, 14], [26, 14], [26, 14], // RELIEF
[26, 20], [26, 20], [26, 20], [26, 20], // REGGAE
// Window Stickers
[25, 13], [25, 13], [25, 13], [25, 13], [25, 13], // ARROW
[25, 7], [25, 7], [25, 7], [25, 7], // SNAKE
[25, 9], [25, 9], [25, 9], [25, 9], // STAR
[25, 18], [25, 18], [25, 18], [25, 18], // HEART
[25, 1], [25, 1], [25, 1], [25, 1], // FIRE PATTERN
],
[ // Sheet 4 (Incomplete)
[ // Sheet 4
[201, 2], // Pajero Evolution
// Window Stickers
[25, 21], [25, 21], [25, 21], [25, 21], [25, 21], // Plum Blossoms
[25, 12], [25, 12], [25, 12], [25, 12], // Illumination
[25, 10], [25, 10], [25, 10], [25, 10], // Shooting Star
[25, 20], [25, 20], [25, 20], [25, 20], // Raimo
[25, ], [25, ], [25, ], [25, ], // ????
// Rival Markers
[26, 7], [26, 7], [26, 7], [26, 7], // Flowers
[26, 16], [26, 16], [26, 16], [26, 16], // Wood
[26, 24], [26, 24], [26, 24], [26, 24], // Studded
[26, 33], [26, 33], [26, 33], [26, 33], // Heart
[26, 15], [26, 15], [26, 15], [26, 15], // Camo
[26, 21], [26, 21], [26, 21], [26, 21], // Decoration
[26, 30], [26, 30], [26, 30], [26, 30], // Effect
[26, 33], [26, 33], [26, 33], [26, 33], // HEART
[26, 7], [26, 7], [26, 7], [26, 7], // FLOWERS
[26, 15], [26, 15], [26, 15], [26, 15], // CAMO
[26, 16], [26, 16], [26, 16], [26, 16], // WOOD
[26, 21], [26, 21], [26, 21], [26, 21], // DECORATION
[26, 24], [26, 24], [26, 24], [26, 24], // STUDDED
[26, 30], [26, 30], [26, 30], [26, 30], // EFFECT
// Window Stickers
[25, 21], [25, 21], [25, 21], [25, 21], [25, 21], // PLUM BLOSSOMS
[25, 10], [25, 10], [25, 10], [25, 10], // SHOOTING STAR
[25, 12], [25, 12], [25, 12], [25, 12], // ILLUMINATION
[25, 20], [25, 20], [25, 20], [25, 20], // RAIMON
[25, 27], [25, 27], [25, 27], [25, 27], // LONGHORN
],
[ // Sheet 5 (Incomplete)
[ // Sheet 5
[201, 5], // Nismo GT-R (Black)
// Window Stickers
[25, 26], [25, 26], [25, 26], [25, 26], [25, 26], // Paint
[25, 29], [25, 29], [25, 29], [25, 29], // Galaga
[25, 23], [25, 23], [25, 23], [25, 23], // Maze
[25, 2], [25, 2], [25, 2], [25, 2], // Fire Pattern 2
[25, ], [25, ], [25, ], [25, ], // ????
// Rival Markers
[26, 39], [26, 39], [26, 39], [26, 39], // Silver Accessory
[26, 22], [26, 22], [26, 22], [26, 22], // Tropical 2
[26, 25], [26, 25], [26, 25], [26, 25], // Casual 2
[26, 28], [26, 28], [26, 28], [26, 28], // Guitar Pick
[26, 12], [26, 12], [26, 12], [26, 12], // Mechanical
[26, 23], [26, 23], [26, 23], [26, 23], // Monogram
[26, 27], [26, 27], [26, 27], [26, 27], // Carbon
[26, 28], [26, 28], [26, 28], [26, 28], // GUITAR PICK
[26, 39], [26, 39], [26, 39], [26, 39], // SILVER ACCESSORY
[26, 12], [26, 12], [26, 12], [26, 12], // MECHANICAL
[26, 22], [26, 22], [26, 22], [26, 22], // TROPICAL 2
[26, 23], [26, 23], [26, 23], [26, 23], // MONOGRAM
[26, 25], [26, 25], [26, 25], [26, 25], // CASUAL 2
[26, 27], [26, 27], [26, 27], [26, 27], // CARBON
// Window Stickers
[25, 26], [25, 26], [25, 26], [25, 26], [25, 26], // PAINT
[25, 23], [25, 23], [25, 23], [25, 23], // MAZE
[25, 29], [25, 29], [25, 29], [25, 29], // GALAGA
[25, 2], [25, 2], [25, 2], [25, 2], // FIRE PATTERN 2
[25, 19], [25, 19], [25, 19], [25, 19], // ANGEL HEART
],
[ // Sheet 6 (Incomplete)
[ // Sheet 6
[201, 6], // Fairlady Z (Nismo)
// Window Stickers
[25, 25], [25, 25], [25, 25], [25, 25], [25, 25], // Equaliser
[25, 17], [25, 17], [25, 17], [25, 17], // Cards 2
[25, 30], [25, 30], [25, 30], [25, 30], // Pac-Man
[25, 22], [25, 22], [25, 22], [25, 22], // Seigaiha
[25, ], [25, ], [25, ], [25, ], // ????
// Rival Markers
[26, 38], [26, 38], [26, 38], [26, 38], // Hex
[26, 13], [26, 13], [26, 13], [26, 13], // Cosmos
[26, 35], [26, 35], [26, 35], [26, 35], // Fire Pattern
[26, 32], [26, 32], [26, 32], [26, 32], // Feather
[26, 11], [26, 11], [26, 11], [26, 11], // Silvercraft
[26, 26], [26, 26], [26, 26], [26, 26], // Graffiti 2
[26, 37], [26, 37], [26, 37], [26, 37], // Arrow of Light
[26, 32], [26, 32], [26, 32], [26, 32], // FEATHER
[26, 38], [26, 38], [26, 38], [26, 38], // HEX
[26, 11], [26, 11], [26, 11], [26, 11], // SILVERCRAFT
[26, 13], [26, 13], [26, 13], [26, 13], // COSMOS
[26, 26], [26, 26], [26, 26], [26, 26], // GRAFFITI 2
[26, 35], [26, 35], [26, 35], [26, 35], // FIRE PATTERN
[26, 37], [26, 37], [26, 37], [26, 37], // ARROW OF LIGHT
// Window Stickers
[25, 25], [25, 25], [25, 25], [25, 25], [25, 25], // EQUALIZER
[25, 30], [25, 30], [25, 30], [25, 30], // PAC-MAN
[25, 17], [25, 17], [25, 17], [25, 17], // CARDS 2
[25, 22], [25, 22], [25, 22], [25, 22], // SEIGAIHA
[25, 15], [25, 15], [25, 15], [25, 15], // TRIBAL 2
],
[ // Sheet 7 (Incomplete)
[ // Sheet 7
[201, 16], // Aristo (Taxi)
// Rival Markers
[26, 71], [26, 71], [26, 71], [26, 71], // KATANA
[26, 73], [26, 73], [26, 73], [26, 73], // SHURIKEN
[26, 41], [26, 41], [26, 41], [26, 41], // STEEL
[26, 69], [26, 69], [26, 69], [26, 69], // ELECTRONICS
[26, 66], [26, 66], [26, 66], [26, 66], // WALL 2
[26, 47], [26, 47], [26, 47], [26, 47], // PAINT SPLASH 2
// Window Stickers
[25, 32], [25, 32], [25, 32], [25, 32], [25, 32], // Emotion
[25, 17], [25, 17], [25, 17], [25, 17], // Pine
[25, 30], [25, 30], [25, 30], [25, 30], // Love
// [25, 22], [25, 22], [25, 22], [25, 22], // Square
[25, 35], [25, 35], [25, 35], [25, 35], [25, 35], // Trap
[25, 31], [25, 31], [25, 31], [25, 31], [25, 31], // LOVE
[25, 32], [25, 32], [25, 32], [25, 32], [25, 32], // EMOTION
[25, 33], [25, 33], [25, 33], [25, 33], [25, 33], // SQUARE
[25, 34], [25, 34], [25, 34], [25, 34], [25, 34], // PINE
[25, 35], [25, 35], [25, 35], [25, 35], [25, 35], // TRAP
],
[ // Sheet 8
[201, 17], // Driving School Mazda 6 MPS
// Rival Markers
[26, 38], [26, 38], [26, 38], [26, 38], // Shuriken
[26, 13], [26, 13], [26, 13], [26, 13], // Electronics
[26, 35], [26, 35], [26, 35], [26, 35], // Paint Splash 2
[26, 32], [26, 32], [26, 32], [26, 32], // Katana
[26, 11], [26, 11], [26, 11], [26, 11], // Steel
[26, 26], [26, 26], [26, 26], [26, 26], // Wall 2
],
*/
]
[26, 74], [26, 74], [26, 74], [26, 74], // HEAVY METAL
[26, 79], [26, 79], [26, 79], [26, 79], // LOVE YOU
[26, 59], [26, 59], [26, 59], [26, 59], // METRO POLICE
[26, 60], [26, 60], [26, 60], [26, 60], // WOOFER
[26, 61], [26, 61], [26, 61], [26, 61], // DIGITAL
[26, 62], [26, 62], [26, 62], [26, 62], // PUNK
// Window Stickers
[25, 36], [25, 36], [25, 36], [25, 36], [25, 36], // WING
[25, 37], [25, 37], [25, 37], [25, 37], [25, 37], // TRIBAL 3
[25, 38], [25, 38], [25, 38], [25, 38], [25, 38], // TRIBAL 4
[25, 39], [25, 39], [25, 39], [25, 39], [25, 39], // TECHNO
[25, 40], [25, 40], [25, 40], [25, 40], [25, 40], // TECHNO 2
],
[ // Sheet 9
[201, 18], // Toyota Celsior Taxi
// Rival Markers
[26, 70], [26, 70], [26, 70], [26, 70], // BUTTERFLY
[26, 77], [26, 77], [26, 77], [26, 77], // DRAGON
[26, 54], [26, 54], [26, 54], [26, 54], // ROAD
[26, 57], [26, 57], [26, 57], [26, 57], // GRAFFITI 3
[26, 55], [26, 55], [26, 55], [26, 55], // CAMO 2
[26, 56], [26, 56], [26, 56], [26, 56], // PINSTRIPE 2
[26, 45], [26, 45], [26, 45], [26, 45], // ID TAG
// Window Stickers
[25, 41], [25, 41], [25, 41], [25, 41], [25, 41], // MUSTACHE
[25, 42], [25, 42], [25, 42], [25, 42], // FLASH
[25, 43], [25, 43], [25, 43], [25, 43], // SCRATCH
[25, 44], [25, 44], [25, 44], [25, 44], // ANTIQUE
[25, 45], [25, 45], [25, 45], [25, 45], // THORNS
],
[ // Sheet 10
[201, 19], // High lift Toyota Hiace (KZH100G)
// Rival Markers
[26, 76], [26, 76], [26, 76], [26, 76], // FANG
[26, 78], [26, 78], [26, 78], [26, 78], // HAWK
[26, 49], [26, 49], [26, 49], [26, 49], // OGRE TILE
[26, 43], [26, 43], [26, 43], [26, 43], // DANGEROUS 2
[26, 67], [26, 67], [26, 67], [26, 67], // DANGEROUS 3
[26, 64], [26, 64], [26, 64], [26, 64], // FIRE PATTERN 2
[26, 46], [26, 46], [26, 46], [26, 46], // ANIMAL 2
// Window Stickers
[25, 46], [25, 46], [25, 46], [25, 46], [25, 46], // SKID MARK
[25, 47], [25, 47], [25, 47], [25, 47], // ARROW 2
[25, 48], [25, 48], [25, 48], [25, 48], // CHECKERED FLAG
[25, 49], [25, 49], [25, 49], [25, 49], // CHECKERED FLAG 2
[25, 50], [25, 50], [25, 50], [25, 50], // PUZZLE
],
[ // Sheet 11
[201, 20], // R35 Pure Edition 2017
// Rival Markers
[26, 75], [26, 75], [26, 75], [26, 75], // HELMET
[26, 72], [26, 72], [26, 72], [26, 72], // HAMAYA ARROW
[26, 42], [26, 42], [26, 42], [26, 42], // JAPANESE PATTERN 2
[26, 63], [26, 63], [26, 63], [26, 63], // LEATHER
[26, 48], [26, 48], [26, 48], [26, 48], // MARINE
[26, 65], [26, 65], [26, 65], [26, 65], // CAMO 3
[26, 68], [26, 68], [26, 68], [26, 68], // MECHANICAL 2
// Window Stickers
[25, 51], [25, 51], [25, 51], [25, 51], [25, 51], // PUZZLE 2
[25, 52], [25, 52], [25, 52], [25, 52], // WAVE
[25, 53], [25, 53], [25, 53], [25, 53], // FANG
[25, 54], [25, 54], [25, 54], [25, 54], // LOCK-ON
[25, 55], [25, 55], [25, 55], [25, 55], // CHAIN
],
[ // Sheet 12
[201, 21], // Honda NSX-R (NA2)
// Rival Markers
[26, 80], [26, 80], [26, 80], [26, 80], // SPEECH BUBBLE
[26, 51], [26, 51], [26, 51], [26, 51], // COMIC
[26, 50], [26, 50], [26, 50], [26, 50], // GLITTER
[26, 52], [26, 52], [26, 52], [26, 52], // FOREST
[26, 53], [26, 53], [26, 53], [26, 53], // BANDANA
[26, 44], [26, 44], [26, 44], [26, 44], // STICKER
[26, 58], [26, 58], [26, 58], [26, 58], // CRYSTAL
// Window Stickers
[25, 56], [25, 56], [25, 56], [25, 56], [25, 56], // STREET
[25, 57], [25, 57], [25, 57], [25, 57], // NO ENTRY
[25, 58], [25, 58], [25, 58], [25, 58], // BARCODE
[25, 59], [25, 59], [25, 59], [25, 59], // ZIPPER
[25, 60], [25, 60], [25, 60], [25, 60], // WANGAN URL 2
]
];
// Terminal scratch cars only
export const scratchCars = [
4, 3, 1, 2, 5, 6, 16, 17, 18, 19, 20, 21
]
];
// Fully tuned special cars
export const fullyTunedCars = [
@ -279,7 +371,7 @@ export async function generateScratchSheet (userId: number, sheetNo: number)
else // Sheet is out of range
{
// Generate a random (standard) scratch sheet
scratchItems = getRandomScratchSheet(sheetNo-1);
// scratchItems = getRandomScratchSheet(sheetNo-1);
}
break;