summaryrefslogblamecommitdiff
path: root/world/map/npc/025-4/battlecaves.txt
blob: 456a92a27d23b7698067e7171706a1f5528b5776 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                      
                                                                                     
 
                                                             

                                                                             
                                       
                                         
 

                                                                  
                        
        

        






                                                                                                                             
    












                                                                                                                                                    
                                                                                  

                                                                            
                                                                          
                                                                                                                                                                                                    
 
                                                    
                                                
        





                                                                                                                  



          
                                                  

          
       

                        
                                                             
                                                 
                         
                          
































































                                                              



                                                                      
                                                                

                                                                                                                                   
        
 
       
                                            
        

 
                                                                                        

 
                                                             

                                                                             
                                       
                                         


                                                                  
                        
        
 
        







                                                                                                                             
 












                                                                                                                                                        
                                                                                  

                                                                            
                                                                          
                                                                                                                                                                                                    
 
                                                    
                                                

        




                                                                                                                  



          
                                                  
          

 

                                                                      
                                                                

                                                                                                                                   


        
                                            


        
                                                                                           
                                                             

                                                                             
                                       
                                         


                                                                  
                        
        
 
        







                                                                                                                             
 












                                                                                                                                                          
                                                                                  

                                                                            
                                                                          
                                                                                                                                                                                                    
 
                                                    
                                                

        




                                                                                                                  



          
                                                  

          
 
 

                                                                      
                                                                

                                                                                                                                   


        
                                            


        
                                                                            
                                                             

                                                                             
                                       
                                         


                                                                  
                        
        
 
        






                                                                                                                             
 












                                                                                                                                                         
                                                                                  

                                                                            
                                                                          
                                                                                                                                                                                                    
 
                                                    
                                                

        




                                                                                                                  



          
                                                  

          



                                                                      
                                                                

                                                                                                                                   
        
 
       
                                            
        
 
 

                                                                           
                                                             

                                                                             
                                       
                                         


                                                                  
                        
        
 
        






                                                                                                                             
 












                                                                                                                                                          
                                                                                  

                                                                            
                                                                          
                                                                                                                                                                                                    
 
                                                    
                                                

        




                                                                                                                  



          
                                                  

          
 
 

                                                                      
                                                                

                                                                                                                                   


        
                                            


        

                                                                                          
                                                             

                                                                             
                                       
                                         


                                                                  
                        
        
 
        






                                                                                                                             
 












                                                                                                                                                           
                                                                                  

                                                                            
                                                                          
                                                                                                                                                                                                    
 
                                                    
                                                

        




                                                                                                                  



          
                                                  

          
 
 

                                                                      
                                                                

                                                                                                                                   


        
                                            


        

                                                                                    
                                                             

                                                                             
                                       
                                         
 

                                                                  
                        
        

        







                                                                                                                             
    












                                                                                                                                                         
                                                                                  

                                                                            
                                                                          
                                                                                                                                                                                                    
 
                                                    
                                                

        




                                                                                                                  



          
                                                  

          
 
 

                                                                      
                                                                

                                                                                                                                   


        
                                            


        

                                                                           
                                                             

                                                                             
                                       
                                         


                                                                  
                        
        
 
        







                                                                                                                             
 












                                                                                                                                                          
                                                                                  

                                                                            
                                                                          
                                                                                                                                                                                                    
 
                                                    
                                                

        




                                                                                                                  



          
                                                  

          



                                                                      
                                                                

                                                                                                                                   
        
 
       
                                            
        
 
 

                                                                           
                                                             

                                                                             
                                       
                                         


                                                                  
                        
        
 
        






                                                                                                                             
 












                                                                                                                                                           
                                                                                  

                                                                            
                                                                          
                                                                                                                                                                                                    
 
                                                    
                                                

        




                                                                                                                  



          
                                                  

          



                                                                      
                                                                

                                                                                                                                   
        
 
       
                                            
        
 
 
                                                                 
 
                                                             
                                
                               
                                                                                                                                                                                                                                                                                                                                    



                                                                  




                                                              
           

                                                                                                                             
 









                                                                                                                                                                
                                                                                            

                      






                                                                                              
                                                                                  
 
                                                                           
                                                                                             
                                                                                            
                                                                                                     
 
                                                      
                         
                 
                  

        







                                  
                          



                                                                   
            
                                                                           

                                             
                                                                                                                                            
                                      









                                                                                                                      
                                                                                      
                        
                     

        



          
                                                  

          



                                                                         
                                                                
                                       
                                        

                                                             

        
        
                                                                               




                              

      
                                         
        



                                                                                  


                                                                                                  
                       

        
       
                                      




                                                                                 
                                                                

                                       

                                        
 




                                                                  
       
                                                                                                                                                                                                
                              




                                                                     
 
 
// Authors: alastrim, Ali-g, Dark Mage

// ---------------------------------    Cave 1    -----------------------------------

025-4.gat,41,85,0	script	#StartCaveFight1	324,{
    if ($@wave_cave1 != 0 && $@cave1fighter$ == strcharinfo(0)) end;
    if ($@wave_cave1 != 0 && $@cave1fighter$ != strcharinfo(0)) goto L_Cheat;
    if (Rossy_Quest < 15) goto L_Cheat;
    if ($@battlecave1 == 1) goto L_Start;

L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    
    
L_Summon:
    set $@cave1_loop, $@cave1_loop + 1;
    areamonster "025-4.gat",26,63,60,97,"",$@CAVE1_MONSTERS_IDS[$@cave1_loop],$@CAVE1_MONSTERS_QTY[$@cave1_loop],"#StartCaveFight1::OnMonsterDeath";
    if ($@cave1_loop <= getarraysize($@CAVE1_MONSTERS_IDS)) goto L_Summon;
    set $@cave1_loop, 0;
    set $@wave_cave1, $@wave_cave1 + 1;
    end;

L_Done:
    set $@cave1_kills, 0;
    attachrid(getcharid(3,$@cave1fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave1 == 1) message strcharinfo(0), "Oh no, more monsters?!";
    if ($@wave_cave1 == 2) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave1 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation... Maybe it is not healthy to stay in this cave.";

    if ($@wave_cave1 < $@CAVE1_WAVES) goto L_Summon;
    set cavefights, (cavefights ^ BATTLE_CAVE1);
    end;

OnMonsterDeath:
    set $@cave1_kills, $@cave1_kills + 1;
    if ($@cave1_kills >= $@CAVE1_MONSTERS_QTY[1] + $@CAVE1_MONSTERS_QTY[2] + $@CAVE1_MONSTERS_QTY[3]) goto L_Done;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;

onInit:
// Cave 1 Configuration.

    setarray $@CAVE1_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE1_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@CAVE1_WAVES, 3;
    set $@CAVE1_TIME, 900;

// Cave 2 Configuration.

    setarray $@CAVE2_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE2_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@CAVE2_WAVES, 3;
    set $@CAVE2_TIME, 900;

// Cave 3 Configuration.

    setarray $@CAVE3_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE3_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@CAVE3_WAVES, 3;
    set $@CAVE3_TIME, 900;

// Cave 4 Configuration.

    setarray $@CAVE4_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE4_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@CAVE4_WAVES, 3;
    set $@CAVE4_TIME, 900;

// Cave 5 Configuration.

    setarray $@CAVE5_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE5_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@CAVE5_WAVES, 3;
    set $@CAVE5_TIME, 900;

// Cave 6 Configuration.

    setarray $@CAVE6_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE6_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@CAVE6_WAVES, 3;
    set $@CAVE6_TIME, 900;

// Cave 7 Configuration.

    setarray $@CAVE7_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE7_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@CAVE7_WAVES, 3;
    set $@CAVE7_TIME, 900;

// Cave 8 Configuration.

    setarray $@CAVE8_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE8_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@CAVE8_WAVES, 3;
    set $@CAVE8_TIME, 900;

// Cave 9 Configuration.

    setarray $@CAVE9_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE9_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@CAVE9_WAVES, 3;
    set $@CAVE9_TIME, 900;

// Cave 10 Configuration.

    setarray $@CAVE10_MONSTERS_IDS[1], 1087, 1088, 1083, 1084;
    setarray $@CAVE10_MONSTERS_QTY[1], 3, 2, 2, 2;
    set $@BOSS, 1086;
    set $@CAVE10_WAVES, 4;
    set $@CAVE10_TIME, 1500;

}

// ---------------------  Cave 1 Checker  ----------------------------

025-4.gat,41,97,0	script	#CheckCaveFight1	45,1,1,{
    if (cavefights & BATTLE_CAVE1 || $@wave_cave1 == 0) goto L_Done;
    message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
    end;

L_Done:
    donpcevent "#WarpBattleCave1::OnGetout";
    end;
}

// ---------------------------------    Cave 2   ---------------------------------------


025-4.gat,115,77,0	script	#StartCaveFight2	324,{
    if ($@wave_cave2 != 0 && $@cave2fighter$ == strcharinfo(0)) end;
    if ($@wave_cave2 != 0 && $@cave2fighter$ != strcharinfo(0)) goto L_Cheat;
    if (Rossy_Quest < 15) goto L_Cheat;
    if ($@battlecave2 == 1) goto L_Start;
    
L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    
 

L_Summon:
    set $@cave2_loop, $@cave2_loop + 1;
    areamonster "025-4.gat",97, 62, 126, 96,"",$@CAVE2_MONSTERS_IDS[$@cave2_loop],$@CAVE2_MONSTERS_QTY[$@cave2_loop],"#StartCaveFight2::OnMonsterDeath";
    if ($@cave2_loop <= getarraysize($@CAVE2_MONSTERS_IDS)) goto L_Summon;
    set $@cave2_loop, 0;
    set $@wave_cave2, $@wave_cave2 + 1;
    end;

L_Done:
    set $@cave2_kills, 0;
    attachrid(getcharid(3,$@cave2fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave2 == 1) message strcharinfo(0), "Oh no, more monsters?!";
    if ($@wave_cave2 == 2) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave2 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation... Maybe it is not healthy to stay in this cave.";

    if ($@wave_cave2 < $@CAVE2_WAVES) goto L_Summon;
    set cavefights, (cavefights ^ BATTLE_CAVE2);
    end;

OnMonsterDeath:
    set $@cave2_kills, $@cave2_kills + 1;
    if ($@cave2_kills >= $@CAVE2_MONSTERS_QTY[1] + $@CAVE2_MONSTERS_QTY[2] + $@CAVE2_MONSTERS_QTY[3]) goto L_Done;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;
}

// ---------------------  Cave 2 Checker  ----------------------------

025-4.gat,110,96,0	script	#CheckCaveFight2	45,1,1,{
    if (cavefights & BATTLE_CAVE2 || $@wave_cave2 == 0) goto L_Done;
    message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
    end;

L_Done:
    donpcevent "#WarpBattleCave2::OnGetout";
    end;
}

// ------------------------------------    Cave 3    --------------------------------------
025-4.gat,164,103,0	script	#StartCaveFight3	324,{
    if ($@wave_cave3 != 0 && $@cave3fighter$ == strcharinfo(0)) end;
    if ($@wave_cave3 != 0 && $@cave3fighter$ != strcharinfo(0)) goto L_Cheat;
    if (Rossy_Quest < 15) goto L_Cheat;
    if ($@battlecave3 == 1) goto L_Start;
    
L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    
 

L_Summon:
    set $@cave3_loop, $@cave3_loop + 1;
    areamonster "025-4.gat",150, 84, 177, 117,"",$@CAVE3_MONSTERS_IDS[$@cave3_loop],$@CAVE3_MONSTERS_QTY[$@cave3_loop],"#StartCaveFight3::OnMonsterDeath";
    if ($@cave3_loop <= getarraysize($@CAVE3_MONSTERS_IDS)) goto L_Summon;
    set $@cave3_loop, 0;
    set $@wave_cave3, $@wave_cave3 + 1;
    end;

L_Done:
    set $@cave3_kills, 0;
    attachrid(getcharid(3,$@cave3fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave3 == 1) message strcharinfo(0), "Oh no, more monsters?!";
    if ($@wave_cave3 == 2) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave3 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation... Maybe it is not healthy to stay in this cave.";

    if ($@wave_cave3 < $@CAVE3_WAVES) goto L_Summon;
    set cavefights, (cavefights ^ BATTLE_CAVE3);
    end;

OnMonsterDeath:
    set $@cave3_kills, $@cave3_kills + 1;
    if ($@cave3_kills >= $@CAVE3_MONSTERS_QTY[1] + $@CAVE3_MONSTERS_QTY[2] + $@CAVE3_MONSTERS_QTY[3]) goto L_Done;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;

}

// ---------------------  Cave 3 Checker  ----------------------------

025-4.gat,168,117,0	script	#CheckCaveFight3	45,1,1,{
    if (cavefights & BATTLE_CAVE3 || $@wave_cave3 == 0) goto L_Done;
    message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
    end;

L_Done:
    donpcevent "#WarpBattleCave3::OnGetout";
    end;
}

// ---------------------------    Cave 4    --------------------------------
025-4.gat,39,143,0	script	#StartCaveFight4	324,{
    if ($@wave_cave4 != 0 && $@cave4fighter$ == strcharinfo(0)) end;
    if ($@wave_cave4 != 0 && $@cave4fighter$ != strcharinfo(0)) goto L_Cheat;
    if (Rossy_Quest < 15) goto L_Cheat;
    if ($@battlecave4 == 1) goto L_Start;
    
L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    

L_Summon:
    set $@cave4_loop, $@cave4_loop + 1;
    areamonster "025-4.gat",28, 124, 57, 156,"",$@CAVE4_MONSTERS_IDS[$@cave4_loop],$@CAVE4_MONSTERS_QTY[$@cave4_loop],"#StartCaveFight4::OnMonsterDeath";
    if ($@cave4_loop <= getarraysize($@CAVE4_MONSTERS_IDS)) goto L_Summon;
    set $@cave4_loop, 0;
    set $@wave_cave4, $@wave_cave4 + 1;
    end;

L_Done:
    set $@cave4_kills, 0;
    attachrid(getcharid(3,$@cave4fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave4 == 1) message strcharinfo(0), "Oh no, more monsters?!";
    if ($@wave_cave4 == 2) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave4 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation... Maybe it is not healthy to stay in this cave.";

    if ($@wave_cave4 < $@CAVE4_WAVES) goto L_Summon;
    set cavefights, (cavefights ^ BATTLE_CAVE4);
    end;

OnMonsterDeath:
    set $@cave4_kills, $@cave4_kills + 1;
    if ($@cave4_kills >= $@CAVE4_MONSTERS_QTY[1] + $@CAVE4_MONSTERS_QTY[2] + $@CAVE4_MONSTERS_QTY[3]) goto L_Done;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;

}

// ---------------------  Cave 4 Checker  ----------------------------

025-4.gat,32,156,0	script	#CheckCaveFight4	45,1,1,{
    if (cavefights & BATTLE_CAVE4 || $@wave_cave4 == 0) goto L_Done;
    message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
    end;

L_Done:
    donpcevent "#WarpBattleCave4::OnGetout";
    end;
}

// ----------------------------    Cave 5    ------------------------------

025-4.gat,109,143,0	script	#StartCaveFight5	324,{
    if ($@wave_cave5 != 0 && $@cave5fighter$ == strcharinfo(0)) end;
    if ($@wave_cave5 != 0 && $@cave5fighter$ != strcharinfo(0)) goto L_Cheat;
    if (Rossy_Quest < 15) goto L_Cheat;
    if ($@battlecave5 == 1) goto L_Start;
    
L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    

L_Summon:
    set $@cave5_loop, $@cave5_loop + 1;
    areamonster "025-4.gat",91, 131, 124, 160,"",$@CAVE5_MONSTERS_IDS[$@cave5_loop],$@CAVE5_MONSTERS_QTY[$@cave5_loop],"#StartCaveFight5::OnMonsterDeath";
    if ($@cave5_loop <= getarraysize($@CAVE5_MONSTERS_IDS)) goto L_Summon;
    set $@cave5_loop, 0;
    set $@wave_cave5, $@wave_cave5 + 1;
    end;

L_Done:
    set $@cave5_kills, 0;
    attachrid(getcharid(3,$@cave5fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave5 == 1) message strcharinfo(0), "Oh no, more monsters?!";
    if ($@wave_cave5 == 2) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave5 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation... Maybe it is not healthy to stay in this cave.";

    if ($@wave_cave5 < $@CAVE5_WAVES) goto L_Summon;
    set cavefights, (cavefights ^ BATTLE_CAVE5);
    end;

OnMonsterDeath:
    set $@cave5_kills, $@cave5_kills + 1;
    if ($@cave5_kills >= $@CAVE5_MONSTERS_QTY[1] + $@CAVE5_MONSTERS_QTY[2] + $@CAVE5_MONSTERS_QTY[3]) goto L_Done;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;

}

// ---------------------  Cave 5 Checker  ----------------------------

025-4.gat,100,160,0	script	#CheckCaveFight5	45,1,1,{
    if (cavefights & BATTLE_CAVE5 || $@wave_cave5 == 0) goto L_Done;
    message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
    end;

L_Done:
    donpcevent "#WarpBattleCave5::OnGetout";
    end;
}

// --------------------------------    Cave 6    -----------------------------------------

025-4.gat,162,162,0	script	#StartCaveFight6	324,{
    if ($@wave_cave6 != 0 && $@cave6fighter$ == strcharinfo(0)) end;
    if ($@wave_cave6 != 0 && $@cave6fighter$ != strcharinfo(0)) goto L_Cheat;
    if (Rossy_Quest < 15) goto L_Cheat;
    if ($@battlecave6 == 1) goto L_Start;
    
L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    

L_Summon:
    set $@cave6_loop, $@cave6_loop + 1;
    areamonster "025-4.gat",153, 143, 178, 174,"",$@CAVE6_MONSTERS_IDS[$@cave6_loop],$@CAVE6_MONSTERS_QTY[$@cave6_loop],"#StartCaveFight6::OnMonsterDeath";
    if ($@cave6_loop <= getarraysize($@CAVE6_MONSTERS_IDS)) goto L_Summon;
    set $@cave6_loop, 0;
    set $@wave_cave6, $@wave_cave6 + 1;
    end;

L_Done:
    set $@cave6_kills, 0;
    attachrid(getcharid(3,$@cave6fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave6 == 1) message strcharinfo(0), "Oh no, more monsters?!";
    if ($@wave_cave6 == 2) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave6 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation... Maybe it is not healthy to stay in this cave.";

    if ($@wave_cave6 < $@CAVE6_WAVES) goto L_Summon;
    set cavefights, (cavefights ^ BATTLE_CAVE6);
    end;

OnMonsterDeath:
    set $@cave6_kills, $@cave6_kills + 1;
    if ($@cave6_kills >= $@CAVE6_MONSTERS_QTY[1] + $@CAVE6_MONSTERS_QTY[2] + $@CAVE6_MONSTERS_QTY[3]) goto L_Done;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;

}

// ---------------------  Cave 6 Checker  ----------------------------

025-4.gat,159,174,0	script	#CheckCaveFight6	45,1,1,{
    if (cavefights & BATTLE_CAVE6 || $@wave_cave6 == 0) goto L_Done;
    message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
    end;

L_Done:
    donpcevent "#WarpBattleCave6::OnGetout";
    end;
}

// --------------------------------    Cave 7    -----------------------------------

025-4.gat,44,202,0	script	#StartCaveFight7	324,{
    if ($@wave_cave7 != 0 && $@cave7fighter$ == strcharinfo(0)) end;
    if ($@wave_cave7 != 0 && $@cave7fighter$ != strcharinfo(0)) goto L_Cheat;
    if (Rossy_Quest < 15) goto L_Cheat;
    if ($@battlecave7 == 1) goto L_Start;

L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    
  
    
L_Summon:
    set $@cave7_loop, $@cave7_loop + 1;
    areamonster "025-4.gat",27, 185, 61, 219,"",$@CAVE7_MONSTERS_IDS[$@cave7_loop],$@CAVE7_MONSTERS_QTY[$@cave7_loop],"#StartCaveFight7::OnMonsterDeath";
    if ($@cave7_loop <= getarraysize($@CAVE7_MONSTERS_IDS)) goto L_Summon;
    set $@cave7_loop, 0;
    set $@wave_cave7, $@wave_cave7 + 1;
    end;

L_Done:
    set $@cave7_kills, 0;
    attachrid(getcharid(3,$@cave7fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave7 == 1) message strcharinfo(0), "Oh no, more monsters?!";
    if ($@wave_cave7 == 2) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave7 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation... Maybe it is not healthy to stay in this cave.";

    if ($@wave_cave7 < $@CAVE7_WAVES) goto L_Summon;
    set cavefights, (cavefights ^ BATTLE_CAVE7);
    end;

OnMonsterDeath:
    set $@cave7_kills, $@cave7_kills + 1;
    if ($@cave7_kills >= $@CAVE7_MONSTERS_QTY[1] + $@CAVE7_MONSTERS_QTY[2] + $@CAVE7_MONSTERS_QTY[3]) goto L_Done;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;

}

// ---------------------  Cave 7 Checker  ----------------------------

025-4.gat,42,219,0	script	#CheckCaveFight7	45,1,1,{
    if (cavefights & BATTLE_CAVE7 || $@wave_cave7 == 0) goto L_Done;
    message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
    end;

L_Done:
    donpcevent "#WarpBattleCave7::OnGetout";
    end;
}

// ---------------------------    Cave 8    -------------------------------

025-4.gat,105,210,0	script	#StartCaveFight8	324,{
    if ($@wave_cave8 != 0 && $@cave8fighter$ == strcharinfo(0)) end;
    if ($@wave_cave8 != 0 && $@cave8fighter$ != strcharinfo(0)) goto L_Cheat;
    if (Rossy_Quest < 15) goto L_Cheat;
    if ($@battlecave8 == 1) goto L_Start;
    
L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    
  

L_Summon:
    set $@cave8_loop, $@cave8_loop + 1;
    areamonster "025-4.gat",90, 193, 119, 216,"",$@CAVE8_MONSTERS_IDS[$@cave8_loop],$@CAVE8_MONSTERS_QTY[$@cave8_loop],"#StartCaveFight8::OnMonsterDeath";
    if ($@cave8_loop <= getarraysize($@CAVE8_MONSTERS_IDS)) goto L_Summon;
    set $@cave8_loop, 0;
    set $@wave_cave8, $@wave_cave8 + 1;
    end;

L_Done:
    set $@cave8_kills, 0;
    attachrid(getcharid(3,$@cave8fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave8 == 1) message strcharinfo(0), "Oh no, more monsters?!";
    if ($@wave_cave8 == 2) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave8 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation... Maybe it is not healthy to stay in this cave.";

    if ($@wave_cave8 < $@CAVE8_WAVES) goto L_Summon;
    set cavefights, (cavefights ^ BATTLE_CAVE8);
    end;

OnMonsterDeath:
    set $@cave8_kills, $@cave8_kills + 1;
    if ($@cave8_kills >= $@CAVE8_MONSTERS_QTY[1] + $@CAVE8_MONSTERS_QTY[2] + $@CAVE8_MONSTERS_QTY[3]) goto L_Done;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;

}

// ---------------------  Cave 8 Checker  ----------------------------

025-4.gat,105,216,0	script	#CheckCaveFight8	45,1,1,{
    if (cavefights & BATTLE_CAVE8 || $@wave_cave8 == 0) goto L_Done;
    message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
    end;

L_Done:
    donpcevent "#WarpBattleCave8::OnGetout";
    end;
}

// ---------------------------    Cave 9    -------------------------------

025-4.gat,157,220,0	script	#StartCaveFight9	324,{
    if ($@wave_cave9 != 0 && $@cave9fighter$ == strcharinfo(0)) end;
    if ($@wave_cave9 != 0 && $@cave9fighter$ != strcharinfo(0)) goto L_Cheat;
    if (Rossy_Quest < 15) goto L_Cheat;
    if ($@battlecave9 == 1) goto L_Start;
    
L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    

L_Summon:
    set $@cave9_loop, $@cave9_loop + 1;
    areamonster "025-4.gat",144, 192, 173, 226,"",$@CAVE9_MONSTERS_IDS[$@cave9_loop],$@CAVE9_MONSTERS_QTY[$@cave9_loop],"#StartCaveFight9::OnMonsterDeath";
    if ($@cave9_loop <= getarraysize($@CAVE9_MONSTERS_IDS)) goto L_Summon;
    set $@cave9_loop, 0;
    set $@wave_cave9, $@wave_cave9 + 1;
    end;

L_Done:
    set $@cave9_kills, 0;
    attachrid(getcharid(3,$@cave9fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave9 == 1) message strcharinfo(0), "Oh no, more monsters?!";
    if ($@wave_cave9 == 2) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave9 == 3) message strcharinfo(0), "As soon as you kill the last monster, your vision blacks out and you feel a strange sensation... Maybe it is not healthy to stay in this cave.";

    if ($@wave_cave9 < $@CAVE9_WAVES) goto L_Summon;
    set cavefights, (cavefights ^ BATTLE_CAVE9);
    end;

OnMonsterDeath:
    set $@cave9_kills, $@cave9_kills + 1;
    if ($@cave9_kills >= $@CAVE9_MONSTERS_QTY[1] + $@CAVE9_MONSTERS_QTY[2] + $@CAVE9_MONSTERS_QTY[3]) goto L_Done;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;

}

// ---------------------  Cave 9 Checker  ----------------------------

025-4.gat,157,226,0	script	#CheckCaveFight9	45,1,1,{
    if (cavefights & BATTLE_CAVE9 || $@wave_cave9 == 0) goto L_Done;
    message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
    end;

L_Done:
    donpcevent "#WarpBattleCave9::OnGetout";
    end;
}

// ---------------------  Boss Cave  ----------------------------

025-4.gat,157,30,0	script	#StartBossCaveFight	325,{
    if ($@wave_cave10 != 0) end;
    if (Rossy_Quest >= 16) end;
    if ($@battlecave10 == 1 && cavefights & BATTLE_CAVE1 && cavefights & BATTLE_CAVE2 && cavefights & BATTLE_CAVE3 && cavefights & BATTLE_CAVE4 && cavefights & BATTLE_CAVE5 && cavefights & BATTLE_CAVE6 && cavefights & BATTLE_CAVE7 && cavefights & BATTLE_CAVE8 && cavefights & BATTLE_CAVE9 && Rossy_Quest == 15) goto L_Start;
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Start:
    menu
        "Place a root at the center of the energy source.", -,
        "I am not prepared yet!", L_Close;
    if ((countitem("Root")<1)) goto L_no_root;
    close2;
    delitem "Root", 1;
    message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";    

L_Summon:
    set $@cave10_loop, $@cave10_loop + 1;
    areamonster "025-4.gat",142, 24, 172, 48,"",$@CAVE10_MONSTERS_IDS[$@cave10_loop],$@CAVE10_MONSTERS_QTY[$@cave10_loop],"#StartBossCaveFight::OnMonsterDeath";
    if ($@cave10_loop <= getarraysize($@CAVE10_MONSTERS_IDS)) goto L_Summon;
    set $@cave10_loop, 0;
    set $@wave_cave10, $@wave_cave10 + 1;
    end;

L_SummonBoss:
    attachrid(getcharid(3,$@cave10fighter$));
    areamonster "025-4.gat",142, 24, 172, 48,"",$@BOSS,1,"#StartBossCaveFight::OnBossDeath";
    stopnpctimer;
    setnpctimer 0;    
    end;

L_Done:
    set $@cave10_kills, 0;
    attachrid(getcharid(3,$@cave10fighter$));

// Here you can define the messages to be shown for the players on the beginning of each wave.
// Remember to adjust the number of conditionals according to the number of waves.

    if ($@wave_cave10 == 1) message strcharinfo(0), "I can't give up now!";
    if ($@wave_cave10 == 2) message strcharinfo(0), "I feel I'm getting close to the end...";
    if ($@wave_cave10 == 3) message strcharinfo(0), "What? This is harder than I imagined!";
    if ($@wave_cave10 == 4) message strcharinfo(0), "Finally! It seems I have defeated all of them!";

    if ($@wave_cave10 < $@CAVE10_WAVES) goto L_Summon;
    set $@wave_cave10, 5;
    set @boss, 0;
    startnpctimer;
    end;

L_CleaningNorid:
    stopnpctimer;
    setnpctimer 0;    
    set $@wave_cave10, 0;
    set $@cave10_kills, 0;
    set $@cave10start, 0;
    set $@cave10fighter$, "";
    set $@cave10fighterdeaths$, 0;
    set $@battlecave10, 0;
    killmonster "025-4.gat", "#StartBossCaveFight::OnMonsterDeath";
    killmonster "025-4.gat", "#StartBossCaveFight::OnBossDeath";
    end;

OnTimer4000:
    if (isloggedin(getcharid(3,$@cave10fighter$))==0) goto L_CleaningNorid;
    attachrid(getcharid(3,$@cave10fighter$));
    set @boss, @boss + 1;
    if (@boss == 1) message strcharinfo(0), "You feel something strange... Looks like something terrible is about to show up in this cave.";
    if (@boss == 2) goto L_SummonBoss;
    setnpctimer 0;
    end;

OnMonsterDeath:
    set $@cave10_kills, $@cave10_kills + 1;
    if ($@cave10_kills >= $@CAVE10_MONSTERS_QTY[1] + $@CAVE10_MONSTERS_QTY[2] + $@CAVE10_MONSTERS_QTY[3]) goto L_Done;
    end;

OnBossDeath:
    attachrid(getcharid(3,$@cave10fighter$));
    message strcharinfo(0), "What a harsh battle... You should hurry and save Julia!";
    set Rossy_Quest, 16;
    getexp 100000, 0;
    end;

L_Close:
    close;

L_no_root:
    mes "I don't have any roots in my inventory!";
    close;

}

// ---------------------  Boss Cave Checker  ----------------------------

025-4.gat,157,48,0	script	#CheckCaveFightBoss	45,1,1,{
    if (Rossy_Quest >= 17) goto L_Done;
    if (Rossy_Quest == 16) goto L_Julia;
    if (Rossy_Quest < 16 && $@wave_cave10 == 0) goto L_Out;
    if (Rossy_Quest < 16 && $@wave_cave10 != 0) goto L_Julia;
    end;

L_Julia:
    message strcharinfo(0), "I shouldn't leave yet. Julia is still in danger.";
    end;

L_Done:
    warp "025-3.gat", 77, 168;
    end;

L_Out:
    donpcevent "#WarpBossCave::OnGetout";
    end;
}

// ---------------------  Julia Cave Checker Outside  ----------------------------

025-4.gat,157,24,0	script	#CheckJuliaCaveOutside	45,1,1,{
    if (Rossy_Quest > 15) goto L_Done;
    message strcharinfo(0), "As you try to walk through, you bump into a strong magical barrier.";
    percentheal -10, 0;
    end;

L_Done:
    donpcevent "#WarpBossCave::OnWin";
    end;
}

// ---------------------  Julia Cave Checker Inside  ----------------------------

025-4.gat,93,35,0	script	#CheckJuliaCaveInside	45,1,1,{
    if (Rossy_Quest >= 17) goto L_Done;
    if (Rossy_Quest == 16) goto L_Save;
    if (Rossy_Quest <= 15) goto L_Cheat;
    end;

L_Cheat:
    message strcharinfo(0), "You shouldn't be here, you cheater.";
    percentheal -100, 0;
    end;

L_Done:
    message strcharinfo(0), "As you go back to the cave you close your eyes, terrified of the bloody battle you just fought in this place, and feel your way back to the entrance of the cave.";
    warp "025-3.gat", 77, 168;
    end;

L_Save:
    message strcharinfo(0), "You can't leave Julia here, all alone!";
    end;
}