forked from OpenWF/SpaceNinjaServer
		
	feat: worldState.baroTennoConRelay config (#2574)
Closes #2531 Reviewed-on: OpenWF/SpaceNinjaServer#2574 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									6e1cb0c9f9
								
							
						
					
					
						commit
						f561884f2c
					
				@ -335,6 +335,17 @@ export const getInventoryResponse = async (
 | 
				
			|||||||
        for (const uniqueName in ExportFlavour) {
 | 
					        for (const uniqueName in ExportFlavour) {
 | 
				
			||||||
            inventoryResponse.FlavourItems.push({ ItemType: uniqueName });
 | 
					            inventoryResponse.FlavourItems.push({ ItemType: uniqueName });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    } else if (config.worldState?.baroTennoConRelay) {
 | 
				
			||||||
 | 
					        [
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/Events/TennoConRelay2022EarlyAccess",
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/Events/TennoConRelay2023EarlyAccess",
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/Events/TennoConRelay2024EarlyAccess",
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/Events/TennoConRelay2025EarlyAccess"
 | 
				
			||||||
 | 
					        ].forEach(uniqueName => {
 | 
				
			||||||
 | 
					            if (!inventoryResponse.FlavourItems.some(x => x.ItemType == uniqueName)) {
 | 
				
			||||||
 | 
					                inventoryResponse.FlavourItems.push({ ItemType: uniqueName });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (config.unlockAllSkins) {
 | 
					    if (config.unlockAllSkins) {
 | 
				
			||||||
 | 
				
			|||||||
@ -82,6 +82,7 @@ export interface IConfig {
 | 
				
			|||||||
        affinityBoost?: boolean;
 | 
					        affinityBoost?: boolean;
 | 
				
			||||||
        resourceBoost?: boolean;
 | 
					        resourceBoost?: boolean;
 | 
				
			||||||
        tennoLiveRelay?: boolean;
 | 
					        tennoLiveRelay?: boolean;
 | 
				
			||||||
 | 
					        baroTennoConRelay?: boolean;
 | 
				
			||||||
        galleonOfGhouls?: number;
 | 
					        galleonOfGhouls?: number;
 | 
				
			||||||
        starDaysOverride?: boolean;
 | 
					        starDaysOverride?: boolean;
 | 
				
			||||||
        eidolonOverride?: string;
 | 
					        eidolonOverride?: string;
 | 
				
			||||||
 | 
				
			|||||||
@ -1157,6 +1157,25 @@ const getIdealTimeSatsifyingConstraints = (constraints: ITimeConstraint[]): numb
 | 
				
			|||||||
    return timeSecs;
 | 
					    return timeSecs;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const fullyStockBaro = (vt: IVoidTrader): void => {
 | 
				
			||||||
 | 
					    for (const armorSet of baro.armorSets) {
 | 
				
			||||||
 | 
					        if (Array.isArray(armorSet[0])) {
 | 
				
			||||||
 | 
					            for (const set of armorSet as IVoidTraderOffer[][]) {
 | 
				
			||||||
 | 
					                for (const item of set) {
 | 
				
			||||||
 | 
					                    vt.Manifest.push(item);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            for (const item of armorSet as IVoidTraderOffer[]) {
 | 
				
			||||||
 | 
					                vt.Manifest.push(item);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    for (const item of baro.rest) {
 | 
				
			||||||
 | 
					        vt.Manifest.push(item);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const getVarziaRotation = (week: number): string => {
 | 
					const getVarziaRotation = (week: number): string => {
 | 
				
			||||||
    const seed = new SRng(week).randomInt(0, 100_000);
 | 
					    const seed = new SRng(week).randomInt(0, 100_000);
 | 
				
			||||||
    const rng = new SRng(seed);
 | 
					    const rng = new SRng(seed);
 | 
				
			||||||
@ -1402,6 +1421,33 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
 | 
				
			|||||||
            Node: "TennoConBHUB6"
 | 
					            Node: "TennoConBHUB6"
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (config.worldState?.baroTennoConRelay) {
 | 
				
			||||||
 | 
					        worldState.Goals.push({
 | 
				
			||||||
 | 
					            _id: { $oid: "687bb2f00000000000000000" },
 | 
				
			||||||
 | 
					            Activation: { $date: { $numberLong: "1752937200000" } },
 | 
				
			||||||
 | 
					            Expiry: { $date: { $numberLong: "2000000000000" } },
 | 
				
			||||||
 | 
					            Count: 0,
 | 
				
			||||||
 | 
					            Goal: 0,
 | 
				
			||||||
 | 
					            Success: 0,
 | 
				
			||||||
 | 
					            Personal: true,
 | 
				
			||||||
 | 
					            //"Faction": "FC_GRINEER",
 | 
				
			||||||
 | 
					            Desc: "/Lotus/Language/Locations/RelayStationTennoCon",
 | 
				
			||||||
 | 
					            ToolTip: "/Lotus/Language/Locations/RelayStationTennoConDesc",
 | 
				
			||||||
 | 
					            Icon: "/Lotus/Interface/Icons/Categories/IconTennoConSigil.png",
 | 
				
			||||||
 | 
					            Tag: "TennoConRelay",
 | 
				
			||||||
 | 
					            Node: "TennoConHUB2"
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        const vt: IVoidTrader = {
 | 
				
			||||||
 | 
					            _id: { $oid: "687809030379266d790495c6" },
 | 
				
			||||||
 | 
					            Activation: { $date: { $numberLong: "1752937200000" } },
 | 
				
			||||||
 | 
					            Expiry: { $date: { $numberLong: "2000000000000" } },
 | 
				
			||||||
 | 
					            Character: "Baro'Ki Teel",
 | 
				
			||||||
 | 
					            Node: "TennoConHUB2",
 | 
				
			||||||
 | 
					            Manifest: []
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        worldState.VoidTraders.push(vt);
 | 
				
			||||||
 | 
					        fullyStockBaro(vt);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    const isFebruary = date.getUTCMonth() == 1;
 | 
					    const isFebruary = date.getUTCMonth() == 1;
 | 
				
			||||||
    if (config.worldState?.starDaysOverride ?? isFebruary) {
 | 
					    if (config.worldState?.starDaysOverride ?? isFebruary) {
 | 
				
			||||||
        worldState.Goals.push({
 | 
					        worldState.Goals.push({
 | 
				
			||||||
@ -1633,24 +1679,8 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
 | 
				
			|||||||
        };
 | 
					        };
 | 
				
			||||||
        worldState.VoidTraders.push(vt);
 | 
					        worldState.VoidTraders.push(vt);
 | 
				
			||||||
        if (isBeforeNextExpectedWorldStateRefresh(timeMs, baroActualStart)) {
 | 
					        if (isBeforeNextExpectedWorldStateRefresh(timeMs, baroActualStart)) {
 | 
				
			||||||
            vt.Manifest = [];
 | 
					 | 
				
			||||||
            if (config.baroFullyStocked) {
 | 
					            if (config.baroFullyStocked) {
 | 
				
			||||||
                for (const armorSet of baro.armorSets) {
 | 
					                fullyStockBaro(vt);
 | 
				
			||||||
                    if (Array.isArray(armorSet[0])) {
 | 
					 | 
				
			||||||
                        for (const set of armorSet as IVoidTraderOffer[][]) {
 | 
					 | 
				
			||||||
                            for (const item of set) {
 | 
					 | 
				
			||||||
                                vt.Manifest.push(item);
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    } else {
 | 
					 | 
				
			||||||
                        for (const item of armorSet as IVoidTraderOffer[]) {
 | 
					 | 
				
			||||||
                            vt.Manifest.push(item);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                for (const item of baro.rest) {
 | 
					 | 
				
			||||||
                    vt.Manifest.push(item);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                const rng = new SRng(new SRng(baroIndex).randomInt(0, 100_000));
 | 
					                const rng = new SRng(new SRng(baroIndex).randomInt(0, 100_000));
 | 
				
			||||||
                // TOVERIFY: Constraint for upgrades amount?
 | 
					                // TOVERIFY: Constraint for upgrades amount?
 | 
				
			||||||
 | 
				
			|||||||
@ -929,6 +929,10 @@
 | 
				
			|||||||
                                    <input class="form-check-input" type="checkbox" id="worldState.tennoLiveRelay" />
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.tennoLiveRelay" />
 | 
				
			||||||
                                    <label class="form-check-label" for="worldState.tennoLiveRelay" data-loc="worldState_tennoLiveRelay"></label>
 | 
					                                    <label class="form-check-label" for="worldState.tennoLiveRelay" data-loc="worldState_tennoLiveRelay"></label>
 | 
				
			||||||
                                </div>
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.baroTennoConRelay" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="worldState.baroTennoConRelay" data-loc="worldState_baroTennoConRelay"></label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
                                <div class="form-check">
 | 
					                                <div class="form-check">
 | 
				
			||||||
                                    <input class="form-check-input" type="checkbox" id="worldState.varziaFullyStocked" />
 | 
					                                    <input class="form-check-input" type="checkbox" id="worldState.varziaFullyStocked" />
 | 
				
			||||||
                                    <label class="form-check-label" for="worldState.varziaFullyStocked" data-loc="worldState_varziaFullyStocked"></label>
 | 
					                                    <label class="form-check-label" for="worldState.varziaFullyStocked" data-loc="worldState_varziaFullyStocked"></label>
 | 
				
			||||||
 | 
				
			|||||||
@ -243,6 +243,7 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `Event Booster: Erfahrung`,
 | 
					    worldState_affinityBoost: `Event Booster: Erfahrung`,
 | 
				
			||||||
    worldState_resourceBoost: `Event Booster: Ressourcen`,
 | 
					    worldState_resourceBoost: `Event Booster: Ressourcen`,
 | 
				
			||||||
    worldState_tennoLiveRelay: `[UNTRANSLATED] TennoLive Relay`,
 | 
					    worldState_tennoLiveRelay: `[UNTRANSLATED] TennoLive Relay`,
 | 
				
			||||||
 | 
					    worldState_baroTennoConRelay: `[UNTRANSLATED] Baro's TennoCon Relay`,
 | 
				
			||||||
    worldState_starDays: `Sternen-Tage`,
 | 
					    worldState_starDays: `Sternen-Tage`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `Galeone der Ghule`,
 | 
					    worldState_galleonOfGhouls: `Galeone der Ghule`,
 | 
				
			||||||
    enabled: `[UNTRANSLATED] Enabled`,
 | 
					    enabled: `[UNTRANSLATED] Enabled`,
 | 
				
			||||||
 | 
				
			|||||||
@ -242,6 +242,7 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `Affinity Boost`,
 | 
					    worldState_affinityBoost: `Affinity Boost`,
 | 
				
			||||||
    worldState_resourceBoost: `Resource Boost`,
 | 
					    worldState_resourceBoost: `Resource Boost`,
 | 
				
			||||||
    worldState_tennoLiveRelay: `TennoLive Relay`,
 | 
					    worldState_tennoLiveRelay: `TennoLive Relay`,
 | 
				
			||||||
 | 
					    worldState_baroTennoConRelay: `Baro's TennoCon Relay`,
 | 
				
			||||||
    worldState_starDays: `Star Days`,
 | 
					    worldState_starDays: `Star Days`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `Galleon of Ghouls`,
 | 
					    worldState_galleonOfGhouls: `Galleon of Ghouls`,
 | 
				
			||||||
    enabled: `Enabled`,
 | 
					    enabled: `Enabled`,
 | 
				
			||||||
 | 
				
			|||||||
@ -243,6 +243,7 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `Potenciador de Afinidad`,
 | 
					    worldState_affinityBoost: `Potenciador de Afinidad`,
 | 
				
			||||||
    worldState_resourceBoost: `Potenciador de Recursos`,
 | 
					    worldState_resourceBoost: `Potenciador de Recursos`,
 | 
				
			||||||
    worldState_tennoLiveRelay: `[UNTRANSLATED] TennoLive Relay`,
 | 
					    worldState_tennoLiveRelay: `[UNTRANSLATED] TennoLive Relay`,
 | 
				
			||||||
 | 
					    worldState_baroTennoConRelay: `[UNTRANSLATED] Baro's TennoCon Relay`,
 | 
				
			||||||
    worldState_starDays: `Días estelares`,
 | 
					    worldState_starDays: `Días estelares`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `Galeón de Gules`,
 | 
					    worldState_galleonOfGhouls: `Galeón de Gules`,
 | 
				
			||||||
    enabled: `[UNTRANSLATED] Enabled`,
 | 
					    enabled: `[UNTRANSLATED] Enabled`,
 | 
				
			||||||
 | 
				
			|||||||
@ -243,6 +243,7 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `Booster d'Affinité`,
 | 
					    worldState_affinityBoost: `Booster d'Affinité`,
 | 
				
			||||||
    worldState_resourceBoost: `Booster de Ressource`,
 | 
					    worldState_resourceBoost: `Booster de Ressource`,
 | 
				
			||||||
    worldState_tennoLiveRelay: `[UNTRANSLATED] TennoLive Relay`,
 | 
					    worldState_tennoLiveRelay: `[UNTRANSLATED] TennoLive Relay`,
 | 
				
			||||||
 | 
					    worldState_baroTennoConRelay: `[UNTRANSLATED] Baro's TennoCon Relay`,
 | 
				
			||||||
    worldState_starDays: `Jours Stellaires`,
 | 
					    worldState_starDays: `Jours Stellaires`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `Galion des Goules`,
 | 
					    worldState_galleonOfGhouls: `Galion des Goules`,
 | 
				
			||||||
    enabled: `[UNTRANSLATED] Enabled`,
 | 
					    enabled: `[UNTRANSLATED] Enabled`,
 | 
				
			||||||
 | 
				
			|||||||
@ -243,6 +243,7 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `[UNTRANSLATED] Affinity Boost`,
 | 
					    worldState_affinityBoost: `[UNTRANSLATED] Affinity Boost`,
 | 
				
			||||||
    worldState_resourceBoost: `[UNTRANSLATED] Resource Boost`,
 | 
					    worldState_resourceBoost: `[UNTRANSLATED] Resource Boost`,
 | 
				
			||||||
    worldState_tennoLiveRelay: `[UNTRANSLATED] TennoLive Relay`,
 | 
					    worldState_tennoLiveRelay: `[UNTRANSLATED] TennoLive Relay`,
 | 
				
			||||||
 | 
					    worldState_baroTennoConRelay: `[UNTRANSLATED] Baro's TennoCon Relay`,
 | 
				
			||||||
    worldState_starDays: `[UNTRANSLATED] Star Days`,
 | 
					    worldState_starDays: `[UNTRANSLATED] Star Days`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `[UNTRANSLATED] Galleon of Ghouls`,
 | 
					    worldState_galleonOfGhouls: `[UNTRANSLATED] Galleon of Ghouls`,
 | 
				
			||||||
    enabled: `[UNTRANSLATED] Enabled`,
 | 
					    enabled: `[UNTRANSLATED] Enabled`,
 | 
				
			||||||
 | 
				
			|||||||
@ -243,6 +243,7 @@ dict = {
 | 
				
			|||||||
    worldState_affinityBoost: `经验加成`,
 | 
					    worldState_affinityBoost: `经验加成`,
 | 
				
			||||||
    worldState_resourceBoost: `资源加成`,
 | 
					    worldState_resourceBoost: `资源加成`,
 | 
				
			||||||
    worldState_tennoLiveRelay: `TennoLive 中继站`,
 | 
					    worldState_tennoLiveRelay: `TennoLive 中继站`,
 | 
				
			||||||
 | 
					    worldState_baroTennoConRelay: `[UNTRANSLATED] Baro's TennoCon Relay`,
 | 
				
			||||||
    worldState_starDays: `活动:星日`,
 | 
					    worldState_starDays: `活动:星日`,
 | 
				
			||||||
    worldState_galleonOfGhouls: `战术警报:尸鬼的帆船战舰`,
 | 
					    worldState_galleonOfGhouls: `战术警报:尸鬼的帆船战舰`,
 | 
				
			||||||
    enabled: `启用`,
 | 
					    enabled: `启用`,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user