forked from OpenWF/SpaceNinjaServer
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			7fe00da2a4
			...
			593407e3c4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 593407e3c4 | |||
| 8e502ebe0b | |||
| 4b3b1969da | |||
| a0ce110e7e | 
							
								
								
									
										8
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -18,7 +18,7 @@
 | 
				
			|||||||
        "morgan": "^1.10.0",
 | 
					        "morgan": "^1.10.0",
 | 
				
			||||||
        "ncp": "^2.0.0",
 | 
					        "ncp": "^2.0.0",
 | 
				
			||||||
        "undici": "^7.10.0",
 | 
					        "undici": "^7.10.0",
 | 
				
			||||||
        "warframe-public-export-plus": "^0.5.91",
 | 
					        "warframe-public-export-plus": "^0.5.92",
 | 
				
			||||||
        "warframe-riven-info": "^0.1.2",
 | 
					        "warframe-riven-info": "^0.1.2",
 | 
				
			||||||
        "winston": "^3.17.0",
 | 
					        "winston": "^3.17.0",
 | 
				
			||||||
        "winston-daily-rotate-file": "^5.0.0",
 | 
					        "winston-daily-rotate-file": "^5.0.0",
 | 
				
			||||||
@ -5534,9 +5534,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/warframe-public-export-plus": {
 | 
					    "node_modules/warframe-public-export-plus": {
 | 
				
			||||||
      "version": "0.5.91",
 | 
					      "version": "0.5.92",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.91.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.92.tgz",
 | 
				
			||||||
      "integrity": "sha512-xp8rq/dvFC6+urb6vVFRtAmm1v0iE/ZALI3uVGBpblsVB/PWmGxjBBp8l00dCZs67JsqEKcrCcogKwtKTwDc1w=="
 | 
					      "integrity": "sha512-5O5VtyVXxKtl5QdpzoVyKov5GX6t3z/U5tqPq73kjoSyA5NQT2V9sWsZK4ASyY8Edv9hNsdwlZdsdP8QmYbubg=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/warframe-riven-info": {
 | 
					    "node_modules/warframe-riven-info": {
 | 
				
			||||||
      "version": "0.1.2",
 | 
					      "version": "0.1.2",
 | 
				
			||||||
 | 
				
			|||||||
@ -36,7 +36,7 @@
 | 
				
			|||||||
    "morgan": "^1.10.0",
 | 
					    "morgan": "^1.10.0",
 | 
				
			||||||
    "ncp": "^2.0.0",
 | 
					    "ncp": "^2.0.0",
 | 
				
			||||||
    "undici": "^7.10.0",
 | 
					    "undici": "^7.10.0",
 | 
				
			||||||
    "warframe-public-export-plus": "^0.5.91",
 | 
					    "warframe-public-export-plus": "^0.5.92",
 | 
				
			||||||
    "warframe-riven-info": "^0.1.2",
 | 
					    "warframe-riven-info": "^0.1.2",
 | 
				
			||||||
    "winston": "^3.17.0",
 | 
					    "winston": "^3.17.0",
 | 
				
			||||||
    "winston-daily-rotate-file": "^5.0.0",
 | 
					    "winston-daily-rotate-file": "^5.0.0",
 | 
				
			||||||
 | 
				
			|||||||
@ -136,7 +136,7 @@ export const manageQuestsController: RequestHandler = async (req, res) => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                if (currentStage + 1 == questManifest.chainStages?.length) {
 | 
					                if (currentStage + 1 == questManifest.chainStages?.length) {
 | 
				
			||||||
                    logger.debug(`Trying to complete last stage with nextStage, calling completeQuest instead`);
 | 
					                    logger.debug(`Trying to complete last stage with nextStage, calling completeQuest instead`);
 | 
				
			||||||
                    await completeQuest(inventory, questKey.ItemType);
 | 
					                    await completeQuest(inventory, questKey.ItemType, true);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    if (run > 0) {
 | 
					                    if (run > 0) {
 | 
				
			||||||
                        questKey.Progress[currentStage + 1].c = run;
 | 
					                        questKey.Progress[currentStage + 1].c = run;
 | 
				
			||||||
 | 
				
			|||||||
@ -117,6 +117,7 @@ export const createInventory = async (
 | 
				
			|||||||
            inventory.PlayedParkourTutorial = true;
 | 
					            inventory.PlayedParkourTutorial = true;
 | 
				
			||||||
            await addStartingGear(inventory);
 | 
					            await addStartingGear(inventory);
 | 
				
			||||||
            await completeQuest(inventory, "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain");
 | 
					            await completeQuest(inventory, "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain");
 | 
				
			||||||
 | 
					            await completeQuest(inventory, "/Lotus/Types/Keys/ModQuest/ModQuestKeyChain");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            const completedMissions = ["SolNode27", "SolNode89", "SolNode63", "SolNode85", "SolNode15", "SolNode79"];
 | 
					            const completedMissions = ["SolNode27", "SolNode89", "SolNode63", "SolNode85", "SolNode15", "SolNode79"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,7 @@ import {
 | 
				
			|||||||
    ExportAnimals,
 | 
					    ExportAnimals,
 | 
				
			||||||
    ExportEnemies,
 | 
					    ExportEnemies,
 | 
				
			||||||
    ExportFusionBundles,
 | 
					    ExportFusionBundles,
 | 
				
			||||||
 | 
					    ExportKeys,
 | 
				
			||||||
    ExportRegions,
 | 
					    ExportRegions,
 | 
				
			||||||
    ExportRelics,
 | 
					    ExportRelics,
 | 
				
			||||||
    ExportRewards
 | 
					    ExportRewards
 | 
				
			||||||
@ -1141,6 +1142,7 @@ export const addMissionRewards = async (
 | 
				
			|||||||
    const MissionRewards: IMissionReward[] = getRandomMissionDrops(
 | 
					    const MissionRewards: IMissionReward[] = getRandomMissionDrops(
 | 
				
			||||||
        inventory,
 | 
					        inventory,
 | 
				
			||||||
        rewardInfo,
 | 
					        rewardInfo,
 | 
				
			||||||
 | 
					        levelKeyName,
 | 
				
			||||||
        missions,
 | 
					        missions,
 | 
				
			||||||
        wagerTier,
 | 
					        wagerTier,
 | 
				
			||||||
        firstCompletion
 | 
					        firstCompletion
 | 
				
			||||||
@ -1756,6 +1758,7 @@ function getLevelCreditRewards(node: IRegion): number {
 | 
				
			|||||||
function getRandomMissionDrops(
 | 
					function getRandomMissionDrops(
 | 
				
			||||||
    inventory: TInventoryDatabaseDocument,
 | 
					    inventory: TInventoryDatabaseDocument,
 | 
				
			||||||
    RewardInfo: IRewardInfo,
 | 
					    RewardInfo: IRewardInfo,
 | 
				
			||||||
 | 
					    levelKeyName: string | undefined,
 | 
				
			||||||
    mission: IMission | undefined,
 | 
					    mission: IMission | undefined,
 | 
				
			||||||
    tierOverride: number | undefined,
 | 
					    tierOverride: number | undefined,
 | 
				
			||||||
    firstCompletion: boolean
 | 
					    firstCompletion: boolean
 | 
				
			||||||
@ -2193,7 +2196,7 @@ function getRandomMissionDrops(
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (region.cacheRewardManifest && RewardInfo.EnemyCachesFound) {
 | 
					        if (region.cacheRewardManifest && RewardInfo.EnemyCachesFound && !RewardInfo.goalId) {
 | 
				
			||||||
            const deck = ExportRewards[region.cacheRewardManifest];
 | 
					            const deck = ExportRewards[region.cacheRewardManifest];
 | 
				
			||||||
            for (let rotation = 0; rotation != RewardInfo.EnemyCachesFound; ++rotation) {
 | 
					            for (let rotation = 0; rotation != RewardInfo.EnemyCachesFound; ++rotation) {
 | 
				
			||||||
                const drop = getRandomRewardByChance(deck[rotation]);
 | 
					                const drop = getRandomRewardByChance(deck[rotation]);
 | 
				
			||||||
@ -2259,6 +2262,71 @@ function getRandomMissionDrops(
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (RewardInfo.EnemyCachesFound) {
 | 
				
			||||||
 | 
					        if (RewardInfo.goalId) {
 | 
				
			||||||
 | 
					            const goal = getWorldState().Goals.find(x => x._id.$oid == RewardInfo.goalId);
 | 
				
			||||||
 | 
					            if (goal) {
 | 
				
			||||||
 | 
					                let currentMissionKey: string | undefined;
 | 
				
			||||||
 | 
					                if (RewardInfo.node == goal.Node) {
 | 
				
			||||||
 | 
					                    currentMissionKey = goal.MissionKeyName;
 | 
				
			||||||
 | 
					                } else if (goal.ConcurrentNodes && goal.ConcurrentMissionKeyNames) {
 | 
				
			||||||
 | 
					                    for (let i = 0; i < goal.ConcurrentNodes.length; i++) {
 | 
				
			||||||
 | 
					                        if (RewardInfo.node == goal.ConcurrentNodes[i]) {
 | 
				
			||||||
 | 
					                            currentMissionKey = goal.ConcurrentMissionKeyNames[i];
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                if (currentMissionKey) {
 | 
				
			||||||
 | 
					                    const keyMeta = ExportKeys[currentMissionKey];
 | 
				
			||||||
 | 
					                    if (keyMeta.cacheRewardManifest) {
 | 
				
			||||||
 | 
					                        const deck = ExportRewards[keyMeta.cacheRewardManifest];
 | 
				
			||||||
 | 
					                        for (let rotation = 0; rotation != RewardInfo.EnemyCachesFound; ++rotation) {
 | 
				
			||||||
 | 
					                            const drop = getRandomRewardByChance(deck[rotation]);
 | 
				
			||||||
 | 
					                            if (drop) {
 | 
				
			||||||
 | 
					                                drops.push({
 | 
				
			||||||
 | 
					                                    StoreItem: drop.type,
 | 
				
			||||||
 | 
					                                    ItemCount: drop.itemCount,
 | 
				
			||||||
 | 
					                                    FromEnemyCache: true
 | 
				
			||||||
 | 
					                                });
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } else if (RewardInfo.alertId) {
 | 
				
			||||||
 | 
					            const alert = getWorldState().Alerts.find(x => x._id.$oid == RewardInfo.alertId);
 | 
				
			||||||
 | 
					            if (alert && alert.MissionInfo.enemyCacheOverride) {
 | 
				
			||||||
 | 
					                const deck = ExportRewards[alert.MissionInfo.enemyCacheOverride];
 | 
				
			||||||
 | 
					                for (let rotation = 0; rotation != RewardInfo.EnemyCachesFound; ++rotation) {
 | 
				
			||||||
 | 
					                    const drop = getRandomRewardByChance(deck[rotation]);
 | 
				
			||||||
 | 
					                    if (drop) {
 | 
				
			||||||
 | 
					                        drops.push({
 | 
				
			||||||
 | 
					                            StoreItem: drop.type,
 | 
				
			||||||
 | 
					                            ItemCount: drop.itemCount,
 | 
				
			||||||
 | 
					                            FromEnemyCache: true
 | 
				
			||||||
 | 
					                        });
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } else if (levelKeyName) {
 | 
				
			||||||
 | 
					            const keyMeta = ExportKeys[levelKeyName];
 | 
				
			||||||
 | 
					            if (keyMeta.cacheRewardManifest) {
 | 
				
			||||||
 | 
					                const deck = ExportRewards[keyMeta.cacheRewardManifest];
 | 
				
			||||||
 | 
					                for (let rotation = 0; rotation != RewardInfo.EnemyCachesFound; ++rotation) {
 | 
				
			||||||
 | 
					                    const drop = getRandomRewardByChance(deck[rotation]);
 | 
				
			||||||
 | 
					                    if (drop) {
 | 
				
			||||||
 | 
					                        drops.push({
 | 
				
			||||||
 | 
					                            StoreItem: drop.type,
 | 
				
			||||||
 | 
					                            ItemCount: drop.itemCount,
 | 
				
			||||||
 | 
					                            FromEnemyCache: true
 | 
				
			||||||
 | 
					                        });
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (inventory.missionsCanGiveAllRelics) {
 | 
					    if (inventory.missionsCanGiveAllRelics) {
 | 
				
			||||||
        for (const drop of drops) {
 | 
					        for (const drop of drops) {
 | 
				
			||||||
            const itemType = fromStoreItem(drop.StoreItem);
 | 
					            const itemType = fromStoreItem(drop.StoreItem);
 | 
				
			||||||
 | 
				
			|||||||
@ -116,7 +116,11 @@ export const addQuestKey = (
 | 
				
			|||||||
    return inventory.QuestKeys[index - 1].toJSON<IQuestKeyClient>();
 | 
					    return inventory.QuestKeys[index - 1].toJSON<IQuestKeyClient>();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const completeQuest = async (inventory: TInventoryDatabaseDocument, questKey: string): Promise<void> => {
 | 
					export const completeQuest = async (
 | 
				
			||||||
 | 
					    inventory: TInventoryDatabaseDocument,
 | 
				
			||||||
 | 
					    questKey: string,
 | 
				
			||||||
 | 
					    sendMessages: boolean = false
 | 
				
			||||||
 | 
					): Promise<void> => {
 | 
				
			||||||
    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
 | 
					    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
 | 
				
			||||||
    const chainStages = ExportKeys[questKey]?.chainStages;
 | 
					    const chainStages = ExportKeys[questKey]?.chainStages;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -134,8 +138,8 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
 | 
				
			|||||||
            unlock: true,
 | 
					            unlock: true,
 | 
				
			||||||
            Progress: Array.from({ length: chainStageTotal }, () => ({
 | 
					            Progress: Array.from({ length: chainStageTotal }, () => ({
 | 
				
			||||||
                c: 0,
 | 
					                c: 0,
 | 
				
			||||||
                i: false,
 | 
					                i: true,
 | 
				
			||||||
                m: false,
 | 
					                m: true,
 | 
				
			||||||
                b: []
 | 
					                b: []
 | 
				
			||||||
            }))
 | 
					            }))
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
@ -162,7 +166,7 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
 | 
				
			|||||||
        const stage = existingQuestKey.Progress[i];
 | 
					        const stage = existingQuestKey.Progress[i];
 | 
				
			||||||
        if (stage.c <= run) {
 | 
					        if (stage.c <= run) {
 | 
				
			||||||
            stage.c = run;
 | 
					            stage.c = run;
 | 
				
			||||||
            await giveKeyChainStageTriggered(inventory, { KeyChain: questKey, ChainStage: i });
 | 
					            await giveKeyChainStageTriggered(inventory, { KeyChain: questKey, ChainStage: i }, sendMessages);
 | 
				
			||||||
            await giveKeyChainMissionReward(inventory, { KeyChain: questKey, ChainStage: i });
 | 
					            await giveKeyChainMissionReward(inventory, { KeyChain: questKey, ChainStage: i });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -328,7 +332,8 @@ export const giveKeyChainItem = async (
 | 
				
			|||||||
export const giveKeyChainMessage = async (
 | 
					export const giveKeyChainMessage = async (
 | 
				
			||||||
    inventory: TInventoryDatabaseDocument,
 | 
					    inventory: TInventoryDatabaseDocument,
 | 
				
			||||||
    keyChainInfo: IKeyChainRequest,
 | 
					    keyChainInfo: IKeyChainRequest,
 | 
				
			||||||
    questKey: IQuestKeyDatabase
 | 
					    questKey: IQuestKeyDatabase,
 | 
				
			||||||
 | 
					    sendMessage: boolean = true
 | 
				
			||||||
): Promise<void> => {
 | 
					): Promise<void> => {
 | 
				
			||||||
    const keyChainMessage = getKeyChainMessage(keyChainInfo);
 | 
					    const keyChainMessage = getKeyChainMessage(keyChainInfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -337,7 +342,12 @@ export const giveKeyChainMessage = async (
 | 
				
			|||||||
        keyChainMessage.countedAtt = [];
 | 
					        keyChainMessage.countedAtt = [];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    await createMessage(inventory.accountOwnerId, [keyChainMessage]);
 | 
					    if (sendMessage) {
 | 
				
			||||||
 | 
					        await createMessage(inventory.accountOwnerId, [keyChainMessage]);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        if (keyChainMessage.countedAtt?.length) await addItems(inventory, keyChainMessage.countedAtt);
 | 
				
			||||||
 | 
					        if (keyChainMessage.att?.length) await addItems(inventory, keyChainMessage.att);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    updateQuestStage(inventory, keyChainInfo, { m: true });
 | 
					    updateQuestStage(inventory, keyChainInfo, { m: true });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -385,7 +395,8 @@ export const giveKeyChainMissionReward = async (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export const giveKeyChainStageTriggered = async (
 | 
					export const giveKeyChainStageTriggered = async (
 | 
				
			||||||
    inventory: TInventoryDatabaseDocument,
 | 
					    inventory: TInventoryDatabaseDocument,
 | 
				
			||||||
    keyChainInfo: IKeyChainRequest
 | 
					    keyChainInfo: IKeyChainRequest,
 | 
				
			||||||
 | 
					    sendMessage: boolean = true
 | 
				
			||||||
): Promise<void> => {
 | 
					): Promise<void> => {
 | 
				
			||||||
    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
 | 
					    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
 | 
				
			||||||
    const chainStages = ExportKeys[keyChainInfo.KeyChain]?.chainStages;
 | 
					    const chainStages = ExportKeys[keyChainInfo.KeyChain]?.chainStages;
 | 
				
			||||||
@ -397,7 +408,7 @@ export const giveKeyChainStageTriggered = async (
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (chainStages[keyChainInfo.ChainStage].messageToSendWhenTriggered) {
 | 
					        if (chainStages[keyChainInfo.ChainStage].messageToSendWhenTriggered) {
 | 
				
			||||||
            await giveKeyChainMessage(inventory, keyChainInfo, questKey);
 | 
					            await giveKeyChainMessage(inventory, keyChainInfo, questKey, sendMessage);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -58,6 +58,7 @@ export interface IAlertMissionInfo {
 | 
				
			|||||||
    maxEnemyLevel?: number;
 | 
					    maxEnemyLevel?: number;
 | 
				
			||||||
    maxWaveNum?: number;
 | 
					    maxWaveNum?: number;
 | 
				
			||||||
    descText?: string;
 | 
					    descText?: string;
 | 
				
			||||||
 | 
					    enemyCacheOverride?: string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    maxRotations?: number; // SNS specific field
 | 
					    maxRotations?: number; // SNS specific field
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -110,7 +110,7 @@
 | 
				
			|||||||
                            <div class="tab-pane" id="miscItems-tab-content">
 | 
					                            <div class="tab-pane" id="miscItems-tab-content">
 | 
				
			||||||
                                <form class="card-body input-group" onsubmit="doAcquireCountItems('miscitems');return false;">
 | 
					                                <form class="card-body input-group" onsubmit="doAcquireCountItems('miscitems');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="miscitems-count" type="number" value="1" />
 | 
					                                    <input class="form-control" id="miscitems-count" type="number" value="1" />
 | 
				
			||||||
                                    <input class="form-control w-50" id="acquire-type-miscitems" list="datalist-miscitems" />
 | 
					                                    <input class="form-control w-50" id="acquire-type-miscitems" list="datalist-miscitems" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                            </div>
 | 
					                            </div>
 | 
				
			||||||
@ -182,7 +182,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_suits"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_suits"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('Suits');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('Suits');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Suits" list="datalist-Suits" />
 | 
					                                    <input class="form-control" id="acquire-type-Suits" list="datalist-Suits" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -198,13 +198,13 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_longGuns"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_longGuns"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="handleModularSelection('LongGuns');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="handleModularSelection('LongGuns');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-LongGuns" list="datalist-LongGuns" />
 | 
					                                    <input class="form-control" id="acquire-type-LongGuns" list="datalist-LongGuns" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <form class="input-group mb-3 d-none" id="modular-LongGuns">
 | 
					                                <form class="input-group mb-3 d-none" id="modular-LongGuns">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-LongGuns-GUN_BARREL" list="datalist-ModularParts-GUN_BARREL" />
 | 
					                                    <input class="form-control" id="acquire-type-LongGuns-GUN_BARREL" list="datalist-ModularParts-GUN_BARREL" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-LongGuns-GUN_PRIMARY_HANDLE" list="datalist-ModularParts-GUN_PRIMARY_HANDLE" />
 | 
					                                    <input class="form-control" id="acquire-type-LongGuns-GUN_PRIMARY_HANDLE" list="datalist-ModularParts-GUN_PRIMARY_HANDLE" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-LongGuns-GUN_CLIP" list="datalist-ModularParts-GUN_CLIP" />
 | 
					                                    <input class="form-control" id="acquire-type-LongGuns-GUN_CLIP" list="datalist-ModularParts-GUN_CLIP" autocomplete="off" />
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					                                    <table class="table table-hover w-100">
 | 
				
			||||||
@ -221,13 +221,13 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_pistols"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_pistols"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="handleModularSelection('Pistols');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="handleModularSelection('Pistols');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Pistols" list="datalist-Pistols" />
 | 
					                                    <input class="form-control" id="acquire-type-Pistols" list="datalist-Pistols" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <form class="input-group mb-3 d-none" id="modular-Pistols">
 | 
					                                <form class="input-group mb-3 d-none" id="modular-Pistols">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Pistols-GUN_BARREL" list="datalist-ModularParts-GUN_BARREL" />
 | 
					                                    <input class="form-control" id="acquire-type-Pistols-GUN_BARREL" list="datalist-ModularParts-GUN_BARREL" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Pistols-GUN_SECONDARY_HANDLE" list="datalist-ModularParts-GUN_SECONDARY_HANDLE" />
 | 
					                                    <input class="form-control" id="acquire-type-Pistols-GUN_SECONDARY_HANDLE" list="datalist-ModularParts-GUN_SECONDARY_HANDLE" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Pistols-GUN_CLIP" list="datalist-ModularParts-GUN_CLIP" />
 | 
					                                    <input class="form-control" id="acquire-type-Pistols-GUN_CLIP" list="datalist-ModularParts-GUN_CLIP" autocomplete="off" />
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					                                    <table class="table table-hover w-100">
 | 
				
			||||||
@ -242,13 +242,13 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_melee"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_melee"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="handleModularSelection('Melee');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="handleModularSelection('Melee');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Melee" list="datalist-Melee" />
 | 
					                                    <input class="form-control" id="acquire-type-Melee" list="datalist-Melee" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <form class="input-group mb-3 d-none" id="modular-Melee">
 | 
					                                <form class="input-group mb-3 d-none" id="modular-Melee">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Melee-BLADE" list="datalist-ModularParts-BLADE" />
 | 
					                                    <input class="form-control" id="acquire-type-Melee-BLADE" list="datalist-ModularParts-BLADE" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Melee-HILT" list="datalist-ModularParts-HILT" />
 | 
					                                    <input class="form-control" id="acquire-type-Melee-HILT" list="datalist-ModularParts-HILT" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Melee-HILT_WEIGHT" list="datalist-ModularParts-HILT_WEIGHT" />
 | 
					                                    <input class="form-control" id="acquire-type-Melee-HILT_WEIGHT" list="datalist-ModularParts-HILT_WEIGHT" autocomplete="off" />
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					                                    <table class="table table-hover w-100">
 | 
				
			||||||
@ -265,7 +265,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_spaceSuits"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_spaceSuits"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('SpaceSuits');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('SpaceSuits');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-SpaceSuits" list="datalist-SpaceSuits" />
 | 
					                                    <input class="form-control" id="acquire-type-SpaceSuits" list="datalist-SpaceSuits" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -281,7 +281,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_spaceGuns"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_spaceGuns"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('SpaceGuns');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('SpaceGuns');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-SpaceGuns" list="datalist-SpaceGuns" />
 | 
					                                    <input class="form-control" id="acquire-type-SpaceGuns" list="datalist-SpaceGuns" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -299,7 +299,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_spaceMelee"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_spaceMelee"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('SpaceMelee');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('SpaceMelee');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-SpaceMelee" list="datalist-SpaceMelee" />
 | 
					                                    <input class="form-control" id="acquire-type-SpaceMelee" list="datalist-SpaceMelee" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -315,7 +315,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_mechSuits"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_mechSuits"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('MechSuits');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('MechSuits');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MechSuits" list="datalist-MechSuits" />
 | 
					                                    <input class="form-control" id="acquire-type-MechSuits" list="datalist-MechSuits" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -333,7 +333,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_sentinels"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_sentinels"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('Sentinels');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('Sentinels');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Sentinels" list="datalist-Sentinels" />
 | 
					                                    <input class="form-control" id="acquire-type-Sentinels" list="datalist-Sentinels" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -349,20 +349,20 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_moaPets"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_moaPets"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="handleModularSelection('MoaPets');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="handleModularSelection('MoaPets');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MoaPets" list="datalist-MoaPets" />
 | 
					                                    <input class="form-control" id="acquire-type-MoaPets" list="datalist-MoaPets" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <form class="input-group mb-3 d-none" id="modular-MoaPets-Moa">
 | 
					                                <form class="input-group mb-3 d-none" id="modular-MoaPets-Moa">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MoaPets-MOA_ENGINE" list="datalist-ModularParts-MOA_ENGINE" />
 | 
					                                    <input class="form-control" id="acquire-type-MoaPets-MOA_ENGINE" list="datalist-ModularParts-MOA_ENGINE" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MoaPets-MOA_PAYLOAD" list="datalist-ModularParts-MOA_PAYLOAD" />
 | 
					                                    <input class="form-control" id="acquire-type-MoaPets-MOA_PAYLOAD" list="datalist-ModularParts-MOA_PAYLOAD" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MoaPets-MOA_HEAD" list="datalist-ModularParts-MOA_HEAD" />
 | 
					                                    <input class="form-control" id="acquire-type-MoaPets-MOA_HEAD" list="datalist-ModularParts-MOA_HEAD" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MoaPets-MOA_LEG" list="datalist-ModularParts-MOA_LEG" />
 | 
					                                    <input class="form-control" id="acquire-type-MoaPets-MOA_LEG" list="datalist-ModularParts-MOA_LEG" autocomplete="off" />
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <form class="input-group mb-3 d-none" id="modular-MoaPets-Zanuka">
 | 
					                                <form class="input-group mb-3 d-none" id="modular-MoaPets-Zanuka">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MoaPets-ZANUKA_HEAD" list="datalist-ModularParts-ZANUKA_HEAD" />
 | 
					                                    <input class="form-control" id="acquire-type-MoaPets-ZANUKA_HEAD" list="datalist-ModularParts-ZANUKA_HEAD" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MoaPets-ZANUKA_BODY" list="datalist-ModularParts-ZANUKA_BODY" />
 | 
					                                    <input class="form-control" id="acquire-type-MoaPets-ZANUKA_BODY" list="datalist-ModularParts-ZANUKA_BODY" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MoaPets-ZANUKA_LEG" list="datalist-ModularParts-ZANUKA_LEG" />
 | 
					                                    <input class="form-control" id="acquire-type-MoaPets-ZANUKA_LEG" list="datalist-ModularParts-ZANUKA_LEG" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-MoaPets-ZANUKA_TAIL" list="datalist-ModularParts-ZANUKA_TAIL" />
 | 
					                                    <input class="form-control" id="acquire-type-MoaPets-ZANUKA_TAIL" list="datalist-ModularParts-ZANUKA_TAIL" autocomplete="off" />
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					                                    <table class="table table-hover w-100">
 | 
				
			||||||
@ -379,16 +379,16 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_kubrowPets"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_kubrowPets"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="handleModularSelection('KubrowPets');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="handleModularSelection('KubrowPets');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-KubrowPets" list="datalist-KubrowPets" />
 | 
					                                    <input class="form-control" id="acquire-type-KubrowPets" list="datalist-KubrowPets" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <form class="input-group mb-3 d-none" id="modular-KubrowPets-Catbrow">
 | 
					                                <form class="input-group mb-3 d-none" id="modular-KubrowPets-Catbrow">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-KubrowPets-CATBROW_ANTIGEN" list="datalist-ModularParts-CATBROW_ANTIGEN" />
 | 
					                                    <input class="form-control" id="acquire-type-KubrowPets-CATBROW_ANTIGEN" list="datalist-ModularParts-CATBROW_ANTIGEN" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-KubrowPets-CATBROW_MUTAGEN" list="datalist-ModularParts-CATBROW_MUTAGEN" />
 | 
					                                    <input class="form-control" id="acquire-type-KubrowPets-CATBROW_MUTAGEN" list="datalist-ModularParts-CATBROW_MUTAGEN" autocomplete="off" />
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <form class="input-group mb-3 d-none" id="modular-KubrowPets-Kubrow">
 | 
					                                <form class="input-group mb-3 d-none" id="modular-KubrowPets-Kubrow">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-KubrowPets-KUBROW_ANTIGEN" list="datalist-ModularParts-KUBROW_ANTIGEN" />
 | 
					                                    <input class="form-control" id="acquire-type-KubrowPets-KUBROW_ANTIGEN" list="datalist-ModularParts-KUBROW_ANTIGEN" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-KubrowPets-KUBROW_MUTAGEN" list="datalist-ModularParts-KUBROW_MUTAGEN" />
 | 
					                                    <input class="form-control" id="acquire-type-KubrowPets-KUBROW_MUTAGEN" list="datalist-ModularParts-KUBROW_MUTAGEN" autocomplete="off" />
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					                                    <table class="table table-hover w-100">
 | 
				
			||||||
@ -403,7 +403,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_sentinelWeapons"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_sentinelWeapons"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('SentinelWeapons');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('SentinelWeapons');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-SentinelWeapons" list="datalist-SentinelWeapons" />
 | 
					                                    <input class="form-control" id="acquire-type-SentinelWeapons" list="datalist-SentinelWeapons" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -421,13 +421,13 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_operatorAmps"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_operatorAmps"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="handleModularSelection('OperatorAmps');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="handleModularSelection('OperatorAmps');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-OperatorAmps" list="datalist-OperatorAmps" />
 | 
					                                    <input class="form-control" id="acquire-type-OperatorAmps" list="datalist-OperatorAmps" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <form class="input-group mb-3 d-none" id="modular-OperatorAmps">
 | 
					                                <form class="input-group mb-3 d-none" id="modular-OperatorAmps">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-OperatorAmps-AMP_OCULUS" list="datalist-ModularParts-AMP_OCULUS" />
 | 
					                                    <input class="form-control" id="acquire-type-OperatorAmps-AMP_OCULUS" list="datalist-ModularParts-AMP_OCULUS" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-OperatorAmps-AMP_CORE" list="datalist-ModularParts-AMP_CORE" />
 | 
					                                    <input class="form-control" id="acquire-type-OperatorAmps-AMP_CORE" list="datalist-ModularParts-AMP_CORE" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-OperatorAmps-AMP_BRACE" list="datalist-ModularParts-AMP_BRACE" />
 | 
					                                    <input class="form-control" id="acquire-type-OperatorAmps-AMP_BRACE" list="datalist-ModularParts-AMP_BRACE" autocomplete="off" />
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					                                    <table class="table table-hover w-100">
 | 
				
			||||||
@ -442,10 +442,10 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_hoverboards"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_hoverboards"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireModularEquipment('Hoverboards');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireModularEquipment('Hoverboards');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Hoverboards-HB_DECK" list="datalist-ModularParts-HB_DECK" />
 | 
					                                    <input class="form-control" id="acquire-type-Hoverboards-HB_DECK" list="datalist-ModularParts-HB_DECK" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Hoverboards-HB_ENGINE" list="datalist-ModularParts-HB_ENGINE" />
 | 
					                                    <input class="form-control" id="acquire-type-Hoverboards-HB_ENGINE" list="datalist-ModularParts-HB_ENGINE" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Hoverboards-HB_FRONT" list="datalist-ModularParts-HB_FRONT" />
 | 
					                                    <input class="form-control" id="acquire-type-Hoverboards-HB_FRONT" list="datalist-ModularParts-HB_FRONT" autocomplete="off" />
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Hoverboards-HB_JET" list="datalist-ModularParts-HB_JET" />
 | 
					                                    <input class="form-control" id="acquire-type-Hoverboards-HB_JET" list="datalist-ModularParts-HB_JET" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -463,7 +463,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_evolutionProgress"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_evolutionProgress"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEvolution();return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEvolution();return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-EvolutionProgress" list="datalist-EvolutionProgress" />
 | 
					                                    <input class="form-control" id="acquire-type-EvolutionProgress" list="datalist-EvolutionProgress" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -479,7 +479,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_boosters"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_boosters"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireBooster();return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireBooster();return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-Boosters" list="datalist-Boosters" />
 | 
					                                    <input class="form-control" id="acquire-type-Boosters" list="datalist-Boosters" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -497,7 +497,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_flavourItems"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_flavourItems"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('FlavourItems');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('FlavourItems');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-FlavourItems" list="datalist-FlavourItems" />
 | 
					                                    <input class="form-control" id="acquire-type-FlavourItems" list="datalist-FlavourItems" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -514,7 +514,7 @@
 | 
				
			|||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireCountItems('ShipDecorations');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireCountItems('ShipDecorations');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="ShipDecorations-count" type="number" value="1" />
 | 
					                                    <input class="form-control" id="ShipDecorations-count" type="number" value="1" />
 | 
				
			||||||
                                    <input class="form-control w-50" id="acquire-type-ShipDecorations" list="datalist-ShipDecorations" />
 | 
					                                    <input class="form-control w-50" id="acquire-type-ShipDecorations" list="datalist-ShipDecorations" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -532,7 +532,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="inventory_weaponSkins"></h5>
 | 
					                            <h5 class="card-header" data-loc="inventory_weaponSkins"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('WeaponSkins');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('WeaponSkins');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-WeaponSkins" list="datalist-WeaponSkins" />
 | 
					                                    <input class="form-control" id="acquire-type-WeaponSkins" list="datalist-WeaponSkins" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -609,7 +609,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="guildView_techProjects"></h5>
 | 
					                            <h5 class="card-header" data-loc="guildView_techProjects"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form id="techProjects-form" class="input-group mb-3 d-none" onsubmit="addGuildTechProject();return false;">
 | 
					                                <form id="techProjects-form" class="input-group mb-3 d-none" onsubmit="addGuildTechProject();return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-TechProjects" list="datalist-TechProjects" />
 | 
					                                    <input class="form-control" id="acquire-type-TechProjects" list="datalist-TechProjects" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -625,7 +625,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="guildView_vaultDecoRecipes"></h5>
 | 
					                            <h5 class="card-header" data-loc="guildView_vaultDecoRecipes"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form id="vaultDecoRecipes-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultDecoRecipes');return false;">
 | 
					                                <form id="vaultDecoRecipes-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultDecoRecipes');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-VaultDecoRecipes" list="datalist-VaultDecoRecipes" />
 | 
					                                    <input class="form-control" id="acquire-type-VaultDecoRecipes" list="datalist-VaultDecoRecipes" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -644,7 +644,7 @@
 | 
				
			|||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form id="vaultMiscItems-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultMiscItems');return false;">
 | 
					                                <form id="vaultMiscItems-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultMiscItems');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="VaultMiscItems-count" type="number" value="1" />
 | 
					                                    <input class="form-control" id="VaultMiscItems-count" type="number" value="1" />
 | 
				
			||||||
                                    <input class="form-control w-50" id="acquire-type-VaultMiscItems" list="datalist-VaultMiscItems" />
 | 
					                                    <input class="form-control w-50" id="acquire-type-VaultMiscItems" list="datalist-VaultMiscItems" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -661,7 +661,7 @@
 | 
				
			|||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form id="vaultShipDecorations-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultShipDecorations');return false;">
 | 
					                                <form id="vaultShipDecorations-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultShipDecorations');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="VaultShipDecorations-count" type="number" value="1" />
 | 
					                                    <input class="form-control" id="VaultShipDecorations-count" type="number" value="1" />
 | 
				
			||||||
                                    <input class="form-control w-50" id="acquire-type-VaultShipDecorations" list="datalist-ShipDecorations" />
 | 
					                                    <input class="form-control w-50" id="acquire-type-VaultShipDecorations" list="datalist-ShipDecorations" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -766,7 +766,7 @@
 | 
				
			|||||||
                        <form class="input-group mb-3" onsubmit="doPushArchonCrystalUpgrade();return false;">
 | 
					                        <form class="input-group mb-3" onsubmit="doPushArchonCrystalUpgrade();return false;">
 | 
				
			||||||
                            <input type="number" id="archon-crystal-add-count" min="1" max="10000" value="1" class="form-control" style="max-width:100px" />
 | 
					                            <input type="number" id="archon-crystal-add-count" min="1" max="10000" value="1" class="form-control" style="max-width:100px" />
 | 
				
			||||||
                            <span class="input-group-text">x</span>
 | 
					                            <span class="input-group-text">x</span>
 | 
				
			||||||
                            <input class="form-control" list="datalist-archonCrystalUpgrades" />
 | 
					                            <input class="form-control" list="datalist-archonCrystalUpgrades" autocomplete="off" />
 | 
				
			||||||
                            <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                            <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                        </form>
 | 
					                        </form>
 | 
				
			||||||
                        <table class="table table-hover w-100">
 | 
					                        <table class="table table-hover w-100">
 | 
				
			||||||
@ -876,7 +876,7 @@
 | 
				
			|||||||
                            <div class="card-body">
 | 
					                            <div class="card-body">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireMod();return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireMod();return false;">
 | 
				
			||||||
                                    <input class="form-control" id="mod-count" type="number" value="1"/>
 | 
					                                    <input class="form-control" id="mod-count" type="number" value="1"/>
 | 
				
			||||||
                                    <input class="form-control w-50" id="mod-to-acquire" list="datalist-mods" />
 | 
					                                    <input class="form-control w-50" id="mod-to-acquire" list="datalist-mods" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                    <button class="btn btn-success" onclick="window.maxed=true" data-loc="mods_addMax"></button>
 | 
					                                    <button class="btn btn-success" onclick="window.maxed=true" data-loc="mods_addMax"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
@ -904,7 +904,7 @@
 | 
				
			|||||||
                            <h5 class="card-header" data-loc="quests_list"></h5>
 | 
					                            <h5 class="card-header" data-loc="quests_list"></h5>
 | 
				
			||||||
                            <div class="card-body d-flex flex-column">
 | 
					                            <div class="card-body d-flex flex-column">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('QuestKeys');return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireEquipment('QuestKeys');return false;">
 | 
				
			||||||
                                    <input class="form-control" id="acquire-type-QuestKeys" list="datalist-QuestKeys" />
 | 
					                                    <input class="form-control" id="acquire-type-QuestKeys" list="datalist-QuestKeys" autocomplete="off" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
					                                    <button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                                <div class="overflow-auto">
 | 
					                                <div class="overflow-auto">
 | 
				
			||||||
@ -1506,7 +1506,7 @@
 | 
				
			|||||||
                                <form class="form-group mt-2" onsubmit="doSaveConfigStringArray('worldState.circuitGameModes'); return false;">
 | 
					                                <form class="form-group mt-2" onsubmit="doSaveConfigStringArray('worldState.circuitGameModes'); return false;">
 | 
				
			||||||
                                    <label class="form-label" for="worldState.circuitGameModes" data-loc="worldState_theCircuitOverride"></label>
 | 
					                                    <label class="form-label" for="worldState.circuitGameModes" data-loc="worldState_theCircuitOverride"></label>
 | 
				
			||||||
                                    <div class="input-group">
 | 
					                                    <div class="input-group">
 | 
				
			||||||
                                        <input id="worldState.circuitGameModes" type="text" class="form-control tags-input" list="datalist-circuitGameModes" />
 | 
					                                        <input id="worldState.circuitGameModes" type="text" class="form-control tags-input" list="datalist-circuitGameModes" autocomplete="off" />
 | 
				
			||||||
                                        <button class="btn btn-secondary" type="submit" data-loc="cheats_save"></button>
 | 
					                                        <button class="btn btn-secondary" type="submit" data-loc="cheats_save"></button>
 | 
				
			||||||
                                    </div>
 | 
					                                    </div>
 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user