official-antistasi-community / A3-Antistasi

Antistasi Community Version - work in progress - Discord https://discord.com/invite/TYDwCRKnKX
https://antistasi.de
Other
228 stars 154 forks source link

Improve AI Weapon selection #208

Closed SonorousMeerkat closed 5 years ago

SonorousMeerkat commented 5 years ago

AI like to take bolt actions/SMGs when there are ARs available. They should really pick their weapons a bit better.

wurzel0701 commented 5 years ago

In my private version i placed an VR unit and let the commander change its outfit for each AI class. Spawned AI will have this outfit as their default loadout. There is no need to do it like this, just dropping ideas. Something similar may be better suited

PoweredByPot commented 5 years ago

I will deal with this very shortly. The biggest part involves fixing the existing weapons sorting. Its part of my initVar change, but I considered it "non essential" until @Spoffy reviews it for merge.

MORE DETAIL: the biggest part of the current process is the 'randomrifle' function. Right now it gets passed the "arifles, srifles, mguns, hguns etc etc" list. Not only is that list currently broken and putting weapons in wrong classes, it also isnt very specific to possible weapon and item types. It also does a pretty poor job of weapon attachments as well, and may completely forget them, I cant remember atm.

Part one is creating more specific items list from the big sort using BIS_fnc_ItemType. Right now we go no further than that, and I plan on using that basic result to create more specific lists to be used. This will also help throughout the mission for AI checks and creation. Right now we use the loot lists to see if units have certain things, which is entirely dependent on mods and template. In many cases we could instead use a broad list of items that match the appropriate type. These arrays could not fail to detect properly in those checks because they use everything in the config, NOT what the mission and templates tells the game to spawn in crates.

marko2552 commented 5 years ago

In my private version i placed an VR unit and let the commander change its outfit for each AI class. Spawned AI will have this outfit as their default loadout. There is no need to do it like this, just dropping ideas. Something similar may be better suited

@wurzel0701 can you explain this in more detail? Really want to change the default gear. Thanks.

wurzel0701 commented 5 years ago

Just as an information, as PoweredByPot is already on it and I would prefer not to interfere with anyones work or ideas. Pot will solve this issue, and my approach will not be in the official version!

@marko2552 My personal approach was to set an VR units with all AIs off and set it as captive, so it does not distract attacking enemies. The prototype in the VR world looks like this.

20190902084052_1

The unit got two actions added, "Set loadout" and "Switch loadout".

Result will look similar to this 20190902084920_1

But this is just my personal approach. You can copy it if you like, but it will not be in the official version!

marko2552 commented 5 years ago

@wurzel0701 thanks man!

PoweredByPot commented 5 years ago

I want to be clear first that my ideas for gear encompass almost all facets of gear and equipment, and as I plan to fix it, it will likely not be merge-able (is that a word?) without a lot of pain and suffering.

The basis of my plan convert the current purpose of templates from identifying specific units to instead identifying specific roles. There will only be a "Template" for each side of the war. The actual engine value "side" as well as faction will be passed to the template for rebels/NOTgovt/invaders.

The InitVar file now generates arrays that contain all the units of a particular type for the given "side" value, NO MATTER WHAT MODS YOU HAVE LOADED. Players will now choose in parameters what "side" and what "faction" for that side they would like each of rebels/NOTgovt/invaders to have.

The files formerly known as templates (prince reference), now look within those arrays for units that match a set of parameters for each role, and fill them according for the rest of the mission to use. They then scrape those units just like before to gather the "loot" lists based on what items the selected units are wearing.

InitVar now has final say on what items are available at the start, and the section where it decides so is the ONLY place in the file that items are dealt with at all, hopefully bringing a lot more clarity to the process.

Bob-Murphy commented 5 years ago

@PoweredByPot @SonorousMeerkat Has this been worked on or maybe even fixed?

PoweredByPot commented 5 years ago

Closing this issue, as many changes have been made regarding this, and they need to be monitored and balanced.