Adjusts Comet to a unit skill type (#6186)
* Fixes #5951. * Adjusts the behavior of Comet to a unit skill type. * Comet will now behave properly around Maya Card and other unit skill type interactions. Thanks to @Felleonel, @Playtester, and @Lemongrass3110!
This commit is contained in:
parent
92413b8459
commit
b9c53941f1
@ -5224,12 +5224,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|||||||
skill_unitsetting(src, skill_id, skill_lv, bl->x, bl->y, 0);
|
skill_unitsetting(src, skill_id, skill_lv, bl->x, bl->y, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WL_COMET:
|
|
||||||
case NPC_COMET:
|
|
||||||
if(!map_getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR)) // Nothing should happen if the target is on Land Protector
|
|
||||||
skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SM_MAGNUM:
|
case SM_MAGNUM:
|
||||||
case MS_MAGNUM:
|
case MS_MAGNUM:
|
||||||
if( flag&1 ) {
|
if( flag&1 ) {
|
||||||
@ -12283,10 +12277,12 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
|
|||||||
#endif
|
#endif
|
||||||
case NPC_EVILLAND:
|
case NPC_EVILLAND:
|
||||||
case NPC_VENOMFOG:
|
case NPC_VENOMFOG:
|
||||||
|
case NPC_COMET:
|
||||||
case NPC_ICEMINE:
|
case NPC_ICEMINE:
|
||||||
case NPC_FLAMECROSS:
|
case NPC_FLAMECROSS:
|
||||||
case NPC_HELLBURNING:
|
case NPC_HELLBURNING:
|
||||||
case NPC_REVERBERATION:
|
case NPC_REVERBERATION:
|
||||||
|
case WL_COMET:
|
||||||
case RA_ELECTRICSHOCKER:
|
case RA_ELECTRICSHOCKER:
|
||||||
case RA_CLUSTERBOMB:
|
case RA_CLUSTERBOMB:
|
||||||
case RA_MAGENTATRAP:
|
case RA_MAGENTATRAP:
|
||||||
@ -12662,16 +12658,6 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WL_COMET:
|
|
||||||
case NPC_COMET:
|
|
||||||
if( sc ) {
|
|
||||||
sc->comet_x = x;
|
|
||||||
sc->comet_y = y;
|
|
||||||
}
|
|
||||||
i = skill_get_splash(skill_id,skill_lv);
|
|
||||||
map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src),src,skill_id,skill_lv,tick,flag|BCT_ENEMY|SD_ANIMATION|1,skill_castend_damage_id);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WL_EARTHSTRAIN:
|
case WL_EARTHSTRAIN:
|
||||||
{
|
{
|
||||||
int w, wave = skill_lv + 4, dir = map_calc_dir(src,x,y);
|
int w, wave = skill_lv + 4, dir = map_calc_dir(src,x,y);
|
||||||
@ -13479,6 +13465,13 @@ struct skill_unit_group *skill_unitsetting(struct block_list *src, uint16 skill_
|
|||||||
val3 = sc->data[SC_POISONINGWEAPON]->val1;
|
val3 = sc->data[SC_POISONINGWEAPON]->val1;
|
||||||
limit = skill_get_time(skill_id, skill_lv);
|
limit = skill_get_time(skill_id, skill_lv);
|
||||||
break;
|
break;
|
||||||
|
case NPC_COMET:
|
||||||
|
case WL_COMET:
|
||||||
|
if (sc) {
|
||||||
|
sc->comet_x = x;
|
||||||
|
sc->comet_y = y;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case GD_LEADERSHIP:
|
case GD_LEADERSHIP:
|
||||||
case GD_GLORYWOUNDS:
|
case GD_GLORYWOUNDS:
|
||||||
case GD_SOULCOLD:
|
case GD_SOULCOLD:
|
||||||
@ -14207,6 +14200,11 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, t_t
|
|||||||
if (rnd()%100 < unit->val1)
|
if (rnd()%100 < unit->val1)
|
||||||
skill_attack(BF_WEAPON,ss,&unit->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
|
skill_attack(BF_WEAPON,ss,&unit->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
|
||||||
break;
|
break;
|
||||||
|
case NPC_COMET:
|
||||||
|
case WL_COMET:
|
||||||
|
if (map_getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR))
|
||||||
|
break; // Nothing should happen if the target is on Land Protector
|
||||||
|
// Fall through
|
||||||
default:
|
default:
|
||||||
skill_attack(skill_get_type(sg->skill_id),ss,&unit->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
|
skill_attack(skill_get_type(sg->skill_id),ss,&unit->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user