forked from MagicBane/Server
				
			
				 4 changed files with 145 additions and 1 deletions
			
			
		| @ -0,0 +1,139 @@@@ -0,0 +1,139 @@ | ||||
| package engine; | ||||
| 
 | ||||
| import engine.InterestManagement.WorldGrid; | ||||
| import engine.gameManager.BuildingManager; | ||||
| import engine.gameManager.ChatManager; | ||||
| import engine.math.Vector3fImmutable; | ||||
| import engine.objects.*; | ||||
| import engine.server.MBServerStatics; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.Random; | ||||
| import java.util.concurrent.ThreadLocalRandom; | ||||
| 
 | ||||
| public class PlayerAi { | ||||
|     public static ArrayList<PlayerCharacter> ai_players = new ArrayList<>(); | ||||
| 
 | ||||
|     public static void addPlayer(PlayerCharacter pc){ | ||||
|         ai_players.add(pc); | ||||
|         int index = ai_players.indexOf(pc); | ||||
|         pc.setObjectUUID(MBServerStatics.NO_DB_ROW_ASSIGNED_YET - (1 + index)); | ||||
|     } | ||||
| 
 | ||||
|     public static void populate_world(){ | ||||
|         for(Mine mine : Mine.getMines()){ | ||||
|             Building tower = BuildingManager.getBuildingFromCache(mine.getBuildingID()); | ||||
|             if(tower != null){ | ||||
|                 for(int i = 0; i < mine.capSize; i++){ | ||||
|                     addPlayer(createPlayer(tower)); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static PlayerCharacter createPlayer(Building tower){ | ||||
| 
 | ||||
|         Vector3fImmutable loc = Vector3fImmutable.getRandomPointOnCircle(tower.loc,40f); | ||||
| 
 | ||||
|         //get random race
 | ||||
|         Race race = null; | ||||
|         while(race == null) { | ||||
|             int raceId = ThreadLocalRandom.current().nextInt(1999, 2030); | ||||
|             while (raceId == 2021 || raceId == 2020 || raceId == 2019 || raceId == 2018) { | ||||
|                 raceId = ThreadLocalRandom.current().nextInt(1999, 2030); | ||||
|             } | ||||
|             race = Race.getRace(raceId); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         //get random baseClass
 | ||||
|         BaseClass baseClass = null; | ||||
|         while(baseClass == null) { | ||||
|             int baseId = ThreadLocalRandom.current().nextInt(2499, 2505); | ||||
|             BaseClass temp = BaseClass.getBaseClass(baseId); | ||||
|             if (temp == null || !race.getValidBaseClasses().contains(temp)) { | ||||
|                 continue; | ||||
|             } | ||||
|             baseClass = BaseClass.getBaseClass(baseId); | ||||
|         } | ||||
| 
 | ||||
|         PlayerCharacter newPLayer = new PlayerCharacter("", "AI POWERED", (short) 5, (short) 5, (short) 5, (short) 5, | ||||
|                 (short) 5, Guild.getGuild(5), (byte) 0, (Account) null, race, baseClass | ||||
|                 , (byte) 1, (byte) 1, | ||||
|                 (byte) 1, (byte) 1, (byte) 1); | ||||
| 
 | ||||
|         newPLayer.runAfterLoad(); | ||||
| 
 | ||||
|         if(newPLayer.isMale()) { | ||||
|             newPLayer.setFirstName(getMaleName()); | ||||
|         }else { | ||||
|             newPLayer.setFirstName(getFemaleName()); | ||||
|         } | ||||
| 
 | ||||
|         newPLayer.setLevel((short)10); | ||||
| 
 | ||||
|         PromotionClass promo = null; | ||||
|         while(promo == null){ | ||||
|             int promoId = ThreadLocalRandom.current().nextInt(2508,2526); | ||||
|             PromotionClass temp = PromotionClass.GetPromtionClassFromCache(promoId); | ||||
|             if(temp == null) | ||||
|                 continue; | ||||
|             if(!temp.isAllowedRune(race.getToken())) | ||||
|                 continue; | ||||
|             if(!temp.isAllowedRune(baseClass.getToken())) | ||||
|                 continue; | ||||
|             promo = PromotionClass.GetPromtionClassFromCache(promoId); | ||||
|         } | ||||
|         newPLayer.setPromotionClass(promo.getObjectUUID()); | ||||
|         newPLayer.setLevel((short)75); | ||||
| 
 | ||||
|         newPLayer.setLoc(loc); | ||||
| 
 | ||||
|         newPLayer.setObjectTypeMask(MBServerStatics.MASK_PLAYER); | ||||
|         WorldGrid.addObject(newPLayer,loc.x,loc.z); | ||||
| 
 | ||||
|         return newPLayer; | ||||
|     } | ||||
| 
 | ||||
|     public static void run_ai_players() { | ||||
|         for (PlayerCharacter pc : ai_players) { | ||||
| 
 | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static String getMaleName(){ | ||||
|         String[] maleNames = { | ||||
|                 "James", "John", "Robert", "Michael", "William", "David", "Richard", "Joseph", "Thomas", "Charles", | ||||
|                 "Christopher", "Daniel", "Matthew", "Anthony", "Mark", "Donald", "Steven", "Paul", "Andrew", "Joshua", | ||||
|                 "Kenneth", "Kevin", "Brian", "George", "Edward", "Ronald", "Timothy", "Jason", "Jeffrey", "Ryan", | ||||
|                 "Jacob", "Gary", "Nicholas", "Eric", "Jonathan", "Stephen", "Larry", "Justin", "Scott", "Brandon", | ||||
|                 "Benjamin", "Samuel", "Gregory", "Alexander", "Patrick", "Frank", "Raymond", "Jack", "Dennis", "Jerry", | ||||
|                 "Tyler", "Aaron", "Jose", "Adam", "Nathan", "Henry", "Douglas", "Zachary", "Peter", "Kyle", | ||||
|                 "Walter", "Ethan", "Jeremy", "Harold", "Keith", "Christian", "Roger", "Noah", "Gerald", "Carl", | ||||
|                 "Terry", "Sean", "Austin", "Arthur", "Lawrence", "Jesse", "Dylan", "Bryan", "Joe", "Jordan", | ||||
|                 "Billy", "Bruce", "Albert", "Willie", "Gabriel", "Logan", "Alan", "Juan", "Wayne", "Roy", | ||||
|                 "Ralph", "Randy", "Eugene", "Vincent", "Russell", "Louis", "Philip", "Bobby", "Johnny", "Bradley" | ||||
|         }; | ||||
| 
 | ||||
|         Random random = new Random(); | ||||
|         return maleNames[random.nextInt(maleNames.length)]; | ||||
|     } | ||||
| 
 | ||||
|     public static String getFemaleName(){ | ||||
|         String[] femaleNames = { | ||||
|                 "Mary", "Patricia", "Jennifer", "Linda", "Elizabeth", "Barbara", "Susan", "Jessica", "Sarah", "Karen", | ||||
|                 "Nancy", "Lisa", "Betty", "Margaret", "Sandra", "Ashley", "Kimberly", "Emily", "Donna", "Michelle", | ||||
|                 "Carol", "Amanda", "Melissa", "Deborah", "Stephanie", "Rebecca", "Laura", "Sharon", "Cynthia", "Kathleen", | ||||
|                 "Amy", "Shirley", "Angela", "Helen", "Anna", "Brenda", "Pamela", "Nicole", "Samantha", "Katherine", | ||||
|                 "Christine", "Debra", "Rachel", "Catherine", "Carolyn", "Janet", "Ruth", "Maria", "Heather", "Diane", | ||||
|                 "Virginia", "Julie", "Joyce", "Victoria", "Kelly", "Christina", "Lauren", "Joan", "Evelyn", "Judith", | ||||
|                 "Olivia", "Frances", "Martha", "Cheryl", "Megan", "Andrea", "Hannah", "Jacqueline", "Ann", "Gloria", | ||||
|                 "Jean", "Kathryn", "Alice", "Teresa", "Sara", "Janice", "Doris", "Madison", "Julia", "Grace", | ||||
|                 "Judy", "Abigail", "Marie", "Denise", "Beverly", "Amber", "Theresa", "Marilyn", "Danielle", "Diana", | ||||
|                 "Brittany", "Natalie", "Sophia", "Rose", "Isabella", "Alexis", "Kayla", "Charlotte", "Faith", "Alyssa" | ||||
|         }; | ||||
| 
 | ||||
|         Random random = new Random(); | ||||
|         return femaleNames[random.nextInt(femaleNames.length)]; | ||||
|     } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue