I have been working on that piece of code a few hours too. But at the time it was located in another model.
Anyway, you want to consider that those abilities are, for an overwhelming part, between 0 and 1. Only the timers and some AI abilities that I might have missed do not fall into that range.
So setting 100 or everything like that seems pretty suspicious considering you want to reverse engineer the code. It also explains why you experienced troubles with the "decide -> attack" ability.
To be honest, I think this part of the code is handled properly by the developers and I think the combat AI is very convincing with the right values set. It is extremely easy to tweak as is the damage system. We just need a way now to control the formation and strategic AI and we will be able to build some great mods.
I worked it out and made a killer AI that feints and parry like crazy. Unfortunately I can cheese it by kick-attack. Do you know a way to control the AI distance? If I can make the AI keep a safe distance, then I can't kick it.
BTW, I think some of these code is unimplemented.
AIKick and AiTryChamberAttackOnDecide doesn't work. I think AI can't kick, bash or chamber.
Here is the updated code, try that and the AI will be insane. I am going to scale the abilities with melee skill, of course and remove the irrelevant ones.
BTW, the combat AI is actually very bad. For someone new or maybe never practiced much it's ok. But for experienced players it is way too easy, hence why I am doing this because the combat AI is the core for everything else. I want to make a better tournament mod, but that falls apart without a good 1v1 AI.
Code:
agentDrivenProperties.AiParryDecisionChangeValue = 0;
agentDrivenProperties.AiMovemetDelayFactor = 0;
agentDrivenProperties.AiCheckMovementIntervalFactor = 0;
agentDrivenProperties.AiAttackingShieldDefenseTimer = 0;
agentDrivenProperties.AiAttackingShieldDefenseChance = 0;
agentDrivenProperties.AIRealizeBlockingFromIncorrectSideAbility = 0;
agentDrivenProperties.AIDecideOnRealizeEnemyBlockingAttackAbility = 100;
agentDrivenProperties.AIParryOnAttackingContinueAbility = 100;
agentDrivenProperties.AiDecideOnAttackingContinue = 100;
agentDrivenProperties.AiDecideOnAttackContinueAction = 100;
agentDrivenProperties.AiDecideOnAttackWhenReceiveHitTiming = 0;
agentDrivenProperties.AiAttackCalculationMaxTimeFactor = 0;
agentDrivenProperties.AiKick = 0;
agentDrivenProperties.AIParryOnAttackAbility = 100;
agentDrivenProperties.AIDecideOnAttackChance = 100;
agentDrivenProperties.AiAttackOnParryTiming = 0;
agentDrivenProperties.AIAttackOnParryChance = 0;
agentDrivenProperties.AiDefendWithShieldDecisionChanceValue = 0;
agentDrivenProperties.AiTryChamberAttackOnDecide = 0;
agentDrivenProperties.AiMoveEnemySideTimeValue = 0;
agentDrivenProperties.AiStandGroundTimerValue = 0;
agentDrivenProperties.AIEstimateStunDurationPrecision = 0;
agentDrivenProperties.AISetNoDefendTimerAfterParryingAbility = 0;
agentDrivenProperties.AISetNoDefendTimerAfterHittingAbility = 0;
agentDrivenProperties.AISetNoAttackTimerAfterBeingParriedAbility = 0;
agentDrivenProperties.AISetNoAttackTimerAfterBeingHitAbility = 0;
agentDrivenProperties.AiRandomizedDefendDirectionChance = 0;
agentDrivenProperties.AiSpeciesIndex = 0;
agentDrivenProperties.AiUseShieldAgainstEnemyMissileProbability = 0;
agentDrivenProperties.AiRaiseShieldDelayTimeBase = 0;
agentDrivenProperties.AIAttackOnDecideChance =0.9f;
agentDrivenProperties.AiRangerHorizontalErrorMultiplier = 0;
agentDrivenProperties.AiRangerVerticalErrorMultiplier = 0;
agentDrivenProperties.AiRangerLeadErrorMax = 0;
agentDrivenProperties.AiRangerLeadErrorMin = 0;
agentDrivenProperties.AiChargeHorsebackTargetDistFactor = 0;
agentDrivenProperties.AiHearingDistanceFactor = 0;
agentDrivenProperties.AiStandGroundTimerMoveAlongValue = 0;
agentDrivenProperties.AiMinimumDistanceToContinueFactor = 0;
agentDrivenProperties.AIParryOnDecideAbility = 100;
agentDrivenProperties.AIBlockOnDecideAbility = 0;
agentDrivenProperties.AiWaitBeforeShootFactor = 0;
//agentDrivenProperties.ArmorTorso = 0;
//agentDrivenProperties.ArmorHead = 0;
//agentDrivenProperties.WeaponsEncumbrance = 0;
//agentDrivenProperties.ArmorEncumbrance = 0;
//agentDrivenProperties.WeaponRotationalAccuracyPenaltyInRadians = 0;
//agentDrivenProperties.WeaponUnsteadyEndTime = 0;
//agentDrivenProperties.WeaponUnsteadyBeginTime = 0;
//agentDrivenProperties.ArmorLegs = 0;
//agentDrivenProperties.WeaponMaxUnsteadyAccuracyPenalty = 0;
//agentDrivenProperties.WeaponStationaryAccuracyMultiplier = 0;
//agentDrivenProperties.WeaponInaccuracy = 0;
//agentDrivenProperties.ReloadSpeed = 0;
//agentDrivenProperties.ThrustKnockBackChanceBonus = 0;
//agentDrivenProperties.HandlingMultiplier = 0;
//agentDrivenProperties.ThrustOrRangedReadySpeedMultiplier = 0;
//agentDrivenProperties.SwingSpeedMultiplier = 1;
//agentDrivenProperties.WeaponMaxMovementAccuracyPenalty = 0;
agentDrivenProperties.AIHoldingReadyMaxDuration = 0;
//agentDrivenProperties.ArmorArms = 0;
//agentDrivenProperties.LongestRangedWeaponInaccuracy = 0;
agentDrivenProperties.AiShootFreq = 0;
agentDrivenProperties.AiFlyingMissileCheckRadius = 0;
agentDrivenProperties.AiFacingMissileWatch = 0;
agentDrivenProperties.AiRangedHorsebackMissileRange = 0;
//agentDrivenProperties.MountDifficulty = 0;
//agentDrivenProperties.MountChargeDamage = 0;
//agentDrivenProperties.MountSpeed = 0;
//agentDrivenProperties.LongestRangedWeaponSlotIndex = 0;
//agentDrivenProperties.MountManeuver = 0;
//agentDrivenProperties.AttributeHorseArchery = 0;
//agentDrivenProperties.CombatMaxSpeedMultiplier = 100;
//agentDrivenProperties.MaxSpeedMultiplier = 0;
//agentDrivenProperties.TopSpeedReachDuration = 0; // crashses at 0
//agentDrivenProperties.ShieldBashStunDurationMultiplier = 0;
//agentDrivenProperties.AttributeShieldMissileCollisionBodySizeAdder = 0;
//agentDrivenProperties.AttributeShield = 0;
//agentDrivenProperties.AttributeRiding = 0;
//agentDrivenProperties.AttributeCourage = 0;
agentDrivenProperties.AIHoldingReadyVariationPercentage = 0;