2025-02-10 19:16:00 -06:00
|
|
|
package engine.AiPlayers;
|
|
|
|
|
|
|
|
|
|
import engine.Enum;
|
2025-02-10 19:59:45 -06:00
|
|
|
import engine.InterestManagement.InterestManager;
|
2025-02-10 19:16:00 -06:00
|
|
|
import engine.InterestManagement.WorldGrid;
|
2025-02-10 19:59:45 -06:00
|
|
|
import engine.gameManager.LootManager;
|
2025-02-10 19:16:00 -06:00
|
|
|
import engine.math.Vector3fImmutable;
|
|
|
|
|
import engine.net.client.msg.VendorDialogMsg;
|
|
|
|
|
import engine.objects.*;
|
|
|
|
|
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Random;
|
|
|
|
|
import java.util.concurrent.ThreadLocalRandom;
|
|
|
|
|
|
|
|
|
|
public class AiPlayer {
|
2025-02-10 19:59:45 -06:00
|
|
|
public Mob emulated;
|
2025-02-10 19:16:00 -06:00
|
|
|
|
|
|
|
|
//randomized constructor
|
|
|
|
|
//creates a random AI player to start at level 10 and progress throughout the game world
|
|
|
|
|
public AiPlayer(){
|
2025-02-10 19:59:45 -06:00
|
|
|
Mob emu = generateRandomPlayer();
|
2025-02-10 19:16:00 -06:00
|
|
|
if(emu != null)
|
|
|
|
|
this.emulated = emu;
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-10 19:59:45 -06:00
|
|
|
public static Mob generateRandomPlayer(){
|
2025-02-10 19:16:00 -06:00
|
|
|
Race race = AiPlayerManager.getRandomRace();
|
|
|
|
|
if(race == null)
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
BaseClass baseClass = null;
|
|
|
|
|
|
|
|
|
|
List<BaseClass> validClasses = race.getValidBaseClasses();
|
|
|
|
|
if (!validClasses.isEmpty()) {
|
|
|
|
|
Random random = new Random();
|
|
|
|
|
baseClass = validClasses.get(random.nextInt(validClasses.size()));
|
|
|
|
|
// Use randomClass here
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(baseClass == null)
|
|
|
|
|
return null;
|
|
|
|
|
|
2025-02-10 19:59:45 -06:00
|
|
|
City hamlet = AiPlayerManager.getRandomHamlet();
|
|
|
|
|
Vector3fImmutable loc = Vector3fImmutable.getRandomPointOnCircle(hamlet.getTOL().loc,30);
|
|
|
|
|
|
|
|
|
|
Mob guard = Mob.createStrongholdMob(race.getRaceRuneID(), loc, Guild.getErrantGuild(),true,hamlet.getParent(),null,0, AiPlayerManager.generateFirstName(),10);
|
|
|
|
|
|
|
|
|
|
if(guard != null){
|
|
|
|
|
guard.parentZone = hamlet.getParent();
|
|
|
|
|
guard.bindLoc = loc;
|
|
|
|
|
guard.setLoc(loc);
|
|
|
|
|
guard.StrongholdGuardian = true;
|
|
|
|
|
guard.runAfterLoad();
|
|
|
|
|
guard.setLevel((short)10);
|
|
|
|
|
guard.spawnTime = 1000000000;
|
|
|
|
|
guard.setFirstName(AiPlayerManager.generateFirstName());
|
|
|
|
|
guard.setLastName("Ai Player");
|
|
|
|
|
InterestManager.setObjectDirty(guard);
|
|
|
|
|
WorldGrid.addObject(guard,loc.x,loc.z);
|
|
|
|
|
WorldGrid.updateObject(guard);
|
|
|
|
|
guard.mobPowers.clear();
|
2025-02-10 19:16:00 -06:00
|
|
|
}
|
|
|
|
|
|
2025-02-10 19:59:45 -06:00
|
|
|
return guard;
|
2025-02-10 19:16:00 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void update(){
|
|
|
|
|
this.emulated.update(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|