Compare commits
5 Commits
polychrome
...
main
Author | SHA1 | Date | |
---|---|---|---|
2c552f7b8a | |||
e903dce307 | |||
5aedb579aa | |||
7a2c187d54 | |||
76e40685ab |
@ -64,12 +64,7 @@ export const placeDecoInComponentController: RequestHandler = async (req, res) =
|
||||
}
|
||||
if (!meta || (meta.price == 0 && meta.ingredients.length == 0)) {
|
||||
deco.CompletionTime = new Date();
|
||||
} else if (
|
||||
guild.AutoContributeFromVault &&
|
||||
guild.VaultRegularCredits &&
|
||||
guild.VaultMiscItems &&
|
||||
deco.Type != "/Lotus/Objects/Tenno/Props/TnoPaintBotDojoDeco"
|
||||
) {
|
||||
} else if (guild.AutoContributeFromVault && guild.VaultRegularCredits && guild.VaultMiscItems) {
|
||||
if (guild.VaultRegularCredits >= scaleRequiredCount(guild.Tier, meta.price)) {
|
||||
let enoughMiscItems = true;
|
||||
for (const ingredient of meta.ingredients) {
|
||||
|
@ -1,34 +0,0 @@
|
||||
import { getJSONfromString } from "@/src/helpers/stringHelpers";
|
||||
import { getDojoClient, getGuildForRequestEx, hasAccessToDojo, hasGuildPermission } from "@/src/services/guildService";
|
||||
import { getInventory } from "@/src/services/inventoryService";
|
||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||
import { GuildPermission } from "@/src/types/guildTypes";
|
||||
import { RequestHandler } from "express";
|
||||
|
||||
export const setDojoComponentColorsController: RequestHandler = async (req, res) => {
|
||||
const accountId = await getAccountIdForRequest(req);
|
||||
const inventory = await getInventory(accountId, "GuildId LevelKeys");
|
||||
const guild = await getGuildForRequestEx(req, inventory);
|
||||
if (!hasAccessToDojo(inventory) || !(await hasGuildPermission(guild, accountId, GuildPermission.Decorator))) {
|
||||
res.json({ DojoRequestStatus: -1 });
|
||||
return;
|
||||
}
|
||||
const data = getJSONfromString<ISetDojoComponentColorsRequest>(String(req.body));
|
||||
const component = guild.DojoComponents.id(data.ComponentId)!;
|
||||
//const deco = component.Decos!.find(x => x._id.equals(data.DecoId))!;
|
||||
//deco.Pending = true;
|
||||
//component.PaintBot = new Types.ObjectId(data.DecoId);
|
||||
if ("lights" in req.query) {
|
||||
component.PendingLights = data.Colours;
|
||||
} else {
|
||||
component.PendingColors = data.Colours;
|
||||
}
|
||||
await guild.save();
|
||||
res.json(await getDojoClient(guild, 0, component._id));
|
||||
};
|
||||
|
||||
interface ISetDojoComponentColorsRequest {
|
||||
ComponentId: string;
|
||||
DecoId: string;
|
||||
Colours: number[];
|
||||
}
|
@ -29,8 +29,7 @@ const dojoDecoSchema = new Schema<IDojoDecoDatabase>({
|
||||
MiscItems: { type: [typeCountSchema], default: undefined },
|
||||
CompletionTime: Date,
|
||||
RushPlatinum: Number,
|
||||
PictureFrameInfo: pictureFrameInfoSchema,
|
||||
Pending: Boolean
|
||||
PictureFrameInfo: pictureFrameInfoSchema
|
||||
});
|
||||
|
||||
const dojoLeaderboardEntrySchema = new Schema<IDojoLeaderboardEntry>(
|
||||
@ -58,11 +57,6 @@ const dojoComponentSchema = new Schema<IDojoComponentDatabase>({
|
||||
DestructionTime: Date,
|
||||
Decos: [dojoDecoSchema],
|
||||
DecoCapacity: Number,
|
||||
PaintBot: Schema.Types.ObjectId,
|
||||
PendingColors: { type: [Number], default: undefined },
|
||||
Colors: { type: [Number], default: undefined },
|
||||
PendingLights: { type: [Number], default: undefined },
|
||||
Lights: { type: [Number], default: undefined },
|
||||
Leaderboard: { type: [dojoLeaderboardEntrySchema], default: undefined }
|
||||
});
|
||||
|
||||
|
@ -105,7 +105,6 @@ import { setActiveQuestController } from "@/src/controllers/api/setActiveQuestCo
|
||||
import { setActiveShipController } from "@/src/controllers/api/setActiveShipController";
|
||||
import { setAllianceGuildPermissionsController } from "@/src/controllers/api/setAllianceGuildPermissionsController";
|
||||
import { setBootLocationController } from "@/src/controllers/api/setBootLocationController";
|
||||
import { setDojoComponentColorsController } from "@/src/controllers/api/setDojoComponentColorsController";
|
||||
import { setDojoComponentMessageController } from "@/src/controllers/api/setDojoComponentMessageController";
|
||||
import { setEquippedInstrumentController } from "@/src/controllers/api/setEquippedInstrumentController";
|
||||
import { setGuildMotdController } from "@/src/controllers/api/setGuildMotdController";
|
||||
@ -262,7 +261,6 @@ apiRouter.post("/saveLoadout.php", saveLoadoutController);
|
||||
apiRouter.post("/saveSettings.php", saveSettingsController);
|
||||
apiRouter.post("/saveVaultAutoContribute.php", saveVaultAutoContributeController);
|
||||
apiRouter.post("/sell.php", sellController);
|
||||
apiRouter.post("/setDojoComponentColors.php", setDojoComponentColorsController);
|
||||
apiRouter.post("/setDojoComponentMessage.php", setDojoComponentMessageController);
|
||||
apiRouter.post("/setEquippedInstrument.php", setEquippedInstrumentController);
|
||||
apiRouter.post("/setGuildMotd.php", setGuildMotdController);
|
||||
|
@ -141,7 +141,6 @@ export const getDojoClient = async (
|
||||
DojoComponents: []
|
||||
};
|
||||
const roomsToRemove: Types.ObjectId[] = [];
|
||||
const decosToRemoveNoRefund: { componentId: Types.ObjectId; decoId: Types.ObjectId }[] = [];
|
||||
let needSave = false;
|
||||
for (const dojoComponent of guild.DojoComponents) {
|
||||
if (!componentId || dojoComponent._id.equals(componentId)) {
|
||||
@ -213,21 +212,6 @@ export const getDojoClient = async (
|
||||
PictureFrameInfo: deco.PictureFrameInfo
|
||||
};
|
||||
if (deco.CompletionTime) {
|
||||
if (
|
||||
deco.Type == "/Lotus/Objects/Tenno/Props/TnoPaintBotDojoDeco" &&
|
||||
Date.now() >= deco.CompletionTime.getTime()
|
||||
) {
|
||||
if (dojoComponent.PendingColors) {
|
||||
dojoComponent.Colors = dojoComponent.PendingColors;
|
||||
dojoComponent.PendingColors = undefined;
|
||||
}
|
||||
if (dojoComponent.PendingLights) {
|
||||
dojoComponent.Lights = dojoComponent.PendingLights;
|
||||
dojoComponent.PendingLights = undefined;
|
||||
}
|
||||
decosToRemoveNoRefund.push({ componentId: dojoComponent._id, decoId: deco._id });
|
||||
continue;
|
||||
}
|
||||
clientDeco.CompletionTime = toMongoDate(deco.CompletionTime);
|
||||
} else {
|
||||
clientDeco.RegularCredits = deco.RegularCredits;
|
||||
@ -236,10 +220,6 @@ export const getDojoClient = async (
|
||||
clientComponent.Decos.push(clientDeco);
|
||||
}
|
||||
}
|
||||
clientComponent.PendingColors = dojoComponent.PendingColors;
|
||||
clientComponent.Colors = dojoComponent.Colors;
|
||||
clientComponent.PendingLights = dojoComponent.PendingLights;
|
||||
clientComponent.Lights = dojoComponent.Lights;
|
||||
dojo.DojoComponents.push(clientComponent);
|
||||
}
|
||||
}
|
||||
@ -250,15 +230,6 @@ export const getDojoClient = async (
|
||||
}
|
||||
needSave = true;
|
||||
}
|
||||
for (const deco of decosToRemoveNoRefund) {
|
||||
logger.debug(`removing polychrome`, deco);
|
||||
const component = guild.DojoComponents.id(deco.componentId)!;
|
||||
component.Decos!.splice(
|
||||
component.Decos!.findIndex(x => x._id.equals(deco.decoId)),
|
||||
1
|
||||
);
|
||||
needSave = true;
|
||||
}
|
||||
if (needSave) {
|
||||
await guild.save();
|
||||
}
|
||||
|
@ -177,6 +177,22 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
|
||||
await giveKeyChainMissionReward(inventory, { KeyChain: questKey, ChainStage: i });
|
||||
}
|
||||
|
||||
if (questKey == "/Lotus/Types/Keys/OrokinMoonQuest/OrokinMoonQuestKeyChain") {
|
||||
void createMessage(inventory.accountOwnerId, [
|
||||
{
|
||||
sndr: "/Lotus/Language/Bosses/Ordis",
|
||||
msg: "/Lotus/Language/G1Quests/SecondDreamFinishInboxMessage",
|
||||
att: [
|
||||
"/Lotus/Weapons/Tenno/Melee/Swords/StalkerTwo/StalkerTwoSmallSword",
|
||||
"/Lotus/Upgrades/Skins/Sigils/ScarSigil"
|
||||
],
|
||||
sub: "/Lotus/Language/G1Quests/SecondDreamFinishInboxTitle",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Ordis.png",
|
||||
highPriority: true
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
const questCompletionItems = getQuestCompletionItems(questKey);
|
||||
logger.debug(`quest completion items`, questCompletionItems);
|
||||
if (questCompletionItems) {
|
||||
|
@ -161,7 +161,6 @@ export interface IDojoClient {
|
||||
|
||||
export interface IDojoComponentClient {
|
||||
id: IOid;
|
||||
SortId?: IOid;
|
||||
pf: string; // Prefab (.level)
|
||||
ppf: string;
|
||||
pi?: IOid; // Parent ID. N/A to root.
|
||||
@ -176,25 +175,16 @@ export interface IDojoComponentClient {
|
||||
DestructionTime?: IMongoDate;
|
||||
Decos?: IDojoDecoClient[];
|
||||
DecoCapacity?: number;
|
||||
PaintBot?: IOid;
|
||||
PendingColors?: number[];
|
||||
Colors?: number[];
|
||||
PendingLights?: number[];
|
||||
Lights?: number[];
|
||||
}
|
||||
|
||||
export interface IDojoComponentDatabase
|
||||
extends Omit<
|
||||
IDojoComponentClient,
|
||||
"id" | "SortId" | "pi" | "CompletionTime" | "DestructionTime" | "Decos" | "PaintBot"
|
||||
> {
|
||||
extends Omit<IDojoComponentClient, "id" | "pi" | "CompletionTime" | "DestructionTime" | "Decos"> {
|
||||
_id: Types.ObjectId;
|
||||
pi?: Types.ObjectId;
|
||||
CompletionTime?: Date;
|
||||
CompletionLogPending?: boolean;
|
||||
DestructionTime?: Date;
|
||||
Decos?: IDojoDecoDatabase[];
|
||||
PaintBot?: Types.ObjectId;
|
||||
Leaderboard?: IDojoLeaderboardEntry[];
|
||||
}
|
||||
|
||||
@ -210,7 +200,6 @@ export interface IDojoDecoClient {
|
||||
CompletionTime?: IMongoDate;
|
||||
RushPlatinum?: number;
|
||||
PictureFrameInfo?: IPictureFrameInfo;
|
||||
Pending?: boolean;
|
||||
}
|
||||
|
||||
export interface IDojoDecoDatabase extends Omit<IDojoDecoClient, "id" | "CompletionTime"> {
|
||||
|
@ -5,5 +5,11 @@
|
||||
"ItemCount": 1
|
||||
}
|
||||
],
|
||||
"/Lotus/Types/Keys/InfestedMicroplanetQuest/InfestedMicroplanetQuestKeyChain": [{ "ItemType": "/Lotus/Types/Recipes/WarframeRecipes/BrokenFrameBlueprint", "ItemCount": 1 }]
|
||||
"/Lotus/Types/Keys/InfestedMicroplanetQuest/InfestedMicroplanetQuestKeyChain": [{ "ItemType": "/Lotus/Types/Recipes/WarframeRecipes/BrokenFrameBlueprint", "ItemCount": 1 }],
|
||||
"/Lotus/Types/Keys/OrokinMoonQuest/OrokinMoonQuestKeyChain": [
|
||||
{
|
||||
"ItemType": "/Lotus/Types/Keys/RailJackBuildQuest/RailjackBuildQuestEmailItem",
|
||||
"ItemCount": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user