fix: properly randomise library daily task & update it every day
This commit is contained in:
		
							parent
							
								
									93afc2645c
								
							
						
					
					
						commit
						6d63b11ee9
					
				@ -14,7 +14,7 @@ import {
 | 
			
		||||
    ExportVirtuals
 | 
			
		||||
} from "warframe-public-export-plus";
 | 
			
		||||
import { applyCheatsToInfestedFoundry, handleSubsumeCompletion } from "./infestedFoundryController";
 | 
			
		||||
import { allDailyAffiliationKeys } from "@/src/services/inventoryService";
 | 
			
		||||
import { allDailyAffiliationKeys, createLibraryDailyTask } from "@/src/services/inventoryService";
 | 
			
		||||
 | 
			
		||||
export const inventoryController: RequestHandler = async (request, response) => {
 | 
			
		||||
    const account = await getAccountForRequest(request);
 | 
			
		||||
@ -36,6 +36,10 @@ export const inventoryController: RequestHandler = async (request, response) =>
 | 
			
		||||
            inventory[key] = 16000 + inventory.PlayerLevel * 500;
 | 
			
		||||
        }
 | 
			
		||||
        inventory.DailyFocus = 250000 + inventory.PlayerLevel * 5000;
 | 
			
		||||
 | 
			
		||||
        inventory.LibraryAvailableDailyTaskInfo = createLibraryDailyTask();
 | 
			
		||||
        inventory.LibraryActiveDailyTaskInfo = undefined;
 | 
			
		||||
 | 
			
		||||
        await inventory.save();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -68,7 +68,7 @@ import {
 | 
			
		||||
    ICalendarProgress,
 | 
			
		||||
    IPendingCouponDatabase,
 | 
			
		||||
    IPendingCouponClient,
 | 
			
		||||
    ILibraryAvailableDailyTaskInfo,
 | 
			
		||||
    ILibraryDailyTaskInfo,
 | 
			
		||||
    IDroneDatabase,
 | 
			
		||||
    IDroneClient
 | 
			
		||||
} from "../../types/inventoryTypes/inventoryTypes";
 | 
			
		||||
@ -950,7 +950,7 @@ pendingCouponSchema.set("toJSON", {
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const libraryAvailableDailyTaskInfoSchema = new Schema<ILibraryAvailableDailyTaskInfo>(
 | 
			
		||||
const libraryDailyTaskInfoSchema = new Schema<ILibraryDailyTaskInfo>(
 | 
			
		||||
    {
 | 
			
		||||
        EnemyTypes: [String],
 | 
			
		||||
        EnemyLocTag: String,
 | 
			
		||||
@ -1209,7 +1209,8 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
 | 
			
		||||
        //Cephalon Simaris Entries Example:"TargetType"+"Scans"(1-10)+"Completed": true|false
 | 
			
		||||
        LibraryPersonalProgress: [Schema.Types.Mixed],
 | 
			
		||||
        //Cephalon Simaris Daily Task
 | 
			
		||||
        LibraryAvailableDailyTaskInfo: libraryAvailableDailyTaskInfoSchema,
 | 
			
		||||
        LibraryAvailableDailyTaskInfo: libraryDailyTaskInfoSchema,
 | 
			
		||||
        LibraryActiveDailyTaskInfo: libraryDailyTaskInfoSchema,
 | 
			
		||||
 | 
			
		||||
        //https://warframe.fandom.com/wiki/Invasion
 | 
			
		||||
        InvasionChainProgress: [Schema.Types.Mixed],
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@ import {
 | 
			
		||||
    IInventoryDatabase,
 | 
			
		||||
    IKubrowPetEggDatabase,
 | 
			
		||||
    IKubrowPetEggClient,
 | 
			
		||||
    ILibraryAvailableDailyTaskInfo,
 | 
			
		||||
    ILibraryDailyTaskInfo,
 | 
			
		||||
    ICalendarProgress,
 | 
			
		||||
    IDroneClient
 | 
			
		||||
} from "@/src/types/inventoryTypes/inventoryTypes";
 | 
			
		||||
@ -41,6 +41,7 @@ import {
 | 
			
		||||
    ExportBundles,
 | 
			
		||||
    ExportCustoms,
 | 
			
		||||
    ExportDrones,
 | 
			
		||||
    ExportEnemies,
 | 
			
		||||
    ExportFlavour,
 | 
			
		||||
    ExportFusionBundles,
 | 
			
		||||
    ExportGear,
 | 
			
		||||
@ -62,6 +63,8 @@ import { generateRewardSeed } from "@/src/controllers/api/getNewRewardSeedContro
 | 
			
		||||
import { addStartingGear } from "@/src/controllers/api/giveStartingGearController";
 | 
			
		||||
import { addQuestKey, completeQuest } from "@/src/services/questService";
 | 
			
		||||
import { handleBundleAcqusition } from "./purchaseService";
 | 
			
		||||
import libraryDailyTasks from "@/static/fixed_responses/libraryDailyTasks.json";
 | 
			
		||||
import { getRandomElement, getRandomInt } from "./rngService";
 | 
			
		||||
 | 
			
		||||
export const createInventory = async (
 | 
			
		||||
    accountOwnerId: Types.ObjectId,
 | 
			
		||||
@ -76,7 +79,7 @@ export const createInventory = async (
 | 
			
		||||
            ReceivedStartingGear: config.skipTutorial
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        inventory.LibraryAvailableDailyTaskInfo = createLibraryAvailableDailyTaskInfo();
 | 
			
		||||
        inventory.LibraryAvailableDailyTaskInfo = createLibraryDailyTask();
 | 
			
		||||
        inventory.CalendarProgress = createCalendar();
 | 
			
		||||
        inventory.RewardSeed = generateRewardSeed();
 | 
			
		||||
        inventory.DuviriInfo = {
 | 
			
		||||
@ -1173,15 +1176,19 @@ export const addKeyChainItems = async (
 | 
			
		||||
 | 
			
		||||
    return inventoryChanges;
 | 
			
		||||
};
 | 
			
		||||
const createLibraryAvailableDailyTaskInfo = (): ILibraryAvailableDailyTaskInfo => {
 | 
			
		||||
 | 
			
		||||
export const createLibraryDailyTask = (): ILibraryDailyTaskInfo => {
 | 
			
		||||
    const enemyTypes = getRandomElement(libraryDailyTasks);
 | 
			
		||||
    const enemyAvatar = ExportEnemies.avatars[enemyTypes[0]];
 | 
			
		||||
    const scansRequired = getRandomInt(2, 4);
 | 
			
		||||
    return {
 | 
			
		||||
        EnemyTypes: ["/Lotus/Types/Enemies/Orokin/RifleLancerAvatar"],
 | 
			
		||||
        EnemyLocTag: "/Lotus/Language/Game/CorruptedLancer",
 | 
			
		||||
        EnemyIcon: "/Lotus/Interface/Icons/Npcs/OrokinRifleLancerAvatar.png",
 | 
			
		||||
        ScansRequired: 3,
 | 
			
		||||
        RewardStoreItem: "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle",
 | 
			
		||||
        RewardQuantity: 7,
 | 
			
		||||
        RewardStanding: 7500
 | 
			
		||||
        EnemyTypes: enemyTypes,
 | 
			
		||||
        EnemyLocTag: enemyAvatar.name,
 | 
			
		||||
        EnemyIcon: enemyAvatar.icon!,
 | 
			
		||||
        ScansRequired: scansRequired,
 | 
			
		||||
        RewardStoreItem: "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/RareFusionBundle",
 | 
			
		||||
        RewardQuantity: Math.trunc(scansRequired * 2.5),
 | 
			
		||||
        RewardStanding: 2500 * scansRequired
 | 
			
		||||
    };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -320,7 +320,8 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
 | 
			
		||||
    LibraryPersonalTarget: string;
 | 
			
		||||
    LibraryPersonalProgress: ILibraryPersonalProgress[];
 | 
			
		||||
    CollectibleSeries: ICollectibleSery[];
 | 
			
		||||
    LibraryAvailableDailyTaskInfo: ILibraryAvailableDailyTaskInfo;
 | 
			
		||||
    LibraryAvailableDailyTaskInfo: ILibraryDailyTaskInfo;
 | 
			
		||||
    LibraryActiveDailyTaskInfo?: ILibraryDailyTaskInfo;
 | 
			
		||||
    HasResetAccount: boolean;
 | 
			
		||||
    PendingCoupon?: IPendingCouponClient;
 | 
			
		||||
    Harvestable: boolean;
 | 
			
		||||
@ -658,7 +659,7 @@ export interface ILastSortieReward {
 | 
			
		||||
    Manifest: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ILibraryAvailableDailyTaskInfo {
 | 
			
		||||
export interface ILibraryDailyTaskInfo {
 | 
			
		||||
    EnemyTypes: string[];
 | 
			
		||||
    EnemyLocTag: string;
 | 
			
		||||
    EnemyIcon: string;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										148
									
								
								static/fixed_responses/libraryDailyTasks.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								static/fixed_responses/libraryDailyTasks.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,148 @@
 | 
			
		||||
[
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/BipedRobot/AIWeek/LaserCannonBipedAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/BipedRobot/AIWeek/RailgunBipedAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/BipedRobot/AIWeek/ShockwaveBipedAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/BipedRobot/AIWeek/LaserDiscBipedAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/BipedRobot/AIWeek/SuperMoaBipedAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/Spaceman/EliteSpacemanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/Spaceman/AIWeek/RifleSpacemanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/Spaceman/AIWeek/DeployableSpacemanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/Spaceman/AIWeek/MeleeSpacemanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/Spaceman/AIWeek/ShotgunSpacemanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/Spaceman/AIWeek/SniperSpacemanAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Corpus/Spaceman/AIWeek/NullifySpacemanAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/BeastMasterAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/BladeSawmanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/BlowtorchSawmanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/PistonSawmanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Desert/Avatars/BladeSawmanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Forest/Avatars/BladeSawmanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/BladeSawmanAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/RifleLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Desert/Avatars/EliteRifleLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Desert/Avatars/RifleLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Forest/Avatars/EliteRifleLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Forest/Avatars/RifleLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/EliteRifleLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/RifleLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/EliteRifleLancerAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/EviseratorLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Forest/Avatars/EvisceratorLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/EvisceratorLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Desert/Avatars/EvisceratorLancerAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/FemaleGrineerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/FemaleGrineerSniperAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/FlameLancerAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/GrineerMeleeStaffAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/HeavyFemaleGrineerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Desert/HeavyFemaleGrineerAvatarDesert",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Forest/HeavyFemaleGrineerAvatarDesert",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/FemaleGrineerHeavyAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/IncendiaryBombardAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/JetpackMarineAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Desert/Avatars/JetpackMarineAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Forest/Avatars/JetpackMarineAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/JetpackMarineAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/MacheteWomanAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/FemaleGrineerMacheteAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/ShieldLancerAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/ShotgunLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Desert/Avatars/ShotgunLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Forest/Avatars/ShotgunLancerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/ShotgunLancerAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/GrineerAvatars/GrineerMarinePistolAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Desert/Avatars/GrineerMarinePistolAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/Forest/Avatars/GrineerMarinePistolAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/SeaLab/Avatars/GrineerMarinePistolAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Ancients/AncientAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Ancients/HealingAncientAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Ancients/ToxicAncientAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Ancients/DiseasedAncientAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Ancients/SpawningAncientAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Crawlers/CrawlerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Crawlers/NoxiousCrawlerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Crawlers/GraspingCrawlerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Crawlers/GrenadeAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Crawlers/LightningAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/InfestedMoas/NaniteCloudBipedAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/InfestedMoas/SlowBombBipedAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Quadrupeds/QuadrupedAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Runners/LeapingRunnerAvatar",
 | 
			
		||||
        "/Lotus/Types/Enemies/Infested/AiWeek/Runners/RunnerAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Orokin/OrokinHealingAncientAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Orokin/OrokinHeavyFemaleAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Orokin/OrokinNullifySpacemanAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Orokin/OrokinRocketBombardAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Orokin/RifleLancerAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Orokin/RifleSpacemanAvatar"
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
        "/Lotus/Types/Enemies/Grineer/AIWeek/Avatars/RocketBombardAvatar"
 | 
			
		||||
    ]
 | 
			
		||||
]
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user