News:

Happy 20th, FFvT3R!

Main Menu

TAbsorbLiquid

Started by oktokels, May 25, 2022, 03:42:28 PM

Previous topic - Next topic

oktokels

When i watch my Absorbing Man battle, he works very well more or less, but sometimes he crashes and stops moving. He keeps throwing this error in the script:

Quoteexceptions.AttributeError TAbsorbLiquid

It seems that the AI don't recognize the TAbsorbLiquid attribute.

When reading the TAbsorb part in ffx.py, it seems that the attribute is well placed among the others:

Quote################## Absorb Materials ##################
absorbmaterialNames=['flesh','metal','stone','rubber','fire','energy','air','wood','concrete','frozen','cloth','electricity','radiation','sound','adamantium','divine_metal','super_alloy','liquid','acid','sand','gas','diamond','alien_mineral']

And that's how it should be, because when playing with absorbing man i can click the fountain and the absorb_liquid command appears and i can transform into water.
So, i go to the m25ai.py and the tactic for the attribute is named "TAbsorbWater":

Quotedef AIGen_absorbmat(char):
   return [
      ["TAbsorbMetal()",1],
      ["TAbsorbStone()",1],
      ["TAbsorbRubber()",1],
      ["TAbsorbAir()",1],
      ["TAbsorbWood()",1],
      ["TAbsorbConcrete()",1],
      ["TAbsorbIce()",1],
      ["TAbsorbWater()",1],
      ["TAbsorbCloth()",1],
      ["TAbsorbAdamantium()",1],
      ["TAbsorbSuperAlloy()",1],
      ["TAbsorbDivineMetal()",1],
      ["TAbsorbSand()",1],
      ["TAbsorbAcid()",1],
      ["TAbsorbGas()",1],
      ["TAbsorbDiamond()",1],
      ["TAbsorbAlienMineral()",1],
   ]

So, i assume the problem is here. So the question is, what should i change? Should i change the m25ai.py to TAbsorbLiquid
or should i change ffx.py and rename all TAbsorbLiquid into TAbsorbWater?? I've never even touched this 2 scripts, so i'm worried i might destroy the game  :banghead: :banghead: :banghead:

#update: i changed the m25ai file for absorbing man, from TAbsorbLiquid to TAbsorbWater and the error is gone. Still have to test the AI to see if it recognize the liquid objects.