k = 0;
if( !sc || (sc && !sc->data[spheres[0]]) ) { //GM Unconditional Check
for( i = 0; i < 4; i++ ) {
switch(i) {
case 1: subskill = WL_TETRAVORTEX_FIRE; k |= 1; break;
case 2: subskill = WL_TETRAVORTEX_WIND; k |= 4; break;
case 3: subskill = WL_TETRAVORTEX_WATER; k |= 2; break;
case 4: subskill = WL_TETRAVORTEX_GROUND; k |= 8; break;
}
skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skill_lv, i, flag);
clif_skill_nodamage(src, bl, subskill, skill_lv, 1);
}
} else {
for( i = 0; i < 4; i++ ) {
switch( sc->data[spheres[i]]->val1 )
{
case WLS_FIRE: subskill = WL_TETRAVORTEX_FIRE; k |= 1; break;
case WLS_WIND: subskill = WL_TETRAVORTEX_WIND; k |= 4; break;
case WLS_WATER: subskill = WL_TETRAVORTEX_WATER; k |= 2; break;
case WLS_STONE: subskill = WL_TETRAVORTEX_GROUND; k |= 8; break;
}
skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skill_lv, i, flag);
clif_skill_nodamage(src, bl, subskill, skill_lv, 1);
status_change_end(src, spheres[i], INVALID_TIMER);
}
}
if (spheres[4]) // fix to remove last sphere if 5 are present, on official even though only 4 spheres are used, all spheres are removed
status_change_end(src, spheres[4], INVALID_TIMER);