Skip to content

Commit

Permalink
Standalone mod
Browse files Browse the repository at this point in the history
  • Loading branch information
Amateur-God committed Dec 8, 2023
1 parent 68b75cc commit 9c5c237
Show file tree
Hide file tree
Showing 21 changed files with 910 additions and 1 deletion.
69 changes: 68 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,68 @@
# Backpack-Drones
<p align="center">
<img src="https://github.com/Viking-Studios-Arma/ONI_Recon_Essentials/blob/5d17ad1523638d20144793f82f990c9eececcb5a/Falcon%20flight%20banner%20W-logo.png" alt="ONI Recon Banner Banner" />
<br />
<a href="https://discord.gg/9pJTHHzaFC">
<img src="https://img.shields.io/discord/1032437213100777502.svg?label=Discord&logo=Discord&colorB=7289da&style=for-the-badge" alt="Discord Server">
</a>
<a href="https://steamcommunity.com/sharedfiles/filedetails/?id=3016023028">
<img src="https://img.shields.io/steam/subscriptions/3016023028?style=for-the-badge" alt="Steam Subscriptions">
</a>

</p>
</p>
<p align="center">
<a href="https://steamcommunity.com/sharedfiles/filedetails/?id=3016023028">
<img src="https://img.shields.io/steam/size/3016023028?label=Download&logo=steam" alt="Download" />
</a>
<a href="https://github.com/Viking-Studios-Arma/ONI_Recon_Core/releases">
<img src="https://img.shields.io/github/release/Viking-Studios-Arma/ONI_Recon_Core.svg?label=Version" alt="Version" />
</a>
<a href="https://github.com/Viking-Studios-Arma/ONI_Recon_Core/issues">
<img src="http://img.shields.io/github/issues-raw/Viking-Studios-Arma/ONI_Recon_Core.svg?label=Issues&style=flat" alt="Issues" />
</a>
<a href="Viking-Studios-Arma/ONI_Recon_Core/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/Viking-Studios-Arma/ONI_Recon_Core.svg?style=flat&label=Licence" alt="License">
</a>
</p>

<p>

This is a standalone Version of the Backpack Drones featured in our Milsim Tools Mod

</p>

## Dependencies
### Required
- [CBA A3](https://steamcommunity.com/sharedfiles/filedetails/?id=450814997)
- [ACE](https://steamcommunity.com/workshop/filedetails/?id=463939057)

# For Developers of this mod
## Install
We have a build system to allow for key signing and addon compiling.

### Requirements
1. [Git for Windows](https://git-scm.com/download/win)
1. Windows PowerShell v5.1 or higher

<ins>Automated Process:</ins>

To automatically set up your system and build the mod you can execute the included `build.bat` file.
You can do this by either going to `\tools` and double clicking the `build.bat` file, or if you use VSC you can select the bat file then in the `TERMINAL` at the bottom you can select the `Run Active File` option from the `...` menu.

<ins>Manual Proccess:</ins>

To set up your system to use the build script:
- Open Windows PowerShell as Administrator and execute `set-executionpolicy remotesigned`
- In the future, always use PowerShell as Admin

### Windows
If on Windows, use the `tools\make.ps1` file to build the mod for you. It will build the mod, sign the addons, include the public key in the `keys` folder, and also copy across all files found in the `extras` folder, as well as the files specified in the file `tools\support-files.txt`.

The build script will NOT leave the private key in the `keys` folder. It will delete it instead, to avoid any accidental uploading or distribution.

Be aware, that the names of the `.bisign` and `.bikey` files depend on the latest tag on git. This means that, if you wish to upload a release, it is advised to first tag the latest git commit, and then build the mod. That way you have a nice version, such as `VS_C_v1.0.0.bikey` rather than `VS_C_-gae17a97.bikey`.

## Naming conventions
For standardisation between class names and to prevent any possible future conflicts with class names the following naming convention has been developed:
- for code: VS_Core
- for presentation: Viking Studios - {Addon Name}
Binary file added VSLogo.paa
Binary file not shown.
1 change: 1 addition & 0 deletions addons/BackpackDrones/$PBOPREFIX$
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
x\VS_C\Backpack-Drones
27 changes: 27 additions & 0 deletions addons/BackpackDrones/Configs/Ace.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
class CAManBase: Man {
class ACE_SelfActions {
class ACE_Equipment {
class ED1D_Unpack {
displayName = "Deploy ED-1D (Demining)";
condition = """VS_C_ED_1D_Item"" in backpackItems _player";
statement = "_player call VS_C_Drone_fnc_ED1D_Create";
exceptions[] = {"isNotOnMap","isNotInside", "isNotSwimming","isNotSitting"};
icon = ""; // icontodo
};
class ED1E_Unpack {
displayName = "Deploy ED-1E (Science)";
condition = """VS_C_ED_1E_Item"" in backpackItems _player";
statement = "_player call VS_C_Drone_fnc_ED1E_Create";
exceptions[] = {"isNotOnMap","isNotInside", "isNotSwimming","isNotSitting"};
icon = ""; // icontodo
};
class AR2_Unpack {
displayName = "Deploy AR-2 (Darter)";
condition = """VS_C_AR2_Item"" in backpackItems _player";
statement = "_player call VS_C_Drone_fnc_AR2_Create";
exceptions[] = {"isNotOnMap","isNotInside", "isNotSwimming","isNotSitting"};
icon = ""; // icontodo
};
};
};
};
46 changes: 46 additions & 0 deletions addons/BackpackDrones/Configs/CfgWeapons.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
class CfgWeapons
{
class ToolKit;
class VS_C_ED_1D_Item: ToolKit
{
author = "Amateur_God";
displayName = "Deployable ED 1D (Demining)";
descriptionShort = "Inventory item<br/>allows you to deploy ED1D";
class ItemInfo
{
mass = 50;
uniformModel = "\A3\Weapons_F\Items\Toolkit";
type = 620;
allowedSlots[] = {801,701,901};
scope = 0;
};
};
class VS_C_ED_1E_Item: ToolKit
{
author = "Amateur_God";
displayName = "Deployable ED 1E (Science)";
descriptionShort = "Inventory item<br/>allows you to deploy ED1E";
class ItemInfo
{
mass = 50;
uniformModel = "\A3\Weapons_F\Items\Toolkit";
type = 620;
allowedSlots[] = {801,701,901};
scope = 0;
};
};
class VS_C_AR2_Item: ToolKit
{
author = "Amateur_God";
displayName = "Deployable AR-2 (Darter)";
descriptionShort = "Inventory item<br/>allows you to deploy AR-2 Darter";
class ItemInfo
{
mass = 50;
uniformModel = "\A3\Weapons_F\Items\Toolkit";
type = 620;
allowedSlots[] = {801,701,901};
scope = 0;
};
};
};
11 changes: 11 additions & 0 deletions addons/BackpackDrones/Configs/Drones.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@

//Civ
class VS_ED_1E_C: B_UGV_02_Science_F
{
faction="CIV_IDAP_F";
editorSubcategory = "EdSubcat_Drones";
displayName="ED 1E (Science)";
side=3;
crew="C_IDAP_UAV_AI_F";
typicalCargo[]={};
};
36 changes: 36 additions & 0 deletions addons/BackpackDrones/Functions/fn_AR2_Create.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
Description:
If player has drone item in backpack, removes drone item from backpack and spawns
specified drone in front of player.
Returns:
ACE Actions to insert as children
Author:
Amateur-god
*/

params ["_unit"];
[player, "PutDown"] call ace_common_fnc_doGesture;

[
{
params ["_unit"];
private _playerSide = side player; // Define _playerSide here

_unit removeItemFromBackpack "VS_C_AR2_Item";
private _vehicleClass = switch (_playerSide) do {
case west: {"B_UAV_01_F"};
case east: {"O_UAV_01_F"};
case independent: {"I_UAV_01_F"};
default {"C_IDAP_UAV_01_F"};
};

_uavPos = _unit modelToWorld [0, 2, 0];
_uav = createVehicle [_vehicleClass, _uavPos, [], 0, "CAN_COLLIDE"];
createVehicleCrew _uav;
},
[_unit],
1.5
] call CBA_fnc_waitAndExecute;
29 changes: 29 additions & 0 deletions addons/BackpackDrones/Functions/fn_AR2_Pack.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
Description:
Packs the drone into a toolkit like item and puts it into the players backpack.
Returns:
ACE Actions to insert as children
Author:
Amateur-god
*/

params ["_unit", "_item"];
[player, "PutDown"] call ace_common_fnc_doGesture;
[
{
params ["_unit", "_item"];

// Check if the vehicle is still present
if (alive _item) then {
deleteVehicle _item;
_unit addItemToBackpack "VS_C_AR2_Item";
} else {
hint "The vehicle is destroyed and cant be collected!";
}
},
[_unit, _item],
1.5
] call CBA_fnc_waitAndExecute;
37 changes: 37 additions & 0 deletions addons/BackpackDrones/Functions/fn_ED1D_Create.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
Description:
If player has drone item in backpack, removes drone item from backpack and spawns
specified drone in front of player.
Returns:
ACE Actions to insert as children
Author:
Amateur-god
*/

params ["_unit"];
[player, "PutDown"] call ace_common_fnc_doGesture;

[
{
params ["_unit"];
private _playerSide = side player; // Define _playerSide here

_unit removeItemFromBackpack "VS_C_ED_1D_Item";

private _vehicleClass = switch (_playerSide) do {
case west: {"B_UGV_02_Demining_F"};
case east: {"O_UGV_02_Demining_F"};
case independent: {"I_UGV_02_Demining_F"};
default {"C_IDAP_UGV_02_Demining_F"};
};

_uavPos = _unit modelToWorld [0, 2, 0];
_uav = createVehicle [_vehicleClass, _uavPos, [], 0, "CAN_COLLIDE"];
createVehicleCrew _uav;
},
[_unit],
1.5
] call CBA_fnc_waitAndExecute;
29 changes: 29 additions & 0 deletions addons/BackpackDrones/Functions/fn_ED1D_Pack.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
Description:
Packs the drone into a toolkit like item and puts it into the players backpack.
Returns:
ACE Actions to insert as children
Author:
Amateur-god
*/

params ["_unit", "_item"];
[player, "PutDown"] call ace_common_fnc_doGesture;
[
{
params ["_unit", "_item"];

// Check if the vehicle is still present
if (alive _item) then {
deleteVehicle _item;
_unit addItemToBackpack "VS_C_ED_1D_Item";
} else {
hint "The vehicle is destroyed and cant be collected!";
}
},
[_unit, _item],
1.5
] call CBA_fnc_waitAndExecute;
39 changes: 39 additions & 0 deletions addons/BackpackDrones/Functions/fn_ED1E_Create.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
Description:
If player has drone item in backpack, removes drone item from backpack and spawns
specified drone in front of player.
Returns:
ACE Actions to insert as children
Author:
Amateur-god
*/

params ["_unit"];

[player, "PutDown"] call ace_common_fnc_doGesture;

[
{
params ["_unit"];
private _playerSide = side player; // Define _playerSide here

_unit removeItemFromBackpack "VS_C_ED_1E_Item";

private _vehicleClass = switch (_playerSide) do {
case west: {"B_UGV_02_Science_F"};
case east: {"O_UGV_02_Science_F"};
case independent: {"I_UGV_02_Science_F"};
default {"VS_ED_1E_C"};
};

_uavPos = _unit modelToWorld [0, 2, 0];
_uav = createVehicle [_vehicleClass, _uavPos, [], 0, "CAN_COLLIDE"];
createVehicleCrew _uav;

},
[_unit],
1.5
] call CBA_fnc_waitAndExecute;
29 changes: 29 additions & 0 deletions addons/BackpackDrones/Functions/fn_ED1E_Pack.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
Description:
Packs the drone into a toolkit like item and puts it into the players backpack.
Returns:
ACE Actions to insert as children
Author:
Amateur-god
*/

params ["_unit", "_item"];
[player, "PutDown"] call ace_common_fnc_doGesture;
[
{
params ["_unit", "_item"];

// Check if the vehicle is still present
if (alive _item) then {
deleteVehicle _item;
_unit addItemToBackpack "VS_C_ED_1E_Item";
} else {
hint "The vehicle is destroyed and cant be collected!";
}
},
[_unit, _item],
1.5
] call CBA_fnc_waitAndExecute;
Binary file added addons/BackpackDrones/Img/VSLogo.paa
Binary file not shown.
Loading

0 comments on commit 9c5c237

Please sign in to comment.