I've dug into this and turned on cheat mode and set log_detail_ai to 4. Sure enough, the tactics AI assigned a high score to activating the ring:
Code: Select all
[use_tactical AI] ===Want Buff parameters:
___ buff_best_attack_value = 2 best attack[nil]: 1, lvl:nil, ai_tactic: nil
___ best attackarea[T_ACTIVATE_OBJECT_2]: 2.7028125, lvl:2, ai_tactic: nil
___ buff_range_factor: 0, target dist: nil, desired range: 1 buff_duration_factor: 0.1
[use_tactical AI] ### foes_near_strength 0 ### allies_near_strength 0 ### want.life 0 want.escape 0
[use_tactical AI] ### ai_tactic:
{}
[use_tactical AI] ### Final Wants (ai_tactic applied):
{air=0, attack=2, attackall=2, attackarea=2, buff=0.1, defend=0.1, escape=0, heal=0, life=0, mana=0, special=1}
[use_tactical AI] === Tactical Action Summary === attempt: 1 2955 Daddar
#:type:tid/ai name score [xmLVL xmSPD xmRNG] (tact=want*value, ...)
1: tid:T_ACTIVATE_OBJECT_2 = +7.96[x1.40 x 1.00 x1.05] (escape=+0.00*+1.50,attackarea=+2.00*+2.70,)
2: tid:T_RUNE:_MANASURGE_3 = +0.00[x1.20 x 1.00 x1.37] (mana=+0.00*+1.00,)
[use_tactical AI] === Tactical Action Summary (SORTED) === attempt: 1 2955 Daddar
#:type:tid/ai name score [xmLVL xmSPD xmRNG] (tact=want*value, ...)
1: tid:T_ACTIVATE_OBJECT_2 = +7.96[x1.40 x 1.00 x1.05] (escape=+0.00*+1.50,attackarea=+2.00*+2.70,)
2: tid:T_RUNE:_MANASURGE_3 = +0.00[x1.20 x 1.00 x1.37] (mana=+0.00*+1.00,)
[LOG] #GREY# 1: tid:T_ACTIVATE_OBJECT_2 score=+7.96[Lx1.40 Sx 1.00 Mx1.05] (escape=+0.00*+1.50,attackarea=+2.00*+2.70,)
[LOG] #GREY# 2: tid:T_RUNE:_MANASURGE_3 score=+0.00[Lx1.20 Sx 1.00 Mx1.37] (mana=+0.00*+1.00,)
[use_tactical AI]### Daddar[2955] tactical AI picked action (attackarea)tid:T_ACTIVATE_OBJECT_2 [att:1, turn 5423: {score:+7.96 [escape=+0.00*+1.50,attackarea=+2.00*+2.70,]}
[LOG] #ORCHID#__Daddar[2955] tactical AI picked action[att:1, turn 5423]: (attackarea)tid:T_ACTIVATE_OBJECT_2 {+7.96 [escape=+0.00*+1.50,attackarea=+2.00*+2.70,]}
[use_tactical AI] === Action Selected: 2955 Daddar attackarea talent:T_ACTIVATE_OBJECT_2
[LOG] Daddar brandishes #FFD700##UID:2866:0#Vargh Redemption#LAST#, calling forth the might of the oceans!
[use_tactical AI] turn 5423 2955 Daddar ### SUCCESSFUL ACTION returned: T_ACTIVATE_OBJECT_2 true
Something that caught my attention earlier on in the log is that the AI concluded the ability would only affect the user ("may affect (SELF ONLY)"). That seemed wrong.
Code: Select all
[aiTalentTactics] COMPUTING TACTICs [2955]Daddar(OHash:nil) (all, wt_mod:nil, wt cache_turns:100) for talent: T_ACTIVATE_OBJECT_2 targeted on nil[nil], tg=nil
[aiTalentTactics]__ using talent tactical table for T_ACTIVATE_OBJECT_2
___[escape] = 1.5
___[attackarea] = {
___ [COLD] = 1.5
___ [PHYSICAL] = 1.5
___}
[aiTalentTactics] *** creating new turn_procs CACHE for talent T_ACTIVATE_OBJECT_2
[aiTalentTactics] *** creating new target WEIGHT CACHE for talent T_ACTIVATE_OBJECT_2 cache validity(turns): 100 aiOHash: nil vs (cache): nil
[aiTalentTactics] extracting targets, selffire, friendlyfire from tg: (from talent)
[aiTalentTargets] T_ACTIVATE_OBJECT_2 may affect (SELF ONLY) Daddar 2955 at 20 12
[aiTalentTactics] *** updating turn_procs CACHE for talent T_ACTIVATE_OBJECT_2
[aiTalentTactics] targets for T_ACTIVATE_OBJECT_2: RT:nil(hostile:nil) TG:nil SF(x5)=1, FF(x1)=1
____ T_ACTIVATE_OBJECT_2 may hit 2955 Daddar at 20 12
When I compared the ring's use_power definition with Tidal Wave, I noticed that for the ring the radius was hardcoded to 1 instead of the full range the wave would grow to and also that required_target / target were missing. I added those based on Tidal Wave's values and this appears to have fixed the issue. Vargh Redemption no longer gets used when no enemies are around. I also checked that it does get used when enemies are near by luring some enemies to the alchemist with the golem.
I put my patch on
https://github.com/rgeens/t-engine4/pull/1/files and I'll see if I can get it merged on the Netcore Gitlab next.