FareverDB

Combo Points

Rogue_ComboPoints in Skills

Generates 1 [ComboPoint] when using a [ComboAttack] or [WeaponSkill] different from the last action.

id
Rogue_ComboPoints
type
10
flags
0
nature
5
script
var lastSkillProc = null; function onSkillProc(ctx) { tryGetComboPoint(ctx.skill, ctx.skillId, false); } function onInflictDamage(dmg) { if (dmg.isFirstHit) { tryGetComboPoint(dmg.skill, dmg.skillId, dmg.critical); } } function tryGetComboPoint(s, skind, isCrit) { if(s != null && lastSkillProc != skind && isSkillCompatible(s) ) { var points = vars.var1; if (hasGlobalMastery(Mastery.Rogue_Finisher_M1) && isCrit) { points += 1; } addAtb(owner, Attribute.ComboPoint, points); lastSkillProc = skind; } } function isSkillCompatible(s) { if(s == null || s.isPassive()) return false; return s.isWeaponSkill() || s.isFinalAttack(); }
status
2
Raw data
{
  "id": "Rogue_ComboPoints",
  "gfx": {
    "x": 0,
    "y": 1,
    "file": "UI/icons/atlas_class_Rogue_96PX.png",
    "size": 96
  },
  "anim": {},
  "type": 10,
  "vars": {
    "var1": 1
  },
  "flags": 0,
  "props": {},
  "steps": [],
  "texts": {
    "desc": "Generates ::var1:: [ComboPoint] when using a [ComboAttack] or [WeaponSkill] different from the last action.",
    "name": "Combo Points"
  },
  "nature": 5,
  "script": "var lastSkillProc = null;\n\nfunction onSkillProc(ctx) {\n\ttryGetComboPoint(ctx.skill, ctx.skillId, false);\n}\n\nfunction onInflictDamage(dmg) {\n\tif (dmg.isFirstHit) {\n\t\ttryGetComboPoint(dmg.skill, dmg.skillId, dmg.critical);\n\t}\n}\n\nfunction tryGetComboPoint(s, skind, isCrit) {\n\tif(s != null && lastSkillProc != skind && isSkillCompatible(s) ) {\n\t\tvar points = vars.var1;\n\t\tif (hasGlobalMastery(Mastery.Rogue_Finisher_M1) && isCrit) {\n\t\t\tpoints += 1;\n\t\t}\n\t\taddAtb(owner, Attribute.ComboPoint, points);\n\t\tlastSkillProc = skind;\n\t}\n}\n\nfunction isSkillCompatible(s) {\n\tif(s == null || s.isPassive())\n\t\treturn false;\n\treturn s.isWeaponSkill() || s.isFinalAttack();\n}",
  "status": 2,
  "mastery": []
}