Fixed bug in build order system (#112)
Causing build order hatcheries to always be built as macro hatches, when they -never- ought to be.
BuildFAP Fixes
Performance considerations: BuildFAP could be massively expensive at times, a few freezeups as well. Building suggestions tend to collapse if the simulations are particularly one-sided.
Standardized BuildFAP sizes between maps
Performance flourish for morphing static defense.
Fixed bug where BuildFAP missed first element under consideration.
Update AssemblyManager.cpp to depend on relatively agnostic "cartridges" of units, buildings, and upgrades , or researches rather than hard-coded considerations. This way, students can replace them when they want to restrict unit choices. (ie on exploitive build orders, or in zvz when lurkers are not wanted.)
BuildFAP will no longer neglect the possibility of a hydra -staying as a hydra- when considering build options.
Removed script for lings potentially causing suicidal behavior.
Found bug in Stored_Unit(UnitType) leading to bad buildFAP choices.
Fixed a bug causing some attack orders to be lost.
Several changes to static D logic (less based off of sim, more based off actually present units.
Fixed bug in K/L ratio.
Consolidated Build Order Removals- now all take place OnMorph.
Fixed bug causing hardcoded build order sunkens (or spores) not to build when enemy was not discovered.
Adding a default level of assumed background units to BuildFAP, eg, there is some value in having anti-air power and there is some value in having anti-ground power- even if the enemy appears to lack those forces.
In this most recent branch, a pack of lings no longer counts as "ling ling" so the build orders have been simplified to match.
More precisely specified macro hatch logic, much less common now.
Micro:
Adapt to use FAP built-ins better
Carriers: Assumes pre-loaded carriers, Interceptors are now worth $0 independently.
Fixed a retreat/attack loop. If I entered the loop already and am not attacking, I must retreat.
Working with MAFAP: fixed bugs in MAFAP averaging system.
Units now are considered as "survivors" of MC_FAP at current HP if they are retreating or not in the combat "zone". Could do more elegantly by removing them from the sim, perhaps.
Units now fight when enemies are near home.
Fixed bug: Can_Fight had an omission of reavers being able to fight ground.
No longer build sim against enemy buildings (extending sim, causing overvaluation of ranged units).
Fixed bug causing units to run from units that are not a threat.
Zerglings may have been suiciding because their MA fap value was low (unlikely to survive fight), and proportionally they were likely to do more damage to their opponent than they were to receive (lings would stay at 0% MAfap while opponent may drop from 50% to 45%), and consider this a normal trade.
Found and fixed a subtle int-double subtraction causing units to maintain inappropriately high MA_FAP value. This bug was less visible on ranged units since they tend to stay at higher MAfap values.
Diagnostics:
Improved HP and MA_FAP displays. Note: Display behavior may be surprising on morphing buildings, but this is due to their unique state in bwapi, not due to some bugged feature of the display.
Display now announces if weak vs air is returning TRUE or not.
Tested FAP in small cases.
Removed a small bug in "phase_" display.
Cleanup:
Removed depreciated functions.
Moved the MAFAP calculation into the body of updateStoredUnit.
Standardizing MA_FAP style in Sunken Production
Fixed rare bug causing crash on loss when bot has no units.
Commented out some defunct bools.
Refactored evalArmy() and evalTech() functions. Almost pure refactoring. Should be much faster, removed a loop through the original bwapi unit storage system.
Macro:
Micro:
Diagnostics:
Cleanup: