From 58568316f7933634a44914a23a0689667f091e3d Mon Sep 17 00:00:00 2001 From: Heron Date: Wed, 27 Nov 2024 20:36:58 -0500 Subject: [PATCH] Completed server side implementation of QA god space parts --- .../terminal/terminal_character_builder.java | 137 +++++++++++++++++- 1 file changed, 136 insertions(+), 1 deletion(-) diff --git a/sku.0/sys.server/compiled/game/script/terminal/terminal_character_builder.java b/sku.0/sys.server/compiled/game/script/terminal/terminal_character_builder.java index 013364a53..3fa90402d 100755 --- a/sku.0/sys.server/compiled/game/script/terminal/terminal_character_builder.java +++ b/sku.0/sys.server/compiled/game/script/terminal/terminal_character_builder.java @@ -839,6 +839,18 @@ public class terminal_character_builder extends script.base_script }; + public static final String[] QA_SPACE_COMPONENTS = { + "Heron's QA Shield", + "Heron's QA Armor", + "Heron's QA Engine", + "Heron's QA Reactor", + "Heron's QA Capacitor", + "Heron's QA Weapon", + "Heron's Droid Interface", + "Heron's QA Booster" + }; + + public static final String[] DEED_CRAFTING_OPTIONS = { "Deeds", "Crafting" @@ -3803,6 +3815,9 @@ public class terminal_character_builder extends script.base_script case 11: refreshMenu(player, GENERIC_PROMPT, GENERIC_TITLE, SPACE_LAUNCHER_COUNTERMEASURES, "handleSpaceCountermeasuresSelect", false); break; + case 12: + refreshMenu(player, GENERIC_PROMPT, GENERIC_TITLE, QA_SPACE_COMPONENTS, "handleSpaceQAComponentOptions", false); + break; default: cleanScriptVars(player); return SCRIPT_CONTINUE; @@ -3948,7 +3963,7 @@ public class terminal_character_builder extends script.base_script break; case 5: - makeCraftedItem("object/draft_schematic/droid/navicomputer_5.iff", 999.0f, pInv); + makeCraftedItem("object/draft_schematic/droid/navicomputer_6.iff", 999.0f, pInv); break; } @@ -4406,6 +4421,126 @@ public class terminal_character_builder extends script.base_script return SCRIPT_CONTINUE; } + public void handleSpaceQAComponentOptions(obj_id player) throws InterruptedException + { + refreshMenu(player, "Select the desired component", "Test Center Terminal", QA_SPACE_COMPONENTS, "handleSpaceQAComponentOptions", false); + } + + public int handleSpaceQAComponentOptions(obj_id self, dictionary params) throws InterruptedException + { + if ((params == null) || (params.isEmpty())) + { + return SCRIPT_CONTINUE; + } + + obj_id player = sui.getPlayerId(params); + obj_id pInv = utils.getInventoryContainer(player); + int btn = sui.getIntButtonPressed(params); + int idx = sui.getListboxSelectedRow(params); + + if (btn == sui.BP_REVERT) + { + handleShipMenuSelect(player); + return SCRIPT_CONTINUE; + } + if (btn == sui.BP_CANCEL) + { + cleanScriptVars(player); + closeOldWindow(player); + return SCRIPT_CONTINUE; + } + + + if (idx == -1 || idx > QA_SPACE_COMPONENTS.length) + { + cleanScriptVars(player); + return SCRIPT_CONTINUE; + } + if (!isIdValid(player)) + { + sendSystemMessageTestingOnly(player, "The system is unable to complete the transaction."); + cleanScriptVars(player); + return SCRIPT_OVERRIDE; + } + if (!isIdValid(pInv)) + { + sendSystemMessageTestingOnly(player, "The system is unable to complete the transaction."); + cleanScriptVars(player); + return SCRIPT_OVERRIDE; + } + if (getVolumeFree(pInv) <= 0) + { + sendSystemMessageTestingOnly(player, "Your Inventory is Full, please make room and try again."); + cleanScriptVars(player); + return SCRIPT_OVERRIDE; + } + + obj_id component = null; + + switch(idx) + { + + case 0: + component = createObjectOverloaded("object/tangible/ship/components/shield_generator/shd_heron_qa.iff", pInv); + space_crafting.setShieldGeneratorCurrentFrontHitpoints(component, space_crafting.getShieldGeneratorMaximumFrontHitpoints(component)); + space_crafting.setShieldGeneratorCurrentBackHitpoints(component, space_crafting.getShieldGeneratorMaximumBackHitpoints(component)); + cleanScriptVars(player); + break; + + case 1: + component = createObjectOverloaded("object/tangible/ship/components/armor/arm_heron_qa.iff", pInv); + space_crafting.setComponentCurrentArmorHitpoints(component, space_crafting.getComponentMaximumArmorHitpoints(component)); + cleanScriptVars(player); + break; + + case 2: + component = createObjectOverloaded("object/tangible/ship/components/engine/eng_heron_qa.iff", pInv); + cleanScriptVars(player); + break; + + case 3: + component = createObjectOverloaded("object/tangible/ship/components/reactor/rct_heron_qa.iff", pInv); + cleanScriptVars(player); + break; + + case 4: + component = createObjectOverloaded("object/tangible/ship/components/weapon_capacitor/cap_heron_qa.iff", pInv); + space_crafting.setWeaponCapacitorCurrentEnergy(component, space_crafting.getWeaponCapacitorMaximumEnergy(component)); + cleanScriptVars(player); + break; + + case 5: + component = createObjectOverloaded("object/tangible/ship/components/weapon/wpn_heron_qa.iff", pInv); + cleanScriptVars(player); + break; + + case 6: + component = createObjectOverloaded("object/tangible/ship/components/droid_interface/ddi_heron_qa.iff", pInv); + cleanScriptVars(player); + break; + + case 7: + component = createObjectOverloaded("object/tangible/ship/components/booster/bst_heron_qa.iff", pInv); + space_crafting.setBoosterCurrentEnergy(component, space_crafting.getBoosterMaximumEnergy(component)); + cleanScriptVars(player); + break; + + default: + cleanScriptVars(player); + + } + + if (isValidId(component)) + { + int flags = getIntObjVar(component, "ship_comp.flags"); + flags |= ship_component_flags.SCF_reverse_engineered; + setComponentObjVar(component, "character.builder", 1); + } + + return SCRIPT_CONTINUE; + + } + public void handleCollectionComponentSelect(obj_id player) throws InterruptedException {