Luon Discharge
Ulserous_LuonDischarge in SkillsPrepare to cast hail of Light projectiles, dealing [.55FP] Magic damage to players.
- id
- Ulserous_LuonDischarge
- dur
- 0
- type
- 11
- flags
- 0
- nature
- 3
- script
- var castCount = 0; function onStep(s) { if(s.kind == Steps.AreasCast) { castCount = 0; var castStep = getStepById(Steps.AreasCast); var totalDuration = castStep.duration; var timeBetweenFires = totalDuration / vars.var1; var areaRand = Steps.AreaRandom; var areaTarget = Steps.AreaTarget; for(i in 0...round(vars.var1)) { castCount++; var areaStep = areaRand; if((castCount % round(vars.var2)) == 0) areaStep = areaTarget; wait(i*timeBetweenFires, function() { playStep(areaStep); }); } } }
- status
- 0
- cooldown
- 20
- duration
- 23
- __ignoreLoc__
- true
Raw data
{
"id": "Ulserous_LuonDischarge",
"dur": 0,
"anim": {
"file": "Anim/Herald/Anim_Herald_Common_Discharge_Start.fbx"
},
"type": 11,
"vars": {
"var1": 10,
"var2": 15
},
"flags": 0,
"props": {},
"steps": [
{
"id": "InitialCast",
"on": 0,
"type": 3,
"delay": 0,
"props": {},
"duration": 3
},
{
"on": 0,
"type": 11,
"delay": 2,
"props": {},
"visuals": {
"fxs": [
{
"set": "Light_Cast_Hand",
"flags": 8,
"props": {
"offset": {
"x": -2,
"y": -2,
"z": 0,
"height": 0
}
},
"scale": 0.65,
"space": 0,
"attachName": "B_Palm_L"
}
]
},
"duration": 3
},
{
"id": "Channel",
"on": 7,
"type": 3,
"props": {
"castFlags": 12
},
"duration": 20
},
{
"id": "Loop",
"on": 12,
"cond": {
"step": "InitialCast"
},
"type": 3,
"delay": 0,
"props": {
"startSteps": [
{
"step": "ProjectileCast",
"force": true,
"overrideDelay": 2
}
]
},
"visuals": {
"fxs": [
{
"set": "Light_Cast_LuonDischarge",
"flags": 24,
"props": {},
"space": 2
}
],
"playAnims": [
{
"anim": {
"file": "Anim/Herald/Anim_Herald_Common_Discharge_Cast.fbx",
"loop": true,
"blend": 0.1
}
}
]
},
"duration": 2
},
{
"id": "ProjectileCast",
"on": 12,
"cond": {
"step": "Loop"
},
"type": 11,
"delay": 0,
"props": {
"startSteps": [
{
"step": "Loop",
"force": true,
"overrideDelay": 1.23
},
{
"step": "Attack",
"force": true,
"overrideDelay": 1.23
}
]
},
"visuals": {
"playAnims": [
{
"anim": {
"file": "Anim/Herald/Anim_Herald_Common_Discharge_Salve.fbx",
"loop": false,
"blend": 0.2
}
}
]
},
"duration": 1.23
},
{
"id": "AreasCast",
"on": 12,
"cond": {
"step": "Loop"
},
"type": 11,
"delay": 0,
"props": {
"startSteps": [
{
"step": "Loop",
"force": true,
"overrideDelay": 1.23
},
{
"step": "Attack",
"force": true,
"overrideDelay": 1.23
}
]
},
"duration": 1.23
},
{
"id": "AreaRandom",
"on": 8,
"cond": {
"step": "Loop"
},
"type": 5,
"delay": 0,
"props": {
"position": {
"random": {
"range": 60,
"maxZDiff": 3,
"minRange": 2
}
},
"startSteps": [
{
"step": "Loop",
"force": true,
"startSteps": [
{
"step": "Loop",
"force": true,
"overrideDelay": 0.75
},
{
"step": "Attack",
"force": true,
"overrideDelay": 0.75
}
],
"overrideDelay": 1.23
}
],
"targetSkill": "Ulserous_LuonDischargeArea"
},
"duration": 1.23
},
{
"id": "AreaTarget",
"on": 8,
"cond": {
"step": "Loop"
},
"type": 5,
"delay": 0,
"props": {
"position": {
"origin": 1,
"random": {
"range": 1,
"maxZDiff": 3
}
},
"startSteps": [
{
"step": "Loop",
"force": true,
"overrideDelay": 1.23
}
],
"targetSkill": "Ulserous_LuonDischargeArea"
},
"duration": 1.23
},
{
"id": "Attack",
"on": 2,
"type": 0,
"props": {
"position": {
"origin": 2,
"groundSnap": true
}
},
"range": 40,
"effects": [
{
"flags": 0,
"effect": 0,
"baseVal": 0,
"scaling": [
{
"atb": "FoePower",
"ratio": 0.5
}
],
"affinity": "Light"
}
],
"duration": 0
},
{
"on": 7,
"cond": {
"step": "Channel"
},
"type": 11,
"props": {},
"visuals": {
"playAnims": [
{
"anim": {
"file": "Anim/Herald/Anim_Herald_Common_Discharge_End.fbx"
}
}
]
}
}
],
"texts": {
"desc": "Prepare to cast hail of Light projectiles, dealing [.55FP] Magic damage to players.",
"name": "Luon Discharge"
},
"nature": 3,
"script": "var castCount = 0;\nfunction onStep(s) {\n if(s.kind == Steps.AreasCast) {\n castCount = 0;\n var castStep = getStepById(Steps.AreasCast);\n var totalDuration = castStep.duration;\n var timeBetweenFires = totalDuration / vars.var1;\n var areaRand = Steps.AreaRandom;\n var areaTarget = Steps.AreaTarget;\n for(i in 0...round(vars.var1)) {\n castCount++;\n var areaStep = areaRand;\n if((castCount % round(vars.var2)) == 0)\n areaStep = areaTarget;\n wait(i*timeBetweenFires, function() {\n playStep(areaStep);\n });\n }\n }\n}",
"status": 0,
"aiProps": {
"pickPrio": 10
},
"mastery": [],
"cooldown": 20,
"duration": 23,
"__ignoreLoc__": true
}