Home · skill · KoboldOverseer_MadRun
Properties
- status
- WIP
- type
- Skill
- nature
- Spell
- cooldown
- 15
- duration
- 2.4
- steps
- flags
Referenced by
Raw data
{
"status": "WIP",
"id": "KoboldOverseer_MadRun",
"type": "Skill",
"nature": "Spell",
"texts": {},
"anim": {
"ref": "Scream"
},
"cooldown": 15,
"duration": 2.4,
"steps": [
{
"on": 0,
"visuals": {
"fxs": [
{
"set": "State_Burning",
"space": 0,
"props": {},
"flags": 12,
"attachName": "CoalBag"
}
]
},
"props": {
"castFlags": 6
},
"type": 3,
"duration": 8,
"delay": 1.4,
"id": "Run"
},
{
"on": 0,
"props": {},
"type": 13,
"duration": -1,
"delay": 1.4
},
{
"on": 0,
"props": {
"loop": {
"tick": 0.5,
"flags": 2
}
},
"id": "Loop",
"range": 2,
"duration": 7,
"delay": 2
},
{
"on": 13,
"props": {
"area": {
"travelTime": 2,
"telegraph": 0
},
"position": {
"random": {
"range": 6,
"maxZDiff": 3,
"minRange": 3
}
},
"canRepeat": true
},
"type": 4,
"visuals": {
"bellFx": {
"from": 0,
"set": "Projectile_Charcoal",
"startObj": "CoalBag",
"height": 4,
"to": 1
},
"fxs": [
{
"set": "Charcoal_AOE_Ground",
"space": 1,
"props": {},
"flags": 16
}
]
},
"range": 2,
"effects": [
{
"effect": 0,
"scaling": [
{
"ratio": 0.4,
"atb": "FoePower"
}
],
"affinity": "Fire",
"flags": 0
}
],
"id": "Area"
},
{
"on": 7,
"props": {},
"id": "EndRun"
}
],
"aiProps": {
"pickPrio": 1,
"minTimeInCombat": 5
},
"flags": [
"CanMove"
],
"mastery": [],
"props": {},
"vars": {
"range": 20
},
"script": "var chaoticRunStartPos = null;\nvar nextRunPick = -1.;\nvar minRunTime = 0.5;\nvar maxRunTime = 1.5;\nfunction startChaoticRun() {\n chaoticRunStartPos = owner.position;\n nextRunPick = -1.;\n}\n\nfunction endChaoticRun() {\n if(isServer && chaoticRunStartPos != null)\n owner.forceMoveTo(owner.position); // End in place\n chaoticRunStartPos = null;\n}\n\nfunction onStop(ctx) {\n endChaoticRun();\n}\n\nfunction onUpdate(dt) {\n chaoticRunUpdate(dt);\n}\n\nfunction onStepTick(step) {\n\tif(!isServer) return;\n\tif(step.kind == Steps.Loop) {\n\t\tplayStep(Steps.Area);\n\t}\n}\n\nfunction chaoticRunUpdate(dt) {\n if(!isServer || chaoticRunStartPos == null)\n return;\n if(elapsedTime > nextRunPick) {\n var runTime = random(minRunTime, maxRunTime);\n nextRunPick = elapsedTime + runTime;\n var radius = runTime * getAtb(owner, Attribute.SprintSpeed);\n var targetPos = getRandomGroundPos(owner, radius * 1.2, radius * 1.1, 1.6, 0, 360, (pos) -> p3DDist(pos, chaoticRunStartPos) < vars.range);\n owner.forceMoveTo(targetPos, true);\n }\n}\n\nfunction onStep(s) {\n switch(s.kind) {\n case Steps.Run:\n startChaoticRun();\n case Steps.EndRun:\n endChaoticRun();\n default:\n }\n}",
"_xrefs": [
{
"from_sheet": "unit",
"from_id": "Kobold_Z1W_Caster",
"via_field": "skills"
},
{
"from_sheet": "unit",
"from_id": "Kobold_Z1W_Caster_2",
"via_field": "skills"
},
{
"from_sheet": "unit",
"from_id": "Kobold_Z2W_Caster",
"via_field": "skills"
},
{
"from_sheet": "unit",
"from_id": "Kobold_Ratsar_Caster",
"via_field": "skills"
},
{
"from_sheet": "unit",
"from_id": "Kobold_Z2D_Caster",
"via_field": "skills"
},
{
"from_sheet": "unit",
"from_id": "Kobold_Z1D_FS_Caster",
"via_field": "skills"
}
]
}