CombinedArmsGaming / F3_CA

Combined Arms version of the F3 Framework
7 stars 9 forks source link

fn_assignGear Rework #63

Closed Poulern closed 3 years ago

Poulern commented 4 years ago

To prevent discussions getting lost in PMs, PRs etc. I figure I'd raise the issue properly.

Right now assignGear is not in a great state. We get a lot of complaints that we don't have a proper balance of gear in every mission, most of which is down to the assignGear being out of date. To remedy some changes will need to be made:

My suggestions:

*Rename the loadout classes to conform more to how we actually use them. I am also tempted to make the Heavies not necessarily use static weaponry, and instead have a static class (for example using the tank launchers as MAT and titans/mini spike for HAT). On the other hand its unlikely we'll ever run a mission with three tiers of AT. CSW is another factor to consider . Suggestion below

// Defined loadouts: // co - commander/officer -- Tied roles xo // fac - forward air control // sl - squad leader, // med - medic // sur - surgeon // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman // lat- light anti tank // dm - designated marksman // mmg - medium mg gunner // ammg - medium mg assistant // mat - medium AT gunner // amat - medium AT assistant // hmg - heavy mg gunner (deployable) // ahmg - heavy mg assistant (deployable) // hat - heavy AT gunner (deployable) // ahat - heavy AT assistant (deployable) // mtr - mortar gunner (deployable) // amtr - mortar assistant (deployable) // sam - medium SAM gunner // asam - medium SAM assistant gunner // stat - static gunner -- do we really use more than one type of static crew in a mission? Most of the time its easier to preplace a gun in the mission itself for them to move. Just a thought. // astat- assistant static gunner // sn - sniper // sp - spotter (for sniper) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) // pp - air vehicle pilot / co-pilot // pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew // eng - engineer // eod- demolitions -- maybe demo and eod? // uav - UAV operator // div - divers

yozer247 commented 4 years ago

If you want to change the format to make it real slick I'm fine with it, though I'm not really certain it needs that kind of attention.

A rebalancing of the loadouts sounds good, by default I think we give way too much, though this could be easily done outside of any major format rework. Though gear balance is very much up to the mission maker, I know I look through it everytime and tune it to what I need.

I would be up for combing through and making some suggestions there, though the majority of it would simply be reducing default mag and frag count.

I'm all for adding coloured smokes as default, I end up doing them myself everytime I make a mission.

thepaullee commented 4 years ago

Do you guys feel like _carbine and _rifle have become a bit redundant? I very rarely ever used separate rifles for medics, LAT, and the other few classes it affects

yozer247 commented 4 years ago

Do you guys feel like _carbine and _rifle have become a bit redundant? I very rarely ever used separate rifles for medics, LAT, and the other few classes it affects

I very often use _carbine and _rifle.

calumbrookes commented 4 years ago

@thepaullee I totally agree, I never distinguish between _carbine and _rifle and most of my gearscripts I just set them to be the same classnames so I would just bin that honestly.

One thing I really would like to see is to deprecate the "light" "medium" and "heavy" settings for every class - let's face it we don't use those settings so let's just bin that as it's confusing.

Big fan to add stuff like coloured smokes by default, even if just for SL and FAC (although I would like to see everyone carry at least 1x red and 1x green but appreciate it isn't practical when they do also need to be carrying whites!)

Uniforms change would be good as I do often find myself wanting to set lots of different uniforms for my events. Retention of the ability to do randomised uniforms from a pool an absolute requirement from me though.

Poulern commented 4 years ago

Absolutely agree on getting rid of the light/medium/heavy setting.

Randomized equipment is the purpose of the assigngear, so if anything it could even be expanded to the weapons too, then you could simply have more opportunities for randomization. _rifle = {"arifle_MX_pointer_F","arifle_MXC_F"] as an example.

The main question aside from small config stuff is if we want to do something more with the clothes bit, replicating the behavior of the light medium heavy backpack parameter to each class, which is much more easy to shift around. I'll elaborate in code below for the class medic.

//=================================================================================
// WEAPON SELECTION

_carbine = ["arifle_MXC_F"];
_carbinemag = ["30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag_Tracer"];
_carbinemagnumber = 6; //Default number of magazines given
...
//=================================================================================
// CLOTHES AND UNIFORMS

// Light/medium/heavy could mean the weight of the gear itself, or how heavy of a loadout each should get (ie a medic with few mags). I've chosen the latter interpretation
_light = ["med"];
// _medium here would be the standard
_heavy =  ["eng","eod","log"]; 
_officer = ["co","fac","sur"]
_diver = ["div"];
_pilot = ["pp","pcc","pc"];
_crew = ["vc","vg","vd"];
_ghillie = ["sn","sp"];
_specOp = [];

//=================================================================================
// DEFINE UNIT TYPE LOADOUTS
switch (_typeofUnit) do
{
...
// =================================================================================

// LOADOUT: MEDIC
    case "med":
    {
        _unit addweapon selectrandom _carbine;
        _unit addmagazines [(selectrandom _carbinemag),ceil (_carbinemagnumber * _loadoutmodifier)]; //pretend this works with regards to distributing across uniform vest and backpack. _loadoutmodifier loadout could be something like 0.6 to only give 60% of the mags to a "Light" class. 
        _unit addmagazines [_smokegrenade,(4 * _loadoutmodifier)];
        {_unit addItem _firstaid} forEach [1,2,3,4];
        {_unit addItem "ACE_splint"} forEach [1,2,3,4,5,6,7,8,9,10];    
        _unit addWeapon "Binocular";        
        _unit linkItem "ItemGPS";
        _unit addItem "ACE_microDAGR";
        _unit addItem "ACE_surgicalKit";
    };
DutchVidya commented 4 years ago

I'll put this stuff here so it's just on the git:

If I want seperate rifles between medics and anyone else. It's easy enough to do myself. +1 for a deprecation of the two being seperate classes. I think it would not only streamline the process but help new mission makers grasp the assigngear stuff faster. It wout also just make loadouts faster to finish as it's a pretty tedious process.

+1 for deprecation of heavy/medium/light. It's got no bearing in either real world sense or arma context. Militaries define standard loadouts, and men grab what they can once they get in the field. Arma already mirrors that and our default "medium" has literally never needed more to be perfectly honest.

Backpacks are a mess. +1 to fixing that shit.

Divers can go. Just like _carbine if you need it, add it back personally. We've done like 2, maybe 3 ops with divers. Ever. There are other roles that are generally better to probably not have but the argument is weaker. _UAV for example could just be a rifleman loadout with a UAV terminal and bag. That's personal preference on my part. You could feasibly extend that philosophy to a few others.

As to things that I'd like to see not mentioned:

I generally assign the same array of uniforms to all units in a platoon, vehicle crews or SF units attached notwithstanding. I do however tend to delineate between vests for say ARs and everyone else. We have vests built for that role. They carry more for a reason. Right now I do this manually by placing my ARs in the _heavy array and assigning them the _heavy vest option. If it were easier or built right into the gear script we'd likely see better use of the equipment we have across the board.

Other things on my mind include general fixes like replacing all the chemlights with ACE ones. General cleanup of Inventory clutter (Map Tools and such that should be added, not removed in the mission making process).

Other than that I suppose I'd like it to be smaller, still cover all the major possible roles but rely on actual deliberate inclusion of specialist or non standard gear when called for.

jimshacklock commented 4 years ago

Not sure if this has been covered already - could we centralise the default loadout a bit. Right now if you want to reduce ammo/grenades etc you've got to do it across every unit. There's some stuff that the majority of units are going to share (rifle mags, grenades, med supplies) and would be good to have as a centralised setup that we then add to or remove from as needed for units.

e.g we add Basic ammo to the universal items section and then can compact down a lot of the loadout types below. Perhaps even moving to a rank based system (similar to radios) to assign out stuff like coloured smoke?

// ADD UNIVERSAL ITEMS
// Add items universal to all units of this faction

_unit linkItem _nvg;                    // Add and equip the faction's nvg
_unit addItem _firstaid;                // Add a single first aid kit (FAK)
_unit linkItem "ItemMap";               // Add and equip the map
_unit linkItem "ItemCompass";           // Add and equip a compass
_unit linkItem "ItemRadio";             // Add and equip A3's default radio
_unit linkItem "ItemWatch";             // Add and equip a watch
//_unit linkItem "ItemGPS";             // Add and equip a GPS

// ADD ACE ITEMS
_unit addItem "ACE_Flashlight_XL50";    // Add a flashlight for ACE map support.
_unit addItem "ACE_Maptools";

// Add medical items
{_unit addItem "ACE_fieldDressing"} forEach [1,2,3,4,5,6,7,8,9,10]; // Bandages
{_unit addItem "ACE_morphine"} forEach [1,2,3,4,5];
{_unit addItem "ACE_tourniquet"} forEach [1,2];
{_unit addItem "ACE_splint"} forEach [1,2]; 
//{_unit addItem "ACE_epinephrine"} forEach [1,2];
//{_unit addItem "ACE_adenosine"} forEach [1];  
{_unit addItem "ACE_bloodIV_500"} forEach [1];

// ADD BASIC RIFLEMAN AMMO (these are just the current Rifleman assignments as PH values)
_unit addmagazines [_riflemag,7];
_unit addmagazines [_riflemag_tr,2];
_unit addmagazines [_grenade,3];
_unit addmagazines [_mgrenade,3];
_unit addmagazines [_smokegrenade,3];   
Poulern commented 4 years ago

My method above thats a compromise, and honestly probably the better way compared to my initial idea would be:

_carbine = ["arifle_MXC_F"];
_carbinemag = ["30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag_Tracer"];
_carbinemagnumber = 6; //Default number of magazines given

_glrifle = ["arifle_MX_GL_F"];
_glriflemag = "30Rnd_65x39_caseless_mag";
_glriflemag_tr = "30Rnd_65x39_caseless_mag_Tracer";
_glriflemagnumber = 9;
_glmag = "1Rnd_HE_Grenade_shell";
_glmagnumber = 5;

// LOADOUT: COMMANDER
    case "co":
    {
_unit addmagazines [_glriflemag,(ceil _glriflemagnumber*0.8)];
_unit addmagazines [_glriflemag_tr,(ceil _glriflemagnumber*0.2)];
_unit addmagazines [_glmag,_glmagnumber];
...
};
You could override _glmagnumber by replacing it with your own number. 

`

Rqller commented 4 years ago

Could we get it to assign mags last? That way we can ensure all units get the essentials, and then the rest of the space is mags 19:45 Rather than getting ~3 more mags, but missing flashlights, map tools, smokes, etc.