From 89e9c89be90df4db8c82cd41a60f565fe0d96d15 Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Sat, 27 Apr 2024 00:26:05 +0200 Subject: [PATCH] Cyberware 1.3.3 --- .gitattributes | 29 + mod/Cyberware 2281.url | 3 + mod/Cyberware OWB.esp | Bin 0 -> 81634 bytes mod/Cyberware.esm | Bin 0 -> 300108 bytes .../cyberware/cw_adrenaline_booster.xml | 96 + mod/Menus/prefabs/cyberware/cw_arscanner.xml | 789 ++++++++ .../prefabs/cyberware/cw_bionic_eyes.xml | 126 ++ mod/Menus/prefabs/cyberware/cw_implants.xml | 1762 +++++++++++++++++ mod/Menus/prefabs/cyberware/cw_stealth.xml | 64 + mod/Menus/prefabs/cyberware/floating_text.xml | 33 + mod/Menus/prefabs/pnx/pnximplants.xml | 1 + .../cyberware/Effects/fxpulseexplosion01.nif | 3 + .../cyberware/Projectiles/mezprojectile01.nif | 3 + .../Projectiles/mezprojectile01red.nif | 3 + mod/Meshes/cyberware/implantbox.nif | 3 + mod/Meshes/cyberware/implantboxblue.nif | 3 + mod/Meshes/cyberware/surgerymanual.nif | 3 + .../CWxSurgeon_CWxSurgeryTopic_0000A76E_1.lip | 3 + .../CWxSurgeon_CWxSurgeryTopic_0000A76E_1.ogg | 3 + .../CWxSurgeon_CWxSurgeryTopic_00003EFC_1.lip | 3 + .../CWxSurgeon_CWxSurgeryTopic_00003EFC_1.ogg | 3 + .../CWxSurgeon_CWxSurgeryTopic_00000AE0_1.lip | 3 + .../CWxSurgeon_CWxSurgeryTopic_00000AE0_1.ogg | 3 + .../CWxSurgeon_CWxSurgeryTopic_000072D8_1.lip | 3 + .../CWxSurgeon_CWxSurgeryTopic_000072D8_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A15D_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A15D_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A15E_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A15E_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A15F_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A15F_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A160_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A160_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A161_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A161_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A162_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A162_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A163_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A163_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A164_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A164_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A165_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A165_1.ogg | 3 + .../vDialogueM_vDialogueMedica_0000A166_1.lip | 3 + .../vDialogueM_vDialogueMedica_0000A166_1.ogg | 3 + .../CWxSurgeon_CWxSurgeryTopic_00003EFE_1.lip | 3 + .../CWxSurgeon_CWxSurgeryTopic_00003EFE_1.ogg | 3 + .../CWxSurgeon_CWxSurgeryTopic_0000A750_1.lip | 3 + .../CWxSurgeon_CWxSurgeryTopic_0000A750_1.ogg | 3 + .../CWxSurgeon_CWxSurgeryTopic_00003EF4_1.lip | 3 + .../CWxSurgeon_CWxSurgeryTopic_00003EF4_1.ogg | 3 + mod/Textures/cyberware/hud/cy/arrow_head.dds | 3 + mod/Textures/cyberware/hud/cy/arrow_head2.dds | 3 + .../cyberware/hud/cy/arrow_leftarm.dds | 3 + .../cyberware/hud/cy/arrow_leftarm2.dds | 3 + .../cyberware/hud/cy/arrow_leftleg.dds | 3 + .../cyberware/hud/cy/arrow_leftleg2.dds | 3 + .../cyberware/hud/cy/arrow_rightarm.dds | 3 + .../cyberware/hud/cy/arrow_rightarm2.dds | 3 + .../cyberware/hud/cy/arrow_rightleg.dds | 3 + .../cyberware/hud/cy/arrow_rightleg2.dds | 3 + mod/Textures/cyberware/hud/cy/arrow_torso.dds | 3 + .../cyberware/hud/cy/arrow_torso2.dds | 3 + mod/Textures/cyberware/hud/cy/background.dds | 3 + mod/Textures/cyberware/hud/cy/cyboy.dds | 3 + mod/Textures/cyberware/hud/cy/cyboy_base.dds | 3 + mod/Textures/cyberware/hud/cy/cyboy_lines.dds | 3 + mod/Textures/cyberware/hud/cy/implant_add.dds | 3 + mod/Textures/cyberware/hud/cy/leftslot.dds | 3 + mod/Textures/cyberware/hud/cy/nevada.dds | 3 + mod/Textures/cyberware/hud/cy/rightslot.dds | 3 + mod/Textures/cyberware/hud/cy/select_head.dds | 3 + .../cyberware/hud/cy/select_leftarm.dds | 3 + .../cyberware/hud/cy/select_leftleg.dds | 3 + .../cyberware/hud/cy/select_rightarm.dds | 3 + .../cyberware/hud/cy/select_rightleg.dds | 3 + .../cyberware/hud/cy/select_torso.dds | 3 + mod/Textures/cyberware/hud/grain/grain1.dds | 3 + mod/Textures/cyberware/hud/grain/grain2.dds | 3 + mod/Textures/cyberware/hud/grain/grain3.dds | 3 + mod/Textures/cyberware/hud/grain/grain4.dds | 3 + .../cyberware/hud/panel/implant_left_arm.dds | 3 + .../hud/panel/implant_left_armor.dds | 3 + .../cyberware/hud/panel/implant_left_bugs.dds | 3 + .../hud/panel/implant_left_crouch.dds | 3 + .../hud/panel/implant_left_default.dds | 3 + .../cyberware/hud/panel/implant_left_emp.dds | 3 + .../cyberware/hud/panel/implant_left_eye.dds | 3 + .../hud/panel/implant_left_foodhp.dds | 3 + .../hud/panel/implant_left_heart.dds | 3 + .../cyberware/hud/panel/implant_left_leg.dds | 3 + .../cyberware/hud/panel/implant_left_lung.dds | 3 + .../hud/panel/implant_left_microwave.dds | 3 + .../cyberware/hud/panel/implant_left_nail.dds | 3 + .../hud/panel/implant_left_norads.dds | 3 + .../hud/panel/implant_left_phoenix.dds | 3 + .../hud/panel/implant_left_scanner.dds | 3 + .../hud/panel/implant_left_skill.dds | 3 + .../cyberware/hud/panel/implant_left_stat.dds | 3 + .../hud/panel/implant_left_stealth.dds | 3 + .../hud/panel/implant_left_synapses.dds | 3 + .../hud/panel/implant_left_turbo.dds | 3 + .../hud/panel/implant_left_weave.dds | 3 + .../hud/panel/implant_left_weight.dds | 3 + .../cyberware/hud/panel/implant_right_arm.dds | 3 + .../hud/panel/implant_right_armor.dds | 3 + .../hud/panel/implant_right_bugs.dds | 3 + .../hud/panel/implant_right_crouch.dds | 3 + .../hud/panel/implant_right_default.dds | 3 + .../cyberware/hud/panel/implant_right_emp.dds | 3 + .../cyberware/hud/panel/implant_right_eye.dds | 3 + .../hud/panel/implant_right_foodhp.dds | 3 + .../hud/panel/implant_right_heart.dds | 3 + .../cyberware/hud/panel/implant_right_leg.dds | 3 + .../hud/panel/implant_right_lung.dds | 3 + .../hud/panel/implant_right_microwave.dds | 3 + .../hud/panel/implant_right_nail.dds | 3 + .../hud/panel/implant_right_norads.dds | 3 + .../hud/panel/implant_right_phoenix.dds | 3 + .../hud/panel/implant_right_scanner.dds | 3 + .../hud/panel/implant_right_skill.dds | 3 + .../hud/panel/implant_right_stat.dds | 3 + .../hud/panel/implant_right_stealth.dds | 3 + .../hud/panel/implant_right_synapses.dds | 3 + .../hud/panel/implant_right_turbo.dds | 3 + .../hud/panel/implant_right_weave.dds | 3 + .../hud/panel/implant_right_weight.dds | 3 + .../cyberware/hud/scan/ScannerBoy_base.dds | 3 + .../cyberware/hud/scan/ScannerBoy_head.dds | 3 + .../cyberware/hud/scan/ScannerBoy_leftarm.dds | 3 + .../cyberware/hud/scan/ScannerBoy_leftleg.dds | 3 + .../hud/scan/ScannerBoy_rightarm.dds | 3 + .../hud/scan/ScannerBoy_rightleg.dds | 3 + .../cyberware/hud/scan/ScannerBoy_torso.dds | 3 + .../cyberware/hud/scan/healthseperator.dds | 3 + .../cyberware/hud/scan/scannerboy.dds | 3 + .../cyberware/hud/scan/scannerbracket1.dds | 3 + .../cyberware/hud/scan/scannerbracket2.dds | 3 + .../cyberware/hud/sf/stealthmeter0.dds | 3 + .../cyberware/hud/sf/stealthmeter1.dds | 3 + .../cyberware/hud/sf/stealthmeter2.dds | 3 + .../cyberware/hud/sf/stealthmeter3.dds | 3 + .../cyberware/hud/sf/stealthmeter4.dds | 3 + .../cyberware/hud/sf/stealthmeter5.dds | 3 + .../cyberware/hud/sf/stealthmeter6.dds | 3 + .../cyberware/hud/sf/stealthmeter7.dds | 3 + .../cyberware/hud/sf/stealthmeter8.dds | 3 + .../icons/Pipboyimages/items/implantbook.dds | 3 + .../icons/Pipboyimages/items/implantbox.dds | 3 + .../Pipboyimages/items/implantboxblue.dds | 3 + .../icons/perks/PN-CW_PerkEMPBlast.dds | 3 + .../icons/perks/PN-CW_PerkImplantC13.dds | 3 + .../icons/perks/PN-CW_PerkImplantGRX.dds | 3 + .../icons/perks/PN-CW_PerkImplantM5.dds | 3 + .../icons/perks/PN-CW_PerkImplantY2.dds | 3 + .../icons/perks/PN-CW_PerkImplantY7.dds | 3 + .../icons/perks/PN-CW_PerkMicroBlast.dds | 3 + .../icons/perks/PN-CW_Perk_S1Brainless.dds | 3 + .../icons/perks/PN-CW_Perk_S2Heartless.dds | 3 + .../icons/perks/PN-CW_Perk_S3Spineless.dds | 3 + .../icons/perks/PN-CW_Perk_T1BigBrained.dds | 3 + .../perks/PN-CW_Perk_T2CardiacArrest.dds | 3 + .../perks/PN-CW_Perk_T3ReinforcedSpine.dds | 3 + .../icons/perks/implant_perk_matrix1.dds | 3 + .../icons/perks/implant_perk_matrix2.dds | 3 + .../icons/perks/implant_perk_sprint.dds | 3 + .../icons/perks/pnx_cyberware_4AugArm.dds | 3 + .../icons/perks/pnx_cyberware_4AugChest.dds | 3 + .../icons/perks/pnx_cyberware_4AugHead.dds | 3 + .../icons/perks/pnx_cyberware_4AugLeg.dds | 3 + mod/Textures/cyberware/misc/implantbox.dds | 3 + .../cyberware/misc/implantbox/implantbox.dds | 3 + .../misc/implantbox/implantbox_ab.dds | 3 + .../misc/implantbox/implantbox_ars.dds | 3 + .../misc/implantbox/implantbox_be.dds | 3 + .../misc/implantbox/implantbox_emp.dds | 3 + .../misc/implantbox/implantbox_es.dds | 3 + .../misc/implantbox/implantbox_ha.dds | 3 + .../misc/implantbox/implantbox_hfp.dds | 3 + .../misc/implantbox/implantbox_hs1.dds | 3 + .../misc/implantbox/implantbox_hs2.dds | 3 + .../misc/implantbox/implantbox_hs3.dds | 3 + .../misc/implantbox/implantbox_hs4.dds | 3 + .../misc/implantbox/implantbox_ka.dds | 3 + .../misc/implantbox/implantbox_lcp.dds | 3 + .../misc/implantbox/implantbox_mb.dds | 3 + .../misc/implantbox/implantbox_mm1.dds | 3 + .../misc/implantbox/implantbox_mm2.dds | 3 + .../misc/implantbox/implantbox_mm3.dds | 3 + .../misc/implantbox/implantbox_mm4.dds | 3 + .../misc/implantbox/implantbox_nd1.dds | 3 + .../misc/implantbox/implantbox_nd2.dds | 3 + .../misc/implantbox/implantbox_nd3.dds | 3 + .../misc/implantbox/implantbox_nd4.dds | 3 + .../misc/implantbox/implantbox_nr.dds | 3 + .../misc/implantbox/implantbox_nw.dds | 3 + .../misc/implantbox/implantbox_oe.dds | 3 + .../misc/implantbox/implantbox_pc.dds | 3 + .../misc/implantbox/implantbox_rb.dds | 3 + .../misc/implantbox/implantbox_rn1.dds | 3 + .../misc/implantbox/implantbox_rn2.dds | 3 + .../misc/implantbox/implantbox_rn3.dds | 3 + .../misc/implantbox/implantbox_rn4.dds | 3 + .../misc/implantbox/implantbox_sda.dds | 3 + .../misc/implantbox/implantbox_sl.dds | 3 + .../misc/implantbox/implantbox_snb.dds | 3 + .../misc/implantbox/implantbox_td1.dds | 3 + .../misc/implantbox/implantbox_td2.dds | 3 + .../misc/implantbox/implantbox_td3.dds | 3 + .../misc/implantbox/implantbox_td4.dds | 3 + .../misc/implantbox/implantbox_vm1.dds | 3 + .../misc/implantbox/implantbox_vm2.dds | 3 + .../misc/implantbox/implantbox_vm3.dds | 3 + .../misc/implantbox/implantbox_vm4.dds | 3 + .../misc/implantbox/implantbox_wa1.dds | 3 + .../misc/implantbox/implantbox_wa2.dds | 3 + .../misc/implantbox/implantbox_wa3.dds | 3 + .../misc/implantbox/implantbox_wa4.dds | 3 + .../misc/implantbox/implantbox_ws.dds | 3 + .../misc/implantbox/implantboxblue_c13.dds | 3 + .../misc/implantbox/implantboxblue_grx.dds | 3 + .../misc/implantbox/implantboxblue_m5.dds | 3 + .../misc/implantbox/implantboxblue_y3.dds | 3 + .../misc/implantbox/implantboxblue_y5.dds | 3 + .../cyberware/misc/implantboxblue.dds | 3 + mod/Textures/cyberware/misc/surgerymanual.dds | 3 + mod/UIO/public/Cyberware - AR Scanner.txt | 2 + .../public/Cyberware - Adrenaline Booster.txt | 2 + mod/UIO/public/Cyberware - Bionic Eyes.txt | 2 + mod/UIO/public/Cyberware - Main.txt | 2 + .../public/Cyberware - Stealth Nano-Bots.txt | 2 + src/CWxAdrenalineAddBonus.gek | 32 + src/CWxAdrenalineOnKill.gek | 29 + src/CWxAdrenalineOnRagdoll.gek | 15 + src/CWxAdrenalineOnSeveredLimb.gek | 40 + src/CWxAdrenalineQuestScript.gek | 17 + src/CWxAdrenalineUpdatePerk.gek | 21 + src/CWxAdrenalineUpdateTriggers.gek | 27 + src/CWxBionicEyesGrainQuestScript.gek | 51 + src/CWxBionicEyesOnHotkey.gek | 42 + src/CWxBionicEyesQuestScript.gek | 220 ++ src/CWxBionicEyesUpdatePerk.gek | 31 + src/CWxBionicEyesUpdateTriggers.gek | 21 + src/CWxFnCallFormList.gek | 24 + src/CWxFnStartSurgery.gek | 25 + src/CWxFnSyncImplant.gek | 28 + src/CWxFnUpgrade.gek | 82 + src/CWxImplantDataScript.gek | 25 + src/CWxLimbRegenOnCrippledLimb.gek | 47 + src/CWxLimbRegenQuestScript.gek | 59 + src/CWxLimbRegenUpdatePerks.gek | 24 + src/CWxLimbRegenUpdateTriggers.gek | 14 + src/CWxMCMQuestScript.gek | 201 ++ src/CWxOnAddImplant.gek | 23 + src/CWxOnAddSurgeryManual.gek | 27 + src/CWxOnBarter.gek | 16 + src/CWxOnChargePulse.gek | 22 + src/CWxOnEquipPulseGun.gek | 11 + src/CWxOnGameLoad.gek | 25 + src/CWxOnNewGame.gek | 5 + src/CWxOnPause.gek | 11 + src/CWxOnPressInventoryItem.gek | 26 + src/CWxOnUnequipPulseGun.gek | 11 + src/CWxPanelGetImplantInfo.gek | 24 + src/CWxPanelIsNotUnique.gek | 148 ++ src/CWxPanelPostSurgery.gek | 46 + src/CWxPanelQuestScript.gek | 619 ++++++ src/CWxPanelSetMessageData.gek | 23 + src/CWxPanelSetSlot.gek | 56 + src/CWxPanelShowRegion.gek | 31 + src/CWxPanelShowSlot.gek | 38 + src/CWxPanelSwapImplants.gek | 23 + src/CWxPanelUpdatePrice.gek | 46 + src/CWxScannerOnAim.gek | 23 + src/CWxScannerOnAimDown.gek | 17 + src/CWxScannerOnMenu.gek | 9 + src/CWxScannerOnScan.gek | 17 + src/CWxScannerQuestScript.gek | 103 + src/CWxScannerStop.gek | 20 + src/CWxScannerStopText.gek | 26 + src/CWxScannerTextQuestScript.gek | 632 ++++++ src/CWxScannerUpdatePerk.gek | 14 + src/CWxScannerUpdateTriggers.gek | 13 + src/CWxStealthFieldQuestScript.gek | 53 + src/CWxStealthOnHotkey.gek | 27 + src/CWxStealthOnUseSB.gek | 13 + src/CWxStealthUpdatePerk.gek | 20 + src/CWxStealthUpdateTriggers.gek | 23 + src/CWxUpdatePerks.gek | 195 ++ src/CWxUpdateTriggers.gek | 17 + 290 files changed, 7086 insertions(+) create mode 100644 .gitattributes create mode 100644 mod/Cyberware 2281.url create mode 100644 mod/Cyberware OWB.esp create mode 100644 mod/Cyberware.esm create mode 100644 mod/Menus/prefabs/cyberware/cw_adrenaline_booster.xml create mode 100644 mod/Menus/prefabs/cyberware/cw_arscanner.xml create mode 100644 mod/Menus/prefabs/cyberware/cw_bionic_eyes.xml create mode 100644 mod/Menus/prefabs/cyberware/cw_implants.xml create mode 100644 mod/Menus/prefabs/cyberware/cw_stealth.xml create mode 100644 mod/Menus/prefabs/cyberware/floating_text.xml create mode 100644 mod/Menus/prefabs/pnx/pnximplants.xml create mode 100644 mod/Meshes/cyberware/Effects/fxpulseexplosion01.nif create mode 100644 mod/Meshes/cyberware/Projectiles/mezprojectile01.nif create mode 100644 mod/Meshes/cyberware/Projectiles/mezprojectile01red.nif create mode 100644 mod/Meshes/cyberware/implantbox.nif create mode 100644 mod/Meshes/cyberware/implantboxblue.nif create mode 100644 mod/Meshes/cyberware/surgerymanual.nif create mode 100644 mod/Sound/voice/Cyberware.esm/MaleUniqueArcade/CWxSurgeon_CWxSurgeryTopic_0000A76E_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/MaleUniqueArcade/CWxSurgeon_CWxSurgeryTopic_0000A76E_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult06/CWxSurgeon_CWxSurgeryTopic_00003EFC_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult06/CWxSurgeon_CWxSurgeryTopic_00003EFC_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_00000AE0_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_00000AE0_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_000072D8_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_000072D8_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15D_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15D_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15E_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15E_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15F_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15F_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A160_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A160_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A161_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A161_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A162_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A162_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A163_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A163_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A164_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A164_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A165_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A165_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A166_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A166_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/maleadult03/CWxSurgeon_CWxSurgeryTopic_00003EFE_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/maleadult03/CWxSurgeon_CWxSurgeryTopic_00003EFE_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/maleold02/CWxSurgeon_CWxSurgeryTopic_0000A750_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/maleold02/CWxSurgeon_CWxSurgeryTopic_0000A750_1.ogg create mode 100644 mod/Sound/voice/Cyberware.esm/maleuniquedocmitchell/CWxSurgeon_CWxSurgeryTopic_00003EF4_1.lip create mode 100644 mod/Sound/voice/Cyberware.esm/maleuniquedocmitchell/CWxSurgeon_CWxSurgeryTopic_00003EF4_1.ogg create mode 100644 mod/Textures/cyberware/hud/cy/arrow_head.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_head2.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_leftarm.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_leftarm2.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_leftleg.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_leftleg2.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_rightarm.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_rightarm2.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_rightleg.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_rightleg2.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_torso.dds create mode 100644 mod/Textures/cyberware/hud/cy/arrow_torso2.dds create mode 100644 mod/Textures/cyberware/hud/cy/background.dds create mode 100644 mod/Textures/cyberware/hud/cy/cyboy.dds create mode 100644 mod/Textures/cyberware/hud/cy/cyboy_base.dds create mode 100644 mod/Textures/cyberware/hud/cy/cyboy_lines.dds create mode 100644 mod/Textures/cyberware/hud/cy/implant_add.dds create mode 100644 mod/Textures/cyberware/hud/cy/leftslot.dds create mode 100644 mod/Textures/cyberware/hud/cy/nevada.dds create mode 100644 mod/Textures/cyberware/hud/cy/rightslot.dds create mode 100644 mod/Textures/cyberware/hud/cy/select_head.dds create mode 100644 mod/Textures/cyberware/hud/cy/select_leftarm.dds create mode 100644 mod/Textures/cyberware/hud/cy/select_leftleg.dds create mode 100644 mod/Textures/cyberware/hud/cy/select_rightarm.dds create mode 100644 mod/Textures/cyberware/hud/cy/select_rightleg.dds create mode 100644 mod/Textures/cyberware/hud/cy/select_torso.dds create mode 100644 mod/Textures/cyberware/hud/grain/grain1.dds create mode 100644 mod/Textures/cyberware/hud/grain/grain2.dds create mode 100644 mod/Textures/cyberware/hud/grain/grain3.dds create mode 100644 mod/Textures/cyberware/hud/grain/grain4.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_arm.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_armor.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_bugs.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_crouch.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_default.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_emp.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_eye.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_foodhp.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_heart.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_leg.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_lung.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_microwave.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_nail.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_norads.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_phoenix.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_scanner.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_skill.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_stat.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_stealth.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_synapses.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_turbo.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_weave.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_left_weight.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_arm.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_armor.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_bugs.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_crouch.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_default.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_emp.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_eye.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_foodhp.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_heart.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_leg.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_lung.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_microwave.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_nail.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_norads.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_phoenix.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_scanner.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_skill.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_stat.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_stealth.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_synapses.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_turbo.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_weave.dds create mode 100644 mod/Textures/cyberware/hud/panel/implant_right_weight.dds create mode 100644 mod/Textures/cyberware/hud/scan/ScannerBoy_base.dds create mode 100644 mod/Textures/cyberware/hud/scan/ScannerBoy_head.dds create mode 100644 mod/Textures/cyberware/hud/scan/ScannerBoy_leftarm.dds create mode 100644 mod/Textures/cyberware/hud/scan/ScannerBoy_leftleg.dds create mode 100644 mod/Textures/cyberware/hud/scan/ScannerBoy_rightarm.dds create mode 100644 mod/Textures/cyberware/hud/scan/ScannerBoy_rightleg.dds create mode 100644 mod/Textures/cyberware/hud/scan/ScannerBoy_torso.dds create mode 100644 mod/Textures/cyberware/hud/scan/healthseperator.dds create mode 100644 mod/Textures/cyberware/hud/scan/scannerboy.dds create mode 100644 mod/Textures/cyberware/hud/scan/scannerbracket1.dds create mode 100644 mod/Textures/cyberware/hud/scan/scannerbracket2.dds create mode 100644 mod/Textures/cyberware/hud/sf/stealthmeter0.dds create mode 100644 mod/Textures/cyberware/hud/sf/stealthmeter1.dds create mode 100644 mod/Textures/cyberware/hud/sf/stealthmeter2.dds create mode 100644 mod/Textures/cyberware/hud/sf/stealthmeter3.dds create mode 100644 mod/Textures/cyberware/hud/sf/stealthmeter4.dds create mode 100644 mod/Textures/cyberware/hud/sf/stealthmeter5.dds create mode 100644 mod/Textures/cyberware/hud/sf/stealthmeter6.dds create mode 100644 mod/Textures/cyberware/hud/sf/stealthmeter7.dds create mode 100644 mod/Textures/cyberware/hud/sf/stealthmeter8.dds create mode 100644 mod/Textures/cyberware/icons/Pipboyimages/items/implantbook.dds create mode 100644 mod/Textures/cyberware/icons/Pipboyimages/items/implantbox.dds create mode 100644 mod/Textures/cyberware/icons/Pipboyimages/items/implantboxblue.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_PerkEMPBlast.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantC13.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantGRX.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantM5.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantY2.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantY7.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_PerkMicroBlast.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_Perk_S1Brainless.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_Perk_S2Heartless.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_Perk_S3Spineless.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_Perk_T1BigBrained.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_Perk_T2CardiacArrest.dds create mode 100644 mod/Textures/cyberware/icons/perks/PN-CW_Perk_T3ReinforcedSpine.dds create mode 100644 mod/Textures/cyberware/icons/perks/implant_perk_matrix1.dds create mode 100644 mod/Textures/cyberware/icons/perks/implant_perk_matrix2.dds create mode 100644 mod/Textures/cyberware/icons/perks/implant_perk_sprint.dds create mode 100644 mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugArm.dds create mode 100644 mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugChest.dds create mode 100644 mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugHead.dds create mode 100644 mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugLeg.dds create mode 100644 mod/Textures/cyberware/misc/implantbox.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_ab.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_ars.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_be.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_emp.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_es.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_ha.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_hfp.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_hs1.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_hs2.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_hs3.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_hs4.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_ka.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_lcp.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_mb.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_mm1.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_mm2.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_mm3.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_mm4.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_nd1.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_nd2.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_nd3.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_nd4.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_nr.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_nw.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_oe.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_pc.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_rb.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_rn1.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_rn2.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_rn3.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_rn4.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_sda.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_sl.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_snb.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_td1.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_td2.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_td3.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_td4.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_vm1.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_vm2.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_vm3.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_vm4.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_wa1.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_wa2.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_wa3.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_wa4.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantbox_ws.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantboxblue_c13.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantboxblue_grx.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantboxblue_m5.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantboxblue_y3.dds create mode 100644 mod/Textures/cyberware/misc/implantbox/implantboxblue_y5.dds create mode 100644 mod/Textures/cyberware/misc/implantboxblue.dds create mode 100644 mod/Textures/cyberware/misc/surgerymanual.dds create mode 100644 mod/UIO/public/Cyberware - AR Scanner.txt create mode 100644 mod/UIO/public/Cyberware - Adrenaline Booster.txt create mode 100644 mod/UIO/public/Cyberware - Bionic Eyes.txt create mode 100644 mod/UIO/public/Cyberware - Main.txt create mode 100644 mod/UIO/public/Cyberware - Stealth Nano-Bots.txt create mode 100644 src/CWxAdrenalineAddBonus.gek create mode 100644 src/CWxAdrenalineOnKill.gek create mode 100644 src/CWxAdrenalineOnRagdoll.gek create mode 100644 src/CWxAdrenalineOnSeveredLimb.gek create mode 100644 src/CWxAdrenalineQuestScript.gek create mode 100644 src/CWxAdrenalineUpdatePerk.gek create mode 100644 src/CWxAdrenalineUpdateTriggers.gek create mode 100644 src/CWxBionicEyesGrainQuestScript.gek create mode 100644 src/CWxBionicEyesOnHotkey.gek create mode 100644 src/CWxBionicEyesQuestScript.gek create mode 100644 src/CWxBionicEyesUpdatePerk.gek create mode 100644 src/CWxBionicEyesUpdateTriggers.gek create mode 100644 src/CWxFnCallFormList.gek create mode 100644 src/CWxFnStartSurgery.gek create mode 100644 src/CWxFnSyncImplant.gek create mode 100644 src/CWxFnUpgrade.gek create mode 100644 src/CWxImplantDataScript.gek create mode 100644 src/CWxLimbRegenOnCrippledLimb.gek create mode 100644 src/CWxLimbRegenQuestScript.gek create mode 100644 src/CWxLimbRegenUpdatePerks.gek create mode 100644 src/CWxLimbRegenUpdateTriggers.gek create mode 100644 src/CWxMCMQuestScript.gek create mode 100644 src/CWxOnAddImplant.gek create mode 100644 src/CWxOnAddSurgeryManual.gek create mode 100644 src/CWxOnBarter.gek create mode 100644 src/CWxOnChargePulse.gek create mode 100644 src/CWxOnEquipPulseGun.gek create mode 100644 src/CWxOnGameLoad.gek create mode 100644 src/CWxOnNewGame.gek create mode 100644 src/CWxOnPause.gek create mode 100644 src/CWxOnPressInventoryItem.gek create mode 100644 src/CWxOnUnequipPulseGun.gek create mode 100644 src/CWxPanelGetImplantInfo.gek create mode 100644 src/CWxPanelIsNotUnique.gek create mode 100644 src/CWxPanelPostSurgery.gek create mode 100644 src/CWxPanelQuestScript.gek create mode 100644 src/CWxPanelSetMessageData.gek create mode 100644 src/CWxPanelSetSlot.gek create mode 100644 src/CWxPanelShowRegion.gek create mode 100644 src/CWxPanelShowSlot.gek create mode 100644 src/CWxPanelSwapImplants.gek create mode 100644 src/CWxPanelUpdatePrice.gek create mode 100644 src/CWxScannerOnAim.gek create mode 100644 src/CWxScannerOnAimDown.gek create mode 100644 src/CWxScannerOnMenu.gek create mode 100644 src/CWxScannerOnScan.gek create mode 100644 src/CWxScannerQuestScript.gek create mode 100644 src/CWxScannerStop.gek create mode 100644 src/CWxScannerStopText.gek create mode 100644 src/CWxScannerTextQuestScript.gek create mode 100644 src/CWxScannerUpdatePerk.gek create mode 100644 src/CWxScannerUpdateTriggers.gek create mode 100644 src/CWxStealthFieldQuestScript.gek create mode 100644 src/CWxStealthOnHotkey.gek create mode 100644 src/CWxStealthOnUseSB.gek create mode 100644 src/CWxStealthUpdatePerk.gek create mode 100644 src/CWxStealthUpdateTriggers.gek create mode 100644 src/CWxUpdatePerks.gek create mode 100644 src/CWxUpdateTriggers.gek diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..94b43bd --- /dev/null +++ b/.gitattributes @@ -0,0 +1,29 @@ +# Auto detect text files and perform LF normalization +* filter=lfs diff=lfs merge=lfs -text +*.esm filter= diff= merge= -text +*.esp filter= diff= merge= -text +*.pex filter= diff= merge= -text +*.dlstrings filter= diff= merge= -text +*.ilstrings filter= diff= merge= -text +*.strings filter= diff= merge= -text +*.gitignore filter= diff= merge= text eol=lf +*.gitattributes filter= diff= merge= text eol=lf +*.xml filter= diff= merge= text eol=crlf +*.json filter= diff= merge= text eol=lf +*.md filter= diff= merge= text eol=crlf +*.ini filter= diff= merge= text eol=crlf +*.txt filter= diff= merge= text eol=crlf +*.psc filter= diff= merge= text eol=crlf +*.cpp filter= diff= merge= text eol=crlf +*.h filter= diff= merge= text eol=crlf +*.filters filter= diff= merge= text eol=crlf +*.def filter= diff= merge= text eol=crlf +*.user filter= diff= merge= text eol=crlf +*.vcxproj filter= diff= merge= text eol=crlf +*.vcproj filter= diff= merge= text eol=crlf +*.vssscc filter= diff= merge= text eol=crlf +*.sln filter= diff= merge= text eol=crlf +*.pas filter= diff= merge= text eol=crlf +*.props filter= diff= merge= text eol=crlf +*.gek filter= diff= merge= text eol=crlf +*.flm filter= diff= merge= text eol=crlf diff --git a/mod/Cyberware 2281.url b/mod/Cyberware 2281.url new file mode 100644 index 0000000..5fdd500 --- /dev/null +++ b/mod/Cyberware 2281.url @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4f11cf2975e1e74b5c26e7635ca32ff91ab53c6b2adbc83d905a4934ea0fd06 +size 68 diff --git a/mod/Cyberware OWB.esp b/mod/Cyberware OWB.esp new file mode 100644 index 0000000000000000000000000000000000000000..d01292c1fa66410accab68b13e5ed48f411dfbaf GIT binary patch literal 81634 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

=`? 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 n +<_CWxScale> + 1 + + + + + 1 + + + + + +<_CWxMeterFont> + 7 + + 3 + + + + + +<_PNxAPBonusEnabled> 0 +<_PNxAPBonusValue> 0 + + + + + + + + 0 + + + + + 2 + &left; + + + + 100 + + + + + + + +

2
+ + + + + + + + + + 10 + + 11 + + + + + + + 2 + &right; + + + + + + + + + + + + + + 2 + &left; + + % + + + + + + + + + + diff --git a/mod/Menus/prefabs/cyberware/cw_arscanner.xml b/mod/Menus/prefabs/cyberware/cw_arscanner.xml new file mode 100644 index 0000000..a9456bb --- /dev/null +++ b/mod/Menus/prefabs/cyberware/cw_arscanner.xml @@ -0,0 +1,789 @@ + +<_CWxScannerEnabled> 0 + +<_CWxScannerCursorLine> 0 +<_CWxScannerCursorPos> 0 +<_CWxScannerCursorIndent> 0 +<_CWxScannerCursorBlink> 0 + +<_CWxScannerText1Index> 0 +<_CWxScannerText2Index> 0 +<_CWxScannerText3Index> 0 +<_CWxScannerText4Index> 0 +<_CWxScannerText5Index> 0 +<_CWxScannerText6Index> 0 +<_CWxScannerText7Index> 0 +<_CWxScannerText8Index> 0 +<_CWxScannerText9Index> 0 +<_CWxScannerText10Index> 0 + +<_CWxScannerBoyEnabled> 0 +<_CWxScannerBoyHeadDamage> 0 +<_CWxScannerBoyTorsoDamage> 0 +<_CWxScannerBoyLeftLegDamage> 0 +<_CWxScannerBoyLeftArmDamage> 0 +<_CWxScannerBoyRightLegDamage> 0 +<_CWxScannerBoyRightArmDamage> 0 + +<_CWxScannerHealth> 1.0 +<_CWxScannerDamage> 0 + +<_CWxScannerTextHP> 0 +<_CWxScannerTextDT> 0 + + + + + + + + + + + 20 + + + + +
2
+ + +
2
+
+
+ + 384 + 512 + + + &scale; + 0 + + 180 + + + + + + + + + + + + + + 128 + + + + + + + + + + + + + <_filename_0> cyberware\hud\scan\scannerbracket1.dds + <_filename_1> cyberware\hud\scan\scannerbracket2.dds + + + + + &scale; + -1 + + &nosystemcolor; + 120 + 0 + 0 + 0 + + + + + + + + 14 + + + + + 14 + + + + + 28 + + + + + 28 + + + Interface\Shared\solid.dds + + + + &scale; + 1 + + + + + + 220 + + + + + + 20 + + + + + 90 + + + + + + + + 125 + + + + +
2
+
+ + +
2
+
+
+ + 180 + 195 + + cyberware\hud\scan\ScannerBoy_base.dds + + + + &scale; + 0 + + + + + + &nosystemcolor; + + 230 + 0 + 0 + + 230 + + + + + + + + + cyberware\hud\scan\ScannerBoy_head.dds + + + + &scale; + 0 + + + + + + &nosystemcolor; + + 230 + 0 + 0 + + 230 + + + + + + + + + cyberware\hud\scan\ScannerBoy_torso.dds + + + + &scale; + 0 + + + + + + &nosystemcolor; + + 230 + 0 + 0 + + 230 + + + + + + + + + cyberware\hud\scan\ScannerBoy_leftarm.dds + + + + &scale; + 0 + + + + + + &nosystemcolor; + + 230 + 0 + 0 + + 230 + + + + + + + + + cyberware\hud\scan\ScannerBoy_rightarm.dds + + + + &scale; + 0 + + + + + + &nosystemcolor; + + 230 + 0 + 0 + + 230 + + + + + + + + + cyberware\hud\scan\ScannerBoy_leftleg.dds + + + + &scale; + 0 + + + + + + &nosystemcolor; + + + 230 + + + 0 + 0 + + 230 + + + + + + + + + cyberware\hud\scan\ScannerBoy_rightleg.dds + + + + 100 + 0 + + + + + + 230 + + + + 8 + + + + + 7 + + 200 + + + + 196 + 64 + + cyberware\hud\scan\healthseperator.dds + + + + 80 + 1 + &true; + + + + + + 200 + + + + 47 + + + + 2 + + + + 94 + + + + + 6 + + + Interface\HUD\hud_tick_mark.dds + + + + &scale; + 3 + + + + + + + + + + + + + +
2
+
+
+ + + 25 + + + 50 + + + 50 + + + Interface\HUD\glow_xp_bar_pointer.dds + + + + 3 + 2 + + + + + + HP: + + + 18 + + + + + 35 + + + + + 3 + 2 + + + + + + + + + + + + + + + + + 3 + 2 + + + + + + DT: + + + + 1 + + + + + + + + 3 + 2 + + + + + + + + + + + 20 + + + + + + + <_text_pos_x> + + 30 + + + <_text_pos_y> + + 30 + + + <_line_height> 31 + <_indent_width> 20 + + + &scale; + 1 + + + + 0 + + + 200 + + + + + + 15 + + + + + + + + + + + + + + + 4 + + + 11 + 22 + + Interface\Shared\solid.dds + + + + + + <_line> 0 + + <_dat_1>S + <_dat_2>SC + <_dat_3>SCA + <_dat_4>SCAN + <_dat_5>SCANN + <_dat_6>SCANNI + <_dat_7>SCANNIN + <_dat_8>SCANNING + <_dat_9>SCANNING. + <_dat_10>SCANNING.. + <_dat_11>SCANNING... + + <_index> + + + + + + <_line> 2 + + <_dat_1>T + <_dat_2>TH + <_dat_3>THR + <_dat_4>THRE + <_dat_5>THREA + <_dat_6>THREAT + <_dat_7>THREAT: + + <_index> + + + + + + + <_line> 3 + <_indent> 2 + + <_dat_1>h + <_dat_2>hi + <_dat_3>hig + <_dat_4>high + + <_dat_5>m + <_dat_6>me + <_dat_7>med + <_dat_8>medi + <_dat_9>mediu + <_dat_10>medium + + <_dat_11>l + <_dat_12>lo + <_dat_13>low + + <_index> + + + + + + + + <_line> 5 + + <_dat_1>A + <_dat_2>AW + <_dat_3>AWA/ + <_dat_4>AWAR + <_dat_5>AWARE + <_dat_6>AWAREN/ + <_dat_7>AWARENE + <_dat_8>AWARENES + <_dat_9>AWARENESS + <_dat_10>AWARENESS: + + <_index> + + + + + + <_line> 6 + <_indent> 2 + + <_dat_1>h + <_dat_2>hi + <_dat_3>hig + <_dat_4>high + + <_dat_5>m + <_dat_6>me + <_dat_7>med + <_dat_8>medi + <_dat_9>mediu + <_dat_10>medium + + <_dat_11>l + <_dat_12>lo + <_dat_13>low + + <_index> + + + + + + + <_line> 8 + + <_dat_1>C + <_dat_2>CO + <_dat_3>COM + <_dat_4>COMB + <_dat_5>COMBA + <_dat_6>COMBAT + <_dat_7>COMBAT R + <_dat_8>COMBAT RA + <_dat_9>COMBAT RAN + <_dat_10>COMBAT RANG + <_dat_11>COMBAT RANGE + <_dat_12>COMBAT RANGE: + + <_index> + + + + + + <_line> 9 + <_indent> 2 + + <_dat_1>l + <_dat_2>lo + <_dat_3>lon + <_dat_4>long + + <_dat_5>m + <_dat_6>me + <_dat_7>med + <_dat_8>medi + <_dat_9>mediu + <_dat_10>medium + + <_dat_11>s + <_dat_12>sh + <_dat_13>sho + <_dat_14>shor + <_dat_15>short + + <_dat_16>m + <_dat_17>me + <_dat_18>mel + <_dat_19>mele + <_dat_20>melee + + <_index> + + + + + + <_line> 11 + + <_dat_1>D + <_dat_2>DI + <_dat_3>DIS + <_dat_4>DISP + <_dat_5>DISPO + <_dat_6>DISPOS + <_dat_7>DISPOSI + <_dat_8>DISPOSIT + <_dat_9>DISPOSITI + <_dat_10>DISPOSITIO + <_dat_11>DISPOSITION + <_dat_12>DISPOSITION: + + <_index> + + + + + + <_line> 12 + <_indent> 2 + + <_dat_1>a + <_dat_2>al + <_dat_3>all + <_dat_4>alli + <_dat_5>allie + <_dat_6>allied + + <_dat_7>n + <_dat_8>ne + <_dat_9>neu + <_dat_10>neut + <_dat_11>neutr + <_dat_12>neutra + <_dat_13>neutral + + <_dat_14>h + <_dat_15>ho + <_dat_16>hos + <_dat_17>host + <_dat_18>hosti + <_dat_19>hostil + <_dat_20>hostile + + <_index> + + + + + + <_line> 14 + + <_dat_1>D + <_dat_2>DO + <_dat_3>DON + <_dat_4>DONE + <_dat_5>DONE. + + <_index> + + +
diff --git a/mod/Menus/prefabs/cyberware/cw_bionic_eyes.xml b/mod/Menus/prefabs/cyberware/cw_bionic_eyes.xml new file mode 100644 index 0000000..ab6f875 --- /dev/null +++ b/mod/Menus/prefabs/cyberware/cw_bionic_eyes.xml @@ -0,0 +1,126 @@ + +<_PNxGrainPhase> 0 +<_PNxGrainAmount> 0 +<_PNxGrainColorRed> 1.0 +<_PNxGrainColorGreen> 1.0 +<_PNxGrainColorBlue> 1.0 + + + + + + 0 + + 0 + 0 + + + + + + + + 255 + + + + 255 + + + + 255 + + + + 255 + + + + + &scale; + -11 + &nosystemcolor; + + + + + + + + + + + + 1 + + + cyberware\hud\grain\grain1.dds + + + + &scale; + -11 + &nosystemcolor; + + + + + + + + + + + + 2 + + + cyberware\hud\grain\grain2.dds + + + + + &scale; + -11 + &nosystemcolor; + + + + + + + + + + + + 3 + + + cyberware\hud\grain\grain3.dds + + + + + &scale; + -11 + &nosystemcolor; + + + + + + + + + + + + 4 + + + cyberware\hud\grain\grain4.dds + + + + diff --git a/mod/Menus/prefabs/cyberware/cw_implants.xml b/mod/Menus/prefabs/cyberware/cw_implants.xml new file mode 100644 index 0000000..42068df --- /dev/null +++ b/mod/Menus/prefabs/cyberware/cw_implants.xml @@ -0,0 +1,1762 @@ + +<_CWxImplants> 1 +<_CWxHasDUIF3> + + +<_PNxImplantsPanelEnabled> 0 +<_PNxImplantsPanelAcceptEnabled> 0 +<_PNxImplantsPanelAcceptSelected> +<_PNxImplantsPanelCaps> 0 +<_PNxImplantsPanelPrice> 0 + +<_PNxCyberboyRegion> 0 +<_PNxCyberboyRegionReset> 0 +<_PNxCyberboyLineNum> 0 +<_PNxCyberboyShowRightSlot1> 0 +<_PNxCyberboyShowRightSlot2> 0 +<_PNxCyberboyShowLeftSlot1> 0 +<_PNxCyberboyShowLeftSlot2> 0 +<_PNxCyberboyMenuActive> 0 + +<_PNxCyberboyRightImplant1State> 0 +<_PNxCyberboyRightImplant2State> 0 +<_PNxCyberboyLeftImplant1State> 0 +<_PNxCyberboyLeftImplant2State> 0 + +<_PNxCyberboyRightImplant1Path> +<_PNxCyberboyRightImplant2Path> +<_PNxCyberboyLeftImplant1Path> +<_PNxCyberboyLeftImplant2Path> + +<_PNxCyberboyHeadSelected> +<_PNxCyberboyTorsoSelected> +<_PNxCyberboyRightArmSelected> +<_PNxCyberboyLeftArmSelected> +<_PNxCyberboyRightLegSelected> +<_PNxCyberboyLeftLegSelected> + +<_PNxCyberboyRightImplant1Selected> +<_PNxCyberboyRightImplant2Selected> +<_PNxCyberboyLeftImplant1Selected> +<_PNxCyberboyLeftImplant2Selected> + + + + + + + + + + &hudmain; + + &scale; + 0 + + 180 + + 0 + 0 + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\background.dds + + + + + + + + &nosystemcolor; + + &scale; + 11 + + + +
2
+ + +
2
+
+
+ + + +
2
+ + +
2
+
+
+ + 1024 + 576 + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\cyboy_lines.dds + + + + + + + + Interface\Shared\Background\solid_black.dds + + + + + + + + + + + +
2
+
+ + + +
2
+
+ &scale; + + 128 + + &true; + <_scale> 0.8 + + + &true; + 3 + <_buffer> 10 + + + + <_x> 48 + <_y> 96 + + + + + <_length> 50 + + + + 0 + + 2 + + + + + + + + + + + + + +
2
+
+ 5 +
+ 6 + Cybernetic Implants +
+ + + + + + + + + + <_length> + + + + + + + + <_x> + + + + + &xbox; + + + <_y> + + + + + <_bottom_to_top> &true; + <_x> + <_y> + + + + + + + + <_length> + + + + + + + + + + + cyberware\hud\cy\nevada.dds + &scale; + + + + + + + + + +
2
+
+
+ 34 + 118 + + + + + <_length> + + + + + + + + + + + + + <_bottom_to_top> &true; + <_x> + <_y> + + + + + <_bottom_to_top> &true; + <_x> + +
2
+ + <_y> + + + 40 + +
+ + + + 3 + 4 + + &hudalt; + + <_horbuf> 20 + <_verbuf> 20 + + + + + 81 + + + + + 120 + + + + + + + + + + + + &true; + &true; + UIMenuFocus + + &-sExit; + <_xbox_button> &xbuttonb; + <_PCButtonText> &-sPCMenuHintE; + + + 2 + + + &right; + + + + + + + +
2
+
+
+
+ + + +
2
+ 10 +
+
+ + + + + + + + + + + + 0 + + + + + &default_accept; + 1 + + + Interface\InterfaceShared.tai + + 75 + 75 + + + + + + 10 + + + + + + + +
2
+
+
+ + <_filename_2> general_button_b.dds + <_filename_15> glow_general_button_b.dds + + + + + + + + + + + 5 + + + + + +
+ + + 4 + + <_horbuf> 20 + <_verbuf> 20 + + <_line_alpha> + 128 + + 127 + + + + + + + + + + 81 + + + + + + 5 + + + + + + + + + + + + + + 1 + + + &true; + UIMenuFocus + + &-sAccept; + UIMenuPrevNext + <_PCButtonText> &-sPCMenuHintA; + + + 2 + + + &right; + + + + + + + + + +
2
+
+
+
+ + + +
2
+ 10 +
+
+ + + + + + <_line_alpha> + + + + + + + + + + + + 5 + + + + + + + <_Selected> + + + 0 + 1 + +
+ + + + +
2
+
+ + + + 120 + + 12 + + + + + + 4 + 2 + &right; + &-sInventoryCaps; + + + + + 20 + + + + + + 4 + &right; + + + 10 + + + + + +
+ + + + + + + + + + + 4 + 2 + Price + + + + 10 + + + + + + 4 + + + + 20 + + + + + + + + + + + + &hudmain; + + + + + + + &scale; + 15 + + + + 288 + + + + + 40 + + + 204 + 132 + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\leftslot.dds + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + + + + + 15 + + + + + +
2
+
+ 64 +
+ + + + + +
2
+
+ 64 +
+ + 128 + 128 + + <_Selected> + + + 0 + 1 + + + + + &hudmain; + + + &nosystemcolor; + + + + + + + + 0 + + + &scale; + 15 + + + + 2 + + + + + + 128 + 128 + + + + + + + + &hudmain; + + + + + + + 0 + + + + &scale; + 15 + + + + 4 + + + + 5 + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\implant_add.dds + + + + + +
+ + + + + + + + + &hudmain; + + + + + + + &scale; + 15 + + + + 88 + + + + + 54 + + + 204 + 132 + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\rightslot.dds + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + + + + + 15 + + + + + +
2
+
+ 64 +
+ + + + + +
2
+
+ 64 +
+ + 128 + 128 + + <_Selected> + + + 0 + 1 + + + + + &hudmain; + + + &nosystemcolor; + + + + + + + + 0 + + + &scale; + 15 + + + + 2 + + + + + + 128 + 128 + + + + + + + + &hudmain; + + + + + + + 0 + + + + &scale; + 15 + + + + 3 + + + + 5 + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\implant_add.dds + + + + + +
+ + + + + + + + &hudmain; + + + + + + + &scale; + 15 + + + + 546 + + + + + 29 + + + 204 + 132 + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\rightslot.dds + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + + + + + 15 + + + + + +
2
+
+ 64 +
+ + + + + +
2
+
+ 64 +
+ + 128 + 128 + + <_Selected> + + + 0 + 1 + + + + + &hudmain; + + + &nosystemcolor; + + + + + + + + 0 + + + &scale; + 15 + + + + 2 + + + + + + 128 + 128 + + + + + + + + &hudmain; + + + + + + + 0 + + + + &scale; + 15 + + + + 3 + + + + 5 + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\implant_add.dds + + + + + +
+ + + + + &hudmain; + + + + + + + &scale; + 15 + + + + 746 + + + + + 45 + + + 204 + 132 + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\leftslot.dds + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + + + + + 15 + + + + + +
2
+
+ 64 +
+ + + + + +
2
+
+ 64 +
+ + 128 + 128 + + <_Selected> + + + 0 + 1 + + + + + &hudmain; + + + &nosystemcolor; + + + + + + + + 0 + + + &scale; + 15 + + + + 2 + + + + + + 128 + 128 + + + + + + + + &hudmain; + + + + + + + 0 + + + + &scale; + 15 + + + + 4 + + + + 5 + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\implant_add.dds + + + + + +
+ + + + + + &hudmain; + + + + + 0 + + + &scale; + 14 + + + + 181 + + + + + 141 + + + 676 + 332 + + <_filename_1> cyberware\hud\cy\arrow_head.dds + <_filename_2> cyberware\hud\cy\arrow_torso.dds + <_filename_3> cyberware\hud\cy\arrow_leftarm.dds + <_filename_4> cyberware\hud\cy\arrow_rightarm.dds + <_filename_5> cyberware\hud\cy\arrow_leftleg.dds + <_filename_6> cyberware\hud\cy\arrow_rightleg.dds + <_filename_7> cyberware\hud\cy\arrow_head2.dds + <_filename_8> cyberware\hud\cy\arrow_torso2.dds + <_filename_9> cyberware\hud\cy\arrow_leftarm2.dds + <_filename_10> cyberware\hud\cy\arrow_rightarm2.dds + <_filename_11> cyberware\hud\cy\arrow_leftleg2.dds + <_filename_12> cyberware\hud\cy\arrow_rightleg2.dds + + + + + + + + + &nosystemcolor; + + + + + + &scale; + 12 + + + + 423 + + + + + 115 + + + 192 + 404 + + cyberware\hud\cy\cyboy_base.dds + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + 13 + + + + 482 + + + + 128 + + + 80 + 100 + + <_Selected> + + + + + 1 + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + &hudmain; + + + + + + + 150 + + &scale; + 13 + + + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\select_head.dds + + + + + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + 13 + + + + 482 + + + + 239 + + + 72 + 102 + + <_Selected> + + + + + 2 + + + + + + + 2 + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + &hudmain; + + + + + + + 150 + + &scale; + 13 + + + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\select_torso.dds + + + + + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + 13 + + + + 437 + + + + 256 + + + 36 + 98 + + <_Selected> + + + + + 3 + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + &hudmain; + + + + + + + 150 + + &scale; + 13 + + + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\select_leftarm.dds + + + + + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + 13 + + + + 573 + + + + 256 + + + 35 + 118 + + <_Selected> + + + + + 4 + + + + + + + 4 + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + &hudmain; + + + + + + + 150 + + &scale; + 13 + + + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\select_rightarm.dds + + + + + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + 13 + + + + 463 + + + + 367 + + + 52 + 114 + + <_Selected> + + + + + 5 + + + + + + + 5 + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + &hudmain; + + + + + + + 150 + + &scale; + 13 + + + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\select_leftleg.dds + + + + + + + + + + + + &true; + UIMenuFocus + UIMenuOK + + 13 + + + + 514 + + + + 367 + + + 59 + 116 + + <_Selected> + + + + + 6 + + + + + + + 6 + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + &hudmain; + + + + + + + 150 + + &scale; + 13 + + + + + + + + + <_filename_0> Interface\Shared\solid.dds + <_filename_1> cyberware\hud\cy\select_rightleg.dds + + + + + + +
\ No newline at end of file diff --git a/mod/Menus/prefabs/cyberware/cw_stealth.xml b/mod/Menus/prefabs/cyberware/cw_stealth.xml new file mode 100644 index 0000000..c42703f --- /dev/null +++ b/mod/Menus/prefabs/cyberware/cw_stealth.xml @@ -0,0 +1,64 @@ + +<_CWxSFMeterEnabled> 0 +<_CWxSFMeterAmount> 0 + + + + + + + + + + + + 0.5 + + + + + 0.1 + + 64 + 64 + + + &scale; + 0 + + + + + +
2
+
+
+ + + + +
2
+
+
+ + + + + 210 + + + + + + <_filename_0> cyberware\hud\sf\stealthmeter0.dds + <_filename_1> cyberware\hud\sf\stealthmeter1.dds + <_filename_2> cyberware\hud\sf\stealthmeter2.dds + <_filename_3> cyberware\hud\sf\stealthmeter3.dds + <_filename_4> cyberware\hud\sf\stealthmeter4.dds + <_filename_5> cyberware\hud\sf\stealthmeter5.dds + <_filename_6> cyberware\hud\sf\stealthmeter6.dds + <_filename_7> cyberware\hud\sf\stealthmeter7.dds + <_filename_8> cyberware\hud\sf\stealthmeter8.dds + + +
diff --git a/mod/Menus/prefabs/cyberware/floating_text.xml b/mod/Menus/prefabs/cyberware/floating_text.xml new file mode 100644 index 0000000..a91bf3b --- /dev/null +++ b/mod/Menus/prefabs/cyberware/floating_text.xml @@ -0,0 +1,33 @@ + 3 + &left; + + + + 0 + + + + + + + + + + + + + + + + + + + +<_data> + + + + + + + \ No newline at end of file diff --git a/mod/Menus/prefabs/pnx/pnximplants.xml b/mod/Menus/prefabs/pnx/pnximplants.xml new file mode 100644 index 0000000..4d36074 --- /dev/null +++ b/mod/Menus/prefabs/pnx/pnximplants.xml @@ -0,0 +1 @@ +<_PNxImplants> 0 diff --git a/mod/Meshes/cyberware/Effects/fxpulseexplosion01.nif b/mod/Meshes/cyberware/Effects/fxpulseexplosion01.nif new file mode 100644 index 0000000..7efeec1 --- /dev/null +++ b/mod/Meshes/cyberware/Effects/fxpulseexplosion01.nif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db191e39e57917f034dbb15a7292e25154aa83860d07017dcee96f0d33e0fd79 +size 26139 diff --git a/mod/Meshes/cyberware/Projectiles/mezprojectile01.nif b/mod/Meshes/cyberware/Projectiles/mezprojectile01.nif new file mode 100644 index 0000000..e51f057 --- /dev/null +++ b/mod/Meshes/cyberware/Projectiles/mezprojectile01.nif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:548da6fc09ba4acf12d10c10a7e4d712490a63dda179e43a98b8a3fffa89467d +size 34551 diff --git a/mod/Meshes/cyberware/Projectiles/mezprojectile01red.nif b/mod/Meshes/cyberware/Projectiles/mezprojectile01red.nif new file mode 100644 index 0000000..49a92dd --- /dev/null +++ b/mod/Meshes/cyberware/Projectiles/mezprojectile01red.nif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6873e4dc109a7340a9f70d62b492d32fde8cac75dd6eda1eecc7e93698a10a3 +size 34634 diff --git a/mod/Meshes/cyberware/implantbox.nif b/mod/Meshes/cyberware/implantbox.nif new file mode 100644 index 0000000..e192d67 --- /dev/null +++ b/mod/Meshes/cyberware/implantbox.nif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9b3105788149fe674ae309b9c0b12561c16cd51f35e1ac67a8ed8041d7a7851 +size 42733 diff --git a/mod/Meshes/cyberware/implantboxblue.nif b/mod/Meshes/cyberware/implantboxblue.nif new file mode 100644 index 0000000..8c720ba --- /dev/null +++ b/mod/Meshes/cyberware/implantboxblue.nif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:266fb663a29fea8e829f5ff665a7e452f91b9ce1408f0a13d3f44000e692371e +size 42737 diff --git a/mod/Meshes/cyberware/surgerymanual.nif b/mod/Meshes/cyberware/surgerymanual.nif new file mode 100644 index 0000000..5b68f2d --- /dev/null +++ b/mod/Meshes/cyberware/surgerymanual.nif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0460a48477d91de1ce58a1b6abaaea4410a2601b801b01a7c4e06875384ee64c +size 8666 diff --git a/mod/Sound/voice/Cyberware.esm/MaleUniqueArcade/CWxSurgeon_CWxSurgeryTopic_0000A76E_1.lip b/mod/Sound/voice/Cyberware.esm/MaleUniqueArcade/CWxSurgeon_CWxSurgeryTopic_0000A76E_1.lip new file mode 100644 index 0000000..6a1f5ba --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/MaleUniqueArcade/CWxSurgeon_CWxSurgeryTopic_0000A76E_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e45010f841812fc6096b90be98336f7c6b4dcd08a86455824ef7db5e433ea80 +size 1551 diff --git a/mod/Sound/voice/Cyberware.esm/MaleUniqueArcade/CWxSurgeon_CWxSurgeryTopic_0000A76E_1.ogg b/mod/Sound/voice/Cyberware.esm/MaleUniqueArcade/CWxSurgeon_CWxSurgeryTopic_0000A76E_1.ogg new file mode 100644 index 0000000..361d2f6 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/MaleUniqueArcade/CWxSurgeon_CWxSurgeryTopic_0000A76E_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d4a45a31731a9e6986e50b57a5312f2252dd6bac00bc52780dd9d41b65c513f +size 11728 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult06/CWxSurgeon_CWxSurgeryTopic_00003EFC_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult06/CWxSurgeon_CWxSurgeryTopic_00003EFC_1.lip new file mode 100644 index 0000000..5508003 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult06/CWxSurgeon_CWxSurgeryTopic_00003EFC_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcfc50c61f144fcb4716a7c50174b764334d54a621b1c413a2d70028d0ce6608 +size 557 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult06/CWxSurgeon_CWxSurgeryTopic_00003EFC_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult06/CWxSurgeon_CWxSurgeryTopic_00003EFC_1.ogg new file mode 100644 index 0000000..0a6b94d --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult06/CWxSurgeon_CWxSurgeryTopic_00003EFC_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c83ce667f75e43ec8fb1a61cceff6e611c5c7b5cb7e9c4c354009696ef8dc86 +size 7722 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_00000AE0_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_00000AE0_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_00000AE0_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_00000AE0_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_00000AE0_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_00000AE0_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_000072D8_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_000072D8_1.lip new file mode 100644 index 0000000..a5696d7 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_000072D8_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98b01e5f9598fd584faa3479e090f91e78a9094e4850565111133d6fbfa40f5b +size 3089 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_000072D8_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_000072D8_1.ogg new file mode 100644 index 0000000..d90c8c6 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/CWxSurgeon_CWxSurgeryTopic_000072D8_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f223aa9ddead5f5c18c0092561ce10cabac2179206819c24e3fb13448c170f39 +size 18309 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15D_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15D_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15D_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15D_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15D_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15D_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15E_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15E_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15E_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15E_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15E_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15E_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15F_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15F_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15F_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15F_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15F_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A15F_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A160_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A160_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A160_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A160_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A160_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A160_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A161_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A161_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A161_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A161_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A161_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A161_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A162_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A162_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A162_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A162_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A162_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A162_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A163_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A163_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A163_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A163_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A163_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A163_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A164_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A164_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A164_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A164_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A164_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A164_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A165_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A165_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A165_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A165_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A165_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A165_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A166_1.lip b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A166_1.lip new file mode 100644 index 0000000..9093c47 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A166_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1922bbb11418ebb386bead72b179229a4e349f2ebf1be0c989a200673ee1017 +size 1547 diff --git a/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A166_1.ogg b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A166_1.ogg new file mode 100644 index 0000000..356d82b --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/femaleadult11/vDialogueM_vDialogueMedica_0000A166_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11c9267e2356b9683a46b3ee5e85a19b2393ba7dabbfe9008bcf94a76a86384c +size 7486 diff --git a/mod/Sound/voice/Cyberware.esm/maleadult03/CWxSurgeon_CWxSurgeryTopic_00003EFE_1.lip b/mod/Sound/voice/Cyberware.esm/maleadult03/CWxSurgeon_CWxSurgeryTopic_00003EFE_1.lip new file mode 100644 index 0000000..d7496e1 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/maleadult03/CWxSurgeon_CWxSurgeryTopic_00003EFE_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5c0574868c24921aa2bb4bcecb0a260a1bd71a1e5d2d8c145b195f518cda619 +size 1452 diff --git a/mod/Sound/voice/Cyberware.esm/maleadult03/CWxSurgeon_CWxSurgeryTopic_00003EFE_1.ogg b/mod/Sound/voice/Cyberware.esm/maleadult03/CWxSurgeon_CWxSurgeryTopic_00003EFE_1.ogg new file mode 100644 index 0000000..48f18ec --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/maleadult03/CWxSurgeon_CWxSurgeryTopic_00003EFE_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdf6e4119cc7f0419bdf16b9a460157bcb99a9ea02a626e91091f0ff0ecf6fce +size 9239 diff --git a/mod/Sound/voice/Cyberware.esm/maleold02/CWxSurgeon_CWxSurgeryTopic_0000A750_1.lip b/mod/Sound/voice/Cyberware.esm/maleold02/CWxSurgeon_CWxSurgeryTopic_0000A750_1.lip new file mode 100644 index 0000000..85101da --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/maleold02/CWxSurgeon_CWxSurgeryTopic_0000A750_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d64677f233190f9763eb07da0fe433031907a9720c1a341dcd8a1812d2dd0d2 +size 1561 diff --git a/mod/Sound/voice/Cyberware.esm/maleold02/CWxSurgeon_CWxSurgeryTopic_0000A750_1.ogg b/mod/Sound/voice/Cyberware.esm/maleold02/CWxSurgeon_CWxSurgeryTopic_0000A750_1.ogg new file mode 100644 index 0000000..a23b4e2 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/maleold02/CWxSurgeon_CWxSurgeryTopic_0000A750_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52bcfe3bec42d2d3529ec36353af7f10c854a1f56ee6566e17865256772934d3 +size 8004 diff --git a/mod/Sound/voice/Cyberware.esm/maleuniquedocmitchell/CWxSurgeon_CWxSurgeryTopic_00003EF4_1.lip b/mod/Sound/voice/Cyberware.esm/maleuniquedocmitchell/CWxSurgeon_CWxSurgeryTopic_00003EF4_1.lip new file mode 100644 index 0000000..45accf5 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/maleuniquedocmitchell/CWxSurgeon_CWxSurgeryTopic_00003EF4_1.lip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cf044cea19f5e6b2f6464476c790cd92d466c586d0264605fb075e54da3843d +size 973 diff --git a/mod/Sound/voice/Cyberware.esm/maleuniquedocmitchell/CWxSurgeon_CWxSurgeryTopic_00003EF4_1.ogg b/mod/Sound/voice/Cyberware.esm/maleuniquedocmitchell/CWxSurgeon_CWxSurgeryTopic_00003EF4_1.ogg new file mode 100644 index 0000000..8dde961 --- /dev/null +++ b/mod/Sound/voice/Cyberware.esm/maleuniquedocmitchell/CWxSurgeon_CWxSurgeryTopic_00003EF4_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67cdf2f65e380e30fc86a265faaee90d1d91272460719417c74a31375cb0e62c +size 12025 diff --git a/mod/Textures/cyberware/hud/cy/arrow_head.dds b/mod/Textures/cyberware/hud/cy/arrow_head.dds new file mode 100644 index 0000000..ff20924 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_head.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5da99c553bd3f3a27cdb1112ac5b26ed5a060c97a093839079128e4a32fb17fb +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_head2.dds b/mod/Textures/cyberware/hud/cy/arrow_head2.dds new file mode 100644 index 0000000..63341f8 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_head2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ca366dc2ec5ba4d4537691659e36aa49b0169c1aba31a1acff9bd317f6ed048 +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_leftarm.dds b/mod/Textures/cyberware/hud/cy/arrow_leftarm.dds new file mode 100644 index 0000000..795f95f --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_leftarm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5470ecb1f241dd7dc4383b3837446155f1c253e054fc15153eb627c514a30441 +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_leftarm2.dds b/mod/Textures/cyberware/hud/cy/arrow_leftarm2.dds new file mode 100644 index 0000000..a1af689 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_leftarm2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01e6a22fd61c13dbc234ec648a2006a397ab9309829ba43000d982a7ce88bcdf +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_leftleg.dds b/mod/Textures/cyberware/hud/cy/arrow_leftleg.dds new file mode 100644 index 0000000..01d720a --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_leftleg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34444594fa78cd64db2c5506b6d8ebf53f96ce05ae866a687a3777b0f441e3ef +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_leftleg2.dds b/mod/Textures/cyberware/hud/cy/arrow_leftleg2.dds new file mode 100644 index 0000000..e9f0792 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_leftleg2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ebf13a11753e9c2f05a1547a66bc982d7890da8bc07b2b72af2c78eeb82bf40 +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_rightarm.dds b/mod/Textures/cyberware/hud/cy/arrow_rightarm.dds new file mode 100644 index 0000000..4d40e91 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_rightarm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eedf567f8a964b21d94837507730cc22a6fdb471c0078043938f4d744c05e9c8 +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_rightarm2.dds b/mod/Textures/cyberware/hud/cy/arrow_rightarm2.dds new file mode 100644 index 0000000..e74912f --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_rightarm2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e41c57a5c231633f02516c94e82ec5ea2657e747fe152123bac59be4826964aa +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_rightleg.dds b/mod/Textures/cyberware/hud/cy/arrow_rightleg.dds new file mode 100644 index 0000000..b1a53a2 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_rightleg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99d8561302432ebdcb0634ea47f7ef6588ba71fe0815c4401d291564aeca1535 +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_rightleg2.dds b/mod/Textures/cyberware/hud/cy/arrow_rightleg2.dds new file mode 100644 index 0000000..f664969 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_rightleg2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b7fa9dec50ccbed80bb663cde8a56d07439c11f0af1b8a0d25bae09f24a6b2d +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_torso.dds b/mod/Textures/cyberware/hud/cy/arrow_torso.dds new file mode 100644 index 0000000..41a13a6 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_torso.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c244f6c9dc3f6a69f68a089c697ddb4ff672433d07d904604df52f8422de1c1c +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/arrow_torso2.dds b/mod/Textures/cyberware/hud/cy/arrow_torso2.dds new file mode 100644 index 0000000..ca27223 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/arrow_torso2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:368bd1d44146a70ddb373d3df99249755b315fda9f2814b5a25ae746ea18ee6e +size 224560 diff --git a/mod/Textures/cyberware/hud/cy/background.dds b/mod/Textures/cyberware/hud/cy/background.dds new file mode 100644 index 0000000..58c31bb --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/background.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2b72bbbcdc2d926b6cbfe8e1766a65c0b8918251f069186d3611b46679fafc4 +size 655488 diff --git a/mod/Textures/cyberware/hud/cy/cyboy.dds b/mod/Textures/cyberware/hud/cy/cyboy.dds new file mode 100644 index 0000000..afb1274 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/cyboy.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:002d4af05d2e64575dc5685fd91a325997fea2b8561cfefe40a0a0ca7e06f946 +size 589952 diff --git a/mod/Textures/cyberware/hud/cy/cyboy_base.dds b/mod/Textures/cyberware/hud/cy/cyboy_base.dds new file mode 100644 index 0000000..5cc4d63 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/cyboy_base.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:807d9b650381cf8265804634c185119301aaab7ca22f39876440e5c0345f0bf9 +size 77696 diff --git a/mod/Textures/cyberware/hud/cy/cyboy_lines.dds b/mod/Textures/cyberware/hud/cy/cyboy_lines.dds new file mode 100644 index 0000000..1a44511 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/cyboy_lines.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10357b66f1b85e6529684234b6878b4f022f97df283b8ccad8b96274e33a7234 +size 589952 diff --git a/mod/Textures/cyberware/hud/cy/implant_add.dds b/mod/Textures/cyberware/hud/cy/implant_add.dds new file mode 100644 index 0000000..bad85c2 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/implant_add.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c38d2807ae67cd57afff7725f8a145364d37de0377fdf6a88f4886b1b37c6c58 +size 16512 diff --git a/mod/Textures/cyberware/hud/cy/leftslot.dds b/mod/Textures/cyberware/hud/cy/leftslot.dds new file mode 100644 index 0000000..bb9a2ec --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/leftslot.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e431124a3dfd3dcf6f841399a5091fc3b3f085e11ba4fe45d43e72e058413c19 +size 27056 diff --git a/mod/Textures/cyberware/hud/cy/nevada.dds b/mod/Textures/cyberware/hud/cy/nevada.dds new file mode 100644 index 0000000..3fe8c18 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/nevada.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e49cbf37975db03514433b29968ef61e37fcbc92ab758014203f61adf76ab68 +size 16176 diff --git a/mod/Textures/cyberware/hud/cy/rightslot.dds b/mod/Textures/cyberware/hud/cy/rightslot.dds new file mode 100644 index 0000000..5ab5daa --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/rightslot.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac592e922171d35fa65216109834788f5747ff2cfee964a214f3491027d85d6d +size 27056 diff --git a/mod/Textures/cyberware/hud/cy/select_head.dds b/mod/Textures/cyberware/hud/cy/select_head.dds new file mode 100644 index 0000000..b8194a7 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/select_head.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:293ce7a4e2eac4329949b33b879bcbd54f463c54b1858453832a7b24bd7fe597 +size 77696 diff --git a/mod/Textures/cyberware/hud/cy/select_leftarm.dds b/mod/Textures/cyberware/hud/cy/select_leftarm.dds new file mode 100644 index 0000000..d0578d0 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/select_leftarm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbc832f0b65fb61eb9b155a8af6e2388715cb81d40351debebb9aea2523f1c11 +size 77696 diff --git a/mod/Textures/cyberware/hud/cy/select_leftleg.dds b/mod/Textures/cyberware/hud/cy/select_leftleg.dds new file mode 100644 index 0000000..ceffc6f --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/select_leftleg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e768420cfa3c351d5b7ee50fd5b84c71517300ca28b669883044c6a2b564384 +size 77696 diff --git a/mod/Textures/cyberware/hud/cy/select_rightarm.dds b/mod/Textures/cyberware/hud/cy/select_rightarm.dds new file mode 100644 index 0000000..b475f35 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/select_rightarm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b81a0c794d8178bb346dfbe6d2a57bde251fbf535265000196aad7d9f65371e +size 77696 diff --git a/mod/Textures/cyberware/hud/cy/select_rightleg.dds b/mod/Textures/cyberware/hud/cy/select_rightleg.dds new file mode 100644 index 0000000..c29e215 --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/select_rightleg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44663dd92d8ea7692f4b84dc5ebd537f40d3ffd82e3d8b508ea4f7462a593dfb +size 77696 diff --git a/mod/Textures/cyberware/hud/cy/select_torso.dds b/mod/Textures/cyberware/hud/cy/select_torso.dds new file mode 100644 index 0000000..190717b --- /dev/null +++ b/mod/Textures/cyberware/hud/cy/select_torso.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36b034b333f3145d43ef0160f0d5db5aa3ec15c76c90e065ec09724a91b81f32 +size 77696 diff --git a/mod/Textures/cyberware/hud/grain/grain1.dds b/mod/Textures/cyberware/hud/grain/grain1.dds new file mode 100644 index 0000000..bc649ce --- /dev/null +++ b/mod/Textures/cyberware/hud/grain/grain1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80d2caa370b564c34c4bbdf0a9177bee2af6aad325d0c14518f41add5f6ec7ea +size 1024128 diff --git a/mod/Textures/cyberware/hud/grain/grain2.dds b/mod/Textures/cyberware/hud/grain/grain2.dds new file mode 100644 index 0000000..adc10e9 --- /dev/null +++ b/mod/Textures/cyberware/hud/grain/grain2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c599214fcba8c775dc30bb683e4216b4d1cd8d889f74420fdd08bce3cb46ee9b +size 1024128 diff --git a/mod/Textures/cyberware/hud/grain/grain3.dds b/mod/Textures/cyberware/hud/grain/grain3.dds new file mode 100644 index 0000000..bfe5599 --- /dev/null +++ b/mod/Textures/cyberware/hud/grain/grain3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e170908743e9fd3ec0aff0e41917bb14e7a09727555610ce234376ffc4a407e2 +size 1024128 diff --git a/mod/Textures/cyberware/hud/grain/grain4.dds b/mod/Textures/cyberware/hud/grain/grain4.dds new file mode 100644 index 0000000..41c1310 --- /dev/null +++ b/mod/Textures/cyberware/hud/grain/grain4.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bb919dcb1e35adf0c58234cfe00b21fe08fac37c1daa26342b6ad4ea6c74f01 +size 1024128 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_arm.dds b/mod/Textures/cyberware/hud/panel/implant_left_arm.dds new file mode 100644 index 0000000..10dc593 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_arm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20003601385927e8be93bad7924b330413b24719bdcd26160f49a5a8e7663a36 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_armor.dds b/mod/Textures/cyberware/hud/panel/implant_left_armor.dds new file mode 100644 index 0000000..5f7143d --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_armor.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a73138a73ab21d792f98da32afda1670245d3ba57a058419841a296fcd48c84a +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_bugs.dds b/mod/Textures/cyberware/hud/panel/implant_left_bugs.dds new file mode 100644 index 0000000..03a15a4 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_bugs.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aded0b535869feb15061febb010ddaf3baeab78b47615a7cfd27e39ecc10845 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_crouch.dds b/mod/Textures/cyberware/hud/panel/implant_left_crouch.dds new file mode 100644 index 0000000..9a0f222 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_crouch.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:614cd133f2288e4a4d9b766ac11483e9261aec612da751698453db1a71431e2d +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_default.dds b/mod/Textures/cyberware/hud/panel/implant_left_default.dds new file mode 100644 index 0000000..d4b2174 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_default.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27c71aafb100b882317baede01e997d2371c71baf19b2e8773ad986e9ad7b81f +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_emp.dds b/mod/Textures/cyberware/hud/panel/implant_left_emp.dds new file mode 100644 index 0000000..ccd15da --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_emp.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41e889709c0e039d15f9cb6a4501061b28962427a9e64c7288a21bca8eadcce8 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_eye.dds b/mod/Textures/cyberware/hud/panel/implant_left_eye.dds new file mode 100644 index 0000000..68c54ed --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_eye.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fae159e47efb42e7f765d9346f8eafed0c6b0c006a3cf2045f2adfee0e851db +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_foodhp.dds b/mod/Textures/cyberware/hud/panel/implant_left_foodhp.dds new file mode 100644 index 0000000..8dadf2b --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_foodhp.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9c60be0ee06804d5c492864fa1df6fd82b97c139f0b7825de0c61fead879b1d +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_heart.dds b/mod/Textures/cyberware/hud/panel/implant_left_heart.dds new file mode 100644 index 0000000..42527c9 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_heart.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:291c515001869291bbff8abbabd8e8c8256a1cfbb855c7aaa6df7d473e8214ef +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_leg.dds b/mod/Textures/cyberware/hud/panel/implant_left_leg.dds new file mode 100644 index 0000000..dbab8e2 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_leg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0db7694d26dd6700d7836842c4ac718b44a6cc49b93d326ea0745ce18049921 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_lung.dds b/mod/Textures/cyberware/hud/panel/implant_left_lung.dds new file mode 100644 index 0000000..7ccc4f3 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_lung.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1af4ceda44f7a60cb9c2b00d2f0505232f1c9c85884723555ede35f4865e4647 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_microwave.dds b/mod/Textures/cyberware/hud/panel/implant_left_microwave.dds new file mode 100644 index 0000000..912941c --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_microwave.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a86ed18ab500637e64d4f9b20d6b359580d5f69b5d4d8b1e71e3092cc1d6f1d +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_nail.dds b/mod/Textures/cyberware/hud/panel/implant_left_nail.dds new file mode 100644 index 0000000..1fb2c44 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_nail.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4974f375e15e79d7e55c0c219ad6c448f4be0bf7636e9461beeba883dc61c42 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_norads.dds b/mod/Textures/cyberware/hud/panel/implant_left_norads.dds new file mode 100644 index 0000000..da013e7 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_norads.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc06eac78257fe2f017c8afed9c1524fde1dba474574c78298d5c63ddbd06727 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_phoenix.dds b/mod/Textures/cyberware/hud/panel/implant_left_phoenix.dds new file mode 100644 index 0000000..01b2aea --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_phoenix.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b181957192cc56bb627e6165ffab56c2bd7573c6cc0b0de86ac3f95009c126cb +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_scanner.dds b/mod/Textures/cyberware/hud/panel/implant_left_scanner.dds new file mode 100644 index 0000000..bfd76cd --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_scanner.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bc568585d85fa3dd03475bf7ca0c1e10587da3302d524366904e798e1c8ea94 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_skill.dds b/mod/Textures/cyberware/hud/panel/implant_left_skill.dds new file mode 100644 index 0000000..7bb56e2 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_skill.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e65bceb1860ae31dababf7f19d5f1e16858c9e9dcea263c3477ba59f7e4f4591 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_stat.dds b/mod/Textures/cyberware/hud/panel/implant_left_stat.dds new file mode 100644 index 0000000..7b09f40 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_stat.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dd50e4f8df2d703f4067382cfeae13118f11e0a560e29ce25c1c80ece42e115 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_stealth.dds b/mod/Textures/cyberware/hud/panel/implant_left_stealth.dds new file mode 100644 index 0000000..73c2961 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_stealth.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a7eacba8057d324d15eaf7ef09f4564c1259ac6cc557fac36eebe6087c9e242 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_synapses.dds b/mod/Textures/cyberware/hud/panel/implant_left_synapses.dds new file mode 100644 index 0000000..d4b2174 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_synapses.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27c71aafb100b882317baede01e997d2371c71baf19b2e8773ad986e9ad7b81f +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_turbo.dds b/mod/Textures/cyberware/hud/panel/implant_left_turbo.dds new file mode 100644 index 0000000..f4321f6 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_turbo.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2da603e73b025bbc0e759224a230378468319c3242239c2dac67a4dde72f0e6 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_weave.dds b/mod/Textures/cyberware/hud/panel/implant_left_weave.dds new file mode 100644 index 0000000..9a2bc66 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_weave.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2725e0e5a4682e808f98a6c5e0847a303edb2558142b5d7ff573b12a56ef2a65 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_left_weight.dds b/mod/Textures/cyberware/hud/panel/implant_left_weight.dds new file mode 100644 index 0000000..6a6e7a2 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_left_weight.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1f18acf1a5e5c1379ed532326f515dca36742e8603322405c4e0a85c48f6550 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_arm.dds b/mod/Textures/cyberware/hud/panel/implant_right_arm.dds new file mode 100644 index 0000000..a24bf59 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_arm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec029c14c31b7f8e05bae24fda0406a718d16d2025beb903308c3ed75033777b +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_armor.dds b/mod/Textures/cyberware/hud/panel/implant_right_armor.dds new file mode 100644 index 0000000..a0c0adb --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_armor.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b90b850f1fe39d727629a5d532a25258dd3b73e3aa52649a4ba09362579fce9 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_bugs.dds b/mod/Textures/cyberware/hud/panel/implant_right_bugs.dds new file mode 100644 index 0000000..e778c1a --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_bugs.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1911daf812e1385961f432d6205d838777c51d3b75c695825db56a38779825cd +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_crouch.dds b/mod/Textures/cyberware/hud/panel/implant_right_crouch.dds new file mode 100644 index 0000000..9ae54a4 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_crouch.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a8dfe3859864543ffa6800d60349e8e86b815318454024589d4bb4bbe4372a5 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_default.dds b/mod/Textures/cyberware/hud/panel/implant_right_default.dds new file mode 100644 index 0000000..57e0e0e --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_default.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87b26e8945fa8120d12d2f8175fe7ee28d77eabc9e772ec8f58450a35d7c2a90 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_emp.dds b/mod/Textures/cyberware/hud/panel/implant_right_emp.dds new file mode 100644 index 0000000..fc524d7 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_emp.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6609d49116f40395e57eeadcd2337f2984cc9aea2c4d466efbff768d8f9c8724 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_eye.dds b/mod/Textures/cyberware/hud/panel/implant_right_eye.dds new file mode 100644 index 0000000..4ccbbdc --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_eye.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76f825f277ffdc35089b31c878372cf281e85501d2d13243c67bf6154cbe18fb +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_foodhp.dds b/mod/Textures/cyberware/hud/panel/implant_right_foodhp.dds new file mode 100644 index 0000000..131b97e --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_foodhp.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53192953540f5b6b3b53d4f16d5d555490ed0f795ac191e2d23e3eed164cc282 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_heart.dds b/mod/Textures/cyberware/hud/panel/implant_right_heart.dds new file mode 100644 index 0000000..0f1195a --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_heart.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d76cb4885dc41c11320b7cbe275eb3fcf4bc522fdec2211fed185cea50f69e66 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_leg.dds b/mod/Textures/cyberware/hud/panel/implant_right_leg.dds new file mode 100644 index 0000000..a860239 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_leg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cda4f7ed68fbc38798d36cf495d68df5b2c942491e7905230d221a3b5b731843 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_lung.dds b/mod/Textures/cyberware/hud/panel/implant_right_lung.dds new file mode 100644 index 0000000..bc2fa1b --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_lung.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1809ce3a013cd4d8416583d7ea2c2bdb9e03868f363384c4d3e790da9ee170f9 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_microwave.dds b/mod/Textures/cyberware/hud/panel/implant_right_microwave.dds new file mode 100644 index 0000000..73d9f5d --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_microwave.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6396db2b01bd93ad47fdc2bc4a3a5e4001f4047e5d7a2834713b42508bcfea53 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_nail.dds b/mod/Textures/cyberware/hud/panel/implant_right_nail.dds new file mode 100644 index 0000000..0ab3bf3 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_nail.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:715fc0489ecb926367af045061f70fba1df801048b66358056aaac64b03e9db9 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_norads.dds b/mod/Textures/cyberware/hud/panel/implant_right_norads.dds new file mode 100644 index 0000000..ee77889 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_norads.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65de9959acd5c9bf9c0eb21a4798879fcf35bf8b02268317dc2c9828e3ec951c +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_phoenix.dds b/mod/Textures/cyberware/hud/panel/implant_right_phoenix.dds new file mode 100644 index 0000000..784da0d --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_phoenix.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3003b37db67db146b5632c4f6ab755e962fb9dcf4f193d40198dd5855f9f131f +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_scanner.dds b/mod/Textures/cyberware/hud/panel/implant_right_scanner.dds new file mode 100644 index 0000000..9a22815 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_scanner.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f933eb686946114a25d1650bc055b813055d1b7b757fbc0c45e22713eecf9c4c +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_skill.dds b/mod/Textures/cyberware/hud/panel/implant_right_skill.dds new file mode 100644 index 0000000..5786809 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_skill.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfbedd1a5a2c8e3fecd5b12fc6024a5deea5bf63a7b4b49160c6b8bcade3e52b +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_stat.dds b/mod/Textures/cyberware/hud/panel/implant_right_stat.dds new file mode 100644 index 0000000..93debf1 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_stat.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c885e6ff768a310d59857da55b3ee3502a73a1ea561b56a3e09c9561d08c0dd3 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_stealth.dds b/mod/Textures/cyberware/hud/panel/implant_right_stealth.dds new file mode 100644 index 0000000..6bc7e0b --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_stealth.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b1489175f45782a21c445c2d19fc17945279a2f1e1ecfe5919664fa791d6035 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_synapses.dds b/mod/Textures/cyberware/hud/panel/implant_right_synapses.dds new file mode 100644 index 0000000..57e0e0e --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_synapses.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87b26e8945fa8120d12d2f8175fe7ee28d77eabc9e772ec8f58450a35d7c2a90 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_turbo.dds b/mod/Textures/cyberware/hud/panel/implant_right_turbo.dds new file mode 100644 index 0000000..e31c006 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_turbo.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04f79ad8e846f05957aad72d777d858e9993c23309626604e60cad18e6eba1c4 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_weave.dds b/mod/Textures/cyberware/hud/panel/implant_right_weave.dds new file mode 100644 index 0000000..ce97ee8 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_weave.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b89a4aa3344e6ab8f241cdf049057149dd718a0439d21e7d2715e96b2c51eda2 +size 16512 diff --git a/mod/Textures/cyberware/hud/panel/implant_right_weight.dds b/mod/Textures/cyberware/hud/panel/implant_right_weight.dds new file mode 100644 index 0000000..92d6a33 --- /dev/null +++ b/mod/Textures/cyberware/hud/panel/implant_right_weight.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81c1bde1657c8496b6cf2fa6cd05944c96dd8adeda5d4e1a9f4300ee2e80347e +size 16512 diff --git a/mod/Textures/cyberware/hud/scan/ScannerBoy_base.dds b/mod/Textures/cyberware/hud/scan/ScannerBoy_base.dds new file mode 100644 index 0000000..805f222 --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/ScannerBoy_base.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9332e1dbcb42be75966c4a4194a6566033abe5f102255090ae5433bf71f4617e +size 249728 diff --git a/mod/Textures/cyberware/hud/scan/ScannerBoy_head.dds b/mod/Textures/cyberware/hud/scan/ScannerBoy_head.dds new file mode 100644 index 0000000..e790f73 --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/ScannerBoy_head.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87f6b8e2db3de87b24f5e52c735fa55407999bd906a728e3bf80d36364a94b85 +size 249728 diff --git a/mod/Textures/cyberware/hud/scan/ScannerBoy_leftarm.dds b/mod/Textures/cyberware/hud/scan/ScannerBoy_leftarm.dds new file mode 100644 index 0000000..aba5cd9 --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/ScannerBoy_leftarm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:437e2011c5d6aaeb6294671fef6240fdce2d8632d7c893fa1b43793a6cc71144 +size 249728 diff --git a/mod/Textures/cyberware/hud/scan/ScannerBoy_leftleg.dds b/mod/Textures/cyberware/hud/scan/ScannerBoy_leftleg.dds new file mode 100644 index 0000000..7eca293 --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/ScannerBoy_leftleg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4afc7041c05d4ca3d88f14490612ccee78eb5c36c302a2fb5270fe252607e06f +size 249728 diff --git a/mod/Textures/cyberware/hud/scan/ScannerBoy_rightarm.dds b/mod/Textures/cyberware/hud/scan/ScannerBoy_rightarm.dds new file mode 100644 index 0000000..1a4e9bb --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/ScannerBoy_rightarm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2654da67a21f072e3f30378ee40ef198a992d4b21a05147688501a64dc9afde +size 249728 diff --git a/mod/Textures/cyberware/hud/scan/ScannerBoy_rightleg.dds b/mod/Textures/cyberware/hud/scan/ScannerBoy_rightleg.dds new file mode 100644 index 0000000..3c74037 --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/ScannerBoy_rightleg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bdb14e3f6384e1e4931ad14f7230d82909b14367813cbb2afc951586bb838d5 +size 249728 diff --git a/mod/Textures/cyberware/hud/scan/ScannerBoy_torso.dds b/mod/Textures/cyberware/hud/scan/ScannerBoy_torso.dds new file mode 100644 index 0000000..201ea37 --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/ScannerBoy_torso.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9156b77d02ec11dc3fbda72161c8ffc1a7311e10bf86e03ce14b5ad46a28263 +size 249728 diff --git a/mod/Textures/cyberware/hud/scan/healthseperator.dds b/mod/Textures/cyberware/hud/scan/healthseperator.dds new file mode 100644 index 0000000..08163ca --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/healthseperator.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60d9baabfd3e0f9443d53ac0e780820866e8e3942d7242876f69507cf3dc4f35 +size 12672 diff --git a/mod/Textures/cyberware/hud/scan/scannerboy.dds b/mod/Textures/cyberware/hud/scan/scannerboy.dds new file mode 100644 index 0000000..daf17bc --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/scannerboy.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32991cb918048b259cc990bbb5b4a62da08390dd4ee27f605b262e68bb834327 +size 110528 diff --git a/mod/Textures/cyberware/hud/scan/scannerbracket1.dds b/mod/Textures/cyberware/hud/scan/scannerbracket1.dds new file mode 100644 index 0000000..eb21648 --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/scannerbracket1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83efa073380da3fbea3860b3f682d9523f77825cc60043b2b6e17b1796ff5980 +size 65664 diff --git a/mod/Textures/cyberware/hud/scan/scannerbracket2.dds b/mod/Textures/cyberware/hud/scan/scannerbracket2.dds new file mode 100644 index 0000000..373c70a --- /dev/null +++ b/mod/Textures/cyberware/hud/scan/scannerbracket2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:483358213fc7aa7840b6874aba151ec5f4ead6d06cac87560961f68a118c583e +size 196736 diff --git a/mod/Textures/cyberware/hud/sf/stealthmeter0.dds b/mod/Textures/cyberware/hud/sf/stealthmeter0.dds new file mode 100644 index 0000000..964c0cc --- /dev/null +++ b/mod/Textures/cyberware/hud/sf/stealthmeter0.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7070a13437fcf34d01a6871251e4bab0841f601e51744caa58695349aa94c98e +size 16512 diff --git a/mod/Textures/cyberware/hud/sf/stealthmeter1.dds b/mod/Textures/cyberware/hud/sf/stealthmeter1.dds new file mode 100644 index 0000000..00b95ec --- /dev/null +++ b/mod/Textures/cyberware/hud/sf/stealthmeter1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1112b0c05be6eea6ac0a6516bffda5fb45f4fdf27fda7bf3b95d9724803af9df +size 16512 diff --git a/mod/Textures/cyberware/hud/sf/stealthmeter2.dds b/mod/Textures/cyberware/hud/sf/stealthmeter2.dds new file mode 100644 index 0000000..05656b6 --- /dev/null +++ b/mod/Textures/cyberware/hud/sf/stealthmeter2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1acec952102b0908801c6d4aa9ac9019d50b6cf51579c0626c10040f774e3da8 +size 16512 diff --git a/mod/Textures/cyberware/hud/sf/stealthmeter3.dds b/mod/Textures/cyberware/hud/sf/stealthmeter3.dds new file mode 100644 index 0000000..497ff21 --- /dev/null +++ b/mod/Textures/cyberware/hud/sf/stealthmeter3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc438fef50913be1f43f6a1d950e911dff4df32d00808b975d2f596b78d4f61c +size 16512 diff --git a/mod/Textures/cyberware/hud/sf/stealthmeter4.dds b/mod/Textures/cyberware/hud/sf/stealthmeter4.dds new file mode 100644 index 0000000..492f4dc --- /dev/null +++ b/mod/Textures/cyberware/hud/sf/stealthmeter4.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9762514690f21e977db8e10fcc1aace9da77fc1c5ae2c053239ace00953ac30d +size 16512 diff --git a/mod/Textures/cyberware/hud/sf/stealthmeter5.dds b/mod/Textures/cyberware/hud/sf/stealthmeter5.dds new file mode 100644 index 0000000..a852cfd --- /dev/null +++ b/mod/Textures/cyberware/hud/sf/stealthmeter5.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d9335a58db924225a712f9404cfa9cd84ebe7ba946ef598f2068f0c409885fe +size 16512 diff --git a/mod/Textures/cyberware/hud/sf/stealthmeter6.dds b/mod/Textures/cyberware/hud/sf/stealthmeter6.dds new file mode 100644 index 0000000..4c731af --- /dev/null +++ b/mod/Textures/cyberware/hud/sf/stealthmeter6.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f24a81d6c92fe9d3b9e50bd93f0b38be4f365e2a48c4ce278ea6456e65512fcc +size 16512 diff --git a/mod/Textures/cyberware/hud/sf/stealthmeter7.dds b/mod/Textures/cyberware/hud/sf/stealthmeter7.dds new file mode 100644 index 0000000..fec0359 --- /dev/null +++ b/mod/Textures/cyberware/hud/sf/stealthmeter7.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34f8c224c842a7fa2c31308189b21edca6a85d9a32a5ee7b784197626dd7152b +size 16512 diff --git a/mod/Textures/cyberware/hud/sf/stealthmeter8.dds b/mod/Textures/cyberware/hud/sf/stealthmeter8.dds new file mode 100644 index 0000000..784dc1e --- /dev/null +++ b/mod/Textures/cyberware/hud/sf/stealthmeter8.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10e80c00fc47e632b009ce7af6dc7a27f8791337e17efea15dcbd8e2974c55bb +size 16512 diff --git a/mod/Textures/cyberware/icons/Pipboyimages/items/implantbook.dds b/mod/Textures/cyberware/icons/Pipboyimages/items/implantbook.dds new file mode 100644 index 0000000..a2e91a2 --- /dev/null +++ b/mod/Textures/cyberware/icons/Pipboyimages/items/implantbook.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb121aea47f2813b189bfd41fde23d3e9bd7431bff1e567accdf46c930efc581 +size 65664 diff --git a/mod/Textures/cyberware/icons/Pipboyimages/items/implantbox.dds b/mod/Textures/cyberware/icons/Pipboyimages/items/implantbox.dds new file mode 100644 index 0000000..914b093 --- /dev/null +++ b/mod/Textures/cyberware/icons/Pipboyimages/items/implantbox.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04fa19fa3f4db2b61b5b198eeaf8cf31352e8fc76a6726fb95d78397af1ea854 +size 65664 diff --git a/mod/Textures/cyberware/icons/Pipboyimages/items/implantboxblue.dds b/mod/Textures/cyberware/icons/Pipboyimages/items/implantboxblue.dds new file mode 100644 index 0000000..b62973f --- /dev/null +++ b/mod/Textures/cyberware/icons/Pipboyimages/items/implantboxblue.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23f53241e7f29d12a095249c7a58ab874d39eb70f5ef2d42dd6824c663d9c2ef +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_PerkEMPBlast.dds b/mod/Textures/cyberware/icons/perks/PN-CW_PerkEMPBlast.dds new file mode 100644 index 0000000..0c41d1c --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_PerkEMPBlast.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58cd908e2fdd4928b6ead32d7cfb57e68e9388f53c948c80fb483eb5644fdd24 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantC13.dds b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantC13.dds new file mode 100644 index 0000000..146969e --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantC13.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f730aff715d1c227a5c0c70cbd8a53dfdc05ffb5031ce9271fc645e4f888a68 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantGRX.dds b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantGRX.dds new file mode 100644 index 0000000..84ad84b --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantGRX.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ecff1647cabd6b5ecff61a4a22ada79de5c053caed22a6bb3397856102a0704 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantM5.dds b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantM5.dds new file mode 100644 index 0000000..ab50abe --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantM5.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1522bf4765d993c2c6429e20124d2efe5cf358de7324ee79ed3c542d9ff7f01 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantY2.dds b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantY2.dds new file mode 100644 index 0000000..d25eda6 --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantY2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08528b6fbd5fa50f8e9a38eff147e2546164674831622ba4b16babb8fce67287 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantY7.dds b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantY7.dds new file mode 100644 index 0000000..c18499c --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_PerkImplantY7.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20537c495b3a05d2c666391ca8334f107fa4e580942457d580daba33e2c91230 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_PerkMicroBlast.dds b/mod/Textures/cyberware/icons/perks/PN-CW_PerkMicroBlast.dds new file mode 100644 index 0000000..6ff6f4e --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_PerkMicroBlast.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:161f4619a010d76df00eef83f13a66522260d7c9a97824c537a813dd690025ea +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_Perk_S1Brainless.dds b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_S1Brainless.dds new file mode 100644 index 0000000..20f218c --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_S1Brainless.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86c8ae070775cad4e50ce20c2cfa5e8e9713fec8e05375932a3c404ef1d057a2 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_Perk_S2Heartless.dds b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_S2Heartless.dds new file mode 100644 index 0000000..5928d58 --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_S2Heartless.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e4298995cf80f941e5d8b10f04363f7b563dbf6bb9408e1705da1d7841489b8 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_Perk_S3Spineless.dds b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_S3Spineless.dds new file mode 100644 index 0000000..13e0688 --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_S3Spineless.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ebce744658e97678048bab31bb61214663398974cf6fca81b07d5fd1af32a7a +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_Perk_T1BigBrained.dds b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_T1BigBrained.dds new file mode 100644 index 0000000..22e0c8c --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_T1BigBrained.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2c48ec625f5aa1a3f33c5111bf52607482fa7790e85a2418c91a3234415261d +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_Perk_T2CardiacArrest.dds b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_T2CardiacArrest.dds new file mode 100644 index 0000000..5aa713a --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_T2CardiacArrest.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f03c074b9e2997591d885909bbb656bbaeb19beb4cca15388b71913e6a337e1 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/PN-CW_Perk_T3ReinforcedSpine.dds b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_T3ReinforcedSpine.dds new file mode 100644 index 0000000..e8715bf --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/PN-CW_Perk_T3ReinforcedSpine.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e1d0333cf1d41a424185080f0f37a5104e306dfb3e9550fac0797960ede50d0 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/implant_perk_matrix1.dds b/mod/Textures/cyberware/icons/perks/implant_perk_matrix1.dds new file mode 100644 index 0000000..ada7db3 --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/implant_perk_matrix1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d37a1556edc68fedef8d31018e319a9a1238a12b735fa423fb8dacf4d9e091bb +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/implant_perk_matrix2.dds b/mod/Textures/cyberware/icons/perks/implant_perk_matrix2.dds new file mode 100644 index 0000000..f395c16 --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/implant_perk_matrix2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c02fa895ea2cd2d6b97f9131afcb238434bc03fd36c8c6ad4896a0a0bd3694f +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/implant_perk_sprint.dds b/mod/Textures/cyberware/icons/perks/implant_perk_sprint.dds new file mode 100644 index 0000000..47d9920 --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/implant_perk_sprint.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aac544e276f97d17266b6754275a3715923e94df0e0fd1d57cb80aabc3f3a22 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugArm.dds b/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugArm.dds new file mode 100644 index 0000000..1c480ac --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugArm.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91e185e9128606ab371581b621ac6d39c10aac841443113283cf44baab793737 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugChest.dds b/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugChest.dds new file mode 100644 index 0000000..fd82231 --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugChest.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e04da2b3a8390bb32b8f52dd8ae1e65c26f1ee113911de41d93eba2c5f00b8b4 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugHead.dds b/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugHead.dds new file mode 100644 index 0000000..d104f61 --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugHead.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35faaae5bc33366b7759ac53c9230e0965611650196ea60688a20ff40bb7a545 +size 65664 diff --git a/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugLeg.dds b/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugLeg.dds new file mode 100644 index 0000000..f2179b0 --- /dev/null +++ b/mod/Textures/cyberware/icons/perks/pnx_cyberware_4AugLeg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d89b77df3c1f52d42546325306ff9c35e68d23a5cab05ff14f940964a991afa +size 65664 diff --git a/mod/Textures/cyberware/misc/implantbox.dds b/mod/Textures/cyberware/misc/implantbox.dds new file mode 100644 index 0000000..468cf58 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44186452dec838167a7d41fbf3f6096a684cba42a6365973e3d0fc9f4ae5355d +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox.dds b/mod/Textures/cyberware/misc/implantbox/implantbox.dds new file mode 100644 index 0000000..2358246 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce857c144c3651dc3f9944f38f67ba87f36f5867c88d356ac765116cf7e74e26 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_ab.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_ab.dds new file mode 100644 index 0000000..feababa --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_ab.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7f2b69c537158403f6fab5ebd3859cdcb095283245f6eefa187833fa4a03371 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_ars.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_ars.dds new file mode 100644 index 0000000..0d1c097 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_ars.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fa433c81dc783d50db47c6507f22f961a6b5f6b321000203ce8191e44c01d7a +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_be.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_be.dds new file mode 100644 index 0000000..2747e0f --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_be.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c1bbc4cc8e8dbac623f13a20494c8572aa196338ca32bcbbc5c771274ce1023 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_emp.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_emp.dds new file mode 100644 index 0000000..28c9b3e --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_emp.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b48f7d7e7c067d93b02160632d7c911d2a6505afad6e76b9ebe2a1cfb37c94fa +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_es.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_es.dds new file mode 100644 index 0000000..13b6a81 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_es.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe4cd86eac481e393c900f0ffe58a58403fd89749af1b3285d224cdf3f161c3b +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_ha.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_ha.dds new file mode 100644 index 0000000..41c391e --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_ha.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93c9fbe62a8ee096add6b731af8b9bfe5f9c19cf3d22645d0bed0ab6a61ef61a +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_hfp.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_hfp.dds new file mode 100644 index 0000000..ec4c2d5 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_hfp.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f50cc674dbcf234bef2058c276596961578c95c5e4f88ab1f7f0919c18c45db +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_hs1.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_hs1.dds new file mode 100644 index 0000000..8065086 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_hs1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae528278202884377e034f93a81141ea11f4a8daebfa3df166b3e7e2c405cb70 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_hs2.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_hs2.dds new file mode 100644 index 0000000..eb07054 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_hs2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3868515c55c08085964ed46179d67d6475c97c97e5f4bf73d2c822dcf0c0259e +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_hs3.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_hs3.dds new file mode 100644 index 0000000..7a65ccb --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_hs3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24e47f08abc62fae8424e8288ada00a4ccee8223c3e053f2fea47214346fcc31 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_hs4.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_hs4.dds new file mode 100644 index 0000000..de4da8a --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_hs4.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4acb92735b6301fe0851e2fd16ff9b1ca9f8ccfed79129d22f658888dd93aade +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_ka.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_ka.dds new file mode 100644 index 0000000..cacc77b --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_ka.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22391f493909cf1f2f4e108f74724274e49858cca0466032ec623a17e4036b91 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_lcp.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_lcp.dds new file mode 100644 index 0000000..a310271 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_lcp.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48780094ee321aa97977392c79506ddb8f804573aa5cc86d4f3716706a9e0080 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_mb.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_mb.dds new file mode 100644 index 0000000..ea276dd --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_mb.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ec63961d2d5129f590aa002098c16ff211b57d1af14eb3822091e7a3bd476a1 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_mm1.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_mm1.dds new file mode 100644 index 0000000..587c580 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_mm1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d5ad524c0fa5e09ecf4db348600ec4dac03208ae1e40af39bcc4b818fd8c92b +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_mm2.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_mm2.dds new file mode 100644 index 0000000..09aa9da --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_mm2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2addfea385ef44caa32b36be6a5197a5de3af4e295ec8b21c47c631127d1176 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_mm3.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_mm3.dds new file mode 100644 index 0000000..188f0ea --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_mm3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5edbd6bacf2e587c968c9ef34843ebd5f3bde84c2bba8a35b062e38b7cd4f189 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_mm4.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_mm4.dds new file mode 100644 index 0000000..642abf4 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_mm4.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3687a8a136aff501895227e3b6004eab85cdd482a615539b86848f98e3bee025 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_nd1.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_nd1.dds new file mode 100644 index 0000000..fac54ea --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_nd1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbd666a5282d97b553fde3fde24b5d74aceefef791aa7df1b0e7110cb8b20a43 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_nd2.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_nd2.dds new file mode 100644 index 0000000..e020a10 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_nd2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0ed0f353edbe80039a47a3f5a31b6f2cb565cb689228e37938a6982e63b1059 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_nd3.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_nd3.dds new file mode 100644 index 0000000..5d6c4d7 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_nd3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13b09e4f6be5454710b84f48f0f836bc640a85c7e5607f4c5885d3dbb1e73884 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_nd4.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_nd4.dds new file mode 100644 index 0000000..b3dc1c0 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_nd4.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4881815edc23d0dae573dbc8bfddadbd3252aca3df8442b09134dab217556648 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_nr.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_nr.dds new file mode 100644 index 0000000..f7469a9 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_nr.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32060cc144ce7cfeb01f8d3d9681cf5456dc5b1838007a0aa32a2f7bbc12bf8e +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_nw.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_nw.dds new file mode 100644 index 0000000..2a5684b --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_nw.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:317783598db9d6f25f46a4bf91c6f01b142e654be3bf5a32ff39fea19de3b3d7 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_oe.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_oe.dds new file mode 100644 index 0000000..7ea9e51 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_oe.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95a7cb4d85d201afc11c9882ef6e6f1c338cb36596f09b80e3f804d1cbbcdc59 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_pc.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_pc.dds new file mode 100644 index 0000000..1dcd7a0 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_pc.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:661deca9c9a8f20aa941a887761bcfcb6f03d3e8f51b0a9a1fe03299ea93d408 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_rb.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_rb.dds new file mode 100644 index 0000000..3a60f2b --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_rb.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11a2ad06520067284543ef3ed091d86a116822d0a433d74155f162fcc8ce619d +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_rn1.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_rn1.dds new file mode 100644 index 0000000..72e20de --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_rn1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcc57edfaf62409e67819b18f71cb68fee921c090f36487b5d60a1c3b8afe3dd +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_rn2.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_rn2.dds new file mode 100644 index 0000000..fa6b779 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_rn2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:071714f7984b810698f1cca1d66fa54fed78dbccbdbc4a84db7457be4373a5a6 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_rn3.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_rn3.dds new file mode 100644 index 0000000..e75ec9e --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_rn3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f6138df84f5fa08f84bd72e4736dd88a82f48e3ee5b3aae5e1c97dd6e18fac2 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_rn4.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_rn4.dds new file mode 100644 index 0000000..a56bb8d --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_rn4.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44cd95eb50a21684ac03def3956937822787a92fbdb0b62801921fe035763c40 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_sda.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_sda.dds new file mode 100644 index 0000000..441aeb6 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_sda.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90f3693fb20d4f30193431afa2597bfb9ff7682f8a0a0e1a029b1a03ac6c75ce +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_sl.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_sl.dds new file mode 100644 index 0000000..cc1eea8 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_sl.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffe14422d2c1b3ff18317730586c172544ff0c51f74475224f7feb143f8f71a0 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_snb.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_snb.dds new file mode 100644 index 0000000..ddb9fee --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_snb.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e200f030fc00ea35c99c29a769db8bd2b65aac5728ec2820cf933fd813e60af +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_td1.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_td1.dds new file mode 100644 index 0000000..0b6c12f --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_td1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9294dc60e677997c41fdbb9abbd12110c1aaccffc6c0ce0cf88efff5e4cec6c6 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_td2.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_td2.dds new file mode 100644 index 0000000..339d6c5 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_td2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d8134a95c4eadd005e424969d5dbc53bf6b8d1011f5a397a61f0b9eecce9da8 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_td3.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_td3.dds new file mode 100644 index 0000000..a1429ed --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_td3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f02ab5ff0e70c8b6fb3adf16e57a489d574b5f89f65c884a2357b80cc5dbf2e +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_td4.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_td4.dds new file mode 100644 index 0000000..6763ab5 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_td4.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:751cc7e87138ccc5eee4fdb9560dee5818cfe752c8c9c90773381e0bf9febc01 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_vm1.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_vm1.dds new file mode 100644 index 0000000..301fb6b --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_vm1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c2a8d6395e9092c376a10c585bc009a7aafb4d96b758bb556f3e3948a45c97c +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_vm2.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_vm2.dds new file mode 100644 index 0000000..8134255 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_vm2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:445f7953865bdd15bb6c3df4dd305f8bc1bd72a907c4915577a4992a199b37fe +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_vm3.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_vm3.dds new file mode 100644 index 0000000..b6a0737 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_vm3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c39a6f785d9ca2bfc977fcfc0ec2d42a5dce27b23a9a28a4cf0479a5efa84ff6 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_vm4.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_vm4.dds new file mode 100644 index 0000000..dd4df76 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_vm4.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df7e724cc0d9ea299c275fc6df40070247ca6f43754b186a19bab0319b83e8e0 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_wa1.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_wa1.dds new file mode 100644 index 0000000..010c5a2 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_wa1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87cdf9c5a76bf82e2c9e1b35d74a3cc102a0ce1a4bd92a017074a1ab922d7731 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_wa2.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_wa2.dds new file mode 100644 index 0000000..cf8170e --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_wa2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e4b6fa196aa0a21f6648ecb4306dd26b35b32694c01b71c009ced5270a1ed24 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_wa3.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_wa3.dds new file mode 100644 index 0000000..94e1c82 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_wa3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a42edb84c5780e4361efa7c6a6ad247210e9bfe6d556099aba659f6f2832a3a6 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_wa4.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_wa4.dds new file mode 100644 index 0000000..978e431 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_wa4.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:355f54a36abd78b00c362882ded1fb5c26be399700a25d8712cc48bd4a304219 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantbox_ws.dds b/mod/Textures/cyberware/misc/implantbox/implantbox_ws.dds new file mode 100644 index 0000000..b159d95 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantbox_ws.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3459d79682b1bc36318d2af22f06562f0a7e8d80820035e6f3c90ff2f216ad9 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantboxblue_c13.dds b/mod/Textures/cyberware/misc/implantbox/implantboxblue_c13.dds new file mode 100644 index 0000000..f197474 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantboxblue_c13.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a93939bd41543641543a6ba6a16d0b045fbbe1c07354d326ce48bdb0bbc43cef +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantboxblue_grx.dds b/mod/Textures/cyberware/misc/implantbox/implantboxblue_grx.dds new file mode 100644 index 0000000..26dffb9 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantboxblue_grx.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96cbb8a0fc043d3f31b9c8da97780197aff351578516eac42276a1dff4ba7cae +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantboxblue_m5.dds b/mod/Textures/cyberware/misc/implantbox/implantboxblue_m5.dds new file mode 100644 index 0000000..35c5f67 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantboxblue_m5.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22b49f7912b850efb894ff178b6721672e13ccc8949ee2286da635838b08e19a +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantboxblue_y3.dds b/mod/Textures/cyberware/misc/implantbox/implantboxblue_y3.dds new file mode 100644 index 0000000..dbbbf21 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantboxblue_y3.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f38ac2176851f8a06a0b219180422147aa2c949abfc173281482b3e077c0036 +size 349680 diff --git a/mod/Textures/cyberware/misc/implantbox/implantboxblue_y5.dds b/mod/Textures/cyberware/misc/implantbox/implantboxblue_y5.dds new file mode 100644 index 0000000..64661a0 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantbox/implantboxblue_y5.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39bb4b13548da296fb56151e96c4bdc6a6d8cf1a2da628d0bcf898947cb8339b +size 349680 diff --git a/mod/Textures/cyberware/misc/implantboxblue.dds b/mod/Textures/cyberware/misc/implantboxblue.dds new file mode 100644 index 0000000..9cf9058 --- /dev/null +++ b/mod/Textures/cyberware/misc/implantboxblue.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6189afe171ed37b262c1a81878f475fc9e5aac13f1d4f4917fd0d25652c9f4b3 +size 349680 diff --git a/mod/Textures/cyberware/misc/surgerymanual.dds b/mod/Textures/cyberware/misc/surgerymanual.dds new file mode 100644 index 0000000..9b48424 --- /dev/null +++ b/mod/Textures/cyberware/misc/surgerymanual.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac434eb644c65c6829850e3cddba4669ae4ea28ef2a958c2aca5aee78d42d746 +size 43832 diff --git a/mod/UIO/public/Cyberware - AR Scanner.txt b/mod/UIO/public/Cyberware - AR Scanner.txt new file mode 100644 index 0000000..dc6d161 --- /dev/null +++ b/mod/UIO/public/Cyberware - AR Scanner.txt @@ -0,0 +1,2 @@ +cyberware\cw_arscanner.xml::HUDMainMenu::HUDMainMenu +true \ No newline at end of file diff --git a/mod/UIO/public/Cyberware - Adrenaline Booster.txt b/mod/UIO/public/Cyberware - Adrenaline Booster.txt new file mode 100644 index 0000000..aef6986 --- /dev/null +++ b/mod/UIO/public/Cyberware - Adrenaline Booster.txt @@ -0,0 +1,2 @@ +cyberware\cw_adrenaline_booster.xml::HUDMainMenu::HUDMainMenu +true \ No newline at end of file diff --git a/mod/UIO/public/Cyberware - Bionic Eyes.txt b/mod/UIO/public/Cyberware - Bionic Eyes.txt new file mode 100644 index 0000000..1fb6005 --- /dev/null +++ b/mod/UIO/public/Cyberware - Bionic Eyes.txt @@ -0,0 +1,2 @@ +cyberware\cw_bionic_eyes.xml::HUDMainMenu::HUDMainMenu +true \ No newline at end of file diff --git a/mod/UIO/public/Cyberware - Main.txt b/mod/UIO/public/Cyberware - Main.txt new file mode 100644 index 0000000..6be836d --- /dev/null +++ b/mod/UIO/public/Cyberware - Main.txt @@ -0,0 +1,2 @@ +cyberware\cw_implants.xml::TutorialMenu::TutorialMenu +true \ No newline at end of file diff --git a/mod/UIO/public/Cyberware - Stealth Nano-Bots.txt b/mod/UIO/public/Cyberware - Stealth Nano-Bots.txt new file mode 100644 index 0000000..b53c22f --- /dev/null +++ b/mod/UIO/public/Cyberware - Stealth Nano-Bots.txt @@ -0,0 +1,2 @@ +cyberware\cw_stealth.xml::HUDMainMenu::HUDMainMenu +true \ No newline at end of file diff --git a/src/CWxAdrenalineAddBonus.gek b/src/CWxAdrenalineAddBonus.gek new file mode 100644 index 0000000..6be5b69 --- /dev/null +++ b/src/CWxAdrenalineAddBonus.gek @@ -0,0 +1,32 @@ +scn CWxAdrenalineAddBonus + +float fBonus + +begin function { fBonus } + + set CWxAdrenalineBonus to CWxAdrenalineBonus + fBonus + + if CWxAdrenalineBonus > CWxAdrenalineBonusMax + set CWxAdrenalineBonus to CWxAdrenalineBonusMax + endif + + DebugPrint "Cyberware: Setting adrenaline bonus to %.2f" CWxAdrenalineBonus + + setUIFloat "HUDMainMenu/_PNxAPBonusValue" CWxAdrenalineBonus + setUIFloat "HUDMainMenu/_PNxAPBonusEnabled" 1 + + printd "Cyberware: Updating AP restore rate" + + set fBonus to CWxDefaultAPRestoreRate * (1 + CWxAdrenalineBonus) + SetNumericGameSetting fActionPointsRestoreRate fBonus + + if GetQuestRunning CWxAdrenalineQuest == 0 + printd "Cyberware: Starting adrenaline cooldown" + StartQuest CWxAdrenalineQuest + endif + + set CWxAdrenalineCounter to 0 + + printd "Cyberware: Adrenaline counter has been reset" + +end diff --git a/src/CWxAdrenalineOnKill.gek b/src/CWxAdrenalineOnKill.gek new file mode 100644 index 0000000..6f25d5d --- /dev/null +++ b/src/CWxAdrenalineOnKill.gek @@ -0,0 +1,29 @@ +scn CWxAdrenalineOnKill + +; Instant OnDeath handler +; At this point, limb data is not available yet, so we process it a bit later in CWxAdrenalineOnSeveredLimb + +float fDamageAmount +ref rSourceRef +ref rActor + +begin function { fDamageAmount, rSourceRef } + + set rActor to this + + ; Do not pile up handlers on dead actors + SetOnHealthDamageEventHandler CWxAdrenalineOnKill 0 rActor + + ; Only count player kills + if rSourceRef != playerRef + return + endif + + ; Actors may be ragdolled due to explosion, unconsciousness, etc. + if rActor.GetDead == 0 + return + endif + + call CWxAdrenalineAddBonus 0.2 + +end diff --git a/src/CWxAdrenalineOnRagdoll.gek b/src/CWxAdrenalineOnRagdoll.gek new file mode 100644 index 0000000..a4592a7 --- /dev/null +++ b/src/CWxAdrenalineOnRagdoll.gek @@ -0,0 +1,15 @@ +scn CWxAdrenalineOnRagdoll + +ref rActor + +begin function {} + + if this == playerRef + return + endif + + set rActor to this + + SetOnHealthDamageEventHandler CWxAdrenalineOnKill 1 rActor + +end diff --git a/src/CWxAdrenalineOnSeveredLimb.gek b/src/CWxAdrenalineOnSeveredLimb.gek new file mode 100644 index 0000000..b3f4c70 --- /dev/null +++ b/src/CWxAdrenalineOnSeveredLimb.gek @@ -0,0 +1,40 @@ +scn CWxAdrenalineOnSeveredLimb + +ref rSourceRef +ref rActor +int iDeathCause +float fBonus + +begin function { rActor, rSourceRef } + + ; Only count player kills + if rSourceRef != playerRef || rActor == playerRef + return + endif + + set fBonus to 0 + + ; Not very reliable, but sometimes works + set iDeathCause to rActor.GetCauseOfDeath + + if iDeathCause == 0 || iDeathCause == 3 || iDeathCause == 4 || iDeathCause == 5 + printd "Cyberware: Cause of death - Explosion, Blunt Weapon, HandToHand, ObjectImpact" + set fBonus to fBonus + 0.10 + endif + + ; Head + if rActor.isLimbGone 1 2 + printd "Cyberware: Severed head" + set fBonus to fBonus + 0.20 + + ; Any other limbs + elseif rActor.isLimbGone 3 13 + printd "Cyberware: Severed limb" + set fBonus to fBonus + 0.10 + endif + + if fBonus > 0 + call CWxAdrenalineAddBonus fBonus + endif + +end diff --git a/src/CWxAdrenalineQuestScript.gek b/src/CWxAdrenalineQuestScript.gek new file mode 100644 index 0000000..8f48444 --- /dev/null +++ b/src/CWxAdrenalineQuestScript.gek @@ -0,0 +1,17 @@ +scn CWxAdrenalineQuestScript + +begin GameMode + + if CWxAdrenalineCounter < CWxAdrenalineBonusTimeout + + set CWxAdrenalineCounter to CWxAdrenalineCounter + 1 + DebugPrint "Cyberware: Adrenaline counter set to %.0f" CWxAdrenalineCounter + + else + + printd "Cyberware: Adrenalin cooled down, stopping the quest" + SetStage CWxAdrenalineQuest 0 ; Stop quest + + endif + +end diff --git a/src/CWxAdrenalineUpdatePerk.gek b/src/CWxAdrenalineUpdatePerk.gek new file mode 100644 index 0000000..69a94b9 --- /dev/null +++ b/src/CWxAdrenalineUpdatePerk.gek @@ -0,0 +1,21 @@ +scn CWxAdrenalineUpdatePerk + +int iMode +array_var aImplants + +begin function { iMode } + + let aImplants := ar_list CWxImplants.torsoImplant1, CWxImplants.torsoImplant2, CWxImplants.torsoImplant3, CWxImplants.torsoImplant4 + call CWxFnSyncImplant CWxImplantAdrenalineBooster CWxImplantAPRegenPerk 1 aImplants + let aImplants := ar_null + + if player.HasPerk CWxImplantAPRegenPerk == 0 + if GetQuestRunning CWxAdrenalineQuest + ; Stop the quest + SetStage CWxAdrenalineQuest 0 + endif + endif + + call CWxAdrenalineUpdateTriggers 0 + +end diff --git a/src/CWxAdrenalineUpdateTriggers.gek b/src/CWxAdrenalineUpdateTriggers.gek new file mode 100644 index 0000000..f4d412c --- /dev/null +++ b/src/CWxAdrenalineUpdateTriggers.gek @@ -0,0 +1,27 @@ +scn CWxAdrenalineUpdateTriggers + +int iMode + +begin function { iMode } + + printd "Cyberware: Updating Adrenaline Booster triggers" + + if player.HasPerk CWxImplantAPRegenPerk + + SetOnRagdollEventHandler CWxAdrenalineOnRagdoll 1 + SetEventHandler "OnDeath" CWxAdrenalineOnSeveredLimb "second"::playerRef + + ; HUD state may persist between savegame reloads, so we refresh state on every load + + if CWxAdrenalineBonus > 0 + call CWxAdrenalineAddBonus 0 ; refresh HUD + else + SetStage CWxAdrenalineQuest 0 ; stop quest + endif + + else + SetOnRagdollEventHandler CWxAdrenalineOnRagdoll 0 + RemoveEventHandler "OnDeath" CWxAdrenalineOnSeveredLimb + endif + +end diff --git a/src/CWxBionicEyesGrainQuestScript.gek b/src/CWxBionicEyesGrainQuestScript.gek new file mode 100644 index 0000000..feb285f --- /dev/null +++ b/src/CWxBionicEyesGrainQuestScript.gek @@ -0,0 +1,51 @@ +scn CWxBionicEyesGrainQuestScript + +; The script runs every 0.05 seconds + +; Input vars +float staticGrain +float dynamicGrain +float red ; 0-1 +float green ; 0-1 +float blue ; 0-1 + +short phase + +float curGrain +float nextGrain + +Begin GameMode + + if nextGrain == 0 + return + endif + + if curGrain != nextGrain + if curGrain > nextGrain + ; Slow decrease + set curGrain to curGrain - 0.1 + if curGrain < nextGrain + set curGrain to nextGrain + endif + else + ; Instant increase + set curGrain to nextGrain + endif + endif + + set phase to phase + 1 + if phase > 4 + set phase to 1 + endif + + setUIFLoat "HUDMainMenu\_PNxGrainAmount" curGrain + setUIFLoat "HUDMainMenu\_PNxGrainPhase" phase + +End + +begin MenuMode + if GetUIFLoat "HUDMainMenu\_PNXGrainPhase" != 0 + SetUIFLoat "HUDMainMenu\_PNXGrainPhase" 0 + endif +end + diff --git a/src/CWxBionicEyesOnHotkey.gek b/src/CWxBionicEyesOnHotkey.gek new file mode 100644 index 0000000..e64e034 --- /dev/null +++ b/src/CWxBionicEyesOnHotkey.gek @@ -0,0 +1,42 @@ +scn CWxBionicEyesOnHotkey + +int iKeyID + +begin function { iKeyID } + + if MenuMode + return + endif + + if iKeyID != CWxVisionModeHotkey + SetOnKeyUpEventHandler CWxBionicEyesOnHotkey 0 iKeyID + return + endif + + if CWxVisionModeLevel == 0 + + SetStage CWxBionicEyesQuest 1 + set CWxVisionModeLevel to 1 + + elseif CWxVisionModeLevel == 1 + + SetStage CWxBionicEyesQuest 2 + SetStage CWxBionicEyesQuest 3 + set CWxVisionModeLevel to 2 + + elseif CWxVisionModeLevel == 2 + + SetStage CWxBionicEyesQuest 4 + SetStage CWxBionicEyesQuest 5 + set CWxVisionModeLevel to 3 + + else + + SetStage CWxBionicEyesQuest 6 + set CWxVisionModeLevel to 0 + + SetStage CWxBionicEyesGrainQuest 0 + + endif + +end diff --git a/src/CWxBionicEyesQuestScript.gek b/src/CWxBionicEyesQuestScript.gek new file mode 100644 index 0000000..f4ab4c9 --- /dev/null +++ b/src/CWxBionicEyesQuestScript.gek @@ -0,0 +1,220 @@ +scn CWxBionicEyesQuestScript + +; CWxVisionModeLevel: +; 0 - Off +; 1 - Night vision +; 2 - Heat vision +; 3 - EM vision + +ref shader1 +ref shader2 +ref shader3 + +short heatShader1stPersonActive +short heatShader3rdPersonActive + +short EMShader1stPersonActive +short EMShader3rdPersonActive + +ref obj + +int i +int size + +ref rArmor + +begin GameMode + + if CWxVisionModeLevel == 2 + + printd "Updating heat vision" + + if IsPC1stPerson && heatShader1stPersonActive == 0 + set heatShader1stPersonActive to 1 + player.pms shader3 + elseif IsPC1stPerson == 0 && heatShader3rdPersonActive == 0 + set heatShader3rdPersonActive to 1 + player.pms shader1 + endif + + set obj to GetFirstRef 200 2 0 + + ; Phase 1 - Search for new current actors + + while obj + if obj.getIsCreatureType 6 == 0 && obj.getDead == 0 && obj.getDisabled == 0 + obj.listAddReference CWxVisionModeAList + + if listGetFormIndex CWxVisionModeBList obj == -1 + obj.pms shader1 + endif + endif + + set obj to GetNextRef + loop + + ; Phase 2 - Search for gone actors + + set i to 0 + set size to ListGetCount CWxVisionModeBList + + while i < size + set obj to listGetNthForm CWxVisionModeBList i + + if IsFormValid obj + if obj.getDead + obj.sms shader1 + obj.pms shader2 + else + if ListGetFormIndex CWxVisionModeAList obj == -1 + obj.sms shader1 + obj.sms shader2 + endif + endif + endif + + set i to i + 1 + loop + + ; Clear B + ListClear CWxVisionModeBList + + ; Move A to B + while obj := ListRemoveNthForm CWxVisionModeAList 0 + ListAddForm CWxVisionModeBList obj + loop + + elseif CWxVisionModeLevel == 3 ; EM Vision + + set rArmor to playerRef.GetEquippedObject 2 + + if rArmor + if IsPowerArmor rArmor + if IsPC1stPerson && EMShader1stPersonActive == 0 + set EMShader1stPersonActive to 1 + playerRef.pms shader2 + elseif IsPC1stPerson == 0 && EMShader3rdPersonActive == 0 + set EMShader3rdPersonActive to 1 + playerRef.pms shader2 + endif + else + playerRef.sms shader2 + endif + else + playerRef.sms shader2 + endif + + ; Phase 1 - Search for new current actors + + set obj to GetFirstRef 200 2 0 + + while obj + if obj.getDisabled == 0 + if obj.GetCreatureType == -1 + + set rArmor to obj.GetEquippedObject 2 + if rArmor + if IsPowerArmor rArmor + + obj.listAddReference CWxVisionModeAList + if listGetFormIndex CWxVisionModeBList obj == -1 + if obj.getDead == 0 + obj.pms shader1 + else + obj.pms shader2 + endif + endif + + endif + endif + + elseif obj.getIsCreatureType 6 + + obj.listAddReference CWxVisionModeAList + if listGetFormIndex CWxVisionModeBList obj == -1 + if obj.getDead == 0 + obj.pms shader1 + else + obj.pms shader2 + endif + endif + + endif + endif + + set obj to GetNextRef + loop + + ; Phase 2 - Search for gone actors + + set i to 0 + set size to ListGetCount CWxVisionModeBList + + while i < size + set obj to listGetNthForm CWxVisionModeBList i + + if IsFormValid obj + if listGetFormIndex CWxVisionModeAList obj == -1 + obj.sms shader1 + obj.sms shader2 + endif + endif + + set i to i + 1 + loop + + ; Clear B + ListClear CWxVisionModeBList + + ; Move A to B + while obj := ListRemoveNthForm CWxVisionModeAList 0 + ListAddForm CWxVisionModeBList obj + loop + + + ;Energy Weapons & deactivated mines + set obj to GetFirstRef 40 2 0 + + while obj + if obj.GetWeaponSkill == 34 || obj.GetWeaponSkill == 35 + obj.sms shader2 + obj.pms shader2 2 + endif + set obj to getNextRef + loop + + ; Projectiles (activated mines, grenades etc) + set obj to GetFirstRef 51 2 0 + while obj + obj.sms shader2 + obj.pms shader2 2 + set obj to GetNextRef + loop + + ; Traps + set obj to GetFirstRef 21 2 0 + while obj + if IsRefInList CWxTrapsList obj >= 0 + obj.SMS shader2 + obj.PMS shader2 2 + endif + + set obj to GetNextRef + loop + + ; Terminals + set obj to GetFirstRef 23 2 0 + while obj + obj.sms shader2 + obj.pms shader2 2 + set obj to GetNextRef + loop + + + else + + SetStage CWxBionicEyesQuest 0 ; stop quest + + endif + +end diff --git a/src/CWxBionicEyesUpdatePerk.gek b/src/CWxBionicEyesUpdatePerk.gek new file mode 100644 index 0000000..5c831e4 --- /dev/null +++ b/src/CWxBionicEyesUpdatePerk.gek @@ -0,0 +1,31 @@ +scn CWxBionicEyesUpdatePerk + +int iStage +array_var aImplants + +begin function { iStage } + + let aImplants := ar_list CWxImplants.headImplant1, CWxImplants.headImplant2, CWxImplants.headImplant3, CWxImplants.headImplant4 + call CWxFnSyncImplant CWxImplantBionicEyes CWxImplantVisionModePerk 1 aImplants + let aImplants := ar_null + + call CWxBionicEyesUpdateTriggers 0 + + ; Reset vision mode, if the implant has been removed + + if player.HasPerk CWxImplantVisionModePerk == 0 && CWxVisionModeLevel > 0 + + if CWxVisionModeLevel == 1 + SetStage CWxBionicEyesQuest 2 + elseif CWxVisionModeLevel == 2 + SetStage CWxBionicEyesQuest 4 + elseif CWxVisionModeLevel == 3 + SetStage CWxBionicEyesQuest 6 + endif + + SetStage CWxBionicEyesGrainQuest 0 + SetStage CWxBionicEyesQuest 0 ; stop quest + + endif + +end diff --git a/src/CWxBionicEyesUpdateTriggers.gek b/src/CWxBionicEyesUpdateTriggers.gek new file mode 100644 index 0000000..9d06456 --- /dev/null +++ b/src/CWxBionicEyesUpdateTriggers.gek @@ -0,0 +1,21 @@ +scn CWxBionicEyesUpdateTriggers + +int iMode + +begin function { iMode } + + if player.HasPerk CWxImplantVisionModePerk + + SetOnKeyUpEventHandler CWxBionicEyesOnHotkey 1 CWxVisionModeHotkey + + ; Clear list of processed actors to reapply shaders + if CWxVisionModeLevel > 0 + ListClear CWxVisionModeAList + ListClear CWxVisionModeBList + endif + + else + SetOnKeyUpEventHandler CWxBionicEyesOnHotkey 0 CWxVisionModeHotkey + endif + +end diff --git a/src/CWxFnCallFormList.gek b/src/CWxFnCallFormList.gek new file mode 100644 index 0000000..936d625 --- /dev/null +++ b/src/CWxFnCallFormList.gek @@ -0,0 +1,24 @@ +scn CWxFnCallFormList + +ref rFormList +int iArg +int i +int iSize +ref rTemp + +begin function { rFormList, iArg } + + set i to 0 + set iSize to ListGetCount rFormList + + while i < iSize + set rTemp to ListGetNthForm rFormList i + if rTemp + if GetObjectType rTemp == 17 + call rTemp iArg + endif + endif + set i to i + 1 + loop + +end diff --git a/src/CWxFnStartSurgery.gek b/src/CWxFnStartSurgery.gek new file mode 100644 index 0000000..4a0a476 --- /dev/null +++ b/src/CWxFnStartSurgery.gek @@ -0,0 +1,25 @@ +scn CWxFnStartSurgery + +ref rSurgeonRef +int bRequireManual +ref rBase + +begin function { rSurgeonRef, bRequireManual } + + ; We call this only if dialog conditions are met, so it's implemented as a soft requirement here + + if bRequireManual + if ( rSurgeonRef.IsInList CWxTrainedSurgeonsList == 0 ) && ( player.GetItemCount CWxSurgeryManual > 0 ) + + set rBase to rSurgeonRef.GetBaseForm + AddFormToFormList CWxTrainedSurgeonsList rBase + player.removeItem CWxSurgeryManual 1 1 + ShowMessage CWxSurgeryUnlockedMsg + ScriptWait 20 + + endif + endif + + SetStage CWxImplantsPanel 1 + +end diff --git a/src/CWxFnSyncImplant.gek b/src/CWxFnSyncImplant.gek new file mode 100644 index 0000000..5eae75e --- /dev/null +++ b/src/CWxFnSyncImplant.gek @@ -0,0 +1,28 @@ +scn CWxFnSyncImplant + +ref rImplant +ref rPerk +int iRank +array_var aSlots + +begin function { rImplant, rPerk, iRank, aSlots } + + if 0 <= ar_find rImplant aSlots + + if player.GetPerkRank rPerk != iRank + DebugPrint "Adding perk %n, level %.0f" rPerk iRank + player.SetPerkRank rPerk iRank + endif + + elseif player.HasPerk rPerk + + if player.GetPerkRank rPerk == iRank + DebugPrint "Removing perk %n" rPerk + player.removePerk rPerk + endif + + endif + + let aSlots := ar_null + +end diff --git a/src/CWxFnUpgrade.gek b/src/CWxFnUpgrade.gek new file mode 100644 index 0000000..caf74e1 --- /dev/null +++ b/src/CWxFnUpgrade.gek @@ -0,0 +1,82 @@ +scn CWxFnUpgrade + +int iMode + +begin function { iMode } + + if CWxVersion < 1 + + print "Cyberware: initializing" + + set CWxVersion to 1 + + if player.hasPerk ImplantAgilityPerk + AddFormToFormList CWxPreInstallPerks ImplantAgilityPerk + player.RemovePerk ImplantAgilityPerk + player.dispel ImplantAgilityBoost + player.addItem CWxImplantReflexBooster 1 + endif + + if player.hasPerk ImplantCharismaPerk + AddFormToFormList CWxPreInstallPerks ImplantCharismaPerk + player.RemovePerk ImplantCharismaPerk + player.dispel ImplantCharismaBoost + player.addItem CWxImplantEmpathySynthesizer 1 + endif + + if player.hasPerk ImplantDTPerk + AddFormToFormList CWxPreInstallPerks ImplantDTPerk + player.RemovePerk ImplantDTPerk + player.dispel ImplantDTBoost + player.addItem CWxImplantSubDermalArmor 1 + endif + + if player.hasPerk ImplantEndurancePerk + AddFormToFormList CWxPreInstallPerks ImplantEndurancePerk + player.RemovePerk ImplantEndurancePerk + player.dispel ImplantEnduranceBoost + player.addItem CWxImplantNociceptionRegulator 1 + endif + + if player.hasPerk ImplantIntelligencePerk + AddFormToFormList CWxPreInstallPerks ImplantIntelligencePerk + player.RemovePerk ImplantIntelligencePerk + player.dispel ImplantIntelligenceBoost + player.addItem CWxImplantLogicCoProcessor 1 + endif + + if player.hasPerk ImplantLuckPerk + AddFormToFormList CWxPreInstallPerks ImplantLuckPerk + player.RemovePerk ImplantLuckPerk + player.dispel ImplantLuckBoost + player.addItem CWxImplantProbabilityCalculator 1 + endif + + if player.hasPerk ImplantPerceptionPerk + AddFormToFormList CWxPreInstallPerks ImplantPerceptionPerk + player.RemovePerk ImplantPerceptionPerk + player.dispel ImplantPerceptionBoost + player.addItem CWxImplantOpticsEnhancer 1 + endif + + if player.hasPerk ImplantRegenPerk + AddFormToFormList CWxPreInstallPerks ImplantRegenPerk + player.RemovePerk ImplantRegenPerk + player.dispel ImplantRegenBoost + player.addItem CWxImplantMonocyteBreeder 1 + endif + + if player.hasPerk ImplantStrengthPerk + AddFormToFormList CWxPreInstallPerks ImplantStrengthPerk + player.RemovePerk ImplantStrengthPerk + player.dispel ImplantStrengthBoost + player.addItem CWxImplantHypertrophyAccelerator 1 + endif + + if player.GetItemCount CWxImplantsAllList + SetObjectiveDisplayed CWxImplantSurgeonQuest 10 1 + endif + + endif + +end diff --git a/src/CWxImplantDataScript.gek b/src/CWxImplantDataScript.gek new file mode 100644 index 0000000..f90a805 --- /dev/null +++ b/src/CWxImplantDataScript.gek @@ -0,0 +1,25 @@ +scn CWxImplantDataScript + +; Implants storage + +ref headImplant1 +ref headImplant2 +ref headImplant3 +ref headImplant4 + +ref torsoImplant1 +ref torsoImplant2 +ref torsoImplant3 +ref torsoImplant4 + +ref rightArmImplant1 +ref rightArmImplant2 + +ref leftArmImplant1 +ref leftArmImplant2 + +ref rightLegImplant1 +ref rightLegImplant2 + +ref leftLegImplant1 +ref leftLegImplant2 diff --git a/src/CWxLimbRegenOnCrippledLimb.gek b/src/CWxLimbRegenOnCrippledLimb.gek new file mode 100644 index 0000000..af3dab2 --- /dev/null +++ b/src/CWxLimbRegenOnCrippledLimb.gek @@ -0,0 +1,47 @@ +scn CWxLimbRegenOnCrippledLimb + +; 0 Head +; 1 Torso +; 2 Left Hand +; 3 Right Hand +; 4 Left Leg +; 5 Right Leg +; 6 Brain +int iLimb + +int bStart + +begin function { iLimb } + + set bStart to 0 + + if iLimb == 2 + if player.HasPerk CWxImplantLeftArmRegenPerk + printd "Cyberware: Left arm crippled" + set bStart to 1 + endif + elseif iLimb == 3 + if player.HasPerk CWxImplantRightArmRegenPerk + printd "Cyberware: Right arm crippled" + set bStart to 1 + endif + elseif iLimb == 4 + if player.HasPerk CWxImplantLeftLegRegenPerk + printd "Cyberware: Left leg crippled" + set bStart to 1 + endif + elseif iLimb == 5 + if player.HasPerk CWxImplantRightLegRegenPerk + printd "Cyberware: Right leg crippled" + set bStart to 1 + endif + endif + + if bStart + if GetQuestRunning CWxLimbRegenQuest == 0 + printd "Cyberware: Starting limb regeneration quest" + StartQuest CWxLimbRegenQuest + endif + endif + +end diff --git a/src/CWxLimbRegenQuestScript.gek b/src/CWxLimbRegenQuestScript.gek new file mode 100644 index 0000000..7b7ca0d --- /dev/null +++ b/src/CWxLimbRegenQuestScript.gek @@ -0,0 +1,59 @@ +scn CWxLimbRegenQuestScript + +int iStop +int iNoPerk + +begin GameMode + + set iStop to 0 + set iNoPerk to 0 + + printd "Cyberware: Checking limbs condition" + + if player.HasPerk CWxImplantLeftArmRegenPerk + player.restoreAV LeftAttackCondition 1 + set iStop to iStop + (player.getAV LeftAttackCondition >= 100) + printd "Cyberware: Left arm condition " + $(player.getAV LeftAttackCondition) + else + set iStop to iStop + 1 + set iNoPerk to iNoPerk + 1 + endif + + if player.HasPerk CWxImplantLeftLegRegenPerk + player.restoreAV LeftMobilityCondition 1 + set iStop to iStop + (player.getAV LeftMobilityCondition >= 100) + printd "Cyberware: Left leg condition " + $(player.getAV LeftMobilityCondition) + else + set iStop to iStop + 1 + set iNoPerk to iNoPerk + 1 + endif + + if player.HasPerk CWxImplantRightArmRegenPerk + player.restoreAV RightAttackCondition 1 + set iStop to iStop + (player.getAV RightAttackCondition >= 100) + printd "Cyberware: Right arm condition " + $(player.getAV RightAttackCondition) + else + set iStop to iStop + 1 + set iNoPerk to iNoPerk + 1 + endif + + if player.HasPerk CWxImplantRightLegRegenPerk + player.restoreAV RightMobilityCondition 1 + set iStop to iStop + (player.getAV RightMobilityCondition >= 100) + printd "Cyberware: Right leg condition " + $(player.getAV RightMobilityCondition) + else + set iStop to iStop + 1 + set iNoPerk to iNoPerk + 1 + endif + + if iStop == 4 + printd "Cyberware: Limbs regenerated, stopping quest" + StopQuest CWxLimbRegenQuest + endif + + if iNoPerk == 4 + call CWxLimbRegenUpdateTriggers 0 + endif + +end + diff --git a/src/CWxLimbRegenUpdatePerks.gek b/src/CWxLimbRegenUpdatePerks.gek new file mode 100644 index 0000000..0052c1d --- /dev/null +++ b/src/CWxLimbRegenUpdatePerks.gek @@ -0,0 +1,24 @@ +scn CWxLimbRegenUpdatePerks + +int iMode +array_var aImplants + +begin function { iMode } + + let aImplants := ar_list CWxImplants.rightArmImplant1, CWxImplants.rightArmImplant2 + call CWxFnSyncImplant CWxImplantNanobionicWeave CWxImplantRightArmRegenPerk 1 aImplants + + let aImplants := ar_list CWxImplants.leftArmImplant1, CWxImplants.leftArmImplant2 + call CWxFnSyncImplant CWxImplantNanobionicWeave CWxImplantLeftArmRegenPerk 1 aImplants + + let aImplants := ar_list CWxImplants.rightLegImplant1, CWxImplants.rightLegImplant2 + call CWxFnSyncImplant CWxImplantNanobionicWeave CWxImplantRightLegRegenPerk 1 aImplants + + let aImplants := ar_list CWxImplants.leftLegImplant1, CWxImplants.leftLegImplant2 + call CWxFnSyncImplant CWxImplantNanobionicWeave CWxImplantLeftLegRegenPerk 1 aImplants + + let aImplants := ar_null + + call CWxLimbRegenUpdateTriggers 0 + +end diff --git a/src/CWxLimbRegenUpdateTriggers.gek b/src/CWxLimbRegenUpdateTriggers.gek new file mode 100644 index 0000000..04f296e --- /dev/null +++ b/src/CWxLimbRegenUpdateTriggers.gek @@ -0,0 +1,14 @@ +scn CWxLimbRegenUpdateTriggers + +int iMode +int bEnabled + +begin function { iMode } + + printd "Cyberware: Updating limb regen triggers" + + set bEnabled to (player.hasPerk CWxImplantRightArmRegenPerk || player.hasPerk CWxImplantLeftArmRegenPerk || player.hasPerk CWxImplantRightLegRegenPerk || player.hasPerk CWxImplantLeftLegRegenPerk) + + SetOnCrippledLimbEventHandler CWxLimbRegenOnCrippledLimb bEnabled playerRef + +end diff --git a/src/CWxMCMQuestScript.gek b/src/CWxMCMQuestScript.gek new file mode 100644 index 0000000..2dfea47 --- /dev/null +++ b/src/CWxMCMQuestScript.gek @@ -0,0 +1,201 @@ +scn CWxMCMQuestScript + +int iOption +int iValue +int iMouseoverOption +int iFont +ref rTemp + +begin GameMode + StopQuest CWxMCMQuest ; No zombies allowed! +end + +begin MenuMode 4 + + StopQuest CWxMCMQuest + + if GetGameRestarted == 0 + return + endif + + ;SetDebugMode 1 + + if isModLoaded "The Mod Configuration Menu.esp" + + set iOption to GetModIndex "The Mod Configuration Menu.esp" + set rTemp to BuildRef iOption 2790 + ListAddForm rTemp CWxMCMItem + set rTemp to 0 + + ; Start MCM quest on pause + SetOnMenuOpenEventHandler CWxOnPause 1 1013 + + endif + + SetEventHandler "NewGame" CWxOnNewGame + SetEventHandler "PostLoadGame" CWxOnGameLoad + + SetOnMenuClickEventHandler CWxOnPressInventoryItem 1 "InventoryMenu/GLOW_BRANCH/IM_MainRect/IM_InventoryList/IM_InventoryListTemplateRect" + + ; Add implanted weapons to holdout lists + ListAddForm NVHoldoutWeapons CWxWeapEMP + ListAddForm NVHoldoutWeapons CWxWeapHFP + ListAddForm NVImprovedHoldoutWeapons CWxWeapEMP + ListAddForm NVImprovedHoldoutWeapons CWxWeapHFP + + ; Users often make bashed patches, breaking Pinkerton's barter flags + if IsModLoaded "Fallout3.esm" + set rTemp to StringToRef "Fallout3.esm:156CA" ; Pinkerton + SetServiceFlag rTemp 32 1 ; chems + SetServiceFlag rTemp 64 1 ; stimpacks + SetServiceFlag rTemp 1024 1 ; misc items + BaseAddItem CapsChange100 1 rTemp + endif + +end + +begin MenuMode 1013 + + if GetUIFloat "StartMenu/MCM/_ActiveMenu" != GetItemValue CWxMCMItem + return + endif + + set iOption to GetUIFloat "StartMenu/MCM/_ActiveOption" + set iValue to GetUIFloat "StartMenu/MCM/_Value" + + ;-------------------------------------------------- + ;1 - RESET + if GetUIFloat "StartMenu/MCM/_Reset" + + SetUIFloat "StartMenu/MCM/_Reset" 0 + + ; header font + if GetUIFloat "HUDMainMenu\_DUIF3" > 0 ; DarnifiedUI + set iFont to 3 + else + set iFont to 1 + endif + + SetUIFloat "StartMenu/MCM/*:1/_columns" 2 + + + ; Bionic Eyes + SetUIFloat "StartMenu/MCM/*:1/*:1/_enable" 1 + SetUIString "StartMenu/MCM/*:1/*:1/_title" "Bionic Eyes" + SetUIFloat "StartMenu/MCM/*:1/*:1/_altFont" iFont + SetUIFloat "StartMenu/MCM/*:1/*:1/_type" 7 + SetUIFloat "StartMenu/MCM/*:1/*:1/_highlight" 0 + + ; Hotkey + SetUIFloat "StartMenu/MCM/*:1/*:3/_enable" 1 + SetUIFloat "StartMenu/MCM/*:1/*:3/_indent" 1 + SetUIString "StartMenu/MCM/*:1/*:3/_title" "Vision Mode Hotkey" + SetUIFloat "StartMenu/MCM/*:1/*:3/_RGB" 191137050 + SetUIFloat "StartMenu/MCM/*:1/*:3/_type" 3 + SetUIStringEx "StartMenu/MCM/*:1/*:3/value/*:1/string" "%k" CWxVisionModeHotkey + + ; Grain + SetUIFloat "StartMenu/MCM/*:1/*:4/_enable" 1 + SetUIFloat "StartMenu/MCM/*:1/*:4/_indent" 1 + SetUIString "StartMenu/MCM/*:1/*:4/_title" "Dynamic Grain" + SetUIFloat "StartMenu/MCM/*:1/*:4/_RGB" 191137050 + SetUIFloat "StartMenu/MCM/*:1/*:4/_type" 5 + SetUIFloat "StartMenu/MCM/*:1/*:4/_value" CWxVisionModeEnableGrain + + ; Extra Bright + SetUIFloat "StartMenu/MCM/*:1/*:6/_enable" 1 + SetUIFloat "StartMenu/MCM/*:1/*:6/_indent" 1 + SetUIString "StartMenu/MCM/*:1/*:6/_title" "Brighter Enhanced Vision" + SetUIFloat "StartMenu/MCM/*:1/*:6/_RGB" 191137050 + SetUIFloat "StartMenu/MCM/*:1/*:6/_type" 5 + SetUIFloat "StartMenu/MCM/*:1/*:6/_value" CWxVisionModeExtraBright + + + ; Stealth Nano-Bots + SetUIFloat "StartMenu/MCM/*:1/*:9/_enable" 1 + SetUIString "StartMenu/MCM/*:1/*:9/_title" "Stealth Nano-Bots" + SetUIFloat "StartMenu/MCM/*:1/*:9/_altFont" iFont + SetUIFloat "StartMenu/MCM/*:1/*:9/_type" 7 + SetUIFloat "StartMenu/MCM/*:1/*:9/_highlight" 0 + + ; Hotkey + SetUIFloat "StartMenu/MCM/*:1/*:11/_enable" 1 + SetUIFloat "StartMenu/MCM/*:1/*:11/_indent" 1 + SetUIString "StartMenu/MCM/*:1/*:11/_title" "Stealth Field Hotkey" + SetUIFloat "StartMenu/MCM/*:1/*:11/_RGB" 191137050 + SetUIFloat "StartMenu/MCM/*:1/*:11/_type" 3 + SetUIStringEx "StartMenu/MCM/*:1/*:11/value/*:1/string" "%k" CWxStealthFieldHotkey + + + ;-------------------------------------------------- + ; DEFAULT + elseif GetUIFloat "StartMenu/MCM/_Default" + SetUIFloat "StartMenu/MCM/_Default" 0 + SetUIFloat "StartMenu/MCM/_Reset" 1 + + set CWxVisionModeHotkey to 50 + set CWxVisionModeEnableGrain to 1 + set CWxStealthFieldHotkey to 45 + set CWxVisionModeExtraBright to 0 + + ;-------------------------------------------------- + ; NEW VALUE + elseif GetUIFloat "StartMenu/MCM/_NewValue" + + SetUIFloat "StartMenu/MCM/_NewValue" 0 + SetUIFloat "StartMenu/MCM/_Reset" 1 + + ; Bionic Eyes + + if iOption == 3 + set CWxVisionModeHotkey to iValue + call CWxBionicEyesUpdateTriggers 0 + + elseif iOption == 4 + set CWxVisionModeEnableGrain to iValue + + elseif iOption == 6 + set CWxVisionModeExtraBright to iValue + + ; Stealth Nano-Bots + + elseif iOption == 11 + set CWxStealthFieldHotkey to iValue + call CWxStealthUpdateTriggers 0 + + endif + + endif + + ;-------------------------------------------------- + ; MOUSE-OVER + if iMouseoverOption != GetUIFloat "StartMenu/MCM/*:1/_optionID" + set iMouseoverOption to GetUIFloat "StartMenu/MCM/*:1/_optionID" + + if iMouseoverOption == 0 + SetUIFloat "StartMenu/MCM/MCM_Info/visible" 0 + else + + SetUIFloat "StartMenu/MCM/MCM_Info/visible" 1 + + ; Bionic Eyes + if iMouseoverOption == 3 + SetUIString "StartMenu/MCM/*:9/string" "Default: M" + elseif iMouseoverOption == 4 + SetUIString "StartMenu/MCM/*:9/string" "Use dynamic grain, when a vision mode is active." + elseif iMouseoverOption == 6 + SetUIString "StartMenu/MCM/*:9/string" "Brighter Night Vision etc. for use with mods that add Darker Nights." + + ; Stealth Nano-Bots + elseif iMouseoverOption == 11 + SetUIString "StartMenu/MCM/*:9/string" "Default: X" + + else + SetUIFloat "StartMenu/MCM/MCM_Info/visible" 0 + endif + + endif + + endif + +end diff --git a/src/CWxOnAddImplant.gek b/src/CWxOnAddImplant.gek new file mode 100644 index 0000000..85bcfa4 --- /dev/null +++ b/src/CWxOnAddImplant.gek @@ -0,0 +1,23 @@ +scn CWxOnAddImplant + +ref rAddedItem +ref rAddedTo + +begin function { rAddedItem, rAddedTo } + + if GetHasNote CWxImplantsNote == 0 + + player.addNote CWxImplantsNote + + SetObjectiveDisplayed CWxImplantSurgeonQuest 10 1 + SetObjectiveDisplayed CWxImplantSurgeonQuest 20 1 + + if CWxSurgeryManualPickedUp + SetObjectiveCompleted CWxImplantSurgeonQuest 20 1 + endif + + endif + + RemoveEventHandler "OnAdd" CWxOnAddImplant + +end diff --git a/src/CWxOnAddSurgeryManual.gek b/src/CWxOnAddSurgeryManual.gek new file mode 100644 index 0000000..873e186 --- /dev/null +++ b/src/CWxOnAddSurgeryManual.gek @@ -0,0 +1,27 @@ +scn CWxOnAddSurgeryManual + +ref rAddedItem +ref rAddedTo + +begin function { rAddedItem, rAddedTo } + + printd "Surgery manual picked up" + + if CWxSurgeryManualPickedUp == 0 + + printd "Starting surgery manual quest" + + set CWxSurgeryManualPickedUp to 1 + + ShowMessage CWxSurgeryManualMsg + + SetObjectiveCompleted CWxImplantSurgeonQuest 20 1 + + endif + + ; Hijacking unused variable to avoid circular dependency + set rAddedTo to GetCurrentScript + + RemoveEventHandler "OnAdd" rAddedTo + +end diff --git a/src/CWxOnBarter.gek b/src/CWxOnBarter.gek new file mode 100644 index 0000000..ba73974 --- /dev/null +++ b/src/CWxOnBarter.gek @@ -0,0 +1,16 @@ +scn CWxOnBarter + +int iMenuID + +begin function { iMenuID } + + if GetHasNote CWxImplantsNote + SetOnMenuCloseEventHandler CWxOnBarter 0 1053 + return + endif + + if player.GetItemCount CWxImplantsAllList > 0 + call CWxOnAddImplant playerRef playerRef + endif + +end diff --git a/src/CWxOnChargePulse.gek b/src/CWxOnChargePulse.gek new file mode 100644 index 0000000..8c36e9b --- /dev/null +++ b/src/CWxOnChargePulse.gek @@ -0,0 +1,22 @@ +scn CWxOnChargePulse + +int iAnimAction +ref rScript + +begin function { iAnimAction } + + if playerRef.GetEquipped CWxWeapEMP == 0 && playerRef.GetEquipped CWxWeapHFP == 0 + printd "Autoremoved OnCharge handler" + set rScript to GetCurrentScript + SetOnAnimActionEventHandler rScript 0 playerRef 5 + return + endif + + printd "Triggered OnCharge event" + + player.pms CWxEMPShader 1 + player.playSound3D WPNPulseGunFire3DCharge + ScriptWait 12 + player.playSound3D WPNPulseGunFire3D + +end diff --git a/src/CWxOnEquipPulseGun.gek b/src/CWxOnEquipPulseGun.gek new file mode 100644 index 0000000..8357915 --- /dev/null +++ b/src/CWxOnEquipPulseGun.gek @@ -0,0 +1,11 @@ +scn CWxOnEquipPulseGun + +ref rEquipper +ref rEquipment + +begin function { rEquipper, rEquipment } + + printd "Cyberware: Adding OnCharge handler" + SetOnAnimActionEventHandler CWxOnChargePulse 1 playerRef 5 + +end diff --git a/src/CWxOnGameLoad.gek b/src/CWxOnGameLoad.gek new file mode 100644 index 0000000..8d290f3 --- /dev/null +++ b/src/CWxOnGameLoad.gek @@ -0,0 +1,25 @@ +scn CWxOnGameLoad + +int iStatus + +begin function { iStatus } + + call CWxFnCallFormList CWxOnGameLoadList 0 + + if CWxSurgeryManualPickedUp + RemoveEventHandler "OnAdd" CWxOnAddSurgeryManual + else + printd "Cyberware: Adding surgery manual OnAdd handler" + SetEventHandler "OnAdd" CWxOnAddSurgeryManual "first"::CWxSurgeryManual "second"::playerRef + endif + + if GetHasNote CWxImplantsNote + RemoveEventHandler "OnAdd" CWxOnAddImplant + SetOnMenuCloseEventHandler CWxOnBarter 0 1053 + else + printd "Cyberware: Adding implant OnAdd handler" + SetEventHandler "OnAdd" CWxOnAddImplant "first"::CWxImplantsAllList "second"::playerRef + SetOnMenuCloseEventHandler CWxOnBarter 1 1053 + endif + +end diff --git a/src/CWxOnNewGame.gek b/src/CWxOnNewGame.gek new file mode 100644 index 0000000..a75a536 --- /dev/null +++ b/src/CWxOnNewGame.gek @@ -0,0 +1,5 @@ +scn CWxOnNewGame + +begin function {} + call CWxOnGameLoad 1 +end diff --git a/src/CWxOnPause.gek b/src/CWxOnPause.gek new file mode 100644 index 0000000..0fd389a --- /dev/null +++ b/src/CWxOnPause.gek @@ -0,0 +1,11 @@ +scn CWxOnPause + +int iMenuMode + +begin function { iMenuMode } + + SetValueAlt CWxMCMItem 17029 + + StartQuest CWxMCMQuest + +end diff --git a/src/CWxOnPressInventoryItem.gek b/src/CWxOnPressInventoryItem.gek new file mode 100644 index 0000000..20e716b --- /dev/null +++ b/src/CWxOnPressInventoryItem.gek @@ -0,0 +1,26 @@ +scn CWxOnPressInventoryItem + +int iMenuID +int iTileID +string_var sTileName +ref rSelectedItem + +begin function { iMenuID, iTileID, sTileName } + + ; String arguments are destructed correctly automatically, but let's destruct it just in case + sv_destruct sTileName + + set rSelectedItem to GetSelectedItemRef + + if rSelectedItem + + set rSelectedItem to rSelectedItem.GetBaseObject + + if ListGetFormIndex CWxImplantsAllList rSelectedItem > -1 + call CWxPanelSetMessageData CWxSurgeryDummyMsg rSelectedItem + ShowMessage CWxSurgeryDummyMsg + endif + + endif + +end diff --git a/src/CWxOnUnequipPulseGun.gek b/src/CWxOnUnequipPulseGun.gek new file mode 100644 index 0000000..8dea999 --- /dev/null +++ b/src/CWxOnUnequipPulseGun.gek @@ -0,0 +1,11 @@ +scn CWxOnUnequipPulseGun + +ref rEquipper +ref rEquipment + +begin function { rEquipper, rEquipment } + + printd "Cyberware: Removing OnCharge handler" + SetOnAnimActionEventHandler CWxOnChargePulse 0 playerRef 5 + +end diff --git a/src/CWxPanelGetImplantInfo.gek b/src/CWxPanelGetImplantInfo.gek new file mode 100644 index 0000000..05b8f9b --- /dev/null +++ b/src/CWxPanelGetImplantInfo.gek @@ -0,0 +1,24 @@ +scn CWxPanelGetImplantInfo + +ref rImplant +ref rTemp +int i + +begin function { rImplant } + + DebugPrint "Cyberware: Getting info for %n" rImplant + set i to ListGetFormIndex CWxImplantsAllList rImplant + + if i > -1 + set rTemp to ListGetNthForm CWxImplantsDescList i + if rTemp + DebugPrint "Cyberware: Found info %n" rTemp + set rImplant to rTemp + else + DebugPrint "Cyberware: Unable to find info for %n" rImplant + endif + endif + + SetFunctionValue rImplant + +end diff --git a/src/CWxPanelIsNotUnique.gek b/src/CWxPanelIsNotUnique.gek new file mode 100644 index 0000000..d910a0b --- /dev/null +++ b/src/CWxPanelIsNotUnique.gek @@ -0,0 +1,148 @@ +scn CWxPanelIsNotUnique + +ref altSlot1 +ref altSlot2 +ref altSlot3 + +; 0 - not unique +; 1 - unique, single item +; 2 - unique, list +short uniqueType +ref uniqueList + +int i +int size +ref element +int selectedRegion +ref selectedImplant +int currentSlot + +begin function { selectedRegion, selectedImplant, currentSlot } + + ; Determine if implant is unique + set uniqueType to 0 + set i to 0 + set size to (listGetCount CWxImplantsUniqueList) + + label 56 + if i < size + set element to listGetNthForm CWxImplantsUniqueList i + + ; List? + if getType element == 85 + if listGetFormIndex element selectedImplant != -1 + set uniqueType to 2 + set uniqueList to element + endif + else + if selectedImplant == element + set uniqueType to 1 + endif + endif + + if uniqueType == 0 + set i to i + 1 + goto 56 + endif + endif + + ; Check for unique head & torso implants + if uniqueType > 0 + if selectedRegion == 1 + if currentSlot == 1 + set altSlot1 to CWxImplantsPanel.newHeadImplant2 + set altSlot2 to CWxImplantsPanel.newHeadImplant3 + set altSlot3 to CWxImplantsPanel.newHeadImplant4 + elseif currentSlot == 2 + set altSlot1 to CWxImplantsPanel.newHeadImplant1 + set altSlot2 to CWxImplantsPanel.newHeadImplant3 + set altSlot3 to CWxImplantsPanel.newHeadImplant4 + elseif currentSlot == 3 + set altSlot1 to CWxImplantsPanel.newHeadImplant1 + set altSlot2 to CWxImplantsPanel.newHeadImplant2 + set altSlot3 to CWxImplantsPanel.newHeadImplant4 + else + set altSlot1 to CWxImplantsPanel.newHeadImplant1 + set altSlot2 to CWxImplantsPanel.newHeadImplant2 + set altSlot3 to CWxImplantsPanel.newHeadImplant3 + endif + + elseif selectedRegion == 2 + if currentSlot == 1 + set altSlot1 to CWxImplantsPanel.newTorsoImplant2 + set altSlot2 to CWxImplantsPanel.newTorsoImplant3 + set altSlot3 to CWxImplantsPanel.newTorsoImplant4 + elseif currentSlot == 2 + set altSlot1 to CWxImplantsPanel.newTorsoImplant1 + set altSlot2 to CWxImplantsPanel.newTorsoImplant3 + set altSlot3 to CWxImplantsPanel.newTorsoImplant4 + elseif currentSlot == 3 + set altSlot1 to CWxImplantsPanel.newTorsoImplant1 + set altSlot2 to CWxImplantsPanel.newTorsoImplant2 + set altSlot3 to CWxImplantsPanel.newTorsoImplant4 + else + set altSlot1 to CWxImplantsPanel.newTorsoImplant1 + set altSlot2 to CWxImplantsPanel.newTorsoImplant2 + set altSlot3 to CWxImplantsPanel.newTorsoImplant3 + endif + + elseif selectedRegion == 3 + if currentSlot == 1 + set altSlot1 to CWxImplantsPanel.newRightArmImplant2 + set altSlot2 to 0 + set altSlot3 to 0 + else + set altSlot1 to CWxImplantsPanel.newRightArmImplant1 + set altSlot2 to 0 + set altSlot3 to 0 + endif + + elseif selectedRegion == 4 + if currentSlot == 2 + set altSlot1 to CWxImplantsPanel.newLeftArmImplant2 + set altSlot2 to 0 + set altSlot3 to 0 + else + set altSlot1 to CWxImplantsPanel.newLeftArmImplant1 + set altSlot2 to 0 + set altSlot3 to 0 + endif + + elseif selectedRegion == 5 + if currentSlot == 1 + set altSlot1 to CWxImplantsPanel.newRightLegImplant2 + set altSlot2 to 0 + set altSlot3 to 0 + else + set altSlot1 to CWxImplantsPanel.newRightLegImplant1 + set altSlot2 to 0 + set altSlot3 to 0 + endif + + elseif selectedRegion == 6 + if currentSlot == 2 + set altSlot1 to CWxImplantsPanel.newLeftLegImplant2 + set altSlot2 to 0 + set altSlot3 to 0 + else + set altSlot1 to CWxImplantsPanel.newLeftLegImplant1 + set altSlot2 to 0 + set altSlot3 to 0 + endif + endif + + ; Other slots already contain this implant type? + if uniqueType == 1 + if altSlot1 == selectedImplant || altSlot2 == selectedImplant || altSlot3 == selectedImplant + SetFunctionValue 1 + return + endif + else + if listGetFormIndex uniqueList altSlot1 != -1 || listGetFormIndex uniqueList altSlot2 != -1 || listGetFormIndex uniqueList altSlot3 != -1 + SetFunctionValue 1 + return + endif + endif + endif + +end diff --git a/src/CWxPanelPostSurgery.gek b/src/CWxPanelPostSurgery.gek new file mode 100644 index 0000000..1b58045 --- /dev/null +++ b/src/CWxPanelPostSurgery.gek @@ -0,0 +1,46 @@ +scn CWxPanelPostSurgery + +begin function {} + + printd "Cyberware: Calling post-surgery script" + + if GetPlayerControlsDisabled + EnablePlayerControls + endif + + if CWxHelpScannerShown == 0 + if player.HasPerk CWxImplantScannerPerk + printd "Cyberware: Showing Scanner tutorial" + set CWxHelpScannerShown to 1 + ShowTutorialMenu CWxScannerHelpMsg + return + endif + endif + + if CWxHelpBionicEyesShown == 0 + if player.HasPerk CWxImplantVisionModePerk + printd "Cyberware: Showing Bionic Eyes tutorial" + set CWxHelpBionicEyesShown to 1 + ShowTutorialMenu CWxBionicEyesHelpMsg + return + endif + endif + + if CWxHelpStealthShown == 0 + if player.HasPerk CWxImplantStealthPerk + printd "Cyberware: Showing Stealth tutorial" + set CWxHelpStealthShown to 1 + ShowTutorialMenu CWxStealthFieldHelpMsg + return + endif + endif + + SetGameMainLoopCallback CWxPanelPostSurgery 0 + + if GetQuestCompleted CWxImplantSurgeonQuest == 0 + CompleteAllObjectives CWxImplantSurgeonQuest + CompleteQuest CWxImplantSurgeonQuest + StopQuest CWxImplantSurgeonQuest + endif + +end diff --git a/src/CWxPanelQuestScript.gek b/src/CWxPanelQuestScript.gek new file mode 100644 index 0000000..b851d75 --- /dev/null +++ b/src/CWxPanelQuestScript.gek @@ -0,0 +1,619 @@ +scn CWxPanelQuestScript + +; 0 - disabled +; 1 - launched, wait for menu mode +; 2 - arrived in menu mode +short initPhase + +; NOTE: Left/right w.r.t. to the cyberboy perspective, so left=right side, right = left side + +; 0 - none +; 1 - head +; 2 - torso +; 3 - right arm +; 4 - left arm +; 5 - right leg +; 6 - left leg +short selectedRegion +short lastSelectedRegion +short refreshRegion + +; 0 - none +; 1 - right 1 +; 2 - left 1 +; 3 - right 2 +; 4 - left 2 +short selectedSlot ; instantly reset, thats why theres currentSlot to save the value +short currentSlot + +ref rCurrentMessage + +; Empty ref variable for using in UDF calls +ref rEmptyRef + +short changedSlots + +short showRightSlot1 +short showRightSlot2 +short showLeftSlot1 +short showLeftSlot2 + +ref newHeadImplant1 +ref newHeadImplant2 +ref newHeadImplant3 +ref newHeadImplant4 + +ref newTorsoImplant1 +ref newTorsoImplant2 +ref newTorsoImplant3 +ref newTorsoImplant4 + +ref newRightArmImplant1 +ref newRightArmImplant2 + +ref newLeftArmImplant1 +ref newLeftArmImplant2 + +ref newRightLegImplant1 +ref newRightLegImplant2 + +ref newLeftLegImplant1 +ref newLeftLegImplant2 + +ref rightSlotImplant1 +ref rightSlotImplant2 +ref leftSlotImplant1 +ref leftSlotImplant2 + +short iButton + +ref selectedImplant + +float price + +short i +short size +ref regionList +ref element + +float fTemp +int iPage +int pageCount + +short menuSize +short t1 +short t2 + +string_var sTemp +int bPerformSurgery +ref rTemp + +int bMenuImplantsPage +int bShowImplantsBox + +;----------------------------------------------------------------------------------------------------------------------------------------------------------------------- +begin GameMode + + if initPhase == 0 + + set initPhase to 1 + + imod CWxControlPanelISFX + + ShowTutorialMenu CWxSurgeryDummyMsg + + ; Hide Tutorial Menu and show custom one instead - Try #1 + SetUIFloat "TutorialMenu\_PNxImplantsPanelEnabled" 1 + SetUIFloat "TutorialMenu\NOGLOW_BRANCH\visible" 0 + + return + + elseif initPhase == 1 + return + endif + + ; Back after close, menu was exited + + printd "Cyberware: Panel exited" + + rimod CWxControlPanelISFX + + if bPerformSurgery + + set bPerformSurgery to 0 + + DisablePlayerControls 1 1 1 1 1 1 + + ; Update perks + call CWxFnCallFormList CWxImplantsWorkerList 0 + + printd "Starting surgery sequence" + + ; We use CWxImplants for persistence, so we can safely reset this quest + ResetQuest CWxImplantsPanel + printd "Cyberware: Panel quest has been reset" + + StopQuest CWxImplantsPanel + printd "Cyberware: Panel quest stopped" + + playerRef.PlaySound3D NPCHumanDoctorHealTap + playerRef.PlaySound3D NPCRobotMrHandyAttackSaw + + imod FadeToBlack4sISFX + + SetGameMainLoopCallback CWxPanelPostSurgery 1 320 1 + + else + + printd "No accept - undo any inventory changes" + + call CWxPanelSwapImplants CWxImplants.headImplant1 newHeadImplant1 + call CWxPanelSwapImplants CWxImplants.headImplant2 newHeadImplant2 + call CWxPanelSwapImplants CWxImplants.headImplant3 newHeadImplant3 + call CWxPanelSwapImplants CWxImplants.headImplant4 newHeadImplant4 + call CWxPanelSwapImplants CWxImplants.torsoImplant1 newTorsoImplant1 + call CWxPanelSwapImplants CWxImplants.torsoImplant2 newTorsoImplant2 + call CWxPanelSwapImplants CWxImplants.torsoImplant3 newTorsoImplant3 + call CWxPanelSwapImplants CWxImplants.torsoImplant4 newTorsoImplant4 + call CWxPanelSwapImplants CWxImplants.rightArmImplant1 newRightArmImplant1 + call CWxPanelSwapImplants CWxImplants.rightArmImplant2 newRightArmImplant2 + call CWxPanelSwapImplants CWxImplants.leftArmImplant1 newLeftArmImplant1 + call CWxPanelSwapImplants CWxImplants.leftArmImplant2 newLeftArmImplant2 + call CWxPanelSwapImplants CWxImplants.rightLegImplant1 newRightLegImplant1 + call CWxPanelSwapImplants CWxImplants.rightLegImplant2 newRightLegImplant2 + call CWxPanelSwapImplants CWxImplants.leftLegImplant1 newLeftLegImplant1 + call CWxPanelSwapImplants CWxImplants.leftLegImplant2 newLeftLegImplant2 + + ResetQuest CWxImplantsPanel + StopQuest CWxImplantsPanel + + printd "Cyberware: Panel quest has been reset" + + endif + +End + +begin MenuMode 1001 + if GetUIFloat "TutorialMenu\_PNxCyberboyMenuActive" != 1 + SetUIFloat "TutorialMenu\_PNxCyberboyMenuActive" 1 + endif +end + +Begin MenuMode 1059 + + if MenuMode 1001 + return + endif + + if initPhase < 2 + + set initPhase to 2 + + printd "Panel init" + + ; Check if the Project Nevada panel has been injected by UIO + if GetUIFloat "TutorialMenu\_PNxImplants" > 0 + ResetQuest CWxImplantsPanel + StopQuest CWxImplantsPanel + rimod CWxControlPanelISFX + showMessage CWxErrorPNDetectedMsg + return + endif + + ; Check if the implants panel is even there + if GetUIFloat "TutorialMenu\_CWxImplants" < 1 + ResetQuest CWxImplantsPanel + StopQuest CWxImplantsPanel + rimod CWxControlPanelISFX + showMessage CWxErrorNoPanelMsg + return + endif + + set refreshRegion to 1 + + set newHeadImplant1 to CWxImplants.headImplant1 + set newHeadImplant2 to CWxImplants.headImplant2 + set newHeadImplant3 to CWxImplants.headImplant3 + set newHeadImplant4 to CWxImplants.headImplant4 + set newTorsoImplant1 to CWxImplants.torsoImplant1 + set newTorsoImplant2 to CWxImplants.torsoImplant2 + set newTorsoImplant3 to CWxImplants.torsoImplant3 + set newTorsoImplant4 to CWxImplants.torsoImplant4 + set newRightArmImplant1 to CWxImplants.rightArmImplant1 + set newRightArmImplant2 to CWxImplants.rightArmImplant2 + set newLeftArmImplant1 to CWxImplants.leftArmImplant1 + set newLeftArmImplant2 to CWxImplants.leftArmImplant2 + set newRightLegImplant1 to CWxImplants.rightLegImplant1 + set newRightLegImplant2 to CWxImplants.rightLegImplant2 + set newLeftLegImplant1 to CWxImplants.leftLegImplant1 + set newLeftLegImplant2 to CWxImplants.leftLegImplant2 + + ; Hide Tutorial Menu and show custom one instead - Try #2 + setUIFloat "TutorialMenu\_PNxImplantsPanelEnabled" 1 + setUIFloat "TutorialMenu\NOGLOW_BRANCH\visible" 0 + + setUIString "TutorialMenu\_PNxImplantsPanelCaps" "0" + setUIString "TutorialMenu\_PNxImplantsPanelPrice" "0" + + call CWxPanelUpdatePrice + + set selectedRegion to 0 + + if ListGetCount CWxImplantsAllList != ListGetCount CWxImplantsDescList + print "Cyberware: Number of elements in CWxImplantsAllList and CWxImplantsDescList is not equal!" + endif + + return + + + elseif rCurrentMessage == CWxSurgeryConfirmMsg + + + set iButton to GetButtonPressed + + if iButton == -1 + return + endif + + set rCurrentMessage to 0 + + if iButton == 0 + printd "Accept pressed Yes" + player.removeItem Caps001 price 1 + + ; Commit implant changes + set CWxImplants.headImplant1 to newHeadImplant1 + set CWxImplants.headImplant2 to newHeadImplant2 + set CWxImplants.headImplant3 to newHeadImplant3 + set CWxImplants.headImplant4 to newHeadImplant4 + set CWxImplants.torsoImplant1 to newTorsoImplant1 + set CWxImplants.torsoImplant2 to newTorsoImplant2 + set CWxImplants.torsoImplant3 to newTorsoImplant3 + set CWxImplants.torsoImplant4 to newTorsoImplant4 + set CWxImplants.rightArmImplant1 to newRightArmImplant1 + set CWxImplants.rightArmImplant2 to newRightArmImplant2 + set CWxImplants.leftArmImplant1 to newLeftArmImplant1 + set CWxImplants.leftArmImplant2 to newLeftArmImplant2 + set CWxImplants.rightLegImplant1 to newRightLegImplant1 + set CWxImplants.rightLegImplant2 to newRightLegImplant2 + set CWxImplants.leftLegImplant1 to newLeftLegImplant1 + set CWxImplants.leftLegImplant2 to newLeftLegImplant2 + + set bPerformSurgery to 1 + + set t1 to GameDaysPassed + if GameHour + changedSlots < 24 + set GameHour to GameHour + changedSlots + set GameDaysPassed to (t1 + (GameHour / 24)) + else + set t2 to ((GameHour + changedSlots) / 24) + set GameHour to GameHour + changedSlots + set GameDaysPassed to (t1 + t2 + ((GameHour % 24) / 24)) + endif + + ; Replaced unsafe con_closeAllMenus with emulated click on the close button + ClickMenuButton "TutorialMenu\PNxImplantsPanel\PNxImplantsPanelCloseButton" 1 + + return + endif + + ; No + printd "Accept pressed No" + return + + + elseif (GetUIFloat "TutorialMenu\_PNxImplantsPanelAcceptSelected") || (isKeyPressed 30 && GetUIFloat "TutorialMenu\_PNxImplantsPanelAcceptEnabled" && menuMode 1059) + + + printd "Accept confirmation" + set rCurrentMessage to CWxSurgeryConfirmMsg + ShowMessage CWxSurgeryConfirmMsg + return + + + elseif refreshRegion == 1 + + + printd "Refreshing regions" + + set refreshRegion to 0 + + set showRightSlot1 to (selectedRegion == 1 || selectedRegion == 2 || selectedRegion == 3 || selectedRegion == 5) + set showLeftSlot1 to (selectedRegion == 1 || selectedRegion == 2 || selectedRegion == 4 || selectedRegion == 6) + + set showRightSlot2 to ((selectedRegion == 1 && player.hasPerk CWxExtraHeadSlotsPerk) || (selectedRegion == 2 && player.hasPerk CWxExtraTorsoSlotsPerk)) + set showLeftSlot2 to showRightSlot2 + + set showRightSlot2 to showRightSlot2 || ((selectedRegion == 3 && player.hasPerk CWxExtraArmSlotsPerk) || (selectedRegion == 5 && player.hasPerk CWxExtraLegSlotsPerk)) + set showLeftSlot2 to showLeftSlot2 || ((selectedRegion == 4 && player.hasPerk CWxExtraArmSlotsPerk) || (selectedRegion == 6 && player.hasPerk CWxExtraLegSlotsPerk)) + + setUIFloat "TutorialMenu\_PNxCyberboyShowRightSlot1" showRightSlot1 + setUIFloat "TutorialMenu\_PNxCyberboyShowLeftSlot1" showLeftSlot1 + setUIFloat "TutorialMenu\_PNxCyberboyShowRightSlot2" showRightSlot2 + setUIFloat "TutorialMenu\_PNxCyberboyShowLeftSlot2" showLeftSlot2 + setUIFloat "TutorialMenu\_PNxCyberboyRegion" selectedRegion + + if selectedRegion == 1 ;head + call CWxPanelShowRegion selectedRegion newHeadImplant1 newHeadImplant2 newHeadImplant3 newHeadImplant4 showRightSlot2 + elseif selectedRegion == 2 ; torso + call CWxPanelShowRegion selectedRegion newTorsoImplant1 newTorsoImplant2 newTorsoImplant3 newTorsoImplant4 showRightSlot2 + elseif selectedRegion == 3 ; right arm + call CWxPanelShowRegion selectedRegion newRightArmImplant1 rEmptyRef newRightArmImplant2 rEmptyRef showRightSlot2 + elseif selectedRegion == 4 ; left arm + call CWxPanelShowRegion selectedRegion rEmptyRef newLeftArmImplant1 rEmptyRef newLeftArmImplant2 showLeftSlot2 + elseif selectedRegion == 5 ; right leg + call CWxPanelShowRegion selectedRegion newRightLegImplant1 rEmptyRef newRightLegImplant2 rEmptyRef showRightSlot2 + elseif selectedRegion == 6 ; left leg + call CWxPanelShowRegion selectedRegion rEmptyRef newLeftLegImplant1 rEmptyRef newLeftLegImplant2 showLeftSlot2 + endif + + + elseif bShowImplantsBox + + + set fTemp to ListGetCount CWxImplantsAvailableList + set fTemp to fTemp / CWxImplantsPerPage + + set pageCount to ceil fTemp + + printd "Implant list, page " + $iPage + ", page count " + $pageCount + + set i to iPage * CWxImplantsPerPage + set menuSize to 1 + + let sTemp := "" + while (menuSize <= CWxImplantsPerPage) && (rTemp := ListGetNthForm CWxImplantsAvailableList i) + let sTemp := $sTemp + "|" + $(GetName rTemp) + set i to i + 1 + set menuSize to menuSize + 1 + loop + + if (iPage + 1) < pageCount + let sTemp := $sTemp + "|Next page >" + set menuSize to menuSize + 1 + endif + + let sTemp := $sTemp + "|<<< Back" + + set bShowImplantsBox to 0 + set bMenuImplantsPage to 1 + + MessageBoxEx $sTemp + + sv_destruct sTemp + + return + + + elseif rCurrentMessage == CWxPanelInstallMsg + + + set iButton to GetButtonPressed + + if iButton == -1 + return + endif + + set rCurrentMessage to 0 + + if iButton == 0 + ; Install + call CWxPanelSetSlot selectedRegion currentSlot selectedImplant + + player.removeItem selectedImplant 1 1 + set refreshRegion to 1 + + call CWxPanelUpdatePrice + endif + + return + + + elseif bMenuImplantsPage + + + set iButton to GetButtonPressed + + if iButton == -1 + ;printd "Waiting for implant button" + return + endif + + set bMenuImplantsPage to 0 + printd "Pressed item in implant list" + + ; Handle "<<< Back" + if iButton == menuSize - 1 + if iPage > 0 + set iPage to iPage - 1 + set bShowImplantsBox to 1 + endif + return + endif + + ; Handle "Next page >" + if (iPage + 1) < pageCount + if iButton == menuSize - 2 + set iPage to iPage + 1 + set bShowImplantsBox to 1 + return + endif + endif + + set i to iPage * CWxImplantsPerPage + iButton + set selectedImplant to ListGetNthForm CWxImplantsAvailableList i + + if eval call CWxPanelIsNotUnique selectedRegion selectedImplant currentSlot + ShowMessage CWxErrorUniqueImplantMsg + return + endif + + call CWxPanelSetMessageData CWxPanelInstallMsg selectedImplant + + set rCurrentMessage to CWxPanelInstallMsg + + ShowMessage CWxPanelInstallMsg + + return + + + elseif rCurrentMessage == CWxPanelRemoveMsg + + + set iButton to GetButtonPressed + + if iButton == -1 + printd "Waiting for removal confirmation" + return + endif + + set rCurrentMessage to 0 + + printd "Pressed button " + $iButton + + if iButton == 0 ; Yes + + printd "Confirmed removing implant" + + call CWxPanelSetSlot selectedRegion currentSlot rEmptyRef + + player.addItem selectedImplant 1 1 + + set refreshRegion to 1 + call CWxPanelUpdatePrice + + endif + + return + + + elseif selectedSlot > 0 + + + set selectedSlot to 0 + printd "Selected slot " + $currentSlot + + if currentSlot == 1 + set selectedImplant to rightSlotImplant1 + elseif currentSlot == 2 + set selectedImplant to leftSlotImplant1 + elseif currentSlot == 3 + set selectedImplant to rightSlotImplant2 + elseif currentSlot == 4 + set selectedImplant to leftSlotImplant2 + else + return + endif + + if selectedImplant == 0 ; Empty slot + + printd "Slot is empty" + + ; Select region list + if selectedRegion == 1 + set rTemp to CWxImplantsHeadList + elseif selectedRegion == 2 + set rTemp to CWxImplantsTorsoList + elseif selectedRegion == 3 || selectedRegion == 4 + set rTemp to CWxImplantsArmsList + elseif selectedRegion == 5 || selectedRegion == 6 + set rTemp to CWxImplantsLegsList + endif + + ; Clear the list of available implants + ListClear CWxImplantsAvailableList + + set i to 0 + + while element := ListGetNthForm rTemp i + + if player.GetItemCount element > 0 && ListGetFormIndex CWxImplantsAvailableList element == -1 + ListAddForm CWxImplantsAvailableList element + endif + + set i to i + 1 + loop + + if ListGetCount CWxImplantsAvailableList <= 0 + ShowMessage CWxErrorNoImplantsMsg + return + endif + + set iPage to 0 + set bShowImplantsBox to 1 + + else ; Filled slot + + printd "Slot is not empty" + + call CWxPanelSetMessageData CWxPanelRemoveMsg selectedImplant + + set rCurrentMessage to CWxPanelRemoveMsg + + ShowMessage CWxPanelRemoveMsg + + endif + + + return + + + elseif rCurrentMessage != 0 + + + printd "Cyberware: Current message was not empty, but not processed." + set rCurrentMessage to 0 + + + else + + + ;printd "Idling" + + SetUIFloat "TutorialMenu\_PNxCyberboyMenuActive" 0 + + if getUIFloat "TutorialMenu\_PNxCyberboyHeadSelected" + set selectedRegion to 1 + elseif getUIFloat "TutorialMenu\_PNxCyberboyTorsoSelected" + set selectedRegion to 2 + elseif getUIFloat "TutorialMenu\_PNxCyberboyRightArmSelected" + set selectedRegion to 3 + elseif getUIFloat "TutorialMenu\_PNxCyberboyLeftArmSelected" + set selectedRegion to 4 + elseif getUIFloat "TutorialMenu\_PNxCyberboyRightLegSelected" + set selectedRegion to 5 + elseif getUIFloat "TutorialMenu\_PNxCyberboyLeftLegSelected" + set selectedRegion to 6 + else + set selectedRegion to 0 + endif + + if lastSelectedRegion != selectedRegion + + set lastSelectedRegion to selectedRegion + set refreshRegion to 1 + + printd "New region selected" + + endif + + if GetUIFloat "TutorialMenu\_PNxCyberboyRightImplant1Selected" + set selectedSlot to 1 + elseif GetUIFloat "TutorialMenu\_PNxCyberboyLeftImplant1Selected" + set selectedSlot to 2 + elseif GetUIFloat "TutorialMenu\_PNxCyberboyRightImplant2Selected" + set selectedSlot to 3 + elseif GetUIFloat "TutorialMenu\_PNxCyberboyLeftImplant2Selected" + set selectedSlot to 4 + else + set selectedSlot to 0 + endif + + if selectedSlot > 0 + set currentSlot to selectedSlot + endif + + + endif + +end diff --git a/src/CWxPanelSetMessageData.gek b/src/CWxPanelSetMessageData.gek new file mode 100644 index 0000000..cfa4707 --- /dev/null +++ b/src/CWxPanelSetMessageData.gek @@ -0,0 +1,23 @@ +scn CWxPanelSetMessageData + +ref rMessage +ref rImplant +ref rTemp +int i +string_var sTemp + +begin function { rMessage, rImplant } + + set rImplant to call CWxPanelGetImplantInfo rImplant + + let sTemp := GetName rImplant + printd "Cyberware: Setting name to " + $sTemp + SetName $sTemp rMessage + + let sTemp := GetFormDescription rImplant + printd "Cyberware: Setting description to " + $sTemp + SetFormDescription rMessage $sTemp + + sv_destruct sTemp + +end diff --git a/src/CWxPanelSetSlot.gek b/src/CWxPanelSetSlot.gek new file mode 100644 index 0000000..bbb2cf8 --- /dev/null +++ b/src/CWxPanelSetSlot.gek @@ -0,0 +1,56 @@ +scn CWxPanelSetSlot + +int selectedRegion +int currentSlot +ref rValue + +begin function { selectedRegion, currentSlot, rValue } + + if selectedRegion == 1 + if currentSlot == 1 + set CWxImplantsPanel.newHeadImplant1 to rValue + elseif currentSlot == 2 + set CWxImplantsPanel.newHeadImplant2 to rValue + elseif currentSlot == 3 + set CWxImplantsPanel.newHeadImplant3 to rValue + else + set CWxImplantsPanel.newHeadImplant4 to rValue + endif + elseif selectedRegion == 2 + if currentSlot == 1 + set CWxImplantsPanel.newTorsoImplant1 to rValue + elseif currentSlot == 2 + set CWxImplantsPanel.newTorsoImplant2 to rValue + elseif currentSlot == 3 + set CWxImplantsPanel.newTorsoImplant3 to rValue + else + set CWxImplantsPanel.newTorsoImplant4 to rValue + endif + elseif selectedRegion == 3 + if currentSlot == 1 + set CWxImplantsPanel.newRightArmImplant1 to rValue + else + set CWxImplantsPanel.newRightArmImplant2 to rValue + endif + elseif selectedRegion == 4 + if currentSlot == 2 + set CWxImplantsPanel.newLeftArmImplant1 to rValue + else + set CWxImplantsPanel.newLeftArmImplant2 to rValue + endif + elseif selectedRegion == 5 + if currentSlot == 1 + set CWxImplantsPanel.newRightLegImplant1 to rValue + else + set CWxImplantsPanel.newRightLegImplant2 to rValue + endif + elseif selectedRegion == 6 + if currentSlot == 2 + set CWxImplantsPanel.newLeftLegImplant1 to rValue + else + set CWxImplantsPanel.newLeftLegImplant2 to rValue + endif + endif + +end + diff --git a/src/CWxPanelShowRegion.gek b/src/CWxPanelShowRegion.gek new file mode 100644 index 0000000..962def1 --- /dev/null +++ b/src/CWxPanelShowRegion.gek @@ -0,0 +1,31 @@ +scn CWxPanelShowRegion + +int iRegion +ref rightSlotImplant1 +ref rightSlotImplant2 +ref leftSlotImplant1 +ref leftSlotImplant2 +int bExtra +int iLineNum + +begin function { iRegion, rightSlotImplant1, leftSlotImplant1, rightSlotImplant2, leftSlotImplant2, bExtra } + + set CWxImplantsPanel.rightSlotImplant1 to rightSlotImplant1 + set CWxImplantsPanel.leftSlotImplant1 to leftSlotImplant1 + set CWxImplantsPanel.rightSlotImplant2 to rightSlotImplant2 + set CWxImplantsPanel.leftSlotImplant2 to leftSlotImplant2 + + call CWxPanelShowSlot rightSlotImplant1 "TutorialMenu\_PNxCyberboyRightImplant1State" "TutorialMenu\_PNxCyberboyRightImplant1Path" 0 + call CWxPanelShowSlot rightSlotImplant2 "TutorialMenu\_PNxCyberboyRightImplant2State" "TutorialMenu\_PNxCyberboyRightImplant2Path" 1 + call CWxPanelShowSlot leftSlotImplant1 "TutorialMenu\_PNxCyberboyLeftImplant1State" "TutorialMenu\_PNxCyberboyLeftImplant1Path" 1 + call CWxPanelShowSlot leftSlotImplant2 "TutorialMenu\_PNxCyberboyLeftImplant2State" "TutorialMenu\_PNxCyberboyLeftImplant2Path" 0 + + if bExtra + set iLineNum to iRegion + 6 + else + set iLineNum to iRegion + endif + + setUIFloat "TutorialMenu\_PNxCyberboyLineNum" iLineNum + +end diff --git a/src/CWxPanelShowSlot.gek b/src/CWxPanelShowSlot.gek new file mode 100644 index 0000000..32fa2eb --- /dev/null +++ b/src/CWxPanelShowSlot.gek @@ -0,0 +1,38 @@ +scn CWxPanelShowSlot + +ref rSlotImplant +string_var sStateNode +string_var sTextureNode +string_var sIcon +int bLeft ; 0 - right, 1 - left + +begin function { rSlotImplant, sStateNode, sTextureNode, bLeft } + + if rSlotImplant + + set rSlotImplant to call CWxPanelGetImplantInfo rSlotImplant + + let sIcon := GetIconPath rSlotImplant + + if bLeft + sv_replace "_right_|_left_" sIcon + endif + + printd "Setting " + $sTextureNode + " to " + $sIcon + printd "Setting " + $sStateNode + " to 1" + + setUIString $sTextureNode $sIcon + setUIFloat $sStateNode 1 + + else + + printd "Setting " + $sStateNode + " to 0" + setUIFloat $sStateNode 0 + + endif + + sv_destruct sStateNode + sv_destruct sTextureNode + sv_destruct sIcon + +end diff --git a/src/CWxPanelSwapImplants.gek b/src/CWxPanelSwapImplants.gek new file mode 100644 index 0000000..0b341d8 --- /dev/null +++ b/src/CWxPanelSwapImplants.gek @@ -0,0 +1,23 @@ +scn CWxPanelSwapImplants + +ref rInstalledImplant +ref rRemovedImplant + +begin function { rInstalledImplant, rRemovedImplant } + + if rInstalledImplant == 0 && rRemovedImplant != 0 + + player.addItem rRemovedImplant 1 1 + + elseif rRemovedImplant != rInstalledImplant && rRemovedImplant != 0 && rInstalledImplant != 0 + + player.addItem rRemovedImplant 1 1 + player.removeItem rInstalledImplant 1 1 + + elseif rInstalledImplant != 0 && rRemovedImplant == 0 + + player.removeItem rInstalledImplant 1 1 + + endif + +end diff --git a/src/CWxPanelUpdatePrice.gek b/src/CWxPanelUpdatePrice.gek new file mode 100644 index 0000000..14b98a1 --- /dev/null +++ b/src/CWxPanelUpdatePrice.gek @@ -0,0 +1,46 @@ +scn CWxPanelUpdatePrice + +; Refresh caps, costs and accept button +short changedSlots +float price +short caps + +begin function {} + + set changedSlots to 0 + set changedSlots to changedSlots + (CWxImplantsPanel.newHeadImplant1 != CWxImplants.headImplant1) + set changedSlots to changedSlots + (CWxImplantsPanel.newHeadImplant2 != CWxImplants.headImplant2) + set changedSlots to changedSlots + (CWxImplantsPanel.newHeadImplant3 != CWxImplants.headImplant3) + set changedSlots to changedSlots + (CWxImplantsPanel.newHeadImplant4 != CWxImplants.headImplant4) + set changedSlots to changedSlots + (CWxImplantsPanel.newTorsoImplant1 != CWxImplants.torsoImplant1) + set changedSlots to changedSlots + (CWxImplantsPanel.newTorsoImplant2 != CWxImplants.torsoImplant2) + set changedSlots to changedSlots + (CWxImplantsPanel.newTorsoImplant3 != CWxImplants.torsoImplant3) + set changedSlots to changedSlots + (CWxImplantsPanel.newTorsoImplant4 != CWxImplants.torsoImplant4) + set changedSlots to changedSlots + (CWxImplantsPanel.newRightArmImplant1 != CWxImplants.rightArmImplant1) + set changedSlots to changedSlots + (CWxImplantsPanel.newRightArmImplant2 != CWxImplants.rightArmImplant2) + set changedSlots to changedSlots + (CWxImplantsPanel.newLeftArmImplant1 != CWxImplants.leftArmImplant1) + set changedSlots to changedSlots + (CWxImplantsPanel.newLeftArmImplant2 != CWxImplants.leftArmImplant2) + set changedSlots to changedSlots + (CWxImplantsPanel.newRightLegImplant1 != CWxImplants.rightLegImplant1) + set changedSlots to changedSlots + (CWxImplantsPanel.newRightLegImplant2 != CWxImplants.rightLegImplant2) + set changedSlots to changedSlots + (CWxImplantsPanel.newLeftLegImplant1 != CWxImplants.leftLegImplant1) + set changedSlots to changedSlots + (CWxImplantsPanel.newLeftLegImplant2 != CWxImplants.leftLegImplant2) + + printd "Changed " + $changedSlots + " slots" + + set price to changedSlots * (CWxSurgeryBasePrice + (CWxSurgeryBarterMult * player.getAV Barter)) + + set caps to player.getItemCount Caps001 + + setUIFloat "TutorialMenu\_PNxImplantsPanelCaps" caps + setUIFloat "TutorialMenu\_PNxImplantsPanelPrice" price + + if caps < price || changedSlots == 0 + setUIFloat "TutorialMenu\_PNxImplantsPanelAcceptEnabled" 0 + else + setUIFloat "TutorialMenu\_PNxImplantsPanelAcceptEnabled" 1 + endif + + set CWxImplantsPanel.price to price + set CWxImplantsPanel.changedSlots to changedSlots + +end diff --git a/src/CWxScannerOnAim.gek b/src/CWxScannerOnAim.gek new file mode 100644 index 0000000..1f07ea8 --- /dev/null +++ b/src/CWxScannerOnAim.gek @@ -0,0 +1,23 @@ +scn CWxScannerOnAim + +int iControlID + +begin function { iControlID } + + if MenuMode + return + endif + + if player.IsInCombat + return + endif + + printd "Triggered OnAim event" + + if GetQuestRunning CWxScannerQuest == 0 + StartQuest CWxScannerQuest + endif + + SetOnMenuOpenEventHandler CWxScannerOnMenu 1 + +end diff --git a/src/CWxScannerOnAimDown.gek b/src/CWxScannerOnAimDown.gek new file mode 100644 index 0000000..f6c8125 --- /dev/null +++ b/src/CWxScannerOnAimDown.gek @@ -0,0 +1,17 @@ +scn CWxScannerOnAimDown + +int iControlID + +begin function { iControlID } + + if MenuMode + return + endif + + printd "Cyberware: Triggered OnAimDown event" + + if GetQuestRunning CWxScannerQuest || GetQuestRunning CWxScannerTextQuest + call CWxScannerStop + endif + +end diff --git a/src/CWxScannerOnMenu.gek b/src/CWxScannerOnMenu.gek new file mode 100644 index 0000000..706c6fa --- /dev/null +++ b/src/CWxScannerOnMenu.gek @@ -0,0 +1,9 @@ +scn CWxScannerOnMenu + +int iMenuID + +begin function { iMenuID } + + call CWxScannerStop + +end diff --git a/src/CWxScannerOnScan.gek b/src/CWxScannerOnScan.gek new file mode 100644 index 0000000..818ac30 --- /dev/null +++ b/src/CWxScannerOnScan.gek @@ -0,0 +1,17 @@ +scn CWxScannerOnScan + +int iControlID + +begin function { iControlID } + + if IsControlPressed 6 == 0 ; not aiming + call CWxScannerStop + return + endif + + call CWxScannerStopText + + set CWxScannerTextQuest.curTarget to GetCrosshairRefEx + SetStage CWxScannerTextQuest 1 + +end diff --git a/src/CWxScannerQuestScript.gek b/src/CWxScannerQuestScript.gek new file mode 100644 index 0000000..f73fd77 --- /dev/null +++ b/src/CWxScannerQuestScript.gek @@ -0,0 +1,103 @@ +scn CWxScannerQuestScript + +ref rTarget +ref rNewTarget +int iControl + +begin GameMode + + if IsControlPressed 6 == 0 ; not aiming + call CWxScannerStop + return + endif + + set rNewTarget to GetCrosshairRefEx + + if rTarget == rNewTarget + + if rTarget + + ; If we approach NPC, holding zoom, the interaction prompt will change to "Talk". + ; As normal activation is temporarily disabled, we need to change it back to "Scan". + + + if GetUIFloat "HUDMainMenu\_DUIF3" > 0 ; DarnUI + + if eval GetUIString "HUDMainMenu/InfoWrap/Info/justify_center_hotrect/string" != "Scan" + SetUIString "HUDMainMenu/InfoWrap/Info/justify_center_hotrect/string" "Scan" + endif + + if GetUIFloat "HUDMainMenu/InfoWrap/Info/justify_center_hotrect/visible" != 1 + SetUIFloat "HUDMainMenu/InfoWrap/Info/justify_center_hotrect/visible" 1 + endif + + else + + if eval GetUIString "HUDMainMenu/Info/justify_center_hotrect/string" != "Scan" + SetUIString "HUDMainMenu/Info/justify_center_hotrect/string" "Scan" + endif + + if GetUIFloat "HUDMainMenu/Info/justify_center_hotrect/visible" != 1 + SetUIFloat "HUDMainMenu/Info/justify_center_hotrect/visible" 1 + endif + + endif + + endif + + return + endif + + set rTarget to rNewTarget + + if rTarget != 0 + if rTarget.GetObjectType == 42 || rTarget.GetObjectType == 43 + if rTarget.GetDead + set rTarget to 0 + endif + else + set rTarget to 0 + endif + endif + + ; When new target or none, hide report + ; SetStage CWxScannerTextQuest 0 + + if rTarget == 0 + if GetUIFloat "HUDMainMenu\_DUIF3" > 0 ; DarnUI + if eval GetUIString "HUDMainMenu/InfoWrap/Info/justify_center_hotrect/string" == "Scan" + SetUIFloat "HUDMainMenu/InfoWrap/Info/justify_center_hotrect/visible" 0 + endif + else + if eval GetUIString "HUDMainMenu/Info/justify_center_hotrect/string" == "Scan" + SetUIFloat "HUDMainMenu/Info/justify_center_hotrect/visible" 0 + endif + endif + + SetOnControlDownEventHandler CWxScannerOnScan 0 5 + EnableControl 5 + ;playSound OBJSwitchButtonBFail + return + endif + + set iControl to GetControl 5 + + if GetUIFloat "HUDMainMenu\_DUIF3" > 0 ; DarnUI + SetUIStringEx "HUDMainMenu/InfoWrap/Info/justify_center_hotrect/_PCButtonText" "%k)" iControl + SetUIString "HUDMainMenu/InfoWrap/Info/justify_center_hotrect/string" "Scan" + SetUIFloat "HUDMainMenu/InfoWrap/Info/justify_center_hotrect/visible" 1 + else + SetUIStringEx "HUDMainMenu/Info/justify_center_hotrect/_PCButtonText" "%k)" iControl + SetUIString "HUDMainMenu/Info/justify_center_hotrect/string" "Scan" + SetUIFloat "HUDMainMenu/Info/justify_center_hotrect/visible" 1 + endif + + SetOnControlDownEventHandler CWxScannerOnScan 1 5 + DisableControl 5 + +end + +begin MenuMode + call CWxScannerStop +end + diff --git a/src/CWxScannerStop.gek b/src/CWxScannerStop.gek new file mode 100644 index 0000000..31e6210 --- /dev/null +++ b/src/CWxScannerStop.gek @@ -0,0 +1,20 @@ +scn CWxScannerStop + +begin function {} + + SetOnMenuOpenEventHandler CWxScannerOnMenu 0 + SetOnControlDownEventHandler CWxScannerOnScan 0 5 + EnableControl 5 + + if GetActiveMenuMode == 0 + if eval GetUIString "HUDMainMenu/Info/justify_center_hotrect/string" == "Scan" + SetUIFloat "HUDMainMenu/Info/justify_center_hotrect/visible" 0 + endif + endif + + ResetQuest CWxScannerQuest + StopQuest CWxScannerQuest + + call CWxScannerStopText + +end diff --git a/src/CWxScannerStopText.gek b/src/CWxScannerStopText.gek new file mode 100644 index 0000000..f299c8f --- /dev/null +++ b/src/CWxScannerStopText.gek @@ -0,0 +1,26 @@ +scn CWxScannerStopText + +begin function {} + + ResetQuest CWxScannerTextQuest + StopQuest CWxScannerTextQuest + + setUIFloat "HUDMainMenu/_CWxScannerEnabled" 0 + + setUIFloat "HUDMainMenu/_CWxScannerCursorPos" 0 + setUIFloat "HUDMainMenu/_CWxScannerCursorLine" 0 + setUIFloat "HUDMainMenu/_CWxScannerCursorBlink" 0 + setUIFloat "HUDMainMenu/_CWxScannerCursorIndent" 0 + setUIFloat "HUDMainMenu/_CWxScannerText1Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerText2Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerText3Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerText4Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerText5Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerText6Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerText7Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerText8Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerText9Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerText10Index" 0 + setUIFloat "HUDMainMenu/_CWxScannerBoyEnabled" 0 + +end diff --git a/src/CWxScannerTextQuestScript.gek b/src/CWxScannerTextQuestScript.gek new file mode 100644 index 0000000..cc02640 --- /dev/null +++ b/src/CWxScannerTextQuestScript.gek @@ -0,0 +1,632 @@ +scn CWxScannerTextQuestScript + +short stop + +ref curTarget + +short enabled +short clear + +float sleepTimer +float blinkTimer +float updateTimer + +short line +short word +short pos +short offset +short index +short cursorIndent +short cursorBlink + +; 0 - off +; 1 - clear +; 2 - searching - print +; 20 - searching - done +; 3 - scanning - print +; 30 - scanning - done +short state + +; 1-high 2-medium 3-low +short threat + +; 1-long 2-medium 3-short 4-melee +short range + +; 1-high 2-medium 3-low +short awareness + +; 1-allied 2-neutral 3-hostile +short disposition + +short lastThreat +short lastRange +short lastAwareness +short lastDisposition + +short scanningInit +short threatInit +short rangeInit +short awarenessInit +short dispositionInit +short doneInit + +float curHealth +float lastHealth +float maxHealth +float damageThreshold +float tmp + +float damage + +ref weapon + +float fSneakPerceptionSkillMaxGMST +float fSneakPerceptionSkillMinGMST + +float playerScore +float targetScore + +begin MenuMode + call CWxScannerStop +end + +Begin GameMode + + if IsControlPressed 6 == 0 ; not aiming + call CWxScannerStop + return + endif + +if state == 0 || sleepTimer > 0 + + if blinkTimer > 0 + set blinkTimer to blinkTimer - getSecondsPassed + else + set blinkTimer to 0.3 + set cursorBlink to 1 - cursorBlink + setUIFloat "HUDMainMenu/_CWxScannerCursorBlink" cursorBlink + endif +else + set cursorBlink to 0 +endif + +; Data output +if state == 0 + + if sleepTimer > 0 + set sleepTimer to sleepTimer - getSecondsPassed + return + endif + + if updateTimer > 0 + set updateTimer to updateTimer - getSecondsPassed + else + set updateTimer to 1 + + ; Scanner boy + set tmp to (100 - curTarget.getAV PerceptionCondition) / 100 + setUIFloat "HUDMainMenu/_CWxScannerBoyHeadDamage" tmp + set tmp to (100 - curTarget.getAV EnduranceCondition) / 100 + setUIFloat "HUDMainMenu/_CWxScannerBoyTorsoDamage" tmp + set tmp to (100 - curTarget.getAV LeftAttackCondition) / 100 + setUIFloat "HUDMainMenu/_CWxScannerBoyLeftArmDamage" tmp + set tmp to (100 - curTarget.getAV RightAttackCondition) / 100 + setUIFloat "HUDMainMenu/_CWxScannerBoyRightArmDamage" tmp + set tmp to (100 - curTarget.getAV LeftMobilityCondition) / 100 + setUIFloat "HUDMainMenu/_CWxScannerBoyLeftLegDamage" tmp + set tmp to (100 - curTarget.getAV RightMobilityCondition) / 100 + setUIFloat "HUDMainMenu/_CWxScannerBoyRightLegDamage" tmp + + ; HP + set curHealth to curTarget.getAV Health + if curHealth == 0 + setUIString "HUDMainMenu/_CWxScannerTextHP" "0" + else + setUIFloat "HUDMainMenu/_CWxScannerTextHP" curHealth + endif + + ; DT + set damageThreshold to curTarget.getAV DamageThreshold + if damageThreshold == 0 + setUIString "HUDMainMenu/_CWxScannerTextDT" "0" + else + setUIFloat "HUDMainMenu/_CWxScannerTextDT" damageThreshold + endif + + ; Health bar + set maxHealth to curTarget.getBaseAV Health + if maxHealth != 0 + set tmp to curHealth / maxHealth + if tmp < 0 + set tmp to 0 + endif + setUIFloat "HUDMainMenu/_CWxScannerHealth" tmp + endif + + ; Damage estimate + if lastHealth < 0 + set lastHealth to curHealth + endif + set damage to lastHealth - curHealth + + if maxHealth != 0 + set tmp to (curHealth - damage) / maxHealth + if tmp < 0 + set tmp to 0 + endif + setUIFloat "HUDMainMenu/_CWxScannerDamage" tmp + endif + + set lastHealth to curHealth + + ; Threat + set targetScore to curTarget.getBaseAV Health + 10 * curTarget.getAV DamageThreshold + 10 * curTarget.getLevel + set playerScore to player.getBaseAV Health + 10 * player.getAV DamageThreshold + 10 * player.getLevel + + if targetScore > playerScore + 50 + set threat to 1 + elseif targetScore < playerScore - 50 + set threat to 3 + else + set threat to 2 + endif + + ; Range + set weapon to curTarget.getEquippedObject 5 + if weapon == 0 + set range to 4 + elseif getWeaponSkill weapon == 38 || getWeaponSkill weapon == 45 + set range to 4 + else + if getWeaponMinSpread weapon < 0.5 + set range to 1 + elseif getWeaponMinSpread weapon < 1.4 + set range to 2 + else + set range to 3 + endif + endif + + ; Awareness + set fSneakPerceptionSkillMaxGMST to getNumericGameSetting fSneakPerceptionSkillMax + set fSneakPerceptionSkillMinGMST to getNumericGameSetting fSneakPerceptionSkillMin + set tmp to 1 + (curTarget.getIsAlerted * getNumericGameSetting fSneakAlertMod) + set tmp to tmp + (curTarget.getSleeping * getNumericGameSetting fSneakSleepBonus) + set tmp to tmp + ((curTarget.getCombatTarget != player) * getNumericGameSetting fSneakCombatMod) + set tmp to tmp * (fSneakPerceptionSkillMinGMST + (fSneakPerceptionSkillMaxGMST - fSneakPerceptionSkillMinGMST) * curTarget.getAV Perception / 10) + + if tmp > 66 + set awareness to 1 + elseif tmp > 33 + set awareness to 2 + else + set awareness to 3 + endif + + ; Disposition + if curTarget.getCombatTarget == player + set disposition to 3 + elseif curTarget.getFactionRelation player == 1 + set disposition to 3 + elseif curTarget.getFactionRelation player == 0 + if curTarget.getAV Aggression >= 2 + set disposition to 3 + else + set disposition to 2 + endif + elseif curTarget.getAV Assistance >= 1 + set disposition to 1 + ; Whatever.. :) + else + set disposition to 2 + endif + endif + + if scanningInit == 0 + set scanningInit to 1 + + set line to 0 + set word to 0 + set offset to 0 + set pos to 0 + set cursorIndent to 0 + + set state to 30 + return + endif + + if threatInit == 0 + set threatInit to 1 + + set line to 2 + set word to 0 + set offset to 0 + set pos to 0 + set cursorIndent to 0 + + set state to 30 + return + else + if threat != lastThreat + ; high + if threat == 1 + set word to 0 + set offset to 0 + ; medium + elseif threat == 2 + set word to 1 + set offset to 4 + ; low + elseif threat == 3 + set word to 2 + set offset to 10 + endif + + set line to 3 + set pos to 0 + set cursorIndent to 2 + set lastThreat to threat + set state to 30 + return + endif + endif + + if awarenessInit == 0 + set awarenessInit to 1 + + set line to 5 + set word to 0 + set offset to 0 + set pos to 0 + set cursorIndent to 0 + + set state to 30 + return + else + if awareness != lastAwareness + ; high + if awareness == 1 + set word to 0 + set offset to 0 + ; medium + elseif awareness == 2 + set word to 1 + set offset to 4 + ; low + elseif awareness == 3 + set word to 2 + set offset to 10 + endif + + set line to 6 + set pos to 0 + set cursorIndent to 2 + set lastAwareness to awareness + set state to 30 + return + + endif + endif + + if rangeInit == 0 + set rangeInit to 1 + + set line to 8 + set word to 0 + set offset to 0 + set pos to 0 + set cursorIndent to 0 + + set state to 30 + return + else + if range != lastRange + ; long + if range == 1 + set word to 0 + set offset to 0 + ; medium + elseif range == 2 + set word to 1 + set offset to 4 + ; short + elseif range == 3 + set word to 2 + set offset to 10 + ; melee + elseif range == 4 + set word to 3 + set offset to 15 + endif + + set line to 9 + set pos to 0 + set cursorIndent to 2 + set lastRange to range + set state to 30 + return + + endif + + endif + + if dispositionInit == 0 + set dispositionInit to 1 + + set line to 11 + set word to 0 + set offset to 0 + set pos to 0 + set cursorIndent to 0 + + set state to 30 + return + else + if disposition != lastDisposition + ; allied + if disposition == 1 + set word to 0 + set offset to 0 + ; neutral + elseif disposition == 2 + set word to 1 + set offset to 6 + ; hostile + elseif disposition == 3 + set word to 2 + set offset to 13 + endif + + set line to 12 + set pos to 0 + set cursorIndent to 2 + set lastDisposition to disposition + set state to 30 + return + + endif + endif + + if doneInit == 0 + set doneInit to 1 + + set line to 14 + set word to 0 + set offset to 0 + set pos to 0 + set cursorIndent to 0 + + set state to 30 + return + endif + + return + +elseif state == 30 + + set pos to pos + 1 + setUIFloat "HUDMainMenu/_CWxScannerCursorPos" pos + setUIFloat "HUDMainMenu/_CWxScannerCursorLine" line + setUIFloat "HUDMainMenu/_CWxScannerCursorIndent" cursorIndent + setUIFloat "HUDMainMenu/_CWxScannerCursorBlink" cursorBlink + + set index to offset + pos + + ;===================================================================================== Status + if line == 0 + setUIFloat "HUDMainMenu/_CWxScannerText1Index" index + + ; --------------------------------------------------------------------------------------------------------------------- SCANNING...[1-11] + if word == 0 + if pos >= 11 + playSound OBJSwitchButtonBPass + set sleepTimer to 3 + set state to 0 + return + endif + endif + ; --------------------------------------------------------------------------------------------------------------------- + + ;===================================================================================== Threat label + elseif line == 2 + setUIFloat "HUDMainMenu/_CWxScannerText2Index" index + + ; --------------------------------------------------------------------------------------------------------------------- Threat:[1-7] + if word == 0 + if pos >= 7 + playSound OBJSwitchButtonB + set state to 0 + return + endif + endif + ; --------------------------------------------------------------------------------------------------------------------- + + ;===================================================================================== Threat value + elseif line == 3 + setUIFloat "HUDMainMenu/_CWxScannerText3Index" index + + ; --------------------------------------------------------------------------------------------------------------------- high[1-4] + if word == 0 + if pos >= 4 + set sleepTimer to 0.3 + set state to 0 + return + endif + ; --------------------------------------------------------------------------------------------------------------------- medium[5-10] + elseif word == 1 + if pos >= 6 + set sleepTimer to 0.3 + set state to 0 + return + endif + ; --------------------------------------------------------------------------------------------------------------------- low[11-13] + elseif word == 2 + if pos >= 3 + set sleepTimer to 0.3 + set state to 0 + return + endif + + endif + ; --------------------------------------------------------------------------------------------------------------------- + + ;===================================================================================== Awareness label + elseif line == 5 + setUIFloat "HUDMainMenu/_CWxScannerText4Index" index + + ; --------------------------------------------------------------------------------------------------------------------- AWARENESS:[1-10] + if word == 0 + if pos >= 10 + playSound OBJSwitchButtonB + set state to 0 + return + endif + endif + ; --------------------------------------------------------------------------------------------------------------------- + + ;===================================================================================== Awareness values + elseif line == 6 + setUIFloat "HUDMainMenu/_CWxScannerText5Index" index + + ; --------------------------------------------------------------------------------------------------------------------- high[1-4] + if word == 0 + if pos >= 4 + set sleepTimer to 0.3 + set state to 0 + return + endif + ; --------------------------------------------------------------------------------------------------------------------- medium[5-10] + elseif word == 1 + if pos >= 6 + set sleepTimer to 0.3 + set state to 0 + return + endif + ; --------------------------------------------------------------------------------------------------------------------- low[11-13] + elseif word == 2 + if pos >= 3 + set sleepTimer to 0.3 + set state to 0 + return + endif + + endif + ; --------------------------------------------------------------------------------------------------------------------- + + ;===================================================================================== Range Label + elseif line == 8 + setUIFloat "HUDMainMenu/_CWxScannerText6Index" index + + ; --------------------------------------------------------------------------------------------------------------------- COMBAT RANGE:[1-12] + if word == 0 + if pos >= 12 + playSound OBJSwitchButtonB + set state to 0 + return + endif + endif + ; --------------------------------------------------------------------------------------------------------------------- + + ;===================================================================================== Range value + elseif line == 9 + setUIFloat "HUDMainMenu/_CWxScannerText7Index" index + + ; --------------------------------------------------------------------------------------------------------------------- long[1-4] + if word == 0 + if pos >= 4 + set sleepTimer to 0.3 + set state to 0 + return + endif + ; --------------------------------------------------------------------------------------------------------------------- medium[5-10] + elseif word == 1 + if pos >= 6 + set sleepTimer to 0.3 + set state to 0 + return + endif + ; --------------------------------------------------------------------------------------------------------------------- short[11-15] + elseif word == 2 + if pos >= 5 + set sleepTimer to 0.3 + set state to 0 + return + endif + + ; --------------------------------------------------------------------------------------------------------------------- melee[16-20] + elseif word == 3 + if pos >= 5 + set sleepTimer to 0.3 + set state to 0 + return + endif + + endif + ; --------------------------------------------------------------------------------------------------------------------- + + ;===================================================================================== Disposition label + elseif line == 11 + setUIFloat "HUDMainMenu/_CWxScannerText8Index" index + + ; --------------------------------------------------------------------------------------------------------------------- DISPOSITION:[1-12] + if word == 0 + if pos >= 12 + playSound OBJSwitchButtonB + set state to 0 + return + endif + endif + ; --------------------------------------------------------------------------------------------------------------------- + + ;===================================================================================== Weakness value + elseif line == 12 + setUIFloat "HUDMainMenu/_CWxScannerText9Index" index + + ; --------------------------------------------------------------------------------------------------------------------- allied[1-6] + if word == 0 + if pos >= 6 + set sleepTimer to 0.3 + set state to 0 + return + endif + ; --------------------------------------------------------------------------------------------------------------------- neutral[7-13] + elseif word == 1 + if pos >= 7 + set sleepTimer to 0.3 + set state to 0 + return + endif + ; --------------------------------------------------------------------------------------------------------------------- hostile[14-20] + elseif word == 2 + if pos >= 7 + set sleepTimer to 0.3 + set state to 0 + return + endif + endif + ; --------------------------------------------------------------------------------------------------------------------- + + ;===================================================================================== + elseif line == 14 + setUIFloat "HUDMainMenu/_CWxScannerText10Index" index + + ; --------------------------------------------------------------------------------------------------------------------- DONE.[1-5] + if word == 0 + if pos >= 5 + setUIFloat "HUDMainMenu/_CWxScannerBoyEnabled" 1 + playSound OBJSwitchButtonA + set state to 0 + return + endif + endif + ; --------------------------------------------------------------------------------------------------------------------- + + endif + ;===================================================================================== + + return + +endif + +End diff --git a/src/CWxScannerUpdatePerk.gek b/src/CWxScannerUpdatePerk.gek new file mode 100644 index 0000000..b2d96fa --- /dev/null +++ b/src/CWxScannerUpdatePerk.gek @@ -0,0 +1,14 @@ +scn CWxScannerUpdatePerk + +int iMode +array_var aImplants + +begin function { iMode } + + let aImplants := ar_list CWxImplants.headImplant1, CWxImplants.headImplant2, CWxImplants.headImplant3, CWxImplants.headImplant4 + call CWxFnSyncImplant CWxImplantScanner CWxImplantScannerPerk 1 aImplants + let aImplants := ar_null + + call CWxScannerUpdateTriggers iMode + +end diff --git a/src/CWxScannerUpdateTriggers.gek b/src/CWxScannerUpdateTriggers.gek new file mode 100644 index 0000000..5eee63d --- /dev/null +++ b/src/CWxScannerUpdateTriggers.gek @@ -0,0 +1,13 @@ +scn CWxScannerUpdateTriggers + +int iMode +int bEnabled + +begin function { iMode } + + set bEnabled to player.HasPerk CWxImplantScannerPerk + + SetOnControlDownEventHandler CWxScannerOnAim bEnabled 6 + SetOnControlUpEventHandler CWxScannerOnAimDown bEnabled 6 + +end diff --git a/src/CWxStealthFieldQuestScript.gek b/src/CWxStealthFieldQuestScript.gek new file mode 100644 index 0000000..8441906 --- /dev/null +++ b/src/CWxStealthFieldQuestScript.gek @@ -0,0 +1,53 @@ +scn CWxStealthFieldQuestScript + +int iFieldStability +float fTemp + +; Expected to run 1 time per second + +begin GameMode + + if iFieldStability <= 0 + + printd "Cyberware: Stealth charge depleted - hide indicator, remove field, start recharging" + + SetUIFloat "HUDMainMenu\_CWxSFMeterEnabled" 0 + + if player.IsSpellTargetAlt CWxStealthField + playSound OBJForceFieldImpact + player.dispel CWxStealthField + endif + + set iFieldStability to iFieldStability + 1 + + elseif player.IsSpellTargetAlt CWxStealthField + + printd "Cyberware: Stealth field is active - show and update indicator, reduce charge" + + set fTemp to iFieldStability / ( CWxBaseStealthFieldStability / 8 ) + + SetUIFloat "HUDMainMenu\_CWxSFMeterAmount" fTemp + SetUIFloat "HUDMainMenu\_CWxSFMeterEnabled" 1 + + set iFieldStability to iFieldStability - 1 + + elseif iFieldStability >= CWxBaseStealthFieldStability + + printd "Cyberware: Stealth recharging has finished, stopping the quest" + + ; Just in case, if CWxBaseStealthFieldStability has changed + set iFieldStability to CWxBaseStealthFieldStability + + ; Go back to stand-by mode + StopQuest CWxStealthFieldQuest + + else + + printd "Cyberware: Stealth field is off, recharging in progress" + + set iFieldStability to iFieldStability + 1 + + endif + +end + diff --git a/src/CWxStealthOnHotkey.gek b/src/CWxStealthOnHotkey.gek new file mode 100644 index 0000000..3aa4d54 --- /dev/null +++ b/src/CWxStealthOnHotkey.gek @@ -0,0 +1,27 @@ +scn CWxStealthOnHotkey + +int iKeyID +ref rScript + +begin function { iKeyID } + + if MenuMode + return + endif + + if iKeyID != CWxStealthFieldHotkey + printd "Cyberware: Autoremoved stealth hotkey" + set rScript to GetCurrentScript + SetOnKeyUpEventHandler rScript 0 iKeyID + return + endif + + if player.IsSpellTargetAlt CWxStealthField + printd "Cyberware: Swithing stealth off" + SetStage CWxStealthFieldQuest 0 + else + printd "Cyberware: Swithing stealth on" + SetStage CWxStealthFieldQuest 1 + endif + +end diff --git a/src/CWxStealthOnUseSB.gek b/src/CWxStealthOnUseSB.gek new file mode 100644 index 0000000..a178e11 --- /dev/null +++ b/src/CWxStealthOnUseSB.gek @@ -0,0 +1,13 @@ +scn CWxStealthOnUseSB + +ref rStealthBoy + +begin function { rStealthBoy } + + if this != playerRef + return + endif + + SetStage CWxStealthFieldQuest 0 + +end diff --git a/src/CWxStealthUpdatePerk.gek b/src/CWxStealthUpdatePerk.gek new file mode 100644 index 0000000..884419e --- /dev/null +++ b/src/CWxStealthUpdatePerk.gek @@ -0,0 +1,20 @@ +scn CWxStealthUpdatePerk + +int iMode +array_var aImplants + +begin function { iMode } + + let aImplants := ar_list CWxImplants.torsoImplant1, CWxImplants.torsoImplant2, CWxImplants.torsoImplant3, CWxImplants.torsoImplant4 + call CWxFnSyncImplant CWxImplantStealthNanobots CWxImplantStealthPerk 1 aImplants + let aImplants := ar_null + + call CWxStealthUpdateTriggers 0 + + if player.IsSpellTargetAlt CWxStealthField + if player.HasPerk CWxImplantStealthPerk == 0 + SetStage CWxStealthFieldQuest 0 + endif + endif + +end diff --git a/src/CWxStealthUpdateTriggers.gek b/src/CWxStealthUpdateTriggers.gek new file mode 100644 index 0000000..4196781 --- /dev/null +++ b/src/CWxStealthUpdateTriggers.gek @@ -0,0 +1,23 @@ +scn CWxStealthUpdateTriggers + +int iStatus +int bEnabled + +begin function { iStatus } + + set bEnabled to player.HasPerk CWxImplantStealthPerk + + SetOnKeyUpEventHandler CWxStealthOnHotkey bEnabled CWxStealthFieldHotkey + SetOnUseAidItemEventHandler CWxStealthOnUseSB bEnabled StealthBoy + + if GetUIFloat "HUDMainMenu\_CWxSFMeterEnabled" + if player.IsSpellTargetAlt CWxStealthField == 0 + SetStage CWxStealthFieldQuest 0 + endif + elseif player.IsSpellTargetAlt CWxStealthField + if GetQuestRunning CWxStealthFieldQuest == 0 + StartQuest CWxStealthFieldQuest + endif + endif + +end diff --git a/src/CWxUpdatePerks.gek b/src/CWxUpdatePerks.gek new file mode 100644 index 0000000..9c9cb3f --- /dev/null +++ b/src/CWxUpdatePerks.gek @@ -0,0 +1,195 @@ +scn CWxUpdatePerks + +int iStage +array_var aImplants + +begin function { iStage } + + ; Refresh implant perks + printd "Updating perks" + + ;----------------------------------------------------------------------------------------------------------------------------------------------------- + ; Head + + + let aImplants := ar_list CWxImplants.headImplant1, CWxImplants.headImplant2, CWxImplants.headImplant3, CWxImplants.headImplant4 + + call CWxFnSyncImplant CWxImplantEmpathySynthesizer ImplantCharismaPerk 1 aImplants + call CWxFnSyncImplant CWxImplantLogicCoProcessor ImplantIntelligencePerk 1 aImplants + call CWxFnSyncImplant CWxImplantOpticsEnhancer ImplantPerceptionPerk 1 aImplants + call CWxFnSyncImplant CWxImplantProbabilityCalculator ImplantLuckPerk 1 aImplants + + call CWxFnSyncImplant CWxImplantVoiceModulatorL1 CWxImplantBarter1Perk 1 aImplants + call CWxFnSyncImplant CWxImplantVoiceModulatorL2 CWxImplantBarter1Perk 2 aImplants + call CWxFnSyncImplant CWxImplantVoiceModulatorL3 CWxImplantBarter1Perk 3 aImplants + call CWxFnSyncImplant CWxImplantVoiceModulatorL4 CWxImplantBarter1Perk 4 aImplants + + + ;----------------------------------------------------------------------------------------------------------------------------------------------------- + ; Torso + + + let aImplants := ar_list CWxImplants.torsoImplant1, CWxImplants.torsoImplant2, CWxImplants.torsoImplant3, CWxImplants.torsoImplant4 + + call CWxFnSyncImplant CWxImplantSyntheticLungs CWxImplantSyntheticLungsPerk 1 aImplants + call CWxFnSyncImplant CWxImplantMonocyteBreeder ImplantRegenPerk 1 aImplants + call CWxFnSyncImplant CWxImplantHypertrophyAccelerator ImplantStrengthPerk 1 aImplants + call CWxFnSyncImplant CWxImplantNociceptionRegulator ImplantEndurancePerk 1 aImplants + call CWxFnSyncImplant CWxImplantReflexBooster ImplantAgilityPerk 1 aImplants + call CWxFnSyncImplant CWxImplantSubDermalArmor ImplantDTPerk 1 aImplants + + + ;----------------------------------------------------------------------------------------------------------------------------------------------------- + ; Arms + + + if (CWxImplants.rightArmImplant1 == CWxImplantKineticAccelerator || CWxImplants.rightArmImplant2 == CWxImplantKineticAccelerator) && (CWxImplants.leftArmImplant1 == CWxImplantKineticAccelerator || CWxImplants.leftArmImplant2 == CWxImplantKineticAccelerator) + if player.GetPerkRank CWxImplantBTShoot1Perk != 2 + player.SetPerkRank CWxImplantBTShoot1Perk 2 + endif + elseif CWxImplants.rightArmImplant1 == CWxImplantKineticAccelerator || CWxImplants.rightArmImplant2 == CWxImplantKineticAccelerator || CWxImplants.leftArmImplant1 == CWxImplantKineticAccelerator || CWxImplants.leftArmImplant2 == CWxImplantKineticAccelerator + if player.GetPerkRank CWxImplantBTShoot1Perk != 1 + player.SetPerkRank CWxImplantBTShoot1Perk 1 + endif + else + player.removePerk CWxImplantBTShoot1Perk + endif + + if (CWxImplants.rightArmImplant1 == CWxImplantEMP || CWxImplants.rightArmImplant2 == CWxImplantEMP) && (CWxImplants.leftArmImplant1 == CWxImplantEMP || CWxImplants.leftArmImplant2 == CWxImplantEMP) + if player.GetPerkRank CWxImplantPulseEMPerk != 2 + player.SetPerkRank CWxImplantPulseEMPerk 2 + endif + if player.GetItemCount CWxWeapEMP != 1 + player.RemoveItem CWxWeapEMP 99 1 + player.AddItem CWxWeapEMP 1 1 + endif + elseif CWxImplants.rightArmImplant1 == CWxImplantEMP || CWxImplants.rightArmImplant2 == CWxImplantEMP || CWxImplants.leftArmImplant1 == CWxImplantEMP || CWxImplants.leftArmImplant2 == CWxImplantEMP + if player.GetPerkRank CWxImplantPulseEMPerk != 1 + player.SetPerkRank CWxImplantPulseEMPerk 1 + endif + if player.GetItemCount CWxWeapEMP != 1 + player.RemoveItem CWxWeapEMP 99 1 + player.AddItem CWxWeapEMP 1 1 + endif + else + player.removePerk CWxImplantPulseEMPerk + player.RemoveItem CWxWeapEMP 99 1 + endif + + if (CWxImplants.rightArmImplant1 == CWxImplantHFP || CWxImplants.rightArmImplant2 == CWxImplantHFP) && (CWxImplants.leftArmImplant1 == CWxImplantHFP || CWxImplants.leftArmImplant2 == CWxImplantHFP) + if player.GetPerkRank CWxImplantPulseHFPerk != 2 + player.SetPerkRank CWxImplantPulseHFPerk 2 + endif + if player.GetItemCount CWxWeapHFP != 1 + player.RemoveItem CWxWeapHFP 99 1 + player.AddItem CWxWeapHFP 1 1 + endif + elseif CWxImplants.rightArmImplant1 == CWxImplantHFP || CWxImplants.rightArmImplant2 == CWxImplantHFP || CWxImplants.leftArmImplant1 == CWxImplantHFP || CWxImplants.leftArmImplant2 == CWxImplantHFP + if player.GetPerkRank CWxImplantPulseHFPerk != 1 + player.SetPerkRank CWxImplantPulseHFPerk 1 + endif + if player.GetItemCount CWxWeapHFP != 1 + player.RemoveItem CWxWeapHFP 99 1 + player.AddItem CWxWeapHFP 1 1 + endif + else + player.removePerk CWxImplantPulseHFPerk + player.RemoveItem CWxWeapHFP 99 1 + endif + + + let aImplants := ar_list CWxImplants.rightArmImplant1, CWxImplants.rightArmImplant2 + + call CWxFnSyncImplant CWxImplantHandStabilizerL1 CWxImplantLockpick1RPerk 1 aImplants + call CWxFnSyncImplant CWxImplantHandStabilizerL2 CWxImplantLockpick1RPerk 2 aImplants + call CWxFnSyncImplant CWxImplantHandStabilizerL3 CWxImplantLockpick1RPerk 3 aImplants + call CWxFnSyncImplant CWxImplantHandStabilizerL4 CWxImplantLockpick1RPerk 4 aImplants + + call CWxFnSyncImplant CWxImplantMotorMemorizerL1 CWxImplantGuns1RPerk 1 aImplants + call CWxFnSyncImplant CWxImplantMotorMemorizerL2 CWxImplantGuns1RPerk 2 aImplants + call CWxFnSyncImplant CWxImplantMotorMemorizerL3 CWxImplantGuns1RPerk 3 aImplants + call CWxFnSyncImplant CWxImplantMotorMemorizerL4 CWxImplantGuns1RPerk 4 aImplants + + call CWxFnSyncImplant CWxImplantNeuralDatatoolL1 CWxImplantScience1RPerk 1 aImplants + call CWxFnSyncImplant CWxImplantNeuralDatatoolL2 CWxImplantScience1RPerk 2 aImplants + call CWxFnSyncImplant CWxImplantNeuralDatatoolL3 CWxImplantScience1RPerk 3 aImplants + call CWxFnSyncImplant CWxImplantNeuralDatatoolL4 CWxImplantScience1RPerk 4 aImplants + + call CWxFnSyncImplant CWxImplantRazorNailsL1 CWxImplantUnarmed1RPerk 1 aImplants + call CWxFnSyncImplant CWxImplantRazorNailsL2 CWxImplantUnarmed1RPerk 2 aImplants + call CWxFnSyncImplant CWxImplantRazorNailsL3 CWxImplantUnarmed1RPerk 3 aImplants + call CWxFnSyncImplant CWxImplantRazorNailsL4 CWxImplantUnarmed1RPerk 4 aImplants + + + let aImplants := ar_list CWxImplants.leftArmImplant1, CWxImplants.leftArmImplant2 + + call CWxFnSyncImplant CWxImplantHandStabilizerL1 CWxImplantLockpick1LPerk 1 aImplants + call CWxFnSyncImplant CWxImplantHandStabilizerL2 CWxImplantLockpick1LPerk 2 aImplants + call CWxFnSyncImplant CWxImplantHandStabilizerL3 CWxImplantLockpick1LPerk 3 aImplants + call CWxFnSyncImplant CWxImplantHandStabilizerL4 CWxImplantLockpick1LPerk 4 aImplants + + call CWxFnSyncImplant CWxImplantMotorMemorizerL1 CWxImplantGuns1LPerk 1 aImplants + call CWxFnSyncImplant CWxImplantMotorMemorizerL2 CWxImplantGuns1LPerk 2 aImplants + call CWxFnSyncImplant CWxImplantMotorMemorizerL3 CWxImplantGuns1LPerk 3 aImplants + call CWxFnSyncImplant CWxImplantMotorMemorizerL4 CWxImplantGuns1LPerk 4 aImplants + + call CWxFnSyncImplant CWxImplantNeuralDatatoolL1 CWxImplantScience1LPerk 1 aImplants + call CWxFnSyncImplant CWxImplantNeuralDatatoolL2 CWxImplantScience1LPerk 2 aImplants + call CWxFnSyncImplant CWxImplantNeuralDatatoolL3 CWxImplantScience1LPerk 3 aImplants + call CWxFnSyncImplant CWxImplantNeuralDatatoolL4 CWxImplantScience1LPerk 4 aImplants + + call CWxFnSyncImplant CWxImplantRazorNailsL1 CWxImplantUnarmed1LPerk 1 aImplants + call CWxFnSyncImplant CWxImplantRazorNailsL2 CWxImplantUnarmed1LPerk 2 aImplants + call CWxFnSyncImplant CWxImplantRazorNailsL3 CWxImplantUnarmed1LPerk 3 aImplants + call CWxFnSyncImplant CWxImplantRazorNailsL4 CWxImplantUnarmed1LPerk 4 aImplants + + + ;----------------------------------------------------------------------------------------------------------------------------------------------------- + ; Legs + + + if (CWxImplants.rightLegImplant1 == CWxImplantKineticAccelerator || CWxImplants.rightLegImplant2 == CWxImplantKineticAccelerator) && (CWxImplants.leftLegImplant1 == CWxImplantKineticAccelerator || CWxImplants.leftLegImplant2 == CWxImplantKineticAccelerator) + if player.GetPerkRank CWxImplantMovementPerk != 2 + player.SetPerkRank CWxImplantMovementPerk 2 + endif + elseif CWxImplants.rightLegImplant1 == CWxImplantKineticAccelerator || CWxImplants.rightLegImplant2 == CWxImplantKineticAccelerator || CWxImplants.leftLegImplant1 == CWxImplantKineticAccelerator || CWxImplants.leftLegImplant2 == CWxImplantKineticAccelerator + if player.GetPerkRank CWxImplantMovementPerk != 1 + player.SetPerkRank CWxImplantMovementPerk 1 + endif + else + player.removePerk CWxImplantMovementPerk + endif + + + let aImplants := ar_list CWxImplants.rightLegImplant1, CWxImplants.rightLegImplant2 + + call CWxFnSyncImplant CWxImplantTreadDamperL1 CWxImplantSneak1RPerk 1 aImplants + call CWxFnSyncImplant CWxImplantTreadDamperL2 CWxImplantSneak1RPerk 2 aImplants + call CWxFnSyncImplant CWxImplantTreadDamperL3 CWxImplantSneak1RPerk 3 aImplants + call CWxFnSyncImplant CWxImplantTreadDamperL4 CWxImplantSneak1RPerk 4 aImplants + + call CWxFnSyncImplant CWxImplantWeightAbsorberL1 CWxImplantCarryWeight1RPerk 1 aImplants + call CWxFnSyncImplant CWxImplantWeightAbsorberL2 CWxImplantCarryWeight1RPerk 2 aImplants + call CWxFnSyncImplant CWxImplantWeightAbsorberL3 CWxImplantCarryWeight1RPerk 3 aImplants + call CWxFnSyncImplant CWxImplantWeightAbsorberL4 CWxImplantCarryWeight1RPerk 4 aImplants + + + let aImplants := ar_list CWxImplants.leftLegImplant1, CWxImplants.leftLegImplant2 + + call CWxFnSyncImplant CWxImplantTreadDamperL1 CWxImplantSneak1LPerk 1 aImplants + call CWxFnSyncImplant CWxImplantTreadDamperL2 CWxImplantSneak1LPerk 2 aImplants + call CWxFnSyncImplant CWxImplantTreadDamperL3 CWxImplantSneak1LPerk 3 aImplants + call CWxFnSyncImplant CWxImplantTreadDamperL4 CWxImplantSneak1LPerk 4 aImplants + + call CWxFnSyncImplant CWxImplantWeightAbsorberL1 CWxImplantCarryWeight1LPerk 1 aImplants + call CWxFnSyncImplant CWxImplantWeightAbsorberL2 CWxImplantCarryWeight1LPerk 2 aImplants + call CWxFnSyncImplant CWxImplantWeightAbsorberL3 CWxImplantCarryWeight1LPerk 3 aImplants + call CWxFnSyncImplant CWxImplantWeightAbsorberL4 CWxImplantCarryWeight1LPerk 4 aImplants + + + let aImplants := ar_null + + + call CWxUpdateTriggers 0 + +end \ No newline at end of file diff --git a/src/CWxUpdateTriggers.gek b/src/CWxUpdateTriggers.gek new file mode 100644 index 0000000..bce88c4 --- /dev/null +++ b/src/CWxUpdateTriggers.gek @@ -0,0 +1,17 @@ +scn CWxUpdateTriggers + +int iMode + +begin function { iMode } + + if playerRef.HasPerk CWxImplantPulseEMPerk || playerRef.HasPerk CWxImplantPulseHFPerk + SetEventHandler "OnActorEquip" CWxOnEquipPulseGun "first"::playerRef "second"::CWxWeapEMP + SetEventHandler "OnActorEquip" CWxOnEquipPulseGun "first"::playerRef "second"::CWxWeapHFP + SetEventHandler "OnActorUnequip" CWxOnUnequipPulseGun "first"::playerRef "second"::CWxWeapEMP + SetEventHandler "OnActorUnequip" CWxOnUnequipPulseGun "first"::playerRef "second"::CWxWeapHFP + else + RemoveEventHandler "OnActorEquip" CWxOnEquipPulseGun + RemoveEventHandler "OnActorUnequip" CWxOnUnequipPulseGun + endif + +end