Hive Assault
Spear_Goo_Combo in SkillsStrikes forward, dealing 62% Strength + 62% Intellect Physical to an enemy and generates a Dart, stacking up to 3 times. At 3 stacks, your next Hive Assault releases the darts, dealing randomly 70% Intellect Magic or ::dmg3::.
- id
- Spear_Goo_Combo
- type
- 4
- flags
- 0
- nature
- 1
- script
- var firedThisStep = false; function gainStinger(count) { for (i in 0...count) { var prevStacks = owner.getStatusCount(Skill.Spear_Goo_Combo_Status); var s = owner.addStatus(Skill.Spear_Goo_Combo_Status); if (s.stacks > prevStacks) { playStep(Steps.Projectile); } } } function onInflictDamageEval(hit) { if (rank >= 2 && hit.skillId == skill.kind) { hit.dmgMult += hit.critChance; } } function onInflictDamage(dmg) { if (firedThisStep) { return; } if (dmg.stepId == Steps.Area && dmg.isFirstHit && !hasStatusMaxStacked(owner, Skill.Spear_Goo_Combo_Status)) { if (rank >= 3 && dmg.critical) { gainStinger(2); } else { gainStinger(1); } } } function onStatusEnd(s, elapsed) { if (elapsed && s.kind == Skill.Spear_Goo_Combo_Status) { destroyProjectiles(); } } function tryRelease(target) { firedThisStep = false; if (hasStatusMaxStacked(owner, Skill.Spear_Goo_Combo_Status)) { firedThisStep = true; owner.tryConsumeStatus(Skill.Spear_Goo_Combo_Status); skill.fireProjectiles(target, null, 0.3); } } function onStep(s) { if (s.kind == Steps.Area && s.curCtx.aimTarget != null) tryRelease(s.curCtx.aimTarget); } function onProjectileCreated(proj) { hoverProjectile(proj, 3); } function onProjectileHit(hit) { if (hit.projectile != null) { if (checkProba(0.5)) { playStep(Steps.PhysicalDamage, hit.target); } else { playStep(Steps.MagicDamage, hit.target); } } }
- status
- 2
- duration
- 1.1
Raw data
{
"id": "Spear_Goo_Combo",
"gfx": {
"x": 0,
"y": 0,
"file": "UI/icons/atlas_weapon_Spear_96PX.png",
"size": 48,
"width": 2,
"height": 2
},
"anim": {
"ref": "AttackCombo",
"blend": 0.1,
"startFrame": 3
},
"type": 4,
"vars": {},
"flags": 0,
"props": {
"hit": {
"shake": 5,
"camShake": 10
}
},
"steps": [
{
"on": 0,
"type": 9,
"props": {},
"range": 6,
"duration": 0.6
},
{
"on": 0,
"type": 8,
"delay": 0.1,
"props": {
"move": {
"direction": [
0
]
}
},
"range": 0.5,
"duration": 0.1
},
{
"on": 0,
"type": 14,
"props": {
"rotation": {
"limiter": 360
}
},
"duration": 1.05
},
{
"on": 0,
"type": 8,
"delay": 0.47,
"props": {
"move": {
"direction": [
0
],
"dashSmoothing": 0
}
},
"range": 2,
"duration": 0.35
},
{
"on": 0,
"type": 8,
"delay": 0.82,
"props": {
"move": {
"direction": [
0
],
"dashSmoothing": 1
}
},
"range": 4,
"duration": 0.23
},
{
"id": "Area",
"on": 0,
"type": 0,
"delay": 0.9,
"props": {
"area": {
"shape": [
2,
60
]
}
},
"range": 8,
"effects": [
{
"flags": 0,
"effect": 0,
"baseVal": 0,
"scaling": [
{
"atb": "Strength",
"ratio": 0.62
},
{
"atb": "Intellect",
"ratio": 0.62
}
],
"affinity": "Physical"
}
],
"visuals": {
"fxs": [
{
"set": "Honey_Burst_Cone",
"props": {},
"space": 1
}
]
}
},
{
"id": "Projectile",
"on": 13,
"type": 7,
"props": {
"projectile": {
"base": "MissileHoming",
"fxSet": "Projectile_Honey_Stinger",
"scale": 0.2,
"generation": {
"count": 1,
"shape": [
0,
1,
45,
0
],
"duration": 0.2,
"shapeRot": {
"yaw": 0,
"roll": 0,
"pitch": 90
},
"stepLinked": true,
"directionBias": 0.5
}
}
}
},
{
"id": "MagicDamage",
"on": 13,
"type": 6,
"props": {},
"effects": [
{
"flags": 0,
"effect": 0,
"scaling": [
{
"atb": "Intellect",
"ratio": 0.7
}
],
"affinity": "Magic"
}
]
},
{
"id": "ProjectileHit",
"on": 2,
"type": 6,
"props": {}
},
{
"id": "PhysicalDamage",
"on": 13,
"type": 6,
"props": {},
"effects": [
{
"flags": 0,
"effect": 0,
"scaling": [
{
"atb": "Strength",
"ratio": 0
}
],
"affinity": "Physical"
}
]
}
],
"texts": {
"desc": "Strikes forward, dealing ::dmg:: to an enemy and generates a ::ref_name::, stacking up to ::ref_stacks:: times.\n\nAt ::ref_stacks:: stacks, your next ::name:: releases the darts, dealing randomly ::dmg2:: or ::dmg3::.",
"name": "Hive Assault",
"refs": {
"ref": "Spear_Goo_Combo_Status"
},
"rankDescs": [
{
"desc": "Damage increased by an amount equal to your [CritChance].",
"rank": 2,
"flags": 0
},
{
"desc": "Generates another ::ref_name:: if this critically strikes.",
"rank": 3,
"flags": 0
}
]
},
"nature": 1,
"script": "var firedThisStep = false;\nfunction gainStinger(count) {\n\tfor (i in 0...count) {\n\t\tvar prevStacks = owner.getStatusCount(Skill.Spear_Goo_Combo_Status);\n\t\tvar s = owner.addStatus(Skill.Spear_Goo_Combo_Status);\n\t\tif (s.stacks > prevStacks) {\n\t\t\tplayStep(Steps.Projectile);\n\t\t}\n\t}\n}\n\nfunction onInflictDamageEval(hit) {\n\tif (rank >= 2 && hit.skillId == skill.kind) {\n\t\thit.dmgMult += hit.critChance;\n\t}\n}\n\nfunction onInflictDamage(dmg) {\n\tif (firedThisStep) { return; }\n\tif (dmg.stepId == Steps.Area && dmg.isFirstHit && !hasStatusMaxStacked(owner, Skill.Spear_Goo_Combo_Status)) {\n\t\tif (rank >= 3 && dmg.critical) {\n\t\t\tgainStinger(2);\n\t\t} else {\n\t\t\tgainStinger(1);\n\t\t}\n\t}\n}\n\nfunction onStatusEnd(s, elapsed) {\n\tif (elapsed && s.kind == Skill.Spear_Goo_Combo_Status) {\n\t\tdestroyProjectiles();\n\t}\n}\n\nfunction tryRelease(target) {\n\tfiredThisStep = false;\n\tif (hasStatusMaxStacked(owner, Skill.Spear_Goo_Combo_Status)) {\n\t\tfiredThisStep = true;\n\t\towner.tryConsumeStatus(Skill.Spear_Goo_Combo_Status);\n\t\tskill.fireProjectiles(target, null, 0.3);\n\t}\n}\n\nfunction onStep(s) {\n\tif (s.kind == Steps.Area && s.curCtx.aimTarget != null)\n\t\ttryRelease(s.curCtx.aimTarget);\n}\n\nfunction onProjectileCreated(proj) {\n\thoverProjectile(proj, 3);\n}\n\n\nfunction onProjectileHit(hit) {\n\tif (hit.projectile != null) {\n\t\tif (checkProba(0.5)) {\n\t\t\tplayStep(Steps.PhysicalDamage, hit.target);\n\t\t} else {\n\t\t\tplayStep(Steps.MagicDamage, hit.target);\n\t\t}\n\t}\n}",
"status": 2,
"mastery": [],
"duration": 1.1
}