diff --git a/scripts/TWM2/LoadMod.cs b/scripts/TWM2/LoadMod.cs index 8440c55..0f8aeb5 100644 --- a/scripts/TWM2/LoadMod.cs +++ b/scripts/TWM2/LoadMod.cs @@ -32,6 +32,7 @@ exec("scripts/TWM2/Systems/PieceData.cs"); //Piece Data, /undo Command exec("scripts/TWM2/Systems/DChalg.cs"); //Daily Challenges exec("scripts/TWM2/Systems/ArmorEnergyShields.cs"); //Armor Shields exec("scripts/TWM2/Systems/Store.cs"); //Mula +exec("scripts/TWM2/Systems/weaponModes.cs"); //Global Defines for Weapon Modes exec("scripts/TWM2/AI/DroneAI.cs"); //Drones diff --git a/scripts/TWM2/Systems/weaponModes.cs b/scripts/TWM2/Systems/weaponModes.cs new file mode 100644 index 0000000..1ae1c49 --- /dev/null +++ b/scripts/TWM2/Systems/weaponModes.cs @@ -0,0 +1,140 @@ +// WeaponModes.cs +// Phantom139 +// TWM2 3.9 +// Declares weapon mode print tags for weapons (Where necessary) + +//This value defines how often a player may switch modes. (In Miliseconds) +$WeaponModes::SwitchDelay = 75; + +function displayWeaponInfo(%this, %obj, %pMode, %sMode, %replaceTags) { + %imageName = %this.getName(); + %printMsg = ""; + + if($WeaponModesTag[%imageName] !$= "") { + %printMsg = $WeaponModesTag[%imageName]; + %printMsg = strReplace(%printMsg, "[XMSG]", $WeaponModes[%imageName, %pMode, %sMode]); + } + else { + %printMsg = $WeaponModes[%imageName, %pMode, %sMode]; + } + //Replace tags is a special field used to replace instances with other instances. + // Essentially, when using this param, you want the first word to be [TAG] and then everything up to the \t to be what you want. + for(%i = 0; %i < getFieldCount(%replaceTags); %i++) { + %replaceA = getWord(getField(%replaceTags, %i), 0); + %replaceB = getWords(getField(%replaceTags, %i), 1, getWordCount(getField(%replaceTags, %i))); + %printMsg = strReplace(%printMsg, %replaceA, %replaceB); + } + + CommandToClient(%obj.client, 'BottomPrint', %printMsg, 3, 3); +} + +//This is where you can define the print messages for your weapons. There are two options for coding these tags. +// 1. Use $WeaponModesTag[Image]: to declare a standard text for all prints. The only difference is in the [X] tag. If you don't define this, the system uses #2 by default. +// 2. Use $WeaponModes[Image, Pri, Sec]: To declare individual modes, if $WeaponModesTag is defined, this replaces [X], otherwise this is the text used. + +//Construction Tool +$WeaponModesTag[ConstructionToolImage] = ">>>Construction Tool<<<\n[XMSG]\nLuCiD, Mostlikely, JackTL."; +$WeaponModes[ConstructionToolImage, 0, 0] = "Mode: Deconstruction | Sub Mode: Normal Deconstruction"; +$WeaponModes[ConstructionToolImage, 0, 1] = "Mode: Deconstruction | Sub Mode: Cascading Deconstruction"; +$WeaponModes[ConstructionToolImage, 1, 0] = "Mode: Rotate | Sub Mode: Push [REPA] Degrees"; +$WeaponModes[ConstructionToolImage, 1, 1] = "Mode: Rotate | Sub Mode: Pull [REPA] Degrees"; +$WeaponModes[ConstructionToolImage, 2, 0] = "Mode: Advanced Rotation | Sub Mode: Select Center Of Rotation"; +$WeaponModes[ConstructionToolImage, 2, 1] = "Mode: Advanced Rotation | Sub Mode: Add Object To Rotation List"; +$WeaponModes[ConstructionToolImage, 2, 2] = "Mode: Advanced Rotation | Sub Mode: Select Rotation Speed"; +$WeaponModes[ConstructionToolImage, 2, 3] = "Mode: Advanced Rotation | Sub Mode: Apply Rotation"; +$WeaponModes[ConstructionToolImage, 2, 4] = "Mode: Advanced Rotation | Sub Mode: Flash Selected Items"; +$WeaponModes[ConstructionToolImage, 2, 5] = "Mode: Advanced Rotation | Sub Mode: Clear Rotation List"; +$WeaponModes[ConstructionToolImage, 3, 0] = "Mode: Power Management | Sub Mode: Toggle Power Generation Object"; +$WeaponModes[ConstructionToolImage, 3, 1] = "Mode: Power Management | Sub Mode: Increase Current Power Frequency"; +$WeaponModes[ConstructionToolImage, 3, 2] = "Mode: Power Management | Sub Mode: Decrease Current Power Frequency"; +$WeaponModes[ConstructionToolImage, 3, 3] = "Mode: Power Management | Sub Mode: Read Object Power Information"; + +//Manipulator Gun +$WeaponModesTag[EditGunImage] = ">>>Manipulator<<< - Phantom139\n[XMSG]"; +$WeaponModes[EditGunImage, 0, 0] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Blue Pad - [LSB] - MSB"; +$WeaponModes[EditGunImage, 0, 1] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: LSB - [MSB] - Walkway"; +$WeaponModes[EditGunImage, 0, 2] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: MSB - [Walkway] - Medium Floor"; +$WeaponModes[EditGunImage, 0, 3] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Walkway - [Medium Floor] - Dark Pad"; +$WeaponModes[EditGunImage, 0, 4] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Medium Floor - [Dark Pad] - V-Pad"; +$WeaponModes[EditGunImage, 0, 5] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Dark Pad - [V-Pad] - C.1 Backpack"; +$WeaponModes[EditGunImage, 0, 6] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: V-Pad - [C.1 Backpack] - C.2 Small Containment"; +$WeaponModes[EditGunImage, 0, 7] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.1 Backpack - [C.2 Small Containment] - C.3 Large Containment"; +$WeaponModes[EditGunImage, 0, 8] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.2 Small Containment - [C.3 Large Containment] - C.4 Compressor"; +$WeaponModes[EditGunImage, 0, 9] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.3 Large Containment - [C.4 Compressor] - C.5 Tubes"; +$WeaponModes[EditGunImage, 0, 10] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.4 Compressor - [C.5 Tubes] - C.6 Quantium Battery"; +$WeaponModes[EditGunImage, 0, 11] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.5 Tubes - [C.6 Quantium Battery] - C.7 Proton Acc."; +$WeaponModes[EditGunImage, 0, 12] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.6 Quantium Battery - [C.7 Proton Acc.] - C.8 Cargo Crate"; +$WeaponModes[EditGunImage, 0, 13] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.7 Proton Acc. - [C.8 Cargo Crate] - C.9 Mag Cooler"; +$WeaponModes[EditGunImage, 0, 14] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.8 Cargo Crate - [C.9 Mag Cooler] - C.10 Recycle Unit"; +$WeaponModes[EditGunImage, 0, 15] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.9 Mag Cooler - [C.10 Recycle Unit] - C.11 Fuel Canister"; +$WeaponModes[EditGunImage, 0, 16] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.10 Recycle Unit - [C.11 Fuel Canister] - C.12 Wooden Box"; +$WeaponModes[EditGunImage, 0, 17] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.11 Fuel Canister - [C.12 Wooden Box] - C.13 Plasma Router"; +$WeaponModes[EditGunImage, 0, 18] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.12 Wooden Box - [C.13 Plasma Router] - Statue Base"; +$WeaponModes[EditGunImage, 0, 19] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.13 Plasma Router - [Statue Base] - Blue Pad"; +$WeaponModes[EditGunImage, 0, 20] = " Mine: - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Statue Base - [Blue Pad] - LSB"; +$WeaponModes[EditGunImage, 1, 0] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Yellow - [Solid White] - Solid Red"; +$WeaponModes[EditGunImage, 1, 1] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid White - [Solid Red] - Solid Green"; +$WeaponModes[EditGunImage, 1, 2] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Red - [Solid Green] - Solid Blue"; +$WeaponModes[EditGunImage, 1, 3] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Green - [Solid Blue] - Solid Cyan"; +$WeaponModes[EditGunImage, 1, 4] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Blue - [Solid Cyan] - Solid Magenta"; +$WeaponModes[EditGunImage, 1, 5] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Cyan - [Solid Magenta] - Solid Yellow"; +$WeaponModes[EditGunImage, 1, 6] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Magenta - [Solid Yellow] - Team Pass White"; +$WeaponModes[EditGunImage, 1, 7] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Yellow - [Team Pass White] - Team Pass Red"; +$WeaponModes[EditGunImage, 1, 8] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass White - [Team Pass Red] - Team Pass Green"; +$WeaponModes[EditGunImage, 1, 9] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Red - [Team Pass Green] - Team Pass Blue"; +$WeaponModes[EditGunImage, 1, 10] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Green - [Team Pass Blue] - Team Pass Cyan"; +$WeaponModes[EditGunImage, 1, 11] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Blue - [Team Pass Cyan] - Team Pass Magenta"; +$WeaponModes[EditGunImage, 1, 12] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Cyan - [Team Pass Magenta] - Team Pass Yellow"; +$WeaponModes[EditGunImage, 1, 13] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Magenta - [Team Pass Yellow] - All Pass White"; +$WeaponModes[EditGunImage, 1, 14] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Yellow - [All Pass White] - All Pass Red"; +$WeaponModes[EditGunImage, 1, 15] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass White - [All Pass Red] - All Pass Green"; +$WeaponModes[EditGunImage, 1, 16] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Red - [All Pass Green] - All Pass Blue"; +$WeaponModes[EditGunImage, 1, 17] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Green - [All Pass Blue] - All Pass Cyan"; +$WeaponModes[EditGunImage, 1, 18] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Blue - [All Pass Cyan] - All Pass Magenta"; +$WeaponModes[EditGunImage, 1, 19] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Cyan - [All Pass Magenta] - All Pass Yellow"; +$WeaponModes[EditGunImage, 1, 20] = " Mine: Pad Swap - - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Magenta - [All Pass Yellow] - Solid White"; +$WeaponModes[EditGunImage, 2, 0] = " Mine: Pad Swap - FF Swap - - Cloak/Fade - Delete Objects \n Grenade: Mortar - [Anti Air] - Missile"; +$WeaponModes[EditGunImage, 2, 1] = " Mine: Pad Swap - FF Swap - - Cloak/Fade - Delete Objects \n Grenade: Anti Air - [Missile] - Plasma"; +$WeaponModes[EditGunImage, 2, 2] = " Mine: Pad Swap - FF Swap - - Cloak/Fade - Delete Objects \n Grenade: Missile - [Plasma] - ELF"; +$WeaponModes[EditGunImage, 2, 3] = " Mine: Pad Swap - FF Swap - - Cloak/Fade - Delete Objects \n Grenade: Plasma - [ELF] - Mortar"; +$WeaponModes[EditGunImage, 2, 4] = " Mine: Pad Swap - FF Swap - - Cloak/Fade - Delete Objects \n Grenade: ELF - [Mortar] - Anti Air"; +$WeaponModes[EditGunImage, 3, 0] = " Mine: Pad Swap - FF Swap - Barrel Swap - - Delete Objects \n Grenade: [Cloak] - UnCloak - Fade - UnFade"; +$WeaponModes[EditGunImage, 3, 1] = " Mine: Pad Swap - FF Swap - Barrel Swap - - Delete Objects \n Grenade: Cloak - [UnCloak] - Fade - UnFade"; +$WeaponModes[EditGunImage, 3, 2] = " Mine: Pad Swap - FF Swap - Barrel Swap - - Delete Objects \n Grenade: Cloak - UnCloak - [Fade] - UnFade"; +$WeaponModes[EditGunImage, 3, 3] = " Mine: Pad Swap - FF Swap - Barrel Swap - - Delete Objects \n Grenade: Cloak - UnCloak - Fade - [UnFade]"; +$WeaponModes[EditGunImage, 4, 0] = " Mine: Pad Swap - FF Swap - Barrel Swap - Cloak/Fade - \n Grenade: [Single] - Cascade"; +$WeaponModes[EditGunImage, 4, 1] = " Mine: Pad Swap - FF Swap - Barrel Swap - Cloak/Fade - \n Grenade: Single - [Cascade]"; + +//Merge Tool +$WeaponModesTag[MergeToolImage] = ">>>M/I/S Tool<<<\n[XMSG]\nCoded by Electricutioner."; +$WeaponModes[MergeToolImage, 0, 0] = "Mode: Merge. Fire the tool at two pieces. If possible, they will merge. Tolerance: " @ $ElecMod::MergeTool::Tolerance @ " meters."; +$WeaponModes[MergeToolImage, 0, 1] = "Mode: Merge. Fire the tool at two pieces. If possible, they will merge. Tolerance: " @ $ElecMod::MergeTool::HighTolerance @ " meters."; +$WeaponModes[MergeToolImage, 1, 0] = "Mode: Isometric. Fire the tool at a piece to isometrically rotate them. Rotate: Default."; +$WeaponModes[MergeToolImage, 1, 1] = "Mode: Isometric. Fire the tool at a piece to isometrically rotate them. Rotate: Z-Axis."; +$WeaponModes[MergeToolImage, 2, 0] = "Mode: Split. Fire at a piece to split it in half. Axis: Automatic."; +$WeaponModes[MergeToolImage, 2, 1] = "Mode: Split. Fire at a piece to split it on crosshair. Axis: Automatic."; +$WeaponModes[MergeToolImage, 2, 2] = "Mode: Split. Fire at a piece to split it in half. Axis: X."; +$WeaponModes[MergeToolImage, 2, 3] = "Mode: Split. Fire at a piece to split it in half. Axis: Y."; +$WeaponModes[MergeToolImage, 2, 4] = "Mode: Split. Fire at a piece to split it in half. Axis: Z."; +$WeaponModes[MergeToolImage, 2, 5] = "Mode: Split. Fire at a piece to split it on crosshair. Axis: X."; +$WeaponModes[MergeToolImage, 2, 6] = "Mode: Split. Fire at a piece to split it on crosshair. Axis: Y."; +$WeaponModes[MergeToolImage, 2, 7] = "Mode: Split. Fire at a piece to split it on crosshair. Axis: Z."; +$WeaponModes[MergeToolImage, 3, 0] = "Mode: Nudge. Fire at a piece to move it. Nudge [REPA]M +X Axis."; +$WeaponModes[MergeToolImage, 3, 1] = "Mode: Nudge. Fire at a piece to move it. Nudge [REPA]M +Y Axis."; +$WeaponModes[MergeToolImage, 3, 2] = "Mode: Nudge. Fire at a piece to move it. Nudge [REPA]M +Z Axis."; +$WeaponModes[MergeToolImage, 3, 3] = "Mode: Nudge. Fire at a piece to move it. Nudge [REPA]M -X Axis."; +$WeaponModes[MergeToolImage, 3, 4] = "Mode: Nudge. Fire at a piece to move it. Nudge [REPA]M -Y Axis."; +$WeaponModes[MergeToolImage, 3, 5] = "Mode: Nudge. Fire at a piece to move it. Nudge [REPA]M -Z Axis."; +$WeaponModes[MergeToolImage, 4, 0] = "Mode: Full Scale. Fire at a piece to scale it. Grow .01M."; +$WeaponModes[MergeToolImage, 4, 1] = "Mode: Full Scale. Fire at a piece to scale it. Shrink .01M."; + +//Super Chain Gun +$WeaponModesTag[SuperChaingunImage] = ">>>Super Chaingun<<<\n[XMSG]\nConstruct, Mostlikely, JackTL."; +$WeaponModes[SuperChaingunImage, 0, 0] = "Rapid Fire O.P. Insta-Kill Bullets"; +$WeaponModes[SuperChaingunImage, 1, 0] = "Ion Shots: Ion Progression Disabled"; +$WeaponModes[SuperChaingunImage, 1, 1] = "Ion Shots: Ion Progression Enabled"; +$WeaponModes[SuperChaingunImage, 2, 0] = "Repair Pulse"; +$WeaponModes[SuperChaingunImage, 3, 0] = "Cloak Pulse"; +$WeaponModes[SuperChaingunImage, 4, 0] = "Deconstruction Pulse"; +$WeaponModes[SuperChaingunImage, 5, 0] = "EMP Pulse"; +$WeaponModes[SuperChaingunImage, 6, 0] = "Morphing Pulse"; diff --git a/scripts/inventory.cs b/scripts/inventory.cs index 5f85264..3731684 100644 --- a/scripts/inventory.cs +++ b/scripts/inventory.cs @@ -156,146 +156,18 @@ function ShapeBase::throw(%this,%data) } function ShapeBase::use(%this, %data) { -// if(%data.class $= "Weapon") -// error("ShapeBase::use " @ %data); if(%data $= Grenade) { - // Weapon modes - - //[most] 'ey lets do some unification here.. :D - if(%this.getMountedImage(0) && GetWord($weaponSettings1[%this.getMountedImage(0).getName()],0)) { - if (!(GetSimTime() > (%this.grenadeModeTime + 100))) - return; - %this.grenadeModeTime = getSimTime(); //not 'that' unified.. ;) - - return %this.getMountedImage(0).ChangeMode(%this,1,2); //looksie.. 2 stands for weapons (level 1) - - } - - //[most] - if (%this.getMountedImage(0) !$= "") { - if (%this.getMountedImage(0).getname() $= "MergeToolImage") { - %this.client.MTSubMode++; - if (%this.client.MTMode == 0 && %this.client.MTSubMode == 2) - %this.client.MTSubMode = 0; - if (%this.client.MTMode == 1 && %this.client.MTSubMode == 2) - %this.client.MTSubMode = 0; - if (%this.client.MTMode == 2 && %this.client.MTSubMode == 8) - %this.client.MTSubMode = 0; - if (%this.client.MTMode == 3 && %this.client.MTSubMode == 6) - %this.client.MTSubMode = 0; - if (%this.client.MTMode == 4 && %this.client.MTSubMode == 2) - %this.client.MTSubMode = 0; - - MTShowStatus(%this.client); - return; - } - } - //end of modifier modes - - if (%this.usingConstructionTool == 1 && getSimTime() > (%this.grenadeModeTime + 100) && %this.performing == 0) { - %this.grenadeModeTime = getSimTime(); - if (%this.constructionToolMode == 0) { - if (%this.constructionToolMode2 == 1) { - %this.constructionToolMode2 = 0; - bottomPrint(%this.client,"Normal deconstruction",2,1); - return; - } - else { - %this.constructionToolMode2 = 1; - bottomPrint(%this.client,"Cascading deconstruction",2,1); - return; - } - } - else if (%this.constructionToolMode == 1) { - if(%this.client.RotateAngle $= "") { - %this.client.RotateAngle = 22.5; - } - if (%this.constructionToolMode2 == 1) { - %this.constructionToolMode2 = 0; - bottomPrint(%this.client,"Rotate push ("@mfloor(%this.client.RotateAngle)@" Degrees)",2,1); - return; - } - else { - %this.constructionToolMode2 = 1; - bottomPrint(%this.client,"Rotate pull ("@mfloor(%this.client.RotateAngle)@" Degrees)",2,1); - return; - } - } - else if (%this.constructionToolMode == 2) { - if (%this.constructionToolMode2 == 5) { - %this.constructionToolMode2 = 0; - bottomPrint(%this.client,"Select target as center of rotation",2,1); - return; - } - else if (%this.constructionToolMode2 == 0) { - %this.constructionToolMode2 = 1; - bottomPrint(%this.client,"Select objects to rotate",2,1); - return; - } - else if (%this.constructionToolMode2 == 1) { - %this.constructionToolMode2 = 2; - bottomPrint(%this.client,"Select rotation speed",2,1); - return; - } - else if (%this.constructionToolMode2 == 2) { - %this.constructionToolMode2 = 3; - bottomPrint(%this.client,"Apply rotation",2,1); - return; - } - else if (%this.constructionToolMode2 == 3) { - %this.constructionToolMode2 = 4; - bottomPrint(%this.client,"Display selection",2,1); - return; - } - else { - %this.constructionToolMode2 = 5; - bottomPrint(%this.client,"Clear list",2,1); - return; - } - } - else { - if (%this.constructionToolMode2 == 3) { - %this.constructionToolMode2 = 0; - bottomPrint(%this.client,"Toggle generator power state",2,1); - return; - } - else if (%this.constructionToolMode2 == 0) { - %this.constructionToolMode2 = 1; - bottomPrint(%this.client,"Increase current frequency",2,1); - return; - } - else if (%this.constructionToolMode2 == 1) { - %this.constructionToolMode2 = 2; - bottomPrint(%this.client,"Decrease current frequency",2,1); - return; - } - else { - %this.constructionToolMode2 = 3; - bottomPrint(%this.client,"Read power state",2,1); - return; - } - } - } - if(%this.UsingEditTool == 1) { - ChangeEditGunMode(%this, %data, 2); //Secondary Modes + //[3.9] Phantom139: Stripped out all of the x specific stuff here in favor of a cleaner system + if(%this.hasGrenadeModes) { + //2: Grenade Modes + if(getSimTime() > (%this.changeModeTime + $WeaponModes::SwitchDelay)) { + %this.getMountedImage($WeaponSlot).changeMode(%this, 2); + %this.changeModeTime = getSimTime(); + } + if(%this.changingModeBlocksUse) { + return; + } } - if (%this.usingSuperChaingun == 1) { - if (!(getSimTime() > (%this.grenadeModeTime + 100))) - return; - %this.grenadeModeTime = getSimTime(); - if (%this.superChaingunMode == 1) { - if ($Ion::StopIon == 1) { - $Ion::StopIon = 0; - displaySCGStatus(%this); - return; - } - else { - $Ion::StopIon = 1; - displaySCGStatus(%this); - return; - } - } - } // figure out which grenade type you're using for(%x = 0; $InvGrenade[%x] !$= ""; %x++) { if(%this.inv[$NameToInv[$InvGrenade[%x]]] > 0) { @@ -447,73 +319,17 @@ function ShapeBase::use(%this, %data) { } // Weapon modes if (%data $= "Mine") { - - //[most] 'ey lets do some more unification here.. :D - if(%this.getMountedImage(0) && GetWord($weaponSettings2[%this.getMountedImage(0).getName()],0)) { - if(!GetSimTime() > (%this.grenadeModeTime + 100)) - return; - %this.grenadeModeTime = getSimTime(); //not 'that' unified.. ;) - - return %this.getMountedImage(0).ChangeMode(%this,1,3); //looksie.. 3 stands for weapons (level 2) - } - - //[most] - //modifier tool - if (%this.getMountedImage(0) !$= "") { - if (%this.getMountedImage(0).getname() $= "MergeToolImage") { - %this.client.MTMode++; - %this.client.MTSubMode = 0; - if (%this.client.MTMode >= 5) - %this.client.MTMode = 0; - - MTShowStatus(%this.client); - return; - } + //[3.9] Phantom139: Stripped out all of the x specific stuff here in favor of a cleaner system + if(%this.hasMineModes) { + //1: Mine Modes + if(getSimTime() > (%this.changeModeTime + $WeaponModes::SwitchDelay)) { + %this.getMountedImage($WeaponSlot).changeMode(%this, 1); + %this.changeModeTime = getSimTime(); + } + if(%this.changingModeBlocksUse) { + return; + } } - //end modifier tool - if (%this.usingConstructionTool == 1 && getSimTime() > (%this.mineModeTime + 100) && %this.performing == 0) { - %this.mineModeTime = getSimTime(); - if (%this.constructionToolMode == 3) { - %this.constructionToolMode = 0; - bottomPrint(%this.client,"Construction Tool mode set to deconstruct",2,1); - } - else if (%this.constructionToolMode == 0) { - %this.constructionToolMode = 1; - if(%this.client.RotateAngle $= "") { - %this.client.RotateAngle = 22.5; - } - bottomPrint(%this.client,"Construction Tool mode set to rotate ("@%this.client.RotateAngle@" Degrees)",2,1); - } - else if (%this.constructionToolMode == 1) { - %this.constructionToolMode = 2; - bottomPrint(%this.client,"Construction Tool mode set to advanced rotate",2,1); - } - else { - %powerFreq = %this.powerFreq; - if (%powerFreq < 1 || %powerFreq > upperPowerFreq(%this) || !%powerFreq) - %powerFreq = 1; - %this.powerFreq = %powerFreq; - %this.constructionToolMode = 3; - bottomPrint(%this.client,"Construction Tool mode set to power management\nPower frequency currently set to: " @ %this.powerFreq,2,2); - } - %this.constructionToolMode2 = 0; - return; - } - if(%this.UsingEditTool == 1) { - ChangeEditGunMode(%this, %data, 1); //Primary Modes - } - if (%this.usingSuperChaingun == 1) { - if (!(getSimTime() > (%this.mineModeTime + 100))) - return; - %this.mineModeTime = getSimTime(); - %this.superChaingunMode++; - if (%this.superChaingunMode > 6 - (5 * $host::nopulseSCG)) { - %this.superChaingunMode = 0; - } - displaySCGStatus(%this); - %this.superChaingunMode2 = 0; - return; - } } // default case if (isObject(%data)) { diff --git a/scripts/weapons/Construction/EditGun.cs b/scripts/weapons/Construction/EditGun.cs index 6f927c7..b5b6d92 100644 --- a/scripts/weapons/Construction/EditGun.cs +++ b/scripts/weapons/Construction/EditGun.cs @@ -109,13 +109,21 @@ function EditGunImage::onMount(%this, %obj, %slot) { if(!isSet(%obj.EditSMode)) { %obj.EditSMode = 0; } + //Phantom139: Added + %obj.hasMineModes = 1; + %obj.hasGrenadeModes = 1; + //Phantom139: End %obj.UsingEditTool = true; + displayWeaponInfo(%this, %obj, %obj.client.EditPMode, %obj.client.EditSMode); } -function EditGunImage::onunmount(%this,%obj,%slot) -{ -Parent::onUnmount(%this, %obj, %slot); -%obj.UsingEditTool = false; +function EditGunImage::onunmount(%this,%obj,%slot) { + Parent::onUnmount(%this, %obj, %slot); + %obj.UsingEditTool = false; + //Phantom139: Added + %obj.hasMineModes = 0; + %obj.hasGrenadeModes = 0; + //Phantom139: End } function EditGunImage::onFire(%data, %obj, %slot) { @@ -148,190 +156,29 @@ function EditGunImage::onFire(%data, %obj, %slot) { } } -function EditGunImage::onMount(%this, %obj, %slot) { - Parent::onMount(%this, %obj, %slot); - DispEditorToolInfo(%obj); - if(!isSet(%obj.EditPMode)) { - %obj.EditPMode = 0; - } - if(!isSet(%obj.EditSMode)) { - %obj.EditSMode = 0; - } - %obj.UsingEditTool = true; - -} - -function EditGunImage::onunmount(%this, %obj, %slot) { - Parent::onUnmount(%this, %obj, %slot); - %obj.UsingEditTool = false; -} - -function DispEditorToolInfo(%obj) { - switch(%obj.EditPMode) { - case 0: - %primary = "Pad Swapping"; - switch(%obj.EditSMode) { - case 0: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Blue Pad - [LSB] - MSB", 5, 3); - case 1: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: LSB - [MSB] - Walkway", 5, 3); - case 2: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: MSB - [Walkway] - Medium Floor ", 5, 3); - case 3: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Walkway - [Medium Floor] - Dark Pad", 5, 3); - case 4: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Medium Floor - [Dark Pad] - V-Pad", 5, 3); - case 5: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Dark Pad - [V-Pad] - C.1 Backpack", 5, 3); - case 6: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: V-Pad - [C.1 Backpack] - C.2 Small Containment", 5, 3); - case 7: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.1 Backpack - [C.2 Small Containment] - C.3 Large Containment", 5, 3); - case 8: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.2 Small Containment - [C.3 Large Containment] - C.4 Compressor", 5, 3); - case 9: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.3 Large Containment - [C.4 Compressor] - C.5 Tubes", 5, 3); - case 10: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.4 Compressor - [C.5 Tubes] - C.6 Quantium Bat.", 5, 3); - case 11: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.5 Tubes - [C.6 Quantium Bat.] - C.7 Proton Acc.", 5, 3); - case 12: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.6 Quantium Bat. - [C.7 Proton Acc.] - C.8 Cargo Crate", 5, 3); - case 13: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.7 Proton Acc. - [C.8 Cargo Crate] - C.9 Mag Cooler", 5, 3); - case 14: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.8 Cargo Crate - [C.9 Mag Cooler] - C.10 Recycle Unit", 5, 3); - case 15: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.9 Mag Cooler - [C.10 Recycle Unit] - C.11 Fuel Canister", 5, 3); - case 16: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.10 Recycle Unit - [C.11 Fuel Canister] - C.12 Wooden Box", 5, 3); - case 17: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.11 Fuel Canister - [C.12 Wooden Box] - C.13 Plasma Router", 5, 3); - case 18: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.12 Wooden Box - [C.13 Plasma Router] - Statue Base", 5, 3); - case 19: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: C.13 Plasma Router - [Statue Base] - Blue Pad", 5, 3); - case 20: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: [Pad Swap] - FF Swap - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Statue Base - [Blue Pad] - LSB", 5, 3); - } +function EditGunImage::changeMode(%this, %obj, %key) { + switch(%key) { case 1: - %primary = "Force-Field Swapping"; - switch(%obj.EditSMode) { - case 0: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Yellow - [Solid White] - Solid Red", 5, 3); - case 1: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid White - [Solid Red] - Solid Green", 5, 3); - case 2: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Red - [Solid Green] - Solid Blue", 5, 3); - case 3: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Green - [Solid Blue] - Solid Cyan", 5, 3); - case 4: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Blue - [Solid Cyan] - Solid Magenta", 5, 3); - case 5: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Cyan - [Solid Magenta] - Solid Yellow", 5, 3); - case 6: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Magenta - [Solid Yellow] - Team Pass White", 5, 3); - case 7: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Solid Yellow - [Team Pass White] - Team Pass Red", 5, 3); - case 8: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass White - [Team Pass Red] - Team Pass Green", 5, 3); - case 9: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Red - [Team Pass Green] - Team Pass Blue", 5, 3); - case 10: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Green - [Team Pass Blue] - Team Pass Cyan", 5, 3); - case 11: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Blue - [Team Pass Cyan] - Team Pass Magenta", 5, 3); - case 12: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Cyan - [Team Pass Magenta] - Team Pass Yellow", 5, 3); - case 13: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Magenta - [Team Pass Yellow] - All Pass White", 5, 3); - case 14: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: Team Pass Yellow - [All Pass White] - All Pass Red", 5, 3); - case 15: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass White - [All Pass Red] - All Pass Green", 5, 3); - case 16: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Red - [All Pass Green] - All Pass Blue", 5, 3); - case 17: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Green - [All Pass Blue] - All Pass Cyan", 5, 3); - case 18: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Blue - [All Pass Cyan] - All Pass Magenta", 5, 3); - case 19: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Cyan - [All Pass Magenta] - All Pass Yellow", 5, 3); - case 20: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - [FF Swap] - Barrel Swap - Cloak/Fade - Delete Objects \n Grenade: All Pass Magenta - [All Pass Yellow] - Solid White", 5, 3); - } + //Mine Modes + %obj.client.EditPMode++; + %obj.client.EditSMode = 0; + if (%obj.client.EditPMode >= 5) + %obj.client.EditPMode = 0; case 2: - %primary = "Turret Barrel Swapping"; - switch(%obj.EditSMode) { - case 0: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - [Barrel Swap] - Cloak/Fade - Delete Objects \n Grenade: Mortar - [Anti Air] - Missile", 5, 3); - case 1: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - [Barrel Swap] - Cloak/Fade - Delete Objects \n Grenade: Anti Air - [Missile] - Plasma", 5, 3); - case 2: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - [Barrel Swap] - Cloak/Fade - Delete Objects \n Grenade: Missile - [Plasma] - ELF", 5, 3); - case 3: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - [Barrel Swap] - Cloak/Fade - Delete Objects \n Grenade: Plasma - [ELF] - Mortar", 5, 3); - case 4: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - [Barrel Swap] - Cloak/Fade - Delete Objects \n Grenade: ELF - [Mortar] - Anti Air", 5, 3); - } - case 3: - switch(%obj.EditSMode) { - case 0: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - Barrel Swap - [Cloak/Fade] - Delete Objects \n Grenade: [Cloak] - UnCloak - Fade - UnFade ", 5, 3); - case 1: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - Barrel Swap - [Cloak/Fade] - Delete Objects \n Grenade: Cloak - [UnCloak] - Fade - UnFade ", 5, 3); - case 2: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - Barrel Swap - [Cloak/Fade] - Delete Objects \n Grenade: Cloak - UnCloak - [Fade] - UnFade ", 5, 3); - case 3: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - Barrel Swap - [Cloak/Fade] - Delete Objects \n Grenade: Cloak - UnCloak - Fade - [UnFade] ", 5, 3); - } - case 4: - switch(%obj.EditSMode) { - case 0: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - Barrel Swap - Cloak/Fade - [Delete Objects] \n Grenade: [Single] - Cascade ", 5, 3); - case 1: - commandToClient( %obj.client, 'BottomPrint', "[{Manipulator}] - Phantom139 \n Mine: Pad Swap - FF Swap - Barrel Swap - Cloak/Fade - [Delete Objects] \n Grenade: Single - [Cascade] ", 5, 3); - } - } -} - -function ChangeEditGunMode(%this, %data, %PriSec) { //This Is Easier To use - if(%PriSec == 1) { //Primary - if (!(getSimTime() > (%this.mineModeTime + 100))) - return; - %this.mineModeTime = getSimTime(); - %this.EditPMode++; - %this.EditSMode = 0; //Reset Secondary Mode TO Prevent Errors - if (%this.EditPMode > 4) { - %this.EditPMode = 0; - } - DispEditorToolInfo(%this); - return; - } - else { //Secondary - if (!(getSimTime() > (%this.grenadeModeTime + 100))) - return; - %this.grenadeModeTime = getSimTime(); - %this.EditSMode++; - //Check Primaries - if(%this.EditPMode == 0 && %this.EditSMode > 20) { - %this.EditSMode = 0; - } - else if(%this.EditPMode == 1 && %this.EditSMode > 20) { - %this.EditSMode = 0; - } - else if(%this.EditPMode == 2 && %this.EditSMode > 4) { - %this.EditSMode = 0; - } - else if(%this.EditPMode == 3 && %this.EditSMode > 3) { - %this.EditSMode = 0; - } - else if(%this.EditPMode == 4 && %this.EditSMode > 1) { - %this.EditSMode = 0; - } - DispEditorToolInfo(%this); - return; + //Grenade Modes + %obj.client.EditSMode++; + if (%obj.client.EditPMode == 0 && %obj.client.EditSMode == 21) + %obj.client.EditSMode = 0; + if (%obj.client.EditPMode == 1 && %obj.client.EditSMode == 21) + %obj.client.EditSMode = 0; + if (%obj.client.EditPMode == 2 && %obj.client.EditSMode == 5) + %obj.client.EditSMode = 0; + if (%obj.client.EditPMode == 3 && %obj.client.EditSMode == 4) + %obj.client.EditSMode = 0; + if (%obj.client.EditPMode == 4 && %obj.client.EditSMode == 2) + %obj.client.EditSMode = 0; } + displayWeaponInfo(%this, %obj, %obj.client.EditPMode, %obj.client.EditSMode); } //Editor Tool Functioning diff --git a/scripts/weapons/Construction/constructionTool.cs b/scripts/weapons/Construction/constructionTool.cs index cdcf6a1..ca8c448 100644 --- a/scripts/weapons/Construction/constructionTool.cs +++ b/scripts/weapons/Construction/constructionTool.cs @@ -126,6 +126,35 @@ datablock ShapeBaseImageData(ConstructionToolImage) { stateTransitionOnTimeout[5] = "ActivateReady"; }; +//Phantom139: Added Weapon Mode Code Here. +function ConstructionToolImage::changeMode(%this, %obj, %key) { + if(%obj.performing) { + commandToClient(%obj.client, 'bottomPrint', "Construction Tool\nCannot Change Modes While Performing.", 3, 3); + return; + } + switch(%key) { + case 1: + //Mine Modes + %obj.client.constructionToolMode++; + %obj.client.constructionToolMode2 = 0; + if (%obj.client.constructionToolMode >= 4) + %obj.client.constructionToolMode = 0; + case 2: + //Grenade Modes + %obj.client.constructionToolMode2++; + if (%obj.client.constructionToolMode == 0 && %obj.client.constructionToolMode2 == 2) + %obj.client.constructionToolMode2 = 0; + if (%obj.client.constructionToolMode == 1 && %obj.client.constructionToolMode2 == 2) + %obj.client.constructionToolMode2 = 0; + if (%obj.client.constructionToolMode == 2 && %obj.client.constructionToolMode2 == 6) + %obj.client.constructionToolMode2 = 0; + if (%obj.client.constructionToolMode == 3 && %obj.client.constructionToolMode2 == 4) + %obj.client.constructionToolMode2 = 0; + } + displayWeaponInfo(%this, %obj, %obj.client.constructionToolMode, %obj.client.constructionToolMode2, "[REPA] "@%obj.client.RotateAngle); +} +//Phantom139: End + function ConstructionToolImage::onActivate(%this,%obj,%slot) { } @@ -186,6 +215,9 @@ function ConstructionToolImage::onMount(%this,%obj,%slot) { %curWeap = ( %obj.getMountedImage($WeaponSlot) == 0 ) ? "" : %obj.getMountedImage($WeaponSlot).getName().item.pickUpName; BottomPrint(%obj.client, "Now using " @ %curWeap, 2, 1 ); } + if(%obj.client.RotateAngle $= "") { + %obj.client.RotateAngle = 22.5; + } %obj.errMsgSent = false; %obj.client.setWeaponsHudActive(%this.item); %obj.usingConstructionTool = true; @@ -193,6 +225,10 @@ function ConstructionToolImage::onMount(%this,%obj,%slot) { %obj.constructionToolMode = 0; if (!%obj.constructionToolMode2) %obj.constructionToolMode2 = 0; + //Phantom139: Added + %obj.hasMineModes = 1; + %obj.hasGrenadeModes = 1; + //Phantom139: End WeaponImage::onMount(%this,%obj,%slot); } @@ -203,6 +239,10 @@ function ConstructionToolImage::onUnmount(%data, %obj, %slot) { stopPerforming(%obj); messageClient(%player.client, 'msgClient', '\c2Construction Tool stopped.'); } + //Phantom139: Added + %obj.hasMineModes = 0; + %obj.hasGrenadeModes = 0; + //Phantom139: End %obj.errMsgSent = false; Parent::deconstruct(%data, %obj, %slot); WeaponImage::onUnmount(%data, %obj, %slot); diff --git a/scripts/weapons/Construction/modifiertool.cs b/scripts/weapons/Construction/modifiertool.cs index b9af81d..169ee4d 100644 --- a/scripts/weapons/Construction/modifiertool.cs +++ b/scripts/weapons/Construction/modifiertool.cs @@ -545,91 +545,56 @@ function MergeToolImage::onFire(%data,%obj,%slot) function MergeToolImage::onMount(%this,%obj,%slot) { + if(%obj.MTMode $= "") + %obj.MTMode = 0; + if(%obj.MTSubMode $= "") + %obj.MTSubMode = 0; %obj.usingMTelec = 1; + //Phantom139: Added + %obj.hasMineModes = 1; + %obj.hasGrenadeModes = 1; + //Phantom139: End Parent::onMount(%this, %obj, %slot); %obj.mountImage(MergeToolImage, 0); - MTShowStatus(%obj.client); + displayWeaponInfo(%this, %obj, %obj.client.MTMode, %obj.client.MTSubMode, "[REPA] "@%obj.client.MoveSetting); } function MergeToolImage::onUnmount(%this,%obj,%slot) { Parent::onUnmount(%this, %obj, %slot); %obj.usingMTelec = 0; + //Phantom139: Added + %obj.hasMineModes = 0; + %obj.hasGrenadeModes = 0; + //Phantom139: End } -function MTShowStatus(%client) -{ - if (%client.MTMode $= "") - %client.MTMode = 0; - if (%client.MTSubMode $= "") - %client.MTSubMode = 0; - - switch (%client.MTMode) - { - case 0: - switch (%client.MTSubMode) - { - case 0: - %status = "Mode: Merge. Fire the tool at two pieces. If possible, they will merge. Tolerance: " @ $ElecMod::MergeTool::Tolerance @ " meters."; - case 1: - %status = "Mode: Merge. Fire the tool at two pieces. If possible, they will merge. Tolerance: " @ $ElecMod::MergeTool::HighTolerance @ " meters."; - } - case 1: - switch (%client.MTSubMode) - { - case 0: - %status = "Mode: Isometric. Fire the tool at a piece to isometrically rotate them. Rotate: Default."; - case 1: - %status = "Mode: Isometric. Fire the tool at a piece to isometrically rotate them. Rotate: Z Axis."; - } - case 2: - switch (%client.MTSubMode) - { - case 0: - %status = "Mode: Split. Fire at a piece to split it in half. Axis: Automatic."; - case 1: - %status = "Mode: Split. Fire at a piece to split it on crosshair. Axis: Automatic."; - case 2: - %status = "Mode: Split. Fire at a piece to split it in half. Axis: X."; - case 3: - %status = "Mode: Split. Fire at a piece to split it in half. Axis: Y."; - case 4: - %status = "Mode: Split. Fire at a piece to split it in half. Axis: Z."; - case 5: - %status = "Mode: Split. Fire at a piece to split it on crosshair. Axis: X."; - case 6: - %status = "Mode: Split. Fire at a piece to split it on crosshair. Axis: Y."; - case 7: - %status = "Mode: Split. Fire at a piece to split it on crosshair. Axis: Z."; - } - case 3: - if(%client.MoveSetting $= "") { - %client.MoveSetting = 0.1; - } - switch (%client.MTSubMode) { - case 0: - %status = "Mode: Nudge. Fire at a piece to move it. Nudge "@%client.MoveSetting@"M +X Axis."; - case 1: - %status = "Mode: Nudge. Fire at a piece to move it. Nudge "@%client.MoveSetting@"M -X Axis."; - case 2: - %status = "Mode: Nudge. Fire at a piece to move it. Nudge "@%client.MoveSetting@"M +Y Axis."; - case 3: - %status = "Mode: Nudge. Fire at a piece to move it. Nudge "@%client.MoveSetting@"M -Y Axis."; - case 4: - %status = "Mode: Nudge. Fire at a piece to move it. Nudge "@%client.MoveSetting@"M +Z Axis."; - case 5: - %status = "Mode: Nudge. Fire at a piece to move it. Nudge "@%client.MoveSetting@"M -Z Axis."; - } - case 4: - switch (%client.MTSubMode) { - case 0: - %status = "Mode: Full Scale. Fire at a piece to scale it. Grow .01M."; - case 1: - %status = "Mode: Full Scale. Fire at a piece to scale it. Shrink .01M."; - } - } - CommandToClient(%client, 'BottomPrint', ">>>M/I/S Tool<<<\n" @ %status @ "\nCoded by Electricutioner.", 3, 3 ); +//Phantom139: Added Weapon Mode Code Here. +function MergeToolImage::changeMode(%this, %obj, %key) { + switch(%key) { + case 1: + //Mine Modes + %obj.client.MTMode++; + %obj.client.MTSubMode = 0; + if (%obj.client.MTMode >= 5) + %obj.client.MTMode = 0; + case 2: + //Grenade Modes + %obj.client.MTSubMode++; + if (%obj.client.MTMode == 0 && %obj.client.MTSubMode == 2) + %obj.client.MTSubMode = 0; + if (%obj.client.MTMode == 1 && %obj.client.MTSubMode == 2) + %obj.client.MTSubMode = 0; + if (%obj.client.MTMode == 2 && %obj.client.MTSubMode == 8) + %obj.client.MTSubMode = 0; + if (%obj.client.MTMode == 3 && %obj.client.MTSubMode == 6) + %obj.client.MTSubMode = 0; + if (%obj.client.MTMode == 4 && %obj.client.MTSubMode == 2) + %obj.client.MTSubMode = 0; + } + displayWeaponInfo(%this, %obj, %obj.client.MTMode, %obj.client.MTSubMode, "[REPA] "@%obj.client.MoveSetting); } +//Phantom139: End //Split code begins here. //The goal of this is to be a semi-inverse of the merge... diff --git a/scripts/weapons/Construction/superChaingun.cs b/scripts/weapons/Construction/superChaingun.cs index 38861e4..1bd991b 100644 --- a/scripts/weapons/Construction/superChaingun.cs +++ b/scripts/weapons/Construction/superChaingun.cs @@ -214,28 +214,32 @@ function SuperChaingunImage::onMount(%this,%obj,%slot) { %obj.superChaingunMode = 0; if (!%obj.superChaingunMode2) %obj.superChaingunMode2 = 0; - displaySCGStatus(%obj); + %obj.hasMineModes = 1; + %obj.hasGrenadeModes = 1; + displayWeaponInfo(%this, %obj, %obj.client.superChaingunMode, %obj.client.superChaingunMode2); WeaponImage::onMount(%this,%obj,%slot); } function SuperChaingunImage::onUnmount(%data, %obj, %slot) { %obj.usingSuperChaingun = false; + %obj.hasMineModes = 0; + %obj.hasGrenadeModes = 0; WeaponImage::onUnmount(%data, %obj, %slot); } -function displaySCGStatus(%obj) { - if (%obj.superChaingunMode == 1) - bottomPrint(%obj.client,">>>Super Chain Gun<<<\nIons. Progression: " @ ($Ion::StopIon ? "disabled" : "enabled") @ ".",2,2); - else if (%obj.superChaingunMode == 2) - bottomPrint(%obj.client,">>>Super Chain Gun<<<\nRepair Pulse.",2,2); - else if (%obj.superChaingunMode == 3) - bottomPrint(%obj.client,">>>Super Chain Gun<<<\nCloak Pulse.",2,2); - else if (%obj.superChaingunMode == 4) - bottomPrint(%obj.client,">>>Super Chain Gun<<<\nDeconstruction Pulse",2,2); - else if (%obj.superChaingunMode == 5) - bottomPrint(%obj.client,">>>Super Chain Gun<<<\nElectro-static Pulse.",2,2); - else if (%obj.superChaingunMode == 6) - bottomPrint(%obj.client,">>>Super Chain Gun<<<\nMorph Pulse.",2,2); - else - bottomPrint(%obj.client,">>>Super Chain Gun<<<\nRapid fire bullets.",2,2); +function SuperChaingunImage::changeMode(%this, %obj, %key) { + switch(%key) { + case 1: + //Mine Modes + %obj.client.superChaingunMode++; + %obj.client.superChaingunMode2 = 0; + if (%obj.client.superChaingunMode > 6 - (5 * $host::nopulseSCG)) + %obj.client.superChaingunMode = 0; + case 2: + //Grenade Modes + %obj.client.superChaingunMode2++; + if (%obj.client.superChaingunMode == 1 && %obj.client.superChaingunMode2 == 2) + %obj.client.superChaingunMode2 = 0; + } + displayWeaponInfo(%this, %obj, %obj.client.superChaingunMode, %obj.client.superChaingunMode2); }