1 changed files with 114 additions and 0 deletions
			
			
		| @ -1,7 +1,121 @@ | |||||||
| package engine.gameManager; | package engine.gameManager; | ||||||
| 
 | 
 | ||||||
|  | import engine.objects.Mob; | ||||||
|  | import engine.objects.Resists; | ||||||
|  | import engine.objects.Zone; | ||||||
|  | import engine.server.MBServerStatics; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | 
 | ||||||
| public class HellgateManager { | public class HellgateManager { | ||||||
|  |     public static ArrayList<Mob> hellgate_mobs; | ||||||
|  |     public static ArrayList<Mob> hellgate_mini_bosses; | ||||||
|  |     public static Mob hellgate_boss; | ||||||
|  | 
 | ||||||
|  |     public static Long hellgate_time_completed = 0L; | ||||||
|  |     public static final int citadel_ruins_zone_id = 993; | ||||||
|  |     public static final int hell_portal_1_zone_id = 994; | ||||||
|  |     public static final int hell_portal_2_zone_id = 996; | ||||||
|  |     public static final int hell_portal_3_zone_id = 997; | ||||||
|  |     public static final int hell_portal_4_zone_id = 998; | ||||||
|  | 
 | ||||||
|  |     public static boolean initialized = false; | ||||||
|  |     public static void confiureHellgate(){ | ||||||
|  |         compile_mob_list(); | ||||||
|  |     } | ||||||
|     public static void pulseHellgates(){ |     public static void pulseHellgates(){ | ||||||
|  |         if(!initialized){ | ||||||
|  |             confiureHellgate(); | ||||||
|  |             initialized = true; | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if(hellgate_mobs == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         if(hellgate_mini_bosses == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         if(hellgate_boss == null){ | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if(!hellgate_boss.isAlive() && hellgate_time_completed == 0L) | ||||||
|  |             hellgate_time_completed = System.currentTimeMillis(); | ||||||
| 
 | 
 | ||||||
|  |         if(hellgate_time_completed != 0L && System.currentTimeMillis() > hellgate_time_completed + MBServerStatics.THIRTY_MINUTES){ | ||||||
|  |             ResetHellgate(); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     public static void compile_mob_list(){ | ||||||
|  |         if(hellgate_mobs == null) { | ||||||
|  |             hellgate_mobs =new ArrayList<>(); | ||||||
|  |         } | ||||||
|  |         if(hellgate_mini_bosses == null) { | ||||||
|  |             hellgate_mini_bosses =new ArrayList<>(); | ||||||
|  |         } | ||||||
|  |         Zone hellgate_zone = ZoneManager.getZoneByZoneID(citadel_ruins_zone_id); | ||||||
|  |         if(hellgate_zone == null) | ||||||
|  |             return; | ||||||
|  | 
 | ||||||
|  |         for(Mob mob : hellgate_zone.zoneMobSet){ | ||||||
|  |             switch(mob.getMobBaseID()){ | ||||||
|  |                 case 14163: // basic saetor warrior
 | ||||||
|  |                     mob.getCharItemManager().clearInventory(); | ||||||
|  |                     LootManager.GenerateStrongholdLoot(mob,false,false); | ||||||
|  |                     mob.setResists(new Resists("Elite")); | ||||||
|  |                     mob.healthMax = 8500; | ||||||
|  |                     mob.setHealth(mob.healthMax); | ||||||
|  |                     hellgate_mobs.add(mob); | ||||||
|  |                     break; | ||||||
|  |                 case 12770: // minotaur mini boss
 | ||||||
|  |                     mob.getCharItemManager().clearInventory(); | ||||||
|  |                     LootManager.GenerateStrongholdLoot(mob,true,false); | ||||||
|  |                     mob.setResists(new Resists("Elite")); | ||||||
|  |                     mob.healthMax = 12500; | ||||||
|  |                     mob.setHealth(mob.healthMax); | ||||||
|  |                     hellgate_mini_bosses.add(mob); | ||||||
|  |                     break; | ||||||
|  |                 case 14180: // mordoth, son of morlock
 | ||||||
|  |                     mob.getCharItemManager().clearInventory(); | ||||||
|  |                     LootManager.GenerateStrongholdLoot(mob,false,true); | ||||||
|  |                     mob.setResists(new Resists("Elite")); | ||||||
|  |                     mob.healthMax = mob.mobBase.getHealthMax(); | ||||||
|  |                     mob.setHealth(mob.healthMax); | ||||||
|  |                     hellgate_boss = mob; | ||||||
|  |                     break; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static void ResetHellgate(){ | ||||||
|  |         hellgate_time_completed = 0L; | ||||||
|  |         for(Mob mob : hellgate_mobs){ | ||||||
|  |             if(!mob.isAlive()){ | ||||||
|  |                 if(!mob.despawned){ | ||||||
|  |                     mob.despawn(); | ||||||
|  |                 } | ||||||
|  |                 mob.respawn(); | ||||||
|  |             } | ||||||
|  |             mob.setHealth(mob.healthMax); | ||||||
|  |         } | ||||||
|  |         for(Mob mob : hellgate_mini_bosses){ | ||||||
|  |             if(!mob.isAlive()){ | ||||||
|  |                 if(!mob.despawned){ | ||||||
|  |                     mob.despawn(); | ||||||
|  |                 } | ||||||
|  |                 mob.respawn(); | ||||||
|  |             } | ||||||
|  |             mob.setHealth(mob.healthMax); | ||||||
|  |         } | ||||||
|  |         if(!hellgate_boss.isAlive()){ | ||||||
|  |             if(!hellgate_boss.despawned){ | ||||||
|  |                 hellgate_boss.despawn(); | ||||||
|  |             } | ||||||
|  |             hellgate_boss.respawn(); | ||||||
|  |         } | ||||||
|  |         hellgate_boss.setHealth(hellgate_boss.healthMax); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  | |||||||
					Loading…
					
					
				
		Reference in new issue