Files
lakebane/src/engine/AiPlayers/AiPlayer.java
T

75 lines
2.2 KiB
Java
Raw Normal View History

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);
}
}