Okay, updated again.
Indiscriminate should now do somewhere around 800~1200 damage to everything onscreen, a bit more if you're really close.
Also the homing code will now target bosses first, or the the closest enemy in terms of x value. Here's how the code came out looking:
task JackTheRipper(x,y,graphic){
let enemy_target=-1;
let target_angle=270;
let best_center=1000;
let best_target=-1;
if(IsBossExisting){
target_angle=atan2(GetEnemyY-GetPlayerY, GetEnemyX-GetPlayerX);
if(target_angle<-60 && target_angle>-120){
target_angle=atan2(GetEnemyY-y, GetEnemyX-x);
CreatePlayerShot01(x,y,15,target_angle,6,1,graphic);
}else{
target_angle=270;
}
}
if(target_angle==270){
ascent(i in EnumEnemyBegin..EnumEnemyEnd) {
enemy_target=EnumEnemyGetID(i);
if((|GetEnemyInfo(enemy_target,ENEMY_X)-GetPlayerX|)<best_center){
best_center=(|GetEnemyInfo(enemy_target,ENEMY_X)-GetPlayerX|);
best_target=enemy_target;
}
}
if(best_target!=-1){
target_angle=atan2(GetEnemyInfo(best_target,ENEMY_Y)-GetPlayerY, GetEnemyInfo(best_target,ENEMY_X)-GetPlayerX);
if(target_angle>-60 || target_angle<-120){
best_target=-1;
}
}
if(best_target!=-1){
target_angle=atan2(GetEnemyInfo(best_target,ENEMY_Y)-y, GetEnemyInfo(best_target,ENEMY_X)-x);
CreatePlayerShot01(x,y,15,target_angle,6,1,graphic);
}else{
CreatePlayerShot01(x,y,15,270,6,1,graphic);
}
}
}