load ghost car by path and tuning
This commit is contained in:
parent
56b749dc47
commit
005dc2b23c
@ -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;
|
@ -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;
|
@ -133,6 +133,7 @@ model Car {
|
|||||||
CarCrown CarCrown[]
|
CarCrown CarCrown[]
|
||||||
GhostTrail GhostTrail[]
|
GhostTrail GhostTrail[]
|
||||||
GhostBattleRecord GhostBattleRecord[]
|
GhostBattleRecord GhostBattleRecord[]
|
||||||
|
CarPathandTuning CarPathandTuning[]
|
||||||
}
|
}
|
||||||
|
|
||||||
model CarGTWing {
|
model CarGTWing {
|
||||||
@ -260,3 +261,15 @@ model GhostBattleRecord {
|
|||||||
playedAt Int @default(0)
|
playedAt Int @default(0)
|
||||||
playedShopName String @default("Bayshore")
|
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)
|
||||||
|
}
|
||||||
|
@ -3,7 +3,7 @@ import { Module } from "../module";
|
|||||||
import * as wm from "../wmmt/wm.proto";
|
import * as wm from "../wmmt/wm.proto";
|
||||||
import * as wmsrv from "../wmmt/service.proto";
|
import * as wmsrv from "../wmmt/service.proto";
|
||||||
import { prisma } from "..";
|
import { prisma } from "..";
|
||||||
import { Car, User } from "@prisma/client";
|
import { Car, CarPathandTuning, User } from "@prisma/client";
|
||||||
import { Config } from "../config";
|
import { Config } from "../config";
|
||||||
import Long from "long";
|
import Long from "long";
|
||||||
import { userInfo } from "os";
|
import { userInfo } from "os";
|
||||||
@ -891,11 +891,41 @@ export default class GameModule extends Module {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
await prisma.ghostTrail.create({
|
await prisma.ghostTrail.create({
|
||||||
data: saveEx
|
data: saveEx
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
let cPaT_count = await prisma.carPathandTuning.findFirst({
|
||||||
|
where:{
|
||||||
|
carId: saveEx.carId,
|
||||||
|
area: saveEx.area,
|
||||||
|
},
|
||||||
|
orderBy: {
|
||||||
|
lastPlayedAt: 'desc'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(cPaT_count){
|
||||||
|
let cPaTdbId = cPaT_count.dbId;
|
||||||
|
await prisma.ghostTrail.delete({
|
||||||
|
where: {
|
||||||
|
dbId: cPaTdbId
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
await prisma.carPathandTuning.create({
|
||||||
|
data: {
|
||||||
|
carId: saveEx.carId,
|
||||||
|
area: saveEx.area,
|
||||||
|
ramp: saveEx.ramp,
|
||||||
|
path: saveEx.path,
|
||||||
|
tunePower: saveEx.tunePower,
|
||||||
|
tuneHandling: saveEx.tuneHandling,
|
||||||
|
lastPlayedAt: saveEx.playedAt
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if(crownBattles === true){
|
if(crownBattles === true){
|
||||||
await prisma.carCrown.update({
|
await prisma.carCrown.update({
|
||||||
where: {
|
where: {
|
||||||
@ -2436,6 +2466,8 @@ export default class GameModule extends Module {
|
|||||||
if(!(ghostOpponentCar)){
|
if(!(ghostOpponentCar)){
|
||||||
ghostOpponentCar = await prisma.car.findFirst({});
|
ghostOpponentCar = await prisma.car.findFirst({});
|
||||||
ghostOpponentCar!.name = 'GUEST';
|
ghostOpponentCar!.name = 'GUEST';
|
||||||
|
ghostOpponentCar!.manufacturer = 5;
|
||||||
|
ghostOpponentCar!.model = 27;
|
||||||
ghostOpponentCar!.visualModel = 29;
|
ghostOpponentCar!.visualModel = 29;
|
||||||
}
|
}
|
||||||
ghostOpponentCar!.regionId = 1;
|
ghostOpponentCar!.regionId = 1;
|
||||||
@ -2460,6 +2492,8 @@ export default class GameModule extends Module {
|
|||||||
if(!(ghostOpponentCar2)){
|
if(!(ghostOpponentCar2)){
|
||||||
ghostOpponentCar2 = await prisma.car.findFirst({});
|
ghostOpponentCar2 = await prisma.car.findFirst({});
|
||||||
ghostOpponentCar2!.name = 'GUEST';
|
ghostOpponentCar2!.name = 'GUEST';
|
||||||
|
ghostOpponentCar2!.manufacturer = 5;
|
||||||
|
ghostOpponentCar2!.model = 27;
|
||||||
ghostOpponentCar2!.visualModel = 29;
|
ghostOpponentCar2!.visualModel = 29;
|
||||||
}
|
}
|
||||||
ghostOpponentCar2!.regionId = 1;
|
ghostOpponentCar2!.regionId = 1;
|
||||||
@ -2481,6 +2515,8 @@ export default class GameModule extends Module {
|
|||||||
if(!(ghostOpponentCar3)){
|
if(!(ghostOpponentCar3)){
|
||||||
ghostOpponentCar3 = await prisma.car.findFirst({});
|
ghostOpponentCar3 = await prisma.car.findFirst({});
|
||||||
ghostOpponentCar3!.name = 'GUEST';
|
ghostOpponentCar3!.name = 'GUEST';
|
||||||
|
ghostOpponentCar3!.manufacturer = 5;
|
||||||
|
ghostOpponentCar3!.model = 27;
|
||||||
ghostOpponentCar3!.visualModel = 29;
|
ghostOpponentCar3!.visualModel = 29;
|
||||||
}
|
}
|
||||||
ghostOpponentCar3!.regionId = 1;
|
ghostOpponentCar3!.regionId = 1;
|
||||||
@ -2493,7 +2529,6 @@ export default class GameModule extends Module {
|
|||||||
result: ghostHistoryData![i].opponent3Result!
|
result: ghostHistoryData![i].opponent3Result!
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
list_ghostHistoryData.push(wm.wm.protobuf.LoadGameHistoryResponse.GhostBattleRecord.create({
|
list_ghostHistoryData.push(wm.wm.protobuf.LoadGameHistoryResponse.GhostBattleRecord.create({
|
||||||
carSetting: carSetings,
|
carSetting: carSetings,
|
||||||
@ -2526,7 +2561,6 @@ export default class GameModule extends Module {
|
|||||||
})
|
})
|
||||||
|
|
||||||
app.post('/method/update_user_session', (req, res) => {
|
app.post('/method/update_user_session', (req, res) => {
|
||||||
// Get the request body
|
|
||||||
// let body = wm.wm.protobuf.UpdateUserSessionRequest.decode(req.body);
|
// let body = wm.wm.protobuf.UpdateUserSessionRequest.decode(req.body);
|
||||||
|
|
||||||
let msg = {
|
let msg = {
|
||||||
@ -2995,9 +3029,52 @@ export default class GameModule extends Module {
|
|||||||
|
|
||||||
app.post('/method/load_paths_and_tunings', async (req, res) => {
|
app.post('/method/load_paths_and_tunings', async (req, res) => {
|
||||||
let body = wm.wm.protobuf.LoadPathsAndTuningsRequest.decode(req.body);
|
let body = wm.wm.protobuf.LoadPathsAndTuningsRequest.decode(req.body);
|
||||||
console.log(body);
|
let carTbyP: wm.wm.protobuf.LoadPathsAndTuningsResponse.CarTuningsByPath[] = [];
|
||||||
|
for(let j=0; j<14; j++){
|
||||||
|
let carTuning: wm.wm.protobuf.CarTuning[] = [];
|
||||||
|
let pathAndTuning: CarPathandTuning | null;
|
||||||
|
let carTbyP_ramp = Math.floor(Math.random() * 10);
|
||||||
|
let carTbyP_path = Math.floor(Math.random() * 10);
|
||||||
|
for(let i=0; i<body.selectedCars.length; i++){
|
||||||
|
pathAndTuning = await prisma.carPathandTuning.findFirst({
|
||||||
|
where: {
|
||||||
|
carId: body.selectedCars[i],
|
||||||
|
area: j
|
||||||
|
},
|
||||||
|
orderBy: {
|
||||||
|
area: 'asc'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(pathAndTuning){
|
||||||
|
carTuning.push(wm.wm.protobuf.CarTuning.create({
|
||||||
|
carId: body.selectedCars[i],
|
||||||
|
tunePower: pathAndTuning!.tunePower,
|
||||||
|
tuneHandling: pathAndTuning!.tuneHandling,
|
||||||
|
lastPlayedAt: pathAndTuning!.lastPlayedAt
|
||||||
|
}));
|
||||||
|
carTbyP_ramp = pathAndTuning!.ramp;
|
||||||
|
carTbyP_path = pathAndTuning!.path;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
carTuning.push(wm.wm.protobuf.CarTuning.create({
|
||||||
|
carId: body.selectedCars[i],
|
||||||
|
tunePower: 17,
|
||||||
|
tuneHandling: 17
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
carTbyP.push(wm.wm.protobuf.LoadPathsAndTuningsResponse.CarTuningsByPath.create({
|
||||||
|
area: j,
|
||||||
|
ramp: carTbyP_ramp,
|
||||||
|
path: carTbyP_path,
|
||||||
|
carTunings: carTuning,
|
||||||
|
selectionMethod: wm.wm.protobuf.PathSelectionMethod.PATH_NORMAL
|
||||||
|
}));
|
||||||
|
}
|
||||||
let msg = {
|
let msg = {
|
||||||
error: wm.wm.protobuf.ErrorCode.ERR_SUCCESS,
|
error: wm.wm.protobuf.ErrorCode.ERR_SUCCESS,
|
||||||
|
data: carTbyP || null
|
||||||
};
|
};
|
||||||
let resp = wm.wm.protobuf.LoadPathsAndTuningsResponse.encode(msg);
|
let resp = wm.wm.protobuf.LoadPathsAndTuningsResponse.encode(msg);
|
||||||
let end = resp.finish();
|
let end = resp.finish();
|
||||||
|
Loading…
Reference in New Issue
Block a user