diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 20c910e56..25be59055 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,19 +12,19 @@ jobs: steps: - uses: actions/checkout@master - - uses: docker://node:10-alpine + - uses: docker://node:20-alpine name: Setup Node - name: Install dependencies - working-directory: _tools + working-directory: _tools/build-tool run: npm install - name: Assemble and pack - working-directory: _tools + working-directory: _tools/build-tool run: npx gulp - uses: actions/upload-artifact@master with: name: PBO-Files - path: _tools/build/pbo + path: build/pbo diff --git a/.gitignore b/.gitignore index 07ba90008..5da0fdcae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,55 +1,11 @@ -# Windows image file caches -Thumbs.db -ehthumbs.db +# dev mission.sqm +/Missionframework/mission.sqm -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# ========================= -# Operating System Files -# ========================= - -# OSX -# ========================= - -.DS_Store -.AppleDouble -.LSOverride - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk +# Tools local configs +/_tools/config.ps1 # Build directory /build/ -/_tools/build/ -/_tools/node_modules/ # KP-Steam steam_appid.txt diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 000000000..5ea85aece --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,22 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Launch game", + "type": "shell", + "command": "powershell -c '. ${workspaceFolder}/_tools/vscode/Run-Game.ps1'", + "problemMatcher": [], + "group": { + "kind": "build" + } + }, + { + "label": "Setup", + "type": "shell", + "command": "powershell -c '. ${workspaceFolder}/_tools/vscode/Invoke-Setup.ps1'", + "problemMatcher": [] + } + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 2104c166f..3661d5ff1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## 0.96.8 (TBD) +* Added: Czech translation. Thanks to [MJVEVERUSKA](https://github.com/MJVEVERUSKA) +* Added: Ability to carry ressource crates. +* Added: Scripts/configs to setup and run development environment from VSCode tasks +* Updated: Italian localization. Thanks to [k4s0](https://github.com/k4s0) +* Tweaked: Splitted the config file in separate files, as it was getting quite big. +* Tweaked: Unified the prefix of all variables to `KPLIB_`. +* Tweaked: Arsenal presets are now in the presets folder. +* Tweaked: Blacklist and arsenal extension are now own files in presets/arsenal. +* Tweaked: Renamed blufor/opfor to players/enemies, to possibly avoid further confusion with using an opfor faction for a player preset. +* Tweaked: Parameter value variables are having a `param` prefix now. +* Tweaked: Comments/structure of the config file. Also added some category prefix sorting to some config variables. +* Tweaked: GM East enemy preset, lower the chance for unarmed BRDM. +* Tweaked: Moved mission build tool into subdirectory +* Fixed: Description.ext stated 34 players while there are also 3 additional HC slots, so 37 in total. +* Fixed: Sector monitor got stuck after sector cap was reached until restarting the server. +* Fixed: FOB truck got mass set, but should've just apply to FOB boxes. +* Fixed: Chernarus Winter (and summer) weren't recognized for ignored buildings list for civ rep loss. + ## 0.96.7a (2020-09-12) * Added: Contact DLC static weapon backpacks to default blacklist. * Added: Czech translation. Thanks to [MJVEVERUSKA](https://github.com/MJVEVERUSKA) diff --git a/LICENSE.md b/LICENSE.md index 54e507fa3..a8067e258 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -2,6 +2,18 @@ MIT License Copyright (c) 2015 [GreuhZbug](https://github.com/GreuhZbug), [Wyqer](https://github.com/Wyqer) +----- + +In this project there could be files with a different license than the +general project license. In this case the file header will state the +license. Folders could also contain a separate LICENSE file. In this +case all content in that folder and all subfolders are published under +that license instead. + +* GNU General Public License v3.0 (\KP) + +----- + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights diff --git a/Missionbasefiles/kp_liberation.pja310/mission.sqm b/Missionbasefiles/kp_liberation.pja310/mission.sqm index 9e734fc47..8b8f3ad8b 100644 --- a/Missionbasefiles/kp_liberation.pja310/mission.sqm +++ b/Missionbasefiles/kp_liberation.pja310/mission.sqm @@ -3827,7 +3827,7 @@ class Mission dataType="Marker"; position[]={6960.8052,0,11203.651}; name="capture_45"; - text="Applejakerie Village"; + text="Ajak's Village"; type="n_art"; colorName="ColorEAST"; id=714; diff --git a/Missionbasefiles/kp_liberation.yulakia/mission.sqm b/Missionbasefiles/kp_liberation.yulakia/mission.sqm new file mode 100644 index 000000000..7a628f015 --- /dev/null +++ b/Missionbasefiles/kp_liberation.yulakia/mission.sqm @@ -0,0 +1,5582 @@ +version=54; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=513; + class ItemIDProvider + { + nextID=536; + }; + class MarkerIDProvider + { + nextID=1; + }; + class LayerIndexProvider + { + nextID=48; + }; + class Camera + { + pos[]={1136.3691,57.610386,551.93207}; + dir[]={0.31148231,-0.69641817,0.64663756}; + up[]={0.30223709,0.71760648,0.62744266}; + aside[]={0.90099382,1.687662e-006,-0.43400642}; + }; +}; +binarizationWanted=0; +sourceName="KP_Liberation"; +addons[]= +{ + "A3_Ui_F", + "A3_Modules_F_Curator_Curator", + "A3_Modules_F", + "A3_Characters_F", + "A3_Structures_F_System", + "A3_Structures_F_Mil_Cargo", + "A3_Structures_F_Mil_Helipads", + "A3_Structures_F_Civ_Lamps", + "A3_Structures_F_Enoch_Infrastructure_Lamps", + "A3_Structures_F_Mil_Fortification", + "A3_Structures_F_Mil_BagBunker", + "A3_Structures_F_EPA_Civ_Constructions", + "A3_Structures_F_Civ_Camping", + "A3_Structures_F_Items_Vessels", + "A3_Structures_F_Ind_Cargo", + "A3_Structures_F_Civ_Constructions", + "A3_Structures_F_EPA_Mil_Scrapyard", + "A3_Structures_F_EPB_Items_Vessels" +}; +class AddonsMetaData +{ + class List + { + items=10; + class Item0 + { + className="A3_Ui_F"; + name="Arma 3 - User Interface"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_Modules_F_Curator"; + name="Arma 3 Zeus Update - Scripted Modules"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item2 + { + className="A3_Modules_F"; + name="Arma 3 Alpha - Scripted Modules"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item3 + { + className="A3_Characters_F"; + name="Arma 3 Alpha - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item4 + { + className="A3_Structures_F"; + name="Arma 3 - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item5 + { + className="A3_Structures_F_Mil"; + name="Arma 3 - Military Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item6 + { + className="A3_Structures_F_Enoch_Infrastructure"; + name="Arma 3 Contact Platform - Infrastructure Objects"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item7 + { + className="A3_Structures_F_EPA"; + name="Arma 3 Survive Episode - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item8 + { + className="A3_Structures_F_Ind"; + name="Arma 3 - Industrial Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item9 + { + className="A3_Structures_F_EPB"; + name="Arma 3 Adapt Episode - Buildings and Structures"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + }; +}; +randomSeed=1898175; +class ScenarioData +{ + author="Wyqer"; +}; +class Mission +{ + class Intel + { + timeOfChanges=1800.0002; + startWeather=0; + startWind=0.1; + startWaves=0.1; + forecastWeather=0; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2035; + day=28; + hour=13; + minute=37; + startFogDecay=0.014; + forecastFogDecay=0.014; + }; + class Entities + { + items=49; + class Item0 + { + dataType="Marker"; + position[]={727.42505,13.64373,439.94232}; + name="ghost_spot"; + type="Empty"; + id=0; + atlOffset=9.5367432e-007; + }; + class Item1 + { + dataType="Trigger"; + position[]={716.91187,14.773228,460.45825}; + angle=6.1939669; + class Attributes + { + condition="true"; + timeout[]={1.5,1.5,1.5}; + interuptable=1; + effectMusic="LeadTrack01_F"; + }; + id=1; + type="EmptyDetector"; + }; + class Item2 + { + dataType="Trigger"; + position[]={728.75171,13.630027,456.83325}; + angle=6.1939669; + class Attributes + { + condition="!(player in thislist)"; + sizeA=250; + sizeB=250; + timeout[]={0.2,0.2,0.2}; + interuptable=1; + activationBy="WEST"; + effectMusic="EventTrack01_F_Curator"; + }; + id=2; + type="EmptyDetector"; + }; + class Item3 + { + dataType="Trigger"; + position[]={740.97046,13.011345,463.95239}; + angle=6.1939669; + class Attributes + { + condition="GRLIB_endgame == 1"; + timeout[]={17,17,17}; + interuptable=1; + effectMusic="LeadTrack03_F"; + }; + id=3; + type="EmptyDetector"; + }; + class Item4 + { + dataType="Logic"; + class PositionInfo + { + position[]={718.41968,13.589347,442.86548}; + angles[]={6.1969995,0,0.012798273}; + }; + name="zm1"; + id=4; + type="ModuleCurator_F"; + atlOffset=-9.5367432e-007; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCurator_F_Owner"; + expression="_this setVariable ['Owner',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value="commandant"; + }; + }; + }; + class Attribute1 + { + property="ModuleCurator_F_Forced"; + expression="_this setVariable ['Forced',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + class Attribute2 + { + property="ModuleCurator_F_Name"; + expression="_this setVariable ['Name',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value="OVERLORD"; + }; + }; + }; + class Attribute3 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCurator_F_Addons"; + expression="_this setVariable ['Addons',_value,true];"; + class Value + { + class data + { + singleType="SCALAR"; + value=0; + }; + }; + }; + nAttributes=5; + }; + }; + class Item5 + { + dataType="Logic"; + class PositionInfo + { + position[]={714.53296,13.655223,443.97437}; + angles[]={6.1558776,0,0.0032018756}; + }; + id=5; + type="ModuleCuratorSetAttributesObject_F"; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCuratorSetAttributesObject_F_Lock"; + expression="_this setVariable ['Lock',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute1 + { + property="ModuleCuratorSetAttributesObject_F_Exec"; + expression="_this setVariable ['Exec',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute2 + { + property="ModuleCuratorSetAttributesObject_F_Fuel"; + expression="_this setVariable ['Fuel',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute3 + { + property="ModuleCuratorSetAttributesObject_F_UnitPos"; + expression="_this setVariable ['UnitPos',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCuratorSetAttributesObject_F_Curator"; + expression="_this setVariable ['Curator',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value=""; + }; + }; + }; + class Attribute5 + { + property="ModuleCuratorSetAttributesObject_F_Damage"; + expression="_this setVariable ['Damage',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute6 + { + property="ModuleCuratorSetAttributesObject_F_Rank"; + expression="_this setVariable ['Rank',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute7 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute8 + { + property="ModuleCuratorSetAttributesObject_F_RespawnVehicle"; + expression="_this setVariable ['RespawnVehicle',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute9 + { + property="ModuleCuratorSetAttributesObject_F_Skill"; + expression="_this setVariable ['Skill',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + class Attribute10 + { + property="ModuleCuratorSetAttributesObject_F_RespawnPosition"; + expression="_this setVariable ['RespawnPosition',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=11; + }; + }; + class Item6 + { + dataType="Logic"; + class PositionInfo + { + position[]={714.69312,14.140789,447.95532}; + angles[]={6.1590276,0,6.2767816}; + }; + id=6; + type="ModuleCuratorSetAttributesGroup_F"; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCuratorSetAttributesObject_F_UnitPos"; + expression="_this setVariable ['UnitPos',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute1 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute2 + { + property="ModuleCuratorSetAttributesGroup_F_Curator"; + expression="_this setVariable ['Curator',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value=""; + }; + }; + }; + class Attribute3 + { + property="ModuleCuratorSetAttributesObject_F_SpeedMode"; + expression="_this setVariable ['SpeedMode',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCuratorSetAttributesObject_F_Skill"; + expression="_this setVariable ['Skill',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute5 + { + property="ModuleCuratorSetAttributesObject_F_GroupID"; + expression="_this setVariable ['GroupID',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute6 + { + property="ModuleCuratorSetAttributesObject_F_Formation"; + expression="_this setVariable ['Formation',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute7 + { + property="ModuleCuratorSetAttributesObject_F_RespawnPosition"; + expression="_this setVariable ['RespawnPosition',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute8 + { + property="ModuleCuratorSetAttributesObject_F_Behaviour"; + expression="_this setVariable ['Behaviour',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=9; + }; + }; + class Item7 + { + dataType="Logic"; + class PositionInfo + { + position[]={714.63647,14.505245,451.45728}; + angles[]={6.2129025,0,6.2703872}; + }; + id=7; + type="ModuleCuratorSetAttributesPlayer_F"; + atlOffset=9.5367432e-007; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCuratorSetAttributesObject_F_Lock"; + expression="_this setVariable ['Lock',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute1 + { + property="ModuleCuratorSetAttributesObject_F_Exec"; + expression="_this setVariable ['Exec',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute2 + { + property="ModuleCuratorSetAttributesObject_F_Fuel"; + expression="_this setVariable ['Fuel',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute3 + { + property="ModuleCuratorSetAttributesObject_F_UnitPos"; + expression="_this setVariable ['UnitPos',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCuratorSetAttributesObject_F_Curator"; + expression="_this setVariable ['Curator',_value,true];"; + class Value + { + class data + { + singleType="STRING"; + value=""; + }; + }; + }; + class Attribute5 + { + property="ModuleCuratorSetAttributesObject_F_Damage"; + expression="_this setVariable ['Damage',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute6 + { + property="ModuleCuratorSetAttributesObject_F_Rank"; + expression="_this setVariable ['Rank',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute7 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute8 + { + property="ModuleCuratorSetAttributesObject_F_RespawnVehicle"; + expression="_this setVariable ['RespawnVehicle',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute9 + { + property="ModuleCuratorSetAttributesObject_F_Skill"; + expression="_this setVariable ['Skill',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + class Attribute10 + { + property="ModuleCuratorSetAttributesObject_F_RespawnPosition"; + expression="_this setVariable ['RespawnPosition',_value,true];"; + class Value + { + class data + { + singleType="BOOL"; + value=1; + }; + }; + }; + nAttributes=11; + }; + }; + class Item8 + { + dataType="Logic"; + class PositionInfo + { + position[]={741.33569,13.437191,452.07642}; + angles[]={0.057536088,0,6.2224603}; + }; + name="gamelogic"; + id=8; + type="Logic"; + }; + class Item9 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={727.45673,13.947972,467.49121}; + angles[]={6.2767816,6.0991402,6.2160864}; + }; + side="West"; + flags=6; + class Attributes + { + rank="COLONEL"; + init="removeallWeapons this; removebackpack this; this setVariable ['ace_medical_medicClass', 1]; this setVariable ['ACE_isEngineer', 1];"; + name="commandant"; + description="Platoon Leader (Commander)"; + isPlayer=1; + isPlayable=1; + }; + id=10; + type="B_officer_F"; + atlOffset=9.5367432e-007; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={728.80243,13.839616,466.72217}; + angles[]={6.2767911,6.1139932,6.1969995}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CAPTAIN"; + init="removeallWeapons this; removebackpack this;"; + description="Platoon Sergeant"; + isPlayable=1; + }; + id=11; + type="B_Soldier_SL_F"; + atlOffset=1.9073486e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=9; + atlOffset=9.5367432e-007; + }; + class Item10 + { + dataType="Group"; + side="West"; + class Entities + { + items=11; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={721.13055,14.380643,464.3667}; + }; + side="West"; + flags=7; + class Attributes + { + rank="SERGEANT"; + description="Squad 1 Leader"; + isPlayable=1; + }; + id=13; + type="B_Soldier_SL_F"; + atlOffset=3.8146973e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={719.50946,14.540656,464.17969}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 1 Medic"; + isPlayable=1; + }; + id=14; + type="B_medic_F"; + atlOffset=-2.8610229e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={722.95087,14.192469,464.55029}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Engineer"; + isPlayable=1; + }; + id=15; + type="B_engineer_F"; + atlOffset=3.8146973e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={720.32782,14.463464,462.64063}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 1 Team 1 Leader"; + isPlayable=1; + }; + id=16; + type="B_Soldier_TL_F"; + atlOffset=-1.9073486e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={719.52509,14.526539,461.65771}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 1 Rifleman"; + isPlayable=1; + }; + id=17; + type="B_Soldier_F"; + atlOffset=4.7683716e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={720.38446,14.382547,460.47754}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 1 Rifleman"; + isPlayable=1; + }; + id=18; + type="B_Soldier_F"; + atlOffset=5.7220459e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={719.56024,14.460076,459.50635}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 1 Rifleman"; + isPlayable=1; + }; + id=19; + type="B_Soldier_F"; + atlOffset=4.7683716e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={722.29462,14.239716,462.96436}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 1 Team 2 Leader"; + isPlayable=1; + }; + id=20; + type="B_Soldier_TL_F"; + atlOffset=3.8146973e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={721.96844,14.245275,461.91162}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 2 Rifleman"; + isPlayable=1; + }; + id=21; + type="B_Soldier_F"; + atlOffset=7.6293945e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={722.7204,14.117359,461.02441}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 2 Rifleman"; + isPlayable=1; + }; + id=22; + type="B_Soldier_F"; + atlOffset=6.6757202e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={722.02899,14.16418,459.99658}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 1 Team 2 Rifleman"; + isPlayable=1; + }; + id=23; + type="B_Soldier_F"; + atlOffset=7.6293945e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=12; + atlOffset=3.8146973e-006; + }; + class Item11 + { + dataType="Group"; + side="West"; + class Entities + { + items=11; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={726.18329,13.920542,464.0376}; + }; + side="West"; + flags=7; + class Attributes + { + rank="SERGEANT"; + description="Squad 2 Leader"; + isPlayable=1; + }; + id=25; + type="B_Soldier_SL_F"; + atlOffset=1.2397766e-005; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={724.56415,14.029535,463.85059}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 2 Medic"; + isPlayable=1; + }; + id=26; + type="B_medic_F"; + atlOffset=1.2397766e-005; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={728.0036,13.821078,464.22168}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Engineer"; + isPlayable=1; + }; + id=27; + type="B_engineer_F"; + atlOffset=0.02301693; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={725.38055,13.878402,462.31152}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 2 Team 1 Leader"; + isPlayable=1; + }; + id=28; + type="B_Soldier_TL_F"; + atlOffset=1.9073486e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={724.57977,13.906486,461.32861}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 1 Rifleman"; + isPlayable=1; + }; + id=29; + type="B_Soldier_F"; + atlOffset=7.6293945e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={725.43915,13.782779,460.14844}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 1 Rifleman"; + isPlayable=1; + }; + id=30; + type="B_Soldier_F"; + atlOffset=6.6757202e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={724.61102,13.85206,459.17725}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 1 Rifleman"; + isPlayable=1; + }; + id=31; + type="B_Soldier_F"; + atlOffset=0.040001869; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={727.3454,13.737057,462.63525}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Squad 2 Team 2 Leader"; + isPlayable=1; + }; + id=32; + type="B_Soldier_TL_F"; + atlOffset=1.2397766e-005; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={727.02118,13.740735,461.58252}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 2 Rifleman"; + isPlayable=1; + }; + id=33; + type="B_Soldier_F"; + atlOffset=9.5367432e-007; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={727.77509,13.668642,460.69531}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 2 Rifleman"; + isPlayable=1; + }; + id=34; + type="B_Soldier_F"; + atlOffset=1.9073486e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={727.08173,13.682388,459.66748}; + }; + side="West"; + flags=5; + class Attributes + { + description="Squad 2 Team 2 Rifleman"; + isPlayable=1; + }; + id=35; + type="B_Soldier_F"; + atlOffset=9.5367432e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=24; + atlOffset=1.2397766e-005; + }; + class Item12 + { + dataType="Logic"; + class PositionInfo + { + position[]={749.60522,12.041864,457.61597}; + angles[]={0.044771437,0,6.1495862}; + }; + name="HC1"; + isPlayable=1; + id=36; + type="HeadlessClient_F"; + atlOffset=9.5367432e-007; + }; + class Item13 + { + dataType="Logic"; + class PositionInfo + { + position[]={749.84546,12.60172,450.44702}; + angles[]={0.067099303,0,6.1433043}; + }; + name="HC2"; + isPlayable=1; + id=37; + type="HeadlessClient_F"; + atlOffset=9.5367432e-007; + }; + class Item14 + { + dataType="Logic"; + class PositionInfo + { + position[]={749.89233,12.707481,442.7605}; + angles[]={0.012798273,0,6.1464443}; + }; + name="HC3"; + isPlayable=1; + id=38; + type="HeadlessClient_F"; + }; + class Item15 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={730.52899,13.653187,464.94043}; + }; + side="West"; + flags=7; + class Attributes + { + rank="LIEUTENANT"; + description="MedEvac Pilot"; + isPlayable=1; + }; + id=40; + type="B_Helipilot_F"; + atlOffset=8.5830688e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={730.77509,13.559449,463.19824}; + }; + side="West"; + flags=5; + class Attributes + { + rank="SERGEANT"; + description="MedEvac Co-Pilot"; + isPlayable=1; + }; + id=41; + type="B_Helipilot_F"; + atlOffset=8.5830688e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={730.95477,13.531009,461.54248}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="MedEvac Medic"; + isPlayable=1; + }; + id=42; + type="B_medic_F"; + atlOffset=-5.7220459e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={731.13446,13.556926,459.92334}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="MedEvac Medic"; + isPlayable=1; + }; + id=43; + type="B_medic_F"; + atlOffset=-5.7220459e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=39; + atlOffset=8.5830688e-006; + }; + class Item16 + { + dataType="Group"; + side="West"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={732.77118,13.548852,465.25928}; + }; + side="West"; + flags=7; + class Attributes + { + rank="LIEUTENANT"; + description="Logistics Pilot"; + isPlayable=1; + }; + id=45; + type="B_Helipilot_F"; + atlOffset=4.7683716e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={733.10126,13.475261,463.15771}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Logistics Engineer"; + isPlayable=1; + }; + id=46; + type="B_engineer_F"; + atlOffset=7.6293945e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={733.19696,13.484642,461.39941}; + }; + side="West"; + flags=5; + class Attributes + { + rank="CORPORAL"; + description="Logistics Demolition Expert"; + isPlayable=1; + }; + id=47; + type="B_soldier_exp_F"; + atlOffset=-4.7683716e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=44; + atlOffset=4.7683716e-006; + }; + class Item17 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={734.94305,13.464605,465.59668}; + }; + side="West"; + flags=7; + class Attributes + { + rank="LIEUTENANT"; + description="CAS Pilot"; + isPlayable=1; + }; + id=49; + type="B_Helipilot_F"; + atlOffset=-3.8146973e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={735.30243,13.437823,463.28125}; + }; + side="West"; + flags=5; + class Attributes + { + rank="LIEUTENANT"; + description="CAS Pilot"; + isPlayable=1; + }; + id=50; + type="B_Helipilot_F"; + atlOffset=4.7683716e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=48; + atlOffset=-3.8146973e-006; + }; + class Item18 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={737.07977,13.341537,465.92969}; + }; + side="West"; + flags=7; + class Attributes + { + rank="SERGEANT"; + description="UAV and Intelligence"; + isPlayable=1; + }; + id=52; + type="B_soldier_UAV_F"; + atlOffset=-7.6293945e-006; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + singleType="SCALAR"; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=51; + atlOffset=-7.6293945e-006; + }; + class Item19 + { + dataType="Marker"; + position[]={728.98804,17.505718,454.5105}; + name="respawn"; + type="Empty"; + id=60; + atlOffset=3.8410578; + }; + class Item20 + { + dataType="Marker"; + position[]={1172.8141,4.3069363,566.28638}; + name="huronmarker"; + text="Spartan 01"; + type="b_air"; + id=61; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={1155.4945,3.5680678,607.12122}; + angles[]={0.022394964,0.51354545,0.0032018756}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="startbase"; + }; + id=62; + type="Land_ClutterCutter_small_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={1132.7123,3.4605937,603.59796}; + angles[]={6.2607903,0.49084777,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="littlebird_0"; + }; + id=63; + type="Land_ClutterCutter_small_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={1168.7581,4.6579146,583.7215}; + angles[]={6.2639866,0.54611778,0.057536088}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="huronspawn"; + }; + id=64; + type="Land_ClutterCutter_small_F"; + atlOffset=4.7683716e-007; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={1177.4672,3.898591,604.26929}; + angles[]={0.098876528,1.9651433,6.2192721}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="base_boxspawn"; + }; + id=65; + type="Land_ClutterCutter_small_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item25 + { + dataType="Marker"; + position[]={1164.5,4.4051976,583.0105}; + name="startbase_marker"; + text="Chimera Base"; + type="mil_start"; + colorName="ColorWEST"; + id=66; + atlOffset=4.7683716e-007; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={1139.1274,3.3252823,626.61969}; + angles[]={0,5.2623663,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + init="this setVariable [""ace_medical_isMedicalFacility"", true, true];"; + }; + id=67; + type="Land_Medevac_house_V1_F"; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={1162.3109,1.1521924,634.42737}; + angles[]={0,0.4546389,0}; + }; + side="Empty"; + class Attributes + { + name="boat_0"; + }; + id=68; + type="Land_ClutterCutter_small_F"; + atlOffset=1.0021924; + }; + class Item28 + { + dataType="Logic"; + class PositionInfo + { + position[]={727.112,13.872067,448.13199}; + angles[]={6.2735863,0,0}; + }; + areaSize[]={25,0,25}; + flags=1; + id=78; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=15; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=2; + }; + }; + class Item29 + { + dataType="Logic"; + class PositionInfo + { + position[]={1159.4113,3.9432144,596.75763}; + angles[]={0.0095994528,0,0.057536088}; + }; + areaSize[]={35,0,35}; + flags=1; + id=79; + type="ModuleHideTerrainObjects_F"; + class CustomAttributes + { + class Attribute0 + { + property="#filter"; + expression="_this setVariable [""#filter"",_value]"; + class Value + { + class data + { + singleType="SCALAR"; + value=7; + }; + }; + }; + class Attribute1 + { + property="#hideLocally"; + expression="_this setVariable [""#hideLocally"",_value]"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=2; + }; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={1168.214,1.007149,632.48517}; + angles[]={0,0.53017032,0}; + }; + side="Empty"; + class Attributes + { + name="boat_1"; + }; + id=80; + type="Land_ClutterCutter_small_F"; + atlOffset=1.1702186; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={1173.949,1.1201414,628.88898}; + angles[]={0,0.56513458,0}; + }; + side="Empty"; + class Attributes + { + name="boat_2"; + }; + id=81; + type="Land_ClutterCutter_small_F"; + atlOffset=0.98570275; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={1132.7358,3.4596801,603.55713}; + angles[]={6.2607903,0.49702296,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=82; + type="Land_HelipadSquare_F"; + atlOffset=7.1525574e-007; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={1143.1693,3.4425671,597.96619}; + angles[]={0,0.51918244,0.012798273}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="littlebird_1"; + }; + id=83; + type="Land_ClutterCutter_small_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={1143.1917,3.4428527,597.92468}; + angles[]={0,0.49350834,0.012798273}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=84; + type="Land_HelipadSquare_F"; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={1168.7351,4.6559296,583.69177}; + angles[]={6.2639894,0.51603246,0.063912325}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=85; + type="Land_HelipadSquare_F"; + atlOffset=4.7683716e-007; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={1153.6167,3.7520287,592.34601}; + angles[]={0,0.51556504,0.044770103}; + }; + side="Empty"; + flags=4; + class Attributes + { + name="littlebird_2"; + }; + id=86; + type="Land_ClutterCutter_small_F"; + class CustomAttributes + { + class Attribute0 + { + property="allowDamage"; + expression="_this allowdamage _value;"; + class Value + { + class data + { + singleType="BOOL"; + value=0; + }; + }; + }; + nAttributes=1; + }; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={1153.6392,3.7530329,592.30457}; + angles[]={0,0.49105084,0.044770103}; + }; + side="Empty"; + flags=4; + class Attributes + { + }; + id=87; + type="Land_HelipadSquare_F"; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={1139.2566,15.174818,574.60504}; + angles[]={0,0.50125682,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=94; + type="Land_LampAirport_F"; + atlOffset=-0.0047142506; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={1148,6.6147366,628.80988}; + angles[]={0,2.7201049,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + }; + id=95; + type="land_lampstreet_02_f"; + }; + class Item40 + { + dataType="Layer"; + name="Capture Points"; + class Entities + { + items=33; + class Item0 + { + dataType="Marker"; + position[]={2497.0391,18.507,4565.1602}; + name="capture_1"; + text="Adamovic Farm"; + type="n_art"; + colorName="ColorEAST"; + id=109; + atlOffset=-0.00037574768; + }; + class Item1 + { + dataType="Marker"; + position[]={6444.6982,2.79,10967.227}; + name="capture_20"; + text="Badaxev"; + type="n_art"; + colorName="ColorEAST"; + id=140; + atlOffset=-0.0013940334; + }; + class Item2 + { + dataType="Marker"; + position[]={4899.563,8,7184.4331}; + name="capture_24"; + text="Barmanovo"; + type="n_art"; + colorName="ColorEAST"; + id=144; + }; + class Item3 + { + dataType="Marker"; + position[]={9872.4854,19.989,9550.1865}; + name="capture_14"; + text="Buty"; + type="n_art"; + colorName="ColorEAST"; + id=134; + atlOffset=-0.00099945068; + }; + class Item4 + { + dataType="Marker"; + position[]={7436.0752,6.4289999,4595.7529}; + name="capture_10"; + text="Camp Nuka"; + type="n_art"; + colorName="ColorEAST"; + id=129; + atlOffset=-0.00073194504; + }; + class Item5 + { + dataType="Marker"; + position[]={11159.82,22.169001,8235.6885}; + name="capture_13"; + text="Chervenka"; + type="n_art"; + colorName="ColorEAST"; + id=133; + atlOffset=-0.00099945068; + }; + class Item6 + { + dataType="Marker"; + position[]={6523.7241,10.418,6796.9092}; + name="capture_23"; + text="Devina"; + type="n_art"; + colorName="ColorEAST"; + id=143; + atlOffset=-0.001288414; + }; + class Item7 + { + dataType="Marker"; + position[]={10810.784,9.6059999,4549.4258}; + name="capture_6"; + text="Falot Prison"; + type="n_art"; + colorName="ColorEAST"; + id=124; + atlOffset=-0.00047206879; + }; + class Item8 + { + dataType="Marker"; + position[]={1833.3569,13.66,2570.1506}; + name="capture"; + text="FOB Flerberk"; + type="n_art"; + colorName="ColorEAST"; + id=54; + }; + class Item9 + { + dataType="Marker"; + position[]={2536.5339,34.508999,9406.2832}; + name="capture_17"; + text="Gornigrad"; + type="n_art"; + colorName="ColorEAST"; + id=137; + atlOffset=-0.00099945068; + }; + class Item10 + { + dataType="Marker"; + position[]={1332.542,4.9590001,8917.0195}; + name="capture_16"; + text="Hauta"; + type="n_art"; + colorName="ColorEAST"; + id=136; + atlOffset=-0.00099992752; + }; + class Item11 + { + dataType="Marker"; + position[]={10387.657,49.969002,5998.5762}; + name="capture_26"; + text="Komatin"; + type="n_art"; + colorName="ColorEAST"; + id=146; + atlOffset=-0.00099945068; + }; + class Item12 + { + dataType="Marker"; + position[]={6769.0449,8,10044.396}; + name="capture_21"; + text="Komunograd"; + type="n_art"; + colorName="ColorEAST"; + id=141; + }; + class Item13 + { + dataType="Marker"; + position[]={8655.9023,71.390999,4825.834}; + name="capture_25"; + text="Laikanov"; + type="n_art"; + colorName="ColorEAST"; + id=145; + atlOffset=0.00024414063; + }; + class Item14 + { + dataType="Marker"; + position[]={10991.435,23.594999,3186.6111}; + name="capture_28"; + text="Markov Farms"; + type="n_art"; + colorName="ColorEAST"; + id=148; + atlOffset=-0.0009803772; + }; + class Item15 + { + dataType="Marker"; + position[]={1248.911,5,11657.518}; + name="capture_3"; + text="Martopol Docks"; + type="n_art"; + colorName="ColorEAST"; + id=121; + }; + class Item16 + { + dataType="Marker"; + position[]={6941.5132,16.148857,8747.1865}; + name="capture_22"; + text="Mazemovo Farmland"; + type="n_art"; + colorName="ColorEAST"; + id=142; + }; + class Item17 + { + dataType="Marker"; + position[]={7963.4082,55.089001,7425.9302}; + name="capture_12"; + text="Mirtelov"; + type="n_art"; + colorName="ColorEAST"; + id=131; + atlOffset=-0.00099945068; + }; + class Item18 + { + dataType="Marker"; + position[]={8959.8086,32.988998,11753.882}; + name="capture_27"; + text="Orlanov"; + type="n_art"; + colorName="ColorEAST"; + id=151; + atlOffset=-0.0010032654; + }; + class Item19 + { + dataType="Marker"; + position[]={3292.345,23.41,4265.5698}; + name="capture_2"; + text="Orpin"; + type="n_art"; + colorName="ColorEAST"; + id=110; + }; + class Item20 + { + dataType="Marker"; + position[]={4420.2192,33.02,10502.585}; + name="capture_4"; + text="Presidential Palace"; + type="n_art"; + colorName="ColorEAST"; + id=122; + atlOffset=-0.00037002563; + }; + class Item21 + { + dataType="Marker"; + position[]={10625.268,10.419,2321.906}; + name="capture_7"; + text="Rabina"; + type="n_art"; + colorName="ColorEAST"; + id=125; + atlOffset=-0.00074768066; + }; + class Item22 + { + dataType="Marker"; + position[]={5986.8379,30.700001,12296.996}; + name="capture_19"; + text="Sencilia"; + type="n_art"; + colorName="ColorEAST"; + id=139; + }; + class Item23 + { + dataType="Marker"; + position[]={4470.8472,12.804,9594.8975}; + name="capture_15"; + text="Stanta"; + type="n_art"; + colorName="ColorEAST"; + id=135; + atlOffset=-0.00092983246; + }; + class Item24 + { + dataType="Marker"; + position[]={4988.2632,10.229,12286.847}; + name="capture_18"; + text="Stipla"; + type="n_art"; + colorName="ColorEAST"; + id=138; + atlOffset=-0.0013484955; + }; + class Item25 + { + dataType="Marker"; + position[]={7502.0981,8.6709995,1546.922}; + name="capture_8"; + text="Tambova"; + type="n_art"; + colorName="ColorEAST"; + id=126; + atlOffset=-0.00019264221; + }; + class Item26 + { + dataType="Marker"; + position[]={12222.973,17.316521,10567.065}; + name="capture_30"; + text="Volkov"; + type="n_art"; + colorName="ColorEAST"; + id=155; + }; + class Item27 + { + dataType="Marker"; + position[]={10383.342,4.9990001,11162.264}; + name="capture_29"; + text="Yurievgrad"; + type="n_art"; + colorName="ColorEAST"; + id=154; + atlOffset=-0.00099992752; + }; + class Item28 + { + dataType="Marker"; + position[]={8535.5576,4.7249999,5987.4209}; + name="capture_5"; + text="Zacharov"; + type="n_art"; + colorName="ColorEAST"; + id=123; + atlOffset=-0.00068855286; + }; + class Item29 + { + dataType="Marker"; + position[]={3119.343,64.055,8978.8213}; + name="capture_31"; + text="Baralin Castle"; + type="n_art"; + colorName="ColorEAST"; + id=158; + atlOffset=-0.00051879883; + }; + class Item30 + { + dataType="Marker"; + position[]={6956.2891,4.96,1212.02}; + name="capture_32"; + text="Port Tambova"; + type="n_art"; + colorName="ColorEAST"; + id=180; + }; + class Item31 + { + dataType="Marker"; + position[]={4840.166,4.7189999,5604.374}; + name="capture_33"; + text="Volgograd Training Camp"; + type="n_art"; + colorName="ColorEAST"; + id=189; + atlOffset=-0.00099992752; + }; + class Item32 + { + dataType="Marker"; + position[]={9335.6514,40.098999,8488.9111}; + name="capture_34"; + text="Blavtarov"; + type="n_art"; + colorName="ColorEAST"; + id=217; + atlOffset=-0.00099945068; + }; + }; + id=156; + atlOffset=21.693848; + }; + class Item41 + { + dataType="Layer"; + name="Military Points"; + class Entities + { + items=13; + class Item0 + { + dataType="Marker"; + position[]={734.52502,9.9700003,10683.703}; + name="military_4"; + text="Airbase Arianna"; + type="o_support"; + colorName="ColorEAST"; + id=118; + }; + class Item1 + { + dataType="Marker"; + position[]={9957.5947,179.56,4113.8179}; + name="military_2"; + text="Airbase Blagoy"; + type="o_support"; + colorName="ColorEAST"; + id=113; + }; + class Item2 + { + dataType="Marker"; + position[]={11046.072,4.7199998,11452.896}; + name="military_3"; + text="Airbase Shakal"; + type="o_support"; + colorName="ColorEAST"; + id=114; + }; + class Item3 + { + dataType="Marker"; + position[]={4859.8179,14.98,7837.5078}; + name="military_6"; + text="Airport Skilava"; + type="o_support"; + colorName="ColorEAST"; + id=157; + }; + class Item4 + { + dataType="Marker"; + position[]={7006.2729,224.97,3352.9641}; + name="military"; + text="Camp Duboak"; + type="o_support"; + colorName="ColorEAST"; + id=55; + }; + class Item5 + { + dataType="Marker"; + position[]={3930.3379,29.528,9425.3867}; + name="military_7"; + text="Jantina Military Depot"; + type="o_support"; + colorName="ColorEAST"; + id=160; + atlOffset=-0.00046920776; + }; + class Item6 + { + dataType="Marker"; + position[]={9544.4033,39.959999,7321.3271}; + name="military_5"; + text="Mahala Military Depot"; + type="o_support"; + colorName="ColorEAST"; + id=150; + }; + class Item7 + { + dataType="Marker"; + position[]={2909.512,91.578003,2387.103}; + name="military_8"; + text="Military Depot Remont"; + type="o_support"; + colorName="ColorEAST"; + id=162; + atlOffset=0.00019073486; + }; + class Item8 + { + dataType="Marker"; + position[]={4897.3848,91.258003,820.49799}; + name="military_1"; + text="Snake Island"; + type="o_support"; + colorName="ColorEAST"; + id=112; + atlOffset=51.189106; + }; + class Item9 + { + dataType="Marker"; + position[]={5997.8169,33.653999,11829.699}; + name="military_9"; + text="Valor Vista"; + type="o_support"; + colorName="ColorEAST"; + id=242; + atlOffset=-0.00015258789; + }; + class Item10 + { + dataType="Marker"; + position[]={8581.9072,69.989998,4303.603}; + name="military_10"; + text="Bobrowka Helibase"; + type="o_support"; + colorName="ColorEAST"; + id=275; + }; + class Item11 + { + dataType="Marker"; + position[]={2653.0979,24.865999,7033.9102}; + name="military_11"; + text="Outpost Viktor"; + type="o_support"; + colorName="ColorEAST"; + id=486; + atlOffset=-0.00047874451; + }; + class Item12 + { + dataType="Marker"; + position[]={5712.1655,20.719999,6991.6421}; + name="military_12"; + text="Military Storage Depot"; + type="o_support"; + colorName="ColorEAST"; + id=487; + }; + }; + id=183; + atlOffset=29.690968; + }; + class Item42 + { + dataType="Layer"; + name="Capitals"; + class Entities + { + items=6; + class Item0 + { + dataType="Marker"; + position[]={12184.911,7.9899998,9315.9346}; + name="bigtown_3"; + text="Havenbrook"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=115; + }; + class Item1 + { + dataType="Marker"; + position[]={1620.243,14.98,4285.373}; + name="bigtown_2"; + text="Marlov"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=111; + }; + class Item2 + { + dataType="Marker"; + position[]={2230.6079,9.5600004,11266.306}; + name="bigtown_5"; + text="Martopol"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=119; + }; + class Item3 + { + dataType="Marker"; + position[]={6025.1812,19.99,8060.356}; + name="bigtown_4"; + text="Mazemovo"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=117; + }; + class Item4 + { + dataType="Marker"; + position[]={6973.9331,9.3534155,5079.0396}; + name="bigtown"; + text="Nuclear Power Plant Kastrulya"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=57; + }; + class Item5 + { + dataType="Marker"; + position[]={5823.8501,10.205,4685.7061}; + name="bigtown_1"; + text="Sveti Peral"; + type="n_service"; + colorName="ColorEAST"; + a=1.55; + b=1.55; + angle=90; + id=102; + atlOffset=-0.00029945374; + }; + }; + id=184; + atlOffset=5.8094401; + }; + class Item43 + { + dataType="Layer"; + name="Factories"; + class Entities + { + items=15; + class Item0 + { + dataType="Marker"; + position[]={6926.3462,33.016998,2587.415}; + name="factory_8"; + text="Ekaterina Ironworks"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=161; + atlOffset=0.00034332275; + }; + class Item1 + { + dataType="Marker"; + position[]={1137.1031,9.9700003,2818.6868}; + name="factory"; + text="Fuel Depot Lapochka"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=56; + }; + class Item2 + { + dataType="Marker"; + position[]={3885.748,4.7199998,10961.147}; + name="factory_7"; + text="Gatov Refinery"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=159; + }; + class Item3 + { + dataType="Marker"; + position[]={561.27197,14.98,5317.4048}; + name="factory_1"; + text="Lauka Storage Facility"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=105; + }; + class Item4 + { + dataType="Marker"; + position[]={10405.725,30.24,7666.4971}; + name="factory_4"; + text="Mahala Concrete Works"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=132; + }; + class Item5 + { + dataType="Marker"; + position[]={2588.1621,9.9700003,11698.498}; + name="factory_3"; + text="Martopol Industrial"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=120; + }; + class Item6 + { + dataType="Marker"; + position[]={5625.3462,19.99,8469.3652}; + name="factory_2"; + text="Mazemovo Industrial"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=116; + }; + class Item7 + { + dataType="Marker"; + position[]={11574.092,5.2118211,4968.9673}; + name="factory_5"; + text="Port Zaytsev"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=149; + }; + class Item8 + { + dataType="Marker"; + position[]={9832.1367,19.969999,11845.658}; + name="factory_6"; + text="Rybov Warehouse"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=153; + }; + class Item9 + { + dataType="Marker"; + position[]={1391.632,6.2270002,9414.7842}; + name="factory_9"; + text="Vypr Point Warehouse"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=188; + atlOffset=-0.00030946732; + }; + class Item10 + { + dataType="Marker"; + position[]={11348.881,72.029999,6218.1831}; + name="factory_10"; + text="Komatin Heavy Industrial Plant"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=194; + }; + class Item11 + { + dataType="Marker"; + position[]={11435.332,4.7199998,12405.107}; + name="factory_11"; + text="Shakal Fuel Depot"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=195; + }; + class Item12 + { + dataType="Marker"; + position[]={6041.502,3.1500001,9542.1963}; + name="factory_12"; + text="Komunograd Grain Storage"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=197; + }; + class Item13 + { + dataType="Marker"; + position[]={8932.7412,15.59,12301.146}; + name="factory_13"; + text="Orlanov Factory"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=213; + }; + class Item14 + { + dataType="Marker"; + position[]={6752.0732,43.125999,6166.4521}; + name="factory_14"; + text="Devina Fuel Station"; + type="loc_Fuelstation"; + colorName="ColorEAST"; + id=255; + atlOffset=0.00017166138; + }; + }; + id=185; + atlOffset=10.207367; + }; + class Item44 + { + dataType="Layer"; + name="Radio Towers"; + class Entities + { + items=29; + class Item0 + { + dataType="Marker"; + position[]={2465.0469,134.36301,3004.0139}; + name="tower"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=58; + atlOffset=10.110443; + }; + class Item1 + { + dataType="Marker"; + position[]={1597.1416,25.454472,4809.0576}; + name="tower_1"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=127; + atlOffset=10.110442; + }; + class Item2 + { + dataType="Marker"; + position[]={2364.1326,28.044422,2101.2437}; + name="tower_2"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=163; + atlOffset=10.110443; + }; + class Item3 + { + dataType="Marker"; + position[]={6967.5391,89.073608,1649.1135}; + name="tower_3"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=177; + atlOffset=10.110443; + }; + class Item4 + { + dataType="Marker"; + position[]={9652.998,198.58044,2443.3662}; + name="tower_4"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=178; + atlOffset=10.110443; + }; + class Item5 + { + dataType="Marker"; + position[]={11508.234,12.751325,3681.2644}; + name="tower_5"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=181; + atlOffset=10.110443; + }; + class Item6 + { + dataType="Marker"; + position[]={8830.5303,21.080444,6619.1851}; + name="tower_6"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=187; + atlOffset=10.110444; + }; + class Item7 + { + dataType="Marker"; + position[]={5424.8081,57.335014,5859.771}; + name="tower_7"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=190; + atlOffset=10.110443; + }; + class Item8 + { + dataType="Marker"; + position[]={7676.6763,62.221722,5172.8906}; + name="tower_8"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=191; + atlOffset=10.110443; + }; + class Item9 + { + dataType="Marker"; + position[]={8175.7729,181.93045,3198.5244}; + name="tower_9"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=192; + atlOffset=10.110443; + }; + class Item10 + { + dataType="Marker"; + position[]={10320.554,114.86122,5232.2617}; + name="tower_10"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=193; + atlOffset=10.110443; + }; + class Item11 + { + dataType="Marker"; + position[]={8283.6201,127.3221,9218.5479}; + name="tower_11"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=198; + atlOffset=10.110443; + }; + class Item12 + { + dataType="Marker"; + position[]={11987.291,22.090443,11291.123}; + name="tower_12"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=199; + atlOffset=10.110443; + }; + class Item13 + { + dataType="Marker"; + position[]={11363.881,65.299599,9866.2432}; + name="tower_13"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=200; + atlOffset=10.110443; + }; + class Item14 + { + dataType="Marker"; + position[]={1865.0973,16.443954,9790.04}; + name="tower_14"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=202; + atlOffset=10.110443; + }; + class Item15 + { + dataType="Marker"; + position[]={11824.954,29.110443,8307.3975}; + name="tower_15"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=214; + atlOffset=10.110443; + }; + class Item16 + { + dataType="Marker"; + position[]={4834.1196,20.610443,8628.7227}; + name="tower_16"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=219; + atlOffset=10.110443; + }; + class Item17 + { + dataType="Marker"; + position[]={2357.9551,15.070443,8430.3271}; + name="tower_17"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=220; + atlOffset=11.961581; + }; + class Item18 + { + dataType="Marker"; + position[]={9324.6563,151.6181,3775.1235}; + name="tower_18"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=244; + atlOffset=10.110443; + }; + class Item19 + { + dataType="Marker"; + position[]={4877.3755,59.35524,11247.421}; + name="tower_19"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=245; + atlOffset=10.110443; + }; + class Item20 + { + dataType="Marker"; + position[]={789.58929,26.110443,11916.271}; + name="tower_20"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=246; + atlOffset=10.110443; + }; + class Item21 + { + dataType="Marker"; + position[]={9314.0293,32.160229,11176.803}; + name="tower_21"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=247; + atlOffset=10.110443; + }; + class Item22 + { + dataType="Marker"; + position[]={8581.5518,165.57852,7809.1821}; + name="tower_22"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=249; + atlOffset=10.110443; + }; + class Item23 + { + dataType="Marker"; + position[]={7037.3809,34.614513,7795.022}; + name="tower_23"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=250; + atlOffset=10.110443; + }; + class Item24 + { + dataType="Marker"; + position[]={5431.209,24.386997,12209.891}; + name="tower_24"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=251; + atlOffset=10.110444; + }; + class Item25 + { + dataType="Marker"; + position[]={7727.6724,16.488003,10507.896}; + name="tower_25"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=252; + atlOffset=10.0977; + }; + class Item26 + { + dataType="Marker"; + position[]={6887.9541,256.21814,4008.1443}; + name="tower_26"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=253; + atlOffset=10.110428; + }; + class Item27 + { + dataType="Marker"; + position[]={3804.8054,25.347328,10164.689}; + name="tower_27"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=254; + atlOffset=10.110442; + }; + class Item28 + { + dataType="Marker"; + position[]={4446.2256,14.830442,4757.0791}; + name="tower_28"; + text="Radio Tower"; + type="loc_Transmitter"; + colorName="ColorEAST"; + id=526; + atlOffset=10.110443; + }; + }; + id=186; + atlOffset=99.72554; + }; + class Item45 + { + dataType="Layer"; + name="Opfor Points"; + class Entities + { + items=78; + class Item0 + { + dataType="Marker"; + position[]={2151.8313,8.2889252,5334.5308}; + name="opfor_point"; + type="Empty"; + id=59; + }; + class Item1 + { + dataType="Marker"; + position[]={963.53271,15.05,5442.4258}; + name="opfor_point_1"; + type="Empty"; + id=106; + }; + class Item2 + { + dataType="Marker"; + position[]={6995.5552,3.1900001,10539.455}; + name="opfor_point_10"; + type="Empty"; + id=170; + }; + class Item3 + { + dataType="Marker"; + position[]={7116.7778,2.4005275,10909.32}; + name="opfor_point_11"; + type="Empty"; + id=171; + }; + class Item4 + { + dataType="Marker"; + position[]={4474.144,23.299999,11664.712}; + name="opfor_point_12"; + type="Empty"; + id=172; + }; + class Item5 + { + dataType="Marker"; + position[]={2718.1843,5.6300001,7325.6914}; + name="opfor_point_13"; + type="Empty"; + id=173; + }; + class Item6 + { + dataType="Marker"; + position[]={3341.5764,4.7199998,11140.278}; + name="opfor_point_14"; + type="Empty"; + id=174; + }; + class Item7 + { + dataType="Marker"; + position[]={2528.042,15.383167,4800.7754}; + name="opfor_point_15"; + type="Empty"; + id=175; + }; + class Item8 + { + dataType="Marker"; + position[]={1835.3923,2.6667652,5638.1211}; + name="opfor_point_16"; + type="Empty"; + id=176; + }; + class Item9 + { + dataType="Marker"; + position[]={10334.864,22.144958,10586.983}; + name="opfor_point_17"; + type="Empty"; + id=179; + }; + class Item10 + { + dataType="Marker"; + position[]={2072.9778,5.98,9875.2461}; + name="opfor_point_18"; + type="Empty"; + id=203; + }; + class Item11 + { + dataType="Marker"; + position[]={3347.5127,4.6399999,10382.521}; + name="opfor_point_19"; + type="Empty"; + id=204; + }; + class Item12 + { + dataType="Marker"; + position[]={1208.8374,11.563719,3865.5327}; + name="opfor_point_2"; + type="Empty"; + id=107; + }; + class Item13 + { + dataType="Marker"; + position[]={3665.3674,29.969999,7604.9448}; + name="opfor_point_20"; + type="Empty"; + id=205; + }; + class Item14 + { + dataType="Marker"; + position[]={5742.0698,4.7199998,6716.9219}; + name="opfor_point_21"; + type="Empty"; + id=206; + }; + class Item15 + { + dataType="Marker"; + position[]={5641.001,4.7199998,6542.3506}; + name="opfor_point_22"; + type="Empty"; + id=207; + }; + class Item16 + { + dataType="Marker"; + position[]={8027.9316,16.778173,8462.2451}; + name="opfor_point_23"; + type="Empty"; + id=208; + }; + class Item17 + { + dataType="Marker"; + position[]={6371.5635,63.085037,5694.9297}; + name="opfor_point_24"; + type="Empty"; + id=209; + }; + class Item18 + { + dataType="Marker"; + position[]={5712.8247,3.2968836,10359.173}; + name="opfor_point_25"; + type="Empty"; + id=210; + }; + class Item19 + { + dataType="Marker"; + position[]={8368.8965,4.7199998,11428.214}; + name="opfor_point_26"; + type="Empty"; + id=211; + }; + class Item20 + { + dataType="Marker"; + position[]={8647.8652,7.5556345,12107.414}; + name="opfor_point_27"; + type="Empty"; + id=212; + }; + class Item21 + { + dataType="Marker"; + position[]={9728.3477,51.774395,10490.926}; + name="opfor_point_28"; + type="Empty"; + id=216; + }; + class Item22 + { + dataType="Marker"; + position[]={4302.5557,10.152805,8727.5605}; + name="opfor_point_29"; + type="Empty"; + id=218; + }; + class Item23 + { + dataType="Marker"; + position[]={409.19006,14.98,5831.8877}; + name="opfor_point_3"; + type="Empty"; + id=108; + }; + class Item24 + { + dataType="Marker"; + position[]={1122.1202,7.9699998,5828.2295}; + name="opfor_point_4"; + type="Empty"; + id=164; + }; + class Item25 + { + dataType="Marker"; + position[]={9802.7119,111.77,5077.249}; + name="opfor_point_5"; + type="Empty"; + id=165; + }; + class Item26 + { + dataType="Marker"; + position[]={11524.961,27.049999,4183.0537}; + name="opfor_point_6"; + type="Empty"; + id=166; + }; + class Item27 + { + dataType="Marker"; + position[]={11167.516,21.870001,7611.8667}; + name="opfor_point_7"; + type="Empty"; + id=167; + }; + class Item28 + { + dataType="Marker"; + position[]={8524.7637,12.8193,9934.417}; + name="opfor_point_8"; + type="Empty"; + id=168; + }; + class Item29 + { + dataType="Marker"; + position[]={8527.0215,12.777442,9971.6992}; + name="opfor_point_9"; + type="Empty"; + id=169; + }; + class Item30 + { + dataType="Marker"; + position[]={9143.2813,120.36,4186.3101}; + name="opfor_point_30"; + type="Empty"; + id=228; + atlOffset=50.029999; + }; + class Item31 + { + dataType="Marker"; + position[]={9027.9629,120,4971.665}; + name="opfor_point_31"; + type="Empty"; + id=229; + atlOffset=50.029999; + }; + class Item32 + { + dataType="Marker"; + position[]={9543.7236,171.16,5450.23}; + name="opfor_point_32"; + type="Empty"; + id=230; + atlOffset=50.030006; + }; + class Item33 + { + dataType="Marker"; + position[]={7690.0132,88.940002,6065.563}; + name="opfor_point_34"; + type="Empty"; + id=227; + atlOffset=50.030003; + }; + class Item34 + { + dataType="Marker"; + position[]={10430.743,71.989998,6831.8589}; + name="opfor_point_33"; + type="Empty"; + id=231; + atlOffset=50.029999; + }; + class Item35 + { + dataType="Marker"; + position[]={8022.6729,8.1817255,9668.3633}; + name="opfor_point_35"; + type="Empty"; + id=236; + }; + class Item36 + { + dataType="Marker"; + position[]={8050.3066,9.2399998,9793.834}; + name="opfor_point_36"; + type="Empty"; + id=237; + }; + class Item37 + { + dataType="Marker"; + position[]={8062.8882,12.827474,9975.2773}; + name="opfor_point_37"; + type="Empty"; + id=238; + }; + class Item38 + { + dataType="Marker"; + position[]={8013.3555,3.52,11114.305}; + name="opfor_point_38"; + type="Empty"; + id=239; + }; + class Item39 + { + dataType="Marker"; + position[]={7044.0483,14.239405,11583.662}; + name="opfor_point_39"; + type="Empty"; + id=240; + }; + class Item40 + { + dataType="Marker"; + position[]={11850.657,24.075455,4273.9043}; + name="opfor_point_40"; + type="Empty"; + id=243; + }; + class Item41 + { + dataType="Marker"; + position[]={11535.343,21.134815,7002.3667}; + name="opfor_point_41"; + type="Empty"; + id=256; + }; + class Item42 + { + dataType="Marker"; + position[]={5248.3408,3.2581959,9627.3975}; + name="opfor_point_42"; + type="Empty"; + id=257; + }; + class Item43 + { + dataType="Marker"; + position[]={5619.6309,3.1500001,9237.7646}; + name="opfor_point_43"; + type="Empty"; + id=258; + }; + class Item44 + { + dataType="Marker"; + position[]={9331.2627,19.791222,9664.4561}; + name="opfor_point_44"; + type="Empty"; + id=259; + }; + class Item45 + { + dataType="Marker"; + position[]={11214.964,40.402344,10373.063}; + name="opfor_point_45"; + type="Empty"; + id=260; + atlOffset=0.00015640259; + }; + class Item46 + { + dataType="Marker"; + position[]={11013.015,4.7199998,12201.639}; + name="opfor_point_46"; + type="Empty"; + id=261; + }; + class Item47 + { + dataType="Marker"; + position[]={11238.073,4.7199998,12067.442}; + name="opfor_point_47"; + type="Empty"; + id=262; + }; + class Item48 + { + dataType="Marker"; + position[]={11193.515,19.950001,7057.7012}; + name="opfor_point_48"; + type="Empty"; + id=263; + }; + class Item49 + { + dataType="Marker"; + position[]={1734.6853,9.96,11663.97}; + name="opfor_point_49"; + type="Empty"; + id=264; + }; + class Item50 + { + dataType="Marker"; + position[]={3733.3318,4.7199998,11262.341}; + name="opfor_point_50"; + type="Empty"; + id=265; + }; + class Item51 + { + dataType="Marker"; + position[]={3377.4741,59.593147,7317.0278}; + name="opfor_point_51"; + type="Empty"; + id=266; + }; + class Item52 + { + dataType="Marker"; + position[]={6902.0171,3.7664552,7027.812}; + name="opfor_point_52"; + type="Empty"; + id=267; + }; + class Item53 + { + dataType="Marker"; + position[]={7970.3369,117.5667,4350.9116}; + name="opfor_point_53"; + type="Empty"; + id=268; + atlOffset=50.029999; + }; + class Item54 + { + dataType="Marker"; + position[]={10771.185,72.019997,3476.4365}; + name="opfor_point_54"; + type="Empty"; + id=269; + atlOffset=50.029999; + }; + class Item55 + { + dataType="Marker"; + position[]={10854.25,70,5432.3311}; + name="opfor_point_55"; + type="Empty"; + id=270; + atlOffset=50.029999; + }; + class Item56 + { + dataType="Marker"; + position[]={10879.805,71.107346,5322.4702}; + name="opfor_point_56"; + type="Empty"; + id=271; + atlOffset=50.029999; + }; + class Item57 + { + dataType="Marker"; + position[]={10912.339,72.660362,8082.4683}; + name="opfor_point_57"; + type="Empty"; + id=272; + atlOffset=50.029999; + }; + class Item58 + { + dataType="Marker"; + position[]={6856.8062,5.52,9283.9199}; + name="opfor_point_58"; + type="Empty"; + id=273; + }; + class Item59 + { + dataType="Marker"; + position[]={6559.2803,11.493765,12552.865}; + name="opfor_point_59"; + type="Empty"; + id=274; + }; + class Item60 + { + dataType="Marker"; + position[]={8667.3184,120,4001.2063}; + name="opfor_point_60"; + type="Empty"; + id=276; + atlOffset=50.029999; + }; + class Item61 + { + dataType="Marker"; + position[]={9064.4482,90.334808,8988.4258}; + name="opfor_point_61"; + type="Empty"; + id=277; + atlOffset=50.029999; + }; + class Item62 + { + dataType="Marker"; + position[]={1751.24,9.96,3087.4397}; + name="opfor_point_62"; + type="Empty"; + id=488; + }; + class Item63 + { + dataType="Marker"; + position[]={2035.0328,11.282223,3688.189}; + name="opfor_point_63"; + type="Empty"; + id=489; + }; + class Item64 + { + dataType="Marker"; + position[]={6393.4609,40,3473.7742}; + name="opfor_point_64"; + type="Empty"; + id=490; + }; + class Item65 + { + dataType="Marker"; + position[]={7342.0137,4.9899998,1541.4978}; + name="opfor_point_65"; + type="Empty"; + id=491; + }; + class Item66 + { + dataType="Marker"; + position[]={11337.02,14.795058,5353.0664}; + name="opfor_point_66"; + type="Empty"; + id=492; + }; + class Item67 + { + dataType="Marker"; + position[]={8695.6777,21.185287,8343.5918}; + name="opfor_point_67"; + type="Empty"; + id=493; + }; + class Item68 + { + dataType="Marker"; + position[]={10411.352,32.632301,2959.2048}; + name="opfor_point_68"; + type="Empty"; + id=494; + }; + class Item69 + { + dataType="Marker"; + position[]={10566.781,21.864042,2729.1558}; + name="opfor_point_69"; + type="Empty"; + id=495; + }; + class Item70 + { + dataType="Marker"; + position[]={11160.438,8.8100004,2816.1294}; + name="opfor_point_70"; + type="Empty"; + id=496; + }; + class Item71 + { + dataType="Marker"; + position[]={10452.623,21.099844,8546.7275}; + name="opfor_point_71"; + type="Empty"; + id=497; + }; + class Item72 + { + dataType="Marker"; + position[]={9981.4971,9.9700003,2207.4746}; + name="opfor_point_72"; + type="Empty"; + id=498; + }; + class Item73 + { + dataType="Marker"; + position[]={1344.9426,14.962898,5466.7349}; + name="opfor_point_73"; + type="Empty"; + id=527; + }; + class Item74 + { + dataType="Marker"; + position[]={3060.179,5.954958,1835.5972}; + name="opfor_point_74"; + type="Empty"; + id=528; + }; + class Item75 + { + dataType="Marker"; + position[]={3128.677,23.496801,2108.895}; + name="opfor_point_75"; + type="Empty"; + id=529; + }; + class Item76 + { + dataType="Marker"; + position[]={7261.4072,91.685867,2123.439}; + name="opfor_point_76"; + type="Empty"; + id=530; + }; + class Item77 + { + dataType="Marker"; + position[]={174.54572,3.2749424,5833.1846}; + name="opfor_point_77"; + type="Empty"; + id=535; + atlOffset=2.3841858e-007; + }; + }; + id=221; + atlOffset=-16.414837; + }; + class Item46 + { + dataType="Layer"; + name="Boatspawns"; + class Entities + { + items=12; + class Item0 + { + dataType="Marker"; + position[]={11659.053,-4.4262695,2067.907}; + name="opfor_boatspawn_8"; + type="Empty"; + id=233; + atlOffset=50.029999; + }; + class Item1 + { + dataType="Marker"; + position[]={463.39536,0,9784.4961}; + name="opfor_boatspawn"; + type="Empty"; + id=96; + atlOffset=50.029999; + }; + class Item2 + { + dataType="Marker"; + position[]={5655.6411,-0.51000214,1682.7827}; + name="opfor_boatspawn_1"; + type="Empty"; + id=97; + atlOffset=50.029999; + }; + class Item3 + { + dataType="Marker"; + position[]={7787.1733,0,12439.291}; + name="opfor_boatspawn_2"; + type="Empty"; + id=98; + atlOffset=50.029999; + }; + class Item4 + { + dataType="Marker"; + position[]={12522.858,0,11425.526}; + name="opfor_boatspawn_3"; + type="Empty"; + id=99; + atlOffset=50; + }; + class Item5 + { + dataType="Marker"; + position[]={12479.292,-0.030002594,8658.5332}; + name="opfor_boatspawn_4"; + type="Empty"; + id=100; + atlOffset=50.029999; + }; + class Item6 + { + dataType="Marker"; + position[]={3782.4575,0,3280.9683}; + name="opfor_boatspawn_6"; + type="Empty"; + id=103; + atlOffset=50.540001; + }; + class Item7 + { + dataType="Marker"; + position[]={3889.5879,6.0021095,6226.5845}; + name="opfor_boatspawn_7"; + type="Empty"; + id=104; + atlOffset=50.029999; + }; + class Item8 + { + dataType="Marker"; + position[]={4853.5806,0.040000916,3477.8518}; + name="opfor_boatspawn_9"; + type="Empty"; + id=531; + atlOffset=50.049999; + }; + class Item9 + { + dataType="Marker"; + position[]={4149.8242,0.020000458,1533.9623}; + name="opfor_boatspawn_10"; + type="Empty"; + id=532; + atlOffset=50.049999; + }; + class Item10 + { + dataType="Marker"; + position[]={1183.8615,0.040000916,7242.0957}; + name="opfor_boatspawn_11"; + type="Empty"; + id=533; + atlOffset=50.049999; + }; + class Item11 + { + dataType="Marker"; + position[]={2269.2891,0.020000458,12619.126}; + name="opfor_boatspawn_5"; + type="Empty"; + id=534; + atlOffset=50.049999; + }; + }; + id=234; + atlOffset=-31.171843; + }; + class Item47 + { + dataType="Layer"; + name="Airspawns"; + class Entities + { + items=6; + class Item0 + { + dataType="Marker"; + position[]={3275.7666,0,12706.202}; + name="opfor_airspawn"; + type="Empty"; + id=53; + atlOffset=50.029999; + }; + class Item1 + { + dataType="Marker"; + position[]={12738.255,0,7454.1304}; + name="opfor_airspawn_1"; + type="Empty"; + id=222; + atlOffset=50.029999; + }; + class Item2 + { + dataType="Marker"; + position[]={12696.759,-0.020000458,2173.5793}; + name="opfor_airspawn_2"; + type="Empty"; + id=223; + atlOffset=50.029999; + }; + class Item3 + { + dataType="Marker"; + position[]={6112.4224,0,103.22266}; + name="opfor_airspawn_3"; + type="Empty"; + id=224; + atlOffset=50.029999; + }; + class Item4 + { + dataType="Marker"; + position[]={27.576447,0,7654.7388}; + name="opfor_airspawn_4"; + type="Empty"; + id=225; + atlOffset=50.029999; + }; + class Item5 + { + dataType="Marker"; + position[]={7930.606,0,12733.525}; + name="opfor_airspawn_5"; + type="Empty"; + id=226; + atlOffset=50.029999; + }; + }; + id=235; + atlOffset=0.2308985; + }; + class Item48 + { + dataType="Layer"; + name="Camp Audacity"; + class Entities + { + items=56; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2668.8621,30.392982,7054.6919}; + angles[]={0,4.5858583,0.15553339}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=429; + type="Land_HBarrierBig_F"; + atlOffset=0.025428772; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2673.1628,30.75993,7046.3188}; + angles[]={6.2767911,4.6012921,0.092534281}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=430; + type="Land_BagBunker_Large_F"; + atlOffset=0.054286957; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2678.7661,31.04594,7028.8696}; + angles[]={0,4.5785198,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=431; + type="Land_PortableLight_double_F"; + atlOffset=0.012126923; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2637.6619,24.609417,7051.3115}; + angles[]={6.1621799,6.1475444,0.1680008}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=432; + type="Land_ToiletBox_F"; + atlOffset=-0.0038375854; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2663.9104,28.426996,7018.5122}; + angles[]={6.2065363,4.5639052,0.30388656}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=433; + type="Land_WaterTank_F"; + atlOffset=-0.0067672729; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2662.5613,29.375828,7054.2534}; + angles[]={6.2639866,4.9217148,0.21120292}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=434; + type="Land_Cargo20_military_green_F"; + atlOffset=-0.0035858154; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={2664.6362,29.831005,7062.0664}; + angles[]={6.2416081,3.8403921,0.15240942}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=435; + type="Land_HBarrierBig_F"; + atlOffset=0.00093841553; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={2656.6943,28.805828,7064.2993}; + angles[]={6.1969995,3.0423863,0.15240864}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=436; + type="Land_HBarrierBig_F"; + atlOffset=0.0021629333; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={2679.7341,30.737844,7031.936}; + angles[]={6.2703872,4.5937624,0.012798273}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=437; + type="Land_HBarrier_5_F"; + atlOffset=0.017953873; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={2680.5042,30.707092,7026.4614}; + angles[]={0,4.5958915,0}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=438; + type="Land_HBarrier_5_F"; + atlOffset=0.016576767; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={2675.8718,30.637438,7033.5894}; + angles[]={6.2703872,3.0434048,0.044768773}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=439; + type="Land_HBarrier_5_F"; + atlOffset=0.017921448; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={2677.6738,31.11298,7022.1045}; + angles[]={6.2735858,3.0547514,0.01919602}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=440; + type="Land_HBarrierBig_F"; + atlOffset=0.029441833; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={2671.3965,30.672798,7017.5576}; + angles[]={6.2480001,2.1002223,0.13045534}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=441; + type="Land_HBarrierBig_F"; + atlOffset=0.02755928; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={2664.655,28.642612,7013.0723}; + angles[]={6.1874781,3.0559051,0.28925377}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=442; + type="Land_HBarrierBig_F"; + atlOffset=0.026376724; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={2661.7546,26.798698,7006.7407}; + angles[]={6.2320304,3.0396872,0.24158764}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=443; + type="Land_HBarrier_5_F"; + atlOffset=0.016729355; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={2660.7207,27.831776,7017.9023}; + angles[]={6.1938243,4.6013336,0.3356055}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=444; + type="Land_HBarrierBig_F"; + atlOffset=0.028366089; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={2668.3938,28.764349,7009.7695}; + angles[]={6.1401682,1.5094827,0.27152464}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=445; + type="Land_HBarrier_5_F"; + atlOffset=0.0062274933; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={2656.1252,25.24786,7006.1318}; + angles[]={6.2129016,3.0632162,0.26855165}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=446; + type="Land_HBarrier_5_F"; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={2637.2202,21.115368,7014.2476}; + angles[]={6.2160864,1.4186521,0.23856853}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=447; + type="Land_HBarrierBig_F"; + atlOffset=0.026010513; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={2632.5398,20.296562,7022.4604}; + angles[]={6.2001767,1.4129591,0.21731357}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=448; + type="Land_BagBunker_Large_F"; + atlOffset=0.013408661; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={2626.2537,21.144464,7040.0513}; + angles[]={0,1.3995767,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=449; + type="Land_PortableLight_double_F"; + atlOffset=-1.9073486e-006; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={2641.6743,21.837402,7007.2417}; + angles[]={6.2192721,0.68064165,0.26557502}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=450; + type="Land_HBarrierBig_F"; + atlOffset=0.028535843; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={2649.1809,23.776379,7005.3345}; + angles[]={6.2224603,6.1680775,0.2685523}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=451; + type="Land_HBarrierBig_F"; + atlOffset=0.027488708; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={2625.3613,20.230736,7036.6875}; + angles[]={6.1495857,1.4063376,0.17731783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=452; + type="Land_HBarrier_5_F"; + atlOffset=0.0046882629; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={2624.4021,20.769123,7042.1396}; + angles[]={6.1590276,1.4057031,0.15865555}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=453; + type="Land_HBarrier_5_F"; + atlOffset=0.01527977; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={2629.2908,20.732084,7035.2188}; + angles[]={6.1558781,6.144309,0.17731749}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=454; + type="Land_HBarrier_5_F"; + atlOffset=0.004655838; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={2627.1501,22.259785,7046.5215}; + angles[]={6.1590276,6.1461449,0.16800152}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=455; + type="Land_HBarrierBig_F"; + atlOffset=0.0093002319; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={2633.2739,23.87056,7051.2832}; + angles[]={6.1653337,5.1896486,0.15553378}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=456; + type="Land_HBarrierBig_F"; + atlOffset=0.011276245; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={2639.8225,25.480785,7056.0332}; + angles[]={6.1716504,6.143652,0.15553339}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=457; + type="Land_HBarrierBig_F"; + atlOffset=0.010902405; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={2643.929,26.38283,7062.5171}; + angles[]={6.1653342,6.1533909,0.1430165}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=458; + type="Land_HBarrier_5_F"; + atlOffset=0.0045642853; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={2643.9519,25.61478,7051.3237}; + angles[]={6.1684914,1.4064147,0.1866035}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=459; + type="Land_HBarrierBig_F"; + atlOffset=0.014190674; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={2636.1401,24.87359,7059.4604}; + angles[]={6.1401691,4.5987878,0.14615022}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=460; + type="Land_HBarrier_5_F"; + atlOffset=0.010953903; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={2649.5139,27.236191,7063.2383}; + angles[]={6.1779752,6.1518254,0.12730782}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=461; + type="Land_HBarrier_5_F"; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={2647.9575,26.073313,7047.3809}; + angles[]={6.1843085,1.4424829,0.17731816}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=462; + type="Land_Cargo20_military_green_F"; + atlOffset=-0.0026664734; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={2656.2866,27.813803,7049.3257}; + angles[]={6.2575908,0.59869832,0.27449149}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=463; + type="Land_Cargo20_military_green_F"; + atlOffset=-0.0054607391; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={2666.8203,29.848106,7041.5283}; + angles[]={0,3.054322,0.18351157}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=464; + type="Land_HBarrier_5_F"; + atlOffset=0.055736542; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={2661.9946,28.622704,7039.3325}; + angles[]={6.2480021,2.2105763,0.295122}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=465; + type="Land_HBarrier_5_F"; + atlOffset=0.021337509; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={2638.6792,21.879766,7027.3081}; + angles[]={6.2256494,3.0133171,0.20814106}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=466; + type="Land_HBarrier_5_F"; + atlOffset=0.037286758; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={2643.5417,23.072876,7029.5098}; + angles[]={6.2065363,2.2872329,0.20814106}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=467; + type="Land_HBarrier_5_F"; + atlOffset=1.9073486e-006; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={2659.7668,27.427834,7025.1206}; + angles[]={6.2480001,4.6008024,0.34697083}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=468; + type="Land_HBarrier_5_F"; + atlOffset=0.031410217; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={2645.2417,24.673683,7044.2534}; + angles[]={6.1811414,4.586709,0.1866035}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=469; + type="Land_HBarrier_5_F"; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={2639.8223,25.010462,7051.6929}; + angles[]={6.1716504,6.1460872,0.15865518}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=470; + type="Land_ToiletBox_F"; + atlOffset=-0.0038471222; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={2667.1152,29.404913,7018.9219}; + angles[]={6.1938248,4.5643835,0.26855165}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=471; + type="Land_WaterTank_F"; + atlOffset=-0.0036869049; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={2660.6335,27.634272,7027.5679}; + angles[]={6.2639866,1.611799,0.33274969}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=472; + type="Land_WaterBarrel_F"; + atlOffset=-0.0096664429; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={2642.7859,22.089409,7008.999}; + angles[]={0,3.7764776,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=473; + type="Land_PortableLight_double_F"; + atlOffset=0.0033435822; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={2672.3381,30.750486,7022.7739}; + angles[]={0,2.4949629,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=474; + type="Land_PortableLight_double_F"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={2653.1338,28.095119,7060.4473}; + angles[]={6.1938243,6.1288791,0.15240864}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=475; + type="Land_Cargo20_military_green_F"; + atlOffset=-0.0073204041; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={2628.9661,25.641409,7040.9683}; + angles[]={0,1.4009905,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=476; + type="Land_Cargo_Patrol_V1_F"; + atlOffset=0.099567413; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={2675.8584,34.782467,7028.126}; + angles[]={0,4.5659857,0}; + }; + side="Empty"; + flags=5; + class Attributes + { + skill=0.2; + }; + id=477; + type="Land_Cargo_Patrol_V1_F"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={2641.9365,23.989929,7047.5459}; + angles[]={6.1716509,4.4823556,0.17731783}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=478; + type="Land_Pallets_F"; + atlOffset=0.0014743805; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={2659.2087,26.410391,7012.9023}; + angles[]={6.2192731,3.0913038,0.29219031}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=479; + type="Land_PaperBox_closed_F"; + atlOffset=0.011489868; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={2661.7041,27.860769,7027.8877}; + angles[]={6.2639866,3.4914954,0.33274969}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=480; + type="Land_MetalBarrel_F"; + atlOffset=-0.0068302155; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={2662.3066,28.029572,7026.8008}; + angles[]={6.2639866,4.5987368,0.33274969}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=481; + type="Land_BarrelEmpty_grey_F"; + atlOffset=-0.0064086914; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={2662.3682,28.065104,7027.5498}; + angles[]={6.2639866,4.7044363,0.33274969}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=482; + type="Land_BarrelTrash_grey_F"; + atlOffset=-0.0065288544; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={2656.3428,25.623304,7013.5283}; + angles[]={6.2352223,0.50790417,0.27745461}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=483; + type="Land_PaperBox_closed_F"; + atlOffset=0.014341354; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={2654.4648,24.810249,7012.251}; + angles[]={6.2288389,4.6006856,0.27745375}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.2; + }; + id=484; + type="Land_Pallets_stack_F"; + atlOffset=-0.0050125122; + }; + }; + id=485; + atlOffset=0.071369171; + }; + }; + class Connections + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=6; + item1=4; + class CustomData + { + type="Sync"; + }; + }; + class Item1 + { + linkID=1; + item0=7; + item1=4; + class CustomData + { + type="Sync"; + }; + }; + class Item2 + { + linkID=2; + item0=5; + item1=4; + class CustomData + { + type="Sync"; + }; + }; + }; + }; +}; diff --git a/Missionframework/KPLIB_debriefs.hpp b/Missionframework/CfgDebriefing.hpp similarity index 86% rename from Missionframework/KPLIB_debriefs.hpp rename to Missionframework/CfgDebriefing.hpp index 92f9bc011..a6198ef79 100644 --- a/Missionframework/KPLIB_debriefs.hpp +++ b/Missionframework/CfgDebriefing.hpp @@ -1,8 +1,8 @@ /* - File: KPLIB_debriefs.hpp + File: CfgDebriefing.hpp Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-05-09 - Last Update: 2020-05-09 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: diff --git a/Missionframework/CfgFunctions.hpp b/Missionframework/CfgFunctions.hpp index 3c49c9277..2749daa07 100644 --- a/Missionframework/CfgFunctions.hpp +++ b/Missionframework/CfgFunctions.hpp @@ -62,9 +62,10 @@ class KPLIB { class handlePlacedZeusObject {}; class hasPermission {}; class initSectors {}; - class isBigtownActive {}; + class isCapitalActive {}; class isClassUAV {}; class isRadio {}; + class lambs_enableReinforcements{}; class log {}; class potatoScan {}; class protectObject {}; diff --git a/Missionframework/GREUH/Scripts/GREUH_cache_units.sqf b/Missionframework/GREUH/Scripts/GREUH_cache_units.sqf index eccb4d175..d7bc22d9c 100644 --- a/Missionframework/GREUH/Scripts/GREUH_cache_units.sqf +++ b/Missionframework/GREUH/Scripts/GREUH_cache_units.sqf @@ -4,14 +4,14 @@ waitUntil { !isNil "nametags_distance" }; while { true } do { - _scanned_units = [ allUnits, { ( alive _x ) && ( side group _x == GRLIB_side_friendly ) } ] call BIS_fnc_conditionalSelect; + _scanned_units = [ allUnits, { ( alive _x ) && ( side group _x == KPLIB_side_player ) } ] call BIS_fnc_conditionalSelect; _scanned_units = [ _scanned_units, { (_x == leader group player ) || (_x distance player < nametags_distance) } ] call BIS_fnc_conditionalSelect; _scanned_units = [ _scanned_units, { (_x != player) && (( vehicle player ) != ( vehicle _x )) } ] call BIS_fnc_conditionalSelect; - GRLIB_nametag_units = [] + _scanned_units; + KPLIB_nametag_units = [] + _scanned_units; _scanned_groups = [ allGroups, { ( side _x == side player ) && ( isplayer (leader _x) ) } ] call BIS_fnc_conditionalSelect; _scanned_groups = [ _scanned_groups, { ( count units _x > 1 ) || ( count units _x == 1 && leader _x != player ) } ] call BIS_fnc_conditionalSelect; - GRLIB_overlay_groups = [] + _scanned_groups; + KPLIB_overlay_groups = [] + _scanned_groups; sleep 1; -}; \ No newline at end of file +}; diff --git a/Missionframework/GREUH/Scripts/GREUH_platoonoverlay.sqf b/Missionframework/GREUH/Scripts/GREUH_platoonoverlay.sqf index a23601db8..0f12e687d 100644 --- a/Missionframework/GREUH/Scripts/GREUH_platoonoverlay.sqf +++ b/Missionframework/GREUH/Scripts/GREUH_platoonoverlay.sqf @@ -10,8 +10,8 @@ nametags_distance = 32.0; private [ "_groups", "_unitstocount", "_totalx", "_totaly", "_totalz", "_alpha", "_textalpha", "_size", "_screenpos", "_grouppos", "_distlabel", "_dist", "_nextunit", "_color", "_drawicon", "_displayname", "_iconpos" ]; -waitUntil { !isNil "GRLIB_overlay_groups" }; -waitUntil { !isNil "GRLIB_nametag_units" }; +waitUntil { !isNil "KPLIB_overlay_groups" }; +waitUntil { !isNil "KPLIB_nametag_units" }; ["platoon_overlay", "onEachFrame", { @@ -73,7 +73,7 @@ waitUntil { !isNil "GRLIB_nametag_units" }; drawIcon3D [platoon_icon1, _color, _grouppos, _size / 2, _size / 2,0, format ["%1 - %2%3",groupID _x, name (leader _x),_distlabel], 2, 0.03 * _textalpha, "puristaMedium"]; drawIcon3D [platoon_icon2, _color, _grouppos, _size, _size,0, "", 2, 0.04, "puristaMedium"]; }; - } foreach GRLIB_overlay_groups; + } foreach KPLIB_overlay_groups; }; if ( show_nametags ) then { @@ -92,7 +92,7 @@ waitUntil { !isNil "GRLIB_nametag_units" }; _color = []; if ( _nextunit in (units group player)) then { - switch ( _nextunit getVariable [ "GRLIB_squad_color", "MAIN" ] ) do { + switch ( _nextunit getVariable [ "KPLIB_squad_color", "MAIN" ] ) do { case "BLUE" : { _color = [0.15,0.35,1.0,_alpha] }; case "RED" : { _color = [0.8,0,0,_alpha] }; case "YELLOW" : { _color = [0.85,0.85,0,_alpha] }; @@ -133,7 +133,7 @@ waitUntil { !isNil "GRLIB_nametag_units" }; drawIcon3D [ _drawicon, _color, _iconpos , 0.75, 0.75,0, format [ "%1", _displayname] , 2, 0.032, "puristaMedium"]; - } foreach GRLIB_nametag_units; + } foreach KPLIB_nametag_units; }; }] call BIS_fnc_addStackedEventHandler; diff --git a/Missionframework/GREUH/Scripts/GREUH_playermarkers.sqf b/Missionframework/GREUH/Scripts/GREUH_playermarkers.sqf index 65ff6ca13..118469107 100644 --- a/Missionframework/GREUH/Scripts/GREUH_playermarkers.sqf +++ b/Missionframework/GREUH/Scripts/GREUH_playermarkers.sqf @@ -6,10 +6,10 @@ private _color = ""; private _ticks = 0; private _cfg = configFile >> "cfgVehicles"; -if ( side player == GRLIB_side_friendly ) then { - _color = GRLIB_color_friendly; +if ( side player == KPLIB_side_player ) then { + _color = KPLIB_color_player; } else { - _color = GRLIB_color_enemy; + _color = KPLIB_color_enemy; }; while { true } do { diff --git a/Missionframework/KPLIB_classnameLists.sqf b/Missionframework/KPLIB_classnameLists.sqf new file mode 100644 index 000000000..aa82f4da9 --- /dev/null +++ b/Missionframework/KPLIB_classnameLists.sqf @@ -0,0 +1,486 @@ +/* + File: KPLIB_lists.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-10 + Last Update: 2020-09-20 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Arrays of classnames for various purposes. + Check the comments above each variable for details. +*/ + +// Vehicle classnames which also function as ACE medical vehicles. +KPLIB_medical_vehicles = [ + "B_T_Truck_01_medical_F", + "B_Truck_01_medical_F", + "C_Van_02_medevac_F", + "CUP_B_BMP2_AMB_CDF", + "CUP_B_BMP2_AMB_CZ_Des", + "CUP_B_BMP2_AMB_CZ", + "CUP_B_FV432_GB_Ambulance", + "CUP_B_HMMWV_Ambulance_ACR", + "CUP_B_HMMWV_Ambulance_USA", + "CUP_B_HMMWV_Ambulance_USMC", + "CUP_B_LR_Ambulance_CZ_D", + "CUP_B_LR_Ambulance_CZ_W", + "CUP_B_LR_Ambulance_GB_D", + "CUP_B_LR_Ambulance_GB_W", + "CUP_B_S1203_Ambulance_CDF", + "CUP_B_UH1Y_MEV_USMC", + "CUP_B_UH60M_Unarmed_FFV_MEV_US", + "CUP_O_BMP2_AMB_CHDKZ", + "CUP_O_BMP2_AMB_sla", + "CUP_O_LR_Ambulance_TKA", + "CUP_O_M113_Med_TKA", + "gm_gc_army_ural375d_medic_win", + "gm_gc_army_ural375d_medic", + "gm_ge_army_u1300l_medic_win_rc", + "gm_ge_army_u1300l_medic", + "I_E_Truck_02_Medical_F", + "I_E_Van_02_medevac_F", + "O_T_Truck_03_medical_ghex_F", + "O_Truck_03_medical_F", + "RHS_UH60M_MEV_d", + "RHS_UH60M_MEV", + "RHS_UH60M_MEV2_d", + "RHS_UH60M_MEV2", + "rhsusf_M1085A1P2_B_D_Medical_fmtv_usarmy", + "rhsusf_M1085A1P2_B_WD_Medical_fmtv_usarmy", + "rhsusf_m113_usarmy_medical", + "rhsusf_m113d_usarmy_medical", + "rhsusf_M1230a1_usarmy_d", + "rhsusf_M1230a1_usarmy_wd", + "UK3CB_BAF_LandRover_Amb_FFR_Green_A_MTP", + "UK3CB_BAF_LandRover_Amb_FFR_Sand_A_DDPM", + "uns_ch47a_medevac", + "uns_H13_medevac_CAV", + "uns_M577_amb", + "uns_uh1D_med" +]; + +// Building classnames which also function as ACE medical facilities. +KPLIB_medical_facilities = [ + "Land_Medevac_house_V1_F", + "Land_Medevac_HQ_V1_F", + "LAND_uns_army_med", + "LAND_uns_tent3mash", + "uns_mash_main", + "uns_mash", + "US_Tent_2", + "US_Tent_MASH" +]; + +// Classnames of ACE crates +KPLIB_ace_crates = [ + "ACE_Box_82mm_Mo_HE", + "ACE_Box_82mm_Mo_Illum", + "ACE_Box_82mm_Mo_Smoke", + "ACE_medicalSupplyCrate_advanced" +]; + +// Everything the AI troups should be able to resupply from. +KPLIB_aiResupplySources = [ + "B_APC_Tracked_01_CRV_F", + "B_Slingload_01_Ammo_F", + "B_T_APC_Tracked_01_CRV_F", + "B_T_Truck_01_ammo_F", + "B_Truck_01_ammo_F", + "BW_LKW15T_Ammo_F", + "CUP_B_Kamaz_Reammo_CDF", + "CUP_B_MTVR_Ammo_USA", + "CUP_B_MTVR_Ammo_USMC", + "CUP_B_T810_Reammo_CZ_DES", + "CUP_B_T810_Reammo_CZ_WDL", + "CUP_O_Kamaz_Reammo_RU", + "CUP_O_Ural_Reammo_CHDKZ", + "CUP_O_Ural_Reammo_SLA", + "CUP_O_Ural_Reammo_TKA", + "CUP_O_V3S_Rearm_TKA", + "gm_gc_army_ural4320_reammo_win", + "gm_gc_army_ural4320_reammo", + "gm_ge_army_kat1_451_reammo_win", + "gm_ge_army_kat1_451_reammo", + "I_E_Truck_02_Ammo_F", + "Land_Pod_Heli_Transport_04_ammo_F", + "O_Heli_Transport_04_ammo_F", + "O_T_Truck_03_ammo_ghex_F", + "O_Truck_03_ammo_F", + "rhs_gaz66_ammo_msv", + "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", + "rhsusf_M1239_M2_Deploy_socom_d", + "rhsusf_M1239_MK19_Deploy_socom_d", + "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_d", + "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_wd", + "rhsusf_M977A4_AMMO_BKIT_usarmy_d", + "rhsusf_M977A4_AMMO_BKIT_usarmy_wd", + "rhsusf_M977A4_AMMO_usarmy_d", + "rhsusf_M977A4_AMMO_usarmy_wd", + "sfp_tgb40_ammo", + "uns_M113_ENG", + "uns_M35A2_ammo", + "uns_motorpool1_repair" +]; + +// Everything that can repair other vehicles. +vehicle_repair_sources = [ + "B_APC_Tracked_01_CRV_F", + "B_Slingload_01_Repair_F", + "B_T_APC_Tracked_01_CRV_F", + "B_T_Truck_01_Repair_F", + "B_Truck_01_Repair_F", + "BW_LKW15T_Repair_F", + "C_Offroad_01_repair_F", + "CUP_B_Kamaz_Repair_CDF", + "CUP_B_MTVR_Repair_USA", + "CUP_B_MTVR_Repair_USMC", + "CUP_B_T810_Repair_CZ_DES", + "CUP_B_T810_Repair_CZ_WDL", + "CUP_O_Ural_Repair_CHDKZ", + "CUP_O_Ural_Repair_SLA", + "CUP_O_V3S_Repair_TKA", + "gm_gc_army_ural4320_repair_win", + "gm_gc_army_ural4320_repair", + "gm_ge_army_u1300l_repair_win", + "gm_ge_army_u1300l_repair", + "I_E_Truck_02_Box_F", + "Land_Pod_Heli_Transport_04_repair_F", + "O_Heli_Transport_04_repair_F", + "O_T_Truck_03_repair_ghex_F", + "O_Truck_03_repair_F", + "RHS_Ural_Repair_VDV_01", + "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", + "rhsusf_M1239_M2_Deploy_socom_d", + "rhsusf_M1239_MK19_Deploy_socom_d", + "rhsusf_M977A4_REPAIR_BKIT_M2_usarmy_d", + "rhsusf_M977A4_REPAIR_BKIT_M2_usarmy_wd", + "rhsusf_M977A4_REPAIR_BKIT_usarmy_d", + "rhsusf_M977A4_REPAIR_BKIT_usarmy_wd", + "rhsusf_M977A4_REPAIR_usarmy_d", + "rhsusf_M977A4_REPAIR_usarmy_wd", + "sfp_tgb30_repair", + "UNS_Hanger_repair", + "uns_M113_ENG", + "uns_M35A2_repair", + "uns_motorpool1_repair" +]; + +// Everything that can rearm other vehicles. +vehicle_rearm_sources = [ + "B_APC_Tracked_01_CRV_F", + "B_Slingload_01_Ammo_F", + "B_T_APC_Tracked_01_CRV_F", + "B_T_Truck_01_ammo_F", + "B_Truck_01_ammo_F", + "BW_LKW15T_Ammo_F", + "CUP_B_Kamaz_Reammo_CDF", + "CUP_B_MTVR_Ammo_USA", + "CUP_B_MTVR_Ammo_USMC", + "CUP_B_T810_Reammo_CZ_DES", + "CUP_B_T810_Reammo_CZ_WDL", + "CUP_O_Kamaz_Reammo_RU", + "CUP_O_Ural_Reammo_CHDKZ", + "CUP_O_Ural_Reammo_SLA", + "CUP_O_Ural_Reammo_TKA", + "CUP_O_V3S_Rearm_TKA", + "gm_gc_army_ural4320_reammo_win", + "gm_gc_army_ural4320_reammo", + "gm_ge_army_kat1_451_reammo_win", + "gm_ge_army_kat1_451_reammo", + "I_E_Truck_02_Ammo_F", + "Land_Pod_Heli_Transport_04_ammo_F", + "O_Heli_Transport_04_ammo_F", + "O_T_Truck_03_ammo_ghex_F", + "O_Truck_03_ammo_F", + "rhs_gaz66_ammo_msv", + "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", + "rhsusf_M1239_M2_Deploy_socom_d", + "rhsusf_M1239_MK19_Deploy_socom_d", + "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_d", + "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_wd", + "rhsusf_M977A4_AMMO_BKIT_usarmy_d", + "rhsusf_M977A4_AMMO_BKIT_usarmy_wd", + "rhsusf_M977A4_AMMO_usarmy_d", + "rhsusf_M977A4_AMMO_usarmy_wd", + "sfp_tgb40_ammo", + "uns_M113_ENG", + "uns_M35A2_ammo" +]; + +// Everything that can refuel other vehicles. +vehicle_refuel_sources = [ + "B_APC_Tracked_01_CRV_F", + "B_Slingload_01_Fuel_F", + "B_T_APC_Tracked_01_CRV_F", + "B_T_Truck_01_fuel_F", + "B_Truck_01_fuel_F", + "BW_LKW15T_Fuel_F", + "C_Truck_02_fuel_F", + "C_Van_01_fuel_F", + "CUP_B_Kamaz_Refuel_CDF", + "CUP_B_MTVR_Refuel_USA", + "CUP_B_MTVR_Refuel_USMC", + "CUP_B_T810_Refuel_CZ_DES", + "CUP_B_T810_Refuel_CZ_WDL", + "CUP_O_Kamaz_Refuel_RU", + "CUP_O_Ural_Refuel_CHDKZ", + "CUP_O_Ural_Refuel_SLA", + "CUP_O_Ural_Refuel_TKA", + "CUP_O_V3S_Refuel_TKA", + "gm_gc_army_ural375d_refuel_win", + "gm_gc_army_ural375d_refuel", + "gm_ge_army_kat1_451_refuel_win", + "gm_ge_army_kat1_451_refuel", + "I_E_Truck_02_fuel_F", + "Land_Pod_Heli_Transport_04_fuel_F", + "O_Heli_Transport_04_fuel_F", + "O_T_Truck_03_fuel_ghex_F", + "O_Truck_03_fuel_F", + "RHS_Ural_Fuel_VDV_01", + "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", + "rhsusf_M1239_M2_Deploy_socom_d", + "rhsusf_M1239_MK19_Deploy_socom_d", + "rhsusf_M978A4_BKIT_usarmy_d", + "rhsusf_M978A4_BKIT_usarmy_wd", + "rhsusf_M978A4_usarmy_d", + "rhsusf_M978A4_usarmy_wd", + "sfp_tgb40_fuel", + "uns_M113_ENG", + "uns_M35A2_fuel", + "uns_M35A2_fueltanker" +]; + +// Classnames of boats, so they can be built on water. +boats_names = [ + "B_Boat_Armed_01_minigun_F", + "B_Boat_Transport_01_F", + "B_SDV_01_F", + "B_T_Boat_Armed_01_minigun_F", + "B_T_Boat_Transport_01_F", + "CUP_B_LCU1600_USMC", + "CUP_B_MK10_GB", + "CUP_B_RHIB_USMC", + "CUP_B_RHIB2Turret_USMC", + "CUP_O_LCVP_SLA", + "CUP_O_LCVP_VIV_SLA", + "CUP_O_PBX_SLA", + "O_Boat_Armed_01_hmg_F", + "O_Boat_Transport_01_F", + "O_T_Boat_Armed_01_hmg_F", + "O_T_Boat_Transport_01_F", + "rhsusf_mkvsoc", + "sfp_gruppbat", + "sfp_rbb_norrkoping", + "sfp_strb90_rws", + "sfp_strb90", + "uns_PBR_M10", + "uns_pbr_mk18", + "uns_pbr", + "UNS_Zodiac_W" +]; + +// Classnames of artillery vehicles, which should be added to the support module +KPLIB_param_supportModule_artyVeh = [ + "B_G_Mortar_01_F", + "B_MBT_01_arty_F", + "B_MBT_01_mlrs_F", + "B_Mortar_01_F", + "B_Ship_Gun_01_F", + "B_T_MBT_01_arty_F", + "B_T_MBT_01_mlrs_F", + "B_T_Mortar_01_F", + "CUP_B_2b14_82mm_ACR", + "CUP_B_2b14_82mm_CDF", + "CUP_B_BM21_CDF", + "CUP_B_D30_CDF", + "CUP_B_L16A2_BAF_DDPM", + "CUP_B_L16A2_BAF_MPT", + "CUP_B_L16A2_BAF_WDL", + "CUP_B_M1129_MC_MK19_Desert_Slat", + "CUP_B_M1129_MC_MK19_Desert", + "CUP_B_M1129_MC_MK19_Woodland_Slat", + "CUP_B_M1129_MC_MK19_Woodland", + "CUP_B_M119_US", + "CUP_B_M119_USMC", + "CUP_B_M252_US", + "CUP_B_M252_USMC", + "CUP_B_M270_DPICM_BAF_DES", + "CUP_B_M270_DPICM_BAF_WOOD", + "CUP_B_M270_DPICM_USA", + "CUP_B_M270_DPICM_USMC", + "CUP_B_M270_HE_BAF_DES", + "CUP_B_M270_HE_BAF_WOOD", + "CUP_B_M270_HE_USA", + "CUP_B_M270_HE_USMC", + "CUP_B_RM70_CZ", + "CUP_I_2b14_82mm_TK_GUE", + "CUP_I_D30_TK_GUE", + "CUP_I_Hilux_armored_MLRS_TK", + "CUP_I_Hilux_armored_podnos_TK", + "CUP_I_Hilux_armored_UB32_TK", + "CUP_I_Hilux_MLRS_TK", + "CUP_I_Hilux_podnos_TK", + "CUP_I_Hilux_UB32_TK", + "CUP_I_M119_RACS", + "CUP_I_M252_RACS", + "CUP_I_M270_DPICM_AAF", + "CUP_I_M270_DPICM_RACS", + "CUP_I_M270_HE_AAF", + "CUP_I_M270_HE_RACS", + "CUP_O_2b14_82mm_ChDKZ", + "CUP_O_2b14_82mm_RU", + "CUP_O_2b14_82mm_SLA", + "CUP_O_2b14_82mm_TK_INS", + "CUP_O_2b14_82mm_TK", + "CUP_O_BM21_CHDKZ", + "CUP_O_BM21_RU", + "CUP_O_BM21_SLA", + "CUP_O_BM21_TKA", + "CUP_O_D30_ChDKZ", + "CUP_O_D30_RU", + "CUP_O_D30_SLA", + "CUP_O_D30_TK_INS", + "CUP_O_D30_TK", + "CUP_O_Hilux_armored_MLRS_TK_INS", + "CUP_O_Hilux_armored_podnos_TK_INS", + "CUP_O_Hilux_armored_UB32_TK_INS", + "CUP_O_Hilux_MLRS_TK_INS", + "CUP_O_Hilux_podnos_TK_INS", + "CUP_O_Hilux_UB32_TK_INS", + "I_E_Mortar_01_F", + "I_E_Truck_02_MRL_F", + "I_G_Mortar_01_F", + "I_Mortar_01_F", + "I_Truck_02_MRL_F", + "O_G_Mortar_01_F", + "O_MBT_02_arty_F", + "O_Mortar_01_F", + "O_T_MBT_02_arty_ghex_F", + "rhs_2b14_82mm_msv", + "rhs_2b14_82mm_vdv", + "rhs_2b14_82mm_vmf", + "rhs_2s1_tv", + "rhs_2s1_vmf", + "rhs_2s3_tv", + "RHS_BM21_MSV_01", + "RHS_BM21_VDV_01", + "RHS_BM21_VMF_01", + "RHS_BM21_VV_01", + "rhs_D30_msv", + "rhs_D30_vdv", + "rhs_D30_vmf", + "RHS_M119_D", + "RHS_M119_WD", + "RHS_M252_D", + "RHS_M252_USMC_D", + "RHS_M252_USMC_WD", + "RHS_M252_WD", + "rhsusf_m109_usarmy", + "rhsusf_m109d_usarmy", + "rhsusf_M142_usarmy_D", + "rhsusf_M142_usarmy_WD", + "rhsusf_M142_usmc_WD", + "Uns_D20_artillery", + "Uns_D30_artillery", + "uns_M1_81mm_mortar_arty", + "uns_M1_81mm_mortar_pvp", + "uns_M1_81mm_mortar", + "Uns_M102_artillery", + "uns_m107sp", + "uns_m110sp", + "uns_M113_M30_HQ", + "uns_M113_M30", + "Uns_M114_artillery", + "uns_m1941_82mm_mortarNVA_arty", + "uns_m1941_82mm_mortarNVA_pvp", + "uns_m1941_82mm_mortarNVA", + "uns_m1941_82mm_mortarVC", + "uns_M2_60mm_mortar_pvp", + "uns_M2_60mm_mortar", + "uns_M30_107mm_mortar", + "uns_Type55_mortar" +]; + +// Objects which are spawned as intel objects for pickup +KPLIB_intelObjectClasses = [ + "Land_Document_01_F", + "Land_File_research_F" +]; + +// Classnames of buildings inside military sectors, which are valid to hold intel items +KPLIB_intelBuildingClasses = [ + "Land_Cargo_House_V1_F", + "Land_Cargo_House_V2_F", + "Land_Cargo_House_V3_F", + "Land_Cargo_HQ_V1_F", + "Land_Cargo_HQ_V2_F", + "Land_Cargo_HQ_V3_F", + "Land_i_Barracks_V1_dam_F", + "Land_i_Barracks_V1_F", + "Land_i_Barracks_V2_dam_F", + "Land_i_Barracks_V2_F", + "Land_Medevac_house_V1_F", + "Land_Medevac_HQ_V1_F", + "Land_MilOffices_V1_F", + "Land_Research_house_V1_F", + "Land_Research_HQ_F", + "Land_u_Barracks_V2_F" +]; + +// Array of radio tower classnames to place at radio tower sectors. If more than one is added, it'll be selected random for each sector on campaign start. +KPLIB_radioTowerClassnames = [ + "Land_Communication_F" +]; + +// Classnames of objects which should be ignored when building +KPLIB_collisionIgnoreObjects = [ + "Land_HelipadSquare_F", + "Land_TentHangar_V1_F", + "Land_runway_edgelight", + "Land_runway_edgelight_blue_F", + "Land_Flush_Light_green_F", + "Land_Flush_Light_red_F", + "Land_Flush_Light_yellow_F", + "TMR_Autorest_Georef", + "Flag_NATO_F", + "Flag_White_F", + "Flag_RedCrystal_F", + "CamoNet_BLUFOR_F", + "CamoNet_BLUFOR_open_F", + "CamoNet_BLUFOR_big_F", + "Land_PortableLight_single_F", + "Land_PortableLight_double_F", + "Land_HelipadCircle_F", + "Land_HelipadRescue_F", + "Helipad", + "LAND_uns_Heli_pad", + "LAND_uns_evac_pad", + "PortableHelipadLight_01_blue_F", + "PortableHelipadLight_01_green_F", + "PortableHelipadLight_01_red_F", + "Land_BagFence_Round_F", + "Land_BagFence_Short_F", + "Land_BagFence_Long_F", + "Land_BagFence_Corner_F", + "Land_BagFence_End_F", + "Land_Sign_WarningMilitaryArea_F", + "Land_Sign_WarningMilAreaSmall_F", + "Land_Sign_WarningMilitaryVehicles_F", + "Land_Razorwire_F", + "Sign_Sphere100cm_F", + "Land_ClutterCutter_large_F", + "Land_HighVoltageColumnWire_F", + "Land_PowerWireBig_left_F", + "B_HMG_01_F", // Mk30A HMG .50 + "B_HMG_01_high_F", // Mk30 HMG .50 (Raised) + "B_HMG_01_A_F", // Mk30 HMG .50 (Autonomous) + "B_GMG_01_F", // Mk32A GMG 20mm + "B_GMG_01_high_F", // Mk32 GMG 20mm (Raised) + "B_GMG_01_A_F", // Mk32 GMG 20mm (Autonomous) + "B_static_AT_F", // Static Titan Launcher (AT) + "B_static_AA_F", // Static Titan Launcher (AA) + "B_Mortar_01_F", // Mk6 Mortar + "ACE_friesAnchorBar", // ACE FRIES + "ACE_friesGantryReverse", // ACE FRIES + "ACE_friesGantry" // ACE FRIES +]; diff --git a/Missionframework/KPLIB_config.sqf b/Missionframework/KPLIB_config.sqf new file mode 100644 index 000000000..bae114c53 --- /dev/null +++ b/Missionframework/KPLIB_config.sqf @@ -0,0 +1,368 @@ +/* + File: KPLIB_config.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-16 + Last Update: 2020-08-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Contains all settings which are meant to be adjustable by players. +*/ + + +/* +------------------------------------------------------------ + --- PRESET SETTINGS --- + If you want to change a preset, it's recommended to + set all four presets to 0 and edit the appropriate + custom.sqf files in the preset folders. +------------------------------------------------------------ +*/ + +/* + ----- Playerside preset ----- + 0 = Custom (default vanilla with many optional mods supported) + 1 = Apex Tanoa (apex vanilla with many optional mods supported) + 2 = 3cb BAF (MTP) + 3 = 3cb BAF (Desert) + 4 = BWMod Bundeswehr (Flecktarn) + 5 = BWMod Bundeswehr (Tropentarn) + 6 = RHS USAF (Woodland) + 7 = RHS USAF (Desert) + 8 = RHS AFRF (VDV/MSV) + 9 = Germany West (Global Mobilization) + 10 = Germany West Winter (Global Mobilization) + 11 = Germany East (Global Mobilization) + 12 = Germany East Winter (Global Mobilization) + 13 = CSAT Brown + 14 = CSAT Green + 15 = Unsung US + 16 = CUP British Armed Forces (Desert) + 17 = CUP British Armed Forces (Woodland) + 18 = CUP US Marine Corps (Desert) + 19 = CUP US Marine Corps (Woodland) + 20 = CUP US Army (Desert) + 21 = CUP US Army (Woodland) + 22 = CUP Chernarus Defense Force + 23 = CUP Army of the Czech Republic (Desert) + 24 = CUP Army of the Czech Republic (Woodland) + 25 = CUP Chernarussian Movement of the Red Star + 26 = CUP Sahrani Liberation Army + 27 = CUP Takistani Army + 28 = SFP (Woodland) + 29 = SFP (Desert) + 30 = LDF (Contact DLC) +*/ +KPLIB_presetPlayer = 0; + +/* + ----- Enemy preset ----- + 0 = Custom (default vanilla CSAT) + 1 = Apex Tanoa (apex vanilla CSAT) + 2 = RHS AFRF (EMR/MSV) + 3 = Project OPFOR (Takistan) + 4 = Project OPFOR (Islamic State) + 5 = Project OPFOR (Sahrani) + 6 = AAF + 7 = NATO + 8 = Germany West (Global Mobilization) + 9 = Germany West Winter (Global Mobilization) + 10 = Germany East (Global Mobilization) + 11 = Germany East Winter (Global Mobilization) + 12 = Unsung NVA + 13 = CUP Sahrani Liberation Army + 14 = CUP Takistani Army + 15 = CUP Chernarussian Movement of the Red Star + 16 = CUP Armed Forces of the Russian Federation (MSV - EMR) + 17 = CUP Armed Forces of the Russian Federation (Modern MSV) + 18 = CUP Chernarus Defense Force + 19 = CUP British Armed Forces (Desert) + 20 = CUP British Armed Forces (Woodland) +*/ +KPLIB_presetEnemy = 0; + +/* + ----- Resistance preset ----- + 0 = Custom (default vanilla FIA) + 1 = Apex Tanoa (apex vanilla Syndikat) + 2 = RHS GREF + 3 = Project OPFOR (Middle Eastern) + 4 = Project OPFOR (Sahrani) + 5 = Germany (Global Mobilization) + 6 = Unsung + 7 = CUP Takistani Locals + 8 = CUP National Party of Chernarus +*/ +KPLIB_presetResistance = 0; + +/* + ----- Civilians preset ----- + 0 = Custom (default vanilla) + 1 = Apex Tanoa (apex vanilla) + 2 = Project OPFOR (Middle Eastern) + 3 = RDS Civilians + 4 = Germany (Global Mobilization) + 5 = Unsung + 6 = CUP Takistani Civilians + 7 = CUP Chernarussian Civilians +*/ +KPLIB_presetCivilians = 0; + +/* + ----- Arsenal preset ----- + 0 = Use the default blacklist method (defined below) + 1 = Custom arsenal preset (custom.sqf in the presets\arsenal\ folder) + 2 = RHS USAF arsenal preset + 3 = 3cbBAF and RHS USAF arsenal preset + 4 = GM West arsenal preset + 5 = GM East arsenal preset + 6 = CSAT arsenal preset + 7 = Unsung US arsenal preset + 8 = SFP arsenal preset + 9 = BWMod arsenal preset +*/ +KPLIB_presetArsenal = 0; + + +/* +------------------------------------------------------------ + --- SIDE SETTINGS --- + Sides of each faction. In basically any cases this + doesn't need to be tweaked, even if using e.g. the + CSAT preset for the players. +------------------------------------------------------------ +*/ + +// Player side. +KPLIB_side_player = WEST; + +// Enemy side. +KPLIB_side_enemy = EAST; + +// Resistance side. +KPLIB_side_resistance = RESISTANCE; + +// Civilian side. +KPLIB_side_civilian = CIVILIAN; + +// Player owned sector marker color. +KPLIB_color_player = "ColorBLUFOR"; + +// Enemy sector marker color. +KPLIB_color_enemy = "ColorOPFOR"; + +// Enemy sector marker color. (activated) +KPLIB_color_enemyActive = "ColorRED"; + + +/* +------------------------------------------------------------ + --- SAVE SETTINGS --- + Settings concerning the internal save system. +------------------------------------------------------------ +*/ + +// Name of the save data variable inside of the [ServerProfileName].vars.Arma3Profile file. +KPLIB_save_key = "KP_LIBERATION_" + (toUpper worldName) + "_SAVEGAME"; + +// Name of the parameter save data variable inside of the [ServerProfileName].vars.Arma3Profile file. +KPLIB_save_paramKey = "KP_LIBERATION_" + (toUpper worldName) + "_SAVE_PARAMS"; + +// Interval in seconds for automatic save. +KPLIB_save_interval = 60; + + +/* +------------------------------------------------------------ + --- RANGES AND HEIGHTS --- + All values in meters. +------------------------------------------------------------ +*/ + +// Build range around the main FOB building. +KPLIB_range_fob = 125; + +// Altitude in metres for the HALO jump. +KPLIB_height_halo = 2500; + +// Range to activate a sector. +KPLIB_range_sectorActivation = 1000; + +// Range to capture a sector. +KPLIB_range_sectorCapture = 175; + +// Radio Tower scanning range. +KPLIB_range_radioTowerScan = 2500; + + +/* +------------------------------------------------------------ + --- CAP SETTINGS --- + Maximum amounts/values for different mechanics. +------------------------------------------------------------ +*/ + +// Cap for BLUFOR. +KPLIB_cap_playerSide = 100; + +// Cap for enemy units. +KPLIB_cap_enemySide = 180; + +// Cap for enemy battlegroups. +KPLIB_cap_battlegroup = 150; + +// Cap for enemy patrols. +KPLIB_cap_patrol = 150; + +// Size of enemy battlegroups. +KPLIB_battlegroup_size = 6; + +// Cap for civilian vehicles traveling between sectors. +KPLIB_civilians_amount = 10; + + +/* +------------------------------------------------------------ + --- CIVIL REPUTATION SETTINGS --- + Values connected to the civil reputation system. +------------------------------------------------------------ +*/ + +// Civil Reputation penalty for killing a civilian. +KPLIB_cr_kill_penalty = 5; + +// Civil Reputation penalty for destroying/damaging a building. +KPLIB_cr_building_penalty = 3; + +// Civil Reputation penalty for stealing a civilian vehicle. +KPLIB_cr_vehicle_penalty = 2; + +// Civil Reputation penalty for killing a friendly resistance soldier. +KPLIB_cr_resistance_penalty = 3; + +// Civil Reputation gain for liberate a sector. +KPLIB_cr_sector_gain = 5; + +// Chance (0-100) that there are wounded civilians right after capturing a sector. +KPLIB_cr_wounded_chance = 35; + +// Civil Reputation gain for providing medical assistance for wounded civilians. +KPLIB_cr_wounded_gain = 2; + + +/* +------------------------------------------------------------ + --- SECONDARY MISSION SETTINGS --- + Settings which are connected to the available + secondary missions which can be started by players + via the secondary mission dialog or happen + randomly. +------------------------------------------------------------ +*/ + +// Intel price for the secondary missions. [FOB hunting, Convoy ambush, SAR] +KPLIB_secondary_missions_costs = [15, 10, 8]; + +// Proportionate reduction of the actual (!) enemy combat readiness for a successful FOB hunt. (e.g. 0.4 -> reduction of 24 by an actual value of 60) +KPLIB_secondary_objective_impact = 0.4; + +// Minimum time until a civil Informant can spawn. (seconds) +KPLIB_civinfo_min = 5400; + +// Maximum time until a civil Informant spawns. (seconds) +KPLIB_civinfo_max = 10800; + +// Civil Informant spawn chance. (0-100) +KPLIB_civinfo_chance = 75; + +// Intel gain for talking to a civil informant. +KPLIB_civinfo_intel = 5; + +// Time until a civil informant will despawn after spawning. (seconds) +KPLIB_civinfo_duration = 1200; + +// Chance (0-100) that the delivered informant will spawn a time critical task +KPLIB_civinfo_task_chance = 40; + +// Time until the task will despawn if no player is near. (seconds) +KPLIB_civinfo_task_duration = 900; + + +/* +------------------------------------------------------------ + --- FUEL CONSUMPTION SETTINGS --- + Values for the KP Fuel Consumption Script. +------------------------------------------------------------ +*/ + +// Time in minutes till a full tank depletes whilst the vehicle is standing still with a running engine. +KPLIB_fuel_neutral = 180; + +// Time in minutes till a full tank depletes whilst the vehicle is driving below max speed. +KPLIB_fuel_normal = 90; + +// Time in minutes till a full tank depletes whilst the vehicle is driving at max speed. +KPLIB_fuel_max = 45; + + +/* +------------------------------------------------------------ + --- RESISTANCE SETTINGS --- + Values connected to the resistance faction. +------------------------------------------------------------ +*/ + +// Chance (0-100) that a logistic convoy will be ambushed, when civil reputation is low. (Checked every minute) +KPLIB_convoy_ambush_chance = 2; + +// Duration of the convoy ambush event until nothing can be retrieved. (seconds) +KPLIB_convoy_ambush_duration = 1200; + +// Resistance strength (0-100) needed for tier 2 equipment. +KPLIB_resistance_tier2 = 30; + +// Resistance strength (0-100) needed for tier 3 equipment. +KPLIB_resistance_tier3 = 70; + +// Chance (0-100) that a resistance unit has a RPG. (tier 2 and 3) +KPLIB_resistance_at_chance = 20; + +// Chance (0-100) that a resistance squad will join an ongoing sector attack. +KPLIB_resistance_sector_chance = 35; + +// Chance that some resistance units will spawn in blufor sectors for an ambush, if reputation is low. +KPLIB_resistance_ambush_chance = 25; + + +/* +------------------------------------------------------------ + --- MISC SETTINGS --- + Values or arrays of misc mechanics. +------------------------------------------------------------ +*/ + +// Time in minutes until a resource crate is produced, when resources multiplier is set to 1. +KPLIB_production_interval = 30; + +// Percentage of resources you get back from recycling. +KPLIB_recycling_percentage = 0.5; + +// Multiplier for defenders in buildings. +KPLIB_defended_buildingpos_part = 0.4; + +// Time in seconds how long a captured sector is vulnerable to enemy troops. +KPLIB_vulnerability_timer = 1200; + +// Chance that enemy infantry will surrender after heavy losses are encountered. +KPLIB_surrender_chance = 80; + +// When playing on this map, it'll create a clearance (remove terrain objects) in a 15m radius around the battlegroup/reinforcements spawnpoint. +KPLIB_battlegroup_clearance = [ + "song_bin_tanh" +]; + +// Delay after death for wrecks and corpses to be deleted +KPLIB_cleanup_delay = 1200; + +// Fill magazines on loading loadout? +KP_liberation_fill_mags = true; diff --git a/Missionframework/kp_objectInits.sqf b/Missionframework/KPLIB_objectInits.sqf similarity index 82% rename from Missionframework/kp_objectInits.sqf rename to Missionframework/KPLIB_objectInits.sqf index 1ba6f00fe..a72a3ea5b 100644 --- a/Missionframework/kp_objectInits.sqf +++ b/Missionframework/KPLIB_objectInits.sqf @@ -39,13 +39,12 @@ KPLIB_objectInits = [ // Add ViV and build action to FOB box/truck [ - [FOB_box_typename, FOB_truck_typename], + [KPLIB_b_fobBox, KPLIB_b_fobTruck], { [_this] spawn { params ["_fobBox"]; waitUntil {sleep 0.1; time > 0}; - [_fobBox] call KPLIB_fnc_setFobMass; - if ((typeOf _fobBox) isEqualTo FOB_box_typename) then { + if ((typeOf _fobBox) isEqualTo KPLIB_b_fobBox) then { [_fobBox] call KPLIB_fnc_setFobMass; [_fobBox] remoteExecCall ["KPLIB_fnc_setLoadableViV", 0, _fobBox]; }; @@ -56,7 +55,7 @@ KPLIB_objectInits = [ // Add FOB building damage handler override and repack action [ - [FOB_typename], + [KPLIB_b_fobBuilding], { _this addEventHandler ["HandleDamage", {0}]; [_this] spawn { @@ -69,7 +68,7 @@ KPLIB_objectInits = [ // Add ViV action to Arsenal crate [ - [Arsenal_typename], + [KPLIB_b_arsenal], { [_this] spawn { params ["_arsenal"]; @@ -81,21 +80,21 @@ KPLIB_objectInits = [ // Add storage type variable to built storage areas (only for FOB built/loaded ones) [ - [KP_liberation_small_storage_building, KP_liberation_large_storage_building], - {_this setVariable ["KP_liberation_storage_type", 0, true];} + [KPLIB_b_smallStorage, KPLIB_b_largeStorage], + {_this setVariable ["KPLIB_storage_type", 0, true];} ], // Add ACE variables to corresponding building types [ - [KP_liberation_recycle_building], + [KPLIB_b_logiStation], {_this setVariable ["ace_isRepairFacility", 1, true];} ], [ - KP_liberation_medical_facilities, + KPLIB_medical_facilities, {_this setVariable ["ace_medical_isMedicalFacility", true, true];} ], [ - KP_liberation_medical_vehicles, + KPLIB_medical_vehicles, {_this setVariable ["ace_medical_isMedicalVehicle", true, true];} ], @@ -114,15 +113,15 @@ KPLIB_objectInits = [ // Add valid vehicles to support module, if system is enabled [ - KP_liberation_suppMod_artyVeh, - {if (KP_liberation_suppMod > 0) then {KPLIB_suppMod_arty synchronizeObjectsAdd [_this];};} + KPLIB_param_supportModule_artyVeh, + {if (KPLIB_param_supportModule > 0) then {KPLIB_param_supportModule_arty synchronizeObjectsAdd [_this];};} ], // Disable autocombat (if set in parameters) and fleeing [ ["Man"], { - if (!(GRLIB_autodanger) && {(side _this) isEqualTo GRLIB_side_friendly}) then { + if (!(KPLIB_param_autodanger) && {(side _this) isEqualTo KPLIB_side_player}) then { _this disableAI "AUTOCOMBAT"; }; _this allowFleeing 0; diff --git a/Missionframework/KPLIB_transportConfigs.sqf b/Missionframework/KPLIB_transportConfigs.sqf new file mode 100644 index 000000000..c959777aa --- /dev/null +++ b/Missionframework/KPLIB_transportConfigs.sqf @@ -0,0 +1,246 @@ +/* + File: KPLIB_transportConfigs.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-10 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Position configs for objects which can hold/transport crates. + + Format: + ["classname", , ] +*/ + +// Vehicle transport configs +KPLIB_transportConfigs = [ + ["B_Heli_Transport_03_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]], + ["B_Heli_Transport_03_unarmed_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]], + ["B_T_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_T_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_T_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_T_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_T_VTOL_01_infantry_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]], + ["B_T_VTOL_01_vehicle_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]], + ["B_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["B_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], + ["BW_AW101_Trans_Heer_F", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]], + ["BW_LKW7T_Trans_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["C_IDAP_Van_02_transport_F", -5, [0,-1.75,0]], + ["C_IDAP_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["C_Offroad_01_F", -6.5, [0,-1.7,0.4]], + ["C_Truck_02_covered_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], + ["C_Truck_02_transport_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], + ["C_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["C_Van_02_service_F", -5, [0,0.5,0], [0,-1.75,0]], + ["C_Van_02_transport_F", -5, [0,-1.75,0]], + ["C_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["CUP_B_C130J_Cargo_USMC",-10,[0,0.6,-3.76],[0,-0.9,-3.76],[0,-2.5,-3.76],[0,-4.2,-3.76],[0,2.2,-3.76],[0,3.8,-3.76],[0,5.5,-3.76]], + ["CUP_B_CH47F_GB", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]], + ["CUP_B_CH47F_USA", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]], + ["CUP_B_CH53E_USMC", -8, [0,7.566,-3], [0,5.749,-3], [0,3.847,-3], [0,2,-3], [0,0.338,-3]], + ["CUP_B_Kamaz_CDF", -6.5, [0,-0.4,0], [0,-2.6,0]], + ["CUP_B_Kamaz_Open_CDF", -6.5, [0.12,0.4,0], [0.12,-1.8,0]], + ["CUP_B_Mi17_CDF", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], + ["CUP_B_Mi171Sh_ACR", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], + ["CUP_B_Mi171Sh_Unarmed_ACR", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], + ["CUP_B_MI6A_CDF", -8, [0,6,-0.6], [0,4.3,-0.6], [0,2.5,-0.6], [0,0.5,-0.6], [0,-1.2,-0.6], [0,-3.1,-0.6]], + ["CUP_B_MTVR_USA", -6.5, [-0.009,-0.647,0.112], [-0.054,-2.535,0.112]], + ["CUP_B_MTVR_USMC", -6.5, [-0.009,-0.647,0.112], [-0.054,-2.535,0.112]], + ["CUP_B_MV22_USMC_RAMPGUN", -8, [0,3.3,-1.6], [0,1,-1.6], [0,-1.3,-1.6]], + ["CUP_B_MV22_USMC", -8, [0,3.3,-1.6], [0,1,-1.6], [0,-1.3,-1.6]], + ["CUP_B_MV22_VIV_USMC", -8, [0,3.3,-1.6], [0,1,-1.6], [0,-1.3,-1.6]], + ["CUP_B_T810_Armed_CZ_DES", -6.5, [0,0,-0.5], [0,-2,-0.5]], + ["CUP_B_T810_Armed_CZ_WDL", -6.5, [0,0,-0.5], [0,-2,-0.5]], + ["CUP_B_T810_Unarmed_CZ_DES", -6.5, [0,0,0.2], [0,-2,0.2]], + ["CUP_B_T810_Unarmed_CZ_WDL", -6.5, [0,0,0.2], [0,-2,0.2]], + ["CUP_B_Ural_CDF", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_B_Ural_Open_CDF", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_B_Wolfhound_GMG_GB_D", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_GMG_GB_W", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_HMG_GB_D", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_HMG_GB_W", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_LMG_GB_D", -6.5, [0,-3.5,2.3]], + ["CUP_B_Wolfhound_LMG_GB_W", -6.5, [0,-3.5,2.3]], + ["CUP_C_Ural_Civ_01", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_C_Ural_Civ_03", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_C_Ural_Open_Civ_03", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_C130J_Cargo_TKA",-10,[0,0.6,-3.76],[0,-0.9,-3.76],[0,-2.5,-3.76],[0,-4.2,-3.76],[0,2.2,-3.76],[0,3.8,-3.76],[0,5.5,-3.76]], + ["CUP_O_Kamaz_Open_RU", -6.5, [0.12,0.4,0], [0.12,-1.8,0]], + ["CUP_O_Kamaz_RU", -6.5, [0,-0.4,0], [0,-2.6,0]], + ["CUP_O_MI6A_CHDKZ", -8, [0,6,-0.6], [0,4.3,-0.6], [0,2.5,-0.6], [0,0.5,-0.6], [0,-1.2,-0.6], [0,-3.1,-0.6]], + ["CUP_O_MI6A_TKA", -8, [0,6,-0.6], [0,4.3,-0.6], [0,2.5,-0.6], [0,0.5,-0.6], [0,-1.2,-0.6], [0,-3.1,-0.6]], + ["CUP_O_Mi8_SLA_1", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], + ["CUP_O_Ural_CHDKZ", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_Open_CHDKZ", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_Open_SLA", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_Open_TKA", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_SLA", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["CUP_O_Ural_TKA", -6.5, [0,-0.5,0], [0,-2.5,0]], + ["gm_gc_army_ural4320_cargo_win", -5, [0.0722656,-0.539063,-0.1], [0.076416,-1.76904,-0.1], [0.0773926,-2.85742,-0.1]], + ["gm_gc_army_ural4320_cargo", -5, [0.0722656,-0.539063,-0.1], [0.076416,-1.76904,-0.1], [0.0773926,-2.85742,-0.1]], + ["gm_gc_bgs_ural4320_cargo", -5, [-0.0373535,-0.535156,-0.1], [-0.0344238,-1.76611,-0.1], [-0.0334473,-2.85547,-0.1]], + ["gm_ge_army_kat1_451_container_win", -5, [-0.0280762,0.222656,-0.2], [-0.0202637,-1.31152,-0.2],[-0.0222168,-2.79834,-0.2]], + ["gm_ge_army_kat1_451_container", -5, [-0.0280762,0.222656,-0.2], [-0.0202637,-1.31152,-0.2], [-0.0222168,-2.79834,-0.2]], + ["gm_ge_army_kat1_454_cargo_win",-6.5, [-0.0217285,1.32764,0.35], [-0.00170898,-0.337891,0.35], [-0.0441895,-1.90332,0.35], [-0.0615234,-3.59033,0.35]], + ["gm_ge_army_kat1_454_cargo",-6.5, [-0.0217285,1.32764,0.35], [-0.00170898,-0.337891,0.35], [-0.0441895,-1.90332,0.35], [-0.0615234,-3.59033,0.35]], + ["gm_ge_army_u1300l_container_win", -5, [-0.0495605,-0.609863,-0.6], [0.147461,-2.06787,-0.6]], + ["gm_ge_army_u1300l_container", -5, [-0.0495605,-0.609863,-0.6], [0.147461,-2.06787,-0.6]], + ["greuh_eh101_gr", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]], + ["I_C_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["I_C_Van_02_transport_F", -5, [0,-1.75,0]], + ["I_C_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["I_E_Truck_02_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], + ["I_E_Truck_02_transport_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], + ["I_E_Van_02_transport_F", -5, [0,-1.75,0]], + ["I_E_Van_02_transport_MP_F", -5, [0,-1.75,0]], + ["I_E_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["I_G_Offroad_01_F", -6.5, [0,-1.7,0.4]], + ["I_G_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["I_G_Van_02_transport_F", -5, [0,-1.75,0]], + ["I_G_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], + ["I_Heli_Transport_02_F", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]], + ["LOP_ISTS_OPF_Truck", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["LOP_SLA_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["LOP_TAK_Civ_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["LOP_TAK_Civ_Ural", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["LOP_TKA_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["LOP_TKA_Ural", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["O_G_Offroad_01_F", -6.5, [0,-1.7,0.4]], + ["O_G_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], + ["O_T_Truck_03_covered_ghex_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["O_T_Truck_03_transport_ghex_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["O_Truck_03_covered_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["O_Truck_03_transport_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], + ["RHS_C130J", -9.5, [-0.8,8.0,-4.0], [0.8,8.0,-4.0], [-0.8,8.0,-2.8], [0.8,8.0,-2.8], [-0.8,6.5,-4.0], [0.8,6.5,-4.0], [-0.8,6.5,-2.8], [0.8,6.5,-2.8], [-0.8,5.0,-4.0], [0.8,5.0,-4.0], [-0.8,5.0,-2.8], [0.8,5.0,-2.8], [-0.8,3.5,-4.0], [0.8,3.5,-4.0], [-0.8,3.5,-2.8], [0.8,3.5,-2.8], [-0.8,2.0,-4.0], [0.8,2.0,-4.0], [-0.8,2.0,-2.8], [0.8,2.0,-2.8], [-0.8,0.5,-4.0], [0.8,0.5,-4.0], [-0.8,0.5,-2.8], [0.8,0.5,-2.8]], + ["RHS_CH_47F_10", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]], + ["RHS_CH_47F_light", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]], + ["RHS_CH_47F", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]], + ["rhs_kamaz5350_flatbed_cover_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], + ["rhs_kamaz5350_flatbed_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], + ["rhs_kamaz5350_open_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], + ["rhs_kamaz5350_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], + ["RHS_Ural_Civ_03", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_Civ_03", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_Flat_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_Flat_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_Open_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["RHS_Ural_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], + ["rhsusf_CH53E_USMC_D", -11.0, [0,7,-3.2], [0,7,-2.0], [0,5.5,-3.2], [0,5.5,-2.0], [0,4,-3.2], [0,4,-2.0], [0,2.5,-3.2], [0,2.5,-2.0], [0,1.0,-3.2], [0,1.0,-2.0], [0,-0.5,-3.2], [0,-0.5,-2.0]], + ["rhsusf_CH53E_USMC", -11.0, [0,7,-3.2], [0,7,-2.0], [0,5.5,-3.2], [0,5.5,-2.0], [0,4,-3.2], [0,4,-2.0], [0,2.5,-3.2], [0,2.5,-2.0], [0,1.0,-3.2], [0,1.0,-2.0], [0,-0.5,-3.2], [0,-0.5,-2.0]], + ["rhsusf_M1078A1P2_B_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_M2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_M2_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_M2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_M2_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_B_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1078A1P2_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_M2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_M2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_B_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1083A1P2_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], + ["rhsusf_M1239_M2_socom_d", -5, [-0.125,-1.73,-0.66], [0,-3.28,-0.66]], + ["rhsusf_M1239_MK19_socom_d", -5, [-0.125,-1.73,-0.66], [0,-3.28,-0.66]], + ["rhsusf_M1239_socom_d", -5, [-0.125,-1.73,-0.66], [0,-3.28,-0.66]], + ["rhsusf_M977A4_BKIT_M2_usarmy_d", -6.5, [0,0.4,0.1], [0,-1.3,0.1], [0,-3,0.1]], + ["rhsusf_M977A4_BKIT_M2_usarmy_wd", -6.5, [0,0.4,0.1], [0,-1.3,0.1], [0,-3,0.1]], + ["rhsusf_M977A4_BKIT_usarmy_d", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], + ["rhsusf_M977A4_BKIT_usarmy_wd", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], + ["rhsusf_M977A4_usarmy_d", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], + ["rhsusf_M977A4_usarmy_wd", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], + ["rhsusf_m998_d_2dr_halftop", -4.5, [0,-0.9,-0.2]], + ["rhsusf_m998_w_2dr_halftop", -4.5, [0,-0.9,-0.2]], + ["sfp_tgb30", -5, [0.2,-0.1,2], [0.2,-2.1,2]], + ["sfp_tgb40", -5, [0.1,-0.7,2], [0.1,-2.7,2]], + ["UK3CB_BAF_Merlin_HC3_18_DPMT", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC3_32_MTP", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC3_CSAR_MTP", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC4_18_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC4_18_GPMG_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC4_32_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["UK3CB_BAF_Merlin_HC4_CSAR_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], + ["uns_M35A2_Open", -5, [0,-0.6,0.1], [0,-2.3,0.1]], + ["uns_M35A2", -5, [0,-0.6,0.1], [0,-2.3,0.1]], + ["uns_m37b1", -5, [0,-1.8,0.15]], + ["uns_nvatruck_mg", -5, [0,-1.05,0.8], [0,-2.75,0.8]], + ["uns_nvatruck_open", -5, [0,-1.05,0.8], [0,-2.75,0.8]], + ["uns_nvatruck", -5, [0,-1.05,0.8], [0,-2.75,0.8]], + ["USAF_C130J_Cargo",-10,[0,3.6,2.08],[0,2,2.08],[0,0.3,2.08],[0,-1.3,2.08],[0,5.3,2.08],[0,7,2.08]], + ["USAF_C130J",-10,[0,3.6,2.08],[0,2,2.08],[0,0.3,2.08],[0,-1.3,2.08]], + ["USAF_C17",-10,[-1.2,14.4,-0.43],[-1.2,12.8,-0.43],[-1.2,11.1,-0.43],[-1.2,9.5,-0.43],[-1.2,7.9,-0.43],[-1.2,6.3,-0.43],[-1.2,4.6,-0.43],[-1.2,3,-0.43],[-1.2,1.4,-0.43],[-1.2,-0.1,-0.43],[-1.2,-1.8,-0.43],[1.2,14.4,-0.43],[1.2,12.8,-0.43],[1.2,11.2,-0.43],[1.2,9.6,-0.43],[1.2,7.9,-0.43],[1.2,6.3,-0.43],[1.2,4.7,-0.43],[1.2,3.1,-0.43],[1.2,1.5,-0.43],[1.2,0,-0.43],[1.2,-1.7,-0.43],[-1.2,14.5,1.22],[-1.2,12.8,1.22],[-1.2,11.2,1.2],[-1.2,9.5,1.22],[-1.2,7.9,1.22],[-1.2,6.3,1.22],[-1.2,4.7,1.22],[-1.2,3,1.22],[-1.2,1.4,1.22],[-1.2,-0.1,1.22],[-1.2,-1.7,1.22],[1.2,14.5,1.22],[1.2,12.8,1.22],[1.2,11.2,1.22],[1.2,9.6,1.22],[1.2,8,1.22],[1.2,6.3,1.22],[1.2,4.7,1.22],[1.2,3.1,1.22],[1.2,1.5,1.22],[1.2,0,1.22],[1.2,-1.6,1.22]] +]; + +// Large storage area placement position offsets. +KPLIB_large_storage_positions = [ + [-5.59961,3.60938,0.6], + [-3.99902,3.60938,0.6], + [-2.39941,3.60938,0.6], + [-0.799805,3.60938,0.6], + [0.800781,3.60938,0.6], + [2.40039,3.60938,0.6], + [4.00098,3.60938,0.6], + [5.60059,3.60938,0.6], + [-5.59961,1.80859,0.6], + [-3.99902,1.80859,0.6], + [-2.39941,1.80859,0.6], + [-0.799805,1.80859,0.6], + [0.800781,1.80859,0.6], + [2.40039,1.80859,0.6], + [4.00098,1.80859,0.6], + [5.60059,1.80859,0.6], + [-5.59961,0.00976563,0.6], + [-3.99902,0.00976563,0.6], + [-2.39941,0.00976563,0.6], + [-0.799805,0.00976563,0.6], + [0.800781,0.00976563,0.6], + [2.40039,0.00976563,0.6], + [4.00098,0.00976563,0.6], + [5.60059,0.00976563,0.6], + [-5.59961,-1.79102,0.6], + [-3.99902,-1.79102,0.6], + [-2.39941,-1.79102,0.6], + [-0.799805,-1.79102,0.6], + [0.800781,-1.79102,0.6], + [2.40039,-1.79102,0.6], + [4.00098,-1.79102,0.6], + [5.60059,-1.79102,0.6], + [-5.59961,-3.58984,0.6], + [-3.99902,-3.58984,0.6], + [-2.39941,-3.58984,0.6], + [-0.799805,-3.58984,0.6], + [0.800781,-3.58984,0.6], + [2.40039,-3.58984,0.6], + [4.00098,-3.58984,0.6], + [5.60059,-3.58984,0.6] +]; + +// Small storage area placement position offsets. +KPLIB_small_storage_positions = [ + [-2.34961,1.80078,0.6], + [-0.75,1.80078,0.6], + [0.850586,1.80078,0.6], + [2.4502,1.80078,0.6], + [-2.34961,0,0.6], + [-0.75,0,0.6], + [0.850586,0,0.6], + [2.4502,0,0.6], + [-2.34961,-1.79883,0.6], + [-0.75,-1.79883,0.6], + [0.850586,-1.79883,0.6], + [2.4502,-1.79883,0.6] +]; diff --git a/Missionframework/KPLIB_whitelists.sqf b/Missionframework/KPLIB_whitelists.sqf new file mode 100644 index 000000000..16f09decc --- /dev/null +++ b/Missionframework/KPLIB_whitelists.sqf @@ -0,0 +1,35 @@ +/* + File: KPLIB_whitelists.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-07-06 + Last Update: 2020-07-06 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Arrays of steam IDs for granting access to several features/mechanics. + All IDs have to be added as string. + + To retrieve steam IDs this site might be handy: https://steamid.io/ + + Example: + KPLIB_whitelist_cmdrSlot = [ + "123445245", + "235245345", + "456454443" + ]; +*/ + +// Access to the commander slot. +KPLIB_whitelist_cmdrSlot = [ + +]; + +// Access the commander actions (rights, production, etc.), even if the corresponding player is not in the commander slot. +KPLIB_whitelist_cmdrActions = [ + +]; + +// Whitelist for BI support framework access. +KPLIB_whitelist_supportModule = [ + +]; diff --git a/Missionframework/arsenal_presets/custom.sqf b/Missionframework/arsenal_presets/custom.sqf deleted file mode 100644 index c441c6025..000000000 --- a/Missionframework/arsenal_presets/custom.sqf +++ /dev/null @@ -1,16 +0,0 @@ -// Custom Arsenal Preset -GRLIB_arsenal_weapons = [ - -]; - -GRLIB_arsenal_magazines = [ - -]; - -GRLIB_arsenal_items = [ - -]; - -GRLIB_arsenal_backpacks = [ - -]; \ No newline at end of file diff --git a/Missionframework/description.ext b/Missionframework/description.ext index ac8b44a8f..3eb3d5e27 100644 --- a/Missionframework/description.ext +++ b/Missionframework/description.ext @@ -2,7 +2,7 @@ File: description.ext Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-10-16 - Last Update: 2020-05-09 + Last Update: 2020-07-06 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -21,7 +21,7 @@ class Header { gameType = "CTI"; minPlayers = 1; - maxPlayers = 34; + maxPlayers = 37; }; // Name of Mission author(s) and contributors. Obviously you can only add and not (!) remove someone. @@ -40,7 +40,7 @@ briefingName = $STR_MISSION_TITLE; overviewPicture = "res\lib.paa"; // Text to be displayed below the overviewPicture on the mission selection screen -overviewText = "www.killahpotatoes.de"; +overviewText = "github.com/KillahPotatoes"; /* @@ -56,7 +56,7 @@ onLoadName = $STR_MISSION_TITLE; loadScreen = "res\lib.paa"; // Displays a message while the mission is loading below the loadScreen picture. -onLoadMission = "www.killahpotatoes.de"; +onLoadMission = "github.com/KillahPotatoes"; /* @@ -205,7 +205,7 @@ taskManagement_propagate = 1; // 3D marker maximum draw distance in meters. // Within this range, unassigned tasks are drawn on screen. -taskManagement_drawDist = 5000; +taskManagement_drawDist = 10000; /* @@ -213,7 +213,7 @@ taskManagement_drawDist = 5000; */ class CfgDebriefing { - #include "KPLIB_debriefs.hpp" + #include "CfgDebriefing.hpp" }; class CfgDiscordRichPresence { diff --git a/Missionframework/scripts/fob_templates/apex/template1.sqf b/Missionframework/fobhunt_templates/apex/template1.sqf similarity index 63% rename from Missionframework/scripts/fob_templates/apex/template1.sqf rename to Missionframework/fobhunt_templates/apex/template1.sqf index 83cb7f2fa..fa12bcfed 100644 --- a/Missionframework/scripts/fob_templates/apex/template1.sqf +++ b/Missionframework/fobhunt_templates/apex/template1.sqf @@ -34,35 +34,35 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [opfor_ammo_container, [-17.69, 6.55, 0.00], 0.00], - [opfor_ammo_container, [-8.52, 6.50, 0.00], 0.00], - [opfor_fuel_container, [-12.98, 6.80, 0.00], 0.00], - [opfor_fuel_container, [-17.49, 15.73, 0.00], 0.00], - [opfor_fuel_truck, [14.76, -3.44, 0.00], 270.00], - [opfor_ammo_truck, [14.92, 1.33, 0.00], 270.00] + [KPLIB_o_ammoContainer, [-17.69, 6.55, 0.00], 0.00], + [KPLIB_o_ammoContainer, [-8.52, 6.50, 0.00], 0.00], + [KPLIB_o_fuelContainer, [-12.98, 6.80, 0.00], 0.00], + [KPLIB_o_fuelContainer, [-17.49, 15.73, 0.00], 0.00], + [KPLIB_o_fuelTruck, [14.76, -3.44, 0.00], 270.00], + [KPLIB_o_ammoTruck, [14.92, 1.33, 0.00], 270.00] ]; private _defenders_to_build = [ - [opfor_engineer, [15.07, -0.94, 0.00], 258.84], - [opfor_heavygunner, [-18.40, -1.96, 0.00], 134.25], - [opfor_heavygunner, [17.84, -17.31, 4.35], 162.32], - [opfor_medic, [-0.88, -22.03, 0.00], 170.13], - [opfor_medic, [-6.09, -18.08, 0.00], 106.59], - [opfor_medic, [18.34, 12.30, 0.00], 229.95], - [opfor_officer, [17.04, 14.01, 15.37], 228.55], - [opfor_sharpshooter, [18.24, 16.25, 17.89], 60.85], - [opfor_rifleman, [-10.67, 19.15, 0.00], 145.13], - [opfor_rifleman, [-15.09, -17.86, 4.35], 152.65], - [opfor_rifleman, [14.53, -17.52, 4.35], 183.66], - [opfor_rifleman, [17.84, 9.35, 17.89], 120.37], - [opfor_rifleman, [8.78, -18.50, 0.00], 38.44], - [opfor_rifleman, [9.42, 8.60, 12.77], 0.00], - [opfor_rpg, [10.13, 6.74, 17.79], 190.12], - [opfor_sentry, [-15.34, 11.18, 0.00], 43.12], - [opfor_sentry, [15.14, 9.85, 12.77], 0.00], - [opfor_marksman, [-17.65, -17.73, 4.35], 192.66], - [opfor_grenadier, [-7.66, -1.47, 0.00], 186.27], - [opfor_grenadier, [18.23, -6.30, 0.00], 235.17] + [KPLIB_o_engineer, [15.07, -0.94, 0.00], 258.84], + [KPLIB_o_heavyGunner, [-18.40, -1.96, 0.00], 134.25], + [KPLIB_o_heavyGunner, [17.84, -17.31, 4.35], 162.32], + [KPLIB_o_medic, [-0.88, -22.03, 0.00], 170.13], + [KPLIB_o_medic, [-6.09, -18.08, 0.00], 106.59], + [KPLIB_o_medic, [18.34, 12.30, 0.00], 229.95], + [KPLIB_o_officer, [17.04, 14.01, 15.37], 228.55], + [KPLIB_o_sharpshooter, [18.24, 16.25, 17.89], 60.85], + [KPLIB_o_rifleman, [-10.67, 19.15, 0.00], 145.13], + [KPLIB_o_rifleman, [-15.09, -17.86, 4.35], 152.65], + [KPLIB_o_rifleman, [14.53, -17.52, 4.35], 183.66], + [KPLIB_o_rifleman, [17.84, 9.35, 17.89], 120.37], + [KPLIB_o_rifleman, [8.78, -18.50, 0.00], 38.44], + [KPLIB_o_rifleman, [9.42, 8.60, 12.77], 0.00], + [KPLIB_o_riflemanLAT, [10.13, 6.74, 17.79], 190.12], + [KPLIB_o_sentry, [-15.34, 11.18, 0.00], 43.12], + [KPLIB_o_sentry, [15.14, 9.85, 12.77], 0.00], + [KPLIB_o_marksman, [-17.65, -17.73, 4.35], 192.66], + [KPLIB_o_grenadier, [-7.66, -1.47, 0.00], 186.27], + [KPLIB_o_grenadier, [18.23, -6.30, 0.00], 235.17] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/apex/template2.sqf b/Missionframework/fobhunt_templates/apex/template2.sqf similarity index 67% rename from Missionframework/scripts/fob_templates/apex/template2.sqf rename to Missionframework/fobhunt_templates/apex/template2.sqf index d18c5f522..db2e32d5b 100644 --- a/Missionframework/scripts/fob_templates/apex/template2.sqf +++ b/Missionframework/fobhunt_templates/apex/template2.sqf @@ -1,5 +1,5 @@ private _objects_to_build = [ - [opfor_flag, [-3.09, -13.03, 0.00], 0.00], + [KPLIB_o_flag, [-3.09, -13.03, 0.00], 0.00], ["Land_BarGate_F", [-20.99, -7.13, 0.00], 270.00], ["Land_Cargo_HQ_V4_F", [12.64, -4.76, 0.00], 0.00], ["Land_Cargo_Patrol_V4_F", [18.54, 14.75, 0.00], 180.00], @@ -35,35 +35,35 @@ private _objects_to_build = [ ["Land_HBarrier_01_line_5_green_F", [6.90, 7.29, 0.00], 270.00], ["Land_HBarrier_01_line_5_green_F", [8.91, 3.67, 0.00], 0.00], ["Land_HBarrier_01_tower_green_F", [-21.15, 6.09, 0.00], 0.00], - [opfor_mrap_armed, [-15.71, -1.05, -0.00], 0.00] + [KPLIB_o_mrapArmed, [-15.71, -1.05, -0.00], 0.00] ]; private _objectives_to_build = [ - [opfor_ammo_container, [-2.27, 6.72, 0.00], 270.00], - [opfor_ammo_container, [-2.50, 14.76, 0.00], 270.00], - [opfor_fuel_container, [-11.02, 13.18, 0.00], 0.00], - [opfor_fuel_container, [-15.81, 13.28, 0.00], 0.00] + [KPLIB_o_ammoContainer, [-2.27, 6.72, 0.00], 270.00], + [KPLIB_o_ammoContainer, [-2.50, 14.76, 0.00], 270.00], + [KPLIB_o_fuelContainer, [-11.02, 13.18, 0.00], 0.00], + [KPLIB_o_fuelContainer, [-15.81, 13.28, 0.00], 0.00] ]; private _defenders_to_build = [ - [opfor_engineer, [-13.04, 1.42, 0.00], 145.49], - [opfor_medic, [12.00, -11.32, 0.72], 0.00], - [opfor_machinegunner, [9.36, -9.69, 3.13], 224.39], - [opfor_rifleman, [-15.90, 6.20, 0.00], 53.33], - [opfor_rifleman, [-18.61, -12.86, 0.00], 256.70], - [opfor_rifleman, [-2.21, 2.14, 0.00], 154.38], - [opfor_rifleman, [-21.42, 5.74, 0.00], 0.00], - [opfor_rifleman, [-21.63, 3.43, 2.78], 259.20], - [opfor_rifleman, [-7.60, 14.78, 0.00], 177.51], - [opfor_rifleman, [17.97, -2.54, 0.60], 222.59], - [opfor_at, [9.42, -3.19, 3.13], 299.23], - [opfor_sentry, [-1.28, -12.69, 0.00], 0.00], - [opfor_sentry, [21.72, 6.34, 0.00], 290.24], - [opfor_marksman, [16.94, 14.54, 4.35], 333.07], - [opfor_marksman, [19.91, 14.21, 4.35], 0.00], - [opfor_team_leader, [10.12, -4.12, 0.60], 175.70], - [opfor_grenadier, [-21.11, 7.85, 2.78], 285.67], - [opfor_grenadier, [9.27, 7.95, 0.00], 0.00] + [KPLIB_o_engineer, [-13.04, 1.42, 0.00], 145.49], + [KPLIB_o_medic, [12.00, -11.32, 0.72], 0.00], + [KPLIB_o_machinegunner, [9.36, -9.69, 3.13], 224.39], + [KPLIB_o_rifleman, [-15.90, 6.20, 0.00], 53.33], + [KPLIB_o_rifleman, [-18.61, -12.86, 0.00], 256.70], + [KPLIB_o_rifleman, [-2.21, 2.14, 0.00], 154.38], + [KPLIB_o_rifleman, [-21.42, 5.74, 0.00], 0.00], + [KPLIB_o_rifleman, [-21.63, 3.43, 2.78], 259.20], + [KPLIB_o_rifleman, [-7.60, 14.78, 0.00], 177.51], + [KPLIB_o_rifleman, [17.97, -2.54, 0.60], 222.59], + [KPLIB_o_atSpecialist, [9.42, -3.19, 3.13], 299.23], + [KPLIB_o_sentry, [-1.28, -12.69, 0.00], 0.00], + [KPLIB_o_sentry, [21.72, 6.34, 0.00], 290.24], + [KPLIB_o_marksman, [16.94, 14.54, 4.35], 333.07], + [KPLIB_o_marksman, [19.91, 14.21, 4.35], 0.00], + [KPLIB_o_teamLeader, [10.12, -4.12, 0.60], 175.70], + [KPLIB_o_grenadier, [-21.11, 7.85, 2.78], 285.67], + [KPLIB_o_grenadier, [9.27, 7.95, 0.00], 0.00] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/apex/template3.sqf b/Missionframework/fobhunt_templates/apex/template3.sqf similarity index 65% rename from Missionframework/scripts/fob_templates/apex/template3.sqf rename to Missionframework/fobhunt_templates/apex/template3.sqf index f16907e04..fb46a4478 100644 --- a/Missionframework/scripts/fob_templates/apex/template3.sqf +++ b/Missionframework/fobhunt_templates/apex/template3.sqf @@ -38,41 +38,41 @@ private _objects_to_build = [ ["Land_HBarrier_01_big_4_green_F", [7.61, 27.67, 0.00], 18.42], ["Land_HBarrier_01_big_4_green_F", [9.03, -20.34, 0.00], 270.00], ["Land_HBarrier_01_big_4_green_F", [9.11, -11.97, 0.00], 270.00], - [opfor_mrap, [10.41, -1.98, -0.00], 0.00] + [KPLIB_o_mrap, [10.41, -1.98, -0.00], 0.00] ]; private _objectives_to_build = [ - [opfor_ammo_truck, [15.60, 18.85, 0.00], 136.21], - [opfor_fuel_truck, [21.62, 8.37, 0.00], 167.18], - [opfor_ammo_container, [-2.98, -19.06, 0.00], 0.00], - [opfor_ammo_container, [-8.06, -19.04, 0.00], 0.00], - [opfor_fuel_container, [1.23, -19.09, 0.00], 0.00], - [opfor_fuel_container, [5.80, -19.12, 0.00], 0.00] + [KPLIB_o_ammoTruck, [15.60, 18.85, 0.00], 136.21], + [KPLIB_o_fuelTruck, [21.62, 8.37, 0.00], 167.18], + [KPLIB_o_ammoContainer, [-2.98, -19.06, 0.00], 0.00], + [KPLIB_o_ammoContainer, [-8.06, -19.04, 0.00], 0.00], + [KPLIB_o_fuelContainer, [1.23, -19.09, 0.00], 0.00], + [KPLIB_o_fuelContainer, [5.80, -19.12, 0.00], 0.00] ]; private _defenders_to_build = [ - [opfor_engineer, [19.58, 13.89, 0.00], 244.49], - [opfor_heavygunner, [-14.31, 17.85, 0.00], 149.97], - [opfor_medic, [-1.31, 25.09, 0.73], 135.61], - [opfor_aa, [3.89, 2.24, 17.89], 0.00], - [opfor_machinegunner, [-25.14, -10.78, 4.35], 214.93], - [opfor_at, [2.97, -4.28, 17.89], 130.54], - [opfor_rifleman, [-16.34, -19.12, 0.00], 0.00], - [opfor_rifleman, [-21.59, 9.39, 4.35], 282.14], - [opfor_rifleman, [-3.73, 2.96, 17.89], 0.00], - [opfor_rifleman, [-4.31, -3.06, 12.77], 0.00], - [opfor_rifleman, [-5.05, -15.86, 0.00], 0.00], - [opfor_rifleman, [-6.97, 23.81, 0.00], 143.84], - [opfor_rifleman, [24.14, 0.05, 0.00], 177.25], - [opfor_rifleman, [4.39, 9.33, 0.00], 317.44], - [opfor_sentry, [12.06, -16.47, 0.00], 0.00], - [opfor_sentry, [5.83, -11.76, 0.00], 233.53], - [opfor_marksman, [-20.07, 11.31, 4.35], 327.13], - [opfor_marksman, [14.45, -17.63, 4.35], 143.40], - [opfor_squad_leader, [-1.89, -3.39, 15.37], 0.00], - [opfor_grenadier, [-1.96, -2.51, 0.00], 265.28], - [opfor_grenadier, [-23.10, -13.48, 4.35], 220.27], - [opfor_grenadier, [17.35, -16.11, 4.35], 139.83] + [KPLIB_o_engineer, [19.58, 13.89, 0.00], 244.49], + [KPLIB_o_heavyGunner, [-14.31, 17.85, 0.00], 149.97], + [KPLIB_o_medic, [-1.31, 25.09, 0.73], 135.61], + [KPLIB_o_aaSpecialist, [3.89, 2.24, 17.89], 0.00], + [KPLIB_o_machinegunner, [-25.14, -10.78, 4.35], 214.93], + [KPLIB_o_atSpecialist, [2.97, -4.28, 17.89], 130.54], + [KPLIB_o_rifleman, [-16.34, -19.12, 0.00], 0.00], + [KPLIB_o_rifleman, [-21.59, 9.39, 4.35], 282.14], + [KPLIB_o_rifleman, [-3.73, 2.96, 17.89], 0.00], + [KPLIB_o_rifleman, [-4.31, -3.06, 12.77], 0.00], + [KPLIB_o_rifleman, [-5.05, -15.86, 0.00], 0.00], + [KPLIB_o_rifleman, [-6.97, 23.81, 0.00], 143.84], + [KPLIB_o_rifleman, [24.14, 0.05, 0.00], 177.25], + [KPLIB_o_rifleman, [4.39, 9.33, 0.00], 317.44], + [KPLIB_o_sentry, [12.06, -16.47, 0.00], 0.00], + [KPLIB_o_sentry, [5.83, -11.76, 0.00], 233.53], + [KPLIB_o_marksman, [-20.07, 11.31, 4.35], 327.13], + [KPLIB_o_marksman, [14.45, -17.63, 4.35], 143.40], + [KPLIB_o_squadLeader, [-1.89, -3.39, 15.37], 0.00], + [KPLIB_o_grenadier, [-1.96, -2.51, 0.00], 265.28], + [KPLIB_o_grenadier, [-23.10, -13.48, 4.35], 220.27], + [KPLIB_o_grenadier, [17.35, -16.11, 4.35], 139.83] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/apex/template4.sqf b/Missionframework/fobhunt_templates/apex/template4.sqf similarity index 61% rename from Missionframework/scripts/fob_templates/apex/template4.sqf rename to Missionframework/fobhunt_templates/apex/template4.sqf index 34f273d80..9a4170dec 100644 --- a/Missionframework/scripts/fob_templates/apex/template4.sqf +++ b/Missionframework/fobhunt_templates/apex/template4.sqf @@ -29,38 +29,38 @@ private _objects_to_build = [ ["Land_HBarrier_01_line_5_green_F", [-19.12, 19.94, 0.00], 0.00], ["Land_HBarrier_01_line_5_green_F", [-24.19, 5.00, 0.00], 270.00], ["Land_HBarrier_01_line_5_green_F", [-24.22, 17.71, 0.00], 270.00], - [opfor_mrap_armed, [-17.72, 14.91, -0.00], 270.00], - [opfor_transport_truck, [-16.45, 7.09, 0.00], 270.00] + [KPLIB_o_mrapArmed, [-17.72, 14.91, -0.00], 270.00], + [KPLIB_o_transportTruck, [-16.45, 7.09, 0.00], 270.00] ]; private _objectives_to_build = [ - [opfor_fuel_truck, [14.36, -11.61, 0.00], 270.00], - [opfor_fuel_container, [-19.81, -11.27, 0.00], 270.00], - [opfor_fuel_container, [-19.85, -3.96, 0.00], 270.00] + [KPLIB_o_fuelTruck, [14.36, -11.61, 0.00], 270.00], + [KPLIB_o_fuelContainer, [-19.81, -11.27, 0.00], 270.00], + [KPLIB_o_fuelContainer, [-19.85, -3.96, 0.00], 270.00] ]; private _defenders_to_build = [ - [opfor_engineer, [-13.45, 3.53, 0.00], 280.96], - [opfor_heavygunner, [17.42, 5.17, 3.13], 137.06], - [opfor_medic, [17.92, 5.97, 0.60], 274.39], - [opfor_officer, [12.32, 11.76, 0.60], 140.46], - [opfor_sharpshooter, [-5.79, 11.84, 4.35], 297.99], - [opfor_machinegunner, [-11.76, -18.72, 2.28], 152.95], - [opfor_machinegunner, [-12.18, -3.17, 0.00], 204.36], - [opfor_rifleman, [-13.48, -17.94, 2.28], 170.62], - [opfor_rifleman, [-21.78, 17.73, 0.00], 176.87], - [opfor_rifleman, [-5.56, -18.04, 0.00], 155.59], - [opfor_rifleman, [10.34, 6.15, 0.60], 99.59], - [opfor_rifleman, [19.16, 0.25, 0.00], 252.60], - [opfor_rifleman, [4.08, 16.23, 0.00], 195.28], - [opfor_rifleman, [8.68, -11.60, 0.00], 258.53], - [opfor_rpg, [11.21, 13.16, 3.13], 309.16], - [opfor_sentry, [-21.30, -7.60, 0.00], 97.63], - [opfor_sentry, [-6.04, 4.12, 0.00], 80.41], - [opfor_sentry, [2.14, -17.64, 2.28], 246.88], - [opfor_marksman, [-3.27, 13.64, 4.35], 332.14], - [opfor_marksman, [11.79, 5.74, 3.13], 224.23], - [opfor_grenadier, [3.70, -19.06, 2.28], 179.85] + [KPLIB_o_engineer, [-13.45, 3.53, 0.00], 280.96], + [KPLIB_o_heavyGunner, [17.42, 5.17, 3.13], 137.06], + [KPLIB_o_medic, [17.92, 5.97, 0.60], 274.39], + [KPLIB_o_officer, [12.32, 11.76, 0.60], 140.46], + [KPLIB_o_sharpshooter, [-5.79, 11.84, 4.35], 297.99], + [KPLIB_o_machinegunner, [-11.76, -18.72, 2.28], 152.95], + [KPLIB_o_machinegunner, [-12.18, -3.17, 0.00], 204.36], + [KPLIB_o_rifleman, [-13.48, -17.94, 2.28], 170.62], + [KPLIB_o_rifleman, [-21.78, 17.73, 0.00], 176.87], + [KPLIB_o_rifleman, [-5.56, -18.04, 0.00], 155.59], + [KPLIB_o_rifleman, [10.34, 6.15, 0.60], 99.59], + [KPLIB_o_rifleman, [19.16, 0.25, 0.00], 252.60], + [KPLIB_o_rifleman, [4.08, 16.23, 0.00], 195.28], + [KPLIB_o_rifleman, [8.68, -11.60, 0.00], 258.53], + [KPLIB_o_riflemanLAT, [11.21, 13.16, 3.13], 309.16], + [KPLIB_o_sentry, [-21.30, -7.60, 0.00], 97.63], + [KPLIB_o_sentry, [-6.04, 4.12, 0.00], 80.41], + [KPLIB_o_sentry, [2.14, -17.64, 2.28], 246.88], + [KPLIB_o_marksman, [-3.27, 13.64, 4.35], 332.14], + [KPLIB_o_marksman, [11.79, 5.74, 3.13], 224.23], + [KPLIB_o_grenadier, [3.70, -19.06, 2.28], 179.85] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/apex/template5.sqf b/Missionframework/fobhunt_templates/apex/template5.sqf similarity index 56% rename from Missionframework/scripts/fob_templates/apex/template5.sqf rename to Missionframework/fobhunt_templates/apex/template5.sqf index a72f62dda..ec7ebd619 100644 --- a/Missionframework/scripts/fob_templates/apex/template5.sqf +++ b/Missionframework/fobhunt_templates/apex/template5.sqf @@ -24,39 +24,39 @@ private _objects_to_build = [ ["Land_HBarrier_01_big_4_green_F", [23.00, 8.71, 0.00], 270.00], ["Land_HBarrier_01_big_4_green_F", [23.12, 17.03, 0.00], 270.00], ["Land_HBarrier_01_big_4_green_F", [9.57, 20.36, 0.00], 0.00], - [opfor_mrap, [14.22, -4.50, -0.00], 270.00] + [KPLIB_o_mrap, [14.22, -4.50, -0.00], 270.00] ]; private _objectives_to_build = [ - [opfor_ammo_truck, [15.77, -10.81, 0.00], 270.00], - [opfor_fuel_truck, [15.39, 1.95, 0.00], 270.00], - [opfor_ammo_container, [-12.54, 6.21, 0.00], 0.00], - [opfor_ammo_container, [-16.98, 6.38, 0.00], 0.00], - [opfor_fuel_container, [-12.00, -3.02, 0.00], 0.00], - [opfor_fuel_container, [-16.72, -3.11, 0.00], 0.00] + [KPLIB_o_ammoTruck, [15.77, -10.81, 0.00], 270.00], + [KPLIB_o_fuelTruck, [15.39, 1.95, 0.00], 270.00], + [KPLIB_o_ammoContainer, [-12.54, 6.21, 0.00], 0.00], + [KPLIB_o_ammoContainer, [-16.98, 6.38, 0.00], 0.00], + [KPLIB_o_fuelContainer, [-12.00, -3.02, 0.00], 0.00], + [KPLIB_o_fuelContainer, [-16.72, -3.11, 0.00], 0.00] ]; private _defenders_to_build = [ - [opfor_engineer, [16.86, -0.86, 0.00], 257.93], - [opfor_heavygunner, [2.53, -18.79, 0.00], 162.42], - [opfor_medic, [-8.69, -15.93, 0.59], 0.00], - [opfor_sharpshooter, [-17.05, 16.71, 4.35], 272.72], - [opfor_sharpshooter, [10.26, 6.69, 17.79], 198.44], - [opfor_machinegunner, [-15.20, 1.00, 0.00], 86.01], - [opfor_rifleman, [-13.07, 16.89, 0.00], 139.62], - [opfor_rifleman, [-16.95, 13.45, 4.35], 259.48], - [opfor_rifleman, [-17.18, -17.18, 0.73], 0.00], - [opfor_rifleman, [10.74, 10.43, 15.37], 81.16], - [opfor_rifleman, [11.20, 10.90, 12.77], 0.00], - [opfor_rifleman, [12.76, -16.90, 0.00], 323.09], - [opfor_rifleman, [16.63, 12.67, 0.00], 229.50], - [opfor_rifleman, [18.63, 15.47, 17.89], 46.70], - [opfor_at, [-17.43, -7.40, 0.00], 101.79], - [opfor_rpg, [10.88, 16.67, 17.89], 313.11], - [opfor_sentry, [18.68, 15.42, 15.37], 240.93], - [opfor_marksman, [13.72, -18.55, 4.35], 210.97], - [opfor_squad_leader, [-14.42, -16.98, 0.73], 333.26], - [opfor_grenadier, [16.74, -18.14, 4.35], 172.08] + [KPLIB_o_engineer, [16.86, -0.86, 0.00], 257.93], + [KPLIB_o_heavyGunner, [2.53, -18.79, 0.00], 162.42], + [KPLIB_o_medic, [-8.69, -15.93, 0.59], 0.00], + [KPLIB_o_sharpshooter, [-17.05, 16.71, 4.35], 272.72], + [KPLIB_o_sharpshooter, [10.26, 6.69, 17.79], 198.44], + [KPLIB_o_machinegunner, [-15.20, 1.00, 0.00], 86.01], + [KPLIB_o_rifleman, [-13.07, 16.89, 0.00], 139.62], + [KPLIB_o_rifleman, [-16.95, 13.45, 4.35], 259.48], + [KPLIB_o_rifleman, [-17.18, -17.18, 0.73], 0.00], + [KPLIB_o_rifleman, [10.74, 10.43, 15.37], 81.16], + [KPLIB_o_rifleman, [11.20, 10.90, 12.77], 0.00], + [KPLIB_o_rifleman, [12.76, -16.90, 0.00], 323.09], + [KPLIB_o_rifleman, [16.63, 12.67, 0.00], 229.50], + [KPLIB_o_rifleman, [18.63, 15.47, 17.89], 46.70], + [KPLIB_o_atSpecialist, [-17.43, -7.40, 0.00], 101.79], + [KPLIB_o_riflemanLAT, [10.88, 16.67, 17.89], 313.11], + [KPLIB_o_sentry, [18.68, 15.42, 15.37], 240.93], + [KPLIB_o_marksman, [13.72, -18.55, 4.35], 210.97], + [KPLIB_o_squadLeader, [-14.42, -16.98, 0.73], 333.26], + [KPLIB_o_grenadier, [16.74, -18.14, 4.35], 172.08] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/default/template1.sqf b/Missionframework/fobhunt_templates/default/template1.sqf similarity index 64% rename from Missionframework/scripts/fob_templates/default/template1.sqf rename to Missionframework/fobhunt_templates/default/template1.sqf index b0d130ebc..bd4fd6e51 100644 --- a/Missionframework/scripts/fob_templates/default/template1.sqf +++ b/Missionframework/fobhunt_templates/default/template1.sqf @@ -35,41 +35,41 @@ private _objects_to_build = [ ["Land_Tank_rust_F",[-9,10,0],180], ["Land_Tank_rust_F",[-9,14,0],180], ["Land_Tank_rust_F",[-9,6,0],180], - [opfor_flag,[-14,-5,0],180], - [opfor_flag,[-14,5,0],180], - [opfor_flag,[14,-5,0],90], + [KPLIB_o_flag,[-14,-5,0],180], + [KPLIB_o_flag,[-14,5,0],180], + [KPLIB_o_flag,[14,-5,0],90], ["Land_BarGate_F",[20,0,0],90], ["Land_BarGate_F",[-13,0,0],270], - [opfor_mrap,[7,-7,0],60] + [KPLIB_o_mrap,[7,-7,0],60] ]; private _objectives_to_build = [ - [opfor_fuel_truck,[10,8,0],185], - [opfor_fuel_truck,[5,8.5,0],190], - [opfor_fuel_truck,[0,9,0],192], - [opfor_ammo_truck,[-9,-8,0],10], - [opfor_ammo_truck,[-3,-8,0],15] + [KPLIB_o_fuelTruck,[10,8,0],185], + [KPLIB_o_fuelTruck,[5,8.5,0],190], + [KPLIB_o_fuelTruck,[0,9,0],192], + [KPLIB_o_ammoTruck,[-9,-8,0],10], + [KPLIB_o_ammoTruck,[-3,-8,0],15] ]; private _defenders_to_build = [ - [opfor_marksman,[11,26.5,4.5],0], - [opfor_marksman,[-11,-26.5,4.5],180], - [opfor_heavygunner,[9,26.5,4.5],0], - [opfor_heavygunner,[-9,-26.5,4.5],180], - [opfor_rifleman,[12,23,4.5],90], - [opfor_rifleman,[-12,-23,4.5],270], - [opfor_sentry,[6,-20,1],0], - [opfor_sentry,[3,-23,1],90], - [opfor_rifleman,[3,-20,1],180], - [opfor_team_leader,[6,-23,1],270], - [opfor_team_leader,[3,-18,1],180], - [opfor_sentry,[6,-18,1],270], - [opfor_rifleman,[-9,25,1],180], - [opfor_sentry,[-11,25,1],180], - [opfor_rifleman,[-1,25,1],180], - [opfor_sentry,[-3,25,1],180], - [opfor_sentry,[0,-5,0],0], - [opfor_sentry,[2,5,0],180] + [KPLIB_o_marksman,[11,26.5,4.5],0], + [KPLIB_o_marksman,[-11,-26.5,4.5],180], + [KPLIB_o_heavyGunner,[9,26.5,4.5],0], + [KPLIB_o_heavyGunner,[-9,-26.5,4.5],180], + [KPLIB_o_rifleman,[12,23,4.5],90], + [KPLIB_o_rifleman,[-12,-23,4.5],270], + [KPLIB_o_sentry,[6,-20,1],0], + [KPLIB_o_sentry,[3,-23,1],90], + [KPLIB_o_rifleman,[3,-20,1],180], + [KPLIB_o_teamLeader,[6,-23,1],270], + [KPLIB_o_teamLeader,[3,-18,1],180], + [KPLIB_o_sentry,[6,-18,1],270], + [KPLIB_o_rifleman,[-9,25,1],180], + [KPLIB_o_sentry,[-11,25,1],180], + [KPLIB_o_rifleman,[-1,25,1],180], + [KPLIB_o_sentry,[-3,25,1],180], + [KPLIB_o_sentry,[0,-5,0],0], + [KPLIB_o_sentry,[2,5,0],180] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/default/template10.sqf b/Missionframework/fobhunt_templates/default/template10.sqf similarity index 55% rename from Missionframework/scripts/fob_templates/default/template10.sqf rename to Missionframework/fobhunt_templates/default/template10.sqf index 954d359f4..c34181058 100644 --- a/Missionframework/scripts/fob_templates/default/template10.sqf +++ b/Missionframework/fobhunt_templates/default/template10.sqf @@ -22,36 +22,36 @@ private _objects_to_build = [ ["Land_HBarrier_Big_F", [21.51, -15.29, 0.00], 270.00], ["Land_HBarrier_Big_F", [8.11, 24.41, 0.00], 0.00], ["Land_HBarrier_Big_F", [9.42, -21.10, 0.00], 0.00], - [opfor_mrap_armed, [12.38, 7.12, -0.00], 270.00], - [opfor_transport_truck, [13.36, 2.53, 0.00], 270.00] + [KPLIB_o_mrapArmed, [12.38, 7.12, -0.00], 270.00], + [KPLIB_o_transportTruck, [13.36, 2.53, 0.00], 270.00] ]; private _objectives_to_build = [ - [opfor_ammo_container, [-1.20, 20.76, 0.00], 270.00], - [opfor_ammo_container, [-1.59, 15.88, 0.00], 270.00], - [opfor_fuel_container, [6.70, 15.99, 0.00], 270.00], - [opfor_fuel_container, [6.82, 21.17, 0.00], 270.00], - [opfor_ammo_truck, [13.86, -1.90, 0.00], 270.00] + [KPLIB_o_ammoContainer, [-1.20, 20.76, 0.00], 270.00], + [KPLIB_o_ammoContainer, [-1.59, 15.88, 0.00], 270.00], + [KPLIB_o_fuelContainer, [6.70, 15.99, 0.00], 270.00], + [KPLIB_o_fuelContainer, [6.82, 21.17, 0.00], 270.00], + [KPLIB_o_ammoTruck, [13.86, -1.90, 0.00], 270.00] ]; private _defenders_to_build = [ - [opfor_engineer, [16.56, 0.29, 0.00], 272.36], - [opfor_heavygunner, [15.94, 21.60, 4.35], 0.00], - [opfor_medic, [13.96, -10.08, 0.60], 212.28], - [opfor_sharpshooter, [-16.85, 16.02, 4.35], 262.35], - [opfor_machinegunner, [-7.51, -17.34, 4.35], 172.74], - [opfor_rifleman, [-8.52, -15.95, 0.00], 25.64], - [opfor_rifleman, [-9.09, 6.77, 0.00], 198.94], - [opfor_rifleman, [14.18, -6.52, 3.08], 0.00], - [opfor_rifleman, [16.20, 18.42, 4.35], 94.53], - [opfor_rifleman, [2.83, 18.98, 0.00], 179.03], - [opfor_rifleman, [7.46, -17.77, 0.72], 0.00], - [opfor_at, [7.10, -9.09, 3.13], 279.26], - [opfor_sentry, [16.67, 16.95, 0.00], 231.16], - [opfor_marksman, [-17.06, 19.60, 4.35], 273.13], - [opfor_squad_leader, [9.67, -10.00, 0.60], 198.89], - [opfor_grenadier, [-14.41, 20.23, 0.00], 137.98], - [opfor_grenadier, [-4.67, -17.54, 4.35], 177.14] + [KPLIB_o_engineer, [16.56, 0.29, 0.00], 272.36], + [KPLIB_o_heavyGunner, [15.94, 21.60, 4.35], 0.00], + [KPLIB_o_medic, [13.96, -10.08, 0.60], 212.28], + [KPLIB_o_sharpshooter, [-16.85, 16.02, 4.35], 262.35], + [KPLIB_o_machinegunner, [-7.51, -17.34, 4.35], 172.74], + [KPLIB_o_rifleman, [-8.52, -15.95, 0.00], 25.64], + [KPLIB_o_rifleman, [-9.09, 6.77, 0.00], 198.94], + [KPLIB_o_rifleman, [14.18, -6.52, 3.08], 0.00], + [KPLIB_o_rifleman, [16.20, 18.42, 4.35], 94.53], + [KPLIB_o_rifleman, [2.83, 18.98, 0.00], 179.03], + [KPLIB_o_rifleman, [7.46, -17.77, 0.72], 0.00], + [KPLIB_o_atSpecialist, [7.10, -9.09, 3.13], 279.26], + [KPLIB_o_sentry, [16.67, 16.95, 0.00], 231.16], + [KPLIB_o_marksman, [-17.06, 19.60, 4.35], 273.13], + [KPLIB_o_squadLeader, [9.67, -10.00, 0.60], 198.89], + [KPLIB_o_grenadier, [-14.41, 20.23, 0.00], 137.98], + [KPLIB_o_grenadier, [-4.67, -17.54, 4.35], 177.14] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/default/template2.sqf b/Missionframework/fobhunt_templates/default/template2.sqf similarity index 59% rename from Missionframework/scripts/fob_templates/default/template2.sqf rename to Missionframework/fobhunt_templates/default/template2.sqf index 37f13abb0..e85d3a824 100644 --- a/Missionframework/scripts/fob_templates/default/template2.sqf +++ b/Missionframework/fobhunt_templates/default/template2.sqf @@ -4,11 +4,11 @@ private _objects_to_build = [ [ "Land_PaperBox_open_empty_F", [5.84, -3.25, 0], 332.09 ], [ "Land_HBarrierBig_F", [7.84, -6.52, 0], 359.62 ], [ "Land_PaperBox_closed_F", [10.77, -2.11, 0], 90.97 ], - [ opfor_flag, [2.46, 10.93, 0], 90 ], + [ KPLIB_o_flag, [2.46, 10.93, 0], 90 ], [ "Land_HBarrierBig_F", [-9.22, -6.62, 0], 0.11 ], - [ opfor_transport_truck, [4.9, -10.96, -0.03], 272.46 ], + [ KPLIB_o_transportTruck, [4.9, -10.96, -0.03], 272.46 ], [ "Land_HBarrierBig_F", [-1.17, 12.94, 0], 0.25 ], - [ opfor_transport_truck, [-8.91, -11.52, -0.03], 266.11 ], + [ KPLIB_o_transportTruck, [-8.91, -11.52, -0.03], 266.11 ], [ "Land_HBarrierWall_corridor_F", [-14.26, 3.18, 0], 180.24 ], [ "Land_PaperBox_open_full_F", [11.39, 9.16, 0], 302.69 ], [ "Land_HBarrierBig_F", [-14.52, -3.07, 0], 89.68 ], @@ -25,16 +25,16 @@ private _objects_to_build = [ [ "Land_HBarrierBig_F", [8.34, 18.55, 0], 0.52 ], [ "Land_HBarrierBig_F", [-9.38, 18.42, 0], 359.5 ], [ "Land_HBarrier_1_F", [-21.07, -4.36, 0], 179.54 ], - [ opfor_mrap_armed, [-13.81, -17.08, 0.01], 254.24 ], + [ KPLIB_o_mrapArmed, [-13.81, -17.08, 0.01], 254.24 ], [ "Land_HBarrierBig_F", [-1.71, -21.88, 0], 179.75 ], [ "Land_HBarrierBig_F", [22.65, -1.94, 0], 89.87 ], - [ opfor_flag, [-21.18, -9.33, 0], 90 ], + [ KPLIB_o_flag, [-21.18, -9.33, 0], 90 ], [ "Land_HBarrierBig_F", [7.15, -21.71, 0], 179.75 ], [ "Land_Cargo_Patrol_V3_F", [17.02, -16.67, 0], 359.51 ], [ "Land_HBarrierBig_F", [-22.85, 1.21, 0], 269.41 ], [ "Land_HBarrierBig_F", [22.51, 6.8, 0], 89.87 ], [ "Land_HBarrierBig_F", [-22.77, -7.28, 0], 269.41 ], - [ opfor_flag, [-11.36, -21.78, 0], 90 ], + [ KPLIB_o_flag, [-11.36, -21.78, 0], 90 ], [ "Land_HBarrierBig_F", [-13.12, 20.99, 0], 90.15 ], [ "Land_HBarrierBig_F", [-10.02, -22.67, 0], 347.15 ], [ "Land_HBarrierBig_F", [-22.81, 10.07, 0], 270.43 ], @@ -43,7 +43,7 @@ private _objects_to_build = [ [ "Land_Cargo_Patrol_V3_F", [-18.01, 19.63, 0], 180.02 ], [ "Land_CncBarrierMedium4_F", [-23.12, -12.98, 0], 235.1 ], [ "Land_HBarrierBig_F", [15.93, -21.54, 0], 179.75 ], - [ opfor_flag, [20.64, 16.83, 0], 90 ], + [ KPLIB_o_flag, [20.64, 16.83, 0], 90 ], [ "Land_BarGate_F", [-19.55, -17.64, 0], 235.1 ], [ "Land_HBarrierBig_F", [22.45, 15.67, 0], 88.84 ], [ "Land_HBarrierBig_F", [22.23, -18.72, 0], 277.09 ], @@ -56,40 +56,40 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [ opfor_ammo_container, [-3.32, 3.11, 0], 270.02 ], - [ opfor_ammo_container, [6.28, 8, 0], 270.25 ] + [ KPLIB_o_ammoContainer, [-3.32, 3.11, 0], 270.02 ], + [ KPLIB_o_ammoContainer, [6.28, 8, 0], 270.25 ] ]; private _defenders_to_build = [ - [ opfor_sentry, [3.35, -3.18, 0], 285.5 ], - [ opfor_machinegunner, [-4.14, 3.26, 4.64], 155.19 ], - [ opfor_marksman, [-1.97, 5.92, 17.89], 39.77 ], - [ opfor_sentry, [-5.07, 4.03, 13.02], 288.05 ], - [ opfor_team_leader, [-6.25, 3.04, 15.37], 288.05 ], - [ opfor_sentry, [5.03, 5.17, 0], 245.18 ], - [ opfor_sentry, [7.48, 0.16, 0], 140.42 ], - [ opfor_sentry, [-7.52, 2.19, 15.37], 53.89 ], - [ opfor_rifleman, [-6.91, 4.18, 12.77], 105.44 ], - [ opfor_rifleman, [8.29, -1.01, 0], 15.07 ], - [ opfor_sentry, [-7.72, 3.47, 15.37], 129.9 ], - [ opfor_aa, [-8.16, -3.53, 17.79], 162.03 ], - [ opfor_rifleman, [-7.69, 5.02, 8.59], 339.29 ], - [ opfor_engineer, [9.66, -0.3, 0], 270.08 ], - [ opfor_heavygunner, [-9.94, -3.52, 17.79], 197.2 ], - [ opfor_aa, [-8.92, 7.21, 17.89], 17.44 ], - [ opfor_sentry, [-12.71, -1.34, 0], 70.65 ], - [ opfor_sentry, [-0.21, -13.35, 0], 222.75 ], - [ opfor_sentry, [12.7, 4.78, 0], 245.18 ], - [ opfor_sentry, [-12.62, 7.78, 0], 95.16 ], - [ opfor_heavygunner, [-17.46, 1.05, 0], 191.23 ], - [ opfor_sentry, [-15.52, -9.95, 0], 222.75 ], - [ opfor_sentry, [-20.07, 1.58, 0], 162.91 ], - [ opfor_heavygunner, [15.94, -17.43, 4.35], 264.53 ], - [ opfor_rpg, [-19.21, -14.96, 0], 184.12 ], - [ opfor_marksman, [18.17, -16.98, 4.35], 120.79 ], - [ opfor_machinegunner, [-15.66, -20.49, 0], 272.29 ], - [ opfor_heavygunner, [-16.9, 20.39, 4.35], 85.04 ], - [ opfor_marksman, [-19.16, 19.94, 4.35], 301.3 ] + [ KPLIB_o_sentry, [3.35, -3.18, 0], 285.5 ], + [ KPLIB_o_machinegunner, [-4.14, 3.26, 4.64], 155.19 ], + [ KPLIB_o_marksman, [-1.97, 5.92, 17.89], 39.77 ], + [ KPLIB_o_sentry, [-5.07, 4.03, 13.02], 288.05 ], + [ KPLIB_o_teamLeader, [-6.25, 3.04, 15.37], 288.05 ], + [ KPLIB_o_sentry, [5.03, 5.17, 0], 245.18 ], + [ KPLIB_o_sentry, [7.48, 0.16, 0], 140.42 ], + [ KPLIB_o_sentry, [-7.52, 2.19, 15.37], 53.89 ], + [ KPLIB_o_rifleman, [-6.91, 4.18, 12.77], 105.44 ], + [ KPLIB_o_rifleman, [8.29, -1.01, 0], 15.07 ], + [ KPLIB_o_sentry, [-7.72, 3.47, 15.37], 129.9 ], + [ KPLIB_o_aaSpecialist, [-8.16, -3.53, 17.79], 162.03 ], + [ KPLIB_o_rifleman, [-7.69, 5.02, 8.59], 339.29 ], + [ KPLIB_o_engineer, [9.66, -0.3, 0], 270.08 ], + [ KPLIB_o_heavyGunner, [-9.94, -3.52, 17.79], 197.2 ], + [ KPLIB_o_aaSpecialist, [-8.92, 7.21, 17.89], 17.44 ], + [ KPLIB_o_sentry, [-12.71, -1.34, 0], 70.65 ], + [ KPLIB_o_sentry, [-0.21, -13.35, 0], 222.75 ], + [ KPLIB_o_sentry, [12.7, 4.78, 0], 245.18 ], + [ KPLIB_o_sentry, [-12.62, 7.78, 0], 95.16 ], + [ KPLIB_o_heavyGunner, [-17.46, 1.05, 0], 191.23 ], + [ KPLIB_o_sentry, [-15.52, -9.95, 0], 222.75 ], + [ KPLIB_o_sentry, [-20.07, 1.58, 0], 162.91 ], + [ KPLIB_o_heavyGunner, [15.94, -17.43, 4.35], 264.53 ], + [ KPLIB_o_riflemanLAT, [-19.21, -14.96, 0], 184.12 ], + [ KPLIB_o_marksman, [18.17, -16.98, 4.35], 120.79 ], + [ KPLIB_o_machinegunner, [-15.66, -20.49, 0], 272.29 ], + [ KPLIB_o_heavyGunner, [-16.9, 20.39, 4.35], 85.04 ], + [ KPLIB_o_marksman, [-19.16, 19.94, 4.35], 301.3 ] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/default/template3.sqf b/Missionframework/fobhunt_templates/default/template3.sqf similarity index 50% rename from Missionframework/scripts/fob_templates/default/template3.sqf rename to Missionframework/fobhunt_templates/default/template3.sqf index 5a31c2e18..dade76e62 100644 --- a/Missionframework/scripts/fob_templates/default/template3.sqf +++ b/Missionframework/fobhunt_templates/default/template3.sqf @@ -12,25 +12,25 @@ private _objects_to_build = [ [ "CamoNet_OPFOR_open_F", [13.71, -11.54, 0], 270.25 ], [ "Land_HBarrierBig_F", [16.94, 5.18, 0], 181.2 ], [ "Land_Cargo_House_V3_F", [-16.03, -9.69, 0], 269.88 ], - [ opfor_transport_truck, [-10.4, 14.9, -0.02], 181.03 ], + [ KPLIB_o_transportTruck, [-10.4, 14.9, -0.02], 181.03 ], [ "Land_HBarrierBig_F", [-17.6, 5.28, 0], 359.67 ], [ "Land_Cargo_HQ_V3_F", [11.25, 14.59, 0], 89.97 ], [ "Land_HBarrierBig_F", [20.42, 1.73, 0], 89.37 ], [ "Land_HBarrierBig_F", [-1.65, -21.15, 0], 0.36 ], - [ opfor_flag, [-20.59, 7.5, 0], 90 ], + [ KPLIB_o_flag, [-20.59, 7.5, 0], 90 ], [ "Land_HBarrierBig_F", [21.02, -7.36, 0], 90.4 ], [ "Land_HBarrierBig_F", [7.21, -21.33, 0], 1.39 ], [ "Land_HBarrierBig_F", [-22.71, 1.71, 0], 91.24 ], - [ opfor_mrap_armed, [-17.33, 14.88, 0.01], 359.22 ], + [ KPLIB_o_mrapArmed, [-17.33, 14.88, 0.01], 359.22 ], [ "Land_HBarrierBig_F", [20.76, 10.25, 0], 89.37 ], [ "Land_HBarrierBig_F", [-10.52, -21.21, 0], 0.36 ], [ "Land_HBarrierBig_F", [-22.91, -6.7, 0], 270.29 ], [ "Land_HBarrierBig_F", [-23.19, 10.11, 0], 89.68 ], [ "Land_HBarrierBig_F", [21.1, -16.14, 0], 90.4 ], [ "Land_HBarrierBig_F", [15.97, -21.41, 0], 1.39 ], - [ opfor_flag, [18.67, -19.05, 0], 90 ], - [ opfor_mrap, [11.09, 25.14, 0.01], 268.69 ], - [ opfor_flag, [-20.66, -18.6, 0], 90 ], + [ KPLIB_o_flag, [18.67, -19.05, 0], 90 ], + [ KPLIB_o_mrap, [11.09, 25.14, 0.01], 268.69 ], + [ KPLIB_o_flag, [-20.66, -18.6, 0], 90 ], [ "Land_HBarrierBig_F", [-23.05, -15.49, 0], 271.36 ], [ "Land_HBarrierBig_F", [20.55, 19.13, 0], 89.37 ], [ "Land_HBarrierBig_F", [-19.29, -21.29, 0], 0.36 ], @@ -38,38 +38,38 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [ opfor_fuel_container, [2.64, -13.76, -0.04], 0.35 ], - [ opfor_ammo_container, [-3.69, -14.92, 0], 180.33 ], - [ opfor_fuel_container, [2.7, -5.53, -0.04], 358.03 ], - [ opfor_ammo_container, [-3.96, -5.86, 0], 180.38 ] + [ KPLIB_o_fuelContainer, [2.64, -13.76, -0.04], 0.35 ], + [ KPLIB_o_ammoContainer, [-3.69, -14.92, 0], 180.33 ], + [ KPLIB_o_fuelContainer, [2.7, -5.53, -0.04], 358.03 ], + [ KPLIB_o_ammoContainer, [-3.96, -5.86, 0], 180.38 ] ]; private _defenders_to_build = [ - [ opfor_rifleman, [-6.54, 2.05, 0], 157.41 ], - [ opfor_sentry, [6.66, 2.1, 0], 192.72 ], - [ opfor_rifleman, [-3.64, 12.06, 0], 339.29 ], - [ opfor_sentry, [-10.31, -7.7, 0], 122.29 ], - [ opfor_marksman, [14.38, 0.22, 4.35], 346.89 ], - [ opfor_grenadier, [-2.56, 14.33, 0], 228.17 ], - [ opfor_machinegunner, [-4.79, 14.33, 0], 155.19 ], - [ opfor_heavygunner, [-16.04, 0.4, 4.35], 84.99 ], - [ opfor_heavygunner, [16.6, 0.75, 4.35], 83.99 ], - [ opfor_rifleman, [10.82, 12.69, 0.6], 105.44 ], - [ opfor_sentry, [12.36, 12.48, 0.6], 288.05 ], - [ opfor_machinegunner, [14.41, -10.39, 0], 183.06 ], - [ opfor_engineer, [9.45, 15.46, 0.6], 53.89 ], - [ opfor_sharpshooter, [-18.26, -0.02, 4.35], 301.25 ], - [ opfor_sentry, [13.86, -12.54, 0], 348.81 ], - [ opfor_engineer, [15.06, -11.78, 0], 288.05 ], - [ opfor_rifleman, [9.24, 16.75, 0.6], 129.9 ], - [ opfor_team_leader, [10.71, 16.31, 0.6], 288.05 ], - [ opfor_aa, [15.62, 12.01, 3.09], 124.01 ], - [ opfor_sentry, [-17.92, -8.58, 0.73], 122.29 ], - [ opfor_aa, [8.45, 18.85, 3.13], 335.85 ], - [ opfor_sentry, [-18, -11.54, 0.73], 122.29 ], - [ opfor_sentry, [-13.77, 16.65, 0], 339.29 ], - [ opfor_heavygunner, [14.04, 17.46, 3.13], 48.56 ], - [ opfor_rpg, [12.44, 18.69, 3.13], 16.72 ] + [ KPLIB_o_rifleman, [-6.54, 2.05, 0], 157.41 ], + [ KPLIB_o_sentry, [6.66, 2.1, 0], 192.72 ], + [ KPLIB_o_rifleman, [-3.64, 12.06, 0], 339.29 ], + [ KPLIB_o_sentry, [-10.31, -7.7, 0], 122.29 ], + [ KPLIB_o_marksman, [14.38, 0.22, 4.35], 346.89 ], + [ KPLIB_o_grenadier, [-2.56, 14.33, 0], 228.17 ], + [ KPLIB_o_machinegunner, [-4.79, 14.33, 0], 155.19 ], + [ KPLIB_o_heavyGunner, [-16.04, 0.4, 4.35], 84.99 ], + [ KPLIB_o_heavyGunner, [16.6, 0.75, 4.35], 83.99 ], + [ KPLIB_o_rifleman, [10.82, 12.69, 0.6], 105.44 ], + [ KPLIB_o_sentry, [12.36, 12.48, 0.6], 288.05 ], + [ KPLIB_o_machinegunner, [14.41, -10.39, 0], 183.06 ], + [ KPLIB_o_engineer, [9.45, 15.46, 0.6], 53.89 ], + [ KPLIB_o_sharpshooter, [-18.26, -0.02, 4.35], 301.25 ], + [ KPLIB_o_sentry, [13.86, -12.54, 0], 348.81 ], + [ KPLIB_o_engineer, [15.06, -11.78, 0], 288.05 ], + [ KPLIB_o_rifleman, [9.24, 16.75, 0.6], 129.9 ], + [ KPLIB_o_teamLeader, [10.71, 16.31, 0.6], 288.05 ], + [ KPLIB_o_aaSpecialist, [15.62, 12.01, 3.09], 124.01 ], + [ KPLIB_o_sentry, [-17.92, -8.58, 0.73], 122.29 ], + [ KPLIB_o_aaSpecialist, [8.45, 18.85, 3.13], 335.85 ], + [ KPLIB_o_sentry, [-18, -11.54, 0.73], 122.29 ], + [ KPLIB_o_sentry, [-13.77, 16.65, 0], 339.29 ], + [ KPLIB_o_heavyGunner, [14.04, 17.46, 3.13], 48.56 ], + [ KPLIB_o_riflemanLAT, [12.44, 18.69, 3.13], 16.72 ] ]; private _base_corners = [ diff --git a/Missionframework/fobhunt_templates/default/template4.sqf b/Missionframework/fobhunt_templates/default/template4.sqf new file mode 100644 index 000000000..d663f7626 --- /dev/null +++ b/Missionframework/fobhunt_templates/default/template4.sqf @@ -0,0 +1,79 @@ +private _objects_to_build = [ + [ KPLIB_o_mrap, [13.31, 0, 0.01], 268.69 ], + [ "Land_Cargo_HQ_V3_F", [11.47, -12.17, 0], 89.97 ], + [ "Land_CncBarrierMedium4_F", [-15.55, -1.69, 0], 90.88 ], + [ "Land_HBarrierBig_F", [-13.27, -8.61, 0], 91.24 ], + [ KPLIB_o_transportTruck, [1.21, 15.8, -0.03], 274.41 ], + [ "Land_BarGate_F", [-16.65, 2.15, 0], 90.88 ], + [ KPLIB_o_mrapArmed, [-20.26, -3.22, 0.01], 359.22 ], + [ "Land_HBarrierBig_F", [1.23, 20.94, 0], 0.69 ], + [ "Land_Cargo_Patrol_V3_F", [16.23, 15.36, 0], 269.81 ], + [ KPLIB_o_flag, [-12.14, 18.09, 0], 90 ], + [ "Land_HBarrierBig_F", [22.07, -0.21, 0], 89.37 ], + [ "Land_HBarrierBig_F", [-18.87, 11.86, 0], 182.13 ], + [ "Land_HBarrierBig_F", [-19.02, -11.48, 0], 180.79 ], + [ "Land_HBarrierBig_F", [-7.55, 20.91, 0], 0.69 ], + [ "Land_Cargo_Patrol_V3_F", [-16.73, 16.16, 0], 89.4 ], + [ "Land_HBarrierBig_F", [-0.63, -22.83, 0], 0.36 ], + [ KPLIB_o_flag, [-11.33, -19.92, 0], 90 ], + [ "Land_HBarrierBig_F", [9.38, 20.92, 0], 181.2 ], + [ "Land_Cargo_Patrol_V3_F", [-16.22, -17.77, 0], 0.54 ], + [ "Land_HBarrierBig_F", [21.86, 8.66, 0], 89.37 ], + [ "Land_HBarrierBig_F", [22.03, -9.04, 0], 90.4 ], + [ "Land_HBarrierBig_F", [8.22, -23.01, 0], 1.39 ], + [ "Land_HBarrierBig_F", [-9.5, -22.89, 0], 0.36 ], + [ "Land_HBarrierBig_F", [-16.39, 20.98, 0], 359.67 ], + [ "Land_HBarrierBig_F", [-21.5, 17.42, 0], 91.24 ], + [ "Land_HBarrierBig_F", [18.15, 20.89, 0], 181.2 ], + [ "Land_HBarrierBig_F", [21.63, 17.44, 0], 89.37 ], + [ "Land_HBarrierBig_F", [-22.04, -17.17, 0], 271.36 ], + [ KPLIB_o_flag, [19.21, -20.29, 0], 90 ], + [ "Land_HBarrierBig_F", [22.12, -17.82, 0], 90.4 ], + [ "Land_HBarrierBig_F", [16.99, -23.08, 0], 1.39 ], + [ "Land_HBarrierBig_F", [-18.27, -22.97, 0], 0.36 ] +]; + +private _objectives_to_build = [ + [ KPLIB_o_fuelTruck, [1.41, 11.53, -0.03], 271.88 ], + [ KPLIB_o_ammoTruck, [-1.45, -13.1, -0.04], 357.37 ], + [ KPLIB_o_ammoContainer, [13.59, 4.13, 0.02], 96.77 ], + [ KPLIB_o_ammoTruck, [-7.67, -13, -0.04], 0.71 ], + [ KPLIB_o_ammoContainer, [13.76, 9.31, 0.02], 270.25 ] +]; + +private _defenders_to_build = [ + [ KPLIB_o_machinegunner, [-3.53, 4.47, 0], 348.81 ], + [ KPLIB_o_sentry, [-2.09, 5.78, 0], 288.05 ], + [ KPLIB_o_rifleman, [-5.93, -4.74, 0], 288.05 ], + [ KPLIB_o_sentry, [-7.45, -5.82, 0], 348.81 ], + [ KPLIB_o_engineer, [8.02, 6.59, 0], 87.82 ], + [ KPLIB_o_sentry, [-4.42, -10.1, 0], 349.58 ], + [ KPLIB_o_heavyGunner, [8.68, -7.9, 3.13], 335.85 ], + [ KPLIB_o_engineer, [-4.24, 12.69, 0], 71.91 ], + [ KPLIB_o_sentry, [-13.57, -0.21, 0], 280.01 ], + [ KPLIB_o_rifleman, [9.47, -10.01, 0.6], 129.9 ], + [ KPLIB_o_rifleman, [9.67, -11.29, 0.6], 53.89 ], + [ KPLIB_o_teamLeader, [10.93, -10.44, 0.6], 288.05 ], + [ KPLIB_o_aaSpecialist, [14.26, -9.29, 3.13], 48.56 ], + [ KPLIB_o_rifleman, [11.05, -14.06, 0.6], 105.44 ], + [ KPLIB_o_atSpecialist, [8.89, -16.68, 3.13], 201.77 ], + [ KPLIB_o_rifleman, [12.59, -14.27, 0.6], 288.05 ], + [ KPLIB_o_rifleman, [-20.21, 2.04, 0], 286.68 ], + [ KPLIB_o_machinegunner, [-19.96, 4.15, 0], 241.27 ], + [ KPLIB_o_marksman, [15.84, -14.74, 3.09], 124.01 ], + [ KPLIB_o_heavyGunner, [17.02, 14.26, 4.35], 174.84 ], + [ KPLIB_o_marksman, [-16.98, 15.1, 4.35], 210.68 ], + [ KPLIB_o_sharpshooter, [16.58, 16.48, 4.35], 31.1 ], + [ KPLIB_o_machinegunner, [-15.08, -18.12, 4.35], 121.82 ], + [ KPLIB_o_heavyGunner, [-17.42, 17.33, 4.35], 354.42 ], + [ KPLIB_o_sharpshooter, [-17.31, -18.53, 4.35], 265.56 ] +]; + +private _base_corners = [ + [35,35,0], + [35,-35,0], + [-35,-35,0], + [-35,35,0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/Missionframework/fobhunt_templates/default/template5.sqf b/Missionframework/fobhunt_templates/default/template5.sqf new file mode 100644 index 000000000..45a9d75a0 --- /dev/null +++ b/Missionframework/fobhunt_templates/default/template5.sqf @@ -0,0 +1,72 @@ +private _objects_to_build = [ + [ "Land_HelipadCircle_F", [-1.31, 11.44, 0], 0 ], + [ KPLIB_o_transportHeli, [-1.31, 11.45, 0], 134.19 ], + [ "Land_Cargo_Patrol_V3_F", [17.36, 1.08, 0], 269.81 ], + [ "Land_Cargo_House_V3_F", [15.93, -7.13, 0], 90.12 ], + [ "Land_Cargo_HQ_V3_F", [-11.82, -13.91, 0], 89.97 ], + [ KPLIB_o_transportTruck, [-17.59, 5.76, -0.03], 310.87 ], + [ KPLIB_o_flag, [-20.4, -2.8, 0], 90 ], + [ "Land_PaperBox_open_full_F", [12.36, -16.46, 0], 228.14 ], + [ KPLIB_o_flag, [20.06, 6.22, 0], 90 ], + [ "Land_PaperBox_open_empty_F", [14.86, -16.08, 0], 2.94 ], + [ "Land_PaperBox_closed_F", [13.68, -18.27, 0], 287.62 ], + [ "Land_HBarrierBig_F", [-22.99, -3.72, 0], 89.34 ], + [ "CamoNet_OPFOR_open_F", [14.88, -18.51, 0], 0 ], + [ "Land_HBarrierBig_F", [22.88, 3.58, 0], 89.34 ], + [ KPLIB_o_mrap, [17.18, 16.24, 0.01], 326.13 ], + [ "Land_HBarrierBig_F", [23.08, -5.21, 0], 89.34 ], + [ "Land_HBarrierBig_F", [0.66, -24.24, 0], 0.36 ], + [ "Land_HBarrierBig_F", [-8.2, -24.3, 0], 0.36 ], + [ "Land_HBarrierBig_F", [-22.79, -12.51, 0], 89.34 ], + [ "Land_HBarrierBig_F", [9.52, -24.42, 0], 1.39 ], + [ "Land_HBarrierBig_F", [23.35, -14.06, 0], 89.34 ], + [ KPLIB_o_flag, [19.21, -21.72, 0], 90 ], + [ "Land_HBarrierBig_F", [-16.97, -24.38, 0], 0.36 ], + [ "Land_HBarrierBig_F", [18.28, -24.49, 0], 1.39 ], + [ "Land_HBarrierBig_F", [-22.52, -21.36, 0], 89.34 ], + [ "Land_HBarrierBig_F", [22.45, -21.48, 0], 103.04 ] +]; + +private _objectives_to_build = [ + [ KPLIB_o_fuelContainer, [-16.82, 17.67, -0.01], 47.97 ], + [ KPLIB_o_ammoContainer, [-0.42, -3.26, 0.02], 104.66 ], + [ KPLIB_o_fuelContainer, [-9.52, -0.47, -0.04], 295.86 ], + [ KPLIB_o_ammoContainer, [2.85, -14.48, 0], 0.69 ] +]; + +private _defenders_to_build = [ + [ KPLIB_o_engineer, [2.32, 3.25, 0], 10.12 ], + [ KPLIB_o_engineer, [3.59, 3.89, 0], 288.05 ], + [ KPLIB_o_engineer, [2.31, 4.93, 0], 158.22 ], + [ KPLIB_o_rifleman, [3.96, -9.85, 0], 37.83 ], + [ KPLIB_o_machinegunner, [-9.04, -11.04, 3.13], 48.56 ], + [ KPLIB_o_teamLeader, [-12.46, -12.21, 0.6], 288.05 ], + [ KPLIB_o_aaSpecialist, [-14.62, -9.64, 3.13], 335.85 ], + [ KPLIB_o_sharpshooter, [17.7, 2.21, 4.35], 31.1 ], + [ KPLIB_o_aaSpecialist, [-7.46, -16.48, 3.09], 124.01 ], + [ KPLIB_o_heavyGunner, [18.14, -0.02, 4.35], 174.84 ], + [ KPLIB_o_rifleman, [-13.89, -11.76, 0.6], 129.9 ], + [ KPLIB_o_sentry, [-13.62, -13.03, 0.6], 53.89 ], + [ KPLIB_o_sentry, [10.86, -15.42, 0], 348.81 ], + [ KPLIB_o_sentry, [17.87, -6.07, 0.73], 294.41 ], + [ KPLIB_o_rifleman, [12.59, -14.14, 0], 288.05 ], + [ KPLIB_o_rifleman, [-10.49, -15.94, 0.6], 288.05 ], + [ KPLIB_o_sentry, [-12.03, -15.74, 0.6], 105.44 ], + [ KPLIB_o_sentry, [17.96, -8.4, 0.73], 294.41 ], + [ KPLIB_o_sentry, [-2.5, 20.13, 0], 288.05 ], + [ KPLIB_o_grenadier, [-5.17, 20.37, 0], 84.75 ], + [ KPLIB_o_engineer, [-17.83, 11.21, 0], 288.05 ], + [ KPLIB_o_atSpecialist, [-13.21, -18.42, 3.13], 196.73 ], + [ KPLIB_o_sentry, [-20.27, 11.9, 0], 112.14 ], + [ KPLIB_o_sentry, [13.03, 19.64, 0], 348.81 ], + [ KPLIB_o_rifleman, [14.76, 20.92, 0], 288.05 ] +]; + +private _base_corners = [ + [30,40,0], + [30,-40,0], + [-30,-40,0], + [-30,40,0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/Missionframework/scripts/fob_templates/default/template6.sqf b/Missionframework/fobhunt_templates/default/template6.sqf similarity index 65% rename from Missionframework/scripts/fob_templates/default/template6.sqf rename to Missionframework/fobhunt_templates/default/template6.sqf index 31a0d80a0..54817bad1 100644 --- a/Missionframework/scripts/fob_templates/default/template6.sqf +++ b/Missionframework/fobhunt_templates/default/template6.sqf @@ -30,27 +30,27 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [opfor_fuel_truck, [-13.32, -0.24, 0.00], 270.00], - [opfor_ammo_truck, [-13.24, 3.86, 0.00], 270.00], - [opfor_fuel_container, [6.71, 13.81, 0.00], 270.00], - [opfor_ammo_container, [7.09, 1.62, 0.00], 270.00], - [opfor_fuel_container, [6.87, 7.71, 0.00], 270.00] + [KPLIB_o_fuelTruck, [-13.32, -0.24, 0.00], 270.00], + [KPLIB_o_ammoTruck, [-13.24, 3.86, 0.00], 270.00], + [KPLIB_o_fuelContainer, [6.71, 13.81, 0.00], 270.00], + [KPLIB_o_ammoContainer, [7.09, 1.62, 0.00], 270.00], + [KPLIB_o_fuelContainer, [6.87, 7.71, 0.00], 270.00] ]; private _defenders_to_build = [ - [opfor_machinegunner, [3.87, -7.16, 0.00], 102.55], - [opfor_rpg, [4.48, 10.62, 0.00], 90.00], - [opfor_rpg, [-1.45, 14.18, 0.00], 199.35], - [opfor_sentry, [4.03, -13.81, 0.00], 45.23], - [opfor_engineer, [14.05, -8.39, 4.35], 58.33], - [opfor_grenadier, [-16.46, -5.86, 0.00], 90.00], - [opfor_machinegunner, [-16.45, 6.53, 0.00], 90.00], - [opfor_sentry, [-12.40, 12.03, 4.35], 0.00], - [opfor_rifleman, [14.11, -11.35, 4.35], 134.48], - [opfor_rifleman, [-15.71, 12.02, 4.35], 355.76], - [opfor_rifleman, [14.62, 15.10, 0.00], 180.00], - [opfor_rifleman, [-13.29, -17.54, 2.28], 163.03], - [opfor_heavygunner, [-14.64, -17.31, 2.28], 180.00] + [KPLIB_o_machinegunner, [3.87, -7.16, 0.00], 102.55], + [KPLIB_o_riflemanLAT, [4.48, 10.62, 0.00], 90.00], + [KPLIB_o_riflemanLAT, [-1.45, 14.18, 0.00], 199.35], + [KPLIB_o_sentry, [4.03, -13.81, 0.00], 45.23], + [KPLIB_o_engineer, [14.05, -8.39, 4.35], 58.33], + [KPLIB_o_grenadier, [-16.46, -5.86, 0.00], 90.00], + [KPLIB_o_machinegunner, [-16.45, 6.53, 0.00], 90.00], + [KPLIB_o_sentry, [-12.40, 12.03, 4.35], 0.00], + [KPLIB_o_rifleman, [14.11, -11.35, 4.35], 134.48], + [KPLIB_o_rifleman, [-15.71, 12.02, 4.35], 355.76], + [KPLIB_o_rifleman, [14.62, 15.10, 0.00], 180.00], + [KPLIB_o_rifleman, [-13.29, -17.54, 2.28], 163.03], + [KPLIB_o_heavyGunner, [-14.64, -17.31, 2.28], 180.00] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/default/template7.sqf b/Missionframework/fobhunt_templates/default/template7.sqf similarity index 63% rename from Missionframework/scripts/fob_templates/default/template7.sqf rename to Missionframework/fobhunt_templates/default/template7.sqf index 82194c4b1..f839dfd18 100644 --- a/Missionframework/scripts/fob_templates/default/template7.sqf +++ b/Missionframework/fobhunt_templates/default/template7.sqf @@ -16,7 +16,7 @@ private _objects_to_build = [ ["Land_HBarrier_Big_F", [2.53, -17.80, 0.00], 0.00], ["Land_HBarrier_Big_F", [11.20, -17.64, 0.00], 0.00], ["Land_HBarrierWall_corner_F", [-13.71, -15.85, 0.00], 90.00], - [opfor_flag, [13.91, -15.57, 0.00], 0.00], + [KPLIB_o_flag, [13.91, -15.57, 0.00], 0.00], ["Land_HBarrier_Big_F", [12.50, 17.11, 0.00], 0.00], ["Land_HBarrier_Big_F", [21.62, -1.75, 0.00], 0.00], ["Land_HBarrier_Big_F", [16.65, -14.10, 0.00], 270.00], @@ -34,30 +34,30 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [opfor_ammo_truck, [-13.14, 10.16, 0.00], 0.00], - [opfor_fuel_container, [18.22, 5.43, 0.00], 270.00], - [opfor_fuel_container, [17.86, 11.39, 0.00], 270.00], - [opfor_fuel_truck, [-17.96, 9.56, 0.00], 0.00] + [KPLIB_o_ammoTruck, [-13.14, 10.16, 0.00], 0.00], + [KPLIB_o_fuelContainer, [18.22, 5.43, 0.00], 270.00], + [KPLIB_o_fuelContainer, [17.86, 11.39, 0.00], 270.00], + [KPLIB_o_fuelTruck, [-17.96, 9.56, 0.00], 0.00] ]; private _defenders_to_build = [ - [opfor_heavygunner, [-5.65, 0.87, 1.25], 196.97], - [opfor_rifleman, [8.77, -4.14, 0.73], 133.49], - [opfor_grenadier, [12.04, -4.37, 0.73], 205.94], - [opfor_heavygunner, [0.80, -16.01, 1.25], 224.40], - [opfor_rifleman, [-4.46, 5.64, 15.37], 0.00], - [opfor_rifleman, [1.55, 11.61, 12.77], 202.68], - [opfor_at, [1.20, 3.98, 17.89], 176.06], - [opfor_rifleman, [10.76, -15.11, 0.00], 291.66], - [opfor_sentry, [-16.09, 10.06, 0.00], 184.01], - [opfor_rifleman, [18.18, 8.32, 0.00], 264.25], - [opfor_marksman, [-5.72, 10.17, 17.89], 287.12], - [opfor_rifleman, [-14.59, -16.40, 1.24], 156.40], - [opfor_medic, [22.50, 1.32, 0.00], 275.86], - [opfor_rifleman, [-23.11, 1.83, 0.00], 77.87], - [opfor_rifleman, [-21.51, -9.11, 4.35], 279.37], - [opfor_sentry, [-23.58, -2.96, 0.00], 118.12], - [opfor_marksman, [-21.28, -12.32, 4.35], 232.31] + [KPLIB_o_heavyGunner, [-5.65, 0.87, 1.25], 196.97], + [KPLIB_o_rifleman, [8.77, -4.14, 0.73], 133.49], + [KPLIB_o_grenadier, [12.04, -4.37, 0.73], 205.94], + [KPLIB_o_heavyGunner, [0.80, -16.01, 1.25], 224.40], + [KPLIB_o_rifleman, [-4.46, 5.64, 15.37], 0.00], + [KPLIB_o_rifleman, [1.55, 11.61, 12.77], 202.68], + [KPLIB_o_atSpecialist, [1.20, 3.98, 17.89], 176.06], + [KPLIB_o_rifleman, [10.76, -15.11, 0.00], 291.66], + [KPLIB_o_sentry, [-16.09, 10.06, 0.00], 184.01], + [KPLIB_o_rifleman, [18.18, 8.32, 0.00], 264.25], + [KPLIB_o_marksman, [-5.72, 10.17, 17.89], 287.12], + [KPLIB_o_rifleman, [-14.59, -16.40, 1.24], 156.40], + [KPLIB_o_medic, [22.50, 1.32, 0.00], 275.86], + [KPLIB_o_rifleman, [-23.11, 1.83, 0.00], 77.87], + [KPLIB_o_rifleman, [-21.51, -9.11, 4.35], 279.37], + [KPLIB_o_sentry, [-23.58, -2.96, 0.00], 118.12], + [KPLIB_o_marksman, [-21.28, -12.32, 4.35], 232.31] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/default/template8.sqf b/Missionframework/fobhunt_templates/default/template8.sqf similarity index 68% rename from Missionframework/scripts/fob_templates/default/template8.sqf rename to Missionframework/fobhunt_templates/default/template8.sqf index 70aaca54b..4db4a3185 100644 --- a/Missionframework/scripts/fob_templates/default/template8.sqf +++ b/Missionframework/fobhunt_templates/default/template8.sqf @@ -43,36 +43,36 @@ private _objects_to_build = [ ["Land_HBarrier_Big_F", [6.52, -9.98, 0.00], 270.00], ["Land_HBarrier_Big_F", [6.78, -18.56, 0.00], 270.00], ["Land_HBarrier_Big_F", [6.93, 23.16, 0.00], 180.13], - [opfor_flag, [14.12, 19.01, 0.00], 0.00], - [opfor_mrap_armed, [23.49, 2.01, -0.00], 0.00], - [opfor_mrap, [16.54, 1.76, -0.00], 0.00] + [KPLIB_o_flag, [14.12, 19.01, 0.00], 0.00], + [KPLIB_o_mrapArmed, [23.49, 2.01, -0.00], 0.00], + [KPLIB_o_mrap, [16.54, 1.76, -0.00], 0.00] ]; private _objectives_to_build = [ - [opfor_ammo_container, [-20.65, -16.90, 0.00], 326.51], - [opfor_ammo_container, [-13.62, -23.20, 0.00], 306.22], - [opfor_ammo_truck, [-9.16, 16.70, 0.00], 0.00], - [opfor_fuel_container, [-18.07, -7.63, 0.00], 270.00], - [opfor_fuel_truck, [-4.62, 16.86, 0.00], 0.00], - [opfor_fuel_container, [-18.02, -2.18, 0.00], 270.00] + [KPLIB_o_ammoContainer, [-20.65, -16.90, 0.00], 326.51], + [KPLIB_o_ammoContainer, [-13.62, -23.20, 0.00], 306.22], + [KPLIB_o_ammoTruck, [-9.16, 16.70, 0.00], 0.00], + [KPLIB_o_fuelContainer, [-18.07, -7.63, 0.00], 270.00], + [KPLIB_o_fuelTruck, [-4.62, 16.86, 0.00], 0.00], + [KPLIB_o_fuelContainer, [-18.02, -2.18, 0.00], 270.00] ]; private _defenders_to_build = [ - [opfor_engineer, [1.33, 20.43, 0.00], 224.42], - [opfor_heavygunner, [-9.34, -1.30, 17.89], 0.00], - [opfor_medic, [-15.26, 18.70, 0.00], 198.18], - [opfor_officer, [4.52, 20.27, 0.73], 121.81], - [opfor_sharpshooter, [23.62, -12.61, 4.35], 90.59], - [opfor_rifleman, [-2.12, -1.42, 12.77], 205.28], - [opfor_rifleman, [-20.20, 18.70, 4.35], 0.00], - [opfor_rifleman, [-6.93, -5.71, 15.37], 0.00], - [opfor_rifleman, [20.35, -0.20, 0.00], 0.00], - [opfor_rifleman, [3.38, 0.09, 0.00], 182.65], - [opfor_rpg, [0.18, -8.11, 17.79], 129.88], - [opfor_sentry, [-25.60, 0.02, 0.00], 156.91], - [opfor_marksman, [-17.47, 18.68, 4.35], 0.00], - [opfor_marksman, [23.70, -9.01, 4.35], 74.26], - [opfor_grenadier, [14.67, -8.28, 0.00], 160.61] + [KPLIB_o_engineer, [1.33, 20.43, 0.00], 224.42], + [KPLIB_o_heavyGunner, [-9.34, -1.30, 17.89], 0.00], + [KPLIB_o_medic, [-15.26, 18.70, 0.00], 198.18], + [KPLIB_o_officer, [4.52, 20.27, 0.73], 121.81], + [KPLIB_o_sharpshooter, [23.62, -12.61, 4.35], 90.59], + [KPLIB_o_rifleman, [-2.12, -1.42, 12.77], 205.28], + [KPLIB_o_rifleman, [-20.20, 18.70, 4.35], 0.00], + [KPLIB_o_rifleman, [-6.93, -5.71, 15.37], 0.00], + [KPLIB_o_rifleman, [20.35, -0.20, 0.00], 0.00], + [KPLIB_o_rifleman, [3.38, 0.09, 0.00], 182.65], + [KPLIB_o_riflemanLAT, [0.18, -8.11, 17.79], 129.88], + [KPLIB_o_sentry, [-25.60, 0.02, 0.00], 156.91], + [KPLIB_o_marksman, [-17.47, 18.68, 4.35], 0.00], + [KPLIB_o_marksman, [23.70, -9.01, 4.35], 74.26], + [KPLIB_o_grenadier, [14.67, -8.28, 0.00], 160.61] ]; private _base_corners = [ diff --git a/Missionframework/fobhunt_templates/default/template9.sqf b/Missionframework/fobhunt_templates/default/template9.sqf new file mode 100644 index 000000000..7ccc3377f --- /dev/null +++ b/Missionframework/fobhunt_templates/default/template9.sqf @@ -0,0 +1,66 @@ +private _objects_to_build = [ + [KPLIB_o_flag, [-19.05, -5.29, 0.00], 0.00], + [KPLIB_o_flag, [2.55, 4.91, 0.00], 0.00], + ["Land_BarGate_F", [-18.53, 3.79, 0.00], 270.00], + ["Land_Cargo_HQ_V3_F", [8.99, 1.74, 0.00], 0.00], + ["Land_Cargo_Patrol_V3_F", [-3.15, 24.19, 0.00], 180.00], + ["Land_HBarrier_Big_F", [-11.04, -17.98, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-11.45, 19.44, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-16.53, -7.99, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-16.80, 9.31, 0.00], 270.00], + ["Land_HBarrier_Big_F", [-2.23, -17.62, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-3.20, 28.38, 0.00], 0.00], + ["Land_HBarrier_Big_F", [-8.29, 25.01, 0.00], 270.00], + ["Land_HBarrier_Big_F", [14.65, 20.26, 0.00], 0.00], + ["Land_HBarrier_Big_F", [15.06, -17.16, 0.00], 0.00], + ["Land_HBarrier_Big_F", [2.51, 25.17, 0.00], 270.00], + ["Land_HBarrier_Big_F", [20.34, 10.15, 0.00], 270.00], + ["Land_HBarrier_Big_F", [20.43, 1.59, 0.00], 270.00], + ["Land_HBarrier_Big_F", [20.60, -7.15, 0.00], 270.00], + ["Land_HBarrier_Big_F", [5.93, 20.00, 0.00], 0.00], + ["Land_HBarrier_Big_F", [6.34, -17.42, 0.00], 0.00], + ["Land_HBarrierTower_F", [-17.31, -15.72, 0.00], 90.00], + ["Land_HBarrierTower_F", [-17.88, 17.11, 0.00], 90.00], + ["Land_HBarrierTower_F", [21.12, 18.04, 0.00], 270.00], + ["Land_HBarrierTower_F", [21.43, -14.52, 0.00], 270.00], + [KPLIB_o_mrap, [-12.85, -10.52, -0.00], 180.00], + [KPLIB_o_transportTruck, [-8.65, -8.70, 0.00], 180.00] +]; +private _objectives_to_build = [ + [KPLIB_o_ammoContainer, [12.70, -11.73, 0.00], 0.00], + [KPLIB_o_ammoContainer, [8.19, -11.71, 0.00], 0.00], + [KPLIB_o_fuelContainer, [12.28, 15.45, 0.00], 0.00], + [KPLIB_o_fuelContainer, [7.56, 15.24, 0.00], 0.00], + [KPLIB_o_ammoTruck, [-12.86, 10.58, 0.00], 0.00], + [KPLIB_o_fuelTruck, [-8.32, 10.38, 0.00], 0.00] +]; +private _defenders_to_build = [ + [KPLIB_o_engineer, [-10.53, -4.64, 0.00], 0.00], + [KPLIB_o_heavyGunner, [-18.74, -15.05, 2.28], 270.00], + [KPLIB_o_heavyGunner, [22.80, 18.84, 2.28], 0.00], + [KPLIB_o_heavyGunner, [6.31, -14.37, 0.00], 318.61], + [KPLIB_o_medic, [12.50, 1.07, 0.60], 244.47], + [KPLIB_o_squadLeader, [7.16, -3.84, 0.60], 308.87], + [KPLIB_o_atSpecialist, [5.57, 4.09, 3.13], 270.00], + [KPLIB_o_rifleman, [-10.39, 6.70, 0.00], 181.51], + [KPLIB_o_rifleman, [-18.42, -16.71, 2.28], 263.48], + [KPLIB_o_rifleman, [-19.11, 5.66, 0.00], 251.10], + [KPLIB_o_rifleman, [-19.58, 16.36, 2.28], 262.09], + [KPLIB_o_rifleman, [-4.32, 24.55, 4.35], 0.00], + [KPLIB_o_rifleman, [22.19, -15.53, 2.28], 155.63], + [KPLIB_o_rifleman, [23.32, -13.89, 2.28], 84.56], + [KPLIB_o_rifleman, [5.96, -3.84, 3.13], 265.58], + [KPLIB_o_sentry, [-20.00, 17.92, 2.28], 0.00], + [KPLIB_o_sentry, [10.18, 11.45, 0.00], 214.49], + [KPLIB_o_marksman, [-2.31, 24.52, 4.35], 0.00], + [KPLIB_o_grenadier, [-6.11, -14.77, 0.00], 0.00], + [KPLIB_o_grenadier, [22.96, 17.33, 2.28], 82.66] +]; +private _base_corners = [ + [40, 40, 0], + [40, -40, 0], + [-40, -40, 0], + [-40, 40, 0] +]; + +[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/Missionframework/scripts/fob_templates/export_template.sqf b/Missionframework/fobhunt_templates/export_template.sqf similarity index 95% rename from Missionframework/scripts/fob_templates/export_template.sqf rename to Missionframework/fobhunt_templates/export_template.sqf index 9668ebeb1..e007efd66 100644 --- a/Missionframework/scripts/fob_templates/export_template.sqf +++ b/Missionframework/fobhunt_templates/export_template.sqf @@ -28,7 +28,7 @@ params [ diag_log text ""; diag_log text ""; -diag_log text "[KP LIBERATION] [FOB EXPORT] ---------- START ----------"; +diag_log text "[KPLIB] [FOB EXPORT] ---------- START ----------"; // Fetch all objects diag_log text ""; @@ -77,7 +77,7 @@ diag_log text ""; diag_log text "[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners]"; diag_log text ""; -diag_log text "[KP LIBERATION] [FOB EXPORT] ---------- END ----------"; +diag_log text "[KPLIB] [FOB EXPORT] ---------- END ----------"; diag_log text ""; diag_log text ""; diff --git a/Missionframework/scripts/fob_templates/unsung/template1.sqf b/Missionframework/fobhunt_templates/unsung/template1.sqf similarity index 59% rename from Missionframework/scripts/fob_templates/unsung/template1.sqf rename to Missionframework/fobhunt_templates/unsung/template1.sqf index 1548bf8bd..0bc87a72a 100644 --- a/Missionframework/scripts/fob_templates/unsung/template1.sqf +++ b/Missionframework/fobhunt_templates/unsung/template1.sqf @@ -10,8 +10,8 @@ private _objects_to_build = [ ["LAND_uns_vctower1", [10.47, -11.34, 0.00], 324.04], ["LAND_uns_vctower1", [12.42, 14.10, 0.00], 211.82], ["LAND_uns_vctower2", [-11.86, -6.29, 0.00], 57.67], - [opfor_mrap_armed, [5.61, 12.49, -0.00], 90.00], - [opfor_flag, [0.39, -10.73, 0.00], 0.00], + [KPLIB_o_mrapArmed, [5.61, 12.49, -0.00], 90.00], + [KPLIB_o_flag, [0.39, -10.73, 0.00], 0.00], ["Vil_Fence", [-13.37, 11.66, 0.00], 270.00], ["Vil_Fence", [-13.42, 5.62, 0.00], 270.00], ["Vil_Fence", [-2.75, 15.24, 0.00], 0.00], @@ -26,25 +26,25 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [opfor_fuel_container, [13.71, -1.74, 0.00], 270.00], - [opfor_ammo_container, [13.61, 3.38, 0.00], 270.00] + [KPLIB_o_fuelContainer, [13.71, -1.74, 0.00], 270.00], + [KPLIB_o_ammoContainer, [13.61, 3.38, 0.00], 270.00] ]; private _defenders_to_build = [ - [opfor_engineer, [4.25, 10.00, 0.00], 176.53], - [opfor_heavygunner, [12.59, 14.31, 4.85], 35.26], - [opfor_medic, [-2.52, -5.68, 0.00], 209.23], - [opfor_officer, [-2.23, -8.35, 0.00], 336.06], - [opfor_rifleman, [-12.16, 0.48, 0.00], 258.30], - [opfor_rifleman, [-4.69, -7.79, 0.00], 23.76], - [opfor_rifleman, [-4.84, 8.98, 0.00], 165.32], - [opfor_rifleman, [1.21, -9.56, 0.00], 157.97], - [opfor_rifleman, [10.06, 1.24, 0.00], 255.76], - [opfor_rifleman, [10.65, -11.13, 4.86], 155.65], - [opfor_rifleman, [15.96, 6.35, 0.00], 78.60], - [opfor_rpg, [-7.23, 13.95, 0.00], 312.21], - [opfor_sentry, [-7.64, 5.85, 0.00], 99.50], - [opfor_marksman, [-12.80, -6.27, 4.80], 248.21] + [KPLIB_o_engineer, [4.25, 10.00, 0.00], 176.53], + [KPLIB_o_heavyGunner, [12.59, 14.31, 4.85], 35.26], + [KPLIB_o_medic, [-2.52, -5.68, 0.00], 209.23], + [KPLIB_o_officer, [-2.23, -8.35, 0.00], 336.06], + [KPLIB_o_rifleman, [-12.16, 0.48, 0.00], 258.30], + [KPLIB_o_rifleman, [-4.69, -7.79, 0.00], 23.76], + [KPLIB_o_rifleman, [-4.84, 8.98, 0.00], 165.32], + [KPLIB_o_rifleman, [1.21, -9.56, 0.00], 157.97], + [KPLIB_o_rifleman, [10.06, 1.24, 0.00], 255.76], + [KPLIB_o_rifleman, [10.65, -11.13, 4.86], 155.65], + [KPLIB_o_rifleman, [15.96, 6.35, 0.00], 78.60], + [KPLIB_o_riflemanLAT, [-7.23, 13.95, 0.00], 312.21], + [KPLIB_o_sentry, [-7.64, 5.85, 0.00], 99.50], + [KPLIB_o_marksman, [-12.80, -6.27, 4.80], 248.21] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/unsung/template2.sqf b/Missionframework/fobhunt_templates/unsung/template2.sqf similarity index 60% rename from Missionframework/scripts/fob_templates/unsung/template2.sqf rename to Missionframework/fobhunt_templates/unsung/template2.sqf index db815f715..910f9f777 100644 --- a/Missionframework/scripts/fob_templates/unsung/template2.sqf +++ b/Missionframework/fobhunt_templates/unsung/template2.sqf @@ -18,8 +18,8 @@ private _objects_to_build = [ ["LAND_uns_villseat", [-6.29, 5.83, 0.00], 0.00], ["LAND_uns_villtable1a", [-5.51, 5.85, 0.00], 0.00], ["uns_crate1", [-13.79, 15.85, 0.00], 163.23], - [opfor_flag, [14.77, -9.94, 0.00], 0.00], - [opfor_flag, [15.10, 1.55, 0.00], 0.00], + [KPLIB_o_flag, [14.77, -9.94, 0.00], 0.00], + [KPLIB_o_flag, [15.10, 1.55, 0.00], 0.00], ["uns_villtable1", [-2.26, 5.86, 0.00], 0.00], ["Vil_Fence", [-0.27, 16.94, 0.00], 205.79], ["Vil_Fence", [-0.65, -15.95, 0.00], 0.00], @@ -34,30 +34,30 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [opfor_ammo_truck, [2.50, -6.89, 0.00], 90.00], - [opfor_fuel_container, [-3.77, -11.61, 0.00], 0.00], - [opfor_fuel_container, [1.46, -11.62, 0.00], 0.00], - [opfor_fuel_container, [6.37, -11.54, 0.00], 0.00] + [KPLIB_o_ammoTruck, [2.50, -6.89, 0.00], 90.00], + [KPLIB_o_fuelContainer, [-3.77, -11.61, 0.00], 0.00], + [KPLIB_o_fuelContainer, [1.46, -11.62, 0.00], 0.00], + [KPLIB_o_fuelContainer, [6.37, -11.54, 0.00], 0.00] ]; private _defenders_to_build = [ - [opfor_engineer, [-1.39, -7.99, 0.00], 320.58], - [opfor_heavygunner, [-18.11, -3.26, 0.00], 253.65], - [opfor_medic, [-12.55, 13.97, 0.00], 177.21], - [opfor_medic, [-3.45, 15.76, 0.00], 0.00], - [opfor_rifleman, [-14.83, 13.12, 0.00], 138.45], - [opfor_rifleman, [-18.42, -1.54, 0.00], 319.02], - [opfor_rifleman, [-6.20, -14.27, 0.00], 244.68], - [opfor_rifleman, [11.79, 7.26, 0.00], 58.15], - [opfor_rifleman, [13.05, -8.81, 0.00], 39.37], - [opfor_rpg, [16.12, -13.59, 0.00], 70.33], - [opfor_sentry, [-11.88, 0.79, 0.00], 0.00], - [opfor_sentry, [-5.27, 3.62, 0.00], 143.78], - [opfor_marksman, [-10.45, -12.21, 4.84], 206.60], - [opfor_squad_leader, [7.02, 13.98, 0.00], 190.09], - [opfor_team_leader, [9.40, 12.45, 0.00], 240.68], - [opfor_grenadier, [-1.73, 3.11, 0.00], 215.79], - [opfor_grenadier, [16.61, 5.00, 0.00], 71.25] + [KPLIB_o_engineer, [-1.39, -7.99, 0.00], 320.58], + [KPLIB_o_heavyGunner, [-18.11, -3.26, 0.00], 253.65], + [KPLIB_o_medic, [-12.55, 13.97, 0.00], 177.21], + [KPLIB_o_medic, [-3.45, 15.76, 0.00], 0.00], + [KPLIB_o_rifleman, [-14.83, 13.12, 0.00], 138.45], + [KPLIB_o_rifleman, [-18.42, -1.54, 0.00], 319.02], + [KPLIB_o_rifleman, [-6.20, -14.27, 0.00], 244.68], + [KPLIB_o_rifleman, [11.79, 7.26, 0.00], 58.15], + [KPLIB_o_rifleman, [13.05, -8.81, 0.00], 39.37], + [KPLIB_o_riflemanLAT, [16.12, -13.59, 0.00], 70.33], + [KPLIB_o_sentry, [-11.88, 0.79, 0.00], 0.00], + [KPLIB_o_sentry, [-5.27, 3.62, 0.00], 143.78], + [KPLIB_o_marksman, [-10.45, -12.21, 4.84], 206.60], + [KPLIB_o_squadLeader, [7.02, 13.98, 0.00], 190.09], + [KPLIB_o_teamLeader, [9.40, 12.45, 0.00], 240.68], + [KPLIB_o_grenadier, [-1.73, 3.11, 0.00], 215.79], + [KPLIB_o_grenadier, [16.61, 5.00, 0.00], 71.25] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/unsung/template3.sqf b/Missionframework/fobhunt_templates/unsung/template3.sqf similarity index 56% rename from Missionframework/scripts/fob_templates/unsung/template3.sqf rename to Missionframework/fobhunt_templates/unsung/template3.sqf index e76f115b6..1f27acae8 100644 --- a/Missionframework/scripts/fob_templates/unsung/template3.sqf +++ b/Missionframework/fobhunt_templates/unsung/template3.sqf @@ -12,8 +12,8 @@ private _objects_to_build = [ ["LAND_uns_vcshelter4", [-5.87, -9.61, 0.00], 270.00], ["LAND_uns_vcshelter4", [1.77, -14.25, 0.00], 270.00], ["LAND_uns_vcshelter4", [1.78, -9.53, 0.00], 270.00], - [opfor_flag, [-15.79, -3.95, 0.00], 0.00], - [opfor_flag, [16.39, 1.56, 0.00], 0.00], + [KPLIB_o_flag, [-15.79, -3.95, 0.00], 0.00], + [KPLIB_o_flag, [16.39, 1.56, 0.00], 0.00], ["Vil_Fence", [-0.49, -16.46, 0.00], 0.00], ["Vil_Fence", [-1.22, 16.53, 0.00], 0.00], ["Vil_Fence", [-15.78, 9.56, 0.00], 114.93], @@ -28,30 +28,30 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [opfor_ammo_container, [1.76, -8.89, 0.00], 270.00], - [opfor_ammo_container, [1.85, -13.44, 0.00], 270.00], - [opfor_fuel_container, [-6.11, -13.37, 0.00], 270.00], - [opfor_fuel_container, [-6.15, -8.81, 0.00], 270.00] + [KPLIB_o_ammoContainer, [1.76, -8.89, 0.00], 270.00], + [KPLIB_o_ammoContainer, [1.85, -13.44, 0.00], 270.00], + [KPLIB_o_fuelContainer, [-6.11, -13.37, 0.00], 270.00], + [KPLIB_o_fuelContainer, [-6.15, -8.81, 0.00], 270.00] ]; private _defenders_to_build = [ - [opfor_engineer, [14.44, 1.66, 0.00], 124.27], - [opfor_heavygunner, [3.22, 13.79, 0.00], 0.00], - [opfor_medic, [2.37, 3.09, 0.00], 86.61], - [opfor_officer, [0.73, 13.99, 0.00], 154.25], - [opfor_rifleman, [-11.72, 19.08, 0.00], 308.60], - [opfor_rifleman, [-14.81, -10.93, 0.00], 297.93], - [opfor_rifleman, [-2.47, -11.92, 0.00], 0.00], - [opfor_rifleman, [11.05, -16.87, 0.00], 103.44], - [opfor_rifleman, [13.61, -6.92, 0.00], 70.80], - [opfor_rifleman, [14.00, 11.59, 0.00], 107.80], - [opfor_rpg, [9.81, -17.28, 0.00], 183.70], - [opfor_sentry, [-11.14, 1.90, 0.00], 64.87], - [opfor_sentry, [-2.53, 15.10, 0.00], 0.00], - [opfor_sentry, [3.43, 0.56, 0.00], 0.00], - [opfor_marksman, [-10.66, 19.57, 0.00], 0.00], - [opfor_grenadier, [-10.48, 6.93, 0.00], 121.83], - [opfor_grenadier, [14.28, 12.52, 0.00], 0.00] + [KPLIB_o_engineer, [14.44, 1.66, 0.00], 124.27], + [KPLIB_o_heavyGunner, [3.22, 13.79, 0.00], 0.00], + [KPLIB_o_medic, [2.37, 3.09, 0.00], 86.61], + [KPLIB_o_officer, [0.73, 13.99, 0.00], 154.25], + [KPLIB_o_rifleman, [-11.72, 19.08, 0.00], 308.60], + [KPLIB_o_rifleman, [-14.81, -10.93, 0.00], 297.93], + [KPLIB_o_rifleman, [-2.47, -11.92, 0.00], 0.00], + [KPLIB_o_rifleman, [11.05, -16.87, 0.00], 103.44], + [KPLIB_o_rifleman, [13.61, -6.92, 0.00], 70.80], + [KPLIB_o_rifleman, [14.00, 11.59, 0.00], 107.80], + [KPLIB_o_riflemanLAT, [9.81, -17.28, 0.00], 183.70], + [KPLIB_o_sentry, [-11.14, 1.90, 0.00], 64.87], + [KPLIB_o_sentry, [-2.53, 15.10, 0.00], 0.00], + [KPLIB_o_sentry, [3.43, 0.56, 0.00], 0.00], + [KPLIB_o_marksman, [-10.66, 19.57, 0.00], 0.00], + [KPLIB_o_grenadier, [-10.48, 6.93, 0.00], 121.83], + [KPLIB_o_grenadier, [14.28, 12.52, 0.00], 0.00] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/unsung/template4.sqf b/Missionframework/fobhunt_templates/unsung/template4.sqf similarity index 51% rename from Missionframework/scripts/fob_templates/unsung/template4.sqf rename to Missionframework/fobhunt_templates/unsung/template4.sqf index fce59b018..a0977c1b0 100644 --- a/Missionframework/scripts/fob_templates/unsung/template4.sqf +++ b/Missionframework/fobhunt_templates/unsung/template4.sqf @@ -7,9 +7,9 @@ private _objects_to_build = [ ["LAND_uns_vctower1", [-14.13, -13.21, 0.00], 42.90], ["LAND_uns_vctower1", [12.95, -12.88, 0.00], 318.28], ["LAND_uns_vctower1", [13.68, 14.05, 0.00], 224.50], - [opfor_mrap, [9.04, -7.43, -0.00], 270.00], - [opfor_flag, [-6.05, -13.43, 0.00], 0.00], - [opfor_flag, [0.55, 14.33, 0.00], 0.00], + [KPLIB_o_mrap, [9.04, -7.43, -0.00], 270.00], + [KPLIB_o_flag, [-6.05, -13.43, 0.00], 0.00], + [KPLIB_o_flag, [0.55, 14.33, 0.00], 0.00], ["Vil_Fence", [-14.66, 12.34, 0.00], 270.00], ["Vil_Fence", [-14.71, 6.41, 0.00], 270.00], ["Vil_Fence", [-14.77, 0.42, 0.00], 270.00], @@ -29,32 +29,32 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [opfor_ammo_truck, [9.96, -2.73, 0.00], 270.00], - [opfor_fuel_truck, [10.24, 2.73, 0.00], 270.00], - [opfor_ammo_container, [-10.12, -7.24, 0.00], 270.00], - [opfor_ammo_container, [-9.74, -2.72, 0.00], 270.00], - [opfor_fuel_container, [-9.75, 2.07, 0.00], 270.00], - [opfor_fuel_container, [-9.82, 6.30, 0.00], 270.00] + [KPLIB_o_ammoTruck, [9.96, -2.73, 0.00], 270.00], + [KPLIB_o_fuelTruck, [10.24, 2.73, 0.00], 270.00], + [KPLIB_o_ammoContainer, [-10.12, -7.24, 0.00], 270.00], + [KPLIB_o_ammoContainer, [-9.74, -2.72, 0.00], 270.00], + [KPLIB_o_fuelContainer, [-9.75, 2.07, 0.00], 270.00], + [KPLIB_o_fuelContainer, [-9.82, 6.30, 0.00], 270.00] ]; private _defenders_to_build = [ - [opfor_engineer, [12.94, -4.11, 0.00], 93.06], - [opfor_heavygunner, [-13.52, -13.88, 4.88], 186.59], - [opfor_medic, [8.98, 11.77, 0.00], 210.35], - [opfor_rifleman, [-13.37, 0.92, 0.00], 271.85], - [opfor_rifleman, [-13.78, 13.34, 4.87], 235.25], - [opfor_rifleman, [-4.09, 0.81, 0.00], 114.75], - [opfor_rifleman, [-6.94, 13.46, 0.00], 0.00], - [opfor_rifleman, [14.09, 13.37, 4.83], 98.03], - [opfor_at, [6.97, 0.37, 0.00], 285.40], - [opfor_sentry, [-14.61, -12.85, 4.83], 239.93], - [opfor_sentry, [-4.64, -1.39, 0.00], 147.93], - [opfor_sentry, [12.63, -13.31, 4.83], 197.32], - [opfor_marksman, [-13.29, 14.03, 4.85], 323.41], - [opfor_marksman, [12.96, 14.41, 4.87], 0.00], - [opfor_marksman, [13.41, -12.52, 4.86], 126.65], - [opfor_squad_leader, [9.30, 8.28, 0.00], 250.30], - [opfor_grenadier, [1.15, -12.96, 0.00], 206.96] + [KPLIB_o_engineer, [12.94, -4.11, 0.00], 93.06], + [KPLIB_o_heavyGunner, [-13.52, -13.88, 4.88], 186.59], + [KPLIB_o_medic, [8.98, 11.77, 0.00], 210.35], + [KPLIB_o_rifleman, [-13.37, 0.92, 0.00], 271.85], + [KPLIB_o_rifleman, [-13.78, 13.34, 4.87], 235.25], + [KPLIB_o_rifleman, [-4.09, 0.81, 0.00], 114.75], + [KPLIB_o_rifleman, [-6.94, 13.46, 0.00], 0.00], + [KPLIB_o_rifleman, [14.09, 13.37, 4.83], 98.03], + [KPLIB_o_atSpecialist, [6.97, 0.37, 0.00], 285.40], + [KPLIB_o_sentry, [-14.61, -12.85, 4.83], 239.93], + [KPLIB_o_sentry, [-4.64, -1.39, 0.00], 147.93], + [KPLIB_o_sentry, [12.63, -13.31, 4.83], 197.32], + [KPLIB_o_marksman, [-13.29, 14.03, 4.85], 323.41], + [KPLIB_o_marksman, [12.96, 14.41, 4.87], 0.00], + [KPLIB_o_marksman, [13.41, -12.52, 4.86], 126.65], + [KPLIB_o_squadLeader, [9.30, 8.28, 0.00], 250.30], + [KPLIB_o_grenadier, [1.15, -12.96, 0.00], 206.96] ]; private _base_corners = [ diff --git a/Missionframework/scripts/fob_templates/unsung/template5.sqf b/Missionframework/fobhunt_templates/unsung/template5.sqf similarity index 61% rename from Missionframework/scripts/fob_templates/unsung/template5.sqf rename to Missionframework/fobhunt_templates/unsung/template5.sqf index 7711c6ce2..1249d9afb 100644 --- a/Missionframework/scripts/fob_templates/unsung/template5.sqf +++ b/Missionframework/fobhunt_templates/unsung/template5.sqf @@ -21,11 +21,11 @@ private _objects_to_build = [ ["LAND_uns_villseat", [-7.24, -1.44, 0.00], 5.24], ["LAND_uns_villseat", [-9.06, 2.52, 0.00], 355.69], ["LAND_uns_villseat", [-9.11, -1.45, 0.00], 4.71], - [opfor_mrap, [-3.07, 15.27, -0.00], 89.49], + [KPLIB_o_mrap, [-3.07, 15.27, -0.00], 89.49], ["uns_bench1", [-4.67, -6.81, 0.00], 30.92], ["uns_bench1", [-7.78, -7.16, 0.00], 136.72], - [opfor_flag, [12.70, -15.73, 0.00], 0.00], - [opfor_flag, [4.94, -19.60, 0.00], 0.00], + [KPLIB_o_flag, [12.70, -15.73, 0.00], 0.00], + [KPLIB_o_flag, [4.94, -19.60, 0.00], 0.00], ["uns_villtable1", [-4.48, -1.54, 0.00], 0.00], ["uns_villtable1", [-4.62, 2.33, 0.00], 0.00], ["uns_villtable1", [-8.15, 2.62, 0.00], 0.00], @@ -42,32 +42,32 @@ private _objects_to_build = [ ]; private _objectives_to_build = [ - [opfor_ammo_container, [11.83, 7.85, 0.00], 244.41], - [opfor_fuel_container, [14.17, 2.33, 0.00], 247.91], - [opfor_fuel_container, [7.65, 12.72, 0.00], 223.11] + [KPLIB_o_ammoContainer, [11.83, 7.85, 0.00], 244.41], + [KPLIB_o_fuelContainer, [14.17, 2.33, 0.00], 247.91], + [KPLIB_o_fuelContainer, [7.65, 12.72, 0.00], 223.11] ]; private _defenders_to_build = [ - [opfor_engineer, [-4.18, 13.73, 0.00], 176.93], - [opfor_heavygunner, [-12.66, -10.52, 0.00], 0.00], - [opfor_heavygunner, [-4.12, -20.00, 0.00], 249.04], - [opfor_medic, [-15.97, -6.49, 0.00], 0.00], - [opfor_sharpshooter, [1.09, 18.82, 4.83], 0.00], - [opfor_rifleman, [-1.82, -20.39, 0.00], 154.51], - [opfor_rifleman, [-10.58, 17.79, 4.81], 143.79], - [opfor_rifleman, [-15.11, 2.16, 0.00], 108.85], - [opfor_rifleman, [-16.03, -3.77, 0.00], 91.87], - [opfor_rifleman, [-4.67, -4.78, 0.00], 212.50], - [opfor_rifleman, [18.35, -7.05, 0.00], 0.00], - [opfor_rifleman, [6.01, -19.19, 0.00], 133.28], - [opfor_rifleman, [7.52, 8.87, 0.00], 220.50], - [opfor_rpg, [10.95, -10.90, 0.00], 291.65], - [opfor_sentry, [11.95, 4.52, 0.00], 43.29], - [opfor_marksman, [-0.29, 18.86, 4.87], 305.92], - [opfor_marksman, [-16.39, 9.43, 4.84], 317.61], - [opfor_marksman, [-16.53, 8.30, 4.87], 223.01], - [opfor_grenadier, [-7.72, -4.93, 0.00], 120.76], - [opfor_grenadier, [18.02, -9.31, 0.00], 141.02] + [KPLIB_o_engineer, [-4.18, 13.73, 0.00], 176.93], + [KPLIB_o_heavyGunner, [-12.66, -10.52, 0.00], 0.00], + [KPLIB_o_heavyGunner, [-4.12, -20.00, 0.00], 249.04], + [KPLIB_o_medic, [-15.97, -6.49, 0.00], 0.00], + [KPLIB_o_sharpshooter, [1.09, 18.82, 4.83], 0.00], + [KPLIB_o_rifleman, [-1.82, -20.39, 0.00], 154.51], + [KPLIB_o_rifleman, [-10.58, 17.79, 4.81], 143.79], + [KPLIB_o_rifleman, [-15.11, 2.16, 0.00], 108.85], + [KPLIB_o_rifleman, [-16.03, -3.77, 0.00], 91.87], + [KPLIB_o_rifleman, [-4.67, -4.78, 0.00], 212.50], + [KPLIB_o_rifleman, [18.35, -7.05, 0.00], 0.00], + [KPLIB_o_rifleman, [6.01, -19.19, 0.00], 133.28], + [KPLIB_o_rifleman, [7.52, 8.87, 0.00], 220.50], + [KPLIB_o_riflemanLAT, [10.95, -10.90, 0.00], 291.65], + [KPLIB_o_sentry, [11.95, 4.52, 0.00], 43.29], + [KPLIB_o_marksman, [-0.29, 18.86, 4.87], 305.92], + [KPLIB_o_marksman, [-16.39, 9.43, 4.84], 317.61], + [KPLIB_o_marksman, [-16.53, 8.30, 4.87], 223.01], + [KPLIB_o_grenadier, [-7.72, -4.93, 0.00], 120.76], + [KPLIB_o_grenadier, [18.02, -9.31, 0.00], 141.02] ]; private _base_corners = [ diff --git a/Missionframework/functions/curator/fn_requestZeus.sqf b/Missionframework/functions/curator/fn_requestZeus.sqf index e25c9692f..69113f61f 100644 --- a/Missionframework/functions/curator/fn_requestZeus.sqf +++ b/Missionframework/functions/curator/fn_requestZeus.sqf @@ -2,7 +2,7 @@ File: fn_requestZeus.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-08-07 - Last Update: 2020-08-07 + Last Update: 2020-09-16 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -19,6 +19,6 @@ params [ ["_player", player, [objNull]] ]; -[true, "KPLIB_createZeus", [_player, KP_liberation_limited_zeus]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", 2]; +[true, "KPLIB_createZeus", [_player, KPLIB_param_zeusLimited]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", 2]; true diff --git a/Missionframework/functions/fn_LAMBS_enableReinforcements.sqf b/Missionframework/functions/fn_LAMBS_enableReinforcements.sqf new file mode 100644 index 000000000..598ea740b --- /dev/null +++ b/Missionframework/functions/fn_LAMBS_enableReinforcements.sqf @@ -0,0 +1,27 @@ +/* + File: fn_LAMBS_enableReinforcements.sqf + Author: Jenna + Date: 2023-10-21 + Last Update: 2023-10-21 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Enables LAMBS reinforcements + radio on a given group + + Parameter(s): + _grp - Group to enable features on [Group, defaults to grpNull] + + Returns: + Nothing +*/ + +params [ + ["_grp", grpNull, [grpNull]] +]; + +if (isNull _grp) exitwith { + ["Attempted to set LAMBS Reinforcements on null group.", "ERROR"] remoteExecCall ["KPLIB_fnc_log", 2]; +}; + +(leader _grp) setVariable ["lambs_danger_dangerRadio", true, true]; +_grp setVariable ["lambs_danger_enableGroupReinforce", true, true]; diff --git a/Missionframework/functions/fn_addActionsFob.sqf b/Missionframework/functions/fn_addActionsFob.sqf index 052070908..b890075f0 100644 --- a/Missionframework/functions/fn_addActionsFob.sqf +++ b/Missionframework/functions/fn_addActionsFob.sqf @@ -2,7 +2,7 @@ File: fn_addActionsFob.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-13 - Last Update: 2020-04-13 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -23,7 +23,7 @@ if (isNull _object) exitWith {["Null object given"] call BIS_fnc_error; false}; if (isNil "FOB_build_in_progress") then {FOB_build_in_progress = false;}; -if ((typeOf _obj) isEqualTo FOB_typename) exitWith { +if ((typeOf _obj) isEqualTo KPLIB_b_fobBuilding) exitWith { _obj addAction [ ["", localize "STR_FOB_REPACKAGE", " "] joinString "", "scripts\client\actions\do_repackage_fob.sqf", @@ -38,7 +38,7 @@ if ((typeOf _obj) isEqualTo FOB_typename) exitWith { true }; -if ((typeOf _obj) in [FOB_box_typename, FOB_truck_typename]) exitWith { +if ((typeOf _obj) in [KPLIB_b_fobBox, KPLIB_b_fobTruck]) exitWith { _obj addAction [ ["", localize "STR_FOB_ACTION", " "] joinString "", "scripts\client\build\do_build_fob.sqf", diff --git a/Missionframework/functions/fn_addActionsPlayer.sqf b/Missionframework/functions/fn_addActionsPlayer.sqf index f8ff5dfdb..06b3eea99 100644 --- a/Missionframework/functions/fn_addActionsPlayer.sqf +++ b/Missionframework/functions/fn_addActionsPlayer.sqf @@ -2,7 +2,7 @@ File: fn_addActionsPlayer.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-13 - Last Update: 2020-08-07 + Last Update: 2023-10-28 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -21,7 +21,7 @@ params [ if !(isPlayer _player) exitWith {["No player given"] call BIS_fnc_error; false}; -if (isNil "KP_liberation_resources_global") then {KP_liberation_resources_global = false;}; +if (isNil "KPLIB_resources_global") then {KPLIB_resources_global = false;}; // Tutorial _player addAction [ @@ -48,7 +48,7 @@ _player addAction [ true, "", " - GRLIB_halo_param > 0 + KPLIB_param_halo > 0 && {isNull (objectParent _originalTarget)} && {alive _originalTarget} && { @@ -62,7 +62,7 @@ _player addAction [ // Redeploy _player addAction [ ["", localize "STR_DEPLOY_ACTION", ""] joinString "", - {GRLIB_force_redeploy = true;}, + {KPLIB_force_redeploy = true;}, nil, -720, false, @@ -132,7 +132,7 @@ _player addAction [ " isNull (objectParent _originalTarget) && {alive _originalTarget} - && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} + && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (KPLIB_range_fob * 0.8)} && { _originalTarget getVariable ['KPLIB_hasDirectAccess', false] || {[3] call KPLIB_fnc_hasPermission} @@ -169,7 +169,7 @@ _player addAction [ _player addAction [ ["", localize "STR_SECSTORAGEBUILD_ACTION", ""] joinString "", "scripts\client\build\do_sector_build.sqf", - [KP_liberation_small_storage_building], + [KPLIB_b_smallStorage], -770, false, true, @@ -259,7 +259,7 @@ _player addAction [ // Switch global/local resources _player addAction [ ["", localize "STR_RESOURCE_GLOBAL_ACTION", ""] joinString "", - {KP_liberation_resources_global = !KP_liberation_resources_global}, + {KPLIB_resources_global = !KPLIB_resources_global}, nil, -810, false, @@ -267,7 +267,7 @@ _player addAction [ "", " alive _originalTarget - && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} + && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (KPLIB_range_fob * 0.8)} && {build_confirmed isEqualTo 0} " ]; @@ -285,9 +285,9 @@ _player addAction [ _originalTarget getVariable ['KPLIB_hasDirectAccess', false] && {isNull (objectParent _originalTarget)} && {alive _originalTarget} - && {!(KP_liberation_production isEqualTo [])} + && {!(KPLIB_production isEqualTo [])} && { - _originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8) + _originalTarget getVariable ['KPLIB_fobDist', 99999] < (KPLIB_range_fob * 0.8) || {!(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo [])} } && {build_confirmed isEqualTo 0} @@ -304,14 +304,14 @@ _player addAction [ true, "", " - KP_liberation_ailogistics + KPLIB_param_logistic && {_originalTarget getVariable ['KPLIB_hasDirectAccess', false]} && {isNull (objectParent _originalTarget)} && {alive _originalTarget} - && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} + && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (KPLIB_range_fob * 0.8)} && {!( - GRLIB_all_fobs isEqualTo [] - || KP_liberation_production isEqualTo [] + KPLIB_sectors_fob isEqualTo [] + || KPLIB_production isEqualTo [] )} && {build_confirmed isEqualTo 0} " @@ -327,7 +327,7 @@ _player addAction [ true, "", " - GRLIB_permissions_param + KPLIB_param_permissions && {_originalTarget getVariable ['KPLIB_hasDirectAccess', false]} && {alive _originalTarget} && {build_confirmed isEqualTo 0} @@ -355,7 +355,7 @@ if (player == ([] call KPLIB_fnc_getCommander)) then { // Create FOB clearance _player addAction [ ["", localize "STR_CLEARANCE_ACTION", ""] joinString "", - {[player getVariable ["KPLIB_fobPos", [0, 0, 0]], GRLIB_fob_range * 0.9, true] call KPLIB_fnc_createClearanceConfirm;}, + {[player getVariable ["KPLIB_fobPos", [0, 0, 0]], KPLIB_range_fob * 0.9, true] call KPLIB_fnc_createClearanceConfirm;}, nil, -850, false, @@ -365,9 +365,38 @@ _player addAction [ _originalTarget getVariable ['KPLIB_hasDirectAccess', false] && {isNull (objectParent _originalTarget)} && {alive _originalTarget} - && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} + && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (KPLIB_range_fob * 0.8)} && {build_confirmed isEqualTo 0} " ]; +// Drop crate +_player addAction [ + ["", localize "STR_ACTION_CRATE_DROP", ""] joinString "", + { + params ["_player"]; + private _crate = _player getVariable ["KPLIB_carriedObject", objNull]; + + // prevent players from putting crates inside vehicles + private _crateSize = sizeOf typeOf _crate * 1.5; + private _nearObjects = (_crate nearEntities [["Man", "Air", "Car", "Tank"], _crateSize]) - [_crate, _player]; + if (_nearObjects isNotEqualTo []) exitWith { + hint format [localize "STR_PLACEMENT_IMPOSSIBLE", count _nearObjects, _crateSize toFixed 0]; + }; + + _player setVariable ["KPLIB_carriedObject", nil]; + detach _crate; + _crate awake true; + }, + nil, + -504, + true, + false, + "", + toString { + alive _originalTarget && + build_confirmed == 0 && _this in _this && {!isNull (_this getVariable ["KPLIB_carriedObject", objNull])} + } +]; + true diff --git a/Missionframework/functions/fn_addObjectInit.sqf b/Missionframework/functions/fn_addObjectInit.sqf index df60272fc..bcdd87a99 100644 --- a/Missionframework/functions/fn_addObjectInit.sqf +++ b/Missionframework/functions/fn_addObjectInit.sqf @@ -2,11 +2,11 @@ File: fn_addObjectInit.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-05-08 - Last Update: 2020-04-29 + Last Update: 2020-07-06 License: MIT License - http://www.opensource.org/licenses/MIT Description: - Applies code from kp_objectInits.sqf to given object. Returns true if some code was applied, false if object has no KPLIB init code. + Applies code from KPLIB_objectInits.sqf to given object. Returns true if some code was applied, false if object has no KPLIB init code. Parameter(s): _object - Object which should get init code applied, if there is any defined [OBJECT, defaults to objNull] diff --git a/Missionframework/functions/fn_allowCrewInImmobile.sqf b/Missionframework/functions/fn_allowCrewInImmobile.sqf index a7991f5b5..bc635c88a 100644 --- a/Missionframework/functions/fn_allowCrewInImmobile.sqf +++ b/Missionframework/functions/fn_allowCrewInImmobile.sqf @@ -2,7 +2,7 @@ File: fn_allowCrewInImmobile.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-09-05 - Last Update: 2019-12-03 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -21,7 +21,7 @@ params [ if (isNull _vehicle) exitWith {["Null object given"] call BIS_fnc_error; false}; -// KP_liberation_allowEnemiesInImmobile (0-50-100) -_vehicle allowCrewInImmobile (random 100 < KP_liberation_allowEnemiesInImmobile); +// KPLIB_param_allowEnemiesInImmobile (0-50-100) +_vehicle allowCrewInImmobile (random 100 < KPLIB_param_allowEnemiesInImmobile); true diff --git a/Missionframework/functions/fn_checkCrateValue.sqf b/Missionframework/functions/fn_checkCrateValue.sqf index 5e9abe73d..c5e1468a3 100644 --- a/Missionframework/functions/fn_checkCrateValue.sqf +++ b/Missionframework/functions/fn_checkCrateValue.sqf @@ -2,7 +2,7 @@ File: fn_checkCrateValue.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-05-26 - Last Update: 2019-12-03 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -24,7 +24,7 @@ params [ if (isNull _crate) exitWith {["Null object given"] call BIS_fnc_error; false}; -hint format [localize "STR_ACTION_CRATE_VALUE_HINT", _crate getVariable ["KP_liberation_crate_value", 0]]; +hint format [localize "STR_ACTION_CRATE_VALUE_HINT", _crate getVariable ["KPLIB_crate_value", 0]]; if !(ropeAttachEnabled _crate) then { [_crate, true] remoteExec ["enableRopeAttach"]; diff --git a/Missionframework/functions/fn_checkGear.sqf b/Missionframework/functions/fn_checkGear.sqf index 57c2627bf..67419f786 100644 --- a/Missionframework/functions/fn_checkGear.sqf +++ b/Missionframework/functions/fn_checkGear.sqf @@ -2,7 +2,7 @@ File: fn_checkGear.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-11-22 - Last Update: 2020-04-16 + Last Update: 2020-05-11 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -25,23 +25,23 @@ params [ private _removedItems = []; // Check single item slots -if !(toLower (headgear player) in KP_liberation_allowed_items) then { +if !(toLower (headgear player) in KPLIB_arsenalAllowed) then { _removedItems pushBack (headgear player); removeHeadgear player; }; -if !(toLower (goggles player) in KP_liberation_allowed_items) then { +if !(toLower (goggles player) in KPLIB_arsenalAllowed) then { _removedItems pushBack (goggles player); removeGoggles player; }; -if !(toLower (uniform player) in KP_liberation_allowed_items) then { +if !(toLower (uniform player) in KPLIB_arsenalAllowed) then { _removedItems pushBack (uniform player); removeUniform player; }; -if !(toLower (vest player) in KP_liberation_allowed_items) then { +if !(toLower (vest player) in KPLIB_arsenalAllowed) then { _removedItems pushBack (vest player); removeVest player; }; -if (!(toLower (backpack player) in KP_liberation_allowed_items) && ((backpack player) != _backpack)) then { +if (!(toLower (backpack player) in KPLIB_arsenalAllowed) && ((backpack player) != _backpack)) then { _removedItems pushBack (backpack player); removeBackpack player; }; @@ -56,7 +56,7 @@ _items = _items apply {toLower _x}; _removedItems pushBack _x; player unassignItem _x; player removeItems _x; -} forEach (((_items arrayIntersect _items) - KP_liberation_allowed_items) select {!([_x] call KPLIB_fnc_isRadio)}); +} forEach (((_items arrayIntersect _items) - KPLIB_arsenalAllowed) select {!([_x] call KPLIB_fnc_isRadio)}); // Check magazines _items = ((getMagazineCargo (uniformContainer player)) select 0); @@ -66,7 +66,7 @@ _items = _items apply {toLower _x}; { _removedItems pushBack _x; player removeMagazines _x; -} forEach ((_items arrayIntersect _items) - KP_liberation_allowed_items); +} forEach ((_items arrayIntersect _items) - KPLIB_arsenalAllowed); // Check weapons stored in inventory containers { @@ -78,7 +78,7 @@ _items = (weapons player) apply {toLower ([_x] call BIS_fnc_baseWeapon)}; { _removedItems pushBack _x; player removeWeapon _x; -} forEach (_items - KP_liberation_allowed_items); +} forEach (_items - KPLIB_arsenalAllowed); // Check weapon items of primary weapon _items = primaryWeaponItems player; @@ -87,7 +87,7 @@ _items = _items apply {toLower _x}; { _removedItems pushBack _x; player removePrimaryWeaponItem _x; -} forEach (_items - KP_liberation_allowed_items); +} forEach (_items - KPLIB_arsenalAllowed); // Check weapon items of secondary weapon _items = secondaryWeaponItems player; @@ -96,7 +96,7 @@ _items = _items apply {toLower _x}; { _removedItems pushBack _x; player removeSecondaryWeaponItem _x; -} forEach (_items - KP_liberation_allowed_items); +} forEach (_items - KPLIB_arsenalAllowed); // Check weapon items of handgun _items = handgunItems player; @@ -105,7 +105,7 @@ _items = _items apply {toLower _x}; { _removedItems pushBack _x; player removeHandgunItem _x; -} forEach (_items - KP_liberation_allowed_items); +} forEach (_items - KPLIB_arsenalAllowed); // Remove duplicates and empty strings _removedItems = (_removedItems arrayIntersect _removedItems) - [""]; diff --git a/Missionframework/functions/fn_checkWeaponCargo.sqf b/Missionframework/functions/fn_checkWeaponCargo.sqf index fc1b75d56..319967a73 100644 --- a/Missionframework/functions/fn_checkWeaponCargo.sqf +++ b/Missionframework/functions/fn_checkWeaponCargo.sqf @@ -2,11 +2,11 @@ File: fn_removeWeaponCargo.sqf Author: Zharf - https://github.com/zharf Date: 2019-06-21 - Last Update: 2020-04-13 + Last Update: 2020-05-11 License: MIT License - http://www.opensource.org/licenses/MIT Description: - Removes weapons not found in KP_liberation_allowed_items from a cargo space. + Removes weapons not found in KPLIB_arsenalAllowed from a cargo space. Warning: All weapon attachments/magazines in container will become detached. Warning: Preset weapons without non-preset parents will get their attachments readded (engine limitation). @@ -39,7 +39,7 @@ clearWeaponCargoGlobal _container; _weaponNonPreset = _weapon; }; - if ((toLower ([_x] call BIS_fnc_baseWeapon)) in KP_liberation_allowed_items) then { + if ((toLower ([_x] call BIS_fnc_baseWeapon)) in KPLIB_arsenalAllowed) then { _container addWeaponCargoGlobal [_weaponNonPreset, 1]; // If weapon does not have a non-preset parent, only add attachments that were custom added @@ -51,7 +51,7 @@ clearWeaponCargoGlobal _container; }; if !(toLower _muzzle in _presetAttachments) then { - if (toLower _muzzle in KP_liberation_allowed_items) then { + if (toLower _muzzle in KPLIB_arsenalAllowed) then { _container addItemCargoGlobal [_muzzle, 1]; } else { _removed pushBack _muzzle; @@ -59,7 +59,7 @@ clearWeaponCargoGlobal _container; }; if !(toLower _pointer in _presetAttachments) then { - if (toLower _pointer in KP_liberation_allowed_items) then { + if (toLower _pointer in KPLIB_arsenalAllowed) then { _container addItemCargoGlobal [_pointer, 1]; } else { _removed pushBack _pointer; @@ -67,7 +67,7 @@ clearWeaponCargoGlobal _container; }; if !(toLower _optic in _presetAttachments) then { - if (toLower _optic in KP_liberation_allowed_items) then { + if (toLower _optic in KPLIB_arsenalAllowed) then { _container addItemCargoGlobal [_optic, 1]; } else { _removed pushBack _optic; @@ -75,7 +75,7 @@ clearWeaponCargoGlobal _container; }; if !(toLower _bipod in _presetAttachments) then { - if (toLower _bipod in KP_liberation_allowed_items) then { + if (toLower _bipod in KPLIB_arsenalAllowed) then { _container addItemCargoGlobal [_bipod, 1]; } else { _removed pushBack _bipod; @@ -84,7 +84,7 @@ clearWeaponCargoGlobal _container; _magazine params [["_magazineClass", ""], ["_magazineAmmoCount", 0]]; if (_magazineClass != "") then { - if (toLower _magazineClass in KP_liberation_allowed_items) then { + if (toLower _magazineClass in KPLIB_arsenalAllowed) then { _container addMagazineAmmoCargo [_magazineClass, 1, _magazineAmmoCount]; } else { _removed pushBack _magazineClass; @@ -93,7 +93,7 @@ clearWeaponCargoGlobal _container; _magazineGL params [["_magazineGLClass", ""], ["_magazineGLAmmoCount", 0]]; if (_magazineGLClass != "") then { - if (toLower _magazineGLClass in KP_liberation_allowed_items) then { + if (toLower _magazineGLClass in KPLIB_arsenalAllowed) then { _container addMagazineAmmoCargo [_magazineGLClass, 1, _magazineGLAmmoCount]; } else { _removed pushBack _magazineGLClass; diff --git a/Missionframework/functions/fn_clearCargo.sqf b/Missionframework/functions/fn_clearCargo.sqf index 05228eb6a..c27986847 100644 --- a/Missionframework/functions/fn_clearCargo.sqf +++ b/Missionframework/functions/fn_clearCargo.sqf @@ -2,7 +2,7 @@ File: fn_clearCargo.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-03-30 - Last Update: 2020-03-30 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -24,7 +24,7 @@ params [ if (isNull _obj) exitWith {["Null object given"] call BIS_fnc_error; false}; -if (_force || {!((typeOf _obj) in KP_liberation_ace_crates) && {KP_liberation_clear_cargo || {!((typeOf _obj) isKindOf "AllVehicles")}}}) then { +if (_force || {!((typeOf _obj) in KPLIB_ace_crates) && {KPLIB_param_clearCargo || {!((typeOf _obj) isKindOf "AllVehicles")}}}) then { clearWeaponCargoGlobal _obj; clearMagazineCargoGlobal _obj; clearBackpackCargoGlobal _obj; diff --git a/Missionframework/functions/fn_crAddAceAction.sqf b/Missionframework/functions/fn_crAddAceAction.sqf index f9d1a1d59..5c945ba45 100644 --- a/Missionframework/functions/fn_crAddAceAction.sqf +++ b/Missionframework/functions/fn_crAddAceAction.sqf @@ -2,7 +2,7 @@ File: fn_crAddAceAction.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-04-22 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -21,7 +21,7 @@ params [ if (isNull _civ) exitWith {["Null object given"] call BIS_fnc_error; false}; -if (KP_liberation_civrep_debug > 0) then {[format ["ace_action called on: %1", debug_source], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_civrep_debug > 0) then {[format ["ace_action called on: %1", debug_source], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; _civ addAction [ "" + localize "STR_CR_ACE_ACTION" + "", diff --git a/Missionframework/functions/fn_crGetMulti.sqf b/Missionframework/functions/fn_crGetMulti.sqf index 8e43e45c8..640c250eb 100644 --- a/Missionframework/functions/fn_crGetMulti.sqf +++ b/Missionframework/functions/fn_crGetMulti.sqf @@ -2,7 +2,7 @@ File: fn_crGetMulti.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-10-08 - Last Update: 2019-12-04 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -15,4 +15,4 @@ Reputation multiplier [NUMBER] */ -3 min (floor (abs (KP_liberation_civ_rep / 25))) +3 min (floor (abs (KPLIB_civ_rep / 25))) diff --git a/Missionframework/functions/fn_crGlobalMsg.sqf b/Missionframework/functions/fn_crGlobalMsg.sqf index 0c5fed305..29ac88207 100644 --- a/Missionframework/functions/fn_crGlobalMsg.sqf +++ b/Missionframework/functions/fn_crGlobalMsg.sqf @@ -2,7 +2,7 @@ File: fn_crGlobalMsg.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-04-17 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -21,7 +21,7 @@ params [ ["_data", [], []] ]; -if (KP_liberation_civrep_debug > 0) then {[format ["globalMsg called on: %1 - Parameters: [%2, %3]", debug_source, _msgType, _data], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_civrep_debug > 0) then {[format ["globalMsg called on: %1 - Parameters: [%2, %3]", debug_source, _msgType, _data], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; switch (_msgType) do { case 0: {systemChat localize "STR_CR_VEHICLEMSG";}; diff --git a/Missionframework/functions/fn_crateFromStorage.sqf b/Missionframework/functions/fn_crateFromStorage.sqf index c105b7915..06af19a64 100644 --- a/Missionframework/functions/fn_crateFromStorage.sqf +++ b/Missionframework/functions/fn_crateFromStorage.sqf @@ -2,7 +2,7 @@ File: fn_crateFromStorage.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-03-27 - Last Update: 2020-04-25 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -52,7 +52,7 @@ detach _crate; [_crate, true] call KPLIB_fnc_clearCargo; _crate setPos _unloadPos; [_crate, true] remoteExec ["enableRopeAttach"]; -if (KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; +if (KPLIB_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; // Fill the possible gap in the storage area reverse _storedCrates; @@ -65,7 +65,7 @@ _i = 0; // Update sector resources if (_update) then { - if ((_storage getVariable ["KP_liberation_storage_type", -1]) == 1) then { + if ((_storage getVariable ["KPLIB_storage_type", -1]) == 1) then { recalculate_sectors = true; publicVariable "recalculate_sectors"; }; diff --git a/Missionframework/functions/fn_crateToStorage.sqf b/Missionframework/functions/fn_crateToStorage.sqf index 8b21110d3..c3bf57b05 100644 --- a/Missionframework/functions/fn_crateToStorage.sqf +++ b/Missionframework/functions/fn_crateToStorage.sqf @@ -2,7 +2,7 @@ File: fn_crateToStorage.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-03-27 - Last Update: 2020-04-23 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -42,11 +42,11 @@ if (!isNull _storage) then { // Store crate _crate attachTo [_storage, [(_storage_positions select _crates_count) select 0, (_storage_positions select _crates_count) select 1, _height]]; [_crate, false] remoteExec ["enableRopeAttach"]; - if(KP_liberation_ace) then {[_crate, false, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; + if(KPLIB_ace) then {[_crate, false, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; // Update sector resource values, if requested if (_update) then { - if ((_storage getVariable ["KP_liberation_storage_type", -1]) == 1) then { + if ((_storage getVariable ["KPLIB_storage_type", -1]) == 1) then { recalculate_sectors = true; publicVariable "recalculate_sectors"; }; diff --git a/Missionframework/functions/fn_createClearance.sqf b/Missionframework/functions/fn_createClearance.sqf index 498760987..50b7b16f1 100644 --- a/Missionframework/functions/fn_createClearance.sqf +++ b/Missionframework/functions/fn_createClearance.sqf @@ -2,7 +2,7 @@ File: fn_createClearance.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-04-10 + Last Update: 2020-05-23 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -29,7 +29,7 @@ params [ if (_centerPos isEqualTo [0, 0, 0]) exitWith {["Zero position given"] call BIS_fnc_error; false}; if (_radius isEqualTo 0) exitWith {["Zero radius given"] call BIS_fnc_error; false}; -if (save_is_loaded && {(KP_liberation_clearances findIf {(_x select 0) isEqualTo _centerPos}) != -1}) exitWith {false}; +if (KPLIB_saveLoaded && {(KPLIB_clearances findIf {(_x select 0) isEqualTo _centerPos}) != -1}) exitWith {false}; { _x switchLight "OFF"; @@ -38,8 +38,8 @@ if (save_is_loaded && {(KP_liberation_clearances findIf {(_x select 0) isEqualTo } forEach (nearestTerrainObjects [_centerPos, [], _radius, false, true]); if (_save) then { - KP_liberation_clearances pushBackUnique [_centerPos, _radius]; - publicVariable "KP_liberation_clearances"; + KPLIB_clearances pushBackUnique [_centerPos, _radius]; + publicVariable "KPLIB_clearances"; }; true diff --git a/Missionframework/functions/fn_createCrate.sqf b/Missionframework/functions/fn_createCrate.sqf index 290903ec3..4802a2b04 100644 --- a/Missionframework/functions/fn_createCrate.sqf +++ b/Missionframework/functions/fn_createCrate.sqf @@ -2,14 +2,14 @@ File: fn_createCrate.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-10-11 - Last Update: 2020-04-25 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: Spawns a resource crate of given type and with given amount at given position. Parameter(s): - _resource - Type of resource [STRING, defaults to KP_liberation_supply_crate] + _resource - Type of resource [STRING, defaults to KPLIB_b_crateSupply] _amount - Resource amount [NUMBER, defaults to 100] _pos - Position where to spawn the crate [POSITION, defaults to getPos player] @@ -18,7 +18,7 @@ */ params [ - ["_resource", KP_liberation_supply_crate, [""]], + ["_resource", KPLIB_b_crateSupply, [""]], ["_amount", 100, [0]], ["_pos", getPos player, [[]], [2, 3]] ]; @@ -32,11 +32,11 @@ if !((toLower _resource) in KPLIB_crates) exitWith { // Create crate private _crate = _resource createVehicle _pos; _crate setMass 500; -_crate setVariable ["KP_liberation_crate_value", _amount, true]; +_crate setVariable ["KPLIB_crate_value", _amount, true]; [_crate, true] call KPLIB_fnc_clearCargo; // Add ACE carry functionality -if (KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; +if (KPLIB_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; // Process KP object init [_crate] call KPLIB_fnc_addObjectInit; diff --git a/Missionframework/functions/fn_createManagedUnit.sqf b/Missionframework/functions/fn_createManagedUnit.sqf index 0ccefdb97..1d744568f 100644 --- a/Missionframework/functions/fn_createManagedUnit.sqf +++ b/Missionframework/functions/fn_createManagedUnit.sqf @@ -2,7 +2,7 @@ File: fn_createManagedUnit.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-10-04 - Last Update: 2019-12-04 + Last Update: 2023-10-28 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -34,7 +34,11 @@ isNil { private _groupTemp = createGroup [CIVILIAN, true]; _unit = _groupTemp createUnit [_type, _spawnPos, [], _placement, "FORM"]; - _unit addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _unit addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; + _unit setRank _rank; // Join to target group to preserve Side diff --git a/Missionframework/functions/fn_doSave.sqf b/Missionframework/functions/fn_doSave.sqf index 8b09a9ce0..353b3154a 100644 --- a/Missionframework/functions/fn_doSave.sqf +++ b/Missionframework/functions/fn_doSave.sqf @@ -2,7 +2,7 @@ File: fn_doSave.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-03-29 - Last Update: 2020-05-08 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -22,19 +22,19 @@ if (!KPLIB_init) exitWith { false }; -if (missionNamespace getVariable ["kp_liberation_saving", false]) exitWith { +if (missionNamespace getVariable ["KPLIB_saving", false]) exitWith { ["Saving already in progress, skipping save!", "SAVE"] call KPLIB_fnc_log; false }; -kp_liberation_saving = true; +KPLIB_saving = true; private _saveData = [] call KPLIB_fnc_getSaveData; // Write data in the server profileNamespace -profileNamespace setVariable [GRLIB_save_key, str _saveData]; +profileNamespace setVariable [KPLIB_save_key, str _saveData]; saveProfileNamespace; -kp_liberation_saving = false; +KPLIB_saving = false; true diff --git a/Missionframework/functions/fn_forceBluforCrew.sqf b/Missionframework/functions/fn_forceBluforCrew.sqf index 4fe1c3807..bebf29b38 100644 --- a/Missionframework/functions/fn_forceBluforCrew.sqf +++ b/Missionframework/functions/fn_forceBluforCrew.sqf @@ -2,7 +2,7 @@ File: fn_forceBluforCrew.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2019-12-04 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -26,12 +26,12 @@ if (isNull _veh) exitWith {["Null object given"] call BIS_fnc_error; false}; private _grp = createVehicleCrew _veh; // If the config crew isn't the correct side, replace it with the crew classnames from the preset -if ((side _grp) != GRLIB_side_friendly) then { +if ((side _grp) != KPLIB_side_player) then { {deleteVehicle _x} forEach (units _grp); - _grp = createGroup [GRLIB_side_friendly, true]; + _grp = createGroup [KPLIB_side_player, true]; while {count units _grp < 3} do { - [crewman_classname, getPos _veh, _grp] call KPLIB_fnc_createManagedUnit; + [KPLIB_b_crewUnit, getPos _veh, _grp] call KPLIB_fnc_createManagedUnit; }; ((units _grp) select 0) moveInDriver _veh; ((units _grp) select 1) moveInGunner _veh; diff --git a/Missionframework/functions/fn_getAdaptiveVehicle.sqf b/Missionframework/functions/fn_getAdaptiveVehicle.sqf index 2b752bcf3..4f72b24b8 100644 --- a/Missionframework/functions/fn_getAdaptiveVehicle.sqf +++ b/Missionframework/functions/fn_getAdaptiveVehicle.sqf @@ -2,7 +2,7 @@ File: fn_getAdaptiveVehicle.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2019-11-26 + Last Update: 2020-05-23 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -15,4 +15,4 @@ Vehicle classname [STRING] */ -selectRandom ([opfor_vehicles, opfor_vehicles_low_intensity] select (combat_readiness < 40)) +selectRandom ([KPLIB_o_armyVehicles, KPLIB_o_armyVehiclesLight] select (KPLIB_enemyReadiness < 40)) diff --git a/Missionframework/functions/fn_getBluforRatio.sqf b/Missionframework/functions/fn_getBluforRatio.sqf index be9723b35..4ecc34a32 100644 --- a/Missionframework/functions/fn_getBluforRatio.sqf +++ b/Missionframework/functions/fn_getBluforRatio.sqf @@ -2,7 +2,7 @@ File: fn_getBluforRatio.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2019-12-05 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -21,12 +21,12 @@ params [ if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; -1}; -private _range = [GRLIB_capture_size, GRLIB_capture_size * 1.4] select (_sector in sectors_bigtown); -private _red = [(markerPos _sector), _range, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount; -private _blue = [(markerPos _sector), _range, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +private _range = [KPLIB_range_sectorCapture, KPLIB_range_sectorCapture * 1.4] select (_sector in KPLIB_sectors_capital); +private _red = [(markerPos _sector), _range, KPLIB_side_enemy] call KPLIB_fnc_getUnitsCount; +private _blue = [(markerPos _sector), _range, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; if (_blue > 0 || _red > 0) then { _blue / (_blue + _red) } else { - [0, 1] select (_sector in blufor_sectors) + [0, 1] select (_sector in KPLIB_sectors_player) }; diff --git a/Missionframework/functions/fn_getCrateHeight.sqf b/Missionframework/functions/fn_getCrateHeight.sqf index 019acc164..2900c629d 100644 --- a/Missionframework/functions/fn_getCrateHeight.sqf +++ b/Missionframework/functions/fn_getCrateHeight.sqf @@ -2,7 +2,7 @@ File: fn_getCrateHeight.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-03-26 - Last Update: 2020-03-26 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -24,9 +24,9 @@ if (_crateClass isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_erro private _height = 0; switch (_crateClass) do { - case KP_liberation_supply_crate: {_height = 0.4;}; - case KP_liberation_ammo_crate: {_height = 0.6;}; - case KP_liberation_fuel_crate: {_height = 0.3;}; + case KPLIB_b_crateSupply: {_height = 0.4;}; + case KPLIB_b_crateAmmo: {_height = 0.6;}; + case KPLIB_b_crateFuel: {_height = 0.3;}; default {_height = 0.6;}; }; diff --git a/Missionframework/functions/fn_getFobName.sqf b/Missionframework/functions/fn_getFobName.sqf index 449f55040..5a1a971ec 100644 --- a/Missionframework/functions/fn_getFobName.sqf +++ b/Missionframework/functions/fn_getFobName.sqf @@ -2,7 +2,7 @@ File: fn_getFobName.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2020-04-05 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -19,4 +19,4 @@ params [ ["_fob", [0, 0, 0], [[]], [2, 3]] ]; -military_alphabet param [GRLIB_all_fobs findIf {(_x distance2d _fob) < 100}, ""] +KPLIB_militaryAlphabet param [KPLIB_sectors_fob findIf {(_x distance2d _fob) < 100}, ""] diff --git a/Missionframework/functions/fn_getFobResources.sqf b/Missionframework/functions/fn_getFobResources.sqf index 5ec32902c..9620be716 100644 --- a/Missionframework/functions/fn_getFobResources.sqf +++ b/Missionframework/functions/fn_getFobResources.sqf @@ -2,7 +2,7 @@ File: fn_getFobResources.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-05-08 - Last Update: 2020-05-09 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -21,4 +21,4 @@ params [ ["_fob", [0, 0, 0], [[]], [2, 3]] ]; -KP_liberation_fob_resources param [KP_liberation_fob_resources findIf {(_x select 0) isEqualTo _fob}, NO_RESULT] // return +KPLIB_fob_resources param [KPLIB_fob_resources findIf {(_x select 0) isEqualTo _fob}, NO_RESULT] // return diff --git a/Missionframework/functions/fn_getLocalCap.sqf b/Missionframework/functions/fn_getLocalCap.sqf index 924b485c5..c95d00c7b 100644 --- a/Missionframework/functions/fn_getLocalCap.sqf +++ b/Missionframework/functions/fn_getLocalCap.sqf @@ -2,7 +2,7 @@ File: fn_getLocalCap.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2019-12-05 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -15,4 +15,4 @@ Blufor unit cap [NUMBER] */ -(round (infantry_cap / 2)) min GRLIB_blufor_cap +(round (infantry_cap / 2)) min KPLIB_cap_playerSide diff --git a/Missionframework/functions/fn_getMilitaryId.sqf b/Missionframework/functions/fn_getMilitaryId.sqf index dc32f5001..e7a3fb5d0 100644 --- a/Missionframework/functions/fn_getMilitaryId.sqf +++ b/Missionframework/functions/fn_getMilitaryId.sqf @@ -2,7 +2,7 @@ File: fn_getMilitaryId.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-09-14 - Last Update: 2019-12-06 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -23,7 +23,7 @@ if (_number isEqualTo -1) exitWith {["No valid number given"] call BIS_fnc_error _number = _number + 1; private _return = []; -private _alphabetCount = count military_alphabet; +private _alphabetCount = count KPLIB_militaryAlphabet; private _remain = 0; while {_number > 0} do { @@ -34,4 +34,4 @@ while {_number > 0} do { reverse _return; -(_return apply {military_alphabet select _x}) joinString " " +(_return apply {KPLIB_militaryAlphabet select _x}) joinString " " diff --git a/Missionframework/functions/fn_getMobileRespawns.sqf b/Missionframework/functions/fn_getMobileRespawns.sqf index 918e092e3..177431008 100644 --- a/Missionframework/functions/fn_getMobileRespawns.sqf +++ b/Missionframework/functions/fn_getMobileRespawns.sqf @@ -2,7 +2,7 @@ File: fn_getMobileRespawns.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2019-12-05 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -16,7 +16,7 @@ */ private _respawn_trucks = vehicles select { - (typeOf _x) in [Respawn_truck_typename, huron_typename] && + (typeOf _x) in [KPLIB_b_mobileRespawn, KPLIB_b_potato01] && {alive _x} && {_x distance2d startbase > 500} && {abs (speed _x) < 5} && diff --git a/Missionframework/functions/fn_getNearestBluforObjective.sqf b/Missionframework/functions/fn_getNearestBluforObjective.sqf index f148d1632..839e5851d 100644 --- a/Missionframework/functions/fn_getNearestBluforObjective.sqf +++ b/Missionframework/functions/fn_getNearestBluforObjective.sqf @@ -2,7 +2,7 @@ File: fn_getNearestBluforObjective.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2019-12-11 + Last Update: 2020-05-17 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -19,9 +19,9 @@ params [ ["_pos", [0, 0, 0], [[]], [2, 3]] ]; -if (GRLIB_all_fobs isEqualTo [] && blufor_sectors isEqualTo []) exitWith {[]}; +if (KPLIB_sectors_fob isEqualTo [] && KPLIB_sectors_player isEqualTo []) exitWith {[]}; -private _objectives = GRLIB_all_fobs + (blufor_sectors apply {markerPos _x}); +private _objectives = KPLIB_sectors_fob + (KPLIB_sectors_player apply {markerPos _x}); _objectives = _objectives apply {[_x distance2d _pos, _x]}; _objectives sort true; diff --git a/Missionframework/functions/fn_getNearestFob.sqf b/Missionframework/functions/fn_getNearestFob.sqf index 6280db5a4..e421f323f 100644 --- a/Missionframework/functions/fn_getNearestFob.sqf +++ b/Missionframework/functions/fn_getNearestFob.sqf @@ -2,7 +2,7 @@ File: fn_getNearestFob.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2019-12-05 + Last Update: 2020-05-17 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -19,8 +19,8 @@ params [ ["_pos", getPos player, [[]], [2, 3]] ]; -if !(GRLIB_all_fobs isEqualTo []) then { - private _fobs = GRLIB_all_fobs apply {[_pos distance2d _x, _x]}; +if !(KPLIB_sectors_fob isEqualTo []) then { + private _fobs = KPLIB_sectors_fob apply {[_pos distance2d _x, _x]}; _fobs sort true; (_fobs select 0) select 1 } else { diff --git a/Missionframework/functions/fn_getNearestSector.sqf b/Missionframework/functions/fn_getNearestSector.sqf index 78308dcfb..8d30f0561 100644 --- a/Missionframework/functions/fn_getNearestSector.sqf +++ b/Missionframework/functions/fn_getNearestSector.sqf @@ -2,7 +2,7 @@ File: fn_getNearestSector.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2019-12-11 + Last Update: 2020-05-17 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -21,7 +21,7 @@ params [ ["_pos", getPos player, [[]], [2, 3]] ]; -private _sectors = sectors_allSectors select {((markerPos _x) distance2d _pos) < _radius}; +private _sectors = KPLIB_sectors_all select {((markerPos _x) distance2d _pos) < _radius}; if (_sectors isEqualTo []) exitWith {""}; diff --git a/Missionframework/functions/fn_getNearestTower.sqf b/Missionframework/functions/fn_getNearestTower.sqf index ceab50787..c52413ed7 100644 --- a/Missionframework/functions/fn_getNearestTower.sqf +++ b/Missionframework/functions/fn_getNearestTower.sqf @@ -2,7 +2,7 @@ File: fn_getNearestTower.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2019-12-06 + Last Update: 2020-05-17 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -10,7 +10,7 @@ Parameter(s): _pos - Position from which to look for the nearest radio tower [POSITION, defaults to [0, 0, 0]] - _side - Side of owner for nearest radio tower [SIDE, defaults to GRLIB_side_enemy] + _side - Side of owner for nearest radio tower [SIDE, defaults to KPLIB_side_enemy] _radius - Radius in which to look for the nearest radio tower [NUMBER, defaults to 1000] Returns: @@ -19,11 +19,11 @@ params [ ["_pos", [0, 0, 0], [[]], [2, 3]], - ["_side", GRLIB_side_enemy, [sideEmpty]], + ["_side", KPLIB_side_enemy, [sideEmpty]], ["_radius", 1000, [0]] ]; -private _towers = [sectors_tower select {_x in blufor_sectors}, sectors_tower - blufor_sectors] select (_side == GRLIB_side_enemy); +private _towers = [KPLIB_sectors_tower select {_x in KPLIB_sectors_player}, KPLIB_sectors_tower - KPLIB_sectors_player] select (_side == KPLIB_side_enemy); _towers = (_towers apply {[(markerPos _x) distance2d _pos, _x]}) select {(_x select 0) <= _radius}; _towers sort true; diff --git a/Missionframework/functions/fn_getOpforCap.sqf b/Missionframework/functions/fn_getOpforCap.sqf index 0e8aef58e..d9fd6cff1 100644 --- a/Missionframework/functions/fn_getOpforCap.sqf +++ b/Missionframework/functions/fn_getOpforCap.sqf @@ -2,7 +2,7 @@ File: fn_getOpforCap.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2019-12-06 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -15,4 +15,4 @@ Total opfor units [NUMBER] */ -GRLIB_side_enemy countSide allUnits +KPLIB_side_enemy countSide allUnits diff --git a/Missionframework/functions/fn_getOpforFactor.sqf b/Missionframework/functions/fn_getOpforFactor.sqf index f67d90936..b5efc89ce 100644 --- a/Missionframework/functions/fn_getOpforFactor.sqf +++ b/Missionframework/functions/fn_getOpforFactor.sqf @@ -2,7 +2,7 @@ File: fn_getOpforFactor.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2019-11-25 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -15,8 +15,8 @@ Opfor factor [NUMBER] */ -if !(GRLIB_adaptive_opfor) exitWith {1}; +if !(KPLIB_param_adaptive) exitWith {1}; -private _bluforcount = (0.2 * (GRLIB_side_friendly countSide allUnits)) + ([] call KPLIB_fnc_getPlayerCount); +private _bluforcount = (0.2 * (KPLIB_side_player countSide allUnits)) + ([] call KPLIB_fnc_getPlayerCount); (0.5 + (_bluforcount / 25.0)) min 1 diff --git a/Missionframework/functions/fn_getOpforSpawnPoint.sqf b/Missionframework/functions/fn_getOpforSpawnPoint.sqf index 6b90b118a..cf138ed5b 100644 --- a/Missionframework/functions/fn_getOpforSpawnPoint.sqf +++ b/Missionframework/functions/fn_getOpforSpawnPoint.sqf @@ -2,7 +2,7 @@ File: fn_getOpforSpawnPoint.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2020-04-17 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -34,9 +34,9 @@ params [ private _possibleSpawns = []; // Only check for opfor spawn points which aren't used already in the current session -private _spawnsToCheck = sectors_opfor; +private _spawnsToCheck = KPLIB_sectors_spawn; if (!isNil "used_positions") then { - _spawnsToCheck = sectors_opfor - used_positions; + _spawnsToCheck = KPLIB_sectors_spawn - used_positions; }; private ["_valid", "_current", "_distances"]; @@ -53,10 +53,10 @@ private ["_valid", "_current", "_distances"]; if (_valid) then { // Fetch distances to FOBs - _distances = (GRLIB_all_fobs apply {(markerPos _current) distance2d _x}) select {_x < _max}; + _distances = (KPLIB_sectors_fob apply {(markerPos _current) distance2d _x}) select {_x < _max}; // Fetch distances to blufor sectors - _distances append ((blufor_sectors apply {(markerPos _current) distance2d (markerPos _x)}) select {_x < _max}); + _distances append ((KPLIB_sectors_player apply {(markerPos _current) distance2d (markerPos _x)}) select {_x < _max}); // Invalid, if all sectors and FOBs are further away than given max distance if (_distances isEqualTo []) then { @@ -72,14 +72,14 @@ private ["_valid", "_current", "_distances"]; // Make sure that there is an opfor sector in sensible range to spawn if (_valid) then { - if ((sectors_allSectors - blufor_sectors) findIf {((markerPos _current) distance2D (markerPos _x)) < 2000} < 0) then { + if ((KPLIB_sectors_all - KPLIB_sectors_player) findIf {((markerPos _current) distance2D (markerPos _x)) < 2000} < 0) then { _valid = false; }; }; // Make sure that there is no blufor unit inside min dist to spawn if (_valid) then { - if (([markerpos _current, _min, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) > 0) then { + if (([markerpos _current, _min, KPLIB_side_player] call KPLIB_fnc_getUnitsCount) > 0) then { _valid = false; }; }; diff --git a/Missionframework/functions/fn_getResistanceTier.sqf b/Missionframework/functions/fn_getResistanceTier.sqf index b078d8e71..c82d3074c 100644 --- a/Missionframework/functions/fn_getResistanceTier.sqf +++ b/Missionframework/functions/fn_getResistanceTier.sqf @@ -2,7 +2,7 @@ File: fn_getResistanceTier.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-10-08 - Last Update: 2019-12-06 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -16,7 +16,7 @@ */ switch (true) do { - case (KP_liberation_guerilla_strength >= KP_liberation_resistance_tier3): {3}; - case (KP_liberation_guerilla_strength >= KP_liberation_resistance_tier2): {2}; + case (KPLIB_guerilla_strength >= KPLIB_resistance_tier3): {3}; + case (KPLIB_guerilla_strength >= KPLIB_resistance_tier2): {2}; default {1}; }; diff --git a/Missionframework/functions/fn_getSaveData.sqf b/Missionframework/functions/fn_getSaveData.sqf index 37e7cb930..3147f25f1 100644 --- a/Missionframework/functions/fn_getSaveData.sqf +++ b/Missionframework/functions/fn_getSaveData.sqf @@ -26,7 +26,7 @@ private _allCrates = []; // Get all blufor groups private _allBlueGroups = allGroups select { - (side _x == GRLIB_side_friendly) && // Only blufor groups + (side _x == KPLIB_side_player) && // Only blufor groups {isNull objectParent (leader _x)} && // Make sure it's an infantry group {!(((units _x) select {alive _x}) isEqualTo [])} // At least one unit has to be alive }; @@ -35,38 +35,38 @@ private _allBlueGroups = allGroups select { private ["_fobPos", "_fobObjects", "_grpUnits", "_fobMines"]; { _fobPos = _x; - _fobObjects = (_fobPos nearObjects (GRLIB_fob_range * 1.2)) select { + _fobObjects = (_fobPos nearObjects (KPLIB_range_fob * 1.2)) select { ((toLower (typeof _x)) in KPLIB_classnamesToSave) && // Exclude classnames which are not in the presets {alive _x} && // Exclude dead or broken objects {getObjectType _x >= 8} && // Exclude preplaced terrain objects {speed _x < 5} && // Exclude moving objects (like civilians driving through) {isNull attachedTo _x} && // Exclude attachTo'd objects {((getpos _x) select 2) < 10} && // Exclude hovering helicopters and the like - {!(_x getVariable ["KP_liberation_edenObject", false])} && // Exclude all objects placed via editor in mission.sqm - {!(_x getVariable ["KP_liberation_preplaced", false])} && // Exclude preplaced (e.g. little birds from carrier) + {!(_x getVariable ["KPLIB_edenObject", false])} && // Exclude all objects placed via editor in mission.sqm + {!(_x getVariable ["KPLIB_preplaced", false])} && // Exclude preplaced (e.g. little birds from carrier) {!((toLower (typeOf _x)) in KPLIB_crates)} // Exclude storage crates (those are handled separately) }; _allObjects = _allObjects + (_fobObjects select {!((toLower (typeOf _x)) in KPLIB_storageBuildings)}); - _allStorages = _allStorages + (_fobObjects select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}); + _allStorages = _allStorages + (_fobObjects select {(_x getVariable ["KPLIB_storage_type",-1]) == 0}); // Process all groups near this FOB { // Get only living AI units of the group by excluding possible POWs currently in the player group - _grpUnits = (units _x) select {!(isPlayer _x) && (alive _x) && !((typeOf _x) in KPLIB_o_inf_classes) && !((typeOf _x) in militia_squad)}; + _grpUnits = (units _x) select {!(isPlayer _x) && (alive _x) && !((typeOf _x) in KPLIB_o_inf_classes) && !((typeOf _x) in KPLIB_o_militiaInfantry)}; // Add to save array _aiGroups pushBack [getPosATL (leader _x), (_grpUnits apply {typeOf _x})]; - } forEach (_allBlueGroups select {(_fobPos distance2D (leader _x)) < (GRLIB_fob_range * 1.2)}); + } forEach (_allBlueGroups select {(_fobPos distance2D (leader _x)) < (KPLIB_range_fob * 1.2)}); // Save all mines around FOB - _fobMines = allMines inAreaArray [_fobPos, GRLIB_fob_range * 1.2, GRLIB_fob_range * 1.2]; + _fobMines = allMines inAreaArray [_fobPos, KPLIB_range_fob * 1.2, KPLIB_range_fob * 1.2]; _allMines append (_fobMines apply {[ getPosWorld _x, [vectorDirVisual _x, vectorUpVisual _x], typeOf _x, - _x mineDetectedBy GRLIB_side_friendly + _x mineDetectedBy KPLIB_side_player ]}); -} forEach GRLIB_all_fobs; +} forEach KPLIB_sectors_fob; // Save all fetched objects private ["_savedPos", "_savedVecDir", "_savedVecUp", "_class", "_hasCrew"]; @@ -87,7 +87,7 @@ private ["_savedPos", "_savedVecDir", "_savedVecUp", "_class", "_hasCrew"]; // Only save player side, seized or captured objects if ( - (!(_class in civilian_vehicles) || {_x getVariable ["KPLIB_seized", false]}) && + (!(_class in KPLIB_c_vehicles) || {_x getVariable ["KPLIB_seized", false]}) && (!((toLower _class) in KPLIB_o_allVeh_classes) || {_x getVariable ["KPLIB_captured", false]}) ) then { _objectsToSave pushBack [_class, _savedPos, _savedVecDir, _savedVecUp, _hasCrew]; @@ -111,9 +111,9 @@ private ["_supplyValue", "_ammoValue", "_fuelValue"]; // Sum all stored resources of current storage { switch ((typeOf _x)) do { - case KP_liberation_supply_crate: {_supplyValue = _supplyValue + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_ammo_crate: {_ammoValue = _ammoValue + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_fuel_crate: {_fuelValue = _fuelValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KPLIB_b_crateSupply: {_supplyValue = _supplyValue + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateAmmo: {_ammoValue = _ammoValue + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateFuel: {_fuelValue = _fuelValue + (_x getVariable ["KPLIB_crate_value",0]);}; default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; }; } forEach (attachedObjects _x); @@ -125,11 +125,11 @@ private ["_supplyValue", "_ammoValue", "_fuelValue"]; // Save crates at blufor sectors which spawn crates on activation { _allCrates append ( - ((nearestObjects [markerPos _x, KPLIB_crates, GRLIB_capture_size]) select {isNull attachedTo _x}) apply { - [typeOf _x, _x getVariable ["KP_liberation_crate_value", 0], getPosATL _x] + ((nearestObjects [markerPos _x, KPLIB_crates, KPLIB_range_sectorCapture]) select {isNull attachedTo _x}) apply { + [typeOf _x, _x getVariable ["KPLIB_crate_value", 0], getPosATL _x] } ); -} forEach (blufor_sectors select {_x in sectors_factory || _x in sectors_capture}); +} forEach (KPLIB_sectors_player select {_x in KPLIB_sectors_factory || _x in KPLIB_sectors_city}); // Pack all stats in one array private _stats = [ @@ -168,7 +168,7 @@ private _stats = [ stats_secondary_objectives, stats_sectors_liberated, stats_sectors_lost, - stats_spartan_respawns, + stats_potato_respawns, stats_supplies_produced, stats_supplies_spent, stats_vehicles_recycled @@ -183,24 +183,24 @@ private _weights = [ // Pack the save data in the save array [ - kp_liberation_version, + KPLIB_version, date, _objectsToSave, _resourceStorages, _stats, _weights, _aiGroups, - blufor_sectors, - combat_readiness, - GRLIB_all_fobs, - GRLIB_permissions, - GRLIB_vehicle_to_military_base_links, - KP_liberation_civ_rep, - KP_liberation_clearances, - KP_liberation_guerilla_strength, - KP_liberation_logistics, - KP_liberation_production, - KP_liberation_production_markers, + KPLIB_sectors_player, + KPLIB_enemyReadiness, + KPLIB_sectors_fob, + KPLIB_permissions, + KPLIB_vehicle_to_military_base_links, + KPLIB_civ_rep, + KPLIB_clearances, + KPLIB_guerilla_strength, + KPLIB_logistics, + KPLIB_production, + KPLIB_production_markers, resources_intel, _allMines, _allCrates, diff --git a/Missionframework/functions/fn_getSaveableParam.sqf b/Missionframework/functions/fn_getSaveableParam.sqf index 3ab50ab4c..3f29998a8 100644 --- a/Missionframework/functions/fn_getSaveableParam.sqf +++ b/Missionframework/functions/fn_getSaveableParam.sqf @@ -2,7 +2,7 @@ File: fn_getSaveableParam.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2018-01-27 - Last Update: 2020-04-17 + Last Update: 2020-08-06 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -25,7 +25,6 @@ params [ ["_action", nil, [0]] ]; -private _saveKey = "KP_LIBERATION_" + (toUpper worldName) + "_SAVE_PARAMS"; private _value = nil; // Use lobby value if no action specified @@ -38,53 +37,53 @@ switch (_action) do { // Save to profileNamespace case 0: { _value = [_paramName, _defaultValue] call bis_fnc_getParamValue; - private _savedParams = profileNamespace getVariable _saveKey; + private _savedParams = profileNamespace getVariable KPLIB_save_paramKey; if(isNil "_savedParams") then { - if (KP_liberation_savegame_debug > 0) then {["Param save data is corrupted, creating new.", "PARAM"] call KPLIB_fnc_log;}; + if (KPLIB_savegame_debug > 0) then {["Param save data is corrupted, creating new.", "PARAM"] call KPLIB_fnc_log;}; // Create new "associative" array _savedParams = [[_paramName, _value]]; } else { private _singleParam = (_savedParams select {(_x select 0) == _paramName}) select 0; if(isNil "_singleParam") then { - if (KP_liberation_savegame_debug > 0) then {[format ["Saving value: %1 for param: %2", _value, _paramName], "PARAM"] call KPLIB_fnc_log;}; + if (KPLIB_savegame_debug > 0) then {[format ["Saving value: %1 for param: %2", _value, _paramName], "PARAM"] call KPLIB_fnc_log;}; _savedParams pushBack [_paramName, _value]; } else { - if (KP_liberation_savegame_debug > 0) then {[format ["Overwriting value: %1 with: %2 for param: %3", (_singleParam select 1), _value, _paramName], "PARAM"] call KPLIB_fnc_log;}; + if (KPLIB_savegame_debug > 0) then {[format ["Overwriting value: %1 with: %2 for param: %3", (_singleParam select 1), _value, _paramName], "PARAM"] call KPLIB_fnc_log;}; // _singleparam is an reference to array in _savedParams, we can use "set" _singleParam set [1, _value]; }; }; // Save params to profile namespace - profileNamespace setVariable [_saveKey, _savedParams]; + profileNamespace setVariable [KPLIB_save_paramKey, _savedParams]; saveProfileNamespace; }; // Load from profileNamespace case 1: { - private _savedParams = profileNamespace getVariable _saveKey; + private _savedParams = profileNamespace getVariable KPLIB_save_paramKey; if(isNil "_savedParams") then { - if (KP_liberation_savegame_debug > 0) then {["Param save data is corrupted, can't load!", "PARAM"] call KPLIB_fnc_log;}; + if (KPLIB_savegame_debug > 0) then {["Param save data is corrupted, can't load!", "PARAM"] call KPLIB_fnc_log;}; // Fix param save data - profileNamespace setVariable [_saveKey, []]; - if (KP_liberation_savegame_debug > 0) then {[format ["No saved value for param: %1, fetching value.", _paramName], "PARAM"] call KPLIB_fnc_log;}; + profileNamespace setVariable [KPLIB_save_paramKey, []]; + if (KPLIB_savegame_debug > 0) then {[format ["No saved value for param: %1, fetching value.", _paramName], "PARAM"] call KPLIB_fnc_log;}; _value = [_paramName, _defaultValue] call bis_fnc_getParamValue; } else { private _singleParam = (_savedParams select {(_x select 0) == _paramName}) select 0; if(isNil "_singleParam") then { - if (KP_liberation_savegame_debug > 0) then {[format ["No saved value for param: %1, fetching value.", _paramName], "PARAM"] call KPLIB_fnc_log;}; + if (KPLIB_savegame_debug > 0) then {[format ["No saved value for param: %1, fetching value.", _paramName], "PARAM"] call KPLIB_fnc_log;}; _value = [_paramName, _defaultValue] call bis_fnc_getParamValue; } else { - if (KP_liberation_savegame_debug > 0) then {[format ["Found value: %1 for param: %2,", (_singleParam select 1), _paramName], "PARAM"] call KPLIB_fnc_log;}; + if (KPLIB_savegame_debug > 0) then {[format ["Found value: %1 for param: %2,", (_singleParam select 1), _paramName], "PARAM"] call KPLIB_fnc_log;}; _value = _singleParam select 1; }; }; }; // Get param default { - if (KP_liberation_savegame_debug > 0) then {[format ["Fetching selected value for param: %1", _paramName], "PARAM"] call KPLIB_fnc_log;}; + if (KPLIB_savegame_debug > 0) then {[format ["Fetching selected value for param: %1", _paramName], "PARAM"] call KPLIB_fnc_log;}; _value = [_paramName, _defaultValue] call bis_fnc_getParamValue; }; }; diff --git a/Missionframework/functions/fn_getSectorOwnership.sqf b/Missionframework/functions/fn_getSectorOwnership.sqf index ff7e33eee..7201e1eb0 100644 --- a/Missionframework/functions/fn_getSectorOwnership.sqf +++ b/Missionframework/functions/fn_getSectorOwnership.sqf @@ -2,7 +2,7 @@ File: fn_getSectorOwnership.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-05-02 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -10,7 +10,7 @@ Parameter(s): _pos - Position to get owner [POSITION, defaults to [0, 0, 0]] - _radius - Radius to count units [NUMBER, defaults to GRLIB_capture_size] + _radius - Radius to count units [NUMBER, defaults to KPLIB_range_sectorCapture] Returns: Owner of the position [SIDE] @@ -18,22 +18,22 @@ params [ ["_pos", [0, 0, 0], [[]], [2, 3]], - ["_radius", GRLIB_capture_size, [0]] + ["_radius", KPLIB_range_sectorCapture, [0]] ]; private _capCount = 3; private _capRatio = 0.85; private _capRatioMin = 0.51; -private _blufor = [_pos, _radius, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; -private _opfor = [_pos, _radius, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount; +private _blufor = [_pos, _radius, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; +private _opfor = [_pos, _radius, KPLIB_side_enemy] call KPLIB_fnc_getUnitsCount; private _ratio = 0; if (_blufor + _opfor != 0) then { _ratio = _blufor / (_blufor + _opfor); }; -if (_blufor > 0 && {(_opfor <= _capCount && _ratio > _capRatioMin) || _ratio > _capRatio}) exitWith {GRLIB_side_friendly}; -if (_blufor == 0 && _opfor > _capCount) exitWith {GRLIB_side_enemy}; -if (_blufor == 0 && _opfor <= _capCount) exitWith {GRLIB_side_civilian}; +if (_blufor > 0 && {(_opfor <= _capCount && _ratio > _capRatioMin) || _ratio > _capRatio}) exitWith {KPLIB_side_player}; +if (_blufor == 0 && _opfor > _capCount) exitWith {KPLIB_side_enemy}; +if (_blufor == 0 && _opfor <= _capCount) exitWith {KPLIB_side_civilian}; -GRLIB_side_resistance +KPLIB_side_resistance diff --git a/Missionframework/functions/fn_getSectorRange.sqf b/Missionframework/functions/fn_getSectorRange.sqf index 657441716..905f40f53 100644 --- a/Missionframework/functions/fn_getSectorRange.sqf +++ b/Missionframework/functions/fn_getSectorRange.sqf @@ -2,7 +2,7 @@ File: fn_getSectorRange.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2019-12-07 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -20,6 +20,6 @@ params [ ]; -if (_unitCount < (GRLIB_sector_cap / 2)) exitWith {GRLIB_sector_size}; -if (_unitCount <= GRLIB_sector_cap) exitWith {GRLIB_sector_size - (GRLIB_sector_size * 0.5 * ((_unitCount / GRLIB_sector_cap) - 0.5))}; -GRLIB_sector_size * 0.75 +if (_unitCount < (KPLIB_cap_enemySide / 2)) exitWith {KPLIB_range_sectorActivation}; +if (_unitCount <= KPLIB_cap_enemySide) exitWith {KPLIB_range_sectorActivation - (KPLIB_range_sectorActivation * 0.5 * ((_unitCount / KPLIB_cap_enemySide) - 0.5))}; +KPLIB_range_sectorActivation * 0.75 diff --git a/Missionframework/functions/fn_getSquadComp.sqf b/Missionframework/functions/fn_getSquadComp.sqf index 9ade330f7..692c00976 100644 --- a/Missionframework/functions/fn_getSquadComp.sqf +++ b/Missionframework/functions/fn_getSquadComp.sqf @@ -2,7 +2,7 @@ File: fn_getSquadComp.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2020-04-24 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -51,8 +51,8 @@ if (_type == "army") then { }; } else { private _multiplier = 1; - if (GRLIB_unitcap < 1) then {_multiplier = GRLIB_unitcap;}; - while {count _squadcomp < (10 * _multiplier)} do {_squadcomp pushback (selectRandom militia_squad)}; + if (KPLIB_param_unitcap < 1) then {_multiplier = KPLIB_param_unitcap;}; + while {count _squadcomp < (10 * _multiplier)} do {_squadcomp pushback (selectRandom KPLIB_o_militiaInfantry)}; }; _squadcomp diff --git a/Missionframework/functions/fn_getStoragePositions.sqf b/Missionframework/functions/fn_getStoragePositions.sqf index 967d8fb71..5db3811b5 100644 --- a/Missionframework/functions/fn_getStoragePositions.sqf +++ b/Missionframework/functions/fn_getStoragePositions.sqf @@ -2,7 +2,7 @@ File: fn_getStoragePositions.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-03-27 - Last Update: 2020-03-30 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -22,8 +22,8 @@ params [ if (isNull _storage) exitWith {["Null object given"] call BIS_fnc_error; [[], 0]}; private _data = [ - [KP_liberation_small_storage_building, [KP_liberation_small_storage_positions, 4]], - [KP_liberation_large_storage_building, [KP_liberation_large_storage_positions, 6.5]] + [KPLIB_b_smallStorage, [KPLIB_small_storage_positions, 4]], + [KPLIB_b_largeStorage, [KPLIB_large_storage_positions, 6.5]] ] select {(typeOf _storage) isEqualTo (_x select 0)}; if (_data isEqualTo []) exitWith {["No valid storage object given"] call BIS_fnc_error; [[], 0]}; diff --git a/Missionframework/functions/fn_getUnitsCount.sqf b/Missionframework/functions/fn_getUnitsCount.sqf index e33f9f27b..9a1324cf3 100644 --- a/Missionframework/functions/fn_getUnitsCount.sqf +++ b/Missionframework/functions/fn_getUnitsCount.sqf @@ -2,7 +2,7 @@ File: fn_getUnitsCount.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-05-08 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -11,7 +11,7 @@ Parameter(s): _pos - Description [POSITION, defaults to [0, 0, 0] _radius - Description [NUMBER, defaults to 100] - _side - Description [SIDE, defaults to GRLIB_side_friendly] + _side - Description [SIDE, defaults to KPLIB_side_player] Returns: Amount of units [NUMBER] @@ -20,7 +20,7 @@ params [ ["_pos", [0, 0, 0], [[]], [2, 3]], ["_radius", 100, [0]], - ["_side", GRLIB_side_friendly, [sideEmpty]] + ["_side", KPLIB_side_player, [sideEmpty]] ]; private _amount = _side countSide ((_pos nearEntities ["Man", _radius]) select {!(captive _x) && ((getpos _x) select 2 < 500)}); diff --git a/Missionframework/functions/fn_handlePlacedZeusObject.sqf b/Missionframework/functions/fn_handlePlacedZeusObject.sqf index e3d3ad860..2bda2e60a 100644 --- a/Missionframework/functions/fn_handlePlacedZeusObject.sqf +++ b/Missionframework/functions/fn_handlePlacedZeusObject.sqf @@ -2,7 +2,7 @@ File: fn_handlePlacedZeusObject.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-11 - Last Update: 2020-04-25 + Last Update: 2023-10-28 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -32,20 +32,26 @@ if (_vehicle) then { // Add kill manager and object init to possible crew units { - _x addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _x addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; [_x] call KPLIB_fnc_addObjectInit; } forEach (crew _obj); }; // Apply kill manager, if it's not a crate if !(_crate) then { - _obj addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _obj addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; } else { // Otherwise apply all needed values/functionalities _obj setMass 500; - _obj setVariable ["KP_liberation_crate_value", 100, true]; + _obj setVariable ["KPLIB_crate_value", 100, true]; [_obj, true] call KPLIB_fnc_clearCargo; - if (KP_liberation_ace) then {[_obj, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; + if (KPLIB_ace) then {[_obj, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; }; // Add object init codes diff --git a/Missionframework/functions/fn_hasPermission.sqf b/Missionframework/functions/fn_hasPermission.sqf index 6fcb9600c..4bba4bc85 100644 --- a/Missionframework/functions/fn_hasPermission.sqf +++ b/Missionframework/functions/fn_hasPermission.sqf @@ -2,7 +2,7 @@ File: fn_hasPermission.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-11-25 - Last Update: 2020-04-09 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -20,19 +20,19 @@ params [ ]; if (_permission isEqualTo -1) exitWith {["No permission number given"] call BIS_fnc_error; false}; -if (!GRLIB_permissions_param) exitWith {true}; +if (!KPLIB_param_permissions) exitWith {true}; -if (isNil "GRLIB_last_permission_check_time") then {GRLIB_last_permission_check_time = -1000;}; +if (isNil "KPLIB_last_permission_check_time") then {KPLIB_last_permission_check_time = -1000;}; -if (time > GRLIB_last_permission_check_time + 10) then { - GRLIB_last_permission_check_time = time; - GRLIB_permissions_cache = ((GRLIB_permissions select {(_x select 0) isEqualTo (getPlayerUID player)}) select 0) select 2; +if (time > KPLIB_last_permission_check_time + 10) then { + KPLIB_last_permission_check_time = time; + KPLIB_permissions_cache = ((KPLIB_permissions select {(_x select 0) isEqualTo (getPlayerUID player)}) select 0) select 2; }; -if (isNil "GRLIB_permissions_cache") exitWith {false}; +if (isNil "KPLIB_permissions_cache") exitWith {false}; -if (count GRLIB_permissions_cache > _permission) then { - GRLIB_permissions_cache select _permission +if (count KPLIB_permissions_cache > _permission) then { + KPLIB_permissions_cache select _permission } else { false }; diff --git a/Missionframework/functions/fn_initSectors.sqf b/Missionframework/functions/fn_initSectors.sqf index e197c1652..68ef89237 100644 --- a/Missionframework/functions/fn_initSectors.sqf +++ b/Missionframework/functions/fn_initSectors.sqf @@ -2,7 +2,7 @@ File: fn_initSectors.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-29 - Last Update: 2020-04-29 + Last Update: 2020-05-17 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -15,24 +15,24 @@ Function reached the end [BOOL] */ -sectors_airspawn = []; -sectors_allSectors = []; -sectors_bigtown = []; -sectors_capture = []; -sectors_factory = []; -sectors_military = []; -sectors_opfor = []; -sectors_tower = []; +KPLIB_sectors_airSpawn = []; +KPLIB_sectors_all = []; +KPLIB_sectors_capital = []; +KPLIB_sectors_city = []; +KPLIB_sectors_factory = []; +KPLIB_sectors_military = []; +KPLIB_sectors_spawn = []; +KPLIB_sectors_tower = []; { switch (true) do { - case (_x find "bigtown" == 0): {sectors_bigtown pushBack _x; sectors_allSectors pushBack _x;}; - case (_x find "capture" == 0): {sectors_capture pushBack _x; sectors_allSectors pushBack _x;}; - case (_x find "factory" == 0): {sectors_factory pushBack _x; sectors_allSectors pushBack _x;}; - case (_x find "military" == 0): {sectors_military pushBack _x; sectors_allSectors pushBack _x;}; - case (_x find "opfor_airspawn" == 0): {sectors_airspawn pushBack _x;}; - case (_x find "opfor_point" == 0): {sectors_opfor pushBack _x;}; - case (_x find "tower" == 0): {sectors_tower pushBack _x; if (isServer) then {_x setMarkerText format ["%1 %2",markerText _x, mapGridPosition (markerPos _x)];}; sectors_allSectors pushBack _x;}; + case (_x find "bigtown" == 0): {KPLIB_sectors_capital pushBack _x; KPLIB_sectors_all pushBack _x;}; + case (_x find "capture" == 0): {KPLIB_sectors_city pushBack _x; KPLIB_sectors_all pushBack _x;}; + case (_x find "factory" == 0): {KPLIB_sectors_factory pushBack _x; KPLIB_sectors_all pushBack _x;}; + case (_x find "military" == 0): {KPLIB_sectors_military pushBack _x; KPLIB_sectors_all pushBack _x;}; + case (_x find "opfor_airspawn" == 0): {KPLIB_sectors_airSpawn pushBack _x;}; + case (_x find "opfor_point" == 0): {KPLIB_sectors_spawn pushBack _x;}; + case (_x find "tower" == 0): {KPLIB_sectors_tower pushBack _x; if (isServer) then {_x setMarkerText format ["%1 %2",markerText _x, mapGridPosition (markerPos _x)];}; KPLIB_sectors_all pushBack _x;}; }; } forEach allMapMarkers; diff --git a/Missionframework/functions/fn_isBigtownActive.sqf b/Missionframework/functions/fn_isCapitalActive.sqf similarity index 50% rename from Missionframework/functions/fn_isBigtownActive.sqf rename to Missionframework/functions/fn_isCapitalActive.sqf index f6c601a56..ec1a124cc 100644 --- a/Missionframework/functions/fn_isBigtownActive.sqf +++ b/Missionframework/functions/fn_isCapitalActive.sqf @@ -1,18 +1,18 @@ /* - File: fn_isBigtownActive.sqf + File: fn_isCapitalActive.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2019-12-11 + Last Update: 2020-05-17 License: MIT License - http://www.opensource.org/licenses/MIT Description: - Checks if a bigtown (capital) is currently activated. + Checks if a capital is currently activated. Parameter(s): NONE Returns: - Bigtown currently activated [BOOL] + Capital currently activated [BOOL] */ -(active_sectors findIf {_x in sectors_bigtown}) != -1 +(KPLIB_sectors_active findIf {_x in KPLIB_sectors_capital}) != -1 diff --git a/Missionframework/functions/fn_potatoScan.sqf b/Missionframework/functions/fn_potatoScan.sqf index 911660e92..77f70bb68 100644 --- a/Missionframework/functions/fn_potatoScan.sqf +++ b/Missionframework/functions/fn_potatoScan.sqf @@ -2,7 +2,7 @@ File: fn_potatoScan.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2019-12-07 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -15,7 +15,7 @@ Potato 01 [OBJECT] */ -private _potatoes = vehicles select {typeof _x == huron_typename && alive _x}; +private _potatoes = vehicles select {typeof _x == KPLIB_b_potato01 && alive _x}; if !(_potatoes isEqualTo []) then { _potatoes select 0 } else { diff --git a/Missionframework/functions/fn_setFobMass.sqf b/Missionframework/functions/fn_setFobMass.sqf index 383f53c4b..f2c941067 100644 --- a/Missionframework/functions/fn_setFobMass.sqf +++ b/Missionframework/functions/fn_setFobMass.sqf @@ -2,11 +2,11 @@ File: fn_setFobMass.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-12-02 - Last Update: 2020-04-06 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: - Sets mass of FOB box to Max slingload weight of "huron_typename" lowered by 100. + Sets mass of FOB box to Max slingload weight of "KPLIB_b_potato01" lowered by 100. If max slingload mass is lower than 1000 its set to 1000. If it is higher than 3000 it's set to 3000. @@ -23,7 +23,7 @@ params [ if (isNull _box) exitWith {["Null object given"] call BIS_fnc_error; false}; -private _boxMass = getNumber(configFile >> "CfgVehicles" >> huron_typename >> "slingLoadMaxCargoMass") - 100; +private _boxMass = getNumber(configFile >> "CfgVehicles" >> KPLIB_b_potato01 >> "slingLoadMaxCargoMass") - 100; _boxMass = 1000 max (_boxMass min 3000); if (local _box) then { diff --git a/Missionframework/functions/fn_setVehicleSeized.sqf b/Missionframework/functions/fn_setVehicleSeized.sqf index ed2e553ca..4318ff6c8 100644 --- a/Missionframework/functions/fn_setVehicleSeized.sqf +++ b/Missionframework/functions/fn_setVehicleSeized.sqf @@ -2,7 +2,7 @@ File: fn_setVehicleSeized.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-20 - Last Update: 2020-04-26 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -24,12 +24,12 @@ if (isNull _veh) exitWith {["Null object given"] call BIS_fnc_error; false}; private _type = typeOf _veh; -if !(_type in civilian_vehicles) exitWith {false}; +if !(_type in KPLIB_c_vehicles) exitWith {false}; if !(_veh getVariable ["KPLIB_seized", false]) then { _veh setVariable ["KPLIB_seized", true, true]; [0] remoteExec ["KPLIB_fnc_crGlobalMsg"]; - [KP_liberation_cr_vehicle_penalty, true] remoteExec ["F_cr_changeCR", 2]; + [KPLIB_cr_vehicle_penalty, true] remoteExec ["F_cr_changeCR", 2]; stats_civilian_vehicles_seized = stats_civilian_vehicles_seized + 1; publicVariable "stats_civilian_vehicles_seized"; diff --git a/Missionframework/functions/fn_sortStorage.sqf b/Missionframework/functions/fn_sortStorage.sqf index 0e786fbdf..627122b2f 100644 --- a/Missionframework/functions/fn_sortStorage.sqf +++ b/Missionframework/functions/fn_sortStorage.sqf @@ -2,7 +2,7 @@ File: fn_sortStorage.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-06-09 - Last Update: 2020-04-17 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -27,9 +27,9 @@ private _fuel = 0; { switch (typeOf _x) do { - case KP_liberation_supply_crate: {_supply = _supply + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_ammo_crate: {_ammo = _ammo + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_fuel_crate: {_fuel = _fuel + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KPLIB_b_crateSupply: {_supply = _supply + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateAmmo: {_ammo = _ammo + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateFuel: {_fuel = _fuel + (_x getVariable ["KPLIB_crate_value",0]);}; default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; }; detach _x; diff --git a/Missionframework/functions/fn_spawnBuildingSquad.sqf b/Missionframework/functions/fn_spawnBuildingSquad.sqf index 30ea8f193..967a2d7a1 100644 --- a/Missionframework/functions/fn_spawnBuildingSquad.sqf +++ b/Missionframework/functions/fn_spawnBuildingSquad.sqf @@ -2,7 +2,7 @@ File: fn_spawnBuildingSquad.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-04-05 + Last Update: 2020-05-15 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -28,22 +28,22 @@ params [ if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; []}; // Get classnames array -private _classnames = [[] call KPLIB_fnc_getSquadComp, militia_squad] select (_type == "militia"); +private _classnames = [[] call KPLIB_fnc_getSquadComp, KPLIB_o_militiaInfantry] select (_type == "militia"); // Adjust amount, if needed -if (_amount > floor ((count _positions) * GRLIB_defended_buildingpos_part)) then { - _amount = floor ((count _positions) * GRLIB_defended_buildingpos_part) +if (_amount > floor ((count _positions) * KPLIB_defended_buildingpos_part)) then { + _amount = floor ((count _positions) * KPLIB_defended_buildingpos_part) }; // Spawn units -private _grp = createGroup [GRLIB_side_enemy, true]; +private _grp = createGroup [KPLIB_side_enemy, true]; private _pos = markerPos _sector; private _unit = objNull; private _units = []; for "_i" from 1 to _amount do { // Create new group, if current group has 10 units if (count (units _grp) >= 10) then { - _grp = createGroup [GRLIB_side_enemy, true]; + _grp = createGroup [KPLIB_side_enemy, true]; }; _unit = [selectRandom _classnames, _pos, _grp] call KPLIB_fnc_createManagedUnit; diff --git a/Missionframework/functions/fn_spawnCivilians.sqf b/Missionframework/functions/fn_spawnCivilians.sqf index 67f2c2acd..34c355596 100644 --- a/Missionframework/functions/fn_spawnCivilians.sqf +++ b/Missionframework/functions/fn_spawnCivilians.sqf @@ -2,7 +2,7 @@ File: fn_spawnCivilians.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-04-05 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -25,22 +25,22 @@ private _civs = []; private _sPos = markerPos _sector; // Amount and spread depending if capital or city/factory -private _amount = round ((3 + (floor (random 7))) * GRLIB_civilian_activity); +private _amount = round ((3 + (floor (random 7))) * KPLIB_param_civActivity); private _spread = 1; -if (_sector in sectors_bigtown) then { +if (_sector in KPLIB_sectors_capital) then { _amount = _amount + 10; _spread = 2.5; }; -_amount = _amount * (sqrt (GRLIB_unitcap)); +_amount = _amount * (sqrt (KPLIB_param_unitcap)); // Spawn civilians private _grp = grpNull; for "_i" from 1 to _amount do { - _grp = createGroup [GRLIB_side_civilian, true]; + _grp = createGroup [KPLIB_side_civilian, true]; _civs pushBack ( [ - selectRandom civilians, + selectRandom KPLIB_c_units, [(((_sPos select 0) + (75 * _spread)) - (random (150 * _spread))), (((_sPos select 1) + (75 * _spread)) - (random (150 * _spread))), 0], _grp ] call KPLIB_fnc_createManagedUnit diff --git a/Missionframework/functions/fn_spawnGuerillaGroup.sqf b/Missionframework/functions/fn_spawnGuerillaGroup.sqf index 6ebf552cc..aecfbcc8c 100644 --- a/Missionframework/functions/fn_spawnGuerillaGroup.sqf +++ b/Missionframework/functions/fn_spawnGuerillaGroup.sqf @@ -2,7 +2,7 @@ File: fn_spawnGuerillaGroup.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2017-10-08 - Last Update: 2020-04-05 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -25,18 +25,18 @@ params [ private _tier = [] call KPLIB_fnc_getResistanceTier; private _cr_multi = [] call KPLIB_fnc_crGetMulti; if (_amount == 0) then {_amount = (6 + (round (random _cr_multi)) + (round (random _tier)));}; -private _weapons = missionNamespace getVariable ("KP_liberation_guerilla_weapons_" + str _tier); -private _uniforms = missionNamespace getVariable ("KP_liberation_guerilla_uniforms_" + str _tier); -private _vests = missionNamespace getVariable ("KP_liberation_guerilla_vests_" + str _tier); -private _headgear = missionNamespace getVariable ("KP_liberation_guerilla_headgear_" + str _tier); +private _weapons = missionNamespace getVariable ("KPLIB_r_weapons_" + str _tier); +private _uniforms = missionNamespace getVariable ("KPLIB_r_uniforms_" + str _tier); +private _vests = missionNamespace getVariable ("KPLIB_r_vests_" + str _tier); +private _headgear = missionNamespace getVariable ("KPLIB_r_headgear_" + str _tier); // Spawn guerilla units -private _grp = createGroup [GRLIB_side_resistance, true]; +private _grp = createGroup [KPLIB_side_resistance, true]; private _unit = objNull; private _weapon = []; for "_i" from 1 to _amount do { // Create unit - _unit = [selectRandom KP_liberation_guerilla_units, _pos, _grp, "PRIVATE", 5] call KPLIB_fnc_createManagedUnit; + _unit = [selectRandom KPLIB_r_units, _pos, _grp, "PRIVATE", 5] call KPLIB_fnc_createManagedUnit; // Clear inventory removeAllWeapons _unit; @@ -54,7 +54,7 @@ for "_i" from 1 to _amount do { _unit addItemToUniform "MiniGrenade"; _unit addVest (selectRandom _vests); _unit addHeadgear (selectRandom _headgear); - if (_tier > 1) then {_unit addGoggles (selectRandom KP_liberation_guerilla_facegear);}; + if (_tier > 1) then {_unit addGoggles (selectRandom KPLIB_r_facegear);}; // Add standard items _unit linkItem "ItemMap"; @@ -70,7 +70,7 @@ for "_i" from 1 to _amount do { _unit addPrimaryWeaponItem (_weapon select 4); // Add possible RPG launcher - if ((_tier > 1) && ((random 100) <= KP_liberation_resistance_at_chance)) then { + if ((_tier > 1) && ((random 100) <= KPLIB_resistance_at_chance)) then { _unit addBackpack "B_FieldPack_cbr"; for "_i" from 1 to 3 do {_unit addItemToBackpack "RPG7_F";}; _unit addWeapon "launch_RPG7_F"; diff --git a/Missionframework/functions/fn_spawnMilitaryPostSquad.sqf b/Missionframework/functions/fn_spawnMilitaryPostSquad.sqf index 7e85ff91e..d556e9648 100644 --- a/Missionframework/functions/fn_spawnMilitaryPostSquad.sqf +++ b/Missionframework/functions/fn_spawnMilitaryPostSquad.sqf @@ -2,7 +2,7 @@ File: fn_spawnMilitaryPostSquad.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-04-05 + Last Update: 2020-05-22 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -23,18 +23,18 @@ if (_pos isEqualTo [0, 0, 0]) exitWith {["No or zero pos given"] call BIS_fnc_er // Get all military patrol towers near given position private _allPosts = ( - nearestObjects [_pos, ["Land_Cargo_Patrol_V1_F","Land_Cargo_Patrol_V2_F","Land_Cargo_Patrol_V3_F","Land_Cargo_Patrol_V4_F"], GRLIB_capture_size, true] + nearestObjects [_pos, ["Land_Cargo_Patrol_V1_F","Land_Cargo_Patrol_V2_F","Land_Cargo_Patrol_V3_F","Land_Cargo_Patrol_V4_F"], KPLIB_range_sectorCapture, true] ) select {alive _x}; // Exit if no patrol towers were found if (_allPosts isEqualTo []) exitWith {[]}; // Spawn units -private _grp = createGroup [GRLIB_side_enemy, true]; +private _grp = createGroup [KPLIB_side_enemy, true]; private _unit = objNull; private _units = []; { - _unit = [[opfor_marksman, opfor_machinegunner] select (random 100 > 50), _pos, _grp] call KPLIB_fnc_createManagedUnit; + _unit = [[KPLIB_o_marksman, KPLIB_o_machinegunner] select (random 100 > 50), _pos, _grp] call KPLIB_fnc_createManagedUnit; _unit setdir (180 + (getdir _x)); _unit setpos (([_x] call BIS_fnc_buildingPositions) select 1); [_unit] spawn building_defence_ai; diff --git a/Missionframework/functions/fn_spawnMilitiaCrew.sqf b/Missionframework/functions/fn_spawnMilitiaCrew.sqf index 62b7ee4ec..7a2efcd22 100644 --- a/Missionframework/functions/fn_spawnMilitiaCrew.sqf +++ b/Missionframework/functions/fn_spawnMilitiaCrew.sqf @@ -2,7 +2,7 @@ File: fn_spawnMilitiaCrew.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-04-05 + Last Update: 2020-05-15 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -22,10 +22,10 @@ params [ if (isNull _vehicle) exitWith {["Null object given"] call BIS_fnc_error; false}; // Spawn units -private _grp = createGroup [GRLIB_side_enemy, true]; +private _grp = createGroup [KPLIB_side_enemy, true]; private _units = []; for "_i" from 1 to 3 do { - _units pushBack ([selectRandom militia_squad, getPos _vehicle, _grp] call KPLIB_fnc_createManagedUnit); + _units pushBack ([selectRandom KPLIB_o_militiaInfantry, getPos _vehicle, _grp] call KPLIB_fnc_createManagedUnit); }; // Assign to vehicle diff --git a/Missionframework/functions/fn_spawnRegularSquad.sqf b/Missionframework/functions/fn_spawnRegularSquad.sqf index af514b6d7..432352715 100644 --- a/Missionframework/functions/fn_spawnRegularSquad.sqf +++ b/Missionframework/functions/fn_spawnRegularSquad.sqf @@ -2,7 +2,7 @@ File: fn_spawnRegularSquad.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-05-06 + Last Update: 2020-05-10 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -41,7 +41,7 @@ if (_spawnPos isEqualTo zeroPos) exitWith { // Spawn units of squad private _corrected_amount = round ((count _classnames) * ([] call KPLIB_fnc_getOpforFactor)); -private _grp = createGroup [GRLIB_side_enemy, true]; +private _grp = createGroup [KPLIB_side_enemy, true]; { if (_forEachIndex < _corrected_amount) then { [_x, _spawnPos, _grp] call KPLIB_fnc_createManagedUnit; diff --git a/Missionframework/functions/fn_spawnVehicle.sqf b/Missionframework/functions/fn_spawnVehicle.sqf index 40a184491..6c9454703 100644 --- a/Missionframework/functions/fn_spawnVehicle.sqf +++ b/Missionframework/functions/fn_spawnVehicle.sqf @@ -2,7 +2,7 @@ File: fn_spawnVehicle.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-05-06 + Last Update: 2023-10-28 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -27,7 +27,7 @@ params [ if (_pos isEqualTo [0, 0, 0]) exitWith {["No or zero pos given"] call BIS_fnc_error; objNull}; if (_classname isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; objNull}; -if (!canSuspend) exitWith {_this spawn KPLIB_fnc_spawnVehicle}; + private _newvehicle = objNull; private _spawnpos = []; @@ -41,7 +41,7 @@ if (_precise) then { while {_spawnPos isEqualTo []} do { _i = _i + 1; _spawnpos = (_pos getPos [random 150, random 360]) findEmptyPosition [10, 100, _classname]; - if (_i isEqualTo 10) exitWith {}; + if (_i isEqualTo 10) exitWith {_spawnPos = zeroPos}; }; }; @@ -52,7 +52,7 @@ if (_spawnPos isEqualTo zeroPos) exitWith { }; // If it's a chopper, spawn it flying -if (_classname in opfor_choppers) then { +if (_classname in KPLIB_o_helicopters) then { _newvehicle = createVehicle [_classname, _spawnpos, [], 0, 'FLY']; _newvehicle flyInHeight (80 + (random 120)); _newvehicle allowDamage false; @@ -77,18 +77,25 @@ if (_classname in opfor_choppers) then { [_newvehicle] call KPLIB_fnc_addObjectInit; // Spawn crew of vehicle -if (_classname in militia_vehicles) then { +if (_classname in KPLIB_o_militiaVehicles) then { [_newvehicle] call KPLIB_fnc_spawnMilitiaCrew; } else { - private _grp = createGroup [GRLIB_side_enemy, true]; + private _grp = createGroup [KPLIB_side_enemy, true]; private _crew = units (createVehicleCrew _newvehicle); _crew joinSilent _grp; - sleep 0.1; - {_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach _crew; + { + _x addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; + } forEach _crew; }; -// Add MPKilled and GetIn EHs and enable damage again -_newvehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; +// Add Killed and GetIn EHs and enable damage again +_newvehicle addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; +}]; sleep 0.1; _newvehicle allowDamage true; _newvehicle setDamage 0; diff --git a/Missionframework/functions/ui/fn_overlayUpdateResources.sqf b/Missionframework/functions/ui/fn_overlayUpdateResources.sqf index 2314fb0db..819c3a8aa 100644 --- a/Missionframework/functions/ui/fn_overlayUpdateResources.sqf +++ b/Missionframework/functions/ui/fn_overlayUpdateResources.sqf @@ -3,7 +3,7 @@ File: fn_overlayUpdateResources.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-05-01 - Last Update: 2020-08-25 + Last Update: 2020-09-16 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -38,30 +38,31 @@ if (!_show) exitWith { }; if (_updateValues) then { + _resourceArea = [(_resourceArea select [4]), _resourceArea] select KPLIB_resources_global; - (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_FOB) ctrlSetText toUpper (_resourceArea select [4]); - (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_SUPPLIES) ctrlSetText str floor KP_liberation_supplies; - (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_AMMO) ctrlSetText str floor KP_liberation_ammo; - (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_FUEL) ctrlSetText str floor KP_liberation_fuel; + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_FOB) ctrlSetText toUpper _resourceArea; + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_SUPPLIES) ctrlSetText str floor KPLIB_supplies; + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_AMMO) ctrlSetText str floor KPLIB_ammo; + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_FUEL) ctrlSetText str floor KPLIB_fuel; (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_UNITCAP) ctrlSetText ([unitcap, "/", [] call KPLIB_fnc_getLocalCap] joinString ""); - (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_HELIPAD) ctrlSetText ([KP_liberation_heli_count, "/", KP_liberation_heli_slots] joinString ""); - (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_PLANE) ctrlSetText ([KP_liberation_plane_count, "/", KP_liberation_plane_slots] joinString ""); - (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_ALERT) ctrlSetText ([round combat_readiness, "%"] joinString ""); - (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_CIVREP) ctrlSetText ([KP_liberation_civ_rep,"%"] joinString ""); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_HELIPAD) ctrlSetText ([KPLIB_heli_count, "/", KPLIB_heli_slots] joinString ""); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_PLANE) ctrlSetText ([KPLIB_plane_count, "/", KPLIB_plane_slots] joinString ""); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_ALERT) ctrlSetText ([round KPLIB_enemyReadiness, "%"] joinString ""); + (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_CIVREP) ctrlSetText ([KPLIB_civ_rep,"%"] joinString ""); (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_INTEL) ctrlSetText str round resources_intel; private _color_readiness = [0.8,0.8,0.8,1]; - if (combat_readiness >= 25) then {_color_readiness = [0.8,0.8,0,1]}; - if (combat_readiness >= 50) then {_color_readiness = [0.8,0.6,0,1]}; - if (combat_readiness >= 75) then {_color_readiness = [0.8,0.3,0,1]}; - if (combat_readiness >= 100) then {_color_readiness = [0.8,0,0,1]}; + if ( KPLIB_enemyReadiness >= 25 ) then { _color_readiness = [0.8,0.8,0,1] }; + if ( KPLIB_enemyReadiness >= 50 ) then { _color_readiness = [0.8,0.6,0,1] }; + if ( KPLIB_enemyReadiness >= 75 ) then { _color_readiness = [0.8,0.3,0,1] }; + if ( KPLIB_enemyReadiness >= 100 ) then { _color_readiness = [0.8,0,0,1] }; (_overlay displayCtrl IDC_OVERLAY_RSC_PIC_ALERT) ctrlSetTextColor _color_readiness; (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_ALERT) ctrlSetTextColor _color_readiness; private _color_reputation = [0.8,0.8,0.8,1]; - if (KP_liberation_civ_rep >= 25) then {_color_reputation = [0,0.7,0,1]}; - if (KP_liberation_civ_rep <= -25) then {_color_reputation = [0.7,0,0,1]}; + if (KPLIB_civ_rep >= 25) then {_color_reputation = [0,0.7,0,1]}; + if (KPLIB_civ_rep <= -25) then {_color_reputation = [0.7,0,0,1]}; (_overlay displayCtrl IDC_OVERLAY_RSC_PIC_CIVREP) ctrlSetTextColor _color_reputation; (_overlay displayCtrl IDC_OVERLAY_RSC_LABEL_CIVREP) ctrlSetTextColor _color_reputation; diff --git a/Missionframework/init.sqf b/Missionframework/init.sqf index acc03d8a0..11c65b5ba 100644 --- a/Missionframework/init.sqf +++ b/Missionframework/init.sqf @@ -1,31 +1,36 @@ KPLIB_init = false; +KPLIB_endgame = 0; +KPLIB_respawn_marker = "respawn"; // Version of the KP Liberation framework -KP_liberation_version = [0, 96, "7a"]; +KPLIB_version = [0, 96, 8]; -enableSaving [ false, false ]; +enableSaving [false, false]; if (isDedicated) then {debug_source = "Server";} else {debug_source = name player;}; [] call KPLIB_fnc_initSectors; -if (!isServer) then {waitUntil {!isNil "KPLIB_initServer"};}; -[] call compileFinal preprocessFileLineNumbers "scripts\shared\fetch_params.sqf"; -[] call compileFinal preprocessFileLineNumbers "kp_liberation_config.sqf"; -[] call compileFinal preprocessFileLineNumbers "presets\init_presets.sqf"; -[] call compileFinal preprocessFileLineNumbers "kp_objectInits.sqf"; +if (!isServer) then {waitUntil {!isNil "KPLIB_initServerDone"};}; +[] call compile preprocessFileLineNumbers "KPLIB_config.sqf"; +[] call compile preprocessFileLineNumbers "KPLIB_whitelists.sqf"; +[] call compile preprocessFileLineNumbers "KPLIB_transportConfigs.sqf"; +[] call compile preprocessFileLineNumbers "KPLIB_classnameLists.sqf"; +[] call compile preprocessFileLineNumbers "scripts\shared\fetch_params.sqf"; +[] call compile preprocessFileLineNumbers "presets\init_presets.sqf"; +[] call compile preprocessFileLineNumbers "KPLIB_objectInits.sqf"; // Activate selected player menu. If CBA isn't loaded -> fallback to GREUH -if (KPPLM_CBA && KP_liberation_playermenu) then { +if (KPPLM_CBA && KPLIB_param_playerMenu) then { [] call KPPLM_fnc_postInit; } else { [] execVM "GREUH\scripts\GREUH_activate.sqf"; }; -[] call compileFinal preprocessFileLineNumbers "scripts\shared\init_shared.sqf"; +[] call compile preprocessFileLineNumbers "scripts\shared\init_shared.sqf"; if (isServer) then { - [] call compileFinal preprocessFileLineNumbers "scripts\server\init_server.sqf"; + [] call compile preprocessFileLineNumbers "scripts\server\init_server.sqf"; }; if (!isDedicated && !hasInterface && isMultiplayer) then { @@ -45,7 +50,7 @@ if (!isDedicated && hasInterface) then { waitUntil {alive player}; if (debug_source != name player) then {debug_source = name player}; - [] call compileFinal preprocessFileLineNumbers "scripts\client\init_client.sqf"; + [] call compile preprocessFileLineNumbers "scripts\client\init_client.sqf"; } else { setViewDistance 1600; }; @@ -59,6 +64,6 @@ KPLIB_init = true; // Notify clients that server is ready if (isServer) then { - KPLIB_initServer = true; - publicVariable "KPLIB_initServer"; + KPLIB_initServerDone = true; + publicVariable "KPLIB_initServerDone"; }; diff --git a/Missionframework/kp_liberation_config.sqf b/Missionframework/kp_liberation_config.sqf deleted file mode 100644 index 0c993250b..000000000 --- a/Missionframework/kp_liberation_config.sqf +++ /dev/null @@ -1,1129 +0,0 @@ -/* - CONFIG FILE FOR KP LIBERATION - https://github.com/KillahPotatoes/KP-Liberation -*/ - -// Vehicle classnames which also function as ACE medical vehicles. -KP_liberation_medical_vehicles = [ - "B_T_Truck_01_medical_F", - "B_Truck_01_medical_F", - "C_Van_02_medevac_F", - "CUP_B_BMP2_AMB_CDF", - "CUP_B_BMP2_AMB_CZ_Des", - "CUP_B_BMP2_AMB_CZ", - "CUP_B_FV432_GB_Ambulance", - "CUP_B_HMMWV_Ambulance_ACR", - "CUP_B_HMMWV_Ambulance_USA", - "CUP_B_HMMWV_Ambulance_USMC", - "CUP_B_LR_Ambulance_CZ_D", - "CUP_B_LR_Ambulance_CZ_W", - "CUP_B_LR_Ambulance_GB_D", - "CUP_B_LR_Ambulance_GB_W", - "CUP_B_S1203_Ambulance_CDF", - "CUP_B_UH1Y_MEV_USMC", - "CUP_B_UH60M_Unarmed_FFV_MEV_US", - "CUP_O_BMP2_AMB_CHDKZ", - "CUP_O_BMP2_AMB_sla", - "CUP_O_LR_Ambulance_TKA", - "CUP_O_M113_Med_TKA", - "gm_gc_airforce_mi2sr", - "gm_gc_army_ural375d_medic_win", - "gm_gc_army_ural375d_medic", - "gm_ge_airforce_do28d2_medevac", - "gm_ge_army_u1300l_medic_win_rc", - "gm_ge_army_u1300l_medic", - "I_E_Truck_02_Medical_F", - "I_E_Van_02_medevac_F", - "O_T_Truck_03_medical_ghex_F", - "O_Truck_03_medical_F", - "RHS_UH60M_MEV_d", - "RHS_UH60M_MEV", - "RHS_UH60M_MEV2_d", - "RHS_UH60M_MEV2", - "rhsusf_M1085A1P2_B_D_Medical_fmtv_usarmy", - "rhsusf_M1085A1P2_B_WD_Medical_fmtv_usarmy", - "rhsusf_m113_usarmy_medical", - "rhsusf_m113d_usarmy_medical", - "rhsusf_M1230a1_usarmy_d", - "rhsusf_M1230a1_usarmy_wd", - "UK3CB_BAF_LandRover_Amb_FFR_Green_A_MTP", - "UK3CB_BAF_LandRover_Amb_FFR_Sand_A_DDPM", - "uns_ch47a_medevac", - "uns_H13_medevac_CAV", - "uns_M577_amb", - "uns_uh1D_med" -]; - -// Building classnames which also function as ACE medical facilities. -KP_liberation_medical_facilities = [ - "Land_Medevac_house_V1_F", - "Land_Medevac_HQ_V1_F", - "LAND_uns_army_med", - "LAND_uns_tent3mash", - "uns_mash_main", - "uns_mash", - "US_Tent_2", - "US_Tent_MASH" -]; - -// Classnames of ACE3 crates (which have to be in the unit preset as well). -KP_liberation_ace_crates = [ - "ACE_Box_82mm_Mo_HE", - "ACE_Box_82mm_Mo_Illum", - "ACE_Box_82mm_Mo_Smoke", - "ACE_medicalSupplyCrate_advanced" -]; - -/* - Custom unit and arsenal preset settings. -If you want to change a preset, it's recommended to set all four presets to 0 and edit the appropriate custom.sqf files in the preset folders.*/ - -/* BLUFOR preset: -0 = Custom (default vanilla with many optional mods supported) -1 = Apex Tanoa (apex vanilla with many optional mods supported) -2 = 3cb BAF (MTP) -3 = 3cb BAF (Desert) -4 = BWMod Bundeswehr (Flecktarn) -5 = BWMod Bundeswehr (Tropentarn) -6 = RHS USAF (Woodland) -7 = RHS USAF (Desert) -8 = RHS AFRF (VDV/MSV) -9 = Germany West (Global Mobilization) -10 = Germany West Winter (Global Mobilization) -11 = Germany East (Global Mobilization) -12 = Germany East Winter (Global Mobilization) -13 = CSAT Brown -14 = CSAT Green -15 = Unsung US -16 = CUP British Armed Forces (Desert) -17 = CUP British Armed Forces (Woodland) -18 = CUP US Marine Corps (Desert) -19 = CUP US Marine Corps (Woodland) -20 = CUP US Army (Desert) -21 = CUP US Army (Woodland) -22 = CUP Chernarus Defense Force -23 = CUP Army of the Czech Republic (Desert) -24 = CUP Army of the Czech Republic (Woodland) -25 = CUP Chernarussian Movement of the Red Star -26 = CUP Sahrani Liberation Army -27 = CUP Takistani Army -28 = SFP (Woodland) -29 = SFP (Desert) -30 = LDF (Contact DLC) */ -KP_liberation_preset_blufor = 0; - -/* OPFOR preset: -0 = Custom (default vanilla CSAT) -1 = Apex Tanoa (apex vanilla CSAT) -2 = RHS AFRF (EMR/MSV) -3 = Project OPFOR (Takistan) -4 = Project OPFOR (Islamic State) -5 = Project OPFOR (Sahrani) -6 = AAF -7 = NATO -8 = Germany West (Global Mobilization) -9 = Germany West Winter (Global Mobilization) -10 = Germany East (Global Mobilization) -11 = Germany East Winter (Global Mobilization) -12 = Unsung NVA -13 = CUP Sahrani Liberation Army -14 = CUP Takistani Army -15 = CUP Chernarussian Movement of the Red Star -16 = CUP Armed Forces of the Russian Federation (MSV - EMR) -17 = CUP Armed Forces of the Russian Federation (Modern MSV) -18 = CUP Chernarus Defense Force -19 = CUP British Armed Forces (Desert) -20 = CUP British Armed Forces (Woodland) */ -KP_liberation_preset_opfor = 0; - -/* Resistance preset: -0 = Custom (default vanilla FIA) -1 = Apex Tanoa (apex vanilla Syndikat) -2 = RHS GREF -3 = Project OPFOR (Middle Eastern) -4 = Project OPFOR (Sahrani) -5 = Germany (Global Mobilization) -6 = Unsung -7 = CUP Takistani Locals -8 = CUP National Party of Chernarus */ -KP_liberation_preset_resistance = 0; - -/* Civilians preset: -0 = Custom (default vanilla) -1 = Apex Tanoa (apex vanilla) -2 = Project OPFOR (Middle Eastern) -3 = RDS Civilians -4 = Germany (Global Mobilization) -5 = Unsung -6 = CUP Takistani Civilians -7 = CUP Chernarussian Civilians */ -KP_liberation_preset_civilians = 0; - -/* Which arsenal preset should be used? -0 = Use the default blacklist method (defined below) -1 = Custom arsenal preset (edit the custom.sqf in the arsenal_presets\ folder to change things for your own versions and tweaks) -2 = RHS USAF arsenal preset -3 = 3cbBAF and RHS USAF arsenal preset -4 = GM West arsenal preset -5 = GM East arsenal preset -6 = CSAT arsenal preset -7 = Unsung US arsenal preset -8 = SFP arsenal preset -9 = BWMod arsenal preset -10 = NATO MTP arsenal preset -11 = NATO Tropic arsenal preset -12 = NATO Woodland arsenal preset -13 = CSAT Hex arsenal preset -14 = CSAT Green Hex arsenal preset -15 = AAF arsenal preset -16 = LDF arsenal preset */ -KP_liberation_arsenal = 0; - -/* - Fuel consumption settings. -Time in minutes till a full tank depletes whilst the vehicle is standing still with a running engine. */ -KP_liberation_fuel_neutral = 180; -// Time in minutes till a full tank depletes whilst the vehicle is driving below max speed. -KP_liberation_fuel_normal = 90; -// Time in minutes till a full tank depletes whilst the vehicle is driving at max speed. -KP_liberation_fuel_max = 45; - -/* - Gameplay constant settings. -Name of the savegame namespace inside of the [ServerProfileName].vars.Arma3Profile file. */ -GRLIB_save_key = "KP_LIBERATION_" + (toUpper worldName) + "_SAVEGAME"; - -KP_liberation_save_interval = 60; // Interval in seconds for automatic save. - -GRLIB_side_friendly = WEST; // Friendly side. -GRLIB_side_enemy = EAST; // Enemy side. -GRLIB_side_resistance = RESISTANCE; // Resistance side. -GRLIB_side_civilian = CIVILIAN; // Civilian side. -GRLIB_respawn_marker = "respawn"; // Respawn marker name. - -GRLIB_color_friendly = "ColorBLUFOR"; // Friendly sector marker color. -GRLIB_color_enemy = "ColorOPFOR"; // Enemy sector marker color. -GRLIB_color_enemy_bright = "ColorRED"; // Enemy sector marker color (activated). - -GRLIB_fob_range = 125; // Build range around the main FOB building. -GRLIB_halo_altitude = 2500; // Altitude in metres for the HALO jump. -GRLIB_secondary_missions_costs = [15, 10, 8]; // Intel price for the secondary missions [FOB hunting, Convoy ambush, SAR]. -GRLIB_secondary_objective_impact = 0.6; // The percentage impact against enemy combat readiness for a successful FOB hunt. -GRLIB_recycling_percentage = 0.5; // Percentage of resources you get back from recycling. -KP_liberation_production_interval = 30; // Time in minutes until a production process is finished, when resources multiplier is set to 1. - -GRLIB_sector_size = 1000; // Range to activate a sector. -GRLIB_capture_size = 175; // Range to capture a sector. -GRLIB_defended_buildingpos_part = 0.4; // Multiplier for defenders in buildings. -GRLIB_battlegroup_size = 6; // Size of enemy battlegroups. -GRLIB_vulnerability_timer = 1200; // Time in seconds how long a captured sector is vulnerable to enemy troops. -GRLIB_radiotower_size = 2500; // Radio Tower scanning range. -GRLIB_surrender_chance = 80; // Chance that enemy infantry will surrender after heavy losses are encountered. - -GRLIB_civilians_amount = 10; // Civilian count multiplier. -GRLIB_cleanup_delay = 1200; // Time in seconds until bodies of dead soldiers are cleaned up. - -GRLIB_blufor_cap = 100; // Cap for BLUFOR. -GRLIB_sector_cap = 180; // Cap for sector defenders. -GRLIB_battlegroup_cap = 150; // Cap for enemy battlegroups. -GRLIB_patrol_cap = 150; // Cap for enemy patrols. - -KP_liberation_cr_kill_penalty = 5; // Civil Reputation penalty for killing a civilian. -KP_liberation_cr_building_penalty = 3; // Civil Reputation penalty for destroying/damaging a building. -KP_liberation_cr_vehicle_penalty = 2; // Civil Reputation penalty for stealing a civilian vehicle. -KP_liberation_cr_resistance_penalty = 3; // Civil Reputation penalty for killing a friendly resistance soldier. -KP_liberation_cr_sector_gain = 5; // Civil Reputation gain for liberate a sector. -KP_liberation_cr_wounded_chance = 35; // Chance (0-100) that there are wounded civilians right after capturing a sector. -KP_liberation_cr_wounded_gain = 2; // Civil Reputation gain for providing medical assistance for wounded civilians. - -KP_liberation_civinfo_min = 5400; // Civil Informant minimum spawn time. (seconds) -KP_liberation_civinfo_max = 10800; // Civil Informant maximum spawn time. (seconds) -KP_liberation_civinfo_chance = 75; // Civil Informant spawn chance. (0-100) -KP_liberation_civinfo_intel = 5; // Civil Informant intel amount. -KP_liberation_civinfo_duration = 1200; // Civil Informant staytime until despawning. (seconds) -KP_liberation_civinfo_task_chance = 40; // Chance (0-100) that the delivered informant will spawn a time critical task. -KP_liberation_civinfo_task_duration = 900; // Duration until the task will despawn if no player is near. (seconds) - -KP_liberation_convoy_ambush_chance = 2; // Chance that a logistic convoy will be ambushed, when civil reputation is low. -KP_liberation_convoy_ambush_duration = 1200; // Duration of the convoy ambush event. (seconds) - -KP_liberation_resistance_tier2 = 30; // At which strength (0-100) the guerilla forces will be at tier 2? -KP_liberation_resistance_tier3 = 70; // At which strength (0-100) the guerilla forces will be at tier 3? -KP_liberation_resistance_at_chance = 20; // Chance that a guerilla unit has a RPG. (tier 2 and 3) -KP_liberation_resistance_sector_chance = 35; // Chance that a guerilla squad will join an ongoing sector attack. -KP_liberation_resistance_ambush_chance = 25; // Chance that some guerilla units will spawn in blufor sectors for an ambush, if reputation is low. - -// Array of worldName values. -// When playing on this map, it'll create a clearance (remove terrain objects) in a 15m radius around the battlegroup/reinforcements spawnpoint. -KP_liberation_battlegroup_clearance = [ - "song_bin_tanh" -]; - -/* Slot independent commander action access. -The Steam UIDs entered in this array will allow corresponding players to access the commander actions (rights, production, etc.), -even if they are not in the commander slot. */ -KP_liberation_commander_actions = [ - /* - Example: - "1324678", - "5468711", - "2156347" - */ -]; - -/* Whitelist for BI support framework access. -Same format as for the commander actions. */ -KP_liberation_suppMod_whitelist = [ - -]; - -/* Array of radio tower classnames to place at radio tower sectors. -If more than one is added, it'll be selected random for each sector on campaign start. */ -KPLIB_radioTowerClassnames = [ - "Land_Communication_F" -]; - -/* - Default arsenal blacklist method. -Useless if you're using anything other than "kp_liberation_arsenal = 0;" above. A whitelisted arsenal is always more performance friendly then a blacklisted arsenal. -REMEMBER: All static turret and UAV bags should be defined here, to stop players from exploiting free resources via the virtual arsenal. */ -blacklisted_from_arsenal = [ - "B_AA_01_weapon_F", - "B_AT_01_weapon_F", - "B_GMG_01_A_weapon_F", - "B_GMG_01_high_weapon_F", - "B_GMG_01_weapon_F", - "B_HMG_01_A_weapon_F", - "B_HMG_01_high_weapon_F", - "B_HMG_01_support_F", - "B_HMG_01_support_high_F", - "B_HMG_01_weapon_F", - "B_Mortar_01_support_F", - "B_Mortar_01_weapon_F", - "B_Respawn_Sleeping_bag_blue_F", - "B_Respawn_Sleeping_bag_brown_F", - "B_Respawn_Sleeping_bag_F", - "B_Respawn_TentA_F", - "B_Respawn_TentDome_F", - "B_UAV_01_backpack_F", - "B_UAV_06_backpack_F", - "B_UAV_06_medical_backpack_F", - "B_UGV_02_Demining_backpack_F", - "B_UGV_02_Science_backpack_F", - "C_IDAP_UAV_01_backpack_F", - "C_IDAP_UAV_06_antimine_backpack_F", - "C_IDAP_UAV_06_backpack_F", - "C_IDAP_UAV_06_medical_backpack_F", - "C_IDAP_UGV_02_Demining_backpack_F", - "C_UAV_06_backpack_F", - "C_UAV_06_medical_backpack_F", - "I_AA_01_weapon_F", - "I_AT_01_weapon_F", - "I_C_HMG_02_high_weapon_F", - "I_C_HMG_02_support_F", - "I_C_HMG_02_support_high_F", - "I_C_HMG_02_weapon_F", - "I_E_AA_01_weapon_F", - "I_E_AT_01_weapon_F", - "I_E_GMG_01_A_Weapon_F", - "I_E_GMG_01_high_Weapon_F", - "I_E_GMG_01_Weapon_F", - "I_E_HMG_01_A_Weapon_F", - "I_E_HMG_01_high_Weapon_F", - "I_E_HMG_01_support_F", - "I_E_HMG_01_support_high_F", - "I_E_HMG_01_Weapon_F", - "I_E_HMG_02_high_weapon_F", - "I_E_HMG_02_support_F", - "I_E_HMG_02_support_high_F", - "I_E_HMG_02_weapon_F", - "I_E_Mortar_01_support_F", - "I_E_Mortar_01_Weapon_F", - "I_E_UAV_01_backpack_F", - "I_E_UAV_06_backpack_F", - "I_E_UAV_06_medical_backpack_F", - "I_E_UGV_02_Demining_backpack_F", - "I_E_UGV_02_Science_backpack_F", - "I_G_HMG_02_high_weapon_F", - "I_G_HMG_02_support_F", - "I_G_HMG_02_support_high_F", - "I_G_HMG_02_weapon_F", - "I_GMG_01_A_weapon_F", - "I_GMG_01_high_weapon_F", - "I_GMG_01_weapon_F", - "I_HMG_01_A_weapon_F", - "I_HMG_01_high_weapon_F", - "I_HMG_01_support_F", - "I_HMG_01_support_high_F", - "I_HMG_01_weapon_F", - "I_HMG_02_high_weapon_F", - "I_HMG_02_support_F", - "I_HMG_02_support_high_F", - "I_HMG_02_weapon_F", - "I_Mortar_01_support_F", - "I_Mortar_01_weapon_F", - "I_UAV_01_backpack_F", - "I_UAV_06_backpack_F", - "I_UAV_06_medical_backpack_F", - "I_UGV_02_Demining_backpack_F", - "I_UGV_02_Science_backpack_F", - "O_AA_01_weapon_F", - "O_AT_01_weapon_F", - "O_GMG_01_A_weapon_F", - "O_GMG_01_high_weapon_F", - "O_GMG_01_weapon_F", - "O_HMG_01_A_weapon_F", - "O_HMG_01_high_weapon_F", - "O_HMG_01_support_F", - "O_HMG_01_support_high_F", - "O_HMG_01_weapon_F", - "O_Mortar_01_support_F", - "O_Mortar_01_weapon_F", - "O_UAV_01_backpack_F", - "O_UAV_06_backpack_F", - "O_UAV_06_medical_backpack_F", - "O_UGV_02_Demining_backpack_F", - "O_UGV_02_Science_backpack_F", - "RHS_AGS30_Gun_Bag", - "RHS_AGS30_Tripod_Bag", - "RHS_DShkM_Gun_Bag", - "RHS_DShkM_TripodHigh_Bag", - "RHS_DShkM_TripodLow_Bag", - "RHS_Kord_Gun_Bag", - "RHS_Kord_Tripod_Bag", - "RHS_Kornet_Gun_Bag", - "RHS_Kornet_Tripod_Bag", - "RHS_M2_Gun_Bag", - "RHS_M2_MiniTripod_Bag", - "RHS_M2_Tripod_Bag", - "rhs_M252_Bipod_Bag", - "rhs_M252_Gun_Bag", - "RHS_Metis_Gun_Bag", - "RHS_Metis_Tripod_Bag", - "RHS_Mk19_Gun_Bag", - "RHS_Mk19_Tripod_Bag", - "RHS_NSV_Gun_Bag", - "RHS_NSV_Tripod_Bag", - "RHS_Podnos_Bipod_Bag", - "RHS_Podnos_Gun_Bag", - "RHS_SPG9_Gun_Bag", - "RHS_SPG9_Tripod_Bag", - "rhs_Tow_Gun_Bag", - "rhs_TOW_Tripod_Bag", - "UK3CB_BAF_L111A1", - "UK3CB_BAF_L134A1", - "UK3CB_BAF_L16_Tripod", - "UK3CB_BAF_L16", - "UK3CB_BAF_M6", - "UK3CB_BAF_Tripod", - "uns_M1_81mm_mortar_US_Bag", - "uns_M1919_low_US_Bag", - "uns_M2_60mm_mortar_US_Bag", - "uns_m2_high_US_Bag", - "uns_M2_low_US_Bag", - "uns_M30_107mm_mortar_US_Bag", - "uns_M60_high_US_Bag", - "uns_M60_low_US_Bag", - "uns_MK18_low_US_Bag", - "uns_STABO_US_Bag", - "uns_Tripod_Bag", - "Uns_US_searchlight_Bag" -]; - -// Items which should be added as allowed Items, when they get blacklisted, even if they are not in the blacklisted_from_arsenal array -KP_liberation_allowed_items_extension = [ - "ACE_Chemlight_Shield_Blue", - "ACE_Chemlight_Shield_Green", - "ACE_Chemlight_Shield_Orange", - "ACE_Chemlight_Shield_Red", - "ACE_Chemlight_Shield_White", - "ACE_Chemlight_Shield_Yellow", - "ACE_launch_NLAW_Used_F", - "ACE_PreloadedMissileDummy_CUP", - "ACE_PreloadedMissileDummy_Igla_CUP", - "ACE_PreloadedMissileDummy_M72A6_CUP", - "ACE_PreloadedMissileDummy_NLAW_CUP", - "ACE_PreloadedMissileDummy_RPG18_CUP", - "ACE_PreloadedMissileDummy_Stinger_CUP", - "ACE_PreloadedMissileDummy_Strela_2_CUP", - "ACE_ReserveParachute", - "BWA3_acc_LLM01_flash_tan", - "BWA3_acc_LLM01_flash_underbarrel", - "BWA3_acc_LLM01_flash", - "BWA3_acc_LLM01_laser_tan", - "BWA3_acc_LLM01_laser_underbarrel", - "BWA3_acc_LLM01_laser", - "BWA3_acc_VarioRay_flash", - "BWA3_acc_VarioRay_laser", - "BWA3_Bunkerfaust", - "BWA3_G36A2_pip", - "BWA3_G36A2_tan_pip", - "BWA3_optic_CompM2_G36A2", - "BWA3_optic_CompM2_tan_G36A2", - "BWA3_optic_EOTech_G36A2", - "BWA3_optic_EOTech_Mag_Off", - "BWA3_optic_EOTech_Mag_On", - "BWA3_optic_EOTech_sand_G36A2", - "BWA3_optic_EOTech_tan_Mag_Off", - "BWA3_optic_EOTech_tan_Mag_On", - "BWA3_optic_EOTech552_G36A2", - "BWA3_optic_EOTech552_tan_G36A2", - "BWA3_optic_Hensoldt_NSV", - "BWA3_optic_M5Xi_MSR_MicroT2_pip", - "BWA3_optic_M5Xi_MSR_pip", - "BWA3_optic_M5Xi_Tremor3_MicroT2_pip", - "BWA3_optic_M5Xi_Tremor3_pip", - "BWA3_optic_MicroT1_G36A2", - "BWA3_optic_MicroT2_G36A2", - "BWA3_optic_NSA80_G36", - "BWA3_optic_PMII_DMR_MicroT1_front_NSV_pip", - "BWA3_optic_PMII_DMR_MicroT1_front_NSV", - "BWA3_optic_PMII_DMR_MicroT1_front_pip", - "BWA3_optic_PMII_DMR_MicroT1_rear_NSV_pip", - "BWA3_optic_PMII_DMR_MicroT1_rear_NSV", - "BWA3_optic_PMII_DMR_MicroT1_rear_pip", - "BWA3_optic_PMII_DMR_NSV_pip", - "BWA3_optic_PMII_DMR_NSV", - "BWA3_optic_PMII_DMR_pip", - "BWA3_optic_PMII_ShortdotCC_pip", - "BWA3_optic_RSAS_brown_G36A2", - "BWA3_optic_RSAS_G36A2", - "BWA3_optic_RSAS_sand_G36A2", - "BWA3_optic_RSAS_tan_G36A2", - "BWA3_optic_ZO4x30_brown_IRV", - "BWA3_optic_ZO4x30_brown_NSV", - "BWA3_optic_ZO4x30_brown_pip", - "BWA3_optic_ZO4x30_brown_RSAS_IRV_pip", - "BWA3_optic_ZO4x30_brown_RSAS_IRV", - "BWA3_optic_ZO4x30_brown_RSAS_NSV_pip", - "BWA3_optic_ZO4x30_brown_RSAS_NSV", - "BWA3_optic_ZO4x30_brown_RSAS_pip", - "BWA3_optic_ZO4x30_IRV", - "BWA3_optic_ZO4x30_MicroT2_brown_IRV", - "BWA3_optic_ZO4x30_MicroT2_brown_NSV", - "BWA3_optic_ZO4x30_MicroT2_IRV", - "BWA3_optic_ZO4x30_MicroT2_NSV", - "BWA3_optic_ZO4x30_NSV", - "BWA3_optic_ZO4x30_pip", - "BWA3_optic_ZO4x30_RSAS_IRV_pip", - "BWA3_optic_ZO4x30_RSAS_IRV", - "BWA3_optic_ZO4x30_RSAS_NSV_pip", - "BWA3_optic_ZO4x30_RSAS_NSV", - "BWA3_optic_ZO4x30_RSAS_pip", - "BWA3_optic_ZO4x30i_MicroT2_pip", - "BWA3_optic_ZO4x30i_MicroT2_sand_pip", - "BWA3_optic_ZO4x30i_pip", - "BWA3_optic_ZO4x30i_RSAS_pip", - "BWA3_optic_ZO4x30i_RSAS_sand_pip", - "BWA3_optic_ZO4x30i_sand_pip", - "BWA3_PzF3_Used", - "BWA3_PzF3", - "BWA3_RGW90_Used", - "BWA3_RGW90", - "ItemRadioAcreFlagged", - "rhs_acc_ekp8_18b", - "rhs_acc_ekp8_18c", - "rhs_acc_ekp8_18d", - "rhs_m136_hedp_mag", - "rhs_m136_hp_mag", - "rhs_m136_mag", - "rhs_m72a7_mag", - "rhs_rpg26_mag", - "rhs_rshg2_mag", - "rhs_weap_M136_used", - "rhsusf_acc_anpeq15_bk_light_h", - "rhsusf_acc_g33_T1_flip", - "rhsusf_acc_g33_xps3_flip", - "rhsusf_acc_g33_xps3_tan_flip", - "sma_spitfire_03_rds_low_ard_red", - "UK3CB_BAF_AT4_CS_AP_Mag", - "UK3CB_BAF_Javelin_Launcher" -]; - -/* - Configuration settings for crates transported by vehicles. -Format = ["classname", distance behind vehicle to unload crate, attachTo positions for each box], */ -KPLIB_transportConfigs = [ - ["B_Heli_Transport_03_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]], - ["B_Heli_Transport_03_unarmed_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]], - ["B_T_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], - ["B_T_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], - ["B_T_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], - ["B_T_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], - ["B_T_VTOL_01_infantry_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]], - ["B_T_VTOL_01_vehicle_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]], - ["B_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], - ["B_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], - ["B_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], - ["B_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]], - ["BW_AW101_Trans_Heer_F", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]], - ["BW_LKW7T_Trans_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], - ["C_IDAP_Van_02_transport_F", -5, [0,-1.75,0]], - ["C_IDAP_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], - ["C_Offroad_01_F", -6.5, [0,-1.7,0.4]], - ["C_Truck_02_covered_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], - ["C_Truck_02_transport_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], - ["C_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], - ["C_Van_02_service_F", -5, [0,0.5,0], [0,-1.75,0]], - ["C_Van_02_transport_F", -5, [0,-1.75,0]], - ["C_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], - ["CUP_B_C130J_Cargo_USMC",-10,[0,0.6,-3.76],[0,-0.9,-3.76],[0,-2.5,-3.76],[0,-4.2,-3.76],[0,2.2,-3.76],[0,3.8,-3.76],[0,5.5,-3.76]], - ["CUP_B_CH47F_GB", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]], - ["CUP_B_CH47F_USA", -8, [0,-3.535,-1.9], [0,-1.819,-1.9], [0,0.98,-1.9], [0,3.037,-1.9]], - ["CUP_B_CH53E_USMC", -8, [0,7.566,-3], [0,5.749,-3], [0,3.847,-3], [0,2,-3], [0,0.338,-3]], - ["CUP_B_Kamaz_CDF", -6.5, [0,-0.4,0], [0,-2.6,0]], - ["CUP_B_Kamaz_Open_CDF", -6.5, [0.12,0.4,0], [0.12,-1.8,0]], - ["CUP_B_Mi17_CDF", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], - ["CUP_B_Mi171Sh_ACR", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], - ["CUP_B_Mi171Sh_Unarmed_ACR", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], - ["CUP_B_MI6A_CDF", -8, [0,6,-0.6], [0,4.3,-0.6], [0,2.5,-0.6], [0,0.5,-0.6], [0,-1.2,-0.6], [0,-3.1,-0.6]], - ["CUP_B_MTVR_USA", -6.5, [-0.009,-0.647,0.112], [-0.054,-2.535,0.112]], - ["CUP_B_MTVR_USMC", -6.5, [-0.009,-0.647,0.112], [-0.054,-2.535,0.112]], - ["CUP_B_MV22_USMC_RAMPGUN", -8, [0,3.3,-1.6], [0,1,-1.6], [0,-1.3,-1.6]], - ["CUP_B_MV22_USMC", -8, [0,3.3,-1.6], [0,1,-1.6], [0,-1.3,-1.6]], - ["CUP_B_MV22_VIV_USMC", -8, [0,3.3,-1.6], [0,1,-1.6], [0,-1.3,-1.6]], - ["CUP_B_T810_Armed_CZ_DES", -6.5, [0,0,-0.5], [0,-2,-0.5]], - ["CUP_B_T810_Armed_CZ_WDL", -6.5, [0,0,-0.5], [0,-2,-0.5]], - ["CUP_B_T810_Unarmed_CZ_DES", -6.5, [0,0,0.2], [0,-2,0.2]], - ["CUP_B_T810_Unarmed_CZ_WDL", -6.5, [0,0,0.2], [0,-2,0.2]], - ["CUP_B_Ural_CDF", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_B_Ural_Open_CDF", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_B_Wolfhound_GMG_GB_D", -6.5, [0,-3.5,2.3]], - ["CUP_B_Wolfhound_GMG_GB_W", -6.5, [0,-3.5,2.3]], - ["CUP_B_Wolfhound_HMG_GB_D", -6.5, [0,-3.5,2.3]], - ["CUP_B_Wolfhound_HMG_GB_W", -6.5, [0,-3.5,2.3]], - ["CUP_B_Wolfhound_LMG_GB_D", -6.5, [0,-3.5,2.3]], - ["CUP_B_Wolfhound_LMG_GB_W", -6.5, [0,-3.5,2.3]], - ["CUP_C_Ural_Civ_01", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_C_Ural_Civ_03", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_C_Ural_Open_Civ_03", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_O_Kamaz_Open_RU", -6.5, [0.12,0.4,0], [0.12,-1.8,0]], - ["CUP_O_Kamaz_RU", -6.5, [0,-0.4,0], [0,-2.6,0]], - ["CUP_O_Ural_CHDKZ", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_O_Ural_Open_CHDKZ", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_O_Ural_Open_SLA", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_O_Ural_Open_TKA", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_O_Ural_SLA", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_O_Ural_TKA", -6.5, [0,-0.5,0], [0,-2.5,0]], - ["CUP_O_Mi8_SLA_1", -6.5, [0,2.7,-1.5], [00,0.6,-1.5]], - ["CUP_O_MI6A_CHDKZ", -8, [0,6,-0.6], [0,4.3,-0.6], [0,2.5,-0.6], [0,0.5,-0.6], [0,-1.2,-0.6], [0,-3.1,-0.6]], - ["CUP_O_MI6A_TKA", -8, [0,6,-0.6], [0,4.3,-0.6], [0,2.5,-0.6], [0,0.5,-0.6], [0,-1.2,-0.6], [0,-3.1,-0.6]], - ["CUP_O_C130J_Cargo_TKA",-10,[0,0.6,-3.76],[0,-0.9,-3.76],[0,-2.5,-3.76],[0,-4.2,-3.76],[0,2.2,-3.76],[0,3.8,-3.76],[0,5.5,-3.76]], - ["gm_gc_army_ural4320_cargo_win", -5, [0.0722656,-0.539063,-0.1], [0.076416,-1.76904,-0.1], [0.0773926,-2.85742,-0.1]], - ["gm_gc_army_ural4320_cargo", -5, [0.0722656,-0.539063,-0.1], [0.076416,-1.76904,-0.1], [0.0773926,-2.85742,-0.1]], - ["gm_gc_bgs_ural4320_cargo", -5, [-0.0373535,-0.535156,-0.1], [-0.0344238,-1.76611,-0.1], [-0.0334473,-2.85547,-0.1]], - ["gm_ge_army_kat1_451_container_win", -5, [-0.0280762,0.222656,-0.2], [-0.0202637,-1.31152,-0.2],[-0.0222168,-2.79834,-0.2]], - ["gm_ge_army_kat1_451_container", -5, [-0.0280762,0.222656,-0.2], [-0.0202637,-1.31152,-0.2], [-0.0222168,-2.79834,-0.2]], - ["gm_ge_army_kat1_454_cargo_win",-6.5, [-0.0217285,1.32764,0.35], [-0.00170898,-0.337891,0.35], [-0.0441895,-1.90332,0.35], [-0.0615234,-3.59033,0.35]], - ["gm_ge_army_kat1_454_cargo",-6.5, [-0.0217285,1.32764,0.35], [-0.00170898,-0.337891,0.35], [-0.0441895,-1.90332,0.35], [-0.0615234,-3.59033,0.35]], - ["gm_ge_army_u1300l_container_win", -5, [-0.0495605,-0.609863,-0.6], [0.147461,-2.06787,-0.6]], - ["gm_ge_army_u1300l_container", -5, [-0.0495605,-0.609863,-0.6], [0.147461,-2.06787,-0.6]], - ["greuh_eh101_gr", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]], - ["I_C_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], - ["I_C_Van_02_transport_F", -5, [0,-1.75,0]], - ["I_C_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], - ["I_E_Truck_02_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], - ["I_E_Truck_02_transport_F", -6.5, [0,0.3,0.05], [0,-1.3,0.05], [0,-2.9,0.05]], - ["I_E_Van_02_transport_F", -5, [0,-1.75,0]], - ["I_E_Van_02_transport_MP_F", -5, [0,-1.75,0]], - ["I_E_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], - ["I_G_Offroad_01_F", -6.5, [0,-1.7,0.4]], - ["I_G_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], - ["I_G_Van_02_transport_F", -5, [0,-1.75,0]], - ["I_G_Van_02_vehicle_F", -5, [0,0.5,0], [0,-1.75,0]], - ["I_Heli_Transport_02_F", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]], - ["LOP_ISTS_OPF_Truck", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], - ["LOP_SLA_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["LOP_TAK_Civ_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["LOP_TAK_Civ_Ural", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["LOP_TKA_Ural_open", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["LOP_TKA_Ural", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["O_G_Offroad_01_F", -6.5, [0,-1.7,0.4]], - ["O_G_Van_01_transport_F", -6.5, [0,-1.1,0.25], [0,-2.6,0.25]], - ["O_T_Truck_03_covered_ghex_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], - ["O_T_Truck_03_transport_ghex_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], - ["O_Truck_03_covered_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], - ["O_Truck_03_transport_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]], - ["RHS_C130J", -9.5, [-0.8,8.0,-4.0], [0.8,8.0,-4.0], [-0.8,8.0,-2.8], [0.8,8.0,-2.8], [-0.8,6.5,-4.0], [0.8,6.5,-4.0], [-0.8,6.5,-2.8], [0.8,6.5,-2.8], [-0.8,5.0,-4.0], [0.8,5.0,-4.0], [-0.8,5.0,-2.8], [0.8,5.0,-2.8], [-0.8,3.5,-4.0], [0.8,3.5,-4.0], [-0.8,3.5,-2.8], [0.8,3.5,-2.8], [-0.8,2.0,-4.0], [0.8,2.0,-4.0], [-0.8,2.0,-2.8], [0.8,2.0,-2.8], [-0.8,0.5,-4.0], [0.8,0.5,-4.0], [-0.8,0.5,-2.8], [0.8,0.5,-2.8]], - ["RHS_CH_47F_10", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]], - ["RHS_CH_47F_light", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]], - ["RHS_CH_47F", -8, [0,2.2,-1.7], [0,0.5,-1.7], [0,-1.2,-1.7]], - ["rhs_kamaz5350_flatbed_cover_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], - ["rhs_kamaz5350_flatbed_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], - ["rhs_kamaz5350_open_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], - ["rhs_kamaz5350_vdv", -4.5, [0,0.67,-0.4], [0,-0.88,-0.4], [0,-2.43,-0.4]], - ["RHS_Ural_Civ_03", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["RHS_Ural_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["RHS_Ural_Open_Civ_03", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["RHS_Ural_Open_Flat_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["RHS_Ural_Open_Flat_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["RHS_Ural_Open_MSV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["RHS_Ural_Open_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["RHS_Ural_VDV_01", -6.5, [0,-0.2,0.55], [0,-1.4,0.55], [0,-2.55,0.55]], - ["rhsusf_CH53E_USMC_D", -11.0, [0,7,-3.2], [0,7,-2.0], [0,5.5,-3.2], [0,5.5,-2.0], [0,4,-3.2], [0,4,-2.0], [0,2.5,-3.2], [0,2.5,-2.0], [0,1.0,-3.2], [0,1.0,-2.0], [0,-0.5,-3.2], [0,-0.5,-2.0]], - ["rhsusf_CH53E_USMC", -11.0, [0,7,-3.2], [0,7,-2.0], [0,5.5,-3.2], [0,5.5,-2.0], [0,4,-3.2], [0,4,-2.0], [0,2.5,-3.2], [0,2.5,-2.0], [0,1.0,-3.2], [0,1.0,-2.0], [0,-0.5,-3.2], [0,-0.5,-2.0]], - ["rhsusf_M1078A1P2_B_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_B_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_B_M2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_B_M2_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_B_M2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_B_M2_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_B_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_B_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1078A1P2_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_B_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_B_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_B_M2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_B_M2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_B_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_B_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_D_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_D_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_WD_flatbed_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M1083A1P2_WD_fmtv_usarmy", -5.0, [0,-0.2,0.45], [0,-1.9,0.45]], - ["rhsusf_M977A4_BKIT_M2_usarmy_d", -6.5, [0,0.4,0.1], [0,-1.3,0.1], [0,-3,0.1]], - ["rhsusf_M977A4_BKIT_M2_usarmy_wd", -6.5, [0,0.4,0.1], [0,-1.3,0.1], [0,-3,0.1]], - ["rhsusf_M977A4_BKIT_usarmy_d", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], - ["rhsusf_M977A4_BKIT_usarmy_wd", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], - ["rhsusf_M977A4_usarmy_d", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], - ["rhsusf_M977A4_usarmy_wd", -6.5, [0,0.4,0.8], [0,-1.3,0.8], [0,-3,0.8]], - ["rhsusf_m998_d_2dr_halftop", -4.5, [0,-0.9,-0.2]], - ["rhsusf_m998_w_2dr_halftop", -4.5, [0,-0.9,-0.2]], - ["rhsusf_M1239_socom_d", -5, [-0.125,-1.73,-0.66], [0,-3.28,-0.66]], - ["rhsusf_M1239_M2_socom_d", -5, [-0.125,-1.73,-0.66], [0,-3.28,-0.66]], - ["rhsusf_M1239_MK19_socom_d", -5, [-0.125,-1.73,-0.66], [0,-3.28,-0.66]], - ["sfp_tgb30", -5, [0.2,-0.1,2], [0.2,-2.1,2]], - ["sfp_tgb40", -5, [0.1,-0.7,2], [0.1,-2.7,2]], - ["UK3CB_BAF_Merlin_HC3_18_DPMT", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], - ["UK3CB_BAF_Merlin_HC3_32_MTP", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], - ["UK3CB_BAF_Merlin_HC3_CSAR_MTP", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], - ["UK3CB_BAF_Merlin_HC4_18_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], - ["UK3CB_BAF_Merlin_HC4_18_GPMG_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], - ["UK3CB_BAF_Merlin_HC4_32_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], - ["UK3CB_BAF_Merlin_HC4_CSAR_Arctic", -7.5, [0.25,3.7,-1.5], [0.25,1.6,-1.5], [0.25,-0.4,-1.5]], - ["USAF_C17",-10,[-1.2,14.4,-0.43],[-1.2,12.8,-0.43],[-1.2,11.1,-0.43],[-1.2,9.5,-0.43],[-1.2,7.9,-0.43],[-1.2,6.3,-0.43],[-1.2,4.6,-0.43],[-1.2,3,-0.43],[-1.2,1.4,-0.43],[-1.2,-0.1,-0.43],[-1.2,-1.8,-0.43],[1.2,14.4,-0.43],[1.2,12.8,-0.43],[1.2,11.2,-0.43],[1.2,9.6,-0.43],[1.2,7.9,-0.43],[1.2,6.3,-0.43],[1.2,4.7,-0.43],[1.2,3.1,-0.43],[1.2,1.5,-0.43],[1.2,0,-0.43],[1.2,-1.7,-0.43],[-1.2,14.5,1.22],[-1.2,12.8,1.22],[-1.2,11.2,1.2],[-1.2,9.5,1.22],[-1.2,7.9,1.22],[-1.2,6.3,1.22],[-1.2,4.7,1.22],[-1.2,3,1.22],[-1.2,1.4,1.22],[-1.2,-0.1,1.22],[-1.2,-1.7,1.22],[1.2,14.5,1.22],[1.2,12.8,1.22],[1.2,11.2,1.22],[1.2,9.6,1.22],[1.2,8,1.22],[1.2,6.3,1.22],[1.2,4.7,1.22],[1.2,3.1,1.22],[1.2,1.5,1.22],[1.2,0,1.22],[1.2,-1.6,1.22]], - ["USAF_C130J",-10,[0,3.6,2.08],[0,2,2.08],[0,0.3,2.08],[0,-1.3,2.08]], - ["USAF_C130J_Cargo",-10,[0,3.6,2.08],[0,2,2.08],[0,0.3,2.08],[0,-1.3,2.08],[0,5.3,2.08],[0,7,2.08]], - ["uns_M35A2_Open", -5, [0,-0.6,0.1], [0,-2.3,0.1]], - ["uns_M35A2", -5, [0,-0.6,0.1], [0,-2.3,0.1]], - ["uns_m37b1", -5, [0,-1.8,0.15]], - ["uns_nvatruck_mg", -5, [0,-1.05,0.8], [0,-2.75,0.8]], - ["uns_nvatruck_open", -5, [0,-1.05,0.8], [0,-2.75,0.8]], - ["uns_nvatruck", -5, [0,-1.05,0.8], [0,-2.75,0.8]] -]; - -/* Various other settings. -Everything the AI troups should be able to resupply from. */ -KPLIB_aiResupplySources = [ - "B_APC_Tracked_01_CRV_F", - "B_Slingload_01_Ammo_F", - "B_T_APC_Tracked_01_CRV_F", - "B_T_Truck_01_ammo_F", - "B_Truck_01_ammo_F", - "BW_LKW15T_Ammo_F", - "CUP_B_Kamaz_Reammo_CDF", - "CUP_B_MTVR_Ammo_USA", - "CUP_B_MTVR_Ammo_USMC", - "CUP_B_T810_Reammo_CZ_DES", - "CUP_B_T810_Reammo_CZ_WDL", - "CUP_O_Kamaz_Reammo_RU", - "CUP_O_Ural_Reammo_CHDKZ", - "CUP_O_Ural_Reammo_SLA", - "CUP_O_Ural_Reammo_TKA", - "CUP_O_V3S_Rearm_TKA", - "gm_gc_army_ural4320_reammo_win", - "gm_gc_army_ural4320_reammo", - "gm_ge_army_kat1_451_reammo_win", - "gm_ge_army_kat1_451_reammo", - "I_E_Truck_02_Ammo_F", - "Land_Pod_Heli_Transport_04_ammo_F", - "O_Heli_Transport_04_ammo_F", - "O_T_Truck_03_ammo_ghex_F", - "O_Truck_03_ammo_F", - "rhs_gaz66_ammo_msv", - "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", - "rhsusf_M1239_MK19_Deploy_socom_d", - "rhsusf_M1239_M2_Deploy_socom_d", - "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_d", - "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_wd", - "rhsusf_M977A4_AMMO_BKIT_usarmy_d", - "rhsusf_M977A4_AMMO_BKIT_usarmy_wd", - "rhsusf_M977A4_AMMO_usarmy_d", - "rhsusf_M977A4_AMMO_usarmy_wd", - "sfp_tgb40_ammo", - "uns_M113_ENG", - "uns_M35A2_ammo", - "uns_motorpool1_repair" -]; - -// Everything that can resupply other vehicles. -vehicle_repair_sources = [ - "B_APC_Tracked_01_CRV_F", - "B_Slingload_01_Repair_F", - "B_T_APC_Tracked_01_CRV_F", - "B_T_Truck_01_Repair_F", - "B_Truck_01_Repair_F", - "BW_LKW15T_Repair_F", - "C_Offroad_01_repair_F", - "CUP_B_Kamaz_Repair_CDF", - "CUP_B_MTVR_Repair_USA", - "CUP_B_MTVR_Repair_USMC", - "CUP_B_T810_Repair_CZ_DES", - "CUP_B_T810_Repair_CZ_WDL", - "CUP_O_V3S_Repair_TKA", - "CUP_O_Ural_Repair_SLA", - "CUP_O_Ural_Repair_CHDKZ", - "gm_gc_army_ural4320_repair_win", - "gm_gc_army_ural4320_repair", - "gm_ge_army_u1300l_repair_win", - "gm_ge_army_u1300l_repair", - "I_E_Truck_02_Box_F", - "Land_Pod_Heli_Transport_04_repair_F", - "O_Heli_Transport_04_repair_F", - "O_T_Truck_03_repair_ghex_F", - "O_Truck_03_repair_F", - "RHS_Ural_Repair_VDV_01", - "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", - "rhsusf_M1239_MK19_Deploy_socom_d", - "rhsusf_M1239_M2_Deploy_socom_d", - "rhsusf_M977A4_REPAIR_BKIT_M2_usarmy_d", - "rhsusf_M977A4_REPAIR_BKIT_M2_usarmy_wd", - "rhsusf_M977A4_REPAIR_BKIT_usarmy_d", - "rhsusf_M977A4_REPAIR_BKIT_usarmy_wd", - "rhsusf_M977A4_REPAIR_usarmy_d", - "rhsusf_M977A4_REPAIR_usarmy_wd", - "sfp_tgb30_repair", - "UNS_Hanger_repair", - "uns_M113_ENG", - "uns_M35A2_repair", - "uns_motorpool1_repair" -]; - -vehicle_rearm_sources = [ - "B_APC_Tracked_01_CRV_F", - "B_Slingload_01_Ammo_F", - "B_T_APC_Tracked_01_CRV_F", - "B_T_Truck_01_ammo_F", - "B_Truck_01_ammo_F", - "BW_LKW15T_Ammo_F", - "CUP_B_Kamaz_Reammo_CDF", - "CUP_B_MTVR_Ammo_USA", - "CUP_B_MTVR_Ammo_USMC", - "CUP_B_T810_Reammo_CZ_DES", - "CUP_B_T810_Reammo_CZ_WDL", - "CUP_O_Kamaz_Reammo_RU", - "CUP_O_Ural_Reammo_CHDKZ", - "CUP_O_Ural_Reammo_SLA", - "CUP_O_Ural_Reammo_TKA", - "CUP_O_V3S_Rearm_TKA", - "gm_gc_army_ural4320_reammo_win", - "gm_gc_army_ural4320_reammo", - "gm_ge_army_kat1_451_reammo_win", - "gm_ge_army_kat1_451_reammo", - "I_E_Truck_02_Ammo_F", - "Land_Pod_Heli_Transport_04_ammo_F", - "O_Heli_Transport_04_ammo_F", - "O_T_Truck_03_ammo_ghex_F", - "O_Truck_03_ammo_F", - "rhs_gaz66_ammo_msv", - "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", - "rhsusf_M1239_MK19_Deploy_socom_d", - "rhsusf_M1239_M2_Deploy_socom_d", - "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_d", - "rhsusf_M977A4_AMMO_BKIT_M2_usarmy_wd", - "rhsusf_M977A4_AMMO_BKIT_usarmy_d", - "rhsusf_M977A4_AMMO_BKIT_usarmy_wd", - "rhsusf_M977A4_AMMO_usarmy_d", - "rhsusf_M977A4_AMMO_usarmy_wd", - "sfp_tgb40_ammo", - "uns_M113_ENG", - "uns_M35A2_ammo" -]; - -vehicle_refuel_sources = [ - "B_APC_Tracked_01_CRV_F", - "B_Slingload_01_Fuel_F", - "B_T_APC_Tracked_01_CRV_F", - "B_T_Truck_01_fuel_F", - "B_Truck_01_fuel_F", - "BW_LKW15T_Fuel_F", - "C_Truck_02_fuel_F", - "C_Van_01_fuel_F", - "CUP_B_Kamaz_Refuel_CDF", - "CUP_B_MTVR_Refuel_USA", - "CUP_B_MTVR_Refuel_USMC", - "CUP_B_T810_Refuel_CZ_DES", - "CUP_B_T810_Refuel_CZ_WDL", - "CUP_O_Kamaz_Refuel_RU", - "CUP_O_Ural_Refuel_CHDKZ", - "CUP_O_Ural_Refuel_SLA", - "CUP_O_Ural_Refuel_TKA", - "CUP_O_V3S_Refuel_TKA", - "gm_gc_army_ural375d_refuel_win", - "gm_gc_army_ural375d_refuel", - "gm_ge_army_kat1_451_refuel_win", - "gm_ge_army_kat1_451_refuel", - "I_E_Truck_02_fuel_F", - "Land_Pod_Heli_Transport_04_fuel_F", - "O_Heli_Transport_04_fuel_F", - "O_T_Truck_03_fuel_ghex_F", - "O_Truck_03_fuel_F", - "RHS_Ural_Fuel_VDV_01", - "rhsusf_M1078A1R_SOV_M2_D_fmtv_socom", - "rhsusf_M1239_MK19_Deploy_socom_d", - "rhsusf_M1239_M2_Deploy_socom_d", - "rhsusf_M978A4_BKIT_usarmy_d", - "rhsusf_M978A4_BKIT_usarmy_wd", - "rhsusf_M978A4_usarmy_d", - "rhsusf_M978A4_usarmy_wd", - "sfp_tgb40_fuel", - "uns_M113_ENG", - "uns_M35A2_fuel", - "uns_M35A2_fueltanker" -]; - -// Classnames of boats, so they can be built on water. -boats_names = [ - "B_Boat_Armed_01_minigun_F", - "B_Boat_Transport_01_F", - "B_SDV_01_F", - "B_T_Boat_Armed_01_minigun_F", - "B_T_Boat_Transport_01_F", - "O_Boat_Armed_01_hmg_F", - "O_Boat_Transport_01_F", - "O_T_Boat_Armed_01_hmg_F", - "O_T_Boat_Transport_01_F", - "CUP_B_MK10_GB", - "CUP_B_RHIB_USMC", - "CUP_B_RHIB2Turret_USMC", - "CUP_B_LCU1600_USMC", - "CUP_O_LCVP_SLA", - "CUP_O_LCVP_VIV_SLA", - "CUP_O_PBX_SLA", - "rhsusf_mkvsoc", - "sfp_gruppbat", - "sfp_rbb_norrkoping", - "sfp_strb90_rws", - "sfp_strb90", - "uns_PBR_M10", - "uns_pbr_mk18", - "uns_pbr", - "UNS_Zodiac_W" -]; - -// Classnames of artillery vehicles, which should be added to the support module -// (Needed/Favorized as BIS_SUPP_eligible_Artillery from the support module isn't broadcasted over the network and may hold unwanted vehicles) -KP_liberation_suppMod_artyVeh = [ - "B_G_Mortar_01_F", - "B_MBT_01_arty_F", - "B_MBT_01_mlrs_F", - "B_Mortar_01_F", - "B_Ship_Gun_01_F", - "B_T_MBT_01_arty_F", - "B_T_MBT_01_mlrs_F", - "B_T_Mortar_01_F", - "CUP_B_2b14_82mm_ACR", - "CUP_B_2b14_82mm_CDF", - "CUP_B_BM21_CDF", - "CUP_B_D30_CDF", - "CUP_B_L16A2_BAF_DDPM", - "CUP_B_L16A2_BAF_MPT", - "CUP_B_L16A2_BAF_WDL", - "CUP_B_M1129_MC_MK19_Desert_Slat", - "CUP_B_M1129_MC_MK19_Desert", - "CUP_B_M1129_MC_MK19_Woodland_Slat", - "CUP_B_M1129_MC_MK19_Woodland", - "CUP_B_M119_US", - "CUP_B_M119_USMC", - "CUP_B_M252_US", - "CUP_B_M252_USMC", - "CUP_B_M270_DPICM_BAF_DES", - "CUP_B_M270_DPICM_BAF_WOOD", - "CUP_B_M270_DPICM_USA", - "CUP_B_M270_DPICM_USMC", - "CUP_B_M270_HE_BAF_DES", - "CUP_B_M270_HE_BAF_WOOD", - "CUP_B_M270_HE_USA", - "CUP_B_M270_HE_USMC", - "CUP_B_RM70_CZ", - "CUP_I_2b14_82mm_TK_GUE", - "CUP_I_D30_TK_GUE", - "CUP_I_Hilux_armored_MLRS_TK", - "CUP_I_Hilux_armored_podnos_TK", - "CUP_I_Hilux_armored_UB32_TK", - "CUP_I_Hilux_MLRS_TK", - "CUP_I_Hilux_podnos_TK", - "CUP_I_Hilux_UB32_TK", - "CUP_I_M119_RACS", - "CUP_I_M252_RACS", - "CUP_I_M270_DPICM_AAF", - "CUP_I_M270_DPICM_RACS", - "CUP_I_M270_HE_AAF", - "CUP_I_M270_HE_RACS", - "CUP_O_2b14_82mm_ChDKZ", - "CUP_O_2b14_82mm_RU", - "CUP_O_2b14_82mm_SLA", - "CUP_O_2b14_82mm_TK_INS", - "CUP_O_2b14_82mm_TK", - "CUP_O_BM21_CHDKZ", - "CUP_O_BM21_RU", - "CUP_O_BM21_SLA", - "CUP_O_BM21_TKA", - "CUP_O_D30_ChDKZ", - "CUP_O_D30_RU", - "CUP_O_D30_SLA", - "CUP_O_D30_TK_INS", - "CUP_O_D30_TK", - "CUP_O_Hilux_armored_MLRS_TK_INS", - "CUP_O_Hilux_armored_podnos_TK_INS", - "CUP_O_Hilux_armored_UB32_TK_INS", - "CUP_O_Hilux_MLRS_TK_INS", - "CUP_O_Hilux_podnos_TK_INS", - "CUP_O_Hilux_UB32_TK_INS", - "I_E_Mortar_01_F", - "I_E_Truck_02_MRL_F", - "I_G_Mortar_01_F", - "I_Mortar_01_F", - "I_Truck_02_MRL_F", - "O_G_Mortar_01_F", - "O_MBT_02_arty_F", - "O_Mortar_01_F", - "O_T_MBT_02_arty_ghex_F", - "rhs_2b14_82mm_msv", - "rhs_2b14_82mm_vdv", - "rhs_2b14_82mm_vmf", - "rhs_2s1_tv", - "rhs_2s1_vmf", - "rhs_2s3_tv", - "RHS_BM21_MSV_01", - "RHS_BM21_VDV_01", - "RHS_BM21_VMF_01", - "RHS_BM21_VV_01", - "rhs_D30_msv", - "rhs_D30_vdv", - "rhs_D30_vmf", - "RHS_M119_D", - "RHS_M119_WD", - "RHS_M252_D", - "RHS_M252_USMC_D", - "RHS_M252_USMC_WD", - "RHS_M252_WD", - "rhsusf_m109_usarmy", - "rhsusf_m109d_usarmy", - "rhsusf_M142_usarmy_D", - "rhsusf_M142_usarmy_WD", - "rhsusf_M142_usmc_WD", - "Uns_D20_artillery", - "Uns_D30_artillery", - "uns_M1_81mm_mortar_arty", - "uns_M1_81mm_mortar_pvp", - "uns_M1_81mm_mortar", - "Uns_M102_artillery", - "uns_m107sp", - "uns_m110sp", - "uns_M113_M30_HQ", - "uns_M113_M30", - "Uns_M114_artillery", - "uns_m1941_82mm_mortarNVA_arty", - "uns_m1941_82mm_mortarNVA_pvp", - "uns_m1941_82mm_mortarNVA", - "uns_m1941_82mm_mortarVC", - "uns_M2_60mm_mortar_pvp", - "uns_M2_60mm_mortar", - "uns_M30_107mm_mortar", - "uns_Type55_mortar" -]; - -// Objects which are spawned as intel objects for pickup -KPLIB_intelObjectClasses = [ - "Land_File_research_F", - "Land_Document_01_F" -]; - -// Classnames of buildings inside military sectors, which are valid to hold intel items -KPLIB_intelBuildingClasses = [ - "Land_Cargo_House_V1_F", - "Land_Cargo_House_V2_F", - "Land_Cargo_House_V3_F", - "Land_Cargo_HQ_V1_F", - "Land_Cargo_HQ_V2_F", - "Land_Cargo_HQ_V3_F", - "Land_i_Barracks_V1_dam_F", - "Land_i_Barracks_V1_F", - "Land_i_Barracks_V2_dam_F", - "Land_i_Barracks_V2_F", - "Land_Medevac_house_V1_F", - "Land_Medevac_HQ_V1_F", - "Land_MilOffices_V1_F", - "Land_Research_house_V1_F", - "Land_Research_HQ_F", - "Land_u_Barracks_V2_F" -]; - -// Large storage area placement position offsets. -KP_liberation_large_storage_positions = [ - [-5.59961,3.60938,0.6], - [-3.99902,3.60938,0.6], - [-2.39941,3.60938,0.6], - [-0.799805,3.60938,0.6], - [0.800781,3.60938,0.6], - [2.40039,3.60938,0.6], - [4.00098,3.60938,0.6], - [5.60059,3.60938,0.6], - [-5.59961,1.80859,0.6], - [-3.99902,1.80859,0.6], - [-2.39941,1.80859,0.6], - [-0.799805,1.80859,0.6], - [0.800781,1.80859,0.6], - [2.40039,1.80859,0.6], - [4.00098,1.80859,0.6], - [5.60059,1.80859,0.6], - [-5.59961,0.00976563,0.6], - [-3.99902,0.00976563,0.6], - [-2.39941,0.00976563,0.6], - [-0.799805,0.00976563,0.6], - [0.800781,0.00976563,0.6], - [2.40039,0.00976563,0.6], - [4.00098,0.00976563,0.6], - [5.60059,0.00976563,0.6], - [-5.59961,-1.79102,0.6], - [-3.99902,-1.79102,0.6], - [-2.39941,-1.79102,0.6], - [-0.799805,-1.79102,0.6], - [0.800781,-1.79102,0.6], - [2.40039,-1.79102,0.6], - [4.00098,-1.79102,0.6], - [5.60059,-1.79102,0.6], - [-5.59961,-3.58984,0.6], - [-3.99902,-3.58984,0.6], - [-2.39941,-3.58984,0.6], - [-0.799805,-3.58984,0.6], - [0.800781,-3.58984,0.6], - [2.40039,-3.58984,0.6], - [4.00098,-3.58984,0.6], - [5.60059,-3.58984,0.6] -]; - -// Small storage area placement position offsets. -KP_liberation_small_storage_positions = [ - [-2.34961,1.80078,0.6], - [-0.75,1.80078,0.6], - [0.850586,1.80078,0.6], - [2.4502,1.80078,0.6], - [-2.34961,0,0.6], - [-0.75,0,0.6], - [0.850586,0,0.6], - [2.4502,0,0.6], - [-2.34961,-1.79883,0.6], - [-0.75,-1.79883,0.6], - [0.850586,-1.79883,0.6], - [2.4502,-1.79883,0.6] -]; - -// DO NOT CHANGE (unless you know what you are doing). -GRLIB_endgame = 0; -KP_liberation_production_interval = ceil (KP_liberation_production_interval / GRLIB_resources_multiplier); -GRLIB_battlegroup_size = GRLIB_battlegroup_size * (sqrt GRLIB_unitcap) * (sqrt GRLIB_csat_aggressivity); -GRLIB_civilians_amount = GRLIB_civilians_amount * GRLIB_civilian_activity; -GRLIB_blufor_cap = (GRLIB_blufor_cap * GRLIB_unitcap) min 100; -GRLIB_sector_cap = GRLIB_sector_cap * GRLIB_unitcap; -GRLIB_battlegroup_cap = GRLIB_battlegroup_cap * GRLIB_unitcap; -GRLIB_patrol_cap = GRLIB_patrol_cap * GRLIB_unitcap; diff --git a/Missionframework/onPlayerRespawn.sqf b/Missionframework/onPlayerRespawn.sqf index c98d8403e..fc1e5830d 100644 --- a/Missionframework/onPlayerRespawn.sqf +++ b/Missionframework/onPlayerRespawn.sqf @@ -1,8 +1,8 @@ -waitUntil {!isNil "KPLIB_initServer"}; +waitUntil {!isNil "KPLIB_initServerDone"}; params ["_newUnit", "_oldUnit"]; -if (isNil "GRLIB_respawn_loadout") then { +if (isNil "KPLIB_respawn_loadout") then { removeAllWeapons player; removeAllItems player; removeAllAssignedItems player; @@ -16,7 +16,7 @@ if (isNil "GRLIB_respawn_loadout") then { player linkItem "ItemRadio"; } else { sleep 4; - [player, GRLIB_respawn_loadout] call KPLIB_fnc_setLoadout; + [player, KPLIB_respawn_loadout] call KPLIB_fnc_setLoadout; }; [] call KPLIB_fnc_addActionsPlayer; @@ -24,23 +24,23 @@ if (isNil "GRLIB_respawn_loadout") then { // Support Module handling if ([ false, - player isEqualTo ([] call KPLIB_fnc_getCommander) || (getPlayerUID player) in KP_liberation_suppMod_whitelist, + player isEqualTo ([] call KPLIB_fnc_getCommander) || (getPlayerUID player) in KPLIB_whitelist_supportModule, true -] select KP_liberation_suppMod) then { - waitUntil {!isNil "KPLIB_suppMod_req" && !isNil "KPLIB_suppMod_arty" && time > 5}; +] select KPLIB_param_supportModule) then { + waitUntil {!isNil "KPLIB_param_supportModule_req" && !isNil "KPLIB_param_supportModule_arty" && time > 5}; // Remove link to corpse, if respawned if (!isNull _oldUnit) then { - KPLIB_suppMod_req synchronizeObjectsRemove [_oldUnit]; - _oldUnit synchronizeObjectsRemove [KPLIB_suppMod_req]; + KPLIB_param_supportModule_req synchronizeObjectsRemove [_oldUnit]; + _oldUnit synchronizeObjectsRemove [KPLIB_param_supportModule_req]; }; // Link player to support modules - [player, KPLIB_suppMod_req, KPLIB_suppMod_arty] call BIS_fnc_addSupportLink; + [player, KPLIB_param_supportModule_req, KPLIB_param_supportModule_arty] call BIS_fnc_addSupportLink; // Init modules, if newly joined and not client host if (isNull _oldUnit && !isServer) then { - [KPLIB_suppMod_req] call BIS_fnc_moduleSupportsInitRequester; - [KPLIB_suppMod_arty] call BIS_fnc_moduleSupportsInitProvider; + [KPLIB_param_supportModule_req] call BIS_fnc_moduleSupportsInitRequester; + [KPLIB_param_supportModule_arty] call BIS_fnc_moduleSupportsInitProvider; }; }; diff --git a/Missionframework/arsenal_presets/3cbBAF.sqf b/Missionframework/presets/arsenal/3cbBAF.sqf similarity index 99% rename from Missionframework/arsenal_presets/3cbBAF.sqf rename to Missionframework/presets/arsenal/3cbBAF.sqf index 3ee0f17ed..9981a6506 100644 --- a/Missionframework/arsenal_presets/3cbBAF.sqf +++ b/Missionframework/presets/arsenal/3cbBAF.sqf @@ -1,6 +1,12 @@ /* - 3CB BAF Arsenal Preset - Last Update: 2020-05-08 + File: 3cbBAF.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-05-22 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + 3cbBAF arsenal preset. Needed: - 3CB BAF Weapons - https://steamcommunity.com/sharedfiles/filedetails/?id=893339590 @@ -12,7 +18,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ "UK3CB_BAF_AT4_CS_AP_Launcher", // ILAW HEDP Launcher "UK3CB_BAF_AT4_CS_AT_Launcher", // ILAW HP Launcher "UK3CB_BAF_L103A2", // L130A2 DP @@ -66,7 +72,7 @@ GRLIB_arsenal_weapons = [ "UK3CB_BAF_NLAW_Launcher" // NLAW Launcher ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ "UK3CB_BAF_12G_Pellets", // 12G 8rnd Buckshot "UK3CB_BAF_12G_Slugs", // 12G 8rnd Slug "UK3CB_BAF_1Rnd_Blank_Grenade_Shell", // 40mm Practice Round (L123) @@ -154,7 +160,7 @@ GRLIB_arsenal_magazines = [ "TrainingMine_Mag" // Training Mine ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Uniforms "UK3CB_BAF_U_CombatUniform_Arctic_Ghillie_RM", // Combat Uniform Arctic Ghillie RM [BAF] "UK3CB_BAF_U_CombatUniform_DDPM_Ghillie_RM", // Combat Uniform DDPPM Ghillie RM [BAF] @@ -658,7 +664,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "UK3CB_BAF_B_Bergen_Arctic_JTAC_A", // Bergen Arctic JTAC/FAC [BAF] "UK3CB_BAF_B_Bergen_Arctic_JTAC_H_A", // Bergen Arctic JTAC/FAC H [BAF] "UK3CB_BAF_B_Bergen_Arctic_Rifleman_A", // Bergen Arctic Rifleman A [BAF] diff --git a/Missionframework/presets/arsenal/allowedExtension.sqf b/Missionframework/presets/arsenal/allowedExtension.sqf new file mode 100644 index 000000000..21a0fadc6 --- /dev/null +++ b/Missionframework/presets/arsenal/allowedExtension.sqf @@ -0,0 +1,25 @@ +/* + File: allowedExtension.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-11 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + List of classnames which will be always added to the allowed gear list. + This is used to add let's name it "generic classnames". + + E.g. if you've an available weapon "myMod_weap_M16" and an available grip "myMod_acc_coolGrip" + some mods transform this combination to a weapon "myMod_weap_M16_coolGrip". + That classname is used internally and wouldn't be listed in the arsenal and can cause issues to be + detected as not allowed weapon, even if the weapon and the grip is whitelisted. + So add this "generic classname" here afterwards to avoid this. + + The classnames of blacklisted items on a player are logged in the server rpt for a later lookup. +*/ + +// Extension list of allowed arsenal gear +KPLIB_arsenalAllowedExtension = [ + "ACE_ReserveParachute", + "ItemRadioAcreFlagged" +]; diff --git a/Missionframework/presets/arsenal/blacklist.sqf b/Missionframework/presets/arsenal/blacklist.sqf new file mode 100644 index 000000000..83489baa0 --- /dev/null +++ b/Missionframework/presets/arsenal/blacklist.sqf @@ -0,0 +1,154 @@ +/* + File: blacklist.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-11 + Last Update: 2020-08-05 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + List of blacklisted items for the arsenal, if KPLIB_presetArsenal is set to 0 in the config. +*/ + +// Blacklisted item classnames +KPLIB_arsenalBlacklist = [ + "B_AA_01_weapon_F", + "B_AT_01_weapon_F", + "B_GMG_01_A_weapon_F", + "B_GMG_01_high_weapon_F", + "B_GMG_01_weapon_F", + "B_HMG_01_A_weapon_F", + "B_HMG_01_high_weapon_F", + "B_HMG_01_support_F", + "B_HMG_01_support_high_F", + "B_HMG_01_weapon_F", + "B_Mortar_01_support_F", + "B_Mortar_01_weapon_F", + "B_Respawn_Sleeping_bag_blue_F", + "B_Respawn_Sleeping_bag_brown_F", + "B_Respawn_Sleeping_bag_F", + "B_Respawn_TentA_F", + "B_Respawn_TentDome_F", + "B_UAV_01_backpack_F", + "B_UAV_06_backpack_F", + "B_UAV_06_medical_backpack_F", + "B_UGV_02_Demining_backpack_F", + "B_UGV_02_Science_backpack_F", + "C_IDAP_UAV_01_backpack_F", + "C_IDAP_UAV_06_antimine_backpack_F", + "C_IDAP_UAV_06_backpack_F", + "C_IDAP_UAV_06_medical_backpack_F", + "C_IDAP_UGV_02_Demining_backpack_F", + "C_UAV_06_backpack_F", + "C_UAV_06_medical_backpack_F", + "I_AA_01_weapon_F", + "I_AT_01_weapon_F", + "I_C_HMG_02_high_weapon_F", + "I_C_HMG_02_support_F", + "I_C_HMG_02_support_high_F", + "I_C_HMG_02_weapon_F", + "I_E_AA_01_weapon_F", + "I_E_AT_01_weapon_F", + "I_E_GMG_01_A_Weapon_F", + "I_E_GMG_01_high_Weapon_F", + "I_E_GMG_01_Weapon_F", + "I_E_HMG_01_A_Weapon_F", + "I_E_HMG_01_high_Weapon_F", + "I_E_HMG_01_support_F", + "I_E_HMG_01_support_high_F", + "I_E_HMG_01_Weapon_F", + "I_E_HMG_02_high_weapon_F", + "I_E_HMG_02_support_F", + "I_E_HMG_02_support_high_F", + "I_E_HMG_02_weapon_F", + "I_E_Mortar_01_support_F", + "I_E_Mortar_01_Weapon_F", + "I_E_UAV_01_backpack_F", + "I_E_UAV_06_backpack_F", + "I_E_UAV_06_medical_backpack_F", + "I_E_UGV_02_Demining_backpack_F", + "I_E_UGV_02_Science_backpack_F", + "I_G_HMG_02_high_weapon_F", + "I_G_HMG_02_support_F", + "I_G_HMG_02_support_high_F", + "I_G_HMG_02_weapon_F", + "I_GMG_01_A_weapon_F", + "I_GMG_01_high_weapon_F", + "I_GMG_01_weapon_F", + "I_HMG_01_A_weapon_F", + "I_HMG_01_high_weapon_F", + "I_HMG_01_support_F", + "I_HMG_01_support_high_F", + "I_HMG_01_weapon_F", + "I_HMG_02_high_weapon_F", + "I_HMG_02_support_F", + "I_HMG_02_support_high_F", + "I_HMG_02_weapon_F", + "I_Mortar_01_support_F", + "I_Mortar_01_weapon_F", + "I_UAV_01_backpack_F", + "I_UAV_06_backpack_F", + "I_UAV_06_medical_backpack_F", + "I_UGV_02_Demining_backpack_F", + "I_UGV_02_Science_backpack_F", + "O_AA_01_weapon_F", + "O_AT_01_weapon_F", + "O_GMG_01_A_weapon_F", + "O_GMG_01_high_weapon_F", + "O_GMG_01_weapon_F", + "O_HMG_01_A_weapon_F", + "O_HMG_01_high_weapon_F", + "O_HMG_01_support_F", + "O_HMG_01_support_high_F", + "O_HMG_01_weapon_F", + "O_Mortar_01_support_F", + "O_Mortar_01_weapon_F", + "O_UAV_01_backpack_F", + "O_UAV_06_backpack_F", + "O_UAV_06_medical_backpack_F", + "O_UGV_02_Demining_backpack_F", + "O_UGV_02_Science_backpack_F", + "RHS_AGS30_Gun_Bag", + "RHS_AGS30_Tripod_Bag", + "RHS_DShkM_Gun_Bag", + "RHS_DShkM_TripodHigh_Bag", + "RHS_DShkM_TripodLow_Bag", + "RHS_Kord_Gun_Bag", + "RHS_Kord_Tripod_Bag", + "RHS_Kornet_Gun_Bag", + "RHS_Kornet_Tripod_Bag", + "RHS_M2_Gun_Bag", + "RHS_M2_MiniTripod_Bag", + "RHS_M2_Tripod_Bag", + "rhs_M252_Bipod_Bag", + "rhs_M252_Gun_Bag", + "RHS_Metis_Gun_Bag", + "RHS_Metis_Tripod_Bag", + "RHS_Mk19_Gun_Bag", + "RHS_Mk19_Tripod_Bag", + "RHS_NSV_Gun_Bag", + "RHS_NSV_Tripod_Bag", + "RHS_Podnos_Bipod_Bag", + "RHS_Podnos_Gun_Bag", + "RHS_SPG9_Gun_Bag", + "RHS_SPG9_Tripod_Bag", + "rhs_Tow_Gun_Bag", + "rhs_TOW_Tripod_Bag", + "UK3CB_BAF_L111A1", + "UK3CB_BAF_L134A1", + "UK3CB_BAF_L16_Tripod", + "UK3CB_BAF_L16", + "UK3CB_BAF_M6", + "UK3CB_BAF_Tripod", + "uns_M1_81mm_mortar_US_Bag", + "uns_M1919_low_US_Bag", + "uns_M2_60mm_mortar_US_Bag", + "uns_m2_high_US_Bag", + "uns_M2_low_US_Bag", + "uns_M30_107mm_mortar_US_Bag", + "uns_M60_high_US_Bag", + "uns_M60_low_US_Bag", + "uns_MK18_low_US_Bag", + "uns_STABO_US_Bag", + "uns_Tripod_Bag", + "Uns_US_searchlight_Bag" +]; diff --git a/Missionframework/arsenal_presets/bwmod.sqf b/Missionframework/presets/arsenal/bwmod.sqf similarity index 99% rename from Missionframework/arsenal_presets/bwmod.sqf rename to Missionframework/presets/arsenal/bwmod.sqf index 45a9c2c40..d95511895 100644 --- a/Missionframework/arsenal_presets/bwmod.sqf +++ b/Missionframework/presets/arsenal/bwmod.sqf @@ -1,6 +1,12 @@ /* - BWMod Arsenal Preset - Last Update: 2020-05-08 + File: bwmod.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-03 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + BWMod arsenal preset. Needed: - BWMod - https://steamcommunity.com/sharedfiles/filedetails/?id=1200127537 @@ -11,7 +17,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ "BWA3_Bunkerfaust", // Bunkerfaust "BWA3_CarlGustav", // Leuchtbüchse 84 mm "BWA3_Fliegerfaust", // Fliegerfaust 2 Stinger @@ -77,7 +83,7 @@ GRLIB_arsenal_weapons = [ "BWA3_RGW90" // RGW 90 ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ "BWA3_10Rnd_127x99_G82_AP_Tracer", // G82 12.7x99mm 10Rnd Mag (AP Tracer) "BWA3_10Rnd_127x99_G82_AP", // G82 12.7x99mm 10Rnd Mag (AP) "BWA3_10Rnd_127x99_G82_Raufoss_Tracer_Dim", // G82 12.7x99mm Mk211 10Rnd Mag (Raufoss IR-DIM) @@ -170,7 +176,7 @@ GRLIB_arsenal_magazines = [ "UGL_FlareYellow_F" // Flare Round (Yellow) ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Uniforms "BWA3_Uniform_Crew_Fleck", // Boilersuit (Flecktart) "BWA3_Uniform_Crew_Multi", // Boilersuit (Multitarn) @@ -470,7 +476,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "BWA3_AssaultPack_Fleck_Medic", // Assault Pack (Flecktarn, Medic) "BWA3_AssaultPack_Fleck", // Assault Pack (Flecktarn) "BWA3_AssaultPack_Multi_Medic", // Assault Pack (Multitarn, Medic) diff --git a/Missionframework/arsenal_presets/csat.sqf b/Missionframework/presets/arsenal/csat.sqf similarity index 98% rename from Missionframework/arsenal_presets/csat.sqf rename to Missionframework/presets/arsenal/csat.sqf index f271cbd63..8e37e37d2 100644 --- a/Missionframework/arsenal_presets/csat.sqf +++ b/Missionframework/presets/arsenal/csat.sqf @@ -1,6 +1,12 @@ /* - CSAT Arsenal Preset - Last Update: 2020-05-08 + File: csat.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-03 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CSAT arsenal preset. Needed: - None @@ -11,7 +17,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ "arifle_AK12_arid_F", // AK-12 7.62 mm (Arid) "arifle_AK12_F", // AK-12 7.62 mm "arifle_AK12_GL_arid_F", // AK-12 7.62 mm (Arid) @@ -100,11 +106,11 @@ GRLIB_arsenal_weapons = [ "srifle_GM6_ghex_F" // GM6 Lynx 12.7 mm (Green Hex) ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Vanilla Standard Items "Binocular", // Binoculars "DroneDetector", // Drone Detector @@ -374,7 +380,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "B_AssaultPack_blk", // Assault Pack (Black) "B_AssaultPack_ocamo", // Assault Pack (Hex) "B_AssaultPack_rgr", // Assault Pack (Green) diff --git a/Missionframework/presets/arsenal/custom.sqf b/Missionframework/presets/arsenal/custom.sqf new file mode 100644 index 000000000..d5e0de40b --- /dev/null +++ b/Missionframework/presets/arsenal/custom.sqf @@ -0,0 +1,26 @@ +/* + File: custom.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-11 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Custom arsenal preset template. +*/ + +KPLIB_arsenalWeapons = [ + +]; + +KPLIB_arsenalMagazines = [ + +]; + +KPLIB_arsenalItems = [ + +]; + +KPLIB_arsenalBackpacks = [ + +]; diff --git a/Missionframework/arsenal_presets/gm_east.sqf b/Missionframework/presets/arsenal/gm_east.sqf similarity index 95% rename from Missionframework/arsenal_presets/gm_east.sqf rename to Missionframework/presets/arsenal/gm_east.sqf index 045be5a04..77eab645f 100644 --- a/Missionframework/arsenal_presets/gm_east.sqf +++ b/Missionframework/presets/arsenal/gm_east.sqf @@ -1,14 +1,21 @@ /* - Global Mobilization East Germany Arsenal Preset + File: gm_east.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-07 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Global Mobilization East Germany arsenal preset. Mods needed: - - Global Mobilization + - Global Mobilization Mods optional: - - None + - None */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ // AK-74 "gm_mpiak74n_brn", "gm_mpiaks74nk_brn", @@ -32,7 +39,7 @@ GRLIB_arsenal_weapons = [ "gm_rpg7_prp_pgo7v" ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ // LP1 26.5mm "gm_1Rnd_265mm_flare_single_grn_gc", @@ -82,7 +89,7 @@ GRLIB_arsenal_magazines = [ "gm_mine_at_tm46" ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Uniforms "gm_gc_army_uniform_dress_80_gry", @@ -190,7 +197,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "gm_gc_army_backpack_80_at_str", "gm_gc_army_backpack_80_lmg_str", "gm_gc_army_backpack_80_mgk_str", diff --git a/Missionframework/arsenal_presets/gm_west.sqf b/Missionframework/presets/arsenal/gm_west.sqf similarity index 96% rename from Missionframework/arsenal_presets/gm_west.sqf rename to Missionframework/presets/arsenal/gm_west.sqf index b65999011..557e3fb7f 100644 --- a/Missionframework/arsenal_presets/gm_west.sqf +++ b/Missionframework/presets/arsenal/gm_west.sqf @@ -1,16 +1,21 @@ /* - Global Mobilization West Germany Arsenal Preset - + File: gm_west.sqf Author: Dahlgren - https://github.com/Dahlgren + Date: 2019-04-30 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Global Mobilization West Germany arsenal preset. Mods needed: - - Global Mobilization + - Global Mobilization Mods optional: - - None + - None */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ // G3A3 + G3A4 "gm_g3a3_oli", "gm_g3a4_oli", @@ -34,7 +39,7 @@ GRLIB_arsenal_weapons = [ "gm_pzf84_oli" ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ // G3A3 + G3A4 "gm_20rnd_762x51mm_b_t_dm21_g3_blk", "gm_20rnd_762x51mm_b_t_dm21a1_g3_blk", @@ -110,7 +115,7 @@ GRLIB_arsenal_magazines = [ "gm_mine_at_dm21" ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Uniforms "gm_ge_army_uniform_crew_80_oli", "gm_ge_army_uniform_soldier_80_oli", @@ -239,7 +244,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "gm_ge_army_backpack_80_oli", "gm_ge_backpack_satchel_80_blk", "gm_ge_backpack_satchel_80_san" diff --git a/Missionframework/arsenal_presets/rhsusaf.sqf b/Missionframework/presets/arsenal/rhsusaf.sqf similarity index 99% rename from Missionframework/arsenal_presets/rhsusaf.sqf rename to Missionframework/presets/arsenal/rhsusaf.sqf index 10bb3600c..8fa23da9f 100644 --- a/Missionframework/arsenal_presets/rhsusaf.sqf +++ b/Missionframework/presets/arsenal/rhsusaf.sqf @@ -1,6 +1,12 @@ /* - RHS United States Armed Forces Arsenal Preset - Last Update: 2020-05-08 + File: rhsusaf.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-03-16 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + RHSUSAF arsenal preset. Needed: - RHSUSAF - https://steamcommunity.com/sharedfiles/filedetails/?id=843577117 @@ -11,7 +17,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ "rhs_weap_fgm148", // FGM-148 Javelin "rhs_weap_fim92", // FIM-92F "rhs_weap_hk416d10_LMT_d", // HK416 D10 (SOPMOD Stock/Desert) @@ -134,7 +140,7 @@ GRLIB_arsenal_weapons = [ "rhsusf_weap_MP7A2" // MP7A2 ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ "rhs_fgm148_magazine_AT", // Javelin AT "rhs_fgm172a_magazine_AT", // FGM172A SRAW "rhs_fgm172b_magazine_MPV", // FGM172B SRAW-MPV @@ -356,7 +362,7 @@ GRLIB_arsenal_magazines = [ "TrainingMine_Mag" // Training Mine ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Uniforms "rhs_uniform_abu", // Airman Battle Uniform "rhs_uniform_acu_ocp", // Army Combat Uniform (OCP) @@ -947,7 +953,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "B_rhsusf_B_BACKPACK", // Eagle A-III OCP (Raven) "rhsusf_assault_eagleaiii_coy", // Eagle A-III Coyote "rhsusf_assault_eagleaiii_ocp", // Eagle A-III OEF-CP diff --git a/Missionframework/arsenal_presets/sfp.sqf b/Missionframework/presets/arsenal/sfp.sqf similarity index 99% rename from Missionframework/arsenal_presets/sfp.sqf rename to Missionframework/presets/arsenal/sfp.sqf index 970ebcdb4..3b2be3462 100644 --- a/Missionframework/arsenal_presets/sfp.sqf +++ b/Missionframework/presets/arsenal/sfp.sqf @@ -1,6 +1,12 @@ /* - Swedish Forces Pack Arsenal Preset - Last Update: 2020-05-03 + File: sfp.sqf + Author: Dahlgren - https://github.com/Dahlgren + Date: 2017-07-17 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + SFP arsenal preset. Needed: - SFP: Swedish Forces Pack - https://steamcommunity.com/sharedfiles/filedetails/?id=826911897 @@ -11,7 +17,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ "sfp_20Rnd_762x51_ak4", // Ak 4C "sfp_ag90_base", // Ag 90B "sfp_ak4_m203", // Ak 4 M203 @@ -60,7 +66,7 @@ GRLIB_arsenal_weapons = [ "sfp_signpist50" // Signalpistol 80 (Flare) ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ "sfp_100Rnd_762x51_ksp58", // 7.62mm 100Rnd "sfp_10Rnd_127x99_ag90", // 12.7mm 10Rnd Ag90 Mag "sfp_12Gauge_8rd_Pellets", // 12 Gauge 8 Rnd Buckshopt @@ -165,7 +171,7 @@ GRLIB_arsenal_magazines = [ "UGL_FlareYellow_F" // Flare Round (Yellow) ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Uniforms "sfp_drysuit", // Dry Suit "sfp_ghillie_desert_uniform", // Ghillie suit (Desert) @@ -476,7 +482,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "sfp_backpack_grg_loader", // GRG Loader (Backpack) "sfp_backpack_lk35", // LK 35 "sfp_backpack_sjvv9", // Medic Bag diff --git a/Missionframework/arsenal_presets/unsung.sqf b/Missionframework/presets/arsenal/unsung.sqf similarity index 99% rename from Missionframework/arsenal_presets/unsung.sqf rename to Missionframework/presets/arsenal/unsung.sqf index ffb689239..232a3f110 100644 --- a/Missionframework/arsenal_presets/unsung.sqf +++ b/Missionframework/presets/arsenal/unsung.sqf @@ -1,6 +1,12 @@ /* - The Unsung Vietnam War Mod US Arsenal Preset - Last Update: 2020-05-06 + File: unsung.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-07-24 + Last Update: 2020-05-11 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Unsung arsenal preset. Needed: - Unsung - https://steamcommunity.com/sharedfiles/filedetails/?id=943001311 @@ -11,7 +17,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ "uns_357m", // Colt Lawman Mk.III (.357) "uns_38spec", // S/W Model 10 (.38 Spec) "uns_ak47_49", // AK-47/49 @@ -186,7 +192,7 @@ GRLIB_arsenal_weapons = [ "uns_xm177e2" // XM-177E2 ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ "Mine", // Mine Type 59 (Anti Tank) "MineE", // Mine TM57 (Anti Vehicle) "PipeBomb", // Explosive Charge @@ -479,7 +485,7 @@ GRLIB_arsenal_magazines = [ "TrainingMine_Mag" // Training Mine ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Uniforms "UNS_ARMY_BDU_101stAB1stlt", // ARMY BDU_101stAB 1stLT "UNS_ARMY_BDU_101stAB1stsgt", // ARMY BDU_101stAB 1stSGT @@ -1820,7 +1826,7 @@ GRLIB_arsenal_items = [ "tf_microdagr" // MicroDAGR Radio Programmer ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "UNS_Alice_1", // Alice Pack 1 "UNS_Alice_2", // Alice Pack 2 "UNS_Alice_3", // Alice Pack 3 diff --git a/Missionframework/arsenal_presets/vanilla_aaf.sqf b/Missionframework/presets/arsenal/vanilla_aaf.sqf similarity index 98% rename from Missionframework/arsenal_presets/vanilla_aaf.sqf rename to Missionframework/presets/arsenal/vanilla_aaf.sqf index 146a75ffa..1e24093a2 100644 --- a/Missionframework/arsenal_presets/vanilla_aaf.sqf +++ b/Missionframework/presets/arsenal/vanilla_aaf.sqf @@ -1,6 +1,6 @@ /* AAF Arsenal Preset - Last Update: 2020-08-15 + Last Update: 2020-09-16 Needed: - None Optional: @@ -9,7 +9,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ // Primary "hgun_PDW2000_F", // PDW2000 9 mm "arifle_Mk20_F", // Mk20 5.56 mm (Camo) @@ -19,22 +19,22 @@ GRLIB_arsenal_weapons = [ "srifle_EBR_F", // Mk18 ABR 7.62 mm "arifle_SDAR_F", // SDAR 5.56 mm "LMG_Mk200_F", // Mk200 6.5 mm - + // Handgun "hgun_ACPC2_F", // ACP-C2 .45 ACP - + // Launcher "launch_I_Titan_F", // Titan MPRL (Digital) "launch_I_Titan_short_F", // Titan MPRL Compact (Olive) "launch_NLAW_F", // PCML - "launch_MRAWS_olive_rail_F" // MAAWS Mk4 Mod 0 (Olive) + "launch_MRAWS_olive_rail_F" // MAAWS Mk4 Mod 0 (Olive) ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Vanilla Standard Items "Binocular", // Binoculars "DroneDetector", // Drone Detector @@ -48,11 +48,11 @@ GRLIB_arsenal_items = [ "MineDetector", // Mine Detector "Rangefinder", // Rangefinder "ToolKit", // Toolkit - + // Faction Specific Items "I_UavTerminal", // UAV Terminal [AAF] "NVGoggles_INDEP", // NV Goggles (Green) - "Laserdesignator_03", // Laser Designator (Olive) + "Laserdesignator_03", // Laser Designator (Olive) // Uniforms "U_I_CombatUniform", // Combat Fatigues [AAF] @@ -67,7 +67,7 @@ GRLIB_arsenal_items = [ "U_I_Wetsuit", // Wetsuit [AAF] "U_Tank_green_F", // Tanker Coveralls [AAF] "U_I_CBRN_Suit_01_AAF_F", // CBRN Suit [AAF] - + // Headgear "H_HelmetIA", // Modular Helmet "H_Beret_blk", // Beret (Black) @@ -105,7 +105,7 @@ GRLIB_arsenal_items = [ "V_Safety_orange_F", // Safety Vest (Orange) "V_Safety_yellow_F", // Safety Vest (Yellow) "V_DeckCrew_red_F", // Deck Crew Vest (Red) - + // Items "acc_pointer_IR", // IR Laser Pointer "acc_flashlight", // Flashlight @@ -125,7 +125,7 @@ GRLIB_arsenal_items = [ "optic_nvs", // NVS "optic_tws", // TWS "optic_tws_mg", // TWS MG - + // ACE Items "ACE_acc_pointer_green", // Laser Pointer (green) "ACE_adenosine", // Adenosine autoinjector @@ -228,7 +228,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "B_Parachute", // Steerable Parachute "B_AssaultPack_dgtl", // Assault Pack (Digital) "B_FieldPack_blk", // Field Pack (Black) diff --git a/Missionframework/arsenal_presets/vanilla_csat_ghex.sqf b/Missionframework/presets/arsenal/vanilla_csat_ghex.sqf similarity index 99% rename from Missionframework/arsenal_presets/vanilla_csat_ghex.sqf rename to Missionframework/presets/arsenal/vanilla_csat_ghex.sqf index 3e074fc41..b6fdfdb02 100644 --- a/Missionframework/arsenal_presets/vanilla_csat_ghex.sqf +++ b/Missionframework/presets/arsenal/vanilla_csat_ghex.sqf @@ -1,6 +1,6 @@ /* CSAT Green Hex Arsenal Preset - Last Update: 2020-08-17 + Last Update: 2020-09-16 Needed: - None Optional: @@ -9,7 +9,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ // Primary "SMG_02_F", // Sting 9 mm "arifle_SDAR_F", // SDAR 5.56 mm @@ -22,11 +22,11 @@ GRLIB_arsenal_weapons = [ "arifle_CTAR_GL_blk_F", // CAR-95 GL 5.8 mm (Black) "arifle_CTARS_blk_F", // CAR-95-1 5.8mm (Black) "arifle_ARX_ghex_F", // Type 115 6.5 mm (Green Hex) - + // Handgun "hgun_Rook40_F", // Rook-40 9 mm "hgun_Pistol_heavy_02_F", // Zubr .45 ACP - + // Launcher "launch_RPG32_ghex_F", // RPG-42 Alamut (Green Hex) "launch_O_Titan_ghex_F", // Titan MPRL (Green Hex) @@ -34,11 +34,11 @@ GRLIB_arsenal_weapons = [ "launch_O_Vorona_green_F" // 9M135 Vorona (Green) ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Vanilla Standard Items "Binocular", // Binoculars "DroneDetector", // Drone Detector @@ -52,7 +52,7 @@ GRLIB_arsenal_items = [ "MineDetector", // Mine Detector "Rangefinder", // Rangefinder "ToolKit", // Toolkit - + // Faction Specific Items "O_UavTerminal", // UAV Terminal [CSAT] "Laserdesignator_02_ghex_F", // Laser Designator (Green Hex) @@ -66,7 +66,7 @@ GRLIB_arsenal_items = [ "U_O_T_Sniper_F", // Ghillie Suit (Green Hex) [CSAT] "U_O_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [CSAT] "U_O_V_Soldier_Viper_F", // Special Purpose Suit (Green Hex) - + // Headgear "H_Beret_ocamo", // Beret [CSAT] "H_Beret_CSAT_01_F", // Beret (Red) [CSAT] @@ -103,7 +103,7 @@ GRLIB_arsenal_items = [ "G_Shades_Red", // Shades (Red) "G_AirPurifyingRespirator_02_black_F", // APR (Black) [CSAT] "G_AirPurifyingRespirator_02_olive_F", // APR (Olive) [CSAT] - + // Vests "V_TacVest_oli", // Tactical Vest (Olive) "V_Chestrig_khk", // Chest Rig (Khaki) @@ -115,7 +115,7 @@ GRLIB_arsenal_items = [ "V_Safety_orange_F", // Safety Vest (Orange) "V_Safety_yellow_F", // Safety Vest (Yellow) "V_DeckCrew_green_F", // Deck Crew Vest (Green) - + // Items "acc_pointer_IR", // IR Laser Pointer "acc_flashlight", // Flashlight @@ -243,7 +243,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "B_Parachute", // Steerable Parachute "B_FieldPack_blk", // Field Pack (Black) "B_FieldPack_ghex_F", // Field Pack (Green Hex) diff --git a/Missionframework/arsenal_presets/vanilla_csat_hex.sqf b/Missionframework/presets/arsenal/vanilla_csat_hex.sqf similarity index 99% rename from Missionframework/arsenal_presets/vanilla_csat_hex.sqf rename to Missionframework/presets/arsenal/vanilla_csat_hex.sqf index 827b83dc9..2c346261e 100644 --- a/Missionframework/arsenal_presets/vanilla_csat_hex.sqf +++ b/Missionframework/presets/arsenal/vanilla_csat_hex.sqf @@ -1,6 +1,6 @@ /* CSAT Hex Arsenal Preset - Last Update: 2020-08-17 + Last Update: 2020-09-16 Needed: - None Optional: @@ -9,7 +9,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ // Primary "arifle_Katiba_F", // Katiba 6.5 mm "arifle_Katiba_C_F", // Katiba Carbine 6.5 mm @@ -23,11 +23,11 @@ GRLIB_arsenal_weapons = [ "srifle_DMR_05_blk_F", // Cyrus 9.3 mm (Black) "MMG_01_hex_F", // Navid 9.3 mm (Hex) "arifle_ARX_hex_F", // Type 115 6.5 mm (Hex) - + // Handgun "hgun_Rook40_F", // Rook-40 9 mm "hgun_Pistol_heavy_02_F", // Zubr .45 ACP - + // Launcher "launch_RPG32_F", // RPG-42 Alamut "launch_O_Titan_F", // Titan MPRL (Hex) @@ -35,11 +35,11 @@ GRLIB_arsenal_weapons = [ "launch_O_Vorona_brown_F" // 9M135 Vorona (Brown) ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Vanilla Standard Items "Binocular", // Binoculars "DroneDetector", // Drone Detector @@ -53,7 +53,7 @@ GRLIB_arsenal_items = [ "MineDetector", // Mine Detector "Rangefinder", // Rangefinder "ToolKit", // Toolkit - + // Faction Specific Items "O_UavTerminal", // UAV Terminal [CSAT] "Laserdesignator_02", // Laser Designator (Hex) @@ -112,7 +112,7 @@ GRLIB_arsenal_items = [ "G_Shades_Red", // Shades (Red) "G_AirPurifyingRespirator_02_black_F", // APR (Black) [CSAT] "G_AirPurifyingRespirator_02_sand_F", // APR (Sand) [CSAT] - + // Vests "V_Chestrig_khk", // Chest Rig (Khaki) "V_HarnessOGL_brn", // LBV Grenadier Harness @@ -127,7 +127,7 @@ GRLIB_arsenal_items = [ "V_Safety_orange_F", // Safety Vest (Orange) "V_Safety_yellow_F", // Safety Vest (Yellow) "V_DeckCrew_green_F", // Deck Crew Vest (Green) - + // Items "acc_pointer_IR", // IR Laser Pointer "acc_flashlight", // Flashlight @@ -257,7 +257,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "B_Parachute", // Steerable Parachute "B_AssaultPack_ocamo", // Assault Pack (Hex) "B_Carryall_cbr", // Carryall Backpack (Coyote) diff --git a/Missionframework/arsenal_presets/vanilla_ldf.sqf b/Missionframework/presets/arsenal/vanilla_ldf.sqf similarity index 98% rename from Missionframework/arsenal_presets/vanilla_ldf.sqf rename to Missionframework/presets/arsenal/vanilla_ldf.sqf index 2d0411842..6cf9e5e43 100644 --- a/Missionframework/arsenal_presets/vanilla_ldf.sqf +++ b/Missionframework/presets/arsenal/vanilla_ldf.sqf @@ -1,6 +1,6 @@ /* LDF Arsenal Preset - Last Update: 2020-08-17 + Last Update: 2020-09-16 Needed: - None Optional: @@ -9,7 +9,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ // Primary "SMG_03C_black", // ADR-97C 5.7 mm (Black) "SMG_03C_TR_black", // ADR-97C TR 5.7 mm (Black) @@ -22,10 +22,10 @@ GRLIB_arsenal_weapons = [ "arifle_MSBS65_Mark_black_F", // Promet MR 6.5 mm (Black) "arifle_MSBS65_UBS_F", // Promet SG 6.5 mm "arifle_MSBS65_UBS_black_F", // Promet SG 6.5 mm (Black) - + // Handgun "hgun_Pistol_heavy_01_green_F", // 4-five .45 ACP (Green) - + // Launcher "launch_NLAW_F", // PCML "launch_I_Titan_eaf_F", // Titan MPRL (Geometric) @@ -33,11 +33,11 @@ GRLIB_arsenal_weapons = [ "launch_MRAWS_green_F" // MAAWS Mk4 Mod 1 (Green) ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Vanilla Standard Items "Binocular", // Binoculars "DroneDetector", // Drone Detector @@ -51,13 +51,13 @@ GRLIB_arsenal_items = [ "MineDetector", // Mine Detector "Rangefinder", // Rangefinder "ToolKit", // Toolkit - + // Faction Specific Items "I_E_UavTerminal", // UAV Terminal [LDF] "Laserdesignator_03", // Laser Designator (Sand) "NVGoggles_INDEP", // NV Goggles (Green) "NVGogglesB_grn_F", // ENVG-II (Green) - + // Uniforms "U_B_PilotCoveralls", // Pilot Coveralls [NATO] "U_C_CBRN_Suit_01_White_F", // CBRN Suit (White) @@ -82,7 +82,7 @@ GRLIB_arsenal_items = [ "H_PilotHelmetHeli_I_E", // Heli Pilot Helmet [LDF] "H_MilCap_eaf", // Military Cap [LDF] "H_PilotHelmetFighter_I_E", // Pilot Helmet [LDF] - + // Facegear "G_Aviator", // Aviator Glasses "G_Combat", // Combat Goggles @@ -110,15 +110,15 @@ GRLIB_arsenal_items = [ "V_Chestrig_blk", // Chest Rig (Black) "V_BandollierB_oli", // Slash Bandolier (Olive) "V_CarrierRigKBT_01_light_EAF_F", // Modular Carrier Lite (Geometric) - "V_CarrierRigKBT_01_light_Olive_F", // Modular Carrier Lite (Olive) + "V_CarrierRigKBT_01_light_Olive_F", // Modular Carrier Lite (Olive) "V_CarrierRigKBT_01_heavy_EAF_F", // Modular Carrier GL Rig (Geometric) - "V_CarrierRigKBT_01_heavy_Olive_F", // Modular Carrier GL Rig (Olive) + "V_CarrierRigKBT_01_heavy_Olive_F", // Modular Carrier GL Rig (Olive) "V_CarrierRigKBT_01_EAF_F", // Modular Carrier Vest (Geometric) - "V_CarrierRigKBT_01_Olive_F", // Modular Carrier Vest (Olive) + "V_CarrierRigKBT_01_Olive_F", // Modular Carrier Vest (Olive) "V_Safety_orange_F", // Safety Vest (Orange) "V_Safety_yellow_F", // Safety Vest (Yellow) "V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow) - + // Items "acc_pointer_IR", // IR Laser Pointer "acc_flashlight", // Flashlight @@ -131,7 +131,7 @@ GRLIB_arsenal_items = [ "optic_SOS", // MOS "bipod_01_f_blk", // Bipod (Black) [NATO] "muzzle_snds_H", // Sound Suppressor (6.5 mm) - "muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black) + "muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black) "muzzle_snds_h_mg_blk_f", // Sound Suppressor LMG (6.5 mm, Black) "muzzle_snds_570", // Sound Suppressor (5.7 mm) "optic_nvs", // NVS @@ -240,7 +240,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "B_Parachute", // Steerable Parachute "B_AssaultPack_eaf_F", // Assault Pack (Geometric) "B_Carryall_eaf_F", // Carryall Backpack (Geometric) diff --git a/Missionframework/arsenal_presets/vanilla_nato_mtp.sqf b/Missionframework/presets/arsenal/vanilla_nato_mtp.sqf similarity index 99% rename from Missionframework/arsenal_presets/vanilla_nato_mtp.sqf rename to Missionframework/presets/arsenal/vanilla_nato_mtp.sqf index db185777a..ad4c1c837 100644 --- a/Missionframework/arsenal_presets/vanilla_nato_mtp.sqf +++ b/Missionframework/presets/arsenal/vanilla_nato_mtp.sqf @@ -1,6 +1,6 @@ /* NATO MTP Arsenal Preset - Last Update: 2020-08-17 + Last Update: 2020-09-16 Needed: - None Optional: @@ -9,7 +9,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ // Primary "arifle_MX_F", // MX 6.5 mm "arifle_MX_GL_F", // MX 3GL 6.5 mm @@ -22,11 +22,11 @@ GRLIB_arsenal_weapons = [ "MMG_02_sand_F", // SPMG .338 (Sand) "srifle_DMR_02_sniper_F", // MAR-10 .338 (Sand) "srifle_DMR_03_tan_F", // Mk-I EMR 7.62 mm (Sand) - + // Handgun "hgun_P07_F", // P07 9 mm "hgun_Pistol_heavy_01_F", // 4-five .45 ACP - + // Launcher "launch_B_Titan_F", // Titan MPRL (Sand) "launch_B_Titan_short_F", // Titan MPRL Compact (Sand) @@ -34,11 +34,11 @@ GRLIB_arsenal_weapons = [ "launch_MRAWS_sand_F" // MAAWS Mk4 Mod 1 (Sand) ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Vanilla Standard Items "Binocular", // Binoculars "DroneDetector", // Drone Detector @@ -52,7 +52,7 @@ GRLIB_arsenal_items = [ "MineDetector", // Mine Detector "Rangefinder", // Rangefinder "ToolKit", // Toolkit - + // Faction Specific Items "B_UavTerminal", // UAV Terminal [NATO] "Laserdesignator", // Laser Designator (Sand) @@ -134,7 +134,7 @@ GRLIB_arsenal_items = [ "V_Safety_orange_F", // Safety Vest (Orange) "V_Safety_yellow_F", // Safety Vest (Yellow) "V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow) - + // Items "acc_pointer_IR", // IR Laser Pointer "acc_flashlight", // Flashlight @@ -268,7 +268,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "B_AssaultPack_blk", // Assault Pack (Black) "B_AssaultPack_rgr", // Assault Pack (Green) "B_AssaultPack_mcamo", // Assault Pack (MTP) diff --git a/Missionframework/arsenal_presets/vanilla_nato_tropic.sqf b/Missionframework/presets/arsenal/vanilla_nato_tropic.sqf similarity index 98% rename from Missionframework/arsenal_presets/vanilla_nato_tropic.sqf rename to Missionframework/presets/arsenal/vanilla_nato_tropic.sqf index bfd1b21f3..0d4cb6f7b 100644 --- a/Missionframework/arsenal_presets/vanilla_nato_tropic.sqf +++ b/Missionframework/presets/arsenal/vanilla_nato_tropic.sqf @@ -1,6 +1,6 @@ /* NATO Tropic Arsenal Preset - Last Update: 2020-08-12 + Last Update: 2020-09-16 Needed: - None Optional: @@ -9,7 +9,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ // Primary "arifle_MX_khk_F", // MX 6.5 mm (Khaki) "arifle_MX_GL_khk_F", // MX 3GL 6.5 mm (Khaki) @@ -30,11 +30,11 @@ GRLIB_arsenal_weapons = [ "arifle_SPAR_02_khk_F", // SPAR-16S 5.56 mm (Khaki) "arifle_SPAR_03_blk_F", // SPAR-17 7.62 mm (Black) "arifle_SPAR_03_khk_F", // SPAR-17 7.62 mm (Khaki) - + // Handgun "hgun_P07_khk_F", // P07 9 mm (Khaki) "hgun_Pistol_heavy_01_F", // 4-five .45 ACP - + // Launcher "launch_NLAW_F", // PCML "launch_B_Titan_tna_F", // Titan MPRL (Tropic) @@ -42,11 +42,11 @@ GRLIB_arsenal_weapons = [ "launch_MRAWS_green_F" // MAAWS Mk4 Mod 1 (Green) ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Vanilla Standard Items "Binocular", // Binoculars "DroneDetector", // Drone Detector @@ -60,7 +60,7 @@ GRLIB_arsenal_items = [ "MineDetector", // Mine Detector "Rangefinder", // Rangefinder "ToolKit", // Toolkit - + // Faction Specific Items "B_UavTerminal", // UAV Terminal [NATO] "Laserdesignator_01_khk_F", // Laser Designator (Khaki) @@ -114,7 +114,7 @@ GRLIB_arsenal_items = [ "G_Combat_Goggles_tna_F", // Combat Goggles (Green) "G_Balaclava_TI_tna_F", // Stealth Balaclava (Green) "G_Balaclava_TI_G_tna_F", // Stealth Balaclava (Green, Goggles) - + // Vests "V_PlateCarrierGL_tna_F", // Carrier GL Rig (Tropic) "V_PlateCarrier1_tna_F", // Carrier Lite (Tropic) @@ -131,7 +131,7 @@ GRLIB_arsenal_items = [ "V_Safety_orange_F", // Safety Vest (Orange) "V_Safety_yellow_F", // Safety Vest (Yellow) "V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow) - + // Items "acc_pointer_IR", // IR Laser Pointer "acc_flashlight", // Flashlight @@ -155,9 +155,9 @@ GRLIB_arsenal_items = [ "bipod_01_f_blk", // Bipod (Black) [NATO] "bipod_01_F_khk", // Bipod (Khaki) [NATO] "muzzle_snds_H", // Sound Suppressor (6.5 mm) - "muzzle_snds_H_khk_F", // Sound Suppressor (6.5 mm, Khaki) + "muzzle_snds_H_khk_F", // Sound Suppressor (6.5 mm, Khaki) "muzzle_snds_338_black", // Sound Suppressor (.338, Black) - "muzzle_snds_338_green", // Sound Suppressor (.338, Green) + "muzzle_snds_338_green", // Sound Suppressor (.338, Green) "muzzle_snds_b", // Sound Suppressor (7.62 mm) "muzzle_snds_b_khk_f", // Sound Suppressor (7.62 mm, Khaki) "muzzle_snds_m", // Sound Suppressor (5.56 mm) @@ -165,7 +165,7 @@ GRLIB_arsenal_items = [ "optic_nvs", // NVS "optic_tws", // TWS "optic_tws_mg", // TWS MG - + // ACE Items "ACE_acc_pointer_green", // Laser Pointer (green) "ACE_adenosine", // Adenosine autoinjector @@ -268,7 +268,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "B_AssaultPack_blk", // Assault Pack (Black) "B_AssaultPack_rgr", // Assault Pack (Green) "B_AssaultPack_tna_F", // Assault Pack (Tropic) diff --git a/Missionframework/arsenal_presets/vanilla_nato_wdl.sqf b/Missionframework/presets/arsenal/vanilla_nato_wdl.sqf similarity index 99% rename from Missionframework/arsenal_presets/vanilla_nato_wdl.sqf rename to Missionframework/presets/arsenal/vanilla_nato_wdl.sqf index 6bd09e552..aad3c7817 100644 --- a/Missionframework/arsenal_presets/vanilla_nato_wdl.sqf +++ b/Missionframework/presets/arsenal/vanilla_nato_wdl.sqf @@ -1,6 +1,6 @@ /* NATO Woodland Arsenal Preset - Last Update: 2020-08-12 + Last Update: 2020-09-16 Needed: - None Optional: @@ -9,7 +9,7 @@ - TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801 */ -GRLIB_arsenal_weapons = [ +KPLIB_arsenalWeapons = [ // Primary "arifle_MX_Black_F", // MX 6.5 mm (Black) "arifle_MX_GL_Black_F", // MX 3GL 6.5 mm (Black) @@ -22,11 +22,11 @@ GRLIB_arsenal_weapons = [ "MMG_02_black_F", // SPMG .338 (Black) "srifle_DMR_02_F", // MAR-10 .338 (Black) "srifle_DMR_03_F", // Mk-I EMR 7.62 mm (Black) - + // Handgun "hgun_P07_khk_F", // P07 9 mm (Khaki) "hgun_Pistol_heavy_01_F", // 4-five .45 ACP - + // Launcher "launch_NLAW_F", // PCML "launch_B_Titan_tna_F", // Titan MPRL (Tropic) @@ -34,11 +34,11 @@ GRLIB_arsenal_weapons = [ "launch_MRAWS_green_F" // MAAWS Mk4 Mod 1 (Green) ]; -GRLIB_arsenal_magazines = [ +KPLIB_arsenalMagazines = [ ]; -GRLIB_arsenal_items = [ +KPLIB_arsenalItems = [ // Vanilla Standard Items "Binocular", // Binoculars "DroneDetector", // Drone Detector @@ -52,7 +52,7 @@ GRLIB_arsenal_items = [ "MineDetector", // Mine Detector "Rangefinder", // Rangefinder "ToolKit", // Toolkit - + // Faction Specific Items "B_UavTerminal", // UAV Terminal [NATO] "Laserdesignator_01_khk_F", // Laser Designator (Khaki) @@ -97,7 +97,7 @@ GRLIB_arsenal_items = [ "G_Squares", // Square Spectacles "G_Tactical_Clear", // Tactical Glasses "G_Tactical_Black", // Tactical Shades - + // Vests "V_PlateCarrierGL_wdl", // Carrier GL Rig (Woodland) "V_PlateCarrier1_wdl", // Carrier Lite (Woodland) @@ -110,7 +110,7 @@ GRLIB_arsenal_items = [ "V_Safety_orange_F", // Safety Vest (Orange) "V_Safety_yellow_F", // Safety Vest (Yellow) "V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow) - + // Items "acc_pointer_IR", // IR Laser Pointer "acc_flashlight", // Flashlight @@ -135,7 +135,7 @@ GRLIB_arsenal_items = [ "optic_nvs", // NVS "optic_tws", // TWS "optic_tws_mg", // TWS MG - + // ACE Items "ACE_acc_pointer_green", // Laser Pointer (green) "ACE_adenosine", // Adenosine autoinjector @@ -238,7 +238,7 @@ GRLIB_arsenal_items = [ "tf_rf7800str" // PF-7800S-TR ]; -GRLIB_arsenal_backpacks = [ +KPLIB_arsenalBackpacks = [ "B_AssaultPack_blk", // Assault Pack (Black) "B_AssaultPack_rgr", // Assault Pack (Green) "B_AssaultPack_wdl_F", // Assault Pack (Woodland) diff --git a/Missionframework/presets/civilians/apex.sqf b/Missionframework/presets/civilians/apex.sqf index 68b6b0c1e..2df2580ae 100644 --- a/Missionframework/presets/civilians/apex.sqf +++ b/Missionframework/presets/civilians/apex.sqf @@ -1,13 +1,22 @@ /* + File: apex.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Tanoa civilian preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ // Civilian classnames. -civilians = [ +KPLIB_c_units = [ "C_Man_casual_1_F_tanoan", "C_Man_casual_2_F_tanoan", "C_Man_casual_3_F_tanoan", @@ -25,7 +34,7 @@ civilians = [ ]; // Civilian vehicle classnames. -civilian_vehicles = [ +KPLIB_c_vehicles = [ "C_Quadbike_01_F", "C_Hatchback_01_F", "C_Hatchback_01_sport_F", diff --git a/Missionframework/presets/civilians/CUP_ChernoCivs.sqf b/Missionframework/presets/civilians/cup_cherno.sqf similarity index 81% rename from Missionframework/presets/civilians/CUP_ChernoCivs.sqf rename to Missionframework/presets/civilians/cup_cherno.sqf index f030141ee..f4a05d082 100644 --- a/Missionframework/presets/civilians/CUP_ChernoCivs.sqf +++ b/Missionframework/presets/civilians/cup_cherno.sqf @@ -1,15 +1,24 @@ /* + File: cup_cherno.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-19 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP Chernarus civilian preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Civilian classnames. -civilians = [ +KPLIB_c_units = [ "CUP_C_C_Assistant_01", "CUP_C_C_Citizen_02", "CUP_C_C_Citizen_01", @@ -51,7 +60,7 @@ civilians = [ ]; // Civilian vehicle classnames. -civilian_vehicles = [ +KPLIB_c_vehicles = [ "CUP_C_Skoda_Blue_CIV", "CUP_C_Skoda_Green_CIV", "CUP_C_Skoda_Red_CIV", diff --git a/Missionframework/presets/civilians/CUP_TakiCivs.sqf b/Missionframework/presets/civilians/cup_takistan.sqf similarity index 77% rename from Missionframework/presets/civilians/CUP_TakiCivs.sqf rename to Missionframework/presets/civilians/cup_takistan.sqf index 8aeb70806..497e98886 100644 --- a/Missionframework/presets/civilians/CUP_TakiCivs.sqf +++ b/Missionframework/presets/civilians/cup_takistan.sqf @@ -1,15 +1,24 @@ /* + File: cup_takistan.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-15 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP Takistan civilian preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Civilian classnames. -civilians = [ +KPLIB_c_units = [ "CUP_C_TK_Man_04", "CUP_C_TK_Man_04_Jack", "CUP_C_TK_Man_04_Waist", @@ -38,7 +47,7 @@ civilians = [ ]; // Civilian vehicle classnames. -civilian_vehicles = [ +KPLIB_c_vehicles = [ "CUP_C_TT650_TK_CIV", "CUP_C_S1203_CIV", "CUP_C_S1203_Ambulance_CIV", diff --git a/Missionframework/presets/civilians/custom.sqf b/Missionframework/presets/civilians/custom.sqf index 82d9d4027..f9dc8e5f7 100644 --- a/Missionframework/presets/civilians/custom.sqf +++ b/Missionframework/presets/civilians/custom.sqf @@ -1,13 +1,22 @@ /* + File: custom.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Custom (default A3 Civilians) civilian preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ // Civilian classnames. -civilians = [ +KPLIB_c_units = [ "C_Man_Fisherman_01_F", "C_man_w_worker_F", "C_man_1_1_F", @@ -34,7 +43,7 @@ civilians = [ ]; // Civilian vehicle classnames. -civilian_vehicles = [ +KPLIB_c_vehicles = [ "C_Quadbike_01_F", "C_Hatchback_01_F", "C_Hatchback_01_sport_F", diff --git a/Missionframework/presets/civilians/germany.sqf b/Missionframework/presets/civilians/germany.sqf index 4fdd8d9ed..1a74957ca 100644 --- a/Missionframework/presets/civilians/germany.sqf +++ b/Missionframework/presets/civilians/germany.sqf @@ -1,13 +1,22 @@ /* + File: germany.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-08 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Germany civilian preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - None + - None */ // Civilian classnames. -civilians = [ +KPLIB_c_units = [ "C_Man_casual_1_F_euro", "C_Man_casual_1_F_euro", "C_Man_casual_2_F_euro", @@ -28,7 +37,7 @@ civilians = [ ]; // Civilian vehicle classnames. -civilian_vehicles = [ +KPLIB_c_vehicles = [ "C_Truck_02_covered_F", "C_Truck_02_covered_F", "C_Truck_02_fuel_F", diff --git a/Missionframework/presets/civilians/middle_eastern.sqf b/Missionframework/presets/civilians/middle_eastern.sqf index 3fe1ca792..8c4208d2e 100644 --- a/Missionframework/presets/civilians/middle_eastern.sqf +++ b/Missionframework/presets/civilians/middle_eastern.sqf @@ -1,15 +1,22 @@ /* + File: middle_eastern.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-12-09 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Middle Eastern civilian preset. + Needed Mods: - - RHS USAF - - RHS AFRF - - Project OPFOR + - Project OPFOR Optional Mods: - - None + - None */ // Civilian classnames. -civilians = [ +KPLIB_c_units = [ "LOP_Tak_Civ_Random", "LOP_Tak_Civ_Man_06", "LOP_Tak_Civ_Man_08", @@ -29,7 +36,7 @@ civilians = [ ]; // Civilian vehicle classnames. -civilian_vehicles = [ +KPLIB_c_vehicles = [ "LOP_TAK_Civ_Hatchback", "LOP_TAK_Civ_Landrover", "LOP_TAK_Civ_Offroad", diff --git a/Missionframework/presets/civilians/RDSCiv.sqf b/Missionframework/presets/civilians/rds_civ.sqf similarity index 83% rename from Missionframework/presets/civilians/RDSCiv.sqf rename to Missionframework/presets/civilians/rds_civ.sqf index 8ade16001..c298dbc96 100644 --- a/Missionframework/presets/civilians/RDSCiv.sqf +++ b/Missionframework/presets/civilians/rds_civ.sqf @@ -1,13 +1,22 @@ /* + File: rds_civ.sqf + Author: PSYKO-nz - https://github.com/PSYKO-nz + Date: 2018-02-02 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + RDS civilian preset. + Needed Mods: - - RDS Civilian Pack + - RDS Civilian Pack Optional Mods: - - None + - None */ // Civilian classnames. -civilians = [ +KPLIB_c_units = [ "RDS_Assistant", "RDS_Citizen_Random", "RDS_Citizen2", @@ -49,7 +58,7 @@ civilians = [ ]; // Civilian vehicle classnames. -civilian_vehicles = [ +KPLIB_c_vehicles = [ "RDS_Van_01_fuel_F", "RDS_Gaz24_Civ_03", "RDS_Gaz24_Civ_01", diff --git a/Missionframework/presets/civilians/unsung.sqf b/Missionframework/presets/civilians/unsung.sqf index b84ddadd3..4479b32ac 100644 --- a/Missionframework/presets/civilians/unsung.sqf +++ b/Missionframework/presets/civilians/unsung.sqf @@ -1,13 +1,22 @@ /* + File: unsung.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-06-04 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Unsung civilian preset. + Needed Mods: - - The Unsung Vietnam War Mod + - Unsung Optional Mods: - - None + - None */ // Civilian classnames. -civilians = [ +KPLIB_c_units = [ "uns_civilian1", "uns_civilian1_b1", "uns_civilian2", @@ -19,7 +28,7 @@ civilians = [ ]; // Civilian vehicle classnames. -civilian_vehicles = [ +KPLIB_c_vehicles = [ "C_Truck_02_fuel_F", "C_Truck_02_transport_F", "C_Truck_02_covered_F" diff --git a/Missionframework/presets/opfor/aaf.sqf b/Missionframework/presets/enemies/aaf.sqf similarity index 81% rename from Missionframework/presets/opfor/aaf.sqf rename to Missionframework/presets/enemies/aaf.sqf index d87613191..db1e6b788 100644 --- a/Missionframework/presets/opfor/aaf.sqf +++ b/Missionframework/presets/enemies/aaf.sqf @@ -1,48 +1,57 @@ /* + File: aaf.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-03 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + AAF enemy preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "I_officer_F"; // Officer -opfor_squad_leader = "I_Soldier_SL_F"; // Squad Leader -opfor_team_leader = "I_Soldier_TL_F"; // Team Leader -opfor_sentry = "I_Soldier_lite_F"; // Rifleman (Lite) -opfor_rifleman = "I_soldier_F"; // Rifleman -opfor_rpg = "I_Soldier_LAT2_F"; // Rifleman (LAT) -opfor_grenadier = "I_Soldier_GL_F"; // Grenadier -opfor_machinegunner = "I_Soldier_AR_F"; // Autorifleman -opfor_heavygunner = "I_Soldier_AR_F"; // Heavy Gunner -opfor_marksman = "I_Soldier_M_F"; // Marksman -opfor_sharpshooter = "I_Soldier_M_F"; // Sharpshooter -opfor_sniper = "I_ghillie_sard_F"; // Sniper -opfor_at = "I_Soldier_AT_F"; // AT Specialist -opfor_aa = "I_Soldier_AA_F"; // AA Specialist -opfor_medic = "I_medic_F"; // Combat Life Saver -opfor_engineer = "I_engineer_F"; // Engineer -opfor_paratrooper = "B_soldier_PG_F"; // Paratrooper +KPLIB_o_officer = "I_officer_F"; // Officer +KPLIB_o_squadLeader = "I_Soldier_SL_F"; // Squad Leader +KPLIB_o_teamLeader = "I_Soldier_TL_F"; // Team Leader +KPLIB_o_sentry = "I_Soldier_lite_F"; // Rifleman (Lite) +KPLIB_o_rifleman = "I_soldier_F"; // Rifleman +KPLIB_o_riflemanLAT = "I_Soldier_LAT2_F"; // Rifleman (LAT) +KPLIB_o_grenadier = "I_Soldier_GL_F"; // Grenadier +KPLIB_o_machinegunner = "I_Soldier_AR_F"; // Autorifleman +KPLIB_o_heavyGunner = "I_Soldier_AR_F"; // Heavy Gunner +KPLIB_o_marksman = "I_Soldier_M_F"; // Marksman +KPLIB_o_sharpshooter = "I_Soldier_M_F"; // Sharpshooter +KPLIB_o_sniper = "I_ghillie_sard_F"; // Sniper +KPLIB_o_atSpecialist = "I_Soldier_AT_F"; // AT Specialist +KPLIB_o_aaSpecialist = "I_Soldier_AA_F"; // AA Specialist +KPLIB_o_medic = "I_medic_F"; // Combat Life Saver +KPLIB_o_engineer = "I_engineer_F"; // Engineer +KPLIB_o_paratrooper = "B_soldier_PG_F"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "I_MRAP_03_F"; // M-ATV -opfor_mrap_armed = "I_MRAP_03_hmg_F"; // MATV (HMG) -opfor_transport_helo = "I_Heli_Transport_02_F"; // Merlin -opfor_transport_truck = "I_Truck_02_covered_F"; // Kamaz Transport (Covered) -opfor_ammobox_transport = "I_Truck_02_transport_F"; // Kamaz Transport (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "I_Truck_02_fuel_F"; // Kamaz Fuel -opfor_ammo_truck = "I_Truck_02_ammo_F"; // Kamz Ammo -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Pod -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Pod -opfor_flag = "Flag_AAF_F"; // Flag +KPLIB_o_mrap = "I_MRAP_03_F"; // M-ATV +KPLIB_o_mrapArmed = "I_MRAP_03_hmg_F"; // MATV (HMG) +KPLIB_o_transportHeli = "I_Heli_Transport_02_F"; // Merlin +KPLIB_o_transportTruck = "I_Truck_02_covered_F"; // Kamaz Transport (Covered) +KPLIB_o_transportTruckAmmo = "I_Truck_02_transport_F"; // Kamaz Transport (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "I_Truck_02_fuel_F"; // Kamaz Fuel +KPLIB_o_ammoTruck = "I_Truck_02_ammo_F"; // Kamz Ammo +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Pod +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Pod +KPLIB_o_flag = "Flag_AAF_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "I_Soldier_lite_F", // Rifleman (Lite) "I_Soldier_lite_F", // Rifleman (Lite) "I_soldier_F", // Rifleman @@ -55,7 +64,7 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "B_LSV_01_armed_F", // Polaris DAGOR (XM312) "B_LSV_01_armed_F", // Polaris DAGOR (XM312) "I_MRAP_03_hmg_F", // MATV (HMG) @@ -66,7 +75,7 @@ militia_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "I_MRAP_03_hmg_F", // M-ATV (HMG) "I_MRAP_03_hmg_F", // M-ATV (HMG) "I_MRAP_03_gmg_F", // M-ATV (GMG) @@ -86,7 +95,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "I_MRAP_03_hmg_F", // M-ATV (HMG) "I_MRAP_03_hmg_F", // M-ATV (HMG) "B_LSV_01_AT_F", // Polaris DAGOR (Mini-Spike PZAbw) @@ -98,7 +107,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "I_MRAP_03_hmg_F", // M-ATV (HMG) "I_MRAP_03_gmg_F", // M-ATV (GMG) "I_MRAP_03_gmg_F", // M-ATV (GMG) @@ -123,7 +132,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "I_MRAP_03_hmg_F", // M-ATV (HMG) "I_MRAP_03_hmg_F", // M-ATV (HMG) "I_LT_01_cannon_F", // Wiesel MK20 @@ -140,7 +149,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "I_Truck_02_transport_F", // Kamaz Transport "I_Truck_02_covered_F", // Kamaz Transport (Covered) "I_APC_Wheeled_03_cannon_F", // SPz Pandur @@ -149,7 +158,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "I_Heli_light_03_dynamicLoadout_F", // Wildcat (Armed) "B_CTRG_Heli_Transport_01_sand_F", // UH-80 Ghost Hawk (Sand) "B_Heli_Attack_01_dynamicLoadout_F", // RAH-66 Comanche @@ -159,7 +168,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "B_Plane_CAS_01_dynamicLoadout_F", // A-10D Thunderbolt II (CAS) "I_Plane_Fighter_03_dynamicLoadout_F", // L-159 "I_Plane_Fighter_04_F" // Gripen diff --git a/Missionframework/presets/opfor/apex.sqf b/Missionframework/presets/enemies/apex.sqf similarity index 78% rename from Missionframework/presets/opfor/apex.sqf rename to Missionframework/presets/enemies/apex.sqf index 2cbb3938d..7c08ced99 100644 --- a/Missionframework/presets/opfor/apex.sqf +++ b/Missionframework/presets/enemies/apex.sqf @@ -1,48 +1,57 @@ /* + File: apex.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CSAT pacific enemy preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "O_T_Officer_F"; // Officer -opfor_squad_leader = "O_T_Soldier_SL_F"; // Squad Leader -opfor_team_leader = "O_T_Soldier_TL_F"; // Team Leader -opfor_sentry = "O_T_Soldier_F"; // Rifleman -opfor_rifleman = "O_T_Soldier_F"; // Rifleman -opfor_rpg = "O_T_Soldier_LAT_F"; // Rifleman (LAT) -opfor_grenadier = "O_T_Soldier_GL_F"; // Grenadier -opfor_machinegunner = "O_T_Soldier_AR_F"; // Autorifleman -opfor_heavygunner = "O_T_Soldier_AR_F"; // Autorifleman -opfor_marksman = "O_T_Soldier_M_F"; // Marksman -opfor_sharpshooter = "O_T_Soldier_M_F"; // Marksman -opfor_sniper = "O_T_Sniper_F"; // Sniper -opfor_at = "O_T_Soldier_AT_F"; // AT Specialist -opfor_aa = "O_T_Soldier_AA_F"; // AA Specialist -opfor_medic = "O_T_Medic_F"; // Combat Life Saver -opfor_engineer = "O_T_Engineer_F"; // Engineer -opfor_paratrooper = "O_T_Soldier_PG_F"; // Paratrooper +KPLIB_o_officer = "O_T_Officer_F"; // Officer +KPLIB_o_squadLeader = "O_T_Soldier_SL_F"; // Squad Leader +KPLIB_o_teamLeader = "O_T_Soldier_TL_F"; // Team Leader +KPLIB_o_sentry = "O_T_Soldier_F"; // Rifleman +KPLIB_o_rifleman = "O_T_Soldier_F"; // Rifleman +KPLIB_o_riflemanLAT = "O_T_Soldier_LAT_F"; // Rifleman (LAT) +KPLIB_o_grenadier = "O_T_Soldier_GL_F"; // Grenadier +KPLIB_o_machinegunner = "O_T_Soldier_AR_F"; // Autorifleman +KPLIB_o_heavyGunner = "O_T_Soldier_AR_F"; // Autorifleman +KPLIB_o_marksman = "O_T_Soldier_M_F"; // Marksman +KPLIB_o_sharpshooter = "O_T_Soldier_M_F"; // Marksman +KPLIB_o_sniper = "O_T_Sniper_F"; // Sniper +KPLIB_o_atSpecialist = "O_T_Soldier_AT_F"; // AT Specialist +KPLIB_o_aaSpecialist = "O_T_Soldier_AA_F"; // AA Specialist +KPLIB_o_medic = "O_T_Medic_F"; // Combat Life Saver +KPLIB_o_engineer = "O_T_Engineer_F"; // Engineer +KPLIB_o_paratrooper = "O_T_Soldier_PG_F"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "O_T_LSV_02_unarmed_F"; // Qilin -opfor_mrap_armed = "O_T_LSV_02_armed_F"; // Qilin (HMG) -opfor_transport_helo = "O_Heli_Transport_04_bench_F"; // Mi-290 Taru (Bench) -opfor_transport_truck = "O_T_Truck_03_covered_ghex_F"; // Tempest Transport (Covered) -opfor_ammobox_transport = "O_T_Truck_03_transport_ghex_F"; // Tempest Transport (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "O_T_Truck_03_fuel_ghex_F"; // Tempest Fuel -opfor_ammo_truck = "O_T_Truck_03_ammo_ghex_F"; // Tempest Ammo -opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod -opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod -opfor_flag = "Flag_CSAT_F"; // Flag +KPLIB_o_mrap = "O_T_LSV_02_unarmed_F"; // Qilin +KPLIB_o_mrapArmed = "O_T_LSV_02_armed_F"; // Qilin (HMG) +KPLIB_o_transportHeli = "O_Heli_Transport_04_bench_F"; // Mi-290 Taru (Bench) +KPLIB_o_transportTruck = "O_T_Truck_03_covered_ghex_F"; // Tempest Transport (Covered) +KPLIB_o_transportTruckAmmo = "O_T_Truck_03_transport_ghex_F"; // Tempest Transport (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "O_T_Truck_03_fuel_ghex_F"; // Tempest Fuel +KPLIB_o_ammoTruck = "O_T_Truck_03_ammo_ghex_F"; // Tempest Ammo +KPLIB_o_fuelContainer = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +KPLIB_o_ammoContainer = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +KPLIB_o_flag = "Flag_CSAT_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "O_soldierU_F", // Rifleman (Lite) "O_soldierU_F", // Rifleman (Lite) "O_soldierU_F", // Rifleman @@ -55,12 +64,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "O_T_LSV_02_armed_F" // Qilin (armed) ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels) -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) "O_T_MRAP_02_gmg_ghex_F", // Ifrit (GMG) @@ -76,7 +85,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) "O_T_LSV_02_AT_F", // Qilin (AT) @@ -85,7 +94,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) "O_T_MRAP_02_gmg_ghex_F", // Ifrit (GMG) "O_T_MRAP_02_gmg_ghex_F", // Ifrit (GMG) @@ -108,7 +117,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "O_T_MRAP_02_ghex_F", // Ifrit "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) "O_T_MRAP_02_hmg_ghex_F", // Ifrit (HMG) @@ -122,7 +131,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "O_T_Truck_03_transport_ghex_F", // Tempest Transport "O_T_Truck_03_covered_ghex_F", // Tempest Transport (Covered) "O_T_APC_Wheeled_02_rcws_ghex_F", // MSE-3 Marid @@ -132,7 +141,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "O_Heli_Transport_04_bench_F", // Mi-290 Taru (Bench) "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) "O_Heli_Attack_02_dynamicLoadout_F", // Mi-48 Kajman @@ -140,7 +149,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "O_Plane_CAS_02_dynamicLoadout_F", // To-199 Neophron (CAS) "O_Plane_Fighter_02_F" // To-201 Shikra ]; diff --git a/Missionframework/presets/opfor/CUP_AFRF_MSV.sqf b/Missionframework/presets/enemies/cup_afrf_msv.sqf similarity index 82% rename from Missionframework/presets/opfor/CUP_AFRF_MSV.sqf rename to Missionframework/presets/enemies/cup_afrf_msv.sqf index 1b4ec9137..66bdb2ec6 100644 --- a/Missionframework/presets/opfor/CUP_AFRF_MSV.sqf +++ b/Missionframework/presets/enemies/cup_afrf_msv.sqf @@ -1,50 +1,59 @@ /* + File: cup_afrf_msv.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-20 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP AFRF MSV enemy preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "CUP_O_RU_Officer_EMR"; // Officer -opfor_squad_leader = "CUP_O_RU_Soldier_SL_EMR"; // Squad Leader -opfor_team_leader = "CUP_O_RU_Soldier_TL_EMR"; // Team Leader -opfor_sentry = "CUP_O_RU_Soldier_Saiga_EMR"; // Rifleman (Lite) -opfor_rifleman = "CUP_O_RU_Soldier_EMR"; // Rifleman -opfor_rpg = "CUP_O_RU_Soldier_AT_EMR"; // Rifleman (LAT) -opfor_grenadier = "CUP_O_RU_Soldier_GL_EMR"; // Grenadier -opfor_machinegunner = "CUP_O_RU_Soldier_AR_EMR"; // Autorifleman -opfor_heavygunner = "CUP_O_RU_Soldier_MG_EMR"; // Heavy Gunner -opfor_marksman = "CUP_O_RU_Soldier_Marksman_EMR"; // Marksman -opfor_sharpshooter = "CUP_O_RU_Sniper_EMR"; // Sharpshooter -opfor_sniper = "CUP_O_RU_Sniper_KSVK_EMR"; // Sniper -opfor_at = "CUP_O_RU_Soldier_HAT_EMR"; // AT Specialist -opfor_aa = "CUP_O_RU_Soldier_AA_EMR"; // AA Specialist -opfor_medic = "CUP_O_RU_Medic_EMR"; // Medic -opfor_engineer = "CUP_O_RU_Engineer_EMR"; // Engineer -opfor_paratrooper = "CUP_O_RU_Soldier_LAT_EMR"; // Paratrooper +KPLIB_o_officer = "CUP_O_RU_Officer_EMR"; // Officer +KPLIB_o_squadLeader = "CUP_O_RU_Soldier_SL_EMR"; // Squad Leader +KPLIB_o_teamLeader = "CUP_O_RU_Soldier_TL_EMR"; // Team Leader +KPLIB_o_sentry = "CUP_O_RU_Soldier_Saiga_EMR"; // Rifleman (Lite) +KPLIB_o_rifleman = "CUP_O_RU_Soldier_EMR"; // Rifleman +KPLIB_o_riflemanLAT = "CUP_O_RU_Soldier_AT_EMR"; // Rifleman (LAT) +KPLIB_o_grenadier = "CUP_O_RU_Soldier_GL_EMR"; // Grenadier +KPLIB_o_machinegunner = "CUP_O_RU_Soldier_AR_EMR"; // Autorifleman +KPLIB_o_heavyGunner = "CUP_O_RU_Soldier_MG_EMR"; // Heavy Gunner +KPLIB_o_marksman = "CUP_O_RU_Soldier_Marksman_EMR"; // Marksman +KPLIB_o_sharpshooter = "CUP_O_RU_Sniper_EMR"; // Sharpshooter +KPLIB_o_sniper = "CUP_O_RU_Sniper_KSVK_EMR"; // Sniper +KPLIB_o_atSpecialist = "CUP_O_RU_Soldier_HAT_EMR"; // AT Specialist +KPLIB_o_aaSpecialist = "CUP_O_RU_Soldier_AA_EMR"; // AA Specialist +KPLIB_o_medic = "CUP_O_RU_Medic_EMR"; // Medic +KPLIB_o_engineer = "CUP_O_RU_Engineer_EMR"; // Engineer +KPLIB_o_paratrooper = "CUP_O_RU_Soldier_LAT_EMR"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "CUP_O_UAZ_Unarmed_RU"; // UAZ -opfor_mrap_armed = "CUP_O_UAZ_MG_RU"; // UAZ (DShKM) -opfor_transport_helo = "CUP_O_Mi8_RU"; // Mi-8MTV3 -opfor_transport_truck = "CUP_O_Kamaz_RU"; // Kamaz 5350 -opfor_ammobox_transport = "CUP_O_Kamaz_Open_RU"; // Kamaz 5350 (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "CUP_O_Kamaz_Refuel_RU"; // Kamaz 5350 (Fuel) -opfor_ammo_truck = "CUP_O_Kamaz_Reammo_RU"; // Kamaz 5350 (Ammo) -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "FlagCarrierRU"; // Flag +KPLIB_o_mrap = "CUP_O_UAZ_Unarmed_RU"; // UAZ +KPLIB_o_mrapArmed = "CUP_O_UAZ_MG_RU"; // UAZ (DShKM) +KPLIB_o_transportHeli = "CUP_O_Mi8_RU"; // Mi-8MTV3 +KPLIB_o_transportTruck = "CUP_O_Kamaz_RU"; // Kamaz 5350 +KPLIB_o_transportTruckAmmo = "CUP_O_Kamaz_Open_RU"; // Kamaz 5350 (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "CUP_O_Kamaz_Refuel_RU"; // Kamaz 5350 (Fuel) +KPLIB_o_ammoTruck = "CUP_O_Kamaz_Reammo_RU"; // Kamaz 5350 (Ammo) +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "FlagCarrierRU"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "CUP_O_RU_Soldier_Saiga", // Rifleman (Saiga) "CUP_O_RU_Soldier_Saiga", // Rifleman (Saiga) "CUP_O_RU_Soldier", // Rifleman @@ -57,12 +66,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "CUP_O_UAZ_MG_RU" // UAZ (DShKM) ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) @@ -87,7 +96,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "CUP_O_UAZ_MG_RU", // UAZ (DShKM) "CUP_O_UAZ_AGS30_RU", // UAZ (AGS-30) "CUP_O_UAZ_SPG9_RU", // UAZ (SPG-9) @@ -100,7 +109,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) @@ -130,7 +139,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "CUP_O_UAZ_MG_RU", // UAZ (DShKM) "CUP_O_UAZ_AGS30_RU", // UAZ (AGS-30) "CUP_O_UAZ_SPG9_RU", // UAZ (SPG-9) @@ -146,7 +155,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "CUP_O_Ka60_Grey_RU", // Ka-60 Kasatka Grey (Rockets) "CUP_O_Mi8_RU", // Mi-8MTV3 "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V @@ -164,7 +173,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V "CUP_O_Mi24_P_Dynamic_RU", // Mi-24P "CUP_O_Mi8_RU", // Mi-8MTV3 @@ -174,7 +183,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "CUP_O_Su25_Dyn_RU", // Su-25T Frogfoot "CUP_O_SU34_RU" // Su-34 ]; diff --git a/Missionframework/presets/opfor/CUP_AFRF_ModernMSV.sqf b/Missionframework/presets/enemies/cup_afrf_msv_modern.sqf similarity index 82% rename from Missionframework/presets/opfor/CUP_AFRF_ModernMSV.sqf rename to Missionframework/presets/enemies/cup_afrf_msv_modern.sqf index 4d8a61a41..5be057239 100644 --- a/Missionframework/presets/opfor/CUP_AFRF_ModernMSV.sqf +++ b/Missionframework/presets/enemies/cup_afrf_msv_modern.sqf @@ -1,50 +1,59 @@ /* + File: cup_afrf_msv_modern.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-21 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP AFRF MSV Modern enemy preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "CUP_O_RU_Officer_M_EMR"; // Officer -opfor_squad_leader = "CUP_O_RU_Soldier_SL_M_EMR"; // Squad Leader -opfor_team_leader = "CUP_O_RU_Soldier_TL_M_EMR"; // Team Leader -opfor_sentry = "CUP_O_RU_Soldier_Saiga_M_EMR"; // Rifleman (Lite) -opfor_rifleman = "CUP_O_RU_Soldier_M_EMR"; // Rifleman -opfor_rpg = "CUP_O_RU_Soldier_AT_M_EMR"; // Rifleman (LAT) -opfor_grenadier = "CUP_O_RU_Soldier_GL_M_EMR"; // Grenadier -opfor_machinegunner = "CUP_O_RU_Soldier_AR_M_EMR"; // Autorifleman -opfor_heavygunner = "CUP_O_RU_Soldier_MG_M_EMR"; // Heavy Gunner -opfor_marksman = "CUP_O_RU_Soldier_Marksman_M_EMR"; // Marksman -opfor_sharpshooter = "CUP_O_RU_Sniper_M_EMR"; // Sharpshooter -opfor_sniper = "CUP_O_RU_Sniper_KSVK_M_EMR"; // Sniper -opfor_at = "CUP_O_RU_Soldier_HAT_M_EMR"; // AT Specialist -opfor_aa = "CUP_O_RU_Soldier_AA_M_EMR"; // AA Specialist -opfor_medic = "CUP_O_RU_Medic_M_EMR"; // Medic -opfor_engineer = "CUP_O_RU_Engineer_M_EMR"; // Engineer -opfor_paratrooper = "CUP_O_RU_Soldier_LAT_M_EMR"; // Paratrooper +KPLIB_o_officer = "CUP_O_RU_Officer_M_EMR"; // Officer +KPLIB_o_squadLeader = "CUP_O_RU_Soldier_SL_M_EMR"; // Squad Leader +KPLIB_o_teamLeader = "CUP_O_RU_Soldier_TL_M_EMR"; // Team Leader +KPLIB_o_sentry = "CUP_O_RU_Soldier_Saiga_M_EMR"; // Rifleman (Lite) +KPLIB_o_rifleman = "CUP_O_RU_Soldier_M_EMR"; // Rifleman +KPLIB_o_riflemanLAT = "CUP_O_RU_Soldier_AT_M_EMR"; // Rifleman (LAT) +KPLIB_o_grenadier = "CUP_O_RU_Soldier_GL_M_EMR"; // Grenadier +KPLIB_o_machinegunner = "CUP_O_RU_Soldier_AR_M_EMR"; // Autorifleman +KPLIB_o_heavyGunner = "CUP_O_RU_Soldier_MG_M_EMR"; // Heavy Gunner +KPLIB_o_marksman = "CUP_O_RU_Soldier_Marksman_M_EMR"; // Marksman +KPLIB_o_sharpshooter = "CUP_O_RU_Sniper_M_EMR"; // Sharpshooter +KPLIB_o_sniper = "CUP_O_RU_Sniper_KSVK_M_EMR"; // Sniper +KPLIB_o_atSpecialist = "CUP_O_RU_Soldier_HAT_M_EMR"; // AT Specialist +KPLIB_o_aaSpecialist = "CUP_O_RU_Soldier_AA_M_EMR"; // AA Specialist +KPLIB_o_medic = "CUP_O_RU_Medic_M_EMR"; // Medic +KPLIB_o_engineer = "CUP_O_RU_Engineer_M_EMR"; // Engineer +KPLIB_o_paratrooper = "CUP_O_RU_Soldier_LAT_M_EMR"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "CUP_O_UAZ_Unarmed_RU"; // UAZ -opfor_mrap_armed = "CUP_O_UAZ_MG_RU"; // UAZ (DShKM) -opfor_transport_helo = "CUP_O_Mi8_RU"; // Mi-8MTV3 -opfor_transport_truck = "CUP_O_Kamaz_RU"; // Kamaz 5350 -opfor_ammobox_transport = "CUP_O_Kamaz_Open_RU"; // Kamaz 5350 (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "CUP_O_Kamaz_Refuel_RU"; // Kamaz 5350 (Fuel) -opfor_ammo_truck = "CUP_O_Kamaz_Reammo_RU"; // Kamaz 5350 (Ammo) -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "FlagCarrierRU"; // Flag +KPLIB_o_mrap = "CUP_O_UAZ_Unarmed_RU"; // UAZ +KPLIB_o_mrapArmed = "CUP_O_UAZ_MG_RU"; // UAZ (DShKM) +KPLIB_o_transportHeli = "CUP_O_Mi8_RU"; // Mi-8MTV3 +KPLIB_o_transportTruck = "CUP_O_Kamaz_RU"; // Kamaz 5350 +KPLIB_o_transportTruckAmmo = "CUP_O_Kamaz_Open_RU"; // Kamaz 5350 (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "CUP_O_Kamaz_Refuel_RU"; // Kamaz 5350 (Fuel) +KPLIB_o_ammoTruck = "CUP_O_Kamaz_Reammo_RU"; // Kamaz 5350 (Ammo) +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "FlagCarrierRU"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "CUP_O_RU_Soldier_Saiga_EMR", // Rifleman (Saiga) "CUP_O_RU_Soldier_Saiga_EMR", // Rifleman (Saiga) "CUP_O_RU_Soldier_EMR", // Rifleman @@ -57,12 +66,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "CUP_O_UAZ_MG_RU" // UAZ (DShKM) ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) @@ -87,7 +96,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "CUP_O_UAZ_MG_RU", // UAZ (DShKM) "CUP_O_UAZ_AGS30_RU", // UAZ (AGS-30) "CUP_O_UAZ_SPG9_RU", // UAZ (SPG-9) @@ -100,7 +109,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "CUP_O_GAZ_Vodnik_PK_RU", // GAZ Vodnik (2x PKM) "CUP_O_GAZ_Vodnik_AGS_RU", // GAZ Vodnik (AGS-30/PKM) "CUP_O_GAZ_Vodnik_BPPU_RU", // GAZ Vodnik (BPPU) @@ -130,7 +139,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "CUP_O_UAZ_MG_RU", // UAZ (DShKM) "CUP_O_UAZ_AGS30_RU", // UAZ (AGS-30) "CUP_O_UAZ_SPG9_RU", // UAZ (SPG-9) @@ -146,7 +155,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "CUP_O_Ka60_Grey_RU", // Ka-60 Kasatka Grey (Rockets) "CUP_O_Mi8_RU", // Mi-8MTV3 "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V @@ -164,7 +173,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "CUP_O_Mi24_V_Dynamic_RU", // Mi-24V "CUP_O_Mi24_P_Dynamic_RU", // Mi-24P "CUP_O_Mi8_RU", // Mi-8MTV3 @@ -174,7 +183,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "CUP_O_Su25_Dyn_RU", // Su-25T Frogfoot "CUP_O_SU34_RU" // Su-34 ]; diff --git a/Missionframework/presets/opfor/CUP_BAF_Desert.sqf b/Missionframework/presets/enemies/cup_baf_desert.sqf similarity index 79% rename from Missionframework/presets/opfor/CUP_BAF_Desert.sqf rename to Missionframework/presets/enemies/cup_baf_desert.sqf index ef645e2c0..4d3608985 100644 --- a/Missionframework/presets/opfor/CUP_BAF_Desert.sqf +++ b/Missionframework/presets/enemies/cup_baf_desert.sqf @@ -1,50 +1,59 @@ /* + File: cup_bad_desert.sqf + Author: Eogos - https://github.com/Eogos + Date: 2020-04-16 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP BAF Desert enemy preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "CUP_B_BAF_Soldier_Officer_DDPM"; // Officer -opfor_squad_leader = "CUP_B_BAF_Soldier_SquadLeader_DDPM"; // Squad Leader -opfor_team_leader = "CUP_B_BAF_Soldier_TeamLeader_DDPM"; // Team Leader -opfor_sentry = "CUP_B_BAF_Soldier_RiflemanLite_DDPM"; // Rifleman (Lite) -opfor_rifleman = "CUP_B_BAF_Soldier_Rifleman_DDPM"; // Rifleman -opfor_rpg = "CUP_B_BAF_Soldier_RiflemanLAT_DDPM"; // Rifleman (LAT) -opfor_grenadier = "CUP_B_BAF_Soldier_Grenadier_DDPM"; // Grenadier -opfor_machinegunner = "CUP_B_BAF_Soldier_AutoRifleman_DDPM"; // Autorifleman -opfor_heavygunner = "CUP_B_BAF_Soldier_HeavyGunner_DDPM"; // Heavy Gunner -opfor_marksman = "CUP_B_BAF_Soldier_Marksman_DDPM"; // Marksman -opfor_sharpshooter = "CUP_B_BAF_Soldier_SharpShooter_DDPM"; // Sharpshooter -opfor_sniper = "CUP_B_BAF_Sniper_AS50_DDPM"; // Sniper -opfor_at = "CUP_B_BAF_Soldier_AT_DDPM"; // AT Specialist -opfor_aa = "CUP_B_BAF_Soldier_AA_DDPM"; // AA Specialist -opfor_medic = "CUP_B_BAF_Soldier_Medic_DDPM"; // Medic -opfor_engineer = "CUP_B_BAF_Soldier_Engineer_DDPM"; // Engineer -opfor_paratrooper = "CUP_B_BAF_Soldier_Paratrooper_DDPM"; // Paratrooper +KPLIB_o_officer = "CUP_B_BAF_Soldier_Officer_DDPM"; // Officer +KPLIB_o_squadLeader = "CUP_B_BAF_Soldier_SquadLeader_DDPM"; // Squad Leader +KPLIB_o_teamLeader = "CUP_B_BAF_Soldier_TeamLeader_DDPM"; // Team Leader +KPLIB_o_sentry = "CUP_B_BAF_Soldier_RiflemanLite_DDPM"; // Rifleman (Lite) +KPLIB_o_rifleman = "CUP_B_BAF_Soldier_Rifleman_DDPM"; // Rifleman +KPLIB_o_riflemanLAT = "CUP_B_BAF_Soldier_RiflemanLAT_DDPM"; // Rifleman (LAT) +KPLIB_o_grenadier = "CUP_B_BAF_Soldier_Grenadier_DDPM"; // Grenadier +KPLIB_o_machinegunner = "CUP_B_BAF_Soldier_AutoRifleman_DDPM"; // Autorifleman +KPLIB_o_heavyGunner = "CUP_B_BAF_Soldier_HeavyGunner_DDPM"; // Heavy Gunner +KPLIB_o_marksman = "CUP_B_BAF_Soldier_Marksman_DDPM"; // Marksman +KPLIB_o_sharpshooter = "CUP_B_BAF_Soldier_SharpShooter_DDPM"; // Sharpshooter +KPLIB_o_sniper = "CUP_B_BAF_Sniper_AS50_DDPM"; // Sniper +KPLIB_o_atSpecialist = "CUP_B_BAF_Soldier_AT_DDPM"; // AT Specialist +KPLIB_o_aaSpecialist = "CUP_B_BAF_Soldier_AA_DDPM"; // AA Specialist +KPLIB_o_medic = "CUP_B_BAF_Soldier_Medic_DDPM"; // Medic +KPLIB_o_engineer = "CUP_B_BAF_Soldier_Engineer_DDPM"; // Engineer +KPLIB_o_paratrooper = "CUP_B_BAF_Soldier_Paratrooper_DDPM"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "CUP_B_Ridgeback_LMG_GB_D"; // Ridgeback PPV LMG Woodland -opfor_mrap_armed = "CUP_B_Ridgeback_HMG_GB_D"; // Ridgeback PPV HMG Woodland -opfor_transport_helo = "CUP_B_CH47F_GB"; // Chinook HC-4 -opfor_transport_truck = "CUP_B_MTVR_BAF_DES"; // MTVR -opfor_ammobox_transport = "CUP_B_MTVR_BAF_DES"; // MTVR -> Has to be able to transport resource crates! -opfor_fuel_truck = "CUP_B_MTVR_Refuel_BAF_DES"; // MTVR (Refuel) -opfor_ammo_truck = "CUP_B_MTVR_Ammo_BAF_DES"; // MTVR (Ammo) -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "Flag_UK_F"; // Flag +KPLIB_o_mrap = "CUP_B_Ridgeback_LMG_GB_D"; // Ridgeback PPV LMG Woodland +KPLIB_o_mrapArmed = "CUP_B_Ridgeback_HMG_GB_D"; // Ridgeback PPV HMG Woodland +KPLIB_o_transportHeli = "CUP_B_CH47F_GB"; // Chinook HC-4 +KPLIB_o_transportTruck = "CUP_B_MTVR_BAF_DES"; // MTVR +KPLIB_o_transportTruckAmmo = "CUP_B_MTVR_BAF_DES"; // MTVR -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "CUP_B_MTVR_Refuel_BAF_DES"; // MTVR (Refuel) +KPLIB_o_ammoTruck = "CUP_B_MTVR_Ammo_BAF_DES"; // MTVR (Ammo) +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "Flag_UK_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "CUP_B_BAF_Soldier_TeamLeader_MTP", // Team Leader "CUP_B_BAF_Soldier_Medic_MTP", // Combat Life Saver "CUP_B_BAF_Soldier_RiflemanLAT_MTP", // Rifleman (Light AT) @@ -54,12 +63,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "CUP_B_LR_MG_GB_D" // Land Rover 110 (M2) Woodland ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "CUP_B_LR_Special_M2_GB_D", // Land Rover 110 (M2 Special) Woodland "CUP_B_LR_Special_GMG_GB_D", // Land Rover 110 (GMG Special) Woodland "CUP_B_BAF_Coyote_L2A1_D", // Coyote L2A1 (Woodland) @@ -81,7 +90,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "CUP_B_LR_Special_M2_GB_D", // Land Rover 110 (M2 Special) Woodland "CUP_B_LR_Special_GMG_GB_D", // Land Rover 110 (GMG Special) Woodland "CUP_B_Jackal2_L2A1_GB_D", // Jackal 2 L2A1 Woodland @@ -94,7 +103,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "CUP_B_LR_Special_M2_GB_D", // Land Rover 110 (M2 Special) Woodland "CUP_B_LR_Special_GMG_GB_D", // Land Rover 110 (GMG Special) Woodland "CUP_B_BAF_Coyote_L2A1_D", // Coyote L2A1 (Woodland) @@ -112,7 +121,7 @@ opfor_battlegroup_vehicles = [ "CUP_B_FV510_GB_D", // FV510 Warrior (Woodland) "CUP_B_FV510_GB_D_SLAT", // FV510 Warrior (SLAT - Woodland) "CUP_B_Challenger2_2CD_BAF", // FV4034 Challenger 2 (Two Color Woodland) - "CUP_B_Challenger2_Desert_BAF", // FV4034 Challenger 2 (Woodland) + "CUP_B_Challenger2_Desert_BAF", // FV4034 Challenger 2 (Woodland) "CUP_B_AH1_DL_BAF", // AH1 "CUP_B_AH1_DL_BAF", // AH1 "CUP_B_AW159_GB", // AW159 Wildcat (Green) @@ -122,7 +131,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "CUP_B_LR_Special_M2_GB_D", // Land Rover 110 (M2 Special) Woodland "CUP_B_LR_Special_GMG_GB_D", // Land Rover 110 (GMG Special) Woodland "CUP_B_Jackal2_L2A1_GB_D", // Jackal 2 L2A1 Woodland @@ -139,7 +148,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "CUP_B_BAF_Coyote_L2A1_D", // Coyote L2A1 (Woodland) "CUP_B_BAF_Coyote_GMG_D", // Coyote GMG (Woodland) "CUP_B_Mastiff_LMG_GB_D", // Mastiff PPV LMG Woodland @@ -154,7 +163,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "CUP_B_AH1_DL_BAF", // AH1 "CUP_B_AW159_GB", // AW159 Wildcat (Green) "CUP_B_CH47F_GB", // Chinook HC-4 @@ -162,7 +171,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "CUP_B_F35B_BAF", // F-35B Lightning II "CUP_B_F35B_Stealth_BAF", // F-35B Lightning II (Stealth) "CUP_B_GR9_DYN_GB" // Harrier GR.9 diff --git a/Missionframework/presets/opfor/CUP_BAF_Woodland.sqf b/Missionframework/presets/enemies/cup_baf_woodland.sqf similarity index 82% rename from Missionframework/presets/opfor/CUP_BAF_Woodland.sqf rename to Missionframework/presets/enemies/cup_baf_woodland.sqf index 1bdc97612..4100c1cb8 100644 --- a/Missionframework/presets/opfor/CUP_BAF_Woodland.sqf +++ b/Missionframework/presets/enemies/cup_baf_woodland.sqf @@ -1,50 +1,59 @@ /* + File: cup_baf_woodland.sqf + Author: Eogos - https://github.com/Eogos + Date: 2020-04-16 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP BAF Woodland enemy preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "CUP_B_BAF_Soldier_Officer_DPM"; // Officer -opfor_squad_leader = "CUP_B_BAF_Soldier_SquadLeader_DPM"; // Squad Leader -opfor_team_leader = "CUP_B_BAF_Soldier_TeamLeader_DPM"; // Team Leader -opfor_sentry = "CUP_B_BAF_Soldier_RiflemanLite_DPM"; // Rifleman (Lite) -opfor_rifleman = "CUP_B_BAF_Soldier_Rifleman_DPM"; // Rifleman -opfor_rpg = "CUP_B_BAF_Soldier_RiflemanLAT_DPM"; // Rifleman (LAT) -opfor_grenadier = "CUP_B_BAF_Soldier_Grenadier_DPM"; // Grenadier -opfor_machinegunner = "CUP_B_BAF_Soldier_AutoRifleman_DPM"; // Autorifleman -opfor_heavygunner = "CUP_B_BAF_Soldier_HeavyGunner_DPM"; // Heavy Gunner -opfor_marksman = "CUP_B_BAF_Soldier_Marksman_DPM"; // Marksman -opfor_sharpshooter = "CUP_B_BAF_Soldier_SharpShooter_DPM"; // Sharpshooter -opfor_sniper = "CUP_B_BAF_Sniper_AS50_DPM"; // Sniper -opfor_at = "CUP_B_BAF_Soldier_AT_DPM"; // AT Specialist -opfor_aa = "CUP_B_BAF_Soldier_AA_DPM"; // AA Specialist -opfor_medic = "CUP_B_BAF_Soldier_Medic_DPM"; // Medic -opfor_engineer = "CUP_B_BAF_Soldier_Engineer_DPM"; // Engineer -opfor_paratrooper = "CUP_B_BAF_Soldier_Paratrooper_DPM"; // Paratrooper +KPLIB_o_officer = "CUP_B_BAF_Soldier_Officer_DPM"; // Officer +KPLIB_o_squadLeader = "CUP_B_BAF_Soldier_SquadLeader_DPM"; // Squad Leader +KPLIB_o_teamLeader = "CUP_B_BAF_Soldier_TeamLeader_DPM"; // Team Leader +KPLIB_o_sentry = "CUP_B_BAF_Soldier_RiflemanLite_DPM"; // Rifleman (Lite) +KPLIB_o_rifleman = "CUP_B_BAF_Soldier_Rifleman_DPM"; // Rifleman +KPLIB_o_riflemanLAT = "CUP_B_BAF_Soldier_RiflemanLAT_DPM"; // Rifleman (LAT) +KPLIB_o_grenadier = "CUP_B_BAF_Soldier_Grenadier_DPM"; // Grenadier +KPLIB_o_machinegunner = "CUP_B_BAF_Soldier_AutoRifleman_DPM"; // Autorifleman +KPLIB_o_heavyGunner = "CUP_B_BAF_Soldier_HeavyGunner_DPM"; // Heavy Gunner +KPLIB_o_marksman = "CUP_B_BAF_Soldier_Marksman_DPM"; // Marksman +KPLIB_o_sharpshooter = "CUP_B_BAF_Soldier_SharpShooter_DPM"; // Sharpshooter +KPLIB_o_sniper = "CUP_B_BAF_Sniper_AS50_DPM"; // Sniper +KPLIB_o_atSpecialist = "CUP_B_BAF_Soldier_AT_DPM"; // AT Specialist +KPLIB_o_aaSpecialist = "CUP_B_BAF_Soldier_AA_DPM"; // AA Specialist +KPLIB_o_medic = "CUP_B_BAF_Soldier_Medic_DPM"; // Medic +KPLIB_o_engineer = "CUP_B_BAF_Soldier_Engineer_DPM"; // Engineer +KPLIB_o_paratrooper = "CUP_B_BAF_Soldier_Paratrooper_DPM"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "CUP_B_Ridgeback_LMG_GB_W"; // Ridgeback PPV LMG Woodland -opfor_mrap_armed = "CUP_B_Ridgeback_HMG_GB_W"; // Ridgeback PPV HMG Woodland -opfor_transport_helo = "CUP_B_CH47F_GB"; // Chinook HC-4 -opfor_transport_truck = "CUP_B_MTVR_BAF_WOOD"; // MTVR -opfor_ammobox_transport = "CUP_B_MTVR_BAF_WOOD"; // MTVR -> Has to be able to transport resource crates! -opfor_fuel_truck = "CUP_B_MTVR_Refuel_BAF_WOOD"; // MTVR (Refuel) -opfor_ammo_truck = "CUP_B_MTVR_Ammo_BAF_WOOD"; // MTVR (Ammo) -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "Flag_UK_F"; // Flag +KPLIB_o_mrap = "CUP_B_Ridgeback_LMG_GB_W"; // Ridgeback PPV LMG Woodland +KPLIB_o_mrapArmed = "CUP_B_Ridgeback_HMG_GB_W"; // Ridgeback PPV HMG Woodland +KPLIB_o_transportHeli = "CUP_B_CH47F_GB"; // Chinook HC-4 +KPLIB_o_transportTruck = "CUP_B_MTVR_BAF_WOOD"; // MTVR +KPLIB_o_transportTruckAmmo = "CUP_B_MTVR_BAF_WOOD"; // MTVR -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "CUP_B_MTVR_Refuel_BAF_WOOD"; // MTVR (Refuel) +KPLIB_o_ammoTruck = "CUP_B_MTVR_Ammo_BAF_WOOD"; // MTVR (Ammo) +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "Flag_UK_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "CUP_B_BAF_Soldier_TeamLeader_MTP", // Team Leader "CUP_B_BAF_Soldier_Medic_MTP", // Combat Life Saver "CUP_B_BAF_Soldier_RiflemanLAT_MTP", // Rifleman (Light AT) @@ -54,12 +63,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "CUP_B_LR_MG_GB_W" // Land Rover 110 (M2) Woodland ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "CUP_B_LR_Special_M2_GB_W", // Land Rover 110 (M2 Special) Woodland "CUP_B_LR_Special_GMG_GB_W", // Land Rover 110 (GMG Special) Woodland "CUP_B_BAF_Coyote_L2A1_W", // Coyote L2A1 (Woodland) @@ -81,7 +90,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "CUP_B_LR_Special_M2_GB_W", // Land Rover 110 (M2 Special) Woodland "CUP_B_LR_Special_GMG_GB_W", // Land Rover 110 (GMG Special) Woodland "CUP_B_Jackal2_L2A1_GB_W", // Jackal 2 L2A1 Woodland @@ -94,7 +103,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "CUP_B_LR_Special_M2_GB_W", // Land Rover 110 (M2 Special) Woodland "CUP_B_LR_Special_GMG_GB_W", // Land Rover 110 (GMG Special) Woodland "CUP_B_BAF_Coyote_L2A1_W", // Coyote L2A1 (Woodland) @@ -122,7 +131,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "CUP_B_LR_Special_M2_GB_W", // Land Rover 110 (M2 Special) Woodland "CUP_B_LR_Special_GMG_GB_W", // Land Rover 110 (GMG Special) Woodland "CUP_B_Jackal2_L2A1_GB_W", // Jackal 2 L2A1 Woodland @@ -139,7 +148,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "CUP_B_BAF_Coyote_L2A1_W", // Coyote L2A1 (Woodland) "CUP_B_BAF_Coyote_GMG_W", // Coyote GMG (Woodland) "CUP_B_Mastiff_LMG_GB_W", // Mastiff PPV LMG Woodland @@ -154,7 +163,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "CUP_B_AH1_DL_BAF", // AH1 "CUP_B_AW159_GB", // AW159 Wildcat (Green) "CUP_B_CH47F_GB", // Chinook HC-4 @@ -162,7 +171,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "CUP_B_F35B_BAF", // F-35B Lightning II "CUP_B_F35B_Stealth_BAF", // F-35B Lightning II (Stealth) "CUP_B_GR9_DYN_GB" // Harrier GR.9 diff --git a/Missionframework/presets/opfor/CUP_CDF.sqf b/Missionframework/presets/enemies/cup_cdf.sqf similarity index 78% rename from Missionframework/presets/opfor/CUP_CDF.sqf rename to Missionframework/presets/enemies/cup_cdf.sqf index 3536eb035..d475075bb 100644 --- a/Missionframework/presets/opfor/CUP_CDF.sqf +++ b/Missionframework/presets/enemies/cup_cdf.sqf @@ -1,50 +1,59 @@ /* + File: cup_cdf.sqf + Author: Eogos - https://github.com/Eogos + Date: 2020-04-06 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP CDF enemy preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "CUP_B_CDF_Commander_FST"; // Officer -opfor_squad_leader = "CUP_B_CDF_Officer_FST"; // Squad Leader -opfor_team_leader = "CUP_B_CDF_Soldier_TL_FST"; // Team Leader -opfor_sentry = "CUP_B_CDF_Militia_FST"; // Rifleman (Lite) -opfor_rifleman = "CUP_B_CDF_Soldier_FST"; // Rifleman -opfor_rpg = "CUP_B_CDF_Soldier_RPG18_FST"; // Rifleman (LAT) -opfor_grenadier = "CUP_B_CDF_Soldier_GL_FST"; // Grenadier -opfor_machinegunner = "CUP_B_CDF_Soldier_AR_FST"; // Autorifleman -opfor_heavygunner = "CUP_B_CDF_Soldier_MG_FST"; // Heavy Gunner -opfor_marksman = "CUP_B_CDF_Soldier_Marksman_FST"; // Marksman -opfor_sharpshooter = "CUP_B_CDF_Soldier_Marksman_FST"; // Sharpshooter -opfor_sniper = "CUP_B_CDF_Sniper_FST"; // Sniper -opfor_at = "CUP_B_CDF_Soldier_LAT_FST"; // AT Specialist -opfor_aa = "CUP_B_CDF_Soldier_AA_FST"; // AA Specialist -opfor_medic = "CUP_B_CDF_Medic_FST"; // Medic -opfor_engineer = "CUP_B_CDF_Engineer_FST"; // Engineer -opfor_paratrooper = "CUP_B_CDF_Soldier_RPG18_FST"; // Paratrooper +KPLIB_o_officer = "CUP_B_CDF_Commander_FST"; // Officer +KPLIB_o_squadLeader = "CUP_B_CDF_Officer_FST"; // Squad Leader +KPLIB_o_teamLeader = "CUP_B_CDF_Soldier_TL_FST"; // Team Leader +KPLIB_o_sentry = "CUP_B_CDF_Militia_FST"; // Rifleman (Lite) +KPLIB_o_rifleman = "CUP_B_CDF_Soldier_FST"; // Rifleman +KPLIB_o_riflemanLAT = "CUP_B_CDF_Soldier_RPG18_FST"; // Rifleman (LAT) +KPLIB_o_grenadier = "CUP_B_CDF_Soldier_GL_FST"; // Grenadier +KPLIB_o_machinegunner = "CUP_B_CDF_Soldier_AR_FST"; // Autorifleman +KPLIB_o_heavyGunner = "CUP_B_CDF_Soldier_MG_FST"; // Heavy Gunner +KPLIB_o_marksman = "CUP_B_CDF_Soldier_Marksman_FST"; // Marksman +KPLIB_o_sharpshooter = "CUP_B_CDF_Soldier_Marksman_FST"; // Sharpshooter +KPLIB_o_sniper = "CUP_B_CDF_Sniper_FST"; // Sniper +KPLIB_o_atSpecialist = "CUP_B_CDF_Soldier_LAT_FST"; // AT Specialist +KPLIB_o_aaSpecialist = "CUP_B_CDF_Soldier_AA_FST"; // AA Specialist +KPLIB_o_medic = "CUP_B_CDF_Medic_FST"; // Medic +KPLIB_o_engineer = "CUP_B_CDF_Engineer_FST"; // Engineer +KPLIB_o_paratrooper = "CUP_B_CDF_Soldier_RPG18_FST"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "CUP_B_UAZ_Unarmed_CDF"; // UAZ -opfor_mrap_armed = "CUP_B_UAZ_MG_CDF"; // UAZ (DShKM) -opfor_transport_helo = "CUP_B_Mi17_CDF"; // Mi-8MT -opfor_transport_truck = "CUP_B_Ural_CDF"; // Ural -opfor_ammobox_transport = "CUP_B_Ural_Open_CDF"; // Ural (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "CUP_B_Kamaz_Refuel_CDF"; // Kamaz 5350 (Fuel) -opfor_ammo_truck = "CUP_B_Kamaz_Reammo_CDF"; // Kamaz 5350 (Ammo) -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "FlagCarrierCDF"; // Flag +KPLIB_o_mrap = "CUP_B_UAZ_Unarmed_CDF"; // UAZ +KPLIB_o_mrapArmed = "CUP_B_UAZ_MG_CDF"; // UAZ (DShKM) +KPLIB_o_transportHeli = "CUP_B_Mi17_CDF"; // Mi-8MT +KPLIB_o_transportTruck = "CUP_B_Ural_CDF"; // Ural +KPLIB_o_transportTruckAmmo = "CUP_B_Ural_Open_CDF"; // Ural (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "CUP_B_Kamaz_Refuel_CDF"; // Kamaz 5350 (Fuel) +KPLIB_o_ammoTruck = "CUP_B_Kamaz_Reammo_CDF"; // Kamaz 5350 (Ammo) +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "FlagCarrierCDF"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "CUP_B_CDF_Soldier_TL_FST", // Team Leader "CUP_B_CDF_Militia_FST", // Militia "CUP_B_CDF_Militia_FST", // Militia @@ -54,13 +63,13 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) "CUP_B_UAZ_AGS30_CDF" // UAZ (AGS-30) ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) "CUP_B_UAZ_AA_CDF", // UAZ (AA) "CUP_B_UAZ_AGS30_CDF", // UAZ (AGS-30) @@ -81,7 +90,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) "CUP_B_UAZ_AGS30_CDF", // UAZ (AGS-30) "CUP_B_MTLB_pk_CDF", // MT-LB LV @@ -93,7 +102,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) "CUP_B_UAZ_AA_CDF", // UAZ (AA) "CUP_B_UAZ_AGS30_CDF", // UAZ (AGS-30) @@ -118,7 +127,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "CUP_B_UAZ_MG_CDF", // UAZ (DShKM) "CUP_B_UAZ_AGS30_CDF", // UAZ (AGS-30) "CUP_B_MTLB_pk_CDF", // MT-LB LV @@ -132,7 +141,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "CUP_B_BTR60_CDF", // BTR-60PB "CUP_B_MTLB_pk_CDF", // MT-LB LV "CUP_B_BMP2_CDF", // BMP-2 @@ -143,13 +152,13 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "CUP_B_Mi24_D_Dynamic_CDF", // Mi-24D "CUP_B_Mi17_CDF" // Mi-8MT ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "CUP_B_SU34_CDF", // Su-34 "CUP_B_Su25_Dyn_CDF" // Su-25 Frogfoot ]; diff --git a/Missionframework/presets/opfor/CUP_ChDKZ.sqf b/Missionframework/presets/enemies/cup_chdkz.sqf similarity index 78% rename from Missionframework/presets/opfor/CUP_ChDKZ.sqf rename to Missionframework/presets/enemies/cup_chdkz.sqf index 8dc46c74a..d3d6e5166 100644 --- a/Missionframework/presets/opfor/CUP_ChDKZ.sqf +++ b/Missionframework/presets/enemies/cup_chdkz.sqf @@ -1,50 +1,59 @@ /* + File: cup_chdkz.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-20 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP ChDKZ enemy preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "CUP_O_INS_Story_Lopotev"; // Officer -opfor_squad_leader = "CUP_O_INS_Commander"; // Squad Leader -opfor_team_leader = "CUP_O_INS_Officer"; // Team Leader -opfor_sentry = "CUP_O_INS_Soldier"; // Rifleman (Lite) -opfor_rifleman = "CUP_O_INS_Soldier_AK74"; // Rifleman -opfor_rpg = "CUP_O_INS_Soldier_Exp"; // Rifleman (LAT) -opfor_grenadier = "CUP_O_INS_Soldier_GL"; // Grenadier -opfor_machinegunner = "CUP_O_INS_Soldier"; // Autorifleman -opfor_heavygunner = "CUP_O_INS_Soldier_MG"; // Heavy Gunner -opfor_marksman = "CUP_O_INS_Woodlander2"; // Marksman -opfor_sharpshooter = "CUP_O_INS_Villager3"; // Sharpshooter -opfor_sniper = "CUP_O_INS_Sniper"; // Sniper -opfor_at = "CUP_O_INS_Soldier_AT"; // AT Specialist -opfor_aa = "CUP_O_INS_Soldier_AA"; // AA Specialist -opfor_medic = "CUP_O_INS_Medic"; // Medic -opfor_engineer = "CUP_O_INS_Soldier_Engineer"; // Engineer -opfor_paratrooper = "CUP_O_INS_Saboteur"; // Paratrooper +KPLIB_o_officer = "CUP_O_INS_Story_Lopotev"; // Officer +KPLIB_o_squadLeader = "CUP_O_INS_Commander"; // Squad Leader +KPLIB_o_teamLeader = "CUP_O_INS_Officer"; // Team Leader +KPLIB_o_sentry = "CUP_O_INS_Soldier"; // Rifleman (Lite) +KPLIB_o_rifleman = "CUP_O_INS_Soldier_AK74"; // Rifleman +KPLIB_o_riflemanLAT = "CUP_O_INS_Soldier_Exp"; // Rifleman (LAT) +KPLIB_o_grenadier = "CUP_O_INS_Soldier_GL"; // Grenadier +KPLIB_o_machinegunner = "CUP_O_INS_Soldier"; // Autorifleman +KPLIB_o_heavyGunner = "CUP_O_INS_Soldier_MG"; // Heavy Gunner +KPLIB_o_marksman = "CUP_O_INS_Woodlander2"; // Marksman +KPLIB_o_sharpshooter = "CUP_O_INS_Villager3"; // Sharpshooter +KPLIB_o_sniper = "CUP_O_INS_Sniper"; // Sniper +KPLIB_o_atSpecialist = "CUP_O_INS_Soldier_AT"; // AT Specialist +KPLIB_o_aaSpecialist = "CUP_O_INS_Soldier_AA"; // AA Specialist +KPLIB_o_medic = "CUP_O_INS_Medic"; // Medic +KPLIB_o_engineer = "CUP_O_INS_Soldier_Engineer"; // Engineer +KPLIB_o_paratrooper = "CUP_O_INS_Saboteur"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "CUP_O_UAZ_Unarmed_CHDKZ"; // UAZ -opfor_mrap_armed = "CUP_O_UAZ_MG_CHDKZ"; // UAZ (DShKM) -opfor_transport_helo = "CUP_O_Mi8_CHDKZ"; // Mi-8MT -opfor_transport_truck = "CUP_O_Ural_CHDKZ"; // Ural -opfor_ammobox_transport = "CUP_O_Ural_Open_CHDKZ"; // Ural (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "CUP_O_Ural_Refuel_CHDKZ"; // Ural (Refuel) -opfor_ammo_truck = "CUP_O_Ural_Reammo_CHDKZ"; // Ural (Ammo) -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "FlagCarrierINS"; // Flag +KPLIB_o_mrap = "CUP_O_UAZ_Unarmed_CHDKZ"; // UAZ +KPLIB_o_mrapArmed = "CUP_O_UAZ_MG_CHDKZ"; // UAZ (DShKM) +KPLIB_o_transportHeli = "CUP_O_Mi8_CHDKZ"; // Mi-8MT +KPLIB_o_transportTruck = "CUP_O_Ural_CHDKZ"; // Ural +KPLIB_o_transportTruckAmmo = "CUP_O_Ural_Open_CHDKZ"; // Ural (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "CUP_O_Ural_Refuel_CHDKZ"; // Ural (Refuel) +KPLIB_o_ammoTruck = "CUP_O_Ural_Reammo_CHDKZ"; // Ural (Ammo) +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "FlagCarrierINS"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "CUP_O_INS_Villager3", // Farmer "CUP_O_INS_Woodlander3", // Forester "CUP_O_INS_Woodlander2", // Gamekeeper @@ -54,12 +63,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "CUP_O_Datsun_PK_Random" // Datsun 620 Pickup (PK) Woodland ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "CUP_O_UAZ_MG_CHDKZ", // UAZ (DShKM) "CUP_O_UAZ_AA_CHDKZ", // UAZ (AA) "CUP_O_UAZ_AGS30_CHDKZ", // UAZ (AGS-30) @@ -83,7 +92,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "CUP_O_UAZ_MG_CHDKZ", // UAZ (DShKM) "CUP_O_Datsun_AA_Random", // Datsun 620 Pickup (AA) "CUP_O_MTLB_pk_ChDKZ", // MT-LB LV @@ -93,7 +102,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "CUP_O_UAZ_MG_CHDKZ", // UAZ (DShKM) "CUP_O_UAZ_AA_CHDKZ", // UAZ (AA) "CUP_O_UAZ_AGS30_CHDKZ", // UAZ (AGS-30) @@ -119,7 +128,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "CUP_O_UAZ_MG_CHDKZ", // UAZ (DShKM) "CUP_O_Datsun_AA_Random", // Datsun 620 Pickup (AA) "CUP_O_MTLB_pk_ChDKZ", // MT-LB LV @@ -131,7 +140,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "CUP_O_BTR60_CHDKZ", // BTR-60PB "CUP_O_BTR80_CHDKZ", // BTR-80 "CUP_O_BTR80A_CHDKZ", // BTR-80A @@ -141,11 +150,11 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "CUP_O_Mi8_CHDKZ" // Mi-8MT ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "CUP_O_Su25_Dyn_RU" // Su-25T Frogfoot ]; diff --git a/Missionframework/presets/opfor/CUP_SLA.sqf b/Missionframework/presets/enemies/cup_sla.sqf similarity index 59% rename from Missionframework/presets/opfor/CUP_SLA.sqf rename to Missionframework/presets/enemies/cup_sla.sqf index ee277466d..8a032cebc 100644 --- a/Missionframework/presets/opfor/CUP_SLA.sqf +++ b/Missionframework/presets/enemies/cup_sla.sqf @@ -1,169 +1,178 @@ /* + File: cup_sla.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-15 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP SLA enemy preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "CUP_O_sla_Officer"; // Officer -opfor_squad_leader = "CUP_O_sla_Soldier_SL"; // Squad Leader -opfor_team_leader = "CUP_O_sla_Soldier_SL"; // Team Leader -opfor_sentry = "CUP_O_sla_Soldier"; // Rifleman (Lite) -opfor_rifleman = "CUP_O_SLA_Soldier_Backpack"; // Rifleman -opfor_rpg = "CUP_O_sla_Soldier_AT"; // Rifleman (LAT) -opfor_grenadier = "CUP_O_sla_Soldier_GL"; // Grenadier -opfor_machinegunner = "CUP_O_sla_Soldier_AR"; // Autorifleman -opfor_heavygunner = "CUP_O_sla_Soldier_MG"; // Heavy Gunner -opfor_marksman = "CUP_O_sla_Sniper"; // Marksman -opfor_sharpshooter = "CUP_O_SLA_Sniper_SVD_Night"; // Sharpshooter -opfor_sniper = "CUP_O_sla_Sniper_KSVK"; // Sniper -opfor_at = "CUP_O_sla_Soldier_HAT"; // AT Specialist -opfor_aa = "CUP_O_sla_Soldier_AA"; // AA Specialist -opfor_medic = "CUP_O_sla_Medic"; // Medic -opfor_engineer = "CUP_O_sla_Engineer"; // Engineer -opfor_paratrooper = "CUP_O_sla_Soldier_LAT"; // Paratrooper +KPLIB_o_officer = "CUP_O_sla_Officer"; // Officer +KPLIB_o_squadLeader = "CUP_O_sla_Soldier_SL"; // Squad Leader +KPLIB_o_teamLeader = "CUP_O_sla_Soldier_SL"; // Team Leader +KPLIB_o_sentry = "CUP_O_sla_Soldier"; // Rifleman (Lite) +KPLIB_o_rifleman = "CUP_O_SLA_Soldier_Backpack"; // Rifleman +KPLIB_o_riflemanLAT = "CUP_O_sla_Soldier_AT"; // Rifleman (LAT) +KPLIB_o_grenadier = "CUP_O_sla_Soldier_GL"; // Grenadier +KPLIB_o_machinegunner = "CUP_O_sla_Soldier_AR"; // Autorifleman +KPLIB_o_heavyGunner = "CUP_O_sla_Soldier_MG"; // Heavy Gunner +KPLIB_o_marksman = "CUP_O_sla_Sniper"; // Marksman +KPLIB_o_sharpshooter = "CUP_O_SLA_Sniper_SVD_Night"; // Sharpshooter +KPLIB_o_sniper = "CUP_O_sla_Sniper_KSVK"; // Sniper +KPLIB_o_atSpecialist = "CUP_O_sla_Soldier_HAT"; // AT Specialist +KPLIB_o_aaSpecialist = "CUP_O_sla_Soldier_AA"; // AA Specialist +KPLIB_o_medic = "CUP_O_sla_Medic"; // Medic +KPLIB_o_engineer = "CUP_O_sla_Engineer"; // Engineer +KPLIB_o_paratrooper = "CUP_O_sla_Soldier_LAT"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "CUP_O_UAZ_Unarmed_SLA"; // UAZ -opfor_mrap_armed = "CUP_O_UAZ_MG_SLA"; // UAZ (DShKM) -opfor_transport_helo = "CUP_O_Mi8_SLA_1"; // Mi-8MT -opfor_transport_truck = "CUP_O_Ural_SLA"; // Ural -opfor_ammobox_transport = "CUP_O_Ural_Open_SLA"; // Ural (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "CUP_O_Ural_Refuel_SLA"; // Ural (Refuel) -opfor_ammo_truck = "CUP_O_Ural_Reammo_SLA"; // Ural (Ammo) -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "FlagCarrierNorth"; // Flag +KPLIB_o_mrap = "CUP_O_UAZ_Unarmed_SLA"; // UAZ +KPLIB_o_mrapArmed = "CUP_O_UAZ_MG_SLA"; // UAZ (DShKM) +KPLIB_o_transportHeli = "CUP_O_Mi8_SLA_1"; // Mi-8MT +KPLIB_o_transportTruck = "CUP_O_Ural_SLA"; // Ural +KPLIB_o_transportTruckAmmo = "CUP_O_Ural_Open_SLA"; // Ural (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "CUP_O_Ural_Refuel_SLA"; // Ural (Refuel) +KPLIB_o_ammoTruck = "CUP_O_Ural_Reammo_SLA"; // Ural (Ammo) +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "FlagCarrierNorth"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ - "CUP_O_sla_Soldier_militia", // Militiaman - "CUP_O_sla_Soldier_militia", // Militiaman - "CUP_O_sla_Soldier_LAT_militia", // Militiaman (RPG-18) - "CUP_O_sla_Soldier_AA_militia", // AA Specialist - "CUP_O_sla_Soldier_AT_militia", // Militiaman (RPG-7) - "CUP_O_sla_Soldier_AR_militia", // Militia Automatic Rifleman - "CUP_O_sla_Soldier_GL_militia", // Militia Grenadier - "CUP_O_sla_Medic_militia", // Militia Medic - "CUP_O_sla_Engineer_militia" // Militia Engineer +KPLIB_o_militiaInfantry = [ + "CUP_O_sla_Soldier_militia", // Militiaman + "CUP_O_sla_Soldier_militia", // Militiaman + "CUP_O_sla_Soldier_LAT_militia", // Militiaman (RPG-18) + "CUP_O_sla_Soldier_AA_militia", // AA Specialist + "CUP_O_sla_Soldier_AT_militia", // Militiaman (RPG-7) + "CUP_O_sla_Soldier_AR_militia", // Militia Automatic Rifleman + "CUP_O_sla_Soldier_GL_militia", // Militia Grenadier + "CUP_O_sla_Medic_militia", // Militia Medic + "CUP_O_sla_Engineer_militia" // Militia Engineer ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ - "CUP_O_UAZ_MG_SLA" // UAZ (DShKM) +KPLIB_o_militiaVehicles = [ + "CUP_O_UAZ_MG_SLA" // UAZ (DShKM) ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ - "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) - "CUP_O_UAZ_AA_SLA", // UAZ (AA) - "CUP_O_UAZ_AGS30_SLA", // UAZ (AGS-30) - "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_BTR80_SLA", // BTR-80 - "CUP_O_BTR80A_SLA", // BTR-80A - "CUP_O_BMP2_SLA", // BMP-2 - "CUP_O_BMP2_SLA", // BMP-2 - "CUP_O_BMP2_SLA", // BMP-2 - "CUP_O_ZSU23_SLA", // ZSU-23-4 - "CUP_O_ZSU23_Afghan_SLA", // ZSU-23-4 Afghanski - "CUP_O_T55_SLA", // T-55 - "CUP_O_T55_SLA", // T-55 - "CUP_O_T72_SLA", // T-72 - "CUP_O_T72_SLA" // T-72 +KPLIB_o_armyVehicles = [ + "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) + "CUP_O_UAZ_AA_SLA", // UAZ (AA) + "CUP_O_UAZ_AGS30_SLA", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR80_SLA", // BTR-80 + "CUP_O_BTR80A_SLA", // BTR-80A + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_ZSU23_SLA", // ZSU-23-4 + "CUP_O_ZSU23_Afghan_SLA", // ZSU-23-4 Afghanski + "CUP_O_T55_SLA", // T-55 + "CUP_O_T55_SLA", // T-55 + "CUP_O_T72_SLA", // T-72 + "CUP_O_T72_SLA" // T-72 ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ - "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) - "CUP_O_UAZ_AA_SLA", // UAZ (AA) - "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) - "CUP_O_Ural_ZU23_SLA", // Ural (ZU-23) - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_MTLB_pk_SLA" // MT-LB LV +KPLIB_o_armyVehiclesLight = [ + "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) + "CUP_O_UAZ_AA_SLA", // UAZ (AA) + "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) + "CUP_O_Ural_ZU23_SLA", // Ural (ZU-23) + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_MTLB_pk_SLA" // MT-LB LV ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ - "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) - "CUP_O_UAZ_AA_SLA", // UAZ (AA) - "CUP_O_UAZ_AGS30_SLA", // UAZ (AGS-30) - "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_BTR80_SLA", // BTR-80 - "CUP_O_BTR80A_SLA", // BTR-80A - "CUP_O_BMP2_SLA", // BMP-2 - "CUP_O_BMP2_SLA", // BMP-2 - "CUP_O_BMP2_SLA", // BMP-2 - "CUP_O_ZSU23_SLA", // ZSU-23-4 - "CUP_O_ZSU23_Afghan_SLA", // ZSU-23-4 Afghanski - "CUP_O_T55_SLA", // T-55 - "CUP_O_T55_SLA", // T-55 - "CUP_O_T72_SLA", // T-72 - "CUP_O_T72_SLA", // T-72 - "CUP_O_Ka50_DL_SLA", // Ka-50 Black Shark - "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D - "CUP_O_Mi8_SLA_2", // Mi-8MTV3 - "CUP_O_UH1H_gunship_SLA", // UH-1H (Gunship) - "CUP_O_UH1H_gunship_SLA" // UH-1H (Gunship) +KPLIB_o_battleGrpVehicles = [ + "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) + "CUP_O_UAZ_AA_SLA", // UAZ (AA) + "CUP_O_UAZ_AGS30_SLA", // UAZ (AGS-30) + "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR80_SLA", // BTR-80 + "CUP_O_BTR80A_SLA", // BTR-80A + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_ZSU23_SLA", // ZSU-23-4 + "CUP_O_ZSU23_Afghan_SLA", // ZSU-23-4 Afghanski + "CUP_O_T55_SLA", // T-55 + "CUP_O_T55_SLA", // T-55 + "CUP_O_T72_SLA", // T-72 + "CUP_O_T72_SLA", // T-72 + "CUP_O_Ka50_DL_SLA", // Ka-50 Black Shark + "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D + "CUP_O_Mi8_SLA_2", // Mi-8MTV3 + "CUP_O_UH1H_gunship_SLA", // UH-1H (Gunship) + "CUP_O_UH1H_gunship_SLA" // UH-1H (Gunship) ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ - "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) - "CUP_O_UAZ_AA_SLA", // UAZ (AA) - "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) - "CUP_O_Ural_ZU23_SLA", // Ural (ZU-23) - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_MTLB_pk_SLA", // MT-LB LV - "CUP_O_Mi8_SLA_1", // Mi-8MT - "CUP_O_UH1H_gunship_SLA", // UH-1H (Gunship) - "CUP_O_UH1H_armed_SLA", // UH-1H (Armed) - "CUP_O_UH1H_SLA" // UH-1H +KPLIB_o_battleGrpVehiclesLight = [ + "CUP_O_UAZ_MG_SLA", // UAZ (DShKM) + "CUP_O_UAZ_AA_SLA", // UAZ (AA) + "CUP_O_UAZ_SPG9_SLA", // UAZ (SPG-9) + "CUP_O_Ural_ZU23_SLA", // Ural (ZU-23) + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_MTLB_pk_SLA", // MT-LB LV + "CUP_O_Mi8_SLA_1", // Mi-8MT + "CUP_O_UH1H_gunship_SLA", // UH-1H (Gunship) + "CUP_O_UH1H_armed_SLA", // UH-1H (Armed) + "CUP_O_UH1H_SLA" // UH-1H ]; /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ - "CUP_O_BMP2_SLA", // BMP-2 - "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D - "CUP_O_Mi8_SLA_2", // Mi-8MTV3 - "CUP_O_BTR60_SLA", // BTR-60PB - "CUP_O_BTR80_SLA", // BTR-80 - "CUP_O_BTR80A_SLA", // BTR-80A - "CUP_O_MTLB_pk_SLA", // MT-LB LV - "CUP_O_Mi8_SLA_1", // Mi-8MT - "CUP_O_UH1H_armed_SLA", // UH-1H (Armed) - "CUP_O_UH1H_SLA" // UH-1H +KPLIB_o_troopTransports = [ + "CUP_O_BMP2_SLA", // BMP-2 + "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D + "CUP_O_Mi8_SLA_2", // Mi-8MTV3 + "CUP_O_BTR60_SLA", // BTR-60PB + "CUP_O_BTR80_SLA", // BTR-80 + "CUP_O_BTR80A_SLA", // BTR-80A + "CUP_O_MTLB_pk_SLA", // MT-LB LV + "CUP_O_Mi8_SLA_1", // Mi-8MT + "CUP_O_UH1H_armed_SLA", // UH-1H (Armed) + "CUP_O_UH1H_SLA" // UH-1H ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ - "CUP_O_Ka50_DL_SLA", // Ka-50 Black Shark - "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D - "CUP_O_UH1H_gunship_SLA", // UH-1H (Gunship) - "CUP_O_UH1H_armed_SLA", // UH-1H (Armed) - "CUP_O_UH1H_SLA", // UH-1H - "CUP_O_Mi8_SLA_1", // Mi-8MT - "CUP_O_Mi8_SLA_2" // Mi-8MTV3 +KPLIB_o_helicopters = [ + "CUP_O_Ka50_DL_SLA", // Ka-50 Black Shark + "CUP_O_Mi24_D_Dynamic_SLA", // Mi-24D + "CUP_O_UH1H_gunship_SLA", // UH-1H (Gunship) + "CUP_O_UH1H_armed_SLA", // UH-1H (Armed) + "CUP_O_UH1H_SLA", // UH-1H + "CUP_O_Mi8_SLA_1", // Mi-8MT + "CUP_O_Mi8_SLA_2" // Mi-8MTV3 ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ - "CUP_O_Su25_Dyn_SLA", // Su-25 Frogfoot - "CUP_O_SU34_SLA" // Su-34 +KPLIB_o_planes = [ + "CUP_O_Su25_Dyn_SLA", // Su-25 Frogfoot + "CUP_O_SU34_SLA" // Su-34 ]; diff --git a/Missionframework/presets/opfor/CUP_TakiArmy.sqf b/Missionframework/presets/enemies/cup_takistan.sqf similarity index 83% rename from Missionframework/presets/opfor/CUP_TakiArmy.sqf rename to Missionframework/presets/enemies/cup_takistan.sqf index f952b1bb3..caef34873 100644 --- a/Missionframework/presets/opfor/CUP_TakiArmy.sqf +++ b/Missionframework/presets/enemies/cup_takistan.sqf @@ -1,50 +1,59 @@ /* + File: cup_takistan.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-15 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP Takistan Army enemy preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "CUP_O_TK_Officer"; // Officer -opfor_squad_leader = "CUP_O_TK_Soldier_SL"; // Squad Leader -opfor_team_leader = "CUP_O_TK_Soldier_SL"; // Team Leader -opfor_sentry = "CUP_O_TK_Soldier"; // Rifleman (Lite) -opfor_rifleman = "CUP_O_TK_Soldier_Backpack"; // Rifleman -opfor_rpg = "CUP_O_TK_Soldier_AT"; // Rifleman (LAT) -opfor_grenadier = "CUP_O_TK_Soldier_GL"; // Grenadier -opfor_machinegunner = "CUP_O_TK_Soldier_AR"; // Autorifleman -opfor_heavygunner = "CUP_O_TK_Soldier_MG"; // Heavy Gunner -opfor_marksman = "CUP_O_TK_Sniper"; // Marksman -opfor_sharpshooter = "CUP_O_TK_Sniper_SVD_Night"; // Sharpshooter -opfor_sniper = "CUP_O_TK_Sniper_KSVK"; // Sniper -opfor_at = "CUP_O_TK_Soldier_HAT"; // AT Specialist -opfor_aa = "CUP_O_TK_Soldier_AA"; // AA Specialist -opfor_medic = "CUP_O_TK_Medic"; // Medic -opfor_engineer = "CUP_O_TK_Engineer"; // Engineer -opfor_paratrooper = "CUP_O_TK_Soldier_AKS_74_GOSHAWK"; // Paratrooper +KPLIB_o_officer = "CUP_O_TK_Officer"; // Officer +KPLIB_o_squadLeader = "CUP_O_TK_Soldier_SL"; // Squad Leader +KPLIB_o_teamLeader = "CUP_O_TK_Soldier_SL"; // Team Leader +KPLIB_o_sentry = "CUP_O_TK_Soldier"; // Rifleman (Lite) +KPLIB_o_rifleman = "CUP_O_TK_Soldier_Backpack"; // Rifleman +KPLIB_o_riflemanLAT = "CUP_O_TK_Soldier_AT"; // Rifleman (LAT) +KPLIB_o_grenadier = "CUP_O_TK_Soldier_GL"; // Grenadier +KPLIB_o_machinegunner = "CUP_O_TK_Soldier_AR"; // Autorifleman +KPLIB_o_heavyGunner = "CUP_O_TK_Soldier_MG"; // Heavy Gunner +KPLIB_o_marksman = "CUP_O_TK_Sniper"; // Marksman +KPLIB_o_sharpshooter = "CUP_O_TK_Sniper_SVD_Night"; // Sharpshooter +KPLIB_o_sniper = "CUP_O_TK_Sniper_KSVK"; // Sniper +KPLIB_o_atSpecialist = "CUP_O_TK_Soldier_HAT"; // AT Specialist +KPLIB_o_aaSpecialist = "CUP_O_TK_Soldier_AA"; // AA Specialist +KPLIB_o_medic = "CUP_O_TK_Medic"; // Medic +KPLIB_o_engineer = "CUP_O_TK_Engineer"; // Engineer +KPLIB_o_paratrooper = "CUP_O_TK_Soldier_AKS_74_GOSHAWK"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "CUP_O_LR_Transport_TKA"; // Land Rover 110 (Transport) -opfor_mrap_armed = "CUP_O_LR_MG_TKA"; // Land Rover 110 (M2) -opfor_transport_helo = "CUP_O_UH1H_TKA"; // UH-1H -opfor_transport_truck = "CUP_O_Ural_TKA"; // Ural -opfor_ammobox_transport = "CUP_O_Ural_Open_TKA"; // Ural (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "CUP_O_Ural_Refuel_TKA"; // Ural (Refuel) -opfor_ammo_truck = "CUP_O_Ural_Reammo_TKA"; // Ural (Ammo) -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "FlagCarrierTakistan_EP1"; // Flag +KPLIB_o_mrap = "CUP_O_LR_Transport_TKA"; // Land Rover 110 (Transport) +KPLIB_o_mrapArmed = "CUP_O_LR_MG_TKA"; // Land Rover 110 (M2) +KPLIB_o_transportHeli = "CUP_O_UH1H_TKA"; // UH-1H +KPLIB_o_transportTruck = "CUP_O_Ural_TKA"; // Ural +KPLIB_o_transportTruckAmmo = "CUP_O_Ural_Open_TKA"; // Ural (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "CUP_O_Ural_Refuel_TKA"; // Ural (Refuel) +KPLIB_o_ammoTruck = "CUP_O_Ural_Reammo_TKA"; // Ural (Ammo) +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "FlagCarrierTakistan_EP1"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "CUP_O_TK_INS_Soldier_FNFAL", // Militiaman (FN FAL) "CUP_O_TK_INS_Soldier", // Militiaman (AK-74) "CUP_O_TK_INS_Soldier_GL", // Militiaman (AK-74 GL) @@ -57,7 +66,7 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "CUP_O_LR_MG_TKM", // Land Rover 110 (M2) "CUP_O_LR_MG_TKM", // Land Rover 110 (M2) "CUP_O_Hilux_AGS30_TK_INS", // Hilux (AGS-30) @@ -72,7 +81,7 @@ militia_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) "CUP_O_UAZ_AGS30_TKA", // UAZ (AGS-30) "CUP_O_UAZ_SPG9_TKA", // UAZ (SPG-9) @@ -92,7 +101,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) "CUP_O_UAZ_AGS30_TKA", // UAZ (AGS-30) @@ -110,7 +119,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) "CUP_O_UAZ_AGS30_TKA", // UAZ (AGS-30) "CUP_O_UAZ_AGS30_TKA", // UAZ (AGS-30) @@ -136,7 +145,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) "CUP_O_UAZ_MG_TKA", // UAZ (DShKM) "CUP_O_MTLB_pk_TKA", // MT-LB LV @@ -157,7 +166,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "CUP_O_BMP1_TKA", // BMP-1 "CUP_O_M113_TKA", // M113A3 "CUP_O_MTLB_pk_TKA", // MT-LB LV @@ -174,7 +183,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "CUP_O_UH1H_TKA", // UH-1H "CUP_O_UH1H_armed_TKA", // UH-1H (Armed) "CUP_O_UH1H_gunship_SLA_TKA", // UH-1H (Gunship) @@ -183,7 +192,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "CUP_O_L39_TK", // L-39ZA "CUP_O_Su25_Dyn_TKA" // Su-25 Frogfoot ]; diff --git a/Missionframework/presets/opfor/custom.sqf b/Missionframework/presets/enemies/custom.sqf similarity index 77% rename from Missionframework/presets/opfor/custom.sqf rename to Missionframework/presets/enemies/custom.sqf index f37cd8a30..c6cee9085 100644 --- a/Missionframework/presets/opfor/custom.sqf +++ b/Missionframework/presets/enemies/custom.sqf @@ -1,48 +1,57 @@ /* + File: custom.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Custom (default CSAT) enemy preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "O_officer_F"; // Officer -opfor_squad_leader = "O_Soldier_SL_F"; // Squad Leader -opfor_team_leader = "O_Soldier_TL_F"; // Team Leader -opfor_sentry = "O_Soldier_lite_F"; // Rifleman (Lite) -opfor_rifleman = "O_Soldier_F"; // Rifleman -opfor_rpg = "O_Soldier_LAT_F"; // Rifleman (LAT) -opfor_grenadier = "O_Soldier_GL_F"; // Grenadier -opfor_machinegunner = "O_Soldier_AR_F"; // Autorifleman -opfor_heavygunner = "O_HeavyGunner_F"; // Heavy Gunner -opfor_marksman = "O_soldier_M_F"; // Marksman -opfor_sharpshooter = "O_Sharpshooter_F"; // Sharpshooter -opfor_sniper = "O_sniper_F"; // Sniper -opfor_at = "O_Soldier_AT_F"; // AT Specialist -opfor_aa = "O_Soldier_AA_F"; // AA Specialist -opfor_medic = "O_medic_F"; // Combat Life Saver -opfor_engineer = "O_engineer_F"; // Engineer -opfor_paratrooper = "O_soldier_PG_F"; // Paratrooper +KPLIB_o_officer = "O_officer_F"; // Officer +KPLIB_o_squadLeader = "O_Soldier_SL_F"; // Squad Leader +KPLIB_o_teamLeader = "O_Soldier_TL_F"; // Team Leader +KPLIB_o_sentry = "O_Soldier_lite_F"; // Rifleman (Lite) +KPLIB_o_rifleman = "O_Soldier_F"; // Rifleman +KPLIB_o_riflemanLAT = "O_Soldier_LAT_F"; // Rifleman (LAT) +KPLIB_o_grenadier = "O_Soldier_GL_F"; // Grenadier +KPLIB_o_machinegunner = "O_Soldier_AR_F"; // Autorifleman +KPLIB_o_heavyGunner = "O_HeavyGunner_F"; // Heavy Gunner +KPLIB_o_marksman = "O_soldier_M_F"; // Marksman +KPLIB_o_sharpshooter = "O_Sharpshooter_F"; // Sharpshooter +KPLIB_o_sniper = "O_sniper_F"; // Sniper +KPLIB_o_atSpecialist = "O_Soldier_AT_F"; // AT Specialist +KPLIB_o_aaSpecialist = "O_Soldier_AA_F"; // AA Specialist +KPLIB_o_medic = "O_medic_F"; // Combat Life Saver +KPLIB_o_engineer = "O_engineer_F"; // Engineer +KPLIB_o_paratrooper = "O_soldier_PG_F"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "O_MRAP_02_F"; // Ifrit -opfor_mrap_armed = "O_MRAP_02_hmg_F"; // Ifrit (HMG) -opfor_transport_helo = "O_Heli_Transport_04_bench_F"; // Mi-290 Taru (Bench) -opfor_transport_truck = "O_Truck_03_covered_F"; // Tempest Transport (Covered) -opfor_ammobox_transport = "O_Truck_03_transport_F"; // Tempest Transport (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "O_Truck_03_fuel_F"; // Tempest Fuel -opfor_ammo_truck = "O_Truck_03_ammo_F"; // Tempest Ammo -opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod -opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod -opfor_flag = "Flag_CSAT_F"; // Flag +KPLIB_o_mrap = "O_MRAP_02_F"; // Ifrit +KPLIB_o_mrapArmed = "O_MRAP_02_hmg_F"; // Ifrit (HMG) +KPLIB_o_transportHeli = "O_Heli_Transport_04_bench_F"; // Mi-290 Taru (Bench) +KPLIB_o_transportTruck = "O_Truck_03_covered_F"; // Tempest Transport (Covered) +KPLIB_o_transportTruckAmmo = "O_Truck_03_transport_F"; // Tempest Transport (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "O_Truck_03_fuel_F"; // Tempest Fuel +KPLIB_o_ammoTruck = "O_Truck_03_ammo_F"; // Tempest Ammo +KPLIB_o_fuelContainer = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +KPLIB_o_ammoContainer = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +KPLIB_o_flag = "Flag_CSAT_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "O_soldierU_F", // Rifleman (Lite) "O_soldierU_F", // Rifleman (Lite) "O_soldierU_F", // Rifleman @@ -55,12 +64,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "O_LSV_02_armed_F" // Qilin (armed) ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "O_MRAP_02_hmg_F", // Ifrit (HMG) "O_MRAP_02_hmg_F", // Ifrit (GMG) "O_MRAP_02_gmg_F", // Ifrit (GMG) @@ -76,7 +85,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "O_MRAP_02_hmg_F", // Ifrit (HMG) "O_MRAP_02_hmg_F", // Ifrit (HMG) "O_LSV_02_AT_F", // Qilin (AT) @@ -85,7 +94,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "O_MRAP_02_hmg_F", // Ifrit (HMG) "O_MRAP_02_gmg_F", // Ifrit (GMG) "O_MRAP_02_gmg_F", // Ifrit (GMG) @@ -107,7 +116,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "O_MRAP_02_hmg_F", // Ifrit (HMG) "O_MRAP_02_hmg_F", // Ifrit (HMG) "O_Truck_03_transport_F", // Tempest Transport @@ -120,7 +129,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "O_Truck_03_transport_F", // Tempest Transport "O_Truck_03_covered_F", // Tempest Transport (Covered) "O_APC_Wheeled_02_rcws_F", // MSE-3 Marid @@ -129,14 +138,14 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "O_Heli_Transport_04_bench_F", // Mi-290 Taru (Bench) "O_Heli_Light_02_dynamicLoadout_F", // Po-30 Orca (Armed) "O_Heli_Attack_02_dynamicLoadout_F" // Mi-48 Kajman ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "O_Plane_CAS_02_dynamicLoadout_F", // To-199 Neophron (CAS) "O_Plane_Fighter_02_F" // To-201 Shikra ]; diff --git a/Missionframework/presets/opfor/gm_east.sqf b/Missionframework/presets/enemies/gm_east.sqf similarity index 71% rename from Missionframework/presets/opfor/gm_east.sqf rename to Missionframework/presets/enemies/gm_east.sqf index 09c5a8ce0..61977110f 100644 --- a/Missionframework/presets/opfor/gm_east.sqf +++ b/Missionframework/presets/enemies/gm_east.sqf @@ -1,48 +1,57 @@ /* + File: gm_east.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-06 + Last Update: 2020-09-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + East Germany enemy preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - LEN - Cold War Aircraft (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 + - LEN - Cold War Aircraft */ // Enemy infantry classes -opfor_officer = "gm_gc_army_officer_80_gry"; // Officer -opfor_squad_leader = "gm_gc_army_squadleader_mpiak74n_80_str"; // Squad Leader -opfor_team_leader = "gm_gc_army_squadleader_mpiak74n_80_str"; // Team Leader -opfor_sentry = "gm_gc_army_rifleman_mpiak74n_80_str"; // Rifleman (Lite) -opfor_rifleman = "gm_gc_army_rifleman_mpiak74n_80_str"; // Rifleman -opfor_rpg = "gm_gc_army_antitank_mpiak74n_rpg7_80_str"; // Rifleman (LAT) -opfor_grenadier = "gm_gc_army_demolition_mpiaks74n_80_str"; // Grenadier -opfor_machinegunner = "gm_gc_army_machinegunner_lmgrpk_80_str"; // Autorifleman -opfor_heavygunner = "gm_gc_army_machinegunner_pk_80_str"; // Heavy Gunner -opfor_marksman = "gm_gc_army_rifleman_mpiak74n_80_str"; // Marksman -opfor_sharpshooter = "gm_gc_army_rifleman_mpiak74n_80_str"; // Sharpshooter -opfor_sniper = "gm_gc_army_rifleman_mpiak74n_80_str"; // Sniper -opfor_at = "gm_gc_army_antitank_mpiak74n_rpg7_80_str"; // AT Specialist -opfor_aa = "gm_gc_army_demolition_mpiaks74n_80_str"; // AA Specialist -opfor_medic = "gm_gc_army_rifleman_mpiak74n_80_str"; // Combat Life Saver -opfor_engineer = "gm_gc_army_engineer_mpiaks74n_80_str"; // Engineer -opfor_paratrooper = "gm_gc_army_rifleman_mpiak74n_80_str"; // Paratrooper +KPLIB_o_officer = "gm_gc_army_officer_80_gry"; // Officer +KPLIB_o_squadLeader = "gm_gc_army_squadleader_mpiak74n_80_str"; // Squad Leader +KPLIB_o_teamLeader = "gm_gc_army_squadleader_mpiak74n_80_str"; // Team Leader +KPLIB_o_sentry = "gm_gc_army_rifleman_mpiak74n_80_str"; // Rifleman (Lite) +KPLIB_o_rifleman = "gm_gc_army_rifleman_mpiak74n_80_str"; // Rifleman +KPLIB_o_riflemanLAT = "gm_gc_army_antitank_mpiak74n_rpg7_80_str"; // Rifleman (LAT) +KPLIB_o_grenadier = "gm_gc_army_demolition_mpiaks74n_80_str"; // Grenadier +KPLIB_o_machinegunner = "gm_gc_army_machinegunner_lmgrpk_80_str"; // Autorifleman +KPLIB_o_heavyGunner = "gm_gc_army_machinegunner_pk_80_str"; // Heavy Gunner +KPLIB_o_marksman = "gm_gc_army_rifleman_mpiak74n_80_str"; // Marksman +KPLIB_o_sharpshooter = "gm_gc_army_rifleman_mpiak74n_80_str"; // Sharpshooter +KPLIB_o_sniper = "gm_gc_army_rifleman_mpiak74n_80_str"; // Sniper +KPLIB_o_atSpecialist = "gm_gc_army_antitank_mpiak74n_rpg7_80_str"; // AT Specialist +KPLIB_o_aaSpecialist = "gm_gc_army_demolition_mpiaks74n_80_str"; // AA Specialist +KPLIB_o_medic = "gm_gc_army_rifleman_mpiak74n_80_str"; // Combat Life Saver +KPLIB_o_engineer = "gm_gc_army_engineer_mpiaks74n_80_str"; // Engineer +KPLIB_o_paratrooper = "gm_gc_army_rifleman_mpiak74n_80_str"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "gm_gc_army_brdm2um"; // SPW40-P2UM -opfor_mrap_armed = "gm_gc_army_brdm2"; // SPW-40P2 -opfor_transport_helo = "gm_gc_army_ural4320_cargo"; // Truck gel. 5 Transport -opfor_transport_truck = "gm_gc_army_ural4320_cargo"; // Truck gel. 5 Transport -opfor_ammobox_transport = "gm_gc_army_ural4320_cargo"; // Truck gel. 5 Transport -> Has to be able to transport resource crates! -opfor_fuel_truck = "gm_gc_army_ural4320_refuel"; // Truck gel. 5 Fuel -opfor_ammo_truck = "gm_gc_army_ural4320_reammo"; // Truck gel. 5 Ammo -opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod -opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod -opfor_flag = "FlagPole_F"; // Flag +KPLIB_o_mrap = "gm_gc_army_brdm2um"; // SPW40-P2UM +KPLIB_o_mrapArmed = "gm_gc_army_brdm2"; // SPW-40P2 +KPLIB_o_transportHeli = "gm_gc_army_ural4320_cargo"; // Truck gel. 5 Transport +KPLIB_o_transportTruck = "gm_gc_army_ural4320_cargo"; // Truck gel. 5 Transport +KPLIB_o_transportTruckAmmo = "gm_gc_army_ural4320_cargo"; // Truck gel. 5 Transport -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "gm_gc_army_ural4320_refuel"; // Truck gel. 5 Fuel +KPLIB_o_ammoTruck = "gm_gc_army_ural4320_reammo"; // Truck gel. 5 Ammo +KPLIB_o_fuelContainer = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +KPLIB_o_ammoContainer = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +KPLIB_o_flag = "FlagPole_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "gm_gc_army_rifleman_mpiak74n_80_str", // Rifleman (Lite) "gm_gc_army_rifleman_mpiak74n_80_str", // Rifleman (Lite) "gm_gc_army_rifleman_mpiak74n_80_str", // Rifleman @@ -55,12 +64,14 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ - "gm_gc_army_brdm2um" // SPW40-P2UM +KPLIB_o_militiaVehicles = [ + "gm_gc_army_brdm2um", // SPW40-P2UM + "gm_gc_army_brdm2", // SPW-40P2 + "gm_gc_army_brdm2" // SPW-40P2 ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "gm_gc_army_brdm2um", // SPW40-P2UM "gm_gc_army_brdm2", // SPW-40P2 "gm_gc_army_btr60pa", // SPW-60PA @@ -73,17 +84,19 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "gm_gc_army_brdm2um", // SPW40-P2UM "gm_gc_army_brdm2", // SPW-40P2 + "gm_gc_army_brdm2", // SPW-40P2 + "gm_gc_army_btr60pa", // SPW-60PA "gm_gc_army_btr60pa", // SPW-60PA "gm_gc_army_btr60pb" // SPW-60PB + "gm_gc_army_btr60pb" // SPW-60PB ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "gm_gc_army_ural4320_cargo", // Truck gel. 5 Transport - "gm_gc_army_brdm2um", // SPW40-P2UM "gm_gc_army_brdm2", // SPW-40P2 "gm_gc_army_btr60pa", // SPW-60PA "gm_gc_army_btr60pb", // SPW-60PB @@ -96,7 +109,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "gm_gc_army_ural4320_cargo", // Truck gel. 5 Transport "gm_gc_army_brdm2um", // SPW40-P2UM "gm_gc_army_brdm2", // SPW-40P2 @@ -109,7 +122,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "gm_gc_army_ural4320_cargo", // Truck gel. 5 Transport "gm_gc_army_btr60pa", // SPW-60PA "gm_gc_army_btr60pb", // SPW-60PB @@ -118,7 +131,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "gm_gc_airforce_mi2p", // Mi-2P "gm_gc_airforce_mi2us", // Mi-2US "gm_gc_airforce_mi2urn", // Mi-2URN @@ -132,6 +145,6 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "len_l39_nva" // Aero L-39 ]; diff --git a/Missionframework/presets/opfor/gm_east_win.sqf b/Missionframework/presets/enemies/gm_east_win.sqf similarity index 75% rename from Missionframework/presets/opfor/gm_east_win.sqf rename to Missionframework/presets/enemies/gm_east_win.sqf index 044dedd7a..701073845 100644 --- a/Missionframework/presets/opfor/gm_east_win.sqf +++ b/Missionframework/presets/enemies/gm_east_win.sqf @@ -1,48 +1,57 @@ /* + File: gm_east_win.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-09 + Last Update: 2020-09-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + East Germany Winter enemy preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - LEN - Cold War Aircraft (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 + - LEN - Cold War Aircraft */ // Enemy infantry classes -opfor_officer = "gm_gc_army_officer_pm_80_win"; // Officer -opfor_squad_leader = "gm_gc_army_squadleader_mpiak74n_80_win"; // Squad Leader -opfor_team_leader = "gm_gc_army_squadleader_mpiak74n_80_win"; // Team Leader -opfor_sentry = "gm_gc_army_rifleman_mpiak74n_80_win"; // Rifleman (Lite) -opfor_rifleman = "gm_gc_army_rifleman_mpiak74n_80_win"; // Rifleman -opfor_rpg = "gm_gc_army_antitank_mpiak74n_rpg7_80_win"; // Rifleman (LAT) -opfor_grenadier = "gm_gc_army_demolition_mpiaks74n_80_win"; // Grenadier -opfor_machinegunner = "gm_gc_army_machinegunner_lmgrpk_80_win"; // Autorifleman -opfor_heavygunner = "gm_gc_army_machinegunner_pk_80_win"; // Heavy Gunner -opfor_marksman = "gm_gc_army_rifleman_mpiak74n_80_win"; // Marksman -opfor_sharpshooter = "gm_gc_army_rifleman_mpiak74n_80_win"; // Sharpshooter -opfor_sniper = "gm_gc_army_rifleman_mpiak74n_80_win"; // Sniper -opfor_at = "gm_gc_army_antitank_mpiak74n_rpg7_80_win"; // AT Specialist -opfor_aa = "gm_gc_army_demolition_mpiaks74n_80_win"; // AA Specialist -opfor_medic = "gm_gc_army_rifleman_mpiak74n_80_win"; // Combat Life Saver -opfor_engineer = "gm_gc_army_engineer_mpiaks74n_80_win"; // Engineer -opfor_paratrooper = "gm_gc_army_rifleman_mpiak74n_80_win"; // Paratrooper +KPLIB_o_officer = "gm_gc_army_officer_pm_80_win"; // Officer +KPLIB_o_squadLeader = "gm_gc_army_squadleader_mpiak74n_80_win"; // Squad Leader +KPLIB_o_teamLeader = "gm_gc_army_squadleader_mpiak74n_80_win"; // Team Leader +KPLIB_o_sentry = "gm_gc_army_rifleman_mpiak74n_80_win"; // Rifleman (Lite) +KPLIB_o_rifleman = "gm_gc_army_rifleman_mpiak74n_80_win"; // Rifleman +KPLIB_o_riflemanLAT = "gm_gc_army_antitank_mpiak74n_rpg7_80_win"; // Rifleman (LAT) +KPLIB_o_grenadier = "gm_gc_army_demolition_mpiaks74n_80_win"; // Grenadier +KPLIB_o_machinegunner = "gm_gc_army_machinegunner_lmgrpk_80_win"; // Autorifleman +KPLIB_o_heavyGunner = "gm_gc_army_machinegunner_pk_80_win"; // Heavy Gunner +KPLIB_o_marksman = "gm_gc_army_rifleman_mpiak74n_80_win"; // Marksman +KPLIB_o_sharpshooter = "gm_gc_army_rifleman_mpiak74n_80_win"; // Sharpshooter +KPLIB_o_sniper = "gm_gc_army_rifleman_mpiak74n_80_win"; // Sniper +KPLIB_o_atSpecialist = "gm_gc_army_antitank_mpiak74n_rpg7_80_win"; // AT Specialist +KPLIB_o_aaSpecialist = "gm_gc_army_demolition_mpiaks74n_80_win"; // AA Specialist +KPLIB_o_medic = "gm_gc_army_rifleman_mpiak74n_80_win"; // Combat Life Saver +KPLIB_o_engineer = "gm_gc_army_engineer_mpiaks74n_80_win"; // Engineer +KPLIB_o_paratrooper = "gm_gc_army_rifleman_mpiak74n_80_win"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "gm_gc_army_brdm2um_win"; // SPW40-P2UM -opfor_mrap_armed = "gm_gc_army_brdm2_win"; // SPW-40P2 -opfor_transport_helo = "gm_gc_army_ural4320_cargo_win"; // Truck gel. 5 Transport -opfor_transport_truck = "gm_gc_army_ural4320_cargo_win"; // Truck gel. 5 Transport -opfor_ammobox_transport = "gm_gc_army_ural4320_cargo_win"; // Truck gel. 5 Transport -> Has to be able to transport resource crates! -opfor_fuel_truck = "gm_gc_army_ural4320_refuel_win"; // Truck gel. 5 Fuel -opfor_ammo_truck = "gm_gc_army_ural4320_reammo_win"; // Truck gel. 5 Ammo -opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod -opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod -opfor_flag = "FlagPole_F"; // Flag +KPLIB_o_mrap = "gm_gc_army_brdm2um_win"; // SPW40-P2UM +KPLIB_o_mrapArmed = "gm_gc_army_brdm2_win"; // SPW-40P2 +KPLIB_o_transportHeli = "gm_gc_army_ural4320_cargo_win"; // Truck gel. 5 Transport +KPLIB_o_transportTruck = "gm_gc_army_ural4320_cargo_win"; // Truck gel. 5 Transport +KPLIB_o_transportTruckAmmo = "gm_gc_army_ural4320_cargo_win"; // Truck gel. 5 Transport -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "gm_gc_army_ural4320_refuel_win"; // Truck gel. 5 Fuel +KPLIB_o_ammoTruck = "gm_gc_army_ural4320_reammo_win"; // Truck gel. 5 Ammo +KPLIB_o_fuelContainer = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +KPLIB_o_ammoContainer = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +KPLIB_o_flag = "FlagPole_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "gm_gc_army_rifleman_mpiak74n_80_win", // Rifleman (Lite) "gm_gc_army_rifleman_mpiak74n_80_win", // Rifleman (Lite) "gm_gc_army_rifleman_mpiak74n_80_win", // Rifleman @@ -55,12 +64,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "gm_gc_army_brdm2um_win" // SPW40-P2UM ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "gm_gc_army_brdm2um_win", // SPW40-P2UM "gm_gc_army_brdm2_win", // SPW-40P2 "gm_gc_army_btr60pa_win", // SPW-60PA @@ -73,7 +82,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "gm_gc_army_brdm2um_win", // SPW40-P2UM "gm_gc_army_brdm2_win", // SPW-40P2 "gm_gc_army_btr60pa_win", // SPW-60PA @@ -81,7 +90,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "gm_gc_army_ural4320_cargo_win", // Truck gel. 5 Transport "gm_gc_army_brdm2um_win", // SPW40-P2UM "gm_gc_army_brdm2_win", // SPW-40P2 @@ -96,7 +105,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "gm_gc_army_ural4320_cargo_win", // Truck gel. 5 Transport "gm_gc_army_brdm2um_win", // SPW40-P2UM "gm_gc_army_brdm2_win", // SPW-40P2 @@ -109,7 +118,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "gm_gc_army_ural4320_cargo_win", // Truck gel. 5 Transport "gm_gc_army_btr60pa_win", // SPW-60PA "gm_gc_army_btr60pb_win", // SPW-60PB @@ -118,7 +127,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "gm_gc_airforce_mi2p", // Mi-2P "gm_gc_airforce_mi2us", // Mi-2US "gm_gc_airforce_mi2urn", // Mi-2URN @@ -132,6 +141,6 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "len_l39_nva" // Aero L-39 ]; diff --git a/Missionframework/presets/opfor/gm_west.sqf b/Missionframework/presets/enemies/gm_west.sqf similarity index 75% rename from Missionframework/presets/opfor/gm_west.sqf rename to Missionframework/presets/enemies/gm_west.sqf index 1b70bddf0..999bf80d4 100644 --- a/Missionframework/presets/opfor/gm_west.sqf +++ b/Missionframework/presets/enemies/gm_west.sqf @@ -1,48 +1,57 @@ /* + File: gm_west.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-06 + Last Update: 2020-09-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + West Germany enemy preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 + - LEN - Cold War Aircraft */ // Enemy infantry classes -opfor_officer = "gm_ge_army_officer_p1_80_oli"; // Officer -opfor_squad_leader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Squad Leader -opfor_team_leader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Team Leader -opfor_sentry = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman (Lite) -opfor_rifleman = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman -opfor_rpg = "gm_ge_army_antitank_g3a3_pzf44_80_ols"; // Rifleman (LAT) -opfor_grenadier = "gm_ge_army_grenadier_g3a3_80_ols"; // Grenadier -opfor_machinegunner = "gm_ge_army_machinegunner_mg3_80_ols"; // Autorifleman -opfor_heavygunner = "gm_ge_army_machinegunner_mg3_80_ols"; // Heavy Gunner -opfor_marksman = "gm_ge_army_rifleman_g3a3_80_ols"; // Marksman -opfor_sharpshooter = "gm_ge_army_rifleman_g3a3_80_ols"; // Sharpshooter -opfor_sniper = "gm_ge_army_rifleman_g3a3_80_ols"; // Sniper -opfor_at = "gm_ge_army_antitank_g3a3_pzf84_80_ols"; // AT Specialist -opfor_aa = "gm_ge_army_demolition_g3a4_80_ols"; // AA Specialist -opfor_medic = "gm_ge_army_medic_g3a3_80_ols"; // Combat Life Saver -opfor_engineer = "gm_ge_army_engineer_g3a4_80_ols"; // Engineer -opfor_paratrooper = "gm_ge_army_rifleman_g3a3_80_ols"; // Paratrooper +KPLIB_o_officer = "gm_ge_army_officer_p1_80_oli"; // Officer +KPLIB_o_squadLeader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Squad Leader +KPLIB_o_teamLeader = "gm_ge_army_squadleader_g3a3_p2a1_80_ols"; // Team Leader +KPLIB_o_sentry = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman (Lite) +KPLIB_o_rifleman = "gm_ge_army_rifleman_g3a3_80_ols"; // Rifleman +KPLIB_o_riflemanLAT = "gm_ge_army_antitank_g3a3_pzf44_80_ols"; // Rifleman (LAT) +KPLIB_o_grenadier = "gm_ge_army_grenadier_g3a3_80_ols"; // Grenadier +KPLIB_o_machinegunner = "gm_ge_army_machinegunner_mg3_80_ols"; // Autorifleman +KPLIB_o_heavyGunner = "gm_ge_army_machinegunner_mg3_80_ols"; // Heavy Gunner +KPLIB_o_marksman = "gm_ge_army_rifleman_g3a3_80_ols"; // Marksman +KPLIB_o_sharpshooter = "gm_ge_army_rifleman_g3a3_80_ols"; // Sharpshooter +KPLIB_o_sniper = "gm_ge_army_rifleman_g3a3_80_ols"; // Sniper +KPLIB_o_atSpecialist = "gm_ge_army_antitank_g3a3_pzf84_80_ols"; // AT Specialist +KPLIB_o_aaSpecialist = "gm_ge_army_demolition_g3a4_80_ols"; // AA Specialist +KPLIB_o_medic = "gm_ge_army_medic_g3a3_80_ols"; // Combat Life Saver +KPLIB_o_engineer = "gm_ge_army_engineer_g3a4_80_ols"; // Engineer +KPLIB_o_paratrooper = "gm_ge_army_rifleman_g3a3_80_ols"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "gm_ge_army_iltis_cargo"; // Truck 0.5t -opfor_mrap_armed = "gm_ge_army_iltis_milan"; // Truck 0.5t MILAN -opfor_transport_helo = "gm_ge_army_kat1_454_cargo"; // Truck 10t mil gl Transport -opfor_transport_truck = "gm_ge_army_kat1_451_cargo"; // Truck 5t mil gl Transport -opfor_ammobox_transport = "gm_ge_army_kat1_451_container"; // Truck 5t mil gl Container -> Has to be able to transport resource crates! -opfor_fuel_truck = "gm_ge_army_kat1_451_refuel"; // Truck 5t mil gl Fuel -opfor_ammo_truck = "gm_ge_army_kat1_451_reammo"; // Truck 5t mil gl Ammo -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "FlagPole_F"; // Flag +KPLIB_o_mrap = "gm_ge_army_iltis_cargo"; // Truck 0.5t +KPLIB_o_mrapArmed = "gm_ge_army_iltis_milan"; // Truck 0.5t MILAN +KPLIB_o_transportHeli = "gm_ge_army_kat1_454_cargo"; // Truck 10t mil gl Transport +KPLIB_o_transportTruck = "gm_ge_army_kat1_451_cargo"; // Truck 5t mil gl Transport +KPLIB_o_transportTruckAmmo = "gm_ge_army_kat1_451_container"; // Truck 5t mil gl Container -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "gm_ge_army_kat1_451_refuel"; // Truck 5t mil gl Fuel +KPLIB_o_ammoTruck = "gm_ge_army_kat1_451_reammo"; // Truck 5t mil gl Ammo +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "FlagPole_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "gm_ge_army_rifleman_g3a3_80_ols", // Rifleman (Lite) "gm_ge_army_rifleman_g3a3_80_ols", // Rifleman (Lite) "gm_ge_army_rifleman_g3a3_80_ols", // Rifleman @@ -55,12 +64,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "gm_ge_army_u1300l_cargo" // Truck 2t Transport ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "gm_ge_army_u1300l_cargo", // Truck 2t Transport "gm_ge_army_iltis_milan", // Truck 0.5t MILAN "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) @@ -74,7 +83,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "gm_ge_army_u1300l_cargo", // Truck 2t Transport "gm_ge_army_iltis_milan", // Truck 0.5t MILAN "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) @@ -82,7 +91,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "gm_ge_army_u1300l_cargo", // Truck 2t Transport "gm_ge_army_iltis_milan", // Truck 0.5t MILAN "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) @@ -97,7 +106,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "gm_ge_army_u1300l_cargo", // Truck 2t Transport "gm_ge_army_iltis_milan", // Truck 0.5t MILAN "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) @@ -110,7 +119,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "gm_ge_army_u1300l_cargo", // Truck 2t Transport "gm_ge_army_fuchsa0_engineer", // Fuchs (Engineer) "gm_ge_army_fuchsa0_reconnaissance", // Fuchs (Recon, MILAN) @@ -120,7 +129,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "gm_ge_army_bo105p_pah1", // PAH 1 "gm_ge_army_bo105p_pah1a1", // PAH 1A1 "gm_ge_army_ch53g", // CH-53G @@ -128,4 +137,4 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = []; +KPLIB_o_planes = []; diff --git a/Missionframework/presets/opfor/gm_west_win.sqf b/Missionframework/presets/enemies/gm_west_win.sqf similarity index 72% rename from Missionframework/presets/opfor/gm_west_win.sqf rename to Missionframework/presets/enemies/gm_west_win.sqf index b705f8c76..171ae3d9f 100644 --- a/Missionframework/presets/opfor/gm_west_win.sqf +++ b/Missionframework/presets/enemies/gm_west_win.sqf @@ -1,48 +1,57 @@ /* + File: gm_west_win.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-09 + Last Update: 2020-09-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + West Germany Winter enemy preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 + - LEN - Cold War Aircraft */ // Enemy infantry classes -opfor_officer = "gm_ge_army_officer_p1_parka_80_win"; // Officer -opfor_squad_leader = "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win"; // Squad Leader -opfor_team_leader = "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win"; // Team Leader -opfor_sentry = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Rifleman (Lite) -opfor_rifleman = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Rifleman -opfor_rpg = "gm_ge_army_antitank_g3a3_pzf44_parka_80_win"; // Rifleman (LAT) -opfor_grenadier = "gm_ge_army_grenadier_g3a3_parka_80_win"; // Grenadier -opfor_machinegunner = "gm_ge_army_machinegunner_mg3_parka_80_win"; // Autorifleman -opfor_heavygunner = "gm_ge_army_machinegunner_mg3_parka_80_win"; // Heavy Gunner -opfor_marksman = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Marksman -opfor_sharpshooter = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Sharpshooter -opfor_sniper = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Sniper -opfor_at = "gm_ge_army_antitank_g3a3_pzf84_parka_80_win"; // AT Specialist -opfor_aa = "gm_ge_army_demolition_g3a4_parka_80_win"; // AA Specialist -opfor_medic = "gm_ge_army_medic_g3a3_parka_80_win"; // Combat Life Saver -opfor_engineer = "gm_ge_army_engineer_g3a4_parka_80_win"; // Engineer -opfor_paratrooper = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Paratrooper +KPLIB_o_officer = "gm_ge_army_officer_p1_parka_80_win"; // Officer +KPLIB_o_squadLeader = "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win"; // Squad Leader +KPLIB_o_teamLeader = "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win"; // Team Leader +KPLIB_o_sentry = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Rifleman (Lite) +KPLIB_o_rifleman = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Rifleman +KPLIB_o_riflemanLAT = "gm_ge_army_antitank_g3a3_pzf44_parka_80_win"; // Rifleman (LAT) +KPLIB_o_grenadier = "gm_ge_army_grenadier_g3a3_parka_80_win"; // Grenadier +KPLIB_o_machinegunner = "gm_ge_army_machinegunner_mg3_parka_80_win"; // Autorifleman +KPLIB_o_heavyGunner = "gm_ge_army_machinegunner_mg3_parka_80_win"; // Heavy Gunner +KPLIB_o_marksman = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Marksman +KPLIB_o_sharpshooter = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Sharpshooter +KPLIB_o_sniper = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Sniper +KPLIB_o_atSpecialist = "gm_ge_army_antitank_g3a3_pzf84_parka_80_win"; // AT Specialist +KPLIB_o_aaSpecialist = "gm_ge_army_demolition_g3a4_parka_80_win"; // AA Specialist +KPLIB_o_medic = "gm_ge_army_medic_g3a3_parka_80_win"; // Combat Life Saver +KPLIB_o_engineer = "gm_ge_army_engineer_g3a4_parka_80_win"; // Engineer +KPLIB_o_paratrooper = "gm_ge_army_rifleman_g3a3_parka_80_win"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "gm_ge_army_iltis_cargo_win"; // Truck 0.5t -opfor_mrap_armed = "gm_ge_army_iltis_milan_win"; // Truck 0.5t MILAN -opfor_transport_helo = "gm_ge_army_kat1_454_cargo_win"; // Truck 10t mil gl Transport -opfor_transport_truck = "gm_ge_army_kat1_451_cargo_win"; // Truck 5t mil gl Transport -opfor_ammobox_transport = "gm_ge_army_kat1_451_container_win"; // Truck 5t mil gl Container -> Has to be able to transport resource crates! -opfor_fuel_truck = "gm_ge_army_kat1_451_refuel_win"; // Truck 5t mil gl Fuel -opfor_ammo_truck = "gm_ge_army_kat1_451_reammo_win"; // Truck 5t mil gl Ammo -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Container -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Container -opfor_flag = "FlagPole_F"; // Flag +KPLIB_o_mrap = "gm_ge_army_iltis_cargo_win"; // Truck 0.5t +KPLIB_o_mrapArmed = "gm_ge_army_iltis_milan_win"; // Truck 0.5t MILAN +KPLIB_o_transportHeli = "gm_ge_army_kat1_454_cargo_win"; // Truck 10t mil gl Transport +KPLIB_o_transportTruck = "gm_ge_army_kat1_451_cargo_win"; // Truck 5t mil gl Transport +KPLIB_o_transportTruckAmmo = "gm_ge_army_kat1_451_container_win"; // Truck 5t mil gl Container -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "gm_ge_army_kat1_451_refuel_win"; // Truck 5t mil gl Fuel +KPLIB_o_ammoTruck = "gm_ge_army_kat1_451_reammo_win"; // Truck 5t mil gl Ammo +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Container +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Container +KPLIB_o_flag = "FlagPole_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "gm_ge_army_rifleman_g3a3_parka_80_win", // Rifleman (Lite) "gm_ge_army_rifleman_g3a3_parka_80_win", // Rifleman (Lite) "gm_ge_army_rifleman_g3a3_parka_80_win", // Rifleman @@ -55,12 +64,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "gm_ge_army_u1300l_cargo" // Truck 2t Transport ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport "gm_ge_army_iltis_milan_win", // Truck 0.5t MILAN "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) @@ -74,7 +83,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport "gm_ge_army_iltis_milan_win", // Truck 0.5t MILAN "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) @@ -82,7 +91,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport "gm_ge_army_iltis_milan_win", // Truck 0.5t MILAN "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) @@ -97,7 +106,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport "gm_ge_army_iltis_milan_win", // Truck 0.5t MILAN "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) @@ -110,7 +119,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "gm_ge_army_u1300l_cargo_win", // Truck 2t Transport "gm_ge_army_fuchsa0_engineer_win", // Fuchs (Engineer) "gm_ge_army_fuchsa0_reconnaissance_win", // Fuchs (Recon, MILAN) @@ -120,7 +129,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "gm_ge_army_bo105p_pah1", // PAH 1 "gm_ge_army_bo105p_pah1a1", // PAH 1A1 "gm_ge_army_ch53g", // CH-53G @@ -128,4 +137,4 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = []; +KPLIB_o_planes = []; diff --git a/Missionframework/presets/opfor/islamic_state.sqf b/Missionframework/presets/enemies/islamic_state.sqf similarity index 79% rename from Missionframework/presets/opfor/islamic_state.sqf rename to Missionframework/presets/enemies/islamic_state.sqf index c218fea87..07c96a9b8 100644 --- a/Missionframework/presets/opfor/islamic_state.sqf +++ b/Missionframework/presets/enemies/islamic_state.sqf @@ -1,50 +1,60 @@ /* + File: islamic_state.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-12-09 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Islamic State enemy preset. + Needed Mods: - - RHS USAF - - RHS AFRF - - Project OPFOR + - Project OPFOR + - RHS AFRF + - RHS GREF + - RHS USAF Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "LOP_ISTS_OPF_Infantry_SL"; // Officer (Warlord) -opfor_squad_leader = "LOP_ISTS_OPF_Infantry_SL"; // Squad Leader (Warlord) -opfor_team_leader = "LOP_ISTS_OPF_Infantry_TL"; // Team Leader (Chief) -opfor_sentry = "LOP_ISTS_OPF_Infantry_Rifleman"; // Rifleman (AKM) -opfor_rifleman = "LOP_ISTS_OPF_Infantry_Rifleman_5"; // Rifleman (AK-74) -opfor_rpg = "LOP_ISTS_OPF_Infantry_AT"; // Rifleman (RPG-7) -opfor_grenadier = "LOP_ISTS_OPF_Infantry_GL"; // Grenadier (AKM GP-25) -opfor_machinegunner = "LOP_ISTS_OPF_Infantry_AR_Asst"; // Autorifleman (AR_Asst) -opfor_heavygunner = "LOP_ISTS_OPF_Infantry_AR"; // Heavy Gunner (PKM) -opfor_marksman = "LOP_ISTS_OPF_Infantry_Rifleman_2"; // Marksman (Lee Enfield) -opfor_sharpshooter = "LOP_ISTS_OPF_Infantry_Marksman"; // Sharpshooter (SVD) -opfor_sniper = "LOP_ISTS_OPF_Infantry_Marksman"; // Sniper (SVD) -opfor_at = "LOP_ISTS_OPF_Infantry_AT"; // AT Specialist (RPG-7) -opfor_aa = "LOP_ISTS_OPF_Infantry_AT"; // AA Specialist (RPG-7) -opfor_medic = "LOP_ISTS_OPF_Infantry_Corpsman"; // Combat Life Saver (Bonesetter) -opfor_engineer = "LOP_ISTS_OPF_Infantry_Engineer"; // Engineer (Bomber) -opfor_paratrooper = "LOP_ISTS_OPF_Infantry_Rifleman_6"; // Paratrooper (AKM PM-63) +KPLIB_o_officer = "LOP_ISTS_OPF_Infantry_SL"; // Officer (Warlord) +KPLIB_o_squadLeader = "LOP_ISTS_OPF_Infantry_SL"; // Squad Leader (Warlord) +KPLIB_o_teamLeader = "LOP_ISTS_OPF_Infantry_TL"; // Team Leader (Chief) +KPLIB_o_sentry = "LOP_ISTS_OPF_Infantry_Rifleman"; // Rifleman (AKM) +KPLIB_o_rifleman = "LOP_ISTS_OPF_Infantry_Rifleman_5"; // Rifleman (AK-74) +KPLIB_o_riflemanLAT = "LOP_ISTS_OPF_Infantry_AT"; // Rifleman (RPG-7) +KPLIB_o_grenadier = "LOP_ISTS_OPF_Infantry_GL"; // Grenadier (AKM GP-25) +KPLIB_o_machinegunner = "LOP_ISTS_OPF_Infantry_AR_Asst"; // Autorifleman (AR_Asst) +KPLIB_o_heavyGunner = "LOP_ISTS_OPF_Infantry_AR"; // Heavy Gunner (PKM) +KPLIB_o_marksman = "LOP_ISTS_OPF_Infantry_Rifleman_2"; // Marksman (Lee Enfield) +KPLIB_o_sharpshooter = "LOP_ISTS_OPF_Infantry_Marksman"; // Sharpshooter (SVD) +KPLIB_o_sniper = "LOP_ISTS_OPF_Infantry_Marksman"; // Sniper (SVD) +KPLIB_o_atSpecialist = "LOP_ISTS_OPF_Infantry_AT"; // AT Specialist (RPG-7) +KPLIB_o_aaSpecialist = "LOP_ISTS_OPF_Infantry_AT"; // AA Specialist (RPG-7) +KPLIB_o_medic = "LOP_ISTS_OPF_Infantry_Corpsman"; // Combat Life Saver (Bonesetter) +KPLIB_o_engineer = "LOP_ISTS_OPF_Infantry_Engineer"; // Engineer (Bomber) +KPLIB_o_paratrooper = "LOP_ISTS_OPF_Infantry_Rifleman_6"; // Paratrooper (AKM PM-63) // Enemy vehicles used by secondary objectives. -opfor_mrap = "LOP_ISTS_OPF_Offroad"; // Offroad -opfor_mrap_armed = "LOP_ISTS_OPF_Offroad_M2"; // Offroad (M2) -opfor_transport_helo = "LOP_TKA_Mi8MT_Cargo"; // Mi-8MT (Cargo) -opfor_transport_truck = "LOP_TKA_Ural"; // Ural-4320 (Covered) -opfor_ammobox_transport = "LOP_TKA_Ural_open"; // Ural-4320 (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "RHS_Ural_Fuel_MSV_01"; // Ural-4320 (Fuel) -opfor_ammo_truck = "rhs_gaz66_ammo_msv"; // GAZ-66 (Ammo) -opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod -opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod -opfor_flag = "lop_Flag_tak_F"; // Flag +KPLIB_o_mrap = "LOP_ISTS_OPF_Offroad"; // Offroad +KPLIB_o_mrapArmed = "LOP_ISTS_OPF_Offroad_M2"; // Offroad (M2) +KPLIB_o_transportHeli = "LOP_TKA_Mi8MT_Cargo"; // Mi-8MT (Cargo) +KPLIB_o_transportTruck = "LOP_TKA_Ural"; // Ural-4320 (Covered) +KPLIB_o_transportTruckAmmo = "LOP_TKA_Ural_open"; // Ural-4320 (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "RHS_Ural_Fuel_MSV_01"; // Ural-4320 (Fuel) +KPLIB_o_ammoTruck = "rhs_gaz66_ammo_msv"; // GAZ-66 (Ammo) +KPLIB_o_fuelContainer = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +KPLIB_o_ammoContainer = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +KPLIB_o_flag = "lop_Flag_tak_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "LOP_AM_OPF_Infantry_Rifleman", // Rifleman (AKM) "LOP_AM_OPF_Infantry_Rifleman", // Rifleman (AKM) "LOP_AM_OPF_Infantry_Rifleman_5", // Rifleman (AKM-74) @@ -57,12 +67,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "LOP_AM_OPF_UAZ_DshKM" // UAZ-3151 (DShKM) ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "LOP_ISTS_OPF_Landrover_M2", // Land Rover (M2) "LOP_ISTS_OPF_Landrover_SPG9", // Land Rover (SPG) "LOP_ISTS_OPF_M1025_W_M2", // M10252 (M2) @@ -80,7 +90,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "LOP_ISTS_OPF_Landrover_M2", // Land Rover (M2) "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) @@ -92,7 +102,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "LOP_ISTS_OPF_Landrover_M2", // Land Rover (M2) "LOP_ISTS_OPF_Landrover_SPG9", // Land Rover (SPG) "LOP_ISTS_OPF_M1025_W_M2", // M10252 (M2) @@ -116,7 +126,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "LOP_ISTS_OPF_Landrover_M2", // Land Rover (M2) "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) "LOP_ISTS_OPF_Nissan_PKM", // Nissan (PKM) @@ -137,7 +147,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "LOP_ISTS_OPF_Truck", // Truck (Cargo) "LOP_ISTS_OPF_BMP1", // BMP-1 "LOP_ISTS_OPF_BMP2", // BMP-2 @@ -146,7 +156,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "LOP_TKA_Mi8MT_Cargo", // Mi-8MT (Cargo) "LOP_TKA_Mi24V_AT", // Mi-24V (AT) "LOP_TKA_Mi24V_FAB", // Mi-24V (FAB) @@ -154,7 +164,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "RHS_Su25SM_vvsc", // Su-25 "RHS_Su25SM_KH29_vvsc" // Su-25 (KH29) ]; diff --git a/Missionframework/presets/opfor/nato.sqf b/Missionframework/presets/enemies/nato.sqf similarity index 77% rename from Missionframework/presets/opfor/nato.sqf rename to Missionframework/presets/enemies/nato.sqf index a80d5a65f..002d15da5 100644 --- a/Missionframework/presets/opfor/nato.sqf +++ b/Missionframework/presets/enemies/nato.sqf @@ -1,61 +1,70 @@ /* + File: nato.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-03 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + NATO enemy preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "B_officer_F"; // Officer -opfor_squad_leader = "B_Soldier_SL_F"; // Squad Leader -opfor_team_leader = "B_Soldier_TL_F"; // Team Leader -opfor_sentry = "B_Soldier_lite_F"; // Rifleman (Lite) -opfor_rifleman = "B_Soldier_F"; // Rifleman -opfor_rpg = "B_soldier_LAT_F"; // Rifleman (LAT) -opfor_grenadier = "B_Soldier_GL_F"; // Grenadier -opfor_machinegunner = "B_soldier_AR_F"; // Autorifleman -opfor_heavygunner = "B_HeavyGunner_F"; // Heavy Gunner -opfor_marksman = "B_soldier_M_F"; // Marksman -opfor_sharpshooter = "B_Sharpshooter_F"; // Sharpshooter -opfor_sniper = "B_sniper_F"; // Sniper -opfor_at = "B_soldier_AT_F"; // AT Specialist -opfor_aa = "B_soldier_AA_F"; // AA Specialist -opfor_medic = "B_medic_F"; // Combat Life Saver -opfor_engineer = "B_engineer_F"; // Engineer -opfor_paratrooper = "B_soldier_PG_F"; // Paratrooper +KPLIB_o_officer = "B_officer_F"; // Officer +KPLIB_o_squadLeader = "B_Soldier_SL_F"; // Squad Leader +KPLIB_o_teamLeader = "B_Soldier_TL_F"; // Team Leader +KPLIB_o_sentry = "B_Soldier_lite_F"; // Rifleman (Lite) +KPLIB_o_rifleman = "B_Soldier_F"; // Rifleman +KPLIB_o_riflemanLAT = "B_soldier_LAT_F"; // Rifleman (LAT) +KPLIB_o_grenadier = "B_Soldier_GL_F"; // Grenadier +KPLIB_o_machinegunner = "B_soldier_AR_F"; // Autorifleman +KPLIB_o_heavyGunner = "B_HeavyGunner_F"; // Heavy Gunner +KPLIB_o_marksman = "B_soldier_M_F"; // Marksman +KPLIB_o_sharpshooter = "B_Sharpshooter_F"; // Sharpshooter +KPLIB_o_sniper = "B_sniper_F"; // Sniper +KPLIB_o_atSpecialist = "B_soldier_AT_F"; // AT Specialist +KPLIB_o_aaSpecialist = "B_soldier_AA_F"; // AA Specialist +KPLIB_o_medic = "B_medic_F"; // Combat Life Saver +KPLIB_o_engineer = "B_engineer_F"; // Engineer +KPLIB_o_paratrooper = "B_soldier_PG_F"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "B_MRAP_01_F"; // M-ATV -opfor_mrap_armed = "B_MRAP_01_hmg_F"; // MATV (HMG) -opfor_transport_helo = "B_Heli_Transport_03_unarmed_F"; // CH-47l Chinook (unarmed) -opfor_transport_truck = "B_Truck_01_covered_F"; // HEMTT Transport (Covered) -opfor_ammobox_transport = "B_Truck_01_transport_F"; // HEMTT Transport (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "B_Truck_01_fuel_F"; // HEMTT Fuel -opfor_ammo_truck = "B_Truck_01_ammo_F"; // HEMTT Ammo -opfor_fuel_container = "B_Slingload_01_Fuel_F"; // Huron Fuel Pod -opfor_ammo_container = "B_Slingload_01_Ammo_F"; // Huron Ammo Pod -opfor_flag = "Flag_NATO_F"; // Flag +KPLIB_o_mrap = "B_MRAP_01_F"; // M-ATV +KPLIB_o_mrapArmed = "B_MRAP_01_hmg_F"; // MATV (HMG) +KPLIB_o_transportHeli = "B_Heli_Transport_03_unarmed_F"; // CH-47l Chinook (unarmed) +KPLIB_o_transportTruck = "B_Truck_01_covered_F"; // HEMTT Transport (Covered) +KPLIB_o_transportTruckAmmo = "B_Truck_01_transport_F"; // HEMTT Transport (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "B_Truck_01_fuel_F"; // HEMTT Fuel +KPLIB_o_ammoTruck = "B_Truck_01_ammo_F"; // HEMTT Ammo +KPLIB_o_fuelContainer = "B_Slingload_01_Fuel_F"; // Huron Fuel Pod +KPLIB_o_ammoContainer = "B_Slingload_01_Ammo_F"; // Huron Ammo Pod +KPLIB_o_flag = "Flag_NATO_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ - "B_Soldier_F", // Rifleman (Lite) - "B_Soldier_F", // Rifleman (Lite) - "B_Soldier_F", // Rifleman - "B_Soldier_F", // Rifleman - "B_soldier_LAT_F", // Rifleman (AT) - "B_soldier_AR_F", // Autorifleman - "B_soldier_M_F", // Marksman - "B_medic_F", // Medic - "B_engineer_F" // Engineer +KPLIB_o_militiaInfantry = [ + "B_Soldier_F", // Rifleman (Lite) + "B_Soldier_F", // Rifleman (Lite) + "B_Soldier_F", // Rifleman + "B_Soldier_F", // Rifleman + "B_soldier_LAT_F", // Rifleman (AT) + "B_soldier_AR_F", // Autorifleman + "B_soldier_M_F", // Marksman + "B_medic_F", // Medic + "B_engineer_F" // Engineer ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "B_LSV_01_armed_F", // Polaris DAGOR (XM312) "B_LSV_01_armed_F", // Polaris DAGOR (XM312) "B_MRAP_01_hmg_F", // Ifrit (HMG) @@ -63,7 +72,7 @@ militia_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "B_MRAP_01_hmg_F", // M-ATV (HMG) "B_MRAP_01_hmg_F", // M-ATV (HMG) "B_MRAP_01_gmg_F", // M-ATV (GMG) @@ -80,7 +89,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "B_MRAP_01_hmg_F", // M-ATV (HMG) "B_MRAP_01_hmg_F", // M-ATV (HMG) "B_LSV_01_AT_F", // Polaris DAGOR (Mini-Spike PZAbw) @@ -89,7 +98,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "B_MRAP_01_hmg_F", // M-ATV (HMG) "B_MRAP_01_gmg_F", // M-ATV (GMG) "B_MRAP_01_gmg_F", // M-ATV (GMG) @@ -111,7 +120,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "B_MRAP_01_hmg_F", // M-ATV (HMG) "B_MRAP_01_hmg_F", // M-ATV (HMG) "B_Truck_01_transport_F", // HEMTT Transport @@ -124,7 +133,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "B_Truck_01_transport_F", // HEMTT Transport "B_Truck_01_covered_F", // HEMTT Transport (Covered) "B_APC_Wheeled_01_cannon_F", // SPz Badger @@ -133,7 +142,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "B_Heli_Light_01_dynamicLoadout_F", // AH-6 Little Bird (Armed) "B_CTRG_Heli_Transport_01_sand_F", // UH-80 Ghost Hawk (Sand) "B_Heli_Attack_01_dynamicLoadout_F", // RAH-66 Comanche @@ -143,7 +152,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "B_Plane_CAS_01_dynamicLoadout_F", // A-10D Thunderbolt II (CAS) "B_Plane_Fighter_01_F" // F/A-181 Black Wasp II ]; diff --git a/Missionframework/presets/opfor/rhs_afrf.sqf b/Missionframework/presets/enemies/rhs_afrf.sqf similarity index 77% rename from Missionframework/presets/opfor/rhs_afrf.sqf rename to Missionframework/presets/enemies/rhs_afrf.sqf index bf26c76ff..54d7cc045 100644 --- a/Missionframework/presets/opfor/rhs_afrf.sqf +++ b/Missionframework/presets/enemies/rhs_afrf.sqf @@ -1,48 +1,57 @@ /* + File: rhs_afrf.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-06-03 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Armed Forces of the Russian Federation enemy preset. + Needed Mods: - - RHS AFRF + - RHS AFRF Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "rhs_msv_emr_officer"; // Officer -opfor_squad_leader = "rhs_msv_emr_sergeant"; // Squad Leader -opfor_team_leader = "rhs_msv_emr_efreitor"; // Team Leader -opfor_sentry = "rhs_msv_emr_rifleman"; // Rifleman (Lite) -opfor_rifleman = "rhs_msv_emr_rifleman"; // Rifleman -opfor_rpg = "rhs_msv_emr_LAT"; // Rifleman (LAT) -opfor_grenadier = "rhs_msv_emr_grenadier"; // Grenadier -opfor_machinegunner = "rhs_msv_emr_arifleman"; // Autorifleman -opfor_heavygunner = "rhs_msv_emr_machinegunner"; // Heavy Gunner -opfor_marksman = "rhs_msv_emr_marksman"; // Marksman -opfor_sharpshooter = "rhs_msv_emr_marksman"; // Sharpshooter -opfor_sniper = "rhs_msv_emr_marksman"; // Sniper -opfor_at = "rhs_msv_emr_at"; // AT Specialist -opfor_aa = "rhs_msv_emr_aa"; // AA Specialist -opfor_medic = "rhs_msv_emr_medic"; // Combat Life Saver -opfor_engineer = "rhs_msv_emr_engineer"; // Engineer -opfor_paratrooper = "rhs_msv_emr_RShG2"; // Paratrooper +KPLIB_o_officer = "rhs_msv_emr_officer"; // Officer +KPLIB_o_squadLeader = "rhs_msv_emr_sergeant"; // Squad Leader +KPLIB_o_teamLeader = "rhs_msv_emr_efreitor"; // Team Leader +KPLIB_o_sentry = "rhs_msv_emr_rifleman"; // Rifleman (Lite) +KPLIB_o_rifleman = "rhs_msv_emr_rifleman"; // Rifleman +KPLIB_o_riflemanLAT = "rhs_msv_emr_LAT"; // Rifleman (LAT) +KPLIB_o_grenadier = "rhs_msv_emr_grenadier"; // Grenadier +KPLIB_o_machinegunner = "rhs_msv_emr_arifleman"; // Autorifleman +KPLIB_o_heavyGunner = "rhs_msv_emr_machinegunner"; // Heavy Gunner +KPLIB_o_marksman = "rhs_msv_emr_marksman"; // Marksman +KPLIB_o_sharpshooter = "rhs_msv_emr_marksman"; // Sharpshooter +KPLIB_o_sniper = "rhs_msv_emr_marksman"; // Sniper +KPLIB_o_atSpecialist = "rhs_msv_emr_at"; // AT Specialist +KPLIB_o_aaSpecialist = "rhs_msv_emr_aa"; // AA Specialist +KPLIB_o_medic = "rhs_msv_emr_medic"; // Combat Life Saver +KPLIB_o_engineer = "rhs_msv_emr_engineer"; // Engineer +KPLIB_o_paratrooper = "rhs_msv_emr_RShG2"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "rhs_tigr_msv"; // GAZ-233011 -opfor_mrap_armed = "rhs_tigr_sts_msv"; // GAZ-233014 (Armed) -opfor_transport_helo = "RHS_Mi8mt_Cargo_vvsc"; // Mi-8MT (Cargo) -opfor_transport_truck = "RHS_Ural_MSV_01"; // Ural-4320 Transport (Covered) -opfor_ammobox_transport = "RHS_Ural_Open_MSV_01"; // Ural-4320 Transport (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "RHS_Ural_Fuel_MSV_01"; // Ural-4320 Fuel -opfor_ammo_truck = "rhs_gaz66_ammo_msv"; // GAZ-66 Ammo -opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod -opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod -opfor_flag = "rhs_Flag_Russia_F"; // Flag +KPLIB_o_mrap = "rhs_tigr_msv"; // GAZ-233011 +KPLIB_o_mrapArmed = "rhs_tigr_sts_msv"; // GAZ-233014 (Armed) +KPLIB_o_transportHeli = "RHS_Mi8mt_Cargo_vvsc"; // Mi-8MT (Cargo) +KPLIB_o_transportTruck = "RHS_Ural_MSV_01"; // Ural-4320 Transport (Covered) +KPLIB_o_transportTruckAmmo = "RHS_Ural_Open_MSV_01"; // Ural-4320 Transport (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "RHS_Ural_Fuel_MSV_01"; // Ural-4320 Fuel +KPLIB_o_ammoTruck = "rhs_gaz66_ammo_msv"; // GAZ-66 Ammo +KPLIB_o_fuelContainer = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +KPLIB_o_ammoContainer = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +KPLIB_o_flag = "rhs_Flag_Russia_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "rhs_msv_emr_rifleman", // Rifleman "rhs_msv_emr_rifleman", // Rifleman "rhs_msv_emr_rifleman", // Rifleman @@ -54,12 +63,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "rhs_tigr_sts_msv" // GAZ-233014 (Armed) ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "rhs_tigr_sts_msv", // GAZ-233014 (Armed) "rhs_tigr_sts_msv", // GAZ-233014 (Armed) "rhs_tigr_sts_msv", // GAZ-233014 (Armed) @@ -75,7 +84,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "rhs_tigr_sts_msv", // GAZ-233014 (Armed) "rhs_tigr_sts_msv", // GAZ-233014 (Armed) "rhs_btr80_msv", // BTR-80 @@ -83,7 +92,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "rhs_tigr_sts_msv", // GAZ-233014 (Armed) "rhs_tigr_sts_msv", // GAZ-233014 (Armed) "rhs_tigr_sts_msv", // GAZ-233014 (Armed) @@ -104,7 +113,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "rhs_tigr_msv", // GAZ-233011 "rhs_tigr_sts_msv", // GAZ-233014 (Armed) "rhs_tigr_sts_msv", // GAZ-233014 (Armed) @@ -119,7 +128,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "RHS_Ural_Open_MSV_01", // Ural-4320 Transport "RHS_Ural_MSV_01", // Ural-4320 Transport (Covered) "rhs_btr80_msv", // BTR-80 @@ -131,7 +140,7 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "RHS_Mi8mt_Cargo_vvsc", // Mi-8MT (Cargo) "RHS_Mi24P_AT_vvsc", // Mi-24P (AT) "RHS_Mi24V_AT_vvsc", // Mi-24V (AT) @@ -139,7 +148,7 @@ opfor_choppers = [ ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "RHS_Su25SM_vvsc", // Su-25 "RHS_Su25SM_KH29_vvsc" // Su-25 (KH29) ]; diff --git a/Missionframework/presets/opfor/SLA.sqf b/Missionframework/presets/enemies/sla.sqf similarity index 62% rename from Missionframework/presets/opfor/SLA.sqf rename to Missionframework/presets/enemies/sla.sqf index f9826430e..0f975f25a 100644 --- a/Missionframework/presets/opfor/SLA.sqf +++ b/Missionframework/presets/enemies/sla.sqf @@ -1,48 +1,60 @@ /* + File: sla.sqf + Author: PSYKO-nz - https://github.com/PSYKO-nz + Date: 2018-02-19 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Sahrani Liberation Army enemy preset. + Needed Mods: - - Project OPFOR + - Project OPFOR + - RHS AFRF + - RHS GREF + - RHS USAF Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "LOP_SLA_Infantry_Officer"; -opfor_squad_leader = "LOP_SLA_Infantry_SL"; -opfor_team_leader = "LOP_SLA_Infantry_TL"; -opfor_sentry = "LOP_SLA_Infantry_Rifleman"; -opfor_rifleman = "LOP_SLA_Infantry_Rifleman_2"; -opfor_rpg = "LOP_SLA_Infantry_AT"; -opfor_grenadier = "LOP_SLA_Infantry_GL"; -opfor_machinegunner = "LOP_SLA_Infantry_MG"; -opfor_heavygunner = "LOP_SLA_Infantry_MG"; -opfor_marksman = "LOP_SLA_Infantry_Marksman"; -opfor_sharpshooter = "LOP_SLA_Infantry_Marksman"; -opfor_sniper = "LOP_SLA_Infantry_Marksman"; -opfor_at = "LOP_SLA_Infantry_AT"; -opfor_aa = "LOP_SLA_Infantry_AA"; -opfor_medic = "LOP_SLA_Infantry_Corpsman"; -opfor_engineer = "LOP_SLA_Infantry_Engineer"; -opfor_paratrooper = "LOP_SLA_Infantry_Rifleman"; +KPLIB_o_officer = "LOP_SLA_Infantry_Officer"; +KPLIB_o_squadLeader = "LOP_SLA_Infantry_SL"; +KPLIB_o_teamLeader = "LOP_SLA_Infantry_TL"; +KPLIB_o_sentry = "LOP_SLA_Infantry_Rifleman"; +KPLIB_o_rifleman = "LOP_SLA_Infantry_Rifleman_2"; +KPLIB_o_riflemanLAT = "LOP_SLA_Infantry_AT"; +KPLIB_o_grenadier = "LOP_SLA_Infantry_GL"; +KPLIB_o_machinegunner = "LOP_SLA_Infantry_MG"; +KPLIB_o_heavyGunner = "LOP_SLA_Infantry_MG"; +KPLIB_o_marksman = "LOP_SLA_Infantry_Marksman"; +KPLIB_o_sharpshooter = "LOP_SLA_Infantry_Marksman"; +KPLIB_o_sniper = "LOP_SLA_Infantry_Marksman"; +KPLIB_o_atSpecialist = "LOP_SLA_Infantry_AT"; +KPLIB_o_aaSpecialist = "LOP_SLA_Infantry_AA"; +KPLIB_o_medic = "LOP_SLA_Infantry_Corpsman"; +KPLIB_o_engineer = "LOP_SLA_Infantry_Engineer"; +KPLIB_o_paratrooper = "LOP_SLA_Infantry_Rifleman"; // Enemy vehicles used by secondary objectives. -opfor_mrap = "LOP_SLA_UAZ"; -opfor_mrap_armed = "LOP_SLA_UAZ_DshKM"; -opfor_transport_helo = "LOP_SLA_Mi8MT_Cargo"; -opfor_transport_truck = "LOP_SLA_Ural"; -opfor_ammobox_transport = "LOP_SLA_Ural_open"; //-> Has to be able to transport resource crates! -opfor_fuel_truck = "rhs_gaz66_ammo_vmf"; -opfor_ammo_truck = "rhs_gaz66_ammo_vmf"; -opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; -opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; -opfor_flag = "lop_Flag_sla_F"; +KPLIB_o_mrap = "LOP_SLA_UAZ"; +KPLIB_o_mrapArmed = "LOP_SLA_UAZ_DshKM"; +KPLIB_o_transportHeli = "LOP_SLA_Mi8MT_Cargo"; +KPLIB_o_transportTruck = "LOP_SLA_Ural"; +KPLIB_o_transportTruckAmmo = "LOP_SLA_Ural_open"; //-> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "rhs_gaz66_ammo_vmf"; +KPLIB_o_ammoTruck = "rhs_gaz66_ammo_vmf"; +KPLIB_o_fuelContainer = "Land_Pod_Heli_Transport_04_fuel_F"; +KPLIB_o_ammoContainer = "Land_Pod_Heli_Transport_04_ammo_F"; +KPLIB_o_flag = "lop_Flag_sla_F"; /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "LOP_SLA_Infantry_Rifleman", "LOP_SLA_Infantry_Rifleman_2", "LOP_SLA_Infantry_GL", @@ -57,7 +69,7 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "LOP_SLA_UAZ_SPG", "LOP_SLA_UAZ_DshKM", "LOP_SLA_UAZ_AGS", @@ -66,7 +78,7 @@ militia_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "LOP_SLA_UAZ_SPG", "LOP_SLA_UAZ_DshKM", "LOP_SLA_UAZ_AGS", @@ -82,7 +94,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "LOP_SLA_UAZ_SPG", "LOP_SLA_UAZ_DshKM", "LOP_SLA_UAZ_AGS", @@ -91,7 +103,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "LOP_SLA_UAZ_SPG", "LOP_SLA_UAZ_DshKM", "LOP_SLA_UAZ_AGS", @@ -108,7 +120,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "LOP_SLA_UAZ_DshKM", "LOP_SLA_UAZ_AGS", "LOP_SLA_Ural", @@ -123,7 +135,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "LOP_SLA_Ural_open", "LOP_SLA_Ural", "LOP_SLA_Mi8MTV3_FAB", @@ -132,11 +144,11 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "LOP_SLA_Mi8MTV3_FAB", "LOP_SLA_Mi8MT_Cargo", "LOP_SLA_Mi8MTV3_UPK23" ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = []; +KPLIB_o_planes = []; diff --git a/Missionframework/presets/opfor/takistan.sqf b/Missionframework/presets/enemies/takistan.sqf similarity index 77% rename from Missionframework/presets/opfor/takistan.sqf rename to Missionframework/presets/enemies/takistan.sqf index 9bcd7e00f..73740df2b 100644 --- a/Missionframework/presets/opfor/takistan.sqf +++ b/Missionframework/presets/enemies/takistan.sqf @@ -1,50 +1,60 @@ /* + File: takistan.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Takistani Armed Forces enemy preset. + Needed Mods: - - RHS USAF - - RHS AFRF - - Project OPFOR + - Project OPFOR + - RHS AFRF + - RHS GREF + - RHS USAF Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "LOP_TKA_Infantry_Officer"; // Officer -opfor_squad_leader = "LOP_TKA_Infantry_SL"; // Squad Leader -opfor_team_leader = "LOP_TKA_Infantry_TL"; // Team Leader -opfor_sentry = "LOP_TKA_Infantry_Rifleman"; // Rifleman (Lite) -opfor_rifleman = "LOP_TKA_Infantry_Rifleman_2"; // Rifleman -opfor_rpg = "LOP_TKA_Infantry_Rifleman_3"; // Rifleman (LAT) -opfor_grenadier = "LOP_TKA_Infantry_GL"; // Grenadier -opfor_machinegunner = "LOP_TKA_Infantry_MG"; // Autorifleman -opfor_heavygunner = "LOP_TKA_Infantry_MG"; // Heavy Gunner -opfor_marksman = "LOP_TKA_Infantry_Marksman"; // Marksman -opfor_sharpshooter = "LOP_TKA_Infantry_Marksman"; // Sharpshooter -opfor_sniper = "LOP_TKA_Infantry_Marksman"; // Sniper -opfor_at = "LOP_TKA_Infantry_AT"; // AT Specialist -opfor_aa = "LOP_TKA_Infantry_AA"; // AA Specialist -opfor_medic = "LOP_TKA_Infantry_Corpsman"; // Combat Life Saver -opfor_engineer = "LOP_TKA_Infantry_Engineer"; // Engineer -opfor_paratrooper = "LOP_TKA_Infantry_Rifleman"; // Paratrooper +KPLIB_o_officer = "LOP_TKA_Infantry_Officer"; // Officer +KPLIB_o_squadLeader = "LOP_TKA_Infantry_SL"; // Squad Leader +KPLIB_o_teamLeader = "LOP_TKA_Infantry_TL"; // Team Leader +KPLIB_o_sentry = "LOP_TKA_Infantry_Rifleman"; // Rifleman (Lite) +KPLIB_o_rifleman = "LOP_TKA_Infantry_Rifleman_2"; // Rifleman +KPLIB_o_riflemanLAT = "LOP_TKA_Infantry_Rifleman_3"; // Rifleman (LAT) +KPLIB_o_grenadier = "LOP_TKA_Infantry_GL"; // Grenadier +KPLIB_o_machinegunner = "LOP_TKA_Infantry_MG"; // Autorifleman +KPLIB_o_heavyGunner = "LOP_TKA_Infantry_MG"; // Heavy Gunner +KPLIB_o_marksman = "LOP_TKA_Infantry_Marksman"; // Marksman +KPLIB_o_sharpshooter = "LOP_TKA_Infantry_Marksman"; // Sharpshooter +KPLIB_o_sniper = "LOP_TKA_Infantry_Marksman"; // Sniper +KPLIB_o_atSpecialist = "LOP_TKA_Infantry_AT"; // AT Specialist +KPLIB_o_aaSpecialist = "LOP_TKA_Infantry_AA"; // AA Specialist +KPLIB_o_medic = "LOP_TKA_Infantry_Corpsman"; // Combat Life Saver +KPLIB_o_engineer = "LOP_TKA_Infantry_Engineer"; // Engineer +KPLIB_o_paratrooper = "LOP_TKA_Infantry_Rifleman"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "LOP_TKA_UAZ"; // UAZ-3151 -opfor_mrap_armed = "LOP_TKA_UAZ_AGS"; // UAZ-3151 (AGS-30) -opfor_transport_helo = "LOP_TKA_Mi8MT_Cargo"; // Mi-8MT (Cargo) -opfor_transport_truck = "LOP_TKA_Ural"; // Ural-4320 Transport (Covered) -opfor_ammobox_transport = "LOP_TKA_Ural_open"; // Ural-4320 Transport (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "RHS_Ural_Fuel_MSV_01"; // Ural-4320 Fuel -opfor_ammo_truck = "rhs_gaz66_ammo_msv"; // GAZ-66 Ammo -opfor_fuel_container = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod -opfor_ammo_container = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod -opfor_flag = "lop_Flag_tak_F"; // Flag +KPLIB_o_mrap = "LOP_TKA_UAZ"; // UAZ-3151 +KPLIB_o_mrapArmed = "LOP_TKA_UAZ_AGS"; // UAZ-3151 (AGS-30) +KPLIB_o_transportHeli = "LOP_TKA_Mi8MT_Cargo"; // Mi-8MT (Cargo) +KPLIB_o_transportTruck = "LOP_TKA_Ural"; // Ural-4320 Transport (Covered) +KPLIB_o_transportTruckAmmo = "LOP_TKA_Ural_open"; // Ural-4320 Transport (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "RHS_Ural_Fuel_MSV_01"; // Ural-4320 Fuel +KPLIB_o_ammoTruck = "rhs_gaz66_ammo_msv"; // GAZ-66 Ammo +KPLIB_o_fuelContainer = "Land_Pod_Heli_Transport_04_fuel_F"; // Taru Fuel Pod +KPLIB_o_ammoContainer = "Land_Pod_Heli_Transport_04_ammo_F"; // Taru Ammo Pod +KPLIB_o_flag = "lop_Flag_tak_F"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "LOP_TKA_Infantry_Rifleman", // Rifleman (Lite) "LOP_TKA_Infantry_Rifleman", // Rifleman (Lite) "LOP_TKA_Infantry_Rifleman_2", // Rifleman @@ -57,12 +67,12 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = [ +KPLIB_o_militiaVehicles = [ "LOP_TKA_UAZ_DshKM" // UAZ-3151 (DShKM) ]; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "LOP_TKA_UAZ_DshKM", // UAZ-3151 (DShKM) "LOP_TKA_UAZ_AGS", // UAZ-3151 (AGS-30) "LOP_TKA_UAZ_SPG", // UAZ-3151 (SPG-9) @@ -77,7 +87,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "LOP_TKA_UAZ_DshKM", // UAZ-3151 (DShKM) "LOP_TKA_UAZ_AGS", // UAZ-3151 (AGS-30) "LOP_TKA_BMP1", // BMP-1 @@ -86,7 +96,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "LOP_TKA_UAZ", // UAZ-3151 (Covered) "LOP_TKA_UAZ_DshKM", // UAZ-3151 (DShKM) "LOP_TKA_UAZ_AGS", // UAZ-3151 (AGS-30) @@ -107,7 +117,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "LOP_TKA_UAZ_Open", // UAZ-3151 "LOP_TKA_UAZ_DshKM", // UAZ-3151 (DShKM) "LOP_TKA_UAZ_AGS", // UAZ-3151 (AGS-30) @@ -123,7 +133,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "LOP_TKA_Ural_open", // Ural-4320 Transport "LOP_TKA_Ural", // Ural-4320 Transport (Covered) "LOP_TKA_BTR70", // BTR-70 @@ -135,14 +145,14 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "LOP_TKA_Mi8MT_Cargo", // Mi-8MT (Cargo) "LOP_TKA_Mi24V_AT", // Mi-24P (AT) "LOP_TKA_Mi24V_UPK23" // Mi-24V (UPK) ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "RHS_Su25SM_vvsc", // Su-25 "RHS_Su25SM_KH29_vvsc" // Su-25 (KH29) ]; diff --git a/Missionframework/presets/opfor/unsung.sqf b/Missionframework/presets/enemies/unsung.sqf similarity index 79% rename from Missionframework/presets/opfor/unsung.sqf rename to Missionframework/presets/enemies/unsung.sqf index f41cd4e6d..6ed02d267 100644 --- a/Missionframework/presets/opfor/unsung.sqf +++ b/Missionframework/presets/enemies/unsung.sqf @@ -1,48 +1,57 @@ /* + File: unsung.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-07-08 + Last Update: 2020-05-15 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + North Vietnamese Army enemy preset. + Needed Mods: - - The Unsung Vietnam War Mod + - Unsung Optional Mods: - - None + - None */ // Enemy infantry classes -opfor_officer = "uns_men_NVA_68_COM"; // Officer -opfor_squad_leader = "uns_men_NVA_68_off"; // Squad Leader -opfor_team_leader = "uns_men_NVA_68_nco"; // Team Leader -opfor_sentry = "uns_men_NVA_68_RSAP"; // Rifleman (Lite) -opfor_rifleman = "uns_men_NVA_68_AS5"; // Rifleman -opfor_rpg = "uns_men_NVA_68_AT2"; // Rifleman (LAT) -opfor_grenadier = "uns_men_NVA_68_AS1"; // Grenadier -opfor_machinegunner = "uns_men_NVA_68_LMG"; // Autorifleman -opfor_heavygunner = "uns_men_NVA_68_HMG"; // Heavy Gunner -opfor_marksman = "uns_men_NVA_68_RF2"; // Marksman -opfor_sharpshooter = "uns_men_NVA_68_RF1"; // Sharpshooter -opfor_sniper = "uns_men_NVA_68_Rmrk"; // Sniper -opfor_at = "uns_men_NVA_68_AT"; // AT Specialist -opfor_aa = "uns_men_NVA_68_AA"; // AA Specialist -opfor_medic = "uns_men_NVA_68_MED"; // Combat Life Saver -opfor_engineer = "uns_men_NVA_68_SAP"; // Engineer -opfor_paratrooper = "uns_men_NVA_68_Ra2"; // Paratrooper +KPLIB_o_officer = "uns_men_NVA_68_COM"; // Officer +KPLIB_o_squadLeader = "uns_men_NVA_68_off"; // Squad Leader +KPLIB_o_teamLeader = "uns_men_NVA_68_nco"; // Team Leader +KPLIB_o_sentry = "uns_men_NVA_68_RSAP"; // Rifleman (Lite) +KPLIB_o_rifleman = "uns_men_NVA_68_AS5"; // Rifleman +KPLIB_o_riflemanLAT = "uns_men_NVA_68_AT2"; // Rifleman (LAT) +KPLIB_o_grenadier = "uns_men_NVA_68_AS1"; // Grenadier +KPLIB_o_machinegunner = "uns_men_NVA_68_LMG"; // Autorifleman +KPLIB_o_heavyGunner = "uns_men_NVA_68_HMG"; // Heavy Gunner +KPLIB_o_marksman = "uns_men_NVA_68_RF2"; // Marksman +KPLIB_o_sharpshooter = "uns_men_NVA_68_RF1"; // Sharpshooter +KPLIB_o_sniper = "uns_men_NVA_68_Rmrk"; // Sniper +KPLIB_o_atSpecialist = "uns_men_NVA_68_AT"; // AT Specialist +KPLIB_o_aaSpecialist = "uns_men_NVA_68_AA"; // AA Specialist +KPLIB_o_medic = "uns_men_NVA_68_MED"; // Combat Life Saver +KPLIB_o_engineer = "uns_men_NVA_68_SAP"; // Engineer +KPLIB_o_paratrooper = "uns_men_NVA_68_Ra2"; // Paratrooper // Enemy vehicles used by secondary objectives. -opfor_mrap = "uns_Type55"; // Type 55 (Transport) -opfor_mrap_armed = "uns_Type55_MG"; // Type 55 APC (DShk) -opfor_transport_helo = "uns_Mi8T_VPAF"; // Mi-8T Hip-C (Transport) -opfor_transport_truck = "uns_nvatruck"; // Ural Truck -opfor_ammobox_transport = "uns_nvatruck_open"; // Ural Truck (Open) -> Has to be able to transport resource crates! -opfor_fuel_truck = "uns_nvatruck_refuel"; // Ural Truck (refuel) -opfor_ammo_truck = "uns_nvatruck_reammo"; // Ural Truck (ammo) -opfor_fuel_container = "Box_EAF_AmmoVeh_F"; // LDF Vehicle Ammo Box -opfor_ammo_container = "Box_EAF_AmmoVeh_F"; // LDF Vehicle Ammo Box -opfor_flag = "uns_FlagCarrierNVA"; // Flag +KPLIB_o_mrap = "uns_Type55"; // Type 55 (Transport) +KPLIB_o_mrapArmed = "uns_Type55_MG"; // Type 55 APC (DShk) +KPLIB_o_transportHeli = "uns_Mi8T_VPAF"; // Mi-8T Hip-C (Transport) +KPLIB_o_transportTruck = "uns_nvatruck"; // Ural Truck +KPLIB_o_transportTruckAmmo = "uns_nvatruck_open"; // Ural Truck (Open) -> Has to be able to transport resource crates! +KPLIB_o_fuelTruck = "uns_nvatruck_refuel"; // Ural Truck (refuel) +KPLIB_o_ammoTruck = "uns_nvatruck_reammo"; // Ural Truck (ammo) +KPLIB_o_fuelContainer = "Box_EAF_AmmoVeh_F"; // LDF Vehicle Ammo Box +KPLIB_o_ammoContainer = "Box_EAF_AmmoVeh_F"; // LDF Vehicle Ammo Box +KPLIB_o_flag = "uns_FlagCarrierNVA"; // Flag /* Adding a value to these arrays below will add them to a one out of however many in the array, random pick chance. Therefore, adding the same value twice or three times means they are more likely to be chosen more often. */ /* Militia infantry. Lightweight soldier classnames the game will pick from randomly as sector defenders. Think of them like garrison or military police forces, which are more meant to control the local population instead of fighting enemy armies. */ -militia_squad = [ +KPLIB_o_militiaInfantry = [ "uns_men_VC_local_RF4", // Rifleman (MAS36) "uns_men_VC_local_RF4", // Rifleman (MAS36) "uns_men_VC_local_RF2", // Rifleman (Mosin) @@ -56,10 +65,10 @@ militia_squad = [ ]; // Militia vehicles. Lightweight vehicle classnames the game will pick from randomly as sector defenders. Can also be empty for only infantry milita. -militia_vehicles = []; +KPLIB_o_militiaVehicles = []; // All enemy vehicles that can spawn as sector defenders and patrols at high enemy combat readiness (aggression levels). -opfor_vehicles = [ +KPLIB_o_armyVehicles = [ "uns_Type55_patrol", // Type 55 APC (Patrol) "uns_Type55_patrol", // Type 55 APC (Patrol) "uns_Type55_patrol", // Type 55 APC (Patrol) @@ -82,7 +91,7 @@ opfor_vehicles = [ ]; // All enemy vehicles that can spawn as sector defenders and patrols but at a lower enemy combat readiness (aggression levels). -opfor_vehicles_low_intensity = [ +KPLIB_o_armyVehiclesLight = [ "uns_Type55_patrol", // Type 55 APC (Patrol) "uns_Type55_patrol", // Type 55 APC (Patrol) "uns_Type55_RR57", // Type 55 APC (57mm Type36) @@ -91,7 +100,7 @@ opfor_vehicles_low_intensity = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at high enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles = [ +KPLIB_o_battleGrpVehicles = [ "uns_Type55_patrol", // Type 55 APC (Patrol) "uns_Type55_patrol", // Type 55 APC (Patrol) "uns_Type55_RR57", // Type 55 APC (57mm Type36) @@ -111,7 +120,7 @@ opfor_battlegroup_vehicles = [ ]; // All enemy vehicles that can spawn as battlegroups, either assaulting or as reinforcements, at lower enemy combat readiness (aggression levels). -opfor_battlegroup_vehicles_low_intensity = [ +KPLIB_o_battleGrpVehiclesLight = [ "uns_Type55_patrol", // Type 55 APC (Patrol) "uns_Type55_patrol", // Type 55 APC (Patrol) "uns_nvatruck_mg", // Ural Truck (MG) @@ -123,7 +132,7 @@ opfor_battlegroup_vehicles_low_intensity = [ /* All vehicles that spawn within battlegroups (see the above 2 arrays) and also hold 8 soldiers as passengers. If something in this array can't hold all 8 soldiers then buggy behaviours may occur. */ -opfor_troup_transports = [ +KPLIB_o_troopTransports = [ "uns_nvatruck_open", // Ural Truck (Open) "uns_nvatruck", // Ural Truck "uns_nvatruck_mg", // Ural Truck (MG) @@ -132,12 +141,12 @@ opfor_troup_transports = [ ]; // Enemy rotary-wings that will need to spawn in flight. -opfor_choppers = [ +KPLIB_o_helicopters = [ "uns_Mi8TV_VPAF_MG" // Mi-8TV Hip-C (Transport) ]; // Enemy fixed-wings that will need to spawn in the air. -opfor_air = [ +KPLIB_o_planes = [ "uns_an2_cas", // An-2 Colt (CAS) "uns_Mig21_CAP", // Mig-21 Fishbed F (CAP) "uns_Mig21_CAS" // Mig-21 Fishbed F (CAS) diff --git a/Missionframework/presets/init_presets.sqf b/Missionframework/presets/init_presets.sqf index 5eafe1b0e..2fac49860 100644 --- a/Missionframework/presets/init_presets.sqf +++ b/Missionframework/presets/init_presets.sqf @@ -1,6 +1,4 @@ -KPLIB_initPresets = false; - private _start = diag_ticktime; if (isServer) then { ["----- Server starts preset initialization -----", "PRESETS"] call KPLIB_fnc_log; @@ -8,99 +6,99 @@ if (isServer) then { ["Only if you e.g. use a CUP preset and you get messages about missing CUP classes, then check your loaded mods.", "PRESETS"] call KPLIB_fnc_log; }; -switch (KP_liberation_preset_blufor) do { - case 1: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\apex.sqf";}; - case 2: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\3cbBAF_mtp.sqf";}; - case 3: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\3cbBAF_des.sqf";}; - case 4: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\bwmod.sqf";}; - case 5: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\bwmod_des.sqf";}; - case 6: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_usaf_wdl.sqf";}; - case 7: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_usaf_des.sqf";}; - case 8: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\rhs_afrf.sqf";}; - case 9: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west.sqf";}; - case 10: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_west_win.sqf";}; - case 11: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east.sqf";}; - case 12: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\gm_east_win.sqf";}; - case 13: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat.sqf";}; - case 14: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\csat_apex.sqf";}; - case 15: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\unsung.sqf";}; - case 16: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Desert.sqf";}; - case 17: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_BAF_Woodland.sqf";}; - case 18: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Desert.sqf";}; - case 19: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USMC_Woodland.sqf";}; - case 20: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Desert.sqf";}; - case 21: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_USA_Woodland.sqf";}; - case 22: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_CDF.sqf";}; - case 23: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Desert.sqf";}; - case 24: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ACR_Woodland.sqf";}; - case 25: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_ChDKZ.sqf";}; - case 26: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_SLA.sqf";}; - case 27: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\CUP_TakiArmy.sqf";}; - case 28: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_wdl.sqf";}; - case 29: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\sfp_des.sqf";}; - case 30: {[] call compileFinal preprocessFileLineNumbers "presets\blufor\enoch.sqf";}; - default {[] call compileFinal preprocessFileLineNumbers "presets\blufor\custom.sqf";}; +switch (KPLIB_presetPlayer) do { + case 1: {[] call compile preprocessFileLineNumbers "presets\players\apex.sqf";}; + case 2: {[] call compile preprocessFileLineNumbers "presets\players\baf_mtp.sqf";}; + case 3: {[] call compile preprocessFileLineNumbers "presets\players\baf_des.sqf";}; + case 4: {[] call compile preprocessFileLineNumbers "presets\players\bwmod.sqf";}; + case 5: {[] call compile preprocessFileLineNumbers "presets\players\bwmod_des.sqf";}; + case 6: {[] call compile preprocessFileLineNumbers "presets\players\rhs_usaf_wdl.sqf";}; + case 7: {[] call compile preprocessFileLineNumbers "presets\players\rhs_usaf_des.sqf";}; + case 8: {[] call compile preprocessFileLineNumbers "presets\players\rhs_afrf.sqf";}; + case 9: {[] call compile preprocessFileLineNumbers "presets\players\gm_west.sqf";}; + case 10: {[] call compile preprocessFileLineNumbers "presets\players\gm_west_win.sqf";}; + case 11: {[] call compile preprocessFileLineNumbers "presets\players\gm_east.sqf";}; + case 12: {[] call compile preprocessFileLineNumbers "presets\players\gm_east_win.sqf";}; + case 13: {[] call compile preprocessFileLineNumbers "presets\players\csat.sqf";}; + case 14: {[] call compile preprocessFileLineNumbers "presets\players\csat_apex.sqf";}; + case 15: {[] call compile preprocessFileLineNumbers "presets\players\unsung.sqf";}; + case 16: {[] call compile preprocessFileLineNumbers "presets\players\cup_baf_desert.sqf";}; + case 17: {[] call compile preprocessFileLineNumbers "presets\players\cup_baf_woodland.sqf";}; + case 18: {[] call compile preprocessFileLineNumbers "presets\players\cup_usmc_desert.sqf";}; + case 19: {[] call compile preprocessFileLineNumbers "presets\players\cup_usmc_woodland.sqf";}; + case 20: {[] call compile preprocessFileLineNumbers "presets\players\cup_usa_desert.sqf";}; + case 21: {[] call compile preprocessFileLineNumbers "presets\players\cup_usa_woodland.sqf";}; + case 22: {[] call compile preprocessFileLineNumbers "presets\players\cup_cdf.sqf";}; + case 23: {[] call compile preprocessFileLineNumbers "presets\players\cup_acr_desert.sqf";}; + case 24: {[] call compile preprocessFileLineNumbers "presets\players\cup_acr_woodland.sqf";}; + case 25: {[] call compile preprocessFileLineNumbers "presets\players\cup_chdkz.sqf";}; + case 26: {[] call compile preprocessFileLineNumbers "presets\players\cup_sla.sqf";}; + case 27: {[] call compile preprocessFileLineNumbers "presets\players\cup_takistan.sqf";}; + case 28: {[] call compile preprocessFileLineNumbers "presets\players\sfp_wdl.sqf";}; + case 29: {[] call compile preprocessFileLineNumbers "presets\players\sfp_des.sqf";}; + case 30: {[] call compile preprocessFileLineNumbers "presets\players\enoch.sqf";}; + default {[] call compile preprocessFileLineNumbers "presets\players\custom.sqf";}; }; -switch (KP_liberation_preset_opfor) do { - case 1: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\apex.sqf";}; - case 2: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\rhs_afrf.sqf";}; - case 3: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\takistan.sqf";}; - case 4: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\islamic_state.sqf";}; - case 5: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\SLA.sqf";}; - case 6: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\aaf.sqf";}; - case 7: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\nato.sqf";}; - case 8: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_west.sqf";}; - case 9: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_west_win.sqf";}; - case 10: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_east.sqf";}; - case 11: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\gm_east_win.sqf";}; - case 12: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\unsung.sqf";}; - case 13: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_SLA.sqf";}; - case 14: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_TakiArmy.sqf";}; - case 15: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_ChDKZ.sqf";}; - case 16: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_AFRF_MSV.sqf";}; - case 17: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_AFRF_ModernMSV.sqf";}; - case 18: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_CDF.sqf";}; - case 19: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_BAF_Desert.sqf";}; - case 20: {[] call compileFinal preprocessFileLineNumbers "presets\opfor\CUP_BAF_Woodland.sqf";}; - default {[] call compileFinal preprocessFileLineNumbers "presets\opfor\custom.sqf";}; +switch (KPLIB_presetEnemy) do { + case 1: {[] call compile preprocessFileLineNumbers "presets\enemies\apex.sqf";}; + case 2: {[] call compile preprocessFileLineNumbers "presets\enemies\rhs_afrf.sqf";}; + case 3: {[] call compile preprocessFileLineNumbers "presets\enemies\takistan.sqf";}; + case 4: {[] call compile preprocessFileLineNumbers "presets\enemies\islamic_state.sqf";}; + case 5: {[] call compile preprocessFileLineNumbers "presets\enemies\sla.sqf";}; + case 6: {[] call compile preprocessFileLineNumbers "presets\enemies\aaf.sqf";}; + case 7: {[] call compile preprocessFileLineNumbers "presets\enemies\nato.sqf";}; + case 8: {[] call compile preprocessFileLineNumbers "presets\enemies\gm_west.sqf";}; + case 9: {[] call compile preprocessFileLineNumbers "presets\enemies\gm_west_win.sqf";}; + case 10: {[] call compile preprocessFileLineNumbers "presets\enemies\gm_east.sqf";}; + case 11: {[] call compile preprocessFileLineNumbers "presets\enemies\gm_east_win.sqf";}; + case 12: {[] call compile preprocessFileLineNumbers "presets\enemies\unsung.sqf";}; + case 13: {[] call compile preprocessFileLineNumbers "presets\enemies\cup_sla.sqf";}; + case 14: {[] call compile preprocessFileLineNumbers "presets\enemies\cup_takistan.sqf";}; + case 15: {[] call compile preprocessFileLineNumbers "presets\enemies\cup_chdkz.sqf";}; + case 16: {[] call compile preprocessFileLineNumbers "presets\enemies\cup_afrf_msv.sqf";}; + case 17: {[] call compile preprocessFileLineNumbers "presets\enemies\cup_afrf_msv_modern.sqf";}; + case 18: {[] call compile preprocessFileLineNumbers "presets\enemies\cup_cdf.sqf";}; + case 19: {[] call compile preprocessFileLineNumbers "presets\enemies\cup_baf_desert.sqf";}; + case 20: {[] call compile preprocessFileLineNumbers "presets\enemies\cup_baf_woodland.sqf";}; + default {[] call compile preprocessFileLineNumbers "presets\enemies\custom.sqf";}; }; -switch (KP_liberation_preset_resistance) do { - case 1: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\apex.sqf";}; - case 2: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\rhs_gref.sqf";}; - case 3: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\middle_eastern.sqf";}; - case 4: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\RACS.sqf";}; - case 5: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\germany.sqf";}; - case 6: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\unsung.sqf";}; - case 7: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\CUP_TakiLocals.sqf";}; - case 8: {[] call compileFinal preprocessFileLineNumbers "presets\resistance\CUP_NAPA.sqf";}; - default {[] call compileFinal preprocessFileLineNumbers "presets\resistance\custom.sqf";}; +switch (KPLIB_presetResistance) do { + case 1: {[] call compile preprocessFileLineNumbers "presets\resistance\apex.sqf";}; + case 2: {[] call compile preprocessFileLineNumbers "presets\resistance\rhs_gref.sqf";}; + case 3: {[] call compile preprocessFileLineNumbers "presets\resistance\middle_eastern.sqf";}; + case 4: {[] call compile preprocessFileLineNumbers "presets\resistance\racs.sqf";}; + case 5: {[] call compile preprocessFileLineNumbers "presets\resistance\germany.sqf";}; + case 6: {[] call compile preprocessFileLineNumbers "presets\resistance\unsung.sqf";}; + case 7: {[] call compile preprocessFileLineNumbers "presets\resistance\cup_takistan.sqf";}; + case 8: {[] call compile preprocessFileLineNumbers "presets\resistance\cup_napa.sqf";}; + default {[] call compile preprocessFileLineNumbers "presets\resistance\custom.sqf";}; }; -switch (KP_liberation_preset_civilians) do { - case 1: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\apex.sqf";}; - case 2: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\middle_eastern.sqf";}; - case 3: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\RDSCiv.sqf";}; - case 4: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\germany.sqf";}; - case 5: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\unsung.sqf";}; - case 6: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\CUP_TakiCivs.sqf";}; - case 7: {[] call compileFinal preprocessFileLineNumbers "presets\civilians\CUP_ChernoCivs.sqf";}; - default {[] call compileFinal preprocessFileLineNumbers "presets\civilians\custom.sqf";}; +switch (KPLIB_presetCivilians) do { + case 1: {[] call compile preprocessFileLineNumbers "presets\civilians\apex.sqf";}; + case 2: {[] call compile preprocessFileLineNumbers "presets\civilians\middle_eastern.sqf";}; + case 3: {[] call compile preprocessFileLineNumbers "presets\civilians\rds_civ.sqf";}; + case 4: {[] call compile preprocessFileLineNumbers "presets\civilians\germany.sqf";}; + case 5: {[] call compile preprocessFileLineNumbers "presets\civilians\unsung.sqf";}; + case 6: {[] call compile preprocessFileLineNumbers "presets\civilians\cup_takistan.sqf";}; + case 7: {[] call compile preprocessFileLineNumbers "presets\civilians\cup_cherno.sqf";}; + default {[] call compile preprocessFileLineNumbers "presets\civilians\custom.sqf";}; }; // Prices for the blufor infantry squads (supplies, ammo, fuel) KPLIB_b_allSquads = [ - [blufor_squad_inf_light,200,0,0], - [blufor_squad_inf,300,0,0], - [blufor_squad_at,200,250,0], - [blufor_squad_aa,200,250,0], - [blufor_squad_recon,250,0,0], - [blufor_squad_para,200,0,0] + [KPLIB_b_squadLight,200,0,0], + [KPLIB_b_squadInf,300,0,0], + [KPLIB_b_squadAT,200,250,0], + [KPLIB_b_squadAA,200,250,0], + [KPLIB_b_squadRecon,250,0,0], + [KPLIB_b_squadPara,200,0,0] ]; // Squad names for build menu -squads_names = [ +KPLIB_b_squadNames = [ localize "STR_LIGHT_RIFLE_SQUAD", localize "STR_RIFLE_SQUAD", localize "STR_AT_SQUAD", @@ -109,135 +107,82 @@ squads_names = [ localize "STR_PARA_SQUAD" ]; -// Classnames of objects which should be ignored when building -GRLIB_ignore_colisions_when_building = [ - "Land_HelipadSquare_F", - "Land_TentHangar_V1_F", - "Land_runway_edgelight", - "Land_runway_edgelight_blue_F", - "Land_Flush_Light_green_F", - "Land_Flush_Light_red_F", - "Land_Flush_Light_yellow_F", - "TMR_Autorest_Georef", - "Flag_NATO_F", - "Flag_White_F", - "Flag_RedCrystal_F", - "CamoNet_BLUFOR_F", - "CamoNet_BLUFOR_open_F", - "CamoNet_BLUFOR_big_F", - "Land_PortableLight_single_F", - "Land_PortableLight_double_F", - "Land_HelipadCircle_F", - "Land_HelipadRescue_F", - "Helipad", - "LAND_uns_Heli_pad", - "LAND_uns_evac_pad", - "PortableHelipadLight_01_blue_F", - "PortableHelipadLight_01_green_F", - "PortableHelipadLight_01_red_F", - "Land_BagFence_Round_F", - "Land_BagFence_Short_F", - "Land_BagFence_Long_F", - "Land_BagFence_Corner_F", - "Land_BagFence_End_F", - "Land_Sign_WarningMilitaryArea_F", - "Land_Sign_WarningMilAreaSmall_F", - "Land_Sign_WarningMilitaryVehicles_F", - "Land_Razorwire_F", - "Sign_Sphere100cm_F", - "Land_ClutterCutter_large_F", - "Land_HighVoltageColumnWire_F", - "Land_PowerWireBig_left_F", - "B_HMG_01_F", // Mk30A HMG .50 - "B_HMG_01_high_F", // Mk30 HMG .50 (Raised) - "B_HMG_01_A_F", // Mk30 HMG .50 (Autonomous) - "B_GMG_01_F", // Mk32A GMG 20mm - "B_GMG_01_high_F", // Mk32 GMG 20mm (Raised) - "B_GMG_01_A_F", // Mk32 GMG 20mm (Autonomous) - "B_static_AT_F", // Static Titan Launcher (AT) - "B_static_AA_F", // Static Titan Launcher (AA) - "B_Mortar_01_F", // Mk6 Mortar - "ACE_friesAnchorBar", // ACE FRIES - "ACE_friesGantryReverse", // ACE FRIES - "ACE_friesGantry" // ACE FRIES -]; - /* Checking all preset arrays for missing mods and sort out not available classnames */ // Blufor -infantry_units = infantry_units select {[( _x select 0)] call KPLIB_fnc_checkClass}; -light_vehicles = light_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; -heavy_vehicles = heavy_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; -air_vehicles = air_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; -static_vehicles = static_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; -buildings = buildings select {[( _x select 0)] call KPLIB_fnc_checkClass}; -support_vehicles = support_vehicles select {[( _x select 0)] call KPLIB_fnc_checkClass}; -blufor_squad_inf_light = blufor_squad_inf_light select {[_x] call KPLIB_fnc_checkClass}; -blufor_squad_inf = blufor_squad_inf select {[_x] call KPLIB_fnc_checkClass}; -blufor_squad_at = blufor_squad_at select {[_x] call KPLIB_fnc_checkClass}; -blufor_squad_aa = blufor_squad_aa select {[_x] call KPLIB_fnc_checkClass}; -blufor_squad_recon = blufor_squad_recon select {[_x] call KPLIB_fnc_checkClass}; -blufor_squad_para = blufor_squad_para select {[_x] call KPLIB_fnc_checkClass}; -elite_vehicles = elite_vehicles select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_b_infantry = KPLIB_b_infantry select {[( _x select 0)] call KPLIB_fnc_checkClass}; +KPLIB_b_vehLight = KPLIB_b_vehLight select {[( _x select 0)] call KPLIB_fnc_checkClass}; +KPLIB_b_vehHeavy = KPLIB_b_vehHeavy select {[( _x select 0)] call KPLIB_fnc_checkClass}; +KPLIB_b_vehAir = KPLIB_b_vehAir select {[( _x select 0)] call KPLIB_fnc_checkClass}; +KPLIB_b_vehStatic = KPLIB_b_vehStatic select {[( _x select 0)] call KPLIB_fnc_checkClass}; +KPLIB_b_objectsDeco = KPLIB_b_objectsDeco select {[( _x select 0)] call KPLIB_fnc_checkClass}; +KPLIB_b_vehSupport = KPLIB_b_vehSupport select {[( _x select 0)] call KPLIB_fnc_checkClass}; +KPLIB_b_squadLight = KPLIB_b_squadLight select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_b_squadInf = KPLIB_b_squadInf select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_b_squadAT = KPLIB_b_squadAT select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_b_squadAA = KPLIB_b_squadAA select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_b_squadRecon = KPLIB_b_squadRecon select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_b_squadPara = KPLIB_b_squadPara select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_b_vehToUnlock = KPLIB_b_vehToUnlock select {[_x] call KPLIB_fnc_checkClass}; // Opfor -militia_squad = militia_squad select {[_x] call KPLIB_fnc_checkClass}; -militia_vehicles = militia_vehicles select {[_x] call KPLIB_fnc_checkClass}; -opfor_vehicles = opfor_vehicles select {[_x] call KPLIB_fnc_checkClass}; -opfor_vehicles_low_intensity = opfor_vehicles_low_intensity select {[_x] call KPLIB_fnc_checkClass}; -opfor_battlegroup_vehicles = opfor_battlegroup_vehicles select {[_x] call KPLIB_fnc_checkClass}; -opfor_battlegroup_vehicles_low_intensity = opfor_battlegroup_vehicles_low_intensity select {[_x] call KPLIB_fnc_checkClass}; -opfor_troup_transports = opfor_troup_transports select {[_x] call KPLIB_fnc_checkClass}; -opfor_choppers = opfor_choppers select {[_x] call KPLIB_fnc_checkClass}; -opfor_air = opfor_air select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_o_militiaInfantry = KPLIB_o_militiaInfantry select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_o_militiaVehicles = KPLIB_o_militiaVehicles select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_o_armyVehicles = KPLIB_o_armyVehicles select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_o_armyVehiclesLight = KPLIB_o_armyVehiclesLight select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_o_battleGrpVehicles = KPLIB_o_battleGrpVehicles select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_o_battleGrpVehiclesLight = KPLIB_o_battleGrpVehiclesLight select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_o_troopTransports = KPLIB_o_troopTransports select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_o_helicopters = KPLIB_o_helicopters select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_o_planes = KPLIB_o_planes select {[_x] call KPLIB_fnc_checkClass}; // Resistance -KP_liberation_guerilla_units = KP_liberation_guerilla_units select {[_x] call KPLIB_fnc_checkClass}; -KP_liberation_guerilla_vehicles = KP_liberation_guerilla_vehicles select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_r_units = KPLIB_r_units select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_r_vehicles = KPLIB_r_vehicles select {[_x] call KPLIB_fnc_checkClass}; // Civilians -civilians = civilians select {[_x] call KPLIB_fnc_checkClass}; -civilian_vehicles = civilian_vehicles select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_c_units = KPLIB_c_units select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_c_vehicles = KPLIB_c_vehicles select {[_x] call KPLIB_fnc_checkClass}; // Misc -KPLIB_transportConfigs = KPLIB_transportConfigs select {[_x select 0] call KPLIB_fnc_checkClass}; -KPLIB_aiResupplySources = KPLIB_aiResupplySources select {[_x] call KPLIB_fnc_checkClass}; +KPLIB_transportConfigs = KPLIB_transportConfigs select {[_x select 0] call KPLIB_fnc_checkClass}; +KPLIB_aiResupplySources = KPLIB_aiResupplySources select {[_x] call KPLIB_fnc_checkClass}; /* Fetch arrays with only classnames from the blufor preset build arrays Beware that all classnames are converted to lowercase. Important for e.g. `in` checks, as it's case-sensitive. */ -KPLIB_b_infantry_classes = infantry_units apply {toLower (_x select 0)}; -KPLIB_b_light_classes = light_vehicles apply {toLower (_x select 0)}; -KPLIB_b_heavy_classes = heavy_vehicles apply {toLower (_x select 0)}; -KPLIB_b_air_classes = air_vehicles apply {toLower (_x select 0)}; -KPLIB_b_static_classes = static_vehicles apply {toLower (_x select 0)}; -KPLIB_b_buildings_classes = buildings apply {toLower (_x select 0)}; -KPLIB_b_support_classes = support_vehicles apply {toLower (_x select 0)}; -KPLIB_transport_classes = KPLIB_transportConfigs apply {toLower (_x select 0)}; +KPLIB_b_inf_classes = KPLIB_b_infantry apply {toLower (_x select 0)}; +KPLIB_b_light_classes = KPLIB_b_vehLight apply {toLower (_x select 0)}; +KPLIB_b_heavy_classes = KPLIB_b_vehHeavy apply {toLower (_x select 0)}; +KPLIB_b_air_classes = KPLIB_b_vehAir apply {toLower (_x select 0)}; +KPLIB_b_static_classes = KPLIB_b_vehStatic apply {toLower (_x select 0)}; +KPLIB_b_deco_classes = KPLIB_b_objectsDeco apply {toLower (_x select 0)}; +KPLIB_b_support_classes = KPLIB_b_vehSupport apply {toLower (_x select 0)}; +KPLIB_transport_classes = KPLIB_transportConfigs apply {toLower (_x select 0)}; -KPLIB_b_infantry_classes append (blufor_squad_inf_light + blufor_squad_inf + blufor_squad_at + blufor_squad_aa + blufor_squad_recon + blufor_squad_para); -KPLIB_b_infantry_classes = KPLIB_b_infantry_classes apply {toLower _x}; -KPLIB_b_infantry_classes = KPLIB_b_infantry_classes arrayIntersect KPLIB_b_infantry_classes; +KPLIB_b_inf_classes append (KPLIB_b_squadLight + KPLIB_b_squadInf + KPLIB_b_squadAT + KPLIB_b_squadAA + KPLIB_b_squadRecon + KPLIB_b_squadPara); +KPLIB_b_inf_classes = KPLIB_b_inf_classes apply {toLower _x}; +KPLIB_b_inf_classes = KPLIB_b_inf_classes arrayIntersect KPLIB_b_inf_classes; /* Opfor squad compositions */ -KPLIB_o_squadStd = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_medic, opfor_marksman, opfor_grenadier, opfor_rpg]; -KPLIB_o_squadInf = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_heavygunner, opfor_heavygunner, opfor_marksman, opfor_sharpshooter, opfor_sniper]; -KPLIB_o_squadTank = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_at, opfor_at, opfor_at]; -KPLIB_o_squadAir = [opfor_squad_leader, opfor_medic, opfor_machinegunner, opfor_rpg, opfor_rpg, opfor_aa, opfor_aa, opfor_aa]; +KPLIB_o_squadStd = [KPLIB_o_squadLeader, KPLIB_o_medic, KPLIB_o_machinegunner, KPLIB_o_heavyGunner, KPLIB_o_medic, KPLIB_o_marksman, KPLIB_o_grenadier, KPLIB_o_riflemanLAT]; +KPLIB_o_squadInf = [KPLIB_o_squadLeader, KPLIB_o_medic, KPLIB_o_machinegunner, KPLIB_o_heavyGunner, KPLIB_o_heavyGunner, KPLIB_o_marksman, KPLIB_o_sharpshooter, KPLIB_o_sniper]; +KPLIB_o_squadTank = [KPLIB_o_squadLeader, KPLIB_o_medic, KPLIB_o_machinegunner, KPLIB_o_riflemanLAT, KPLIB_o_riflemanLAT, KPLIB_o_atSpecialist, KPLIB_o_atSpecialist, KPLIB_o_atSpecialist]; +KPLIB_o_squadAir = [KPLIB_o_squadLeader, KPLIB_o_medic, KPLIB_o_machinegunner, KPLIB_o_riflemanLAT, KPLIB_o_riflemanLAT, KPLIB_o_aaSpecialist, KPLIB_o_aaSpecialist, KPLIB_o_aaSpecialist]; /* Liberation specific collections */ -KPLIB_buildList = [[], infantry_units, light_vehicles, heavy_vehicles, air_vehicles, static_vehicles, buildings, support_vehicles, KPLIB_b_allSquads]; -KPLIB_crates = [KP_liberation_supply_crate, KP_liberation_ammo_crate, KP_liberation_fuel_crate]; -KPLIB_airSlots = [KP_liberation_heli_slot_building, KP_liberation_plane_slot_building]; -KPLIB_storageBuildings = [KP_liberation_small_storage_building, KP_liberation_large_storage_building]; -KPLIB_upgradeBuildings = [KP_liberation_recycle_building, KP_liberation_air_vehicle_building, KP_liberation_heli_slot_building, KP_liberation_plane_slot_building]; -KPLIB_aiResupplySources append [Respawn_truck_typename, huron_typename, Arsenal_typename]; +KPLIB_buildList = [[], KPLIB_b_infantry, KPLIB_b_vehLight, KPLIB_b_vehHeavy, KPLIB_b_vehAir, KPLIB_b_vehStatic, KPLIB_b_objectsDeco, KPLIB_b_vehSupport, KPLIB_b_allSquads]; +KPLIB_crates = [KPLIB_b_crateSupply, KPLIB_b_crateAmmo, KPLIB_b_crateFuel]; +KPLIB_airSlots = [KPLIB_b_slotHeli, KPLIB_b_slotPlane]; +KPLIB_storageBuildings = [KPLIB_b_smallStorage, KPLIB_b_largeStorage]; +KPLIB_upgradeBuildings = [KPLIB_b_logiStation, KPLIB_b_airControl, KPLIB_b_slotHeli, KPLIB_b_slotPlane]; +KPLIB_aiResupplySources append [KPLIB_b_mobileRespawn, KPLIB_b_potato01, KPLIB_b_arsenal]; KPLIB_crates = KPLIB_crates apply {toLower _x}; KPLIB_airSlots = KPLIB_airSlots apply {toLower _x}; @@ -249,16 +194,16 @@ KPLIB_aiResupplySources = KPLIB_aiResupplySources apply {toLower _x}; Classname collections */ // All land vehicle classnames -KPLIB_allLandVeh_classes = [[], [huron_typename]] select (huron_typename isKindOf "Air");; +KPLIB_allLandVeh_classes = [[], [KPLIB_b_potato01]] select (KPLIB_b_potato01 isKindOf "Air");; { KPLIB_allLandVeh_classes append _x; } forEach [ - militia_vehicles apply {toLower _x}, - opfor_vehicles apply {toLower _x}, - opfor_vehicles_low_intensity apply {toLower _x}, - opfor_battlegroup_vehicles apply {toLower _x}, - opfor_battlegroup_vehicles_low_intensity apply {toLower _x}, - opfor_troup_transports apply {toLower _x}, + KPLIB_o_militiaVehicles apply {toLower _x}, + KPLIB_o_armyVehicles apply {toLower _x}, + KPLIB_o_armyVehiclesLight apply {toLower _x}, + KPLIB_o_battleGrpVehicles apply {toLower _x}, + KPLIB_o_battleGrpVehiclesLight apply {toLower _x}, + KPLIB_o_troopTransports apply {toLower _x}, KPLIB_b_light_classes, KPLIB_b_heavy_classes, KPLIB_b_support_classes select {_x isKindOf "Car" || _x isKindOf "Tank"} @@ -266,10 +211,10 @@ KPLIB_allLandVeh_classes = [[], [huron_typename]] select (huron_typename isKindO KPLIB_allLandVeh_classes = KPLIB_allLandVeh_classes arrayIntersect KPLIB_allLandVeh_classes; // All air vehicle classnames -KPLIB_allAirVeh_classes = [[], [huron_typename]] select (huron_typename isKindOf "Air"); +KPLIB_allAirVeh_classes = [[], [KPLIB_b_potato01]] select (KPLIB_b_potato01 isKindOf "Air"); { KPLIB_allAirVeh_classes append _x; -} forEach [opfor_choppers apply {toLower _x}, opfor_air apply {toLower _x}, KPLIB_b_air_classes, KPLIB_b_support_classes select {_x isKindOf "Air"}]; +} forEach [KPLIB_o_helicopters apply {toLower _x}, KPLIB_o_planes apply {toLower _x}, KPLIB_b_air_classes, KPLIB_b_support_classes select {_x isKindOf "Air"}]; // All blufor vehicle (land and air) classnames KPLIB_b_allVeh_classes = []; @@ -282,20 +227,20 @@ KPLIB_o_allVeh_classes = []; { KPLIB_o_allVeh_classes append _x; } forEach [ - militia_vehicles, - opfor_vehicles, - opfor_vehicles_low_intensity, - opfor_battlegroup_vehicles, - opfor_battlegroup_vehicles_low_intensity, - opfor_troup_transports, - opfor_choppers, - opfor_air + KPLIB_o_militiaVehicles, + KPLIB_o_armyVehicles, + KPLIB_o_armyVehiclesLight, + KPLIB_o_battleGrpVehicles, + KPLIB_o_battleGrpVehiclesLight, + KPLIB_o_troopTransports, + KPLIB_o_helicopters, + KPLIB_o_planes ]; KPLIB_o_allVeh_classes = KPLIB_o_allVeh_classes apply {toLower _x}; KPLIB_o_allVeh_classes = KPLIB_o_allVeh_classes arrayIntersect KPLIB_o_allVeh_classes; // All regular opfor soldier classnames -KPLIB_o_inf_classes = [opfor_sentry, opfor_rifleman, opfor_grenadier, opfor_squad_leader, opfor_team_leader, opfor_marksman, opfor_machinegunner, opfor_heavygunner, opfor_medic, opfor_rpg, opfor_at, opfor_aa, opfor_officer, opfor_sharpshooter, opfor_sniper,opfor_engineer]; +KPLIB_o_inf_classes = [KPLIB_o_sentry, KPLIB_o_rifleman, KPLIB_o_grenadier, KPLIB_o_squadLeader, KPLIB_o_teamLeader, KPLIB_o_marksman, KPLIB_o_machinegunner, KPLIB_o_heavyGunner, KPLIB_o_medic, KPLIB_o_riflemanLAT, KPLIB_o_atSpecialist, KPLIB_o_aaSpecialist, KPLIB_o_officer, KPLIB_o_sharpshooter, KPLIB_o_sniper,KPLIB_o_engineer]; KPLIB_o_inf_classes = KPLIB_o_inf_classes apply {toLower _x}; /* @@ -310,10 +255,10 @@ KPLIB_typeAirClasses = +KPLIB_b_air_classes; case (_x isKindOf "Air"): {KPLIB_typeAirClasses pushBack _x}; default {KPLIB_typeLightClasses pushBack _x}; }; -} forEach (KPLIB_b_support_classes + [toLower huron_typename]); +} forEach (KPLIB_b_support_classes + [toLower KPLIB_b_potato01]); // Military alphabet used for FOBs and convois -military_alphabet = ["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-Ray", "Yankee", "Zulu"]; +KPLIB_militaryAlphabet = ["Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-Ray", "Yankee", "Zulu"]; // Misc variables markers_reset = [99999,99999,0]; @@ -321,6 +266,4 @@ zeropos = [0,0,0]; KPLIB_sarWreck = "Land_Wreck_Heli_Attack_01_F"; KPLIB_sarFire = "test_EmptyObjectForFireBig"; -KPLIB_initPresets = true; - if (isServer) then {[format ["----- Preset initialization finished. Time needed: %1 seconds -----", diag_ticktime - _start], "PRESETS"] call KPLIB_fnc_log;}; diff --git a/Missionframework/presets/blufor/apex.sqf b/Missionframework/presets/players/apex.sqf similarity index 87% rename from Missionframework/presets/blufor/apex.sqf rename to Missionframework/presets/players/apex.sqf index 579cd21ba..b761c81de 100644 --- a/Missionframework/presets/blufor/apex.sqf +++ b/Missionframework/presets/players/apex.sqf @@ -1,17 +1,26 @@ /* + File: apex.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + NATO pacific player preset. + Needed Mods: - - None + - None Optional Mods: - - BWMod - - RHSUSAF - - F-15C - - F/A-18 - - CUP Weapons - - CUP Vehicles - - USAF Main Pack - - USAF Fighters Pack - - USAF Utility Pack + - BWMod + - CUP Vehicles + - CUP Weapons + - F-15C + - F/A-18 + - RHSUSAF + - USAF Fighters Pack + - USAF Main Pack + - USAF Utility Pack */ /* @@ -20,26 +29,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V4_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_T_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "B_T_Truck_01_medical_F"; // This is the mobile respawn (and medical) truck. -huron_typename = "B_Heli_Transport_03_unarmed_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "B_T_crew_F"; // This defines the crew for vehicles. -pilot_classname = "B_T_Helipilot_F"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "B_T_Truck_01_transport_F"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V4_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_T_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "B_T_Truck_01_medical_F"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "B_Heli_Transport_03_unarmed_F"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "B_T_crew_F"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "B_T_Helipilot_F"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "B_Heli_Light_01_F"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "B_T_Truck_01_transport_F"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -49,7 +58,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["B_T_Soldier_F",20,0,0], // Rifleman ["B_T_Soldier_LAT_F",30,0,0], // Rifleman (AT) ["B_T_Soldier_GL_F",25,0,0], // Grenadier @@ -75,7 +84,7 @@ infantry_units = [ ["B_T_Pilot_F",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_T_Quadbike_01_F",50,0,25], // Quad Bike ["B_T_LSV_01_unarmed_F",75,0,50], // Prowler ["B_T_LSV_01_armed_F",75,40,50], // Prowler (HMG) @@ -112,7 +121,7 @@ light_vehicles = [ ["B_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["rhsusf_m113_usarmy",200,40,100], // M113A3 (M2) ["rhsusf_m113_usarmy_MK19",200,60,100], // M113A3 (Mk19) ["rhsusf_m113_usarmy_medical",200,0,100], // M113A3 (Medical) @@ -147,7 +156,7 @@ heavy_vehicles = [ ["B_T_MBT_01_mlrs_F",800,1750,400] // M5 Sandstorm MLRS ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["B_UAV_01_F",75,0,25], // AR-2 Darter ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) ["B_Heli_Light_01_F",200,0,100], // MH-9 Hummingbird @@ -204,7 +213,7 @@ air_vehicles = [ ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["B_HMG_01_F",25,40,0], // Mk30A HMG .50 ["B_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) ["B_HMG_01_A_F",35,40,0], // Mk30 HMG .50 (Autonomous) @@ -218,7 +227,7 @@ static_vehicles = [ ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V4_F",0,0,0], ["Land_Cargo_Patrol_V4_F",0,0,0], ["Land_Cargo_Tower_V4_F",0,0,0], @@ -297,17 +306,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -347,7 +356,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "B_T_Soldier_TL_F", "B_T_Soldier_F", "B_T_Soldier_F", @@ -361,7 +370,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "B_T_Soldier_TL_F", "B_T_Soldier_LAT_F", "B_T_Soldier_LAT_F", @@ -375,7 +384,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "B_T_Soldier_TL_F", "B_T_Soldier_F", "B_T_Soldier_F", @@ -387,7 +396,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "B_T_Soldier_TL_F", "B_T_Soldier_F", "B_T_Soldier_F", @@ -399,7 +408,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "B_T_Recon_TL_F", "B_T_Recon_F", "B_T_Recon_F", @@ -413,7 +422,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "B_T_Soldier_PG_F", "B_T_Soldier_PG_F", "B_T_Soldier_PG_F", @@ -427,11 +436,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "rhsusf_mkvsoc", // Mk.V SOCOM "rhsusf_m1a1aim_tuski_wd", // M1A1SA (Tusk I) "B_T_MBT_01_TUSK_F", // M2A4 Slammer UP diff --git a/Missionframework/presets/blufor/3cbBAF_des.sqf b/Missionframework/presets/players/baf_des.sqf similarity index 83% rename from Missionframework/presets/blufor/3cbBAF_des.sqf rename to Missionframework/presets/players/baf_des.sqf index cd382a98a..43b64fb4f 100644 --- a/Missionframework/presets/blufor/3cbBAF_des.sqf +++ b/Missionframework/presets/players/baf_des.sqf @@ -1,14 +1,23 @@ /* + File: baf_des.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-12-09 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + 3cb BAF Desert player preset. + Needed Mods: - - 3CB BAF Equipment - - 3CB BAF Vehicle - - 3CB BAF Weapons - - 3CB BAF Units - - RHS USAF + - 3CB BAF Equipment + - 3CB BAF Units + - 3CB BAF Vehicle + - 3CB BAF Weapons + - RHS USAF Optional Mods: - - F-15C - - F/A-18 + - F-15C + - F/A-18 */ /* @@ -17,26 +26,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "UK3CB_BAF_LandRover_Amb_FFR_Sand_A_DDPM"; // This is the mobile respawn (and medical) truck. -huron_typename = "UK3CB_BAF_Merlin_HC3_18_DDPM"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "UK3CB_BAF_Crewman_DDPM"; // This defines the crew for vehicles. -pilot_classname = "UK3CB_BAF_HeliPilot_Army_DDPM"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "UK3CB_BAF_Wildcat_AH1_TRN_8A_DDPM"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_d"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "UK3CB_BAF_LandRover_Amb_FFR_Sand_A_DDPM"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "UK3CB_BAF_Merlin_HC3_18_DDPM"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "UK3CB_BAF_Crewman_DDPM"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "UK3CB_BAF_HeliPilot_Army_DDPM"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "UK3CB_BAF_Wildcat_AH1_TRN_8A_DDPM"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "rhsusf_M977A4_BKIT_usarmy_d"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -46,7 +55,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // T The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["UK3CB_BAF_Pointman_DDPM",15,0,0], // Rifleman (Light) ["UK3CB_BAF_Rifleman_DDPM",20,0,0], // Rifleman ["UK3CB_BAF_LAT_ILAW_DDPM",30,0,0], // Rifleman (AT) @@ -76,7 +85,7 @@ infantry_units = [ ["UK3CB_BAF_Pilot_Army",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_Quadbike_01_F",50,0,25], // Quad Bike ["B_LSV_01_unarmed_F",75,0,50], // Prowler ["B_LSV_01_armed_F",75,40,50], // Prowler (HMG) @@ -105,7 +114,7 @@ light_vehicles = [ ["B_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["RHS_M2A2_BUSKI",300,200,150], // M2A2ODS (Busk I) ["RHS_M2A3_BUSKIII",300,250,175], // M2A3 (Busk III) ["RHS_M6",300,250,175], // M6A2 @@ -114,7 +123,7 @@ heavy_vehicles = [ ["rhsusf_m109d_usarmy",600,1250,300] // M109A6 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["B_UAV_01_F",75,0,25], // AR-2 Darter ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) ["UK3CB_BAF_Wildcat_AH1_TRN_8A_DDPM",225,0,125], // Wildcat AH1 8 Transport (Unarmed) @@ -145,7 +154,7 @@ air_vehicles = [ ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["UK3CB_BAF_Static_L7A2_Deployed_Low_DDPM",25,25,0], // L7A2 LMG (Low) ["UK3CB_BAF_Static_L7A2_Deployed_Mid_DDPM",25,25,0], // L7A2 LMG (Mid) ["UK3CB_BAF_Static_L7A2_Deployed_High_DDPM",25,25,0], // L7A2 LMG (High) @@ -161,7 +170,7 @@ static_vehicles = [ ["RHS_M119_D",100,200,0] // M119A2 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V3_F",0,0,0], ["Land_Cargo_Patrol_V3_F",0,0,0], ["Land_Cargo_Tower_V3_F",0,0,0], @@ -240,17 +249,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,75], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,75], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -276,7 +285,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "UK3CB_BAF_FT_DDPM", "UK3CB_BAF_Pointman_DDPM", "UK3CB_BAF_Pointman_DDPM", @@ -290,7 +299,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "UK3CB_BAF_FT_DDPM", "UK3CB_BAF_LAT_ILAW_DDPM", "UK3CB_BAF_LAT_ILAW_DDPM", @@ -304,7 +313,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "UK3CB_BAF_FT_DDPM", "UK3CB_BAF_Rifleman_DDPM", "UK3CB_BAF_Rifleman_DDPM", @@ -316,7 +325,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "UK3CB_BAF_FT_DDPM", "UK3CB_BAF_Rifleman_DDPM", "UK3CB_BAF_Rifleman_DDPM", @@ -328,7 +337,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "UK3CB_BAF_SC_DDPM_REC", "UK3CB_BAF_Pointman_DDPM_REC", "UK3CB_BAF_Pointman_DDPM_REC", @@ -342,7 +351,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "UK3CB_BAF_Rifleman_DDPM", "UK3CB_BAF_Rifleman_DDPM", "UK3CB_BAF_Rifleman_DDPM", @@ -356,11 +365,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "rhsusf_mkvsoc", // Mk.V SOCOM "RHS_M2A3_BUSKIII", // M2A3 (Busk III) "RHS_M6", // M6A2 diff --git a/Missionframework/presets/blufor/3cbBAF_mtp.sqf b/Missionframework/presets/players/baf_mtp.sqf similarity index 83% rename from Missionframework/presets/blufor/3cbBAF_mtp.sqf rename to Missionframework/presets/players/baf_mtp.sqf index 9ae29e602..bb50488fe 100644 --- a/Missionframework/presets/blufor/3cbBAF_mtp.sqf +++ b/Missionframework/presets/players/baf_mtp.sqf @@ -1,14 +1,23 @@ /* + File: baf_mtp.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-12-09 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + 3cb BAF MTP player preset. + Needed Mods: - - 3CB BAF Equipment - - 3CB BAF Vehicle - - 3CB BAF Weapons - - 3CB BAF Units - - RHS USAF + - 3CB BAF Equipment + - 3CB BAF Units + - 3CB BAF Vehicle + - 3CB BAF Weapons + - RHS USAF Optional Mods: - - F-15C - - F/A-18 + - F-15C + - F/A-18 */ /* @@ -17,26 +26,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "UK3CB_BAF_LandRover_Amb_FFR_Green_A_MTP"; // This is the mobile respawn (and medical) truck. -huron_typename = "UK3CB_BAF_Merlin_HC3_18_MTP"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "UK3CB_BAF_Crewman_MTP"; // This defines the crew for vehicles. -pilot_classname = "UK3CB_BAF_HeliPilot_Army_MTP"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "UK3CB_BAF_Wildcat_AH1_TRN_8A_MTP"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_wd"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "UK3CB_BAF_LandRover_Amb_FFR_Green_A_MTP"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "UK3CB_BAF_Merlin_HC3_18_MTP"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "UK3CB_BAF_Crewman_MTP"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "UK3CB_BAF_HeliPilot_Army_MTP"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "UK3CB_BAF_Wildcat_AH1_TRN_8A_MTP"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "rhsusf_M977A4_BKIT_usarmy_wd"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -46,7 +55,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // T The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["UK3CB_BAF_Pointman_MTP",15,0,0], // Rifleman (Light) ["UK3CB_BAF_Rifleman_MTP",20,0,0], // Rifleman ["UK3CB_BAF_LAT_ILAW_MTP",30,0,0], // Rifleman (AT) @@ -76,7 +85,7 @@ infantry_units = [ ["UK3CB_BAF_Pilot_Army",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_Quadbike_01_F",50,0,25], // Quad Bike ["B_LSV_01_unarmed_F",75,0,50], // Prowler ["B_LSV_01_armed_F",75,40,50], // Prowler (HMG) @@ -105,7 +114,7 @@ light_vehicles = [ ["B_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["RHS_M2A2_BUSKI_WD",300,200,150], // M2A2ODS (Busk I) ["RHS_M2A3_BUSKIII_wd",300,250,175], // M2A3 (Busk III) ["RHS_M6_wd",300,250,175], // M6A2 @@ -114,7 +123,7 @@ heavy_vehicles = [ ["rhsusf_m109_usarmy",600,1250,300] // M109A6 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["B_UAV_01_F",75,0,25], // AR-2 Darter ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) ["UK3CB_BAF_Wildcat_AH1_TRN_8A_MTP",225,0,125], // Wildcat AH1 8 Transport (Unarmed) @@ -145,7 +154,7 @@ air_vehicles = [ ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["UK3CB_BAF_Static_L7A2_Deployed_Low_MTP",25,25,0], // L7A2 LMG (Low) ["UK3CB_BAF_Static_L7A2_Deployed_Mid_MTP",25,25,0], // L7A2 LMG (Mid) ["UK3CB_BAF_Static_L7A2_Deployed_High_MTP",25,25,0], // L7A2 LMG (High) @@ -161,7 +170,7 @@ static_vehicles = [ ["RHS_M119_WD",100,200,0] // M119A2 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -240,17 +249,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,75], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,75], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -276,7 +285,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "UK3CB_BAF_FT_MTP", "UK3CB_BAF_Pointman_MTP", "UK3CB_BAF_Pointman_MTP", @@ -290,7 +299,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "UK3CB_BAF_FT_MTP", "UK3CB_BAF_LAT_ILAW_MTP", "UK3CB_BAF_LAT_ILAW_MTP", @@ -304,7 +313,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "UK3CB_BAF_FT_MTP", "UK3CB_BAF_Rifleman_MTP", "UK3CB_BAF_Rifleman_MTP", @@ -316,7 +325,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "UK3CB_BAF_FT_MTP", "UK3CB_BAF_Rifleman_MTP", "UK3CB_BAF_Rifleman_MTP", @@ -328,7 +337,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "UK3CB_BAF_SC_MTP_REC", "UK3CB_BAF_Pointman_MTP_REC", "UK3CB_BAF_Pointman_MTP_REC", @@ -342,7 +351,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "UK3CB_BAF_Rifleman_MTP", "UK3CB_BAF_Rifleman_MTP", "UK3CB_BAF_Rifleman_MTP", @@ -356,11 +365,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "rhsusf_mkvsoc", // Mk.V SOCOM "RHS_M2A3_BUSKIII_wd", // M2A3 (Busk III) "RHS_M6_wd", // M6A2 diff --git a/Missionframework/presets/blufor/bwmod.sqf b/Missionframework/presets/players/bwmod.sqf similarity index 83% rename from Missionframework/presets/blufor/bwmod.sqf rename to Missionframework/presets/players/bwmod.sqf index 7c8afea83..4e63aa5b9 100644 --- a/Missionframework/presets/blufor/bwmod.sqf +++ b/Missionframework/presets/players/bwmod.sqf @@ -1,11 +1,20 @@ /* + File: bwmod.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + German Bundeswehr player preset. + Needed Mods: - - BWMod - - RHS USAF + - BWMod + - RHS USAF Optional Mods: - - F-15C - - F/A-18 + - F-15C + - F/A-18 */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "rhsusf_M1078A1P2_B_WD_CP_fmtv_usarmy"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "rhsusf_M1085A1P2_B_WD_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. -huron_typename = "RHS_CH_47F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "BWA3_Crew_Fleck"; // This defines the crew for vehicles. -pilot_classname = "BWA3_Helipilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "RHS_MELB_MH6M"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_wd"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "rhsusf_M1078A1P2_B_WD_CP_fmtv_usarmy"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "rhsusf_M1085A1P2_B_WD_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "RHS_CH_47F"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "BWA3_Crew_Fleck"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "BWA3_Helipilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "RHS_MELB_MH6M"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "rhsusf_M977A4_BKIT_usarmy_wd"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["BWA3_Rifleman_lite_Fleck",15,0,0], // Rifleman (Light) ["BWA3_Rifleman_Fleck",20,0,0], // Rifleman ["BWA3_RiflemanG27_Fleck",20,0,0], // Rifleman (G27) @@ -71,7 +80,7 @@ infantry_units = [ ["rhsusf_airforce_jetpilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_Quadbike_01_F",50,0,25], // Quad Bike ["rhsusf_m1025_w",100,0,50], // M1025A2 ["rhsusf_m1025_w_m2",100,40,50], // M1025A2 (M2) @@ -100,7 +109,7 @@ light_vehicles = [ ["B_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["rhsusf_m113_usarmy",200,40,100], // M113A3 (M2) ["rhsusf_m113_usarmy_MK19",200,60,100], // M113A3 (Mk19) ["rhsusf_m113_usarmy_medical",200,0,100], // M113A3 (Medical) @@ -114,7 +123,7 @@ heavy_vehicles = [ ["rhsusf_m109_usarmy",600,1250,300] // M109A6 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["B_UAV_01_F",75,0,25], // AR-2 Darter ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird @@ -146,7 +155,7 @@ air_vehicles = [ ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["RHS_M2StaticMG_MiniTripod_WD",25,40,0], // Mk2 HMG .50 ["RHS_M2StaticMG_WD",25,40,0], // Mk2 HMG .50 (Raised) ["RHS_MK19_TriPod_WD",25,60,0], // Mk19 GMG 20mm @@ -157,7 +166,7 @@ static_vehicles = [ ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -236,17 +245,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -269,7 +278,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "BWA3_TL_Fleck", "BWA3_Rifleman_lite_Fleck", "BWA3_Rifleman_lite_Fleck", @@ -283,7 +292,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "BWA3_TL_Fleck", "BWA3_RiflemanAT_Pzf3_Fleck", "BWA3_RiflemanAT_Pzf3_Fleck", @@ -297,7 +306,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "BWA3_TL_Fleck", "BWA3_Rifleman_Fleck", "BWA3_Rifleman_Fleck", @@ -309,7 +318,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "BWA3_TL_Fleck", "BWA3_Rifleman_Fleck", "BWA3_Rifleman_Fleck", @@ -321,7 +330,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "BWA3_recon_TL_Fleck", "BWA3_recon_Fleck", "BWA3_recon_Fleck", @@ -335,7 +344,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "rhsusf_army_ocp_rifleman_101st", "rhsusf_army_ocp_rifleman_101st", "rhsusf_army_ocp_rifleman_101st", @@ -349,11 +358,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "rhsusf_mkvsoc", // Mk.V SOCOM "rhsusf_m1a1aim_tuski_wd", // M1A1SA (Tusk I) "rhsusf_m1a2sep1tuskiiwd_usarmy", // M1A2SEPv1 (Tusk II) diff --git a/Missionframework/presets/blufor/bwmod_des.sqf b/Missionframework/presets/players/bwmod_des.sqf similarity index 83% rename from Missionframework/presets/blufor/bwmod_des.sqf rename to Missionframework/presets/players/bwmod_des.sqf index e7bd35367..66e978cd4 100644 --- a/Missionframework/presets/blufor/bwmod_des.sqf +++ b/Missionframework/presets/players/bwmod_des.sqf @@ -1,11 +1,20 @@ /* + File: bwmod_des.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-12-10 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + German Bundeswehr Desert player preset. + Needed Mods: - - BWMod - - RHS USAF + - BWMod + - RHS USAF Optional Mods: - - F-15C - - F/A-18 + - F-15C + - F/A-18 */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "rhsusf_M1078A1P2_B_D_CP_fmtv_usarmy"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "rhsusf_M1085A1P2_B_D_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. -huron_typename = "RHS_CH_47F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "BWA3_Crew_Tropen"; // This defines the crew for vehicles. -pilot_classname = "BWA3_Helipilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "RHS_MELB_MH6M"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_d"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "rhsusf_M1078A1P2_B_D_CP_fmtv_usarmy"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "rhsusf_M1085A1P2_B_D_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "RHS_CH_47F"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "BWA3_Crew_Tropen"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "BWA3_Helipilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "RHS_MELB_MH6M"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "rhsusf_M977A4_BKIT_usarmy_d"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["BWA3_Rifleman_lite_Tropen",15,0,0], // Rifleman (Light) ["BWA3_Rifleman_Tropen",20,0,0], // Rifleman ["BWA3_RiflemanG27_Tropen",20,0,0], // Rifleman (G27) @@ -71,7 +80,7 @@ infantry_units = [ ["rhsusf_airforce_jetpilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_Quadbike_01_F",50,0,25], // Quad Bike ["rhsusf_m1025_d",100,0,50], // M1025A2 ["rhsusf_m1025_d_m2",100,40,50], // M1025A2 (M2) @@ -101,7 +110,7 @@ light_vehicles = [ ["B_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["rhsusf_m113d_usarmy",200,40,100], // M113A3 (M2) ["rhsusf_m113d_usarmy_MK19",200,60,100], // M113A3 (Mk19) ["rhsusf_m113d_usarmy_medical",200,0,100], // M113A3 (Medical) @@ -115,7 +124,7 @@ heavy_vehicles = [ ["rhsusf_m109d_usarmy",600,1250,300] // M109A6 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["B_UAV_01_F",75,0,25], // AR-2 Darter ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird @@ -147,7 +156,7 @@ air_vehicles = [ ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["RHS_M2StaticMG_MiniTripod_D",25,40,0], // Mk2 HMG .50 ["RHS_M2StaticMG_D",25,40,0], // Mk2 HMG .50 (Raised) ["RHS_MK19_TriPod_D",25,60,0], // Mk19 GMG 20mm @@ -158,7 +167,7 @@ static_vehicles = [ ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V3_F",0,0,0], ["Land_Cargo_Patrol_V3_F",0,0,0], ["Land_Cargo_Tower_V3_F",0,0,0], @@ -237,17 +246,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -271,7 +280,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "BWA3_TL_Tropen", "BWA3_Rifleman_lite_Tropen", "BWA3_Rifleman_lite_Tropen", @@ -285,7 +294,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "BWA3_TL_Tropen", "BWA3_RiflemanAT_Pzf3_Tropen", "BWA3_RiflemanAT_Pzf3_Tropen", @@ -299,7 +308,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "BWA3_TL_Tropen", "BWA3_Rifleman_Tropen", "BWA3_Rifleman_Tropen", @@ -311,7 +320,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "BWA3_TL_Tropen", "BWA3_Rifleman_Tropen", "BWA3_Rifleman_Tropen", @@ -323,7 +332,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "BWA3_recon_TL_Fleck", "BWA3_recon_Fleck", "BWA3_recon_Fleck", @@ -337,7 +346,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "rhsusf_army_ocp_rifleman_101st", "rhsusf_army_ocp_rifleman_101st", "rhsusf_army_ocp_rifleman_101st", @@ -351,11 +360,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "rhsusf_mkvsoc", // Mk.V SOCOM "rhsusf_m1a1aim_tuski_d", // M1A1SA (Tusk I) "rhsusf_m1a2sep1tuskiid_usarmy", // M1A2SEPv1 (Tusk II) diff --git a/Missionframework/presets/blufor/csat.sqf b/Missionframework/presets/players/csat.sqf similarity index 79% rename from Missionframework/presets/blufor/csat.sqf rename to Missionframework/presets/players/csat.sqf index 001253915..ba95bb5b5 100644 --- a/Missionframework/presets/blufor/csat.sqf +++ b/Missionframework/presets/players/csat.sqf @@ -1,9 +1,18 @@ /* + File: csat.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-03 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CSAT player preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "Land_Pod_Heli_Transport_04_box_F"; // This is the FOB as a container. -FOB_truck_typename = "O_Truck_03_device_F"; // This is the FOB as a vehicle. -Arsenal_typename = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "O_Truck_03_medical_F"; // This is the mobile respawn (and medical) truck. -huron_typename = "O_Heli_Transport_04_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "O_crew_F"; // This defines the crew for vehicles. -pilot_classname = "O_helipilot_F"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "O_Heli_Light_02_unarmed_F"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "O_Truck_03_transport_F"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "O_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "Land_Pod_Heli_Transport_04_box_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "O_Truck_03_device_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "O_Truck_03_medical_F"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "O_Heli_Transport_04_F"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "O_crew_F"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "O_helipilot_F"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "O_Heli_Light_02_unarmed_F"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "O_Truck_03_transport_F"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "O_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["O_Soldier_lite_F",15,0,0], // Rifleman (Light) ["O_Soldier_F",20,0,0], // Rifleman ["O_Soldier_LAT_F",30,0,0], // Rifleman (AT) @@ -61,7 +70,7 @@ infantry_units = [ ["O_Pilot_F",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["O_Quadbike_01_F",50,0,25], // Quad Bike ["O_LSV_02_unarmed_F",75,0,50], // LSV Mk2 ["O_LSV_02_armed_F",75,75,50], // LSV Mk2 (M134) @@ -78,7 +87,7 @@ light_vehicles = [ ["O_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["O_APC_Wheeled_02_rcws_v2_F",200,150,150], // Otokar ["O_APC_Tracked_02_cannon_F",200,200,150], // Stalker ["O_APC_Tracked_02_AA_F",300,250,175], // Tigris @@ -88,7 +97,7 @@ heavy_vehicles = [ ["O_MBT_02_arty_F",600,1250,300] // Sochor ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["O_UAV_01_F",75,0,25], // Tayran ["O_UAV_06_F",80,0,30], // Jinaah ["O_Heli_Light_02_unarmed_F",250,0,150], // Ka-60 Kasatka (unarmed) @@ -105,7 +114,7 @@ air_vehicles = [ ["O_T_VTOL_02_vehicle_dynamicLoadout_F",950,800,500] // Xian (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["O_Static_Designator_02_F",25,0,0], // Remote Designator ["O_HMG_01_F",25,40,0], // Mk30A HMG .50 ["O_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) @@ -119,7 +128,7 @@ static_vehicles = [ ["O_SAM_System_04_F",250,500,0] // S-750 Rhea ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V3_F",0,0,0], ["Land_Cargo_Patrol_V3_F",0,0,0], ["Land_Cargo_Tower_V3_F",0,0,0], @@ -195,17 +204,17 @@ buildings = [ ["Land_Razorwire_F",0,0,0] ]; -support_vehicles = [ - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,200,100,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], - [Arsenal_typename,25,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,200,100,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], + [KPLIB_b_arsenal,25,0,0], ["ACE_medicalSupplyCrate_advanced",10,0,0], ["Box_East_Support_F",10,0,0], ["Box_CSAT_Equip_F",10,0,0], @@ -236,7 +245,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "O_Soldier_SL_F", "O_Soldier_TL_F", "O_Soldier_TL_F", @@ -250,7 +259,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "O_Soldier_TL_F", "O_HeavyGunner_F", "O_Soldier_A_F", @@ -264,7 +273,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "O_Soldier_TL_F", "O_Soldier_AT_F", "O_Soldier_HAT_F", @@ -276,7 +285,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "O_Soldier_TL_F", "O_Soldier_AA_F", "O_Soldier_AAA_F", @@ -288,7 +297,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "O_recon_TL_F", "O_recon_F", "O_recon_F", @@ -302,7 +311,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "O_soldier_PG_F", "O_soldier_PG_F", "O_soldier_PG_F", @@ -316,11 +325,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "O_MBT_04_cannon_F", // T-14 "O_MBT_04_command_F", // T-14K "O_MBT_02_arty_F", // Sochor diff --git a/Missionframework/presets/blufor/csat_apex.sqf b/Missionframework/presets/players/csat_apex.sqf similarity index 80% rename from Missionframework/presets/blufor/csat_apex.sqf rename to Missionframework/presets/players/csat_apex.sqf index b242d615f..346e5bd39 100644 --- a/Missionframework/presets/blufor/csat_apex.sqf +++ b/Missionframework/presets/players/csat_apex.sqf @@ -1,9 +1,18 @@ /* + File: csat_apex.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-03 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CSAT Pacific player preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "Land_Pod_Heli_Transport_04_box_F"; // This is the FOB as a container. -FOB_truck_typename = "O_T_Truck_03_device_ghex_F"; // This is the FOB as a vehicle. -Arsenal_typename = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "O_T_Truck_03_medical_ghex_F"; // This is the mobile respawn (and medical) truck. -huron_typename = "O_Heli_Transport_04_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "O_T_Crew_F"; // This defines the crew for vehicles. -pilot_classname = "O_T_Helipilot_F"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "O_Heli_Light_02_unarmed_F"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "O_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "O_T_Truck_03_covered_ghex_F"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "O_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "Land_Pod_Heli_Transport_04_box_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "O_T_Truck_03_device_ghex_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "O_T_Truck_03_medical_ghex_F"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "O_Heli_Transport_04_F"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "O_T_Crew_F"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "O_T_Helipilot_F"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "O_Heli_Light_02_unarmed_F"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "O_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "O_T_Truck_03_covered_ghex_F"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "O_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["O_Soldier_lite_F",15,0,0], // Rifleman (Light) ["O_T_Soldier_F",20,0,0], // Rifleman ["O_T_Soldier_LAT_F",30,0,0], // Rifleman (AT) @@ -67,7 +76,7 @@ infantry_units = [ ["O_T_Pilot_F",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["O_T_Quadbike_01_ghex_F",50,0,25], // Quad Bike ["O_T_LSV_02_unarmed_F",75,0,50], // LSV Mk2 ["O_T_LSV_02_armed_F",75,75,50], // LSV Mk2 (M134) @@ -84,7 +93,7 @@ light_vehicles = [ ["O_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["O_T_APC_Wheeled_02_rcws_v2_ghex_F",200,150,150], // Otokar ["O_T_APC_Tracked_02_cannon_ghex_F",200,200,150], // Stalker ["O_T_APC_Tracked_02_AA_ghex_F",300,250,175], // Tigris @@ -94,7 +103,7 @@ heavy_vehicles = [ ["O_T_MBT_02_arty_ghex_F",600,1250,300] // Sochor ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["O_UAV_01_F",75,0,25], // Tayran ["O_UAV_06_F",80,0,30], // Jinaah ["O_Heli_Light_02_unarmed_F",250,0,150], // Ka-60 Kasatka (unarmed) @@ -111,7 +120,7 @@ air_vehicles = [ ["O_T_VTOL_02_vehicle_dynamicLoadout_F",950,800,500] // Xian (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["O_Static_Designator_02_F",25,0,0], // Remote Designator ["O_HMG_01_F",25,40,0], // Mk30A HMG .50 ["O_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) @@ -125,7 +134,7 @@ static_vehicles = [ ["O_SAM_System_04_F",250,500,0] // S-750 Rhea ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -202,17 +211,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,200,100,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], - [Arsenal_typename,25,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,200,100,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], + [KPLIB_b_arsenal,25,0,0], ["ACE_medicalSupplyCrate_advanced",10,0,0], ["Box_East_Support_F",10,0,0], ["Box_CSAT_Equip_F",10,0,0], @@ -243,7 +252,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "O_T_Soldier_SL_F", "O_T_Soldier_TL_F", "O_T_Soldier_TL_F", @@ -257,7 +266,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "O_T_Soldier_TL_F", "O_HeavyGunner_F", "O_Soldier_A_F", @@ -271,7 +280,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "O_T_Soldier_TL_F", "O_T_Soldier_AT_F", "O_T_Soldier_AAT_F", @@ -283,7 +292,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "O_T_Soldier_TL_F", "O_T_Soldier_AA_F", "O_T_Soldier_AAA_F", @@ -295,7 +304,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "O_T_Recon_TL_F", "O_T_Recon_F", "O_T_Recon_F", @@ -309,7 +318,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "O_T_Soldier_PG_F", "O_T_Soldier_PG_F", "O_T_Soldier_PG_F", @@ -323,11 +332,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "O_T_MBT_04_cannon_F", // T-14 "O_T_MBT_04_command_F", // T-14K "O_T_MBT_02_arty_ghex_F", // Sochor diff --git a/Missionframework/presets/blufor/CUP_ACR_Desert.sqf b/Missionframework/presets/players/cup_acr_desert.sqf similarity index 79% rename from Missionframework/presets/blufor/CUP_ACR_Desert.sqf rename to Missionframework/presets/players/cup_acr_desert.sqf index 592a201ea..905dddf18 100644 --- a/Missionframework/presets/blufor/CUP_ACR_Desert.sqf +++ b/Missionframework/presets/players/cup_acr_desert.sqf @@ -1,11 +1,20 @@ /* + File: cup_acr_desert.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-22 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP ACR Desert player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - Qinetix's Titus + - Qinetix's Titus */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "CUP_B_T810_Repair_CZ_DES"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_B_LR_Ambulance_CZ_D"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_B_Mi171Sh_Unarmed_ACR"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_B_CZ_Crew_DES"; // This defines the crew for vehicles. -pilot_classname = "CUP_B_CZ_Pilot_DES"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_B_T810_Unarmed_CZ_DES"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "CUP_B_T810_Repair_CZ_DES"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_B_LR_Ambulance_CZ_D"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_B_Mi171Sh_Unarmed_ACR"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_B_CZ_Crew_DES"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_B_CZ_Pilot_DES"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "B_Heli_Light_01_F"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_B_T810_Unarmed_CZ_DES"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_B_CZ_Soldier_DES",15,0,0], // Rifleman ["CUP_B_CZ_Soldier_backpack_DES",20,0,0], // Rifleman (Backpack) ["CUP_B_CZ_Soldier_RPG_DES",30,0,0], // Rifleman (RPG) @@ -69,7 +78,7 @@ infantry_units = [ ["CUP_B_CZ_Pilot_DES",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_B_UAZ_Unarmed_ACR",100,0,50], // UAZ ["CUP_B_UAZ_Open_ACR",100,0,50], // UAZ (Open) ["CUP_B_UAZ_MG_ACR",100,40,50], // UAZ (DShKM) @@ -91,7 +100,7 @@ light_vehicles = [ ["CUP_B_T810_Armed_CZ_DES",125,60,75] // Tatra T810 (MG/Covered) ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_B_BRDM2_HQ_CZ_Des",200,25,200], // BRDM-2 (HQ) (Desert) ["CUP_B_BRDM2_CZ_Des",200,200,200], // BRDM-2 (Desert) ["I_APC_Wheeled_03_cannon_F",500,400,300], // Pandur II @@ -103,7 +112,7 @@ heavy_vehicles = [ ["CUP_B_T72_CZ",800,500,450] // T-72M4CZ ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_B_Mi171Sh_ACR",700,600,500], // Mi-171Sh (Rockets) ["CUP_B_Mi35_Dynamic_CZ",850,1000,550], // Mi-35 ["CUP_B_Mi35_Dynamic_CZ_Dark",850,1000,550], // Mi-35 (Dark) @@ -114,14 +123,14 @@ air_vehicles = [ ["I_Plane_Fighter_04_F",1500,1400,800] // JAS 39 Gripen ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_B_DSHKM_ACR",25,40,0], // DShKM ["CUP_B_AGS_ACR",35,60,0], // AGS-30 ["CUP_B_2b14_82mm_ACR",80,150,0], // Podnos 2B14 ["CUP_B_RBS70_ACR",100,200,0] // RBS 70 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -198,17 +207,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -231,7 +240,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_B_CZ_Soldier_SL_DES", "CUP_B_CZ_Soldier_DES", "CUP_B_CZ_Soldier_DES", @@ -245,7 +254,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_B_CZ_Soldier_SL_DES", "CUP_B_CZ_Soldier_RPG_DES", "CUP_B_CZ_Soldier_RPG_DES", @@ -259,7 +268,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_B_CZ_Soldier_SL_DES", "CUP_B_CZ_Soldier_DES", "CUP_B_CZ_Soldier_DES", @@ -271,7 +280,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_B_CZ_Soldier_SL_DES", "CUP_B_CZ_Soldier_DES", "CUP_B_CZ_Soldier_DES", @@ -283,7 +292,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_B_CZ_SpecOps_TL_DES", "CUP_B_CZ_SpecOps_Recon_DES", "CUP_B_CZ_SpecOps_Recon_DES", @@ -297,7 +306,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_B_CZ_Soldier_DES", "CUP_B_CZ_Soldier_DES", "CUP_B_CZ_Soldier_DES", @@ -311,11 +320,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_B_Dingo_CZ_Des", // Dingo 2 (MG) (Desert) "CUP_B_Dingo_GL_CZ_Des", // Dingo 2 (GL) (Desert) "QIN_Titus_WDL", // Nexter Titus diff --git a/Missionframework/presets/blufor/CUP_ACR_Woodland.sqf b/Missionframework/presets/players/cup_acr_woodland.sqf similarity index 79% rename from Missionframework/presets/blufor/CUP_ACR_Woodland.sqf rename to Missionframework/presets/players/cup_acr_woodland.sqf index 770f6eada..264e924d3 100644 --- a/Missionframework/presets/blufor/CUP_ACR_Woodland.sqf +++ b/Missionframework/presets/players/cup_acr_woodland.sqf @@ -1,11 +1,20 @@ /* + File: cup_acr_woodland.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-22 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP ACR Woodland player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - Qinetix's Titus + - Qinetix's Titus */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "CUP_B_T810_Repair_CZ_WDL"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_B_LR_Ambulance_CZ_W"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_B_Mi171Sh_Unarmed_ACR"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_B_CZ_Crew_WDL"; // This defines the crew for vehicles. -pilot_classname = "CUP_B_CZ_Pilot_WDL"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_B_T810_Unarmed_CZ_WDL"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "CUP_B_T810_Repair_CZ_WDL"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_B_LR_Ambulance_CZ_W"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_B_Mi171Sh_Unarmed_ACR"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_B_CZ_Crew_WDL"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_B_CZ_Pilot_WDL"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "B_Heli_Light_01_F"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_B_T810_Unarmed_CZ_WDL"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_B_CZ_Soldier_WDL",15,0,0], // Rifleman ["CUP_B_CZ_Soldier_backpack_WDL",20,0,0], // Rifleman (Backpack) ["CUP_B_CZ_Soldier_RPG_WDL",30,0,0], // Rifleman (RPG) @@ -69,7 +78,7 @@ infantry_units = [ ["CUP_B_CZ_Pilot_WDL",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_B_UAZ_Unarmed_ACR",100,0,50], // UAZ ["CUP_B_UAZ_Open_ACR",100,0,50], // UAZ (Open) ["CUP_B_UAZ_MG_ACR",100,40,50], // UAZ (DShKM) @@ -87,7 +96,7 @@ light_vehicles = [ ["CUP_B_T810_Armed_CZ_WDL",125,60,75] // Tatra T810 (MG/Covered) ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_B_BRDM2_HQ_CZ",200,25,200], // BRDM-2 (HQ) ["CUP_B_BRDM2_CZ",200,200,200], // BRDM-2 ["CUP_B_RM70_CZ",300,750,175], // RM-70 @@ -100,7 +109,7 @@ heavy_vehicles = [ ["CUP_B_T72_CZ",800,500,450] // T-72M4CZ ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_B_Mi171Sh_ACR",700,600,500], // Mi-171Sh (Rockets) ["CUP_B_Mi35_Dynamic_CZ",850,1000,550], // Mi-35 ["CUP_B_Mi35_Dynamic_CZ_Dark",850,1000,550], // Mi-35 (Dark) @@ -111,14 +120,14 @@ air_vehicles = [ ["I_Plane_Fighter_04_F",1500,1400,800] // JAS 39 Gripen ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_B_DSHKM_ACR",25,40,0], // DShKM ["CUP_B_AGS_ACR",35,60,0], // AGS-30 ["CUP_B_2b14_82mm_ACR",80,150,0], // Podnos 2B14 ["CUP_B_RBS70_ACR",100,200,0] // RBS 70 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -195,17 +204,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -228,7 +237,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_B_CZ_Soldier_SL_WDL", "CUP_B_CZ_Soldier_WDL", "CUP_B_CZ_Soldier_WDL", @@ -242,7 +251,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_B_CZ_Soldier_SL_WDL", "CUP_B_CZ_Soldier_RPG_WDL", "CUP_B_CZ_Soldier_RPG_WDL", @@ -256,7 +265,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_B_CZ_Soldier_SL_WDL", "CUP_B_CZ_Soldier_WDL", "CUP_B_CZ_Soldier_WDL", @@ -268,7 +277,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_B_CZ_Soldier_SL_WDL", "CUP_B_CZ_Soldier_WDL", "CUP_B_CZ_Soldier_WDL", @@ -280,7 +289,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_B_CZ_SpecOps_TL_WDL", "CUP_B_CZ_SpecOps_Recon_WDL", "CUP_B_CZ_SpecOps_Recon_WDL", @@ -294,7 +303,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_B_CZ_Soldier_WDL", "CUP_B_CZ_Soldier_WDL", "CUP_B_CZ_Soldier_WDL", @@ -308,11 +317,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_B_Dingo_CZ_Wdl", // Dingo 2 (MG) (Woodland) "CUP_B_Dingo_GL_CZ_Wdl", // Dingo 2 (GL) (Woodland) "QIN_Titus_WDL", // Nexter Titus diff --git a/Missionframework/presets/blufor/CUP_BAF_Desert.sqf b/Missionframework/presets/players/cup_baf_desert.sqf similarity index 80% rename from Missionframework/presets/blufor/CUP_BAF_Desert.sqf rename to Missionframework/presets/players/cup_baf_desert.sqf index 64932a70c..c746e81b9 100644 --- a/Missionframework/presets/blufor/CUP_BAF_Desert.sqf +++ b/Missionframework/presets/players/cup_baf_desert.sqf @@ -1,11 +1,20 @@ /* + File: cup_baf_desert.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-15 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP BAF Desert player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "CUP_B_MTVR_Repair_USA"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_B_LR_Ambulance_GB_D"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_B_CH47F_GB"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_B_BAF_Soldier_Crew_DDPM"; // This defines the crew for vehicles. -pilot_classname = "CUP_B_BAF_Soldier_Helipilot_DDPM"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "CUP_B_SA330_Puma_HC2_BAF"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_B_MTVR_BAF_DES"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "CUP_B_MTVR_Repair_USA"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_B_LR_Ambulance_GB_D"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_B_CH47F_GB"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_B_BAF_Soldier_Crew_DDPM"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_B_BAF_Soldier_Helipilot_DDPM"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "CUP_B_SA330_Puma_HC2_BAF"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_B_MTVR_BAF_DES"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_B_BAF_Soldier_RiflemanLite_DDPM",15,0,0], // Rifleman (Light) ["CUP_B_BAF_Soldier_Rifleman_DDPM",20,0,0], // Rifleman ["CUP_B_BAF_Soldier_RiflemanAT_DDPM",30,0,0], // Rifleman (AT) @@ -74,7 +83,7 @@ infantry_units = [ ["CUP_B_BAF_Soldier_Pilot_DDPM",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_B_LR_Transport_GB_D",75,0,50], // Land Rover 110 Transport ["CUP_B_LR_MG_GB_D",75,50,50], // Land Rover 110 (M2) ["CUP_B_LR_Special_M2_GB_D",100,80,50], // Land Rover 110 (M2 Special) @@ -90,7 +99,7 @@ light_vehicles = [ ["CUP_B_MTVR_BAF_DES",125,0,75] // MTVR Transport ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_B_FV432_Bulldog_GB_D",300,100,150], // FV432 Bulldog M240 ["CUP_B_FV432_Bulldog_GB_D_RWS",300,250,150], // FV432 Bulldog M2 RWS ["CUP_B_MCV80_GB_D",300,450,275], // MCV-80 Warrior @@ -101,7 +110,7 @@ heavy_vehicles = [ ["CUP_B_Challenger2_2CD_BAF",500,800,450] // FV4034 Challenger 2 (Two-Color Desert) ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_B_AW159_Unarmed_RN_Blackcat",225,0,125], // AW159 Wildcat (Black Cat, Unarmed) ["CUP_B_AW159_Unarmed_GB",225,0,125], // AW159 Wildcat (Green, Unarmed) ["CUP_B_AW159_Unarmed_RN_Grey",225,0,125], // AW159 Wildcat (Grey, Unarmed) @@ -114,7 +123,7 @@ air_vehicles = [ ["CUP_B_F35B_Stealth_BAF",1500,1750,450] // F-35B Lightning II (Stealth) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_B_L111A1_BAF_DDPM",25,40,0], // L111A1 Machine Gun ["CUP_B_L111A1_MiniTripod_BAF_DDPM",25,40,0], // L111A1 Minitripod ["CUP_WV_B_CRAM",500,500,0], // C-RAM @@ -124,7 +133,7 @@ static_vehicles = [ ["CUP_B_L16A2_BAF_DDPM",80,150,0] // L16A2 81mm Mortar ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -201,17 +210,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -234,7 +243,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_B_BAF_Soldier_TeamLeader_DDPM", "CUP_B_BAF_Soldier_Rifleman_DDPM", "CUP_B_BAF_Soldier_Rifleman_DDPM", @@ -248,7 +257,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_B_BAF_Soldier_TeamLeader_DDPM", "CUP_B_BAF_Soldier_RiflemanLAT_DDPM", "CUP_B_BAF_Soldier_RiflemanLAT_DDPM", @@ -262,7 +271,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_B_BAF_Soldier_TeamLeader_DDPM", "CUP_B_BAF_Soldier_Rifleman_DDPM", "CUP_B_BAF_Soldier_Rifleman_DDPM", @@ -274,7 +283,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_B_BAF_Soldier_TeamLeader_DDPM", "CUP_B_BAF_Soldier_Rifleman_DDPM", "CUP_B_BAF_Soldier_Rifleman_DDPM", @@ -286,7 +295,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_B_BAF_Soldier_TeamLeader_MTP", "CUP_B_BAF_Soldier_Rifleman_MTP", "CUP_B_BAF_Soldier_Rifleman_MTP", @@ -300,7 +309,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_B_BAF_Soldier_Paratrooper_DDPM", "CUP_B_BAF_Soldier_Paratrooper_DDPM", "CUP_B_BAF_Soldier_Paratrooper_DDPM", @@ -314,11 +323,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_B_MCV80_GB_D_SLAT", // MCV-80 Warrior (SLAT) "CUP_B_FV510_GB_D", // FV510 Warrior "CUP_B_FV510_GB_D_SLAT", // FV510 Warrior (SLAT) diff --git a/Missionframework/presets/blufor/CUP_BAF_Woodland.sqf b/Missionframework/presets/players/cup_baf_woodland.sqf similarity index 81% rename from Missionframework/presets/blufor/CUP_BAF_Woodland.sqf rename to Missionframework/presets/players/cup_baf_woodland.sqf index 136e5ec56..f78f11564 100644 --- a/Missionframework/presets/blufor/CUP_BAF_Woodland.sqf +++ b/Missionframework/presets/players/cup_baf_woodland.sqf @@ -1,11 +1,20 @@ /* + File: cup_baf_woodland.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-15 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP BAF Woodland player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "CUP_B_MTVR_Repair_USA"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_B_FV432_GB_Ambulance"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_B_CH47F_GB"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_B_BAF_Soldier_Crew_DPM"; // This defines the crew for vehicles. -pilot_classname = "CUP_B_BAF_Soldier_Helipilot_DPM"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "CUP_B_SA330_Puma_HC2_BAF"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_B_MTVR_BAF_WOOD"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "CUP_B_MTVR_Repair_USA"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_B_FV432_GB_Ambulance"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_B_CH47F_GB"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_B_BAF_Soldier_Crew_DPM"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_B_BAF_Soldier_Helipilot_DPM"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "CUP_B_SA330_Puma_HC2_BAF"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_B_MTVR_BAF_WOOD"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_B_BAF_Soldier_RiflemanLite_DPM",15,0,0], // Rifleman (Light) ["CUP_B_BAF_Soldier_Rifleman_DPM",20,0,0], // Rifleman ["CUP_B_BAF_Soldier_RiflemanAT_DPM",30,0,0], // Rifleman (AT) @@ -74,7 +83,7 @@ infantry_units = [ ["CUP_B_BAF_Soldier_Pilot_DPM",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_B_LR_Transport_GB_W",75,0,50], // Land Rover 110 (Transport) Woodland ["CUP_B_LR_Ambulance_GB_W",75,0,50], // Land Rover 110 (Ambulance) Woodland ["CUP_B_LR_MG_GB_W",75,50,50], // Land Rover 110 (M2) Woodland @@ -91,7 +100,7 @@ light_vehicles = [ ["CUP_B_MTVR_BAF_WOOD",125,0,75] // MTVR Transport ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_B_FV432_Bulldog_GB_W",300,100,150], // FV432 Bulldog M240 [Woodland] ["CUP_B_FV432_Bulldog_GB_W_RWS",300,250,150], // FV432 Bulldog M2 RWS [Woodland] ["CUP_B_FV432_Mortar",350,500,150], // FV432 Mortar @@ -103,7 +112,7 @@ heavy_vehicles = [ ["CUP_B_Challenger2_2CW_BAF",500,800,450] // FV4034 Challenger 2 (Two-Color Woodland) ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_B_AW159_Unarmed_RN_Blackcat",225,0,125], // AW159 Wildcat (Black Cat, Unarmed) ["CUP_B_AW159_Unarmed_GB",225,0,125], // AW159 Wildcat (Green, Unarmed) ["CUP_B_AW159_Unarmed_RN_Grey",225,0,125], // AW159 Wildcat (Grey, Unarmed) @@ -116,7 +125,7 @@ air_vehicles = [ ["CUP_B_F35B_Stealth_BAF",1500,1750,450] // F-35B Lightning II (Stealth) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_B_L111A1_BAF_DPM",25,40,0], // L111A1 Machine Gun ["CUP_B_L111A1_MiniTripod_BAF_DPM",25,40,0], // L111A1 Minitripod ["CUP_WV_B_CRAM",500,500,0], // C-RAM @@ -126,7 +135,7 @@ static_vehicles = [ ["CUP_B_L16A2_BAF_DPM",80,150,0] // L16A2 81mm Mortar ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -203,17 +212,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -237,7 +246,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_B_BAF_Soldier_TeamLeader_DPM", "CUP_B_BAF_Soldier_Rifleman_DPM", "CUP_B_BAF_Soldier_Rifleman_DPM", @@ -251,7 +260,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_B_BAF_Soldier_TeamLeader_DPM", "CUP_B_BAF_Soldier_RiflemanLAT_DPM", "CUP_B_BAF_Soldier_RiflemanLAT_DPM", @@ -265,7 +274,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_B_BAF_Soldier_TeamLeader_DPM", "CUP_B_BAF_Soldier_Rifleman_DPM", "CUP_B_BAF_Soldier_Rifleman_DPM", @@ -277,7 +286,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_B_BAF_Soldier_TeamLeader_DPM", "CUP_B_BAF_Soldier_Rifleman_DPM", "CUP_B_BAF_Soldier_Rifleman_DPM", @@ -289,7 +298,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_B_BAF_Soldier_TeamLeader_MTP", "CUP_B_BAF_Soldier_Rifleman_MTP", "CUP_B_BAF_Soldier_Rifleman_MTP", @@ -303,7 +312,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad. -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_B_BAF_Soldier_Paratrooper_DPM", "CUP_B_BAF_Soldier_Paratrooper_DPM", "CUP_B_BAF_Soldier_Paratrooper_DPM", @@ -317,11 +326,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_B_MCV80_GB_W_SLAT", // MCV-80 Warrior (SLAT - Woodland) "CUP_B_FV432_Mortar", // FV432 Mortar "CUP_B_FV510_GB_W", // FV510 Warrior (Woodland) diff --git a/Missionframework/presets/blufor/CUP_CDF.sqf b/Missionframework/presets/players/cup_cdf.sqf similarity index 78% rename from Missionframework/presets/blufor/CUP_CDF.sqf rename to Missionframework/presets/players/cup_cdf.sqf index 71f85bad0..fc812f326 100644 --- a/Missionframework/presets/blufor/CUP_CDF.sqf +++ b/Missionframework/presets/players/cup_cdf.sqf @@ -1,11 +1,20 @@ /* + File: cup_cdf.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-17 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP CDF player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_B_BMP2_AMB_CDF"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_B_MI6A_CDF"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_B_CDF_Crew_FST"; // This defines the crew for vehicles. -pilot_classname = "CUP_B_CDF_Pilot_FST"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera bas -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_B_Ural_Open_CDF"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_B_BMP2_AMB_CDF"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_B_MI6A_CDF"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_B_CDF_Crew_FST"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_B_CDF_Pilot_FST"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "B_Heli_Light_01_F"; // These are the additional helicopters which spawn on the Freedom or at Chimera bas +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_B_Ural_Open_CDF"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_B_CDF_Soldier_FST",20,0,0], // Rifleman ["CUP_B_CDF_Soldier_RPG18_FST",30,0,0], // Rifleman (RPG-18) ["CUP_B_CDF_Soldier_GL_FST",25,0,0], // Grenadier @@ -68,7 +77,7 @@ infantry_units = [ ["CUP_B_CDF_Pilot_FST",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_B_S1203_Ambulance_CDF",75,0,50], // Škoda S1203 (Ambulance) ["CUP_B_UAZ_Unarmed_CDF",75,0,50], // UAZ ["CUP_B_UAZ_MG_CDF",100,60,50], // UAZ (DShKM) @@ -84,7 +93,7 @@ light_vehicles = [ ["CUP_B_Ural_CDF",125,0,75] // Ural ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_B_BRDM2_CDF",200,200,125], // BRDM-2 ["CUP_B_BRDM2_ATGM_CDF",200,400,125], // BRDM-2 (ATGM) ["CUP_B_BTR60_CDF",300,200,125], // BTR-60PB @@ -97,7 +106,7 @@ heavy_vehicles = [ ["CUP_B_T72_CDF",600,500,250] // T-72 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_B_Mi17_CDF",300,100,300], // Mi-8MT ["CUP_B_Pchela1T_CDF",100,0,50], // Pchela-1T ["CUP_B_Mi24_D_Dynamic_CDF",700,600,300], // Mi-24D @@ -105,7 +114,7 @@ air_vehicles = [ ["CUP_B_SU34_CDF",1200,1000,500] // Su-34 ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_B_DSHKM_CDF",25,40,0], // DShKM ["CUP_B_DSHkM_MiniTripod_CDF",25,40,0], // DShKM Minitripod ["CUP_B_AGS_CDF",25,60,0], // AGS-30 @@ -118,7 +127,7 @@ static_vehicles = [ ["CUP_B_D30_CDF",200,250,0] // D-30 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -196,17 +205,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -229,7 +238,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_B_CDF_Soldier_TL_FST", "CUP_B_CDF_Soldier_FST", "CUP_B_CDF_Soldier_FST", @@ -243,7 +252,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_B_CDF_Soldier_TL_FST", "CUP_B_CDF_Soldier_RPG18_FST", "CUP_B_CDF_Soldier_RPG18_FST", @@ -257,7 +266,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_B_CDF_Soldier_TL_FST", "CUP_B_CDF_Soldier_FST", "CUP_B_CDF_Soldier_FST", @@ -269,7 +278,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_B_CDF_Soldier_TL_FST", "CUP_B_CDF_Soldier_FST", "CUP_B_CDF_Soldier_FST", @@ -281,7 +290,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_B_CDF_Soldier_TL_MNT", "CUP_B_CDF_SOldier_MNT", "CUP_B_CDF_Soldier_GL_MNT", @@ -295,7 +304,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad. -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_B_CDF_Soldier_FST", "CUP_B_CDF_Soldier_FST", "CUP_B_CDF_Soldier_FST", @@ -309,11 +318,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_B_BTR60_CDF", // BTR-60 PB "CUP_B_BM21_CDF", // BM-21 "CUP_B_BMP2_CDF", // BMP-2 diff --git a/Missionframework/presets/blufor/CUP_ChDKZ.sqf b/Missionframework/presets/players/cup_chdkz.sqf similarity index 77% rename from Missionframework/presets/blufor/CUP_ChDKZ.sqf rename to Missionframework/presets/players/cup_chdkz.sqf index c9cf862b1..adaa42728 100644 --- a/Missionframework/presets/blufor/CUP_ChDKZ.sqf +++ b/Missionframework/presets/players/cup_chdkz.sqf @@ -1,11 +1,20 @@ /* + File: cup_chdkz.sqf + Author: Eogos - https://github.com/Eogos + Date: 2020-04-21 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP ChDKZ player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "CUP_O_BMP_HQ_CHDKZ"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_O_BMP2_AMB_CHDKZ"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_O_MI6A_CHDKZ"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_O_INS_Crew"; // This defines the crew for vehicles. -pilot_classname = "CUP_O_INS_Pilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "CUP_O_Mi8_medevac_CHDKZ"; // These are the little birds which spawn on the Freedom or at Chimera bas -KP_liberation_boat_classname = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_O_Ural_Open_CHDKZ"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "CUP_O_BMP_HQ_CHDKZ"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_O_BMP2_AMB_CHDKZ"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_O_MI6A_CHDKZ"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_O_INS_Crew"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_O_INS_Pilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "CUP_O_Mi8_medevac_CHDKZ"; // These are the additional helicopters which spawn on the Freedom or at Chimera bas +KPLIB_b_addBoat = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_O_Ural_Open_CHDKZ"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_O_INS_Soldier",20,0,0], // Rifleman ["CUP_O_INS_Soldier_LAT",30,0,0], // Rifleman (RPG-18) ["CUP_O_INS_Soldier_GL",25,0,0], // Grenadier @@ -65,7 +74,7 @@ infantry_units = [ ["CUP_O_INS_Pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_O_Datsun_4seat",50,0,25], // Datsun 620 Pickup Woodland ["CUP_O_Datsun_PK",50,10,25], // Datsun 620 Pickup (PK) ["CUP_O_Datsun_AA",75,150,25], // Datsun 620 Pickup (AA) @@ -81,7 +90,7 @@ light_vehicles = [ ["CUP_O_Ural_CHDKZ",150,0,75] // Ural ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_O_BRDM2_CHDKZ",200,200,150], // BRDM-2 ["CUP_O_BRDM2_ATGM_CHDKZ",200,400,150], // BRDM-2 (ATGM) ["CUP_O_BTR60_CHDKZ",300,200,200], // BTR-60PB @@ -95,11 +104,11 @@ heavy_vehicles = [ ["CUP_O_T72_CHDKZ",700,500,300] // T-72 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_O_Mi8_CHDKZ",400,100,400] // Mi-8MT ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_O_DSHKM_ChDKZ",25,40,0], // DShKM ["CUP_O_DSHkM_MiniTripod_ChDKZ",25,40,0], // DShKM Minitripod ["CUP_O_AGS_ChDKZ",25,60,0], // AGS-30 @@ -111,7 +120,7 @@ static_vehicles = [ ["CUP_O_D30_ChDKZ",200,250,0] // D-30 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -187,17 +196,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -220,7 +229,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_O_INS_Officer", "CUP_O_INS_Woodlander3", "CUP_O_INS_Worker2", @@ -234,7 +243,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_O_INS_Officer", "CUP_O_INS_Soldier_LAT", "CUP_O_INS_Soldier_LAT", @@ -248,7 +257,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_O_INS_Officer", "CUP_O_INS_Soldier_LAT", "CUP_O_INS_Soldier_LAT", @@ -260,7 +269,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_O_INS_Officer", "CUP_O_INS_Soldier", "CUP_O_INS_Soldier", @@ -272,7 +281,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_O_RUS_Soldier_TL", "CUP_O_RUS_SpecOps_Scout", "CUP_O_RUS_SpecOps_Night", @@ -285,7 +294,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad. -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_O_INS_Soldier_LAT", "CUP_O_INS_Soldier_LAT", "CUP_O_INS_Soldier_LAT", @@ -299,11 +308,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_O_BTR60_CHDKZ", // BTR-60 PB "CUP_O_BM21_CHDKZ", // BM-21 "CUP_O_BMP2_CHDKZ", // BMP-2 diff --git a/Missionframework/presets/blufor/CUP_SLA.sqf b/Missionframework/presets/players/cup_sla.sqf similarity index 79% rename from Missionframework/presets/blufor/CUP_SLA.sqf rename to Missionframework/presets/players/cup_sla.sqf index 0ee153b22..6f936ca19 100644 --- a/Missionframework/presets/blufor/CUP_SLA.sqf +++ b/Missionframework/presets/players/cup_sla.sqf @@ -1,11 +1,20 @@ /* + File: cup_sla.sqf + Author: Eogos - https://github.com/Eogos + Date: 2020-04-24 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP SLA player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "CUP_O_BMP_HQ_sla"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_O_BMP2_AMB_sla"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_O_Mi8_SLA_1"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_O_sla_Crew"; // This defines the crew for vehicles. -pilot_classname = "CUP_O_sla_Pilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "CUP_O_UH1H_slick_SLA"; // These are the little birds which spawn on the Freedom or at Chimera bas -KP_liberation_boat_classname = "CUP_O_PBX_SLA"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_O_Ural_Open_SLA"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "CUP_O_BMP_HQ_sla"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_O_BMP2_AMB_sla"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_O_Mi8_SLA_1"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_O_sla_Crew"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_O_sla_Pilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "CUP_O_UH1H_slick_SLA"; // These are the additional helicopters which spawn on the Freedom or at Chimera bas +KPLIB_b_addBoat = "CUP_O_PBX_SLA"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_O_Ural_Open_SLA"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_O_sla_Soldier",15,0,0], // Rifleman ["CUP_O_SLA_Soldier_Backpack",20,0,0], // Rifleman (Backpack) ["CUP_O_sla_Soldier_AT",30,0,0], // Rifleman (RPG-7) @@ -68,7 +77,7 @@ infantry_units = [ ["CUP_O_sla_Pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_O_UAZ_Unarmed_SLA",100,0,50], // UAZ ["CUP_O_UAZ_MG_SLA",125,60,50], // UAZ (DShKM) ["CUP_O_UAZ_AGS30_SLA",125,80,50], // UAZ (AGS-30) @@ -81,7 +90,7 @@ light_vehicles = [ ["CUP_O_Ural_SLA",150,0,75] // Ural ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_O_BRDM2_SLA",200,200,150], // BRDM-2 ["CUP_O_BRDM2_ATGM_SLA",200,400,150], // BRDM-2 (ATGM) ["CUP_O_BTR60_SLA",300,200,200], // BTR-60PB @@ -95,7 +104,7 @@ heavy_vehicles = [ ["CUP_O_T72_SLA",700,500,300] // T-72 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_O_UH1H_armed_SLA",400,250,250], // UH-1H (Armed) ["CUP_O_UH1H_gunship_SLA",500,350,250], // UH-1H (Gunship) ["CUP_O_Mi8_SLA_2",500,350,300], // Mi-8MTV3 @@ -105,7 +114,7 @@ air_vehicles = [ ["CUP_O_SU34_SLA",1200,1000,500] // Su-34 ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_O_DSHKM_SLA",25,40,0], // DShKM ["CUP_O_DSHkM_MiniTripod_SLA",25,40,0], // DShKM Minitripod ["CUP_O_AGS_SLA",25,60,0], // AGS-30 @@ -117,7 +126,7 @@ static_vehicles = [ ["CUP_O_D30_SLA",200,250,0] // D-30 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -193,17 +202,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -228,7 +237,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_O_sla_Soldier_SL", "CUP_O_sla_Soldier", "CUP_O_sla_Soldier", @@ -242,7 +251,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_O_sla_Soldier_SL", "CUP_O_sla_Soldier_LAT", "CUP_O_sla_Soldier_LAT", @@ -256,7 +265,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_O_sla_Soldier_SL", "CUP_O_sla_Soldier_AAT", "CUP_O_sla_Soldier_AAT", @@ -268,7 +277,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_O_sla_Soldier_SL", "CUP_O_sla_Soldier_Backpack", "CUP_O_sla_Soldier_Backpack", @@ -280,7 +289,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_O_sla_SpecOps_TL", "CUP_O_sla_SpecOps", "CUP_O_sla_SpecOps_Demo", @@ -291,7 +300,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad. -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_O_sla_Officer_urban", "CUP_O_sla_Officer_urban", "CUP_O_sla_Officer_urban", @@ -305,11 +314,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_O_BTR60_SLA", // BTR-60 PB "CUP_O_BM21_SLA", // BM-21 "CUP_O_BMP2_SLA", // BMP-2 diff --git a/Missionframework/presets/blufor/CUP_TakiArmy.sqf b/Missionframework/presets/players/cup_takistan.sqf similarity index 80% rename from Missionframework/presets/blufor/CUP_TakiArmy.sqf rename to Missionframework/presets/players/cup_takistan.sqf index 318a2e79c..90e884ba2 100644 --- a/Missionframework/presets/blufor/CUP_TakiArmy.sqf +++ b/Missionframework/presets/players/cup_takistan.sqf @@ -1,11 +1,20 @@ /* + File: cup_takistan.sqf + Author: Eogos - https://github.com/Eogos + Date: 2020-04-25 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP Takistani Armed Forces player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ /* @@ -14,26 +23,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "CUP_O_BMP_HQ_TKA"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_O_M113_Med_TKA"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_O_MI6A_TKA"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_O_TK_Crew"; // This defines the crew for vehicles. -pilot_classname = "CUP_O_TK_Pilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "CUP_O_UH1H_slick_TKA"; // These are the little birds which spawn on the Freedom or at Chimera bas -KP_liberation_boat_classname = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_O_Ural_Open_TKA"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "CUP_O_BMP_HQ_TKA"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_O_M113_Med_TKA"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_O_MI6A_TKA"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_O_TK_Crew"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_O_TK_Pilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "CUP_O_UH1H_slick_TKA"; // These are the additional helicopters which spawn on the Freedom or at Chimera bas +KPLIB_b_addBoat = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_O_Ural_Open_TKA"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "O_Radar_System_02_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -43,7 +52,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_O_TK_Soldier",15,0,0], // Rifleman ["CUP_O_TK_Soldier_Backpack",20,0,0], // Rifleman (backpack) ["CUP_O_TK_Soldier_AT",30,0,0], // Rifleman (RPG-7) @@ -66,7 +75,7 @@ infantry_units = [ ["CUP_O_TK_Pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_O_Hilux_unarmed_TK_INS",50,0,50], // Hilux ["CUP_O_Hilux_M2_TK_INS",50,60,50], // Hilux (M2) ["CUP_O_Hilux_DSHKM_TK_INS",50,60,50], // Hilux (DShKM) @@ -90,7 +99,7 @@ light_vehicles = [ ["CUP_O_Ural_TKA",150,0,75] // Ural ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_O_Hilux_armored_zu23_TK_INS",100,150,75], // Hilux Armored (ZU-23-2) ["CUP_O_Hilux_armored_BTR60_TK_INS",100,200,75], // Hilux Armored (BTR-60) ["CUP_O_Hilux_armored_BMP1_TK_INS",100,350,75], // Hilux Armored (BMP-1) @@ -113,7 +122,7 @@ heavy_vehicles = [ ["CUP_O_T72_TKA",700,500,300] // T-72 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_O_UH1H_armed_TKA",400,250,250], // UH-1H (Armed) ["CUP_O_UH1H_gunship_TKA",500,350,250], // UH-1H (Gunship) ["CUP_O_Mi17_TK",500,350,300], // Mi-8MT @@ -124,7 +133,7 @@ air_vehicles = [ ["CUP_O_Su25_Dyn_TKA",1000,850,400] // Su-25 Frogfoot ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_O_KORD_high_TK",25,40,0], // KORD ["CUP_O_KORD_TK",25,40,0], // KORD Minitripod ["CUP_O_AGS_TK",25,60,0], // AGS-30 @@ -135,7 +144,7 @@ static_vehicles = [ ["CUP_O_D30_TK",200,250,0] // D-30 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -211,17 +220,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -244,7 +253,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_O_TK_Soldier_SL", "CUP_O_TK_Soldier", "CUP_O_TK_Soldier", @@ -258,7 +267,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_O_TK_Soldier_SL", "CUP_O_TK_Soldier_LAT", "CUP_O_TK_Soldier_LAT", @@ -272,7 +281,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_O_TK_Soldier_SL", "CUP_O_TK_Soldier_AAT", "CUP_O_TK_Soldier_AAT", @@ -284,7 +293,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_O_TK_Soldier_SL", "CUP_O_TK_Soldier_Backpack", "CUP_O_TK_Soldier_Backpack", @@ -296,7 +305,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_O_TK_SpecOps_TL", "CUP_O_TK_SpecOps", "CUP_O_TK_SpecOps", @@ -307,7 +316,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad. -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_O_TK_Soldier_LAT", "CUP_O_TK_Soldier_LAT", "CUP_O_TK_Soldier_LAT", @@ -321,11 +330,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_O_BTR60_TKA", // BTR-60 PB "CUP_O_BM21_TKA", // BM-21 "CUP_O_BMP2_TKA", // BMP-2 diff --git a/Missionframework/presets/blufor/CUP_USA_Desert.sqf b/Missionframework/presets/players/cup_usa_desert.sqf similarity index 83% rename from Missionframework/presets/blufor/CUP_USA_Desert.sqf rename to Missionframework/presets/players/cup_usa_desert.sqf index f125f75a9..92bfa5ac9 100644 --- a/Missionframework/presets/blufor/CUP_USA_Desert.sqf +++ b/Missionframework/presets/players/cup_usa_desert.sqf @@ -1,13 +1,22 @@ /* + File: cup_usa_desert.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-17 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP USA Desert player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - USAF Main Pack - - USAF Fighters Pack - - USAF Utility Pack + - USAF Fighters Pack + - USAF Main Pack + - USAF Utility Pack */ /* @@ -16,26 +25,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_B_HMMWV_Ambulance_USA"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_B_CH47F_USA"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_B_US_Crew"; // This defines the crew for vehicles. -pilot_classname = "CUP_B_US_Pilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "CUP_B_MH6M_USA"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_B_HMMWV_Ambulance_USA"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_B_CH47F_USA"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_B_US_Crew"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_B_US_Pilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "CUP_B_MH6M_USA"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -45,7 +54,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_B_US_Soldier",20,0,0], // Rifleman ["CUP_B_US_Soldier_LAT",30,0,0], // Rifleman (AT) ["CUP_B_US_Soldier_GL",25,0,0], // Grenadier @@ -69,7 +78,7 @@ infantry_units = [ ["CUP_B_US_Pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_B_HMMWV_Unarmed_USA",75,0,50], // HMMWV (Unarmed) ["CUP_B_HMMWV_M2_USA",75,60,50], // HMMWV M2 ["CUP_B_HMMWV_MK19_USA",75,80,50], // HMMWV MK19 @@ -84,7 +93,7 @@ light_vehicles = [ ["CUP_B_MTVR_USA",125,0,75] // MTVR ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_B_M1126_ICV_M2_Desert_Slat",200,150,125], // M1126 ICV M2 CROWS (Desert - Slat) ["CUP_B_M1126_ICV_MK19_Desert_Slat",200,200,125], // M1126 ICV MK19 CROWS (Desert - Slat) ["CUP_B_M1128_MGS_Desert_Slat",200,500,125], // M1128 MGS (Desert - Slat) @@ -100,7 +109,7 @@ heavy_vehicles = [ ["CUP_B_M270_DPICM_USA",800,1750,400] // M270 MLRS (DPICM) ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_B_UH60M_Unarmed_FFV_MEV_US",300,0,200], // UH-60M MEDVAC (Unarmed/FFV) ["CUP_B_UH60M_US",300,25,200], // UH-60M ["CUP_B_UH60M_FFV_US",300,50,200], // UH-60M (FFV) @@ -127,7 +136,7 @@ air_vehicles = [ ["CUP_B_AH6X_USA",300,0,100] // AH-6X Littlebird ULB ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_B_M2StaticMG_US",25,40,0], // M2 Machine Gun ["CUP_B_M2StaticMG_MiniTripod_US",25,40,0], // M2 Minitripod ["CUP_B_TOW_TriPod_US",50,100,0], // TOW Tripod @@ -139,7 +148,7 @@ static_vehicles = [ ["CUP_B_M119_US",100,200,0] // M119 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -217,17 +226,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -263,7 +272,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_B_US_Soldier_SL", "CUP_B_US_Soldier", "CUP_B_US_Soldier", @@ -277,7 +286,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_B_US_Soldier_SL", "CUP_B_US_Soldier_LAT", "CUP_B_US_Soldier_LAT", @@ -291,7 +300,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_B_US_Soldier_SL", "CUP_B_US_Soldier", "CUP_B_US_Soldier", @@ -303,7 +312,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_B_US_Soldier_SL", "CUP_B_US_Soldier", "CUP_B_US_Soldier", @@ -315,7 +324,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_B_US_SpecOps_TL", "CUP_B_US_SpecOps", "CUP_B_US_SpecOps_Assault", @@ -329,7 +338,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_B_US_Soldier", "CUP_B_US_Soldier", "CUP_B_US_Soldier", @@ -343,11 +352,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_WV_B_CRAM", // C-RAM "CUP_WV_B_SS_Launcher", // Mk-29 GMLS "CUP_WV_B_RAM_Launcher", // Mk-49 GMLS diff --git a/Missionframework/presets/blufor/CUP_USA_Woodland.sqf b/Missionframework/presets/players/cup_usa_woodland.sqf similarity index 83% rename from Missionframework/presets/blufor/CUP_USA_Woodland.sqf rename to Missionframework/presets/players/cup_usa_woodland.sqf index 3db0c2c7b..2ea2c57b3 100644 --- a/Missionframework/presets/blufor/CUP_USA_Woodland.sqf +++ b/Missionframework/presets/players/cup_usa_woodland.sqf @@ -1,13 +1,22 @@ /* + File: cup_usa_woodland.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-17 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP USA Woodland player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - USAF Main Pack - - USAF Fighters Pack - - USAF Utility Pack + - USAF Fighters Pack + - USAF Main Pack + - USAF Utility Pack */ /* @@ -16,26 +25,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_B_HMMWV_Ambulance_USA"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_B_CH47F_USA"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_B_US_Crew"; // This defines the crew for vehicles. -pilot_classname = "CUP_B_US_Pilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "CUP_B_MH6M_USA"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_B_HMMWV_Ambulance_USA"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_B_CH47F_USA"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_B_US_Crew"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_B_US_Pilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "CUP_B_MH6M_USA"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -45,7 +54,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_B_US_Soldier",20,0,0], // Rifleman ["CUP_B_US_Soldier_LAT",30,0,0], // Rifleman (AT) ["CUP_B_US_Soldier_GL",25,0,0], // Grenadier @@ -69,7 +78,7 @@ infantry_units = [ ["CUP_B_US_Pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_B_HMMWV_Unarmed_USA",75,0,50], // HMMWV (Unarmed) ["CUP_B_HMMWV_M2_USA",75,60,50], // HMMWV M2 ["CUP_B_HMMWV_MK19_USA",75,80,50], // HMMWV MK19 @@ -84,7 +93,7 @@ light_vehicles = [ ["CUP_B_MTVR_USA",125,0,75] // MTVR ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_B_M1126_ICV_M2_Woodland_Slat",200,150,125], // M1126 ICV M2 CROWS (Woodland - Slat) ["CUP_B_M1126_ICV_MK19_Woodland_Slat",200,200,125], // M1126 ICV MK19 CROWS (Woodland - Slat) ["CUP_B_M1128_MGS_Woodland_Slat",200,500,125], // M1128 MGS (Woodland - Slat) @@ -101,7 +110,7 @@ heavy_vehicles = [ ["CUP_B_M270_DPICM_USA",800,1750,400] // M270 MLRS (DPICM) ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_B_UH60M_Unarmed_FFV_MEV_US",300,0,200], // UH-60M MEDVAC (Unarmed/FFV) ["CUP_B_UH60M_US",300,25,200], // UH-60M ["CUP_B_UH60M_FFV_US",300,50,200], // UH-60M (FFV) @@ -129,7 +138,7 @@ air_vehicles = [ ["CUP_B_AH6X_USA",300,0,100] // AH-6X Littlebird ULB ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_B_M2StaticMG_US",25,40,0], // M2 Machine Gun ["CUP_B_M2StaticMG_MiniTripod_US",25,40,0], // M2 Minitripod ["CUP_B_TOW_TriPod_US",50,100,0], // TOW Tripod @@ -141,7 +150,7 @@ static_vehicles = [ ["CUP_B_M119_US",100,200,0] // M119 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -219,17 +228,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -265,7 +274,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_B_US_Soldier_SL", "CUP_B_US_Soldier", "CUP_B_US_Soldier", @@ -279,7 +288,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_B_US_Soldier_SL", "CUP_B_US_Soldier_LAT", "CUP_B_US_Soldier_LAT", @@ -293,7 +302,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_B_US_Soldier_SL", "CUP_B_US_Soldier", "CUP_B_US_Soldier", @@ -305,7 +314,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_B_US_Soldier_SL", "CUP_B_US_Soldier", "CUP_B_US_Soldier", @@ -317,7 +326,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_B_US_SpecOps_TL", "CUP_B_US_SpecOps", "CUP_B_US_SpecOps_Assault", @@ -331,7 +340,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_B_US_Soldier", "CUP_B_US_Soldier", "CUP_B_US_Soldier", @@ -345,11 +354,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_WV_B_CRAM", // C-RAM "CUP_WV_B_SS_Launcher", // Mk-29 GMLS "CUP_WV_B_RAM_Launcher", // Mk-49 GMLS diff --git a/Missionframework/presets/blufor/CUP_USMC_Desert.sqf b/Missionframework/presets/players/cup_usmc_desert.sqf similarity index 83% rename from Missionframework/presets/blufor/CUP_USMC_Desert.sqf rename to Missionframework/presets/players/cup_usmc_desert.sqf index 4341999b2..b7e1b099b 100644 --- a/Missionframework/presets/blufor/CUP_USMC_Desert.sqf +++ b/Missionframework/presets/players/cup_usmc_desert.sqf @@ -1,13 +1,22 @@ /* + File: cup_usmc_desert.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-15 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP USMC Desert player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - USAF Main Pack - - USAF Fighters Pack - - USAF Utility Pack + - USAF Fighters Pack + - USAF Main Pack + - USAF Utility Pack */ /* @@ -16,26 +25,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_B_HMMWV_Ambulance_USA"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_B_CH53E_USMC"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_B_USMC_Crewman_FROG_DES"; // This defines the crew for vehicles. -pilot_classname = "CUP_B_USMC_Pilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "CUP_B_UH1Y_UNA_USMC"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "CUP_B_Zodiac_USMC"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_B_HMMWV_Ambulance_USA"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_B_CH53E_USMC"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_B_USMC_Crewman_FROG_DES"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_B_USMC_Pilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "CUP_B_UH1Y_UNA_USMC"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "CUP_B_Zodiac_USMC"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_B_MTVR_USA"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -45,7 +54,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_B_USMC_Soldier_FROG_DES",20,0,0], // Rifleman ["CUP_B_USMC_Soldier_LAT_FROG_DES",30,0,0], // Rifleman (M136) ["CUP_B_USMC_Soldier_GL_FROG_DES",25,0,0], // Grenadier @@ -69,7 +78,7 @@ infantry_units = [ ["CUP_B_USMC_Pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_B_M1030_USMC",50,0,25], // M1030 ["CUP_B_HMMWV_Unarmed_USA",75,0,50], // HMMWV (Unarmed) ["CUP_B_HMMWV_M2_USA",75,60,50], // HMMWV M2 @@ -84,7 +93,7 @@ light_vehicles = [ ["CUP_B_RHIB2Turret_USMC",250,200,100] // RHIB (Mk19) ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_B_LAV25_desert_USMC",200,175,125], // LAV-25A1 (Desert) ["CUP_B_LAV25M240_desert_USMC",200,200,125], // LAV-25A1 (M240) (Desert) ["CUP_B_LAV25_HQ_desert_USMC",200,50,125], // LAV-C2 (Desert) @@ -97,7 +106,7 @@ heavy_vehicles = [ ["CUP_B_M270_DPICM_USMC",800,1750,400] // M270 MLRS (DPICM) ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_B_UH1Y_MEV_USMC",200,0,100], // UH-1Y Venom (MEDVAC) ["CUP_B_UH1Y_Gunship_Dynamic_USMC",200,100,100], // UH-1Y Venom (Gunship) ["CUP_B_MH60S_FFV_USMC",250,25,200], // MH-60S Seahawk (FFV) @@ -125,7 +134,7 @@ air_vehicles = [ ["CUP_B_MV22_VIV_USMC",750,0,500] // MV-22B Osprey (VIV) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_B_M2StaticMG_USMC",25,40,0], // M2 Machine Gun ["CUP_B_M2StaticMG_MiniTripod_USMC",25,40,0], // M2 Minitripod ["CUP_B_TOW_TriPod_USMC",50,100,0], // TOW Tripod @@ -137,7 +146,7 @@ static_vehicles = [ ["CUP_B_M119_USMC",100,200,0] // M119 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -214,17 +223,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -261,7 +270,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_B_USMC_Soldier_SL_FROG_DES", "CUP_B_USMC_Soldier_FROG_DES", "CUP_B_USMC_Soldier_FROG_DES", @@ -275,7 +284,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_B_USMC_Soldier_SL_FROG_DES", "CUP_B_USMC_Soldier_LAT_FROG_DES", "CUP_B_USMC_Soldier_LAT_FROG_DES", @@ -289,7 +298,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_B_USMC_Soldier_SL_FROG_DES", "CUP_B_USMC_Soldier_FROG_DES", "CUP_B_USMC_Soldier_FROG_DES", @@ -301,7 +310,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_B_USMC_Soldier_SL_FROG_DES", "CUP_B_USMC_Soldier_FROG_DES", "CUP_B_USMC_Soldier_FROG_DES", @@ -313,7 +322,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_B_FR_Soldier_TL_DES", "CUP_B_FR_Soldier_Assault_DES", "CUP_B_FR_Soldier_Assault_DES", @@ -327,7 +336,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_B_USMC_Soldier_FROG_DES", "CUP_B_USMC_Soldier_FROG_DES", "CUP_B_USMC_Soldier_FROG_DES", @@ -341,11 +350,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_B_F35B_USMC", // F-35B Lightning II "CUP_WV_B_CRAM", // C-RAM "CUP_WV_B_SS_Launcher", // Mk-29 GMLS diff --git a/Missionframework/presets/blufor/CUP_USMC_Woodland.sqf b/Missionframework/presets/players/cup_usmc_woodland.sqf similarity index 83% rename from Missionframework/presets/blufor/CUP_USMC_Woodland.sqf rename to Missionframework/presets/players/cup_usmc_woodland.sqf index 072b4d9ee..a6cae9784 100644 --- a/Missionframework/presets/blufor/CUP_USMC_Woodland.sqf +++ b/Missionframework/presets/players/cup_usmc_woodland.sqf @@ -1,13 +1,22 @@ /* + File: cup_usmc_woodland.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-15 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP USMC Woodland player preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - USAF Main Pack - - USAF Fighters Pack - - USAF Utility Pack + - USAF Fighters Pack + - USAF Main Pack + - USAF Utility Pack */ /* @@ -16,26 +25,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "CUP_B_HMMWV_Ambulance_USMC"; // This is the mobile respawn (and medical) truck. -huron_typename = "CUP_B_CH53E_USMC"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "CUP_B_USMC_Crewman_FROG_WDL"; // This defines the crew for vehicles. -pilot_classname = "CUP_B_USMC_Pilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "CUP_B_UH1Y_UNA_USMC"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "CUP_B_Zodiac_USMC"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "CUP_B_MTVR_USMC"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "CUP_B_HMMWV_Ambulance_USMC"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "CUP_B_CH53E_USMC"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "CUP_B_USMC_Crewman_FROG_WDL"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "CUP_B_USMC_Pilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "CUP_B_UH1Y_UNA_USMC"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "CUP_B_Zodiac_USMC"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "CUP_B_MTVR_USMC"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -45,7 +54,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["CUP_B_USMC_Soldier_FROG_WDL",20,0,0], // Rifleman ["CUP_B_USMC_Soldier_LAT_FROG_WDL",30,0,0], // Rifleman (M136) ["CUP_B_USMC_Soldier_GL_FROG_WDL",25,0,0], // Grenadier @@ -69,7 +78,7 @@ infantry_units = [ ["CUP_B_USMC_Pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["CUP_B_M1030_USMC",50,0,25], // M1030 ["CUP_B_HMMWV_Unarmed_USMC",75,0,50], // HMMWV (Unarmed) ["CUP_B_HMMWV_M1114_USMC",75,30,50], // HMMWV M240 @@ -85,7 +94,7 @@ light_vehicles = [ ["CUP_B_RHIB2Turret_USMC",250,200,100] // RHIB (Mk19) ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["CUP_B_LAV25_green",200,175,125], // LAV-25A1 (Olive) ["CUP_B_LAV25M240_green",200,200,125], // LAV-25A1 (M240) (Olive) ["CUP_B_LAV25_HQ_green",200,50,125], // LAV-C2 (Olive) @@ -98,7 +107,7 @@ heavy_vehicles = [ ["CUP_B_M270_DPICM_USMC",800,1750,400] // M270 MLRS (DPICM) ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["CUP_B_UH1Y_MEV_USMC",200,0,100], // UH-1Y Venom (MEDVAC) ["CUP_B_UH1Y_Gunship_Dynamic_USMC",200,100,100], // UH-1Y Venom (Gunship) ["CUP_B_MH60S_FFV_USMC",250,25,200], // MH-60S Seahawk (FFV) @@ -126,7 +135,7 @@ air_vehicles = [ ["CUP_B_MV22_VIV_USMC",750,0,500] // MV-22B Osprey (VIV) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["CUP_B_M2StaticMG_USMC",25,40,0], // M2 Machine Gun ["CUP_B_M2StaticMG_MiniTripod_USMC",25,40,0], // M2 Minitripod ["CUP_B_TOW_TriPod_USMC",50,100,0], // TOW Tripod @@ -138,7 +147,7 @@ static_vehicles = [ ["CUP_B_M119_USMC",100,200,0] // M119 ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -215,17 +224,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -262,7 +271,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "CUP_B_USMC_Soldier_SL_FROG_WDL", "CUP_B_USMC_Soldier_FROG_WDL", "CUP_B_USMC_Soldier_FROG_WDL", @@ -276,7 +285,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "CUP_B_USMC_Soldier_SL_FROG_WDL", "CUP_B_USMC_Soldier_LAT_FROG_WDL", "CUP_B_USMC_Soldier_LAT_FROG_WDL", @@ -290,7 +299,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "CUP_B_USMC_Soldier_SL_FROG_WDL", "CUP_B_USMC_Soldier_FROG_WDL", "CUP_B_USMC_Soldier_FROG_WDL", @@ -302,7 +311,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "CUP_B_USMC_Soldier_SL_FROG_WDL", "CUP_B_USMC_Soldier_FROG_WDL", "CUP_B_USMC_Soldier_FROG_WDL", @@ -314,7 +323,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "CUP_B_FR_Soldier_TL_WDL", "CUP_B_FR_Soldier_Assault_WDL", "CUP_B_FR_Soldier_Assault_WDL", @@ -328,7 +337,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "CUP_B_USMC_Soldier_FROG_WDL", "CUP_B_USMC_Soldier_FROG_WDL", "CUP_B_USMC_Soldier_FROG_WDL", @@ -342,11 +351,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "CUP_B_F35B_USMC", // F-35B Lightning II "CUP_WV_B_CRAM", // C-RAM "CUP_WV_B_SS_Launcher", // Mk-29 GMLS diff --git a/Missionframework/presets/blufor/custom.sqf b/Missionframework/presets/players/custom.sqf similarity index 90% rename from Missionframework/presets/blufor/custom.sqf rename to Missionframework/presets/players/custom.sqf index d657461d1..0e22a8dee 100644 --- a/Missionframework/presets/blufor/custom.sqf +++ b/Missionframework/presets/players/custom.sqf @@ -1,17 +1,26 @@ /* + File: custom.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Custom (default NATO) player preset. + Needed Mods: - - None + - None Optional Mods: - - BWMod - - RHSUSAF - - F-15C - - F/A-18 - - CUP Weapons - - CUP Vehicles - - USAF Main Pack - - USAF Fighters Pack - - USAF Utility Pack + - BWMod + - CUP Vehicles + - CUP Weapons + - F-15C + - F/A-18 + - RHSUSAF + - USAF Fighters Pack + - USAF Main Pack + - USAF Utility Pack */ /* @@ -20,26 +29,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "B_Truck_01_medical_F"; // This is the mobile respawn (and medical) truck. -huron_typename = "B_Heli_Transport_03_unarmed_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "B_crew_F"; // This defines the crew for vehicles. -pilot_classname = "B_Helipilot_F"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "B_Truck_01_transport_F"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "B_Truck_01_medical_F"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "B_Heli_Transport_03_unarmed_F"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "B_crew_F"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "B_Helipilot_F"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "B_Heli_Light_01_F"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "B_Truck_01_transport_F"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -49,7 +58,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["B_Soldier_lite_F",15,0,0], // Rifleman (Light) ["B_Soldier_F",20,0,0], // Rifleman ["B_soldier_LAT_F",30,0,0], // Rifleman (AT) @@ -81,7 +90,7 @@ infantry_units = [ ["B_Pilot_F",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_Quadbike_01_F",50,0,25], // Quad Bike ["B_LSV_01_unarmed_F",75,0,50], // Prowler ["B_LSV_01_armed_F",75,40,50], // Prowler (HMG) @@ -122,7 +131,7 @@ light_vehicles = [ ["B_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["rhsusf_m113_usarmy",200,40,100], // M113A3 (M2) ["rhsusf_m113_usarmy_MK19",200,60,100], // M113A3 (Mk19) ["rhsusf_m113_usarmy_medical",200,0,100], // M113A3 (Medical) @@ -153,7 +162,7 @@ heavy_vehicles = [ ["B_MBT_01_mlrs_F",800,1750,400] // M5 Sandstorm MLRS ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["B_UAV_01_F",75,0,25], // AR-2 Darter ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) ["B_Heli_Light_01_F",200,0,100], // MH-9 Hummingbird @@ -210,7 +219,7 @@ air_vehicles = [ ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["B_HMG_01_F",25,40,0], // Mk30A HMG .50 ["B_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) ["B_HMG_01_A_F",35,40,0], // Mk30 HMG .50 (Autonomous) @@ -224,7 +233,7 @@ static_vehicles = [ ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -303,17 +312,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -353,7 +362,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "B_Soldier_TL_F", "B_Soldier_F", "B_Soldier_F", @@ -367,7 +376,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "B_Soldier_TL_F", "B_Soldier_LAT_F", "B_Soldier_LAT_F", @@ -381,7 +390,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "B_Soldier_TL_F", "B_Soldier_F", "B_Soldier_F", @@ -393,7 +402,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "B_Soldier_TL_F", "B_Soldier_F", "B_Soldier_F", @@ -405,7 +414,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "B_recon_TL_F", "B_recon_F", "B_recon_F", @@ -419,7 +428,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "B_soldier_PG_F", "B_soldier_PG_F", "B_soldier_PG_F", @@ -433,11 +442,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "rhsusf_mkvsoc", // Mk.V SOCOM "rhsusf_m1a1aim_tuski_wd", // M1A1SA (Tusk I) "B_MBT_01_TUSK_F", // M2A4 Slammer UP diff --git a/Missionframework/presets/blufor/enoch.sqf b/Missionframework/presets/players/enoch.sqf similarity index 81% rename from Missionframework/presets/blufor/enoch.sqf rename to Missionframework/presets/players/enoch.sqf index a2c8cb417..9c21c81b3 100644 --- a/Missionframework/presets/blufor/enoch.sqf +++ b/Missionframework/presets/players/enoch.sqf @@ -1,9 +1,18 @@ /* + File: enoch.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-07-24 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Livonia Defence Force player preset. + Needed Mods: - - Contact DLC + - Contact DLC Optional Mods: - - None + - None */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V4_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "B_T_Truck_01_box_F"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "I_E_Truck_02_Medical_F"; // This is the mobile respawn (and medical) truck. -huron_typename = "B_Heli_Transport_03_unarmed_F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "I_E_Crew_F"; // This defines the crew for vehicles. -pilot_classname = "I_E_Helipilot_F"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "B_Heli_Light_01_F"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "I_E_Truck_02_transport_F"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "I_E_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V4_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "B_T_Truck_01_box_F"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "I_E_Truck_02_Medical_F"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "B_Heli_Transport_03_unarmed_F"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "I_E_Crew_F"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "I_E_Helipilot_F"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "B_Heli_Light_01_F"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_T_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "I_E_Truck_02_transport_F"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_green_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "I_E_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["I_E_Soldier_lite_F",15,0,0], // Rifleman (Light) ["I_E_Soldier_F",20,0,0], // Rifleman ["I_E_Soldier_LAT2_F",30,0,0], // Rifleman (AT) @@ -68,7 +77,7 @@ infantry_units = [ ["B_T_Pilot_F",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["I_E_Quadbike_01_F",50,0,25], // Quad Bike ["I_E_Offroad_01_F",60,0,35], // Offroad ["I_E_Offroad_01_covered_F",60,0,35], // Offroad (Covered) @@ -87,7 +96,7 @@ light_vehicles = [ ["B_T_Boat_Armed_01_minigun_F",200,80,75] // Speedboat Minigun ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["B_T_APC_Wheeled_01_cannon_F",200,75,125], // AMV-7 Marshall ["I_E_APC_tracked_03_cannon_F",300,150,150], // FV-720 Odyniec ["B_T_APC_Tracked_01_AA_F",300,250,175], // IFV-6a Cheetah @@ -98,7 +107,7 @@ heavy_vehicles = [ ["I_E_Truck_02_MRL_F",600,1250,300] // Zamak MRL ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["I_E_UAV_01_F",75,0,25], // AR-2 Darter ["I_E_UAV_06_F",80,0,30], // AL-6 Pelican ["B_Heli_Light_01_F",200,0,100], // MH-9 Hummingbird @@ -117,7 +126,7 @@ air_vehicles = [ ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["B_W_Static_Designator_01_F",25,0,0], // Remote Designator ["I_E_HMG_01_F",25,40,0], // Mk30A HMG .50 ["I_E_HMG_01_high_F",25,40,0], // Mk30 HMG .50 (Raised) @@ -131,7 +140,7 @@ static_vehicles = [ ["I_E_SAM_System_03_F",250,500,0] // MIM-145 Defender ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V4_F",0,0,0], ["Land_Cargo_Patrol_V4_F",0,0,0], ["Land_Cargo_Tower_V4_F",0,0,0], @@ -211,17 +220,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,200,100,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], - [Arsenal_typename,25,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,200,100,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], + [KPLIB_b_arsenal,25,0,0], ["ACE_medicalSupplyCrate_advanced",10,0,0], ["Box_East_Support_F",10,0,0], ["Box_CSAT_Equip_F",10,0,0], @@ -250,7 +259,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "I_E_Soldier_TL_F", "I_E_Soldier_F", "I_E_Soldier_F", @@ -264,7 +273,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "I_E_Soldier_TL_F", "I_E_Soldier_LAT2_F", "I_E_Soldier_LAT2_F", @@ -278,7 +287,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "I_E_Soldier_TL_F", "I_E_Soldier_F", "I_E_Soldier_F", @@ -290,7 +299,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "I_E_Soldier_TL_F", "I_E_Soldier_F", "I_E_Soldier_F", @@ -302,7 +311,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "B_T_Recon_TL_F", "B_T_Recon_F", "B_T_Recon_F", @@ -316,7 +325,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "B_T_Soldier_PG_F", "B_T_Soldier_PG_F", "B_T_Soldier_PG_F", @@ -330,11 +339,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "B_T_MBT_01_TUSK_F", // M2A4 Slammer UP "B_T_AFV_Wheeled_01_cannon_F", // Rhino MGS "B_T_AFV_Wheeled_01_up_cannon_F", // Rhino MGS UP diff --git a/Missionframework/presets/blufor/gm_east.sqf b/Missionframework/presets/players/gm_east.sqf similarity index 83% rename from Missionframework/presets/blufor/gm_east.sqf rename to Missionframework/presets/players/gm_east.sqf index dbff23b3e..197d25e4f 100644 --- a/Missionframework/presets/blufor/gm_east.sqf +++ b/Missionframework/presets/players/gm_east.sqf @@ -1,9 +1,18 @@ /* + File: gm_east.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-07 + Last Update: 2020-09-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + East Germany player preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 + - LEN - Cold War Aircraft */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. -FOB_box_typename = "gm_gc_army_brdm2um"; // This is the FOB as a container/BRDM (due to lack of proper container transport in GM German EAST). -FOB_truck_typename = "gm_gc_army_btr60pu12"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "gm_gc_army_ural375d_medic"; // This is the mobile respawn (and medical) truck. -huron_typename = "gm_gc_airforce_mi2t"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the crew for vehicles. -pilot_classname = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "gm_gc_bgs_p601"; // Little birds replaced with unimog for container transportation. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "gm_gc_army_ural4320_cargo"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "gm_gc_army_brdm2um"; // This is the FOB as a container/BRDM (due to lack of proper container transport in GM German EAST). +KPLIB_b_fobTruck = "gm_gc_army_btr60pu12"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "gm_gc_army_ural375d_medic"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "gm_gc_airforce_mi2t"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "gm_gc_bgs_p601"; // Little birds replaced with unimog for container transportation. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "gm_gc_army_ural4320_cargo"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["gm_gc_army_rifleman_mpiak74n_80_str",20,0,0], // Rifleman ["gm_gc_army_antitank_mpiak74n_rpg7_80_str",30,0,0], // Rifleman (AT) ["gm_gc_army_machinegunner_lmgrpk_80_str",25,0,0], // Light Machinegunner @@ -51,14 +60,14 @@ infantry_units = [ ["gm_gc_army_crew_mpiaks74nk_80_blk",10,0,0] // Crewman ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["gm_gc_army_bicycle_01_oli",10,0,0], // Service Bicycle ["gm_gc_army_p601",50,0,25], // Trabant ["gm_gc_army_ural4320_cargo",125,30,75], // Ural Transport ["B_Boat_Transport_01_F",100,0,25] // Assault Boat ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["gm_gc_army_brdm2",200,40,100], // BRDM2 ["gm_gc_army_btr60pb",200,150,125], // BTR-60PB ["gm_gc_army_zsu234v1",300,250,200], // Shilka @@ -66,7 +75,7 @@ heavy_vehicles = [ ["gm_gc_army_t55a",450,550,250] // T-55 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["gm_gc_airforce_mi2p",300,0,175], // Mi-2P ["gm_gc_airforce_mi2sr",300,0,175], // Mi-2SR ["gm_gc_airforce_mi2us",300,100,175], // Mi-2US @@ -83,11 +92,11 @@ air_vehicles = [ ["len_l39_nva",1200,1250,650] // Aero L-39 ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["gm_gc_army_fagot_launcher_tripod",50,100,0] // Static FAGOT ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V4_F",0,0,0], ["Land_Cargo_Patrol_V4_F",0,0,0], ["Land_Cargo_Tower_V4_F",0,0,0], @@ -167,17 +176,17 @@ buildings = [ ["land_gm_sandbags_01_door_02",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,200,500,0], - [FOB_truck_typename,300,500,100], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,200,500,0], + [KPLIB_b_fobTruck,300,500,100], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -199,7 +208,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "gm_gc_army_squadleader_mpiak74n_80_str", "gm_gc_army_rifleman_mpiak74n_80_str", "gm_gc_army_rifleman_mpiak74n_80_str", @@ -213,7 +222,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "gm_gc_army_squadleader_mpiak74n_80_str", "gm_gc_army_antitank_mpiak74n_rpg7_80_str", "gm_gc_army_antitank_mpiak74n_rpg7_80_str", @@ -227,7 +236,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "gm_gc_army_squadleader_mpiak74n_80_str", "gm_gc_army_rifleman_mpiak74n_80_str", "gm_gc_army_rifleman_mpiak74n_80_str", @@ -239,7 +248,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "gm_gc_army_squadleader_mpiak74n_80_str", "gm_gc_army_rifleman_mpiak74n_80_str", "gm_gc_army_rifleman_mpiak74n_80_str", @@ -251,7 +260,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "gm_gc_army_squadleader_mpiak74n_80_str", "gm_gc_army_antitank_mpiak74n_rpg7_80_str", "gm_gc_army_antitank_mpiak74n_rpg7_80_str", @@ -266,7 +275,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "gm_gc_army_rifleman_mpiak74n_80_str", "gm_gc_army_rifleman_mpiak74n_80_str", "gm_gc_army_rifleman_mpiak74n_80_str", @@ -280,11 +289,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "gm_gc_army_t55a", // T-55 "len_mi24d_AT_nva", // Mi-24D (AT) "len_mi24p_AT_nva", // Mi-24P (AT) diff --git a/Missionframework/presets/blufor/gm_east_win.sqf b/Missionframework/presets/players/gm_east_win.sqf similarity index 83% rename from Missionframework/presets/blufor/gm_east_win.sqf rename to Missionframework/presets/players/gm_east_win.sqf index 135d00298..5dd1feb74 100644 --- a/Missionframework/presets/blufor/gm_east_win.sqf +++ b/Missionframework/presets/players/gm_east_win.sqf @@ -1,9 +1,18 @@ /* + File: gm_east_win.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-09 + Last Update: 2020-09-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + East Germany Winter player preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 + - LEN - Cold War Aircraft */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. -FOB_box_typename = "gm_gc_army_brdm2um_win"; // This is the FOB as a container/BRDM (due to lack of proper container transport in GM German EAST). -FOB_truck_typename = "gm_gc_army_btr60pu12_win"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "gm_gc_army_ural375d_medic_win"; // This is the mobile respawn (and medical) truck. -huron_typename = "gm_gc_airforce_mi2t"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the crew for vehicles. -pilot_classname = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "gm_gc_bgs_p601"; // Little birds replaced with unimog for container transportation. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "gm_gc_army_ural4320_cargo"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "gm_gc_army_brdm2um_win"; // This is the FOB as a container/BRDM (due to lack of proper container transport in GM German EAST). +KPLIB_b_fobTruck = "gm_gc_army_btr60pu12_win"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "gm_gc_army_ural375d_medic_win"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "gm_gc_airforce_mi2t"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "gm_gc_army_crew_mpiaks74nk_80_blk"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "gm_gc_bgs_p601"; // Little birds replaced with unimog for container transportation. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "gm_gc_army_ural4320_cargo"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["gm_gc_army_rifleman_mpiak74n_80_win",20,0,0], // Rifleman ["gm_gc_army_antitank_mpiak74n_rpg7_80_win",30,0,0], // Rifleman (AT) ["gm_gc_army_machinegunner_lmgrpk_80_win",25,0,0], // Light Machinegunner @@ -51,14 +60,14 @@ infantry_units = [ ["gm_gc_army_crew_mpiaks74nk_80_blk",10,0,0] // Crewman ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["gm_gc_army_bicycle_01_oli",10,0,0], // Service Bicycle ["gm_gc_army_p601",50,0,25], // Trabant ["gm_gc_army_ural4320_cargo_win",125,30,75], // Ural Transport ["B_Boat_Transport_01_F",100,0,25] // Assault Boat ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["gm_gc_army_brdm2_win",200,40,100], // BRDM2 ["gm_gc_army_btr60pb_win",200,150,125], // BTR-60PB ["gm_gc_army_zsu234v1_win",300,250,200], // Shilka @@ -66,7 +75,7 @@ heavy_vehicles = [ ["gm_gc_army_t55a_win",450,550,250] // T-55 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["gm_gc_airforce_mi2p",300,0,175], // Mi-2P ["gm_gc_airforce_mi2sr",300,0,175], // Mi-2SR ["gm_gc_airforce_mi2us",300,100,175], // Mi-2US @@ -83,11 +92,11 @@ air_vehicles = [ ["len_l39_nva",1200,1250,650] // Aero L-39 ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["gm_gc_army_fagot_launcher_tripod",50,100,0] // Static FAGOT ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V4_F",0,0,0], ["Land_Cargo_Patrol_V4_F",0,0,0], ["Land_Cargo_Tower_V4_F",0,0,0], @@ -167,17 +176,17 @@ buildings = [ ["land_gm_sandbags_01_door_02",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,200,500,0], - [FOB_truck_typename,300,500,100], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,200,500,0], + [KPLIB_b_fobTruck,300,500,100], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -199,7 +208,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "gm_gc_army_squadleader_mpiak74n_80_win", "gm_gc_army_rifleman_mpiak74n_80_win", "gm_gc_army_rifleman_mpiak74n_80_win", @@ -213,7 +222,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "gm_gc_army_squadleader_mpiak74n_80_win", "gm_gc_army_antitank_mpiak74n_rpg7_80_win", "gm_gc_army_antitank_mpiak74n_rpg7_80_win", @@ -227,7 +236,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "gm_gc_army_squadleader_mpiak74n_80_win", "gm_gc_army_rifleman_mpiak74n_80_win", "gm_gc_army_rifleman_mpiak74n_80_win", @@ -239,7 +248,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "gm_gc_army_squadleader_mpiak74n_80_win", "gm_gc_army_rifleman_mpiak74n_80_win", "gm_gc_army_rifleman_mpiak74n_80_win", @@ -251,7 +260,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "gm_gc_army_squadleader_mpiak74n_80_win", "gm_gc_army_antitank_mpiak74n_rpg7_80_win", "gm_gc_army_antitank_mpiak74n_rpg7_80_win", @@ -266,7 +275,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "gm_gc_army_rifleman_mpiak74n_80_win", "gm_gc_army_rifleman_mpiak74n_80_win", "gm_gc_army_rifleman_mpiak74n_80_win", @@ -280,11 +289,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "gm_gc_army_t55a_win", // T-55, "len_mi24d_AT_nva", // Mi-24D (AT) "len_mi24p_AT_nva", // Mi-24P (AT) diff --git a/Missionframework/presets/blufor/gm_west.sqf b/Missionframework/presets/players/gm_west.sqf similarity index 83% rename from Missionframework/presets/blufor/gm_west.sqf rename to Missionframework/presets/players/gm_west.sqf index dcff6050e..d960be553 100644 --- a/Missionframework/presets/blufor/gm_west.sqf +++ b/Missionframework/presets/players/gm_west.sqf @@ -1,9 +1,18 @@ /* + File: gm_west.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-04-30 + Last Update: 2020-09-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + West Germany player preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 + - LEN - Cold War Aircraft */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. -FOB_box_typename = "gm_ge_army_shelteraceI_command"; // This is the FOB as a container. -FOB_truck_typename = "gm_ge_army_bpz2a0"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "gm_ge_army_u1300l_medic"; // This is the mobile respawn (and medical) truck. -huron_typename = "gm_ge_army_ch53gs"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "gm_ge_army_crew_mp2a1_80_oli"; // This defines the crew for vehicles. -pilot_classname = "gm_ge_army_crew_mp2a1_80_oli"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "gm_ge_army_bo105p1m_vbh_swooper";// These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "gm_ge_army_kat1_454_cargo"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "gm_ge_army_shelteraceI_command"; // This is the FOB as a container. +KPLIB_b_fobTruck = "gm_ge_army_bpz2a0"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "gm_ge_army_u1300l_medic"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "gm_ge_army_ch53gs"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "gm_ge_army_crew_mp2a1_80_oli"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "gm_ge_army_crew_mp2a1_80_oli"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "gm_ge_army_u1300l_container"; // Little birds replaced with unimog for container transportation. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "gm_ge_army_kat1_454_cargo"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["gm_ge_army_rifleman_g3a3_80_ols",20,0,0], // Rifleman ["gm_ge_army_antitank_g3a3_pzf44_80_ols",30,0,0], // Rifleman (AT) ["gm_ge_army_grenadier_g3a3_80_ols",25,0,0], // Grenadier @@ -53,7 +62,7 @@ infantry_units = [ ["gm_ge_army_crew_mp2a1_80_oli",10,0,0] // Crewman ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["gm_ge_army_bicycle_01_oli",10,0,0], // Service Bicycle ["gm_ge_army_k125",50,0,25], // K125 Bike ["gm_ge_army_iltis_cargo",100,0,50], // Truck 0.5t @@ -64,7 +73,7 @@ light_vehicles = [ ["B_Boat_Transport_01_F",100,0,25] // Assault Boat ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["gm_ge_army_m113a1g_apc",200,40,100], // M113A3 (MG3) ["gm_ge_army_m113a1g_apc_milan",200,60,100], // M113A3 (MILAN) ["gm_ge_army_m113a1g_medic",200,0,100], // M113A3 (Medical) @@ -77,7 +86,7 @@ heavy_vehicles = [ ["gm_ge_army_Leopard1a3a1",550,550,250] // Leopard 1A3A1 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["gm_ge_army_bo105m_vbh",200,0,100], // VBH 1 ["gm_ge_army_bo105p1m_vbh",200,0,100], // VBH 1A1 ["gm_ge_army_bo105p1m_vbh_swooper",200,0,100], // VBH 1A1 Swooper @@ -89,11 +98,11 @@ air_vehicles = [ ["gm_ge_airforce_do28d2_medevac",350,0,200] // Do 28 D2 (Medevac) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["gm_ge_army_milan_launcher_tripod",50,100,0] // Static MILAN ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V4_F",0,0,0], ["Land_Cargo_Patrol_V4_F",0,0,0], ["Land_Cargo_Tower_V4_F",0,0,0], @@ -173,17 +182,17 @@ buildings = [ ["land_gm_sandbags_01_door_02",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,200,500,0], - [FOB_truck_typename,300,500,100], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,200,500,0], + [KPLIB_b_fobTruck,300,500,100], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -205,7 +214,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "gm_ge_army_squadleader_g3a3_p2a1_80_ols", "gm_ge_army_rifleman_g3a3_80_ols", "gm_ge_army_rifleman_g3a3_80_ols", @@ -219,7 +228,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "gm_ge_army_squadleader_g3a3_p2a1_80_ols", "gm_ge_army_antitank_g3a3_pzf44_80_ols", "gm_ge_army_antitank_g3a3_pzf44_80_ols", @@ -233,7 +242,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "gm_ge_army_squadleader_g3a3_p2a1_80_ols", "gm_ge_army_rifleman_g3a3_80_ols", "gm_ge_army_rifleman_g3a3_80_ols", @@ -245,7 +254,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "gm_ge_army_squadleader_g3a3_p2a1_80_ols", "gm_ge_army_rifleman_g3a3_80_ols", "gm_ge_army_rifleman_g3a3_80_ols", @@ -257,7 +266,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "gm_ge_army_squadleader_g3a3_p2a1_80_ols", "gm_ge_army_antitank_g3a3_pzf44_80_ols", "gm_ge_army_antitank_g3a3_pzf44_80_ols", @@ -272,7 +281,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "gm_ge_army_rifleman_g3a3_80_ols", "gm_ge_army_rifleman_g3a3_80_ols", "gm_ge_army_rifleman_g3a3_80_ols", @@ -286,11 +295,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "gm_ge_army_Leopard1a1a2", // Leopard 1A1A2 "gm_ge_army_Leopard1a3a1" // Leopard 1A3A1 ]; diff --git a/Missionframework/presets/blufor/gm_west_win.sqf b/Missionframework/presets/players/gm_west_win.sqf similarity index 83% rename from Missionframework/presets/blufor/gm_west_win.sqf rename to Missionframework/presets/players/gm_west_win.sqf index b90a1906b..577736803 100644 --- a/Missionframework/presets/blufor/gm_west_win.sqf +++ b/Missionframework/presets/players/gm_west_win.sqf @@ -1,9 +1,18 @@ /* + File: gm_west_win.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-09 + Last Update: 2020-09-16 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + West Germany Winter player preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - LEN - Cold War Helicopters (due to lack fo air assets in GM for now) - https://steamcommunity.com/sharedfiles/filedetails/?id=1726445116 + - LEN - Cold War Aircraft */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. -FOB_box_typename = "gm_ge_army_shelteraceI_command_win"; // This is the FOB as a container. -FOB_truck_typename = "gm_ge_army_bpz2a0_win"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "gm_ge_army_u1300l_medic_win_rc"; // This is the mobile respawn (and medical) truck. -huron_typename = "gm_ge_army_ch53gs"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "gm_ge_army_crew_mp2a1_80_win"; // This defines the crew for vehicles. -pilot_classname = "gm_ge_army_crew_mp2a1_80_win"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "gm_ge_army_bo105p1m_vbh_swooper";// These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "gm_ge_army_kat1_454_cargo_win"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "land_gm_tower_bt_6_fuest_80"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "gm_ge_army_shelteraceI_command_win"; // This is the FOB as a container. +KPLIB_b_fobTruck = "gm_ge_army_bpz2a0_win"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "gm_ge_army_u1300l_medic_win_rc"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "gm_ge_army_ch53gs"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "gm_ge_army_crew_mp2a1_80_win"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "gm_ge_army_crew_mp2a1_80_win"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "gm_ge_army_u1300l_container_win"; // Little birds replaced with unimog for container transportation. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "gm_ge_army_kat1_454_cargo_win"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "land_gm_euro_shed_03"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "land_gm_radiotower_01"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["gm_ge_army_rifleman_g3a3_parka_80_win",20,0,0], // Rifleman ["gm_ge_army_antitank_g3a3_pzf44_parka_80_win",30,0,0], // Rifleman (AT) ["gm_ge_army_grenadier_g3a3_parka_80_win",25,0,0], // Grenadier @@ -53,7 +62,7 @@ infantry_units = [ ["gm_ge_army_crew_mp2a1_80_oli",10,0,0] // Crewman ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["gm_ge_army_bicycle_01_oli",10,0,0], // Service Bicycle ["gm_ge_army_k125",50,0,25], // K125 Bike ["gm_ge_army_iltis_cargo_win",100,0,50], // Truck 0.5t @@ -64,7 +73,7 @@ light_vehicles = [ ["B_Boat_Transport_01_F",100,0,25] // Assault Boat ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["gm_ge_army_m113a1g_apc_win",200,40,100], // M113A3 (MG3) ["gm_ge_army_m113a1g_apc_milan_win",200,60,100], // M113A3 (MILAN) ["gm_ge_army_m113a1g_medic",200,0,100], // M113A3 (Medical) @@ -77,7 +86,7 @@ heavy_vehicles = [ ["gm_ge_army_Leopard1a3a1_win",550,550,250] // Leopard 1A3A1 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["gm_ge_army_bo105m_vbh",200,0,100], // VBH 1 ["gm_ge_army_bo105p1m_vbh",200,0,100], // VBH 1A1 ["gm_ge_army_bo105p1m_vbh_swooper",200,0,100], // VBH 1A1 Swooper @@ -89,11 +98,11 @@ air_vehicles = [ ["gm_ge_airforce_do28d2_medevac",350,0,200] // Do 28 D2 (Medevac) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["gm_ge_army_milan_launcher_tripod",50,100,0] // Static MILAN ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V4_F",0,0,0], ["Land_Cargo_Patrol_V4_F",0,0,0], ["Land_Cargo_Tower_V4_F",0,0,0], @@ -173,17 +182,17 @@ buildings = [ ["land_gm_sandbags_01_door_02",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,200,500,0], - [FOB_truck_typename,300,500,100], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,200,500,0], + [KPLIB_b_fobTruck,300,500,100], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -205,7 +214,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", "gm_ge_army_rifleman_g3a3_parka_80_win", "gm_ge_army_rifleman_g3a3_parka_80_win", @@ -219,7 +228,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", @@ -233,7 +242,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", "gm_ge_army_rifleman_g3a3_parka_80_win", "gm_ge_army_rifleman_g3a3_parka_80_win", @@ -245,7 +254,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", "gm_ge_army_rifleman_g3a3_parka_80_win", "gm_ge_army_rifleman_g3a3_parka_80_win", @@ -257,7 +266,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "gm_ge_army_squadleader_g3a3_p2a1_parka_80_win", "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", "gm_ge_army_antitank_g3a3_pzf44_parka_80_win", @@ -272,7 +281,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "gm_ge_army_rifleman_g3a3_parka_80_win", "gm_ge_army_rifleman_g3a3_parka_80_win", "gm_ge_army_rifleman_g3a3_parka_80_win", @@ -286,11 +295,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "gm_ge_army_Leopard1a1a2_win", // Leopard 1A1A2 "gm_ge_army_Leopard1a3a1_win" // Leopard 1A3A1 ]; diff --git a/Missionframework/presets/blufor/rhs_afrf.sqf b/Missionframework/presets/players/rhs_afrf.sqf similarity index 80% rename from Missionframework/presets/blufor/rhs_afrf.sqf rename to Missionframework/presets/players/rhs_afrf.sqf index 1f030d7e8..484574110 100644 --- a/Missionframework/presets/blufor/rhs_afrf.sqf +++ b/Missionframework/presets/players/rhs_afrf.sqf @@ -1,9 +1,18 @@ /* + File: rhs_afrf.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-14 + Last Update: 2020-06-03 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + RHS Armed Forces of the Russian Federation player preset. + Needed Mods: - - RHS AFRF + - RHS AFRF Optional Mods: - - None + - None */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "rhs_gaz66_r142_msv"; // This is the FOB as a vehicle. -Arsenal_typename = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "rhs_gaz66_ap2_msv"; // This is the mobile respawn (and medical) truck. -huron_typename = "RHS_Mi8mt_vvs"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "rhs_msv_emr_armoredcrew"; // This defines the crew for vehicles. -pilot_classname = "rhs_pilot_combat_heli"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "rhs_ka60_grey"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "rhs_kamaz5350_flatbed_vdv"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_forest_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_forest_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "rhs_prv13"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "rhs_gaz66_r142_msv"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "O_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "rhs_gaz66_ap2_msv"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "RHS_Mi8mt_vvs"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "rhs_msv_emr_armoredcrew"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "rhs_pilot_combat_heli"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "rhs_ka60_grey"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "O_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "rhs_kamaz5350_flatbed_vdv"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_forest_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_forest_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "rhs_prv13"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["rhs_vdv_rifleman_lite",15,0,0], // Rifleman (Light) ["rhs_vdv_rifleman",20,0,0], // Rifleman ["rhs_vdv_LAT",30,0,0], // Rifleman (LAT) @@ -64,7 +73,7 @@ infantry_units = [ ["rhs_pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["O_Quadbike_01_F",50,0,25], // Quad Bike ["rhs_uaz_vdv",50,0,45], // UAZ ["rhs_uaz_open_vdv",50,0,45], // UAZ (Open) @@ -91,7 +100,7 @@ light_vehicles = [ ["O_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["rhs_bmp1k_vdv",200,40,100], // BMP-1K ["rhs_bmp2k_vdv",240,150,100], // BMP-2K ["rhs_bmd2m",260,170,120], // BMD-2M (Berezhok) @@ -102,12 +111,11 @@ heavy_vehicles = [ ["rhs_t80ue1",400,350,250], // T-80UE1 ["rhs_t90a_tv",500,400,300], // T-90A ["rhs_t90sab_tv",600,400,300], // T-90SA (2016) - ["rhs_t14_tv",600,500,400], // T-14 ["rhs_2s1_tv",600,1000,300], // 2S1 ["rhs_2s3_tv",600,1250,300] // 2S3M1 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["O_UAV_01_F",75,0,25], // AR-2 Tayran ["O_UAV_06_F",80,0,30], // AL-6 Jinaah (Cargo) ["rhs_ka60_c",200,0,100], // KA-60 @@ -122,7 +130,7 @@ air_vehicles = [ ["rhs_mig29s_vvsc",1250,1250,450] // Mig-29S ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["RHS_NSV_TriPod_VDV",25,40,0], // NSV Low Tripod ["rhs_KORD_high_VDV",25,40,0], // KORD High Tripod ["RHS_AGS30_TriPod_VDV",25,60,0], // AGS30 Low Tripod @@ -134,7 +142,7 @@ static_vehicles = [ ["rhs_D30_at_vdv",100,200,0] // D-30 AT ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -213,17 +221,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -245,7 +253,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "rhs_vdv_sergeant ", "rhs_vdv_rifleman", "rhs_vdv_LAT", @@ -259,7 +267,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "rhs_vdv_sergeant ", "rhs_vdv_rifleman", "rhs_vdv_LAT", @@ -273,7 +281,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "rhs_vdv_sergeant ", "rhs_vdv_rifleman", "rhs_vdv_LAT", @@ -285,7 +293,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "rhs_vdv_sergeant ", "rhs_vdv_rifleman", "rhs_vdv_LAT", @@ -297,7 +305,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "rhs_vdv_recon_sergeant", "rhs_vdv_rifleman", "rhs_vdv_recon_grenadier", @@ -311,7 +319,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "rhs_vdv_recon_rifleman", "rhs_vdv_recon_rifleman", "rhs_vdv_recon_rifleman_lat", @@ -325,15 +333,14 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "rhs_t80ue1", // T-80UE1 "rhs_t90a_tv", // T-90A "rhs_t90sab_tv", // T-90SA (2016) - "rhs_t14_tv", // T-14 "rhs_2s1_tv", // 2S1 "rhs_2s3_tv", // 2S3M1 "rhs_mi28n_vvsc", // Mi-28N diff --git a/Missionframework/presets/blufor/rhs_usaf_des.sqf b/Missionframework/presets/players/rhs_usaf_des.sqf similarity index 86% rename from Missionframework/presets/blufor/rhs_usaf_des.sqf rename to Missionframework/presets/players/rhs_usaf_des.sqf index e14f5b860..148904446 100644 --- a/Missionframework/presets/blufor/rhs_usaf_des.sqf +++ b/Missionframework/presets/players/rhs_usaf_des.sqf @@ -1,13 +1,22 @@ /* + File: rhs_usaf_des.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-12-09 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + RHS US Armed Forces Desert player preset. + Needed Mods: - - RHS USAF + - RHS USAF Optional Mods: - - F-15C - - F/A-18 - - USAF Main Pack - - USAF Fighters Pack - - USAF Utility Pack + - F-15C + - F/A-18 + - USAF Fighters Pack + - USAF Main Pack + - USAF Utility Pack */ /* @@ -16,26 +25,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "rhsusf_M1078A1P2_B_D_CP_fmtv_usarmy"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "rhsusf_M1085A1P2_B_D_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. -huron_typename = "RHS_CH_47F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "rhsusf_army_ocp_combatcrewman"; // This defines the crew for vehicles. -pilot_classname = "rhsusf_army_ocp_helipilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "RHS_MELB_MH6M"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_d"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V3_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "rhsusf_M1078A1P2_B_D_CP_fmtv_usarmy"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "rhsusf_M1085A1P2_B_D_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "RHS_CH_47F"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "rhsusf_army_ocp_combatcrewman"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "rhsusf_army_ocp_helipilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "RHS_MELB_MH6M"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "rhsusf_M977A4_BKIT_usarmy_d"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -45,7 +54,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["rhsusf_army_ocp_riflemanl",15,0,0], // Rifleman (Light) ["rhsusf_army_ocp_rifleman",20,0,0], // Rifleman ["rhsusf_army_ocp_riflemanat",30,0,0], // Rifleman (AT) @@ -74,7 +83,7 @@ infantry_units = [ ["rhsusf_airforce_jetpilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_Quadbike_01_F",50,0,25], // Quad Bike ["rhsusf_mrzr4_d",75,0,25], // MRZR 4 ["rhsusf_m1025_d",100,0,50], // M1025A2 @@ -111,7 +120,7 @@ light_vehicles = [ ["B_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["rhsusf_m113d_usarmy",200,40,100], // M113A3 (M2) ["rhsusf_m113d_usarmy_MK19",200,60,100], // M113A3 (Mk19) ["rhsusf_m113d_usarmy_medical",200,0,100], // M113A3 (Medical) @@ -124,7 +133,7 @@ heavy_vehicles = [ ["rhsusf_m109d_usarmy",600,1250,300] // M109A6 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["B_UAV_01_F",75,0,25], // AR-2 Darter ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird @@ -168,7 +177,7 @@ air_vehicles = [ ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["RHS_M2StaticMG_MiniTripod_D",25,40,0], // Mk2 HMG .50 ["RHS_M2StaticMG_D",25,40,0], // Mk2 HMG .50 (Raised) ["RHS_MK19_TriPod_D",25,60,0], // Mk19 GMG 20mm @@ -179,7 +188,7 @@ static_vehicles = [ ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V3_F",0,0,0], ["Land_Cargo_Patrol_V3_F",0,0,0], ["Land_Cargo_Tower_V3_F",0,0,0], @@ -258,17 +267,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -307,7 +316,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "rhsusf_army_ocp_teamleader", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_rifleman", @@ -321,7 +330,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "rhsusf_army_ocp_teamleader", "rhsusf_army_ocp_riflemanat", "rhsusf_army_ocp_riflemanat", @@ -335,7 +344,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "rhsusf_army_ocp_teamleader", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_rifleman", @@ -347,7 +356,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "rhsusf_army_ocp_teamleader", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_rifleman", @@ -359,7 +368,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "rhsusf_usmc_recon_marpat_d_teamleader", "rhsusf_usmc_recon_marpat_d_rifleman", "rhsusf_usmc_recon_marpat_d_rifleman", @@ -373,7 +382,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "rhsusf_army_ocp_rifleman_101st", "rhsusf_army_ocp_rifleman_101st", "rhsusf_army_ocp_rifleman_101st", @@ -387,11 +396,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "rhsusf_mkvsoc", // Mk.V SOCOM "rhsusf_m1a1aim_tuski_d", // M1A1SA (Tusk I) "rhsusf_m1a2sep1tuskiid_usarmy", // M1A2SEPv1 (Tusk II) diff --git a/Missionframework/presets/blufor/rhs_usaf_wdl.sqf b/Missionframework/presets/players/rhs_usaf_wdl.sqf similarity index 85% rename from Missionframework/presets/blufor/rhs_usaf_wdl.sqf rename to Missionframework/presets/players/rhs_usaf_wdl.sqf index 8d3d06e04..d275110cd 100644 --- a/Missionframework/presets/blufor/rhs_usaf_wdl.sqf +++ b/Missionframework/presets/players/rhs_usaf_wdl.sqf @@ -1,13 +1,22 @@ /* + File: rhs_usaf_wdl.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-12-09 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + RHS US Armed Forces Woodland player preset. + Needed Mods: - - RHS USAF + - RHS USAF Optional Mods: - - F-15C - - F/A-18 - - USAF Main Pack - - USAF Fighters Pack - - USAF Utility Pack + - F-15C + - F/A-18 + - USAF Fighters Pack + - USAF Main Pack + - USAF Utility Pack */ /* @@ -16,26 +25,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "rhsusf_M1078A1P2_B_WD_CP_fmtv_usarmy"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "rhsusf_M1085A1P2_B_WD_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. -huron_typename = "RHS_CH_47F"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "rhsusf_army_ocp_combatcrewman"; // This defines the crew for vehicles. -pilot_classname = "rhsusf_army_ocp_helipilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "RHS_MELB_MH6M"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "rhsusf_M977A4_BKIT_usarmy_wd"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "rhsusf_M1078A1P2_B_WD_CP_fmtv_usarmy"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "rhsusf_M1085A1P2_B_WD_Medical_fmtv_usarmy"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "RHS_CH_47F"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "rhsusf_army_ocp_combatcrewman"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "rhsusf_army_ocp_helipilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "RHS_MELB_MH6M"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "B_Boat_Transport_01_F"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "rhsusf_M977A4_BKIT_usarmy_wd"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_RepairDepot_01_tan_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "B_Radar_System_01_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -45,7 +54,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["rhsusf_army_ocp_riflemanl",15,0,0], // Rifleman (Light) ["rhsusf_army_ocp_rifleman",20,0,0], // Rifleman ["rhsusf_army_ocp_riflemanat",30,0,0], // Rifleman (AT) @@ -74,7 +83,7 @@ infantry_units = [ ["rhsusf_airforce_jetpilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_Quadbike_01_F",50,0,25], // Quad Bike ["rhsusf_m1025_w",100,0,50], // M1025A2 ["rhsusf_m1025_w_m2",100,40,50], // M1025A2 (M2) @@ -104,7 +113,7 @@ light_vehicles = [ ["B_SDV_01_F",150,0,50] // SDV ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["rhsusf_m113_usarmy",200,40,100], // M113A3 (M2) ["rhsusf_m113_usarmy_MK19",200,60,100], // M113A3 (Mk19) ["rhsusf_m113_usarmy_medical",200,0,100], // M113A3 (Medical) @@ -117,7 +126,7 @@ heavy_vehicles = [ ["rhsusf_m109_usarmy",600,1250,300] // M109A6 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["B_UAV_01_F",75,0,25], // AR-2 Darter ["B_UAV_06_F",80,0,30], // AL-6 Pelican (Cargo) ["RHS_MELB_MH6M",200,0,100], // MH-6M Little Bird @@ -161,7 +170,7 @@ air_vehicles = [ ["B_T_VTOL_01_vehicle_F",750,0,500] // V-44 X Blackfish (Vehicle) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["RHS_M2StaticMG_MiniTripod_WD",25,40,0], // Mk2 HMG .50 ["RHS_M2StaticMG_WD",25,40,0], // Mk2 HMG .50 (Raised) ["RHS_MK19_TriPod_WD",25,60,0], // Mk19 GMG 20mm @@ -172,7 +181,7 @@ static_vehicles = [ ["B_SAM_System_03_F",250,500,0] // MIM-145 Defender ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -251,17 +260,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -297,7 +306,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "rhsusf_army_ocp_teamleader", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_rifleman", @@ -311,7 +320,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "rhsusf_army_ocp_teamleader", "rhsusf_army_ocp_riflemanat", "rhsusf_army_ocp_riflemanat", @@ -325,7 +334,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "rhsusf_army_ocp_teamleader", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_rifleman", @@ -337,7 +346,7 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "rhsusf_army_ocp_teamleader", "rhsusf_army_ocp_rifleman", "rhsusf_army_ocp_rifleman", @@ -349,7 +358,7 @@ blufor_squad_aa = [ ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "rhsusf_usmc_recon_marpat_wd_teamleader", "rhsusf_usmc_recon_marpat_wd_rifleman", "rhsusf_usmc_recon_marpat_wd_rifleman", @@ -363,7 +372,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "rhsusf_army_ocp_rifleman_101st", "rhsusf_army_ocp_rifleman_101st", "rhsusf_army_ocp_rifleman_101st", @@ -377,11 +386,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "rhsusf_mkvsoc", // Mk.V SOCOM "rhsusf_m1a1aim_tuski_wd", // M1A1SA (Tusk I) "rhsusf_m1a2sep1tuskiiwd_usarmy", // M1A2SEPv1 (Tusk II) diff --git a/Missionframework/presets/blufor/sfp_des.sqf b/Missionframework/presets/players/sfp_des.sqf similarity index 77% rename from Missionframework/presets/blufor/sfp_des.sqf rename to Missionframework/presets/players/sfp_des.sqf index 502b25666..b0793bb0f 100644 --- a/Missionframework/presets/blufor/sfp_des.sqf +++ b/Missionframework/presets/players/sfp_des.sqf @@ -1,9 +1,18 @@ /* + File: sfp_des.sqf + Author: Dahlgren - https://github.com/Dahlgren + Date: 2017-07-24 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Swedish Armed Forces Desert player preset. + Needed Mods: - - SFP + - SFP Optional Mods: - - None + - None */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "sfp_tgb1112"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "sfp_patgb203_ambulance"; // This is the mobile respawn (and medical) truck. -huron_typename = "sfp_hkp4"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "sfp_m90d_crew"; // This defines the crew for vehicles. -pilot_classname = "sfp_m90w_pilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "sfp_hkp9"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "sfp_strb90"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "sfp_tgb40"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_CarService_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "Land_Radar_Small_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "sfp_tgb1112"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "sfp_patgb203_ambulance"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "sfp_hkp4"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "sfp_m90d_crew"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "sfp_m90w_pilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "sfp_hkp9"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "sfp_strb90"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "sfp_tgb40"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_CarService_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "Land_Radar_Small_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["sfp_m90d_rifleman_tshirt",15,0,0], // Rifleman (Light) ["sfp_m90d_rifleman_ak5",20,0,0], // Rifleman ["sfp_m90d_at_specialist_pskott86",30,0,0], // Rifleman (AT) @@ -68,7 +77,7 @@ infantry_units = [ ["sfp_m90w_pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_Quadbike_01_F",50,0,25], // Quad Bike ["sfp_tgb16_desert",100,0,50], // Tgb 16 ["sfp_tgb16_rws",100,40,50], // Tgb 16 (RWS) @@ -81,13 +90,13 @@ light_vehicles = [ ["sfp_strb90_rws",200,80,75] // Strb 90 (RWS) ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["sfp_strf90c_desert",200,40,100], // Strf 90 ["sfp_lvkv90c_desert",200,60,100], // Lvkv 90 ["sfp_strv122",400,350,225] // Strb 122 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["sfp_uav01",80,0,30], // UAV 01 Ugglan ["sfp_uav03",75,0,25], // UAV 03 Örnen ["sfp_uav_skeldar",80,0,30], // UAV Skeldar @@ -103,7 +112,7 @@ air_vehicles = [ ["sfp_jas39_rb15",1250,1500,450] // JAS 39 (Rb15) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["sfp_ksp88",25,40,0], // Ksp 88 ["sfp_grsp",25,60,0], // Grsp ["sfp_rbs17",30,60,0], // RBS 17 @@ -116,7 +125,7 @@ static_vehicles = [ ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -195,17 +204,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -228,7 +237,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "sfp_m90d_squadleader", "sfp_m90d_automaticrifleman_ksp90", "sfp_m90d_rifleman_ak5", @@ -240,7 +249,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "sfp_m90d_squadleader", "sfp_m90d_machinegunner_ksp58", "sfp_m90d_at_specialist_grg86", @@ -252,7 +261,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "sfp_m90d_teamleader", "sfp_m90d_at_specialist_grg86", "sfp_m90d_at_loader_grg86", @@ -260,12 +269,12 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ // No man portable AA in SFP ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "sfp_m90d_sog_teamleader", "sfp_m90d_sog_ksp90", "sfp_m90d_sog_explosive_specialist", @@ -275,7 +284,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad. -blufor_squad_para = [ +KPLIB_b_squadPara = [ "sfp_m90d_sog_teamleader", "sfp_m90d_sog_ksp90", "sfp_m90d_sog_explosive_specialist", @@ -285,11 +294,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "sfp_strf90c_desert", // Strf 90 "sfp_lvkv90c_desert", // Lvkv 90 "sfp_strv122", // Strv 122 diff --git a/Missionframework/presets/blufor/sfp_wdl.sqf b/Missionframework/presets/players/sfp_wdl.sqf similarity index 78% rename from Missionframework/presets/blufor/sfp_wdl.sqf rename to Missionframework/presets/players/sfp_wdl.sqf index 11b120b1a..b6a2d3abc 100644 --- a/Missionframework/presets/blufor/sfp_wdl.sqf +++ b/Missionframework/presets/players/sfp_wdl.sqf @@ -1,9 +1,18 @@ /* + File: sfp_des.sqf + Author: Dahlgren - https://github.com/Dahlgren + Date: 2017-07-24 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Swedish Armed Forces Woodland player preset. + Needed Mods: - - SFP + - SFP Optional Mods: - - None + - None */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "sfp_tgb1112"; // This is the FOB as a vehicle. -Arsenal_typename = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "sfp_patgb203_ambulance"; // This is the mobile respawn (and medical) truck. -huron_typename = "sfp_hkp4"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "sfp_m90w_crew"; // This defines the crew for vehicles. -pilot_classname = "sfp_m90w_pilot"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "sfp_hkp9"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "sfp_strb90"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "sfp_tgb40"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "Land_CarService_F"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "Land_Radar_Small_F"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "Land_Cargo_HQ_V1_F"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "sfp_tgb1112"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "B_supplyCrate_F"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "sfp_patgb203_ambulance"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "sfp_hkp4"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "sfp_m90w_crew"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "sfp_m90w_pilot"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "sfp_hkp9"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "sfp_strb90"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "sfp_tgb40"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "Land_CarService_F"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "Land_Radar_Small_F"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "Land_HelipadSquare_F"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "Land_TentHangar_V1_F"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["sfp_m90w_rifleman_tshirt",15,0,0], // Rifleman (Light) ["sfp_m90w_rifleman_ak5",20,0,0], // Rifleman ["sfp_m90w_at_specialist_pskott86",30,0,0], // Rifleman (AT) @@ -68,7 +77,7 @@ infantry_units = [ ["sfp_m90w_pilot",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["B_Quadbike_01_F",50,0,25], // Quad Bike ["sfp_tgb16",100,0,50], // Tgb 16 ["sfp_tgb16_rws",100,40,50], // Tgb 16 (RWS) @@ -94,13 +103,13 @@ light_vehicles = [ ["sfp_rbb_norrkoping",1000,1000,300] // HMS Norrkoping ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["sfp_strf90c",200,40,100], // Strf 90 ["sfp_lvkv90c",200,60,100], // Lvkv 90 ["sfp_strv122",400,350,225] // Strv 122 ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["sfp_uav01",80,0,30], // UAV 01 Ugglan ["sfp_uav03",75,0,25], // UAV 03 Örnen ["sfp_uav_skeldar",80,0,30], // UAV Skeldar @@ -116,7 +125,7 @@ air_vehicles = [ ["sfp_jas39_rb15",1250,1500,450] // JAS 39 (Rb15) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["sfp_ksp88",25,40,0], // Ksp 88 ["sfp_grsp",25,60,0], // Grsp ["sfp_rbs17",30,60,0], // RBS 17 @@ -128,8 +137,8 @@ static_vehicles = [ ["sfp_fh77",100,200,0] // FH 77 ]; - -buildings = [ + +KPLIB_b_objectsDeco = [ ["Land_Cargo_House_V1_F",0,0,0], ["Land_Cargo_Patrol_V1_F",0,0,0], ["Land_Cargo_Tower_V1_F",0,0,0], @@ -140,7 +149,7 @@ buildings = [ ["Flag_White_F",0,0,0], ["Land_Medevac_house_V1_F",0,0,0], ["Land_Medevac_HQ_V1_F",0,0,0], - ["Flag_RedCrystal_F",0,0,0], + ["Flag_RedCrystal_F",0,0,0], ["CamoNet_BLUFOR_F",0,0,0], ["CamoNet_BLUFOR_open_F",0,0,0], ["CamoNet_BLUFOR_big_F",0,0,0], @@ -181,7 +190,7 @@ buildings = [ ["Land_BagFence_Short_F",0,0,0], ["Land_BagFence_Long_F",0,0,0], ["Land_BagFence_Corner_F",0,0,0], - ["Land_BagFence_End_F",0,0,0], + ["Land_BagFence_End_F",0,0,0], ["Land_BagBunker_Small_F",0,0,0], ["Land_BagBunker_Large_F",0,0,0], ["Land_BagBunker_Tower_F",0,0,0], @@ -196,10 +205,10 @@ buildings = [ ["Land_HBarrierTower_F",0,0,0], ["Land_CncBarrierMedium_F",0,0,0], ["Land_CncBarrierMedium4_F",0,0,0], - ["Land_Concrete_SmallWall_4m_F",0,0,0], + ["Land_Concrete_SmallWall_4m_F",0,0,0], ["Land_Concrete_SmallWall_8m_F",0,0,0], ["Land_CncShelter_F",0,0,0], - ["Land_CncWall1_F",0,0,0], + ["Land_CncWall1_F",0,0,0], ["Land_CncWall4_F",0,0,0], ["Land_Sign_WarningMilitaryArea_F",0,0,0], ["Land_Sign_WarningMilAreaSmall_F",0,0,0], @@ -208,17 +217,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -241,7 +250,7 @@ support_vehicles = [ */ // Light infantry squad. -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "sfp_m90w_squadleader", "sfp_m90w_automaticrifleman_ksp90", "sfp_m90w_rifleman_ak5", @@ -253,7 +262,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad. -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "sfp_m90w_squadleader", "sfp_m90w_machinegunner_ksp58", "sfp_m90w_at_specialist_grg86", @@ -265,7 +274,7 @@ blufor_squad_inf = [ ]; // AT specialists squad. -blufor_squad_at = [ +KPLIB_b_squadAT = [ "sfp_m90w_teamleader", "sfp_m90w_at_specialist_grg86", "sfp_m90w_at_loader_grg86", @@ -273,22 +282,22 @@ blufor_squad_at = [ ]; // AA specialists squad. -blufor_squad_aa = [ +KPLIB_b_squadAA = [ // No man portable AA in SFP ]; // Force recon squad. -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "sfp_m90w_sog_teamleader", "sfp_m90w_sog_ksp90", "sfp_m90w_sog_explosive_specialist", "sfp_m90w_sog_teamleader", "sfp_m90w_sog_ksp90", "sfp_m90w_sog_medic" -]; +]; // Paratroopers squad. -blufor_squad_para = [ +KPLIB_b_squadPara = [ "sfp_m90w_sog_teamleader", "sfp_m90w_sog_ksp90", "sfp_m90w_sog_explosive_specialist", @@ -298,11 +307,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "sfp_strf90c", // Strf 90 "sfp_lvkv90c", // Lvkv 90 "sfp_strv122", // Strv 122 diff --git a/Missionframework/presets/blufor/unsung.sqf b/Missionframework/presets/players/unsung.sqf similarity index 83% rename from Missionframework/presets/blufor/unsung.sqf rename to Missionframework/presets/players/unsung.sqf index 00d54fc58..b45d6c003 100644 --- a/Missionframework/presets/blufor/unsung.sqf +++ b/Missionframework/presets/players/unsung.sqf @@ -1,9 +1,18 @@ /* + File: unsung.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-06-04 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Unsung US player preset. + Needed Mods: - - The Unsung Vietnam War Mod + - Unsung Optional Mods: - - None + - None */ /* @@ -12,26 +21,26 @@ The same classnames for different purposes may cause various unpredictable issues with player actions. Or not, just don't try! */ -FOB_typename = "LAND_sb_bunker_main"; // This is the main FOB HQ building. -FOB_box_typename = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. -FOB_truck_typename = "uns_M35A2_fuel"; // This is the FOB as a vehicle. -Arsenal_typename = "uns_resupply_crate_US"; // This is the virtual arsenal as portable supply crates. -Respawn_truck_typename = "uns_M577_amb"; // This is the mobile respawn (and medical) truck. -huron_typename = "uns_h21c"; // This is Spartan 01, a multipurpose mobile respawn as a helicopter. -crewman_classname = "uns_US_25ID_STY3"; // This defines the crew for vehicles. -pilot_classname = "uns_pilot1"; // This defines the pilot for helicopters. -KP_liberation_little_bird_classname = "uns_H13_transport_CAV"; // These are the little birds which spawn on the Freedom or at Chimera base. -KP_liberation_boat_classname = "UNS_Zodiac_W"; // These are the boats which spawn at the stern of the Freedom. -KP_liberation_truck_classname = "uns_M35A2_Open"; // These are the trucks which are used in the logistic convoy system. -KP_liberation_small_storage_building = "ContainmentArea_02_sand_F"; // A small storage area for resources. -KP_liberation_large_storage_building = "ContainmentArea_01_sand_F"; // A large storage area for resources. -KP_liberation_recycle_building = "uns_motorpool1_repair"; // The building defined to unlock FOB recycling functionality. -KP_liberation_air_vehicle_building = "LAND_uns_signaltower"; // The building defined to unlock FOB air vehicle functionality. -KP_liberation_heli_slot_building = "LAND_uns_Heli_pad"; // The helipad used to increase the GLOBAL rotary-wing cap. -KP_liberation_plane_slot_building = "UNS_Hanger_repair"; // The hangar used to increase the GLOBAL fixed-wing cap. -KP_liberation_supply_crate = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. -KP_liberation_ammo_crate = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. -KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This defines the fuel crates. +KPLIB_b_fobBuilding = "LAND_sb_bunker_main"; // This is the main FOB HQ building. +KPLIB_b_fobBox = "B_Slingload_01_Cargo_F"; // This is the FOB as a container. +KPLIB_b_fobTruck = "uns_M35A2_fuel"; // This is the FOB as a vehicle. +KPLIB_b_arsenal = "uns_resupply_crate_US"; // This is the virtual arsenal as portable supply crates. +KPLIB_b_mobileRespawn = "uns_M577_amb"; // This is the mobile respawn (and medical) truck. +KPLIB_b_potato01 = "uns_h21c"; // This is Potato 01, a multipurpose mobile respawn as a helicopter. +KPLIB_b_crewUnit = "uns_US_25ID_STY3"; // This defines the crew for vehicles. +KPLIB_b_heliPilotUnit = "uns_pilot1"; // This defines the pilot for helicopters. +KPLIB_b_addHeli = "uns_H13_transport_CAV"; // These are the additional helicopters which spawn on the Freedom or at Chimera base. +KPLIB_b_addBoat = "UNS_Zodiac_W"; // These are the boats which spawn at the stern of the Freedom. +KPLIB_b_logiTruck = "uns_M35A2_Open"; // These are the trucks which are used in the logistic convoy system. +KPLIB_b_smallStorage = "ContainmentArea_02_sand_F"; // A small storage area for resources. +KPLIB_b_largeStorage = "ContainmentArea_01_sand_F"; // A large storage area for resources. +KPLIB_b_logiStation = "uns_motorpool1_repair"; // The building defined to unlock FOB recycling functionality. +KPLIB_b_airControl = "LAND_uns_signaltower"; // The building defined to unlock FOB air vehicle functionality. +KPLIB_b_slotHeli = "LAND_uns_Heli_pad"; // The helipad used to increase the GLOBAL rotary-wing cap. +KPLIB_b_slotPlane = "UNS_Hanger_repair"; // The hangar used to increase the GLOBAL fixed-wing cap. +KPLIB_b_crateSupply = "CargoNet_01_box_F"; // This defines the supply crates, as in resources. +KPLIB_b_crateAmmo = "B_CargoNet_01_ammo_F"; // This defines the ammunition crates. +KPLIB_b_crateFuel = "CargoNet_01_barrels_F"; // This defines the fuel crates. /* --- Friendly classnames --- @@ -41,7 +50,7 @@ KP_liberation_fuel_crate = "CargoNet_01_barrels_F"; // This The above example is the NATO IFV-6a Cheetah, it costs 300 supplies, 150 ammunition and 150 fuel to build. IMPORTANT: The last element inside each array must have no comma at the end! */ -infantry_units = [ +KPLIB_b_infantry = [ ["uns_US_25ID_STY3",15,0,0], // Sentry ["uns_US_25ID_RF6",20,0,0], // Rifleman ["uns_US_25ID_AT",30,0,0], // Rifleman (AT) @@ -65,7 +74,7 @@ infantry_units = [ ["uns_pil1",10,0,0] // Pilot ]; -light_vehicles = [ +KPLIB_b_vehLight = [ ["uns_m274",50,0,25], // M-274 Mule ["uns_m274_m60",50,25,25], // M-274 Mule (M60) ["uns_willys",75,0,50], // M-151 MUTT @@ -82,7 +91,7 @@ light_vehicles = [ ["uns_PBR_M10",200,80,75] // PBR Mk. II (M10 Flamethrower) ]; -heavy_vehicles = [ +KPLIB_b_vehHeavy = [ ["uns_xm706e2",100,50,100], // XM-706-E2 Commando ["uns_xm706e1",100,60,100], // XM-706-E1 Commando (30 cal) ["uns_M113_30cal",200,75,100], // M-113 ACAV (30 cal) @@ -103,7 +112,7 @@ heavy_vehicles = [ ["uns_m110sp",600,750,300] // M-110 Self-Propelled Gun ]; -air_vehicles = [ +KPLIB_b_vehAir = [ ["uns_H13_transport_CAV",100,0,80], // UH-13B ["uns_H13_amphib_CAV",100,0,80], // OH-13C CSAR ["uns_H13_medevac_CAV",100,0,80], // MH-13E Medevac @@ -140,7 +149,7 @@ air_vehicles = [ ["uns_F4E_CAS",800,600,400] // F-4E Phantom II (CAS) ]; -static_vehicles = [ +KPLIB_b_vehStatic = [ ["uns_US_SearchLight",20,0,0], // Searchlight ["uns_m60_low",25,40,0], // M60 7.62mm (low) ["uns_m60_high",25,40,0], // M60 7.62mm (high) @@ -157,7 +166,7 @@ static_vehicles = [ ["Uns_M114_artillery",100,200,0] // M-114A1 155mm Howitzer ]; -buildings = [ +KPLIB_b_objectsDeco = [ ["uns_FlagCarrierUS",0,0,0], ["uns_FlagCarrier101AB",0,0,0], ["uns_FlagCarrier25ID",0,0,0], @@ -268,17 +277,17 @@ buildings = [ ["Land_ClutterCutter_large_F",0,0,0] ]; -support_vehicles = [ - [Arsenal_typename,100,200,0], - [Respawn_truck_typename,200,0,100], - [FOB_box_typename,300,500,0], - [FOB_truck_typename,300,500,75], - [KP_liberation_small_storage_building,0,0,0], - [KP_liberation_large_storage_building,0,0,0], - [KP_liberation_recycle_building,250,0,0], - [KP_liberation_air_vehicle_building,1000,0,0], - [KP_liberation_heli_slot_building,250,0,0], - [KP_liberation_plane_slot_building,500,0,0], +KPLIB_b_vehSupport = [ + [KPLIB_b_arsenal,100,200,0], + [KPLIB_b_mobileRespawn,200,0,100], + [KPLIB_b_fobBox,300,500,0], + [KPLIB_b_fobTruck,300,500,75], + [KPLIB_b_smallStorage,0,0,0], + [KPLIB_b_largeStorage,0,0,0], + [KPLIB_b_logiStation,250,0,0], + [KPLIB_b_airControl,1000,0,0], + [KPLIB_b_slotHeli,250,0,0], + [KPLIB_b_slotPlane,500,0,0], ["ACE_medicalSupplyCrate_advanced",50,0,0], ["ACE_Box_82mm_Mo_HE",50,40,0], ["ACE_Box_82mm_Mo_Smoke",50,10,0], @@ -301,7 +310,7 @@ support_vehicles = [ */ // Light infantry squad -blufor_squad_inf_light = [ +KPLIB_b_squadLight = [ "uns_US_25ID_SL", "uns_US_25ID_RF6", "uns_US_25ID_RF6", @@ -315,7 +324,7 @@ blufor_squad_inf_light = [ ]; // Heavy infantry squad -blufor_squad_inf = [ +KPLIB_b_squadInf = [ "uns_US_25ID_SL", "uns_US_25ID_AT", "uns_US_25ID_AT", @@ -329,7 +338,7 @@ blufor_squad_inf = [ ]; // AT specialists squad -blufor_squad_at = [ +KPLIB_b_squadAT = [ "uns_US_25ID_SL", "uns_US_25ID_RF6", "uns_US_25ID_RF6", @@ -341,7 +350,7 @@ blufor_squad_at = [ ]; // AA specialists squad -blufor_squad_aa = [ +KPLIB_b_squadAA = [ "uns_US_25ID_SL", "uns_US_25ID_RF6", "uns_US_25ID_RF6", @@ -353,7 +362,7 @@ blufor_squad_aa = [ ]; // Force recon squad -blufor_squad_recon = [ +KPLIB_b_squadRecon = [ "uns_men_US_1AC_SL", "uns_men_US_1AC_TPR1", "uns_men_US_1AC_TPR2", @@ -367,7 +376,7 @@ blufor_squad_recon = [ ]; // Paratroopers squad (The units of this squad will automatically get parachutes on build) -blufor_squad_para = [ +KPLIB_b_squadPara = [ "uns_men_US_5SFG_SP13", "uns_men_US_5SFG_SP13", "uns_men_US_5SFG_SP13", @@ -381,11 +390,11 @@ blufor_squad_para = [ ]; /* - --- Elite vehicles --- + --- Vehicles to unlock --- Classnames below have to be unlocked by capturing military bases. Which base locks a vehicle is randomized on the first start of the campaign. */ -elite_vehicles = [ +KPLIB_b_vehToUnlock = [ "uns_A1J_CAS", // A-1H Skyraider (CAS) "uns_A7_CAS", // A-7D Corsair II (CAS) "uns_F4E_CAS", // F-4E Phantom II (CAS) diff --git a/Missionframework/presets/resistance/apex.sqf b/Missionframework/presets/resistance/apex.sqf index 95eb61c21..d9e99a019 100644 --- a/Missionframework/presets/resistance/apex.sqf +++ b/Missionframework/presets/resistance/apex.sqf @@ -1,14 +1,23 @@ /* + File: apex.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-08 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Tanoa resistance preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ /* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ +KPLIB_r_units = [ "I_C_Soldier_Bandit_1_F", "I_C_Soldier_Bandit_2_F", "I_C_Soldier_Bandit_3_F", @@ -20,7 +29,7 @@ KP_liberation_guerilla_units = [ ]; // Armed vehicles -KP_liberation_guerilla_vehicles = [ +KPLIB_r_vehicles = [ "I_C_Offroad_02_LMG_F", "I_C_Offroad_02_AT_F" ]; @@ -31,7 +40,7 @@ There are 3 tiers for every category. If the strength of the guerillas will incr /* Weapons - You've to add the weapons as array like ["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] You can leave optic and tripod empty with "" */ -KP_liberation_guerilla_weapons_1 = [ +KPLIB_r_weapons_1 = [ ["arifle_AKM_F","30Rnd_762x39_Mag_F",4,"",""], ["arifle_AKS_F","30Rnd_545x39_Mag_F",4,"",""], ["hgun_PDW2000_F","30Rnd_9x21_Mag",4,"",""], @@ -40,7 +49,7 @@ KP_liberation_guerilla_weapons_1 = [ ["SMG_05_F","30Rnd_9x21_Mag_SMG_02",4,"",""] ]; -KP_liberation_guerilla_weapons_2 = [ +KPLIB_r_weapons_2 = [ ["arifle_Katiba_F","30Rnd_65x39_caseless_green",4,"optic_ACO_grn",""], ["arifle_Mk20_plain_F","30Rnd_556x45_Stanag",4,"optic_ACO_grn",""], ["arifle_TRG21_F","30Rnd_556x45_Stanag",4,"optic_ACO_grn",""], @@ -49,7 +58,7 @@ KP_liberation_guerilla_weapons_2 = [ ["srifle_DMR_06_olive_F","20Rnd_762x51_Mag",5,"optic_Hamr","bipod_01_F_blk"] ]; -KP_liberation_guerilla_weapons_3 = [ +KPLIB_r_weapons_3 = [ ["arifle_CTAR_blk_F","30Rnd_580x42_Mag_F",4,"optic_MRCO",""], ["arifle_SPAR_01_blk_F","30Rnd_556x45_Stanag",4,"optic_MRCO",""], ["arifle_SPAR_03_blk_F","20Rnd_762x51_Mag",5,"optic_MRCO",""], @@ -61,7 +70,7 @@ KP_liberation_guerilla_weapons_3 = [ ]; // Uniforms -KP_liberation_guerilla_uniforms_1 = [ +KPLIB_r_uniforms_1 = [ "U_C_Poloshirt_blue", "U_C_Poloshirt_burgundy", "U_C_Poloshirt_salmon", @@ -78,7 +87,7 @@ KP_liberation_guerilla_uniforms_1 = [ "U_Marshal" ]; -KP_liberation_guerilla_uniforms_2 = [ +KPLIB_r_uniforms_2 = [ "U_I_C_Soldier_Bandit_1_F", "U_I_C_Soldier_Bandit_2_F", "U_I_C_Soldier_Bandit_3_F", @@ -94,7 +103,7 @@ KP_liberation_guerilla_uniforms_2 = [ "U_I_G_resistanceLeader_F" ]; -KP_liberation_guerilla_uniforms_3 = [ +KPLIB_r_uniforms_3 = [ "U_BG_Guerilla1_1", "U_BG_Guerilla1_2_F", "U_BG_Guerrilla_6_1", @@ -107,7 +116,7 @@ KP_liberation_guerilla_uniforms_3 = [ ]; // Vests -KP_liberation_guerilla_vests_1 = [ +KPLIB_r_vests_1 = [ "V_LegStrapBag_coyote_F", "V_LegStrapBag_olive_F", "V_LegStrapBag_black_F", @@ -122,7 +131,7 @@ KP_liberation_guerilla_vests_1 = [ "V_BandollierB_ghex_F" ]; -KP_liberation_guerilla_vests_2 = [ +KPLIB_r_vests_2 = [ "V_Chestrig_rgr", "V_Chestrig_khk", "V_Chestrig_oli", @@ -135,7 +144,7 @@ KP_liberation_guerilla_vests_2 = [ "V_HarnessOGL_ghex_F" ]; -KP_liberation_guerilla_vests_3 = [ +KPLIB_r_vests_3 = [ "V_TacVest_brn", "V_TacVest_khk", "V_TacVest_oli", @@ -148,7 +157,7 @@ KP_liberation_guerilla_vests_3 = [ ]; // Headgear -KP_liberation_guerilla_headgear_1 = [ +KPLIB_r_headgear_1 = [ "", "", "", @@ -173,7 +182,7 @@ KP_liberation_guerilla_headgear_1 = [ "H_Cap_blk" ]; -KP_liberation_guerilla_headgear_2 = [ +KPLIB_r_headgear_2 = [ "H_Bandanna_blu", "H_Bandanna_sand", "H_Bandanna_gry", @@ -191,7 +200,7 @@ KP_liberation_guerilla_headgear_2 = [ "H_MilCap_dgtl" ]; -KP_liberation_guerilla_headgear_3 = [ +KPLIB_r_headgear_3 = [ "H_ShemagOpen_khk", "H_ShemagOpen_tan", "H_Shemag_olive", @@ -205,7 +214,7 @@ KP_liberation_guerilla_headgear_3 = [ ]; // Facegear. Applies for tier 2 and 3. -KP_liberation_guerilla_facegear = [ +KPLIB_r_facegear = [ "", "", "", diff --git a/Missionframework/presets/resistance/CUP_NAPA.sqf b/Missionframework/presets/resistance/cup_napa.sqf similarity index 89% rename from Missionframework/presets/resistance/CUP_NAPA.sqf rename to Missionframework/presets/resistance/cup_napa.sqf index cd8c1fe34..3f9cde61b 100644 --- a/Missionframework/presets/resistance/CUP_NAPA.sqf +++ b/Missionframework/presets/resistance/cup_napa.sqf @@ -1,16 +1,25 @@ /* + File: cup_napa.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-21 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP NAPA resistance preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - None + - None */ /* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ +KPLIB_r_units = [ "CUP_I_GUE_Soldier_AR", "CUP_I_GUE_Engineer", "CUP_I_GUE_Commander", @@ -22,7 +31,7 @@ KP_liberation_guerilla_units = [ ]; // Armed vehicles -KP_liberation_guerilla_vehicles = [ +KPLIB_r_vehicles = [ "CUP_I_Datsun_PK_Random", "CUP_I_Datsun_PK_Random", "CUP_I_Datsun_PK_Random", @@ -43,7 +52,7 @@ There are 3 tiers for every category. If the strength of the guerillas will incr /* Weapons - You've to add the weapons as array like ["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] You can leave optic and tripod empty with "" */ -KP_liberation_guerilla_weapons_1 = [ +KPLIB_r_weapons_1 = [ ["CUP_srifle_CZ550","CUP_5x_22_LR_17_HMR_M",10,"",""], ["CUP_srifle_CZ550_rail","CUP_5x_22_LR_17_HMR_M",10,"optic_mrco",""], ["CUP_srifle_LeeEnfield","CUP_10x_303_M",10,"",""], @@ -52,7 +61,7 @@ KP_liberation_guerilla_weapons_1 = [ ["CUP_arifle_AK47_Early","CUP_30Rnd_762x39_AK47_M",4,"",""] ]; -KP_liberation_guerilla_weapons_2 = [ +KPLIB_r_weapons_2 = [ ["CUP_arifle_AK47_Early","CUP_30Rnd_762x39_AK47_M",4,"",""], ["CUP_arifle_AK47_Early","CUP_30Rnd_762x39_AK47_M",4,"",""], ["CUP_arifle_AKM","CUP_30Rnd_762x39_AK47_M",4,"cup_optic_pso_1_ak_open",""], @@ -61,7 +70,7 @@ KP_liberation_guerilla_weapons_2 = [ ["CUP_smg_SA61","CUP_50Rnd_B_765x17_Ball_M",5,"",""] ]; -KP_liberation_guerilla_weapons_3 = [ +KPLIB_r_weapons_3 = [ ["CUP_arifle_AK47_Early","CUP_30Rnd_762x39_AK47_M",4,"",""], ["CUP_arifle_AK74M","CUP_30Rnd_545x39_AK74M_M",4,"cup_optic_kobra",""], ["CUP_arifle_AK74M_GL","CUP_30Rnd_545x39_AK74M_M",4,"cup_optic_kobra",""], @@ -73,7 +82,7 @@ KP_liberation_guerilla_weapons_3 = [ ]; // Uniforms -KP_liberation_guerilla_uniforms_1 = [ +KPLIB_r_uniforms_1 = [ "CUP_U_I_Villager_03", "CUP_U_I_Woodlander03", "CUP_U_I_Woodlander_02", @@ -86,7 +95,7 @@ KP_liberation_guerilla_uniforms_1 = [ ]; -KP_liberation_guerilla_uniforms_2 = [ +KPLIB_r_uniforms_2 = [ "CUP_I_B_PMC_Unit_20", "CUP_I_B_PMC_Unit_19", "CUP_I_B_PMC_Unit_11", @@ -97,7 +106,7 @@ KP_liberation_guerilla_uniforms_2 = [ "CUP_I_B_PMC_Unit_22" ]; -KP_liberation_guerilla_uniforms_3 = [ +KPLIB_r_uniforms_3 = [ "CUP_U_I_GUE_Flecktarn2", "CUP_U_I_GUE_Flecktarn3", "CUP_U_I_GUE_Flecktarn", @@ -110,7 +119,7 @@ KP_liberation_guerilla_uniforms_3 = [ ]; // Vests -KP_liberation_guerilla_vests_1 = [ +KPLIB_r_vests_1 = [ "CUP_V_I_Guerilla_Jacket", "V_LegStrapBag_coyote_F", "V_LegStrapBag_olive_F", @@ -126,7 +135,7 @@ KP_liberation_guerilla_vests_1 = [ "V_BandollierB_ghex_F" ]; -KP_liberation_guerilla_vests_2 = [ +KPLIB_r_vests_2 = [ "V_TacVestIR_blk", "V_Chestrig_rgr", "V_Chestrig_khk", @@ -140,7 +149,7 @@ KP_liberation_guerilla_vests_2 = [ "V_HarnessOGL_ghex_F" ]; -KP_liberation_guerilla_vests_3 = [ +KPLIB_r_vests_3 = [ "V_TacVest_oli", "CUP_V_RUS_Smersh_2", "CUP_V_I_Carrier_Belt", @@ -151,7 +160,7 @@ KP_liberation_guerilla_vests_3 = [ ]; // Headgear -KP_liberation_guerilla_headgear_1 = [ +KPLIB_r_headgear_1 = [ "", "", "", @@ -170,7 +179,7 @@ KP_liberation_guerilla_headgear_1 = [ "CUP_H_C_Beanie_04" ]; -KP_liberation_guerilla_headgear_2 = [ +KPLIB_r_headgear_2 = [ "H_Bandanna_blu", "H_Bandanna_sand", "H_Bandanna_gry", @@ -188,7 +197,7 @@ KP_liberation_guerilla_headgear_2 = [ "H_MilCap_dgtl" ]; -KP_liberation_guerilla_headgear_3 = [ +KPLIB_r_headgear_3 = [ "H_Shemag_olive", "H_Shemag_olive_hs", "H_Shemag_olive", @@ -200,7 +209,7 @@ KP_liberation_guerilla_headgear_3 = [ ]; // Facegear. Applies for tier 2 and 3. -KP_liberation_guerilla_facegear = [ +KPLIB_r_facegear = [ "", "", "", diff --git a/Missionframework/presets/resistance/CUP_TakiLocals.sqf b/Missionframework/presets/resistance/cup_takistan.sqf similarity index 92% rename from Missionframework/presets/resistance/CUP_TakiLocals.sqf rename to Missionframework/presets/resistance/cup_takistan.sqf index a05463d67..04631f93a 100644 --- a/Missionframework/presets/resistance/CUP_TakiLocals.sqf +++ b/Missionframework/presets/resistance/cup_takistan.sqf @@ -1,16 +1,25 @@ /* + File: cup_takistan.sqf + Author: Eogos - https://github.com/Eogos + Date: 2019-07-15 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + CUP Takistan resistance preset. + Needed Mods: - - CUP Weapons - - CUP Vehicles - - CUP Units + - CUP Units + - CUP Vehicles + - CUP Weapons Optional Mods: - - Project Infinite AIO + - Project Infinite AIO */ /* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ +KPLIB_r_units = [ "CUP_I_TK_GUE_Soldier_MG", "CUP_I_TK_GUE_Mechanic", "CUP_I_TK_GUE_Commander", @@ -22,7 +31,7 @@ KP_liberation_guerilla_units = [ ]; // Armed vehicles -KP_liberation_guerilla_vehicles = [ +KPLIB_r_vehicles = [ "CUP_I_Datsun_PK_TK", "CUP_I_Hilux_AGS30_TK", "CUP_I_Hilux_DSHKM_TK", @@ -46,7 +55,7 @@ There are 3 tiers for every category. If the strength of the guerillas will incr /* Weapons - You've to add the weapons as array like ["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] You can leave optic and tripod empty with "" */ -KP_liberation_guerilla_weapons_1 = [ +KPLIB_r_weapons_1 = [ ["bnae_mk1_virtual","10Rnd_303_Magazine",8,"",""], ["bnae_mk1_t_virtual","10Rnd_303_Magazine",8,"bnae_scope_v3_virtual",""], ["bnae_m97_virtual","6Rnd_Slug_Magazine",10,"",""], @@ -57,7 +66,7 @@ KP_liberation_guerilla_weapons_1 = [ ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"",""] ]; -KP_liberation_guerilla_weapons_2 = [ +KPLIB_r_weapons_2 = [ ["bnae_mk1_t_virtual","10Rnd_303_Magazine",8,"bnae_scope_v3_virtual",""], ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"",""], ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"cup_optic_kobra",""], @@ -66,7 +75,7 @@ KP_liberation_guerilla_weapons_2 = [ ["CUP_arifle_RPK74","CUP_75Rnd_TE4_LRT4_Green_Tracer_545x39_RPK_M",3,"",""] ]; -KP_liberation_guerilla_weapons_3 = [ +KPLIB_r_weapons_3 = [ ["CUP_arifle_FNFAL","CUP_20Rnd_762x51_FNFAL_M",5,"",""], ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"",""], ["CUP_arifle_AK47","CUP_30Rnd_762x39_AK47_M",6,"cup_optic_kobra",""], @@ -78,7 +87,7 @@ KP_liberation_guerilla_weapons_3 = [ ]; // Uniforms -KP_liberation_guerilla_uniforms_1 = [ +KPLIB_r_uniforms_1 = [ "CUP_O_TKI_Khet_Jeans_04", "CUP_O_TKI_Khet_Jeans_03", "CUP_O_TKI_Khet_Jeans_02", @@ -96,7 +105,7 @@ KP_liberation_guerilla_uniforms_1 = [ ]; -KP_liberation_guerilla_uniforms_2 = [ +KPLIB_r_uniforms_2 = [ "U_BG_Guerilla2_3", "U_BG_Guerilla2_1", "U_BG_Guerilla2_1", @@ -112,7 +121,7 @@ KP_liberation_guerilla_uniforms_2 = [ "U_I_G_resistanceLeader_F" ]; -KP_liberation_guerilla_uniforms_3 = [ +KPLIB_r_uniforms_3 = [ "U_BG_Guerilla1_1", "U_BG_Guerilla1_2_F", "U_BG_Guerrilla_6_1", @@ -125,7 +134,7 @@ KP_liberation_guerilla_uniforms_3 = [ ]; // Vests -KP_liberation_guerilla_vests_1 = [ +KPLIB_r_vests_1 = [ "V_LegStrapBag_coyote_F", "V_LegStrapBag_olive_F", "V_LegStrapBag_black_F", @@ -156,7 +165,7 @@ KP_liberation_guerilla_vests_1 = [ "CUP_V_OI_TKI_Jacket5_04" ]; -KP_liberation_guerilla_vests_2 = [ +KPLIB_r_vests_2 = [ "V_Chestrig_rgr", "V_Chestrig_khk", "V_Chestrig_oli", @@ -171,7 +180,7 @@ KP_liberation_guerilla_vests_2 = [ "V_HarnessOGL_ghex_F" ]; -KP_liberation_guerilla_vests_3 = [ +KPLIB_r_vests_3 = [ "V_TacVest_brn", "V_TacVest_khk", "V_TacVest_oli", @@ -189,7 +198,7 @@ KP_liberation_guerilla_vests_3 = [ ]; // Headgear -KP_liberation_guerilla_headgear_1 = [ +KPLIB_r_headgear_1 = [ "CUP_H_TKI_Lungee_Open_01", "CUP_H_TK_Lungee", "CUP_H_TKI_Lungee_Open_02", @@ -223,7 +232,7 @@ KP_liberation_guerilla_headgear_1 = [ "CUP_H_TKI_SkullCap_06" ]; -KP_liberation_guerilla_headgear_2 = [ +KPLIB_r_headgear_2 = [ "CUP_H_TKI_Lungee_Open_01", "CUP_H_TK_Lungee", "CUP_H_TKI_Lungee_Open_02", @@ -257,7 +266,7 @@ KP_liberation_guerilla_headgear_2 = [ "CUP_H_TKI_SkullCap_06" ]; -KP_liberation_guerilla_headgear_3 = [ +KPLIB_r_headgear_3 = [ "CUP_H_TKI_Lungee_Open_01", "CUP_H_TK_Lungee", "CUP_H_TKI_Lungee_Open_02", @@ -292,7 +301,7 @@ KP_liberation_guerilla_headgear_3 = [ ]; // Facegear. Applies for tier 2 and 3. -KP_liberation_guerilla_facegear = [ +KPLIB_r_facegear = [ "", "", "", diff --git a/Missionframework/presets/resistance/custom.sqf b/Missionframework/presets/resistance/custom.sqf index 5fa52f078..d7205db4c 100644 --- a/Missionframework/presets/resistance/custom.sqf +++ b/Missionframework/presets/resistance/custom.sqf @@ -1,14 +1,23 @@ /* + File: custom.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-10-07 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Custom (default FIA) resistance preset. + Needed Mods: - - None + - None Optional Mods: - - None + - None */ /* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ +KPLIB_r_units = [ "I_G_Soldier_AR_F", "I_G_engineer_F", "I_G_officer_F", @@ -20,7 +29,7 @@ KP_liberation_guerilla_units = [ ]; // Armed vehicles -KP_liberation_guerilla_vehicles = [ +KPLIB_r_vehicles = [ "I_G_Offroad_01_armed_F", "I_G_Offroad_01_AT_F" ]; @@ -31,7 +40,7 @@ There are 3 tiers for every category. If the strength of the guerillas will incr /* Weapons - You've to add the weapons as array like ["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] You can leave optic and tripod empty with "" */ -KP_liberation_guerilla_weapons_1 = [ +KPLIB_r_weapons_1 = [ ["arifle_AKM_F","30Rnd_762x39_Mag_F",4,"",""], ["arifle_AKS_F","30Rnd_545x39_Mag_F",4,"",""], ["hgun_PDW2000_F","30Rnd_9x21_Mag",4,"",""], @@ -40,7 +49,7 @@ KP_liberation_guerilla_weapons_1 = [ ["SMG_05_F","30Rnd_9x21_Mag_SMG_02",4,"",""] ]; -KP_liberation_guerilla_weapons_2 = [ +KPLIB_r_weapons_2 = [ ["arifle_Katiba_F","30Rnd_65x39_caseless_green",4,"optic_ACO_grn",""], ["arifle_Mk20_plain_F","30Rnd_556x45_Stanag",4,"optic_ACO_grn",""], ["arifle_TRG21_F","30Rnd_556x45_Stanag",4,"optic_ACO_grn",""], @@ -49,7 +58,7 @@ KP_liberation_guerilla_weapons_2 = [ ["srifle_DMR_06_olive_F","20Rnd_762x51_Mag",5,"optic_Hamr","bipod_01_F_blk"] ]; -KP_liberation_guerilla_weapons_3 = [ +KPLIB_r_weapons_3 = [ ["arifle_CTAR_blk_F","30Rnd_580x42_Mag_F",4,"optic_MRCO",""], ["arifle_SPAR_01_blk_F","30Rnd_556x45_Stanag",4,"optic_MRCO",""], ["arifle_SPAR_03_blk_F","20Rnd_762x51_Mag",5,"optic_MRCO",""], @@ -61,7 +70,7 @@ KP_liberation_guerilla_weapons_3 = [ ]; // Uniforms -KP_liberation_guerilla_uniforms_1 = [ +KPLIB_r_uniforms_1 = [ "U_C_Poloshirt_blue", "U_C_Poloshirt_burgundy", "U_C_Poloshirt_salmon", @@ -78,7 +87,7 @@ KP_liberation_guerilla_uniforms_1 = [ "U_Marshal" ]; -KP_liberation_guerilla_uniforms_2 = [ +KPLIB_r_uniforms_2 = [ "U_I_C_Soldier_Bandit_1_F", "U_I_C_Soldier_Bandit_2_F", "U_I_C_Soldier_Bandit_3_F", @@ -94,7 +103,7 @@ KP_liberation_guerilla_uniforms_2 = [ "U_I_G_resistanceLeader_F" ]; -KP_liberation_guerilla_uniforms_3 = [ +KPLIB_r_uniforms_3 = [ "U_BG_Guerilla1_1", "U_BG_Guerilla1_2_F", "U_BG_Guerrilla_6_1", @@ -107,7 +116,7 @@ KP_liberation_guerilla_uniforms_3 = [ ]; // Vests -KP_liberation_guerilla_vests_1 = [ +KPLIB_r_vests_1 = [ "V_LegStrapBag_coyote_F", "V_LegStrapBag_olive_F", "V_LegStrapBag_black_F", @@ -122,7 +131,7 @@ KP_liberation_guerilla_vests_1 = [ "V_BandollierB_ghex_F" ]; -KP_liberation_guerilla_vests_2 = [ +KPLIB_r_vests_2 = [ "V_Chestrig_rgr", "V_Chestrig_khk", "V_Chestrig_oli", @@ -135,7 +144,7 @@ KP_liberation_guerilla_vests_2 = [ "V_HarnessOGL_ghex_F" ]; -KP_liberation_guerilla_vests_3 = [ +KPLIB_r_vests_3 = [ "V_TacVest_brn", "V_TacVest_khk", "V_TacVest_oli", @@ -148,7 +157,7 @@ KP_liberation_guerilla_vests_3 = [ ]; // Headgear -KP_liberation_guerilla_headgear_1 = [ +KPLIB_r_headgear_1 = [ "", "", "", @@ -173,7 +182,7 @@ KP_liberation_guerilla_headgear_1 = [ "H_Cap_blk" ]; -KP_liberation_guerilla_headgear_2 = [ +KPLIB_r_headgear_2 = [ "H_Bandanna_blu", "H_Bandanna_sand", "H_Bandanna_gry", @@ -191,7 +200,7 @@ KP_liberation_guerilla_headgear_2 = [ "H_MilCap_dgtl" ]; -KP_liberation_guerilla_headgear_3 = [ +KPLIB_r_headgear_3 = [ "H_ShemagOpen_khk", "H_ShemagOpen_tan", "H_Shemag_olive", @@ -205,7 +214,7 @@ KP_liberation_guerilla_headgear_3 = [ ]; // Facegear. Applies for tier 2 and 3. -KP_liberation_guerilla_facegear = [ +KPLIB_r_facegear = [ "", "", "", diff --git a/Missionframework/presets/resistance/germany.sqf b/Missionframework/presets/resistance/germany.sqf index 626e4bb5a..214d49ed9 100644 --- a/Missionframework/presets/resistance/germany.sqf +++ b/Missionframework/presets/resistance/germany.sqf @@ -1,14 +1,23 @@ /* + File: custom.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-05-09 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + German resistance preset. + Needed Mods: - - Global Mobilization + - Global Mobilization Optional Mods: - - None + - None */ /* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ +KPLIB_r_units = [ "I_G_Soldier_AR_F", "I_G_engineer_F", "I_G_officer_F", @@ -20,7 +29,7 @@ KP_liberation_guerilla_units = [ ]; // Armed vehicles -KP_liberation_guerilla_vehicles = []; +KPLIB_r_vehicles = []; /* Guerilla Equipment There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ @@ -28,19 +37,19 @@ There are 3 tiers for every category. If the strength of the guerillas will incr /* Weapons - You've to add the weapons as array like ["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] You can leave optic and tripod empty with "" */ -KP_liberation_guerilla_weapons_1 = [ +KPLIB_r_weapons_1 = [ ["gm_mp2a1_blk","gm_32Rnd_9x19mm_B_DM51_mp2_blk",4,"",""], ["gm_mp2a1_blk","gm_32Rnd_9x19mm_B_DM51_mp2_blk",4,"",""], ["gm_mpiaks74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""] ]; -KP_liberation_guerilla_weapons_2 = [ +KPLIB_r_weapons_2 = [ ["gm_mpiaks74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""], ["gm_mpiak74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""], ["gm_mpiak74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""] ]; -KP_liberation_guerilla_weapons_3 = [ +KPLIB_r_weapons_3 = [ ["gm_mpiak74n_prp","gm_30Rnd_545x39mm_B_7N6_ak74_prp",4,"",""], ["gm_g3a3_blk","gm_20Rnd_762x51mm_B_T_DM21_g3_blk",4,"",""], ["gm_g3a3_blk","gm_20Rnd_762x51mm_B_T_DM21_g3_blk",4,"",""], @@ -49,7 +58,7 @@ KP_liberation_guerilla_weapons_3 = [ ]; // Uniforms -KP_liberation_guerilla_uniforms_1 = [ +KPLIB_r_uniforms_1 = [ "gm_gc_civ_uniform_man_01_80_blu", "gm_gc_civ_uniform_man_02_80_brn", "gm_ge_civ_uniform_blouse_80_gry", @@ -57,7 +66,7 @@ KP_liberation_guerilla_uniforms_1 = [ "U_C_Mechanic_01_F" ]; -KP_liberation_guerilla_uniforms_2 = [ +KPLIB_r_uniforms_2 = [ "gm_gc_civ_uniform_man_01_80_blu", "gm_gc_civ_uniform_man_02_80_brn", "gm_ge_civ_uniform_blouse_80_gry", @@ -67,7 +76,7 @@ KP_liberation_guerilla_uniforms_2 = [ "U_C_WorkerCoveralls" ]; -KP_liberation_guerilla_uniforms_3 = [ +KPLIB_r_uniforms_3 = [ "gm_gc_civ_uniform_man_01_80_blu", "gm_gc_civ_uniform_man_02_80_brn", "gm_ge_civ_uniform_blouse_80_gry", @@ -84,7 +93,7 @@ KP_liberation_guerilla_uniforms_3 = [ ]; // Vests -KP_liberation_guerilla_vests_1 = [ +KPLIB_r_vests_1 = [ "V_LegStrapBag_coyote_F", "V_LegStrapBag_olive_F", "V_LegStrapBag_black_F", @@ -94,7 +103,7 @@ KP_liberation_guerilla_vests_1 = [ "V_BandollierB_blk" ]; -KP_liberation_guerilla_vests_2 = [ +KPLIB_r_vests_2 = [ "V_LegStrapBag_coyote_F", "V_LegStrapBag_olive_F", "V_LegStrapBag_black_F", @@ -104,7 +113,7 @@ KP_liberation_guerilla_vests_2 = [ "gm_ge_bgs_vest_80_rifleman" ]; -KP_liberation_guerilla_vests_3 = [ +KPLIB_r_vests_3 = [ "V_LegStrapBag_coyote_F", "V_LegStrapBag_olive_F", "V_LegStrapBag_black_F", @@ -113,7 +122,7 @@ KP_liberation_guerilla_vests_3 = [ ]; // Headgear -KP_liberation_guerilla_headgear_1 = [ +KPLIB_r_headgear_1 = [ "", "", "", @@ -126,7 +135,7 @@ KP_liberation_guerilla_headgear_1 = [ "H_Hat_Safari_sand_F" ]; -KP_liberation_guerilla_headgear_2 = [ +KPLIB_r_headgear_2 = [ "", "", "", @@ -145,7 +154,7 @@ KP_liberation_guerilla_headgear_2 = [ "H_Bandanna_khk" ]; -KP_liberation_guerilla_headgear_3 = [ +KPLIB_r_headgear_3 = [ "", "", "", @@ -168,7 +177,7 @@ KP_liberation_guerilla_headgear_3 = [ ]; // Facegear. Applies for tier 2 and 3. -KP_liberation_guerilla_facegear = [ +KPLIB_r_facegear = [ "", "", "", diff --git a/Missionframework/presets/resistance/middle_eastern.sqf b/Missionframework/presets/resistance/middle_eastern.sqf index 07a8694e9..772766b21 100644 --- a/Missionframework/presets/resistance/middle_eastern.sqf +++ b/Missionframework/presets/resistance/middle_eastern.sqf @@ -1,16 +1,25 @@ /* + File: middle_eastern.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2017-12-09 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Middle Eastern resistance preset. + Needed Mods: - - RHS USAF - - RHS AFRF - - Project OPFOR + - Project OPFOR + - RHS AFRF + - RHS USAF Optional Mods: - - None + - None */ /* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ +KPLIB_r_units = [ "LOP_AM_Infantry_SL", "LOP_AM_Infantry_Rifleman", "LOP_AM_Infantry_Rifleman_2", @@ -22,7 +31,7 @@ KP_liberation_guerilla_units = [ ]; // Armed vehicles -KP_liberation_guerilla_vehicles = [ +KPLIB_r_vehicles = [ "LOP_AM_UAZ_DshKM" ]; @@ -32,13 +41,13 @@ There are 3 tiers for every category. If the strength of the guerillas will incr /* Weapons - You've to add the weapons as array like ["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] You can leave optic and tripod empty with "" */ -KP_liberation_guerilla_weapons_1 = [ +KPLIB_r_weapons_1 = [ ["rhs_weap_ak74","rhs_30rnd_545x39_AK",4,"",""], ["rhs_weap_aks74u","rhs_30rnd_545x39_AK",4,"",""], ["LOP_Weap_LeeEnfield","LOP_10rnd_77mm_mag",3,"",""] ]; -KP_liberation_guerilla_weapons_2 = [ +KPLIB_r_weapons_2 = [ ["rhs_weap_ak74","rhs_30rnd_545x39_AK",4,"",""], ["rhs_weap_akm","rhs_30rnd_762x39mm",4,"",""], ["rhs_weap_akms","rhs_30rnd_762x39mm",4,"",""], @@ -47,7 +56,7 @@ KP_liberation_guerilla_weapons_2 = [ ["LOP_Weap_LeeEnfield_railed","LOP_10rnd_77mm_mag",3,"optic_ACO_grn",""] ]; -KP_liberation_guerilla_weapons_3 = [ +KPLIB_r_weapons_3 = [ ["rhs_weap_ak103","rhs_30rnd_762x39mm",4,"",""], ["rhs_weap_ak104","rhs_30rnd_762x39mm",4,"",""], ["rhs_weap_ak105","rhs_30rnd_545x39_AK",4,"rhs_acc_ekp1",""], @@ -57,7 +66,7 @@ KP_liberation_guerilla_weapons_3 = [ ]; // Uniforms -KP_liberation_guerilla_uniforms_1 = [ +KPLIB_r_uniforms_1 = [ "LOP_U_TAK_Civ_Fatigue_01", "LOP_U_TAK_Civ_Fatigue_02", "LOP_U_TAK_Civ_Fatigue_04", @@ -75,7 +84,7 @@ KP_liberation_guerilla_uniforms_1 = [ "LOP_U_TAK_Civ_Fatigue_16" ]; -KP_liberation_guerilla_uniforms_2 = [ +KPLIB_r_uniforms_2 = [ "LOP_U_TAK_Civ_Fatigue_01", "LOP_U_TAK_Civ_Fatigue_02", "LOP_U_TAK_Civ_Fatigue_04", @@ -93,7 +102,7 @@ KP_liberation_guerilla_uniforms_2 = [ "LOP_U_TAK_Civ_Fatigue_16" ]; -KP_liberation_guerilla_uniforms_3 = [ +KPLIB_r_uniforms_3 = [ "LOP_U_TAK_Civ_Fatigue_01", "LOP_U_TAK_Civ_Fatigue_02", "LOP_U_TAK_Civ_Fatigue_04", @@ -112,11 +121,11 @@ KP_liberation_guerilla_uniforms_3 = [ ]; // Vests -KP_liberation_guerilla_vests_1 = [ +KPLIB_r_vests_1 = [ "" ]; -KP_liberation_guerilla_vests_2 = [ +KPLIB_r_vests_2 = [ "", "V_LegStrapBag_black_F", "V_LegStrapBag_coyote_F", @@ -124,7 +133,7 @@ KP_liberation_guerilla_vests_2 = [ "LOP_6sh46" ]; -KP_liberation_guerilla_vests_3 = [ +KPLIB_r_vests_3 = [ "", "V_LegStrapBag_black_F", "V_LegStrapBag_coyote_F", @@ -136,7 +145,7 @@ KP_liberation_guerilla_vests_3 = [ ]; // Headgear -KP_liberation_guerilla_headgear_1 = [ +KPLIB_r_headgear_1 = [ "", "", "H_HeadBandage_clean_F", @@ -151,7 +160,7 @@ KP_liberation_guerilla_headgear_1 = [ "H_Bandanna_camo" ]; -KP_liberation_guerilla_headgear_2 = [ +KPLIB_r_headgear_2 = [ "", "H_HeadBandage_clean_F", "H_HeadBandage_stained_F", @@ -166,7 +175,7 @@ KP_liberation_guerilla_headgear_2 = [ "LOP_H_Turban_mask" ]; -KP_liberation_guerilla_headgear_3 = [ +KPLIB_r_headgear_3 = [ "LOP_H_Turban", "LOP_H_Turban_mask", "H_Shemag_olive", @@ -182,6 +191,6 @@ KP_liberation_guerilla_headgear_3 = [ ]; // Facegear. Applies for tier 2 and 3. -KP_liberation_guerilla_facegear = [ +KPLIB_r_facegear = [ "" ]; diff --git a/Missionframework/presets/resistance/RACS.sqf b/Missionframework/presets/resistance/racs.sqf similarity index 88% rename from Missionframework/presets/resistance/RACS.sqf rename to Missionframework/presets/resistance/racs.sqf index ce1bf9e1d..f046f8942 100644 --- a/Missionframework/presets/resistance/RACS.sqf +++ b/Missionframework/presets/resistance/racs.sqf @@ -1,14 +1,23 @@ /* + File: racs.sqf + Author: PSYKO-nz - https://github.com/PSYKO-nz + Date: 2018-02-19 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + RACS resistance preset. + Needed Mods: - - Project OPFOR + - Project OPFOR Optional Mods: - - None + - None */ /* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ +KPLIB_r_units = [ "LOP_RACS_Infantry_MG", "LOP_RACS_Infantry_Engineer", "LOP_RACS_Infantry_TL", @@ -20,7 +29,7 @@ KP_liberation_guerilla_units = [ ]; // Armed vehicles -KP_liberation_guerilla_vehicles = [ +KPLIB_r_vehicles = [ "LOP_RACS_Landrover_M2", "LOP_RACS_Offroad_M2" ]; @@ -31,7 +40,7 @@ There are 3 tiers for every category. If the strength of the guerillas will incr /* Weapons - You've to add the weapons as array like ["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] You can leave optic and tripod empty with "" */ -KP_liberation_guerilla_weapons_1 = [ +KPLIB_r_weapons_1 = [ ["rhs_weap_Izh","rhsgref_1Rnd_00Buck",20,"",""], ["rhs_weap_m38","rhsgref_5rnd_762x54_m38",6,"",""], ["rhs_weap_m38_rail","rhsgref_5rnd_762x54_m38",6,"",""], @@ -40,7 +49,7 @@ KP_liberation_guerilla_weapons_1 = [ ["rhs_weap_makarov_pm","rhs_mag_9x18_8_57N181S",5,"",""] ]; -KP_liberation_guerilla_weapons_2 = [ +KPLIB_r_weapons_2 = [ ["rhs_weap_ak74","rhs_30rnd_545x39_AK",3,"",""], ["rhs_weap_akm","rhs_30rnd_762x39mm",3,"",""], ["rhs_weap_akms","rhs_30rnd_762x39mm",3,"",""], @@ -49,7 +58,7 @@ KP_liberation_guerilla_weapons_2 = [ ["rhs_weap_svds","rhs_10rnd_762x54mmR_7N1",3,"rhs_acc_pso1m2",""] ]; -KP_liberation_guerilla_weapons_3 = [ +KPLIB_r_weapons_3 = [ ["rhs_weap_ak103","rhs_30rnd_762x39mm",4,"rhs_acc_pkas",""], ["rhs_weap_ak104","rhs_30rnd_762x39mm",4,"rhs_acc_ekp8_02",""], ["rhs_weap_ak105","rhs_30rnd_545x39_AK",4,"rhs_acc_pkas",""], @@ -61,23 +70,23 @@ KP_liberation_guerilla_weapons_3 = [ ]; // Uniforms -KP_liberation_guerilla_uniforms_1 = [ +KPLIB_r_uniforms_1 = [ "LOP_U_RACS_Fatigue_01", "LOP_U_RACS_Fatigue_01_slv" ]; -KP_liberation_guerilla_uniforms_2 = [ +KPLIB_r_uniforms_2 = [ "LOP_U_RACS_Fatigue_01", "LOP_U_RACS_Fatigue_01_slv" ]; -KP_liberation_guerilla_uniforms_3 = [ +KPLIB_r_uniforms_3 = [ "LOP_U_RACS_Fatigue_01", "LOP_U_RACS_Fatigue_01_slv" ]; // Vests -KP_liberation_guerilla_vests_1 = [ +KPLIB_r_vests_1 = [ "V_LegStrapBag_coyote_F", "V_LegStrapBag_olive_F", "V_LegStrapBag_black_F", @@ -96,7 +105,7 @@ KP_liberation_guerilla_vests_1 = [ "rhs_6sh46" ]; -KP_liberation_guerilla_vests_2 = [ +KPLIB_r_vests_2 = [ "V_Chestrig_rgr", "V_Chestrig_khk", "V_Chestrig_oli", @@ -113,7 +122,7 @@ KP_liberation_guerilla_vests_2 = [ "V_TacChestrig_oli_F" ]; -KP_liberation_guerilla_vests_3 = [ +KPLIB_r_vests_3 = [ "V_TacVest_brn", "V_TacVest_khk", "V_TacVest_oli", @@ -130,7 +139,7 @@ KP_liberation_guerilla_vests_3 = [ ]; // Headgear -KP_liberation_guerilla_headgear_1 = [ +KPLIB_r_headgear_1 = [ "", "", "", @@ -141,7 +150,7 @@ KP_liberation_guerilla_headgear_1 = [ ]; -KP_liberation_guerilla_headgear_2 = [ +KPLIB_r_headgear_2 = [ "H_Bandanna_blu", "H_Bandanna_sand", "H_Bandanna_gry", @@ -161,7 +170,7 @@ KP_liberation_guerilla_headgear_2 = [ "LOP_H_6B27M_ess_RACS" ]; -KP_liberation_guerilla_headgear_3 = [ +KPLIB_r_headgear_3 = [ "H_ShemagOpen_khk", "H_ShemagOpen_tan", "H_Shemag_olive", @@ -184,7 +193,7 @@ KP_liberation_guerilla_headgear_3 = [ ]; // Facegear. Applies for tier 2 and 3. -KP_liberation_guerilla_facegear = [ +KPLIB_r_facegear = [ "", "", "", diff --git a/Missionframework/presets/resistance/rhs_gref.sqf b/Missionframework/presets/resistance/rhs_gref.sqf index c46d80e64..31f3429ac 100644 --- a/Missionframework/presets/resistance/rhs_gref.sqf +++ b/Missionframework/presets/resistance/rhs_gref.sqf @@ -1,15 +1,24 @@ /* + File: rhs_gref.sqf + Author: FatRefrigerator - https://github.com/FatRefrigerator + Date: 2017-10-11 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + RHS Green Forces resistance preset. + Needed Mods: - - RHS: AFRF - - RHS: GREF + - RHS AFRF + - RHS GREF Optional Mods: - - None + - None */ /* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ +KPLIB_r_units = [ "I_G_Soldier_AR_F", "I_G_engineer_F", "I_G_officer_F", @@ -21,7 +30,7 @@ KP_liberation_guerilla_units = [ ]; // Armed vehicles -KP_liberation_guerilla_vehicles = [ +KPLIB_r_vehicles = [ "rhsgref_ins_g_uaz_dshkm_chdkz" ]; @@ -31,7 +40,7 @@ There are 3 tiers for every category. If the strength of the guerillas will incr /* Weapons - You've to add the weapons as array like ["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] You can leave optic and tripod empty with "" */ -KP_liberation_guerilla_weapons_1 = [ +KPLIB_r_weapons_1 = [ ["rhs_weap_Izh","rhsgref_1Rnd_00Buck",20,"",""], ["rhs_weap_m38","rhsgref_5rnd_762x54_m38",6,"",""], ["rhs_weap_m38_rail","rhsgref_5rnd_762x54_m38",6,"",""], @@ -40,7 +49,7 @@ KP_liberation_guerilla_weapons_1 = [ ["rhs_weap_makarov_pm","rhs_mag_9x18_8_57N181S",5,"",""] ]; -KP_liberation_guerilla_weapons_2 = [ +KPLIB_r_weapons_2 = [ ["rhs_weap_ak74","rhs_30rnd_545x39_AK",3,"",""], ["rhs_weap_akm","rhs_30rnd_762x39mm",3,"",""], ["rhs_weap_akms","rhs_30rnd_762x39mm",3,"",""], @@ -49,7 +58,7 @@ KP_liberation_guerilla_weapons_2 = [ ["rhs_weap_svds","rhs_10rnd_762x54mmR_7N1",3,"rhs_acc_pso1m2",""] ]; -KP_liberation_guerilla_weapons_3 = [ +KPLIB_r_weapons_3 = [ ["rhs_weap_ak103","rhs_30rnd_762x39mm",4,"rhs_acc_pkas",""], ["rhs_weap_ak104","rhs_30rnd_762x39mm",4,"rhs_acc_ekp8_02",""], ["rhs_weap_ak105","rhs_30rnd_545x39_AK",4,"rhs_acc_pkas",""], @@ -61,7 +70,7 @@ KP_liberation_guerilla_weapons_3 = [ ]; // Uniforms -KP_liberation_guerilla_uniforms_1 = [ +KPLIB_r_uniforms_1 = [ "U_I_C_Soldier_Bandit_1_F", "U_I_C_Soldier_Bandit_2_F", "U_I_C_Soldier_Bandit_3_F", @@ -74,7 +83,7 @@ KP_liberation_guerilla_uniforms_1 = [ "U_BG_Guerilla2_3" ]; -KP_liberation_guerilla_uniforms_2 = [ +KPLIB_r_uniforms_2 = [ "U_BG_Guerrilla_6_1", "U_BG_Guerilla1_1", "U_I_C_Soldier_Para_1_F", @@ -88,7 +97,7 @@ KP_liberation_guerilla_uniforms_2 = [ "U_I_G_resistanceLeader_F" ]; -KP_liberation_guerilla_uniforms_3 = [ +KPLIB_r_uniforms_3 = [ "rhsgref_uniform_reed", "rhsgref_uniform_woodland_olive", "rhsgref_uniform_flecktarn", @@ -97,7 +106,7 @@ KP_liberation_guerilla_uniforms_3 = [ ]; // Vests -KP_liberation_guerilla_vests_1 = [ +KPLIB_r_vests_1 = [ "V_LegStrapBag_coyote_F", "V_LegStrapBag_olive_F", "V_LegStrapBag_black_F", @@ -116,7 +125,7 @@ KP_liberation_guerilla_vests_1 = [ "rhs_6sh46" ]; -KP_liberation_guerilla_vests_2 = [ +KPLIB_r_vests_2 = [ "V_Chestrig_rgr", "V_Chestrig_khk", "V_Chestrig_oli", @@ -133,7 +142,7 @@ KP_liberation_guerilla_vests_2 = [ "V_TacChestrig_oli_F" ]; -KP_liberation_guerilla_vests_3 = [ +KPLIB_r_vests_3 = [ "V_TacVest_brn", "V_TacVest_khk", "V_TacVest_oli", @@ -150,7 +159,7 @@ KP_liberation_guerilla_vests_3 = [ ]; // Headgear -KP_liberation_guerilla_headgear_1 = [ +KPLIB_r_headgear_1 = [ "", "", "", @@ -171,7 +180,7 @@ KP_liberation_guerilla_headgear_1 = [ "H_Cap_blk" ]; -KP_liberation_guerilla_headgear_2 = [ +KPLIB_r_headgear_2 = [ "H_Bandanna_blu", "H_Bandanna_sand", "H_Bandanna_gry", @@ -185,7 +194,7 @@ KP_liberation_guerilla_headgear_2 = [ "rhsgref_fieldcap_ttsko_urban" ]; -KP_liberation_guerilla_headgear_3 = [ +KPLIB_r_headgear_3 = [ "H_ShemagOpen_khk", "H_ShemagOpen_tan", "H_Shemag_olive", @@ -202,7 +211,7 @@ KP_liberation_guerilla_headgear_3 = [ ]; // Facegear. Applies for tier 2 and 3. -KP_liberation_guerilla_facegear = [ +KPLIB_r_facegear = [ "", "", "", diff --git a/Missionframework/presets/resistance/unsung.sqf b/Missionframework/presets/resistance/unsung.sqf index b9bb65075..f8abdcc98 100644 --- a/Missionframework/presets/resistance/unsung.sqf +++ b/Missionframework/presets/resistance/unsung.sqf @@ -1,14 +1,23 @@ /* + File: unsung.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2019-07-25 + Last Update: 2020-05-25 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Unsung resistance preset. + Needed Mods: - - The Unsung Vietnam War Mod + - Unsung Optional Mods: - - None + - None */ /* Classnames of the guerilla faction which is friendly or hostile, depending on the civil reputation Standard loadout of the units will be replaced with a scripted one, which depends on the guerilla strength, after spawn */ -KP_liberation_guerilla_units = [ +KPLIB_r_units = [ "uns_men_ARVNci_HMG", "uns_men_ARVNci_S2", "uns_men_ARVNci_SL", @@ -20,7 +29,7 @@ KP_liberation_guerilla_units = [ ]; // Armed vehicles -KP_liberation_guerilla_vehicles = []; +KPLIB_r_vehicles = []; /* Guerilla Equipment There are 3 tiers for every category. If the strength of the guerillas will increase, they'll have higher tier equipment. */ @@ -28,7 +37,7 @@ There are 3 tiers for every category. If the strength of the guerillas will incr /* Weapons - You've to add the weapons as array like ["Weaponclassname","Magazineclassname","magazine amount","optic","tripod"] You can leave optic and tripod empty with "" */ -KP_liberation_guerilla_weapons_1 = [ +KPLIB_r_weapons_1 = [ ["uns_ak47","uns_ak47mag",4,"",""], ["uns_PPS52","uns_k50mag",4,"",""], ["uns_owen","uns_owenmag",4,"",""], @@ -37,7 +46,7 @@ KP_liberation_guerilla_weapons_1 = [ ["uns_m1carbine","uns_m1carbinemag",4,"",""] ]; -KP_liberation_guerilla_weapons_2 = [ +KPLIB_r_weapons_2 = [ ["uns_m2carbine","uns_m2carbinemag",4,"",""], ["uns_akm","uns_ak47mag",4,"",""], ["uns_DP28_base","uns_47Rnd_DP28",4,"",""], @@ -46,7 +55,7 @@ KP_liberation_guerilla_weapons_2 = [ ["uns_mas36","uns_mas36mag",4,"",""] ]; -KP_liberation_guerilla_weapons_3 = [ +KPLIB_r_weapons_3 = [ ["uns_akm_drum","uns_75Rnd_akdr",4,"",""], ["uns_sa58p","uns_sa58mag",4,"",""], ["uns_PK","uns_100Rnd_762x54_PK",1,"",""], @@ -59,7 +68,7 @@ KP_liberation_guerilla_weapons_3 = [ ]; // Uniforms -KP_liberation_guerilla_uniforms_1 = [ +KPLIB_r_uniforms_1 = [ "U_C_Man_casual_4_F", "U_C_Man_casual_5_F", "U_C_Man_casual_6_F", @@ -72,7 +81,7 @@ KP_liberation_guerilla_uniforms_1 = [ "UNS_VC_U" ]; -KP_liberation_guerilla_uniforms_2 = [ +KPLIB_r_uniforms_2 = [ "U_BG_Guerilla2_1", "U_BG_Guerilla2_3", "U_BG_Guerilla3_1", @@ -85,7 +94,7 @@ KP_liberation_guerilla_uniforms_2 = [ "U_I_C_Soldier_Para_5_F" ]; -KP_liberation_guerilla_uniforms_3 = [ +KPLIB_r_uniforms_3 = [ "U_BG_Guerilla1_1", "U_BG_Guerilla1_2_F", "U_BG_leader", @@ -99,7 +108,7 @@ KP_liberation_guerilla_uniforms_3 = [ ]; // Vests -KP_liberation_guerilla_vests_1 = [ +KPLIB_r_vests_1 = [ "UNS_VC_B1", "UNS_VC_S2", "V_BandollierB_blk", @@ -116,7 +125,7 @@ KP_liberation_guerilla_vests_1 = [ "V_Pocketed_olive_F" ]; -KP_liberation_guerilla_vests_2 = [ +KPLIB_r_vests_2 = [ "UNS_ANZAC_VEST_C", "UNS_ANZAC_VEST", "UNS_M1956_M14", @@ -136,7 +145,7 @@ KP_liberation_guerilla_vests_2 = [ "V_HarnessOGL_gry" ]; -KP_liberation_guerilla_vests_3 = [ +KPLIB_r_vests_3 = [ "UNS_M1956_M1", "UNS_M1956_M2", "UNS_M1956_M3", @@ -154,7 +163,7 @@ KP_liberation_guerilla_vests_3 = [ ]; // Headgear -KP_liberation_guerilla_headgear_1 = [ +KPLIB_r_headgear_1 = [ "", "", "", @@ -164,7 +173,7 @@ KP_liberation_guerilla_headgear_1 = [ "UNS_Conehat_VC" ]; -KP_liberation_guerilla_headgear_2 = [ +KPLIB_r_headgear_2 = [ "H_Bandanna_khk", "UNS_Boonie_VC", "UNS_Headband_BK", @@ -179,7 +188,7 @@ KP_liberation_guerilla_headgear_2 = [ "uns_vc_headband_blue" ]; -KP_liberation_guerilla_headgear_3 = [ +KPLIB_r_headgear_3 = [ "UNS_Boonie_6", "UNS_Boonie_ERDL", "UNS_Boonie_ERDL3", @@ -197,7 +206,7 @@ KP_liberation_guerilla_headgear_3 = [ ]; // Facegear. Applies for tier 2 and 3. -KP_liberation_guerilla_facegear = [ +KPLIB_r_facegear = [ "", "", "", diff --git a/Missionframework/res/skull.paa b/Missionframework/res/skull.paa deleted file mode 100644 index 3a170b41a..000000000 Binary files a/Missionframework/res/skull.paa and /dev/null differ diff --git a/Missionframework/scripts/client/CfgFunctions.hpp b/Missionframework/scripts/client/CfgFunctions.hpp index 9cd3bec72..5caa394ef 100644 --- a/Missionframework/scripts/client/CfgFunctions.hpp +++ b/Missionframework/scripts/client/CfgFunctions.hpp @@ -1,3 +1,8 @@ +class client_misc { + file = "scripts\client\misc"; + + class initArsenal {}; +}; class client_tutorial { file = "scripts\client\tutorial"; diff --git a/Missionframework/scripts/client/actions/do_recycle.sqf b/Missionframework/scripts/client/actions/do_recycle.sqf index 98bb09943..9c28fb739 100644 --- a/Missionframework/scripts/client/actions/do_recycle.sqf +++ b/Missionframework/scripts/client/actions/do_recycle.sqf @@ -1,7 +1,7 @@ // TODO Split this in an added action to the vehicles and add the dorecycle == 1 part in a button action params ["_vehToRecycle"]; -if (_vehToRecycle getVariable ["KP_liberation_preplaced", false]) exitWith {hint localize "STR_PREPLACED_ERROR";}; +if (_vehToRecycle getVariable ["KPLIB_preplaced", false]) exitWith {hint localize "STR_PREPLACED_ERROR";}; dorecycle = 0; @@ -12,10 +12,10 @@ private _ammoMulti = 0.5; private _fuelMulti = 0.5; if !( - ((toLower _type) in KPLIB_b_buildings_classes) || + ((toLower _type) in KPLIB_b_deco_classes) || ((toLower _type) in KPLIB_storageBuildings) || ((toLower _type) in KPLIB_upgradeBuildings) || - (_type in KP_liberation_ace_crates) || + (_type in KPLIB_ace_crates) || (_type == "B_Slingload_01_Repair_F") || (_type == "B_Slingload_01_Fuel_F") || (_type == "B_Slingload_01_Ammo_F") @@ -61,10 +61,10 @@ if ((toLower _type) in KPLIB_o_allVeh_classes) then { _price_f = round (150 * _fuelMulti); }; } else { - private _objectinfo = ((light_vehicles + heavy_vehicles + air_vehicles + static_vehicles + support_vehicles + buildings) select {_type == (_x select 0)}) select 0; - _price_s = round ((_objectinfo select 1) * GRLIB_recycling_percentage * _suppMulti); - _price_a = round ((_objectinfo select 2) * GRLIB_recycling_percentage * _ammoMulti); - _price_f = round ((_objectinfo select 3) * GRLIB_recycling_percentage * _fuelMulti); + private _objectinfo = ((KPLIB_b_vehLight + KPLIB_b_vehHeavy + KPLIB_b_vehAir + KPLIB_b_vehStatic + KPLIB_b_vehSupport + KPLIB_b_objectsDeco) select {_type == (_x select 0)}) select 0; + _price_s = round ((_objectinfo select 1) * KPLIB_recycling_percentage * _suppMulti); + _price_a = round ((_objectinfo select 2) * KPLIB_recycling_percentage * _ammoMulti); + _price_f = round ((_objectinfo select 3) * KPLIB_recycling_percentage * _fuelMulti); }; createDialog "liberation_recycle"; @@ -80,18 +80,18 @@ waitUntil {sleep 0.1; !dialog || !alive player || dorecycle != 0}; if (dialog) then {closeDialog 0}; if (dorecycle == 1 && !(isnull _vehToRecycle) && alive _vehToRecycle) then { - if (!(KP_liberation_recycle_building_near) && ((_price_s + _price_a + _price_f) > 0)) exitWith {hint localize "STR_NORECBUILDING_ERROR";}; + if (!(KPLIB_b_logiStation_near) && ((_price_s + _price_a + _price_f) > 0)) exitWith {hint localize "STR_NORECBUILDING_ERROR";}; - private _storage_areas = (([] call KPLIB_fnc_getNearestFob) nearobjects (GRLIB_fob_range * 1.2)) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; + private _storage_areas = (([] call KPLIB_fnc_getNearestFob) nearobjects (KPLIB_range_fob * 1.2)) select {(_x getVariable ["KPLIB_storage_type",-1]) == 0}; private _crateSum = (ceil (_price_s / 100)) + (ceil (_price_a / 100)) + (ceil (_price_f / 100)); private _spaceSum = 0; { - if (typeOf _x == KP_liberation_large_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _spaceSum = _spaceSum + (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _spaceSum = _spaceSum + (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; } forEach _storage_areas; diff --git a/Missionframework/scripts/client/actions/do_repackage_fob.sqf b/Missionframework/scripts/client/actions/do_repackage_fob.sqf index 7ed8a8f53..3b0a1278b 100644 --- a/Missionframework/scripts/client/actions/do_repackage_fob.sqf +++ b/Missionframework/scripts/client/actions/do_repackage_fob.sqf @@ -11,13 +11,13 @@ if (dorepackage > 0) then { private _fob = [] call KPLIB_fnc_getNearestFob; if !(_fob isEqualTo []) then { - GRLIB_all_fobs = GRLIB_all_fobs - [_fob]; - KP_liberation_clearances deleteAt (KP_liberation_clearances findIf {(_x select 0) isEqualTo _fob}); - publicVariable "GRLIB_all_fobs"; - publicVariable "KP_liberation_clearances"; + KPLIB_sectors_fob = KPLIB_sectors_fob - [_fob]; + KPLIB_clearances deleteAt (KPLIB_clearances findIf {(_x select 0) isEqualTo _fob}); + publicVariable "KPLIB_sectors_fob"; + publicVariable "KPLIB_clearances"; }; - {deleteVehicle _x} forEach (((getPos player) nearobjects [FOB_typename, 250]) select {getObjectType _x >= 8}); + {deleteVehicle _x} forEach (((getPos player) nearobjects [KPLIB_b_fobBuilding, 250]) select {getObjectType _x >= 8}); sleep 0.5; @@ -28,12 +28,12 @@ if (dorepackage > 0) then { }; if (dorepackage == 1) then { - private _fobbox = FOB_box_typename createVehicle _spawnpos; + private _fobbox = KPLIB_b_fobBox createVehicle _spawnpos; [_fobbox] call KPLIB_fnc_addObjectInit; }; if (dorepackage == 2) then { - private _fobTruck = FOB_truck_typename createVehicle _spawnpos; + private _fobTruck = KPLIB_b_fobTruck createVehicle _spawnpos; [_fobTruck] call KPLIB_fnc_addObjectInit; }; hint localize "STR_FOB_REPACKAGE_HINT"; diff --git a/Missionframework/scripts/client/actions/intel_manager.sqf b/Missionframework/scripts/client/actions/intel_manager.sqf index 0624841ac..c46636add 100644 --- a/Missionframework/scripts/client/actions/intel_manager.sqf +++ b/Missionframework/scripts/client/actions/intel_manager.sqf @@ -1,6 +1,7 @@ +scriptName "intel_manager"; // TODO Remove this loop by adding the actions to the units/intel objects on spawn -waitUntil {!isNil "GRLIB_permissions"}; -waitUntil {!(GRLIB_permissions isEqualTo []) || !GRLIB_permissions_param}; +waitUntil {!isNil "KPLIB_permissions"}; +waitUntil {!(KPLIB_permissions isEqualTo []) || !KPLIB_param_permissions}; private _near_people = []; private _near_intel = []; @@ -12,14 +13,14 @@ while {true} do { _near_people = (getPosATL player) nearEntities [["Man"], 5]; _near_intel = (getPosATL player) nearEntities [KPLIB_intelObjectClasses, 5]; { - if ((captive _x) && !(_x in _actionned_captive_units) && !((side group _x) == GRLIB_side_friendly) && !(_x getVariable ["ACE_isUnconscious", false])) then { - _x addAction ["" + localize "STR_SECONDARY_CAPTURE" + "",{[_this select 0] join (group player);},"",-850,true,true,"","(vehicle player == player) && (side group _target != GRLIB_side_friendly) && (captive _target)"]; + if ((captive _x) && !(_x in _actionned_captive_units) && !((side group _x) == KPLIB_side_player) && !(_x getVariable ["ACE_isUnconscious", false])) then { + _x addAction ["" + localize "STR_SECONDARY_CAPTURE" + "",{[_this select 0] join (group player);},"",-850,true,true,"","(vehicle player == player) && (side group _target != KPLIB_side_player) && (captive _target)"]; _actionned_captive_units pushback _x; }; } forEach _near_people; { - if (!(alive _x) || ((player distance _x) > 5) || ((side group _x) == GRLIB_side_friendly)) then { + if (!(alive _x) || ((player distance _x) > 5) || ((side group _x) == KPLIB_side_player)) then { removeAllActions _x; _actionned_captive_units = _actionned_captive_units - [_x]; }; diff --git a/Missionframework/scripts/client/actions/open_arsenal.sqf b/Missionframework/scripts/client/actions/open_arsenal.sqf index 225a5e43a..31108de99 100644 --- a/Missionframework/scripts/client/actions/open_arsenal.sqf +++ b/Missionframework/scripts/client/actions/open_arsenal.sqf @@ -1,5 +1,7 @@ -if (KPLIB_directArsenal) exitWith { - if (KP_liberation_ace && KP_liberation_arsenal_type) then { +scriptName "open_arsenal"; + +if (KPLIB_param_directArsenal) exitWith { + if (KPLIB_ace && KPLIB_param_arsenalType) then { [player, player, false] call ace_arsenal_fnc_openBox; } else { ["Open", false] spawn BIS_fnc_arsenal; @@ -17,7 +19,7 @@ private _backpack = backpack player; private ["_loadouts_data"]; // Get loadouts either from ACE or BI arsenals -if (KP_liberation_ace && KP_liberation_arsenal_type) then { +if (KPLIB_ace && KPLIB_param_arsenalType) then { _loadouts_data = +(profileNamespace getVariable ["ace_arsenal_saved_loadouts", []]); } else { private _saved_loadouts = +(profileNamespace getVariable "bis_fnc_saveInventory_data"); @@ -82,13 +84,13 @@ while { dialog && (alive player) && edit_loadout == 0 } do { if ( load_loadout > 0 ) then { private _loaded_loadout = _loadouts_data select (lbCurSel 201); - if (KP_liberation_ace && KP_liberation_arsenal_type) then { - player setUnitLoadout (_loaded_loadout select 1); + if (KPLIB_ace && KPLIB_param_arsenalType) then { + [player, _loaded_loadout select 1, KP_liberation_fill_mags] call CBA_fnc_setLoadout; } else { [player, [profileNamespace, _loaded_loadout]] call BIS_fnc_loadInventory; }; - if (KP_liberation_arsenalUsePreset) then { + if (KPLIB_param_useArsenalPreset) then { if ([_backpack] call KPLIB_fnc_checkGear) then { hint format [ localize "STR_HINT_LOADOUT_LOADED", _loaded_loadout param [0]]; }; @@ -103,7 +105,7 @@ while { dialog && (alive player) && edit_loadout == 0 } do { }; if ( respawn_loadout > 0 ) then { - GRLIB_respawn_loadout = [ player, ["repetitive"] ] call KPLIB_fnc_getLoadout; + KPLIB_respawn_loadout = [ player, ["repetitive"] ] call KPLIB_fnc_getLoadout; hint localize "STR_MAKE_RESPAWN_LOADOUT_HINT"; respawn_loadout = 0; }; @@ -123,15 +125,15 @@ while { dialog && (alive player) && edit_loadout == 0 } do { if ( edit_loadout > 0 ) then { closeDialog 0; waitUntil { !dialog }; - if (KP_liberation_ace && KP_liberation_arsenal_type) then { + if (KPLIB_ace && KPLIB_param_arsenalType) then { [player, player, false] call ace_arsenal_fnc_openBox; } else { [ "Open", false ] spawn BIS_fnc_arsenal; }; - if (KP_liberation_arsenalUsePreset) then { + if (KPLIB_param_useArsenalPreset) then { uiSleep 5; - private _arsenalDisplay = ["RSCDisplayArsenal", "ace_arsenal_display"] select (KP_liberation_ace && KP_liberation_arsenal_type); + private _arsenalDisplay = ["RSCDisplayArsenal", "ace_arsenal_display"] select (KPLIB_ace && KPLIB_param_arsenalType); waitUntil {sleep 1; isNull (uinamespace getvariable [_arsenalDisplay, displayNull])}; [_backpack] call KPLIB_fnc_checkGear; }; diff --git a/Missionframework/scripts/client/actions/recycle_manager.sqf b/Missionframework/scripts/client/actions/recycle_manager.sqf index 3b5c85b0f..32d7d28ce 100644 --- a/Missionframework/scripts/client/actions/recycle_manager.sqf +++ b/Missionframework/scripts/client/actions/recycle_manager.sqf @@ -1,3 +1,5 @@ +scriptName "recycle_manager"; + private _recycleable_vehicles = []; private _recycleable_classnames = []; veh_action_detect_distance = 20; @@ -15,15 +17,15 @@ veh_action_distance = 10; ]; while {true} do { - waitUntil {sleep 2; player getVariable ['KPLIB_fobDist', 99999] < GRLIB_fob_range}; + waitUntil {sleep 2; player getVariable ['KPLIB_fobDist', 99999] < KPLIB_range_fob}; if ([4] call KPLIB_fnc_hasPermission) then { private _detected_vehicles = (getPos player) nearObjects veh_action_detect_distance select { (((toLower (typeof _x)) in _recycleable_classnames && (({alive _x} count (crew _x)) == 0 || unitIsUAV _x) && (locked _x == 0 || locked _x == 1)) || - (toLower (typeOf _x)) in KPLIB_b_buildings_classes || - (((toLower (typeOf _x)) in KPLIB_storageBuildings) && ((_x getVariable ["KP_liberation_storage_type",-1]) == 0)) || + (toLower (typeOf _x)) in KPLIB_b_deco_classes || + (((toLower (typeOf _x)) in KPLIB_storageBuildings) && ((_x getVariable ["KPLIB_storage_type",-1]) == 0)) || (toLower (typeOf _x)) in KPLIB_upgradeBuildings || - (typeOf _x) in KP_liberation_ace_crates) && + (typeOf _x) in KPLIB_ace_crates) && alive _x && ( // ignore null objects left by Advanced Towing @@ -32,7 +34,7 @@ while {true} do { || ((typeOf _x) == "rhsusf_mkvsoc") ) && _x distance2d startbase > 1000 && - (_x distance2d ([] call KPLIB_fnc_getNearestFob)) < GRLIB_fob_range && + (_x distance2d ([] call KPLIB_fnc_getNearestFob)) < KPLIB_range_fob && (getObjectType _x) >= 8 }; diff --git a/Missionframework/scripts/client/actions/unflip_manager.sqf b/Missionframework/scripts/client/actions/unflip_manager.sqf index 5dc90c479..1774e7ede 100644 --- a/Missionframework/scripts/client/actions/unflip_manager.sqf +++ b/Missionframework/scripts/client/actions/unflip_manager.sqf @@ -1,5 +1,7 @@ -waitUntil {!isNil "GRLIB_permissions"}; -waitUntil {!(GRLIB_permissions isEqualTo []) || !GRLIB_permissions_param}; +scriptName "unflip_manager"; + +waitUntil {!isNil "KPLIB_permissions"}; +waitUntil {!(KPLIB_permissions isEqualTo []) || !KPLIB_param_permissions}; private [ "_unflippable_vehicles", "_detected_vehicles", "_next_vehicle", "_next_vehicle_already_in_list", "_idact_next" ]; diff --git a/Missionframework/scripts/client/ammoboxes/ammobox_action_manager.sqf b/Missionframework/scripts/client/ammoboxes/ammobox_action_manager.sqf index 10e90d196..4cf28e515 100644 --- a/Missionframework/scripts/client/ammoboxes/ammobox_action_manager.sqf +++ b/Missionframework/scripts/client/ammoboxes/ammobox_action_manager.sqf @@ -1,3 +1,5 @@ +scriptName "ammobox_action_manager"; + waitUntil {!isNil "build_confirmed"}; waitUntil {!isNil "one_synchro_done"}; waitUntil {!isNil "one_eco_done"}; @@ -22,16 +24,16 @@ while {true} do { { _next_truck = _x; - _truck_load = _next_truck getVariable ["GRLIB_ammo_truck_load", 0]; + _truck_load = _next_truck getVariable ["KPLIB_ammo_truck_load", 0]; if (!(_next_truck in _managed_trucks) && (_truck_load > 0)) then { _action_id = _next_truck addAction ["" + localize "STR_ACTION_UNLOAD_BOX" + "","scripts\client\ammoboxes\do_unload_truck.sqf","",-500,true,true,"","build_confirmed == 0 && (_this distance _target < 8) && (vehicle player == player)"]; - _next_truck setVariable [ "GRLIB_ammo_truck_action", _action_id, false ]; + _next_truck setVariable [ "KPLIB_ammo_truck_action", _action_id, false ]; _managed_trucks pushback _next_truck; }; if ((_next_truck in _managed_trucks) && _truck_load == 0) then { - _next_truck removeAction (_next_truck getVariable ["GRLIB_ammo_truck_action", -1]); + _next_truck removeAction (_next_truck getVariable ["KPLIB_ammo_truck_action", -1]); _managed_trucks = _managed_trucks - [_next_truck]; }; @@ -43,7 +45,7 @@ while {true} do { _next_truck = _x; if (!(_next_truck in _checked_trucks)) then { _managed_trucks = _managed_trucks - [_next_truck]; - _next_truck removeAction ( _next_truck getVariable ["GRLIB_ammo_truck_action", -1]); + _next_truck removeAction ( _next_truck getVariable ["KPLIB_ammo_truck_action", -1]); } } foreach _managed_trucks; @@ -57,10 +59,24 @@ while {true} do { _b_action_id2 = _next_box addAction ["" + localize "STR_ACTION_STORE_CRATE" + "",{[(_this select 0), (nearestObjects [player,KPLIB_storageBuildings,20]) select 0,true] call KPLIB_fnc_crateToStorage;},"",-502,true,true,"","build_confirmed == 0 && (_this distance _target < 5) && (vehicle player == player)"]; _b_action_id3 = _next_box addAction ["" + localize "STR_ACTION_CRATE_VALUE" + "",{[_this select 0] call KPLIB_fnc_checkCrateValue;uiSleep 3; hint "";},"",-503,true,true,"","build_confirmed == 0 && (_this distance _target < 5) && (vehicle player == player)"]; _b_action_id4 = _next_box addAction ["" + localize "STR_ACTION_CRATE_PUSH" + "",{(_this select 0) setPos ((_this select 0) getPos [1, (player getDir (_this select 0))]);},"",-504,true,false,"","build_confirmed == 0 && (_this distance _target < 5) && (vehicle player == player)"]; - _next_box setVariable ["GRLIB_ammo_box_action", _b_action_id1, false]; + _b_action_id_carry = _next_box addAction [ + "" + localize "STR_ACTION_CRATE_CARRY" + "", + { + params ["_crate", "_player"]; + _crate attachTo [_player, [0, 2, 1]]; + _player setVariable ["KPLIB_carriedObject", _crate]; + }, + "", -504, true, false, "", + toString { + build_confirmed == 0 && _this in _this && {isNull (_this getVariable ["KPLIB_carriedObject", objNull])} + }, + 5 // radius + ]; + _next_box setVariable ["KPLIB_ammo_box_action", _b_action_id1, false]; _next_box setVariable ["KP_crate_store_action", _b_action_id2, false]; _next_box setVariable ["KP_crate_value_action", _b_action_id3, false]; _next_box setVariable ["KP_crate_push_action", _b_action_id4, false]; + _next_box setVariable ["KP_crate_carry_action", _b_action_id_carry, false]; _managed_boxes pushback _next_box; }; @@ -71,10 +87,12 @@ while {true} do { _next_box = _x; if (!(_next_box in _managed_boxes) || !( isNull attachedTo _next_box )) then { _managed_boxes = _managed_boxes - [_next_box]; - _next_box removeAction (_next_box getVariable ["GRLIB_ammo_box_action", -1]); + _next_box removeAction (_next_box getVariable ["KPLIB_ammo_box_action", -1]); _next_box removeAction (_next_box getVariable ["KP_crate_store_action", -1]); _next_box removeAction (_next_box getVariable ["KP_crate_value_action", -1]); _next_box removeAction (_next_box getVariable ["KP_crate_push_action", -1]); + _next_box removeAction (_next_box getVariable ["KP_crate_carry_action", -1]); + _next_box removeAction (_next_box getVariable ["KP_crate_drop_action", -1]); } } foreach _managed_boxes; @@ -85,11 +103,11 @@ while {true} do { _area_load = count (attachedObjects _x); if (!(_next_area in _managed_areas) && (_area_load > 0)) then { - _action_id = _next_area addAction ["" + localize "STR_ACTION_UNSTORE_SUPPLY" + "",{[KP_liberation_supply_crate, (_this select 0), true] call KPLIB_fnc_crateFromStorage;},"",-504,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; + _action_id = _next_area addAction ["" + localize "STR_ACTION_UNSTORE_SUPPLY" + "",{[KPLIB_b_crateSupply, (_this select 0), true] call KPLIB_fnc_crateFromStorage;},"",-504,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; _next_area setVariable ["KP_supply_unstore_action", _action_id, false]; - _action_id2 = _next_area addAction ["" + localize "STR_ACTION_UNSTORE_AMMO" + "",{[KP_liberation_ammo_crate, (_this select 0), true] call KPLIB_fnc_crateFromStorage;},"",-505,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; + _action_id2 = _next_area addAction ["" + localize "STR_ACTION_UNSTORE_AMMO" + "",{[KPLIB_b_crateAmmo, (_this select 0), true] call KPLIB_fnc_crateFromStorage;},"",-505,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; _next_area setVariable ["KP_ammo_unstore_action", _action_id2, false]; - _action_id3 = _next_area addAction ["" + localize "STR_ACTION_UNSTORE_FUEL" + "",{[KP_liberation_fuel_crate, (_this select 0), true] call KPLIB_fnc_crateFromStorage;},"",-506,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; + _action_id3 = _next_area addAction ["" + localize "STR_ACTION_UNSTORE_FUEL" + "",{[KPLIB_b_crateFuel, (_this select 0), true] call KPLIB_fnc_crateFromStorage;},"",-506,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; _next_area setVariable ["KP_fuel_unstore_action", _action_id3, false]; _action_id4 = _next_area addAction ["" + localize "STR_ACTION_SORT_STORAGE" + "",{[(_this select 0)] call KPLIB_fnc_sortStorage;},"",-507,true,true,"","build_confirmed == 0 && (_this distance _target < 12) && (vehicle player == player)"]; _next_area setVariable ["KP_storage_sort_action", _action_id4, false]; diff --git a/Missionframework/scripts/client/ammoboxes/do_load_box.sqf b/Missionframework/scripts/client/ammoboxes/do_load_box.sqf index 54d16c61e..2fa17c22f 100644 --- a/Missionframework/scripts/client/ammoboxes/do_load_box.sqf +++ b/Missionframework/scripts/client/ammoboxes/do_load_box.sqf @@ -18,12 +18,12 @@ _truck_to_load = objNull; } foreach KPLIB_transportConfigs; if ( isNull _truck_to_load ) then { - _truck_load = _next_truck getVariable ["GRLIB_ammo_truck_load", 0]; + _truck_load = _next_truck getVariable ["KPLIB_ammo_truck_load", 0]; if ( _truck_load < _maxload ) then { _truck_to_load = _next_truck; _ammobox attachTo [ _truck_to_load, _offsets select _truck_load ]; [_ammobox, false] remoteExec ["enableRopeAttach"]; - _truck_to_load setVariable ["GRLIB_ammo_truck_load", _truck_load + 1, true]; + _truck_to_load setVariable ["KPLIB_ammo_truck_load", _truck_load + 1, true]; if ( !isDedicated ) then { hint localize "STR_BOX_LOADED"; }; diff --git a/Missionframework/scripts/client/ammoboxes/do_unload_truck.sqf b/Missionframework/scripts/client/ammoboxes/do_unload_truck.sqf index 9a744a873..d46266ec9 100644 --- a/Missionframework/scripts/client/ammoboxes/do_unload_truck.sqf +++ b/Missionframework/scripts/client/ammoboxes/do_unload_truck.sqf @@ -7,8 +7,8 @@ _offset = 0; if ( _x select 0 == typeof _truck_to_unload ) then { _offset = _x select 1; }; } foreach KPLIB_transportConfigs; -if ( _truck_to_unload getVariable ["GRLIB_ammo_truck_load", 0] > 0 ) then { - _truck_to_unload setVariable ["GRLIB_ammo_truck_load", 0, true]; +if ( _truck_to_unload getVariable ["KPLIB_ammo_truck_load", 0] > 0 ) then { + _truck_to_unload setVariable ["KPLIB_ammo_truck_load", 0, true]; [_truck_to_unload, false] remoteExec ["KPLIB_fnc_protectObject"]; { diff --git a/Missionframework/scripts/client/asymmetric/asymm_notifications.sqf b/Missionframework/scripts/client/asymmetric/asymm_notifications.sqf index 92cdc0cac..4a4932c4f 100644 --- a/Missionframework/scripts/client/asymmetric/asymm_notifications.sqf +++ b/Missionframework/scripts/client/asymmetric/asymm_notifications.sqf @@ -1,8 +1,9 @@ +scriptName "asymm_notificatins"; if (isDedicated) exitWith {}; params ["_notif_id", ["_pos", getpos player]]; -if (KP_liberation_asymmetric_debug > 0) then {[format ["asymm_notifications called on: %1 - Parameters: [%2, %3] ", debug_source, _notif_id, _pos], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["asymm_notifications called on: %1 - Parameters: [%2, %3] ", debug_source, _notif_id, _pos], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; switch (_notif_id) do { case 0: { diff --git a/Missionframework/scripts/client/build/build_overlay.sqf b/Missionframework/scripts/client/build/build_overlay.sqf index d7c1604c9..b967ab5aa 100644 --- a/Missionframework/scripts/client/build/build_overlay.sqf +++ b/Missionframework/scripts/client/build/build_overlay.sqf @@ -1,18 +1,20 @@ -GRLIB_conflicting_objects = []; -GRLIB_buildoverlay_icon = "\A3\ui_f\data\map\markers\handdrawn\objective_CA.paa"; -GRLIB_buildoverlay_color = [ 1, 0, 0, 1 ]; -GRLIB_buildoverlay_cfg = configFile >> "cfgVehicles"; +scriptName "build_overlay"; + +KPLIB_conflicting_objects = []; +KPLIB_buildoverlay_icon = "\A3\ui_f\data\map\markers\handdrawn\objective_CA.paa"; +KPLIB_buildoverlay_color = [ 1, 0, 0, 1 ]; +KPLIB_buildoverlay_cfg = configFile >> "cfgVehicles"; ["build_overlay", "onEachFrame", { if ( build_confirmed == 1 ) then { - if ( count GRLIB_conflicting_objects > 0 ) then { + if ( count KPLIB_conflicting_objects > 0 ) then { { if ( alive _x ) then { - drawIcon3D [ GRLIB_buildoverlay_icon, GRLIB_buildoverlay_color, [ (getpos _x) select 0, (getpos _x) select 1, 1.5], - 1, 1, 0, format [ "%1", getText (GRLIB_buildoverlay_cfg >> typeof _x >> "displayName") ], 2, 0.04, "puristaMedium"]; + drawIcon3D [ KPLIB_buildoverlay_icon, KPLIB_buildoverlay_color, [ (getpos _x) select 0, (getpos _x) select 1, 1.5], + 1, 1, 0, format [ "%1", getText (KPLIB_buildoverlay_cfg >> typeof _x >> "displayName") ], 2, 0.04, "puristaMedium"]; }; - } foreach GRLIB_conflicting_objects; + } foreach KPLIB_conflicting_objects; }; }; }] call BIS_fnc_addStackedEventHandler; diff --git a/Missionframework/scripts/client/build/do_build.sqf b/Missionframework/scripts/client/build/do_build.sqf index f76a65f80..a663edbd3 100644 --- a/Missionframework/scripts/client/build/do_build.sqf +++ b/Missionframework/scripts/client/build/do_build.sqf @@ -1,9 +1,10 @@ +scriptName "do_build"; // TODO This needs absolutely a code refactoring, flamethrower or nuke private [ "_maxdist", "_truepos", "_built_object_remote", "_pos", "_grp", "_classname", "_idx", "_unitrank", "_posfob", "_ghost_spot", "_vehicle", "_dist", "_actualdir", "_near_objects", "_near_objects_25", "_debug_colisions" ]; build_confirmed = 0; -_maxdist = GRLIB_fob_range; +_maxdist = KPLIB_range_fob; _truepos = []; _debug_colisions = false; KP_vector = true; @@ -32,7 +33,7 @@ while { true } do { build_invalid = 0; _classname = ""; if ( buildtype == 99 ) then { - _classname = FOB_typename; + _classname = KPLIB_b_fobBuilding; } else { _classname = ((KPLIB_buildList select buildtype) select buildindex) select 0; _price_s = ((KPLIB_buildList select buildtype) select buildindex) select 1; @@ -40,7 +41,7 @@ while { true } do { _price_f = ((KPLIB_buildList select buildtype) select buildindex) select 3; _nearfob = [] call KPLIB_fnc_getNearestFob; - _storage_areas = (_nearfob nearobjects (GRLIB_fob_range * 2)) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; + _storage_areas = (_nearfob nearobjects (KPLIB_range_fob * 2)) select {(_x getVariable ["KPLIB_storage_type",-1]) == 0}; [_price_s, _price_a, _price_f, _classname, buildtype, _storage_areas] remoteExec ["build_remote_call",2]; }; @@ -49,24 +50,24 @@ while { true } do { _pos = [(getpos player select 0) + 1,(getpos player select 1) + 1, 0]; _grp = group player; if ( manned ) then { - _grp = createGroup GRLIB_side_friendly; + _grp = createGroup KPLIB_side_player; }; - _classname createUnit [_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"]; + _classname createUnit [_pos, _grp,"this addMPEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]", 0.5, "private"]; build_confirmed = 0; } else { if ( buildtype == 8 ) then { _pos = [(getpos player select 0) + 1,(getpos player select 1) + 1, 0]; - _grp = createGroup GRLIB_side_friendly; - _grp setGroupId [format ["%1 %2",squads_names select buildindex, groupId _grp]]; + _grp = createGroup KPLIB_side_player; + _grp setGroupId [format ["%1 %2",KPLIB_b_squadNames select buildindex, groupId _grp]]; _idx = 0; { _unitrank = "private"; if(_idx == 0) then { _unitrank = "sergeant"; }; if(_idx == 1) then { _unitrank = "corporal"; }; - if (_classname isEqualTo blufor_squad_para) then { - _x createUnit [_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]; removeBackpackGlobal this; this addBackpackGlobal ""B_parachute""", 0.5, _unitrank]; + if (_classname isEqualTo KPLIB_b_squadPara) then { + _x createUnit [_pos, _grp,"this addMPEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]; removeBackpackGlobal this; this addBackpackGlobal 'B_parachute'", 0.5, _unitrank]; } else { - _x createUnit [_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}];", 0.5, _unitrank]; + _x createUnit [_pos, _grp,"this addMPEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]", 0.5, _unitrank]; }; _idx = _idx + 1; @@ -84,12 +85,12 @@ while { true } do { _idactplacebis = -1; _idactvector = -1; if (buildtype != 99 ) then { - _idactcancel = player addAction ["" + localize "STR_CANCEL" + " ",{build_confirmed = 3; GRLIB_ui_notif = ""; hint localize "STR_CANCEL_HINT";},"",-725,false,true,"","build_confirmed == 1"]; + _idactcancel = player addAction ["" + localize "STR_CANCEL" + " ",{build_confirmed = 3; KPLIB_ui_notif = ""; hint localize "STR_CANCEL_HINT";},"",-725,false,true,"","build_confirmed == 1"]; }; if (buildtype == 6 ) then { _idactplacebis = player addAction ["" + localize "STR_PLACEMENT_BIS" + " ",{build_confirmed = 2; repeatbuild = true; hint localize "STR_CONFIRM_HINT";},"",-785,false,false,"","build_invalid == 0 && build_confirmed == 1"]; }; - if (buildtype == 6 || buildtype == 99 || (toLower _classname) in KPLIB_storageBuildings || _classname isEqualTo KP_liberation_recycle_building || _classname isEqualTo KP_liberation_air_vehicle_building) then { + if (buildtype == 6 || buildtype == 99 || (toLower _classname) in KPLIB_storageBuildings || _classname isEqualTo KPLIB_b_logiStation || _classname isEqualTo KPLIB_b_airControl) then { _idactsnap = player addAction ["" + localize "STR_GRID" + "",{gridmode = gridmode + 1;},"",-735,false,false,"","build_confirmed == 1"]; _idactvector = player addAction ["" + localize "STR_VECACTION" + "",{KP_vector = !KP_vector;},"",-800,false,false,"","build_confirmed == 1"]; }; @@ -105,7 +106,7 @@ while { true } do { _vehicle allowdamage false; _vehicle setVehicleLock "LOCKED"; _vehicle enableSimulationGlobal false; - _vehicle setVariable ["KP_liberation_preplaced", true, true]; + _vehicle setVariable ["KPLIB_preplaced", true, true]; _dist = 0.6 * (sizeOf _classname); if (_dist < 3.5) then { _dist = 3.5 }; @@ -126,7 +127,7 @@ while { true } do { }; _actualdir = ((getdir player) + build_rotation); if ( _classname == "Land_Cargo_Patrol_V1_F" || _classname == "Land_PortableLight_single_F" ) then { _actualdir = _actualdir + 180 }; - if ( _classname == FOB_typename ) then { _actualdir = _actualdir + 270 }; + if ( _classname == KPLIB_b_fobBuilding ) then { _actualdir = _actualdir + 270 }; while { _actualdir > 360 } do { _actualdir = _actualdir - 360 }; while { _actualdir < 0 } do { _actualdir = _actualdir + 360 }; @@ -147,7 +148,7 @@ while { true } do { if !(buildtype isEqualTo 99) then { { - _x setPos (_posfob getPos [GRLIB_fob_range, 10 * _forEachIndex]) + _x setPos (_posfob getPos [KPLIB_range_fob, 10 * _forEachIndex]) } forEach _fob_spheres; }; @@ -156,12 +157,12 @@ while { true } do { _truepos = [_truepos select 0, _truepos select 1, (_truepos select 2) + build_elevation]; _near_objects = (_truepos nearobjects ["AllVehicles", _dist]) ; - _near_objects = _near_objects + (_truepos nearobjects [FOB_box_typename, _dist]); - _near_objects = _near_objects + (_truepos nearobjects [Arsenal_typename, _dist]); + _near_objects = _near_objects + (_truepos nearobjects [KPLIB_b_fobBox, _dist]); + _near_objects = _near_objects + (_truepos nearobjects [KPLIB_b_arsenal, _dist]); _near_objects_25 = (_truepos nearobjects ["AllVehicles", 50]) ; - _near_objects_25 = _near_objects_25 + (_truepos nearobjects [FOB_box_typename, 50]); - _near_objects_25 = _near_objects_25 + (_truepos nearobjects [Arsenal_typename, 50]); + _near_objects_25 = _near_objects_25 + (_truepos nearobjects [KPLIB_b_fobBox, 50]); + _near_objects_25 = _near_objects_25 + (_truepos nearobjects [KPLIB_b_arsenal, 50]); if( buildtype != 6 ) then { _near_objects = _near_objects + (_truepos nearobjects ["Static", _dist]); @@ -171,7 +172,7 @@ while { true } do { private _remove_objects = []; { private _typeOfX = typeOf _x; - if ((_x isKindOf "Animal") || (_typeOfX in GRLIB_ignore_colisions_when_building) || (_typeOfX isKindOf "CAManBase") || (isPlayer _x) || (_x == _vehicle) || ((toLower (typeOf _vehicle)) in KPLIB_b_static_classes)) then { + if ((_x isKindOf "Animal") || (_typeOfX in KPLIB_collisionIgnoreObjects) || (_typeOfX isKindOf "CAManBase") || (isPlayer _x) || (_x == _vehicle) || ((toLower (typeOf _vehicle)) in KPLIB_b_static_classes)) then { _remove_objects pushback _x; }; } foreach _near_objects; @@ -179,7 +180,7 @@ while { true } do { private _remove_objects_25 = []; { private _typeOfX = typeOf _x; - if ((_x isKindOf "Animal") || (_typeOfX in GRLIB_ignore_colisions_when_building) || (_typeOfX isKindOf "CAManBase") || (isPlayer _x) || (_x == _vehicle) || ((toLower (typeOf _vehicle)) in KPLIB_b_static_classes)) then { + if ((_x isKindOf "Animal") || (_typeOfX in KPLIB_collisionIgnoreObjects) || (_typeOfX isKindOf "CAManBase") || (isPlayer _x) || (_x == _vehicle) || ((toLower (typeOf _vehicle)) in KPLIB_b_static_classes)) then { _remove_objects_25 pushback _x; }; } foreach _near_objects_25; @@ -198,9 +199,9 @@ while { true } do { }; if ( count _near_objects != 0 ) then { - GRLIB_conflicting_objects = _near_objects; + KPLIB_conflicting_objects = _near_objects; } else { - GRLIB_conflicting_objects = []; + KPLIB_conflicting_objects = []; }; if (count _near_objects == 0 && ((_truepos distance _posfob) < _maxdist) && ( ((!surfaceIsWater _truepos) && (!surfaceIsWater getpos player)) || (_classname in boats_names) ) ) then { @@ -214,7 +215,7 @@ while { true } do { _vehicle setpos _truepos; }; }; - if (buildtype == 6 || buildtype == 99 || (toLower _classname) in KPLIB_storageBuildings || _classname isEqualTo KP_liberation_recycle_building || _classname isEqualTo KP_liberation_air_vehicle_building) then { + if (buildtype == 6 || buildtype == 99 || (toLower _classname) in KPLIB_storageBuildings || _classname isEqualTo KPLIB_b_logiStation || _classname isEqualTo KPLIB_b_airControl) then { if (KP_vector) then { _vehicle setVectorUp [0,0,1]; } else { @@ -224,7 +225,7 @@ while { true } do { _vehicle setVectorUp surfaceNormal position _vehicle; }; if(build_invalid == 1) then { - GRLIB_ui_notif = ""; + KPLIB_ui_notif = ""; {_x setObjectTexture [0, "#(rgb,8,8,3)color(0,1,0,1)"];} foreach _object_spheres; }; @@ -237,7 +238,7 @@ while { true } do { _vehicle setpos _ghost_spot; build_invalid = 1; if(count _near_objects > 0) then { - GRLIB_ui_notif = format [localize "STR_PLACEMENT_IMPOSSIBLE",count _near_objects, round _dist]; + KPLIB_ui_notif = format [localize "STR_PLACEMENT_IMPOSSIBLE",count _near_objects, round _dist]; if (_debug_colisions) then { private [ "_objs_classnames" ]; @@ -247,17 +248,17 @@ while { true } do { }; }; if( ((surfaceIsWater _truepos) || (surfaceIsWater getpos player)) && !(_classname in boats_names)) then { - GRLIB_ui_notif = localize "STR_BUILD_ERROR_WATER"; + KPLIB_ui_notif = localize "STR_BUILD_ERROR_WATER"; }; if((_truepos distance _posfob) > _maxdist) then { - GRLIB_ui_notif = format [localize "STR_BUILD_ERROR_DISTANCE",_maxdist]; + KPLIB_ui_notif = format [localize "STR_BUILD_ERROR_DISTANCE",_maxdist]; }; }; sleep 0.05; }; - GRLIB_ui_notif = ""; + KPLIB_ui_notif = ""; {_x setPos [0, 0, 0];} forEach (_object_spheres + _fob_spheres); @@ -268,7 +269,7 @@ while { true } do { _price_f = ((KPLIB_buildList select buildtype) select buildindex) select 3; _nearfob = [] call KPLIB_fnc_getNearestFob; - _storage_areas = (_nearfob nearobjects (GRLIB_fob_range * 2)) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; + _storage_areas = (_nearfob nearobjects (KPLIB_range_fob * 2)) select {(_x getVariable ["KPLIB_storage_type",-1]) == 0}; _supplyCrates = ceil (_price_s / 100); _ammoCrates = ceil (_price_a / 100); @@ -278,11 +279,11 @@ while { true } do { _spaceSum = 0; { - if (typeOf _x == KP_liberation_large_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _spaceSum = _spaceSum + (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _spaceSum = _spaceSum + (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; } forEach _storage_areas; @@ -313,7 +314,7 @@ while { true } do { [_vehicle] call KPLIB_fnc_clearCargo; - if (buildtype == 6 || buildtype == 99 || (toLower _classname) in KPLIB_storageBuildings || _classname isEqualTo KP_liberation_recycle_building || _classname isEqualTo KP_liberation_air_vehicle_building) then { + if (buildtype == 6 || buildtype == 99 || (toLower _classname) in KPLIB_storageBuildings || _classname isEqualTo KPLIB_b_logiStation || _classname isEqualTo KPLIB_b_airControl) then { if (KP_vector) then { _vehicle setVectorUp [0,0,1]; } else { @@ -332,8 +333,17 @@ while { true } do { _vehicle setDamage 0; if(buildtype != 6) then { - _vehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; - { _x addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; } foreach (crew _vehicle); + _vehicle addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; + + { + _x addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; + } foreach (crew _vehicle); }; }; diff --git a/Missionframework/scripts/client/build/do_build_fob.sqf b/Missionframework/scripts/client/build/do_build_fob.sqf index b892c4ca4..ea13526cd 100644 --- a/Missionframework/scripts/client/build/do_build_fob.sqf +++ b/Missionframework/scripts/client/build/do_build_fob.sqf @@ -1,11 +1,13 @@ +scriptName "do_build_fob"; + private [ "_minfobdist", "_minsectordist", "_distfob", "_clearedtobuildfob", "_distsector", "_clearedtobuildsector", "_idx" ]; -if ( count GRLIB_all_fobs >= GRLIB_maximum_fobs ) exitWith { - hint format [ localize "STR_HINT_FOBS_EXCEEDED", GRLIB_maximum_fobs ]; +if ( count KPLIB_sectors_fob >= KPLIB_param_maxFobs ) exitWith { + hint format [ localize "STR_HINT_FOBS_EXCEEDED", KPLIB_param_maxFobs ]; }; _minfobdist = 1000; -_minsectordist = GRLIB_capture_size + GRLIB_fob_range; +_minsectordist = KPLIB_range_sectorCapture + KPLIB_range_fob; _distfob = 1; _clearedtobuildfob = true; _distsector = 1; @@ -15,20 +17,20 @@ FOB_build_in_progress = true; publicVariable "FOB_build_in_progress"; _idx = 0; -while { (_idx < (count GRLIB_all_fobs)) && _clearedtobuildfob } do { - if ( player distance (GRLIB_all_fobs select _idx) < _minfobdist ) then { +while { (_idx < (count KPLIB_sectors_fob)) && _clearedtobuildfob } do { + if ( player distance (KPLIB_sectors_fob select _idx) < _minfobdist ) then { _clearedtobuildfob = false; - _distfob = player distance (GRLIB_all_fobs select _idx); + _distfob = player distance (KPLIB_sectors_fob select _idx); }; _idx = _idx + 1; }; _idx = 0; if(_clearedtobuildfob) then { - while { (_idx < (count sectors_allSectors)) && _clearedtobuildsector } do { - if ( player distance (markerPos (sectors_allSectors select _idx)) < _minsectordist ) then { + while { (_idx < (count KPLIB_sectors_all)) && _clearedtobuildsector } do { + if ( player distance (markerPos (KPLIB_sectors_all select _idx)) < _minsectordist ) then { _clearedtobuildsector = false; - _distsector = player distance (markerPos (sectors_allSectors select _idx)); + _distsector = player distance (markerPos (KPLIB_sectors_all select _idx)); }; _idx = _idx + 1; }; diff --git a/Missionframework/scripts/client/build/do_sector_build.sqf b/Missionframework/scripts/client/build/do_sector_build.sqf index bfe1536a2..c656f451f 100644 --- a/Missionframework/scripts/client/build/do_sector_build.sqf +++ b/Missionframework/scripts/client/build/do_sector_build.sqf @@ -1,6 +1,8 @@ +scriptName "do_sector_build"; + private ["_vector", "_idactcancel", "_idactplace", "_idactvector", "_ghost_spot", "_truedir", "_dist", "_truepos", "_sectorpos", "_building"]; -if (((_this select 3) select 0) == KP_liberation_small_storage_building) then { +if (((_this select 3) select 0) == KPLIB_b_smallStorage) then { _truepos = []; @@ -38,11 +40,11 @@ if (((_this select 3) select 0) == KP_liberation_small_storage_building) then { build_invalid = 1; if(((surfaceIsWater _truepos) || (surfaceIsWater getpos player))) then { - GRLIB_ui_notif = localize "STR_BUILD_ERROR_WATER"; + KPLIB_ui_notif = localize "STR_BUILD_ERROR_WATER"; }; if((_truepos distance _sectorpos) > 100) then { - GRLIB_ui_notif = format [localize "STR_BUILD_ERROR_DISTANCE",100]; + KPLIB_ui_notif = format [localize "STR_BUILD_ERROR_DISTANCE",100]; }; } else { _building setdir (getDir player); @@ -55,7 +57,7 @@ if (((_this select 3) select 0) == KP_liberation_small_storage_building) then { }; if (build_invalid == 1) then { - GRLIB_ui_notif = ""; + KPLIB_ui_notif = ""; }; build_invalid = 0; @@ -64,7 +66,7 @@ if (((_this select 3) select 0) == KP_liberation_small_storage_building) then { sleep 0.05; }; - GRLIB_ui_notif = ""; + KPLIB_ui_notif = ""; if (!alive player || build_confirmed == 3) then { deleteVehicle _building; @@ -86,7 +88,7 @@ if (((_this select 3) select 0) == KP_liberation_small_storage_building) then { _building setVectorUp surfaceNormal position _building; }; - _building setVariable ["KP_liberation_storage_type", 1, true]; + _building setVariable ["KPLIB_storage_type", 1, true]; sleep 0.3; _building allowDamage true; diff --git a/Missionframework/scripts/client/build/open_build_menu.sqf b/Missionframework/scripts/client/build/open_build_menu.sqf index 6ddb22e8c..b5b8a0d2e 100644 --- a/Missionframework/scripts/client/build/open_build_menu.sqf +++ b/Missionframework/scripts/client/build/open_build_menu.sqf @@ -1,6 +1,8 @@ +scriptName "open_build_menu"; + private [ "_oldbuildtype", "_cfg", "_initindex", "_dialog", "_iscommandant", "_squadname", "_buildpages", "_build_list", "_classnamevar", "_entrytext", "_icon", "_affordable", "_affordable_crew", "_selected_item", "_linked", "_linked_unlocked", "_base_link", "_link_color", "_link_str", "_nearfob", "_actual_fob"]; -if (([ getpos player , 500 , GRLIB_side_enemy ] call KPLIB_fnc_getUnitsCount ) > 4 ) exitWith { hint localize "STR_BUILD_ENEMIES_NEARBY";}; +if (([ getpos player , 500 , KPLIB_side_enemy ] call KPLIB_fnc_getUnitsCount ) > 4 ) exitWith { hint localize "STR_BUILD_ENEMIES_NEARBY";}; if (isNil "buildtype") then {buildtype = 1}; if (isNil "buildindex") then {buildindex = -1}; @@ -34,7 +36,7 @@ localize "STR_BUILD8" ]; _nearfob = [] call KPLIB_fnc_getNearestFob; -_actual_fob = KP_liberation_fob_resources select {((_x select 0) distance _nearfob) < GRLIB_fob_range}; +_actual_fob = KPLIB_fob_resources select {((_x select 0) distance _nearfob) < KPLIB_range_fob}; while {dialog && alive player && (dobuild == 0 || buildtype == 1)} do { _build_list = KPLIB_buildList select buildtype; @@ -42,7 +44,7 @@ while {dialog && alive player && (dobuild == 0 || buildtype == 1)} do { if (_oldbuildtype != buildtype || synchro_done) then { synchro_done = false; _oldbuildtype = buildtype; - _actual_fob = KP_liberation_fob_resources select {((_x select 0) distance _nearfob) < GRLIB_fob_range}; + _actual_fob = KPLIB_fob_resources select {((_x select 0) distance _nearfob) < KPLIB_range_fob}; lbClear 110; { @@ -52,17 +54,17 @@ while {dialog && alive player && (dobuild == 0 || buildtype == 1)} do { _entrytext = getText (_cfg >> _classnamevar >> "displayName"); switch (_classnamevar) do { - case FOB_box_typename: {_entrytext = localize "STR_FOBBOX";}; - case Arsenal_typename: {if (KP_liberation_mobilearsenal) then {_entrytext = localize "STR_ARSENAL_BOX";};}; - case Respawn_truck_typename: {if (KP_liberation_mobilerespawn) then {_entrytext = localize "STR_RESPAWN_TRUCK";};}; - case FOB_truck_typename: {_entrytext = localize "STR_FOBTRUCK";}; + case KPLIB_b_fobBox: {_entrytext = localize "STR_FOBBOX";}; + case KPLIB_b_arsenal: {if (KPLIB_param_mobileArsenal) then {_entrytext = localize "STR_ARSENAL_BOX";};}; + case KPLIB_b_mobileRespawn: {if (KPLIB_param_mobileRespawn) then {_entrytext = localize "STR_RESPAWN_TRUCK";};}; + case KPLIB_b_fobTruck: {_entrytext = localize "STR_FOBTRUCK";}; case "Flag_White_F": {_entrytext = localize "STR_INDIV_FLAG";}; - case KP_liberation_small_storage_building: {_entrytext = localize "STR_SMALL_STORAGE";}; - case KP_liberation_large_storage_building: {_entrytext = localize "STR_LARGE_STORAGE";}; - case KP_liberation_recycle_building: {_entrytext = localize "STR_RECYCLE_BUILDING";}; - case KP_liberation_air_vehicle_building: {_entrytext = localize "STR_HELI_BUILDING";}; - case KP_liberation_heli_slot_building: {_entrytext = localize "STR_HELI_SLOT";}; - case KP_liberation_plane_slot_building: {_entrytext = localize "STR_PLANE_SLOT";}; + case KPLIB_b_smallStorage: {_entrytext = localize "STR_SMALL_STORAGE";}; + case KPLIB_b_largeStorage: {_entrytext = localize "STR_LARGE_STORAGE";}; + case KPLIB_b_logiStation: {_entrytext = localize "STR_RECYCLE_BUILDING";}; + case KPLIB_b_airControl: {_entrytext = localize "STR_HELI_BUILDING";}; + case KPLIB_b_slotHeli: {_entrytext = localize "STR_HELI_SLOT";}; + case KPLIB_b_slotPlane: {_entrytext = localize "STR_PLANE_SLOT";}; default {}; }; @@ -74,8 +76,8 @@ while {dialog && alive player && (dobuild == 0 || buildtype == 1)} do { }; lnbSetPicture [110, [((lnbSize 110) select 0) - 1, 0],_icon]; } else { - if ( ((lnbSize 110) select 0) <= count squads_names ) then { - _squadname = squads_names select ((lnbSize 110) select 0); + if ( ((lnbSize 110) select 0) <= count KPLIB_b_squadNames ) then { + _squadname = KPLIB_b_squadNames select ((lnbSize 110) select 0); } else { _squadname = ""; }; @@ -114,7 +116,7 @@ while {dialog && alive player && (dobuild == 0 || buildtype == 1)} do { _selected_item = lbCurSel 110; _affordable = false; _squad_full = false; - if ((buildtype == 1) && (count (units group player) >= GRLIB_max_squad_size)) then { + if ((buildtype == 1) && (count (units group player) >= KPLIB_param_maxSquadSize)) then { _squad_full = true; }; _linked = false; @@ -129,14 +131,14 @@ while {dialog && alive player && (dobuild == 0 || buildtype == 1)} do { ) then { if !((_build_item select 0) isEqualType []) then { if ((toLower (_build_item select 0)) in KPLIB_b_air_classes && !([_build_item select 0] call KPLIB_fnc_isClassUAV)) then { - if (KP_liberation_air_vehicle_building_near && - ((((_build_item select 0) isKindOf "Helicopter") && (KP_liberation_heli_count < KP_liberation_heli_slots)) || - (((_build_item select 0) isKindOf "Plane") && (KP_liberation_plane_count < KP_liberation_plane_slots))) + if (KPLIB_b_airControl_near && + ((((_build_item select 0) isKindOf "Helicopter") && (KPLIB_heli_count < KPLIB_heli_slots)) || + (((_build_item select 0) isKindOf "Plane") && (KPLIB_plane_count < KPLIB_plane_slots))) ) then { _affordable = true; }; } else { - if (!((toLower (_build_item select 0)) in KPLIB_airSlots) || (((toLower (_build_item select 0)) in KPLIB_airSlots) && KP_liberation_air_vehicle_building_near)) then { + if (!((toLower (_build_item select 0)) in KPLIB_airSlots) || (((toLower (_build_item select 0)) in KPLIB_airSlots) && KPLIB_b_airControl_near)) then { _affordable = true; }; }; @@ -146,10 +148,10 @@ while {dialog && alive player && (dobuild == 0 || buildtype == 1)} do { }; if ( buildtype != 8 ) then { - { if ( ( _build_item select 0 ) == ( _x select 0 ) ) exitWith { _base_link = _x select 1; _linked = true; } } foreach GRLIB_vehicle_to_military_base_links; + { if ( ( _build_item select 0 ) == ( _x select 0 ) ) exitWith { _base_link = _x select 1; _linked = true; } } foreach KPLIB_vehicle_to_military_base_links; if ( _linked ) then { - if ( !(_base_link in blufor_sectors) ) then { _linked_unlocked = false }; + if ( !(_base_link in KPLIB_sectors_player) ) then { _linked_unlocked = false }; }; }; }; @@ -165,20 +167,20 @@ while {dialog && alive player && (dobuild == 0 || buildtype == 1)} do { ctrlEnable [ 120, _affordable && _linked_unlocked && !(_squad_full) ]; ctrlEnable [ 121, _affordable_crew && _linked_unlocked ]; - ctrlSetText [131, format [ "%1 : %2" , localize "STR_MANPOWER", (floor KP_liberation_supplies)]] ; - ctrlSetText [132, format [ "%1 : %2" , localize "STR_AMMO", (floor KP_liberation_ammo)]]; - ctrlSetText [133, format [ "%1 : %2" , localize "STR_FUEL", (floor KP_liberation_fuel)]]; + ctrlSetText [131, format [ "%1 : %2" , localize "STR_MANPOWER", (floor KPLIB_supplies)]] ; + ctrlSetText [132, format [ "%1 : %2" , localize "STR_AMMO", (floor KPLIB_ammo)]]; + ctrlSetText [133, format [ "%1 : %2" , localize "STR_FUEL", (floor KPLIB_fuel)]]; ((findDisplay 5501) displayCtrl (134)) ctrlSetStructuredText formatText [ "%1/%2 %3 - %4/%5 %6 - %7/%8 %9", unitcap, ([] call KPLIB_fnc_getLocalCap), image "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa", - KP_liberation_heli_count, - KP_liberation_heli_slots, + KPLIB_heli_count, + KPLIB_heli_slots, image "\A3\air_f_beta\Heli_Transport_01\Data\UI\Map_Heli_Transport_01_base_CA.paa", - KP_liberation_plane_count, - KP_liberation_plane_slots, + KPLIB_plane_count, + KPLIB_plane_slots, image "\A3\Air_F_EPC\Plane_CAS_01\Data\UI\Map_Plane_CAS_01_CA.paa" ]; diff --git a/Missionframework/scripts/client/civinformant/civinfo_escort.sqf b/Missionframework/scripts/client/civinformant/civinfo_escort.sqf index 192caa6f9..89f4b53cd 100644 --- a/Missionframework/scripts/client/civinformant/civinfo_escort.sqf +++ b/Missionframework/scripts/client/civinformant/civinfo_escort.sqf @@ -1,12 +1,14 @@ +scriptName "civinfo_escort"; + params ["_informant"]; if (isDedicated) exitWith {}; -if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_escort called on: %1 - Parameters: [%2]", debug_source, _informant], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_civinfo_debug > 0) then {[format ["civinfo_escort called on: %1 - Parameters: [%2]", debug_source, _informant], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; waitUntil {sleep 0.5; local _informant || !alive _informant}; -if !(alive _informant) exitWith {if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_escort exited by: %1 - Informant isn't alive", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];};}; +if !(alive _informant) exitWith {if (KPLIB_civinfo_debug > 0) then {[format ["civinfo_escort exited by: %1 - Informant isn't alive", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];};}; private _is_near_fob = false; @@ -31,7 +33,7 @@ waitUntil {sleep 5; if (alive _informant) then { if (_is_near_fob) then { sleep 5; - private _grp = createGroup [GRLIB_side_friendly, true]; + private _grp = createGroup [KPLIB_side_player, true]; [_informant] joinSilent _grp; _informant playmove "AmovPercMstpSnonWnonDnon_AmovPsitMstpSnonWnonDnon_ground"; _informant disableAI "ANIM"; @@ -39,9 +41,9 @@ if (alive _informant) then { sleep 5; [_informant, "AidlPsitMstpSnonWnonDnon_ground00"] remoteExecCall ["switchMove"]; [_informant] remoteExec ["civinfo_delivered",2]; - if (KP_liberation_civinfo_debug > 0) then {["civinfo_escort -> Informant at FOB", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {["civinfo_escort -> Informant at FOB", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; sleep 600; deleteVehicle _informant; - if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_escort finished by: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {[format ["civinfo_escort finished by: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; }; }; diff --git a/Missionframework/scripts/client/civinformant/civinfo_notifications.sqf b/Missionframework/scripts/client/civinformant/civinfo_notifications.sqf index 317f6d41c..727f7eeef 100644 --- a/Missionframework/scripts/client/civinformant/civinfo_notifications.sqf +++ b/Missionframework/scripts/client/civinformant/civinfo_notifications.sqf @@ -2,7 +2,7 @@ if (isDedicated) exitWith {}; params ["_notif_id", ["_pos", getpos player]]; -if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_notifications called on: %1 - Parameters: [%2, %3]", debug_source, _notif_id, _pos], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_civinfo_debug > 0) then {[format ["civinfo_notifications called on: %1 - Parameters: [%2, %3]", debug_source, _notif_id, _pos], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; switch (_notif_id) do { case 0: { @@ -28,11 +28,11 @@ switch (_notif_id) do { case 4: { ["lib_civ_hvt_start", [markertext ([10000, _pos] call KPLIB_fnc_getNearestSector)]] call BIS_fnc_showNotification; private _marker = createMarker ["HVT_marker", _pos]; - _marker setMarkerColor GRLIB_color_enemy_bright; + _marker setMarkerColor KPLIB_color_enemyActive; _marker setMarkerType "hd_unknown"; private _marker_zone = createMarker ["HVT_zone", _pos]; - _marker_zone setMarkerColor GRLIB_color_enemy_bright; + _marker_zone setMarkerColor KPLIB_color_enemyActive; _marker_zone setMarkerShape "ELLIPSE"; _marker_zone setMarkerBrush "FDiagonal"; _marker_zone setMarkerSize [500,500]; diff --git a/Missionframework/scripts/client/commander/enforce_whitelist.sqf b/Missionframework/scripts/client/commander/enforce_whitelist.sqf index df2a95486..8283df592 100644 --- a/Missionframework/scripts/client/commander/enforce_whitelist.sqf +++ b/Missionframework/scripts/client/commander/enforce_whitelist.sqf @@ -1,23 +1,12 @@ scriptName "[KPLIB] Enforce Whitelist"; -[] call compileFinal preprocessFileLineNumbers "whitelist.sqf"; - -if (!GRLIB_use_whitelist) exitWith {}; +if (!KPLIB_param_cmdrWhitelist) exitWith {}; waitUntil {alive player}; sleep 1; if (player isEqualTo ([] call KPLIB_fnc_getCommander) && !(serverCommandAvailable "#kick")) then { - - private _match = false; - - [] call { - if ((getPlayerUID player) in GRLIB_whitelisted_steamids) exitWith {_match = true;}; - if ((name player) in GRLIB_whitelisted_names) exitWith {_match = true;}; - if (!((squadParams player) isEqualTo []) && {(((squadParams player) select 0) select 0) in GRLIB_whitelisted_tags}) exitWith {_match = true;}; - }; - - if (!_match) then { + if !((getPlayerUID player) in KPLIB_whitelist_cmdrSlot) then { sleep 1; endMission "END1"; }; diff --git a/Missionframework/scripts/client/commander/open_logistic.sqf b/Missionframework/scripts/client/commander/open_logistic.sqf index eabe4df01..e9745b386 100644 --- a/Missionframework/scripts/client/commander/open_logistic.sqf +++ b/Missionframework/scripts/client/commander/open_logistic.sqf @@ -1,3 +1,5 @@ +scriptName "open_logistic"; + private ["_dialog", "_logi_count", "_listselect", "_selectedGroup", "_detailControls", "_nearfob", "_logi_destinations", "_mapdisplay", "_tempvariable"]; _dialog = createDialog "liberation_logistic"; @@ -13,12 +15,12 @@ _nearfob = [] call KPLIB_fnc_getNearestFob; _logi_destinations = []; { - _logi_destinations pushBack [(format ["FOB %1", military_alphabet select _forEachIndex]), (_x select 0), (_x select 1), (_x select 2), (_x select 3)]; -} forEach KP_liberation_fob_resources; + _logi_destinations pushBack [(format ["FOB %1", KPLIB_militaryAlphabet select _forEachIndex]), (_x select 0), (_x select 1), (_x select 2), (_x select 3)]; +} forEach KPLIB_fob_resources; { _logi_destinations pushBack [(_x select 0), (markerPos (_x select 1)), (_x select 9), (_x select 10), (_x select 11)]; -} forEach KP_liberation_production; +} forEach KPLIB_production; _logi_destinations sort true; @@ -61,35 +63,35 @@ while {dialog && (alive player)} do { if (addLogiGroup == 1) then { addLogiGroup = 0; [_selectedGroup] remoteExec ["add_logiGroup_remote_call",2]; - waitUntil {sleep 0.5; _logi_count != (count KP_liberation_logistics)}; + waitUntil {sleep 0.5; _logi_count != (count KPLIB_logistics)}; }; if (deleteLogiGroup == 1) then { deleteLogiGroup = 0; [_selectedGroup] remoteExec ["del_logiGroup_remote_call",2]; lbSetCurSel [75802,-1]; - waitUntil {sleep 0.5; _logi_count != (count KP_liberation_logistics)}; + waitUntil {sleep 0.5; _logi_count != (count KPLIB_logistics)}; }; if (buyLogiTruck == 1) then { buyLogiTruck = 0; _tempvariable = _selectedGroup select 1; - [_listselect, _nearfob, clientOwner, KP_liberation_supplies, KP_liberation_ammo, KP_liberation_fuel] remoteExec ["add_logiTruck_remote_call",2]; - waitUntil {sleep 0.5; (_tempvariable != ((KP_liberation_logistics select _listselect) select 1)) || (logiError == 1)}; + [_listselect, _nearfob, clientOwner, KPLIB_supplies, KPLIB_ammo, KPLIB_fuel] remoteExec ["add_logiTruck_remote_call",2]; + waitUntil {sleep 0.5; (_tempvariable != ((KPLIB_logistics select _listselect) select 1)) || (logiError == 1)}; }; if (sellLogiTruck == 1) then { sellLogiTruck = 0; _tempvariable = _selectedGroup select 1; [_listselect, _nearfob, clientOwner] remoteExec ["del_logiTruck_remote_call",2]; - waitUntil {sleep 0.5; (_tempvariable != ((KP_liberation_logistics select _listselect) select 1)) || (logiError == 1)}; + waitUntil {sleep 0.5; (_tempvariable != ((KPLIB_logistics select _listselect) select 1)) || (logiError == 1)}; }; if (saveConvoySettings == 1) then { saveConvoySettings = 0; if (((lbCurSel 758024) != -1) && ((lbCurSel 758029) != -1)) then { [_listselect, ((_logi_destinations select lbCurSel 758024) select 1), [parseNumber ctrlText 758025,parseNumber ctrlText 758026,parseNumber ctrlText 758027], ((_logi_destinations select lbCurSel 758029) select 1), [parseNumber ctrlText 758030,parseNumber ctrlText 758031,parseNumber ctrlText 758032], clientOwner] remoteExec ["save_logi_remote_call",2]; - waitUntil {sleep 0.5; (!(_selectedGroup isEqualTo (KP_liberation_logistics select _listselect))) || (logiError == 1)}; + waitUntil {sleep 0.5; (!(_selectedGroup isEqualTo (KPLIB_logistics select _listselect))) || (logiError == 1)}; } else { hint localize "STR_LOGISTIC_SAVE_ERROR"; }; @@ -98,19 +100,19 @@ while {dialog && (alive player)} do { if (convoyStandby == 1) then { convoyStandby = 0; [_listselect, clientOwner] remoteExec ["abort_logi_remote_call",2]; - waitUntil {sleep 0.5; (!(_selectedGroup isEqualTo (KP_liberation_logistics select _listselect))) || (logiError == 1)}; + waitUntil {sleep 0.5; (!(_selectedGroup isEqualTo (KPLIB_logistics select _listselect))) || (logiError == 1)}; }; logiError = 0; _tempvariable = nil; ctrlEnable [75803, true]; - if (_logi_count != (count KP_liberation_logistics)) then { - _logi_count = (count KP_liberation_logistics); + if (_logi_count != (count KPLIB_logistics)) then { + _logi_count = (count KPLIB_logistics); lbClear 75802; { lbAdd [75802, (_x select 0)]; - } forEach KP_liberation_logistics; + } forEach KPLIB_logistics; }; if ((_logi_count > 0) && (lbCurSel 75802 == -1)) then { @@ -122,7 +124,7 @@ while {dialog && (alive player)} do { if ((_listselect != -1) && (_logi_count > 0)) then { {ctrlShow [_x, true]} forEach _detailControls; - _selectedGroup = +(KP_liberation_logistics select _listselect); + _selectedGroup = +(KPLIB_logistics select _listselect); if ((_selectedGroup select 7) == 0) then { ctrlEnable [758021, true]; diff --git a/Missionframework/scripts/client/commander/open_permissions.sqf b/Missionframework/scripts/client/commander/open_permissions.sqf index e48cfa5fb..38145efe4 100644 --- a/Missionframework/scripts/client/commander/open_permissions.sqf +++ b/Missionframework/scripts/client/commander/open_permissions.sqf @@ -1,4 +1,6 @@ -waitUntil {!isNil "GRLIB_permissions"}; +scriptName "open_permissions"; + +waitUntil {!isNil "KPLIB_permissions"}; private _players_array = []; private _uids_array = ["Default"]; @@ -11,14 +13,14 @@ color_authorized = [0,0.9,0,1]; color_denied = [0.9,0,0,1]; fontsize = 0.017 * safezoneH; -private _modify_permissions = +GRLIB_permissions; +private _modify_permissions = +KPLIB_permissions; disableSerialization; waitUntil { dialog }; -permission_create_activetext = compileFinal ' +permission_create_activetext = compile ' params ["_idx", "_column", "_permission", "_text", "_tooltip"]; @@ -193,8 +195,8 @@ while {dialog && alive player} do { } foreach _players_array; if (save_changes == 1) then { - GRLIB_permissions = +_modify_permissions; - publicVariable "GRLIB_permissions"; + KPLIB_permissions = +_modify_permissions; + publicVariable "KPLIB_permissions"; closeDialog 0; }; diff --git a/Missionframework/scripts/client/commander/open_production.sqf b/Missionframework/scripts/client/commander/open_production.sqf index d7c7b3544..22ba91d02 100644 --- a/Missionframework/scripts/client/commander/open_production.sqf +++ b/Missionframework/scripts/client/commander/open_production.sqf @@ -1,3 +1,5 @@ +scriptName "open_production"; + private ["_dialog", "_color_positive", "_color_neutral", "_color_negative", "_color_actual", "_sectorType", "_storage", "_crateCount", "_crateMax", "_producing", "_storagespace", "_productiontime", "_saveChanges", "_listselect", "_listcolor", "_selectedSector", "_mapdisplay", "_supplyValue", "_ammoValue", "_fuelValue"]; _dialog = createDialog "liberation_production"; @@ -20,7 +22,7 @@ _mapdisplay = ((findDisplay 75801) displayCtrl 758016); lbClear 75802; { lbAdd [75802, (markerText (_x select 1))]; -} forEach KP_liberation_production; +} forEach KPLIB_production; ctrlMapAnimClear _mapdisplay; @@ -32,7 +34,7 @@ while {dialog && (alive player)} do { if (saveSectorSetting == 1) then { saveSectorSetting = 0; [(_selectedSector select 1), new_production] remoteExec ["change_prod_remote_call",2]; - waitUntil {sleep 0.5; (!(_selectedSector isEqualTo (KP_liberation_production select _listselect)))}; + waitUntil {sleep 0.5; (!(_selectedSector isEqualTo (KPLIB_production select _listselect)))}; }; _listselect = -1; @@ -52,11 +54,11 @@ while {dialog && (alive player)} do { }; lbSetColor [75802, _listselect, _listcolor]; - } forEach KP_liberation_production; + } forEach KPLIB_production; _listselect = (lbCurSel 75802); waitUntil {_listselect == (lbCurSel 75802)}; - _selectedSector = +(KP_liberation_production select _listselect); + _selectedSector = +(KPLIB_production select _listselect); ctrlSetText [75803,(_selectedSector select 0)]; @@ -64,9 +66,9 @@ while {dialog && (alive player)} do { ctrlSetText [75804, _sectorType]; if ((count (_selectedSector select 3)) > 0) then { - _storage = ((nearestObjects [((_selectedSector select 3) select 0), [KP_liberation_small_storage_building], 25]) select 0); + _storage = ((nearestObjects [((_selectedSector select 3) select 0), [KPLIB_b_smallStorage], 25]) select 0); _crateCount = count (attachedObjects _storage); - _crateMax = count (KP_liberation_small_storage_positions); + _crateMax = count (KPLIB_small_storage_positions); if (_crateCount >= _crateMax) then { _color_actual = _color_negative; diff --git a/Missionframework/scripts/client/init_client.sqf b/Missionframework/scripts/client/init_client.sqf index 9a3e2edc0..ded8ff47b 100644 --- a/Missionframework/scripts/client/init_client.sqf +++ b/Missionframework/scripts/client/init_client.sqf @@ -1,43 +1,12 @@ -[] call compileFinal preprocessFileLineNumbers "scripts\client\misc\init_markers.sqf"; -switch (KP_liberation_arsenal) do { - case 1: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\custom.sqf";}; - case 2: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\rhsusaf.sqf";}; - case 3: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\3cbBAF.sqf";}; - case 4: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\gm_west.sqf";}; - case 5: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\gm_east.sqf";}; - case 6: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\csat.sqf";}; - case 7: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\unsung.sqf";}; - case 8: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\sfp.sqf";}; - case 9: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\bwmod.sqf";}; - case 10: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_nato_mtp.sqf";}; - case 11: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_nato_tropic.sqf";}; - case 12: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_nato_wdl.sqf";}; - case 13: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_csat_hex.sqf";}; - case 14: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_csat_ghex.sqf";}; - case 15: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_aaf.sqf";}; - case 16: {[] call compileFinal preprocessFileLineNumbers "arsenal_presets\vanilla_ldf.sqf";}; - default {GRLIB_arsenal_weapons = [];GRLIB_arsenal_magazines = [];GRLIB_arsenal_items = [];GRLIB_arsenal_backpacks = [];}; -}; - -if (typeOf player == "VirtualSpectator_F") exitWith { - execVM "scripts\client\markers\empty_vehicles_marker.sqf"; - execVM "scripts\client\markers\fob_markers.sqf"; - execVM "scripts\client\markers\group_icons.sqf"; - execVM "scripts\client\markers\hostile_groups.sqf"; - execVM "scripts\client\markers\sector_manager.sqf"; - execVM "scripts\client\markers\spot_timer.sqf"; - execVM "scripts\client\misc\synchronise_vars.sqf"; - execVM "scripts\client\ui\ui_manager.sqf"; -}; +[] call compile preprocessFileLineNumbers "scripts\client\misc\init_markers.sqf"; +[] call KPLIB_fnc_initArsenal; -// This causes the script error with not defined variable _display in File A3\functions_f_bootcamp\Inventory\fn_arsenal.sqf [BIS_fnc_arsenal], line 2122 -// ["Preload"] call BIS_fnc_arsenal; -spawn_camera = compileFinal preprocessFileLineNumbers "scripts\client\spawn\spawn_camera.sqf"; -cinematic_camera = compileFinal preprocessFileLineNumbers "scripts\client\ui\cinematic_camera.sqf"; -write_credit_line = compileFinal preprocessFileLineNumbers "scripts\client\ui\write_credit_line.sqf"; -do_load_box = compileFinal preprocessFileLineNumbers "scripts\client\ammoboxes\do_load_box.sqf"; -kp_fuel_consumption = compileFinal preprocessFileLineNumbers "scripts\client\misc\kp_fuel_consumption.sqf"; -kp_vehicle_permissions = compileFinal preprocessFileLineNumbers "scripts\client\misc\vehicle_permissions.sqf"; +spawn_camera = compile preprocessFileLineNumbers "scripts\client\spawn\spawn_camera.sqf"; +cinematic_camera = compile preprocessFileLineNumbers "scripts\client\ui\cinematic_camera.sqf"; +write_credit_line = compile preprocessFileLineNumbers "scripts\client\ui\write_credit_line.sqf"; +do_load_box = compile preprocessFileLineNumbers "scripts\client\ammoboxes\do_load_box.sqf"; +kp_fuel_consumption = compile preprocessFileLineNumbers "scripts\client\misc\kp_fuel_consumption.sqf"; +kp_vehicle_permissions = compile preprocessFileLineNumbers "scripts\client\misc\vehicle_permissions.sqf"; execVM "scripts\client\actions\intel_manager.sqf"; execVM "scripts\client\actions\recycle_manager.sqf"; @@ -46,17 +15,16 @@ execVM "scripts\client\ammoboxes\ammobox_action_manager.sqf"; execVM "scripts\client\build\build_overlay.sqf"; execVM "scripts\client\build\do_build.sqf"; execVM "scripts\client\commander\enforce_whitelist.sqf"; -if (KP_liberation_mapmarkers) then {execVM "scripts\client\markers\empty_vehicles_marker.sqf";}; +if (KPLIB_param_mapMarkers) then {execVM "scripts\client\markers\empty_vehicles_marker.sqf";}; execVM "scripts\client\markers\fob_markers.sqf"; -if (!KP_liberation_high_command && KP_liberation_mapmarkers) then {execVM "scripts\client\markers\group_icons.sqf";}; +if (!KPLIB_param_highCommand && KPLIB_param_mapMarkers) then {execVM "scripts\client\markers\group_icons.sqf";}; execVM "scripts\client\markers\hostile_groups.sqf"; -if (KP_liberation_mapmarkers) then {execVM "scripts\client\markers\huron_marker.sqf";} else {deleteMarkerLocal "huronmarker"}; +if (KPLIB_param_mapMarkers) then {execVM "scripts\client\markers\huron_marker.sqf";} else {deleteMarkerLocal "huronmarker"}; execVM "scripts\client\markers\sector_manager.sqf"; execVM "scripts\client\markers\spot_timer.sqf"; execVM "scripts\client\misc\broadcast_squad_colors.sqf"; -execVM "scripts\client\misc\init_arsenal.sqf"; execVM "scripts\client\misc\permissions_warning.sqf"; -if (!KP_liberation_ace) then {execVM "scripts\client\misc\resupply_manager.sqf";}; +if (!KPLIB_ace) then {execVM "scripts\client\misc\resupply_manager.sqf";}; execVM "scripts\client\misc\secondary_jip.sqf"; execVM "scripts\client\misc\synchronise_vars.sqf"; execVM "scripts\client\misc\synchronise_eco.sqf"; @@ -66,38 +34,47 @@ execVM "scripts\client\ui\ui_manager.sqf"; execVM "scripts\client\ui\tutorial_manager.sqf"; execVM "scripts\client\markers\update_production_sites.sqf"; -player addMPEventHandler ["MPKilled", {_this spawn kill_manager;}]; +player addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; +}]; player addEventHandler ["GetInMan", {[_this select 2] spawn kp_fuel_consumption;}]; player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehiclesSeized;}]; player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehicleCaptured;}]; player addEventHandler ["GetInMan", {[_this select 2] call kp_vehicle_permissions;}]; +player addEventHandler ["GetInMan", { + params ["_player"]; + // prevent players from getting into vehicles while carrying + if (isNull (_player getVariable ["KPLIB_carriedObject", objNull])) exitWith {}; + moveOut _player; +}]; player addEventHandler ["SeatSwitchedMan", {[_this select 2] call kp_vehicle_permissions;}]; player addEventHandler ["HandleRating", {if ((_this select 1) < 0) then {0};}]; // Disable stamina, if selected in parameter -if (!GRLIB_fatigue) then { +if (!KPLIB_param_fatigue) then { player enableStamina false; player addEventHandler ["Respawn", {player enableStamina false;}]; }; // Reduce aim precision coefficient, if selected in parameter -if (!KPLIB_sway) then { +if (!KPLIB_param_weaponSway) then { player setCustomAimCoef 0.1; player addEventHandler ["Respawn", {player setCustomAimCoef 0.1;}]; }; execVM "scripts\client\ui\intro.sqf"; -[player] joinSilent (createGroup [GRLIB_side_friendly, true]); +[player] joinSilent (createGroup [KPLIB_side_player, true]); // Commander init if (player isEqualTo ([] call KPLIB_fnc_getCommander)) then { // Start tutorial - if (KP_liberation_tutorial) then { + if (KPLIB_param_tutorial) then { [] call KPLIB_fnc_tutorial; }; // Request Zeus if enabled - if (KP_liberation_commander_zeus) then { + if (KPLIB_param_zeusCommander) then { [] spawn { sleep 5; [] call KPLIB_fnc_requestZeus; diff --git a/Missionframework/scripts/client/markers/empty_vehicles_marker.sqf b/Missionframework/scripts/client/markers/empty_vehicles_marker.sqf index da3d2ac92..def0e60e3 100644 --- a/Missionframework/scripts/client/markers/empty_vehicles_marker.sqf +++ b/Missionframework/scripts/client/markers/empty_vehicles_marker.sqf @@ -1,3 +1,5 @@ +scriptName "empty_vehicles_marker"; + private [ "_vehmarkers", "_markedveh", "_cfg", "_vehtomark", "_supporttomark", "_marker" ]; _vehmarkers = []; @@ -6,8 +8,8 @@ _cfg = configFile >> "cfgVehicles"; _vehtomark = []; _support_to_skip = [ - KP_liberation_recycle_building, - KP_liberation_air_vehicle_building, + KPLIB_b_logiStation, + KPLIB_b_airControl, "B_Slingload_01_Repair_F", "B_Slingload_01_Fuel_F", "B_Slingload_01_Ammo_F" diff --git a/Missionframework/scripts/client/markers/fob_markers.sqf b/Missionframework/scripts/client/markers/fob_markers.sqf index d174d82c2..6daf68488 100644 --- a/Missionframework/scripts/client/markers/fob_markers.sqf +++ b/Missionframework/scripts/client/markers/fob_markers.sqf @@ -1,6 +1,8 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {!isNil "GRLIB_all_fobs"}; -waitUntil {save_is_loaded}; +scriptName "fob_markers"; + +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {!isNil "KPLIB_sectors_fob"}; +waitUntil {KPLIB_saveLoaded}; uiSleep 3; @@ -8,22 +10,22 @@ private _markers = []; private _markers_mobilespawns = []; while {true} do { - if (count _markers != count GRLIB_all_fobs) then { + if (count _markers != count KPLIB_sectors_fob) then { {deleteMarkerLocal _x;} forEach _markers; _markers = []; - for "_idx" from 0 to ((count GRLIB_all_fobs) - 1) do { + for "_idx" from 0 to ((count KPLIB_sectors_fob) - 1) do { private _marker = createMarkerLocal [format ["fobmarker%1", _idx], markers_reset]; _marker setMarkerTypeLocal "b_hq"; _marker setMarkerSizeLocal [1.5, 1.5]; - _marker setMarkerPosLocal (GRLIB_all_fobs select _idx); - _marker setMarkerTextLocal format ["FOB %1",military_alphabet select _idx]; + _marker setMarkerPosLocal (KPLIB_sectors_fob select _idx); + _marker setMarkerTextLocal format ["FOB %1",KPLIB_militaryAlphabet select _idx]; _marker setMarkerColorLocal "ColorYellow"; _markers pushback _marker; }; }; - if (KP_liberation_mobilerespawn) then { + if (KPLIB_param_mobileRespawn) then { private _respawn_trucks = [] call KPLIB_fnc_getMobileRespawns; if (count _markers_mobilespawns != count _respawn_trucks) then { diff --git a/Missionframework/scripts/client/markers/group_icons.sqf b/Missionframework/scripts/client/markers/group_icons.sqf index 4ed874e8b..97b4aac33 100644 --- a/Missionframework/scripts/client/markers/group_icons.sqf +++ b/Missionframework/scripts/client/markers/group_icons.sqf @@ -1,3 +1,5 @@ +scriptName "group_icons"; + private [ "_iconed_groups", "_ticks", "_localgroup", "_grouptype", "_groupicon" ]; _iconed_groups = []; @@ -7,15 +9,15 @@ setGroupIconsVisible [true,false]; while { true } do { { - if ((_x != group player) && ((side _x == GRLIB_side_friendly))) then { + if ((_x != group player) && ((side _x == KPLIB_side_player))) then { if ( (_x in _iconed_groups) && ( - (count units _x == 0) || (side _x == GRLIB_side_friendly && (((leader _x) distance (markerPos GRLIB_respawn_marker) < 100) || ((leader _x) distance startbase < 500))))) then { + (count units _x == 0) || (side _x == KPLIB_side_player && (((leader _x) distance (markerPos KPLIB_respawn_marker) < 100) || ((leader _x) distance startbase < 500))))) then { clearGroupIcons _x; _iconed_groups = _iconed_groups - [_x]; }; if ( !(_x in _iconed_groups) && ( - (count units _x > 0) && (side _x == GRLIB_side_friendly && (((leader _x) distance (markerPos GRLIB_respawn_marker) > 100) && ((leader _x) distance startbase > 500))))) then { + (count units _x > 0) && (side _x == KPLIB_side_player && (((leader _x) distance (markerPos KPLIB_respawn_marker) > 100) && ((leader _x) distance startbase > 500))))) then { clearGroupIcons _x; _localgroup = _x; _grouptype = [_localgroup] call KPLIB_fnc_getGroupType; @@ -33,7 +35,7 @@ while { true } do { _localgroup addGroupIcon [ _groupicon, [ 0,0 ] ]; - if ( side _localgroup == GRLIB_side_friendly ) then { + if ( side _localgroup == KPLIB_side_player ) then { _groupiconsize = "group_0"; _groupsize = (count (units _localgroup)); if ( _groupsize >= 2 ) then { _groupiconsize = "group_1" }; diff --git a/Missionframework/scripts/client/markers/hostile_groups.sqf b/Missionframework/scripts/client/markers/hostile_groups.sqf index 143ef1007..a9d7a7802 100644 --- a/Missionframework/scripts/client/markers/hostile_groups.sqf +++ b/Missionframework/scripts/client/markers/hostile_groups.sqf @@ -1,6 +1,8 @@ +scriptName "hostile_groups"; + private ["_kp_markers_array","_kp_markers_start","_kp_markers_change","_kp_markers_pos","_kp_markers_posx","_kp_markers_posy","_kp_markers_name","_kp_markers_color"]; -waitUntil {sleep 0.1; !isNil "save_is_loaded" && {save_is_loaded}}; +waitUntil {sleep 0.1; !isNil "KPLIB_saveLoaded" && {KPLIB_saveLoaded}}; _kp_markers_array = []; _kp_markers_start = 0.2; @@ -10,7 +12,7 @@ while {true} do { {deleteMarkerLocal _x;} forEach _kp_markers_array; _kp_markers_array = []; { - if ((side _x == GRLIB_side_enemy) && (({!captive _x} count (units _x) ) > 0) && ([(getpos leader _x), GRLIB_side_friendly, GRLIB_radiotower_size] call KPLIB_fnc_getNearestTower != "")) then { + if ((side _x == KPLIB_side_enemy) && (({!captive _x} count (units _x) ) > 0) && ([(getpos leader _x), KPLIB_side_player, KPLIB_range_radioTowerScan] call KPLIB_fnc_getNearestTower != "")) then { _kp_markers_pos = getPosATL leader _x; _kp_markers_posx = floor (_kp_markers_pos select 0); _kp_markers_posx = _kp_markers_posx - (_kp_markers_posx mod 500); diff --git a/Missionframework/scripts/client/markers/huron_marker.sqf b/Missionframework/scripts/client/markers/huron_marker.sqf index 0b62c5b2a..6e08dcddd 100644 --- a/Missionframework/scripts/client/markers/huron_marker.sqf +++ b/Missionframework/scripts/client/markers/huron_marker.sqf @@ -1,3 +1,5 @@ +scriptName "huron_marker"; + private [ "_huronlocal" ]; "huronmarker" setMarkerTextLocal "Potato 01"; diff --git a/Missionframework/scripts/client/markers/sector_manager.sqf b/Missionframework/scripts/client/markers/sector_manager.sqf index e3be8ac60..08eab3b37 100644 --- a/Missionframework/scripts/client/markers/sector_manager.sqf +++ b/Missionframework/scripts/client/markers/sector_manager.sqf @@ -1,7 +1,9 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {!isNil "GRLIB_vehicle_to_military_base_links"}; -waitUntil {!isNil "blufor_sectors"}; -waitUntil {save_is_loaded}; +scriptName "sector_manager"; + +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {!isNil "KPLIB_vehicle_to_military_base_links"}; +waitUntil {!isNil "KPLIB_sectors_player"}; +waitUntil {KPLIB_saveLoaded}; private _vehicle_unlock_markers = []; private _cfg = configFile >> "cfgVehicles"; @@ -10,10 +12,10 @@ private _cfg = configFile >> "cfgVehicles"; _x params ["_vehicle", "_base"]; private _marker = createMarkerLocal [format ["vehicleunlockmarker%1", _base], [(markerpos _base) select 0, ((markerpos _base) select 1) + 125]]; _marker setMarkerTextLocal (getText (_cfg >> _vehicle >> "displayName")); - _marker setMarkerColorLocal GRLIB_color_enemy; + _marker setMarkerColorLocal KPLIB_color_enemy; _marker setMarkerTypeLocal "mil_pickup"; _vehicle_unlock_markers pushback [_marker, _base]; -} forEach GRLIB_vehicle_to_military_base_links; +} forEach KPLIB_vehicle_to_military_base_links; private _sector_count = -1; @@ -22,15 +24,15 @@ uiSleep 1; while {true} do { waitUntil { uiSleep 1; - count blufor_sectors != _sector_count + count KPLIB_sectors_player != _sector_count }; - {_x setMarkerColorLocal GRLIB_color_enemy;} forEach (sectors_allSectors - blufor_sectors); - {_x setMarkerColorLocal GRLIB_color_friendly;} forEach blufor_sectors; + {_x setMarkerColorLocal KPLIB_color_enemy;} forEach (KPLIB_sectors_all - KPLIB_sectors_player); + {_x setMarkerColorLocal KPLIB_color_player;} forEach KPLIB_sectors_player; { _x params ["_marker", "_base"]; - _marker setMarkerColorLocal ([GRLIB_color_enemy, GRLIB_color_friendly] select (_base in blufor_sectors)); + _marker setMarkerColorLocal ([KPLIB_color_enemy, KPLIB_color_player] select (_base in KPLIB_sectors_player)); } forEach _vehicle_unlock_markers; - _sector_count = count blufor_sectors; + _sector_count = count KPLIB_sectors_player; }; diff --git a/Missionframework/scripts/client/markers/spot_timer.sqf b/Missionframework/scripts/client/markers/spot_timer.sqf index 8a5ace2f7..f38dccb27 100644 --- a/Missionframework/scripts/client/markers/spot_timer.sqf +++ b/Missionframework/scripts/client/markers/spot_timer.sqf @@ -1,10 +1,12 @@ +scriptName "spot_timer"; + createMarkerLocal ["opfor_bg_marker", markers_reset]; "opfor_bg_marker" setMarkerTypeLocal "mil_unknown"; -"opfor_bg_marker" setMarkerColorLocal GRLIB_color_enemy_bright; +"opfor_bg_marker" setMarkerColorLocal KPLIB_color_enemyActive; createMarkerLocal ["opfor_capture_marker", markers_reset]; "opfor_capture_marker" setMarkerTypeLocal "mil_objective"; -"opfor_capture_marker" setMarkerColorLocal GRLIB_color_enemy_bright; +"opfor_capture_marker" setMarkerColorLocal KPLIB_color_enemyActive; if ( isNil "sector_timer" ) then { sector_timer = 0 }; diff --git a/Missionframework/scripts/client/markers/update_production_sites.sqf b/Missionframework/scripts/client/markers/update_production_sites.sqf index a0f4b8bba..22b54df16 100644 --- a/Missionframework/scripts/client/markers/update_production_sites.sqf +++ b/Missionframework/scripts/client/markers/update_production_sites.sqf @@ -1,12 +1,14 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {!isNil "KP_liberation_production_markers"}; -waitUntil {save_is_loaded}; +scriptName "update_production_sites"; -private _KP_liberation_production_markers_old = [0]; +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {!isNil "KPLIB_production_markers"}; +waitUntil {KPLIB_saveLoaded}; -while {GRLIB_endgame == 0} do { +private _KPLIB_production_markers_old = [0]; + +while {KPLIB_endgame == 0} do { waitUntil {sleep 5; - !(_KP_liberation_production_markers_old isEqualTo KP_liberation_production_markers) + !(_KPLIB_production_markers_old isEqualTo KPLIB_production_markers) }; { @@ -16,7 +18,7 @@ while {GRLIB_endgame == 0} do { if (_x select 3) then {_marker_text = _marker_text + "F";}; _marker_text = _marker_text + "]"; (_x select 0) setMarkerTextLocal _marker_text; - } forEach KP_liberation_production_markers; + } forEach KPLIB_production_markers; - _KP_liberation_production_markers_old = +KP_liberation_production_markers; + _KPLIB_production_markers_old = +KPLIB_production_markers; }; diff --git a/Missionframework/scripts/client/misc/broadcast_squad_colors.sqf b/Missionframework/scripts/client/misc/broadcast_squad_colors.sqf index 04afe19d9..3cc4611ad 100644 --- a/Missionframework/scripts/client/misc/broadcast_squad_colors.sqf +++ b/Missionframework/scripts/client/misc/broadcast_squad_colors.sqf @@ -1,9 +1,11 @@ +scriptName "broadcast_squad_colors"; + while { true } do { if ( local group player ) then { { - if ( _x getVariable ["GRLIB_squad_color", "MAIN"] != assignedTeam _x ) then { - _x setVariable ["GRLIB_squad_color", assignedTeam _x, true ]; + if ( _x getVariable ["KPLIB_squad_color", "MAIN"] != assignedTeam _x ) then { + _x setVariable ["KPLIB_squad_color", assignedTeam _x, true ]; }; } foreach (units group player); }; diff --git a/Missionframework/scripts/client/misc/fn_initArsenal.sqf b/Missionframework/scripts/client/misc/fn_initArsenal.sqf new file mode 100644 index 000000000..dbc820de7 --- /dev/null +++ b/Missionframework/scripts/client/misc/fn_initArsenal.sqf @@ -0,0 +1,126 @@ +/* + File: fn_initArsenal.sqf + Author: KP Liberation Dev Team - https://github.com/KillahPotatoes + Date: 2020-05-11 + Last Update: 2020-09-26 + License: MIT License - http://www.opensource.org/licenses/MIT + + Description: + Loads the arsenal preset and adjusts the available arsenal gear accordingly. + + Parameter(s): + NONE + + Returns: + Function reached the end [BOOL] +*/ + +if (KPLIB_param_useArsenalPreset) then { + KPLIB_arsenalWeapons = []; + KPLIB_arsenalMagazines = []; + KPLIB_arsenalItems = []; + KPLIB_arsenalBackpacks = []; + KPLIB_arsenalBlacklist = []; + KPLIB_arsenalAllowed = []; + KPLIB_arsenalAllowedExtension = []; + + switch (KPLIB_presetArsenal) do { + case 1: {[] call compile preprocessFileLineNumbers "presets\arsenal\custom.sqf";}; + case 2: {[] call compile preprocessFileLineNumbers "presets\arsenal\rhsusaf.sqf";}; + case 3: {[] call compile preprocessFileLineNumbers "presets\arsenal\3cbBAF.sqf";}; + case 4: {[] call compile preprocessFileLineNumbers "presets\arsenal\gm_west.sqf";}; + case 5: {[] call compile preprocessFileLineNumbers "presets\arsenal\gm_east.sqf";}; + case 6: {[] call compile preprocessFileLineNumbers "presets\arsenal\csat.sqf";}; + case 7: {[] call compile preprocessFileLineNumbers "presets\arsenal\unsung.sqf";}; + case 8: {[] call compile preprocessFileLineNumbers "presets\arsenal\sfp.sqf";}; + case 9: {[] call compile preprocessFileLineNumbers "presets\arsenal\bwmod.sqf";}; + case 10: {[] call compile preprocessFileLineNumbers "presets\arsenal\vanilla_nato_mtp.sqf";}; + case 11: {[] call compile preprocessFileLineNumbers "presets\arsenal\vanilla_nato_tropic.sqf";}; + case 12: {[] call compile preprocessFileLineNumbers "presets\arsenal\vanilla_nato_wdl.sqf";}; + case 13: {[] call compile preprocessFileLineNumbers "presets\arsenal\vanilla_csat_hex.sqf";}; + case 14: {[] call compile preprocessFileLineNumbers "presets\arsenal\vanilla_csat_ghex.sqf";}; + case 15: {[] call compile preprocessFileLineNumbers "presets\arsenal\vanilla_aaf.sqf";}; + case 16: {[] call compile preprocessFileLineNumbers "presets\arsenal\vanilla_ldf.sqf";}; + default {[] call compile preprocessFileLineNumbers "presets\arsenal\blacklist.sqf";}; + }; + [] call compile preprocessFileLineNumbers "presets\arsenal\allowedExtension.sqf"; + + private _crawled = [] call KPLIB_fnc_crawlAllItems; + + if (KPLIB_arsenalWeapons isEqualTo []) then {KPLIB_arsenalWeapons = (_crawled select 0) select {!(_x in KPLIB_arsenalBlacklist)};}; + [missionNamespace, KPLIB_arsenalWeapons] call BIS_fnc_addVirtualWeaponCargo; + KPLIB_arsenalAllowed append KPLIB_arsenalWeapons; + + if (KPLIB_arsenalMagazines isEqualTo []) then {KPLIB_arsenalMagazines = (_crawled select 1) select {!(_x in KPLIB_arsenalBlacklist)};}; + [missionNamespace, KPLIB_arsenalMagazines] call BIS_fnc_addVirtualMagazineCargo; + KPLIB_arsenalAllowed append KPLIB_arsenalMagazines; + + if (KPLIB_arsenalItems isEqualTo []) then {KPLIB_arsenalItems = (_crawled select 2) select {!(_x in KPLIB_arsenalBlacklist)};}; + [missionNamespace, KPLIB_arsenalItems] call BIS_fnc_addVirtualItemCargo; + KPLIB_arsenalAllowed append KPLIB_arsenalItems; + + if (KPLIB_arsenalBackpacks isEqualTo []) then {KPLIB_arsenalBackpacks = (_crawled select 3) select {!(_x in KPLIB_arsenalBlacklist)};}; + [missionNamespace, KPLIB_arsenalBackpacks] call BIS_fnc_addVirtualBackpackCargo; + KPLIB_arsenalAllowed append KPLIB_arsenalBackpacks; + + // Support for CBA disposable launchers, https://github.com/CBATeam/CBA_A3/wiki/Disposable-Launchers + if !(configProperties [configFile >> "CBA_DisposableLaunchers"] isEqualTo []) then { + private _disposableLaunchers = ["CBA_FakeLauncherMagazine"]; + { + private _loadedLauncher = cba_disposable_LoadedLaunchers getVariable _x; + if (!isNil "_loadedLauncher") then { + _disposableLaunchers pushBack _loadedLauncher; + }; + + private _normalLauncher = cba_disposable_NormalLaunchers getVariable _x; + if (!isNil "_normalLauncher") then { + _normalLauncher params ["_loadedLauncher"]; + _disposableLaunchers pushBack _loadedLauncher; + }; + } forEach KPLIB_arsenalAllowed; + KPLIB_arsenalAllowed append _disposableLaunchers; + }; + + { + // Handle CBA optics, https://github.com/CBATeam/CBA_A3/wiki/Scripted-Optics + if (missionNamespace getVariable ["CBA_optics", false]) then { + private _pipOptic = CBA_optics_PIPOptics getVariable _x; + if (!isNil "_pipOptic") then { + KPLIB_arsenalAllowedExtension pushBackUnique _pipOptic; + }; + + private _nonPipOptic = CBA_optics_NonPIPOptics getVariable _x; + if (!isNil "_nonPipOptic") then { + KPLIB_arsenalAllowedExtension pushBackUnique _nonPipOptic; + }; + }; + + // Handle CBA (MRT) Accessories, https://github.com/CBATeam/CBA_A3/wiki/Accessory-Functions + private _itemCfg = configFile >> "CfgWeapons" >> _x; + if (!isNull _itemCfg) then { + private _nextItem = getText (_itemCfg >> "MRT_SwitchItemPrevClass"); + if (_nextItem != "") then { + KPLIB_arsenalAllowedExtension pushBackUnique _nextItem; + }; + + private _prevItem = getText (_itemCfg >> "MRT_SwitchItemNextClass"); + if (_prevItem != "") then { + KPLIB_arsenalAllowedExtension pushBackUnique _prevItem; + }; + }; + } forEach KPLIB_arsenalAllowed; + + KPLIB_arsenalAllowed append KPLIB_arsenalAllowedExtension; + if (KPLIB_ace && KPLIB_param_arsenalType) then {[player, KPLIB_arsenalAllowed, false] call ace_arsenal_fnc_addVirtualItems;}; + + // Lowering to avoid issues with incorrect capitalized classnames in KPLIB_fnc_checkGear + KPLIB_arsenalAllowed = KPLIB_arsenalAllowed apply {toLower _x}; +} else { + [missionNamespace, true] call BIS_fnc_addVirtualWeaponCargo; + [missionNamespace, true] call BIS_fnc_addVirtualMagazineCargo; + [missionNamespace, true] call BIS_fnc_addVirtualItemCargo; + [missionNamespace, true] call BIS_fnc_addVirtualBackpackCargo; + if (KPLIB_ace && KPLIB_param_arsenalType) then {[player, true, false] call ace_arsenal_fnc_addVirtualItems;}; +}; + +true diff --git a/Missionframework/scripts/client/misc/init_arsenal.sqf b/Missionframework/scripts/client/misc/init_arsenal.sqf deleted file mode 100644 index a408676f8..000000000 --- a/Missionframework/scripts/client/misc/init_arsenal.sqf +++ /dev/null @@ -1,113 +0,0 @@ -if (KP_liberation_arsenalUsePreset) then { - private _crawled = [] call KPLIB_fnc_crawlAllItems; - private _weapons = []; - private _magazines = []; - private _items = []; - private _backpacks = []; - KP_liberation_allowed_items = []; - - if (isNil "GRLIB_arsenal_weapons") then {GRLIB_arsenal_weapons = []}; - if (isNil "GRLIB_arsenal_magazines") then {GRLIB_arsenal_magazines = []}; - if (isNil "GRLIB_arsenal_items") then {GRLIB_arsenal_items = []}; - if (isNil "GRLIB_arsenal_backpacks") then {GRLIB_arsenal_backpacks = []}; - if (isNil "blacklisted_from_arsenal") then {blacklisted_from_arsenal = []}; - - if ((count GRLIB_arsenal_weapons) == 0) then { - if ((count blacklisted_from_arsenal) == 0) then { - _weapons = _crawled select 0; - } else { - {if (!(_x in blacklisted_from_arsenal)) then {_weapons pushBack _x};} forEach (_crawled select 0); - }; - [missionNamespace, _weapons] call BIS_fnc_addVirtualWeaponCargo; - KP_liberation_allowed_items append _weapons; - } else { - [missionNamespace, GRLIB_arsenal_weapons] call BIS_fnc_addVirtualWeaponCargo; - KP_liberation_allowed_items append GRLIB_arsenal_weapons; - }; - - // Support for CBA disposable launchers, https://github.com/CBATeam/CBA_A3/wiki/Disposable-Launchers - if !(configProperties [configFile >> "CBA_DisposableLaunchers"] isEqualTo []) then { - private _disposableLaunchers = ["CBA_FakeLauncherMagazine"]; - { - private _loadedLauncher = cba_disposable_LoadedLaunchers getVariable _x; - if (!isNil "_loadedLauncher") then { - _disposableLaunchers pushBack _loadedLauncher; - }; - - private _normalLauncher = cba_disposable_NormalLaunchers getVariable _x; - if (!isNil "_normalLauncher") then { - _normalLauncher params ["_loadedLauncher"]; - _disposableLaunchers pushBack _loadedLauncher; - }; - } forEach KP_liberation_allowed_items; - KP_liberation_allowed_items append _disposableLaunchers; - }; - - if ((count GRLIB_arsenal_magazines) == 0) then { - if ((count blacklisted_from_arsenal) == 0) then { - _magazines = _crawled select 1; - } else { - {if (!(_x in blacklisted_from_arsenal)) then {_magazines pushBack _x};} forEach (_crawled select 1); - }; - [missionNamespace, _magazines] call BIS_fnc_addVirtualMagazineCargo; - KP_liberation_allowed_items append _magazines; - } else { - [missionNamespace, GRLIB_arsenal_magazines] call BIS_fnc_addVirtualMagazineCargo; - KP_liberation_allowed_items append GRLIB_arsenal_magazines; - }; - - if ((count GRLIB_arsenal_items) == 0) then { - if ((count blacklisted_from_arsenal) == 0) then { - _items = _crawled select 2; - } else { - {if (!(_x in blacklisted_from_arsenal)) then {_items pushBack _x};} forEach (_crawled select 2); - }; - [missionNamespace, _items] call BIS_fnc_addVirtualItemCargo; - KP_liberation_allowed_items append _items; - } else { - [missionNamespace, GRLIB_arsenal_items] call BIS_fnc_addVirtualItemCargo; - KP_liberation_allowed_items append GRLIB_arsenal_items; - }; - - if ((count GRLIB_arsenal_backpacks) == 0) then { - if ((count blacklisted_from_arsenal) == 0) then { - _backpacks = _crawled select 3; - } else { - {if (!(_x in blacklisted_from_arsenal)) then {_backpacks pushBack _x};} forEach (_crawled select 3); - }; - [missionNamespace, _backpacks] call BIS_fnc_addVirtualBackpackCargo; - KP_liberation_allowed_items append _backpacks; - } else { - [missionNamespace, GRLIB_arsenal_backpacks] call BIS_fnc_addVirtualBackpackCargo; - KP_liberation_allowed_items append GRLIB_arsenal_backpacks; - }; - - { - if ((_x find "rhs_acc") == 0) then { - KP_liberation_allowed_items_extension append [_x + "_3d", _x + "_pip"]; - }; - if ((_x find "rhsusf_acc") == 0) then { - KP_liberation_allowed_items_extension append [_x + "_3d", _x + "_pip"]; - }; - } forEach KP_liberation_allowed_items; - - if ((count KP_liberation_allowed_items_extension) > 0) then { - KP_liberation_allowed_items append KP_liberation_allowed_items_extension; - }; - - if (KP_liberation_ace && KP_liberation_arsenal_type) then { - [player, KP_liberation_allowed_items, false] call ace_arsenal_fnc_addVirtualItems; - }; - - // Lowercase all classnames - KP_liberation_allowed_items = KP_liberation_allowed_items apply {toLower _x}; -} else { - [missionNamespace, true] call BIS_fnc_addVirtualWeaponCargo; - [missionNamespace, true] call BIS_fnc_addVirtualMagazineCargo; - [missionNamespace, true] call BIS_fnc_addVirtualItemCargo; - [missionNamespace, true] call BIS_fnc_addVirtualBackpackCargo; - - if (KP_liberation_ace && KP_liberation_arsenal_type) then { - [player, true, false] call ace_arsenal_fnc_addVirtualItems; - }; -}; diff --git a/Missionframework/scripts/client/misc/init_markers.sqf b/Missionframework/scripts/client/misc/init_markers.sqf index a4db6d792..35031578f 100644 --- a/Missionframework/scripts/client/misc/init_markers.sqf +++ b/Missionframework/scripts/client/misc/init_markers.sqf @@ -2,8 +2,8 @@ _marker = createMarkerLocal ["zone_capture", markers_reset]; _marker setMarkerColorLocal "ColorUNKNOWN"; _marker setMarkerShapeLocal "Ellipse"; _marker setMarkerBrushLocal "SolidBorder"; -_marker setMarkerSizeLocal [ GRLIB_capture_size, GRLIB_capture_size ]; +_marker setMarkerSizeLocal [ KPLIB_range_sectorCapture, KPLIB_range_sectorCapture ]; _marker = createMarkerLocal ["spawn_marker", markers_reset]; _marker setMarkerColorLocal "ColorGreen"; -_marker setMarkerTypeLocal "Select"; \ No newline at end of file +_marker setMarkerTypeLocal "Select"; diff --git a/Missionframework/scripts/client/misc/kp_fuel_consumption.sqf b/Missionframework/scripts/client/misc/kp_fuel_consumption.sqf index 12ce8aeff..cf589ccfe 100644 --- a/Missionframework/scripts/client/misc/kp_fuel_consumption.sqf +++ b/Missionframework/scripts/client/misc/kp_fuel_consumption.sqf @@ -1,3 +1,4 @@ +scriptName "kp_fuel_consumption"; /* kp_fuel_consumption.sqf Author: Wyqer @@ -19,11 +20,11 @@ player addEventHandler ["GetInMan", {[ _this select 2] execVM "scripts\kp_fuel_c //CONFIG // Time in Minutes till a full tank depletes when the vehicle is standing with running engine -private _kp_neutral_consumption = KP_liberation_fuel_neutral; +private _kp_neutral_consumption = KPLIB_fuel_neutral; // Time in Minutes till a full tank depletes when the vehicle is driving -private _kp_normal_consumption = KP_liberation_fuel_normal; +private _kp_normal_consumption = KPLIB_fuel_normal; // Time in Minutes till a full tank depletes when the vehicle is driving at max speed -private _kp_max_consumption = KP_liberation_fuel_max; +private _kp_max_consumption = KPLIB_fuel_max; /* DO NOT EDIT BELOW diff --git a/Missionframework/scripts/client/misc/permissions_warning.sqf b/Missionframework/scripts/client/misc/permissions_warning.sqf index d75142280..bd9c54e07 100644 --- a/Missionframework/scripts/client/misc/permissions_warning.sqf +++ b/Missionframework/scripts/client/misc/permissions_warning.sqf @@ -1,10 +1,10 @@ -if ( GRLIB_permissions_param ) then { +if ( KPLIB_param_permissions ) then { - waitUntil { !(isNil "GRLIB_permissions") }; + waitUntil { !(isNil "KPLIB_permissions") }; sleep 5; - while { count GRLIB_permissions == 0 } do { + while { count KPLIB_permissions == 0 } do { hint localize "STR_PERMISSION_WARNING"; sleep 5; }; diff --git a/Missionframework/scripts/client/misc/playerNamespace.sqf b/Missionframework/scripts/client/misc/playerNamespace.sqf index 981ca03d0..91867733b 100644 --- a/Missionframework/scripts/client/misc/playerNamespace.sqf +++ b/Missionframework/scripts/client/misc/playerNamespace.sqf @@ -2,7 +2,7 @@ File: playerNamespace.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-12 - Last Update: 2020-05-08 + Last Update: 2020-07-06 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -22,10 +22,10 @@ private _fobName = ""; while {true} do { // FOB distance, name and position - if !(GRLIB_all_fobs isEqualTo []) then { + if !(KPLIB_sectors_fob isEqualTo []) then { _fobPos = [] call KPLIB_fnc_getNearestFob; _fobDist = player distance2d _fobPos; - _fobName = ["", ["FOB", [_fobPos] call KPLIB_fnc_getFobName] joinString " "] select (_fobDist < GRLIB_fob_range); + _fobName = ["", ["FOB", [_fobPos] call KPLIB_fnc_getFobName] joinString " "] select (_fobDist < KPLIB_range_fob); } else { _fobPos = [0, 0, 0]; _fobDist = 99999; @@ -37,27 +37,27 @@ while {true} do { player setVariable ["KPLIB_fobPos", _fobPos]; // Direct acces due to config, commander or admin - player setVariable ["KPLIB_hasDirectAccess", (getPlayerUID player) in KP_liberation_commander_actions || {player == ([] call KPLIB_fnc_getCommander)} || {serverCommandAvailable "#kick"}]; + player setVariable ["KPLIB_hasDirectAccess", (getPlayerUID player) in KPLIB_whitelist_cmdrActions || {player == ([] call KPLIB_fnc_getCommander)} || {serverCommandAvailable "#kick"}]; // Outside of startbase "safezone" player setVariable ["KPLIB_isAwayFromStart", (player distance2d startbase) > 1000]; // Is near an arsenal object - if (KP_liberation_mobilearsenal) then { - player setVariable ["KPLIB_isNearArsenal", !(((player nearObjects [Arsenal_typename, 5]) select {getObjectType _x >= 8}) isEqualTo [])]; + if (KPLIB_param_mobileArsenal) then { + player setVariable ["KPLIB_isNearArsenal", !(((player nearObjects [KPLIB_b_arsenal, 5]) select {getObjectType _x >= 8}) isEqualTo [])]; }; // Is near a mobile respawn - if (KP_liberation_mobilerespawn) then { - player setVariable ["KPLIB_isNearMobRespawn", !((player nearEntities [[Respawn_truck_typename, huron_typename], 10]) isEqualTo [])]; + if (KPLIB_param_mobileRespawn) then { + player setVariable ["KPLIB_isNearMobRespawn", !((player nearEntities [[KPLIB_b_mobileRespawn, KPLIB_b_potato01], 10]) isEqualTo [])]; }; // Is near startbase player setVariable ["KPLIB_isNearStart", (player distance2d startbase) < 200]; // Nearest activated sector and possible production data - player setVariable ["KPLIB_nearProd", KP_liberation_production param [KP_liberation_production findIf {(_x select 1) isEqualTo ([100] call KPLIB_fnc_getNearestSector)}, []]]; - player setVariable ["KPLIB_nearSector", [GRLIB_sector_size] call KPLIB_fnc_getNearestSector]; + player setVariable ["KPLIB_nearProd", KPLIB_production param [KPLIB_production findIf {(_x select 1) isEqualTo ([100] call KPLIB_fnc_getNearestSector)}, []]]; + player setVariable ["KPLIB_nearSector", [KPLIB_range_sectorActivation] call KPLIB_fnc_getNearestSector]; // Zeus module synced to player player setVariable ["KPLIB_ownedZeusModule", getAssignedCuratorLogic player]; diff --git a/Missionframework/scripts/client/misc/resupply_manager.sqf b/Missionframework/scripts/client/misc/resupply_manager.sqf index 32039909a..88c957c79 100644 --- a/Missionframework/scripts/client/misc/resupply_manager.sqf +++ b/Missionframework/scripts/client/misc/resupply_manager.sqf @@ -1,3 +1,5 @@ +scriptName "resupply_manager"; + private [ "_resupply_dist", "_repair_increment", "_repair_speed", "_repair_altitude", "_veh", "_repaired", "_rearmed", "_refueled", "_average_damage", "_average_fuel", "_screenmsg", "_rearm_time", "_refuel_amount", "_rearm_ticker" ]; _repair_amount = 0.01; diff --git a/Missionframework/scripts/client/misc/secondary_jip.sqf b/Missionframework/scripts/client/misc/secondary_jip.sqf index 1ef19ad22..44f910584 100644 --- a/Missionframework/scripts/client/misc/secondary_jip.sqf +++ b/Missionframework/scripts/client/misc/secondary_jip.sqf @@ -1,10 +1,12 @@ +scriptName "secondary_jip"; + waitUntil { time > 20; }; -if ( isNil "GRLIB_secondary_in_progress" ) exitWith {}; -if ( GRLIB_secondary_in_progress < 0 ) exitWith {}; +if ( isNil "KPLIB_secondary_in_progress" ) exitWith {}; +if ( KPLIB_secondary_in_progress < 0 ) exitWith {}; -if ( GRLIB_secondary_in_progress == 0 ) then { +if ( KPLIB_secondary_in_progress == 0 ) then { [ 2 ] call remote_call_intel; }; diff --git a/Missionframework/scripts/client/misc/synchronise_eco.sqf b/Missionframework/scripts/client/misc/synchronise_eco.sqf index 091391797..7b334d318 100644 --- a/Missionframework/scripts/client/misc/synchronise_eco.sqf +++ b/Missionframework/scripts/client/misc/synchronise_eco.sqf @@ -1,3 +1,5 @@ +scriptName "synchronise_eco"; + one_eco_done = false; waitUntil {!isNil "sync_eco"}; @@ -6,9 +8,9 @@ while {true} do { sleep 0.2; count sync_eco > 0; }; - KP_liberation_production = sync_eco select 0; - KP_liberation_logistics = sync_eco select 1; - KP_liberation_production_markers = sync_eco select 2; + KPLIB_production = sync_eco select 0; + KPLIB_logistics = sync_eco select 1; + KPLIB_production_markers = sync_eco select 2; sync_eco = []; one_eco_done = true; }; diff --git a/Missionframework/scripts/client/misc/synchronise_vars.sqf b/Missionframework/scripts/client/misc/synchronise_vars.sqf index 6f05a220c..4fee6e27b 100644 --- a/Missionframework/scripts/client/misc/synchronise_vars.sqf +++ b/Missionframework/scripts/client/misc/synchronise_vars.sqf @@ -1,3 +1,5 @@ +scriptName "synchronise_vars"; + one_synchro_done = false; synchro_done = false; @@ -6,20 +8,20 @@ waitUntil {!isNil "sync_vars"}; while {true} do { waitUntil {sleep 0.2; (count sync_vars) > 0}; - KP_liberation_fob_resources = sync_vars select 0; - KP_liberation_supplies_global = sync_vars select 1; - KP_liberation_ammo_global = sync_vars select 2; - KP_liberation_fuel_global = sync_vars select 3; + KPLIB_fob_resources = sync_vars select 0; + KPLIB_supplies_global = sync_vars select 1; + KPLIB_ammo_global = sync_vars select 2; + KPLIB_fuel_global = sync_vars select 3; unitcap = sync_vars select 4; - KP_liberation_heli_count = sync_vars select 5; - KP_liberation_plane_count = sync_vars select 6; - KP_liberation_heli_slots = sync_vars select 7; - KP_liberation_plane_slots = sync_vars select 8; - combat_readiness = sync_vars select 9; + KPLIB_heli_count = sync_vars select 5; + KPLIB_plane_count = sync_vars select 6; + KPLIB_heli_slots = sync_vars select 7; + KPLIB_plane_slots = sync_vars select 8; + KPLIB_enemyReadiness = sync_vars select 9; resources_intel = sync_vars select 10; infantry_cap = sync_vars select 11; - KP_liberation_civ_rep = sync_vars select 12; - KP_liberation_guerilla_strength = sync_vars select 13; + KPLIB_civ_rep = sync_vars select 12; + KPLIB_guerilla_strength = sync_vars select 13; infantry_weight = sync_vars select 14; armor_weight = sync_vars select 15; air_weight = sync_vars select 16; diff --git a/Missionframework/scripts/client/remotecall/remote_call_battlegroup.sqf b/Missionframework/scripts/client/remotecall/remote_call_battlegroup.sqf index 63816c272..227ea0b94 100644 --- a/Missionframework/scripts/client/remotecall/remote_call_battlegroup.sqf +++ b/Missionframework/scripts/client/remotecall/remote_call_battlegroup.sqf @@ -1,3 +1,5 @@ +scriptName "remote_call_battlegroup"; + if ( isDedicated ) exitWith {}; params [ "_battlegroup_position" ]; diff --git a/Missionframework/scripts/client/remotecall/remote_call_endgame.sqf b/Missionframework/scripts/client/remotecall/remote_call_endgame.sqf index 04b855f18..5c9d639e7 100644 --- a/Missionframework/scripts/client/remotecall/remote_call_endgame.sqf +++ b/Missionframework/scripts/client/remotecall/remote_call_endgame.sqf @@ -1,6 +1,8 @@ +scriptName "remote_call_endgame"; + player allowDamage false; (vehicle player) allowDamage false; -GRLIB_endgame = 1; +KPLIB_endgame = 1; sleep 20; -_this call compileFinal preprocessFileLineNumbers "scripts\client\ui\end_screen.sqf"; +_this call compile preprocessFileLineNumbers "scripts\client\ui\end_screen.sqf"; diff --git a/Missionframework/scripts/client/remotecall/remote_call_fob.sqf b/Missionframework/scripts/client/remotecall/remote_call_fob.sqf index 9c0e20252..efd004898 100644 --- a/Missionframework/scripts/client/remotecall/remote_call_fob.sqf +++ b/Missionframework/scripts/client/remotecall/remote_call_fob.sqf @@ -1,3 +1,5 @@ +scriptName "remote_call_fob"; + if ( isDedicated ) exitWith {}; if ( isNil "sector_timer" ) then { sector_timer = 0 }; @@ -14,7 +16,7 @@ if ( _status == 0 ) then { if ( _status == 1 ) then { [ "lib_fob_attacked", [ _fobname ] ] call BIS_fnc_showNotification; "opfor_capture_marker" setMarkerPosLocal _fob; - sector_timer = GRLIB_vulnerability_timer; + sector_timer = KPLIB_vulnerability_timer; }; if ( _status == 2 ) then { diff --git a/Missionframework/scripts/client/remotecall/remote_call_incoming.sqf b/Missionframework/scripts/client/remotecall/remote_call_incoming.sqf index 18e85da3b..38b254558 100644 --- a/Missionframework/scripts/client/remotecall/remote_call_incoming.sqf +++ b/Missionframework/scripts/client/remotecall/remote_call_incoming.sqf @@ -1,12 +1,14 @@ +scriptName "remote_call_incoming"; + if ( isDedicated ) exitWith {}; params [ "_attack_destination" ]; -if ( isNil "GRLIB_last_incoming_notif_time" ) then { GRLIB_last_incoming_notif_time = -9999 }; +if ( isNil "KPLIB_last_incoming_notif_time" ) then { KPLIB_last_incoming_notif_time = -9999 }; -if ( time > GRLIB_last_incoming_notif_time + 60 ) then { +if ( time > KPLIB_last_incoming_notif_time + 60 ) then { - GRLIB_last_incoming_notif_time = time; + KPLIB_last_incoming_notif_time = time; private [ "_attack_location_name" ]; _attack_location_name = [_attack_destination] call KPLIB_fnc_getLocationName; @@ -16,7 +18,7 @@ if ( time > GRLIB_last_incoming_notif_time + 60 ) then { private [ "_mrk" ]; _mrk = createMarkerLocal [ "opfor_incoming_marker", _attack_destination]; "opfor_incoming_marker" setMarkerTypeLocal "selector_selectedMission"; - "opfor_incoming_marker" setMarkerColorLocal GRLIB_color_enemy_bright; + "opfor_incoming_marker" setMarkerColorLocal KPLIB_color_enemyActive; sleep 250; deleteMarkerLocal _mrk; diff --git a/Missionframework/scripts/client/remotecall/remote_call_intel.sqf b/Missionframework/scripts/client/remotecall/remote_call_intel.sqf index 7411d6949..5159a58b7 100644 --- a/Missionframework/scripts/client/remotecall/remote_call_intel.sqf +++ b/Missionframework/scripts/client/remotecall/remote_call_intel.sqf @@ -1,3 +1,5 @@ +scriptName "remote_call_intel"; + if (isDedicated) exitWith {}; params ["_notiftype", ["_obj_position", getpos player]]; @@ -11,11 +13,11 @@ switch (_notiftype) do { waitUntil {secondary_objective_position_marker distance zeropos > 1000}; ["lib_intel_fob", [markertext ([10000, secondary_objective_position_marker] call KPLIB_fnc_getNearestSector)]] call BIS_fnc_showNotification; _secondary_marker = createMarkerLocal ["secondarymarker", secondary_objective_position_marker]; - _secondary_marker setMarkerColorLocal GRLIB_color_enemy_bright; + _secondary_marker setMarkerColorLocal KPLIB_color_enemyActive; _secondary_marker setMarkerTypeLocal "hd_unknown"; _secondary_marker_zone = createMarkerLocal ["secondarymarkerzone", secondary_objective_position_marker]; - _secondary_marker_zone setMarkerColorLocal GRLIB_color_enemy_bright; + _secondary_marker_zone setMarkerColorLocal KPLIB_color_enemyActive; _secondary_marker_zone setMarkerShapeLocal "ELLIPSE"; _secondary_marker_zone setMarkerBrushLocal "FDiagonal"; _secondary_marker_zone setMarkerSizeLocal [1500,1500]; @@ -34,11 +36,11 @@ switch (_notiftype) do { waitUntil {secondary_objective_position_marker distance zeropos > 1000}; ["lib_intel_sar", [markertext ([10000, secondary_objective_position_marker] call KPLIB_fnc_getNearestSector)]] call BIS_fnc_showNotification; _secondary_marker = createMarkerLocal ["secondarymarker", secondary_objective_position_marker]; - _secondary_marker setMarkerColorLocal GRLIB_color_enemy_bright; + _secondary_marker setMarkerColorLocal KPLIB_color_enemyActive; _secondary_marker setMarkerTypeLocal "hd_unknown"; _secondary_marker_zone = createMarkerLocal ["secondarymarkerzone", secondary_objective_position_marker]; - _secondary_marker_zone setMarkerColorLocal GRLIB_color_enemy_bright; + _secondary_marker_zone setMarkerColorLocal KPLIB_color_enemyActive; _secondary_marker_zone setMarkerShapeLocal "ELLIPSE"; _secondary_marker_zone setMarkerBrushLocal "FDiagonal"; _secondary_marker_zone setMarkerSizeLocal [1500,1500]; diff --git a/Missionframework/scripts/client/remotecall/remote_call_prisonner.sqf b/Missionframework/scripts/client/remotecall/remote_call_prisonner.sqf index 4c597d49f..39796f4d0 100644 --- a/Missionframework/scripts/client/remotecall/remote_call_prisonner.sqf +++ b/Missionframework/scripts/client/remotecall/remote_call_prisonner.sqf @@ -1,3 +1,5 @@ +scriptName "remote_call_prisoner"; + params [ "_unit" ]; private [ "_nearestfob", "_is_near_fob", "_is_near_blufor", "_grp", "_waypoint", "_nearblufor" ]; @@ -17,7 +19,7 @@ _unit enableAI "MOVE"; sleep 2; [_unit, ""] remoteExecCall ["switchMove"]; -if ( typeof _unit == pilot_classname ) exitWith {}; +if ( typeof _unit == KPLIB_b_heliPilotUnit ) exitWith {}; waitUntil { sleep 5; @@ -32,7 +34,7 @@ waitUntil { sleep 5; if ( !_is_near_blufor ) then { { if ((_x distance _unit) < 100) exitWith { _is_near_blufor = true }; - } forEach (allUnits select {!((toLower (typeof _x)) in KPLIB_o_inf_classes || (typeof _x) in militia_squad)}); + } forEach (allUnits select {!((toLower (typeof _x)) in KPLIB_o_inf_classes || (typeof _x) in KPLIB_o_militiaInfantry)}); }; !alive _unit || !(_is_near_blufor) || (_is_near_fob && (vehicle _unit == _unit)) @@ -43,7 +45,7 @@ if (alive _unit) then { if (_is_near_fob) then { sleep 5; - _grp = createGroup [GRLIB_side_civilian, true]; + _grp = createGroup [KPLIB_side_civilian, true]; [_unit] joinSilent _grp; _unit playmove "AmovPercMstpSnonWnonDnon_AmovPsitMstpSnonWnonDnon_ground"; _unit disableAI "ANIM"; @@ -56,7 +58,7 @@ if (alive _unit) then { } else { - _grp = createGroup [GRLIB_side_enemy, true]; + _grp = createGroup [KPLIB_side_enemy, true]; [_unit] joinSilent _grp; _unit setUnitPos "AUTO"; _unit setCaptive false; @@ -71,7 +73,7 @@ if (alive _unit) then { while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; {_x doFollow leader _grp} foreach units _grp; - _possible_sectors = (sectors_allSectors - blufor_sectors); + _possible_sectors = (KPLIB_sectors_all - KPLIB_sectors_player); if ( count _possible_sectors > 0 ) then { _possible_sectors = [ _possible_sectors , [getpos _unit, 5000] , { (markerPos _x) distance _input0 } , 'ASCEND' ] call BIS_fnc_sortBy; diff --git a/Missionframework/scripts/client/remotecall/remote_call_sector.sqf b/Missionframework/scripts/client/remotecall/remote_call_sector.sqf index 6368ceb61..a9528aa27 100644 --- a/Missionframework/scripts/client/remotecall/remote_call_sector.sqf +++ b/Missionframework/scripts/client/remotecall/remote_call_sector.sqf @@ -1,3 +1,5 @@ +scriptName "remote_call_sector"; + if ( isDedicated ) exitWith {}; if ( isNil "sector_timer" ) then { sector_timer = 0 }; @@ -11,7 +13,7 @@ if ( _status == 0 ) then { if ( _status == 1 ) then { [ "lib_sector_attacked", [ markerText _sector ] ] call BIS_fnc_showNotification; "opfor_capture_marker" setMarkerPosLocal ( markerpos _sector ); - sector_timer = GRLIB_vulnerability_timer; + sector_timer = KPLIB_vulnerability_timer; }; if ( _status == 2 ) then { @@ -26,5 +28,5 @@ if ( _status == 3 ) then { sector_timer = 0; }; -{ _x setMarkerColorLocal GRLIB_color_enemy; } foreach (sectors_allSectors - blufor_sectors); -{ _x setMarkerColorLocal GRLIB_color_friendly; } foreach blufor_sectors; +{ _x setMarkerColorLocal KPLIB_color_enemy; } foreach (KPLIB_sectors_all - KPLIB_sectors_player); +{ _x setMarkerColorLocal KPLIB_color_player; } foreach KPLIB_sectors_player; diff --git a/Missionframework/scripts/client/spawn/do_halo.sqf b/Missionframework/scripts/client/spawn/do_halo.sqf index d475a7887..e2168be20 100644 --- a/Missionframework/scripts/client/spawn/do_halo.sqf +++ b/Missionframework/scripts/client/spawn/do_halo.sqf @@ -1,9 +1,11 @@ +scriptName "do_halo"; + private [ "_dialog", "_backpack", "_backpackcontents" ]; -if ( isNil "GRLIB_last_halo_jump" ) then { GRLIB_last_halo_jump = -6000; }; +if ( isNil "KPLIB_last_halo_jump" ) then { KPLIB_last_halo_jump = -6000; }; -if ( GRLIB_halo_param > 1 && ( GRLIB_last_halo_jump + ( GRLIB_halo_param * 60 ) ) >= time ) exitWith { - hint format [ localize "STR_HALO_DENIED_COOLDOWN", ceil ( ( ( GRLIB_last_halo_jump + ( GRLIB_halo_param * 60 ) ) - time ) / 60 ) ]; +if ( KPLIB_param_halo > 1 && ( KPLIB_last_halo_jump + ( KPLIB_param_halo * 60 ) ) >= time ) exitWith { + hint format [ localize "STR_HALO_DENIED_COOLDOWN", ceil ( ( ( KPLIB_last_halo_jump + ( KPLIB_param_halo * 60 ) ) - time ) / 60 ) ]; }; _dialog = createDialog "liberation_halo"; @@ -34,9 +36,9 @@ if ( dialog ) then { [ "halo_map_event", "onMapSingleClick" ] call BIS_fnc_removeStackedEventHandler; if ( dojump > 0 ) then { - GRLIB_last_halo_jump = time; + KPLIB_last_halo_jump = time; halo_position = halo_position getPos [random 250, random 360]; - halo_position = [ halo_position select 0, halo_position select 1, GRLIB_halo_altitude + (random 200) ]; + halo_position = [ halo_position select 0, halo_position select 1, KPLIB_height_halo + (random 200) ]; halojumping = true; sleep 0.1; cutRsc ["fasttravel", "PLAIN", 1]; diff --git a/Missionframework/scripts/client/spawn/redeploy_manager.sqf b/Missionframework/scripts/client/spawn/redeploy_manager.sqf index 1a09817ce..346db2d3b 100644 --- a/Missionframework/scripts/client/spawn/redeploy_manager.sqf +++ b/Missionframework/scripts/client/spawn/redeploy_manager.sqf @@ -1,3 +1,5 @@ +scriptName "redeploy_manager"; + #define DEPLOY_DISPLAY (findDisplay 5201) #define DEPLOY_LIST_IDC 201 #define DEPLOY_BUTTON_IDC 202 @@ -9,12 +11,12 @@ private _oldsel = -999; private _standard_map_pos = []; private _frame_pos = []; -GRLIB_force_redeploy = false; +KPLIB_force_redeploy = false; -waitUntil {!isNil "GRLIB_all_fobs"}; -waitUntil {!isNil "blufor_sectors"}; -waitUntil {!isNil "save_is_loaded"}; -waitUntil {save_is_loaded}; +waitUntil {!isNil "KPLIB_sectors_fob"}; +waitUntil {!isNil "KPLIB_sectors_player"}; +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {KPLIB_saveLoaded}; private _spawn_str = ""; @@ -25,13 +27,13 @@ waitUntil {cinematic_camera_stop}; private _basenamestr = "Operation Base"; -KP_liberation_respawn_time = time; -KP_liberation_respawn_mobile_done = false; +KPLIB_respawn_time = time; +KPLIB_respawn_mobile_done = false; while {true} do { waitUntil { sleep 0.2; - (GRLIB_force_redeploy || (player distance (markerPos GRLIB_respawn_marker) < 50)) && vehicle player == player && alive player && !dialog && howtoplay == 0 + (KPLIB_force_redeploy || (player distance (markerPos KPLIB_respawn_marker) < 50)) && vehicle player == player && alive player && !dialog && howtoplay == 0 }; private _backpack = backpack player; @@ -39,7 +41,7 @@ while {true} do { fullmap = 0; _old_fullmap = 0; - GRLIB_force_redeploy = false; + KPLIB_force_redeploy = false; createDialog "liberation_deploy"; deploy = 0; @@ -67,7 +69,7 @@ while {true} do { // Get loadouts either from ACE or BI arsenals private ["_loadouts_data"]; - if (KP_liberation_ace && KP_liberation_arsenal_type) then { + if (KPLIB_ace && KPLIB_param_arsenalType) then { _loadouts_data = +(profileNamespace getVariable ["ace_arsenal_saved_loadouts", []]); } else { private _saved_loadouts = +(profileNamespace getVariable "bis_fnc_saveInventory_data"); @@ -93,14 +95,14 @@ while {true} do { { KPLIB_respawnPositionsList pushBack [ - format ["FOB %1 - %2", (military_alphabet select _forEachIndex), mapGridPosition _x], + format ["FOB %1 - %2", (KPLIB_militaryAlphabet select _forEachIndex), mapGridPosition _x], _x ]; - } forEach GRLIB_all_fobs; + } forEach KPLIB_sectors_fob; - if (KP_liberation_mobilerespawn) then { - if (KP_liberation_respawn_time <= time) then { - private _mobileRespawns = [] call KPLIB_fnc_getMobileRespawns; + if (KPLIB_param_mobileRespawn) then { + if (KPLIB_respawn_time <= time) then { + private _respawn_trucks = [] call KPLIB_fnc_getMobileRespawns; { KPLIB_respawnPositionsList pushBack [ @@ -108,7 +110,7 @@ while {true} do { getPosATL _x, _x ]; - } forEach _mobileRespawns + } forEach _respawn_trucks }; }; @@ -138,7 +140,7 @@ while {true} do { _alti = 30; }; // Disable if sector is under attack - if (!KPLIB_respawnOnAttackedSectors && {_objectpos in KPLIB_sectorsUnderAttack}) then { + if (!KPLIB_param_attackedFobRespawn && {_objectpos in KPLIB_sectorsUnderAttack}) then { (DEPLOY_DISPLAY displayCtrl DEPLOY_BUTTON_IDC) ctrlSetText localize "STR_DEPLOY_UNDERATTACK"; (DEPLOY_DISPLAY displayCtrl DEPLOY_BUTTON_IDC) ctrlEnable false; } else { @@ -183,7 +185,7 @@ while {true} do { if (count (KPLIB_respawnPositionsList select _idxchoice) == 3) then { private _truck = (KPLIB_respawnPositionsList select _idxchoice) select 2; player setposATL (_truck getPos [5 + (random 3), random 360]); - KP_liberation_respawn_mobile_done = true; + KPLIB_respawn_mobile_done = true; } else { private _destpos = ((KPLIB_respawnPositionsList select _idxchoice) select 1); player setposATL [((_destpos select 0) + 5) - (random 10),((_destpos select 1) + 5) - (random 10),(_destpos select 2)]; @@ -191,8 +193,8 @@ while {true} do { if ((lbCurSel 203) > 0) then { private _selectedLoadout = _loadouts_data select ((lbCurSel 203) - 1); - if (KP_liberation_ace && KP_liberation_arsenal_type) then { - player setUnitLoadout (_selectedLoadout select 1); + if (KPLIB_ace && KPLIB_param_arsenalType) then { + [player, _selectedLoadout select 1, KP_liberation_fill_mags] call CBA_fnc_setLoadout; } else { [player, [profileNamespace, _selectedLoadout]] call BIS_fnc_loadInventory; }; @@ -211,18 +213,18 @@ while {true} do { if (alive player && deploy == 1) then { [_spawn_str] spawn spawn_camera; - if (KP_liberation_respawn_mobile_done) then { - KP_liberation_respawn_time = time + KP_liberation_respawn_cooldown; - KP_liberation_respawn_mobile_done = false; + if (KPLIB_respawn_mobile_done) then { + KPLIB_respawn_time = time + KPLIB_param_mobileRespawnCooldown; + KPLIB_respawn_mobile_done = false; }; }; - if (KP_liberation_arsenalUsePreset) then { + if (KPLIB_param_useArsenalPreset) then { [_backpack] call KPLIB_fnc_checkGear; }; - if (KP_liberation_mobilerespawn && (KP_liberation_respawn_time > time)) then { - hint format [localize "STR_RESPAWN_COOLDOWN_HINT", ceil ((KP_liberation_respawn_time - time) / 60)]; + if (KPLIB_param_mobileRespawn && (KPLIB_respawn_time > time)) then { + hint format [localize "STR_RESPAWN_COOLDOWN_HINT", ceil ((KPLIB_respawn_time - time) / 60)]; uiSleep 12; hint ""; }; diff --git a/Missionframework/scripts/client/spawn/spawn_camera.sqf b/Missionframework/scripts/client/spawn/spawn_camera.sqf index 9e18e6f27..92b04b6cb 100644 --- a/Missionframework/scripts/client/spawn/spawn_camera.sqf +++ b/Missionframework/scripts/client/spawn/spawn_camera.sqf @@ -1,3 +1,5 @@ +scriptName "spawn_camera"; + private [ "_nearest_sector", "_leadingzero_hour", "_leadingzero_minute", "_startpos0", "_startpos1", "_endpos1", "_startpos2", "_endpos2", "_startpos3", "_endpos3", "_spawn_camera", "_datestring" ]; params [ "_spawn_str" ]; @@ -11,7 +13,7 @@ _datestring = format [ "%3/%2/%1 %4%5:%6%7", date select 0, date select 1, date private [ "_spawn_camera", "_startpos0", "_startpos1", "_endpos1","_startpos2","_endpos2","_startpos3","_endpos3"]; -if ( GRLIB_deployment_cinematic ) then { +if ( KPLIB_param_deployCinematic ) then { camUseNVG false; showCinemaBorder false; @@ -39,7 +41,7 @@ if ( GRLIB_deployment_cinematic ) then { [ format [ "%1
%2
%3
%4
", name player, _spawn_str, _datestring, _nearest_sector ],1,0.8,8,1 ] spawn BIS_fnc_dynamictext; -if ( GRLIB_deployment_cinematic ) then { +if ( KPLIB_param_deployCinematic ) then { _spawn_camera camSetRelPos _endpos1; _spawn_camera camcommit 1.75; diff --git a/Missionframework/scripts/client/tutorial/fn_tutorial.fsm b/Missionframework/scripts/client/tutorial/fn_tutorial.fsm index ce7a83ef7..29292f36d 100644 --- a/Missionframework/scripts/client/tutorial/fn_tutorial.fsm +++ b/Missionframework/scripts/client/tutorial/fn_tutorial.fsm @@ -150,7 +150,7 @@ class FSM "" \n "// Get up to 3 nearest factory sectors" \n "private _sectors = (" \n - " sectors_factory select {((markerPos _x) distance2d player) < 10000}" \n + " KPLIB_sectors_factory select {((markerPos _x) distance2d player) < 10000}" \n ") apply {" \n " [(markerPos _x) distance2d player, _x]" \n "};" \n @@ -187,7 +187,7 @@ class FSM to="Capture_the_sect"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!(" \n - " (_sectors select {_x in active_sectors}) isEqualTo []" \n + " (_sectors select {_x in KPLIB_sectors_active}) isEqualTo []" \n ")"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; @@ -226,13 +226,13 @@ class FSM priority = 0.000000; to="Set_all_completion"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!isNil ""save_is_loaded""" \n - "&& {save_is_loaded}" \n + condition=/*%FSM*/"!isNil ""KPLIB_saveLoaded""" \n + "&& {KPLIB_saveLoaded}" \n "&& {alive player}" \n "&& {" \n " private _locations = [startbase];" \n - " _locations append GRLIB_all_fobs;" \n - " !((_locations select {(_x distance2d player) < GRLIB_fob_range}) isEqualTo [])" \n + " _locations append KPLIB_sectors_fob;" \n + " !((_locations select {(_x distance2d player) < KPLIB_range_fob}) isEqualTo [])" \n "}"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; @@ -317,12 +317,12 @@ class FSM name = "Set_all_completion"; itemno = 7; init = /*%FSM*/"private _fobComplete = {" \n - " !(GRLIB_all_fobs isEqualTo [])" \n + " !(KPLIB_sectors_fob isEqualTo [])" \n " ||" \n - " {!(blufor_sectors isEqualTo [])}" \n + " {!(KPLIB_sectors_player isEqualTo [])}" \n "};" \n "private _sectorComplete = {" \n - " !((blufor_sectors arrayIntersect sectors_factory) isEqualTo [])" \n + " !((KPLIB_sectors_player arrayIntersect KPLIB_sectors_factory) isEqualTo [])" \n "};" \n "" \n "private _allConditions = [" \n @@ -330,7 +330,7 @@ class FSM " _sectorComplete" \n "];" \n "" \n - "private _nextState = diag_tickTime + ([4, 10] select GRLIB_deployment_cinematic);"/*%FSM*/; + "private _nextState = diag_tickTime + ([4, 10] select KPLIB_param_deployCinematic);"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { @@ -439,7 +439,7 @@ class FSM to="Init_path"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!(" \n - " [""KPLIB_tutorialTask_Fob""] call BIS_fnc_taskCompleted" \n + " [""KPLIB_param_tutorialTask_Fob""] call BIS_fnc_taskCompleted" \n " ||" \n " {[] call _fobComplete}" \n ")"/*%FSM*/; @@ -454,7 +454,7 @@ class FSM to="Init_path_1"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!(" \n - " [""KPLIB_tutorialTask_Sector""] call BIS_fnc_taskCompleted" \n + " [""KPLIB_param_tutorialTask_Sector""] call BIS_fnc_taskCompleted" \n " ||" \n " {[] call _sectorComplete}" \n ")"/*%FSM*/; @@ -491,7 +491,7 @@ class FSM priority = 1.000000; to="Slingload_crate"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!KP_liberation_fob_vehicle"/*%FSM*/; + condition=/*%FSM*/"!KPLIB_param_fobVehicle"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -502,7 +502,7 @@ class FSM priority = 0.000000; to="Drive_the_truck"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"KP_liberation_fob_vehicle"/*%FSM*/; + condition=/*%FSM*/"KPLIB_param_fobVehicle"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -519,7 +519,7 @@ class FSM " allPlayers," \n " [""KPLIB_Tasks_Tutorial_Fob_01a"", ""KPLIB_Tasks_Tutorial_Fob""]," \n " """"," \n - " [(base_boxspawn nearObjects [FOB_box_typename, 10]) select 0, true]," \n + " [(base_boxspawn nearObjects [KPLIB_b_fobBox, 10]) select 0, true]," \n " ""ASSIGNED""," \n " 0," \n " true," \n @@ -536,7 +536,7 @@ class FSM priority = 0.000000; to="Build_storage_ar"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!(GRLIB_all_fobs isEqualTo [])"/*%FSM*/; + condition=/*%FSM*/"!(KPLIB_sectors_fob isEqualTo [])"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -553,7 +553,7 @@ class FSM " allPlayers," \n " [""KPLIB_Tasks_Tutorial_Fob_01b"", ""KPLIB_Tasks_Tutorial_Fob""]," \n " """"," \n - " [(base_boxspawn nearObjects [FOB_box_typename, 10]) select 0, true]," \n + " [(base_boxspawn nearObjects [KPLIB_b_fobBox, 10]) select 0, true]," \n " ""ASSIGNED""," \n " 0," \n " true," \n @@ -570,7 +570,7 @@ class FSM priority = 0.000000; to="Build_storage_ar"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!(GRLIB_all_fobs isEqualTo [])"/*%FSM*/; + condition=/*%FSM*/"!(KPLIB_sectors_fob isEqualTo [])"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -641,8 +641,8 @@ class FSM to="Complete_task"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!(" \n - " (((GRLIB_all_fobs select 0) nearObjects GRLIB_fob_range) select {" \n - " (_x getVariable [""KP_liberation_storage_type"", -1]) == 0" \n + " (((KPLIB_sectors_fob select 0) nearObjects KPLIB_range_fob) select {" \n + " (_x getVariable [""KPLIB_storage_type"", -1]) == 0" \n " }) isEqualTo []" \n ")"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; @@ -793,7 +793,7 @@ class FSM "[""KPLIB_Tasks_Tutorial_Sector_01"", ""SUCCEEDED""] call BIS_fnc_taskSetState;" \n "" \n "// Create task" \n - "private _factory = (_sectors select {_x in active_sectors}) select 0;" \n + "private _factory = (_sectors select {_x in KPLIB_sectors_active}) select 0;" \n "[" \n " allPlayers," \n " [""KPLIB_Tasks_Tutorial_Sector_02"", ""KPLIB_Tasks_Tutorial_Sector""]," \n @@ -815,7 +815,7 @@ class FSM priority = 0.000000; to="Complete_task_and"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"_factory in blufor_sectors"/*%FSM*/; + condition=/*%FSM*/"_factory in KPLIB_sectors_player"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -917,8 +917,8 @@ class FSM to="Start_production"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!(" \n - " (((markerPos _factory) nearObjects GRLIB_fob_range) select {" \n - " (_x getVariable [""KP_liberation_storage_type"", -1]) == 1" \n + " (((markerPos _factory) nearObjects KPLIB_range_fob) select {" \n + " (_x getVariable [""KPLIB_storage_type"", -1]) == 1" \n " }) isEqualTo []" \n ")"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; @@ -956,7 +956,7 @@ class FSM priority = 0.000000; to="Complete_tasks_1"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(((KP_liberation_production select {(_x select 1) isEqualTo _factory}) select 0) select 7) < 3"/*%FSM*/; + condition=/*%FSM*/"(((KPLIB_production select {(_x select 1) isEqualTo _factory}) select 0) select 7) < 3"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -1020,4 +1020,4 @@ class FSM "Exit_2", }; }; -/*%FSM*/ \ No newline at end of file +/*%FSM*/ diff --git a/Missionframework/scripts/client/ui/cinematic_camera.sqf b/Missionframework/scripts/client/ui/cinematic_camera.sqf index 354369f69..dbc68bd55 100644 --- a/Missionframework/scripts/client/ui/cinematic_camera.sqf +++ b/Missionframework/scripts/client/ui/cinematic_camera.sqf @@ -1,5 +1,7 @@ -if ( isNil "active_sectors" ) then { active_sectors = [] }; -if ( isNil "GRLIB_all_fobs" ) then { GRLIB_all_fobs = [] }; +scriptName "cinematic_camera"; + +if ( isNil "KPLIB_sectors_active" ) then { KPLIB_sectors_active = [] }; +if ( isNil "KPLIB_sectors_fob" ) then { KPLIB_sectors_fob = [] }; cinematic_camera_started = true; private _last_transition = -1; @@ -24,24 +26,24 @@ while { cinematic_camera_started } do { private _positions = [ getpos startbase ]; if ( !first_camera_round ) then { - if ( count GRLIB_all_fobs > 0 ) then { + if ( count KPLIB_sectors_fob > 0 ) then { for [ {_idx=0},{_idx < 2},{_idx=_idx+1} ] do { - _positions pushback (selectRandom GRLIB_all_fobs); + _positions pushback (selectRandom KPLIB_sectors_fob); }; }; - if ( count active_sectors > 0 ) then { + if ( count KPLIB_sectors_active > 0 ) then { for [ {_idx=0},{_idx < 5},{_idx=_idx+1} ] do { - _positions pushback (markerPos (selectRandom active_sectors)); + _positions pushback (markerPos (selectRandom KPLIB_sectors_active)); }; } else { for [ {_idx=0},{_idx < 5},{_idx=_idx+1} ] do { - _positions pushback (markerPos (selectRandom sectors_allSectors)); + _positions pushback (markerPos (selectRandom KPLIB_sectors_all)); }; }; - if ( GRLIB_endgame == 0 ) then { - _activeplayers = (allPlayers select {alive _x && (_x distance (markerPos GRLIB_respawn_marker)) > 100}); + if ( KPLIB_endgame == 0 ) then { + _activeplayers = (allPlayers select {alive _x && (_x distance (markerPos KPLIB_respawn_marker)) > 100}); if ( count _activeplayers > 0 ) then { for [ {_idx=0},{_idx < 3},{_idx=_idx+1} ] do { _positions pushback (getpos (selectRandom _activeplayers)); @@ -256,9 +258,9 @@ while { cinematic_camera_started } do { if ( _nearest_sector != "" ) then { _nearest_sector = markertext _nearest_sector; } else { - _nearfobs = GRLIB_all_fobs select {_x distance _position < 300}; + _nearfobs = KPLIB_sectors_fob select {_x distance _position < 300}; if ( count _nearfobs > 0 ) then { - _nearest_sector = format [ "FOB %1", military_alphabet select ( GRLIB_all_fobs find ( _nearfobs select 0 ) ) ]; + _nearest_sector = format [ "FOB %1", KPLIB_militaryAlphabet select ( KPLIB_sectors_fob find ( _nearfobs select 0 ) ) ]; }; }; }; diff --git a/Missionframework/scripts/client/ui/end_screen.sqf b/Missionframework/scripts/client/ui/end_screen.sqf index dfcfd630e..0dec7f731 100644 --- a/Missionframework/scripts/client/ui/end_screen.sqf +++ b/Missionframework/scripts/client/ui/end_screen.sqf @@ -1,3 +1,5 @@ +scriptName "end_screen"; + params [ "_stats_ammo_produced", "_stats_ammo_spent", @@ -34,7 +36,7 @@ params [ "_stats_secondary_objectives", "_stats_sectors_liberated", "_stats_sectors_lost", - "_stats_spartan_respawns", + "_stats_potato_respawns", "_stats_supplies_produced", "_stats_supplies_spent", "_stats_vehicles_recycled", @@ -141,7 +143,7 @@ if (dialog) then {sleep 3}; [692, format [localize "STR_STATS_REINFORCEMENTS", _stats_reinforcements_called]] call _addReportLine; [693, format [localize "STR_STATS_COMBATREADINESS", round _stats_readiness_earned]] call _addReportLine; [694, format [localize "STR_STATS_IEDS", _stats_ieds_detonated]] call _addReportLine; -[695, format [localize "STR_STATS_POTATO", _stats_spartan_respawns]] call _addReportLine; +[695, format [localize "STR_STATS_POTATO", _stats_potato_respawns]] call _addReportLine; [696, format [localize "STR_STATS_RABBITS", _stats_rabbits_killed], true] call _addReportLine; [] call _cleanPage; diff --git a/Missionframework/scripts/client/ui/intro.sqf b/Missionframework/scripts/client/ui/intro.sqf index 57d6c9aed..bddaef6e1 100644 --- a/Missionframework/scripts/client/ui/intro.sqf +++ b/Missionframework/scripts/client/ui/intro.sqf @@ -1,10 +1,12 @@ +scriptName "KPLIB_intro"; + if ( isNil "cinematic_camera_started" ) then { cinematic_camera_started = false }; sleep 0.5; waitUntil { time > 0 }; [] spawn cinematic_camera; -if ( GRLIB_introduction ) then { +if ( KPLIB_param_introCinematic ) then { sleep 1; cutRsc ["intro1","PLAIN",1,true]; diff --git a/Missionframework/scripts/client/ui/secondary_ui.sqf b/Missionframework/scripts/client/ui/secondary_ui.sqf index 05a1bdb4a..aefab7f7a 100644 --- a/Missionframework/scripts/client/ui/secondary_ui.sqf +++ b/Missionframework/scripts/client/ui/secondary_ui.sqf @@ -1,5 +1,7 @@ -if ( isNil "GRLIB_secondary_starting" ) then { GRLIB_secondary_starting = false; }; -if ( isNil "GRLIB_secondary_in_progress" ) then { GRLIB_secondary_in_progress = -1; }; +scriptName "KPLIB_secondary_ui"; + +if ( isNil "KPLIB_secondary_starting" ) then { KPLIB_secondary_starting = false; }; +if ( isNil "KPLIB_secondary_in_progress" ) then { KPLIB_secondary_in_progress = -1; }; _dialog = createDialog "liberation_secondary"; dostartsecondary = 0; @@ -39,9 +41,9 @@ while { dialog && alive player && dostartsecondary == 0 } do { ((findDisplay 6842) displayCtrl (102)) ctrlSetStructuredText parseText localize (_briefings select _oldchoice); }; - _missioncost = GRLIB_secondary_missions_costs select _oldchoice; + _missioncost = KPLIB_secondary_missions_costs select _oldchoice; - if ( ( _missioncost <= resources_intel ) && ( !GRLIB_secondary_starting ) ) then { + if ( ( _missioncost <= resources_intel ) && ( !KPLIB_secondary_starting ) ) then { ctrlEnable [ 103, true ]; ((findDisplay 6842) displayCtrl (103)) ctrlSetTooltip ""; } else { @@ -49,13 +51,13 @@ while { dialog && alive player && dostartsecondary == 0 } do { if ( _missioncost > resources_intel ) then { ((findDisplay 6842) displayCtrl (103)) ctrlSetTooltip (localize "STR_SECONDARY_NOT_ENOUGH_INTEL"); }; - if ( GRLIB_secondary_starting ) then { + if ( KPLIB_secondary_starting ) then { ((findDisplay 6842) displayCtrl (103)) ctrlSetTooltip (localize "STR_SECONDARY_IN_PROGRESS"); }; }; - if ( GRLIB_secondary_in_progress >= 0 ) then { - lbSetCurSel [ 101, GRLIB_secondary_in_progress ]; + if ( KPLIB_secondary_in_progress >= 0 ) then { + lbSetCurSel [ 101, KPLIB_secondary_in_progress ]; ctrlEnable [ 101, false ]; } else { ctrlEnable [ 101, true ]; diff --git a/Missionframework/scripts/client/ui/squad_management.sqf b/Missionframework/scripts/client/ui/squad_management.sqf index 27205ad08..391a8567a 100644 --- a/Missionframework/scripts/client/ui/squad_management.sqf +++ b/Missionframework/scripts/client/ui/squad_management.sqf @@ -1,7 +1,9 @@ +scriptName "squad_management"; + private [ "_dialog", "_membercount", "_memberselection", "_unitname", "_selectedmember", "_cfgVehicles", "_cfgWeapons", "_primary_mags", "_secondary_mags", "_vehstring", "_nearfob", "_fobdistance", "_nearsquad", "_tempgmp", "_destpos", "_destdir", "_resupplied","_firstloop", "_squad_camera", "_targetobject", "_isvehicle" ]; -GRLIB_squadaction = -1; -GRLIB_squadconfirm = -1; +KPLIB_squadaction = -1; +KPLIB_squadconfirm = -1; _membercount = -1; _resupplied = false; _memberselection = -1; @@ -140,11 +142,11 @@ while { dialog && alive player } do { }; } else { { ctrlSetText [ _x, "" ] } foreach [ 201, 202, 203, 204, 205, 206, 207, 208, 209 ]; - GRLIB_squadconfirm = -1; - GRLIB_squadaction = -1; + KPLIB_squadconfirm = -1; + KPLIB_squadaction = -1; }; - if ( GRLIB_squadaction == -1 ) then { + if ( KPLIB_squadaction == -1 ) then { ctrlEnable [ 213, false ]; ctrlEnable [ 214, false ]; if ( !(isPlayer _selectedmember) && (vehicle _selectedmember == _selectedmember) ) then { @@ -166,15 +168,15 @@ while { dialog && alive player } do { ctrlEnable [ 214, true ]; }; - if( GRLIB_squadconfirm == 0 ) then { - GRLIB_squadconfirm = -1; - GRLIB_squadaction = -1; + if( KPLIB_squadconfirm == 0 ) then { + KPLIB_squadconfirm = -1; + KPLIB_squadaction = -1; }; - if ( GRLIB_squadconfirm == 1 ) then { - GRLIB_squadconfirm = -1; + if ( KPLIB_squadconfirm == 1 ) then { + KPLIB_squadconfirm = -1; - if ( GRLIB_squadaction == 1 ) then { + if ( KPLIB_squadaction == 1 ) then { _nearfob = [ getpos _selectedmember ] call KPLIB_fnc_getNearestFob; _fobdistance = 9999; @@ -186,7 +188,7 @@ while { dialog && alive player } do { if ( _fobdistance < 100 || count _nearsquad > 0 ) then { - _tempgmp = createGroup [GRLIB_side_friendly, true]; + _tempgmp = createGroup [KPLIB_side_player, true]; (typeof _selectedmember) createUnit [ markers_reset, _tempgmp,'']; [ (units _tempgmp) select 0, _selectedmember ] call KPLIB_fnc_swapInventory; deleteVehicle ((units _tempgmp) select 0); @@ -199,13 +201,13 @@ while { dialog && alive player } do { }; }; - if (GRLIB_squadaction == 2) then { + if (KPLIB_squadaction == 2) then { deleteVehicle _selectedmember; _resupplied = true; hint localize 'STR_REMOVE_OK'; }; - if (GRLIB_squadaction == 3) then { + if (KPLIB_squadaction == 3) then { closeDialog 0; @@ -236,7 +238,7 @@ while { dialog && alive player } do { }; - GRLIB_squadaction = -1; + KPLIB_squadaction = -1; }; diff --git a/Missionframework/scripts/client/ui/tutorial_manager.sqf b/Missionframework/scripts/client/ui/tutorial_manager.sqf index 4a43f0e37..395f66cee 100644 --- a/Missionframework/scripts/client/ui/tutorial_manager.sqf +++ b/Missionframework/scripts/client/ui/tutorial_manager.sqf @@ -1,3 +1,5 @@ +scriptName "tutorial_manager"; + private [ "_tutorial_titles", "_tutorial_pages", "_current_page", "_old_page", "_dialog" ]; if ( isNil "howtoplay" ) then { howtoplay = 0; }; diff --git a/Missionframework/scripts/client/ui/ui_manager.sqf b/Missionframework/scripts/client/ui/ui_manager.sqf index ecfc21bd0..05efa1222 100644 --- a/Missionframework/scripts/client/ui/ui_manager.sqf +++ b/Missionframework/scripts/client/ui/ui_manager.sqf @@ -10,12 +10,12 @@ private _sectorcontrols = [ 244 // Capture Frame BLUFOR ]; -GRLIB_ui_notif = ""; -KP_liberation_supplies = 0; -KP_liberation_ammo = 0; -KP_liberation_fuel = 0; -KP_liberation_air_vehicle_building_near = false; -KP_liberation_recycle_building_near = false; +KPLIB_ui_notif = ""; +KPLIB_supplies = 0; +KPLIB_ammo = 0; +KPLIB_fuel = 0; +KPLIB_b_airControl_near = false; +KPLIB_b_logiStation_near = false; waitUntil { !isNil "synchro_done" }; waitUntil { synchro_done }; @@ -24,7 +24,7 @@ if (isNil "cinematic_camera_started") then {cinematic_camera_started = false;}; if (isNil "halojumping") then {halojumping = false;}; private _uiticks = 0; -private _active_sectors_hint = false; +private _KPLIB_sectors_active_hint = false; private _attacked_string = ""; private _nearest_active_sector = ""; private _zone_size = 0; @@ -61,34 +61,34 @@ while {true} do { private _nearestFob = player getVariable "KPLIB_fobPos"; ([_nearestFob] call KPLIB_fnc_getFobResources) params ["", "_supplies", "_ammo", "_fuel", "_hasAir", "_hasRecycling"]; - if (KP_liberation_resources_global || {_visibleMap}) then { + if (KPLIB_resources_global || {_visibleMap}) then { // Overwrite FOB name in global mode _currentFob = localize "STR_RESOURCE_GLOBAL"; - KP_liberation_supplies = KP_liberation_supplies_global; - KP_liberation_ammo = KP_liberation_ammo_global; - KP_liberation_fuel = KP_liberation_fuel_global; + KPLIB_supplies = KPLIB_supplies_global; + KPLIB_ammo = KPLIB_ammo_global; + KPLIB_fuel = KPLIB_fuel_global; } else { - KP_liberation_supplies = _supplies; - KP_liberation_ammo = _ammo; - KP_liberation_fuel = _fuel; + KPLIB_supplies = _supplies; + KPLIB_ammo = _ammo; + KPLIB_fuel = _fuel; }; // TODO this is used by build scripts, move to relevant places - KP_liberation_air_vehicle_building_near = _hasAir; - KP_liberation_recycle_building_near = _hasRecycling; + KPLIB_b_airControl_near = _hasAir; + KPLIB_b_logiStation_near = _hasRecycling; } else { _showResources = false; - KP_liberation_supplies = 0; - KP_liberation_ammo = 0; - KP_liberation_fuel = 0; - KP_liberation_air_vehicle_building_near = false; - KP_liberation_recycle_building_near = false; + KPLIB_supplies = 0; + KPLIB_ammo = 0; + KPLIB_fuel = 0; + KPLIB_b_airControl_near = false; + KPLIB_b_logiStation_near = false; }; if (_overlayVisible) then { - (_overlay displayCtrl (266)) ctrlSetText format [ "%1", GRLIB_ui_notif ]; - (_overlay displayCtrl (267)) ctrlSetText format [ "%1", GRLIB_ui_notif ]; + (_overlay displayCtrl (266)) ctrlSetText format [ "%1", KPLIB_ui_notif ]; + (_overlay displayCtrl (267)) ctrlSetText format [ "%1", KPLIB_ui_notif ]; if ((markerPos "opfor_capture_marker") distance markers_reset > 100 ) then { @@ -114,39 +114,39 @@ while {true} do { if (_uiticks % 25 == 0) then { - if (!isNil "active_sectors" && ([] call KPLIB_fnc_getOpforCap >= GRLIB_sector_cap)) then { + if (!isNil "KPLIB_sectors_active" && ([] call KPLIB_fnc_getOpforCap >= KPLIB_cap_enemySide)) then { (_overlay displayCtrl (517)) ctrlShow true; - if (!_active_sectors_hint) then { + if (!_KPLIB_sectors_active_hint) then { hint localize "STR_OVERLOAD_HINT"; - _active_sectors_hint = true; + _KPLIB_sectors_active_hint = true; }; - _active_sectors_string = "" + (localize "STR_ACTIVE_SECTORS") + "
"; + _KPLIB_sectors_active_string = "" + (localize "STR_KPLIB_sectors_active") + "
"; { - _active_sectors_string = [_active_sectors_string, markerText _x, "
"] joinString ""; - } forEach active_sectors; - _active_sectors_string = [_active_sectors_string, "
"] joinString ""; - (_overlay displayCtrl (516)) ctrlSetStructuredText parseText _active_sectors_string; + _KPLIB_sectors_active_string = [_KPLIB_sectors_active_string, markerText _x, "
"] joinString ""; + } forEach KPLIB_sectors_active; + _KPLIB_sectors_active_string = [_KPLIB_sectors_active_string, "
"] joinString ""; + (_overlay displayCtrl (516)) ctrlSetStructuredText parseText _KPLIB_sectors_active_string; } else { (_overlay displayCtrl (516)) ctrlSetStructuredText parseText " "; (_overlay displayCtrl (517)) ctrlShow false; }; - _nearest_active_sector = [GRLIB_sector_size] call KPLIB_fnc_getNearestSector; + _nearest_active_sector = [KPLIB_range_sectorActivation] call KPLIB_fnc_getNearestSector; if ( _nearest_active_sector != "" ) then { - _zone_size = GRLIB_capture_size; - if ( _nearest_active_sector in sectors_bigtown ) then { - _zone_size = GRLIB_capture_size * 1.4; + _zone_size = KPLIB_range_sectorCapture; + if ( _nearest_active_sector in KPLIB_sectors_capital ) then { + _zone_size = KPLIB_range_sectorCapture * 1.4; }; "zone_capture" setmarkerposlocal (markerpos _nearest_active_sector); _colorzone = "ColorGrey"; - if ( [ markerpos _nearest_active_sector, _zone_size ] call KPLIB_fnc_getSectorOwnership == GRLIB_side_friendly ) then { _colorzone = GRLIB_color_friendly }; - if ( [ markerpos _nearest_active_sector, _zone_size ] call KPLIB_fnc_getSectorOwnership == GRLIB_side_enemy ) then { _colorzone = GRLIB_color_enemy }; - if ( [ markerpos _nearest_active_sector, _zone_size ] call KPLIB_fnc_getSectorOwnership == GRLIB_side_resistance ) then { _colorzone = "ColorCivilian" }; + if ( [ markerpos _nearest_active_sector, _zone_size ] call KPLIB_fnc_getSectorOwnership == KPLIB_side_player ) then { _colorzone = KPLIB_color_player }; + if ( [ markerpos _nearest_active_sector, _zone_size ] call KPLIB_fnc_getSectorOwnership == KPLIB_side_enemy ) then { _colorzone = KPLIB_color_enemy }; + if ( [ markerpos _nearest_active_sector, _zone_size ] call KPLIB_fnc_getSectorOwnership == KPLIB_side_resistance ) then { _colorzone = "ColorCivilian" }; "zone_capture" setmarkercolorlocal _colorzone; _ratio = [_nearest_active_sector] call KPLIB_fnc_getBluforRatio; @@ -157,7 +157,7 @@ while {true} do { (_overlay displayCtrl (205)) ctrlSetText (markerText _nearest_active_sector); {(_overlay displayCtrl (_x)) ctrlShow true;} forEach _sectorcontrols; - if (_nearest_active_sector in blufor_sectors) then { + if (_nearest_active_sector in KPLIB_sectors_player) then { (_overlay displayCtrl (205)) ctrlSetTextColor [0,0.3,1.0,1]; } else { (_overlay displayCtrl (205)) ctrlSetTextColor [0.85,0,0,1]; diff --git a/Missionframework/scripts/fob_templates/default/template4.sqf b/Missionframework/scripts/fob_templates/default/template4.sqf deleted file mode 100644 index d1936c20a..000000000 --- a/Missionframework/scripts/fob_templates/default/template4.sqf +++ /dev/null @@ -1,79 +0,0 @@ -private _objects_to_build = [ - [ opfor_mrap, [13.31, 0, 0.01], 268.69 ], - [ "Land_Cargo_HQ_V3_F", [11.47, -12.17, 0], 89.97 ], - [ "Land_CncBarrierMedium4_F", [-15.55, -1.69, 0], 90.88 ], - [ "Land_HBarrierBig_F", [-13.27, -8.61, 0], 91.24 ], - [ opfor_transport_truck, [1.21, 15.8, -0.03], 274.41 ], - [ "Land_BarGate_F", [-16.65, 2.15, 0], 90.88 ], - [ opfor_mrap_armed, [-20.26, -3.22, 0.01], 359.22 ], - [ "Land_HBarrierBig_F", [1.23, 20.94, 0], 0.69 ], - [ "Land_Cargo_Patrol_V3_F", [16.23, 15.36, 0], 269.81 ], - [ opfor_flag, [-12.14, 18.09, 0], 90 ], - [ "Land_HBarrierBig_F", [22.07, -0.21, 0], 89.37 ], - [ "Land_HBarrierBig_F", [-18.87, 11.86, 0], 182.13 ], - [ "Land_HBarrierBig_F", [-19.02, -11.48, 0], 180.79 ], - [ "Land_HBarrierBig_F", [-7.55, 20.91, 0], 0.69 ], - [ "Land_Cargo_Patrol_V3_F", [-16.73, 16.16, 0], 89.4 ], - [ "Land_HBarrierBig_F", [-0.63, -22.83, 0], 0.36 ], - [ opfor_flag, [-11.33, -19.92, 0], 90 ], - [ "Land_HBarrierBig_F", [9.38, 20.92, 0], 181.2 ], - [ "Land_Cargo_Patrol_V3_F", [-16.22, -17.77, 0], 0.54 ], - [ "Land_HBarrierBig_F", [21.86, 8.66, 0], 89.37 ], - [ "Land_HBarrierBig_F", [22.03, -9.04, 0], 90.4 ], - [ "Land_HBarrierBig_F", [8.22, -23.01, 0], 1.39 ], - [ "Land_HBarrierBig_F", [-9.5, -22.89, 0], 0.36 ], - [ "Land_HBarrierBig_F", [-16.39, 20.98, 0], 359.67 ], - [ "Land_HBarrierBig_F", [-21.5, 17.42, 0], 91.24 ], - [ "Land_HBarrierBig_F", [18.15, 20.89, 0], 181.2 ], - [ "Land_HBarrierBig_F", [21.63, 17.44, 0], 89.37 ], - [ "Land_HBarrierBig_F", [-22.04, -17.17, 0], 271.36 ], - [ opfor_flag, [19.21, -20.29, 0], 90 ], - [ "Land_HBarrierBig_F", [22.12, -17.82, 0], 90.4 ], - [ "Land_HBarrierBig_F", [16.99, -23.08, 0], 1.39 ], - [ "Land_HBarrierBig_F", [-18.27, -22.97, 0], 0.36 ] -]; - -private _objectives_to_build = [ - [ opfor_fuel_truck, [1.41, 11.53, -0.03], 271.88 ], - [ opfor_ammo_truck, [-1.45, -13.1, -0.04], 357.37 ], - [ opfor_ammo_container, [13.59, 4.13, 0.02], 96.77 ], - [ opfor_ammo_truck, [-7.67, -13, -0.04], 0.71 ], - [ opfor_ammo_container, [13.76, 9.31, 0.02], 270.25 ] -]; - -private _defenders_to_build = [ - [ opfor_machinegunner, [-3.53, 4.47, 0], 348.81 ], - [ opfor_sentry, [-2.09, 5.78, 0], 288.05 ], - [ opfor_rifleman, [-5.93, -4.74, 0], 288.05 ], - [ opfor_sentry, [-7.45, -5.82, 0], 348.81 ], - [ opfor_engineer, [8.02, 6.59, 0], 87.82 ], - [ opfor_sentry, [-4.42, -10.1, 0], 349.58 ], - [ opfor_heavygunner, [8.68, -7.9, 3.13], 335.85 ], - [ opfor_engineer, [-4.24, 12.69, 0], 71.91 ], - [ opfor_sentry, [-13.57, -0.21, 0], 280.01 ], - [ opfor_rifleman, [9.47, -10.01, 0.6], 129.9 ], - [ opfor_rifleman, [9.67, -11.29, 0.6], 53.89 ], - [ opfor_team_leader, [10.93, -10.44, 0.6], 288.05 ], - [ opfor_aa, [14.26, -9.29, 3.13], 48.56 ], - [ opfor_rifleman, [11.05, -14.06, 0.6], 105.44 ], - [ opfor_at, [8.89, -16.68, 3.13], 201.77 ], - [ opfor_rifleman, [12.59, -14.27, 0.6], 288.05 ], - [ opfor_rifleman, [-20.21, 2.04, 0], 286.68 ], - [ opfor_machinegunner, [-19.96, 4.15, 0], 241.27 ], - [ opfor_marksman, [15.84, -14.74, 3.09], 124.01 ], - [ opfor_heavygunner, [17.02, 14.26, 4.35], 174.84 ], - [ opfor_marksman, [-16.98, 15.1, 4.35], 210.68 ], - [ opfor_sharpshooter, [16.58, 16.48, 4.35], 31.1 ], - [ opfor_machinegunner, [-15.08, -18.12, 4.35], 121.82 ], - [ opfor_heavygunner, [-17.42, 17.33, 4.35], 354.42 ], - [ opfor_sharpshooter, [-17.31, -18.53, 4.35], 265.56 ] -]; - -private _base_corners = [ - [35,35,0], - [35,-35,0], - [-35,-35,0], - [-35,35,0] -]; - -[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/Missionframework/scripts/fob_templates/default/template5.sqf b/Missionframework/scripts/fob_templates/default/template5.sqf deleted file mode 100644 index df1a5894a..000000000 --- a/Missionframework/scripts/fob_templates/default/template5.sqf +++ /dev/null @@ -1,72 +0,0 @@ -private _objects_to_build = [ - [ "Land_HelipadCircle_F", [-1.31, 11.44, 0], 0 ], - [ opfor_transport_helo, [-1.31, 11.45, 0], 134.19 ], - [ "Land_Cargo_Patrol_V3_F", [17.36, 1.08, 0], 269.81 ], - [ "Land_Cargo_House_V3_F", [15.93, -7.13, 0], 90.12 ], - [ "Land_Cargo_HQ_V3_F", [-11.82, -13.91, 0], 89.97 ], - [ opfor_transport_truck, [-17.59, 5.76, -0.03], 310.87 ], - [ opfor_flag, [-20.4, -2.8, 0], 90 ], - [ "Land_PaperBox_open_full_F", [12.36, -16.46, 0], 228.14 ], - [ opfor_flag, [20.06, 6.22, 0], 90 ], - [ "Land_PaperBox_open_empty_F", [14.86, -16.08, 0], 2.94 ], - [ "Land_PaperBox_closed_F", [13.68, -18.27, 0], 287.62 ], - [ "Land_HBarrierBig_F", [-22.99, -3.72, 0], 89.34 ], - [ "CamoNet_OPFOR_open_F", [14.88, -18.51, 0], 0 ], - [ "Land_HBarrierBig_F", [22.88, 3.58, 0], 89.34 ], - [ opfor_mrap, [17.18, 16.24, 0.01], 326.13 ], - [ "Land_HBarrierBig_F", [23.08, -5.21, 0], 89.34 ], - [ "Land_HBarrierBig_F", [0.66, -24.24, 0], 0.36 ], - [ "Land_HBarrierBig_F", [-8.2, -24.3, 0], 0.36 ], - [ "Land_HBarrierBig_F", [-22.79, -12.51, 0], 89.34 ], - [ "Land_HBarrierBig_F", [9.52, -24.42, 0], 1.39 ], - [ "Land_HBarrierBig_F", [23.35, -14.06, 0], 89.34 ], - [ opfor_flag, [19.21, -21.72, 0], 90 ], - [ "Land_HBarrierBig_F", [-16.97, -24.38, 0], 0.36 ], - [ "Land_HBarrierBig_F", [18.28, -24.49, 0], 1.39 ], - [ "Land_HBarrierBig_F", [-22.52, -21.36, 0], 89.34 ], - [ "Land_HBarrierBig_F", [22.45, -21.48, 0], 103.04 ] -]; - -private _objectives_to_build = [ - [ opfor_fuel_container, [-16.82, 17.67, -0.01], 47.97 ], - [ opfor_ammo_container, [-0.42, -3.26, 0.02], 104.66 ], - [ opfor_fuel_container, [-9.52, -0.47, -0.04], 295.86 ], - [ opfor_ammo_container, [2.85, -14.48, 0], 0.69 ] -]; - -private _defenders_to_build = [ - [ opfor_engineer, [2.32, 3.25, 0], 10.12 ], - [ opfor_engineer, [3.59, 3.89, 0], 288.05 ], - [ opfor_engineer, [2.31, 4.93, 0], 158.22 ], - [ opfor_rifleman, [3.96, -9.85, 0], 37.83 ], - [ opfor_machinegunner, [-9.04, -11.04, 3.13], 48.56 ], - [ opfor_team_leader, [-12.46, -12.21, 0.6], 288.05 ], - [ opfor_aa, [-14.62, -9.64, 3.13], 335.85 ], - [ opfor_sharpshooter, [17.7, 2.21, 4.35], 31.1 ], - [ opfor_aa, [-7.46, -16.48, 3.09], 124.01 ], - [ opfor_heavygunner, [18.14, -0.02, 4.35], 174.84 ], - [ opfor_rifleman, [-13.89, -11.76, 0.6], 129.9 ], - [ opfor_sentry, [-13.62, -13.03, 0.6], 53.89 ], - [ opfor_sentry, [10.86, -15.42, 0], 348.81 ], - [ opfor_sentry, [17.87, -6.07, 0.73], 294.41 ], - [ opfor_rifleman, [12.59, -14.14, 0], 288.05 ], - [ opfor_rifleman, [-10.49, -15.94, 0.6], 288.05 ], - [ opfor_sentry, [-12.03, -15.74, 0.6], 105.44 ], - [ opfor_sentry, [17.96, -8.4, 0.73], 294.41 ], - [ opfor_sentry, [-2.5, 20.13, 0], 288.05 ], - [ opfor_grenadier, [-5.17, 20.37, 0], 84.75 ], - [ opfor_engineer, [-17.83, 11.21, 0], 288.05 ], - [ opfor_at, [-13.21, -18.42, 3.13], 196.73 ], - [ opfor_sentry, [-20.27, 11.9, 0], 112.14 ], - [ opfor_sentry, [13.03, 19.64, 0], 348.81 ], - [ opfor_rifleman, [14.76, 20.92, 0], 288.05 ] -]; - -private _base_corners = [ - [30,40,0], - [30,-40,0], - [-30,-40,0], - [-30,40,0] -]; - -[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/Missionframework/scripts/fob_templates/default/template9.sqf b/Missionframework/scripts/fob_templates/default/template9.sqf deleted file mode 100644 index d12a8cd8d..000000000 --- a/Missionframework/scripts/fob_templates/default/template9.sqf +++ /dev/null @@ -1,66 +0,0 @@ -private _objects_to_build = [ - [opfor_flag, [-19.05, -5.29, 0.00], 0.00], - [opfor_flag, [2.55, 4.91, 0.00], 0.00], - ["Land_BarGate_F", [-18.53, 3.79, 0.00], 270.00], - ["Land_Cargo_HQ_V3_F", [8.99, 1.74, 0.00], 0.00], - ["Land_Cargo_Patrol_V3_F", [-3.15, 24.19, 0.00], 180.00], - ["Land_HBarrier_Big_F", [-11.04, -17.98, 0.00], 0.00], - ["Land_HBarrier_Big_F", [-11.45, 19.44, 0.00], 0.00], - ["Land_HBarrier_Big_F", [-16.53, -7.99, 0.00], 270.00], - ["Land_HBarrier_Big_F", [-16.80, 9.31, 0.00], 270.00], - ["Land_HBarrier_Big_F", [-2.23, -17.62, 0.00], 0.00], - ["Land_HBarrier_Big_F", [-3.20, 28.38, 0.00], 0.00], - ["Land_HBarrier_Big_F", [-8.29, 25.01, 0.00], 270.00], - ["Land_HBarrier_Big_F", [14.65, 20.26, 0.00], 0.00], - ["Land_HBarrier_Big_F", [15.06, -17.16, 0.00], 0.00], - ["Land_HBarrier_Big_F", [2.51, 25.17, 0.00], 270.00], - ["Land_HBarrier_Big_F", [20.34, 10.15, 0.00], 270.00], - ["Land_HBarrier_Big_F", [20.43, 1.59, 0.00], 270.00], - ["Land_HBarrier_Big_F", [20.60, -7.15, 0.00], 270.00], - ["Land_HBarrier_Big_F", [5.93, 20.00, 0.00], 0.00], - ["Land_HBarrier_Big_F", [6.34, -17.42, 0.00], 0.00], - ["Land_HBarrierTower_F", [-17.31, -15.72, 0.00], 90.00], - ["Land_HBarrierTower_F", [-17.88, 17.11, 0.00], 90.00], - ["Land_HBarrierTower_F", [21.12, 18.04, 0.00], 270.00], - ["Land_HBarrierTower_F", [21.43, -14.52, 0.00], 270.00], - [opfor_mrap, [-12.85, -10.52, -0.00], 180.00], - [opfor_transport_truck, [-8.65, -8.70, 0.00], 180.00] -]; -private _objectives_to_build = [ - [opfor_ammo_container, [12.70, -11.73, 0.00], 0.00], - [opfor_ammo_container, [8.19, -11.71, 0.00], 0.00], - [opfor_fuel_container, [12.28, 15.45, 0.00], 0.00], - [opfor_fuel_container, [7.56, 15.24, 0.00], 0.00], - [opfor_ammo_truck, [-12.86, 10.58, 0.00], 0.00], - [opfor_fuel_truck, [-8.32, 10.38, 0.00], 0.00] -]; -private _defenders_to_build = [ - [opfor_engineer, [-10.53, -4.64, 0.00], 0.00], - [opfor_heavygunner, [-18.74, -15.05, 2.28], 270.00], - [opfor_heavygunner, [22.80, 18.84, 2.28], 0.00], - [opfor_heavygunner, [6.31, -14.37, 0.00], 318.61], - [opfor_medic, [12.50, 1.07, 0.60], 244.47], - [opfor_squad_leader, [7.16, -3.84, 0.60], 308.87], - [opfor_at, [5.57, 4.09, 3.13], 270.00], - [opfor_rifleman, [-10.39, 6.70, 0.00], 181.51], - [opfor_rifleman, [-18.42, -16.71, 2.28], 263.48], - [opfor_rifleman, [-19.11, 5.66, 0.00], 251.10], - [opfor_rifleman, [-19.58, 16.36, 2.28], 262.09], - [opfor_rifleman, [-4.32, 24.55, 4.35], 0.00], - [opfor_rifleman, [22.19, -15.53, 2.28], 155.63], - [opfor_rifleman, [23.32, -13.89, 2.28], 84.56], - [opfor_rifleman, [5.96, -3.84, 3.13], 265.58], - [opfor_sentry, [-20.00, 17.92, 2.28], 0.00], - [opfor_sentry, [10.18, 11.45, 0.00], 214.49], - [opfor_marksman, [-2.31, 24.52, 4.35], 0.00], - [opfor_grenadier, [-6.11, -14.77, 0.00], 0.00], - [opfor_grenadier, [22.96, 17.33, 2.28], 82.66] -]; -private _base_corners = [ - [40, 40, 0], - [40, -40, 0], - [-40, -40, 0], - [-40, 40, 0] -]; - -[_objects_to_build, _objectives_to_build, _defenders_to_build, _base_corners] diff --git a/Missionframework/scripts/server/ai/add_defense_waypoints.sqf b/Missionframework/scripts/server/ai/add_defense_waypoints.sqf index bd4e95a89..c52cc9f0d 100644 --- a/Missionframework/scripts/server/ai/add_defense_waypoints.sqf +++ b/Missionframework/scripts/server/ai/add_defense_waypoints.sqf @@ -1,3 +1,5 @@ +scriptName "add_defense_waypoints"; + private _grp = _this select 0; private _flagpos = _this select 1; private _basepos = getpos (leader _grp); diff --git a/Missionframework/scripts/server/ai/battlegroup_ai.sqf b/Missionframework/scripts/server/ai/battlegroup_ai.sqf index b9e7167cd..6fe39d6a2 100644 --- a/Missionframework/scripts/server/ai/battlegroup_ai.sqf +++ b/Missionframework/scripts/server/ai/battlegroup_ai.sqf @@ -3,9 +3,6 @@ params [ ]; if (isNull _grp) exitWith {}; -if (isNil "reset_battlegroups_ai") then {reset_battlegroups_ai = false}; - -sleep (5 + (random 5)); private _objPos = [getPos (leader _grp)] call KPLIB_fnc_getNearestBluforObjective; @@ -13,41 +10,23 @@ private _objPos = [getPos (leader _grp)] call KPLIB_fnc_getNearestBluforObjectiv private _startpos = getPos (leader _grp); + private _waypoint = []; -while {((getPos (leader _grp)) distance _startpos) < 100} do { - - while {!((waypoints _grp) isEqualTo [])} do {deleteWaypoint ((waypoints _grp) select 0);}; - {_x doFollow leader _grp} forEach units _grp; - - _startpos = getPos (leader _grp); - - _waypoint = _grp addWaypoint [_objPos, 100]; - _waypoint setWaypointType "MOVE"; - _waypoint setWaypointSpeed "NORMAL"; - _waypoint setWaypointBehaviour "AWARE"; - _waypoint setWaypointCombatMode "YELLOW"; - _waypoint setWaypointCompletionRadius 30; - - _waypoint = _grp addWaypoint [_objPos, 100]; - _waypoint setWaypointType "SAD"; - _waypoint = _grp addWaypoint [_objPos, 100]; - _waypoint setWaypointType "SAD"; - _waypoint = _grp addWaypoint [_objPos, 100]; - _waypoint setWaypointType "SAD"; - _waypoint = _grp addWaypoint [_objPos, 100]; - _waypoint setWaypointType "CYCLE"; - - sleep 90; -}; - -waitUntil { - sleep 5; - (((units _grp) select {alive _x}) isEqualTo []) || reset_battlegroups_ai -}; - -sleep (5 + (random 5)); -reset_battlegroups_ai = false; - -if (!((units _grp) isEqualTo []) && (GRLIB_endgame == 0)) then { - [_grp] spawn battlegroup_ai; -}; +{ deleteWaypoint _x } forEachReversed waypoints _grp; +{_x doFollow leader _grp} forEach units _grp; + +_waypoint = _grp addWaypoint [_objPos, 100]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointSpeed "NORMAL"; +_waypoint setWaypointBehaviour "AWARE"; +_waypoint setWaypointCombatMode "YELLOW"; +_waypoint setWaypointCompletionRadius 30; + +_waypoint = _grp addWaypoint [_objPos, 100]; +_waypoint setWaypointType "SAD"; +_waypoint = _grp addWaypoint [_objPos, 100]; +_waypoint setWaypointType "SAD"; +_waypoint = _grp addWaypoint [_objPos, 100]; +_waypoint setWaypointType "SAD"; +_waypoint = _grp addWaypoint [_objPos, 100]; +_waypoint setWaypointType "CYCLE"; diff --git a/Missionframework/scripts/server/ai/building_defence_ai.sqf b/Missionframework/scripts/server/ai/building_defence_ai.sqf index d6ceb06ec..307f5e497 100644 --- a/Missionframework/scripts/server/ai/building_defence_ai.sqf +++ b/Missionframework/scripts/server/ai/building_defence_ai.sqf @@ -1,3 +1,5 @@ +scriptName "building_defence_ai"; + params ["_unit", ["_sector", ""]]; _unit setUnitPos "UP"; @@ -13,13 +15,13 @@ while {_move_is_disabled && local _unit && alive _unit && !(captive _unit)} do { _ratio = [_sector] call KPLIB_fnc_getBluforRatio; }; - _range = floor (linearConversion [0, 1, _ratio, 0, GRLIB_capture_size / 3 * 2, true]); + _range = floor (linearConversion [0, 1, _ratio, 0, KPLIB_range_sectorCapture / 3 * 2, true]); - _hostiles = ((getPos _unit) nearEntities [["Man"], _range]) select {side _x == GRLIB_side_friendly}; + _hostiles = ((getPos _unit) nearEntities [["Man"], _range]) select {side _x == KPLIB_side_player}; if (_move_is_disabled && { - (_sector in blufor_sectors) || + (_sector in KPLIB_sectors_player) || {!(_hostiles isEqualTo [])} || {damage _unit > 0.25} } diff --git a/Missionframework/scripts/server/ai/patrol_ai.sqf b/Missionframework/scripts/server/ai/patrol_ai.sqf index d778cdae4..113dd3647 100644 --- a/Missionframework/scripts/server/ai/patrol_ai.sqf +++ b/Missionframework/scripts/server/ai/patrol_ai.sqf @@ -35,7 +35,7 @@ while { count (units _grp) > 0 } do { if ( _patrol_startpos distance (markerpos _x) < 2500) then { _sectors_patrol pushBack _x; }; - } foreach (sectors_allSectors - blufor_sectors); + } foreach (KPLIB_sectors_all - KPLIB_sectors_player); while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; {_x doFollow leader _grp} foreach units _grp; diff --git a/Missionframework/scripts/server/ai/prisonner_ai.sqf b/Missionframework/scripts/server/ai/prisonner_ai.sqf index 5ceeb16a6..8c2c9aa53 100644 --- a/Missionframework/scripts/server/ai/prisonner_ai.sqf +++ b/Missionframework/scripts/server/ai/prisonner_ai.sqf @@ -1,8 +1,8 @@ params ["_unit", ["_force_surrender", false]]; -if ((!_force_surrender) && ((random 100) > GRLIB_surrender_chance)) exitWith {}; +if ((!_force_surrender) && ((random 100) > KPLIB_surrender_chance)) exitWith {}; -if ((_unit isKindOf "Man") && (alive _unit) && (side group _unit == GRLIB_side_enemy)) then { +if ((_unit isKindOf "Man") && (alive _unit) && (side group _unit == KPLIB_side_enemy)) then { if (vehicle _unit != _unit) then {deleteVehicle _unit}; @@ -11,7 +11,7 @@ if ((_unit isKindOf "Man") && (alive _unit) && (side group _unit == GRLIB_side_e if (alive _unit) then { removeAllWeapons _unit; - if (typeof _unit != pilot_classname) then { + if (typeof _unit != KPLIB_b_heliPilotUnit) then { removeHeadgear _unit; }; removeBackpack _unit; @@ -22,9 +22,9 @@ if ((_unit isKindOf "Man") && (alive _unit) && (side group _unit == GRLIB_side_e _unit removeItem "NVGoggles_INDEP"; _unit setUnitPos "UP"; sleep 1; - private _grp = createGroup [GRLIB_side_civilian, true]; + private _grp = createGroup [KPLIB_side_civilian, true]; [_unit] joinSilent _grp; - if (KP_liberation_ace) then { + if (KPLIB_ace) then { ["ace_captives_setSurrendered", [_unit, true], _unit] call CBA_fnc_targetEvent; } else { _unit disableAI "ANIM"; @@ -34,11 +34,11 @@ if ((_unit isKindOf "Man") && (alive _unit) && (side group _unit == GRLIB_side_e _unit setCaptive true; }; waitUntil {sleep 1; - !alive _unit || side group _unit == GRLIB_side_friendly + !alive _unit || side group _unit == KPLIB_side_player }; if (alive _unit) then { - if (KP_liberation_ace) then { + if (KPLIB_ace) then { ["ace_captives_setSurrendered", [_unit, false], _unit] call CBA_fnc_targetEvent; } else { _unit enableAI "ANIM"; diff --git a/Missionframework/scripts/server/ai/troup_transport.sqf b/Missionframework/scripts/server/ai/troup_transport.sqf index 81cbc22a8..c872d70a5 100644 --- a/Missionframework/scripts/server/ai/troup_transport.sqf +++ b/Missionframework/scripts/server/ai/troup_transport.sqf @@ -19,7 +19,7 @@ waitUntil { }; if ((alive _transVeh) && (alive (driver _transVeh))) then { - _infGrp = createGroup [GRLIB_side_enemy, true]; + _infGrp = createGroup [KPLIB_side_enemy, true]; { [_x, _start_pos, _infGrp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; diff --git a/Missionframework/scripts/server/asymmetric/asymmetric_loop.sqf b/Missionframework/scripts/server/asymmetric/asymmetric_loop.sqf index 38287d93e..b1a401f89 100644 --- a/Missionframework/scripts/server/asymmetric/asymmetric_loop.sqf +++ b/Missionframework/scripts/server/asymmetric/asymmetric_loop.sqf @@ -1,46 +1,48 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {!isNil "KP_liberation_civ_rep"}; -waitUntil {save_is_loaded}; +scriptName "asymmetric_loop"; -if (KP_liberation_asymmetric_debug > 0) then {[format ["Loop spawned on: %1", debug_source], "ASYMMETRIC"] call KPLIB_fnc_log;}; +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {!isNil "KPLIB_civ_rep"}; +waitUntil {KPLIB_saveLoaded}; -KP_liberation_asymmetric_sectors = []; +if (KPLIB_asymmetric_debug > 0) then {[format ["Loop spawned on: %1", debug_source], "ASYMMETRIC"] call KPLIB_fnc_log;}; -while {GRLIB_endgame == 0} do { +KPLIB_asymmetric_sectors = []; + +while {KPLIB_endgame == 0} do { private _sectors_to_remove = []; { - if (!(_x in blufor_sectors) || (KP_liberation_civ_rep > -25)) then { + if (!(_x in KPLIB_sectors_player) || (KPLIB_civ_rep > -25)) then { _sectors_to_remove pushBack _x; }; - } forEach KP_liberation_asymmetric_sectors; + } forEach KPLIB_asymmetric_sectors; - KP_liberation_asymmetric_sectors = KP_liberation_asymmetric_sectors - _sectors_to_remove; + KPLIB_asymmetric_sectors = KPLIB_asymmetric_sectors - _sectors_to_remove; - if (KP_liberation_civ_rep <= -25) then { + if (KPLIB_civ_rep <= -25) then { { private _sector = _x; private _blocked = false; - private _units_at_sector = [markerPos _sector, GRLIB_sector_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; + private _units_at_sector = [markerPos _sector, KPLIB_range_sectorActivation, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; { if ((_x select 0) == _sector) exitWith { if ((((_x select 1) + 1800) < time) && (_units_at_sector == 0)) then { asymm_blocked_sectors = asymm_blocked_sectors - [_x]; - if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 removed from blocked sectors", markerText (_x select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + if (KPLIB_asymmetric_debug > 0) then {[format ["Sector %1 removed from blocked sectors", markerText (_x select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; } else { _blocked = true; - if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 still blocked for ambush", markerText (_x select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + if (KPLIB_asymmetric_debug > 0) then {[format ["Sector %1 still blocked for ambush", markerText (_x select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; }; }; } forEach asymm_blocked_sectors; - if ((_units_at_sector > 0) && !(_sector in KP_liberation_asymmetric_sectors) && !_blocked) then { - KP_liberation_asymmetric_sectors pushBack _sector; + if ((_units_at_sector > 0) && !(_sector in KPLIB_asymmetric_sectors) && !_blocked) then { + KPLIB_asymmetric_sectors pushBack _sector; - if ((random 100) <= KP_liberation_resistance_ambush_chance) then { + if ((random 100) <= KPLIB_resistance_ambush_chance) then { private _hc = [] call KPLIB_fnc_getLessLoadedHC; - private _ieds = round (([] call KPLIB_fnc_crGetMulti) * GRLIB_difficulty_modifier); + private _ieds = round (([] call KPLIB_fnc_crGetMulti) * KPLIB_param_difficulty); if (isNull _hc) then { [_sector, _ieds] spawn manage_asymIED; @@ -52,12 +54,12 @@ while {GRLIB_endgame == 0} do { }; }; - if (!(_units_at_sector > 0) && (_sector in KP_liberation_asymmetric_sectors)) then { - KP_liberation_asymmetric_sectors = KP_liberation_asymmetric_sectors - [_sector]; + if (!(_units_at_sector > 0) && (_sector in KPLIB_asymmetric_sectors)) then { + KPLIB_asymmetric_sectors = KPLIB_asymmetric_sectors - [_sector]; }; - } forEach ((sectors_capture + sectors_bigtown) select {_x in blufor_sectors}); + } forEach ((KPLIB_sectors_city + KPLIB_sectors_capital) select {_x in KPLIB_sectors_player}); }; - publicVariable "KP_liberation_asymmetric_sectors"; + publicVariable "KPLIB_asymmetric_sectors"; publicVariable "asymm_blocked_sectors"; sleep 10; }; diff --git a/Missionframework/scripts/server/asymmetric/convoy/logistic_convoy_ambush.sqf b/Missionframework/scripts/server/asymmetric/convoy/logistic_convoy_ambush.sqf index 7c896e308..3a4623c1d 100644 --- a/Missionframework/scripts/server/asymmetric/convoy/logistic_convoy_ambush.sqf +++ b/Missionframework/scripts/server/asymmetric/convoy/logistic_convoy_ambush.sqf @@ -1,6 +1,6 @@ params ["_convoy"]; -if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1: spawning ambush", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; +if (KPLIB_asymmetric_debug > 0) then {[format ["Logistic convoy %1: spawning ambush", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; private _pos = [0,0,0]; @@ -14,17 +14,17 @@ if (_pos isEqualTo [0,0,0]) exitWith {[format ["Logistic convoy %1 ambush: no po private _roadObj = [_pos, 400, []] call BIS_fnc_nearestRoad; if (isNull _roadObj) exitWith { - if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: no road near current convoy position", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; - KP_liberation_convoy_ambush_check = 1; + if (KPLIB_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: no road near current convoy position", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + KPLIB_convoy_ambush_check = 1; }; -KP_liberation_convoy_ambush_check = 2; -KP_liberation_convoy_ambush_inProgress = true; +KPLIB_convoy_ambush_check = 2; +KPLIB_convoy_ambush_inProgress = true; [0, getPos _roadObj] remoteExec ["asymm_notifications"]; private _vehicleArray = []; for "_i" from 1 to (_convoy select 1) do { - private _veh = createVehicle [KP_liberation_truck_classname, getPos _roadObj, [], 50, "NONE"]; + private _veh = createVehicle [KPLIB_b_logiTruck, getPos _roadObj, [], 50, "NONE"]; _veh setDir (getDir _roadObj); { private _damage = random 0.6; @@ -38,10 +38,10 @@ for "_i" from 1 to (_convoy select 1) do { } forEach ((getAllHitPointsDamage _veh) select 0); _vehicleArray pushBack _veh; - private _driver = createVehicle [crewman_classname, getPos _veh, [], 12, "NONE"]; + private _driver = createVehicle [KPLIB_b_crewUnit, getPos _veh, [], 12, "NONE"]; _driver setDamage 1; }; -if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: truck spawning done", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; +if (KPLIB_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: truck spawning done", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; private _supplies = (_convoy select 6) select 0; private _ammo = (_convoy select 6) select 1; @@ -54,7 +54,7 @@ while {_supplies > 0} do { _amount = _supplies; }; _supplies = _supplies - _amount; - private _crate = [KP_liberation_supply_crate, _amount, getPos _roadObj] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateSupply, _amount, getPos _roadObj] call KPLIB_fnc_createCrate; _crate setPos (_crate getPos [random 60, random 360]); _crateArray pushBack [_crate]; }; @@ -65,7 +65,7 @@ while {_ammo > 0} do { _amount = _ammo; }; _ammo = _ammo - _amount; - private _crate = [KP_liberation_ammo_crate, _amount, getPos _roadObj] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateAmmo, _amount, getPos _roadObj] call KPLIB_fnc_createCrate; _crate setPos (_crate getPos [random 60, random 360]); _crateArray pushBack [_crate]; }; @@ -76,11 +76,11 @@ while {_fuel > 0} do { _amount = _fuel; }; _fuel = _fuel - _amount; - private _crate = [KP_liberation_fuel_crate, _amount, getPos _roadObj] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateFuel, _amount, getPos _roadObj] call KPLIB_fnc_createCrate; _crate setPos (_crate getPos [random 60, random 360]); _crateArray pushBack [_crate]; }; -if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: resource spawning done", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; +if (KPLIB_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: resource spawning done", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; private _grp = [getPos _roadObj] call KPLIB_fnc_spawnGuerillaGroup; @@ -96,9 +96,9 @@ _waypoint setWaypointCompletionRadius 10; _waypoint = _grp addWaypoint [getPos _roadObj, 150]; _waypoint setWaypointType "CYCLE"; _waypoint setWaypointCompletionRadius 10; -if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: guerillas spawning done", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; +if (KPLIB_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: guerillas spawning done", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; -private _waitingTime = KP_liberation_convoy_ambush_duration; +private _waitingTime = KPLIB_convoy_ambush_duration; while {(({alive _x} count (units _grp)) > 0) && (_waitingTime > 0)} do { uiSleep 1; @@ -111,9 +111,9 @@ while {(({alive _x} count (units _grp)) > 0) && (_waitingTime > 0)} do { _waitingTime = _waitingTime - 1; }; }; -if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: ambush finished", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; +if (KPLIB_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: ambush finished", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; -KP_liberation_convoy_ambush_inProgress = false; +KPLIB_convoy_ambush_inProgress = false; if ((_waitingTime <= 0) && (({alive _x} count (units _grp)) > 0)) then { [2] remoteExec ["asymm_notifications"]; @@ -125,16 +125,16 @@ if ((_waitingTime <= 0) && (({alive _x} count (units _grp)) > 0)) then { }; } forEach (units _grp); { - if ((typeOf (_x select 0)) == KP_liberation_ammo_crate) then { + if ((typeOf (_x select 0)) == KPLIB_b_crateAmmo) then { _gain = _gain + 3; } else { _gain = _gain + 2; }; deleteVehicle (_x select 0); } forEach _crateArray; - KP_liberation_guerilla_strength = KP_liberation_guerilla_strength + _gain; - if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: guerillas escaped", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + KPLIB_guerilla_strength = KPLIB_guerilla_strength + _gain; + if (KPLIB_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: guerillas escaped", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; } else { [1] remoteExec ["asymm_notifications"]; - if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: guerillas defeated", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; + if (KPLIB_asymmetric_debug > 0) then {[format ["Logistic convoy %1 ambush: guerillas defeated", (_convoy select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;}; }; diff --git a/Missionframework/scripts/server/asymmetric/ied/manage_asymIED.sqf b/Missionframework/scripts/server/asymmetric/ied/manage_asymIED.sqf index 8896d22ad..e00f4b303 100644 --- a/Missionframework/scripts/server/asymmetric/ied/manage_asymIED.sqf +++ b/Missionframework/scripts/server/asymmetric/ied/manage_asymIED.sqf @@ -2,11 +2,11 @@ params ["_sector", "_count"]; if (_count <= 0) exitWith {}; -if (KP_liberation_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf for %1 spawned on: %2", markerText _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf for %1 spawned on: %2", markerText _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; -waitUntil {sleep 1; _sector in KP_liberation_asymmetric_sectors}; +waitUntil {sleep 1; _sector in KPLIB_asymmetric_sectors}; -if (KP_liberation_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf -> spawning IED %1 at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf -> spawning IED %1 at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; private _activation_radius_infantry = 6.66; private _activation_radius_vehicles = 10; @@ -28,11 +28,11 @@ if (!(isnull _roadobj)) then { _ied_obj = createMine [_ied_type, _roadpos getPos [_spread, random (360)], [], 0]; _ied_obj setdir (random 360); - if (KP_liberation_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf -> IED %1 spawned at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf -> IED %1 spawned at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; - while {(_sector in KP_liberation_asymmetric_sectors) && (mineActive _ied_obj) && !_goes_boom} do { - _nearinfantry = ((getpos _ied_obj) nearEntities ["Man", _activation_radius_infantry]) select {side _x == GRLIB_side_friendly}; - _nearvehicles = ((getpos _ied_obj) nearEntities [["Car", "Tank", "Air"], _activation_radius_vehicles]) select {side _x == GRLIB_side_friendly}; + while {(_sector in KPLIB_asymmetric_sectors) && (mineActive _ied_obj) && !_goes_boom} do { + _nearinfantry = ((getpos _ied_obj) nearEntities ["Man", _activation_radius_infantry]) select {side _x == KPLIB_side_player}; + _nearvehicles = ((getpos _ied_obj) nearEntities [["Car", "Tank", "Air"], _activation_radius_vehicles]) select {side _x == KPLIB_side_player}; if (count _nearinfantry >= _infantry_trigger || count _nearvehicles >= _vehicle_trigger) then { _ied_obj setDamage 1; stats_ieds_detonated = stats_ieds_detonated + 1; publicVariable "stats_ieds_detonated"; @@ -41,10 +41,10 @@ if (!(isnull _roadobj)) then { sleep 1; }; } else { - if (KP_liberation_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf -> _roadobj is Null for IED %1 at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_asymmetric_debug > 0) then {[format ["manage_asymIED.sqf -> _roadobj is Null for IED %1 at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; }; -if ((KP_liberation_asymmetric_debug > 0) && !(isNull _roadobj)) then {[format ["manage_asymIED.sqf -> exit IED %1 loop at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if ((KPLIB_asymmetric_debug > 0) && !(isNull _roadobj)) then {[format ["manage_asymIED.sqf -> exit IED %1 loop at %2", _count, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; sleep 60; diff --git a/Missionframework/scripts/server/asymmetric/init_module.sqf b/Missionframework/scripts/server/asymmetric/init_module.sqf index 626067ee9..0879c1739 100644 --- a/Missionframework/scripts/server/asymmetric/init_module.sqf +++ b/Missionframework/scripts/server/asymmetric/init_module.sqf @@ -1,12 +1,12 @@ // Scripts // Logistic convoy ambush -logistic_convoy_ambush = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\convoy\logistic_convoy_ambush.sqf"; +logistic_convoy_ambush = compile preprocessFileLineNumbers "scripts\server\asymmetric\convoy\logistic_convoy_ambush.sqf"; // IED spawner for blufor sectors -manage_asymIED = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\ied\manage_asymIED.sqf"; +manage_asymIED = compile preprocessFileLineNumbers "scripts\server\asymmetric\ied\manage_asymIED.sqf"; // Spawner for guerilla ambushes in blufor sectors -asym_sector_ambush = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\random\asym_sector_ambush.sqf"; +asym_sector_ambush = compile preprocessFileLineNumbers "scripts\server\asymmetric\random\asym_sector_ambush.sqf"; // Spawner for guerilla forces who join a fight at an opfor sector -sector_guerilla = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\random\sector_guerilla.sqf"; +sector_guerilla = compile preprocessFileLineNumbers "scripts\server\asymmetric\random\sector_guerilla.sqf"; // Globals // List sectors which are just liberated. Preventing direct ambush spawn. diff --git a/Missionframework/scripts/server/asymmetric/random/asym_sector_ambush.sqf b/Missionframework/scripts/server/asymmetric/random/asym_sector_ambush.sqf index cc4ab3526..4ac6104d5 100644 --- a/Missionframework/scripts/server/asymmetric/random/asym_sector_ambush.sqf +++ b/Missionframework/scripts/server/asymmetric/random/asym_sector_ambush.sqf @@ -1,16 +1,16 @@ params ["_sector"]; -if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf for %1 spawned on: %2 - Time: %3", markerText _sector, debug_source, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf for %1 spawned on: %2 - Time: %3", markerText _sector, debug_source, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; -waitUntil {sleep 1; _sector in KP_liberation_asymmetric_sectors}; +waitUntil {sleep 1; _sector in KPLIB_asymmetric_sectors}; -private _buildings = (nearestObjects [(markerPos _sector), ["House"], 75]) select {(alive _x) && !((typeOf _x) in KP_liberation_cr_ign_buildings)}; +private _buildings = (nearestObjects [(markerPos _sector), ["House"], 75]) select {(alive _x) && !((typeOf _x) in KPLIB_cr_ign_buildings)}; private _positions = []; { _positions = _positions + ([_x] call BIS_fnc_buildingPositions); } forEach _buildings; -if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Found %1 suitable buildings in %2 - Time: %3", count _buildings, markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Found %1 suitable buildings in %2 - Time: %3", count _buildings, markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; private _position_indexes = []; private _position_count = count _positions; @@ -32,12 +32,12 @@ private _idxposit = 0; _idxposit = _idxposit + 1; } forEach (units _grp); -if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Units spawned in %1 - Time: %2", markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Units spawned in %1 - Time: %2", markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; private _attack = false; -while {(_sector in KP_liberation_asymmetric_sectors) && (!isNull _grp)} do { - private _blufor_near = {alive _x && side _x == GRLIB_side_friendly} count ((getpos (leader _grp)) nearEntities [["LAND"], 140]); +while {(_sector in KPLIB_asymmetric_sectors) && (!isNull _grp)} do { + private _blufor_near = {alive _x && side _x == KPLIB_side_player} count ((getpos (leader _grp)) nearEntities [["LAND"], 140]); if ((_blufor_near > 0) && !_attack) then { _attack = true; { @@ -59,7 +59,7 @@ while {(_sector in KP_liberation_asymmetric_sectors) && (!isNull _grp)} do { sleep 1; }; -if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Exit Loop in %1 - Time: %2", markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Exit Loop in %1 - Time: %2", markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; sleep 60; @@ -71,4 +71,4 @@ if (!isNull _grp) then { } forEach (units _grp); }; -if (KP_liberation_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Ambush dropped in %1 - Time: %2", markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["asym_sector_ambush.sqf -> Ambush dropped in %1 - Time: %2", markerText _sector, diag_tickTime], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; diff --git a/Missionframework/scripts/server/asymmetric/random/sector_guerilla.sqf b/Missionframework/scripts/server/asymmetric/random/sector_guerilla.sqf index 050d575be..b955e132b 100644 --- a/Missionframework/scripts/server/asymmetric/random/sector_guerilla.sqf +++ b/Missionframework/scripts/server/asymmetric/random/sector_guerilla.sqf @@ -1,10 +1,10 @@ params ["_sector"]; -if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 (%2) - sector_guerilla spawned on: %3", (markerText _sector), _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["Sector %1 (%2) - sector_guerilla spawned on: %3", (markerText _sector), _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; private _startpos = (markerPos _sector) getPos [(1200 + (round (random 400))), (random 360)]; -while {(([_startpos, 500, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) > 0) || (surfaceIsWater _startpos)} do { +while {(([_startpos, 500, KPLIB_side_player] call KPLIB_fnc_getUnitsCount) > 0) || (surfaceIsWater _startpos)} do { _startpos = (markerPos _sector) getPos [(1200 + (round (random 400))), (random 360)]; }; @@ -76,8 +76,8 @@ _spawnedGroups pushBack _grp; sleep 30; -if (((random 100) <= 25) && !(KP_liberation_guerilla_vehicles isEqualTo [])) then { - private _vehicle = (selectRandom KP_liberation_guerilla_vehicles) createVehicle _startpos; +if (((random 100) <= 25) && !(KPLIB_r_vehicles isEqualTo [])) then { + private _vehicle = (selectRandom KPLIB_r_vehicles) createVehicle _startpos; [_vehicle] call KPLIB_fnc_allowCrewInImmobile; private _grp = [_startpos, 2] call KPLIB_fnc_spawnGuerillaGroup; @@ -106,7 +106,7 @@ if (((random 100) <= 25) && !(KP_liberation_guerilla_vehicles isEqualTo [])) the _spawnedGroups pushBack _grp; }; -waitUntil {sleep 60; !(_sector in active_sectors)}; +waitUntil {sleep 60; !(_sector in KPLIB_sectors_active)}; sleep 60; @@ -117,7 +117,7 @@ private _strengthChanged = false; { if (alive _x) then { deleteVehicle _x; - KP_liberation_guerilla_strength = KP_liberation_guerilla_strength + 2; + KPLIB_guerilla_strength = KPLIB_guerilla_strength + 2; _strengthChanged = true; }; } forEach (units _x); @@ -125,7 +125,7 @@ private _strengthChanged = false; } forEach _spawnedGroups; if (!isServer && _strengthChanged) then { - publicVariableServer "KP_liberation_guerilla_strength"; + publicVariableServer "KPLIB_guerilla_strength"; }; -if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 (%2) - sector_guerilla dropped on: %3", (markerText _sector), _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["Sector %1 (%2) - sector_guerilla dropped on: %3", (markerText _sector), _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; diff --git a/Missionframework/scripts/server/base/huron_manager.sqf b/Missionframework/scripts/server/base/huron_manager.sqf index 45885266a..e0c123294 100644 --- a/Missionframework/scripts/server/base/huron_manager.sqf +++ b/Missionframework/scripts/server/base/huron_manager.sqf @@ -1,40 +1,42 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {save_is_loaded}; +scriptName "huron_manager"; -huron = objNull; +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {KPLIB_saveLoaded}; -// Detect possible huron from loaded save data -private _savedHuron = vehicles select {(toLower (typeOf _x)) isEqualTo (toLower huron_typename)}; -if !(_savedHuron isEqualTo []) then { - huron = _savedHuron select 0; +KPLIB_potato01 = objNull; + +// Detect possible Potato 01 from loaded save data +private _savedPotato = vehicles select {(toLower (typeOf _x)) isEqualTo (toLower KPLIB_b_potato01)}; +if !(_savedPotato isEqualTo []) then { + KPLIB_potato01 = _savedPotato select 0; }; while {true} do { // Spawn new huron if not loaded or destroyed - if !(alive huron) then { - huron = huron_typename createVehicle [(getposATL huronspawn) select 0, (getposATL huronspawn) select 1, ((getposATL huronspawn) select 2) + 0.2]; - huron enableSimulationGlobal false; - huron allowdamage false; - huron setDir (getDir huronspawn); - huron setPosATL (getposATL huronspawn); - huron setDamage 0; + if !(alive KPLIB_potato01) then { + KPLIB_potato01 = KPLIB_b_potato01 createVehicle [(getposATL huronspawn) select 0, (getposATL huronspawn) select 1, ((getposATL huronspawn) select 2) + 0.2]; + KPLIB_potato01 enableSimulationGlobal false; + KPLIB_potato01 allowdamage false; + KPLIB_potato01 setDir (getDir huronspawn); + KPLIB_potato01 setPosATL (getposATL huronspawn); + KPLIB_potato01 setDamage 0; sleep 0.5; - huron enableSimulationGlobal true; - huron setDamage 0; - huron allowdamage true; - [huron] call KPLIB_fnc_addObjectInit; + KPLIB_potato01 enableSimulationGlobal true; + KPLIB_potato01 setDamage 0; + KPLIB_potato01 allowdamage true; + [KPLIB_potato01] call KPLIB_fnc_addObjectInit; }; - [huron] call KPLIB_fnc_clearCargo; - huron setVariable ["ace_medical_isMedicalVehicle", true, true]; - publicVariable "huron"; + [KPLIB_potato01] call KPLIB_fnc_clearCargo; + KPLIB_potato01 setVariable ["ace_medical_isMedicalVehicle", true, true]; + publicVariable "KPLIB_potato01"; // Wait until huron is destroyed to respawn it - waitUntil {sleep 5; !alive huron}; - stats_spartan_respawns = stats_spartan_respawns + 1; + waitUntil {sleep 5; !alive KPLIB_potato01}; + stats_potato_respawns = stats_potato_respawns + 1; sleep 10; // Delete wreck, if near startbase - if (huron distance startbase < 500) then { - deletevehicle huron; + if (KPLIB_potato01 distance startbase < 500) then { + deletevehicle KPLIB_potato01; }; }; diff --git a/Missionframework/scripts/server/base/startgame.sqf b/Missionframework/scripts/server/base/startgame.sqf index 47c22f5d2..5cf0779db 100644 --- a/Missionframework/scripts/server/base/startgame.sqf +++ b/Missionframework/scripts/server/base/startgame.sqf @@ -1,16 +1,16 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {save_is_loaded}; +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {KPLIB_saveLoaded}; // Check if there is no FOB yet (new campaign) -if (GRLIB_all_fobs isEqualTo []) then { +if (KPLIB_sectors_fob isEqualTo []) then { // Prebuild FOB (parameter setting) or spawn FOB box - if (GRLIB_build_first_fob) then { + if (KPLIB_param_firstFobBuilt) then { // Only accept spawnpoints which are at least 800m away from any sector private _y = ""; - private _validPlaces = sectors_opfor select { + private _validPlaces = KPLIB_sectors_spawn select { _y = _x; - (sectors_allSectors findIf {((markerPos _x) distance2d (markerPos _y)) < 800}) isEqualTo -1 + (KPLIB_sectors_all findIf {((markerPos _x) distance2d (markerPos _y)) < 800}) isEqualTo -1 }; // Spawn first FOB on random valid spawnpoint @@ -18,8 +18,8 @@ if (GRLIB_all_fobs isEqualTo []) then { } else { // Spawn FOB box and wait until the first FOB was built private _fobbox = objNull; - while {GRLIB_all_fobs isEqualTo []} do { - _fobbox = ([FOB_box_typename, FOB_truck_typename] select KP_liberation_fob_vehicle) createVehicle (getposATL base_boxspawn); + while {KPLIB_sectors_fob isEqualTo []} do { + _fobbox = ([KPLIB_b_fobBox, KPLIB_b_fobTruck] select KPLIB_param_fobVehicle) createVehicle (getposATL base_boxspawn); _fobbox setdir getDir base_boxspawn; _fobbox setposATL (getposATL base_boxspawn); [_fobbox, true] call KPLIB_fnc_clearCargo; @@ -28,7 +28,7 @@ if (GRLIB_all_fobs isEqualTo []) then { // If the FOB box has fallen into the sea or is destroyed, start again with spawning a new one waitUntil { sleep 1; - !(alive _fobbox) || !(GRLIB_all_fobs isEqualTo []) || (((getPosASL _fobbox) select 2) < 0) + !(alive _fobbox) || !(KPLIB_sectors_fob isEqualTo []) || (((getPosASL _fobbox) select 2) < 0) }; sleep 10; }; @@ -36,8 +36,8 @@ if (GRLIB_all_fobs isEqualTo []) then { }; // Wait a short time before paradropping the start resource crates - waitUntil {sleep 1; !(GRLIB_all_fobs isEqualTo [])}; - if (KP_liberation_tutorial && {["KPLIB_Tasks_Tutorial_Fob"] call BIS_fnc_taskExists}) then { + waitUntil {sleep 1; !(KPLIB_sectors_fob isEqualTo [])}; + if (KPLIB_param_tutorial && {["KPLIB_Tasks_Tutorial_Fob"] call BIS_fnc_taskExists}) then { waitUntil {sleep 1; ["KPLIB_Tasks_Tutorial_Fob_02"] call BIS_fnc_taskCompleted}; sleep 3; } else { @@ -50,16 +50,16 @@ if (GRLIB_all_fobs isEqualTo []) then { for "_i" from 1 to 6 do { _crate = createVehicle [ (KPLIB_crates select (_i % 3)), - [((GRLIB_all_fobs select 0) select 0), ((GRLIB_all_fobs select 0) select 1), 150], + [((KPLIB_sectors_fob select 0) select 0), ((KPLIB_sectors_fob select 0) select 1), 150], [], 80, "FLY" ]; [_crate, true] call KPLIB_fnc_clearCargo; - _crate setVariable ["KP_liberation_crate_value", 100, true]; + _crate setVariable ["KPLIB_crate_value", 100, true]; [_crate, 500] remoteExec ["setMass", _crate]; [objNull, _crate] call BIS_fnc_curatorObjectEdited; - if (KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; + if (KPLIB_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];}; KPLIB_startCrates pushBack _crate; }; diff --git a/Missionframework/scripts/server/base/startvehicle_spawn.sqf b/Missionframework/scripts/server/base/startvehicle_spawn.sqf index 88ac95d0a..0b56f25ad 100644 --- a/Missionframework/scripts/server/base/startvehicle_spawn.sqf +++ b/Missionframework/scripts/server/base/startvehicle_spawn.sqf @@ -12,7 +12,7 @@ E.g. the variables of the grasscutter placeholder objects for the little birds are named "littlebird_0", "littlebird_1", etc. - while the variable from the preset is KP_liberation_little_bird_classname. + while the variable from the preset is KPLIB_b_addHeli. This leads to the entry below. You can also remove unwanted start vehicles by deleting the corresponding line @@ -20,8 +20,8 @@ Refer to: https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_ImportantHints#commas-inside-an-array */ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {save_is_loaded}; +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {KPLIB_saveLoaded}; private _placeholder = objNull; private _spawnPos = []; @@ -42,10 +42,10 @@ private _veh = objNull; _veh enableSimulationGlobal true; _veh setDamage 0; _veh allowDamage true; - _veh setVariable ["KP_liberation_preplaced", true, true]; + _veh setVariable ["KPLIB_preplaced", true, true]; [_veh] call KPLIB_fnc_addObjectInit; }; } forEach [ - ["littlebird_", KP_liberation_little_bird_classname], - ["boat_", KP_liberation_boat_classname] + ["littlebird_", KPLIB_b_addHeli], + ["boat_", KPLIB_b_addBoat] ]; diff --git a/Missionframework/scripts/server/battlegroup/counter_battlegroup.sqf b/Missionframework/scripts/server/battlegroup/counter_battlegroup.sqf index d015897af..5a003a926 100644 --- a/Missionframework/scripts/server/battlegroup/counter_battlegroup.sqf +++ b/Missionframework/scripts/server/battlegroup/counter_battlegroup.sqf @@ -1,3 +1,5 @@ +scriptName "counter_battle_group"; + if (isNil "infantry_weight") then {infantry_weight = 33;}; if (isNil "armor_weight") then {armor_weight = 33;}; if (isNil "air_weight") then {air_weight = 33;}; @@ -6,17 +8,17 @@ sleep 1800; private _sleeptime = 0; private _target_player = objNull; private _target_pos = ""; -while {GRLIB_csat_aggressivity >= 0.9 && GRLIB_endgame == 0} do { - _sleeptime = (1800 + (random 1800)) / (([] call KPLIB_fnc_getOpforFactor) * GRLIB_csat_aggressivity); +while {KPLIB_param_aggressivity >= 0.9 && KPLIB_endgame == 0} do { + _sleeptime = (1800 + (random 1800)) / (([] call KPLIB_fnc_getOpforFactor) * KPLIB_param_aggressivity); - if (combat_readiness >= 80) then {_sleeptime = _sleeptime * 0.75;}; - if (combat_readiness >= 90) then {_sleeptime = _sleeptime * 0.75;}; - if (combat_readiness >= 95) then {_sleeptime = _sleeptime * 0.75;}; + if (KPLIB_enemyReadiness >= 80) then {_sleeptime = _sleeptime * 0.75;}; + if (KPLIB_enemyReadiness >= 90) then {_sleeptime = _sleeptime * 0.75;}; + if (KPLIB_enemyReadiness >= 95) then {_sleeptime = _sleeptime * 0.75;}; sleep _sleeptime; waitUntil {sleep 5; - combat_readiness >= 70 && {armor_weight >= 50 || air_weight >= 50} + KPLIB_enemyReadiness >= 70 && {armor_weight >= 50 || air_weight >= 50} }; _target_player = objNull; diff --git a/Missionframework/scripts/server/battlegroup/random_battlegroups.sqf b/Missionframework/scripts/server/battlegroup/random_battlegroups.sqf index fb391e3bf..7ca7c139c 100644 --- a/Missionframework/scripts/server/battlegroup/random_battlegroups.sqf +++ b/Missionframework/scripts/server/battlegroup/random_battlegroups.sqf @@ -1,25 +1,27 @@ -sleep (900 / GRLIB_csat_aggressivity); +scriptName "random_battlegroups"; + +sleep (900 / KPLIB_param_aggressivity); private _sleeptime = 0; -while {GRLIB_csat_aggressivity > 0.9 && GRLIB_endgame == 0} do { - _sleeptime = (1800 + (random 1800)) / (([] call KPLIB_fnc_getOpforFactor) * GRLIB_csat_aggressivity); +while {KPLIB_param_aggressivity > 0.9 && KPLIB_endgame == 0} do { + _sleeptime = (1800 + (random 1800)) / (([] call KPLIB_fnc_getOpforFactor) * KPLIB_param_aggressivity); - if (combat_readiness >= 80) then {_sleeptime = _sleeptime * 0.75;}; - if (combat_readiness >= 90) then {_sleeptime = _sleeptime * 0.75;}; - if (combat_readiness >= 95) then {_sleeptime = _sleeptime * 0.75;}; + if (KPLIB_enemyReadiness >= 80) then {_sleeptime = _sleeptime * 0.75;}; + if (KPLIB_enemyReadiness >= 90) then {_sleeptime = _sleeptime * 0.75;}; + if (KPLIB_enemyReadiness >= 95) then {_sleeptime = _sleeptime * 0.75;}; sleep _sleeptime; - if (!isNil "GRLIB_last_battlegroup_time") then { + if (!isNil "KPLIB_last_battlegroup_time") then { waitUntil { sleep 5; - diag_tickTime > (GRLIB_last_battlegroup_time + (2100 / GRLIB_csat_aggressivity)) + diag_tickTime > (KPLIB_last_battlegroup_time + (2100 / KPLIB_param_aggressivity)) }; }; if ( - (count (allPlayers - entities "HeadlessClient_F") >= (6 / GRLIB_csat_aggressivity)) - && {combat_readiness >= (60 - (5 * GRLIB_csat_aggressivity))} - && {[] call KPLIB_fnc_getOpforCap < GRLIB_battlegroup_cap} + (count (allPlayers - entities "HeadlessClient_F") >= (6 / KPLIB_param_aggressivity)) + && {KPLIB_enemyReadiness >= (60 - (5 * KPLIB_param_aggressivity))} + && {[] call KPLIB_fnc_getOpforCap < KPLIB_cap_battlegroup} && {diag_fps > 15.0} ) then { ["", (random 100) < 45] spawn spawn_battlegroup; diff --git a/Missionframework/scripts/server/battlegroup/readiness_increase.sqf b/Missionframework/scripts/server/battlegroup/readiness_increase.sqf index 252047506..87e62aeb5 100644 --- a/Missionframework/scripts/server/battlegroup/readiness_increase.sqf +++ b/Missionframework/scripts/server/battlegroup/readiness_increase.sqf @@ -1,19 +1,21 @@ -waitUntil {!isNil "save_is_loaded" && {save_is_loaded}}; +scriptName "readiness_increase"; + +waitUntil {!isNil "KPLIB_saveLoaded" && {KPLIB_saveLoaded}}; while {true} do { - if ((count blufor_sectors) >= ((count sectors_allSectors) * 0.9)) then { - if (combat_readiness > 0) then { - combat_readiness = combat_readiness - 0.25; + if ((count KPLIB_sectors_player) >= ((count KPLIB_sectors_all) * 0.9)) then { + if (KPLIB_enemyReadiness > 0) then { + KPLIB_enemyReadiness = KPLIB_enemyReadiness - 0.25; }; } else { if ( - (combat_readiness < ((count blufor_sectors) * 2) && combat_readiness < 35) - || (combat_readiness < ((count blufor_sectors) * 1.25) && combat_readiness < 60) + (KPLIB_enemyReadiness < ((count KPLIB_sectors_player) * 2) && KPLIB_enemyReadiness < 35) + || (KPLIB_enemyReadiness < ((count KPLIB_sectors_player) * 1.25) && KPLIB_enemyReadiness < 60) ) then { - combat_readiness = combat_readiness + 0.25; + KPLIB_enemyReadiness = KPLIB_enemyReadiness + 0.25; stats_readiness_earned = stats_readiness_earned + 0.25; }; }; - if (combat_readiness > 100.0 && GRLIB_difficulty_modifier < 2) then {combat_readiness = 100.0}; + if (KPLIB_enemyReadiness > 100.0 && KPLIB_param_difficulty < 2) then {KPLIB_enemyReadiness = 100.0}; sleep (180 + random (180)); }; diff --git a/Missionframework/scripts/server/battlegroup/spawn_air.sqf b/Missionframework/scripts/server/battlegroup/spawn_air.sqf index 218cdff99..f32a55247 100644 --- a/Missionframework/scripts/server/battlegroup/spawn_air.sqf +++ b/Missionframework/scripts/server/battlegroup/spawn_air.sqf @@ -1,16 +1,16 @@ params ["_first_objective"]; -if (opfor_air isEqualTo []) exitWith {false}; +if (KPLIB_o_planes isEqualTo []) exitWith {false}; -private _planes_number = ((floor linearConversion [40, 100, combat_readiness, 1, 3]) min 3) max 0; +private _planes_number = ((floor linearConversion [40, 100, KPLIB_enemyReadiness, 1, 3]) min 3) max 0; if (_planes_number < 1) exitWith {}; -private _class = selectRandom opfor_air; -private _spawnPoint = ([sectors_airspawn, [_first_objective], {(markerPos _x) distance _input0}, "ASCEND"] call BIS_fnc_sortBy) select 0; +private _class = selectRandom KPLIB_o_planes; +private _spawnPoint = ([KPLIB_sectors_airSpawn, [_first_objective], {(markerPos _x) distance _input0}, "ASCEND"] call BIS_fnc_sortBy) select 0; private _spawnPos = []; private _plane = objNull; -private _grp = createGroup [GRLIB_side_enemy, true]; +private _grp = createGroup [KPLIB_side_enemy, true]; for "_i" from 1 to _planes_number do { _spawnPos = markerPos _spawnPoint; @@ -18,9 +18,19 @@ for "_i" from 1 to _planes_number do { _plane = createVehicle [_class, _spawnPos, [], 0, "FLY"]; createVehicleCrew _plane; _plane flyInHeight (120 + (random 180)); - _plane addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; [_plane] call KPLIB_fnc_addObjectInit; - {_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach (crew _plane); + + _plane addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; + { + _x addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_localEvent; + }]; + } forEach (crew _plane); + (crew _plane) joinSilent _grp; sleep 1; }; diff --git a/Missionframework/scripts/server/battlegroup/spawn_battlegroup.sqf b/Missionframework/scripts/server/battlegroup/spawn_battlegroup.sqf index 244285c0e..fe5a573de 100644 --- a/Missionframework/scripts/server/battlegroup/spawn_battlegroup.sqf +++ b/Missionframework/scripts/server/battlegroup/spawn_battlegroup.sqf @@ -4,44 +4,44 @@ params [ ["_infOnly", false, [false]] ]; -if (GRLIB_endgame == 1) exitWith {}; +if (KPLIB_endgame == 1) exitWith {}; _spawn_marker = [[2000, 1000] select _infOnly, 3000, false, markerPos _spawn_marker] call KPLIB_fnc_getOpforSpawnPoint; if !(_spawn_marker isEqualTo "") then { - GRLIB_last_battlegroup_time = diag_tickTime; + KPLIB_last_battlegroup_time = diag_tickTime; private _bg_groups = []; private _selected_opfor_battlegroup = []; - private _target_size = (round (GRLIB_battlegroup_size * ([] call KPLIB_fnc_getOpforFactor) * (sqrt GRLIB_csat_aggressivity))) min 16; - if (combat_readiness < 60) then {_target_size = round (_target_size * 0.65);}; + private _target_size = (round (KPLIB_battlegroup_size * ([] call KPLIB_fnc_getOpforFactor) * (sqrt KPLIB_param_aggressivity))) min 16; + if (KPLIB_enemyReadiness < 60) then {_target_size = round (_target_size * 0.65);}; [_spawn_marker] remoteExec ["remote_call_battlegroup"]; - if (worldName in KP_liberation_battlegroup_clearance) then { + if (worldName in KPLIB_battlegroup_clearance) then { [markerPos _spawn_marker, 15] call KPLIB_fnc_createClearance; }; if (_infOnly) then { // Infantry units to choose from - private _infClasses = [KPLIB_o_inf_classes, militia_squad] select (combat_readiness < 50); + private _infClasses = [KPLIB_o_inf_classes, KPLIB_o_militiaInfantry] select (KPLIB_enemyReadiness < 50); // Adjust target size for infantry _target_size = 12 max (_target_size * 4); + private _squadNumber = round (_target_size/8); - // Create infantry groups with up to 8 units per squad - private _grp = createGroup [GRLIB_side_enemy, true]; - for "_i" from 0 to (_target_size - 1) do { - if (_i > 0 && {(_i % 8) isEqualTo 0}) then { - _bg_groups pushBack _grp; - _grp = createGroup [GRLIB_side_enemy, true]; + for "_i" from 1 to _squadNumber do { + // Create infantry groups with up to 8 units per squad + private _grp = createGroup [KPLIB_side_enemy, true]; + for "_i" from 0 to 7 do { + [selectRandom _infClasses, markerPos _spawn_marker, _grp] call KPLIB_fnc_createManagedUnit; }; - [selectRandom _infClasses, markerPos _spawn_marker, _grp] call KPLIB_fnc_createManagedUnit; + [_grp] call KPLIB_fnc_LAMBS_enableReinforcements; + [_grp] call battlegroup_ai; + _grp setVariable ["KPLIB_isBattleGroup",true]; }; - [_grp] spawn battlegroup_ai; - _bg_groups pushBack _grp; } else { - private _vehicle_pool = [opfor_battlegroup_vehicles, opfor_battlegroup_vehicles_low_intensity] select (combat_readiness < 50); + private _vehicle_pool = [KPLIB_o_battleGrpVehicles, KPLIB_o_battleGrpVehiclesLight] select (KPLIB_enemyReadiness < 50); while {count _selected_opfor_battlegroup < _target_size} do { _selected_opfor_battlegroup pushback (selectRandom _vehicle_pool); @@ -49,16 +49,17 @@ if !(_spawn_marker isEqualTo "") then { private ["_nextgrp", "_vehicle"]; { - _nextgrp = createGroup [GRLIB_side_enemy, true]; + _nextgrp = createGroup [KPLIB_side_enemy, true]; _vehicle = [markerpos _spawn_marker, _x] call KPLIB_fnc_spawnVehicle; sleep 0.5; (crew _vehicle) joinSilent _nextgrp; - [_nextgrp] spawn battlegroup_ai; + [_nextgrp] call battlegroup_ai; + _nextgrp setVariable ["KPLIB_isBattleGroup", true]; _bg_groups pushback _nextgrp; - if ((_x in opfor_troup_transports) && ([] call KPLIB_fnc_getOpforCap < GRLIB_battlegroup_cap)) then { + if ((_x in KPLIB_o_troopTransports) && ([] call KPLIB_fnc_getOpforCap < KPLIB_cap_battlegroup)) then { if (_vehicle isKindOf "Air") then { [[markerPos _spawn_marker] call KPLIB_fnc_getNearestBluforObjective, _vehicle] spawn send_paratroopers; } else { @@ -67,14 +68,14 @@ if !(_spawn_marker isEqualTo "") then { }; } forEach _selected_opfor_battlegroup; - if (GRLIB_csat_aggressivity > 0.9) then { + if (KPLIB_param_aggressivity > 0.9) then { [[markerPos _spawn_marker] call KPLIB_fnc_getNearestBluforObjective] spawn spawn_air; }; }; sleep 3; - combat_readiness = (combat_readiness - (round ((count _bg_groups) + (random (count _bg_groups))))) max 0; + KPLIB_enemyReadiness = (KPLIB_enemyReadiness - (round ((count _bg_groups) + (random (count _bg_groups))))) max 0; stats_hostile_battlegroups = stats_hostile_battlegroups + 1; { diff --git a/Missionframework/scripts/server/civinformant/civinfo_delivered.sqf b/Missionframework/scripts/server/civinformant/civinfo_delivered.sqf index 3c35f19a6..5b74f29d0 100644 --- a/Missionframework/scripts/server/civinformant/civinfo_delivered.sqf +++ b/Missionframework/scripts/server/civinformant/civinfo_delivered.sqf @@ -1,13 +1,13 @@ params ["_informant"]; if (isServer && alive _informant) then { - resources_intel = resources_intel + KP_liberation_civinfo_intel; + resources_intel = resources_intel + KPLIB_civinfo_intel; [2] spawn F_cr_changeCR; [1] remoteExec ["civinfo_notifications"]; sleep 6; - if ((random 100) <= KP_liberation_civinfo_task_chance) then { + if ((random 100) <= KPLIB_civinfo_task_chance) then { private _hc = [] call KPLIB_fnc_getLessLoadedHC; if (isNull _hc) then { diff --git a/Missionframework/scripts/server/civinformant/civinfo_loop.sqf b/Missionframework/scripts/server/civinformant/civinfo_loop.sqf index db3a360f0..b9b5c07ef 100644 --- a/Missionframework/scripts/server/civinformant/civinfo_loop.sqf +++ b/Missionframework/scripts/server/civinformant/civinfo_loop.sqf @@ -1,32 +1,34 @@ -waitUntil {sleep 10; ({_x in sectors_capture || _x in sectors_bigtown} count blufor_sectors) > 0}; +scriptName "civinfo_loop"; -if (KP_liberation_civinfo_debug > 0) then {[format ["Loop spawned on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; +waitUntil {sleep 10; ({_x in KPLIB_sectors_city || _x in KPLIB_sectors_capital} count KPLIB_sectors_player) > 0}; + +if (KPLIB_civinfo_debug > 0) then {[format ["Loop spawned on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; while {true} do { - uiSleep (KP_liberation_civinfo_min + round (random (KP_liberation_civinfo_max - KP_liberation_civinfo_min))); + uiSleep (KPLIB_civinfo_min + round (random (KPLIB_civinfo_max - KPLIB_civinfo_min))); - if (KP_liberation_civinfo_debug > 0) then {["Informant sleep passed", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {["Informant sleep passed", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; waitUntil { sleep 10; - ({_x in sectors_capture || _x in sectors_bigtown} count blufor_sectors) > 0 && - KP_liberation_civ_rep >= 25 + ({_x in KPLIB_sectors_city || _x in KPLIB_sectors_capital} count KPLIB_sectors_player) > 0 && + KPLIB_civ_rep >= 25 }; - if (KP_liberation_civinfo_debug > 0) then {["Informant waitUntil passed", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {["Informant waitUntil passed", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; - if ((KP_liberation_civinfo_chance >= (random 100)) && GRLIB_endgame == 0) then { - private _sector = selectRandom (blufor_sectors select {_x in sectors_capture || _x in sectors_bigtown}); + if ((KPLIB_civinfo_chance >= (random 100)) && KPLIB_endgame == 0) then { + private _sector = selectRandom (KPLIB_sectors_player select {_x in KPLIB_sectors_city || _x in KPLIB_sectors_capital}); private _house = (nearestObjects [[((markerPos _sector select 0) - 100 + (random 200)), ((markerPos _sector select 1) - 100 + (random 200))],["House", "Building"], 100]) select 0; - private _grp = createGroup [GRLIB_side_civilian, true]; - private _informant = [selectRandom civilians, markerPos _sector, _grp] call KPLIB_fnc_createManagedUnit; - private _waiting_time = KP_liberation_civinfo_duration; + private _grp = createGroup [KPLIB_side_civilian, true]; + private _informant = [selectRandom KPLIB_c_units, markerPos _sector, _grp] call KPLIB_fnc_createManagedUnit; + private _waiting_time = KPLIB_civinfo_duration; _informant setPos (selectRandom (_house buildingPos -1)); _informant setUnitPos "UP"; sleep 1; - if (KP_liberation_ace) then { + if (KPLIB_ace) then { ["ace_captives_setSurrendered", [_informant, true], _informant] call CBA_fnc_targetEvent; } else { _informant disableAI "ANIM"; @@ -36,11 +38,11 @@ while {true} do { _informant setCaptive true; }; - if (KP_liberation_civinfo_debug > 0) then {[format ["Informant %1 spawned on: %2 - Position: %3", name _informant, debug_source, getPos _informant], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {[format ["Informant %1 spawned on: %2 - Position: %3", name _informant, debug_source, getPos _informant], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; [0, [((((getPos _informant) select 0) + 200) - random 400),((((getPos _informant) select 1) + 200) - random 400),0]] remoteExec ["civinfo_notifications"]; - while {alive _informant && ((side (group _informant)) == GRLIB_side_civilian) && _waiting_time > 0} do { + while {alive _informant && ((side (group _informant)) == KPLIB_side_civilian) && _waiting_time > 0} do { uiSleep 1; private _player_near = false; { @@ -51,12 +53,12 @@ while {true} do { _waiting_time = _waiting_time - 1; }; - if ((KP_liberation_civinfo_debug > 0) && ((_waiting_time % 60) == 0)) then {[format ["Informant will despawn in %1 minutes", round (_waiting_time / 60)], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if ((KPLIB_civinfo_debug > 0) && ((_waiting_time % 60) == 0)) then {[format ["Informant will despawn in %1 minutes", round (_waiting_time / 60)], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; }; if (_waiting_time > 0) then { if (alive _informant) then { - if (KP_liberation_ace) then { + if (KPLIB_ace) then { ["ace_captives_setSurrendered", [_informant, false], _informant] call CBA_fnc_targetEvent; } else { _informant enableAI "ANIM"; @@ -65,15 +67,15 @@ while {true} do { sleep 1; [_informant] remoteExec ["civinfo_escort"]; } else { - if (KP_liberation_civinfo_debug > 0) then {["Informant is dead", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {["Informant is dead", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; [3] remoteExec ["civinfo_notifications"]; }; } else { deleteVehicle _informant; - if (KP_liberation_civinfo_debug > 0) then {["Informant despawned", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {["Informant despawned", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; [2] remoteExec ["civinfo_notifications"]; }; } else { - if (KP_liberation_civinfo_debug > 0) then {["Informant spawn chance missed", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {["Informant spawn chance missed", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; }; }; diff --git a/Missionframework/scripts/server/civinformant/init_module.sqf b/Missionframework/scripts/server/civinformant/init_module.sqf index 30d789a33..092bef575 100644 --- a/Missionframework/scripts/server/civinformant/init_module.sqf +++ b/Missionframework/scripts/server/civinformant/init_module.sqf @@ -1,6 +1,6 @@ // Scripts // Task selection and spawning -civinfo_task = compileFinal preprocessFileLineNumbers "scripts\server\civinformant\tasks\civinfo_task.sqf"; +civinfo_task = compile preprocessFileLineNumbers "scripts\server\civinformant\tasks\civinfo_task.sqf"; // Start spawn loop execVM "scripts\server\civinformant\civinfo_loop.sqf"; diff --git a/Missionframework/scripts/server/civinformant/tasks/civinfo_task.sqf b/Missionframework/scripts/server/civinformant/tasks/civinfo_task.sqf index 8f949a189..d271a4fce 100644 --- a/Missionframework/scripts/server/civinformant/tasks/civinfo_task.sqf +++ b/Missionframework/scripts/server/civinformant/tasks/civinfo_task.sqf @@ -1,11 +1,11 @@ -if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_task.sqf spawned on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_civinfo_debug > 0) then {[format ["civinfo_task.sqf spawned on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; private _spawn_marker = [2000,999999,false] call KPLIB_fnc_getOpforSpawnPoint; private _roadObj = [markerPos _spawn_marker, 400, []] call BIS_fnc_nearestRoad; -if (isNull _roadObj) exitWith {if (KP_liberation_civinfo_debug > 0) then {["civinfo_task.sqf -> no road found", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];};}; +if (isNull _roadObj) exitWith {if (KPLIB_civinfo_debug > 0) then {["civinfo_task.sqf -> no road found", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];};}; -private _veh = createVehicle [opfor_mrap, getPos _roadObj, [], 0, "NONE"]; +private _veh = createVehicle [KPLIB_o_mrap, getPos _roadObj, [], 0, "NONE"]; _veh setDir (getDir _roadObj); { if ((_x find "FWheel") != -1) then { @@ -13,11 +13,11 @@ _veh setDir (getDir _roadObj); }; } forEach ((getAllHitPointsDamage _veh) select 0); -private _grp = createGroup [GRLIB_side_enemy, true]; -private _hvt = [opfor_officer, getPos _roadObj, _grp, "CAPTAIN", 30] call KPLIB_fnc_createManagedUnit; +private _grp = createGroup [KPLIB_side_enemy, true]; +private _hvt = [KPLIB_o_officer, getPos _roadObj, _grp, "CAPTAIN", 30] call KPLIB_fnc_createManagedUnit; for "_i" from 1 to 4 do { - [selectRandom militia_squad, _grp, _grp] call KPLIB_fnc_createManagedUnit; + [selectRandom KPLIB_o_militiaInfantry, _grp, _grp] call KPLIB_fnc_createManagedUnit; sleep 0.1; }; @@ -38,13 +38,13 @@ _waypoint setWaypointType "MOVE"; _waypoint = _grp addWaypoint [getPos _roadObj, 100]; _waypoint setWaypointType "CYCLE"; -if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_task.sqf -> vehicle and group created on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_civinfo_debug > 0) then {[format ["civinfo_task.sqf -> vehicle and group created on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; private _marker_pos = [((((getPos _roadObj) select 0) + 200) - random 400),((((getPos _roadObj) select 1) + 200) - random 400),0]; [4, _marker_pos] remoteExec ["civinfo_notifications"]; -private _time_remaining = KP_liberation_civinfo_task_duration; +private _time_remaining = KPLIB_civinfo_task_duration; while {(alive _hvt) && _time_remaining > 0} do { uiSleep 1; @@ -56,21 +56,21 @@ while {(alive _hvt) && _time_remaining > 0} do { if !(_player_near) then { _time_remaining = _time_remaining - 1; }; - if ((KP_liberation_civinfo_debug > 0) && ((_time_remaining % 60) == 0)) then {[format ["civinfo_task.sqf -> Task will despawn in %1 minutes", round (_time_remaining / 60)], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if ((KPLIB_civinfo_debug > 0) && ((_time_remaining % 60) == 0)) then {[format ["civinfo_task.sqf -> Task will despawn in %1 minutes", round (_time_remaining / 60)], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; }; -if (KP_liberation_civinfo_debug > 0) then {[format ["civinfo_task.sqf -> loop exited on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_civinfo_debug > 0) then {[format ["civinfo_task.sqf -> loop exited on: %1", debug_source], "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; if (alive _hvt) then { deleteVehicle _veh; {deleteVehicle _x} forEach (units _grp); [6] remoteExec ["civinfo_notifications"]; - if (KP_liberation_civinfo_debug > 0) then {["civinfo_task.sqf -> Task despawned", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {["civinfo_task.sqf -> Task despawned", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; } else { - combat_readiness = round (combat_readiness * 0.6); + KPLIB_enemyReadiness = round (KPLIB_enemyReadiness * 0.6); if (!isServer) then { - publicVariableServer "combat_readiness"; + publicVariableServer "KPLIB_enemyReadiness"; }; [5] remoteExec ["civinfo_notifications"]; - if (KP_liberation_civinfo_debug > 0) then {["civinfo_task.sqf -> Task ended with success", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_civinfo_debug > 0) then {["civinfo_task.sqf -> Task ended with success", "CIVINFO"] remoteExecCall ["KPLIB_fnc_log", 2];}; }; diff --git a/Missionframework/scripts/server/civrep/fnc/f_kp_cr_changeCR.sqf b/Missionframework/scripts/server/civrep/fnc/f_kp_cr_changeCR.sqf index 28adaf3b3..4d18c62c4 100644 --- a/Missionframework/scripts/server/civrep/fnc/f_kp_cr_changeCR.sqf +++ b/Missionframework/scripts/server/civrep/fnc/f_kp_cr_changeCR.sqf @@ -2,24 +2,24 @@ params ["_amount", ["_negative", false]]; if (!isServer) exitWith {}; -if (KP_liberation_civrep_debug > 0) then {[format ["changeCR called - Parameters [%1, %2]", _amount, _negative], "CIVREP"] call KPLIB_fnc_log;}; +if (KPLIB_civrep_debug > 0) then {[format ["changeCR called - Parameters [%1, %2]", _amount, _negative], "CIVREP"] call KPLIB_fnc_log;}; if (_negative) then { - KP_liberation_civ_rep = KP_liberation_civ_rep - _amount; + KPLIB_civ_rep = KPLIB_civ_rep - _amount; } else { - KP_liberation_civ_rep = KP_liberation_civ_rep + _amount; + KPLIB_civ_rep = KPLIB_civ_rep + _amount; }; -KP_liberation_civ_rep = -100 max (KP_liberation_civ_rep min 100); +KPLIB_civ_rep = -100 max (KPLIB_civ_rep min 100); // Set correct resistance standing -private _resistanceEnemy = [0, 1] select (KP_liberation_civ_rep < 25); -private _resistanceFriendly = [0, 1] select (KP_liberation_civ_rep >= -25); +private _resistanceEnemy = [0, 1] select (KPLIB_civ_rep < 25); +private _resistanceFriendly = [0, 1] select (KPLIB_civ_rep >= -25); -GRLIB_side_resistance setFriend [GRLIB_side_enemy, _resistanceEnemy]; -GRLIB_side_enemy setFriend [GRLIB_side_resistance, _resistanceEnemy]; -GRLIB_side_resistance setFriend [GRLIB_side_friendly, _resistanceFriendly]; -GRLIB_side_friendly setFriend [GRLIB_side_resistance, _resistanceFriendly]; +KPLIB_side_resistance setFriend [KPLIB_side_enemy, _resistanceEnemy]; +KPLIB_side_enemy setFriend [KPLIB_side_resistance, _resistanceEnemy]; +KPLIB_side_resistance setFriend [KPLIB_side_player, _resistanceFriendly]; +KPLIB_side_player setFriend [KPLIB_side_resistance, _resistanceFriendly]; -if (KP_liberation_civrep_debug > 0) then {[format ["changeCR finished - New value: %1", KP_liberation_civ_rep], "CIVREP"] call KPLIB_fnc_log;}; -if (KP_liberation_civrep_debug > 0) then {[format ["%1 getFriend %2: %3 - %1 getFriend %4: %5", GRLIB_side_resistance, GRLIB_side_enemy, (GRLIB_side_resistance getFriend GRLIB_side_enemy), GRLIB_side_friendly, (GRLIB_side_resistance getFriend GRLIB_side_friendly)], "CIVREP"] call KPLIB_fnc_log;}; +if (KPLIB_civrep_debug > 0) then {[format ["changeCR finished - New value: %1", KPLIB_civ_rep], "CIVREP"] call KPLIB_fnc_log;}; +if (KPLIB_civrep_debug > 0) then {[format ["%1 getFriend %2: %3 - %1 getFriend %4: %5", KPLIB_side_resistance, KPLIB_side_enemy, (KPLIB_side_resistance getFriend KPLIB_side_enemy), KPLIB_side_player, (KPLIB_side_resistance getFriend KPLIB_side_player)], "CIVREP"] call KPLIB_fnc_log;}; diff --git a/Missionframework/scripts/server/civrep/fnc/f_kp_cr_getBuildings.sqf b/Missionframework/scripts/server/civrep/fnc/f_kp_cr_getBuildings.sqf index 1aded4374..6cfb253a1 100644 --- a/Missionframework/scripts/server/civrep/fnc/f_kp_cr_getBuildings.sqf +++ b/Missionframework/scripts/server/civrep/fnc/f_kp_cr_getBuildings.sqf @@ -2,10 +2,10 @@ params ["_sector"]; private _return = 0; -if (KP_liberation_cr_param_buildings) then { - _return = count (nearestObjects [markerPos _sector, ["House"], 1.5 * GRLIB_capture_size] select {(damage _x == 0) && !((typeOf _x) in KP_liberation_cr_ign_buildings)}); +if (KPLIB_param_buildingDamaged) then { + _return = count (nearestObjects [markerPos _sector, ["House"], 1.5 * KPLIB_range_sectorCapture] select {(damage _x == 0) && !((typeOf _x) in KPLIB_cr_ign_buildings)}); } else { - _return = count (nearestObjects [markerPos _sector, ["House"], 1.5 * GRLIB_capture_size] select {(alive _x) && !((typeOf _x) in KP_liberation_cr_ign_buildings)}); + _return = count (nearestObjects [markerPos _sector, ["House"], 1.5 * KPLIB_range_sectorCapture] select {(alive _x) && !((typeOf _x) in KPLIB_cr_ign_buildings)}); }; _return diff --git a/Missionframework/scripts/server/civrep/fnc/f_kp_cr_liberatedSector.sqf b/Missionframework/scripts/server/civrep/fnc/f_kp_cr_liberatedSector.sqf index 1fd0de0f9..d9223b09b 100644 --- a/Missionframework/scripts/server/civrep/fnc/f_kp_cr_liberatedSector.sqf +++ b/Missionframework/scripts/server/civrep/fnc/f_kp_cr_liberatedSector.sqf @@ -1,24 +1,24 @@ params ["_sector"]; -if (_sector in sectors_bigtown || _sector in sectors_capture) then { +if (_sector in KPLIB_sectors_capital || _sector in KPLIB_sectors_city) then { private _penalty = 0; { if (_sector == (_x select 0)) exitWith {_penalty = (_x select 1) - ([_sector] call F_cr_getBuildings)}; - } forEach KP_liberation_cr_sectorbuildings; + } forEach KPLIB_cr_sectorbuildings; stats_civilian_buildings_destroyed = stats_civilian_buildings_destroyed + _penalty; - _penalty = _penalty * KP_liberation_cr_building_penalty; + _penalty = _penalty * KPLIB_cr_building_penalty; if (_penalty > 0) then { - [1, [(_penalty / KP_liberation_cr_building_penalty)]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; + [1, [(_penalty / KPLIB_cr_building_penalty)]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; }; - if (_sector in sectors_bigtown) then { - [(2 * KP_liberation_cr_sector_gain - _penalty), false] spawn F_cr_changeCR; + if (_sector in KPLIB_sectors_capital) then { + [(2 * KPLIB_cr_sector_gain - _penalty), false] spawn F_cr_changeCR; } else { - [(KP_liberation_cr_sector_gain - _penalty), false] spawn F_cr_changeCR; + [(KPLIB_cr_sector_gain - _penalty), false] spawn F_cr_changeCR; }; [format ["Civilian sector %1 (%2) captured. Penalty: %3", markerText _sector, _sector, _penalty], "CIVREP"] call KPLIB_fnc_log; diff --git a/Missionframework/scripts/server/civrep/ignored/altis.sqf b/Missionframework/scripts/server/civrep/ignored/altis.sqf index 97e6c5fa4..11e810246 100644 --- a/Missionframework/scripts/server/civrep/ignored/altis.sqf +++ b/Missionframework/scripts/server/civrep/ignored/altis.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_Cargo_House_V1_F", "Land_Cargo_House_V2_F", "Land_Cargo_House_V3_F", @@ -58,4 +58,4 @@ KP_liberation_cr_ign_buildings = [ "Land_spp_Mirror_F", "Land_TTowerSmall_1_F", "Land_TTowerSmall_2_F" -]; \ No newline at end of file +]; diff --git a/Missionframework/scripts/server/civrep/ignored/chernarus.sqf b/Missionframework/scripts/server/civrep/ignored/chernarus.sqf index 8244efba0..8dd4baff0 100644 --- a/Missionframework/scripts/server/civrep/ignored/chernarus.sqf +++ b/Missionframework/scripts/server/civrep/ignored/chernarus.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_A_Crane_02a", "Land_A_Crane_02b", "Land_A_FuelStation_Shed", @@ -154,4 +154,4 @@ KP_liberation_cr_ign_buildings = [ "Land_Wall_Gate_Kolchoz", "Land_Wall_Gate_Village", "Land_Wall_Gate_Wood1" -]; \ No newline at end of file +]; diff --git a/Missionframework/scripts/server/civrep/ignored/chernarus2020.sqf b/Missionframework/scripts/server/civrep/ignored/chernarus2020.sqf index f050ee301..ecd16b188 100644 --- a/Missionframework/scripts/server/civrep/ignored/chernarus2020.sqf +++ b/Missionframework/scripts/server/civrep/ignored/chernarus2020.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_A_Crane_02a", "Land_popelnice", "Land_fuel_tank_small", diff --git a/Missionframework/scripts/server/civrep/ignored/enoch.sqf b/Missionframework/scripts/server/civrep/ignored/enoch.sqf index c5d8691f5..7fa61601b 100644 --- a/Missionframework/scripts/server/civrep/ignored/enoch.sqf +++ b/Missionframework/scripts/server/civrep/ignored/enoch.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_Bunker_02_double_F", "Land_Bunker_02_left_F", "Land_Bunker_02_light_double_F", diff --git a/Missionframework/scripts/server/civrep/ignored/gm_weferlingen_summer.sqf b/Missionframework/scripts/server/civrep/ignored/gm_weferlingen_summer.sqf index 948a312e6..2bff49b09 100644 --- a/Missionframework/scripts/server/civrep/ignored/gm_weferlingen_summer.sqf +++ b/Missionframework/scripts/server/civrep/ignored/gm_weferlingen_summer.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "land_gm_euro_beersign_01", "land_gm_euro_beersign_02", "land_gm_euro_beersign_03", diff --git a/Missionframework/scripts/server/civrep/ignored/gm_weferlingen_winter.sqf b/Missionframework/scripts/server/civrep/ignored/gm_weferlingen_winter.sqf index d6b269aeb..2b2cb743f 100644 --- a/Missionframework/scripts/server/civrep/ignored/gm_weferlingen_winter.sqf +++ b/Missionframework/scripts/server/civrep/ignored/gm_weferlingen_winter.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "land_gm_euro_beersign_01", "land_gm_euro_beersign_02", "land_gm_euro_beersign_03", diff --git a/Missionframework/scripts/server/civrep/ignored/lythium.sqf b/Missionframework/scripts/server/civrep/ignored/lythium.sqf index d19ab52ea..85f6ae7e6 100644 --- a/Missionframework/scripts/server/civrep/ignored/lythium.sqf +++ b/Missionframework/scripts/server/civrep/ignored/lythium.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_Cargo_House_V1_F", "Land_Cargo_House_V2_F", "Land_Cargo_House_V3_F", @@ -97,4 +97,4 @@ KP_liberation_cr_ign_buildings = [ "Land_TTowerSmall_1_F", "Land_TTowerSmall_2_F", "Land_u_Addon_01_V1_dam_F" -]; \ No newline at end of file +]; diff --git a/Missionframework/scripts/server/civrep/ignored/malden.sqf b/Missionframework/scripts/server/civrep/ignored/malden.sqf index faf77a3e1..4bd4c4d94 100644 --- a/Missionframework/scripts/server/civrep/ignored/malden.sqf +++ b/Missionframework/scripts/server/civrep/ignored/malden.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_Bunker_01_big_F", "Land_Bunker_01_small_F", "Land_cargo_addon02_V1_F", @@ -58,4 +58,4 @@ KP_liberation_cr_ign_buildings = [ "Land_TTowerSmall_1_F", "Land_TTowerSmall_2_F", "MetalBarrel_burning_F" -]; \ No newline at end of file +]; diff --git a/Missionframework/scripts/server/civrep/ignored/panthera3.sqf b/Missionframework/scripts/server/civrep/ignored/panthera3.sqf index a97edd807..3ca6d4386 100644 --- a/Missionframework/scripts/server/civrep/ignored/panthera3.sqf +++ b/Missionframework/scripts/server/civrep/ignored/panthera3.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_AfDum_mesto2", "Land_AfDum_mesto2L", "Land_AfDum_mesto3", diff --git a/Missionframework/scripts/server/civrep/ignored/pja310.sqf b/Missionframework/scripts/server/civrep/ignored/pja310.sqf index af490c6cb..206e2a529 100644 --- a/Missionframework/scripts/server/civrep/ignored/pja310.sqf +++ b/Missionframework/scripts/server/civrep/ignored/pja310.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_A_Castle_Bastion", "Land_A_Crane_02a", "Land_A_Crane_02b", @@ -78,4 +78,4 @@ KP_liberation_cr_ign_buildings = [ "Land_Wall_L3_gate_EP1", "Land_Wall_L3_pillar_EP1", "Land_water_tank" -]; \ No newline at end of file +]; diff --git a/Missionframework/scripts/server/civrep/ignored/sara.sqf b/Missionframework/scripts/server/civrep/ignored/sara.sqf index 57994745d..ef7de6701 100644 --- a/Missionframework/scripts/server/civrep/ignored/sara.sqf +++ b/Missionframework/scripts/server/civrep/ignored/sara.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_AfDum_mesto2", "Land_AfDum_mesto2L", "Land_AfDum_mesto3", @@ -82,4 +82,4 @@ KP_liberation_cr_ign_buildings = [ "Land_Zavora", "Land_Zavora_2_a1", "Land_Zed_dira_civil" -]; \ No newline at end of file +]; diff --git a/Missionframework/scripts/server/civrep/ignored/song_bin_tanh.sqf b/Missionframework/scripts/server/civrep/ignored/song_bin_tanh.sqf index da59eee88..aa3014146 100644 --- a/Missionframework/scripts/server/civrep/ignored/song_bin_tanh.sqf +++ b/Missionframework/scripts/server/civrep/ignored/song_bin_tanh.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_Communication_F", "LAND_fort2", "Land_fortified_nest_big_ep1", diff --git a/Missionframework/scripts/server/civrep/ignored/takistan.sqf b/Missionframework/scripts/server/civrep/ignored/takistan.sqf index fcb8824b6..cc95765d6 100644 --- a/Missionframework/scripts/server/civrep/ignored/takistan.sqf +++ b/Missionframework/scripts/server/civrep/ignored/takistan.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_BoatSmall_1", "Land_BoatSmall_2a", "Land_BoatSmall_2b", @@ -33,4 +33,4 @@ KP_liberation_cr_ign_buildings = [ "Land_Wall_L3_5m_EP1", "Land_Wall_L3_gate_EP1", "Land_Wall_L3_pillar_EP1" -]; \ No newline at end of file +]; diff --git a/Missionframework/scripts/server/civrep/ignored/tanoa.sqf b/Missionframework/scripts/server/civrep/ignored/tanoa.sqf index f86788b42..adb5687ab 100644 --- a/Missionframework/scripts/server/civrep/ignored/tanoa.sqf +++ b/Missionframework/scripts/server/civrep/ignored/tanoa.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_Cargo_House_V4_F", "Land_Cargo_Patrol_V4_F", "Land_Cargo_Tower_V4_F", @@ -71,4 +71,4 @@ KP_liberation_cr_ign_buildings = [ "Land_Warehouse_02_ladder_F", "Land_WarehouseShelter_01_F", "Land_WoodenShelter_01_F" -]; \ No newline at end of file +]; diff --git a/Missionframework/scripts/server/civrep/ignored/wl_rosche.sqf b/Missionframework/scripts/server/civrep/ignored/wl_rosche.sqf index c7c2a5671..db1d331f2 100644 --- a/Missionframework/scripts/server/civrep/ignored/wl_rosche.sqf +++ b/Missionframework/scripts/server/civrep/ignored/wl_rosche.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_Barn_W_01_dam", "Land_Barracks_01_grey_F", "Land_BellTower_01_V1_F", @@ -134,7 +134,7 @@ KP_liberation_cr_ign_buildings = [ "Land_TTowerBig_2_F", "Land_u_Addon_01_V1_dam_F", "Land_u_Addon_01_V1_F", - "Land_u_Shed_Ind_F", + "Land_u_Shed_Ind_F", "Land_Walkover_01_F", "Land_Wall_CBrk_5_D", "Land_Wall_CGry_5_D", diff --git a/Missionframework/scripts/server/civrep/ignored/xcam_taunus.sqf b/Missionframework/scripts/server/civrep/ignored/xcam_taunus.sqf index cb138f85b..37d1b594d 100644 --- a/Missionframework/scripts/server/civrep/ignored/xcam_taunus.sqf +++ b/Missionframework/scripts/server/civrep/ignored/xcam_taunus.sqf @@ -1,4 +1,4 @@ -KP_liberation_cr_ign_buildings = [ +KPLIB_cr_ign_buildings = [ "Land_A_Castle_Bastion", "Land_A_Castle_Gate", "Land_A_Castle_Stairs_A", @@ -275,4 +275,4 @@ KP_liberation_cr_ign_buildings = [ "Land_Zastavka_jih", "Land_Zastavka_sever", "Land_zavora_2" -]; \ No newline at end of file +]; diff --git a/Missionframework/scripts/server/civrep/init_buildings.sqf b/Missionframework/scripts/server/civrep/init_buildings.sqf index f47292459..318470425 100644 --- a/Missionframework/scripts/server/civrep/init_buildings.sqf +++ b/Missionframework/scripts/server/civrep/init_buildings.sqf @@ -2,7 +2,9 @@ private _start = diag_tickTime; if (isServer) then {["init_buildings.sqf initialising...", "CIVREP"] call KPLIB_fnc_log;}; switch (worldName) do { - case "Chernarus": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus.sqf"}; + case "chernarus_summer": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus.sqf"}; + case "Chernarus_Winter": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus.sqf"}; + case "chernarus": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus.sqf"}; case "cup_chernarus_A3": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\chernarus2020.sqf"}; case "Enoch": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\enoch.sqf"}; case "gm_weferlingen_summer": {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\gm_weferlingen_summer.sqf"}; @@ -20,19 +22,19 @@ switch (worldName) do { default {call compile preprocessFileLineNumbers "scripts\server\civrep\ignored\altis.sqf"}; }; -KP_liberation_cr_sectorbuildings = []; +KPLIB_cr_sectorbuildings = []; { - KP_liberation_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings]; -} forEach sectors_capture; + KPLIB_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings]; +} forEach KPLIB_sectors_city; { - KP_liberation_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings]; -} forEach sectors_bigtown; + KPLIB_cr_sectorbuildings pushBack [_x, [_x] call F_cr_getBuildings]; +} forEach KPLIB_sectors_capital; if (isServer) then {[format ["init_buildings.sqf finished. Time needed: %1 seconds", diag_ticktime - _start], "CIVREP"] call KPLIB_fnc_log;}; -if (KP_liberation_civrep_debug > 0) then { +if (KPLIB_civrep_debug > 0) then { { [format ["%1: %2", markerText (_x select 0), (_x select 1)], "CIVREP"] call KPLIB_fnc_log; - } forEach KP_liberation_cr_sectorbuildings; + } forEach KPLIB_cr_sectorbuildings; }; diff --git a/Missionframework/scripts/server/civrep/init_module.sqf b/Missionframework/scripts/server/civrep/init_module.sqf index a85701616..12a33dfef 100644 --- a/Missionframework/scripts/server/civrep/init_module.sqf +++ b/Missionframework/scripts/server/civrep/init_module.sqf @@ -1,15 +1,15 @@ // Functions // Get buildings count for sector -F_cr_getBuildings = compileFinal preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_getBuildings.sqf"; +F_cr_getBuildings = compile preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_getBuildings.sqf"; // Change CR value -F_cr_changeCR = compileFinal preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_changeCR.sqf"; +F_cr_changeCR = compile preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_changeCR.sqf"; // Reputation gain for liberating a sector -F_cr_liberatedSector = compileFinal preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_liberatedSector.sqf"; +F_cr_liberatedSector = compile preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_liberatedSector.sqf"; // Play random wounded animation on unit -F_cr_woundedAnim = compileFinal preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_woundedAnim.sqf"; +F_cr_woundedAnim = compile preprocessFileLineNumbers "scripts\server\civrep\fnc\f_kp_cr_woundedAnim.sqf"; // Scripts // Spawn wounded civilians in a sector -civrep_wounded_civs = compileFinal preprocessFileLineNumbers "scripts\server\civrep\wounded\civrep_wounded_civs.sqf"; +civrep_wounded_civs = compile preprocessFileLineNumbers "scripts\server\civrep\wounded\civrep_wounded_civs.sqf"; // Count initial buildings on each city and bigtown execVM "scripts\server\civrep\init_buildings.sqf"; diff --git a/Missionframework/scripts/server/civrep/wounded/civrep_wounded_civs.sqf b/Missionframework/scripts/server/civrep/wounded/civrep_wounded_civs.sqf index eda921055..88257afb9 100644 --- a/Missionframework/scripts/server/civrep/wounded/civrep_wounded_civs.sqf +++ b/Missionframework/scripts/server/civrep/wounded/civrep_wounded_civs.sqf @@ -1,11 +1,11 @@ params ["_sector"]; -if (!(_sector in sectors_bigtown) && !(_sector in sectors_capture) && !(_sector in sectors_factory)) exitWith {}; +if (!(_sector in KPLIB_sectors_capital) && !(_sector in KPLIB_sectors_city) && !(_sector in KPLIB_sectors_factory)) exitWith {}; -if (KP_liberation_civrep_debug > 0) then {[format ["civrep_wounded_civs.sqf -> Spawned for %1 on: %2", markerText _sector, debug_source], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_civrep_debug > 0) then {[format ["civrep_wounded_civs.sqf -> Spawned for %1 on: %2", markerText _sector, debug_source], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; private _count = 2 + (ceil (random 2)); -private _grp = creategroup [GRLIB_side_civilian, true]; +private _grp = creategroup [KPLIB_side_civilian, true]; private _civs = []; private _markers = []; @@ -14,13 +14,13 @@ for "_i" from 1 to _count do { while {(surfaceIsWater _pos) || ((count ([_pos, 30] call KPLIB_fnc_getNearbyPlayers)) > 0)} do { _pos = (markerPos _sector) getPos [(50 + (random 200)), (random 360)]; }; - private _civ = [selectRandom civilians, _pos, _grp] call KPLIB_fnc_createManagedUnit; + private _civ = [selectRandom KPLIB_c_units, _pos, _grp] call KPLIB_fnc_createManagedUnit; _civ setDir (random 360); {_civ disableAI _x} forEach ["ANIM", "TARGET", "AUTOTARGET", "MOVE"]; removeAllItems _civ; _civ setDamage 0.5; _civ call F_cr_woundedAnim; - if (KP_liberation_ace) then {[_civ] remoteExec ["KPLIB_fnc_crAddAceAction"];}; + if (KPLIB_ace) then {[_civ] remoteExec ["KPLIB_fnc_crAddAceAction"];}; _civs pushBack _civ; private _marker = createMarker ["wounded_marker_" + str _i, [((_pos select 0) - 20 + (random 40)),((_pos select 1) - 20 + (random 40))]]; _marker setMarkerShape "ELLIPSE"; @@ -30,13 +30,13 @@ for "_i" from 1 to _count do { _markers pushBack _marker; }; -if (KP_liberation_civrep_debug > 0) then {[format ["civrep_wounded_civs.sqf -> Spawned %1 wounded civilians at %2", _count, markerText _sector], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_civrep_debug > 0) then {[format ["civrep_wounded_civs.sqf -> Spawned %1 wounded civilians at %2", _count, markerText _sector], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];}; -private _units_near = [markerPos _sector, 300, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +private _units_near = [markerPos _sector, 300, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; private _healed_civs = []; while {_units_near > 0} do { - _units_near = [markerPos _sector, 300, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; + _units_near = [markerPos _sector, 300, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; { if (((damage _x) < 0.5) && !(_x in _healed_civs)) then { (_markers select _forEachIndex) setMarkerAlpha 0; @@ -45,7 +45,7 @@ while {_units_near > 0} do { sleep 2; {_civ enableAI _x} forEach ["ANIM", "TARGET", "AUTOTARGET", "MOVE"]; [4, [(name _civ)]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; - [KP_liberation_cr_wounded_gain] call F_cr_changeCR; + [KPLIB_cr_wounded_gain] call F_cr_changeCR; _healed_civs pushBack _civ; stats_civilians_healed = stats_civilians_healed +1; } @@ -63,4 +63,4 @@ sleep 60; deleteMarker _x; } forEach _markers; -if (KP_liberation_civrep_debug > 0) then {[format ["civrep_wounded_civs.sqf -> dropped at %1", markerText _sector], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2]}; +if (KPLIB_civrep_debug > 0) then {[format ["civrep_wounded_civs.sqf -> dropped at %1", markerText _sector], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2]}; diff --git a/Missionframework/scripts/server/game/apply_default_permissions.sqf b/Missionframework/scripts/server/game/apply_default_permissions.sqf index 4b2c771bb..9711cdf70 100644 --- a/Missionframework/scripts/server/game/apply_default_permissions.sqf +++ b/Missionframework/scripts/server/game/apply_default_permissions.sqf @@ -1,27 +1,29 @@ -if (!GRLIB_permissions_param) exitWith {}; +scriptName "apply_default_permissions"; -waitUntil {!isNil "GRLIB_permissions"}; -waitUntil {!isNil "save_is_loaded"}; -waitUntil {save_is_loaded}; +if (!KPLIB_param_permissions) exitWith {}; + +waitUntil {!isNil "KPLIB_permissions"}; +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {KPLIB_saveLoaded}; while {true} do { private _default_permissions = []; - {if ((_x select 0) == "Default") exitWith {_default_permissions = (_x select 2);}} foreach GRLIB_permissions; + {if ((_x select 0) == "Default") exitWith {_default_permissions = (_x select 2);}} foreach KPLIB_permissions; if (count _default_permissions > 0) then { private _all_players_uids = []; - {if ((_x select 0) != "Default") then {_all_players_uids pushback (_x select 0)}} foreach GRLIB_permissions; + {if ((_x select 0) != "Default") then {_all_players_uids pushback (_x select 0)}} foreach KPLIB_permissions; - private _old_count = count GRLIB_permissions; + private _old_count = count KPLIB_permissions; { if !(((getPlayerUID _x) in _all_players_uids) || ((getPlayerUID _x) isEqualTo "")) then { - GRLIB_permissions pushBack [getPlayerUID _x, name _x, _default_permissions]; + KPLIB_permissions pushBack [getPlayerUID _x, name _x, _default_permissions]; }; } foreach (allPlayers - entities "HeadlessClient_F"); - if (_old_count != count GRLIB_permissions) then { - publicVariable "GRLIB_permissions" + if (_old_count != count KPLIB_permissions) then { + publicVariable "KPLIB_permissions" }; }; diff --git a/Missionframework/scripts/server/game/check_victory_conditions.sqf b/Missionframework/scripts/server/game/check_victory_conditions.sqf index a6e3024a0..add621335 100644 --- a/Missionframework/scripts/server/game/check_victory_conditions.sqf +++ b/Missionframework/scripts/server/game/check_victory_conditions.sqf @@ -1,8 +1,8 @@ sleep 5; -if ([] call KP_liberation_victoryCheck && GRLIB_endgame != 1) then { - GRLIB_endgame = 1; - publicVariable "GRLIB_endgame"; +if ([] call KPLIB_victoryCheck && KPLIB_endgame != 1) then { + KPLIB_endgame = 1; + publicVariable "KPLIB_endgame"; {_x allowDamage false; (vehicle _x) allowDamage false;} forEach allPlayers; private _rabbits = round (random 75) + round (random 80); @@ -43,7 +43,7 @@ if ([] call KP_liberation_victoryCheck && GRLIB_endgame != 1) then { publicstats pushback stats_secondary_objectives; publicstats pushback stats_sectors_liberated; publicstats pushback stats_sectors_lost; - publicstats pushback stats_spartan_respawns; + publicstats pushback stats_potato_respawns; publicstats pushback stats_supplies_produced; publicstats pushback stats_supplies_spent; publicstats pushback stats_vehicles_recycled; @@ -95,7 +95,7 @@ if ([] call KP_liberation_victoryCheck && GRLIB_endgame != 1) then { [format ["Hostile reinforcements called: %1", stats_reinforcements_called], "MISSION END"] call KPLIB_fnc_log; [format ["Total combat readiness raised: %1", round stats_readiness_earned], "MISSION END"] call KPLIB_fnc_log; [format ["IEDs detonated: %1", stats_ieds_detonated], "MISSION END"] call KPLIB_fnc_log; - [format ["Number of Potato 01 losses: %1", stats_spartan_respawns], "MISSION END"] call KPLIB_fnc_log; + [format ["Number of Potato 01 losses: %1", stats_potato_respawns], "MISSION END"] call KPLIB_fnc_log; [format ["Rabbits killed: %1", _rabbits], "MISSION END"] call KPLIB_fnc_log; ["------------------------------------", "MISSION END"] call KPLIB_fnc_log; diff --git a/Missionframework/scripts/server/game/cleanup_vehicles.sqf b/Missionframework/scripts/server/game/cleanup_vehicles.sqf index ae353ee8f..51f878fe9 100644 --- a/Missionframework/scripts/server/game/cleanup_vehicles.sqf +++ b/Missionframework/scripts/server/game/cleanup_vehicles.sqf @@ -1,3 +1,5 @@ +scriptName "cleanup_vehicles"; + private [ "_nextvehicle", "_nearestfob", "_reset_ticker" ]; _cleanup_classnames = []; @@ -5,7 +7,7 @@ _cleanup_classnames = []; _cleanup_classnames append _x; } forEach [KPLIB_b_light_classes, KPLIB_b_heavy_classes, KPLIB_b_air_classes]; -while { GRLIB_cleanup_vehicles > 0 } do { +while { KPLIB_param_vehicleCleanup > 0 } do { sleep 600; @@ -14,10 +16,10 @@ while { GRLIB_cleanup_vehicles > 0 } do { _nextvehicle = _x; _nearestfob = [ getpos _nextvehicle ] call KPLIB_fnc_getNearestFob; if ( count _nearestfob == 3 ) then { - if ( ( _nextvehicle distance _nearestfob > ( 1.2 * GRLIB_fob_range ) ) && ( _nextvehicle distance startbase > ( 1.2 * GRLIB_fob_range ) ) ) then { + if ( ( _nextvehicle distance _nearestfob > ( 1.2 * KPLIB_range_fob ) ) && ( _nextvehicle distance startbase > ( 1.2 * KPLIB_range_fob ) ) ) then { if ((toLower (typeof _nextvehicle)) in _cleanup_classnames) then { if ( count ( crew _nextvehicle ) == 0 ) then { - _nextvehicle setVariable [ "GRLIB_empty_vehicle_ticker", ( _nextvehicle getVariable [ "GRLIB_empty_vehicle_ticker", 0 ] ) + 1 ]; + _nextvehicle setVariable [ "KPLIB_empty_vehicle_ticker", ( _nextvehicle getVariable [ "KPLIB_empty_vehicle_ticker", 0 ] ) + 1 ]; _reset_ticker = false; }; }; @@ -25,10 +27,10 @@ while { GRLIB_cleanup_vehicles > 0 } do { } ; if ( _reset_ticker ) then { - _nextvehicle setVariable [ "GRLIB_empty_vehicle_ticker", 0 ]; + _nextvehicle setVariable [ "KPLIB_empty_vehicle_ticker", 0 ]; }; - if ( _nextvehicle getVariable [ "GRLIB_empty_vehicle_ticker", 0 ] >= ( 6 * GRLIB_cleanup_vehicles ) ) then { + if ( _nextvehicle getVariable [ "KPLIB_empty_vehicle_ticker", 0 ] >= ( 6 * KPLIB_param_vehicleCleanup ) ) then { deleteVehicle _nextvehicle; }; diff --git a/Missionframework/scripts/server/game/manage_time.sqf b/Missionframework/scripts/server/game/manage_time.sqf index 8e8d33a9f..a98743fb0 100644 --- a/Missionframework/scripts/server/game/manage_time.sqf +++ b/Missionframework/scripts/server/game/manage_time.sqf @@ -1,8 +1,10 @@ +scriptName "manage_time"; + while {true} do { - if (GRLIB_shorter_nights && (daytime > 20 || daytime < 4)) then { - setTimeMultiplier (GRLIB_time_factor * 4); + if (KPLIB_param_shorterNights && (daytime > 20 || daytime < 4)) then { + setTimeMultiplier (KPLIB_param_timeMulti * 4); } else { - setTimeMultiplier GRLIB_time_factor; + setTimeMultiplier KPLIB_param_timeMulti; }; sleep 10; }; diff --git a/Missionframework/scripts/server/game/manage_weather.sqf b/Missionframework/scripts/server/game/manage_weather.sqf index eb01fb0ac..eb6d8570b 100644 --- a/Missionframework/scripts/server/game/manage_weather.sqf +++ b/Missionframework/scripts/server/game/manage_weather.sqf @@ -1,16 +1,18 @@ +scriptName "manage_weather"; + private _weathers = [ [0.25], [0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55], [0, 0.1, 0.15, 0.2, 0.25, 0.3, 0.325, 0.35, 0.375, 0.4, 0.425, 0.45, 0.475, 0.5, 0.525, 0.55, 0.575, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1] -] select (GRLIB_weather_param - 1); +] select (KPLIB_param_weather - 1); private _newWeather = selectRandom _weathers; 0 setOvercast _newWeather; forceWeatherChange; -[format ["Set initial weather to: %1 - Param Value: %2 - Time: %3", _newWeather, GRLIB_weather_param, diag_tickTime], "WEATHER"] call KPLIB_fnc_log; +[format ["Set initial weather to: %1 - Param Value: %2 - Time: %3", _newWeather, KPLIB_param_weather, diag_tickTime], "WEATHER"] call KPLIB_fnc_log; -while {GRLIB_endgame == 0} do { +while {KPLIB_endgame == 0} do { _newWeather = selectRandom _weathers; (3600 * timeMultiplier) setOvercast _newWeather; [format ["Set next weather transition to: %1 - Time: %2", _newWeather, diag_tickTime], "WEATHER"] call KPLIB_fnc_log; diff --git a/Missionframework/scripts/server/game/playtime.sqf b/Missionframework/scripts/server/game/playtime.sqf index ec6b761e5..330322da4 100644 --- a/Missionframework/scripts/server/game/playtime.sqf +++ b/Missionframework/scripts/server/game/playtime.sqf @@ -1,5 +1,7 @@ -waitUntil { !isNil "save_is_loaded" }; -waitUntil { save_is_loaded }; +scriptName "KPLIB_playtime"; + +waitUntil { !isNil "KPLIB_saveLoaded" }; +waitUntil { KPLIB_saveLoaded }; while { true } do { sleep 1; diff --git a/Missionframework/scripts/server/game/save_manager.sqf b/Missionframework/scripts/server/game/save_manager.sqf index 77cab506a..c6cb31cbf 100644 --- a/Missionframework/scripts/server/game/save_manager.sqf +++ b/Missionframework/scripts/server/game/save_manager.sqf @@ -4,8 +4,8 @@ private _start = diag_tickTime; ["----- Loading save data", "SAVE"] call KPLIB_fnc_log; // Handle possible enabled "wipe save" mission parameters -if (GRLIB_param_wipe_savegame_1 == 1 && GRLIB_param_wipe_savegame_2 == 1) then { - profileNamespace setVariable [GRLIB_save_key,nil]; +if (KPLIB_param_wipe_savegame_1 == 1 && KPLIB_param_wipe_savegame_2 == 1) then { + profileNamespace setVariable [KPLIB_save_key,nil]; saveProfileNamespace; ["Save wiped via mission parameters", "SAVE"] call KPLIB_fnc_log; } else { @@ -33,7 +33,7 @@ if (hasInterface) then { }; // All classnames of objects which should be saved -KPLIB_classnamesToSave = [toLower FOB_typename, toLower huron_typename]; +KPLIB_classnamesToSave = [toLower KPLIB_b_fobBuilding, toLower KPLIB_b_potato01]; /* --- Locals --- @@ -44,7 +44,7 @@ private _aiGroups = []; // Current campaign date and time private _dateTime = []; // Vehicles which shouldn't be handled in the kill manager -private _noKillHandler = [toLower FOB_typename, toLower huron_typename]; +private _noKillHandler = [toLower KPLIB_b_fobBuilding, toLower KPLIB_b_potato01]; // All objects which should be loaded/saved private _objectsToSave = []; // All storages which are handled for resource persistence @@ -68,29 +68,29 @@ air_weight = 33; // Enemy weight for anti armor armor_weight = 33; // Blufor sectors -blufor_sectors = []; +KPLIB_sectors_player = []; // Enemy combat readiness (0-100) -combat_readiness = 0; +KPLIB_enemyReadiness = 0; // All FOBs -GRLIB_all_fobs = []; +KPLIB_sectors_fob = []; // Player permissions data -GRLIB_permissions = []; +KPLIB_permissions = []; // Vehicle unlock links -GRLIB_vehicle_to_military_base_links = []; +KPLIB_vehicle_to_military_base_links = []; // Enemy weight for anti infantry infantry_weight = 33; // Civilian reputation value (-100 - +100) -KP_liberation_civ_rep = 0; +KPLIB_civ_rep = 0; // Clearances -KP_liberation_clearances = []; +KPLIB_clearances = []; // Strength value of the resistance forces -KP_liberation_guerilla_strength = 0; +KPLIB_guerilla_strength = 0; // Logistic handling data -KP_liberation_logistics = []; +KPLIB_logistics = []; // Production handling data -KP_liberation_production = []; +KPLIB_production = []; // Factory markers to display the current available facilities -KP_liberation_production_markers = []; +KPLIB_production_markers = []; // Radio tower classnames per radio tower sector KPLIB_sectorTowers = []; // Sectors under attack @@ -98,16 +98,16 @@ KPLIB_sectorsUnderAttack = []; // Global Intel resource resources_intel = 0; // State if the save is fully loaded -save_is_loaded = false; +KPLIB_saveLoaded = false; // Add all buildings for saving and kill manager ignore -_noKillHandler append KPLIB_b_buildings_classes; -KPLIB_classnamesToSave append KPLIB_b_buildings_classes; +_noKillHandler append KPLIB_b_deco_classes; +KPLIB_classnamesToSave append KPLIB_b_deco_classes; KPLIB_classnamesToSave append KPLIB_b_allVeh_classes; // Add opfor and civilian vehicles for saving KPLIB_classnamesToSave append KPLIB_o_allVeh_classes; -KPLIB_classnamesToSave append civilian_vehicles; +KPLIB_classnamesToSave append KPLIB_c_vehicles; // Remove duplicates KPLIB_classnamesToSave = KPLIB_classnamesToSave arrayIntersect KPLIB_classnamesToSave; @@ -151,18 +151,18 @@ stats_resistance_teamkills_by_players = 0; stats_secondary_objectives = 0; stats_sectors_liberated = 0; stats_sectors_lost = 0; -stats_spartan_respawns = 0; +stats_potato_respawns = 0; stats_supplies_produced = 0; stats_supplies_spent = 0; stats_vehicles_recycled = 0; // Prevent saving/duplication of objects placed in Eden { - _x setVariable ["KP_liberation_edenObject", true]; + _x setVariable ["KPLIB_edenObject", true]; } forEach (allMissionObjects ""); // Get possible save data -private _saveData = profileNamespace getVariable GRLIB_save_key; +private _saveData = profileNamespace getVariable KPLIB_save_key; // Load save data, when retrieved if (!isNil "_saveData") then { @@ -181,17 +181,17 @@ if (!isNil "_saveData") then { _stats = _saveData select 4; _weights = _saveData select 5; _aiGroups = _saveData select 6; - blufor_sectors = _saveData select 7; - combat_readiness = _saveData select 8; - GRLIB_all_fobs = _saveData select 9; - GRLIB_permissions = _saveData select 10; - GRLIB_vehicle_to_military_base_links = _saveData select 11; - KP_liberation_civ_rep = _saveData select 12; - KP_liberation_clearances = _saveData select 13; - KP_liberation_guerilla_strength = _saveData select 14; - KP_liberation_logistics = _saveData select 15; - KP_liberation_production = _saveData select 16; - KP_liberation_production_markers = _saveData select 17; + KPLIB_sectors_player = _saveData select 7; + KPLIB_enemyReadiness = _saveData select 8; + KPLIB_sectors_fob = _saveData select 9; + KPLIB_permissions = _saveData select 10; + KPLIB_vehicle_to_military_base_links = _saveData select 11; + KPLIB_civ_rep = _saveData select 12; + KPLIB_clearances = _saveData select 13; + KPLIB_guerilla_strength = _saveData select 14; + KPLIB_logistics = _saveData select 15; + KPLIB_production = _saveData select 16; + KPLIB_production_markers = _saveData select 17; resources_intel = _saveData select 18; _allMines = _saveData param [19, []]; _allCrates = _saveData param [20, []]; @@ -232,7 +232,7 @@ if (!isNil "_saveData") then { stats_secondary_objectives = _stats select 32; stats_sectors_liberated = _stats select 33; stats_sectors_lost = _stats select 34; - stats_spartan_respawns = _stats select 35; + stats_potato_respawns = _stats select 35; stats_supplies_produced = _stats select 36; stats_supplies_spent = _stats select 37; stats_vehicles_recycled = _stats select 38; @@ -240,23 +240,23 @@ if (!isNil "_saveData") then { // --- Compatibility for older save data --- ["Save data from version: pre 0.96.5", "SAVE"] call KPLIB_fnc_log; - blufor_sectors = _saveData select 0; - GRLIB_all_fobs = _saveData select 1; + KPLIB_sectors_player = _saveData select 0; + KPLIB_sectors_fob = _saveData select 1; _objectsToSave = _saveData select 2; _dateTime = _saveData select 3; - combat_readiness = _saveData select 4; + KPLIB_enemyReadiness = _saveData select 4; _resourceStorages = _saveData select 5; - KP_liberation_production = _saveData select 6; - KP_liberation_logistics = _saveData select 7; + KPLIB_production = _saveData select 6; + KPLIB_logistics = _saveData select 7; _stats = _saveData select 8; _weights = _saveData select 9; - GRLIB_vehicle_to_military_base_links = _saveData select 10; - GRLIB_permissions = _saveData select 11; + KPLIB_vehicle_to_military_base_links = _saveData select 10; + KPLIB_permissions = _saveData select 11; _aiGroups = _saveData select 12; resources_intel = _saveData select 13; - KP_liberation_civ_rep = _saveData select 15; - KP_liberation_production_markers = _saveData select 16; - KP_liberation_guerilla_strength = _saveData select 17; + KPLIB_civ_rep = _saveData select 15; + KPLIB_production_markers = _saveData select 16; + KPLIB_guerilla_strength = _saveData select 17; stats_opfor_soldiers_killed = _stats select 0; stats_opfor_killed_by_players = _stats select 1; @@ -271,7 +271,7 @@ if (!isNil "_saveData") then { stats_civilians_killed_by_players = _stats select 10; stats_sectors_liberated = _stats select 11; stats_playtime = _stats select 12; - stats_spartan_respawns = _stats select 13; + stats_potato_respawns = _stats select 13; stats_secondary_objectives = _stats select 14; stats_hostile_battlegroups = _stats select 15; stats_ieds_detonated = _stats select 16; @@ -292,15 +292,15 @@ if (!isNil "_saveData") then { air_weight = _weights select 2; // Set correct resistance standing - private _resistanceEnemy = [0, 1] select (KP_liberation_civ_rep < 25); - private _resistanceFriendly = [0, 1] select (KP_liberation_civ_rep >= -25); + private _resistanceEnemy = [0, 1] select (KPLIB_civ_rep < 25); + private _resistanceFriendly = [0, 1] select (KPLIB_civ_rep >= -25); - GRLIB_side_resistance setFriend [GRLIB_side_enemy, _resistanceEnemy]; - GRLIB_side_enemy setFriend [GRLIB_side_resistance, _resistanceEnemy]; - GRLIB_side_resistance setFriend [GRLIB_side_friendly, _resistanceFriendly]; - GRLIB_side_friendly setFriend [GRLIB_side_resistance, _resistanceFriendly]; + KPLIB_side_resistance setFriend [KPLIB_side_enemy, _resistanceEnemy]; + KPLIB_side_enemy setFriend [KPLIB_side_resistance, _resistanceEnemy]; + KPLIB_side_resistance setFriend [KPLIB_side_player, _resistanceFriendly]; + KPLIB_side_player setFriend [KPLIB_side_resistance, _resistanceFriendly]; - if (KP_liberation_civrep_debug > 0) then {[format ["%1 getFriend %2: %3 - %1 getFriend %4: %5", GRLIB_side_resistance, GRLIB_side_enemy, (GRLIB_side_resistance getFriend GRLIB_side_enemy), GRLIB_side_friendly, (GRLIB_side_resistance getFriend GRLIB_side_friendly)], "CIVREP"] call KPLIB_fnc_log;}; + if (KPLIB_civrep_debug > 0) then {[format ["%1 getFriend %2: %3 - %1 getFriend %4: %5", KPLIB_side_resistance, KPLIB_side_enemy, (KPLIB_side_resistance getFriend KPLIB_side_enemy), KPLIB_side_player, (KPLIB_side_resistance getFriend KPLIB_side_player)], "CIVREP"] call KPLIB_fnc_log;}; // Apply current date and time if (_dateTime isEqualType []) then { @@ -312,7 +312,7 @@ if (!isNil "_saveData") then { // Create clearances { [_x select 0, _x select 1] call KPLIB_fnc_createClearance; - } forEach KP_liberation_clearances; + } forEach KPLIB_clearances; // Collection array for all objects which are loaded private _spawnedObjects = []; @@ -326,13 +326,13 @@ if (!isNil "_saveData") then { // This will be removed if we reach a 0.96.7 due to more released Arma 3 DLCs until we finish 0.97.0 if !(((_saveData select 0) select 0) isEqualType 0) then { // Pre 0.96.5 compatibility with repair building, as it was replaced by default with a different classname - if ((KP_liberation_recycle_building != "Land_CarService_F") && (_class == "Land_CarService_F")) then { - _class = KP_liberation_recycle_building; + if ((KPLIB_b_logiStation != "Land_CarService_F") && (_class == "Land_CarService_F")) then { + _class = KPLIB_b_logiStation; }; // Pre 0.96.5 compatibility with air building, as it was replaced by default with a different classname - if ((KP_liberation_air_vehicle_building != "Land_Radar_Small_F") && (_class == "Land_Radar_Small_F")) then { - _class = KP_liberation_air_vehicle_building; + if ((KPLIB_b_airControl != "Land_Radar_Small_F") && (_class == "Land_Radar_Small_F")) then { + _class = KPLIB_b_airControl; }; }; @@ -356,7 +356,10 @@ if (!isNil "_saveData") then { // Apply kill manager handling, if not excluded if !((toLower _class) in _noKillHandler) then { - _object addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _object addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; }; // Set enemy vehicle as captured @@ -365,7 +368,7 @@ if (!isNil "_saveData") then { }; // Set civilian vehicle as seized - if (_class in civilian_vehicles) then { + if (_class in KPLIB_c_vehicles) then { _object setVariable ["KPLIB_seized", true, true]; }; @@ -398,7 +401,7 @@ if (!isNil "_saveData") then { // reveal mine to player side if it was detected if (_known) then { - GRLIB_side_friendly revealMine _mine; + KPLIB_side_player revealMine _mine; }; } forEach _allMines; @@ -426,7 +429,7 @@ if (!isNil "_saveData") then { _object allowdamage true; // Mark it as FOB storage - _object setVariable ["KP_liberation_storage_type", 0, true]; + _object setVariable ["KPLIB_storage_type", 0, true]; // Fill storage with saved resources [floor _supply, floor _ammo, floor _fuel, _object] call KPLIB_fnc_fillStorage; @@ -444,7 +447,7 @@ if (!isNil "_saveData") then { _storage params ["_pos", "_dir", "_vecUp"]; // Create object without damage handling and simulation - _object = createVehicle [KP_liberation_small_storage_building, _pos, [], 0, "CAN_COLLIDE"]; + _object = createVehicle [KPLIB_b_smallStorage, _pos, [], 0, "CAN_COLLIDE"]; _object enableSimulationGlobal false; _object allowdamage false; @@ -459,12 +462,12 @@ if (!isNil "_saveData") then { _object allowdamage true; // Mark it as sector storage - _object setVariable ["KP_liberation_storage_type", 1, true]; + _object setVariable ["KPLIB_storage_type", 1, true]; // Fill storage [floor (_x select 9), floor (_x select 10), floor (_x select 11), _object] call KPLIB_fnc_fillStorage; }; - } forEach KP_liberation_production; + } forEach KPLIB_production; ["Saved sector storages placed and filled", "SAVE"] call KPLIB_fnc_log; // Spawn BLUFOR AI groups @@ -473,7 +476,7 @@ if (!isNil "_saveData") then { if (((_saveData select 0) select 0) isEqualType 0) then { { _x params ["_spawnPos", "_units"]; - _grp = createGroup [GRLIB_side_friendly, true]; + _grp = createGroup [KPLIB_side_player, true]; { [_x, [_spawnPos, _grp] select (_forEachIndex > 0), _grp] call KPLIB_fnc_createManagedUnit; } forEach _units; @@ -484,7 +487,7 @@ if (!isNil "_saveData") then { private _dir = 0; private _unit = objNull; { - _grp = createGroup [GRLIB_side_friendly, true]; + _grp = createGroup [KPLIB_side_player, true]; { _pos = [(_x select 1) select 0, (_x select 1) select 1, ((_x select 1) select 2) + 0.2]; _dir = _x select 2; @@ -507,20 +510,20 @@ if (!isNil "_saveData") then { publicVariable "stats_civilian_vehicles_seized"; publicVariable "stats_ieds_detonated"; -publicVariable "blufor_sectors"; -publicVariable "GRLIB_all_fobs"; +publicVariable "KPLIB_sectors_player"; +publicVariable "KPLIB_sectors_fob"; publicVariable "KPLIB_sectorsUnderAttack"; -publicVariable "KP_liberation_clearances"; +publicVariable "KPLIB_clearances"; // Check for deleted military sectors or deleted classnames in the locked vehicles array -GRLIB_vehicle_to_military_base_links = GRLIB_vehicle_to_military_base_links select {((_x select 0) in elite_vehicles) && ((_x select 1) in sectors_military)}; +KPLIB_vehicle_to_military_base_links = KPLIB_vehicle_to_military_base_links select {((_x select 0) in KPLIB_b_vehToUnlock) && ((_x select 1) in KPLIB_sectors_military)}; // Remove links for vehicles of possibly removed mods -GRLIB_vehicle_to_military_base_links = GRLIB_vehicle_to_military_base_links select {[_x select 0] call KPLIB_fnc_checkClass}; +KPLIB_vehicle_to_military_base_links = KPLIB_vehicle_to_military_base_links select {[_x select 0] call KPLIB_fnc_checkClass}; // Check for additions in the locked vehicles array -private _lockedVehCount = count GRLIB_vehicle_to_military_base_links; -if ((_lockedVehCount < (count sectors_military)) && (_lockedVehCount < (count elite_vehicles))) then { +private _lockedVehCount = count KPLIB_vehicle_to_military_base_links; +if ((_lockedVehCount < (count KPLIB_sectors_military)) && (_lockedVehCount < (count KPLIB_b_vehToUnlock))) then { private _assignedVehicles = []; private _assignedBases = []; private _nextVehicle = ""; @@ -529,45 +532,45 @@ if ((_lockedVehCount < (count sectors_military)) && (_lockedVehCount < (count el { _assignedVehicles pushBack (_x select 0); _assignedBases pushBack (_x select 1); - } forEach GRLIB_vehicle_to_military_base_links; + } forEach KPLIB_vehicle_to_military_base_links; // Add new entries, when there are elite vehicles and military sectors are not yet assigned - while {((count _assignedVehicles) < (count elite_vehicles)) && ((count _assignedBases) < (count sectors_military))} do { - _nextVehicle = selectRandom (elite_vehicles - _assignedVehicles); - _nextBase = selectRandom (sectors_military - _assignedBases); + while {((count _assignedVehicles) < (count KPLIB_b_vehToUnlock)) && ((count _assignedBases) < (count KPLIB_sectors_military))} do { + _nextVehicle = selectRandom (KPLIB_b_vehToUnlock - _assignedVehicles); + _nextBase = selectRandom (KPLIB_sectors_military - _assignedBases); _assignedVehicles pushBack _nextVehicle; _assignedBases pushBack _nextBase; - GRLIB_vehicle_to_military_base_links pushBack [_nextVehicle, _nextBase]; + KPLIB_vehicle_to_military_base_links pushBack [_nextVehicle, _nextBase]; }; ["Additional military sectors or unlockable vehicles detected and assigned", "SAVE"] call KPLIB_fnc_log; }; -publicVariable "GRLIB_vehicle_to_military_base_links"; -publicVariable "GRLIB_permissions"; -save_is_loaded = true; publicVariable "save_is_loaded"; +publicVariable "KPLIB_vehicle_to_military_base_links"; +publicVariable "KPLIB_permissions"; +KPLIB_saveLoaded = true; publicVariable "KPLIB_saveLoaded"; [format ["----- Saved data loaded - Time needed: %1 seconds", diag_tickTime - _start], "SAVE"] call KPLIB_fnc_log; // Start the save loop -private _saveTime = time + KP_liberation_save_interval; +private _saveTime = time + KPLIB_save_interval; while {true} do { waitUntil { sleep 0.5; - (time > _saveTime) || {GRLIB_endgame == 1}; + (time > _saveTime) || {KPLIB_endgame == 1}; }; _start = diag_tickTime; // Exit the while and wipe save, if campaign ended - if (GRLIB_endgame == 1) exitWith { - profileNamespace setVariable [GRLIB_save_key, nil]; + if (KPLIB_endgame == 1) exitWith { + profileNamespace setVariable [KPLIB_save_key, nil]; saveProfileNamespace; }; [] call KPLIB_fnc_doSave; - if (KP_liberation_savegame_debug > 0) then {[format ["Campaign saved - Time needed: %1 seconds", diag_tickTime - _start], "SAVE"] call KPLIB_fnc_log;}; + if (KPLIB_savegame_debug > 0) then {[format ["Campaign saved - Time needed: %1 seconds", diag_tickTime - _start], "SAVE"] call KPLIB_fnc_log;}; - _saveTime = time + KP_liberation_save_interval; + _saveTime = time + KPLIB_save_interval; }; ["Left saving loop", "SAVE"] call KPLIB_fnc_log; diff --git a/Missionframework/scripts/server/game/server_restart.sqf b/Missionframework/scripts/server/game/server_restart.sqf index 2c259a6bb..d7c8da1d0 100644 --- a/Missionframework/scripts/server/game/server_restart.sqf +++ b/Missionframework/scripts/server/game/server_restart.sqf @@ -1,6 +1,8 @@ +scriptName "server_restart"; + if (!isDedicated) exitWith {}; -_serverDuration = (KP_liberation_restart * 60 * 60); +_serverDuration = (KPLIB_param_restart * 60 * 60); [format ["Restart Timer Set To %1", _serverDuration], "RESTART"] call KPLIB_fnc_log; diff --git a/Missionframework/scripts/server/game/spawn_radio_towers.sqf b/Missionframework/scripts/server/game/spawn_radio_towers.sqf index f76f64ebd..d26ef2a9d 100644 --- a/Missionframework/scripts/server/game/spawn_radio_towers.sqf +++ b/Missionframework/scripts/server/game/spawn_radio_towers.sqf @@ -18,4 +18,4 @@ private _tower = objNull; _tower setPos (markerpos _x); _tower setVectorUp [0, 0, 1]; _tower addEventHandler ["HandleDamage", {0}]; -} forEach sectors_tower; +} forEach KPLIB_sectors_tower; diff --git a/Missionframework/scripts/server/game/synchronise_eco.sqf b/Missionframework/scripts/server/game/synchronise_eco.sqf index b887f9be6..8a1fcda5b 100644 --- a/Missionframework/scripts/server/game/synchronise_eco.sqf +++ b/Missionframework/scripts/server/game/synchronise_eco.sqf @@ -1,26 +1,30 @@ +scriptName "synchronize_eco"; + +publicVariable "synchronise_eco"; + sync_eco = []; publicVariable "sync_eco"; -waitUntil{!isNil "save_is_loaded"}; -waitUntil{!isNil "KP_liberation_production"}; -waitUntil{!isNil "KP_liberation_logistics"}; -waitUntil{!isNil "KP_liberation_production_markers"}; -waitUntil {save_is_loaded}; +waitUntil{!isNil "KPLIB_saveLoaded"}; +waitUntil{!isNil "KPLIB_production"}; +waitUntil{!isNil "KPLIB_logistics"}; +waitUntil{!isNil "KPLIB_production_markers"}; +waitUntil {KPLIB_saveLoaded}; -if (KP_liberation_production_markers isEqualTo []) then { +if (KPLIB_production_markers isEqualTo []) then { { private _facility = selectRandom [[true,false,false], [false,true,false], [false,false,true]]; - KP_liberation_production_markers pushBack [_x, _facility select 0, _facility select 1, _facility select 2, markerText _x]; - } forEach sectors_factory; + KPLIB_production_markers pushBack [_x, _facility select 0, _facility select 1, _facility select 2, markerText _x]; + } forEach KPLIB_sectors_factory; }; -private _KP_liberation_production_old = [0]; -private _KP_liberation_logistics_old = [0]; +private _KPLIB_production_old = [0]; +private _KPLIB_logistics_old = [0]; while {true} do { waitUntil {sleep 0.25; - !(_KP_liberation_production_old isEqualTo KP_liberation_production) - || !(_KP_liberation_logistics_old isEqualTo KP_liberation_logistics) + !(_KPLIB_production_old isEqualTo KPLIB_production) + || !(_KPLIB_logistics_old isEqualTo KPLIB_logistics) }; { private _sector = _x; @@ -30,12 +34,12 @@ while {true} do { _x set [2, (_sector select 5)]; _x set [3, (_sector select 6)]; }; - } forEach KP_liberation_production_markers; - } forEach KP_liberation_production; + } forEach KPLIB_production_markers; + } forEach KPLIB_production; sleep 0.25; - sync_eco = [KP_liberation_production,KP_liberation_logistics,KP_liberation_production_markers]; + sync_eco = [KPLIB_production,KPLIB_logistics,KPLIB_production_markers]; publicVariable "sync_eco"; - _KP_liberation_production_old = +KP_liberation_production; - _KP_liberation_logistics_old = +KP_liberation_logistics; + _KPLIB_production_old = +KPLIB_production; + _KPLIB_logistics_old = +KPLIB_logistics; }; diff --git a/Missionframework/scripts/server/game/synchronise_vars.sqf b/Missionframework/scripts/server/game/synchronise_vars.sqf index 623305c60..d9429ee74 100644 --- a/Missionframework/scripts/server/game/synchronise_vars.sqf +++ b/Missionframework/scripts/server/game/synchronise_vars.sqf @@ -1,102 +1,104 @@ +scriptName "synchronise_vars"; + sync_vars = []; publicVariable "sync_vars"; -waitUntil{!isNil "save_is_loaded"}; -waitUntil{!isNil "KP_liberation_fob_resources"}; -waitUntil{!isNil "KP_liberation_supplies_global"}; -waitUntil{!isNil "KP_liberation_ammo_global"}; -waitUntil{!isNil "KP_liberation_fuel_global"}; -waitUntil{!isNil "combat_readiness"}; +waitUntil{!isNil "KPLIB_saveLoaded"}; +waitUntil{!isNil "KPLIB_fob_resources"}; +waitUntil{!isNil "KPLIB_supplies_global"}; +waitUntil{!isNil "KPLIB_ammo_global"}; +waitUntil{!isNil "KPLIB_fuel_global"}; +waitUntil{!isNil "KPLIB_enemyReadiness"}; waitUntil{!isNil "unitcap"}; -waitUntil{!isNil "KP_liberation_heli_count"}; -waitUntil{!isNil "KP_liberation_plane_count"}; -waitUntil{!isNil "KP_liberation_heli_slots"}; -waitUntil{!isNil "KP_liberation_plane_slots"}; +waitUntil{!isNil "KPLIB_heli_count"}; +waitUntil{!isNil "KPLIB_plane_count"}; +waitUntil{!isNil "KPLIB_heli_slots"}; +waitUntil{!isNil "KPLIB_plane_slots"}; waitUntil{!isNil "resources_intel"}; waitUntil{!isNil "infantry_cap"}; -waitUntil{!isNil "KP_liberation_civ_rep"}; -waitUntil{!isNil "KP_liberation_guerilla_strength"}; +waitUntil{!isNil "KPLIB_civ_rep"}; +waitUntil{!isNil "KPLIB_guerilla_strength"}; waitUntil{!isNil "infantry_weight"}; waitUntil{!isNil "armor_weight"}; waitUntil{!isNil "air_weight"}; -waitUntil {save_is_loaded}; +waitUntil {KPLIB_saveLoaded}; -private _KP_liberation_fob_resources_old = []; -private _KP_liberation_supplies_global_old = -1; -private _KP_liberation_ammo_global_old = -1; -private _KP_liberation_fuel_global_old = -1; +private _KPLIB_fob_resources_old = []; +private _KPLIB_supplies_global_old = -1; +private _KPLIB_ammo_global_old = -1; +private _KPLIB_fuel_global_old = -1; private _unitcap_old = -1; -private _KP_liberation_heli_count_old = -1; -private _KP_liberation_plane_count_old = -1; -private _KP_liberation_heli_slots_old = -1; -private _KP_liberation_plane_slots_old = -1; -private _combat_readiness_old = -1; +private _KPLIB_heli_count_old = -1; +private _KPLIB_plane_count_old = -1; +private _KPLIB_heli_slots_old = -1; +private _KPLIB_plane_slots_old = -1; +private _KPLIB_enemyReadiness_old = -1; private _resources_intel_old = -999; private _infantry_cap_old = -999; -private _KP_liberation_civ_rep_old = -999; -private _KP_liberation_guerilla_strength_old = -999; +private _KPLIB_civ_rep_old = -999; +private _KPLIB_guerilla_strength_old = -999; private _infantry_weight_old = -1; private _armor_weight_old = -1; private _air_weight_old = -1; while {true} do { waitUntil {sleep 0.25; - !(_KP_liberation_fob_resources_old isEqualTo KP_liberation_fob_resources) - || _KP_liberation_supplies_global_old != KP_liberation_supplies_global - || _KP_liberation_ammo_global_old != KP_liberation_ammo_global - || _KP_liberation_fuel_global_old != KP_liberation_fuel_global + !(_KPLIB_fob_resources_old isEqualTo KPLIB_fob_resources) + || _KPLIB_supplies_global_old != KPLIB_supplies_global + || _KPLIB_ammo_global_old != KPLIB_ammo_global + || _KPLIB_fuel_global_old != KPLIB_fuel_global || _unitcap_old != unitcap - || _KP_liberation_heli_count_old != KP_liberation_heli_count - || _KP_liberation_plane_count_old != KP_liberation_plane_count - || _KP_liberation_heli_slots_old != KP_liberation_heli_slots - || _KP_liberation_plane_slots_old != KP_liberation_plane_slots - || _combat_readiness_old != combat_readiness + || _KPLIB_heli_count_old != KPLIB_heli_count + || _KPLIB_plane_count_old != KPLIB_plane_count + || _KPLIB_heli_slots_old != KPLIB_heli_slots + || _KPLIB_plane_slots_old != KPLIB_plane_slots + || _KPLIB_enemyReadiness_old != KPLIB_enemyReadiness || _resources_intel_old != resources_intel || _infantry_cap_old != infantry_cap - || _KP_liberation_civ_rep_old != KP_liberation_civ_rep - || _KP_liberation_guerilla_strength_old != KP_liberation_guerilla_strength + || _KPLIB_civ_rep_old != KPLIB_civ_rep + || _KPLIB_guerilla_strength_old != KPLIB_guerilla_strength || _infantry_weight_old != infantry_weight || _armor_weight_old != armor_weight || _air_weight_old != air_weight }; - if (KP_liberation_guerilla_strength < 0) then {KP_liberation_guerilla_strength = 0;}; + if (KPLIB_guerilla_strength < 0) then {KPLIB_guerilla_strength = 0;}; sleep 0.25; sync_vars = [ - KP_liberation_fob_resources, - KP_liberation_supplies_global, - KP_liberation_ammo_global, - KP_liberation_fuel_global, + KPLIB_fob_resources, + KPLIB_supplies_global, + KPLIB_ammo_global, + KPLIB_fuel_global, unitcap, - KP_liberation_heli_count, - KP_liberation_plane_count, - KP_liberation_heli_slots, - KP_liberation_plane_slots, - combat_readiness, + KPLIB_heli_count, + KPLIB_plane_count, + KPLIB_heli_slots, + KPLIB_plane_slots, + KPLIB_enemyReadiness, resources_intel, infantry_cap, - KP_liberation_civ_rep, - KP_liberation_guerilla_strength, + KPLIB_civ_rep, + KPLIB_guerilla_strength, infantry_weight, armor_weight, air_weight ]; publicVariable "sync_vars"; - _KP_liberation_fob_resources_old = +KP_liberation_fob_resources; - _KP_liberation_supplies_global_old = KP_liberation_supplies_global; - _KP_liberation_ammo_global_old = KP_liberation_ammo_global; - _KP_liberation_fuel_global_old = KP_liberation_fuel_global; + _KPLIB_fob_resources_old = +KPLIB_fob_resources; + _KPLIB_supplies_global_old = KPLIB_supplies_global; + _KPLIB_ammo_global_old = KPLIB_ammo_global; + _KPLIB_fuel_global_old = KPLIB_fuel_global; _unitcap_old = unitcap; - _KP_liberation_heli_count_old = KP_liberation_heli_count; - _KP_liberation_plane_count_old = KP_liberation_plane_count; - _KP_liberation_heli_slots_old = KP_liberation_heli_slots; - _KP_liberation_plane_slots_old = KP_liberation_plane_slots; - _combat_readiness_old = combat_readiness; + _KPLIB_heli_count_old = KPLIB_heli_count; + _KPLIB_plane_count_old = KPLIB_plane_count; + _KPLIB_heli_slots_old = KPLIB_heli_slots; + _KPLIB_plane_slots_old = KPLIB_plane_slots; + _KPLIB_enemyReadiness_old = KPLIB_enemyReadiness; _resources_intel_old = resources_intel; _infantry_cap_old = infantry_cap; - _KP_liberation_civ_rep_old = KP_liberation_civ_rep; - _KP_liberation_guerilla_strength_old = KP_liberation_guerilla_strength; + _KPLIB_civ_rep_old = KPLIB_civ_rep; + _KPLIB_guerilla_strength_old = KPLIB_guerilla_strength; _infantry_weight_old = infantry_weight; _armor_weight_old = armor_weight; _air_weight_old = air_weight; diff --git a/Missionframework/scripts/server/game/zeus_synchro.sqf b/Missionframework/scripts/server/game/zeus_synchro.sqf index ad4766694..8f2f0a2c2 100644 --- a/Missionframework/scripts/server/game/zeus_synchro.sqf +++ b/Missionframework/scripts/server/game/zeus_synchro.sqf @@ -1,7 +1,9 @@ -waitUntil {!isNil "huron_typename"}; +scriptName "zeus_synchro"; + +waitUntil {!isNil "KPLIB_b_potato01"}; // Classnames of objects which should be added as editable for Zeus -private _vehicleClassnames = [toLower huron_typename]; +private _vehicleClassnames = [toLower KPLIB_b_potato01]; { _vehicleClassnames append _x; } forEach [ @@ -12,7 +14,7 @@ private _vehicleClassnames = [toLower huron_typename]; KPLIB_b_static_classes, KPLIB_b_support_classes ]; -if (KP_liberation_enemies_zeus) then {_vehicleClassnames append KPLIB_o_allVeh_classes;}; +if (KPLIB_param_zeusAddEnemies) then {_vehicleClassnames append KPLIB_o_allVeh_classes;}; private _valids = []; private _toRemove = []; @@ -25,8 +27,8 @@ while {true} do { _valids = allUnits select { (alive _x) // Alive && { - (KP_liberation_enemies_zeus && {!(side (group _x) isEqualTo GRLIB_side_civilian)}) // Not civilian side, if enemy adding is enabled - || {side (group _x) isEqualTo GRLIB_side_friendly} // Player side if enemy adding is disabled + (KPLIB_param_zeusAddEnemies && {!(side (group _x) isEqualTo KPLIB_side_civilian)}) // Not civilian side, if enemy adding is enabled + || {side (group _x) isEqualTo KPLIB_side_player} // Player side if enemy adding is disabled } && {((str _x) find "BIS_SUPP_HQ_") isEqualTo -1} // Not a HQ entity from support module }; diff --git a/Missionframework/scripts/server/highcommand/fn_highcommand.fsm b/Missionframework/scripts/server/highcommand/fn_highcommand.fsm index bc13f2cb8..4fbb3a6d3 100644 --- a/Missionframework/scripts/server/highcommand/fn_highcommand.fsm +++ b/Missionframework/scripts/server/highcommand/fn_highcommand.fsm @@ -103,8 +103,8 @@ class FSM priority = 0.000000; to="Init_High_Command"; precondition = /*%FSM*/"_cmdr = [] call KPLIB_fnc_getCommander;"/*%FSM*/; - condition=/*%FSM*/"!isNil ""save_is_loaded""" \n - "&& {save_is_loaded}" \n + condition=/*%FSM*/"!isNil ""KPLIB_saveLoaded""" \n + "&& {KPLIB_saveLoaded}" \n "&& {time > 5}" \n "&& {alive _cmdr}"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; @@ -127,7 +127,7 @@ class FSM "" \n "// Logging function for the FSM" \n "private _logging = {" \n - " if (KP_liberation_highcommand_debug > 0) then {" \n + " if (KPLIB_highcommand_debug > 0) then {" \n " [format _this, ""HIGHCOMMAND""] call KPLIB_fnc_log;" \n " };" \n "};"/*%FSM*/; @@ -179,7 +179,7 @@ class FSM priority = 1.000000; to="Exit_1"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"GRLIB_endgame > 0"/*%FSM*/; + condition=/*%FSM*/"KPLIB_endgame > 0"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -254,7 +254,7 @@ class FSM "// Get all groups with at least one member alive" \n "// and not already added to high command" \n "_newGrps = allGroups select {" \n - " (side _x) isEqualTo GRLIB_side_friendly" \n + " (side _x) isEqualTo KPLIB_side_player" \n " && {!(_x in _hcGrps)}" \n " && {!(((units _x) select {alive _x}) isEqualTo [])}" \n " && {!(_cmdr in (units _x))}" \n @@ -357,7 +357,7 @@ class FSM priority = 1.000000; to="Exit_1"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"GRLIB_endgame > 0"/*%FSM*/; + condition=/*%FSM*/"KPLIB_endgame > 0"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -400,8 +400,8 @@ class FSM "// the issue on dedicated servers, if using that module." \n "BIS_marta_mainscope setvariable [""rules""," \n "[" \n - " [""o_"", [[0.5, 0, 0, 1], [0, 0.3, 0.6, 1]] select (GRLIB_side_enemy isEqualTo west)]," \n - " [""b_"", [[0.5, 0, 0, 1], [0, 0.3, 0.6, 1]] select (GRLIB_side_friendly isEqualTo west)]," \n + " [""o_"", [[0.5, 0, 0, 1], [0, 0.3, 0.6, 1]] select (KPLIB_side_enemy isEqualTo west)]," \n + " [""b_"", [[0.5, 0, 0, 1], [0, 0.3, 0.6, 1]] select (KPLIB_side_player isEqualTo west)]," \n " [""n_"", [0, 0.5, 0, 1]]," \n " [""n_"", [0.4, 0, 0.5, 1]]" \n "], true];"/*%FSM*/; @@ -430,4 +430,4 @@ class FSM "Exit_1", }; }; -/*%FSM*/ \ No newline at end of file +/*%FSM*/ diff --git a/Missionframework/scripts/server/init_server.sqf b/Missionframework/scripts/server/init_server.sqf index dcecb7252..693e9b134 100644 --- a/Missionframework/scripts/server/init_server.sqf +++ b/Missionframework/scripts/server/init_server.sqf @@ -1,39 +1,39 @@ // AI -add_civ_waypoints = compileFinal preprocessFileLineNumbers "scripts\server\ai\add_civ_waypoints.sqf"; -add_defense_waypoints = compileFinal preprocessFileLineNumbers "scripts\server\ai\add_defense_waypoints.sqf"; -battlegroup_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\battlegroup_ai.sqf"; -building_defence_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\building_defence_ai.sqf"; -patrol_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\patrol_ai.sqf"; -prisonner_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\prisonner_ai.sqf"; -troup_transport = compileFinal preprocessFileLineNumbers "scripts\server\ai\troup_transport.sqf"; +add_civ_waypoints = compile preprocessFileLineNumbers "scripts\server\ai\add_civ_waypoints.sqf"; +add_defense_waypoints = compile preprocessFileLineNumbers "scripts\server\ai\add_defense_waypoints.sqf"; +battlegroup_ai = compile preprocessFileLineNumbers "scripts\server\ai\battlegroup_ai.sqf"; +building_defence_ai = compile preprocessFileLineNumbers "scripts\server\ai\building_defence_ai.sqf"; +patrol_ai = compile preprocessFileLineNumbers "scripts\server\ai\patrol_ai.sqf"; +prisonner_ai = compile preprocessFileLineNumbers "scripts\server\ai\prisonner_ai.sqf"; +troup_transport = compile preprocessFileLineNumbers "scripts\server\ai\troup_transport.sqf"; // Battlegroup -spawn_air = compileFinal preprocessFileLineNumbers "scripts\server\battlegroup\spawn_air.sqf"; -spawn_battlegroup = compileFinal preprocessFileLineNumbers "scripts\server\battlegroup\spawn_battlegroup.sqf"; +spawn_air = compile preprocessFileLineNumbers "scripts\server\battlegroup\spawn_air.sqf"; +spawn_battlegroup = compile preprocessFileLineNumbers "scripts\server\battlegroup\spawn_battlegroup.sqf"; // Game -check_victory_conditions = compileFinal preprocessFileLineNumbers "scripts\server\game\check_victory_conditions.sqf"; +check_victory_conditions = compile preprocessFileLineNumbers "scripts\server\game\check_victory_conditions.sqf"; // Patrol -manage_one_civilian_patrol = compileFinal preprocessFileLineNumbers "scripts\server\patrols\manage_one_civilian_patrol.sqf"; -manage_one_patrol = compileFinal preprocessFileLineNumbers "scripts\server\patrols\manage_one_patrol.sqf"; -reinforcements_manager = compileFinal preprocessFileLineNumbers "scripts\server\patrols\reinforcements_manager.sqf"; -send_paratroopers = compileFinal preprocessFileLineNumbers "scripts\server\patrols\send_paratroopers.sqf"; +manage_one_civilian_patrol = compile preprocessFileLineNumbers "scripts\server\patrols\manage_one_civilian_patrol.sqf"; +manage_one_patrol = compile preprocessFileLineNumbers "scripts\server\patrols\manage_one_patrol.sqf"; +reinforcements_manager = compile preprocessFileLineNumbers "scripts\server\patrols\reinforcements_manager.sqf"; +send_paratroopers = compile preprocessFileLineNumbers "scripts\server\patrols\send_paratroopers.sqf"; // Secondary objectives -fob_hunting = compileFinal preprocessFileLineNumbers "scripts\server\secondary\fob_hunting.sqf"; -convoy_hijack = compileFinal preprocessFileLineNumbers "scripts\server\secondary\convoy_hijack.sqf"; -search_and_rescue = compileFinal preprocessFileLineNumbers "scripts\server\secondary\search_and_rescue.sqf"; +fob_hunting = compile preprocessFileLineNumbers "scripts\server\secondary\fob_hunting.sqf"; +convoy_hijack = compile preprocessFileLineNumbers "scripts\server\secondary\convoy_hijack.sqf"; +search_and_rescue = compile preprocessFileLineNumbers "scripts\server\secondary\search_and_rescue.sqf"; // Sector -attack_in_progress_fob = compileFinal preprocessFileLineNumbers "scripts\server\sector\attack_in_progress_fob.sqf"; -attack_in_progress_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\attack_in_progress_sector.sqf"; -ied_manager = compileFinal preprocessFileLineNumbers "scripts\server\sector\ied_manager.sqf"; -manage_one_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\manage_one_sector.sqf"; -wait_to_spawn_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\wait_to_spawn_sector.sqf"; +attack_in_progress_fob = compile preprocessFileLineNumbers "scripts\server\sector\attack_in_progress_fob.sqf"; +attack_in_progress_sector = compile preprocessFileLineNumbers "scripts\server\sector\attack_in_progress_sector.sqf"; +ied_manager = compile preprocessFileLineNumbers "scripts\server\sector\ied_manager.sqf"; +manage_one_sector = compile preprocessFileLineNumbers "scripts\server\sector\manage_one_sector.sqf"; +wait_to_spawn_sector = compile preprocessFileLineNumbers "scripts\server\sector\wait_to_spawn_sector.sqf"; // Globals -active_sectors = []; publicVariable "active_sectors"; +KPLIB_sectors_active = []; publicVariable "KPLIB_sectors_active"; execVM "scripts\server\base\startgame.sqf"; execVM "scripts\server\base\huron_manager.sqf"; @@ -44,7 +44,7 @@ execVM "scripts\server\battlegroup\random_battlegroups.sqf"; execVM "scripts\server\battlegroup\readiness_increase.sqf"; execVM "scripts\server\game\apply_default_permissions.sqf"; execVM "scripts\server\game\cleanup_vehicles.sqf"; -if (!KP_liberation_fog_param) then {execVM "scripts\server\game\fucking_set_fog.sqf";}; +if (!KPLIB_param_vanillaFog) then {execVM "scripts\server\game\fucking_set_fog.sqf";}; execVM "scripts\server\game\manage_time.sqf"; execVM "scripts\server\game\manage_weather.sqf"; execVM "scripts\server\game\playtime.sqf"; @@ -57,7 +57,7 @@ execVM "scripts\server\offloading\show_fps.sqf"; execVM "scripts\server\patrols\civilian_patrols.sqf"; execVM "scripts\server\patrols\manage_patrols.sqf"; execVM "scripts\server\patrols\reinforcements_resetter.sqf"; -if (KP_liberation_ailogistics) then {execVM "scripts\server\resources\manage_logistics.sqf";}; +if (KPLIB_param_logistic) then {execVM "scripts\server\resources\manage_logistics.sqf";}; execVM "scripts\server\resources\manage_resources.sqf"; execVM "scripts\server\resources\recalculate_resources.sqf"; execVM "scripts\server\resources\recalculate_timer.sqf"; @@ -66,40 +66,40 @@ execVM "scripts\server\resources\unit_cap.sqf"; execVM "scripts\server\sector\lose_sectors.sqf"; KPLIB_fsm_sectorMonitor = [] call KPLIB_fnc_sectorMonitor; -if (KP_liberation_high_command) then {KPLIB_fsm_highcommand = [] call KPLIB_fnc_highcommand;}; +if (KPLIB_param_highCommand) then {KPLIB_fsm_highcommand = [] call KPLIB_fnc_highcommand;}; // Select FOB templates -switch (KP_liberation_preset_opfor) do { +switch (KPLIB_presetEnemy) do { case 1: { KPLIB_fob_templates = [ - "scripts\fob_templates\apex\template1.sqf", - "scripts\fob_templates\apex\template2.sqf", - "scripts\fob_templates\apex\template3.sqf", - "scripts\fob_templates\apex\template4.sqf", - "scripts\fob_templates\apex\template5.sqf" + "fobhunt_templates\apex\template1.sqf", + "fobhunt_templates\apex\template2.sqf", + "fobhunt_templates\apex\template3.sqf", + "fobhunt_templates\apex\template4.sqf", + "fobhunt_templates\apex\template5.sqf" ]; }; case 12: { KPLIB_fob_templates = [ - "scripts\fob_templates\unsung\template1.sqf", - "scripts\fob_templates\unsung\template2.sqf", - "scripts\fob_templates\unsung\template3.sqf", - "scripts\fob_templates\unsung\template4.sqf", - "scripts\fob_templates\unsung\template5.sqf" + "fobhunt_templates\unsung\template1.sqf", + "fobhunt_templates\unsung\template2.sqf", + "fobhunt_templates\unsung\template3.sqf", + "fobhunt_templates\unsung\template4.sqf", + "fobhunt_templates\unsung\template5.sqf" ]; }; default { KPLIB_fob_templates = [ - "scripts\fob_templates\default\template1.sqf", - "scripts\fob_templates\default\template2.sqf", - "scripts\fob_templates\default\template3.sqf", - "scripts\fob_templates\default\template4.sqf", - "scripts\fob_templates\default\template5.sqf", - "scripts\fob_templates\default\template6.sqf", - "scripts\fob_templates\default\template7.sqf", - "scripts\fob_templates\default\template8.sqf", - "scripts\fob_templates\default\template9.sqf", - "scripts\fob_templates\default\template10.sqf" + "fobhunt_templates\default\template1.sqf", + "fobhunt_templates\default\template2.sqf", + "fobhunt_templates\default\template3.sqf", + "fobhunt_templates\default\template4.sqf", + "fobhunt_templates\default\template5.sqf", + "fobhunt_templates\default\template6.sqf", + "fobhunt_templates\default\template7.sqf", + "fobhunt_templates\default\template8.sqf", + "fobhunt_templates\default\template9.sqf", + "fobhunt_templates\default\template10.sqf" ]; }; }; @@ -116,13 +116,28 @@ execVM "scripts\server\asymmetric\init_module.sqf"; // Groupcheck for deletion when empty execVM "scripts\server\offloading\group_diag.sqf"; +// Server event(s) +["KPLib_manageKills", { + params ["_unit", "_killer"]; + [_unit, _killer] call kill_manager; +}] call CBA_fnc_addEventHandler; + + { - if ((_x != player) && (_x distance (markerPos GRLIB_respawn_marker) < 200 )) then { + if ((_x != player) && (_x distance (markerPos KPLIB_respawn_marker) < 200 )) then { deleteVehicle _x; }; } forEach allUnits; // Server Restart Script from K4s0 -if (KP_liberation_restart > 0) then { +if (KPLIB_param_restart > 0) then { execVM "scripts\server\game\server_restart.sqf"; }; + +["KPLIB_ResetBattleGroups", { + { + if (_x getVariable ["KPLIB_isBattleGroup", false]) then { + [_x] call battlegroup_ai; + } + } foreach allGroups; +}] call CBA_fnc_addEventHandler; diff --git a/Missionframework/scripts/server/offloading/group_diag.sqf b/Missionframework/scripts/server/offloading/group_diag.sqf index 5985fa448..221f9ce18 100644 --- a/Missionframework/scripts/server/offloading/group_diag.sqf +++ b/Missionframework/scripts/server/offloading/group_diag.sqf @@ -1,4 +1,6 @@ -waitUntil {sleep 1; !isNil "active_sectors"}; +scriptName "group_diag"; + +waitUntil {sleep 1; !isNil "KPLIB_sectors_active"}; while {true} do { uiSleep 600; diff --git a/Missionframework/scripts/server/offloading/hc_manager.sqf b/Missionframework/scripts/server/offloading/hc_manager.sqf index cba1d4f9c..ca5cb7211 100644 --- a/Missionframework/scripts/server/offloading/hc_manager.sqf +++ b/Missionframework/scripts/server/offloading/hc_manager.sqf @@ -1,18 +1,18 @@ -add_civ_waypoints = compileFinal preprocessFileLineNumbers "scripts\server\ai\add_civ_waypoints.sqf"; -add_defense_waypoints = compileFinal preprocessFileLineNumbers "scripts\server\ai\add_defense_waypoints.sqf"; -battlegroup_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\battlegroup_ai.sqf"; -building_defence_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\building_defence_ai.sqf"; -patrol_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\patrol_ai.sqf"; -prisonner_ai = compileFinal preprocessFileLineNumbers "scripts\server\ai\prisonner_ai.sqf"; -troup_transport = compileFinal preprocessFileLineNumbers "scripts\server\ai\troup_transport.sqf"; +add_civ_waypoints = compile preprocessFileLineNumbers "scripts\server\ai\add_civ_waypoints.sqf"; +add_defense_waypoints = compile preprocessFileLineNumbers "scripts\server\ai\add_defense_waypoints.sqf"; +battlegroup_ai = compile preprocessFileLineNumbers "scripts\server\ai\battlegroup_ai.sqf"; +building_defence_ai = compile preprocessFileLineNumbers "scripts\server\ai\building_defence_ai.sqf"; +patrol_ai = compile preprocessFileLineNumbers "scripts\server\ai\patrol_ai.sqf"; +prisonner_ai = compile preprocessFileLineNumbers "scripts\server\ai\prisonner_ai.sqf"; +troup_transport = compile preprocessFileLineNumbers "scripts\server\ai\troup_transport.sqf"; -ied_manager = compileFinal preprocessFileLineNumbers "scripts\server\sector\ied_manager.sqf"; -manage_one_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\manage_one_sector.sqf"; -wait_to_spawn_sector = compileFinal preprocessFileLineNumbers "scripts\server\sector\wait_to_spawn_sector.sqf"; -manage_asymIED = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\ied\manage_asymIED.sqf"; -sector_guerilla = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\random\sector_guerilla.sqf"; -asym_sector_ambush = compileFinal preprocessFileLineNumbers "scripts\server\asymmetric\random\asym_sector_ambush.sqf"; -civinfo_task = compileFinal preprocessFileLineNumbers "scripts\server\civinformant\tasks\civinfo_task.sqf"; +ied_manager = compile preprocessFileLineNumbers "scripts\server\sector\ied_manager.sqf"; +manage_one_sector = compile preprocessFileLineNumbers "scripts\server\sector\manage_one_sector.sqf"; +wait_to_spawn_sector = compile preprocessFileLineNumbers "scripts\server\sector\wait_to_spawn_sector.sqf"; +manage_asymIED = compile preprocessFileLineNumbers "scripts\server\asymmetric\ied\manage_asymIED.sqf"; +sector_guerilla = compile preprocessFileLineNumbers "scripts\server\asymmetric\random\sector_guerilla.sqf"; +asym_sector_ambush = compile preprocessFileLineNumbers "scripts\server\asymmetric\random\asym_sector_ambush.sqf"; +civinfo_task = compile preprocessFileLineNumbers "scripts\server\civinformant\tasks\civinfo_task.sqf"; execVM "scripts\client\misc\synchronise_vars.sqf"; execVM "scripts\client\misc\synchronise_eco.sqf"; diff --git a/Missionframework/scripts/server/offloading/show_fps.sqf b/Missionframework/scripts/server/offloading/show_fps.sqf index e91466f2d..a3d062b61 100644 --- a/Missionframework/scripts/server/offloading/show_fps.sqf +++ b/Missionframework/scripts/server/offloading/show_fps.sqf @@ -1,3 +1,5 @@ +scriptName "show_fps"; + private _sourcestr = "Server"; private _position = 0; @@ -43,7 +45,7 @@ while {true} do { _myfpsmarker setMarkerColor "ColorGREEN"; if (_myfps < 30) then {_myfpsmarker setMarkerColor "ColorYELLOW";}; if (_myfps < 20) then {_myfpsmarker setMarkerColor "ColorORANGE";}; - if (_myfps < 10) then {_myfpsmarker setMarkerColor GRLIB_color_enemy_bright;}; + if (_myfps < 10) then {_myfpsmarker setMarkerColor KPLIB_color_enemyActive;}; _myfpsmarker setMarkerText format ["%1: %2 fps, %3 local groups, %4 local units", _sourcestr, (round (_myfps * 100.0)) / 100.0, _localgroups, _localunits]; diff --git a/Missionframework/scripts/server/patrols/civilian_patrols.sqf b/Missionframework/scripts/server/patrols/civilian_patrols.sqf index a64c4c9c1..bf9ac8624 100644 --- a/Missionframework/scripts/server/patrols/civilian_patrols.sqf +++ b/Missionframework/scripts/server/patrols/civilian_patrols.sqf @@ -1,3 +1,3 @@ -if ( GRLIB_civilian_activity > 0 ) then { - for [ {_i=0}, {_i < GRLIB_civilians_amount}, {_i=_i+1} ] do { [] spawn manage_one_civilian_patrol }; +if ( KPLIB_param_civActivity > 0 ) then { + for [ {_i=0}, {_i < KPLIB_civilians_amount}, {_i=_i+1} ] do { [] spawn manage_one_civilian_patrol }; }; diff --git a/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf b/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf index 12d43819f..5192e86ff 100644 --- a/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf +++ b/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf @@ -1,3 +1,5 @@ +scriptName "manage_one_civilian_patrol"; + private [ "_spawnsector", "_grp", "_usable_sectors", "_spawntype", "_civnumber", "_vehdriver", "_spawnpos", "_civveh", "_sectors_patrol", "_patrol_startpos", "_waypoint", "_grpspeed", "_sectors_patrol_random", "_sectorcount", "_nextsector", "_nearestroad" ]; @@ -6,27 +8,27 @@ _civveh = objNull; sleep (150 + (random 150)); _spawnsector = ""; -if ( isNil "active_sectors" ) then { active_sectors = [] }; +if ( isNil "KPLIB_sectors_active" ) then { KPLIB_sectors_active = [] }; -while { GRLIB_endgame == 0 } do { +while { KPLIB_endgame == 0 } do { _spawnsector = ""; _usable_sectors = []; { - if ((([markerPos _x, 1000, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) == 0) && (count ([markerPos _x, 3500] call KPLIB_fnc_getNearbyPlayers) > 0)) then { + if ((([markerPos _x, 1000, KPLIB_side_player] call KPLIB_fnc_getUnitsCount) == 0) && (count ([markerPos _x, 3500] call KPLIB_fnc_getNearbyPlayers) > 0)) then { _usable_sectors pushback _x; } - } foreach ((sectors_bigtown + sectors_capture + sectors_factory) - (active_sectors)); + } foreach ((KPLIB_sectors_capital + KPLIB_sectors_city + KPLIB_sectors_factory) - (KPLIB_sectors_active)); if ( count _usable_sectors > 0 ) then { _spawnsector = selectRandom _usable_sectors; - _grp = createGroup [GRLIB_side_civilian, true]; + _grp = createGroup [KPLIB_side_civilian, true]; if ( random 100 < 33) then { _civnumber = 1 + (floor (random 2)); while { count units _grp < _civnumber } do { - [selectRandom civilians, markerPos _spawnsector, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; + [selectRandom KPLIB_c_units, markerPos _spawnsector, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; }; _grpspeed = "LIMITED"; } else { @@ -39,11 +41,14 @@ while { GRLIB_endgame == 0 } do { _spawnpos = getpos _nearestroad; - [selectRandom civilians, _spawnpos, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; - _civveh = (selectRandom civilian_vehicles) createVehicle _spawnpos; + [selectRandom KPLIB_c_units, _spawnpos, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; + _civveh = (selectRandom KPLIB_c_vehicles) createVehicle _spawnpos; _civveh setpos _spawnpos; - _civveh addMPEventHandler ['MPKilled', {_this spawn kill_manager}]; - _civveh addEventHandler ["HandleDamage", { private [ "_damage" ]; if (( side (_this select 3) != GRLIB_side_friendly ) && ( side (_this select 3) != GRLIB_side_enemy )) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; + _civveh addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; + _civveh addEventHandler ["HandleDamage", { private [ "_damage" ]; if (( side (_this select 3) != KPLIB_side_player ) && ( side (_this select 3) != KPLIB_side_enemy )) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; ((units _grp) select 0) moveInDriver _civveh; ((units _grp) select 0) disableAI "FSM"; ((units _grp) select 0) disableAI "AUTOCOMBAT"; @@ -51,7 +56,7 @@ while { GRLIB_endgame == 0 } do { }; - { _x addEventHandler ["HandleDamage", { private [ "_damage" ]; if (( side (_this select 3) != GRLIB_side_friendly ) && ( side (_this select 3) != GRLIB_side_enemy )) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; } foreach units _grp; + { _x addEventHandler ["HandleDamage", { private [ "_damage" ]; if (( side (_this select 3) != KPLIB_side_player ) && ( side (_this select 3) != KPLIB_side_enemy )) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; } foreach units _grp; _sectors_patrol = []; _patrol_startpos = getpos (leader _grp); @@ -59,7 +64,7 @@ while { GRLIB_endgame == 0 } do { if ((_patrol_startpos distance (markerpos _x) < 5000) && (count ([markerPos _x, 4000] call KPLIB_fnc_getNearbyPlayers) > 0)) then { _sectors_patrol pushback _x; }; - } foreach (sectors_bigtown + sectors_capture + sectors_factory); + } foreach (KPLIB_sectors_capital + KPLIB_sectors_city + KPLIB_sectors_factory); _sectors_patrol_random = []; _sectorcount = count _sectors_patrol; @@ -106,7 +111,7 @@ while { GRLIB_endgame == 0 } do { if (count ([getpos leader _grp, 4000] call KPLIB_fnc_getNearbyPlayers) == 0) then { if ( !(isNull _civveh) ) then { - if ( { ( alive _x ) && (side group _x == GRLIB_side_friendly ) } count (crew _civveh) == 0 ) then { + if ( { ( alive _x ) && (side group _x == KPLIB_side_player ) } count (crew _civveh) == 0 ) then { deleteVehicle _civveh }; }; diff --git a/Missionframework/scripts/server/patrols/manage_one_patrol.sqf b/Missionframework/scripts/server/patrols/manage_one_patrol.sqf index 62c7f72f4..f26c77cde 100644 --- a/Missionframework/scripts/server/patrols/manage_one_patrol.sqf +++ b/Missionframework/scripts/server/patrols/manage_one_patrol.sqf @@ -1,16 +1,18 @@ +scriptName "manage_one_patrol"; + params [ "_minimum_readiness", "_is_infantry" ]; private [ "_headless_client" ]; -waitUntil { !isNil "blufor_sectors" }; -waitUntil { !isNil "combat_readiness" }; +waitUntil { !isNil "KPLIB_sectors_player" }; +waitUntil { !isNil "KPLIB_enemyReadiness" }; -while { GRLIB_endgame == 0 } do { - waitUntil { sleep 0.3; count blufor_sectors >= 3; }; - waitUntil { sleep 0.3; combat_readiness >= (_minimum_readiness / GRLIB_difficulty_modifier); }; +while { KPLIB_endgame == 0 } do { + waitUntil { sleep 0.3; count KPLIB_sectors_player >= 3; }; + waitUntil { sleep 0.3; KPLIB_enemyReadiness >= (_minimum_readiness / KPLIB_param_difficulty); }; sleep (random 30); - while { [] call KPLIB_fnc_getOpforCap > GRLIB_patrol_cap } do { + while { [] call KPLIB_fnc_getOpforCap > KPLIB_cap_patrol } do { sleep (random 30); }; @@ -27,7 +29,7 @@ while { GRLIB_endgame == 0 } do { _sector_spawn_pos = [(((markerpos _spawn_marker) select 0) - 500) + (random 1000),(((markerpos _spawn_marker) select 1) - 500) + (random 1000),0]; if (_is_infantry) then { - _grp = createGroup [GRLIB_side_enemy, true]; + _grp = createGroup [KPLIB_side_enemy, true]; _squad = [] call KPLIB_fnc_getSquadComp; { [_x, _sector_spawn_pos, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; @@ -35,8 +37,8 @@ while { GRLIB_endgame == 0 } do { } else { private [ "_vehicle_object" ]; - if ((combat_readiness > 75) && ((random 100) > 85) && !(opfor_choppers isEqualTo [])) then { - _vehicle_object = [_sector_spawn_pos, selectRandom opfor_choppers] call KPLIB_fnc_spawnVehicle; + if ((KPLIB_enemyReadiness > 75) && ((random 100) > 85) && !(KPLIB_o_helicopters isEqualTo [])) then { + _vehicle_object = [_sector_spawn_pos, selectRandom KPLIB_o_helicopters] call KPLIB_fnc_spawnVehicle; } else { _vehicle_object = [_sector_spawn_pos, [] call KPLIB_fnc_getAdaptiveVehicle] call KPLIB_fnc_spawnVehicle; }; @@ -63,7 +65,7 @@ while { GRLIB_endgame == 0 } do { _patrol_continue = false; } else { if ( time - _started_time > 900 ) then { - if ( [ getpos (leader _grp) , 4000 , GRLIB_side_friendly ] call KPLIB_fnc_getUnitsCount == 0 ) then { + if ( [ getpos (leader _grp) , 4000 , KPLIB_side_player ] call KPLIB_fnc_getUnitsCount == 0 ) then { _patrol_continue = false; { if ( vehicle _x != _x ) then { @@ -76,8 +78,8 @@ while { GRLIB_endgame == 0 } do { }; }; - if ( !([] call KPLIB_fnc_isBigtownActive) ) then { - sleep (600.0 / GRLIB_difficulty_modifier); + if ( !([] call KPLIB_fnc_isCapitalActive) ) then { + sleep (600.0 / KPLIB_param_difficulty); }; }; diff --git a/Missionframework/scripts/server/patrols/manage_patrols.sqf b/Missionframework/scripts/server/patrols/manage_patrols.sqf index 4ebadec5f..a9e4c3fec 100644 --- a/Missionframework/scripts/server/patrols/manage_patrols.sqf +++ b/Missionframework/scripts/server/patrols/manage_patrols.sqf @@ -1,15 +1,17 @@ +scriptName "manage_patrols"; + _combat_triggers = [20,40,50,65,80,95]; -if ( GRLIB_unitcap < 0.9 ) then { _combat_triggers = [20,45,90]; }; -if ( GRLIB_unitcap > 1.3 ) then { _combat_triggers = [15,25,40,65,75,85,95]; }; +if ( KPLIB_param_unitcap < 0.9 ) then { _combat_triggers = [20,45,90]; }; +if ( KPLIB_param_unitcap > 1.3 ) then { _combat_triggers = [15,25,40,65,75,85,95]; }; _combat_triggers_infantry = [15,35,45,60,70,85]; -if ( GRLIB_unitcap < 0.9 ) then { _combat_triggers_infantry = [15,40,80]; }; -if ( GRLIB_unitcap > 1.3 ) then { _combat_triggers_infantry = [10,20,35,55,70,80,90]; }; +if ( KPLIB_param_unitcap < 0.9 ) then { _combat_triggers_infantry = [15,40,80]; }; +if ( KPLIB_param_unitcap > 1.3 ) then { _combat_triggers_infantry = [10,20,35,55,70,80,90]; }; sleep 5; -waitUntil { sleep 0.3; !isNil "blufor_sectors" }; -waitUntil { sleep 0.3; count blufor_sectors > 3 }; +waitUntil { sleep 0.3; !isNil "KPLIB_sectors_player" }; +waitUntil { sleep 0.3; count KPLIB_sectors_player > 3 }; if (worldName != "song_bin_tanh") then { { diff --git a/Missionframework/scripts/server/patrols/reinforcements_manager.sqf b/Missionframework/scripts/server/patrols/reinforcements_manager.sqf index df0c2f31b..e030466b4 100644 --- a/Missionframework/scripts/server/patrols/reinforcements_manager.sqf +++ b/Missionframework/scripts/server/patrols/reinforcements_manager.sqf @@ -1,35 +1,35 @@ params ["_targetsector"]; -if (combat_readiness > 15) then { +if (KPLIB_enemyReadiness > 15) then { - private _init_units_count = (([markerPos _targetsector, GRLIB_capture_size, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount)); + private _init_units_count = (([markerPos _targetsector, KPLIB_range_sectorCapture, KPLIB_side_enemy] call KPLIB_fnc_getUnitsCount)); - if !(_targetsector in sectors_bigtown) then { - while {(_init_units_count * 0.75) <= ([markerPos _targetsector, GRLIB_capture_size, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount)} do { + if !(_targetsector in KPLIB_sectors_capital) then { + while {(_init_units_count * 0.75) <= ([markerPos _targetsector, KPLIB_range_sectorCapture, KPLIB_side_enemy] call KPLIB_fnc_getUnitsCount)} do { sleep 5; }; }; - if (_targetsector in active_sectors) then { + if (_targetsector in KPLIB_sectors_active) then { - private _nearestower = [markerpos _targetsector, GRLIB_side_enemy, GRLIB_radiotower_size * 1.4] call KPLIB_fnc_getNearestTower; + private _nearestower = [markerpos _targetsector, KPLIB_side_enemy, KPLIB_range_radioTowerScan * 1.4] call KPLIB_fnc_getNearestTower; if !(isNil "_nearestower") then { - private _reinforcements_time = (((((markerpos _nearestower) distance (markerpos _targetsector)) / 1000) ^ 1.66 ) * 120) / (GRLIB_difficulty_modifier * GRLIB_csat_aggressivity); - if (_targetsector in sectors_bigtown) then { + private _reinforcements_time = (((((markerpos _nearestower) distance (markerpos _targetsector)) / 1000) ^ 1.66 ) * 120) / (KPLIB_param_difficulty * KPLIB_param_aggressivity); + if (_targetsector in KPLIB_sectors_capital) then { _reinforcements_time = _reinforcements_time * 0.35; }; private _current_timer = time; - waitUntil {sleep 1; (_current_timer + _reinforcements_time < time) || (_targetsector in blufor_sectors) || (_nearestower in blufor_sectors)}; + waitUntil {sleep 1; (_current_timer + _reinforcements_time < time) || (_targetsector in KPLIB_sectors_player) || (_nearestower in KPLIB_sectors_player)}; sleep 15; - if ((_targetsector in active_sectors) && !(_targetsector in blufor_sectors) && !(_nearestower in blufor_sectors) && (!([] call KPLIB_fnc_isBigtownActive) || _targetsector in sectors_bigtown)) then { + if ((_targetsector in KPLIB_sectors_active) && !(_targetsector in KPLIB_sectors_player) && !(_nearestower in KPLIB_sectors_player) && (!([] call KPLIB_fnc_isCapitalActive) || _targetsector in KPLIB_sectors_capital)) then { reinforcements_sector_under_attack = _targetsector; reinforcements_set = true; ["lib_reinforcements",[markertext _targetsector]] remoteExec ["bis_fnc_shownotification"]; - if ((random combat_readiness) > (20 + (30 / GRLIB_csat_aggressivity))) then { + if ((random KPLIB_enemyReadiness) > (20 + (30 / KPLIB_param_aggressivity))) then { [_targetsector] spawn send_paratroopers; }; stats_reinforcements_called = stats_reinforcements_called + 1; diff --git a/Missionframework/scripts/server/patrols/reinforcements_resetter.sqf b/Missionframework/scripts/server/patrols/reinforcements_resetter.sqf index 6335443d0..3012c0919 100644 --- a/Missionframework/scripts/server/patrols/reinforcements_resetter.sqf +++ b/Missionframework/scripts/server/patrols/reinforcements_resetter.sqf @@ -1,3 +1,5 @@ +scriptName "reinforcements_resetter"; + _reset_time = 1800; reinforcements_set = false; @@ -11,6 +13,6 @@ while { true } do { waitUntil { sleep 0.3; ( time > ( _localtime + _reset_time ) ) || reinforcements_set }; - if ( !reinforcements_set && !([] call KPLIB_fnc_isBigtownActive) ) then { reinforcements_sector_under_attack = ""; } + if ( !reinforcements_set && !([] call KPLIB_fnc_isCapitalActive) ) then { reinforcements_sector_under_attack = ""; } }; diff --git a/Missionframework/scripts/server/patrols/send_paratroopers.sqf b/Missionframework/scripts/server/patrols/send_paratroopers.sqf index 4adf3387e..a10c86a68 100644 --- a/Missionframework/scripts/server/patrols/send_paratroopers.sqf +++ b/Missionframework/scripts/server/patrols/send_paratroopers.sqf @@ -3,40 +3,48 @@ params [ ["_chopper_type", objNull, [objNull]] ]; -if (_targetsector isEqualTo "" || opfor_choppers isEqualTo []) exitWith {false}; +if (_targetsector isEqualTo "" || KPLIB_o_helicopters isEqualTo []) exitWith {false}; private _targetpos = _targetsector; if (_targetpos isEqualType "") then { _targetpos = markerPos _targetsector; }; -private _spawnsector = ([sectors_airspawn, [_targetpos], {(markerpos _x) distance _input0}, "ASCEND"] call BIS_fnc_sortBy) select 0; +private _spawnsector = ([KPLIB_sectors_airSpawn, [_targetpos], {(markerpos _x) distance _input0}, "ASCEND"] call BIS_fnc_sortBy) select 0; private _newvehicle = objNull; private _pilot_group = grpNull; if (isNull _chopper_type) then { - _chopper_type = selectRandom opfor_choppers; + _chopper_type = selectRandom KPLIB_o_helicopters; - while {!(_chopper_type in opfor_troup_transports)} do { - _chopper_type = selectRandom opfor_choppers; + while {!(_chopper_type in KPLIB_o_troopTransports)} do { + _chopper_type = selectRandom KPLIB_o_helicopters; }; _newvehicle = createVehicle [_chopper_type, markerpos _spawnsector, [], 0, "FLY"]; createVehicleCrew _newvehicle; sleep 0.1; - _pilot_group = createGroup [GRLIB_side_enemy, true]; + _pilot_group = createGroup [KPLIB_side_enemy, true]; (crew _newvehicle) joinSilent _pilot_group; - _newvehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; - {_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach (crew _newvehicle); + _newvehicle addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_localEvent; + }]; + { + _x addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; + } forEach (crew _newvehicle); } else { _newvehicle = _chopper_type; _pilot_group = group _newvehicle; }; -private _para_group = createGroup [GRLIB_side_enemy, true]; +private _para_group = createGroup [KPLIB_side_enemy, true]; while {(count (units _para_group)) < 8} do { - [opfor_paratrooper, markerPos _spawnsector, _para_group] call KPLIB_fnc_createManagedUnit; + [KPLIB_o_paratrooper, markerPos _spawnsector, _para_group] call KPLIB_fnc_createManagedUnit; }; {removeBackpack _x; _x addBackPack "B_parachute"; _x moveInCargo _newvehicle;} forEach (units _para_group); diff --git a/Missionframework/scripts/server/remotecall/abort_logi_remote_call.sqf b/Missionframework/scripts/server/remotecall/abort_logi_remote_call.sqf index 2039cc7bc..03dd9e991 100644 --- a/Missionframework/scripts/server/remotecall/abort_logi_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/abort_logi_remote_call.sqf @@ -6,34 +6,34 @@ private ["_time","_nextState"]; logiError = 0; -if ((((KP_liberation_logistics select _index) select 7) == 0) || (((KP_liberation_logistics select _index) select 7) == 5) || (((KP_liberation_logistics select _index) select 7) == 6)) exitWith {logiError = 1;(localize "STR_LOGISTIC_STANDBY_ERROR") remoteExec ["hint",_clientID]; _clientID publicVariableClient "logiError";}; +if ((((KPLIB_logistics select _index) select 7) == 0) || (((KPLIB_logistics select _index) select 7) == 5) || (((KPLIB_logistics select _index) select 7) == 6)) exitWith {logiError = 1;(localize "STR_LOGISTIC_STANDBY_ERROR") remoteExec ["hint",_clientID]; _clientID publicVariableClient "logiError";}; -switch ((KP_liberation_logistics select _index) select 7) do { +switch ((KPLIB_logistics select _index) select 7) do { case 1; case 3: { - _time = ceil (((ceil ((((KP_liberation_logistics select _index) select 6) select 0) / 100)) + (ceil ((((KP_liberation_logistics select _index) select 6) select 1) / 100)) + (ceil ((((KP_liberation_logistics select _index) select 6) select 2) / 100))) / 3); + _time = ceil (((ceil ((((KPLIB_logistics select _index) select 6) select 0) / 100)) + (ceil ((((KPLIB_logistics select _index) select 6) select 1) / 100)) + (ceil ((((KPLIB_logistics select _index) select 6) select 2) / 100))) / 3); _time = _time + 1; }; case 2; case 4: { - _time = ceil ((((KP_liberation_logistics select _index) select 2) distance2D ((KP_liberation_logistics select _index) select 3)) / 400); - _time = _time - ((KP_liberation_logistics select _index) select 8); + _time = ceil ((((KPLIB_logistics select _index) select 2) distance2D ((KPLIB_logistics select _index) select 3)) / 400); + _time = _time - ((KPLIB_logistics select _index) select 8); - _time = _time + (ceil (((ceil ((((KP_liberation_logistics select _index) select 6) select 0) / 100)) + (ceil ((((KP_liberation_logistics select _index) select 6) select 1) / 100)) + (ceil ((((KP_liberation_logistics select _index) select 6) select 2) / 100))) / 3)); + _time = _time + (ceil (((ceil ((((KPLIB_logistics select _index) select 6) select 0) / 100)) + (ceil ((((KPLIB_logistics select _index) select 6) select 1) / 100)) + (ceil ((((KPLIB_logistics select _index) select 6) select 2) / 100))) / 3)); _time = _time + 1; }; }; -_nextState = switch ((KP_liberation_logistics select _index) select 7) do {case 1; case 2: {5}; case 3; case 4: {6};}; +_nextState = switch ((KPLIB_logistics select _index) select 7) do {case 1; case 2: {5}; case 3; case 4: {6};}; -KP_liberation_logistics set [_index,[ - (KP_liberation_logistics select _index) select 0, - (KP_liberation_logistics select _index) select 1, - (KP_liberation_logistics select _index) select 2, - (KP_liberation_logistics select _index) select 3, - (KP_liberation_logistics select _index) select 4, - (KP_liberation_logistics select _index) select 5, - (KP_liberation_logistics select _index) select 6, +KPLIB_logistics set [_index,[ + (KPLIB_logistics select _index) select 0, + (KPLIB_logistics select _index) select 1, + (KPLIB_logistics select _index) select 2, + (KPLIB_logistics select _index) select 3, + (KPLIB_logistics select _index) select 4, + (KPLIB_logistics select _index) select 5, + (KPLIB_logistics select _index) select 6, _nextState, _time, 0 diff --git a/Missionframework/scripts/server/remotecall/add_logiGroup_remote_call.sqf b/Missionframework/scripts/server/remotecall/add_logiGroup_remote_call.sqf index 04734477c..aaf6988a7 100644 --- a/Missionframework/scripts/server/remotecall/add_logiGroup_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/add_logiGroup_remote_call.sqf @@ -1,8 +1,8 @@ if (!isServer) exitWith {}; -private _newID = [count KP_liberation_logistics] call KPLIB_fnc_getMilitaryId; +private _newID = [count KPLIB_logistics] call KPLIB_fnc_getMilitaryId; -KP_liberation_logistics append [[ +KPLIB_logistics append [[ _newID, // ID 0, // Truck Count [0,0,0], // Position Point A diff --git a/Missionframework/scripts/server/remotecall/add_logiTruck_remote_call.sqf b/Missionframework/scripts/server/remotecall/add_logiTruck_remote_call.sqf index ba2166461..fe454ce21 100644 --- a/Missionframework/scripts/server/remotecall/add_logiTruck_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/add_logiTruck_remote_call.sqf @@ -4,7 +4,7 @@ params ["_index", "_nearfob", "_clientID", "_supplies", "_ammo", "_fuel"]; logiError = 0; -private _storage_areas = (_nearfob nearobjects GRLIB_fob_range) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; +private _storage_areas = (_nearfob nearobjects KPLIB_range_fob) select {(_x getVariable ["KPLIB_storage_type",-1]) == 0}; if ((count _storage_areas) == 0) exitWith {(localize "STR_LOGISTIC_CANTAFFORD") remoteExec ["hint",_clientID]; logiError = 1; _clientID publicVariableClient "logiError";}; @@ -22,14 +22,14 @@ if ((_price_s > _supplies) || (_price_a > _ammo) || (_price_f > _fuel)) exitWith reverse _storedCrates; { - private _crateValue = _x getVariable ["KP_liberation_crate_value",0]; + private _crateValue = _x getVariable ["KPLIB_crate_value",0]; switch ((typeOf _x)) do { - case KP_liberation_supply_crate: { + case KPLIB_b_crateSupply: { if (_price_s > 0) then { if (_crateValue > _price_s) then { _crateValue = _crateValue - _price_s; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _price_s = 0; } else { detach _x; @@ -38,11 +38,11 @@ if ((_price_s > _supplies) || (_price_a > _ammo) || (_price_f > _fuel)) exitWith }; }; }; - case KP_liberation_ammo_crate: { + case KPLIB_b_crateAmmo: { if (_price_a > 0) then { if (_crateValue > _price_a) then { _crateValue = _crateValue - _price_a; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _price_a = 0; } else { detach _x; @@ -51,11 +51,11 @@ if ((_price_s > _supplies) || (_price_a > _ammo) || (_price_f > _fuel)) exitWith }; }; }; - case KP_liberation_fuel_crate: { + case KPLIB_b_crateFuel: { if (_price_f > 0) then { if (_crateValue > _price_f) then { _crateValue = _crateValue - _price_f; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _price_f = 0; } else { detach _x; @@ -85,4 +85,4 @@ if ((_price_s > _supplies) || (_price_a > _ammo) || (_price_f > _fuel)) exitWith please_recalculate = true; -(KP_liberation_logistics select _index) set [1, ((KP_liberation_logistics select _index) select 1) + 1]; +(KPLIB_logistics select _index) set [1, ((KPLIB_logistics select _index) select 1) + 1]; diff --git a/Missionframework/scripts/server/remotecall/build_fac_remote_call.sqf b/Missionframework/scripts/server/remotecall/build_fac_remote_call.sqf index feb4ea28c..2e3f393fb 100644 --- a/Missionframework/scripts/server/remotecall/build_fac_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/build_fac_remote_call.sqf @@ -2,7 +2,7 @@ if (!isServer) exitWith {}; params ["_sector", "_fac","_clientID"]; -private _tempProduction = +KP_liberation_production; +private _tempProduction = +KPLIB_production; private _checkFor = 0; private _price_s = 100; private _price_a = 100; @@ -22,22 +22,22 @@ switch (_fac) do { stats_ammo_spent = stats_ammo_spent + _price_a; stats_fuel_spent = stats_fuel_spent + _price_f; - private _storage = nearestObjects [(markerPos (_x select 1)), [KP_liberation_small_storage_building], 100]; - _storage = _storage select {(_x getVariable ["KP_liberation_storage_type",-1]) == 1}; + private _storage = nearestObjects [(markerPos (_x select 1)), [KPLIB_b_smallStorage], 100]; + _storage = _storage select {(_x getVariable ["KPLIB_storage_type",-1]) == 1}; if ((count _storage) == 0) exitWith {}; _storage = (_storage select 0); private _storedCrates = (attachedObjects _storage); reverse _storedCrates; { - private _crateValue = _x getVariable ["KP_liberation_crate_value",0]; + private _crateValue = _x getVariable ["KPLIB_crate_value",0]; switch ((typeOf _x)) do { - case KP_liberation_supply_crate: { + case KPLIB_b_crateSupply: { if (_price_s > 0) then { if (_crateValue > _price_s) then { _crateValue = _crateValue - _price_s; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _price_s = 0; } else { detach _x; @@ -46,11 +46,11 @@ switch (_fac) do { }; }; }; - case KP_liberation_ammo_crate: { + case KPLIB_b_crateAmmo: { if (_price_a > 0) then { if (_crateValue > _price_a) then { _crateValue = _crateValue - _price_a; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _price_a = 0; } else { detach _x; @@ -59,11 +59,11 @@ switch (_fac) do { }; }; }; - case KP_liberation_fuel_crate: { + case KPLIB_b_crateFuel: { if (_price_f > 0) then { if (_crateValue > _price_f) then { _crateValue = _crateValue - _price_f; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _price_f = 0; } else { detach _x; @@ -80,7 +80,7 @@ switch (_fac) do { { private _height = [typeOf _x] call KPLIB_fnc_getCrateHeight; detach _x; - _x attachTo [_storage, [(KP_liberation_small_storage_positions select _i) select 0, (KP_liberation_small_storage_positions select _i) select 1, _height]]; + _x attachTo [_storage, [(KPLIB_small_storage_positions select _i) select 0, (KPLIB_small_storage_positions select _i) select 1, _height]]; _i = _i + 1; } forEach (attachedObjects _storage); @@ -96,6 +96,6 @@ switch (_fac) do { } forEach _tempProduction; if (_success) then { - KP_liberation_production = +_tempProduction; + KPLIB_production = +_tempProduction; recalculate_sectors = true; }; diff --git a/Missionframework/scripts/server/remotecall/build_fob_remote_call.sqf b/Missionframework/scripts/server/remotecall/build_fob_remote_call.sqf index babc25ba8..78e61ef13 100644 --- a/Missionframework/scripts/server/remotecall/build_fob_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/build_fob_remote_call.sqf @@ -3,13 +3,13 @@ if (!isServer) exitWith {}; params [ "_new_fob", "_create_fob_building" ]; private [ "_fob_building", "_fob_pos" ]; -GRLIB_all_fobs pushback _new_fob; -publicVariable "GRLIB_all_fobs"; +KPLIB_sectors_fob pushback _new_fob; +publicVariable "KPLIB_sectors_fob"; if ( _create_fob_building ) then { _fob_pos = [ (_new_fob select 0) + 15, (_new_fob select 1) + 2, 0 ]; [_fob_pos, 20, true] call KPLIB_fnc_createClearance; - _fob_building = FOB_typename createVehicle _fob_pos; + _fob_building = KPLIB_b_fobBuilding createVehicle _fob_pos; _fob_building setpos _fob_pos; _fob_building setVectorUp [0,0,1]; [_fob_building] call KPLIB_fnc_addObjectInit; diff --git a/Missionframework/scripts/server/remotecall/build_remote_call.sqf b/Missionframework/scripts/server/remotecall/build_remote_call.sqf index 51b65510a..b28ba386e 100644 --- a/Missionframework/scripts/server/remotecall/build_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/build_remote_call.sqf @@ -14,14 +14,14 @@ if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { reverse _storedCrates; { - _crateValue = _x getVariable ["KP_liberation_crate_value",0]; + _crateValue = _x getVariable ["KPLIB_crate_value",0]; switch ((typeOf _x)) do { - case KP_liberation_supply_crate: { + case KPLIB_b_crateSupply: { if (_price_s > 0) then { if (_crateValue > _price_s) then { _crateValue = _crateValue - _price_s; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _price_s = 0; } else { detach _x; @@ -30,11 +30,11 @@ if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { }; }; }; - case KP_liberation_ammo_crate: { + case KPLIB_b_crateAmmo: { if (_price_a > 0) then { if (_crateValue > _price_a) then { _crateValue = _crateValue - _price_a; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _price_a = 0; } else { detach _x; @@ -43,11 +43,11 @@ if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { }; }; }; - case KP_liberation_fuel_crate: { + case KPLIB_b_crateFuel: { if (_price_f > 0) then { if (_crateValue > _price_f) then { _crateValue = _crateValue - _price_f; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _price_f = 0; } else { detach _x; diff --git a/Missionframework/scripts/server/remotecall/cancel_build_remote_call.sqf b/Missionframework/scripts/server/remotecall/cancel_build_remote_call.sqf index b99527ae9..392e8f910 100644 --- a/Missionframework/scripts/server/remotecall/cancel_build_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/cancel_build_remote_call.sqf @@ -5,11 +5,11 @@ params ["_price_s", "_price_a", "_price_f", "_storage_areas"]; if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { { private _space = 0; - if (typeOf _x == KP_liberation_large_storage_building) then { - _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _space = (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _space = (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; while {(_space > 0) && (_price_s > 0)} do { @@ -18,7 +18,7 @@ if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { _amount = _price_s; }; _price_s = _price_s - _amount; - private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateSupply, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _space = _space - 1; }; @@ -29,7 +29,7 @@ if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { _amount = _price_a; }; _price_a = _price_a - _amount; - private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateAmmo, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _space = _space - 1; }; @@ -40,7 +40,7 @@ if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { _amount = _price_f; }; _price_f = _price_f - _amount; - private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateFuel, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _space = _space - 1; }; diff --git a/Missionframework/scripts/server/remotecall/change_prod_remote_call.sqf b/Missionframework/scripts/server/remotecall/change_prod_remote_call.sqf index ec0550670..a06701e9a 100644 --- a/Missionframework/scripts/server/remotecall/change_prod_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/change_prod_remote_call.sqf @@ -25,7 +25,7 @@ _tempProduction = []; (_x select 5), (_x select 6), _new_production, - KP_liberation_production_interval, + KPLIB_production_interval, (_x select 9), (_x select 10), (_x select 11) @@ -37,6 +37,6 @@ _tempProduction = []; } else { _tempProduction pushBack _x; }; -} forEach KP_liberation_production; +} forEach KPLIB_production; -KP_liberation_production = _tempProduction; +KPLIB_production = _tempProduction; diff --git a/Missionframework/scripts/server/remotecall/del_logiGroup_remote_call.sqf b/Missionframework/scripts/server/remotecall/del_logiGroup_remote_call.sqf index 8c4111575..5d923eba8 100644 --- a/Missionframework/scripts/server/remotecall/del_logiGroup_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/del_logiGroup_remote_call.sqf @@ -2,7 +2,7 @@ if (!isServer) exitWith {}; params ["_groupToDelete"]; -private _temp = +KP_liberation_logistics; +private _temp = +KPLIB_logistics; _temp = _temp - [_groupToDelete]; @@ -10,4 +10,4 @@ _temp = _temp - [_groupToDelete]; _x set [0, [_forEachIndex] call KPLIB_fnc_getMilitaryId]; } forEach _temp; -KP_liberation_logistics = +_temp; +KPLIB_logistics = +_temp; diff --git a/Missionframework/scripts/server/remotecall/del_logiTruck_remote_call.sqf b/Missionframework/scripts/server/remotecall/del_logiTruck_remote_call.sqf index 8a54e584c..5a8efc68f 100644 --- a/Missionframework/scripts/server/remotecall/del_logiTruck_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/del_logiTruck_remote_call.sqf @@ -4,9 +4,9 @@ params ["_index", "_nearfob", "_clientID"]; logiError = 0; -if (((KP_liberation_logistics select _index) select 1) <= 0) exitWith {logiError = 1; _clientID publicVariableClient "logiError";}; +if (((KPLIB_logistics select _index) select 1) <= 0) exitWith {logiError = 1; _clientID publicVariableClient "logiError";}; -private _storage_areas = (_nearfob nearobjects GRLIB_fob_range) select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; +private _storage_areas = (_nearfob nearobjects KPLIB_range_fob) select {(_x getVariable ["KPLIB_storage_type",-1]) == 0}; if ((count _storage_areas) == 0) exitWith {(localize "STR_LOGISTIC_NOSPACE") remoteExec ["hint",_clientID]; logiError = 1; _clientID publicVariableClient "logiError";}; @@ -19,11 +19,11 @@ private _crateSum = (ceil(_price_s / 100)) + (ceil(_price_a / 100)) + (ceil(_pri private _spaceSum = 0; { - if (typeOf _x == KP_liberation_large_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _spaceSum = _spaceSum + (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _spaceSum = _spaceSum + (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; } forEach _storage_areas; @@ -31,11 +31,11 @@ if (_spaceSum < _crateSum) exitWith {(localize "STR_LOGISTIC_NOSPACE") remoteExe { private _space = 0; - if (typeOf _x == KP_liberation_large_storage_building) then { - _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _space = (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _space = (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; while {(_space > 0) && (_price_s > 0)} do { @@ -44,7 +44,7 @@ if (_spaceSum < _crateSum) exitWith {(localize "STR_LOGISTIC_NOSPACE") remoteExe _amount = _price_s; }; _price_s = _price_s - _amount; - private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateSupply, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _space = _space - 1; }; @@ -55,7 +55,7 @@ if (_spaceSum < _crateSum) exitWith {(localize "STR_LOGISTIC_NOSPACE") remoteExe _amount = _price_a; }; _price_a = _price_a - _amount; - private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateAmmo, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _space = _space - 1; }; @@ -66,7 +66,7 @@ if (_spaceSum < _crateSum) exitWith {(localize "STR_LOGISTIC_NOSPACE") remoteExe _amount = _price_f; }; _price_f = _price_f - _amount; - private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateFuel, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _space = _space - 1; }; @@ -76,4 +76,4 @@ if (_spaceSum < _crateSum) exitWith {(localize "STR_LOGISTIC_NOSPACE") remoteExe please_recalculate = true; -(KP_liberation_logistics select _index) set [1, ((KP_liberation_logistics select _index) select 1) - 1]; +(KPLIB_logistics select _index) set [1, ((KPLIB_logistics select _index) select 1) - 1]; diff --git a/Missionframework/scripts/server/remotecall/prisonner_remote_call.sqf b/Missionframework/scripts/server/remotecall/prisonner_remote_call.sqf index 55996f30e..75c672386 100644 --- a/Missionframework/scripts/server/remotecall/prisonner_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/prisonner_remote_call.sqf @@ -5,7 +5,7 @@ private _csat_prisonner_intel_yield = 6; if (isServer) then { private _yield = _csat_prisonner_intel_yield; - if ((typeof _unit) in militia_squad) then { + if ((typeof _unit) in KPLIB_o_militiaInfantry) then { _yield = _milita_prisonner_intel_yield; }; resources_intel = resources_intel + ( _yield + (round (random _yield))); diff --git a/Missionframework/scripts/server/remotecall/recycle_remote_call.sqf b/Missionframework/scripts/server/remotecall/recycle_remote_call.sqf index c30d317b1..520c53600 100644 --- a/Missionframework/scripts/server/remotecall/recycle_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/recycle_remote_call.sqf @@ -9,11 +9,11 @@ deleteVehicle _object_recycled; if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { { private _space = 0; - if (typeOf _x == KP_liberation_large_storage_building) then { - _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _space = (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _space = (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; while {(_space > 0) && (_price_s > 0)} do { @@ -22,7 +22,7 @@ if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { _amount = _price_s; }; _price_s = _price_s - _amount; - private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateSupply, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _space = _space - 1; }; @@ -33,7 +33,7 @@ if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { _amount = _price_a; }; _price_a = _price_a - _amount; - private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateAmmo, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _space = _space - 1; }; @@ -44,7 +44,7 @@ if ((_price_s > 0) || (_price_a > 0) || (_price_f > 0)) then { _amount = _price_f; }; _price_f = _price_f - _amount; - private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateFuel, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _space = _space - 1; }; diff --git a/Missionframework/scripts/server/remotecall/save_logi_remote_call.sqf b/Missionframework/scripts/server/remotecall/save_logi_remote_call.sqf index 9fd62febc..4f4f1be42 100644 --- a/Missionframework/scripts/server/remotecall/save_logi_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/save_logi_remote_call.sqf @@ -25,26 +25,26 @@ if (_dest_a isEqualTo _dest_b) then { ((((_x select 2) isEqualTo _dest_a)) || (((_x select 2) isEqualTo _dest_b))) && ((((_x select 3) isEqualTo _dest_a)) || (((_x select 3) isEqualTo _dest_b))) ) exitWith {logiError = 1;} -} forEach KP_liberation_logistics; +} forEach KPLIB_logistics; if (logiError == 1) exitWith {(localize "STR_LOGISTIC_SAVE_ERROR") remoteExec ["hint",_clientID]; _clientID publicVariableClient "logiError";}; private _time = ceil (((ceil ((_ress_a select 0) / 100)) + (ceil ((_ress_a select 1) / 100)) + (ceil ((_ress_a select 2) / 100))) / 3); -if (_time > ((KP_liberation_logistics select _index) select 1)) then { - _time = ((KP_liberation_logistics select _index) select 1); +if (_time > ((KPLIB_logistics select _index) select 1)) then { + _time = ((KPLIB_logistics select _index) select 1); }; _time = _time + 1; -KP_liberation_logistics set [_index,[ - (KP_liberation_logistics select _index) select 0, - (KP_liberation_logistics select _index) select 1, +KPLIB_logistics set [_index,[ + (KPLIB_logistics select _index) select 0, + (KPLIB_logistics select _index) select 1, _dest_a, _dest_b, _ress_a, _ress_b, - (KP_liberation_logistics select _index) select 6, + (KPLIB_logistics select _index) select 6, 1, _time, 0 diff --git a/Missionframework/scripts/server/remotecall/sector_liberated_remote_call.sqf b/Missionframework/scripts/server/remotecall/sector_liberated_remote_call.sqf index 525dd4ea5..d3ebaf38d 100644 --- a/Missionframework/scripts/server/remotecall/sector_liberated_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/sector_liberated_remote_call.sqf @@ -1,31 +1,31 @@ params ["_liberated_sector"]; -private _combat_readiness_increase = 0; +private _KPLIB_enemyReadiness_increase = 0; switch (true) do { - case (_liberated_sector in sectors_bigtown): {_combat_readiness_increase = floor (random 10) * GRLIB_difficulty_modifier;}; - case (_liberated_sector in sectors_capture): {_combat_readiness_increase = floor (random 6) * GRLIB_difficulty_modifier;}; - case (_liberated_sector in sectors_military): {_combat_readiness_increase = 5 + (floor (random 11)) * GRLIB_difficulty_modifier;}; - case (_liberated_sector in sectors_factory): {_combat_readiness_increase = 3 + (floor (random 7)) * GRLIB_difficulty_modifier;}; - case (_liberated_sector in sectors_tower): {_combat_readiness_increase = floor (random 4);}; + case (_liberated_sector in KPLIB_sectors_capital): {_KPLIB_enemyReadiness_increase = floor (random 10) * KPLIB_param_difficulty;}; + case (_liberated_sector in KPLIB_sectors_city): {_KPLIB_enemyReadiness_increase = floor (random 6) * KPLIB_param_difficulty;}; + case (_liberated_sector in KPLIB_sectors_military): {_KPLIB_enemyReadiness_increase = 5 + (floor (random 11)) * KPLIB_param_difficulty;}; + case (_liberated_sector in KPLIB_sectors_factory): {_KPLIB_enemyReadiness_increase = 3 + (floor (random 7)) * KPLIB_param_difficulty;}; + case (_liberated_sector in KPLIB_sectors_tower): {_KPLIB_enemyReadiness_increase = floor (random 4);}; }; -combat_readiness = combat_readiness + _combat_readiness_increase; -if (combat_readiness > 100.0 && GRLIB_difficulty_modifier <= 2.0) then {combat_readiness = 100.0}; -stats_readiness_earned = stats_readiness_earned + _combat_readiness_increase; +KPLIB_enemyReadiness = KPLIB_enemyReadiness + _KPLIB_enemyReadiness_increase; +if (KPLIB_enemyReadiness > 100.0 && KPLIB_param_difficulty <= 2.0) then {KPLIB_enemyReadiness = 100.0}; +stats_readiness_earned = stats_readiness_earned + _KPLIB_enemyReadiness_increase; [_liberated_sector, 0] remoteExecCall ["remote_call_sector"]; -blufor_sectors pushback _liberated_sector; publicVariable "blufor_sectors"; +KPLIB_sectors_player pushback _liberated_sector; publicVariable "KPLIB_sectors_player"; stats_sectors_liberated = stats_sectors_liberated + 1; -reset_battlegroups_ai = true; publicVariable "reset_battlegroups_ai"; +["KPLIB_ResetBattleGroups"] call CBA_fnc_serverEvent; -if (_liberated_sector in sectors_factory) then { +if (_liberated_sector in KPLIB_sectors_factory) then { { - if (_liberated_sector in _x) exitWith {KP_liberation_production = KP_liberation_production - [_x];}; - } forEach KP_liberation_production; + if (_liberated_sector in _x) exitWith {KPLIB_production = KPLIB_production - [_x];}; + } forEach KPLIB_production; - private _sectorFacilities = (KP_liberation_production_markers select {_liberated_sector == (_x select 0)}) select 0; - KP_liberation_production pushBack [ + private _sectorFacilities = (KPLIB_production_markers select {_liberated_sector == (_x select 0)}) select 0; + KPLIB_production pushBack [ markerText _liberated_sector, _liberated_sector, 1, @@ -34,7 +34,7 @@ if (_liberated_sector in sectors_factory) then { _sectorFacilities select 2, _sectorFacilities select 3, 3, - KP_liberation_production_interval, + KPLIB_production_interval, 0, 0, 0 @@ -43,7 +43,7 @@ if (_liberated_sector in sectors_factory) then { [_liberated_sector] spawn F_cr_liberatedSector; -if ((random 100) <= KP_liberation_cr_wounded_chance || (count blufor_sectors) == 1) then { +if ((random 100) <= KPLIB_cr_wounded_chance || (count KPLIB_sectors_player) == 1) then { [_liberated_sector] spawn civrep_wounded_civs; }; @@ -58,14 +58,14 @@ sleep 1; sleep 45; -if (GRLIB_endgame == 0) then { +if (KPLIB_endgame == 0) then { if ( - !(_liberated_sector in sectors_tower) + !(_liberated_sector in KPLIB_sectors_tower) && { - (random (150 / (GRLIB_difficulty_modifier * GRLIB_csat_aggressivity))) < (combat_readiness - 15) - || _liberated_sector in sectors_bigtown + (random (150 / (KPLIB_param_difficulty * KPLIB_param_aggressivity))) < (KPLIB_enemyReadiness - 15) + || _liberated_sector in KPLIB_sectors_capital } - && {[] call KPLIB_fnc_getOpforCap < GRLIB_battlegroup_cap} + && {[] call KPLIB_fnc_getOpforCap < KPLIB_cap_battlegroup} ) then { [_liberated_sector, (random 100) < 45] spawn spawn_battlegroup; }; diff --git a/Missionframework/scripts/server/remotecall/start_secondary_remote_call.sqf b/Missionframework/scripts/server/remotecall/start_secondary_remote_call.sqf index 7d887489a..5d926c8b9 100644 --- a/Missionframework/scripts/server/remotecall/start_secondary_remote_call.sqf +++ b/Missionframework/scripts/server/remotecall/start_secondary_remote_call.sqf @@ -6,18 +6,18 @@ params [ if (_mission_index < 0) exitWith {false}; -if (isNil "GRLIB_secondary_starting") then { GRLIB_secondary_starting = false;}; -if (GRLIB_secondary_starting) exitWith {["Multiple calls to start secondary mission : shouldn't be possible, isn't allowed", "ERROR"] call KPLIB_fnc_log;}; +if (isNil "KPLIB_secondary_starting") then { KPLIB_secondary_starting = false;}; +if (KPLIB_secondary_starting) exitWith {["Multiple calls to start secondary mission : shouldn't be possible, isn't allowed", "ERROR"] call KPLIB_fnc_log;}; if (isNil "used_positions") then {used_positions = [];}; -GRLIB_secondary_starting = true; publicVariable "GRLIB_secondary_starting"; +KPLIB_secondary_starting = true; publicVariable "KPLIB_secondary_starting"; -resources_intel = resources_intel - ( GRLIB_secondary_missions_costs select _mission_index ); +resources_intel = resources_intel - ( KPLIB_secondary_missions_costs select _mission_index ); if (_mission_index == 0) then {[] spawn fob_hunting;}; if (_mission_index == 1) then {[] spawn convoy_hijack;}; if (_mission_index == 2) then {[] spawn search_and_rescue;}; -GRLIB_secondary_starting = false; publicVariable "GRLIB_secondary_starting"; +KPLIB_secondary_starting = false; publicVariable "KPLIB_secondary_starting"; true diff --git a/Missionframework/scripts/server/resources/manage_logistics.sqf b/Missionframework/scripts/server/resources/manage_logistics.sqf index c4f1465d5..6d2cb7fe8 100644 --- a/Missionframework/scripts/server/resources/manage_logistics.sqf +++ b/Missionframework/scripts/server/resources/manage_logistics.sqf @@ -1,19 +1,21 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {!isNil "KP_liberation_logistics"}; -waitUntil {save_is_loaded}; +scriptName "manage_logistics"; + +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {!isNil "KPLIB_logistics"}; +waitUntil {KPLIB_saveLoaded}; ["Logistic management started", "LOGISTIC"] call KPLIB_fnc_log; -KP_liberation_convoy_ambush_inProgress = false; -KP_liberation_convoy_ambush_check = 0; +KPLIB_convoy_ambush_inProgress = false; +KPLIB_convoy_ambush_check = 0; private _start = 0; -while {GRLIB_endgame == 0} do { +while {KPLIB_endgame == 0} do { - if (((count (allPlayers - entities "HeadlessClient_F")) > 0) && ((count KP_liberation_logistics) > 0)) then { + if (((count (allPlayers - entities "HeadlessClient_F")) > 0) && ((count KPLIB_logistics) > 0)) then { _start = diag_tickTime; - if (KP_liberation_logistic_debug > 0) then {[format ["Logistic interval started: %1", diag_tickTime], "LOGISTIC"] call KPLIB_fnc_log;}; + if (KPLIB_logistic_debug > 0) then {[format ["Logistic interval started: %1", diag_tickTime], "LOGISTIC"] call KPLIB_fnc_log;}; - private _tempLogistics = +KP_liberation_logistics; + private _tempLogistics = +KPLIB_logistics; { private _locPos = -1; @@ -25,7 +27,7 @@ while {GRLIB_endgame == 0} do { if ((_x select 8) > 1) then { switch (_x select 7) do {case 1: {_locPos = 2; _locRes = 4;}; case 3: {_locPos = 3; _locRes = 5;};}; switch (_x select 9) do {case 2: {_x set [9,0];}; case 3: {_x set [9,1];};}; - private _storage_areas = nearestObjects [(_x select _locPos), [KP_liberation_small_storage_building, KP_liberation_large_storage_building], 150]; + private _storage_areas = nearestObjects [(_x select _locPos), [KPLIB_b_smallStorage, KPLIB_b_largeStorage], 150]; if (((_x select 9) == 0) && !((_x select 6) isEqualTo [0,0,0])) then { @@ -35,11 +37,11 @@ while {GRLIB_endgame == 0} do { if (_toProcess > 3) then {_toProcess = 3;}; private _spaceSum = 0; { - if (typeOf _x == KP_liberation_large_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _spaceSum = _spaceSum + (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _spaceSum = _spaceSum + (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; } forEach _storage_areas; @@ -51,11 +53,11 @@ while {GRLIB_endgame == 0} do { while {_processed < _toProcess} do { { private _space = 0; - if (typeOf _x == KP_liberation_large_storage_building) then { - _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _space = (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _space = (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; if ((_space > 0) && ((((_tempLogistics select _currentIndex) select 6) select 0) > 0)) then { @@ -68,7 +70,7 @@ while {GRLIB_endgame == 0} do { (((_tempLogistics select _currentIndex) select 6) select 1), (((_tempLogistics select _currentIndex) select 6) select 2)] ]; - private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateSupply, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _processed = _processed + 1; _space = _space - 1; @@ -85,7 +87,7 @@ while {GRLIB_endgame == 0} do { (((_tempLogistics select _currentIndex) select 6) select 1) - _amount, (((_tempLogistics select _currentIndex) select 6) select 2)] ]; - private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateAmmo, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _processed = _processed + 1; _space = _space - 1; @@ -102,7 +104,7 @@ while {GRLIB_endgame == 0} do { (((_tempLogistics select _currentIndex) select 6) select 1), (((_tempLogistics select _currentIndex) select 6) select 2) - _amount] ]; - private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateFuel, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _processed = _processed + 1; _space = _space - 1; @@ -111,7 +113,7 @@ while {GRLIB_endgame == 0} do { } forEach _storage_areas; }; please_recalculate = true; - if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + if (KPLIB_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; } else { _x set [9,1]; }; @@ -127,9 +129,9 @@ while {GRLIB_endgame == 0} do { { { switch ((typeOf _x)) do { - case KP_liberation_supply_crate: {_supplyValue = _supplyValue + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_ammo_crate: {_ammoValue = _ammoValue + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_fuel_crate: {_fuelValue = _fuelValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KPLIB_b_crateSupply: {_supplyValue = _supplyValue + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateAmmo: {_ammoValue = _ammoValue + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateFuel: {_fuelValue = _fuelValue + (_x getVariable ["KPLIB_crate_value",0]);}; default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; }; } forEach (attachedObjects _x); @@ -206,14 +208,14 @@ while {GRLIB_endgame == 0} do { reverse _storedCrates; { - private _crateValue = _x getVariable ["KP_liberation_crate_value",0]; + private _crateValue = _x getVariable ["KPLIB_crate_value",0]; switch ((typeOf _x)) do { - case KP_liberation_supply_crate: { + case KPLIB_b_crateSupply: { if (_getSupply > 0) then { if (_crateValue > _getSupply) then { _crateValue = _crateValue - _getSupply; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _getSupply = 0; } else { detach _x; @@ -222,11 +224,11 @@ while {GRLIB_endgame == 0} do { }; }; }; - case KP_liberation_ammo_crate: { + case KPLIB_b_crateAmmo: { if (_getAmmo > 0) then { if (_crateValue > _getAmmo) then { _crateValue = _crateValue - _getAmmo; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _getAmmo = 0; } else { detach _x; @@ -235,11 +237,11 @@ while {GRLIB_endgame == 0} do { }; }; }; - case KP_liberation_fuel_crate: { + case KPLIB_b_crateFuel: { if (_getFuel > 0) then { if (_crateValue > _getFuel) then { _crateValue = _crateValue - _getFuel; - _x setVariable ["KP_liberation_crate_value", _crateValue, true]; + _x setVariable ["KPLIB_crate_value", _crateValue, true]; _getFuel = 0; } else { detach _x; @@ -267,7 +269,7 @@ while {GRLIB_endgame == 0} do { } forEach _storage_areas; - if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + if (KPLIB_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; }; } else { private _nextState = 0; @@ -284,26 +286,26 @@ while {GRLIB_endgame == 0} do { _x set [8,_time]; _x set [9,0]; - if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + if (KPLIB_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; }; }; case 2; case 4: { if ((_x select 8) > 1) then { - if (((_x select 8) <= ((ceil (((_x select 2) distance2D (_x select 3)) / 400)) - 3)) && ((_x select 8) >= 3) && !((_x select 6) isEqualTo [0,0,0]) && !KP_liberation_convoy_ambush_inProgress && (KP_liberation_civ_rep <= -25) && (((_x select 8) % 2) == 0)) then { + if (((_x select 8) <= ((ceil (((_x select 2) distance2D (_x select 3)) / 400)) - 3)) && ((_x select 8) >= 3) && !((_x select 6) isEqualTo [0,0,0]) && !KPLIB_convoy_ambush_inProgress && (KPLIB_civ_rep <= -25) && (((_x select 8) % 2) == 0)) then { private _dice = round (random 100); - private _chance = KP_liberation_convoy_ambush_chance; - if (chance > 0) then { + private _chance = KPLIB_convoy_ambush_chance; + if (_chance > 0) then { _chance = _chance + ([] call KPLIB_fnc_crGetMulti); }; - if (KP_liberation_asymmetric_debug > 0) then {[format ["Logistic convoy %1: ambush possible - current ETA: %2 - Dice: %3 - Chance: %4", (_x select 0), (_x select 8), _dice, _chance], "ASYMMETRIC"] call KPLIB_fnc_log;}; + if (KPLIB_asymmetric_debug > 0) then {[format ["Logistic convoy %1: ambush possible - current ETA: %2 - Dice: %3 - Chance: %4", (_x select 0), (_x select 8), _dice, _chance], "ASYMMETRIC"] call KPLIB_fnc_log;}; if (_dice <= _chance) then { private _convoy = +_x; sleep 0.1; [_convoy] spawn logistic_convoy_ambush; - waitUntil {sleep 0.1; KP_liberation_convoy_ambush_check != 0}; - if (KP_liberation_convoy_ambush_check == 2) then { + waitUntil {sleep 0.1; KPLIB_convoy_ambush_check != 0}; + if (KPLIB_convoy_ambush_check == 2) then { _x set [1,0]; _x set [2,[0,0,0]]; _x set [3,[0,0,0]]; @@ -314,7 +316,7 @@ while {GRLIB_endgame == 0} do { _x set [8,-1]; } else { _x set [8,((_x select 8) - 1)]; - KP_liberation_convoy_ambush_check = 0; + KPLIB_convoy_ambush_check = 0; }; } else { _x set [8,((_x select 8) - 1)]; @@ -323,7 +325,7 @@ while {GRLIB_endgame == 0} do { _x set [8,((_x select 8) - 1)]; }; - if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + if (KPLIB_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; } else { private _nextState = -1; @@ -346,7 +348,7 @@ while {GRLIB_endgame == 0} do { _x set [7,_nextState]; _x set [8,_time]; - if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + if (KPLIB_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; }; }; case 5; @@ -354,7 +356,7 @@ while {GRLIB_endgame == 0} do { if ((_x select 8) > 1) then { _locPos = switch (_x select 7) do {case 5: {2}; case 6: {3};}; _x set [9,0]; - private _storage_areas = nearestObjects [(_x select _locPos), [KP_liberation_small_storage_building, KP_liberation_large_storage_building], 150]; + private _storage_areas = nearestObjects [(_x select _locPos), [KPLIB_b_smallStorage, KPLIB_b_largeStorage], 150]; if ((count (_storage_areas)) == 0) exitWith {_x set [9,2];}; @@ -362,11 +364,11 @@ while {GRLIB_endgame == 0} do { if (_toProcess > 3) then {_toProcess = 3;}; private _spaceSum = 0; { - if (typeOf _x == KP_liberation_large_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _spaceSum = _spaceSum + (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _spaceSum = _spaceSum + (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _spaceSum = _spaceSum + (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; } forEach _storage_areas; @@ -378,11 +380,11 @@ while {GRLIB_endgame == 0} do { while {_processed < _toProcess} do { { private _space = 0; - if (typeOf _x == KP_liberation_large_storage_building) then { - _space = (count KP_liberation_large_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_largeStorage) then { + _space = (count KPLIB_large_storage_positions) - (count (attachedObjects _x)); }; - if (typeOf _x == KP_liberation_small_storage_building) then { - _space = (count KP_liberation_small_storage_positions) - (count (attachedObjects _x)); + if (typeOf _x == KPLIB_b_smallStorage) then { + _space = (count KPLIB_small_storage_positions) - (count (attachedObjects _x)); }; if ((_space > 0) && ((((_tempLogistics select _currentIndex) select 6) select 0) > 0)) then { @@ -395,7 +397,7 @@ while {GRLIB_endgame == 0} do { (((_tempLogistics select _currentIndex) select 6) select 1), (((_tempLogistics select _currentIndex) select 6) select 2)] ]; - private _crate = [KP_liberation_supply_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateSupply, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _processed = _processed + 1; _space = _space - 1; @@ -412,7 +414,7 @@ while {GRLIB_endgame == 0} do { (((_tempLogistics select _currentIndex) select 6) select 1) - _amount, (((_tempLogistics select _currentIndex) select 6) select 2)] ]; - private _crate = [KP_liberation_ammo_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateAmmo, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _processed = _processed + 1; _space = _space - 1; @@ -429,7 +431,7 @@ while {GRLIB_endgame == 0} do { (((_tempLogistics select _currentIndex) select 6) select 1), (((_tempLogistics select _currentIndex) select 6) select 2) - _amount] ]; - private _crate = [KP_liberation_fuel_crate, _amount, getPos _x] call KPLIB_fnc_createCrate; + private _crate = [KPLIB_b_crateFuel, _amount, getPos _x] call KPLIB_fnc_createCrate; [_crate, _x] call KPLIB_fnc_crateToStorage; _processed = _processed + 1; _space = _space - 1; @@ -439,7 +441,7 @@ while {GRLIB_endgame == 0} do { }; please_recalculate = true; - if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + if (KPLIB_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; } else { _x set [2,[0,0,0]]; _x set [3,[0,0,0]]; @@ -449,16 +451,16 @@ while {GRLIB_endgame == 0} do { _x set [7,0]; _x set [8,-1]; - if (KP_liberation_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; + if (KPLIB_logistic_debug > 0) then {[format ["Logistic Group Update: %1", _x], "LOGISTIC"] call KPLIB_fnc_log;}; }; }; default {}; }; } forEach _tempLogistics; - KP_liberation_logistics = +_tempLogistics; + KPLIB_logistics = +_tempLogistics; - if (KP_liberation_logistic_debug > 0) then {[format ["Logistic interval finished - Time needed: %1 seconds", diag_tickTime - _start], "LOGISTIC"] call KPLIB_fnc_log;}; + if (KPLIB_logistic_debug > 0) then {[format ["Logistic interval finished - Time needed: %1 seconds", diag_tickTime - _start], "LOGISTIC"] call KPLIB_fnc_log;}; }; uiSleep 60; }; diff --git a/Missionframework/scripts/server/resources/manage_resources.sqf b/Missionframework/scripts/server/resources/manage_resources.sqf index b4a83c6e2..a4a3aa9f8 100644 --- a/Missionframework/scripts/server/resources/manage_resources.sqf +++ b/Missionframework/scripts/server/resources/manage_resources.sqf @@ -1,17 +1,19 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {!isNil "KP_liberation_production"}; -waitUntil {save_is_loaded}; +scriptName "manage_resources"; + +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {!isNil "KPLIB_production"}; +waitUntil {KPLIB_saveLoaded}; sectors_recalculating = false; sectors_timer = false; ["Production management started", "PRODUCTION"] call KPLIB_fnc_log; private _start = 0; -while {GRLIB_endgame == 0} do { +while {KPLIB_endgame == 0} do { recalculate_sectors = false; - if (((count (allPlayers - entities "HeadlessClient_F")) > 0) && ((count KP_liberation_production) > 0)) then { + if (((count (allPlayers - entities "HeadlessClient_F")) > 0) && ((count KPLIB_production) > 0)) then { waitUntil {sleep 0.5; !sectors_recalculating}; sectors_recalculating = true; @@ -19,7 +21,7 @@ while {GRLIB_endgame == 0} do { if (sectors_timer) then {_time_update = true; sectors_timer = false;}; _start = diag_tickTime; - if (KP_liberation_production_debug > 0) then {[format ["Production interval started: %1 - _time_update: %2", diag_tickTime, _time_update], "PRODUCTION"] call KPLIB_fnc_log;}; + if (KPLIB_production_debug > 0) then {[format ["Production interval started: %1 - _time_update: %2", diag_tickTime, _time_update], "PRODUCTION"] call KPLIB_fnc_log;}; private _tempProduction = []; { @@ -29,8 +31,8 @@ while {GRLIB_endgame == 0} do { private _fuelValue = 0; private _time = _x select 8; - private _storage = nearestObjects [(markerPos (_x select 1)), [KP_liberation_small_storage_building], 100]; - _storage = _storage select {(_x getVariable ["KP_liberation_storage_type",-1]) == 1}; + private _storage = nearestObjects [(markerPos (_x select 1)), [KPLIB_b_smallStorage], 100]; + _storage = _storage select {(_x getVariable ["KPLIB_storage_type",-1]) == 1}; if ((count _storage) > 0) then { _storage = (_storage select 0); _storageArray = [(getPosATL _storage),(getDir _storage),(vectorUpVisual _storage)]; @@ -38,14 +40,14 @@ while {GRLIB_endgame == 0} do { if (_time_update) then { if ((_time - 1) < 1) then { - _time = KP_liberation_production_interval; + _time = KPLIB_production_interval; if (((count (attachedObjects _storage)) < 12) && !((_x select 7) == 3)) then { - private _crateType = KP_liberation_supply_crate; + private _crateType = KPLIB_b_crateSupply; switch (_x select 7) do { - case 1: {_crateType = KP_liberation_ammo_crate; stats_ammo_produced = stats_ammo_produced + 100;}; - case 2: {_crateType = KP_liberation_fuel_crate; stats_fuel_produced = stats_fuel_produced + 100;}; - default {_crateType = KP_liberation_supply_crate; stats_supplies_produced = stats_supplies_produced + 100;}; + case 1: {_crateType = KPLIB_b_crateAmmo; stats_ammo_produced = stats_ammo_produced + 100;}; + case 2: {_crateType = KPLIB_b_crateFuel; stats_fuel_produced = stats_fuel_produced + 100;}; + default {_crateType = KPLIB_b_crateSupply; stats_supplies_produced = stats_supplies_produced + 100;}; }; private _crate = [_crateType, 100, getPosATL _storage] call KPLIB_fnc_createCrate; @@ -58,9 +60,9 @@ while {GRLIB_endgame == 0} do { { switch ((typeOf _x)) do { - case KP_liberation_supply_crate: {_supplyValue = _supplyValue + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_ammo_crate: {_ammoValue = _ammoValue + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_fuel_crate: {_fuelValue = _fuelValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KPLIB_b_crateSupply: {_supplyValue = _supplyValue + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateAmmo: {_ammoValue = _ammoValue + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateFuel: {_fuelValue = _fuelValue + (_x getVariable ["KPLIB_crate_value",0]);}; default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; }; } forEach (attachedObjects _storage); @@ -80,14 +82,14 @@ while {GRLIB_endgame == 0} do { _ammoValue, _fuelValue ]; - if (KP_liberation_production_debug > 0) then {[format ["Production Update: %1", _tempProduction select _forEachIndex], "PRODUCTION"] call KPLIB_fnc_log;}; - } forEach KP_liberation_production; + if (KPLIB_production_debug > 0) then {[format ["Production Update: %1", _tempProduction select _forEachIndex], "PRODUCTION"] call KPLIB_fnc_log;}; + } forEach KPLIB_production; _tempProduction sort true; - KP_liberation_production = +_tempProduction; + KPLIB_production = +_tempProduction; sectors_recalculating = false; }; - if (KP_liberation_production_debug > 0) then {[format ["Production interval finished - Time needed: %1 seconds", diag_tickTime - _start], "PRODUCTION"] call KPLIB_fnc_log;}; + if (KPLIB_production_debug > 0) then {[format ["Production interval finished - Time needed: %1 seconds", diag_tickTime - _start], "PRODUCTION"] call KPLIB_fnc_log;}; waitUntil {sleep 1; recalculate_sectors}; }; diff --git a/Missionframework/scripts/server/resources/recalculate_resources.sqf b/Missionframework/scripts/server/resources/recalculate_resources.sqf index c7c212558..1b13f6dcf 100644 --- a/Missionframework/scripts/server/resources/recalculate_resources.sqf +++ b/Missionframework/scripts/server/resources/recalculate_resources.sqf @@ -1,13 +1,15 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {save_is_loaded}; +scriptName "recalculate_resources"; -KP_liberation_fob_resources = []; -KP_liberation_supplies_global = 0; -KP_liberation_ammo_global = 0; -KP_liberation_fuel_global = 0; -KP_liberation_heli_slots = 0; -KP_liberation_plane_slots = 0; -infantry_cap = 50 * GRLIB_resources_multiplier; +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {KPLIB_saveLoaded}; + +KPLIB_fob_resources = []; +KPLIB_supplies_global = 0; +KPLIB_ammo_global = 0; +KPLIB_fuel_global = 0; +KPLIB_heli_slots = 0; +KPLIB_plane_slots = 0; +infantry_cap = 50 * KPLIB_param_resourcesMulti; please_recalculate = true; @@ -23,16 +25,16 @@ while {true} do { private _local_fuel_global = 0; private _local_heli_slots = 0; private _local_plane_slots = 0; - private _local_infantry_cap = 50 * GRLIB_resources_multiplier; + private _local_infantry_cap = 50 * KPLIB_param_resourcesMulti; { - private _fob_buildings = _x nearobjects GRLIB_fob_range; - private _storage_areas = _fob_buildings select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0}; - private _heliSlots = {(typeOf _x) == KP_liberation_heli_slot_building;} count _fob_buildings; - private _planeSlots = {(typeOf _x) == KP_liberation_plane_slot_building;} count _fob_buildings; - private _hasAirBuilding = {(typeOf _x) == KP_liberation_air_vehicle_building;} count _fob_buildings; + private _fob_buildings = _x nearobjects KPLIB_range_fob; + private _storage_areas = _fob_buildings select {(_x getVariable ["KPLIB_storage_type",-1]) == 0}; + private _heliSlots = {(typeOf _x) == KPLIB_b_slotHeli;} count _fob_buildings; + private _planeSlots = {(typeOf _x) == KPLIB_b_slotPlane;} count _fob_buildings; + private _hasAirBuilding = {(typeOf _x) == KPLIB_b_airControl;} count _fob_buildings; if (_hasAirBuilding > 0) then {_hasAirBuilding = true;} else {_hasAirBuilding = false;}; - private _hasRecBuilding = {(typeOf _x) == KP_liberation_recycle_building;} count _fob_buildings; + private _hasRecBuilding = {(typeOf _x) == KPLIB_b_logiStation;} count _fob_buildings; if (_hasRecBuilding > 0) then {_hasRecBuilding = true;} else {_hasRecBuilding = false;}; private _supplyValue = 0; @@ -42,9 +44,9 @@ while {true} do { { { switch ((typeOf _x)) do { - case KP_liberation_supply_crate: {_supplyValue = _supplyValue + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_ammo_crate: {_ammoValue = _ammoValue + (_x getVariable ["KP_liberation_crate_value",0]);}; - case KP_liberation_fuel_crate: {_fuelValue = _fuelValue + (_x getVariable ["KP_liberation_crate_value",0]);}; + case KPLIB_b_crateSupply: {_supplyValue = _supplyValue + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateAmmo: {_ammoValue = _ammoValue + (_x getVariable ["KPLIB_crate_value",0]);}; + case KPLIB_b_crateFuel: {_fuelValue = _fuelValue + (_x getVariable ["KPLIB_crate_value",0]);}; default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;}; }; } forEach (attachedObjects _x); @@ -56,20 +58,20 @@ while {true} do { _local_fuel_global = _local_fuel_global + _fuelValue; _local_heli_slots = _local_heli_slots + _heliSlots; _local_plane_slots = _local_plane_slots + _planeSlots; - } forEach GRLIB_all_fobs; + } forEach KPLIB_sectors_fob; { - if ( _x in sectors_capture ) then { - _local_infantry_cap = _local_infantry_cap + (10 * GRLIB_resources_multiplier); + if ( _x in KPLIB_sectors_city ) then { + _local_infantry_cap = _local_infantry_cap + (10 * KPLIB_param_resourcesMulti); }; - } foreach blufor_sectors; + } foreach KPLIB_sectors_player; - KP_liberation_fob_resources = _local_fob_resources; - KP_liberation_supplies_global = _local_supplies_global; - KP_liberation_ammo_global = _local_ammo_global; - KP_liberation_fuel_global = _local_fuel_global; - KP_liberation_heli_slots = _local_heli_slots; - KP_liberation_plane_slots = _local_plane_slots; + KPLIB_fob_resources = _local_fob_resources; + KPLIB_supplies_global = _local_supplies_global; + KPLIB_ammo_global = _local_ammo_global; + KPLIB_fuel_global = _local_fuel_global; + KPLIB_heli_slots = _local_heli_slots; + KPLIB_plane_slots = _local_plane_slots; infantry_cap = _local_infantry_cap; }; diff --git a/Missionframework/scripts/server/resources/recalculate_timer.sqf b/Missionframework/scripts/server/resources/recalculate_timer.sqf index 05d49848a..26321ae38 100644 --- a/Missionframework/scripts/server/resources/recalculate_timer.sqf +++ b/Missionframework/scripts/server/resources/recalculate_timer.sqf @@ -1,5 +1,7 @@ -waitUntil { !isNil "save_is_loaded" }; -waitUntil {save_is_loaded}; +scriptName "recalculate_timer"; + +waitUntil { !isNil "KPLIB_saveLoaded" }; +waitUntil {KPLIB_saveLoaded}; while {true} do { sleep 3; diff --git a/Missionframework/scripts/server/resources/recalculate_timer_sector.sqf b/Missionframework/scripts/server/resources/recalculate_timer_sector.sqf index 9c56bd61f..7f3cddea7 100644 --- a/Missionframework/scripts/server/resources/recalculate_timer_sector.sqf +++ b/Missionframework/scripts/server/resources/recalculate_timer_sector.sqf @@ -1,5 +1,7 @@ -waitUntil {!isNil "save_is_loaded"}; -waitUntil {save_is_loaded}; +scriptName "recalculate_timer_sector"; + +waitUntil {!isNil "KPLIB_saveLoaded"}; +waitUntil {KPLIB_saveLoaded}; while {true} do { uiSleep 60; diff --git a/Missionframework/scripts/server/resources/unit_cap.sqf b/Missionframework/scripts/server/resources/unit_cap.sqf index e0b6494cb..47ce2b66c 100644 --- a/Missionframework/scripts/server/resources/unit_cap.sqf +++ b/Missionframework/scripts/server/resources/unit_cap.sqf @@ -1,18 +1,20 @@ +scriptName "unit_cap"; + unitcap = 0; -KP_liberation_heli_count = 0; -KP_liberation_plane_count = 0; +KPLIB_heli_count = 0; +KPLIB_plane_count = 0; while {true} do { private _local_unitcap = 0; private _local_heli_count = 0; private _local_plane_count = 0; { - if ((side group _x == GRLIB_side_friendly) && (alive _x) && ((_x distance startbase) > 250 || (isPlayer _x))) then { + if ((side group _x == KPLIB_side_player) && (alive _x) && ((_x distance startbase) > 250 || (isPlayer _x))) then { _local_unitcap = _local_unitcap + 1; }; } forEach allUnits; { - if ((toLower (typeOf _x)) in KPLIB_b_air_classes && !([typeOf _x] call KPLIB_fnc_isClassUAV) && alive _x && !(_x getVariable ["KP_liberation_preplaced", false])) then { + if ((toLower (typeOf _x)) in KPLIB_b_air_classes && !([typeOf _x] call KPLIB_fnc_isClassUAV) && alive _x && !(_x getVariable ["KPLIB_preplaced", false])) then { if (_x isKindOf "Helicopter") then { _local_heli_count = _local_heli_count + 1; }; @@ -22,7 +24,7 @@ while {true} do { }; } forEach vehicles; unitcap = _local_unitcap; - KP_liberation_heli_count = _local_heli_count; - KP_liberation_plane_count = _local_plane_count; + KPLIB_heli_count = _local_heli_count; + KPLIB_plane_count = _local_plane_count; sleep 1; }; diff --git a/Missionframework/scripts/server/secondary/convoy_hijack.sqf b/Missionframework/scripts/server/secondary/convoy_hijack.sqf index 43d557283..76c3cd873 100644 --- a/Missionframework/scripts/server/secondary/convoy_hijack.sqf +++ b/Missionframework/scripts/server/secondary/convoy_hijack.sqf @@ -1,5 +1,5 @@ private _convoy_destinations_markers = []; -private _load_box_fnc = compileFinal preprocessFileLineNumbers "scripts\client\ammoboxes\do_load_box.sqf"; +private _load_box_fnc = compile preprocessFileLineNumbers "scripts\client\ammoboxes\do_load_box.sqf"; while { count _convoy_destinations_markers < 3 } do { _convoy_destinations_markers pushback ([2000,999999,false] call KPLIB_fnc_getOpforSpawnPoint); }; @@ -13,32 +13,32 @@ private _convoy_destinations = []; private _spawnpos = _convoy_destinations select 0; [4, _spawnpos] remoteExec ["remote_call_intel"]; -private _scout_vehicle = [_spawnpos getPos [30, 0], opfor_mrap, true, false] call KPLIB_fnc_spawnVehicle; -private _escort_vehicle = [_spawnpos getPos [10, 0], selectRandom opfor_vehicles_low_intensity, true, false] call KPLIB_fnc_spawnVehicle; -private _transport_vehicle = [_spawnpos getPos [10, 180], opfor_ammobox_transport, true, false] call KPLIB_fnc_spawnVehicle; +private _scout_vehicle = [_spawnpos getPos [30, 0], KPLIB_o_mrap, true, false] call KPLIB_fnc_spawnVehicle; +private _escort_vehicle = [_spawnpos getPos [10, 0], selectRandom KPLIB_o_armyVehiclesLight, true, false] call KPLIB_fnc_spawnVehicle; +private _transport_vehicle = [_spawnpos getPos [10, 180], KPLIB_o_transportTruckAmmo, true, false] call KPLIB_fnc_spawnVehicle; private _boxes_amount = 0; { - if ( _x select 0 == opfor_ammobox_transport ) exitWith { _boxes_amount = (count _x) - 2 }; + if ( _x select 0 == KPLIB_o_transportTruckAmmo ) exitWith { _boxes_amount = (count _x) - 2 }; } foreach KPLIB_transportConfigs; if ( _boxes_amount == 0 ) exitWith {["Opfor ammobox truck classname doesn't allow for ammobox transport, correct your preset and/or transport config", "ERROR"] call KPLIB_fnc_log;}; -GRLIB_secondary_in_progress = 1; publicVariable "GRLIB_secondary_in_progress"; +KPLIB_secondary_in_progress = 1; publicVariable "KPLIB_secondary_in_progress"; private _boxes_loaded = 0; while { _boxes_loaded < _boxes_amount } do { _boxes_loaded = _boxes_loaded + 1; sleep 0.5; - private _next_box = [KP_liberation_ammo_crate, 100, _spawnpos getPos [15, 135]] call KPLIB_fnc_createCrate; + private _next_box = [KPLIB_b_crateAmmo, 100, _spawnpos getPos [15, 135]] call KPLIB_fnc_createCrate; sleep 0.5; [_next_box, 50] call _load_box_fnc; }; sleep 0.5; -private _troop_vehicle = [_spawnpos getPos [30, 180], opfor_transport_truck, true, true, false ] call KPLIB_fnc_spawnVehicle; +private _troop_vehicle = [_spawnpos getPos [30, 180], KPLIB_o_transportTruck, true, true, false ] call KPLIB_fnc_spawnVehicle; sleep 0.5; @@ -48,7 +48,7 @@ private _convoy_group = group driver _scout_vehicle; sleep 0.5; { - _x addEventHandler ["HandleDamage", { private [ "_damage" ]; if ( side (_this select 3) != GRLIB_side_friendly ) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; + _x addEventHandler ["HandleDamage", { private [ "_damage" ]; if ( side (_this select 3) != KPLIB_side_player ) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; } foreach [ _scout_vehicle, _escort_vehicle, _transport_vehicle, _troop_vehicle ]; _convoy_group setFormation "FILE"; @@ -75,7 +75,7 @@ _waypoint = _convoy_group addWaypoint [_convoy_destinations select 0, 0]; _waypoint setWaypointType "CYCLE"; _waypoint setWaypointCompletionRadius 50; -private _troops_group = createGroup [GRLIB_side_enemy, true]; +private _troops_group = createGroup [KPLIB_side_enemy, true]; { [_x, _spawnpos, _troops_group, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; } foreach ([] call KPLIB_fnc_getSquadComp); @@ -84,7 +84,7 @@ private _troops_group = createGroup [GRLIB_side_enemy, true]; private _convoy_marker = createMarkerLocal [ format [ "convoymarker%1", round time], getpos _transport_vehicle ]; _convoy_marker setMarkerText (localize "STR_SECONDARY_CSAT_CONVOY"); _convoy_marker setMarkerType "o_armor"; -_convoy_marker setMarkerColor GRLIB_color_enemy_bright; +_convoy_marker setMarkerColor KPLIB_color_enemyActive; private _convoy_marker_wp1 = createMarkerLocal [ format [ "convoymarkerwp1%1", round time], _convoy_destinations select 0]; private _convoy_marker_wp2 = createMarkerLocal [ format [ "convoymarkerwp2%1", round time], _convoy_destinations select 1]; @@ -93,7 +93,7 @@ private _convoy_marker_wp3 = createMarkerLocal [ format [ "convoymarkerwp3%1", r { _x setMarkerText (localize "STR_SECONDARY_CSAT_CONVOY_WP"); _x setMarkerType "o_armor"; - _x setMarkerColor GRLIB_color_enemy_bright; + _x setMarkerColor KPLIB_color_enemyActive; _x setMarkerSize [0.6, 0.6]; } foreach [_convoy_marker_wp1, _convoy_marker_wp2, _convoy_marker_wp3]; @@ -121,7 +121,7 @@ while { _mission_in_progress } do { _disembark_troops = true; if (alive (driver _troop_vehicle)) then { - private _troop_driver_group = createGroup [GRLIB_side_enemy, true]; + private _troop_driver_group = createGroup [KPLIB_side_enemy, true]; [ driver _troop_vehicle ] joinSilent _troop_driver_group; sleep 1; while {(count (waypoints _troop_driver_group)) != 0} do {deleteWaypoint ((waypoints _troop_driver_group) select 0);}; @@ -156,9 +156,9 @@ sleep 20; deleteMarker _convoy_marker; { deleteMarker _x } foreach [_convoy_marker_wp1, _convoy_marker_wp2, _convoy_marker_wp3 ]; -combat_readiness = round (combat_readiness * 0.85); +KPLIB_enemyReadiness = round (KPLIB_enemyReadiness * 0.85); stats_secondary_objectives = stats_secondary_objectives + 1; [5] remoteExec ["remote_call_intel"]; -GRLIB_secondary_in_progress = -1; publicVariable "GRLIB_secondary_in_progress"; +KPLIB_secondary_in_progress = -1; publicVariable "KPLIB_secondary_in_progress"; sleep 1; [] spawn KPLIB_fnc_doSave; diff --git a/Missionframework/scripts/server/secondary/fob_hunting.sqf b/Missionframework/scripts/server/secondary/fob_hunting.sqf index 63d1c6799..6e453a146 100644 --- a/Missionframework/scripts/server/secondary/fob_hunting.sqf +++ b/Missionframework/scripts/server/secondary/fob_hunting.sqf @@ -1,5 +1,5 @@ -_defenders_amount = (15 * (sqrt (GRLIB_unitcap))) min 15; +_defenders_amount = (15 * (sqrt (KPLIB_param_unitcap))) min 15; _spawn_marker = [2000,999999,false] call KPLIB_fnc_getOpforSpawnPoint; if (_spawn_marker == "") exitWith {["Could not find position for fob hunting mission", "ERROR"] call KPLIB_fnc_log;}; @@ -70,7 +70,7 @@ sleep 1; {_x setDamage 0; _x allowDamage true;} foreach (_base_objectives + _base_objects); -_grpdefenders = createGroup [GRLIB_side_enemy, true]; +_grpdefenders = createGroup [KPLIB_side_enemy, true]; _idxselected = []; while {(count _idxselected) < _defenders_amount && (count _idxselected) < (count _defenders_to_build)} do { @@ -91,12 +91,12 @@ while {(count _idxselected) < _defenders_amount && (count _idxselected) < (count [_nextDefender] spawn building_defence_ai; } forEach _idxselected; -private _sentryMax = ceil ((3 + (floor (random 4))) * (sqrt (GRLIB_unitcap))); +private _sentryMax = ceil ((3 + (floor (random 4))) * (sqrt (KPLIB_param_unitcap))); -_grpsentry = createGroup [GRLIB_side_enemy, true]; +_grpsentry = createGroup [KPLIB_side_enemy, true]; _base_sentry_pos = [(_base_position select 0) + ((_base_corners select 0) select 0), (_base_position select 1) + ((_base_corners select 0) select 1), 0]; for [{_idx=0}, {_idx < _sentryMax}, {_idx=_idx+1}] do { - [opfor_sentry, _base_sentry_pos, _grpsentry, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; + [KPLIB_o_sentry, _base_sentry_pos, _grpsentry, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; }; while {(count (waypoints _grpsentry)) != 0} do {deleteWaypoint ((waypoints _grpsentry) select 0);}; @@ -119,7 +119,7 @@ secondary_objective_position_marker = [(((secondary_objective_position select 0) publicVariable "secondary_objective_position_marker"; sleep 1; -GRLIB_secondary_in_progress = 0; publicVariable "GRLIB_secondary_in_progress"; +KPLIB_secondary_in_progress = 0; publicVariable "KPLIB_secondary_in_progress"; [2] remoteExec ["remote_call_intel"]; waitUntil { @@ -127,7 +127,7 @@ waitUntil { (_base_objectives select {alive _x}) isEqualTo [] }; -combat_readiness = round (combat_readiness * GRLIB_secondary_objective_impact); +KPLIB_enemyReadiness = round (KPLIB_enemyReadiness * (1 - KPLIB_secondary_objective_impact)); stats_secondary_objectives = stats_secondary_objectives + 1; sleep 1; [] spawn KPLIB_fnc_doSave; @@ -135,4 +135,4 @@ sleep 3; [3] remoteExec ["remote_call_intel"]; -GRLIB_secondary_in_progress = -1; publicVariable "GRLIB_secondary_in_progress"; +KPLIB_secondary_in_progress = -1; publicVariable "KPLIB_secondary_in_progress"; diff --git a/Missionframework/scripts/server/secondary/search_and_rescue.sqf b/Missionframework/scripts/server/secondary/search_and_rescue.sqf index 3863f302a..4f31ca022 100644 --- a/Missionframework/scripts/server/secondary/search_and_rescue.sqf +++ b/Missionframework/scripts/server/secondary/search_and_rescue.sqf @@ -15,13 +15,13 @@ private _helofire = KPLIB_sarFire createVehicle (getpos _helowreck); _helofire setpos (getpos _helowreck); _helofire setpos (getpos _helowreck); -private _pilotsGrp = createGroup [GRLIB_side_enemy, true]; +private _pilotsGrp = createGroup [KPLIB_side_enemy, true]; private _pilotsPos = (getpos _helowreck) getPos [25, random 360]; -[pilot_classname, _pilotsPos, _pilotsGrp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; +[KPLIB_b_heliPilotUnit, _pilotsPos, _pilotsGrp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; sleep 0.2; -[pilot_classname, _pilotsPos getPos [1, random 360], _pilotsGrp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; +[KPLIB_b_heliPilotUnit, _pilotsPos getPos [1, random 360], _pilotsGrp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; sleep 2; private _pilotUnits = units _pilotsGrp; @@ -31,7 +31,7 @@ private _pilotUnits = units _pilotsGrp; sleep 0.5 } foreach (_pilotUnits); -private _grppatrol = createGroup [GRLIB_side_enemy, true]; +private _grppatrol = createGroup [KPLIB_side_enemy, true]; private _patrolcorners = [ [ (getpos _helowreck select 0) - 40, (getpos _helowreck select 1) - 40, 0 ], [ (getpos _helowreck select 0) + 40, (getpos _helowreck select 1) - 40, 0 ], @@ -57,32 +57,38 @@ _waypoint = _grppatrol addWaypoint [(_patrolcorners select 0), 0]; _waypoint setWaypointType "CYCLE"; {_x doFollow (leader _grppatrol)} foreach units _grppatrol; -private _grpsentry = createGroup [GRLIB_side_enemy, true]; +private _grpsentry = createGroup [KPLIB_side_enemy, true]; private _nbsentry = 2 + (floor (random 3)); for [ {_idx=0},{_idx < _nbsentry},{_idx=_idx+1} ] do { - [opfor_sentry, _pilotsPos getPos [1, random 360], _grpsentry, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; + [KPLIB_o_sentry, _pilotsPos getPos [1, random 360], _grpsentry, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; }; (leader _grpsentry) setDir (random 360); -(opfor_transport_truck createVehicle ((getpos _helowreck) getPos [25, random 360])) setDir random 360; +(KPLIB_o_transportTruck createVehicle ((getpos _helowreck) getPos [25, random 360])) setDir random 360; -private _vehicle_pool = opfor_vehicles; -if ( combat_readiness < 50 ) then { - _vehicle_pool = opfor_vehicles_low_intensity; +private _vehicle_pool = KPLIB_o_armyVehicles; +if ( KPLIB_enemyReadiness < 50 ) then { + _vehicle_pool = KPLIB_o_armyVehiclesLight; }; private _vehtospawn = []; private _spawnchances = [75,50,15]; {if (random 100 < _x) then {_vehtospawn pushBack (selectRandom _vehicle_pool);};} foreach _spawnchances; -{([(getpos _helowreck) getPos [30 + (random 30), random 360], _x, true] call KPLIB_fnc_spawnVehicle) addMPEventHandler ['MPKilled', {_this spawn kill_manager}]; } foreach _vehtospawn; +{ + private _vehicle = [(getpos _helowreck) getPos [30 + (random 30), random 360], _x, true] call KPLIB_fnc_spawnVehicle; + _vehicle addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; + }]; +} foreach _vehtospawn; secondary_objective_position = getpos _helowreck; secondary_objective_position_marker = secondary_objective_position getPos [800, random 360]; publicVariable "secondary_objective_position_marker"; sleep 1; -GRLIB_secondary_in_progress = 2; publicVariable "GRLIB_secondary_in_progress"; +KPLIB_secondary_in_progress = 2; publicVariable "KPLIB_secondary_in_progress"; [6] remoteExec ["remote_call_intel"]; waitUntil { @@ -97,7 +103,7 @@ if ( _alive_crew_count == 0 ) then { [7] remoteExec ["remote_call_intel"]; } else { [8] remoteExec ["remote_call_intel"]; - private _grp = createGroup [GRLIB_side_friendly, true]; + private _grp = createGroup [KPLIB_side_player, true]; { [_x ] joinSilent _grp; } foreach _pilotUnits; while {(count (waypoints _grp)) != 0} do {deleteWaypoint ((waypoints _grp) select 0);}; {_x doFollow (leader _grp)} foreach units _grp; @@ -107,6 +113,6 @@ if ( _alive_crew_count == 0 ) then { resources_intel = resources_intel + (10 * _alive_crew_count); stats_secondary_objectives = stats_secondary_objectives + 1; -GRLIB_secondary_in_progress = -1; publicVariable "GRLIB_secondary_in_progress"; +KPLIB_secondary_in_progress = -1; publicVariable "KPLIB_secondary_in_progress"; sleep 1; doSaveTrigger = true; diff --git a/Missionframework/scripts/server/sector/attack_in_progress_fob.sqf b/Missionframework/scripts/server/sector/attack_in_progress_fob.sqf index 847ae9c1d..72bc4f80a 100644 --- a/Missionframework/scripts/server/sector/attack_in_progress_fob.sqf +++ b/Missionframework/scripts/server/sector/attack_in_progress_fob.sqf @@ -4,13 +4,13 @@ private [ "_attacktime", "_ownership", "_grp" ]; sleep 5; _ownership = [ _thispos ] call KPLIB_fnc_getSectorOwnership; -if ( _ownership != GRLIB_side_enemy ) exitWith {}; +if ( _ownership != KPLIB_side_enemy ) exitWith {}; -if ( GRLIB_blufor_defenders ) then { - _grp = creategroup [GRLIB_side_friendly, true]; +if ( KPLIB_param_bluforDefenders ) then { + _grp = creategroup [KPLIB_side_player, true]; { [_x, _thispos, _grp] call KPLIB_fnc_createManagedUnit; - } foreach blufor_squad_inf; + } foreach KPLIB_b_squadInf; sleep 3; _grp setBehaviour "COMBAT"; }; @@ -21,8 +21,8 @@ KPLIB_sectorsUnderAttack pushBack _thispos; publicVariable "KPLIB_sectorsUnderAttack"; _ownership = [ _thispos ] call KPLIB_fnc_getSectorOwnership; -if ( _ownership == GRLIB_side_friendly ) exitWith { - if ( GRLIB_blufor_defenders ) then { +if ( _ownership == KPLIB_side_player ) exitWith { + if ( KPLIB_param_bluforDefenders ) then { { if ( alive _x ) then { deleteVehicle _x }; } foreach units _grp; @@ -30,9 +30,9 @@ if ( _ownership == GRLIB_side_friendly ) exitWith { }; [_thispos, 1] remoteExec ["remote_call_fob"]; -_attacktime = GRLIB_vulnerability_timer; +_attacktime = KPLIB_vulnerability_timer; -while { _attacktime > 0 && ( _ownership == GRLIB_side_enemy || _ownership == GRLIB_side_resistance ) } do { +while { _attacktime > 0 && ( _ownership == KPLIB_side_enemy || _ownership == KPLIB_side_resistance ) } do { _ownership = [ _thispos ] call KPLIB_fnc_getSectorOwnership; _attacktime = _attacktime - 1; sleep 1; @@ -40,22 +40,22 @@ while { _attacktime > 0 && ( _ownership == GRLIB_side_enemy || _ownership == GRL waitUntil { sleep 1; - [ _thispos ] call KPLIB_fnc_getSectorOwnership != GRLIB_side_resistance; + [ _thispos ] call KPLIB_fnc_getSectorOwnership != KPLIB_side_resistance; }; -if ( GRLIB_endgame == 0 ) then { - if ( _attacktime <= 1 && ( [ _thispos ] call KPLIB_fnc_getSectorOwnership == GRLIB_side_enemy ) ) then { +if ( KPLIB_endgame == 0 ) then { + if ( _attacktime <= 1 && ( [ _thispos ] call KPLIB_fnc_getSectorOwnership == KPLIB_side_enemy ) ) then { [_thispos, 2] remoteExec ["remote_call_fob"]; sleep 3; - GRLIB_all_fobs = GRLIB_all_fobs - [_thispos]; - publicVariable "GRLIB_all_fobs"; - reset_battlegroups_ai = true; + KPLIB_sectors_fob = KPLIB_sectors_fob - [_thispos]; + publicVariable "KPLIB_sectors_fob"; + ["KPLIB_ResetBattleGroups"] call CBA_fnc_serverEvent; [_thispos] call KPLIB_fnc_destroyFob; [] spawn KPLIB_fnc_doSave; stats_fobs_lost = stats_fobs_lost + 1; } else { [_thispos, 3] remoteExec ["remote_call_fob"]; - {[_x] spawn prisonner_ai;} foreach ((_thispos nearEntities ["Man", GRLIB_capture_size * 0.8]) select {side group _x == GRLIB_side_enemy}); + {[_x] spawn prisonner_ai;} foreach ((_thispos nearEntities ["Man", KPLIB_range_sectorCapture * 0.8]) select {side group _x == KPLIB_side_enemy}); }; }; @@ -64,7 +64,7 @@ publicVariable "KPLIB_sectorsUnderAttack"; sleep 60; -if ( GRLIB_blufor_defenders ) then { +if ( KPLIB_param_bluforDefenders ) then { { if ( alive _x ) then { deleteVehicle _x }; } foreach units _grp; diff --git a/Missionframework/scripts/server/sector/attack_in_progress_sector.sqf b/Missionframework/scripts/server/sector/attack_in_progress_sector.sqf index 4fe522eab..f10d2b254 100644 --- a/Missionframework/scripts/server/sector/attack_in_progress_sector.sqf +++ b/Missionframework/scripts/server/sector/attack_in_progress_sector.sqf @@ -4,15 +4,15 @@ private [ "_attacktime", "_ownership", "_grp", "_squad_type" ]; sleep 5; _ownership = [ markerpos _sector ] call KPLIB_fnc_getSectorOwnership; -if ( _ownership != GRLIB_side_enemy ) exitWith {}; +if ( _ownership != KPLIB_side_enemy ) exitWith {}; -_squad_type = blufor_squad_inf_light; -if ( _sector in sectors_military ) then { - _squad_type = blufor_squad_inf; +_squad_type = KPLIB_b_squadLight; +if ( _sector in KPLIB_sectors_military ) then { + _squad_type = KPLIB_b_squadInf; }; -if ( GRLIB_blufor_defenders ) then { - _grp = creategroup [GRLIB_side_friendly, true]; +if ( KPLIB_param_bluforDefenders ) then { + _grp = creategroup [KPLIB_side_player, true]; { [_x, markerPos _sector, _grp] call KPLIB_fnc_createManagedUnit; } foreach _squad_type; @@ -23,8 +23,8 @@ if ( GRLIB_blufor_defenders ) then { sleep 60; _ownership = [ markerpos _sector ] call KPLIB_fnc_getSectorOwnership; -if ( _ownership == GRLIB_side_friendly ) exitWith { - if ( GRLIB_blufor_defenders ) then { +if ( _ownership == KPLIB_side_player ) exitWith { + if ( KPLIB_param_bluforDefenders ) then { { if ( alive _x ) then { deleteVehicle _x }; } foreach units _grp; @@ -32,9 +32,9 @@ if ( _ownership == GRLIB_side_friendly ) exitWith { }; [_sector, 1] remoteExec ["remote_call_sector"]; -_attacktime = GRLIB_vulnerability_timer; +_attacktime = KPLIB_vulnerability_timer; -while { _attacktime > 0 && ( _ownership == GRLIB_side_enemy || _ownership == GRLIB_side_resistance ) } do { +while { _attacktime > 0 && ( _ownership == KPLIB_side_enemy || _ownership == KPLIB_side_resistance ) } do { _ownership = [markerpos _sector] call KPLIB_fnc_getSectorOwnership; _attacktime = _attacktime - 1; sleep 1; @@ -42,15 +42,15 @@ while { _attacktime > 0 && ( _ownership == GRLIB_side_enemy || _ownership == GRL waitUntil { sleep 1; - [markerpos _sector] call KPLIB_fnc_getSectorOwnership != GRLIB_side_resistance; + [markerpos _sector] call KPLIB_fnc_getSectorOwnership != KPLIB_side_resistance; }; -if ( GRLIB_endgame == 0 ) then { - if ( _attacktime <= 1 && ( [markerpos _sector] call KPLIB_fnc_getSectorOwnership == GRLIB_side_enemy ) ) then { - blufor_sectors = blufor_sectors - [ _sector ]; - publicVariable "blufor_sectors"; +if ( KPLIB_endgame == 0 ) then { + if ( _attacktime <= 1 && ( [markerpos _sector] call KPLIB_fnc_getSectorOwnership == KPLIB_side_enemy ) ) then { + KPLIB_sectors_player = KPLIB_sectors_player - [ _sector ]; + publicVariable "KPLIB_sectors_player"; [_sector, 2] remoteExec ["remote_call_sector"]; - reset_battlegroups_ai = true; + ["KPLIB_ResetBattleGroups"] call CBA_fnc_serverEvent; [] spawn KPLIB_fnc_doSave; stats_sectors_lost = stats_sectors_lost + 1; { @@ -59,22 +59,22 @@ if ( GRLIB_endgame == 0 ) then { { detach _x; deleteVehicle _x; - } forEach (attachedObjects ((nearestObjects [((_x select 3) select 0), [KP_liberation_small_storage_building], 10]) select 0)); + } forEach (attachedObjects ((nearestObjects [((_x select 3) select 0), [KPLIB_b_smallStorage], 10]) select 0)); - deleteVehicle ((nearestObjects [((_x select 3) select 0), [KP_liberation_small_storage_building], 10]) select 0); + deleteVehicle ((nearestObjects [((_x select 3) select 0), [KPLIB_b_smallStorage], 10]) select 0); }; - KP_liberation_production = KP_liberation_production - [_x]; + KPLIB_production = KPLIB_production - [_x]; }; - } forEach KP_liberation_production; + } forEach KPLIB_production; } else { [_sector, 3] remoteExec ["remote_call_sector"]; - {[_x] spawn prisonner_ai;} foreach (((markerpos _sector) nearEntities ["Man", GRLIB_capture_size * 0.8]) select {side group _x == GRLIB_side_enemy}); + {[_x] spawn prisonner_ai;} foreach (((markerpos _sector) nearEntities ["Man", KPLIB_range_sectorCapture * 0.8]) select {side group _x == KPLIB_side_enemy}); }; }; sleep 60; -if ( GRLIB_blufor_defenders ) then { +if ( KPLIB_param_bluforDefenders ) then { { if ( alive _x ) then { deleteVehicle _x }; } foreach units _grp; diff --git a/Missionframework/scripts/server/sector/fn_destroyFob.sqf b/Missionframework/scripts/server/sector/fn_destroyFob.sqf index 4d6d212c6..8438751a5 100644 --- a/Missionframework/scripts/server/sector/fn_destroyFob.sqf +++ b/Missionframework/scripts/server/sector/fn_destroyFob.sqf @@ -2,7 +2,7 @@ File: fn_destroyFob.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-28 - Last Update: 2020-04-29 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -20,8 +20,8 @@ params [ ["_fobPos", [], [[]]] ]; -private _buildings = [toLower FOB_typename]; -_buildings append KPLIB_b_buildings_classes; +private _buildings = [toLower KPLIB_b_fobBuilding]; +_buildings append KPLIB_b_deco_classes; { if ((toLower (typeOf _x)) in _buildings) then { @@ -30,9 +30,9 @@ _buildings append KPLIB_b_buildings_classes; _this setDamage 1; }; }; -} forEach ((_fobPos nearObjects (GRLIB_fob_range * 1.2)) select {getObjectType _x >= 8}); +} forEach ((_fobPos nearObjects (KPLIB_range_fob * 1.2)) select {getObjectType _x >= 8}); -KP_liberation_clearances deleteAt (KP_liberation_clearances findIf {(_x select 0) isEqualTo _fobPos}); -publicVariable "KP_liberation_clearances"; +KPLIB_clearances deleteAt (KPLIB_clearances findIf {(_x select 0) isEqualTo _fobPos}); +publicVariable "KPLIB_clearances"; true diff --git a/Missionframework/scripts/server/sector/fn_sectorMonitor.fsm b/Missionframework/scripts/server/sector/fn_sectorMonitor.fsm index 6c7ab1fd7..daec4c020 100644 --- a/Missionframework/scripts/server/sector/fn_sectorMonitor.fsm +++ b/Missionframework/scripts/server/sector/fn_sectorMonitor.fsm @@ -52,7 +52,7 @@ link23[] = {20,21}; link24[] = {21,15}; link25[] = {22,23}; globals[] = {0.000000,0,0,0,0,640,480,1,27,6316128,1,-462.464111,712.458435,919.987671,76.941620,1232,884,1}; -window[] = {2,-1,-1,-1,-1,863,104,1544,104,3,1250}; +window[] = {2,-1,-1,-1,-1,915,156,1596,156,3,1250}; *//*%FSM*/ class FSM { @@ -88,7 +88,7 @@ class FSM priority = 0.000000; to="Init"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!isNil ""save_is_loaded"" && {save_is_loaded}"/*%FSM*/; + condition=/*%FSM*/"!isNil ""KPLIB_saveLoaded"" && {KPLIB_saveLoaded}"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -146,8 +146,8 @@ class FSM { name = "Start_new_monitoring"; itemno = 6; - init = /*%FSM*/"_allSectors = sectors_allSectors - blufor_sectors;" \n - "_allSectors = _allSectors - active_sectors;"/*%FSM*/; + init = /*%FSM*/"_allSectors = KPLIB_sectors_all - KPLIB_sectors_player;" \n + "_allSectors = _allSectors - KPLIB_sectors_active;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { @@ -182,7 +182,7 @@ class FSM to="Get_adjusted_sector"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"_opforCount = [] call KPLIB_fnc_getOpforCap;" \n - "_opforCount < GRLIB_sector_cap"/*%FSM*/; + "_opforCount < KPLIB_cap_enemySide"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -205,7 +205,7 @@ class FSM priority = 1.000000; to="Activate_sector"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"([markerPos _sector, _range, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) > 0"/*%FSM*/; + condition=/*%FSM*/"([markerPos _sector, _range, KPLIB_side_player] call KPLIB_fnc_getUnitsCount) > 0"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -239,7 +239,7 @@ class FSM priority = 2.000000; to="Exit_1"; precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"GRLIB_endgame > 0"/*%FSM*/; + condition=/*%FSM*/"KPLIB_endgame > 0"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ @@ -284,12 +284,12 @@ class FSM "};" \n "" \n "// Spawn resource crates" \n - "if (_sector in sectors_factory || _sector in sectors_capture) then {" \n + "if (_sector in KPLIB_sectors_factory || _sector in KPLIB_sectors_city) then {" \n " [_sector] call KPLIB_fnc_spawnSectorCrates;" \n "};" \n "" \n "// Spawn intel items" \n - "if (_sector in sectors_military) then {" \n + "if (_sector in KPLIB_sectors_military) then {" \n " [_sector] call KPLIB_fnc_spawnSectorIntel;" \n "};"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; @@ -318,10 +318,10 @@ class FSM " [" \n " format [" \n " ""Active sectors: %1""," \n - " if (active_sectors isEqualTo []) then {" \n + " if (KPLIB_sectors_active isEqualTo []) then {" \n " ""None""" \n " } else {" \n - " active_sectors apply {markerText _x} joinString "", """ \n + " KPLIB_sectors_active apply {markerText _x} joinString "", """ \n " }" \n " ]," \n " ""SECTORMONITOR""" \n diff --git a/Missionframework/scripts/server/sector/fn_spawnSectorCrates.sqf b/Missionframework/scripts/server/sector/fn_spawnSectorCrates.sqf index 67cb3ae10..776958799 100644 --- a/Missionframework/scripts/server/sector/fn_spawnSectorCrates.sqf +++ b/Missionframework/scripts/server/sector/fn_spawnSectorCrates.sqf @@ -2,7 +2,7 @@ File: fn_spawnSectorCrates.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-28 - Last Update: 2020-05-07 + Last Update: 2020-05-25 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -27,14 +27,14 @@ if (isNil "KPLIB_sectorCratesSpawned") then {KPLIB_sectorCratesSpawned = [];}; if !(_sector in KPLIB_sectorCratesSpawned) then { KPLIB_sectorCratesSpawned pushBack _sector; - private _amount = (ceil (random 3)) * GRLIB_resources_multiplier; + private _amount = (ceil (random 3)) * KPLIB_param_resourcesMulti; private _spawnPos = []; private _j = 0; for "_i" from 1 to _amount do { while {_spawnPos isEqualTo []} do { _j = _j + 1; - _spawnPos = ((markerPos _sector) getPos [random 50, random 360]) findEmptyPosition [10, 40, KP_liberation_ammo_crate]; + _spawnPos = ((markerPos _sector) getPos [random 50, random 360]) findEmptyPosition [10, 40, KPLIB_b_crateAmmo]; if (_j isEqualTo 10) exitWith {}; }; if !(_spawnPos isEqualTo []) then { diff --git a/Missionframework/scripts/server/sector/ied_manager.sqf b/Missionframework/scripts/server/sector/ied_manager.sqf index fdf5e67a6..2a60055f5 100644 --- a/Missionframework/scripts/server/sector/ied_manager.sqf +++ b/Missionframework/scripts/server/sector/ied_manager.sqf @@ -2,7 +2,7 @@ params ["_sector", "_radius", "_number"]; if (_number <= 0) exitWith {}; -if (KP_liberation_asymmetric_debug > 0) then {[format ["ied_manager.sqf for %1 spawned on: %2", markerText _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["ied_manager.sqf for %1 spawned on: %2", markerText _sector, debug_source], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; _number = round _number; @@ -22,7 +22,7 @@ private _roadobj = [(markerPos _sector) getPos [random _radius, random 360], _ra private _goes_boom = false; private _ied_marker = ""; -if (KP_liberation_asymmetric_debug > 0) then {[format ["ied_manager.sqf -> spawning IED %1 at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if (KPLIB_asymmetric_debug > 0) then {[format ["ied_manager.sqf -> spawning IED %1 at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; if (_number > 0) then { [_sector, _radius, _number - 1] spawn ied_manager; @@ -34,11 +34,11 @@ if (!(isnull _roadobj)) then { _ied_obj = createMine [_ied_type, _roadpos getPos [_spread, random 360], [], 0]; _ied_obj setdir (random 360); - if (KP_liberation_asymmetric_debug > 0) then {[format ["ied_manager.sqf -> IED %1 spawned at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_asymmetric_debug > 0) then {[format ["ied_manager.sqf -> IED %1 spawned at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; - while {_sector in active_sectors && mineActive _ied_obj && !_goes_boom} do { - _nearinfantry = ((getpos _ied_obj) nearEntities ["Man", _activation_radius_infantry]) select {side _x == GRLIB_side_friendly}; - _nearvehicles = ((getpos _ied_obj) nearEntities [["Car", "Tank", "Air"], _activation_radius_vehicles]) select {side _x == GRLIB_side_friendly}; + while {_sector in KPLIB_sectors_active && mineActive _ied_obj && !_goes_boom} do { + _nearinfantry = ((getpos _ied_obj) nearEntities ["Man", _activation_radius_infantry]) select {side _x == KPLIB_side_player}; + _nearvehicles = ((getpos _ied_obj) nearEntities [["Car", "Tank", "Air"], _activation_radius_vehicles]) select {side _x == KPLIB_side_player}; if (count _nearinfantry >= _infantry_trigger || count _nearvehicles >= _vehicle_trigger) then { if (_ultra_strong) then { "Bomb_04_F" createVehicle (getpos _ied_obj); @@ -52,10 +52,10 @@ if (!(isnull _roadobj)) then { sleep 1; }; } else { - if (KP_liberation_asymmetric_debug > 0) then {[format ["ied_manager.sqf -> _roadobj is Null for IED %1 at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_asymmetric_debug > 0) then {[format ["ied_manager.sqf -> _roadobj is Null for IED %1 at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; }; -if ((KP_liberation_asymmetric_debug > 0) && !(isNull _roadobj)) then {[format ["ied_manager.sqf -> exited IED %1 loop at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; +if ((KPLIB_asymmetric_debug > 0) && !(isNull _roadobj)) then {[format ["ied_manager.sqf -> exited IED %1 loop at %2", _number, markerText _sector], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; sleep 1800; diff --git a/Missionframework/scripts/server/sector/lose_sectors.sqf b/Missionframework/scripts/server/sector/lose_sectors.sqf index 58af61adc..eea53637c 100644 --- a/Missionframework/scripts/server/sector/lose_sectors.sqf +++ b/Missionframework/scripts/server/sector/lose_sectors.sqf @@ -1,27 +1,29 @@ -waitUntil { !isNil "GRLIB_all_fobs" }; -waitUntil { !isNil "blufor_sectors" }; +scriptName "lose_sectors"; + +waitUntil { !isNil "KPLIB_sectors_fob" }; +waitUntil { !isNil "KPLIB_sectors_player" }; sleep 5; attack_in_progress = false; -while { GRLIB_endgame == 0 } do { +while { KPLIB_endgame == 0 } do { { _ownership = [ markerpos _x ] call KPLIB_fnc_getSectorOwnership; - if ( _ownership == GRLIB_side_enemy ) then { + if ( _ownership == KPLIB_side_enemy ) then { [ _x ] call attack_in_progress_sector; }; sleep 0.5; - } foreach blufor_sectors; + } foreach KPLIB_sectors_player; { _ownership = [ _x ] call KPLIB_fnc_getSectorOwnership; - if ( _ownership == GRLIB_side_enemy ) then { + if ( _ownership == KPLIB_side_enemy ) then { [ _x ] call attack_in_progress_fob; }; sleep 0.5; - } foreach GRLIB_all_fobs; + } foreach KPLIB_sectors_fob; sleep 1; diff --git a/Missionframework/scripts/server/sector/manage_one_sector.sqf b/Missionframework/scripts/server/sector/manage_one_sector.sqf index 38a8aaef0..0d7e84829 100644 --- a/Missionframework/scripts/server/sector/manage_one_sector.sqf +++ b/Missionframework/scripts/server/sector/manage_one_sector.sqf @@ -1,3 +1,4 @@ +scriptName "manage_one_sector"; // base amount of sector lifetime tickets // if there are no enemies one ticket is removed every SECTOR_TICK_TIME seconds // 12 * 5 = 60s by default @@ -8,7 +9,7 @@ params ["_sector"]; -waitUntil {!isNil "combat_readiness"}; +waitUntil {!isNil "KPLIB_enemyReadiness"}; [format ["Sector %1 (%2) activated - Managed on: %3", (markerText _sector), _sector, debug_source], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2]; @@ -18,7 +19,7 @@ private _spawncivs = false; private _building_ai_max = 0; private _infsquad = "army"; private _building_range = 50; -private _local_capture_size = GRLIB_capture_size; +private _local_capture_size = KPLIB_range_sectorCapture; private _iedcount = 0; private _vehtospawn = []; private _managed_units = []; @@ -28,40 +29,40 @@ private _squad3 = []; private _squad4 = []; private _minimum_building_positions = 5; private _sector_despawn_tickets = BASE_TICKETS; -private _maximum_additional_tickets = (KP_liberation_delayDespawnMax * 60 / SECTOR_TICK_TIME); +private _maximum_additional_tickets = (KPLIB_param_maxDespawnDelay * 60 / SECTOR_TICK_TIME); private _popfactor = 1; private _guerilla = false; -if (GRLIB_unitcap < 1) then {_popfactor = GRLIB_unitcap;}; +if (KPLIB_param_unitcap < 1) then {_popfactor = KPLIB_param_unitcap;}; -if (_sector in active_sectors) exitWith {}; -active_sectors pushback _sector; publicVariable "active_sectors"; +if (_sector in KPLIB_sectors_active) exitWith {}; +KPLIB_sectors_active pushback _sector; publicVariable "KPLIB_sectors_active"; private _opforcount = [] call KPLIB_fnc_getOpforCap; [_sector, _opforcount] call wait_to_spawn_sector; -if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call KPLIB_fnc_getSectorRange, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) > 0)) then { +if ((!(_sector in KPLIB_sectors_player)) && (([markerPos _sector, [_opforcount] call KPLIB_fnc_getSectorRange, KPLIB_side_player] call KPLIB_fnc_getUnitsCount) > 0)) then { - if (_sector in sectors_bigtown) then { - if (combat_readiness < 30) then {_infsquad = "militia";}; + if (_sector in KPLIB_sectors_capital) then { + if (KPLIB_enemyReadiness < 30) then {_infsquad = "militia";}; _squad1 = ([_infsquad] call KPLIB_fnc_getSquadComp); _squad2 = ([_infsquad] call KPLIB_fnc_getSquadComp); - if (GRLIB_unitcap >= 1) then {_squad3 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; - if (GRLIB_unitcap >= 1.5) then {_squad4 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; + if (KPLIB_param_unitcap >= 1) then {_squad3 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; + if (KPLIB_param_unitcap >= 1.5) then {_squad4 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; - _vehtospawn = [(selectRandom militia_vehicles),(selectRandom militia_vehicles)]; - if ((random 100) > (66 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback (selectRandom militia_vehicles);}; - if ((random 100) > (50 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback (selectRandom militia_vehicles);}; + _vehtospawn = [(selectRandom KPLIB_o_militiaVehicles),(selectRandom KPLIB_o_militiaVehicles)]; + if ((random 100) > (66 / KPLIB_param_difficulty)) then {_vehtospawn pushback (selectRandom KPLIB_o_militiaVehicles);}; + if ((random 100) > (50 / KPLIB_param_difficulty)) then {_vehtospawn pushback (selectRandom KPLIB_o_militiaVehicles);}; if (_infsquad == "army") then { _vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle); _vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle); - if ((random 100) > (33 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; + if ((random 100) > (33 / KPLIB_param_difficulty)) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; }; _spawncivs = true; - if (((random 100) <= KP_liberation_resistance_sector_chance) && (([] call KPLIB_fnc_crGetMulti) > 0)) then { + if (((random 100) <= KPLIB_resistance_sector_chance) && (([] call KPLIB_fnc_crGetMulti) > 0)) then { _guerilla = true; }; @@ -69,25 +70,25 @@ if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call K _building_range = 200; _local_capture_size = _local_capture_size * 1.4; - if (KP_liberation_civ_rep < 0) then { - _iedcount = round (2 + (ceil (random 4)) * (round ((KP_liberation_civ_rep * -1) / 33)) * GRLIB_difficulty_modifier); + if (KPLIB_civ_rep < 0) then { + _iedcount = round (2 + (ceil (random 4)) * (round ((KPLIB_civ_rep * -1) / 33)) * KPLIB_param_difficulty); } else { _iedcount = 0; }; if (_iedcount > 16) then {_iedcount = 16}; }; - if (_sector in sectors_capture) then { - if (combat_readiness < 50) then {_infsquad = "militia";}; + if (_sector in KPLIB_sectors_city) then { + if (KPLIB_enemyReadiness < 50) then {_infsquad = "militia";}; _squad1 = ([_infsquad] call KPLIB_fnc_getSquadComp); - if (GRLIB_unitcap >= 1.25) then {_squad2 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; + if (KPLIB_param_unitcap >= 1.25) then {_squad2 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; - if ((random 100) > (66 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback (selectRandom militia_vehicles);}; - if ((random 100) > (33 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback (selectRandom militia_vehicles);}; + if ((random 100) > (66 / KPLIB_param_difficulty)) then {_vehtospawn pushback (selectRandom KPLIB_o_militiaVehicles);}; + if ((random 100) > (33 / KPLIB_param_difficulty)) then {_vehtospawn pushback (selectRandom KPLIB_o_militiaVehicles);}; if (_infsquad == "army") then { - _vehtospawn pushback (selectRandom militia_vehicles); - if ((random 100) > (33 / GRLIB_difficulty_modifier)) then { + _vehtospawn pushback (selectRandom KPLIB_o_militiaVehicles); + if ((random 100) > (33 / KPLIB_param_difficulty)) then { _vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle); _squad3 = ([_infsquad] call KPLIB_fnc_getSquadComp); }; @@ -95,69 +96,69 @@ if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call K _spawncivs = true; - if (((random 100) <= KP_liberation_resistance_sector_chance) && (([] call KPLIB_fnc_crGetMulti) > 0)) then { + if (((random 100) <= KPLIB_resistance_sector_chance) && (([] call KPLIB_fnc_crGetMulti) > 0)) then { _guerilla = true; }; - _building_ai_max = round ((floor (18 + (round (combat_readiness / 10 )))) * _popfactor); + _building_ai_max = round ((floor (18 + (round (KPLIB_enemyReadiness / 10 )))) * _popfactor); _building_range = 120; - if (KP_liberation_civ_rep < 0) then { - _iedcount = round ((ceil (random 4)) * (round ((KP_liberation_civ_rep * -1) / 33)) * GRLIB_difficulty_modifier); + if (KPLIB_civ_rep < 0) then { + _iedcount = round ((ceil (random 4)) * (round ((KPLIB_civ_rep * -1) / 33)) * KPLIB_param_difficulty); } else { _iedcount = 0; }; if (_iedcount > 12) then {_iedcount = 12}; }; - if (_sector in sectors_military) then { + if (_sector in KPLIB_sectors_military) then { _squad1 = ([] call KPLIB_fnc_getSquadComp); _squad2 = ([] call KPLIB_fnc_getSquadComp); - if (GRLIB_unitcap >= 1.5) then {_squad3 = ([] call KPLIB_fnc_getSquadComp);}; + if (KPLIB_param_unitcap >= 1.5) then {_squad3 = ([] call KPLIB_fnc_getSquadComp);}; _vehtospawn = [([] call KPLIB_fnc_getAdaptiveVehicle),([] call KPLIB_fnc_getAdaptiveVehicle)]; - if ((random 100) > (33 / GRLIB_difficulty_modifier)) then { + if ((random 100) > (33 / KPLIB_param_difficulty)) then { _vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle); _squad4 = ([] call KPLIB_fnc_getSquadComp); }; - if ((random 100) > (66 / GRLIB_difficulty_modifier)) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; + if ((random 100) > (66 / KPLIB_param_difficulty)) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; _spawncivs = false; - _building_ai_max = round ((floor (18 + (round (combat_readiness / 4 )))) * _popfactor); + _building_ai_max = round ((floor (18 + (round (KPLIB_enemyReadiness / 4 )))) * _popfactor); _building_range = 120; }; - if (_sector in sectors_factory) then { - if (combat_readiness < 40) then {_infsquad = "militia";}; + if (_sector in KPLIB_sectors_factory) then { + if (KPLIB_enemyReadiness < 40) then {_infsquad = "militia";}; _squad1 = ([_infsquad] call KPLIB_fnc_getSquadComp); - if (GRLIB_unitcap >= 1.25) then {_squad2 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; + if (KPLIB_param_unitcap >= 1.25) then {_squad2 = ([_infsquad] call KPLIB_fnc_getSquadComp);}; if ((random 100) > 66) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; - if ((random 100) > 33) then {_vehtospawn pushback (selectRandom militia_vehicles);}; + if ((random 100) > 33) then {_vehtospawn pushback (selectRandom KPLIB_o_militiaVehicles);}; _spawncivs = false; - if (((random 100) <= KP_liberation_resistance_sector_chance) && (([] call KPLIB_fnc_crGetMulti) > 0)) then { + if (((random 100) <= KPLIB_resistance_sector_chance) && (([] call KPLIB_fnc_crGetMulti) > 0)) then { _guerilla = true; }; - _building_ai_max = round ((floor (18 + (round (combat_readiness / 10 )))) * _popfactor); + _building_ai_max = round ((floor (18 + (round (KPLIB_enemyReadiness / 10 )))) * _popfactor); _building_range = 120; - if (KP_liberation_civ_rep < 0) then { - _iedcount = round ((ceil (random 3)) * (round ((KP_liberation_civ_rep * -1) / 33)) * GRLIB_difficulty_modifier); + if (KPLIB_civ_rep < 0) then { + _iedcount = round ((ceil (random 3)) * (round ((KPLIB_civ_rep * -1) / 33)) * KPLIB_param_difficulty); } else { _iedcount = 0; }; if (_iedcount > 8) then {_iedcount = 8}; }; - if (_sector in sectors_tower) then { + if (_sector in KPLIB_sectors_tower) then { _squad1 = ([] call KPLIB_fnc_getSquadComp); - if (combat_readiness > 30) then {_squad2 = ([] call KPLIB_fnc_getSquadComp);}; - if (GRLIB_unitcap >= 1.5) then {_squad3 = ([] call KPLIB_fnc_getSquadComp);}; + if (KPLIB_enemyReadiness > 30) then {_squad2 = ([] call KPLIB_fnc_getSquadComp);}; + if (KPLIB_param_unitcap >= 1.5) then {_squad3 = ([] call KPLIB_fnc_getSquadComp);}; if((random 100) > 95) then {_vehtospawn pushback ([] call KPLIB_fnc_getAdaptiveVehicle);}; @@ -168,9 +169,9 @@ if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call K _vehtospawn = _vehtospawn select {!(isNil "_x")}; - if (KP_liberation_sectorspawn_debug > 0) then {[format ["Sector %1 (%2) - manage_one_sector calculated -> _infsquad: %3 - _squad1: %4 - _squad2: %5 - _squad3: %6 - _squad4: %7 - _vehtospawn: %8 - _building_ai_max: %9", (markerText _sector), _sector, _infsquad, (count _squad1), (count _squad2), (count _squad3), (count _squad4), (count _vehtospawn), _building_ai_max], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_sectorspawn_debug > 0) then {[format ["Sector %1 (%2) - manage_one_sector calculated -> _infsquad: %3 - _squad1: %4 - _squad2: %5 - _squad3: %6 - _squad4: %7 - _vehtospawn: %8 - _building_ai_max: %9", (markerText _sector), _sector, _infsquad, (count _squad1), (count _squad2), (count _squad3), (count _squad4), (count _vehtospawn), _building_ai_max], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2];}; - if (_building_ai_max > 0 && GRLIB_adaptive_opfor) then { + if (_building_ai_max > 0 && KPLIB_param_adaptive) then { _building_ai_max = round (_building_ai_max * ([] call KPLIB_fnc_getOpforFactor)); }; @@ -188,7 +189,7 @@ if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call K { _buildingpositions = _buildingpositions + ([_x] call BIS_fnc_buildingPositions); } forEach _allbuildings; - if (KP_liberation_sectorspawn_debug > 0) then {[format ["Sector %1 (%2) - manage_one_sector found %3 building positions", (markerText _sector), _sector, (count _buildingpositions)], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_sectorspawn_debug > 0) then {[format ["Sector %1 (%2) - manage_one_sector found %3 building positions", (markerText _sector), _sector, (count _buildingpositions)], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2];}; if (count _buildingpositions > _minimum_building_positions) then { _managed_units = _managed_units + ([_infsquad, _building_ai_max, _buildingpositions, _sector] call KPLIB_fnc_spawnBuildingSquad); }; @@ -220,11 +221,11 @@ if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call K _managed_units = _managed_units + (units _grp); }; - if (_spawncivs && GRLIB_civilian_activity > 0) then { + if (_spawncivs && KPLIB_param_civActivity > 0) then { _managed_units = _managed_units + ([_sector] call KPLIB_fnc_spawnCivilians); }; - if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 (%2) - Range: %3 - Count: %4", (markerText _sector), _sector, _building_range, _iedcount], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_asymmetric_debug > 0) then {[format ["Sector %1 (%2) - Range: %3 - Count: %4", (markerText _sector), _sector, _building_range, _iedcount], "ASYMMETRIC"] remoteExecCall ["KPLIB_fnc_log", 2];}; [_sector, _building_range, _iedcount] spawn ied_manager; if (_guerilla) then { @@ -233,17 +234,17 @@ if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call K sleep 10; - if ((_sector in sectors_factory) || (_sector in sectors_capture) || (_sector in sectors_bigtown) || (_sector in sectors_military)) then { + if ((_sector in KPLIB_sectors_factory) || (_sector in KPLIB_sectors_city) || (_sector in KPLIB_sectors_capital) || (_sector in KPLIB_sectors_military)) then { [_sector] remoteExec ["reinforcements_remote_call",2]; }; - if (KP_liberation_sectorspawn_debug > 0) then {[format ["Sector %1 (%2) - populating done", (markerText _sector), _sector], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2];}; + if (KPLIB_sectorspawn_debug > 0) then {[format ["Sector %1 (%2) - populating done", (markerText _sector), _sector], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2];}; private _activationTime = time; // sector lifetime loop while {!_stopit} do { // sector was captured - if (([_sectorpos, _local_capture_size] call KPLIB_fnc_getSectorOwnership == GRLIB_side_friendly) && (GRLIB_endgame == 0)) then { + if (([_sectorpos, _local_capture_size] call KPLIB_fnc_getSectorOwnership == KPLIB_side_player) && (KPLIB_endgame == 0)) then { if (isServer) then { [_sector] spawn sector_liberated_remote_call; } else { @@ -256,13 +257,13 @@ if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call K sleep 60; - active_sectors = active_sectors - [_sector]; publicVariable "active_sectors"; + KPLIB_sectors_active = KPLIB_sectors_active - [_sector]; publicVariable "KPLIB_sectors_active"; sleep 600; { if (_x isKindOf "Man") then { - if (side group _x != GRLIB_side_friendly) then { + if (side group _x != KPLIB_side_player) then { deleteVehicle _x; }; } else { @@ -272,7 +273,7 @@ if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call K }; } forEach _managed_units; } else { - if (([_sectorpos, (([_opforcount] call KPLIB_fnc_getSectorRange) + 300), GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) == 0) then { + if (([_sectorpos, (([_opforcount] call KPLIB_fnc_getSectorRange) + 300), KPLIB_side_player] call KPLIB_fnc_getUnitsCount) == 0) then { _sector_despawn_tickets = _sector_despawn_tickets - 1; } else { // start counting running minutes after ADDITIONAL_TICKETS_DELAY @@ -297,14 +298,14 @@ if ((!(_sector in blufor_sectors)) && (([markerPos _sector, [_opforcount] call K } forEach _managed_units; _stopit = true; - active_sectors = active_sectors - [_sector]; publicVariable "active_sectors"; + KPLIB_sectors_active = KPLIB_sectors_active - [_sector]; publicVariable "KPLIB_sectors_active"; }; }; sleep SECTOR_TICK_TIME; }; } else { sleep 40; - active_sectors = active_sectors - [_sector]; publicVariable "active_sectors"; + KPLIB_sectors_active = KPLIB_sectors_active - [_sector]; publicVariable "KPLIB_sectors_active"; }; [format ["Sector %1 (%2) deactivated - Was managed on: %3", (markerText _sector), _sector, debug_source], "SECTORSPAWN"] remoteExecCall ["KPLIB_fnc_log", 2]; diff --git a/Missionframework/scripts/server/sector/wait_to_spawn_sector.sqf b/Missionframework/scripts/server/sector/wait_to_spawn_sector.sqf index 81e17d2e2..e67bdc17e 100644 --- a/Missionframework/scripts/server/sector/wait_to_spawn_sector.sqf +++ b/Missionframework/scripts/server/sector/wait_to_spawn_sector.sqf @@ -1,3 +1,5 @@ +scriptName "wait_to_spawn_sector"; + params ["_sector", "_opforcount"]; private _start = diag_tickTime; @@ -5,38 +7,38 @@ private _start = diag_tickTime; private _corrected_size = [_opforcount] call KPLIB_fnc_getSectorRange; sleep 0.1; -private _unitscount = [markerPos _sector, _corrected_size , GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +private _unitscount = [markerPos _sector, _corrected_size , KPLIB_side_player] call KPLIB_fnc_getUnitsCount; if (_unitscount > 0 && _unitscount <= 10) then { sleep 5; }; sleep 0.1; -_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +_unitscount = [markerPos _sector, _corrected_size, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; if (_unitscount > 0 && _unitscount <= 6) then { sleep 5; }; sleep 0.1; -_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +_unitscount = [markerPos _sector, _corrected_size, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; if (_unitscount > 0 && _unitscount <= 4) then { sleep 5; }; sleep 0.1; -_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +_unitscount = [markerPos _sector, _corrected_size, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; if (_unitscount > 0 && _unitscount <= 3) then { sleep 5; }; sleep 0.1; -_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +_unitscount = [markerPos _sector, _corrected_size, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; if (_unitscount > 0 && _unitscount <= 2) then { sleep 5; }; sleep 0.1; -_unitscount = [markerPos _sector, _corrected_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount; +_unitscount = [markerPos _sector, _corrected_size, KPLIB_side_player] call KPLIB_fnc_getUnitsCount; if (_unitscount == 1) then { sleep 5; }; diff --git a/Missionframework/scripts/server/support/fn_createSuppModules.sqf b/Missionframework/scripts/server/support/fn_createSuppModules.sqf index 24c0566ae..e07e04b89 100644 --- a/Missionframework/scripts/server/support/fn_createSuppModules.sqf +++ b/Missionframework/scripts/server/support/fn_createSuppModules.sqf @@ -2,7 +2,7 @@ File: fn_createSuppModules.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-21 - Last Update: 2020-04-22 + Last Update: 2020-05-23 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -15,30 +15,30 @@ Function reached the end [BOOL] */ -if (!isServer || KP_liberation_suppMod isEqualTo 0) exitWith {false}; +if (!isServer || KPLIB_param_supportModule isEqualTo 0) exitWith {false}; ["Creating modules", "SUPPORTMODULES"] call KPLIB_fnc_log; // Create modules private _grp = createGroup sideLogic; -KPLIB_suppMod_req = _grp createUnit ["SupportRequester", [0, 0, 0], [], 0, "NONE"]; -KPLIB_suppMod_arty = _grp createUnit ["SupportProvider_Artillery", [0, 0, 0], [], 0, "NONE"]; +KPLIB_param_supportModule_req = _grp createUnit ["SupportRequester", [0, 0, 0], [], 0, "NONE"]; +KPLIB_param_supportModule_arty = _grp createUnit ["SupportProvider_Artillery", [0, 0, 0], [], 0, "NONE"]; // Set variables which are normally set via eden object attributes { - [KPLIB_suppMod_req, _x, -1] call BIS_fnc_limitSupport; + [KPLIB_param_supportModule_req, _x, -1] call BIS_fnc_limitSupport; } forEach ["Artillery", "CAS_Heli", "CAS_Bombing", "UAV", "Drop", "Transport"]; // Publish global variables to clients -publicVariable "KPLIB_suppMod_req"; -publicVariable "KPLIB_suppMod_arty"; +publicVariable "KPLIB_param_supportModule_req"; +publicVariable "KPLIB_param_supportModule_arty"; // Delay provider init until save is loaded, to catch synchronized units from loaded save [] spawn { - waitUntil {!isNil "save_is_loaded" && {save_is_loaded}}; + waitUntil {!isNil "KPLIB_saveLoaded" && {KPLIB_saveLoaded}}; ["Init provider on server", "SUPPORTMODULES"] call KPLIB_fnc_log; - [KPLIB_suppMod_req] call BIS_fnc_moduleSupportsInitRequester; - [KPLIB_suppMod_arty] call BIS_fnc_moduleSupportsInitProvider; + [KPLIB_param_supportModule_req] call BIS_fnc_moduleSupportsInitRequester; + [KPLIB_param_supportModule_arty] call BIS_fnc_moduleSupportsInitProvider; // Hide the three HQ entities created at zero pos. BIS scripts only hides them local for the creator waitUntil {!isNil "BIS_SUPP_HQ_WEST" && !isNil "BIS_SUPP_HQ_EAST" && !isNil "BIS_SUPP_HQ_GUER"}; diff --git a/Missionframework/scripts/shared/diagnostics.sqf b/Missionframework/scripts/shared/diagnostics.sqf index ca58dd1fa..017c7a3db 100644 --- a/Missionframework/scripts/shared/diagnostics.sqf +++ b/Missionframework/scripts/shared/diagnostics.sqf @@ -1,3 +1,5 @@ +scriptName "KPLIB_diagnostics"; + private _source = ""; ["------------------------------------", "MISSIONSTART"] call KPLIB_fnc_log; @@ -5,17 +7,17 @@ private _source = ""; [format ["World: %1", worldName], "MISSIONSTART"] call KPLIB_fnc_log; [format ["Version: %1", (localize "STR_MISSION_VERSION")], "MISSIONSTART"] call KPLIB_fnc_log; [format ["Author: %1", [missionConfigFile] call BIS_fnc_overviewAuthor], "MISSIONSTART"] call KPLIB_fnc_log; -[format ["Blufor: %1", KP_liberation_preset_blufor], "MISSIONSTART"] call KPLIB_fnc_log; -[format ["Opfor: %1", KP_liberation_preset_opfor], "MISSIONSTART"] call KPLIB_fnc_log; -[format ["Resistance: %1", KP_liberation_preset_resistance], "MISSIONSTART"] call KPLIB_fnc_log; -[format ["Civilians: %1", KP_liberation_preset_civilians], "MISSIONSTART"] call KPLIB_fnc_log; -[format ["Arsenal: %1", KP_liberation_arsenal], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Preset player: %1", KPLIB_presetPlayer], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Preset enemy: %1", KPLIB_presetEnemy], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Preset resistance: %1", KPLIB_presetResistance], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Preset civilians: %1", KPLIB_presetCivilians], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["Preset arsenal: %1", KPLIB_presetArsenal], "MISSIONSTART"] call KPLIB_fnc_log; [format ["CBA: %1", KPPLM_CBA], "MISSIONSTART"] call KPLIB_fnc_log; -[format ["ACE: %1", KP_liberation_ace], "MISSIONSTART"] call KPLIB_fnc_log; +[format ["ACE: %1", KPLIB_ace], "MISSIONSTART"] call KPLIB_fnc_log; [format ["KP Ranks: %1", KPPLM_KPR], "MISSIONSTART"] call KPLIB_fnc_log; ["------------------------------------", "MISSIONSTART"] call KPLIB_fnc_log; -waitUntil {sleep 1; !isNil "active_sectors"}; +waitUntil {sleep 1; !isNil "KPLIB_sectors_active"}; private _delay = 120; @@ -35,7 +37,7 @@ while {true} do { ((round (diag_fps * 100.0)) / 100.0), {local _x} count allGroups, {local _x} count allUnits, - count active_sectors, + count KPLIB_sectors_active, diag_activeScripts select 0, diag_activeScripts select 1, diag_activeScripts select 2, diff --git a/Missionframework/scripts/shared/fetch_params.sqf b/Missionframework/scripts/shared/fetch_params.sqf index 0219a2080..c2c0839e6 100644 --- a/Missionframework/scripts/shared/fetch_params.sqf +++ b/Missionframework/scripts/shared/fetch_params.sqf @@ -1,20 +1,20 @@ #include "defines.hpp" // Check if ACE is running -if (isClass (configfile >> "CfgPatches" >> "ace_common")) then {KP_liberation_ace = true; ["ACE detected. Deactivating resupply script from Liberation.", "MOD"] call KPLIB_fnc_log;} else {KP_liberation_ace = false}; +if (isClass (configfile >> "CfgPatches" >> "ace_common")) then {KPLIB_ace = true; ["ACE detected. Deactivating resupply script from Liberation.", "MOD"] call KPLIB_fnc_log;} else {KPLIB_ace = false}; /* Not saveable params */ -GRLIB_param_wipe_savegame_1 = ["WipeSave1", 0] call bis_fnc_getParamValue; -GRLIB_param_wipe_savegame_2 = ["WipeSave2", 0] call bis_fnc_getParamValue; -KP_liberation_civinfo_debug = ["DebugCivInfo", 0] call bis_fnc_getParamValue; -KP_liberation_civrep_debug = ["DebugCivRep", 0] call bis_fnc_getParamValue; -KP_liberation_savegame_debug = ["DebugSave", 0] call bis_fnc_getParamValue; -KP_liberation_asymmetric_debug = ["DebugAsymmetric", 0] call bis_fnc_getParamValue; -KP_liberation_logistic_debug = ["DebugLogistic", 0] call bis_fnc_getParamValue; -KP_liberation_sectorspawn_debug = ["DebugSectorSpawn", 0] call bis_fnc_getParamValue; -KP_liberation_kill_debug = ["DebugKill", 0] call bis_fnc_getParamValue; -KP_liberation_production_debug = ["DebugProduction", 0] call bis_fnc_getParamValue; -KP_liberation_highcommand_debug = ["DebugHighCommand", 0] call bis_fnc_getParamValue; +KPLIB_param_wipe_savegame_1 = ["WipeSave1", 0] call bis_fnc_getParamValue; +KPLIB_param_wipe_savegame_2 = ["WipeSave2", 0] call bis_fnc_getParamValue; +KPLIB_civinfo_debug = ["DebugCivInfo", 0] call bis_fnc_getParamValue; +KPLIB_civrep_debug = ["DebugCivRep", 0] call bis_fnc_getParamValue; +KPLIB_savegame_debug = ["DebugSave", 0] call bis_fnc_getParamValue; +KPLIB_asymmetric_debug = ["DebugAsymmetric", 0] call bis_fnc_getParamValue; +KPLIB_logistic_debug = ["DebugLogistic", 0] call bis_fnc_getParamValue; +KPLIB_sectorspawn_debug = ["DebugSectorSpawn", 0] call bis_fnc_getParamValue; +KPLIB_kill_debug = ["DebugKill", 0] call bis_fnc_getParamValue; +KPLIB_production_debug = ["DebugProduction", 0] call bis_fnc_getParamValue; +KPLIB_highcommand_debug = ["DebugHighCommand", 0] call bis_fnc_getParamValue; KP_load_params = ["LoadSaveParams", 1] call BIS_fnc_getParamValue; @@ -39,26 +39,26 @@ if(isServer) then { // Mission Options ["--- Mission Options ---", "PARAM"] call KPLIB_fnc_log; - GET_PARAM(GRLIB_unitcap, "Unitcap", 2); - GET_PARAM(GRLIB_difficulty_modifier, "Difficulty", 2); - GET_PARAM(GRLIB_csat_aggressivity, "Aggressivity", 2); - GET_PARAM_BOOL(GRLIB_adaptive_opfor, "AdaptToPlayercount", 1); - GET_PARAM(GRLIB_civilian_activity, "Civilians", 1); - GET_PARAM_BOOL(GRLIB_build_first_fob, "FirstFob", 0); - GET_PARAM_BOOL(KP_liberation_fob_vehicle, "FirstFobVehicle", 0); - GET_PARAM(GRLIB_maximum_fobs, "MaximumFobs", 26); - GET_PARAM(GRLIB_max_squad_size, "MaxSquadSize", 10); - GET_PARAM_BOOL(GRLIB_blufor_defenders, "BluforDefenders", 1); - GET_PARAM_BOOL(GRLIB_autodanger, "Autodanger", 0); - GET_PARAM(GRLIB_time_factor, "DayDuration", 12); - GET_PARAM_BOOL(GRLIB_shorter_nights, "ShorterNights", 0); - GET_PARAM(GRLIB_weather_param, "Weather", 3); - GET_PARAM_BOOL(KP_liberation_fog_param, "VanillaFog", 1); - GET_PARAM(GRLIB_resources_multiplier, "ResourcesMultiplier", 3); - GET_PARAM_BOOL(KP_liberation_arsenal_type, "ArsenalType", 0); - GET_PARAM_BOOL(KPLIB_directArsenal, "DirectArsenal", 0); - GET_PARAM_BOOL(KP_liberation_playermenu, "PlayerMenu", 1); - GET_PARAM(KP_liberation_victoryCondition, "VictoryCondition", 0); + GET_PARAM(KPLIB_param_unitcap, "Unitcap", 2); + GET_PARAM(KPLIB_param_difficulty, "Difficulty", 2); + GET_PARAM(KPLIB_param_aggressivity, "Aggressivity", 2); + GET_PARAM_BOOL(KPLIB_param_adaptive, "AdaptToPlayercount", 1); + GET_PARAM(KPLIB_param_civActivity, "Civilians", 1); + GET_PARAM_BOOL(KPLIB_param_firstFobBuilt, "FirstFob", 0); + GET_PARAM_BOOL(KPLIB_param_fobVehicle, "FirstFobVehicle", 0); + GET_PARAM(KPLIB_param_maxFobs, "MaximumFobs", 26); + GET_PARAM(KPLIB_param_maxSquadSize, "MaxSquadSize", 10); + GET_PARAM_BOOL(KPLIB_param_bluforDefenders, "BluforDefenders", 1); + GET_PARAM_BOOL(KPLIB_param_autodanger, "Autodanger", 0); + GET_PARAM(KPLIB_param_timeMulti, "DayDuration", 12); + GET_PARAM_BOOL(KPLIB_param_shorterNights, "ShorterNights", 0); + GET_PARAM(KPLIB_param_weather, "Weather", 3); + GET_PARAM_BOOL(KPLIB_param_vanillaFog, "VanillaFog", 1); + GET_PARAM(KPLIB_param_resourcesMulti, "ResourcesMultiplier", 3); + GET_PARAM_BOOL(KPLIB_param_arsenalType, "ArsenalType", 0); + GET_PARAM_BOOL(KPLIB_param_directArsenal, "DirectArsenal", 0); + GET_PARAM_BOOL(KPLIB_param_playerMenu, "PlayerMenu", 1); + GET_PARAM(KPLIB_param_victoryCondition, "VictoryCondition", 0); // Deactivate BI Revive when ACE Medical is running if (isClass (configfile >> "CfgPatches" >> "ace_medical")) then { @@ -79,133 +79,133 @@ if(isServer) then { // Gameplay Options ["--- Gameplay Options ---", "PARAM"] call KPLIB_fnc_log; - GET_PARAM_BOOL(GRLIB_fatigue, "Fatigue", 1); - GET_PARAM_BOOL(KPLIB_sway, "WeaponSway", 1); - GET_PARAM_BOOL(KP_liberation_arsenalUsePreset, "ArsenalUsePreset", 1); - GET_PARAM_BOOL(KP_liberation_mapmarkers, "MapMarkers", 1); - GET_PARAM_BOOL(KP_liberation_mobilerespawn, "MobileRespawn", 1); - GET_PARAM(KP_liberation_respawn_cooldown, "RespawnCooldown", 900); - GET_PARAM_BOOL(KP_liberation_mobilearsenal, "MobileArsenal", 1); - GET_PARAM_BOOL(KPLIB_respawnOnAttackedSectors, "AttackedSectorRespawn", 0); - GET_PARAM_BOOL(KP_liberation_ailogistics, "AiLogistics", 1); - GET_PARAM_BOOL(KP_liberation_cr_param_buildings, "CR_Building", 0); - GET_PARAM(GRLIB_halo_param, "HaloJump", 1); - GET_PARAM_BOOL(KP_liberation_clear_cargo, "ClearCargo", 1); - GET_PARAM(KP_liberation_allowEnemiesInImmobile, "AllowEnemiesInImmobile", 50); - GET_PARAM(KP_liberation_delayDespawnMax, "DelayDespawnMax", 5); - GET_PARAM_BOOL(KP_liberation_limited_zeus, "LimitedZeus", 1); - GET_PARAM_BOOL(KP_liberation_commander_zeus, "CommanderZeus", 1); - GET_PARAM_BOOL(KP_liberation_enemies_zeus, "ZeusAddEnemies", 1); - GET_PARAM_BOOL(KP_liberation_high_command, "HighCommand", 1); - GET_PARAM(KP_liberation_suppMod, "SuppMod", 1); - GET_PARAM_BOOL(KP_liberation_tutorial, "Tutorial", 1); + GET_PARAM_BOOL(KPLIB_param_fatigue, "Fatigue", 1); + GET_PARAM_BOOL(KPLIB_param_weaponSway, "WeaponSway", 1); + GET_PARAM_BOOL(KPLIB_param_useArsenalPreset, "ArsenalUsePreset", 1); + GET_PARAM_BOOL(KPLIB_param_mapMarkers, "MapMarkers", 1); + GET_PARAM_BOOL(KPLIB_param_mobileRespawn, "MobileRespawn", 1); + GET_PARAM(KPLIB_param_mobileRespawnCooldown, "RespawnCooldown", 900); + GET_PARAM_BOOL(KPLIB_param_mobileArsenal, "MobileArsenal", 1); + GET_PARAM_BOOL(KPLIB_param_attackedFobRespawn, "AttackedSectorRespawn", 0); + GET_PARAM_BOOL(KPLIB_param_logistic, "AiLogistics", 1); + GET_PARAM_BOOL(KPLIB_param_buildingDamaged, "CR_Building", 0); + GET_PARAM(KPLIB_param_halo, "HaloJump", 1); + GET_PARAM_BOOL(KPLIB_param_clearCargo, "ClearCargo", 1); + GET_PARAM(KPLIB_param_allowEnemiesInImmobile, "AllowEnemiesInImmobile", 50); + GET_PARAM(KPLIB_param_maxDespawnDelay, "DelayDespawnMax", 5); + GET_PARAM_BOOL(KPLIB_param_zeusLimited, "LimitedZeus", 1); + GET_PARAM_BOOL(KPLIB_param_zeusCommander, "CommanderZeus", 1); + GET_PARAM_BOOL(KPLIB_param_zeusAddEnemies, "ZeusAddEnemies", 1); + GET_PARAM_BOOL(KPLIB_param_highCommand, "HighCommand", 1); + GET_PARAM(KPLIB_param_supportModule, "SuppMod", 1); + GET_PARAM_BOOL(KPLIB_param_tutorial, "Tutorial", 1); // Technical Options ["--- Technical Options ---", "PARAM"] call KPLIB_fnc_log; - GET_PARAM_BOOL(GRLIB_permissions_param, "Permissions", 1); - GET_PARAM(GRLIB_cleanup_vehicles, "CleanupVehicles", 2); - GET_PARAM_BOOL(GRLIB_introduction, "Introduction", 1); - GET_PARAM_BOOL(GRLIB_deployment_cinematic, "DeploymentCinematic", 1); - GET_PARAM_BOOL(GRLIB_use_whitelist, "Whitelist", 0); - GET_PARAM(KP_liberation_restart, "ServerRestart", 0); + GET_PARAM_BOOL(KPLIB_param_permissions, "Permissions", 1); + GET_PARAM(KPLIB_param_vehicleCleanup, "CleanupVehicles", 2); + GET_PARAM_BOOL(KPLIB_param_introCinematic, "Introduction", 1); + GET_PARAM_BOOL(KPLIB_param_deployCinematic, "DeploymentCinematic", 1); + GET_PARAM_BOOL(KPLIB_param_cmdrWhitelist, "Whitelist", 0); + GET_PARAM(KPLIB_param_restart, "ServerRestart", 0); - GREUH_allow_mapmarkers = KP_liberation_mapmarkers; publicVariable "GREUH_allow_mapmarkers"; - GREUH_allow_platoonview = KP_liberation_mapmarkers; publicVariable "GREUH_allow_platoonview"; + GREUH_allow_mapmarkers = KPLIB_param_mapMarkers; publicVariable "GREUH_allow_mapmarkers"; + GREUH_allow_platoonview = KPLIB_param_mapMarkers; publicVariable "GREUH_allow_platoonview"; - KP_serverParamsFetched = true; - publicVariable "KP_serverParamsFetched"; + KPLIB_param_serverInitDone = true; + publicVariable "KPLIB_param_serverInitDone"; [format ["----- Server finished parameter initialization - Time needed: %1 seconds", diag_ticktime - _start], "PARAM"] call KPLIB_fnc_log; }; // Fix for not working float values in mission params -switch (GRLIB_unitcap) do { - case 0: {GRLIB_unitcap = 0.5;}; - case 1: {GRLIB_unitcap = 0.75;}; - case 2: {GRLIB_unitcap = 1;}; - case 3: {GRLIB_unitcap = 1.25;}; - case 4: {GRLIB_unitcap = 1.5;}; - case 5: {GRLIB_unitcap = 2;}; - default {GRLIB_unitcap = 1;}; +switch (KPLIB_param_unitcap) do { + case 0: {KPLIB_param_unitcap = 0.5;}; + case 1: {KPLIB_param_unitcap = 0.75;}; + case 2: {KPLIB_param_unitcap = 1;}; + case 3: {KPLIB_param_unitcap = 1.25;}; + case 4: {KPLIB_param_unitcap = 1.5;}; + case 5: {KPLIB_param_unitcap = 2;}; + default {KPLIB_param_unitcap = 1;}; }; -switch (GRLIB_difficulty_modifier) do { - case 0: {GRLIB_difficulty_modifier = 0.5;}; - case 1: {GRLIB_difficulty_modifier = 0.75;}; - case 2: {GRLIB_difficulty_modifier = 1;}; - case 3: {GRLIB_difficulty_modifier = 1.25;}; - case 4: {GRLIB_difficulty_modifier = 1.5;}; - case 5: {GRLIB_difficulty_modifier = 2;}; - case 6: {GRLIB_difficulty_modifier = 4;}; - case 7: {GRLIB_difficulty_modifier = 10;}; - default {GRLIB_difficulty_modifier = 1;}; +switch (KPLIB_param_difficulty) do { + case 0: {KPLIB_param_difficulty = 0.5;}; + case 1: {KPLIB_param_difficulty = 0.75;}; + case 2: {KPLIB_param_difficulty = 1;}; + case 3: {KPLIB_param_difficulty = 1.25;}; + case 4: {KPLIB_param_difficulty = 1.5;}; + case 5: {KPLIB_param_difficulty = 2;}; + case 6: {KPLIB_param_difficulty = 4;}; + case 7: {KPLIB_param_difficulty = 10;}; + default {KPLIB_param_difficulty = 1;}; }; -switch (GRLIB_csat_aggressivity) do { - case 0: {GRLIB_csat_aggressivity = 0.25;}; - case 1: {GRLIB_csat_aggressivity = 0.5;}; - case 2: {GRLIB_csat_aggressivity = 1;}; - case 3: {GRLIB_csat_aggressivity = 2;}; - case 4: {GRLIB_csat_aggressivity = 4;}; - default {GRLIB_csat_aggressivity = 1;}; +switch (KPLIB_param_aggressivity) do { + case 0: {KPLIB_param_aggressivity = 0.25;}; + case 1: {KPLIB_param_aggressivity = 0.5;}; + case 2: {KPLIB_param_aggressivity = 1;}; + case 3: {KPLIB_param_aggressivity = 2;}; + case 4: {KPLIB_param_aggressivity = 4;}; + default {KPLIB_param_aggressivity = 1;}; }; -switch (GRLIB_civilian_activity) do { - case 0: {GRLIB_civilian_activity = 0;}; - case 1: {GRLIB_civilian_activity = 0.5;}; - case 2: {GRLIB_civilian_activity = 1;}; - case 3: {GRLIB_civilian_activity = 2;}; - default {GRLIB_csat_aggressivity = 1;}; +switch (KPLIB_param_civActivity) do { + case 0: {KPLIB_param_civActivity = 0;}; + case 1: {KPLIB_param_civActivity = 0.5;}; + case 2: {KPLIB_param_civActivity = 1;}; + case 3: {KPLIB_param_civActivity = 2;}; + default {KPLIB_param_aggressivity = 1;}; }; -switch (GRLIB_resources_multiplier) do { - case 0: {GRLIB_resources_multiplier = 0.25;}; - case 1: {GRLIB_resources_multiplier = 0.5;}; - case 2: {GRLIB_resources_multiplier = 0.75;}; - case 3: {GRLIB_resources_multiplier = 1;}; - case 4: {GRLIB_resources_multiplier = 1.25;}; - case 5: {GRLIB_resources_multiplier = 1.5;}; - case 6: {GRLIB_resources_multiplier = 2;}; - case 7: {GRLIB_resources_multiplier = 3;}; - default {GRLIB_resources_multiplier = 1;}; +switch (KPLIB_param_resourcesMulti) do { + case 0: {KPLIB_param_resourcesMulti = 0.25;}; + case 1: {KPLIB_param_resourcesMulti = 0.5;}; + case 2: {KPLIB_param_resourcesMulti = 0.75;}; + case 3: {KPLIB_param_resourcesMulti = 1;}; + case 4: {KPLIB_param_resourcesMulti = 1.25;}; + case 5: {KPLIB_param_resourcesMulti = 1.5;}; + case 6: {KPLIB_param_resourcesMulti = 2;}; + case 7: {KPLIB_param_resourcesMulti = 3;}; + default {KPLIB_param_resourcesMulti = 1;}; }; -switch (KP_liberation_victoryCondition) do { +switch (KPLIB_param_victoryCondition) do { case 1: { - KP_liberation_victoryCheck = { - (count (blufor_sectors select {_x in sectors_bigtown})) == (count sectors_bigtown) + KPLIB_victoryCheck = { + (count (KPLIB_sectors_player select {_x in KPLIB_sectors_capital})) == (count KPLIB_sectors_capital) && { - (count (blufor_sectors select {_x in sectors_military})) == (count sectors_military) + (count (KPLIB_sectors_player select {_x in KPLIB_sectors_military})) == (count KPLIB_sectors_military) } }; }; case 2: { - KP_liberation_victoryCheck = { - (count (blufor_sectors select {_x in sectors_bigtown})) == (count sectors_bigtown) + KPLIB_victoryCheck = { + (count (KPLIB_sectors_player select {_x in KPLIB_sectors_capital})) == (count KPLIB_sectors_capital) && { - (count (blufor_sectors select {!(_x in sectors_bigtown)})) >= ((count (sectors_allSectors - sectors_bigtown)) * 0.6) + (count (KPLIB_sectors_player select {!(_x in KPLIB_sectors_capital)})) >= ((count (KPLIB_sectors_all - KPLIB_sectors_capital)) * 0.6) } }; }; case 3: { - KP_liberation_victoryCheck = { - (count (blufor_sectors select {_x in sectors_bigtown})) == (count sectors_bigtown) + KPLIB_victoryCheck = { + (count (KPLIB_sectors_player select {_x in KPLIB_sectors_capital})) == (count KPLIB_sectors_capital) && { - (count (blufor_sectors select {!(_x in sectors_bigtown)})) >= ((count (sectors_allSectors - sectors_bigtown)) * 0.8) + (count (KPLIB_sectors_player select {!(_x in KPLIB_sectors_capital)})) >= ((count (KPLIB_sectors_all - KPLIB_sectors_capital)) * 0.8) } }; }; case 4: { - KP_liberation_victoryCheck = { - (count blufor_sectors) == (count sectors_allSectors) + KPLIB_victoryCheck = { + (count KPLIB_sectors_player) == (count KPLIB_sectors_all) }; }; default { - KP_liberation_victoryCheck = { - (count (blufor_sectors select {_x in sectors_bigtown})) == (count sectors_bigtown) + KPLIB_victoryCheck = { + (count (KPLIB_sectors_player select {_x in KPLIB_sectors_capital})) == (count KPLIB_sectors_capital) }; }; }; @@ -215,11 +215,11 @@ if (!isDedicated && hasInterface) then { player createDiarySubject ["parameters", "Mission Parameters"]; private _param = localize "STR_PARAMS_UNITCAP"; - private _value = (format ["%1", GRLIB_unitcap * 100]) + "%"; + private _value = (format ["%1", KPLIB_param_unitcap * 100]) + "%"; private _text = format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_DIFFICULTY"; - switch (GRLIB_difficulty_modifier) do { + switch (KPLIB_param_difficulty) do { case 0.75: {_value = localize "STR_PARAMS_DIFFICULTY2";}; case 1: {_value = localize "STR_PARAMS_DIFFICULTY3";}; case 1.25: {_value = localize "STR_PARAMS_DIFFICULTY4";}; @@ -232,7 +232,7 @@ if (!isDedicated && hasInterface) then { _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_AGGRESSIVITY_PARAM"; - switch (GRLIB_csat_aggressivity) do { + switch (KPLIB_param_aggressivity) do { case 0.5: {_value = localize "STR_AGGRESSIVITY_PARAM1";}; case 1: {_value = localize "STR_AGGRESSIVITY_PARAM2";}; case 2: {_value = localize "STR_AGGRESSIVITY_PARAM3";}; @@ -242,11 +242,11 @@ if (!isDedicated && hasInterface) then { _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_ADAPT_TO_PLAYERCOUNT"; - _value = if (GRLIB_adaptive_opfor) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_adaptive) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_CIVILIANS"; - switch (GRLIB_civilian_activity) do { + switch (KPLIB_param_civActivity) do { case 0.5: {_value = localize "STR_PARAMS_CIVILIANS2";}; case 1: {_value = localize "STR_PARAMS_CIVILIANS3";}; case 2: {_value = localize "STR_PARAMS_CIVILIANS4";}; @@ -255,39 +255,39 @@ if (!isDedicated && hasInterface) then { _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_FIRSTFOB"; - _value = if (GRLIB_build_first_fob) then {localize "STR_YES";} else {localize "STR_NO";}; + _value = if (KPLIB_param_firstFobBuilt) then {localize "STR_YES";} else {localize "STR_NO";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_FIRSTFOBVEHICLE"; - _value = if (KP_liberation_fob_vehicle) then {localize "STR_PARAMS_FIRSTFOBVEHICLE_TRUCK";} else {localize "STR_PARAMS_FIRSTFOBVEHICLE_CONTAINTER";}; + _value = if (KPLIB_param_fobVehicle) then {localize "STR_PARAMS_FIRSTFOBVEHICLE_TRUCK";} else {localize "STR_PARAMS_FIRSTFOBVEHICLE_CONTAINTER";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_FOBS_COUNT"; - _value = str GRLIB_maximum_fobs; + _value = str KPLIB_param_maxFobs; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_SQUAD_SIZE"; - _value = str GRLIB_max_squad_size; + _value = str KPLIB_param_maxSquadSize; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_BLUFOR_DEFENDERS"; - _value = if (GRLIB_blufor_defenders) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_bluforDefenders) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_AUTODANGER"; - _value = if (GRLIB_autodanger) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_autodanger) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_DAYDURATION"; - _value = str (24 / GRLIB_time_factor); + _value = str (24 / KPLIB_param_timeMulti); _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_SHORTER_NIGHTS_PARAM"; - _value = if (GRLIB_shorter_nights) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_shorterNights) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_WEATHER_PARAM"; - switch (GRLIB_weather_param) do { + switch (KPLIB_param_weather) do { case 2: {_value = localize "STR_WEATHER_PARAM2";}; case 3: {_value = localize "STR_WEATHER_PARAM3";}; default {_value = localize "STR_WEATHER_PARAM1";}; @@ -295,27 +295,27 @@ if (!isDedicated && hasInterface) then { _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_FOG_PARAM"; - _value = if (KP_liberation_fog_param) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_vanillaFog) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_RESOURCESMULTIPLIER"; - _value = format ["x%1", GRLIB_resources_multiplier]; + _value = format ["x%1", KPLIB_param_resourcesMulti]; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_ARSENAL"; - _value = if (KP_liberation_arsenal_type) then {localize "STR_PARAMS_ARSENAL_ACE";} else {localize "STR_PARAMS_ARSENAL_BI";}; + _value = if (KPLIB_param_arsenalType) then {localize "STR_PARAMS_ARSENAL_ACE";} else {localize "STR_PARAMS_ARSENAL_BI";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_DIRECTARSENAL"; - _value = if (KPLIB_directArsenal) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_directArsenal) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_PLAYERMENU"; - _value = if (KP_liberation_playermenu) then {localize "STR_PARAMS_PLAYERMENU_KP";} else {localize "STR_PARAMS_PLAYERMENU_GREUH";}; + _value = if (KPLIB_param_playerMenu) then {localize "STR_PARAMS_PLAYERMENU_KP";} else {localize "STR_PARAMS_PLAYERMENU_GREUH";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_VICTORYCONDITION"; - switch (KP_liberation_victoryCondition) do { + switch (KPLIB_param_victoryCondition) do { case 1: {_value = localize "STR_PARAMS_VICTORYCONDITION_1";}; case 2: {_value = localize "STR_PARAMS_VICTORYCONDITION_2";}; case 3: {_value = localize "STR_PARAMS_VICTORYCONDITION_3";}; @@ -367,47 +367,47 @@ if (!isDedicated && hasInterface) then { }; _param = localize "STR_PARAMS_FATIGUE"; - _value = if (GRLIB_fatigue) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_fatigue) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_WEAPSWAY"; - _value = if (KPLIB_sway) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_weaponSway) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_ARSENALUSEPRESET"; - _value = if (KP_liberation_arsenalUsePreset) then {localize "STR_PARAMS_USEPRESET";} else {localize "STR_PARAMS_NORESTRICTIONS";}; + _value = if (KPLIB_param_useArsenalPreset) then {localize "STR_PARAMS_USEPRESET";} else {localize "STR_PARAMS_NORESTRICTIONS";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_MAPMARKERS"; - _value = if (KP_liberation_mapmarkers) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_mapMarkers) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_MOBILERESPAWN"; - _value = if (KP_liberation_mobilerespawn) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_mobileRespawn) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_RESPAWN_COOLDOWN"; - _value = if (KP_liberation_respawn_cooldown == 0) then {localize "STR_PARAMS_DISABLED";} else {str (KP_liberation_respawn_cooldown / 60);}; + _value = if (KPLIB_param_mobileRespawnCooldown == 0) then {localize "STR_PARAMS_DISABLED";} else {str (KPLIB_param_mobileRespawnCooldown / 60);}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_MOBILEARSENAL"; - _value = if (KP_liberation_mobilearsenal) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_mobileArsenal) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_ATTACKEDSECTORRESPAWN"; - _value = if (KPLIB_respawnOnAttackedSectors) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_attackedFobRespawn) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_AILOGISTICS"; - _value = if (KP_liberation_ailogistics) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_logistic) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_CR_BUILDING"; - _value = if (KP_liberation_cr_param_buildings) then {localize "STR_PARAM_CR_DAMAGED";} else {localize "STR_PARAM_CR_DESTROYED";}; + _value = if (KPLIB_param_buildingDamaged) then {localize "STR_PARAM_CR_DAMAGED";} else {localize "STR_PARAM_CR_DESTROYED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_HALO_PARAM"; - switch (GRLIB_halo_param) do { + switch (KPLIB_param_halo) do { case 1: {_value = localize "STR_HALO_PARAM1";}; case 5: {_value = localize "STR_HALO_PARAM2";}; case 10: {_value = localize "STR_HALO_PARAM3";}; @@ -419,35 +419,35 @@ if (!isDedicated && hasInterface) then { _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_CLEAR_CARGO"; - _value = if (KP_liberation_clear_cargo) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_clearCargo) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_ALLOW_ENEMIES_IN_IMMOBILE"; - _value = if (KP_liberation_allowEnemiesInImmobile == 0) then {localize "STR_PARAMS_DISABLED";} else {KP_liberation_allowEnemiesInImmobile;}; + _value = if (KPLIB_param_allowEnemiesInImmobile == 0) then {localize "STR_PARAMS_DISABLED";} else {KPLIB_param_allowEnemiesInImmobile;}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_DELAY_DESPAWN_MAX"; - _value = if (KP_liberation_delayDespawnMax == 0) then {localize "STR_PARAMS_DISABLED";} else {KP_liberation_delayDespawnMax;}; + _value = if (KPLIB_param_maxDespawnDelay == 0) then {localize "STR_PARAMS_DISABLED";} else {KPLIB_param_maxDespawnDelay;}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_COMMANDERZEUS"; - _value = if (KP_liberation_commander_zeus) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_zeusCommander) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_LIMITEDZEUS"; - _value = if (KP_liberation_limited_zeus) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_zeusLimited) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_ZEUSADDENEMIES"; - _value = if (KP_liberation_enemies_zeus) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_zeusAddEnemies) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_HIGHCOMMAND"; - _value = if (KP_liberation_high_command) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_highCommand) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_SUPPMOD"; - switch (KP_liberation_suppMod) do { + switch (KPLIB_param_supportModule) do { case 1: {_value = localize "STR_PARAM_SUPPMOD_CMDRANDWHITELIST";}; case 2: {_value = localize "STR_PARAM_SUPPMOD_EVERYONE";}; default {_value = localize "STR_PARAMS_DISABLED";}; @@ -455,15 +455,15 @@ if (!isDedicated && hasInterface) then { _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAM_TUTORIAL"; - _value = if (KP_liberation_tutorial) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_tutorial) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PERMISSIONS_PARAM"; - _value = if (GRLIB_permissions_param) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_permissions) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_CLEANUP_PARAM"; - switch (GRLIB_cleanup_vehicles) do { + switch (KPLIB_param_vehicleCleanup) do { case 1: {_value = localize "STR_CLEANUP_PARAM1";}; case 2: {_value = localize "STR_CLEANUP_PARAM2";}; case 4: {_value = localize "STR_CLEANUP_PARAM3";}; @@ -472,20 +472,29 @@ if (!isDedicated && hasInterface) then { _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_INTRO"; - _value = if (GRLIB_introduction) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_introCinematic) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_PARAMS_DEPLOYMENTCAMERA"; - _value = if (GRLIB_deployment_cinematic) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_deployCinematic) then {localize "STR_PARAMS_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_WHITELIST_PARAM"; - _value = if (GRLIB_use_whitelist) then {localize "STR_WHITELIST_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; + _value = if (KPLIB_param_cmdrWhitelist) then {localize "STR_WHITELIST_ENABLED";} else {localize "STR_PARAMS_DISABLED";}; _text = _text + format ["%1
%2

", _param, _value]; _param = localize "STR_RESTART_PARAM"; - _value = if (KP_liberation_restart == 0) then {localize "STR_PARAMS_DISABLED";} else {KP_liberation_restart;}; + _value = if (KPLIB_param_restart == 0) then {localize "STR_PARAMS_DISABLED";} else {KPLIB_param_restart;}; _text = _text + format ["%1
%2

", _param, _value]; player createDiaryRecord ["parameters", ["Active", _text]]; }; + +// Adjustments calculation depending on selected mission parameters (shouldn't be edited) +KPLIB_production_interval = ceil (KPLIB_production_interval / KPLIB_param_resourcesMulti); +KPLIB_battlegroup_size = KPLIB_battlegroup_size * (sqrt KPLIB_param_unitcap) * (sqrt KPLIB_param_aggressivity); +KPLIB_civilians_amount = KPLIB_civilians_amount * KPLIB_param_civActivity; +KPLIB_cap_playerSide = (KPLIB_cap_playerSide * KPLIB_param_unitcap) min 100; +KPLIB_cap_enemySide = KPLIB_cap_enemySide * KPLIB_param_unitcap; +KPLIB_cap_battlegroup = KPLIB_cap_battlegroup * KPLIB_param_unitcap; +KPLIB_cap_patrol = KPLIB_cap_patrol * KPLIB_param_unitcap; diff --git a/Missionframework/scripts/shared/init_shared.sqf b/Missionframework/scripts/shared/init_shared.sqf index 4249ce7e6..c212a4f2a 100644 --- a/Missionframework/scripts/shared/init_shared.sqf +++ b/Missionframework/scripts/shared/init_shared.sqf @@ -1,37 +1,37 @@ -kill_manager = compileFinal preprocessFileLineNumbers "scripts\shared\kill_manager.sqf"; +kill_manager = compile preprocessFileLineNumbers "scripts\shared\kill_manager.sqf"; -build_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\build_remote_call.sqf"; -build_fob_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\build_fob_remote_call.sqf"; -cancel_build_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\cancel_build_remote_call.sqf"; -prisonner_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\prisonner_remote_call.sqf"; -recycle_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\recycle_remote_call.sqf"; -reinforcements_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\reinforcements_remote_call.sqf"; -sector_liberated_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\sector_liberated_remote_call.sqf"; -intel_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\intel_remote_call.sqf"; -start_secondary_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\start_secondary_remote_call.sqf"; -change_prod_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\change_prod_remote_call.sqf"; -build_fac_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\build_fac_remote_call.sqf"; -if (KP_liberation_ailogistics) then { - add_logiGroup_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\add_logiGroup_remote_call.sqf"; - del_logiGroup_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\del_logiGroup_remote_call.sqf"; - add_logiTruck_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\add_logiTruck_remote_call.sqf"; - del_logiTruck_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\del_logiTruck_remote_call.sqf"; - save_logi_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\save_logi_remote_call.sqf"; - abort_logi_remote_call = compileFinal preprocessFileLineNumbers "scripts\server\remotecall\abort_logi_remote_call.sqf"; +build_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\build_remote_call.sqf"; +build_fob_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\build_fob_remote_call.sqf"; +cancel_build_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\cancel_build_remote_call.sqf"; +prisonner_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\prisonner_remote_call.sqf"; +recycle_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\recycle_remote_call.sqf"; +reinforcements_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\reinforcements_remote_call.sqf"; +sector_liberated_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\sector_liberated_remote_call.sqf"; +intel_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\intel_remote_call.sqf"; +start_secondary_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\start_secondary_remote_call.sqf"; +change_prod_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\change_prod_remote_call.sqf"; +build_fac_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\build_fac_remote_call.sqf"; +if (KPLIB_param_logistic) then { + add_logiGroup_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\add_logiGroup_remote_call.sqf"; + del_logiGroup_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\del_logiGroup_remote_call.sqf"; + add_logiTruck_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\add_logiTruck_remote_call.sqf"; + del_logiTruck_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\del_logiTruck_remote_call.sqf"; + save_logi_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\save_logi_remote_call.sqf"; + abort_logi_remote_call = compile preprocessFileLineNumbers "scripts\server\remotecall\abort_logi_remote_call.sqf"; }; -remote_call_sector = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_sector.sqf"; -remote_call_fob = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_fob.sqf"; -remote_call_battlegroup = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_battlegroup.sqf"; -remote_call_endgame = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_endgame.sqf"; -remote_call_prisonner = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_prisonner.sqf"; -remote_call_intel = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_intel.sqf"; -remote_call_incoming = compileFinal preprocessFileLineNumbers "scripts\client\remotecall\remote_call_incoming.sqf"; +remote_call_sector = compile preprocessFileLineNumbers "scripts\client\remotecall\remote_call_sector.sqf"; +remote_call_fob = compile preprocessFileLineNumbers "scripts\client\remotecall\remote_call_fob.sqf"; +remote_call_battlegroup = compile preprocessFileLineNumbers "scripts\client\remotecall\remote_call_battlegroup.sqf"; +remote_call_endgame = compile preprocessFileLineNumbers "scripts\client\remotecall\remote_call_endgame.sqf"; +remote_call_prisonner = compile preprocessFileLineNumbers "scripts\client\remotecall\remote_call_prisonner.sqf"; +remote_call_intel = compile preprocessFileLineNumbers "scripts\client\remotecall\remote_call_intel.sqf"; +remote_call_incoming = compile preprocessFileLineNumbers "scripts\client\remotecall\remote_call_incoming.sqf"; -civinfo_notifications = compileFinal preprocessFileLineNumbers "scripts\client\civinformant\civinfo_notifications.sqf"; -civinfo_escort = compileFinal preprocessFileLineNumbers "scripts\client\civinformant\civinfo_escort.sqf"; -civinfo_delivered = compileFinal preprocessFileLineNumbers "scripts\server\civinformant\civinfo_delivered.sqf"; +civinfo_notifications = compile preprocessFileLineNumbers "scripts\client\civinformant\civinfo_notifications.sqf"; +civinfo_escort = compile preprocessFileLineNumbers "scripts\client\civinformant\civinfo_escort.sqf"; +civinfo_delivered = compile preprocessFileLineNumbers "scripts\server\civinformant\civinfo_delivered.sqf"; -asymm_notifications = compileFinal preprocessFileLineNumbers "scripts\client\asymmetric\asymm_notifications.sqf"; +asymm_notifications = compile preprocessFileLineNumbers "scripts\client\asymmetric\asymm_notifications.sqf"; execVM "scripts\shared\diagnostics.sqf"; diff --git a/Missionframework/scripts/shared/kill_manager.sqf b/Missionframework/scripts/shared/kill_manager.sqf index 7c0176b0c..429250feb 100644 --- a/Missionframework/scripts/shared/kill_manager.sqf +++ b/Missionframework/scripts/shared/kill_manager.sqf @@ -1,24 +1,9 @@ params ["_unit", "_killer"]; -if (isServer) then { - if (KP_liberation_kill_debug > 0) then {[format ["Kill Manager executed - _unit: %1 (%2) - _killer: %3 (%4)", typeOf _unit, _unit, typeOf _killer, _killer], "KILL"] call KPLIB_fnc_log;}; - // Get Killer, when ACE enabled, via lastDamageSource - if (KP_liberation_ace) then { - if (local _unit) then { - _killer = _unit getVariable ["ace_medical_lastDamageSource", _killer]; - if (KP_liberation_kill_debug > 0) then {["_unit is local to server", "KILL"] call KPLIB_fnc_log;}; - } else { - if (KP_liberation_kill_debug > 0) then {["_unit is not local to server", "KILL"] call KPLIB_fnc_log;}; - if (isNil "KP_liberation_ace_killer") then {KP_liberation_ace_killer = objNull;}; - waitUntil {sleep 0.5; !(isNull KP_liberation_ace_killer)}; - if (KP_liberation_kill_debug > 0) then {["KP_liberation_ace_killer received on server", "KILL"] call KPLIB_fnc_log;}; - _killer = KP_liberation_ace_killer; - KP_liberation_ace_killer = objNull; - publicVariable "KP_liberation_ace_killer"; - }; - }; + if (KPLIB_kill_debug > 0) then {[format ["Kill Manager executed - _unit: %1 (%2) - _killer: %3 (%4)", typeOf _unit, _unit, typeOf _killer, _killer], "KILL"] call KPLIB_fnc_log;}; + // Failsafe if something gets killed before the save manager is finished if (isNil "infantry_weight") then {infantry_weight = 33}; @@ -26,14 +11,14 @@ if (isServer) then { if (isNil "air_weight") then {air_weight = 33}; // BLUFOR Killer handling - if ((side _killer) == GRLIB_side_friendly) then { + if ((side _killer) == KPLIB_side_player) then { // Increase combat readiness for kills near a capital. - private _nearby_bigtown = sectors_bigtown select {!(_x in blufor_sectors) && (_unit distance (markerpos _x) < 250)}; + private _nearby_bigtown = KPLIB_sectors_capital select {!(_x in KPLIB_sectors_player) && (_unit distance (markerpos _x) < 250)}; if (count _nearby_bigtown > 0) then { - combat_readiness = combat_readiness + (0.5 * GRLIB_difficulty_modifier); - stats_readiness_earned = stats_readiness_earned + (0.5 * GRLIB_difficulty_modifier); - if (combat_readiness > 100.0 && GRLIB_difficulty_modifier < 2) then {combat_readiness = 100.0}; + KPLIB_enemyReadiness = KPLIB_enemyReadiness + (0.5 * KPLIB_param_difficulty); + stats_readiness_earned = stats_readiness_earned + (0.5 * KPLIB_param_difficulty); + if (KPLIB_enemyReadiness > 100.0 && KPLIB_param_difficulty < 2) then {KPLIB_enemyReadiness = 100.0}; }; // Weights adjustments depending on what vehicle the BLUFOR killer used @@ -73,9 +58,9 @@ if (isServer) then { if (_unit isKindOf "Man") then { // OPFOR casualty - if (side (group _unit) == GRLIB_side_enemy) then { + if (side (group _unit) == KPLIB_side_enemy) then { // Killed by BLUFOR - if (side _killer == GRLIB_side_friendly) then { + if (side _killer == KPLIB_side_player) then { stats_opfor_soldiers_killed = stats_opfor_soldiers_killed + 1; }; @@ -86,29 +71,29 @@ if (isServer) then { }; // BLUFOR casualty - if (side (group _unit) == GRLIB_side_friendly) then { + if (side (group _unit) == KPLIB_side_player) then { stats_blufor_soldiers_killed = stats_blufor_soldiers_killed + 1; // Killed by BLUFOR - if (side _killer == GRLIB_side_friendly) then { + if (side _killer == KPLIB_side_player) then { stats_blufor_teamkills = stats_blufor_teamkills + 1; }; }; // Resistance casualty - if (side (group _unit) == GRLIB_side_resistance) then { - KP_liberation_guerilla_strength = KP_liberation_guerilla_strength - 1; + if (side (group _unit) == KPLIB_side_resistance) then { + KPLIB_guerilla_strength = KPLIB_guerilla_strength - 1; stats_resistance_killed = stats_resistance_killed + 1; // Resistance is friendly to BLUFOR - if ((GRLIB_side_friendly getFriend GRLIB_side_resistance) >= 0.6) then { + if ((KPLIB_side_player getFriend KPLIB_side_resistance) >= 0.6) then { // Killed by BLUFOR - if (side _killer == GRLIB_side_friendly) then { - if (KP_liberation_asymmetric_debug > 0) then {[format ["Guerilla unit killed by: %1", name _killer], "ASYMMETRIC"] call KPLIB_fnc_log;}; + if (side _killer == KPLIB_side_player) then { + if (KPLIB_asymmetric_debug > 0) then {[format ["Guerilla unit killed by: %1", name _killer], "ASYMMETRIC"] call KPLIB_fnc_log;}; [3, [(name _unit)]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; stats_resistance_teamkills = stats_resistance_teamkills + 1; - [KP_liberation_cr_resistance_penalty, true] spawn F_cr_changeCR; + [KPLIB_cr_resistance_penalty, true] spawn F_cr_changeCR; }; // Killed by a player @@ -119,14 +104,14 @@ if (isServer) then { }; // Civilian casualty - if (side (group _unit) == GRLIB_side_civilian) then { + if (side (group _unit) == KPLIB_side_civilian) then { stats_civilians_killed = stats_civilians_killed + 1; // Killed by BLUFOR - if (side _killer == GRLIB_side_friendly) then { - if (KP_liberation_civrep_debug > 0) then {[format ["Civilian killed by: %1", name _killer], "CIVREP"] call KPLIB_fnc_log;}; + if (side _killer == KPLIB_side_player) then { + if (KPLIB_civrep_debug > 0) then {[format ["Civilian killed by: %1", name _killer], "CIVREP"] call KPLIB_fnc_log;}; [2, [(name _unit)]] remoteExec ["KPLIB_fnc_crGlobalMsg"]; - [KP_liberation_cr_kill_penalty, true] spawn F_cr_changeCR; + [KPLIB_cr_kill_penalty, true] spawn F_cr_changeCR; }; // Killed by a player @@ -145,7 +130,7 @@ if (isServer) then { }; } else { // Civilian vehicle casualty - if (typeOf _unit in civilian_vehicles) then { + if (typeOf _unit in KPLIB_c_vehicles) then { stats_civilian_vehicles_killed = stats_civilian_vehicles_killed + 1; // Destroyed by player @@ -158,19 +143,14 @@ if (isServer) then { }; }; }; -} else { - // Get Killer and send it to server, when ACE enabled, via lastDamageSource - if (KP_liberation_ace && local _unit) then { - if (KP_liberation_kill_debug > 0) then {[format ["_unit is local to: %1", debug_source], "KILL"] remoteExecCall ["KPLIB_fnc_log", 2];}; - KP_liberation_ace_killer = _unit getVariable ["ace_medical_lastDamageSource", _killer]; - publicVariable "KP_liberation_ace_killer"; + + // Body/wreck cleanup + if (!isPlayer _unit) then { + [{ + params ["_unit"]; + if (_unit isKindOf "CAManBase") exitWith { + hideBody _unit; + }; + deleteVehicle _unit; + }, [_unit], KPLIB_cleanup_delay] call CBA_fnc_waitAndExecute; }; -}; - -// Body/Wreck deletion after cleanup delay -if (isServer && !isplayer _unit) then { - sleep GRLIB_cleanup_delay; - hidebody _unit; - sleep 10; - deleteVehicle _unit; -}; diff --git a/Missionframework/stringtable.xml b/Missionframework/stringtable.xml index 6d052ecbf..4d689bece 100644 --- a/Missionframework/stringtable.xml +++ b/Missionframework/stringtable.xml @@ -6,7 +6,7 @@ License: MIT License - http://www.opensource.org/licenses/MIT Localization contributors: - English | Updated: 0.96.7a + English | Updated: 0.96.8 KP Liberation Dev Team - https://github.com/KillahPotatoes Chinese Simplified | Updated: pre 0.96.7a @@ -19,10 +19,10 @@ French | Updated: pre 0.96.7a zbug - https://github.com/GreuhZbug - German | Updated: 0.96.7a + German | Updated: 0.96.8 Wyqer - https://github.com/Wyqer - Italian | Updated: pre 0.96.7a + Italian | Updated: 0.96.8 k4s0 - https://github.com/k4s0 Portuguese | Updated: pre 0.96.7a @@ -46,10 +46,10 @@ - CTI 34 KP Liberation v0.96.7a + CTI 34 KP Liberation v0.96.8 dev - v0.96.7a + v0.96.8 dev Deploy @@ -378,6 +378,7 @@ -- AUF FAHRZEUG LADEN -- CARGAR AL VEHÍCULO -- ЗАГРУЗИТЬ В ТРАНСПОРТ + -- CARICA SUL VEICOLO-- -- 차량에 적재 -- ARACA YÜKLE -- NALOŽIT DO VOZIDLA @@ -387,6 +388,7 @@ -- VON FAHRZEUG ABLADEN -- DESCARGAR DEL VEHÍCULO -- ВЫГРУЗИТЬ ИЗ ТРАНСПОРТА + -- SCARICA DAL VEICOLO -- -- 차량에서 하역 -- ARAÇTAN İNDİR -- VYLOŽENÍ Z VOZIDLA @@ -396,6 +398,7 @@ -- KEIN TRANSPORTFAHRZEUG IN DER NÄHE -- NO HAY VEHÍCULOS DE TRANSPORTE CERCA -- НЕТ ТРАНСПОРТА ПОБЛИЗОСТИ + -- NESSUN VEICOLO DA TRASPORTO NELLE VICINANZE -- -- 주변에 수송차량이 없습니다. -- YAKINLARDA NAKLİYE ARACI YOK -- NELZE NALOŽIT @@ -518,6 +521,7 @@ FOB Container Contenedor de FOB FOB Контейнер + FOB Container 前哨部署柜 前線基地貨櫃 FOB Konteynırı @@ -2857,6 +2861,7 @@ Maximale Verzögerung zur Sektor Deaktivierung (Beginnt nach 5 Minuten seit Aktivierung) Máximo atraso de desactivación de sector (empieza a incrementar después del 5to minuto de activación) Максимальное время деактивации сектора (начинает увелич. после 5-ти минут активации) + Massimo ritardo di attivazione del settore(dopo 5 minuti inizia ad incrementare) Sektör kapanma üst limiti (Sektörün açılmasından 5 dakika sonra artmaya başlar) Maximální zpoždění deaktivace sektoru (začíná se zvyšovat po 5. aktivační minutě) @@ -2865,6 +2870,7 @@ Eingeschränkte Zeus Funktionen Interface de Zeus limitada Ограниченный интерфейс Zeus + Limita interfaccia Zeus 제한된 제우스 인터페이스 Sınırlı Zeus Arayüzü Omezené rozhraní Zeus @@ -2872,12 +2878,14 @@ Zeus for Commander Zeus für Kommandant + Zeus per Comandante Chance that enemies will stay in immobile/damaged vehicles Chance, dass Feinde in fahrunfähigen/beschädigten Fahrzeugen verbleiben Probabilidad de que los enemigos se quedarán dentro de un vehículo inmovilziado/dañado Шанс того, что враги будут оставаться в неподвижных/поврежденных автомобилях + Chance che un nemico rimanga su un veicolo immobile o danneggiato Düşmanların hasarlı araçların içinde kalma şansı Šance, že nepřátelé zůstanou v nepohyblivých / poškozených vozidlech @@ -5101,6 +5109,14 @@ -- 군수물품 밀기 -- TLAČIT KRABICI + + -- CARRY CRATE + -- KISTE TRAGEN + + + -- DROP CRATE + -- KISTE ABLEGEN + -- STACK AND SORT -- STAPELN UND SORTIEREN @@ -6172,6 +6188,7 @@ Siegesbedingung Condición de Victoria Условие для победы + Condizioni di vittoria 승리 조건 Vítězství @@ -6180,6 +6197,7 @@ Alle Hauptstädte Todas las capitales Все столицы + Tutte le capitali 모든 대도시 Všechna hlavní města @@ -6188,6 +6206,7 @@ Alle Hauptstädte und Militärbasen Todas las capitales y bases militares Все столицы и военные базы + Tutte le capitali e le basi militari 모든 대도시 및 군사기지 Všechna hlavní města a vojenské základny @@ -6196,6 +6215,7 @@ Alle Hauptstädte und 60% der Sektoren Todas las capitales y 60% de los sectores Все столицы и 60% секторов + Tutte le capitali e il 60% dei settori 모든 대도시 및 60%의 거점 Všechna hlavní města a 60% sektoru @@ -6204,6 +6224,7 @@ Alle Hauptstädte und 80% der Sektoren TOdas las capitales y 80% de los sectores Все столицы и 80% секторов + Tutte le capitali e l'80% dei settori 모든 대도시 및 80%의 거점 Všechna hlavní města a 80% sektoru @@ -6212,6 +6233,7 @@ Alle Sektoren Todos los sectores Все секторы + Tutti i settori 모든 거점 Všechny sektory @@ -6220,6 +6242,7 @@ KAMPAGNE ABGESCHLOSSEN CAMPAÑA COMPLETA КАМПАНИЯ ВЫПОЛНЕНА + CAMPAGNA COMPLETATA 군사작전 완료 CAMPAIGN KOMPLET @@ -6228,6 +6251,7 @@ Du hast das Gebiet von der feindlichen Unterdrückung befreit. Haz liberado el área de la oposión enemiga. Вы освободили территорию от угнетения врага. + Hai liberato tutta l'area dall'oppressione nemica 당신은 적의 억압으로부터 이 지역을 해방시켰다. Osvobodili jste oblast od nepřátelského útlaku. @@ -6236,6 +6260,7 @@ Spielzeit: %1 Tage, %2 Stunden, %3 Minuten und %4 Sekunden Tiempo de juego: %1 días, %2 horas, %3 minutos y %4 segundos Игровое время: %1 дней, %2 часов, %3 минут и %4 секунд + 걸린 시간: %1 일, %2 시간, %3 분 and %4 초 Doba hraní: % 1 dny, % 2 hodiny, % 3 minuty a % 4 sekund @@ -6384,6 +6409,7 @@ Widerstandskämpfer getötet: %1 Combatientes de la resistencia eliminados: %1 Убито бойцов сопротивления: %1 + Combattente della resistenza ucciso: %1 적군 전투기 격추 : %1 Spojenci zabili: %1 @@ -6392,6 +6418,7 @@ Verbündete Widerstandskämpfer getötet: %1 Combatientes de la resistencia aliada eliminados: %1 Убито союзнических бойцов сопротивления: %1 + Combattente della resistenza alleato ucciso: %1 아군 전투기 격추 : %1 Spojenci zabití: %1 @@ -6400,6 +6427,7 @@ Verbündete Widerstandskämpfer von Spielern getötet: %1 Combatientes de la resistencia aliada eliminados por jugadores: %1 Убито союзнических бойцов сопротивления игроками: %1 + Combattente della resistenza alleato ucciso dal gicoatore: %1 플레이어에 의해 격추된 전투기 : %1 Spojenci zabití hráči: %1 @@ -6436,6 +6464,7 @@ Zivilisten versorgt: %1 Civiles curados: %1 Гражданских вылечено: %1 + Civile curato da: %1 민간인 치료 : %1 Uzdravení civilisté: %1 @@ -6444,6 +6473,7 @@ Zivile Fahrzeuge zerstört: %1 Vehículos civiles destruidos: %1 Транспорта гражданских уничтожено: %1 + Veicolo civile distrutto: %1 파괴된 민간인 차량 : %1 Civilní vozidla byla zničena: %1 @@ -6452,6 +6482,7 @@ Zivile Fahrzeuge von Spielern zerstört: %1 Vehículos civiles destruidos por jugadores: %1 Транспорта гражданских уничтожено игроками: %1 + Veicolo civile distrutto dal giocatore: %1 플레이어에 의해 파괴된 민간인 차량 : %1 Civilní vozidla zničená hráči: %1 @@ -6460,6 +6491,7 @@ Zivile Fahrzeuge beschlagnahmt: %1 Vehículos civiles capturados: %1 Транспорта гражданских захвачено: %1 + Veicolo civile sequestrato da: %1 민간인 차량 탈취 : %1 Krádež civilních vozidel: %1 @@ -6468,6 +6500,7 @@ Zivile Gebäude zerstört: %1 Edificios civiles destruidos: %1 Построек гражданских уничтожено: %1 + Edificio civile distrutto: %1 파괴된 민간 건물 : %1 Zničeno civilních budov: %1 @@ -6490,6 +6523,7 @@ Munition hergestellt: %1 Municiones producidas: %1 Произведено боеприпасов: %1 + Munizioni prodotte: %1 생산된 탄약 : %1 Výroba munice: %1 @@ -6498,6 +6532,7 @@ Munition verbraucht: %1 Municiones gastadas: %1 Боеприпасов потрачено: %1 + Munizioni spese: %1 사용된 탄약 : %1 Spotřeba munice: %1 @@ -6506,6 +6541,7 @@ Kraftstoff hergestellt: %1 Combustible producido: %1 Произведено топлива: %1 + Carburante prodotto: %1 생산된 기름 : %1 Výroba paliva: %1 @@ -6514,6 +6550,7 @@ Kraftstoff verbraucht: %1 Combustible gastado: %1 Топлива потрачено: %1 + Carburante speso: %1 사용된 기름 : %1 Spotřeba paliva: %1 @@ -6522,6 +6559,7 @@ Nachschub hergestellt: %1 Suministros producidos: %1 Произведено припасов: %1 + Rifornimenti creati: %1 생산된 보급품 : %1 Výroba surovin: %1 @@ -6530,6 +6568,7 @@ Nachschub verbraucht: %1 Suministros gastados: %1 Припасов потрачено: %1 + Rifornimenti spesi: %1 사용된 보급품 : %1 Spotřeba surovin: %1 @@ -6746,6 +6785,7 @@ -- Clear FOB area -- Limpiar área de FOB -- Очистить зону FOB + -- Pulisci area FOB -- FOB Gebiet räumen -- 전초기지 주변 정리 -- Vymazat zónu FOB @@ -6755,6 +6795,7 @@ FOB eingepackt.\nEventuelle Gebietsräumung wird zum Serverneustart rückgängig gemacht. FOB empacado. \nProbablemente el permiso de creación será revertido después de reiniciar el servidor. FOB свернуто.\nЕсли вы очищали место для FOB, оно будет восстановлено после перезапуска сервера. + FOB ripiegata.\nL'autorizzazione eventualmente creata verrà ripristinata al riavvio del server. FOB가 재포장됩니다. 이 상태로 서버 재시작시 이 부근의 건물이나 장비들은 사라집니다. FOB je zabalen.\Po restartování serveru bude pravděpodobně vytvořené oprávnění zrušeno. @@ -6763,6 +6804,7 @@ Dynamischer Nebel (A3 Vanilla) Niebla dinámica (A3 Default) Динамический туман (A3 Vanilla) + Nebbia dinamica (A3 Vanilla) 동적인 안개 (A3 Vanilla) Dynamická mlha (A3 Vanilla) @@ -6771,6 +6813,7 @@ Start-FOB bereitgestellt als Empezar con FOB proveído como Создать FOB в виде + Partenza con FOB dispiegata a 시작시 전초기지는 다음과 같이 제공됩니다. První FOB poskyzován jako @@ -6779,6 +6822,7 @@ FOB Container Contenedor FOB FOB Контейнер + FOB Container 전초기지 설치박스 FOB Kontejner @@ -6787,6 +6831,7 @@ FOB LKW Camión FOB FOB Грузовик + Camion FOB 전초기지 설치트럭 FOB Nákladní auto @@ -6794,232 +6839,277 @@ Client options variant Spielermenü Variante Variantes de opciones de cliente + Opzioni client Vybrat možnost klienta GREUH Extended Options GREUH Erweiterte Optionen GREHU Opciones Extendidas + GREHU Opzioni Avanzate GREUH Rozšířené možnosti KP Player Menu (requires CBA) KP Spielermenü (benötigt CBA) Menú de jugador KP (requiere CBA) + Menu di gioco KP (richiede CBA) KP Player Menu (vyžaduje CBA) Are you sure? Bist du sicher? ¿Estás seguro? + Sei sicuro? jsi si tím jistý? This will permanently remove a total of %1 terrain objects (houses, trees, fences, lamps, etc.) within a radius of %2m around %3. Dies wird insgesamt %1 Kartenobjekte (Häuser, Bäume, Zäune, Lampen, etc.) im Umkreis von %2m um %3 herum permanent entfernen. Esta acción removera permanentemente un total de %1 objetos de terreno (casas, árboles, bardas, lamparas, etc.) dentro de un radio de %2m alrededor de %3. + Questo rimuoverà permanentemente un totale di %1 oggetti del terreno (case, alberi, recinzioni, lampade, ecc.) Entro un raggio di %2m intorno a %3. Tím se trvale odstraní celkem %1 terénních objektů (domy, stromy, ploty, lampy atd.) V okruhu %2m kolem %3. Add enemies to Zeus editable objects Feindliche Einheiten für Zeus editierbar Agregar enemigos como objetos editables de Zeus + Aggiungi nemici come oggetti editabili da Zeus Přidejte nepřátele k upravitelným objektům Zeus Arma 3 High Command for Commander Arma 3 Oberbefehl für Kommandanten Arma 3 High Command para comandantes + Arma 3 High Command per il comandante Arma 3 Vrchní velení velitele Arma 3 High Command Arma 3 Oberbefehl Arma 3 High Command + Arma 4 High Command Arma 3 Vrchní velení velitele BI Support System access Zugriff auf BI Support System + BI Supporto di accesso al sistema BI Podpora přístupu do systému Commander and Whitelist Kommandant und Whitelist Velitel a whitelist + Comandante e Whitelist Everyone Jeder Každý + Tutti Weapon sway Waffenschwanken (Weapon sway) Zbraň houpat + Ondeggiamento arma (Weapon sway) Ingame Tutorial Tutorial im Spiel Výukový program Ingame + Tutorial in gioco Crate Kiste Bedna + Crea Surrendering Soldier Kapitulierender Soldat Vzdávající se voják + Soldato arrendevole Wounded Civilian Verwundeter Zivilist Zraněný civilista + Civile ferito KP Liberation Tutorial KP Liberation Tutorial KP Liberation Tutorial + KP liberation Tutorial Do you want to enable the interactive tutorial?<br/>It'll guide you through the aspects of the mission. Check your tasks area on the map for further information on each task.<br/><br/>(This popup can be disabled in the mission parameters) Möchtest du das interaktive Tutorial aktivieren?<br/>Es wird dich durch einzelnen Missionsaspekte führen. Prüfe die Aufgaben im Kartenbildschirm für weitere Informationen zu den einzelnen Aufgaben.<br/><br/>(Dieses Pop-Up kann in den Missionsparametern deaktiviert werden) Chcete povolit interaktivní výukový program?<br/>Provede vás aspekty mise. Další informace o jednotlivých úkolech naleznete v oblasti úkolů na mapě.<br/><br/>(Toto okno lze v parametrech mise deaktivovat) + Vuoi abilitare il tutorial interattivo?<br/>Ti guiderà attraverso gli aspetti della missione. Controlla la tua area delle attività sulla mappa per ulteriori informazioni su ciascuna attività<br/><br/>(questo popup può essere disabilitato nei parametri della missione) You've completed all currently available/implemented tutorials.<br/>Have a lot of fun with playing this mission.<br/><br/>Should you've questions or want to learn the more deeper mechanics, make sure you visit the <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki">KP Liberation Wiki</a>.<br/>We've also a <a href="https://discord.gg/Qk35Sw8">Discord Server</a> where hundreds of KP Libertion players are around. Du hast alle derzeit verfügbaren/implementierten Tutorials abgeschlossen.<br/>Wir wünschen dir sehr viel Spaß mit dem Spielen der Mission.<br/><br/>Solltest du Fragen haben oder die etwas über die tiefergehenden Mechaniken erfahren wollen, dann schaue als erstes in das <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki">KP Liberation Wiki</a>.<br/>Außerdem gibt es unseren <a href="https://discord.gg/Qk35Sw8">Discord Server</a>, wo hunderte von KP Liberation Spielern zu finden sind. Dokončili jste všechny aktuálně dostupné/implementované výukové programy.<br/> Užij si spoustu zábavy při hraní této mise.<br/><br/> Pokud máte dotazy nebo se chcete dozvědět hlubší mechaniku, ujistěte se, že navštívíte stránku <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki"> KP Osvobození Wiki</a>. <br/> Také jsme a <a href="https://discord.gg/Qk35Sw8">Discord Server</a> kde jsou kolem stovky hráčů KP Libertion. + Hai completato tutti i tutorial attualmente disponibili / implementati.<br/>Divertiti molto giocando a questa missione.<br/><br/>Se hai domande o vuoi imparare le meccaniche più approfondite, assicurati di visitare la <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki">KP Liberation Wiki</a>.<br/>Noi abbiamo anche un <a href="https://discord.gg/Qk35Sw8">Discord Server</a> dove troverai centinaia di giocatori della KP Libertion. KP Liberation Tutorial Tasks KP Liberation Tutorial Aufgaben KP osvobození Výuky + Missione KP Liberation Tutorial Tasks of the KP Liberation Tutorial.<br/>It'll create new tasks when the correct circumstances are reached and there are still tutorials available. Aufgaben des KP Liberation Tutorials.<br/>Es werden automatisch neue Aufgaben erstellt, sobald die entsprechenden Umstände eintreten und noch weitere Tutorials verfügbar sind. Úkoly KP Osvobození Tutorial.<br/>To bude vytvářet nové úkoly, když jsou dosaženy správné okolnosti a stále jsou k dispozici výukové programy. + Compiti del tutorial di KP Liberation.<br/> creerà nuovi compiti quando le circostanze corrette saranno raggiunte e ci saranno ancora tutorial disponibili. First FOB deployment Erste FOB errichten + Primo dispiegamento della FOB První nasazení FOB This tasks will guide you through the deployment of your first FOB and gathering the start resources. Diese Aufgaben werden dich durch die Bereitstellung deiner ersten FOB und dem Sammeln der Startressourcen führen. + Questo primo impiego ti guida nella creazione della prima FOB e ti insegnera ad acquisire le risorse iniziali. Tyto úkoly vás provedou nasazením prvního fob a shromažďováním počátečních prostředků. Transport FOB Container FOB Container transportieren Přepravní FOB kontejner + Trasporta container FOB This is your first FOB container, which allows you to deploy a FOB.<br/>You need to slingload it via the transport helicopter to a position at least 1km away from the operation base in order to deploy it. We recommend to build it in the vicinity of a factory.<br/>After you've transported the container to the desired position, head near to it and you'll get an scroll wheel action to place the FOB.<br/>We'll continue after you've deployed your first FOB. Dies ist dein erster FOB Container mit dem du eine FOB bereitstellen kannst.<br/>Diesen musst du als Außenlast mit dem Transporthelikopter zu einer Position mit mindestens 1km Abstand zur Operationsbasis bringen, um die FOB aufzubauen. Wir empfehlen die erste FOB in der Nähe eines Fabrik-Sektors zu errichten.<br/>Nachdem du den Container zur gewünschten Position gebracht hast, nähere dich ihm und du wirst eine Mausrad-Aktion erhalten, um die FOB aufzustellen.<br/>Wir fahren fort nachdem du deine erste FOB errichtet hast. + Questo è il tuo primo container FOB, che ti permetterà di dispiegare una FOB.<br/>È necessario caricarlo tramite l'elicottero da trasporto in una posizione ad almeno 1 km di distanza dalla base operativa per dispiegarlo. Si consiglia di costruirlo nelle vicinanze di una fabbrica.<br/>Dopo aver trasportato il contenitore nella posizione desiderata, avvicinati ad esso e otterrai un'azione della rotella di scorrimento per posizionare il FOB.<br/>Continueremo dopo che avrai distribuito il tuo primo FOB. Jedná se o váš první FOB kontejner, který vám umožní nasadit FOB.<br/> Musíte ho naložit transportním vrtulníkem na pozici, která je vzdálena alespoň 1 km od operační základny, abyste ji mohli nasadit. Doporučujeme jej postavit v blízkosti továrny.<br/> Po přepravě kontejneru do požadovaného místa zamiřte k němu a získáte akci rolovacího kolečka, která umístí FOB.<br/> Budeme pokračovat, až to provedete. Drive FOB Truck FOB Truck fahren Nákladní auto FOB + Guida il camion FOB This is your first FOB truck, which allows you to deploy a FOB.<br/>You need to drive it to a position at least 1km away from the operation base in order to deploy it. We recommend to build it in the vicinity of a factory.<br/>After you've driven the truck to the desired position, head near to it and you'll get an scroll wheel action to place the FOB.<br/>We'll continue after you've deployed your first FOB. Dies ist dein erster FOB LKW mit dem du eine FOB bereitstellen kannst.<br/>Diesen musst du zu einer Position mit mindestens 1km Abstand zur Operationsbasis fahren, um die FOB aufzubauen. Wir empfehlen die erste FOB in der Nähe eines Fabrik-Sektors zu errichten.<br/>Nachdem du den LKW zur gewünschten Position gebracht hast, nähere dich ihm und du wirst eine Mausrad-Aktion erhalten, um die FOB aufzustellen.<br/>Wir fahren fort nachdem du deine erste FOB errichtet hast. + Questo è il tuo primo camion FOB, che ti consente di distribuire un FOB.<br/>È necessario guidarlo in una posizione ad almeno 1 km dalla base operativa per poterlo distribuire. Si consiglia di costruirlo nelle vicinanze di una fabbrica.<br/>Dopo aver guidato il camion nella posizione desiderata, avvicinati ad esso e otterrai un'azione della rotella di scorrimento per posizionare il FOB.<br/>Continueremo dopo che avrai distribuito il tuo primo FOB. Jedná se o váš první FOB truck, který vám umožní nasadit FOB.<br/> Musíte ho dojet na pozici alespoň 1 km od operační základny, abyste ji mohli nasadit. Doporučujeme ji postavit v blízkosti továrny.<br/> Poté, co jste řídili vůz do požadovaného místa, zamiřte blízko k němu a dostanete akci rolovacího kolečka pro umístění FOB.<br/> Budeme pokračovat, až rozmístíte svůj první FOB. Build a storage area Baue einen Lagerbereich + Costruisci un'area di stoccaggio Vytvoření úložného prostoru Now you've access to the build menu via the scroll wheel actions.<br/>Use this action to place a storage area. You can find it in the support tab of the build menu.<br/>This is needed to store the resource crates we'll send to you after this task. Nun hast du Zugriff zum Baumenü über die Mausrad-Aktionen.<br/>Benutze diese Aktion, um einen Lagerbereich zu errichten. Die Lagerbereich sind im Unterstützungs-Reiter des Baumenüs.<br/>Dieser ist notwendig, um die Startressourcen, die wir dir im Anschluss an diese Aufgabe zukommen lassen, einzulagern. + Ora hai accesso al menu di costruzione tramite le azioni della rotella di scorrimento.<br/>Usa questa azione per posizionare un'area di stoccaggio. Puoi trovarlo nella scheda Supporto del menu di costruzione.<br/>Questo è necessario per memorizzare le casse di risorse che ti invieremo dopo questa attività. Nyní máte přístup k nabídce sestavení prostřednictvím akcí rolovacího kolečka.<br/> Tato akce slouží k umístění skladovacího prostoru. Najdete ji na kartě budovy v nabídce stavení.<br/> To je nutné k uložení beden prostředků, které vám pošleme po tomto úkolu. Collect start resources Sammle Startressourcen + Acquisisci risorse iniziali Shromáždit počáteční zdroje We've send you some start resource crates via paradrop. Collect them and store them in your storage area to add them to the FOB resource pool.<br/>Resources have always to be stored in such areas to use them for building. It's not enough to have them near the FOB. If you go near a crate you'll have a store and a push scroll wheel action, which will help you. Wir haben dir ein paar Kisten mit Startressourcen per Fallschirmabwurf zukommen lassen. Sammel sie ein und lagere sie in deinen Lagerbereich ein, um sie den verfügbaren Ressourcen der FOB hinzuzufügen.<br/>Ressourcen müssen übrigens immer in solche Bereiche eingelagert werden, damit sie zum bauen verwendet werden können. Es reicht nicht aus, die Kisten einfach in der Nähe der FOB zu haben. Bist du in der Nähe einer Kiste, hast du unter anderem eine "Einlagern" und "Schieben" Mausrad-Aktion, welche dir helfen werden. + Ti abbiamo inviato alcune casse di risorse iniziali tramite paradrop. Raccoglili e conservali nella tua area di stoccaggio per aggiungerli al pool di risorse FOB.<br/>Le risorse devono sempre essere immagazzinate in tali aree per usarle per la costruzione. Non basta averli vicino al FOB. Se ti avvicini a una cassa, avrai un negozio e una rotella di scorrimento, che ti aiuterà. Poslali jsme vám přes paradrop nějaké bedny se startem. Shromážděte je a uložte je do úložiště a přidejte je do fondu zdrojů FOB.<br/> Zdroje musí být vždy uloženy v těchto oblastech, aby je mohly používat pro stavbu. Nestačí je mít blízko FOB. Pokud se přiblížíte k bedně, budete mít možnost a akci push rolovacího kolečka, která vám pomůže. Capture your first factory Erobere deine erste Fabrik + Cattura la tua prima fabbrica Zachyťte svou první továrnu This tasks will guide you through the process of capturing a factory sector, take possible POWs, help possible wounded civilians and start the resource production. Diese Aufgaben werden dich durch die Eroberung eines Fabrik-Sektors, das Festnehmen möglicher Gefangener, der Betreuung möglicher verwundeter Zivilisten und den Start der Ressourcenproduktion führen. + Questi compiti ti guideranno attraverso il processo di cattura di un settore di fabbrica, prenderanno possibili prigionieri di guerra, aiuteranno possibili civili feriti e avvieranno la produzione di risorse. Tyto úkoly vás provedou procesem zachycení výrobního sektoru, vezmou možné válečné zajatce, pomohou zraněným civilistům a zahájí výrobu zdrojů. Approach a factory Nähere dich einer Fabrik + Avvicinamento ad una fabbrica Přistupte k továrně It's always a good decision to start your campaign with capturing a factory. That way you'll be able to produce more resources, which you'll need in order to build more vehicles and later air assets.<br/>We've marked up to three near factory sectors on the map for you. Decide by yourself, which one you want to approach.<br/>We'll continue, if you're near one of the marked factories.<br/><br/>More information about the different sector types can be found in our <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Sectors">Wiki</a>. Es ist immer eine gute Entscheidung die Kampagne mit der Eroberung einer Fabrik zu beginnen. Dadurch wirst du in der Lage sein weitere Ressourcen zu produzieren, um weitere Bodenfahrzeuge und später auch Luftfahrzeuge zu bauen.<br/>Wir haben bis zu drei nahe Fabriken für dich auf der Karte markiert. Entscheide selbst, welche du angehen möchtest.<br/>Wir fahren fort, wenn du in der Nähe einer der markierten Fabriken bist.<br/><br/>Mehr Informationen über die verschiedenen Sektortypen findest du in unserem <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Sectors">Wiki</a>. + È sempre una buona decisione iniziare la tua campagna con l'acquisizione di una fabbrica. In questo modo sarai in grado di produrre più risorse, di cui avrai bisogno per costruire più veicoli e successivamente risorse aeree.<br/>Abbiamo contrassegnato per te fino a tre settori vicini alla fabbrica sulla mappa. Decidi da solo a quale ti vuoi avvicinare.<br/>Continueremo, se sei vicino a una delle fabbriche contrassegnate.<br/><br/>Maggiori informazioni sui diversi tipi di settore possono essere trovate nel nostro <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Sectors">Wiki</a>. Je vždy dobré začít kampaň se zachycením továrny. Tímto způsobem budete moci produkovat více zdrojů, které budete potřebovat, abyste mohli postavit více vozidel a později letecké prostředky.<br/> Označili jsme na mapě až tři blízké výrobní sektory. Rozhodněte se sami, který z nich chcete přistupovat.<br/> Budeme pokračovat, pokud jste poblíž jedné z označených továren.<br/><br/> Více informací o různých typech odvětví naleznete v našem <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Sectors"> Wiki</a>. Conquer the factory Erobere die Fabrik + Conquistare una fabbrica Dobýt továrnu The factory is now activated and will spawn enemy defenders. A full sector activation might take up to 20 seconds, depending on the amount of player side units near the sector. The more troops, the faster it'll spawn. This is to avoid random spawning by e.g. helicopter or jet fly-bys.<br/><br/>Now you've to defeat the enemy garrison until they surrender. Die Fabrik ist nun aktiv und wird feindliche Verteidigungstruppen erzeugen. Eine vollständige Sektoraktivierung kann bis zu 20 Sekunden dauern, abhängig von der Menge an freundlichen Einheiten in der Nähe eine Sektors. Umso mehr Einheiten, umso schneller. Dies verhindert, dass zufällige Sektoren durch lediglich vorbeifliegende Helikopter oder Jets aktiviert werden.<br/><br/>Nun musst du die feindliche Garnison, bis zur Aufgabe, bekämpfen. + La fabbrica è ora attivata e genererà difensori nemici. Un'attivazione completa di un settore potrebbe richiedere fino a 20 secondi, a seconda della quantità di unità lato giocatore vicino al settore. Più truppe, più velocemente si genererà. Questo per evitare la deposizione delle uova casuale, ad es. voli in elicottero o jet.<br/><br/>Ora devi sconfiggere la guarnigione nemica finché non si arrendono. Továrna je nyní aktivována a bude plodit nepřátelské obránce. Úplná aktivace sektoru může trvat až 20 sekund, v závislosti na množství jednotek na straně hráče v blízkosti sektoru. Čím více vojáků, tím rychleji se vynoří. To má zabránit náhodnému tření např. vrtulník nebo tryskové přelety .<br/><br/> Nyní musíte porazit nepřátelskou posádku, dokud se nevzdají. Capture and care Gefangennahme und Versorgung + Cattura e utilizza Zachyťte a pečujte After capturing a sector there is a chance that enemies surrendered or wounded civilians are in need of medical aid.<br/>We've marked these for you this time. Normally you need to search the buildings for surrendering enemies and have a look on the map for small violet circles which gives a hint for wounded civilians.<br/><br/>Approach all of the markers to capture the enemies and provide medical assistance for the civilians. Nachdem ein Sektor erobert wurde, besteht die Chance, dass Feinde sich ergeben und verwundete Zivilisten medizinische Hilfe benötigen.<br/>Dieses mal haben wir diese für dich markiert. Normalerweise musst du die Gebäude nach sich ergebenen Feinden durchsuchen und auf der Karte nach kleinen violetten Markierungen schauen, welche dir einen Anhaltspunkt für verwundete Zivilisten gibt.<br/><br/>Nähere dich allen Markierungen, um Feinde gefangen zu nehmen und den Zivilisten zu helfen. + Dopo aver catturato un settore c'è la possibilità che i nemici si arrendano o i civili feriti abbiano bisogno di assistenza medica.<br/>We've marked these for you this time. Normally you need to search the buildings for surrendering enemies and have a look on the map for small violet circles which gives a hint for wounded civilians.<br/><br/>Avvicinati a tutti i segnalini per catturare i nemici e fornire assistenza medica ai civili. Po obsazení sektoru je šance, že nepřátelé, kteří se vzdali nebo budou zraněni civilisté, potřebují lékařskou pomoc.<br/> Tentokrát jsme je označili. Za normálních okolností je třeba hledat budovy pro odevzdání nepřátel a podívat se na mapě pro malé fialové kruhy, které dává náznak pro zraněné civilisty.<br/><br/> Přistupte ke všem značkám, abyste zachytili nepřátele a poskytli lékařskou pomoc civilistům. Build a storage area Baue einen Lagerbereich + Creare un'area di stoccaggio Vybudujte skladovací prostor You need to place down a storage area for each factory you conquer. Otherwise the factory won't be able to produce resources due to a lack of storage space.<br/>Use the scroll wheel action to place a storage area at the factory sector. Für jede eroberte Fabrik muss ein Lagerbereich errichtet werden. Andernfalls wird die Fabrik, aufgrund fehlendem Lagerplatz, keine Ressourcen produzieren können.<br/>Benutze die entsprechende Mausrad-Aktion, um einen Lagerbereich bei der Fabrik zu errichten. + Devi posizionare un'area di stoccaggio per ogni fabbrica che conquisti. In caso contrario, la fabbrica non sarà in grado di produrre risorse per mancanza di spazio di archiviazione.<br/>Utilizzare l'azione della rotella di scorrimento per posizionare un'area di stoccaggio nel settore della fabbrica. musíte umístit úložný prostor pro každou továrnu, kterou dobýváte. V opačném případě nebude továrna schopna vyrábět zdroje z důvodu nedostatku úložného prostoru.<br/> Pomocí akce rolovacího kolečka umístěte úložný prostor do výrobního sektoru. Start the production Starte die Produktion + Avvia la produzione Zahajte výrobu Now the factory is ready to start produce resources. Use the scroll-wheel action to open the production interface and start the production in the just conquered factory.<br/>More detailed information about the interface can be found in our <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Production">Wiki</a>. Nun ist die Fabrik dafür bereit, um Ressourcen zu produzieren. Benutze die Mausrad-Aktion, um das Produktionsinterface zu öffnen und die Produktion in der eroberten Fabrik zu starten.<br/>Detailliertere Informationen über das Produktionsinterface findest du in unserem <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Production">Wiki</a>. + Ora la fabbrica è pronta per iniziare a produrre risorse. Usa l'azione della rotella di scorrimento per aprire l'interfaccia di produzione e avviare la produzione nella fabbrica appena conquistata.<br/>Informazioni più dettagliate sull'interfaccia possono essere trovate nel nostro <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Production">Wiki</a>. Nyní je továrna připravena začít vyrábět zdroje. Pomocí akce rolovacího kolečka otevřete výrobní rozhraní a začněte vyrábět v právě dobyté továrně.<br/> Podrobnější informace o rozhraní naleznete v našem <a href="https://github.com/KillahPotatoes/KP-Liberation/wiki/EN_Production">Wiki</a>. Direct arsenal access without KPLIB Loadout Dialog Direkter Arsenalzugang ohne KPLIB Loadout Dialog + Accesso diretto all'arsenale senza KPLIB Loadout Dialog UNDER ATTACK WIRD ANGEGRIFFEN + SOTTO ATTACCO @@ -7029,6 +7119,7 @@ -- KP 玩家選單 -- -- Menú de Jugador KP -- -- KP Spielermenü -- + -- KP Menu Giocatore -- -- KP Menu do Jogador -- -- KP Player Nabídka -- @@ -7037,6 +7128,7 @@ KP 玩家選單 Menú de Jugador KP KP Spielermenü + KP Menu Giocatore KP Menu do Jogador KP Player Nabídka @@ -7045,6 +7137,7 @@ 玩家資訊 Información de Jugador Spielerinformationen + Informazioni Giocatore Informação do Jogador Informace o hráči @@ -7053,6 +7146,7 @@ 階級 Rango: Dienstgrad: + Grado: Rank: Hodnost: @@ -7061,6 +7155,7 @@ 得分 Puntaje: Punkte: + Punteggio: Pontuação: Skóre: @@ -7069,6 +7164,7 @@ 遊戲時間 Tiempo de juego: Spielzeit: + Tempo di gioco: Tempo de jogo: Čas hraní: @@ -7077,6 +7173,7 @@ KP Ranks 模組未裝載 KP Ranks mod no ha sido cargado KP Ranks Mod nicht geladen + KP Ranks Mod non caricata O mod KP Ranks não está carregado KP Ranks mod nebyl načten @@ -7085,12 +7182,14 @@ 團隊管理 Administración de grupo Gruppenverwaltung + Gestione Gruppo Gerenciar Grupo Správa skupiny Create Erstellen + Crea Crear Criar Vytvořit @@ -7100,6 +7199,7 @@ 加入 Unirse Beitreten + Entra Juntar-se Připojit se @@ -7108,6 +7208,7 @@ 重新命名 Renombrar Umbenennen + Rinomina Renomear Přejmenovat @@ -7116,6 +7217,7 @@ 視距設定 Configuración de distancia de visión Sichtweiteneinstellungen + Visualizza settaggi distanza Distância de Visão Nastavení vzdálenosti @@ -7124,6 +7226,7 @@ m 步兵視野 m a pie m zu Fuß + m su piedi m A pé Pěšák @@ -7132,6 +7235,7 @@ m 地面載具視野 m en vehículos de tierra m in Bodenfahrzeugen + m nei veicoli di terra m em veículos terrestres Vozidla @@ -7140,6 +7244,7 @@ m 空中載具視野 m en vehículos de aire m in Luftfahrzeugen + m nei veivoli m em veículos aéreos Letectvo @@ -7148,6 +7253,7 @@ 細項設定 Configuración miscelanea Sonstige Einstellungen + Settaggi Vari Outras Configurações Různé nastavení @@ -7156,6 +7262,7 @@ 地形細節 Detalle de terreno: Terraindetail: + Dettaglio terreno: Detalhe do terreno: Detail terénu: @@ -7164,6 +7271,7 @@ Bajo Niedrig + Basso Baixo Nízký @@ -7172,6 +7280,7 @@ 標準 Estandard Standard + Standard Padrão Normální @@ -7180,6 +7289,7 @@ Alto Hoch + Alto Alto Vysoký @@ -7188,6 +7298,7 @@ 非常高 Muy alto Sehr Hoch + Molto Alto Muito Alto Velmi vysoký @@ -7196,6 +7307,7 @@ 極高 Ultra Ultra + Ultra Ultra Ultra @@ -7204,6 +7316,7 @@ 自動第三人稱視角 Cámara auto 3era persona: Auto 3rd-Person-Sicht: + Vista in 3° persona automatica Câmera auto em 3º pessoa: Pohled z třetí osoby: @@ -7212,6 +7325,7 @@ 關閉 Desabilitar Deaktiviert + Disattivo Desativado Zakázáno @@ -7220,6 +7334,7 @@ 空中載具 Vehículos de aire Luftfahrzeuge + Veivoli Veículos aéreos Letectvo @@ -7228,6 +7343,7 @@ 地面載具 Vehículos de tierra Bodenfahrzeuge + Veicoli di terra Veículos terrestres Pozemní vozidla @@ -7236,6 +7352,7 @@ 所有載具 Todos los vehículos Alle Fahrzeuge + Tutti i veicoli Todos os veículos Všechna vozidla @@ -7244,6 +7361,7 @@ 關閉文字聊天: Deshabilitar conversaciones de radio: KI Funk deaktivieren: + Disattiva chat radio: Desativar comm's de rádio: Zakázat rádiový chat: @@ -7252,6 +7370,7 @@ No Nein + No Não Ne @@ -7260,6 +7379,7 @@ 只有語音通訊 Voz Stimme + Voce Voz hlas @@ -7268,6 +7388,7 @@ 語音+文字通訊 Voz + Chat Stimme + Chat + Voce + Chat Voz + Chat Hlas + chat @@ -7276,6 +7397,7 @@ 載具內音量: Volumen en vehículo: Lautstärke im Fahrzeug: + Suono dentro i veicoli: Volume dentro do veículo: Hlasitost ve vozidle: @@ -7284,6 +7406,7 @@ 使用 Aplicar Anwenden + Apllica Aplicar Potvrdit @@ -7292,6 +7415,7 @@ 如果你有使用ACE模組,聲音設定將會被ACE的覆蓋 Los ajustes de sonido han sido sobreescritos por ACE, si debieras usarlos. Die Lautstärkeanpassung wird durch ACE überschrieben, wenn du es nutzen solltest. + Le impostazioni audio sono sovrascritte dalla ACE, se decidi di utilizzarla O ajuste de som é sobrescrito pelo ACE se você usar ele. Úprava zvuku je přepsána ACE, pokud ji použijete. @@ -7300,6 +7424,7 @@ 你不是這個團隊的隊長 No eres el líder en el grupo. Du bist nicht der Anführer dieser Gruppe. + Non sei il leader di questo gruppo. Você não é o lider desse grupo. Nejste vůdce této skupiny. @@ -7308,12 +7433,14 @@ 陞階系統關閉 Sistema de niveles desactivado Levelsystem deaktiviert + sistema di livellamento disabilitato Sistema de níveis desativado Vyrovnávací systém zakázán KP Player Menu v1.0.2\nby Wyqer KP Spielermenü v1.0.2\nvon Wyqer + KP Player Menu v1.0.2\nby Wyqer Menú de Jugador KP v1.0.2\npor Wyqer KP Player Menu v1.0.2\nby Wyqer diff --git a/Missionframework/ui/liberation_deathscreen.hpp b/Missionframework/ui/liberation_deathscreen.hpp deleted file mode 100644 index 9905f55d7..000000000 --- a/Missionframework/ui/liberation_deathscreen.hpp +++ /dev/null @@ -1,46 +0,0 @@ -class blackscreen { - idd = 5651; - movingEnable = false; - controls[]= { - "OuterBackground", "Skull", "GREUH_WoundedLabel" - }; - class OuterBackground { - idc = -1; - type = CT_STATIC; - style = ST_LEFT; - colorText[] = COLOR_BLACK; - colorBackground[] = COLOR_BLACK; - font = FontM; - sizeEx = 0.023; - x = -3; y = -3; - w = 9; h = 9; - text = ""; - }; - class Skull { - idc = 666; - type = CT_STATIC ; - style = ST_PICTURE; - colorText[] = { 1,1,1,0.15 }; - colorBackground[] = COLOR_NOALPHA; - font = FontM; - sizeEx = 0.1 * safezoneH; - x = 0.3 * safezoneW + safezoneX; - w = 0.4 * safezoneW; - y = 0.2 * safezoneH + safezoneY; - h = 0.6 * safezoneH; - text = "res\skull.paa"; - }; - class GREUH_WoundedLabel { - idc = 4867; - type = CT_STATIC; - style = ST_CENTER; - colorText[] = COLOR_WHITE; - colorBackground[] = COLOR_NOALPHA; - font = FontM; - sizeEx = 0.07 * safezoneH; - shadow = 1; - x = 0.3 * safezoneW + safezoneX; y= 0.25 * safezoneH + safezoneY; - w = 0.4 * safezoneW; h = 0.07 * safezoneH; - text = $STR_REVIVE_LABEL; - }; -}; diff --git a/Missionframework/ui/liberation_interface.hpp b/Missionframework/ui/liberation_interface.hpp index 5c5b2c4c6..a0d6b2466 100644 --- a/Missionframework/ui/liberation_interface.hpp +++ b/Missionframework/ui/liberation_interface.hpp @@ -7,7 +7,6 @@ #include "liberation_menu.hpp" #include "liberation_tutorial.hpp" #include "liberation_endscreen.hpp" -#include "liberation_deathscreen.hpp" #include "liberation_squad.hpp" #include "liberation_permissions.hpp" #include "liberation_arsenal.hpp" @@ -15,4 +14,4 @@ #include "liberation_halo.hpp" #include "liberation_secondary.hpp" #include "liberation_production.hpp" -#include "liberation_logistic.hpp" \ No newline at end of file +#include "liberation_logistic.hpp" diff --git a/Missionframework/ui/liberation_squad.hpp b/Missionframework/ui/liberation_squad.hpp index d877744ec..e5201a191 100644 --- a/Missionframework/ui/liberation_squad.hpp +++ b/Missionframework/ui/liberation_squad.hpp @@ -75,7 +75,7 @@ class liberation_squad { sizeEx = 0.025 * safezoneH; text = $STR_RESUPPLY; tooltip = $STR_RESUPPLY_TOOLTIP; - action = "GRLIB_squadaction = 1"; + action = "KPLIB_squadaction = 1"; }; class RemoveButton: StdButton { idc = 211; @@ -86,7 +86,7 @@ class liberation_squad { sizeEx = 0.025 * safezoneH; text = $STR_REMOVE_MEMBER; tooltip = $STR_REMOVE_MEMBER_TOOLTIP; - action = "GRLIB_squadaction = 2"; + action = "KPLIB_squadaction = 2"; }; class ReplaceButton: StdButton { idc = 212; @@ -97,7 +97,7 @@ class liberation_squad { sizeEx = 0.025 * safezoneH; text = $STR_DEPLOY_ON_MEMBER; tooltip = $STR_DEPLOY_ON_MEMBER_TOOLTIP; - action = "GRLIB_squadaction = 3"; + action = "KPLIB_squadaction = 3"; }; class ConfirmButton: StdButton { idc = 213; @@ -107,7 +107,7 @@ class liberation_squad { h = (0.04 * safezoneH); sizeEx = 0.025 * safezoneH; text = $STR_CONFIRM; - action = "GRLIB_squadconfirm = 1"; + action = "KPLIB_squadconfirm = 1"; }; class CancelButton: StdButton { idc = 214; @@ -117,7 +117,7 @@ class liberation_squad { h = (0.04 * safezoneH); sizeEx = 0.025 * safezoneH; text = $STR_RECYCLING_CANCEL; - action = "GRLIB_squadconfirm = 0"; + action = "KPLIB_squadconfirm = 0"; }; class ButtonClose: StdButton { x = 0.785 * safezoneW + safezoneX; diff --git a/Missionframework/whitelist.sqf b/Missionframework/whitelist.sqf deleted file mode 100644 index 22c3ab81d..000000000 --- a/Missionframework/whitelist.sqf +++ /dev/null @@ -1,21 +0,0 @@ -// Here you can allow people to use the commander slot. It will only be enforced if you activate the related mission option. -// When editing be careful with quotes and commas - -// Allowed team tags, as defined in your team's squad.xml -// This isn't very secure but efficient to whitelist a lot of people at once. -GRLIB_whitelisted_tags = [ - -]; - -// Allowed individual players based on their SteamID64. This is the most secure way to do. -// For example: "76561198016642627" -// To know that information: https://steamid.io/ -GRLIB_whitelisted_steamids = [ - -]; - -// Allowed individual player names. Note that this method is not very secure contrary to SteamIDs. -// For exemple: "Zbug" -GRLIB_whitelisted_names = [ - -]; diff --git a/README.md b/README.md index 7de6a2045..0dcb0a485 100644 --- a/README.md +++ b/README.md @@ -107,12 +107,13 @@ You can play every map without any mods (only the maps themself) if you set the * Global Mobilization CDLC * Weferlingen Winter * Global Mobilization CDLC +* Yulakia + * [Yulakia Map](https://steamcommunity.com/sharedfiles/filedetails/?id=2950257727) + * [CUP Terrains - Core](http://steamcommunity.com/sharedfiles/filedetails/?id=583496184) ## Recommended Mods These mods are recommended by us, as they are likely to increase your gaming experience: * [ACE](https://steamcommunity.com/sharedfiles/filedetails/?id=463939057) -* [ACE Compat - RHS Armed Forces of the Russian Federation](https://steamcommunity.com/workshop/filedetails/?id=773131200) -* [ACE Compat - RHS United States Armed Forces](https://steamcommunity.com/workshop/filedetails/?id=773125288) * [ACE3 - BWMOD Compatibility](https://steamcommunity.com/sharedfiles/filedetails/?id=1200145989) * [ACRE 2](https://steamcommunity.com/sharedfiles/filedetails/?id=751965892) * [Advanced Urban Rappeling](https://steamcommunity.com/sharedfiles/filedetails/?id=730310357) diff --git a/_tools/_presets.json b/_tools/_presets.json index 84e459dcb..e6cb1bb1e 100644 --- a/_tools/_presets.json +++ b/_tools/_presets.json @@ -3,13 +3,13 @@ "sourceFolder": "kp_liberation.Altis", "missionName": "kp_liberation", "map": "Altis", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 0, - "KP_liberation_preset_opfor": 0, - "KP_liberation_preset_resistance": 0, - "KP_liberation_preset_civilians": 0, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 0, + "KPLIB_preset_opfor": 0, + "KPLIB_preset_resistance": 0, + "KPLIB_preset_civilians": 0, + "KPLIB_arsenal": 0 }, "workshopId": "1578862234" }, @@ -17,13 +17,13 @@ "sourceFolder": "kp_liberation.Chernarus", "missionName": "kp_liberation", "map": "Chernarus", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 6, - "KP_liberation_preset_opfor": 2, - "KP_liberation_preset_resistance": 0, - "KP_liberation_preset_civilians": 0, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 6, + "KPLIB_preset_opfor": 2, + "KPLIB_preset_resistance": 0, + "KPLIB_preset_civilians": 0, + "KPLIB_arsenal": 0 }, "workshopId": "880462893" }, @@ -32,13 +32,13 @@ "missionName": "kp_liberation", "map": "Chernarus_Winter", "mapDisplay": "Chernarus Winter", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 6, - "KP_liberation_preset_opfor": 2, - "KP_liberation_preset_resistance": 0, - "KP_liberation_preset_civilians": 0, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 6, + "KPLIB_preset_opfor": 2, + "KPLIB_preset_resistance": 0, + "KPLIB_preset_civilians": 0, + "KPLIB_arsenal": 0 }, "workshopId": "1598002157" }, @@ -47,13 +47,13 @@ "missionName": "kp_liberation", "map": "Enoch", "mapDisplay": "Livonia", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 30, - "KP_liberation_preset_opfor": 1, - "KP_liberation_preset_resistance": 0, - "KP_liberation_preset_civilians": 0, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 30, + "KPLIB_preset_opfor": 1, + "KPLIB_preset_resistance": 0, + "KPLIB_preset_civilians": 0, + "KPLIB_arsenal": 0 }, "workshopId": "1816049282" }, @@ -62,13 +62,13 @@ "missionName": "kp_liberation", "map": "gm_weferlingen_summer", "mapDisplay": "Weferlingen", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 9, - "KP_liberation_preset_opfor": 10, - "KP_liberation_preset_resistance": 5, - "KP_liberation_preset_civilians": 4, - "KP_liberation_arsenal": 4 + "KPLIB_preset_blufor": 9, + "KPLIB_preset_opfor": 10, + "KPLIB_preset_resistance": 5, + "KPLIB_preset_civilians": 4, + "KPLIB_arsenal": 4 }, "workshopId": "1737367431" }, @@ -77,13 +77,13 @@ "missionName": "kp_liberation", "map": "gm_weferlingen_winter", "mapDisplay": "Weferlingen Winter", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 10, - "KP_liberation_preset_opfor": 11, - "KP_liberation_preset_resistance": 5, - "KP_liberation_preset_civilians": 4, - "KP_liberation_arsenal": 4 + "KPLIB_preset_blufor": 10, + "KPLIB_preset_opfor": 11, + "KPLIB_preset_resistance": 5, + "KPLIB_preset_civilians": 4, + "KPLIB_arsenal": 4 }, "workshopId": "1737368152" }, @@ -92,13 +92,13 @@ "missionName": "kp_liberation", "map": "lythium", "mapDisplay": "Lythium", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 7, - "KP_liberation_preset_opfor": 4, - "KP_liberation_preset_resistance": 3, - "KP_liberation_preset_civilians": 2, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 7, + "KPLIB_preset_opfor": 4, + "KPLIB_preset_resistance": 3, + "KPLIB_preset_civilians": 2, + "KPLIB_arsenal": 0 }, "workshopId": "1226882826" }, @@ -106,13 +106,13 @@ "sourceFolder": "kp_liberation.Malden", "missionName": "kp_liberation", "map": "Malden", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 0, - "KP_liberation_preset_opfor": 0, - "KP_liberation_preset_resistance": 0, - "KP_liberation_preset_civilians": 0, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 0, + "KPLIB_preset_opfor": 0, + "KPLIB_preset_resistance": 0, + "KPLIB_preset_civilians": 0, + "KPLIB_arsenal": 0 }, "workshopId": "1737370963" }, @@ -121,13 +121,13 @@ "missionName": "kp_liberation", "map": "panthera3", "mapDisplay": "Panthera", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 17, - "KP_liberation_preset_opfor": 17, - "KP_liberation_preset_resistance": 8, - "KP_liberation_preset_civilians": 7, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 17, + "KPLIB_preset_opfor": 17, + "KPLIB_preset_resistance": 8, + "KPLIB_preset_civilians": 7, + "KPLIB_arsenal": 0 }, "workshopId": "1816045062" }, @@ -136,13 +136,13 @@ "missionName": "kp_liberation", "map": "pja310", "mapDisplay": "Al Rayak", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 6, - "KP_liberation_preset_opfor": 2, - "KP_liberation_preset_resistance": 0, - "KP_liberation_preset_civilians": 0, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 6, + "KPLIB_preset_opfor": 2, + "KPLIB_preset_resistance": 0, + "KPLIB_preset_civilians": 0, + "KPLIB_arsenal": 0 }, "workshopId": "934734065" }, @@ -151,13 +151,13 @@ "missionName": "kp_liberation", "map": "Sara", "mapDisplay": "Sahrani", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 6, - "KP_liberation_preset_opfor": 2, - "KP_liberation_preset_resistance": 0, - "KP_liberation_preset_civilians": 0, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 6, + "KPLIB_preset_opfor": 2, + "KPLIB_preset_resistance": 0, + "KPLIB_preset_civilians": 0, + "KPLIB_arsenal": 0 }, "workshopId": "930514473" }, @@ -166,13 +166,13 @@ "missionName": "kp_liberation", "map": "song_bin_tanh", "mapDisplay": "Song Bin Tanh", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 15, - "KP_liberation_preset_opfor": 12, - "KP_liberation_preset_resistance": 6, - "KP_liberation_preset_civilians": 5, - "KP_liberation_arsenal": 7 + "KPLIB_preset_blufor": 15, + "KPLIB_preset_opfor": 12, + "KPLIB_preset_resistance": 6, + "KPLIB_preset_civilians": 5, + "KPLIB_arsenal": 7 }, "workshopId": "1816042577" }, @@ -180,13 +180,13 @@ "sourceFolder": "kp_liberation.Takistan", "missionName": "kp_liberation", "map": "Takistan", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 7, - "KP_liberation_preset_opfor": 3, - "KP_liberation_preset_resistance": 3, - "KP_liberation_preset_civilians": 2, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 7, + "KPLIB_preset_opfor": 3, + "KPLIB_preset_resistance": 3, + "KPLIB_preset_civilians": 2, + "KPLIB_arsenal": 0 }, "workshopId": "878715681" }, @@ -194,13 +194,13 @@ "sourceFolder": "kp_liberation.Tanoa", "missionName": "kp_liberation", "map": "Tanoa", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 1, - "KP_liberation_preset_opfor": 1, - "KP_liberation_preset_resistance": 1, - "KP_liberation_preset_civilians": 1, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 1, + "KPLIB_preset_opfor": 1, + "KPLIB_preset_resistance": 1, + "KPLIB_preset_civilians": 1, + "KPLIB_arsenal": 0 }, "workshopId": "884703460" }, @@ -209,43 +209,43 @@ "missionName": "kp_liberation", "map": "xcam_taunus", "mapDisplay": "Taunus", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 4, - "KP_liberation_preset_opfor": 2, - "KP_liberation_preset_resistance": 0, - "KP_liberation_preset_civilians": 0, - "KP_liberation_arsenal": 9 + "KPLIB_preset_blufor": 4, + "KPLIB_preset_opfor": 2, + "KPLIB_preset_resistance": 0, + "KPLIB_preset_civilians": 0, + "KPLIB_arsenal": 9 }, "workshopId": "884705418" }, { "sourceFolder": "kp_liberation.gm_weferlingen_summer", - "missionName": "kp_liberation_east", + "missionName": "kp_liberation_ger_east", "map": "gm_weferlingen_summer", "mapDisplay": "Weferlingen", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 11, - "KP_liberation_preset_opfor": 8, - "KP_liberation_preset_resistance": 5, - "KP_liberation_preset_civilians": 4, - "KP_liberation_arsenal": 5 + "KPLIB_preset_blufor": 11, + "KPLIB_preset_opfor": 8, + "KPLIB_preset_resistance": 5, + "KPLIB_preset_civilians": 4, + "KPLIB_arsenal": 5 }, "workshopId": "" }, { "sourceFolder": "kp_liberation.gm_weferlingen_winter", - "missionName": "kp_liberation_east", + "missionName": "kp_liberation_ger_east", "map": "gm_weferlingen_winter", "mapDisplay": "Weferlingen Winter", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 12, - "KP_liberation_preset_opfor": 9, - "KP_liberation_preset_resistance": 5, - "KP_liberation_preset_civilians": 4, - "KP_liberation_arsenal": 5 + "KPLIB_preset_blufor": 12, + "KPLIB_preset_opfor": 9, + "KPLIB_preset_resistance": 5, + "KPLIB_preset_civilians": 4, + "KPLIB_arsenal": 5 }, "workshopId": "" }, @@ -253,13 +253,13 @@ "sourceFolder": "kp_liberation.Takistan", "missionName": "kp_liberation_afrf", "map": "Takistan", - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 8, - "KP_liberation_preset_opfor": 3, - "KP_liberation_preset_resistance": 3, - "KP_liberation_preset_civilians": 2, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 8, + "KPLIB_preset_opfor": 3, + "KPLIB_preset_resistance": 3, + "KPLIB_preset_civilians": 2, + "KPLIB_arsenal": 0 }, "workshopId": "" } diff --git a/_tools/.gitignore b/_tools/build-tool/.gitignore similarity index 58% rename from _tools/.gitignore rename to _tools/build-tool/.gitignore index 63368e1a8..e8f314157 100644 --- a/_tools/.gitignore +++ b/_tools/build-tool/.gitignore @@ -1,3 +1,3 @@ # Node node_modules/ -npm-debug.log* \ No newline at end of file +npm-debug.log* diff --git a/_tools/README.md b/_tools/build-tool/README.md similarity index 89% rename from _tools/README.md rename to _tools/build-tool/README.md index 686832241..b13c80a8d 100644 --- a/_tools/README.md +++ b/_tools/build-tool/README.md @@ -2,7 +2,7 @@ ## Requirements -nodejs version >=7. +nodejs version >=16. ## Usage @@ -56,13 +56,13 @@ Every `Preset` entry should have following structure: // Keys of object represent variables in . // These variables values will be set to corresponding value in - "configFile": "kp_liberation_config.sqf", + "configFile": "KPLIB_config.sqf", "variables": { - "KP_liberation_preset_blufor": 0, - "KP_liberation_preset_opfor": 0, - "KP_liberation_preset_resistance": 0, - "KP_liberation_preset_civilians": 0, - "KP_liberation_arsenal": 0 + "KPLIB_preset_blufor": 0, + "KPLIB_preset_opfor": 0, + "KPLIB_preset_resistance": 0, + "KPLIB_preset_civilians": 0, + "KPLIB_arsenal": 0 } } ``` diff --git a/_tools/gulpfile.ts b/_tools/build-tool/gulpfile.ts similarity index 90% rename from _tools/gulpfile.ts rename to _tools/build-tool/gulpfile.ts index 2fdc32e30..e41f42dc8 100644 --- a/_tools/gulpfile.ts +++ b/_tools/build-tool/gulpfile.ts @@ -11,16 +11,16 @@ import { resolve } from "path"; import { MissionPaths, uploadLegacy } from "./src"; import { Preset, FolderStructureInfo } from "./src"; - -const presets: Preset[] = require('./_presets.json'); +const repoRoot = resolve('..', '..'); +const presets: Preset[] = require('../_presets.json'); /** * Mission folders configuration */ const paths: FolderStructureInfo = { - frameworkFolder: resolve('..', 'Missionframework'), - missionsFolder: resolve('..', 'Missionbasefiles'), - workDir: resolve("./build") + frameworkFolder: resolve(repoRoot, 'Missionframework'), + missionsFolder: resolve(repoRoot, 'Missionbasefiles'), + workDir: resolve(repoRoot, "build") }; @@ -122,12 +122,12 @@ for (let preset of presets) { gulp.task('zip_' + taskName, () => { return gulp.src([ - resolve('..', './userconfig/**/*'), - resolve('..', 'LICENSE.md'), - resolve('..', 'README.md'), - resolve('..', 'CHANGELOG.md') + resolve(repoRoot, './userconfig/**/*'), + resolve(repoRoot, 'LICENSE.md'), + resolve(repoRoot, 'README.md'), + resolve(repoRoot, 'CHANGELOG.md') ], { - base: resolve('..') // Change base dir to have correct relative paths in ZIP + base: resolve(repoRoot) // Change base dir to have correct relative paths in ZIP }) .pipe( gulp.src( diff --git a/_tools/build-tool/package-lock.json b/_tools/build-tool/package-lock.json new file mode 100644 index 000000000..23d97e720 --- /dev/null +++ b/_tools/build-tool/package-lock.json @@ -0,0 +1,10362 @@ +{ + "name": "kp_liberation", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "kp_liberation", + "dependencies": { + "@types/del": "^3.0.1", + "@types/gulp": "^4.0.6", + "@types/gulp-replace": "0.0.31", + "@types/gulp-zip": "^4.0.0", + "@types/vinyl-paths": "0.0.31", + "del": "^3.0.0", + "gulp": "^4.0.2", + "gulp-armapbo": "^1.1.3", + "gulp-modify-file": "^1.0.1", + "gulp-replace": "^0.6.1", + "gulp-zip": "^4.2.0", + "smart-zip": "0.0.9", + "ts-node": "^4.1.0", + "typescript": "^2.9.2", + "vinyl-paths": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/del": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/del/-/del-3.0.1.tgz", + "integrity": "sha512-y6qRq6raBuu965clKgx6FHuiPu3oHdtmzMPXi8Uahsjdq1L6DL5fS/aY5/s71YwM7k6K1QIWvem5vNwlnNGIkQ==", + "dependencies": { + "@types/glob": "*" + } + }, + "node_modules/@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + }, + "node_modules/@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dependencies": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg==", + "dependencies": { + "@types/glob": "*", + "@types/node": "*" + } + }, + "node_modules/@types/gulp": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.16.tgz", + "integrity": "sha512-yY3XJjYejEzIQqLt6ZXaOZ/jynVxUe7Km33XA1/sU2zfZ2AeFDragIcT+i53a+j7eoWPgVeikhFvtC0gCteBdA==", + "dependencies": { + "@types/node": "*", + "@types/undertaker": ">=1.2.6", + "@types/vinyl-fs": "*", + "chokidar": "^3.3.1" + } + }, + "node_modules/@types/gulp-replace": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@types/gulp-replace/-/gulp-replace-0.0.31.tgz", + "integrity": "sha512-dbgQ1u0N9ShXrzahBgQfMSu6qUh8nlTLt7whhQ0S0sEUHhV3scysppJ1UX0fl53PJENgAL99ueykddyrCaDt7g==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/gulp-zip": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/gulp-zip/-/gulp-zip-4.0.0.tgz", + "integrity": "sha512-fhCJBeogdaEEj1+J1r46EQUsiSToPA8A2E9fRLua9hCu3AIGJ3Rf0Yayl7ssnsIW6t2vmMgQLW6TWCakGkVfHw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/gulp/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/gulp/node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/gulp/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/gulp/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@types/gulp/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/gulp/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/@types/gulp/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/gulp/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/gulp/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@types/gulp/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/@types/gulp/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "node_modules/@types/node": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.1.tgz", + "integrity": "sha512-9ESUxmXt1Isc1xKfDBZ7tpULyTPY5ZCywcfvQTXoLUqP+n4D+MBH+0n75hdzrcmfCc3eWByOi27+GLmMuAvcUA==" + }, + "node_modules/@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=" + }, + "node_modules/@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==" + }, + "node_modules/@types/undertaker": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.10.tgz", + "integrity": "sha512-UzbgxdP5Zn0UlaLGF8CxXGpP7MCu/Y/b/24Kj3dK0J3+xOSmAGJw4JJKi21avFNuUviG59BMBUdrcL+KX+z7BA==", + "dependencies": { + "@types/node": "*", + "@types/undertaker-registry": "*", + "async-done": "~1.3.2" + } + }, + "node_modules/@types/undertaker-registry": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/undertaker-registry/-/undertaker-registry-1.0.3.tgz", + "integrity": "sha512-9wabQxkMB6Nb6FuPxvLQiMLBT2KkJXxgC9RoehnSSCvVzrag5GKxI5pekcgnMcZaGupuJOd0CLT+8ZwHHlG5vQ==" + }, + "node_modules/@types/vinyl": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.3.tgz", + "integrity": "sha512-hrT6xg16CWSmndZqOTJ6BGIn2abKyTw0B58bI+7ioUoj3Sma6u8ftZ1DTI2yCaJamOVGLOnQWiPH3a74+EaqTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/vinyl-fs": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz", + "integrity": "sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA==", + "dependencies": { + "@types/glob-stream": "*", + "@types/node": "*", + "@types/vinyl": "*" + } + }, + "node_modules/@types/vinyl-paths": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@types/vinyl-paths/-/vinyl-paths-0.0.31.tgz", + "integrity": "sha512-sw1o+DVXwEuPN4YsirTYTSmtuTDeoyJU217CZ4EuJkerdo7h6lacj7wGUA6mQNl0YgYmu+pTM1FrusLhWlELWg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "dependencies": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binaryextensions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz", + "integrity": "sha1-HmN0iLNbWL2l9HdL+WpSEqjJB1U=" + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "dependencies": { + "traverse": ">=0.3.0 <0.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dependencies": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "node_modules/cloneable-readable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", + "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^1.0.6", + "through2": "^2.0.1" + } + }, + "node_modules/cloneable-readable/node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dependencies": { + "color-name": "^1.1.1" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/copy-props/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-compare/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dependencies": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/del/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "engines": { + "node": ">=4" + } + }, + "node_modules/deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dependencies": { + "readable-stream": "~1.1.9" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es5-ext": { + "version": "0.10.50", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", + "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "^1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=" + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", + "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", + "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/flush-write-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/flush-write-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/fstream": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "integrity": "sha512-N1pLGEHoDyCoI8uMmPXJXhn238L4nk41iipXCrqs4Ss0ooYSr5sNj2ucMo5AqJVC4OaOa7IztpBhOaaYTGZVuA==", + "dependencies": { + "graceful-fs": "~3.0.2", + "inherits": "~2.0.0", + "mkdirp": "0.5", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/node_modules/graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "dependencies": { + "natives": "^1.1.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha512-3IWbXGkDDHFX8zIlNdfnmhvlSMhpBO6tDr4InB8fGku6dh/gjFPGNqcdsXJajZg05x9jRzXbL6gCnCnuMap4tw==", + "dependencies": { + "globule": "~0.1.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "engines": { + "node": ">=4" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/glob-stream/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/glob-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dependencies": { + "find-index": "^0.1.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha512-3eIcA2OjPCm4VvwIwZPzIxCVssA8HSpM2C6c6kK5ufJH4FGwWoyqL3In19uuX4oe+TwH3w2P1nQDmW56iehO4A==", + "dependencies": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/globule/node_modules/glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha512-ANhy2V2+tFpRajE3wN4DhkNQ08KDr0Ir1qL12/cUe5+a7STEK8jkW4onUYuY8/06qAFuT5je7mjAqzx0eKI2tQ==", + "dependencies": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globule/node_modules/graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/globule/node_modules/inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + }, + "node_modules/globule/node_modules/minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glogg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", + "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-armapbo": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gulp-armapbo/-/gulp-armapbo-1.1.3.tgz", + "integrity": "sha512-ZqbCDYU8sTBvp/JlSjSk8lhRXLUMpBYR7ZX2eerbQqsk/fd66nlwjrsL9SVgukISuClEFQv4BBmaokhAZq1LwA==", + "dependencies": { + "chalk": "^2.3.0", + "gulp-util": "^3.0.8", + "minimatch": "^3.0.4", + "single-line-log": "^1.1.2", + "vinyl": "^2.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/gulp-armapbo/node_modules/clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/gulp-armapbo/node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "node_modules/gulp-armapbo/node_modules/replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-armapbo/node_modules/vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-modify-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gulp-modify-file/-/gulp-modify-file-1.0.1.tgz", + "integrity": "sha512-toUFzkLlnz/CGLplG/+vl6zMT7U0ldbS6b6lT/aQ2u243wa4udMQwSPGPRAEdwaIbqZo34lqu4XRdPPx5iPCSQ==", + "dependencies": { + "gulp": "3.9.1", + "through2": "2.0.3" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/gulp-modify-file/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-modify-file/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-modify-file/node_modules/clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "engines": { + "node": "*" + } + }, + "node_modules/gulp-modify-file/node_modules/glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha512-I0rTWUKSZKxPSIAIaqhSXTM/DiII6wame+rEC3cFA5Lqmr9YmdL7z6Hj9+bdWtTvoY1Su4/OiMLmb37Y7JzvJQ==", + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/gulp-modify-file/node_modules/glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha512-owHtlMMXIAbxLjhUAO0HhW1/TB7kV0AwDduI3BLbYsWCaRzNIcLBu8N0wHZft2Za2SCmUXCEOdpZzC7k/H19eg==", + "dependencies": { + "glob": "^4.3.1", + "glob2base": "^0.0.12", + "minimatch": "^2.0.1", + "ordered-read-streams": "^0.1.0", + "through2": "^0.6.1", + "unique-stream": "^1.0.0" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/gulp-modify-file/node_modules/glob-stream/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/gulp-modify-file/node_modules/glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha512-lzYWq1BJLBmtb9rzT6+lgbFlEW6Sc7B+Qs3RmsNA9lbdFSqLHhebfypPR3nbEOMeEQyawVXqSDH0aqjtImldow==", + "dependencies": { + "gaze": "^0.5.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/gulp-modify-file/node_modules/graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", + "dependencies": { + "natives": "^1.1.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/gulp-modify-file/node_modules/gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha512-6FHNdR+VG1LcPz6gZGGqgvimWWGtl4x3FvshAdK/UnAjU7aFOyzft3Fjp35r0Y3ZF4u8vND0S4nGsIB/sxTqzQ==", + "dependencies": { + "archy": "^1.0.0", + "chalk": "^1.0.0", + "deprecated": "^0.0.1", + "gulp-util": "^3.0.0", + "interpret": "^1.0.0", + "liftoff": "^2.1.0", + "minimist": "^1.1.0", + "orchestrator": "^0.3.0", + "pretty-hrtime": "^1.0.0", + "semver": "^4.1.0", + "tildify": "^1.0.0", + "v8flags": "^2.0.2", + "vinyl-fs": "^0.3.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/gulp-modify-file/node_modules/minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha512-jQo6o1qSVLEWaw3l+bwYA2X0uLuK2KjNh2wjgO7Q/9UJnXr1Q3yQKR8BI0/Bt/rPg75e6SMW4hW/6cBHVTZUjA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/gulp-modify-file/node_modules/ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=" + }, + "node_modules/gulp-modify-file/node_modules/semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha512-IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/gulp-modify-file/node_modules/strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dependencies": { + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" + }, + "bin": { + "strip-bom": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-modify-file/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/gulp-modify-file/node_modules/unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=" + }, + "node_modules/gulp-modify-file/node_modules/v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dependencies": { + "user-home": "^1.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/gulp-modify-file/node_modules/vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dependencies": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/gulp-modify-file/node_modules/vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha512-9CTKjt8378nhdydwFDTwywKio0n8aqq6xA70g0uypcnTNSCow/gQOwv0L9E2GaKd7EQ3kZl/diBxPSCgcBXESw==", + "dependencies": { + "defaults": "^1.0.0", + "glob-stream": "^3.1.5", + "glob-watcher": "^0.0.6", + "graceful-fs": "^3.0.0", + "mkdirp": "^0.5.0", + "strip-bom": "^1.0.0", + "through2": "^0.6.1", + "vinyl": "^0.4.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-modify-file/node_modules/vinyl-fs/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/gulp-replace": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-0.6.1.tgz", + "integrity": "sha1-Eb+Mj85TPjPi9qjy9DC5VboL4GY=", + "dependencies": { + "istextorbinary": "1.0.2", + "readable-stream": "^2.0.1", + "replacestream": "^4.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/gulp-replace/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/gulp-replace/node_modules/readable-stream": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/gulp-replace/node_modules/string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==", + "deprecated": "gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5", + "dependencies": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/gulp-util/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-util/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-util/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/gulp-zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/gulp-zip/-/gulp-zip-4.2.0.tgz", + "integrity": "sha512-I+697f6jf+PncdTrqfuwoauxgnLG1yHRg3vlmvDgmJuEnlEHy4meBktJ/oHgfyg4tp6X25wuZqUOraVeVg97wQ==", + "dependencies": { + "get-stream": "^3.0.0", + "plugin-error": "^0.1.2", + "through2": "^2.0.1", + "vinyl": "^2.1.0", + "yazl": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-zip/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/gulp-zip/node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "node_modules/gulp-zip/node_modules/replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-zip/node_modules/vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp/node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp/node_modules/gulp-cli": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", + "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.1.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.0.1", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp/node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "dependencies": { + "is-number": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", + "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istextorbinary": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz", + "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8=", + "dependencies": { + "binaryextensions": "~1.0.0", + "textextensions": "~1.0.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "node_modules/jszip": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-2.7.0.tgz", + "integrity": "sha512-JIsRKRVC3gTRo2vM4Wy9WBC3TRcfnIZU8k65Phi3izkvPH975FowRYtKGT6PxevA0XnJ/yO8b0QwV0ydVyQwfw==", + "dependencies": { + "pako": "~1.0.2" + } + }, + "node_modules/just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "dependencies": { + "set-getter": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha512-0VSEDVec/Me2eATuoiQd8IjyBMMX0fahob8YJ96V1go2RjvCk1m1GxmtfXn8RNSaLaTtop7fsuhhu9oLk3hUgA==", + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" + }, + "node_modules/lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=" + }, + "node_modules/lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=" + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + }, + "node_modules/lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" + }, + "node_modules/lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=" + }, + "node_modules/lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=" + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "node_modules/lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" + }, + "node_modules/lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dependencies": { + "lodash._root": "^3.0.0" + } + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + }, + "node_modules/lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + }, + "node_modules/lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dependencies": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" + }, + "node_modules/lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==", + "dependencies": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "node_modules/make-error": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.3.tgz", + "integrity": "sha512-j3dZCri3cCd23wgPqK/0/KvTN8R+W6fXDqQe8BNLbTpONjbA8SPaRr+q0BQq9bx3Q/+g68/gDIh9FW3by702Tg==" + }, + "node_modules/make-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", + "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", + "dependencies": { + "kind-of": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/match-stream": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/match-stream/-/match-stream-0.0.2.tgz", + "integrity": "sha1-mesFAJOzTf+t5CG5rAtBCpz6F88=", + "dependencies": { + "buffers": "~0.1.1", + "readable-stream": "~1.0.0" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/micromatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", + "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.0", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.0", + "nanomatch": "^1.2.5", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dependencies": { + "duplexer2": "0.0.2" + } + }, + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", + "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "is-odd": "^1.0.0", + "kind-of": "^5.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natives": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz", + "integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==", + "deprecated": "This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x." + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dependencies": { + "end-of-stream": "~0.1.5", + "sequencify": "~0.0.7", + "stream-consume": "~0.1.0" + } + }, + "node_modules/orchestrator/node_modules/end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/orchestrator/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/ordered-read-streams/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/ordered-read-streams/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/ordered-read-streams/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/over": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/over/-/over-0.0.5.tgz", + "integrity": "sha1-8phS5w/X4l82DgE6jsRMgq7bVwg=", + "engines": { + "node": "*" + } + }, + "node_modules/p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "dependencies": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dependencies": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dependencies": { + "kind-of": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "node_modules/pullstream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pullstream/-/pullstream-0.4.1.tgz", + "integrity": "sha1-1vs79a7Wl+gxFQ6xACwlo/iuExQ=", + "dependencies": { + "over": ">= 0.0.5 < 1", + "readable-stream": "~1.0.31", + "setimmediate": ">= 1.0.2 < 2", + "slice-stream": ">= 1.0.0 < 2" + } + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/readdirp/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/readdirp/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp/node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/to-regex/node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "dependencies": { + "extend-shallow": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "node_modules/repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/replacestream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", + "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", + "dependencies": { + "escape-string-regexp": "^1.0.3", + "object-assign": "^4.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/replacestream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/replacestream/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/replacestream/node_modules/readable-stream": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/replacestream/node_modules/string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "node_modules/resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/set-getter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.1.tgz", + "integrity": "sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==", + "dependencies": { + "to-object-path": "^0.3.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "node_modules/single-line-log": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "dependencies": { + "string-width": "^1.0.1" + } + }, + "node_modules/slice-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-stream/-/slice-stream-1.0.0.tgz", + "integrity": "sha1-WzO9ZvATsaf4ZGCwPUY97DmtPqA=", + "dependencies": { + "readable-stream": "~1.0.31" + } + }, + "node_modules/smart-zip": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/smart-zip/-/smart-zip-0.0.9.tgz", + "integrity": "sha512-qSC5oWgrpuIPTtx1Q4wDK2cgDG5x90pGHQ/lvVC5v/VSiNdRi4DjYbWwDdBcd2OpiSLtpUWh/2UPghgTX7h+bg==", + "dependencies": { + "jszip": "^2.5.0", + "unzip": "^0.1.11" + } + }, + "node_modules/snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", + "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "dependencies": { + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-consume": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", + "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==" + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" + }, + "node_modules/stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dependencies": { + "has-flag": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/textextensions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz", + "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI=" + }, + "node_modules/through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dependencies": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dependencies": { + "os-homedir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "dependencies": { + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "regex-not": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", + "engines": { + "node": "*" + } + }, + "node_modules/ts-node": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-4.1.0.tgz", + "integrity": "sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg==", + "dependencies": { + "arrify": "^1.0.0", + "chalk": "^2.3.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.0", + "tsconfig": "^7.0.0", + "v8flags": "^3.0.0", + "yn": "^2.0.0" + }, + "bin": { + "_ts-node": "dist/_bin.js", + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dependencies": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + } + }, + "node_modules/type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz", + "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==" + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undertaker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/unzip": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/unzip/-/unzip-0.1.11.tgz", + "integrity": "sha512-Dvxd7bj2RcfbM+AbNfx0Ufqvk7Kl4YGeAQlEGn9+glDQz1HFxeeRjBStxi/DfIvgutn6hbC4yMc1rEo3x+dmVQ==", + "dependencies": { + "binary": ">= 0.3.0 < 1", + "fstream": ">= 0.1.30 < 1", + "match-stream": ">= 0.0.2 < 1", + "pullstream": ">= 0.4.1 < 1", + "readable-stream": "~1.0.31", + "setimmediate": ">= 1.0.1 < 2" + } + }, + "node_modules/upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "dependencies": { + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "lazy-cache": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "bin": { + "user-home": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/v8flags": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.1.tgz", + "integrity": "sha1-3Oj8N5wX2fLJ6e142JzgAFKxt2s=", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dependencies": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/vinyl-fs/node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "node_modules/vinyl-fs/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/vinyl-fs/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/vinyl-fs/node_modules/replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/vinyl-fs/node_modules/vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-paths": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl-paths/-/vinyl-paths-2.1.0.tgz", + "integrity": "sha1-AIIEN8ujgmLO+IAthA+T4zku5Es=", + "dependencies": { + "through2": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/vinyl-sourcemap/node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-sourcemap/node_modules/replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "node_modules/yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dependencies": { + "buffer-crc32": "~0.2.3" + } + }, + "node_modules/yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "engines": { + "node": ">=4" + } + } + }, + "dependencies": { + "@types/del": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/del/-/del-3.0.1.tgz", + "integrity": "sha512-y6qRq6raBuu965clKgx6FHuiPu3oHdtmzMPXi8Uahsjdq1L6DL5fS/aY5/s71YwM7k6K1QIWvem5vNwlnNGIkQ==", + "requires": { + "@types/glob": "*" + } + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg==", + "requires": { + "@types/glob": "*", + "@types/node": "*" + } + }, + "@types/gulp": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.16.tgz", + "integrity": "sha512-yY3XJjYejEzIQqLt6ZXaOZ/jynVxUe7Km33XA1/sU2zfZ2AeFDragIcT+i53a+j7eoWPgVeikhFvtC0gCteBdA==", + "requires": { + "@types/node": "*", + "@types/undertaker": ">=1.2.6", + "@types/vinyl-fs": "*", + "chokidar": "^3.3.1" + }, + "dependencies": { + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "@types/gulp-replace": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@types/gulp-replace/-/gulp-replace-0.0.31.tgz", + "integrity": "sha512-dbgQ1u0N9ShXrzahBgQfMSu6qUh8nlTLt7whhQ0S0sEUHhV3scysppJ1UX0fl53PJENgAL99ueykddyrCaDt7g==", + "requires": { + "@types/node": "*" + } + }, + "@types/gulp-zip": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/gulp-zip/-/gulp-zip-4.0.0.tgz", + "integrity": "sha512-fhCJBeogdaEEj1+J1r46EQUsiSToPA8A2E9fRLua9hCu3AIGJ3Rf0Yayl7ssnsIW6t2vmMgQLW6TWCakGkVfHw==", + "requires": { + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "@types/node": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.1.tgz", + "integrity": "sha512-9ESUxmXt1Isc1xKfDBZ7tpULyTPY5ZCywcfvQTXoLUqP+n4D+MBH+0n75hdzrcmfCc3eWByOi27+GLmMuAvcUA==" + }, + "@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=" + }, + "@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==" + }, + "@types/undertaker": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.10.tgz", + "integrity": "sha512-UzbgxdP5Zn0UlaLGF8CxXGpP7MCu/Y/b/24Kj3dK0J3+xOSmAGJw4JJKi21avFNuUviG59BMBUdrcL+KX+z7BA==", + "requires": { + "@types/node": "*", + "@types/undertaker-registry": "*", + "async-done": "~1.3.2" + } + }, + "@types/undertaker-registry": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/undertaker-registry/-/undertaker-registry-1.0.3.tgz", + "integrity": "sha512-9wabQxkMB6Nb6FuPxvLQiMLBT2KkJXxgC9RoehnSSCvVzrag5GKxI5pekcgnMcZaGupuJOd0CLT+8ZwHHlG5vQ==" + }, + "@types/vinyl": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.3.tgz", + "integrity": "sha512-hrT6xg16CWSmndZqOTJ6BGIn2abKyTw0B58bI+7ioUoj3Sma6u8ftZ1DTI2yCaJamOVGLOnQWiPH3a74+EaqTA==", + "requires": { + "@types/node": "*" + } + }, + "@types/vinyl-fs": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz", + "integrity": "sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA==", + "requires": { + "@types/glob-stream": "*", + "@types/node": "*", + "@types/vinyl": "*" + } + }, + "@types/vinyl-paths": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@types/vinyl-paths/-/vinyl-paths-0.0.31.tgz", + "integrity": "sha512-sw1o+DVXwEuPN4YsirTYTSmtuTDeoyJU217CZ4EuJkerdo7h6lacj7wGUA6mQNl0YgYmu+pTM1FrusLhWlELWg==", + "requires": { + "@types/node": "*" + } + }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "requires": { + "buffer-equal": "^1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" + }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "requires": { + "async-done": "^1.2.2" + } + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=" + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "binaryextensions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz", + "integrity": "sha1-HmN0iLNbWL2l9HdL+WpSEqjJB1U=" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "cloneable-readable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", + "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^1.0.6", + "through2": "^2.0.1" + }, + "dependencies": { + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "requires": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "requires": { + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=" + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "requires": { + "readable-stream": "~1.1.9" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + } + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es5-ext": { + "version": "0.10.50", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", + "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "^1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "time-stamp": "^1.0.0" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=" + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "fined": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", + "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=" + }, + "flagged-respawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", + "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=" + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "^1.0.1" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "fstream": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "integrity": "sha512-N1pLGEHoDyCoI8uMmPXJXhn238L4nk41iipXCrqs4Ss0ooYSr5sNj2ucMo5AqJVC4OaOa7IztpBhOaaYTGZVuA==", + "requires": { + "graceful-fs": "~3.0.2", + "inherits": "~2.0.0", + "mkdirp": "0.5", + "rimraf": "2" + }, + "dependencies": { + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "requires": { + "natives": "^1.1.0" + } + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha512-3IWbXGkDDHFX8zIlNdfnmhvlSMhpBO6tDr4InB8fGku6dh/gjFPGNqcdsXJajZg05x9jRzXbL6gCnCnuMap4tw==", + "requires": { + "globule": "~0.1.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "requires": { + "find-index": "^0.1.1" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha512-3eIcA2OjPCm4VvwIwZPzIxCVssA8HSpM2C6c6kK5ufJH4FGwWoyqL3In19uuX4oe+TwH3w2P1nQDmW56iehO4A==", + "requires": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha512-ANhy2V2+tFpRajE3wN4DhkNQ08KDr0Ir1qL12/cUe5+a7STEK8jkW4onUYuY8/06qAFuT5je7mjAqzx0eKI2tQ==", + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "glogg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", + "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "requires": { + "sparkles": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" + }, + "gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "gulp-cli": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", + "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.1.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.0.1", + "yargs": "^7.1.0" + } + }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + } + } + }, + "gulp-armapbo": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gulp-armapbo/-/gulp-armapbo-1.1.3.tgz", + "integrity": "sha512-ZqbCDYU8sTBvp/JlSjSk8lhRXLUMpBYR7ZX2eerbQqsk/fd66nlwjrsL9SVgukISuClEFQv4BBmaokhAZq1LwA==", + "requires": { + "chalk": "^2.3.0", + "gulp-util": "^3.0.8", + "minimatch": "^3.0.4", + "single-line-log": "^1.1.2", + "vinyl": "^2.1.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + } + } + }, + "gulp-modify-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gulp-modify-file/-/gulp-modify-file-1.0.1.tgz", + "integrity": "sha512-toUFzkLlnz/CGLplG/+vl6zMT7U0ldbS6b6lT/aQ2u243wa4udMQwSPGPRAEdwaIbqZo34lqu4XRdPPx5iPCSQ==", + "requires": { + "gulp": "3.9.1", + "through2": "2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" + }, + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha512-I0rTWUKSZKxPSIAIaqhSXTM/DiII6wame+rEC3cFA5Lqmr9YmdL7z6Hj9+bdWtTvoY1Su4/OiMLmb37Y7JzvJQ==", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + } + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha512-owHtlMMXIAbxLjhUAO0HhW1/TB7kV0AwDduI3BLbYsWCaRzNIcLBu8N0wHZft2Za2SCmUXCEOdpZzC7k/H19eg==", + "requires": { + "glob": "^4.3.1", + "glob2base": "^0.0.12", + "minimatch": "^2.0.1", + "ordered-read-streams": "^0.1.0", + "through2": "^0.6.1", + "unique-stream": "^1.0.0" + }, + "dependencies": { + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha512-lzYWq1BJLBmtb9rzT6+lgbFlEW6Sc7B+Qs3RmsNA9lbdFSqLHhebfypPR3nbEOMeEQyawVXqSDH0aqjtImldow==", + "requires": { + "gaze": "^0.5.1" + } + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "requires": { + "natives": "^1.1.0" + } + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha512-6FHNdR+VG1LcPz6gZGGqgvimWWGtl4x3FvshAdK/UnAjU7aFOyzft3Fjp35r0Y3ZF4u8vND0S4nGsIB/sxTqzQ==", + "requires": { + "archy": "^1.0.0", + "chalk": "^1.0.0", + "deprecated": "^0.0.1", + "gulp-util": "^3.0.0", + "interpret": "^1.0.0", + "liftoff": "^2.1.0", + "minimist": "^1.1.0", + "orchestrator": "^0.3.0", + "pretty-hrtime": "^1.0.0", + "semver": "^4.1.0", + "tildify": "^1.0.0", + "v8flags": "^2.0.2", + "vinyl-fs": "^0.3.0" + } + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha512-jQo6o1qSVLEWaw3l+bwYA2X0uLuK2KjNh2wjgO7Q/9UJnXr1Q3yQKR8BI0/Bt/rPg75e6SMW4hW/6cBHVTZUjA==", + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=" + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha512-IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==" + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "requires": { + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "^1.1.1" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha512-9CTKjt8378nhdydwFDTwywKio0n8aqq6xA70g0uypcnTNSCow/gQOwv0L9E2GaKd7EQ3kZl/diBxPSCgcBXESw==", + "requires": { + "defaults": "^1.0.0", + "glob-stream": "^3.1.5", + "glob-watcher": "^0.0.6", + "graceful-fs": "^3.0.0", + "mkdirp": "^0.5.0", + "strip-bom": "^1.0.0", + "through2": "^0.6.1", + "vinyl": "^0.4.0" + }, + "dependencies": { + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + } + } + }, + "gulp-replace": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-0.6.1.tgz", + "integrity": "sha1-Eb+Mj85TPjPi9qjy9DC5VboL4GY=", + "requires": { + "istextorbinary": "1.0.2", + "readable-stream": "^2.0.1", + "replacestream": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==", + "requires": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "gulp-zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/gulp-zip/-/gulp-zip-4.2.0.tgz", + "integrity": "sha512-I+697f6jf+PncdTrqfuwoauxgnLG1yHRg3vlmvDgmJuEnlEHy4meBktJ/oHgfyg4tp6X25wuZqUOraVeVg97wQ==", + "requires": { + "get-stream": "^3.0.0", + "plugin-error": "^0.1.2", + "through2": "^2.0.1", + "vinyl": "^2.1.0", + "yazl": "^2.1.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "requires": { + "glogg": "^1.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "requires": { + "is-number": "^3.0.0" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" + }, + "is-windows": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", + "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "istextorbinary": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz", + "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8=", + "requires": { + "binaryextensions": "~1.0.0", + "textextensions": "~1.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "jszip": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-2.7.0.tgz", + "integrity": "sha512-JIsRKRVC3gTRo2vM4Wy9WBC3TRcfnIZU8k65Phi3izkvPH975FowRYtKGT6PxevA0XnJ/yO8b0QwV0ydVyQwfw==", + "requires": { + "pako": "~1.0.2" + } + }, + "just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=" + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "requires": { + "set-getter": "^0.1.0" + } + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "requires": { + "readable-stream": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha512-0VSEDVec/Me2eATuoiQd8IjyBMMX0fahob8YJ96V1go2RjvCk1m1GxmtfXn8RNSaLaTtop7fsuhhu9oLk3hUgA==" + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=" + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=" + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=" + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ==", + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "make-error": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.3.tgz", + "integrity": "sha512-j3dZCri3cCd23wgPqK/0/KvTN8R+W6fXDqQe8BNLbTpONjbA8SPaRr+q0BQq9bx3Q/+g68/gDIh9FW3by702Tg==" + }, + "make-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", + "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", + "requires": { + "kind-of": "^3.1.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "match-stream": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/match-stream/-/match-stream-0.0.2.tgz", + "integrity": "sha1-mesFAJOzTf+t5CG5rAtBCpz6F88=", + "requires": { + "buffers": "~0.1.1", + "readable-stream": "~1.0.0" + } + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + } + }, + "micromatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", + "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.0", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.0", + "nanomatch": "^1.2.5", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "requires": { + "duplexer2": "0.0.2" + } + }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "optional": true + }, + "nanomatch": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", + "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "is-odd": "^1.0.0", + "kind-of": "^5.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "natives": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz", + "integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "resolve": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "requires": { + "once": "^1.3.2" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "requires": { + "end-of-stream": "~0.1.5", + "sequencify": "~0.0.7", + "stream-consume": "~0.1.0" + }, + "dependencies": { + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "requires": { + "once": "~1.3.0" + } + }, + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "requires": { + "wrappy": "1" + } + } + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "requires": { + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "over": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/over/-/over-0.0.5.tgz", + "integrity": "sha1-8phS5w/X4l82DgE6jsRMgq7bVwg=" + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "requires": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=" + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=" + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "requires": { + "kind-of": "^1.1.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=" + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "pullstream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pullstream/-/pullstream-0.4.1.tgz", + "integrity": "sha1-1vs79a7Wl+gxFQ6xACwlo/iuExQ=", + "requires": { + "over": ">= 0.0.5 < 1", + "readable-stream": "~1.0.31", + "setimmediate": ">= 1.0.2 < 2", + "slice-stream": ">= 1.0.0 < 2" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + } + } + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "requires": { + "extend-shallow": "^2.0.1" + } + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, + "replacestream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", + "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", + "requires": { + "escape-string-regexp": "^1.0.3", + "object-assign": "^4.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "readable-stream": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "requires": { + "value-or-function": "^3.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + }, + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "requires": { + "sver-compat": "^1.5.0" + } + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-getter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.1.tgz", + "integrity": "sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==", + "requires": { + "to-object-path": "^0.3.0" + } + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "single-line-log": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "requires": { + "string-width": "^1.0.1" + } + }, + "slice-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-stream/-/slice-stream-1.0.0.tgz", + "integrity": "sha1-WzO9ZvATsaf4ZGCwPUY97DmtPqA=", + "requires": { + "readable-stream": "~1.0.31" + } + }, + "smart-zip": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/smart-zip/-/smart-zip-0.0.9.tgz", + "integrity": "sha512-qSC5oWgrpuIPTtx1Q4wDK2cgDG5x90pGHQ/lvVC5v/VSiNdRi4DjYbWwDdBcd2OpiSLtpUWh/2UPghgTX7h+bg==", + "requires": { + "jszip": "^2.5.0", + "unzip": "^0.1.11" + } + }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^2.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "requires": { + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", + "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "requires": { + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=" + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "stream-consume": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", + "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==" + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "^2.0.0" + } + }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "textextensions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz", + "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI=" + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "requires": { + "os-homedir": "^1.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "requires": { + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "regex-not": "^1.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "requires": { + "through2": "^2.0.3" + } + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" + }, + "ts-node": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-4.1.0.tgz", + "integrity": "sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg==", + "requires": { + "arrify": "^1.0.0", + "chalk": "^2.3.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.0", + "tsconfig": "^7.0.0", + "v8flags": "^3.0.0", + "yn": "^2.0.0" + } + }, + "tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "requires": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + } + }, + "type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz", + "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==" + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "undertaker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "unzip": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/unzip/-/unzip-0.1.11.tgz", + "integrity": "sha512-Dvxd7bj2RcfbM+AbNfx0Ufqvk7Kl4YGeAQlEGn9+glDQz1HFxeeRjBStxi/DfIvgutn6hbC4yMc1rEo3x+dmVQ==", + "requires": { + "binary": ">= 0.3.0 < 1", + "fstream": ">= 0.1.30 < 1", + "match-stream": ">= 0.0.2 < 1", + "pullstream": ">= 0.4.1 < 1", + "readable-stream": "~1.0.31", + "setimmediate": ">= 1.0.1 < 2" + } + }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "requires": { + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "lazy-cache": "^2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "v8flags": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.1.tgz", + "integrity": "sha1-3Oj8N5wX2fLJ6e142JzgAFKxt2s=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + } + } + }, + "vinyl-paths": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl-paths/-/vinyl-paths-2.1.0.tgz", + "integrity": "sha1-AIIEN8ujgmLO+IAthA+T4zku5Es=", + "requires": { + "through2": "^2.0.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + } + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "requires": { + "buffer-crc32": "~0.2.3" + } + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" + } + } +} diff --git a/_tools/package.json b/_tools/build-tool/package.json similarity index 100% rename from _tools/package.json rename to _tools/build-tool/package.json diff --git a/_tools/src/Config.ts b/_tools/build-tool/src/Config.ts similarity index 100% rename from _tools/src/Config.ts rename to _tools/build-tool/src/Config.ts diff --git a/_tools/src/KpSteam.ts b/_tools/build-tool/src/KpSteam.ts similarity index 100% rename from _tools/src/KpSteam.ts rename to _tools/build-tool/src/KpSteam.ts diff --git a/_tools/src/MissionPaths.ts b/_tools/build-tool/src/MissionPaths.ts similarity index 100% rename from _tools/src/MissionPaths.ts rename to _tools/build-tool/src/MissionPaths.ts diff --git a/_tools/src/index.ts b/_tools/build-tool/src/index.ts similarity index 100% rename from _tools/src/index.ts rename to _tools/build-tool/src/index.ts diff --git a/_tools/tsconfig.json b/_tools/build-tool/tsconfig.json similarity index 100% rename from _tools/tsconfig.json rename to _tools/build-tool/tsconfig.json diff --git a/_tools/config.ps1.dist b/_tools/config.ps1.dist new file mode 100644 index 000000000..7cd9b6151 --- /dev/null +++ b/_tools/config.ps1.dist @@ -0,0 +1,10 @@ +$global:armaDir = "C:\Program Files (x86)\Steam\steamapps\common\Arma 3" +$global:armaExe = "arma3_x64.exe" + +$global:armaProfile = "dev_kplib" +$global:devMap = "altis" + +$global:modsArray = @( + "!Workshop\@Advanced Developer Tools", + "!Workshop\@CBA_A3" +) diff --git a/_tools/package-lock.json b/_tools/package-lock.json deleted file mode 100644 index 63cc8bbb1..000000000 --- a/_tools/package-lock.json +++ /dev/null @@ -1,5078 +0,0 @@ -{ - "name": "kp_liberation", - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@types/del": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/del/-/del-3.0.1.tgz", - "integrity": "sha512-y6qRq6raBuu965clKgx6FHuiPu3oHdtmzMPXi8Uahsjdq1L6DL5fS/aY5/s71YwM7k6K1QIWvem5vNwlnNGIkQ==", - "requires": { - "@types/glob": "*" - } - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg==", - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/gulp": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.6.tgz", - "integrity": "sha512-0E8/iV/7FKWyQWSmi7jnUvgXXgaw+pfAzEB06Xu+l0iXVJppLbpOye5z7E2klw5akXd+8kPtYuk65YBcZPM4ow==", - "requires": { - "@types/undertaker": "*", - "@types/vinyl-fs": "*", - "chokidar": "^2.1.2" - } - }, - "@types/gulp-replace": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/@types/gulp-replace/-/gulp-replace-0.0.31.tgz", - "integrity": "sha512-dbgQ1u0N9ShXrzahBgQfMSu6qUh8nlTLt7whhQ0S0sEUHhV3scysppJ1UX0fl53PJENgAL99ueykddyrCaDt7g==", - "requires": { - "@types/node": "*" - } - }, - "@types/gulp-zip": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/gulp-zip/-/gulp-zip-4.0.0.tgz", - "integrity": "sha512-fhCJBeogdaEEj1+J1r46EQUsiSToPA8A2E9fRLua9hCu3AIGJ3Rf0Yayl7ssnsIW6t2vmMgQLW6TWCakGkVfHw==", - "requires": { - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" - }, - "@types/node": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.1.tgz", - "integrity": "sha512-9ESUxmXt1Isc1xKfDBZ7tpULyTPY5ZCywcfvQTXoLUqP+n4D+MBH+0n75hdzrcmfCc3eWByOi27+GLmMuAvcUA==" - }, - "@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=" - }, - "@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==" - }, - "@types/undertaker": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.2.tgz", - "integrity": "sha512-j4iepCSuY2JGW/hShVtUBagic0klYNFIXP7VweavnYnNC2EjiKxJFeaS9uaJmAT0ty9sQSqTS1aagWMZMV0HyA==", - "requires": { - "@types/undertaker-registry": "*" - } - }, - "@types/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ==" - }, - "@types/vinyl": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.3.tgz", - "integrity": "sha512-hrT6xg16CWSmndZqOTJ6BGIn2abKyTw0B58bI+7ioUoj3Sma6u8ftZ1DTI2yCaJamOVGLOnQWiPH3a74+EaqTA==", - "requires": { - "@types/node": "*" - } - }, - "@types/vinyl-fs": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz", - "integrity": "sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA==", - "requires": { - "@types/glob-stream": "*", - "@types/node": "*", - "@types/vinyl": "*" - } - }, - "@types/vinyl-paths": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/@types/vinyl-paths/-/vinyl-paths-0.0.31.tgz", - "integrity": "sha512-sw1o+DVXwEuPN4YsirTYTSmtuTDeoyJU217CZ4EuJkerdo7h6lacj7wGUA6mQNl0YgYmu+pTM1FrusLhWlELWg==", - "requires": { - "@types/node": "*" - } - }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "requires": { - "async-done": "^1.2.2" - } - }, - "atob": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", - "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - } - }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=" - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "binaryextensions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz", - "integrity": "sha1-HmN0iLNbWL2l9HdL+WpSEqjJB1U=" - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", - "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "requires": { - "ansi-styles": "^3.1.0", - "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" - } - }, - "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - } - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, - "cloneable-readable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", - "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^1.0.6", - "through2": "^2.0.1" - }, - "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - } - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "requires": { - "color-name": "^1.1.1" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=" - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, - "diff": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", - "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==" - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "requires": { - "readable-stream": "~1.1.9" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - } - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.50", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", - "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "^1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "time-stamp": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=" - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "fined": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=" - }, - "flagged-respawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", - "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "optional": true - } - } - }, - "fstream": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", - "integrity": "sha1-czfwWPu7vvqMn1YaKMqwhJICyYg=", - "requires": { - "graceful-fs": "~3.0.2", - "inherits": "~2.0.0", - "mkdirp": "0.5", - "rimraf": "2" - }, - "dependencies": { - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "requires": { - "natives": "^1.1.0" - } - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "requires": { - "globule": "~0.1.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "glob-watcher": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", - "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "object.defaults": "^1.1.0" - } - }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", - "requires": { - "find-index": "^0.1.1" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - } - } - }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" - }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" - } - } - } - }, - "glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "gulp-cli": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", - "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - } - } - }, - "gulp-armapbo": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gulp-armapbo/-/gulp-armapbo-1.1.3.tgz", - "integrity": "sha512-ZqbCDYU8sTBvp/JlSjSk8lhRXLUMpBYR7ZX2eerbQqsk/fd66nlwjrsL9SVgukISuClEFQv4BBmaokhAZq1LwA==", - "requires": { - "chalk": "^2.3.0", - "gulp-util": "^3.0.8", - "minimatch": "^3.0.4", - "single-line-log": "^1.1.2", - "vinyl": "^2.1.0" - }, - "dependencies": { - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "vinyl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", - "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - } - } - }, - "gulp-modify-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gulp-modify-file/-/gulp-modify-file-1.0.1.tgz", - "integrity": "sha512-toUFzkLlnz/CGLplG/+vl6zMT7U0ldbS6b6lT/aQ2u243wa4udMQwSPGPRAEdwaIbqZo34lqu4XRdPPx5iPCSQ==", - "requires": { - "gulp": "3.9.1", - "through2": "2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" - }, - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - } - }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" - }, - "dependencies": { - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", - "requires": { - "gaze": "^0.5.1" - } - }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "requires": { - "natives": "^1.1.0" - } - }, - "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "requires": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" - } - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "requires": { - "brace-expansion": "^1.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=" - }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" - }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "^1.1.1" - } - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - } - }, - "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" - }, - "dependencies": { - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - } - } - }, - "gulp-replace": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-0.6.1.tgz", - "integrity": "sha1-Eb+Mj85TPjPi9qjy9DC5VboL4GY=", - "requires": { - "istextorbinary": "1.0.2", - "readable-stream": "^2.0.1", - "replacestream": "^4.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "requires": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "gulp-zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/gulp-zip/-/gulp-zip-4.2.0.tgz", - "integrity": "sha512-I+697f6jf+PncdTrqfuwoauxgnLG1yHRg3vlmvDgmJuEnlEHy4meBktJ/oHgfyg4tp6X25wuZqUOraVeVg97wQ==", - "requires": { - "get-stream": "^3.0.0", - "plugin-error": "^0.1.2", - "through2": "^2.0.1", - "vinyl": "^2.1.0", - "yazl": "^2.1.0" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "requires": { - "glogg": "^1.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "requires": { - "sparkles": "^1.0.0" - } - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-odd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", - "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", - "requires": { - "is-number": "^3.0.0" - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" - }, - "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" - }, - "is-windows": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", - "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "istextorbinary": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz", - "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8=", - "requires": { - "binaryextensions": "~1.0.0", - "textextensions": "~1.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "jszip": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-2.6.1.tgz", - "integrity": "sha1-uI86ey5noqBIFSmCx6N1bZxIKPA=", - "requires": { - "pako": "~1.0.2" - } - }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazy-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", - "requires": { - "set-getter": "^0.1.0" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "requires": { - "readable-stream": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=" - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=" - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=" - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "requires": { - "lodash._root": "^3.0.0" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" - } - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" - }, - "make-error": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.3.tgz", - "integrity": "sha512-j3dZCri3cCd23wgPqK/0/KvTN8R+W6fXDqQe8BNLbTpONjbA8SPaRr+q0BQq9bx3Q/+g68/gDIh9FW3by702Tg==" - }, - "make-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", - "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", - "requires": { - "kind-of": "^3.1.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "match-stream": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/match-stream/-/match-stream-0.0.2.tgz", - "integrity": "sha1-mesFAJOzTf+t5CG5rAtBCpz6F88=", - "requires": { - "buffers": "~0.1.1", - "readable-stream": "~1.0.0" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - } - }, - "micromatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", - "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.0", - "define-property": "^1.0.0", - "extend-shallow": "^2.0.1", - "extglob": "^2.0.2", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.0", - "nanomatch": "^1.2.5", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "requires": { - "duplexer2": "0.0.2" - } - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "optional": true - }, - "nanomatch": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", - "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "is-odd": "^1.0.0", - "kind-of": "^5.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "natives": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz", - "integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "requires": { - "once": "^1.3.2" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", - "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" - }, - "dependencies": { - "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", - "requires": { - "once": "~1.3.0" - } - }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1" - } - } - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "requires": { - "readable-stream": "^2.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "over": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/over/-/over-0.0.5.tgz", - "integrity": "sha1-8phS5w/X4l82DgE6jsRMgq7bVwg=" - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=" - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=" - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=" - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "pullstream": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/pullstream/-/pullstream-0.4.1.tgz", - "integrity": "sha1-1vs79a7Wl+gxFQ6xACwlo/iuExQ=", - "requires": { - "over": ">= 0.0.5 < 1", - "readable-stream": "~1.0.31", - "setimmediate": ">= 1.0.2 < 2", - "slice-stream": ">= 1.0.0 < 2" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - } - } - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", - "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", - "requires": { - "extend-shallow": "^2.0.1" - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "replacestream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", - "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", - "requires": { - "escape-string-regexp": "^1.0.3", - "object-assign": "^4.0.1", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "requires": { - "path-parse": "^1.0.5" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "requires": { - "sver-compat": "^1.5.0" - } - }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-getter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", - "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", - "requires": { - "to-object-path": "^0.3.0" - } - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" - }, - "single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", - "requires": { - "string-width": "^1.0.1" - } - }, - "slice-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-stream/-/slice-stream-1.0.0.tgz", - "integrity": "sha1-WzO9ZvATsaf4ZGCwPUY97DmtPqA=", - "requires": { - "readable-stream": "~1.0.31" - } - }, - "smart-zip": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/smart-zip/-/smart-zip-0.0.9.tgz", - "integrity": "sha1-BQbnL4AL+NfqOgYZIpztM2sdaP0=", - "requires": { - "jszip": "^2.5.0", - "unzip": "^0.1.11" - } - }, - "snapdragon": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", - "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^2.0.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", - "requires": { - "atob": "^2.0.0", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", - "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", - "requires": { - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=" - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "stream-consume": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", - "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==" - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "^2.0.0" - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "textextensions": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz", - "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI=" - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", - "requires": { - "os-homedir": "^1.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", - "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", - "requires": { - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "regex-not": "^1.0.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "requires": { - "through2": "^2.0.3" - } - }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" - }, - "ts-node": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-4.1.0.tgz", - "integrity": "sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg==", - "requires": { - "arrify": "^1.0.0", - "chalk": "^2.3.0", - "diff": "^3.1.0", - "make-error": "^1.1.1", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.0", - "tsconfig": "^7.0.0", - "v8flags": "^3.0.0", - "yn": "^2.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "requires": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz", - "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==" - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, - "undertaker": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", - "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } - } - }, - "unzip": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/unzip/-/unzip-0.1.11.tgz", - "integrity": "sha1-iXScY7BY19kNYZ+GuYqhU107l/A=", - "requires": { - "binary": ">= 0.3.0 < 1", - "fstream": ">= 0.1.30 < 1", - "match-stream": ">= 0.0.2 < 1", - "pullstream": ">= 0.4.1 < 1", - "readable-stream": "~1.0.31", - "setimmediate": ">= 1.0.1 < 2" - } - }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", - "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", - "requires": { - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "lazy-cache": "^2.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8flags": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.1.tgz", - "integrity": "sha1-3Oj8N5wX2fLJ6e142JzgAFKxt2s=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" - }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - } - } - }, - "vinyl-paths": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vinyl-paths/-/vinyl-paths-2.1.0.tgz", - "integrity": "sha1-AIIEN8ujgmLO+IAthA+T4zku5Es=", - "requires": { - "through2": "^2.0.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - } - } - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "requires": { - "camelcase": "^3.0.0" - } - }, - "yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "requires": { - "buffer-crc32": "~0.2.3" - } - }, - "yn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" - } - } -} diff --git a/_tools/vscode/Invoke-Setup.ps1 b/_tools/vscode/Invoke-Setup.ps1 new file mode 100644 index 000000000..647cace36 --- /dev/null +++ b/_tools/vscode/Invoke-Setup.ps1 @@ -0,0 +1,29 @@ +Set-StrictMode -Version latest +$ErrorActionPreference = "Stop" + +. "$PSScriptRoot\functions.ps1" +. "$PSScriptRoot\..\config.ps1" + +$repoRoot = Resolve-Path "$PSScriptRoot/../.." +$devMission = "kp_liberation.$devMap" + +<# + .DESCRIPTION + Create development mission files with framework inside specified profile directory. +#> +function Add-MissionFiles($profileDir) { + $targetDir = "$($profileDir.FullName)/mpmissions" + # ensure that $targetDir directory exists + New-Item -ItemType Directory -Path $targetDir -ErrorAction SilentlyContinue | Out-Null + + # Link Missionframework into editor mission directory + (gi "$targetDir/$devMission").Delete() + New-Item -ItemType Junction -Path "$targetDir/$devMission" -Value "$repoRoot/Missionframework" -Force + + $baseMission = Get-Item "$repoRoot/Missionbasefiles/$devMission" + New-Item -ItemType HardLink -Path "$repoRoot/Missionframework/mission.sqm" -Value "$baseMission/mission.sqm" -Force +} + +$targetProfileDir = Get-TargetProfileDir +Add-MissionFiles $targetProfileDir + diff --git a/_tools/vscode/Run-Game.ps1 b/_tools/vscode/Run-Game.ps1 new file mode 100644 index 000000000..238d8065f --- /dev/null +++ b/_tools/vscode/Run-Game.ps1 @@ -0,0 +1,35 @@ +Set-StrictMode -Version latest +$ErrorActionPreference = "Stop" + +. "$PSScriptRoot\functions.ps1" +. "$PSScriptRoot\..\config.ps1" + +$devMission = "kp_liberation.$devMap" + +function Get-Arma3LaunchCommand { + param ( + [Parameter(Mandatory)] + [string] $exePath, + [array] $modsArray = @("vn") + ) + + $baseParams = '-world=empty -window -noPause -noSplash -skipIntro' + $params = @( + "-name=""$armaProfile""" + ) -join ' ' + + $command = @( + """$exePath""" + $params, + "-mod=""$($modsArray -join ';')""", + $baseParams, + """$(Get-TargetProfileDir)\mpmissions\$devMission""" + ) + + return $command +} + +$launchCommand = Get-Arma3LaunchCommand -ExePath "$armaDir/$armaExe" -ModsArray $modsArray +Write-Host $launchCommand + +Start-Process $launchCommand[0] ($launchCommand | Select-Object -Skip 1) diff --git a/_tools/vscode/functions.ps1 b/_tools/vscode/functions.ps1 new file mode 100644 index 000000000..1a78f46f3 --- /dev/null +++ b/_tools/vscode/functions.ps1 @@ -0,0 +1,15 @@ +Set-StrictMode -Version latest +$ErrorActionPreference = "Stop" + +$documents = "$env:UserProfile\Documents" + +function Get-TargetProfileDir() { + # $armaDefaultProfile = "$documents\Arma 3" + $armaProfilesDir = "$documents\Arma 3 - Other Profiles" + $profilePath = "$armaProfilesDir\$armaProfile" + + # ensure that $armaProfilesDir directory exists + New-Item -ItemType Directory -Path $profilePath -ErrorAction SilentlyContinue | Out-Null + + return Get-Item $profilePath +} diff --git a/build.bat b/build.bat index 73f40efe1..fd8fa7187 100644 --- a/build.bat +++ b/build.bat @@ -10,10 +10,10 @@ if ERRORLEVEL 1 ( ) rem CD into build tool directory -cd %~dp0_tools +cd %~dp0_tools/build-tool rem Install dependencies and build missions -call npm install --loglevel=error +call npm install --silent call npx gulp echo.