CombatAi Archetypes And Modifiers

From Divinity Engine Wiki
Revision as of 19:19, 12 September 2017 by Rimevan (talk | contribs)
Jump to: navigation, search

The following archetypes already exist in D:OS2 and can have their modifiers overridden:

  • base
  • berserker
  • bomber
  • healer
  • mage
  • melee
  • ranged
  • ranger
  • rogue
  • warrior

The following table lists all modifiers, their default value in the base archetype, and a short desciption on how their used. More information on the italic terms and a basic explanation on how scores work for Ai can be found here:

Modifier Base Value Description
SCORE_MOD 100.0 A general modifier that you probably shouldn't change, but you're welcome to try
MULTIPLIER_DAMAGE_SELF_POS 1.0 Damage score on self that's considered positive (e.g. when removing the Burning status, which 'removes' damage)
MULTIPLIER_DAMAGE_SELF_NEG 1.0 Damage score on self that's considered negative (this is just damage)
MULTIPLIER_DAMAGE_ENEMY_POS 1.0 Same as MULTIPLIER_DAMAGE_SELF_POS, but for enemies (this is just damage)
MULTIPLIER_DAMAGE_ENEMY_NEG 1.0 Same as MULTIPLIER_DAMAGE_SELF_NEG, but for enemies (e.g. when removing the Burning status, which 'removes' damage)
MULTIPLIER_DAMAGE_ALLY_POS 1.0 Same as MULTIPLIER_DAMAGE_SELF_POS, but for allies
MULTIPLIER_DAMAGE_ALLY_NEG 1.5 Same as MULTIPLIER_DAMAGE_SELF_NEG, but for allies
MULTIPLIER_DAMAGE_NEUTRAL_POS 1.0 Same as MULTIPLIER_DAMAGE_SELF_POS, but for neutrals
MULTIPLIER_DAMAGE_NEUTRAL_NEG 1.0 Same as MULTIPLIER_DAMAGE_SELF_NEG, but for neutrals
MULTIPLIER_HEAL_SELF_POS 1.0 Healing score on self that's considered positive (this is just healing)
MULTIPLIER_HEAL_SELF_NEG 1.0 Healing score on self that's considered negative (e.g. when removing the Restoration status, which 'removes' healing)
MULTIPLIER_HEAL_ENEMY_POS 1.0 Same as MULTIPLIER_HEAL_SELF_POS, but for enemies (e.g. when removing the Restoration status, which 'removes' healing)
MULTIPLIER_HEAL_ENEMY_NEG 1.0 Same as MULTIPLIER_HEAL_SELF_NEG, but for enemies (this is just healing)
MULTIPLIER_HEAL_ALLY_POS 1.0 Same as MULTIPLIER_HEAL_SELF_POS, but for allies
MULTIPLIER_HEAL_ALLY_NEG 1.0 Same as MULTIPLIER_HEAL_SELF_NEG, but for allies
MULTIPLIER_HEAL_NEUTRAL_POS 1.0 Same as MULTIPLIER_HEAL_SELF_POS, but for neutrals
MULTIPLIER_HEAL_NEUTRAL_NEG 1.0 Same as MULTIPLIER_HEAL_SELF_NEG, but for neutrals
MULTIPLIER_DOT_SELF_POS 1.0 Same as MULTIPLIER_DAMAGE_SELF_POS, but for damage over time
MULTIPLIER_DOT_SELF_NEG 1.0 Same as MULTIPLIER_DAMAGE_SELF_NEG, but for damage over time
MULTIPLIER_DOT_ENEMY_POS 1.0 Same as MULTIPLIER_DAMAGE_ENEMY_POS, but for damage over time
MULTIPLIER_DOT_ENEMY_NEG 1.0 Same as MULTIPLIER_DAMAGE_ENEMY_NEG, but for damage over time
MULTIPLIER_DOT_ALLY_POS 1.0 Same as MULTIPLIER_DAMAGE_ALLY_POS, but for damage over time
MULTIPLIER_DOT_ALLY_NEG 1.0 Same as MULTIPLIER_DAMAGE_ALLY_NEG, but for damage over time
MULTIPLIER_DOT_NEUTRAL_POS 1.0 Same as MULTIPLIER_NEUTRAL_SELF_POS, but for damage over time
MULTIPLIER_DOT_NEUTRAL_NEG 1.0 Same as MULTIPLIER_NEUTRAL_SELF_NEG, but for damage over time
MULTIPLIER_HOT_SELF_POS 1.0 Same as MULTIPLIER_HEAL_SELF_POS, but for healing over time
MULTIPLIER_HOT_SELF_NEG 1.0 Same as MULTIPLIER_HEAL_SELF_NEG, but for healing over time
MULTIPLIER_HOT_ENEMY_POS 1.0 Same as MULTIPLIER_HEAL_ENEMY_POS, but for healing over time
MULTIPLIER_HOT_ENEMY_NEG 1.0 Same as MULTIPLIER_HEAL_ENEMY_NEG, but for healing over time
MULTIPLIER_HOT_ALLY_POS 1.0 Same as MULTIPLIER_HEAL_ALLY_POS, but for healing over time
MULTIPLIER_HOT_ALLY_NEG 1.0 Same as MULTIPLIER_HEAL_ALLY_NEG, but for healing over time
MULTIPLIER_HOT_NEUTRAL_POS 1.0 Same as MULTIPLIER_NEUTRAL_SELF_POS, but for healing over time
MULTIPLIER_HOT_NEUTRAL_NEG 1.0 Same as MULTIPLIER_NEUTRAL_SELF_NEG, but for healing over time
MULTIPLIER_CONTROL_SELF_POS 1.0 Control score on self that's considered positive. Control score comes from the statuses KnockedDown, Blind, ShacklesOfPain, Fear, Charmed, Incapacitated, and any Consume status that makes you lose control. (e.g. removing KnockedDown)
MULTIPLIER_CONTROL_SELF_NEG 2.0 Control score on self that's considered negative. (e.g. applying KnockedDown)
MULTIPLIER_CONTROL_ENEMY_POS 1.0 Same as MULTIPLIER_CONTROL_SELF_POS, but for enemies (e.g. applying KnockedDown)
MULTIPLIER_CONTROL_ENEMY_NEG 1.0 Same as MULTIPLIER_CONTROL_SELF_NEG, but for enemies (e.g. removing KnockedDown)
MULTIPLIER_CONTROL_ALLY_POS 1.0 Same as MULTIPLIER_CONTROL_SELF_POS, but for allies
MULTIPLIER_CONTROL_ALLY_NEG 2.0 Same as MULTIPLIER_CONTROL_SELF_NEG, but for allies
MULTIPLIER_CONTROL_NEUTRAL_POS 1.0 Same as MULTIPLIER_CONTROL_SELF_POS, but for neutrals
MULTIPLIER_CONTROL_NEUTRAL_NEG 1.0 Same as MULTIPLIER_CONTROL_SELF_NEG, but for neutrals
MULTIPLIER_BOOST_SELF_POS 1.0 Boost score on self that's considered positive (e.g. buffs like resistance increase)
MULTIPLIER_BOOST_SELF_NEG 1.0 Boost score on self that's considered negative (e.g. debuffs like a intelligence penalty)
MULTIPLIER_BOOST_ENEMY_POS 1.0 Same as MULTIPLIER_BOOST_ENEMY_POS, but for enemies (e.g. debuffs like a intelligence penalty)
MULTIPLIER_BOOST_ENEMY_NEG 1.0 Same as MULTIPLIER_BOOST_ENEMY_NEG, but for enemies (e.g. buffs like resistance increase)
MULTIPLIER_BOOST_ALLY_POS 1.0 Same as MULTIPLIER_BOOST_ALLY_POS, but for allies
MULTIPLIER_BOOST_ALLY_NEG 1.0 Same as MULTIPLIER_BOOST_ALLY_NEG, but for allies
MULTIPLIER_BOOST_NEUTRAL_POS 1.0 Same as MULTIPLIER_BOOST_NEUTRAL_POS, but for neutrals
MULTIPLIER_BOOST_NEUTRAL_NEG 1.0 Same as MULTIPLIER_BOOST_NEUTRAL_NEG, but for neutrals
MULTIPLIER_ARMOR_SELF_POS 0.75 Armor (both physical and magical) score on self that's considered positive (e.g. when removing the Acid status, which 'removes' armor damage)
MULTIPLIER_ARMOR_SELF_NEG 0.75 Armor score on self that's considered negative (this is just armor damage)
MULTIPLIER_ARMOR_ENEMY_POS 0.75 Same as MULTIPLIER_ARMOR_ENEMY_POS, but for enemies (this is just armor damage)
MULTIPLIER_ARMOR_ENEMY_NEG 0.75 Same as MULTIPLIER_ARMOR_ENEMY_NEG, but for enemies (e.g. when removing the Acid status, which 'removes' armor damage)
MULTIPLIER_ARMOR_ALLY_POS 0.75 Same as MULTIPLIER_ARMOR_ALLY_POS, but for allies
MULTIPLIER_ARMOR_ALLY_NEG 1.50 Same as MULTIPLIER_ARMOR_ALLY_NEG, but for allies
MULTIPLIER_ARMOR_NEUTRAL_POS 0.75 Same as MULTIPLIER_ARMOR_NEUTRAL_POS, but for neutrals
MULTIPLIER_ARMOR_NEUTRAL_NEG 0.75 Same as MULTIPLIER_ARMOR_NEUTRAL_NEG, but for neutrals
MULTIPLIER_FREE_ACTION 0.25 The 'final' score of an action (combined score of damage, heal, dot, hot, armor, boost, and control) is multiplied by a CostModifier and divided by an ActionCostModifier. If an action is free (meaning 0 AP) the ActionCostModifier will be equal to MULTIPLIER_FREE_ACTION
MULTIPLIER_ACTION_COST_MULTIPLIER 1.00 Used in the ActionCostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_ACTION_COST_MULTIPLIER is multiplied with the AP cost of the action itself and added to the ActionCostModifier
MULTIPLIER_MOVEMENT_COST_MULTPLIER 0.90 Used in the ActionCostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_MOVEMENT_COST_MULTIPLIER is multiplied with the AP cost of the movement needed to execute the action and added to the ActionCostModifier
MULTIPLIER_INVISIBLE_MOVEMENT_COST_MULTPLIER 0.30 If the player is sneaking or invisible this modifier is used on top of MULTIPLIER_MOVEMENT_COST_MULTIPLIER
MULTIPLIER_SOURCE_COST_MULTIPLIER 1.00 Used in the ActionCostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_SOURCE_COST_MULTIPLIER is multiplied with the SP cost of the action itself and added to the ActionCostModifier
MULTIPLIER_COOLDOWN_MULTIPLIER 0.01 Used in the CostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_COOLDOWN_MULTIPLIER is used in combination with the cooldown of the action and a higher MULTIPLIER_COOLDOWN_MULTIPLIER results in a lower CostModifier
MULTIPLIER_LOW_ITEM_AMOUNT_MULTIPLIER 0.45 Used in the CostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_LOW_ITEM_AMOUNT_MULTIPLIER is used in combination with MULTIPLIER_HIGH_ITEM_AMOUNT_MULTIPLIER and we lerp between the LOW and HIGH value based on the health of the source character before multiplying it with the CostModifier. This way we make sure that lower health characters are more likely to use items
MULTIPLIER_HIGH_ITEM_AMOUNT_MULTIPLIER 1.00 See MULTIPLIER_LOW_ITEM_AMOUNT_MULTIPLIER
MULTIPLIER_CANNOT_EXECUTE_THIS_TURN 0.50 Used in the CostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_CANNOT_EXECUTE_THIS_TURN is multiplied with the CostModifier if the action can not be executed this turn
MULTIPLIER_TARGET_MY_ENEMY 1.50 Used whtn the target of the action is attacking the source character
MULTIPLIER_TARGET_MY_HOSTILE 3.00 Used when the target of the action is already under attack by the source character
MULTIPLIER_TARGET_SUMMON 0.35 Used when the target is a summon
MULTIPLIER_TARGET_AGGRO_MARKED 5.00 Used when the target has the status AggroMarked
MULTIPLIER_TARGET_HOSTILE_COUNT_ONE 0.50 Used when the target already is under attack by another character
MULTIPLIER_TARGET_HOSTILE_COUNT_TWO_OR_MORE 0.25 Used when the target already is under attack by 2 or more characters
MULTIPLIER_TARGET_IN_SIGHT 1.05 Used when the target is in sight from the current position of the source character
MULTIPLIER_TARGET_INCAPACITATED 0.20 Used when the character is incapacitated (e.g. due to Frozen status)
MULTIPLIER_TARGET_KNOCKED_DOWN 1.25 Used when the character has the KnockedDown status. Replaces MULTIPLIER_TARGET_INCAPACITATED (because KnockedDown is also incapacitates)
MULTIPLIER_TARGET_PREFERRED 20.00 Used when the target has the AI_PREFERRED_TARGET tag
MULTIPLIER_TARGET_UNPREFERRED 0.20 Used when the target has the AI_UNPREFERRED_TARGET tag
ENDPOS_NEARBY_DISTANCE 6.00 The maximum distance that's considered to be 'nearby'. Is used in combination with several other modifiers
MULTIPLIER_ENDPOS_ALLIES_NEARBY 0.00 Used when calculating the PositionScore. MULTIPLIER_ENDPOS_ALLIES_NEARBY is multiplied with the amount of allies nearby (defined by ENDPOS_NEARBY_DISTANCE) and added to the PositionScore
MULTIPLIER_ENDPOS_ENEMIES_NEARBY 0.00 Used when calculating the PositionScore. MULTIPLIER_ENDPOS_ENEMIES_NEARBY is multiplied with the amount of enemies nearby (defined by ENDPOS_NEARBY_DISTANCE) and added to the PositionScore
MULTIPLIER_ENDPOS_STENCH 0.25 Used when the target has the Stench talen
MULTIPLIER_ENDPOS_FLANKED 0.05 Used when calculating the PositionScore. MULTIPLIER_ENDPOS_FLANKED is multiplied with the amount of characters that would flank the source character and added to the PositionScore
MULTIPLIER_ENDPOS_HEIGHT_DIFFERENCE 0.002 Used when calculating the PositionScore. MULTIPLIER_ENDPOS_HEIGHT_DIFFERENCE is multiplied with the height difference between the current and the new position and added to the PositionScore
MULTIPLIER_ENDPOS_TURNED_INVISIBLE 0.01 Used when calculating the PositionScore. MULTIPLIER_ENDPOS_TURNED_INVISIBLE is used when invisible for the difference between the old and new position and substracted from the PositionScore (going invisible and not moving is bad)
MULTIPLIER_ENDPOS_NOT_IN_AIHINT 0.01 Used when calculating the PositionScore. MULTIPLIER_ENDPOS_NOT_IN_AIHINT is substracted from the PositionScore if it's not in an AiHint (and if it's not forced, because then the action would be completely aborted)
MULTIPLIER_ENDPOS_NOT_IN_SMOKE 0.00 Used when calculating the PositionScore. MULTIPLIER_ENDPOS_NOT_IN_SMOKE is added the the PositionScore when the position is not inside a smoke surface
MULTIPLIER_ENDPOS_NOT_IN_DANGEROUS_SURFACE 0.10 Used when calculating the PositionScore. MULTIPLIER_ENDPOS_NOT_IN_DANGEROUS_SURFACE is added the the PositionScore when the position is inside a dangerous surface that has positive effects (e.g. when you heal from a poison surface)
DANGEROUS_ITEM_NEARBY 0.00 Used when calculating the PositionScore. DANGEROUS_ITEM_NEARBY is multiplied by all dangerous items (e.g. barrels) nearby (defined by ENDPOS_NEARBY_DISTANCE) and added to the PositionScore
FALLBACK_ALLIES_NEARBY 0.00 Replaces MULTIPLIER_ENDPOS_ALLIES_NEARBY when calculating the PositionScore for the fallback action
FALLBACK_ENEMIES_NEARBY 0.00 Replaces MULTIPLIER_ENDPOS_ENEMIES_NEARBY when calculating the PositionScore for the fallback action
FALLBACK_WANTED_ENEMY_DISTANCE 5.00 The distance the source character will try to create when it has to use its fallback action
MOVESKILL_AP_DIFF_REQUIREMENT 2.00 The minimum amount of AP the source character can save if it uses a jump/teleport skill instead of walking to its target position
MOVESKILL_ITEM_AP_DIFF_REQUIREMENT 3.00 The minimum amount of AP the source character can save if it uses a jump/teleport skill by item instead of walking to its target position
MULTIPLIER_SCORE_ON_NEUTRAL -0.1 The target multiplier for neutral targets
MULTIPLIER_SCORE_ON_ALLY -1.10 The target multiplier for allied targets
MULTIPLIER_SCORE_OUT_OF_COMBAT 0.25 The target multiplier for targets that are not part of the source character's combat
MAX_SCORE_ON_NEUTRAL 0.00 Not used at the time of writing
MAX_HEAL_MULTIPLIER 0.50 A multiplier to determine the importance of healing someone that's close to dying. Has to be in between 0.00 and 1.00
MAX_HEAL_SELF_MULTIPLIER 1.00 A multiplier to determine the importance of healing self when close to dying. Has to be in between 0.00 and 1.00
MULTIPLIER_VITALITYBOOST 0.50 Used for vitality boosts gained by statuses or potions
MULTIPLIER_DAMAGEBOOST 0.50 Used for damage boosts gained by statuses or potions
MULTIPLIER_BONUS_WEAPON_BOOST 0.50 Used for bonus weapon boosts gained by statuses or potions
MULTIPLIER_ARMORBOOST 0.50 Used for armor boosts gained by statuses or potions
MULTIPLIER_KILL_ENEMY 2.50 Target multiplier used when an enemy target will die due to the action
MULTIPLIER_KILL_ENEMY_SUMMON 1.10 Target multiplier used when an enemy summon target will die due to the action
MULTIPLIER_KILL_ALLY 1.50 Target multiplier used when an allied target will die due to the action
MULTIPLIER_KILL_ALLY_SUMMON 1.10 Target multiplier used when an alied summon target will die due to the action
MULTIPLIER_EXPLOSION_DISTANCE_MIN 0.50 Not used at the time of writing
MULTIPLIER_SURFACE_STATUS_ON_MOVE 0.75 Multiplier used by scores that are caused by surfaces, but only if a character moves
SURFACE_DAMAGE_MAX_TURNS 2.00 Maximum amount of turns Ai takes into account for damage caused by surfaces
MULTIPLIER_STATUS_REMOVE 1.00 Multiplier used for the score caused by status removal
MULTIPLIER_STATUS_FAILED 0.50 Multiplier used for the score that a status would have had if it would apply. This score is then added to the MinimumScore
MULTIPLIER_STATUS_CANCEL_INVISIBILITY 0.50 Multiplier used when an action cancels the Invisibility status that the source character has. The score of the Invisibility status is calculated and multiplied with MULTIPLIER_STATUS_CANCEL_INVISIBILITY
MULTIPLIER_STATUS_CANCEL_SLEEPING 0.50 Multiplier used when an action cancels the Sleeping status that the source character has. The score of the Sleeping status is calculated and multiplied with MULTIPLIER_STATUS_CANCEL_SLEEPING
MULTIPLIER_STATUS_OVERWRITE 0.50 Multiplier used for the score that a status would have had if we don't overwrite it. This score is then added to the MinimumScore
MULTIPLIER_LOSE_CONTROL 1.00 Multiplier used for consume statuses that make the target lose control
MULTIPLIER_INCAPACITATE 1.25 Multiplier used for Incapacitated statuses
MULTIPLIER_KNOCKDOWN 1.75 Multiplier used for Knockdown status
MULTIPLIER_CHARMED 2.50 Multiplier used for Charmed status
MULTIPLIER_FEAR 1.00 Multiplier used for the Fear status
MULTIPLIER_BLIND 0.80 Multiplier used for the Blind status
MULTIPLIER_INVISIBLE 0.20 Multiplier used for the Invisible status
MULTIPLIER_MUTE 0.80 Multiplier used for the Mute status
MULTIPLIER_SOURCE_MUTE 4.00 Multiplier used for the SourceMute status
MULTIPLIER_SHACKLES_OF_PAIN 0.50 Multiplier used for the ShacklesOfPain status
MULTIPLIER_HEAL_SHARING 0.50 Multiplier used for the HealSharing status
MULTIPLIER_DECAYING_TOUCH 0.75 Multiplier used for the DecayingTouch status
MULTIPLIER_DISARMED 0.80 Multiplier used for the Disarmed status
MULTIPLIER_WINDWALKER 0.50 Multiplier used for the Windwalker status
MULTIPLIER_GUARDIAN_ANGEL 0.20 Multiplier used for the GuardianAngel status
MULTIPLIER_ACTIVE_DEFENSE 1.00 Multiplier used for the ActiveDefense status
MULTIPLIER_SPARK 0.40 Multiplier used for the Spark status
MULTIPLIER_DAMAGE_ON_MOVE 10.00 Multiplier used for the DamageOnMove status
MULTIPLIER_DEATH_RESIST 4.00 Multiplier used for Consume statuses with IsResistingDeath property
MULTIPLIER_RESURRECT 4.00 Multiplier used for the resurrect property in skills
SKILL_JUMP_MINIMUM_DISTANCE 8.00 Minimum distance a character has to jump to use the skill
SKILL_TELEPORT_MINIMUM_DISTANCE 6.00 Minimum distance an object has to be teleported to use the skill
MULTIPLIER_ADD_ARMOR 0.50 Multiplier that's removed from the boost score if we're trying to add physical armor when it's already full
MULTIPLIER_ADD_MAGIC_ARMOR 0.50 Multiplier that's removed from the boost score if we're trying to add magical armor when it's already full
MULTIPLIER_REMOVE_ARMOR 0.50 Multiplier that's added to the boost score if we're completely removing physical armor
MULTIPLIER_REMOVE_MAGIC_ARMOR 0.50 Multiplier that's added to the boost score if we're completely removing magical armor
MULTIPLIER_SURFACE_REMOVE 0.35
MULTIPLIER_DESTROY_INTERESTING_ITEM 0.50
MULTIPLIER_CRITICAL 1.00
MULTIPLIER_ACC_BOOST 0.25
MULTIPLIER_DODGE_BOOST 0.80
MULTIPLIER_MOVEMENT_BOOST 0.30
MULTIPLIER_RESISTANCE 0.80
MULTIPLIER_AP_RECOVERY 1.20
MULTIPLIER_AP_BOOST 0.60
MULTIPLIER_AP_MAX 0.10
MULTIPLIER_AP_COSTBOOST 2.00
MULTIPLIER_SOURCE_POINT 0.75
MULTIPLIER_SP_COSTBOOST 2.00
MULTIPLIER_MAIN_ATTRIB 1.00
MULTIPLIER_SECONDARY_ATTRIB 0.50
MULTIPLIER_CONTACT_BOOST 0.50
MIN_TURNS_SCORE_EXISTING_STATUS 1
TURNS_REPLACEMENT_INFINITE 5
MULTIPLIER_PUDDLE_RADIUS 1.00
MULTIPLIER_COMBO_SCORE_INTERACTION 0.90
MULTIPLIER_COMBO_SCORE_POSITIONING 0.00
MULTIPLIER_POSITION_LEAVE -1.00
MULTIPLIER_GROUNDED -0.05
MULTIPLIER_DEFLECT_PROJECTILES 0.20
MULTIPLIER_SUMMON_PATH_INFLUENCES 0.04
BUFF_DIST_MAX 30.0
BUFF_DIST_MIN 10.0
MULTIPLIER_POS_SECONDARY_SURFACE 0.25
ENABLE_ACTIVE_DEFENSE_OFFENSIVE_USE 0
ENABLE_SAVING_ACTION_POINTS 1
MULTIPLIER_SHIELD_BLOCK 1.00
MULTIPLIER_REFLECT_DAMAGE 0.25