XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

chore: improve handling of bayonets (#3502)

Closes #3501 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3502 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

c8023919
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

5 个文件 +30 -10
Modified package-lock.json +4 -4
@@ -18,7 +18,7 @@
18 18 "morgan": "^1.10.0",
19 19 "ncp": "^2.0.0",
20 20 "undici": "^7.10.0",
21 "warframe-public-export-plus": "^0.5.101",
21 "warframe-public-export-plus": "^0.5.102",
22 22 "warframe-riven-info": "^0.1.2",
23 23 "winston": "^3.17.0",
24 24 "winston-daily-rotate-file": "^5.0.0",
@@ -3964,9 +3964,9 @@
3964 3964 }
3965 3965 },
3966 3966 "node_modules/warframe-public-export-plus": {
3967 "version": "0.5.101",
3968 "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.101.tgz",
3969 "integrity": "sha512-gicCnm400RzMhg0eRgOtgrvUTMzRWsd82319kj6aBOWy9Q6hEU8qVWWxkBa/YdAPHRf0QD1CkAq093p5VxAt3w=="
3967 "version": "0.5.102",
3968 "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.102.tgz",
3969 "integrity": "sha512-J1sYAas39E+vWSEoU7nIdjmXHBb50zGJMelQP3KlyGadd+f33U1IdzT43wkYUVSYHSCi6HI+dVPKF6Ao6t3t5Q=="
3970 3970 },
3971 3971 "node_modules/warframe-riven-info": {
3972 3972 "version": "0.1.2",
Modified package.json +1 -1
@@ -35,7 +35,7 @@
35 35 "morgan": "^1.10.0",
36 36 "ncp": "^2.0.0",
37 37 "undici": "^7.10.0",
38 "warframe-public-export-plus": "^0.5.101",
38 "warframe-public-export-plus": "^0.5.102",
39 39 "warframe-riven-info": "^0.1.2",
40 40 "winston": "^3.17.0",
41 41 "winston-daily-rotate-file": "^5.0.0",
Modified src/controllers/custom/getItemListsController.ts +8 -2
@@ -213,12 +213,18 @@ const getItemListsController: RequestHandler = (req, response) => {
213 213 item.productCategory == "SentinelWeapons" ||
214 214 item.productCategory == "OperatorAmps"
215 215 ) {
216 res[item.productCategory].push({
216 const listedItem: ListedItem = {
217 217 uniqueName,
218 218 name: getString(item.name, lang),
219 219 maxLevelCap: item.maxLevelCap,
220 220 parentName: item.parentName
221 });
221 };
222 res[item.productCategory].push(listedItem);
223
224 // Only allow the rifle part of a bayonet to be added via webui.
225 if (item.bayonetOtherWeaponType && item.excludeFromMarket) {
226 listedItem.badReason = "notraw";
227 }
222 228 }
223 229 } else if (!item.excludeFromCodex) {
224 230 res.miscitems.push({
Modified src/services/inventoryService.ts +5 -2
@@ -724,13 +724,16 @@ export const addItem = async (
724 724 }
725 725 const inventoryChanges: IInventoryChanges = {};
726 726 defaultOverwrites.Configs = applyDefaultUpgrades(inventory, weapon.defaultUpgrades, inventoryChanges);
727 if (typeName == "/Lotus/Weapons/Tenno/Bayonet/TnBayonetRifleWeapon") {
727 if (
728 weapon.bayonetOtherWeaponType && // Is this a bayonet?
729 !weapon.excludeFromMarket // Is this is the rifle half?
730 ) {
728 731 defaultOverwrites._id = new Types.ObjectId();
729 732 defaultOverwrites.AltWeaponModeId = new Types.ObjectId();
730 733 addEquipment(
731 734 inventory,
732 735 "Melee",
733 "/Lotus/Weapons/Tenno/Bayonet/TnBayonetMeleeWeapon",
736 weapon.bayonetOtherWeaponType,
734 737 {
735 738 _id: defaultOverwrites.AltWeaponModeId,
736 739 AltWeaponModeId: defaultOverwrites._id,
Modified static/webui/script.js +12 -1
@@ -1034,6 +1034,7 @@ function translateInventoryDataToDom() {
1034 1034 .sort((a, b) => (b.Favorite ? 1 : 0) - (a.Favorite ? 1 : 0))
1035 1035 .forEach(item => {
1036 1036 const tr = document.createElement("tr");
1037 tr.setAttribute("data-item-oid", item.ItemId.$oid);
1037 1038 tr.setAttribute("data-item-type", item.ItemType);
1038 1039 {
1039 1040 const td = document.createElement("td");
@@ -1197,8 +1198,18 @@ function translateInventoryDataToDom() {
1197 1198 a.href = "#";
1198 1199 a.onclick = function (event) {
1199 1200 event.preventDefault();
1200 document.getElementById(category + "-list").removeChild(tr);
1201 tr.parentNode.removeChild(tr);
1201 1202 disposeOfGear(category, item.ItemId.$oid);
1203 if (item.AltWeaponModeId) {
1204 const otherCategory = category == "Melee" ? "LongGuns" : "Melee";
1205 const otherTr = document.querySelector(
1206 `[data-item-oid="${item.AltWeaponModeId.$oid}"]`
1207 );
1208 if (otherTr) {
1209 otherTr.parentNode.removeChild(otherTr);
1210 disposeOfGear(otherCategory, item.AltWeaponModeId.$oid);
1211 }
1212 }
1202 1213 };
1203 1214 a.title = loc("code_remove");
1204 1215 a.innerHTML = icons.trash;