Home · skill · Mage_Talent_ConduitLifebolt_Conduit
Properties
- status
- WIP
- type
- MageConduit
- nature
- Passive
- steps
Raw data
{
"status": "WIP",
"gfx": {
"file": "UI/icons/Mage_talent.png",
"size": 48,
"x": 16,
"y": 2,
"width": 2,
"height": 2
},
"id": "Mage_Talent_ConduitLifebolt_Conduit",
"type": "MageConduit",
"nature": "Passive",
"texts": {
"name": "Conduit: Lifebolt",
"desc": "Launches a lifebolt healing the nearest wounded ally for ::heal::.\n\nActivates when you consume [Spark] above the gauge threshold."
},
"anim": {},
"steps": [
{
"on": 13,
"props": {
"projectile": {
"base": "MissileHoming",
"activationDelay": 0.4,
"appearDelay": 0.3,
"variant": 1,
"hitFilter": 2,
"fxSet": "Projectile_Spark_Heal"
}
},
"id": "Projectile",
"type": 7
},
{
"on": 2,
"props": {},
"type": 6,
"effects": [
{
"effect": 1,
"scaling": [
{
"ratio": 0.25,
"atb": "Intellect"
}
],
"flags": 0
}
]
}
],
"flags": [],
"mastery": [],
"props": {},
"vars": {
"range": 30
},
"script": "function onStartConduit() {\n\tvar instanceIndex = getSkillInstanceIndex();\n\tif(instanceIndex < 0) return;\n\n var fanRadius = 2.5;\n var fanAmplitude = 240;\n var shotDelay = 0.1;\n\n\tvar targets = getAllyUnitsWithinRange(owner, vars.range);\n\tsortByDistance(targets);\n\n\tvar target = null;\n\tfor (t in targets) {\n\t\tif (t != owner && t.health < t.maxHealth) {\n\t\t\ttarget = t;\n\t\t\tbreak;\n\t\t}\n\t}\n var count = getSkillInstanceCount();\n if (target != null) {\n var projStep = getStepById(Steps.Projectile);\n var startPos = projStep.getProjectileStart();\n\n var interProgress = 1 / (count+1);\n\t\tvar pos = startPos;\n\t\tif (count > 1) {\n\t\t\tfor (i in 0...instanceIndex + 1) {\n\t\t\t\tpos = p3DAdd(startPos, getFanFacingPos((i+1) * interProgress, fanAmplitude, fanRadius, p2DTo3D( p2DSub(target.pos2D, owner.pos2D)) ) );\n\t\t\t}\n\t\t}\n\t\twait(instanceIndex * shotDelay, function() {\n\t\t\tprojStep.generateProjectile(target, pos);\n\t\t});\n }\n}"
}