Adventure mode PoI refactor.

Renamed, re-set and cherry-picked a few of the various PoIs and reverted placement behavior.
This commit is contained in:
Magpie
2022-04-11 09:25:36 +02:00
parent b28ccb7805
commit a5bd40d7af
10 changed files with 371 additions and 846 deletions

View File

@@ -1,14 +1,11 @@
package forge.adventure.data;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Json;
import forge.adventure.util.Config;
import forge.adventure.util.Paths;
import java.util.ArrayList;
/**
* Data class that will be used to read Json configuration files
* BiomeData
@@ -39,13 +36,9 @@ public class PointOfInterestData {
}
return pointOfInterestList;
}
public static PointOfInterestData getPointOfInterest(String name, Vector2 index) {
ArrayList<PointOfInterestData> candidates = new ArrayList<PointOfInterestData>();
public static PointOfInterestData getPointOfInterest(String name) {
for(PointOfInterestData data: new Array.ArrayIterator<>(getAllPointOfInterest())){
if(data.name.equals(name)) candidates.add(data); //Populate candidates with specified name.
}
if(candidates.size() > 0){ //If we got any candidates, return a random one.
return candidates.get(((int)(index.x*6719+index.y)%candidates.size()));//6719 is just a big prime to avoid collisions
if(data.name.equals(name)) return data;
}
return null;
}

View File

@@ -21,7 +21,7 @@ public class PointOfInterest implements SaveFileContent {
public void load(SaveFileData saveFileData) {
position.set(saveFileData.readVector2("position"));
data=PointOfInterestData.getPointOfInterest(saveFileData.readString("name"),position);
data=PointOfInterestData.getPointOfInterest(saveFileData.readString("name"));
rectangle.set(saveFileData.readRectangle("rectangle"));
spriteIndex=saveFileData.readInt("spriteIndex");

View File

@@ -20,6 +20,7 @@ import forge.adventure.util.Config;
import forge.adventure.util.Paths;
import forge.adventure.util.SaveFileContent;
import forge.adventure.util.SaveFileData;
import forge.util.MyRandom;
import org.apache.commons.lang3.tuple.Pair;
import java.util.ArrayList;
@@ -43,7 +44,7 @@ public class World implements Disposable, SaveFileContent {
private PointOfInterestMap mapPoiIds;
private BiomeTexture[] biomeTexture;
private long seed;
private final Random random = new Random();
private final Random random = MyRandom.getRandom();
private boolean worldDataLoaded=false;
public Random getRandom()

View File

@@ -24,5 +24,14 @@
"color": "110903",
"spriteNames":[ "SwampTree","SwampTree2","DarkGras","Skull","SwampRock","DarkWood","Reed","Waterlily","Shroom","Shroom2"] ,
"enemies":[ "Beholder","Big Zombie","Black Wiz1","Black Wiz2","Black Wiz3","Dark Knight","Death Knight","Demon","Ghoul","Ghost","Harpy","Harpy 2","High Vampire","Lich","Rakdos Devil","Skeleton","Skeleton Soldier","Vampire","Zombie","Zombie Lord" ] ,
"pointsOfInterest":[ "Black Castle","Swamp Town","Swamp Town2","Zombie Town","Graveyard","VampireCastle","EvilGrove","SkullCaveB","CaveB" ]
"pointsOfInterest":[
"Black Castle",
"Swamp Town","Swamp Town2",
"Zombie Town",
"Graveyard", "Graveyard1", "Graveyard2", "Graveyard3", "Graveyard4",
"VampireCastle", "VampireCastle1", "VampireCastle2", "VampireCastle3",
"EvilGrove", "EvilGrove1", "EvilGrove2", "EvilGrove3", "EvilGrove4",
"SkullCaveB", "SkullCaveB1", "SkullCaveB2",
"CaveB", "CaveB1", "CaveB2", "CaveB3", "CaveB4", "CaveB5", "CaveB6", "CaveB7", "CaveB8", "CaveB9", "CaveBA", "CaveBB", "CaveBC"
]
}

View File

@@ -24,5 +24,14 @@
"color": "10a2e0",
"spriteNames":["IslandTree" ,"Coral" ,"Shell" ],
"enemies":[ "Bird","Djinn","Elemental","Merfolk","Merfolk Avatar","Merfolk Fighter","Merfolk Lord","Merfolk Soldier","Merfolk warrior","Blue Wiz1","Blue Wiz2","Blue Wiz3","Geist","Rogue","Sea Monster","Tarkir Djinn" ] ,
"pointsOfInterest":[ "Blue Castle","Island Town","Nest","MerfolkPool","DjinnPalace","MageTowerU","CaveU" ]
"pointsOfInterest":[
"Blue Castle",
"Island Town",
"NestU",
"MerfolkPool", "MerfolkPool1", "MerfolkPool2", "MerfolkPool3", "MerfolkPool4", "MerfolkPool5",
"DjinnPalace", "DjinnPalace1", "DjinnPalace2",
"Factory", "Factory1",
"MageTowerU", "MageTowerU1", "MageTowerU2", "MageTowerU3", "MageTowerU4", "MageTowerU5", "MageTowerU6", "MageTowerU7", "MageTowerU8", "MageTowerU9", "MageTowerUA", "MageTowerUB", "MageTowerUC", "MageTowerUD",
"CaveU", "CaveU1", "CaveU2", "CaveU3", "CaveU4", "CaveU5"
]
}

View File

@@ -24,5 +24,13 @@
"color": "59a650",
"spriteNames":[ "WoodTree","WoodTree2","Bush","Stump","Moss","Stone","Flower","Wood"] ,
"enemies":[ "Ape","Bear","Centaur","Centaur Warrior","Dino","Eldraine Faerie","Elf","Elf warrior","Elk","Faerie","Giant Spider","Gorgon","Gorgon 2","Green Beast","Green Wiz1","Green Wiz2","Green Wiz3","High Elf","Hydra","Satyr","Snake","Spider","Treefolk","Treefolk Guardian","Viper","Werewolf","Wurm" ] ,
"pointsOfInterest":[ "Green Castle","Forest Town","ElfTown","WurmPond","Grove","CatLairG","CaveG" ]
"pointsOfInterest":[
"Green Castle",
"Forest Town",
"ElfTown",
"WurmPond",
"Grove", "Grove1", "Grove2", "Grove3", "Grove4", "Grove5", "Grove6", "Grove7", "Grove8", "Grove9", "GroveA", "GroveB",
"CatLairG", "CatLairG1", "CatLairG2",
"CaveG", "CaveG1", "CaveG2", "CaveG3", "CaveG4", "CaveG5", "CaveG6", "CaveG7", "CaveG8", "CaveG9", "CaveGA", "CaveGB"
]
}

View File

@@ -24,5 +24,16 @@
"color": "b63729",
"spriteNames":[ "MountainTree","MountainTree2","MountainRock","LargeMountainRock","Gravel"] ,
"enemies":[ "Amonkhet Minotaur","Ashmouth Devil","Axgard Dwarf","Berserker","Boggart","Cyclops","Devil","Dinosaur","Dragon","Dwarf","Efreet","Fire Elemental","Flame Elemental","Goblin","Goblin Chief","Goblin Warrior","Hellhound","Immersturm Demon","Khan","Minotaur","Minotaur Flayer","Red Beast","Red Wiz1","Red Wiz2","Red Wiz3","Shaman","Troll","Vampire Lord","Viashino","Yeti" ] ,
"pointsOfInterest":[ "Red Castle","Mountain Town","YuleTown","BarbarianCamp","Maze","SnowAbbey","SkullCaveR","CaveR" ]
"pointsOfInterest":[
"Red Castle",
"Mountain Town",
"YuleTown",
"BarbarianCamp", "BarbarianCamp1", "BarbarianCamp2", "BarbarianCamp3",
"Maze", "Maze1", "Maze2", "Maze3",
"Fort", "Fort5", "FortA",
"Factory", "Factory2", "Factory3",
"SnowAbbey", "SnowAbbey1", "SnowAbbey2",
"SkullCaveR", "SkullCaveR1", "SkullCaveR2",
"CaveR", "CaveR1", "CaveR2", "CaveR3", "CaveR4", "CaveR5", "CaveR6", "CaveR7", "CaveR8", "CaveR9", "CaveRA", "CaveRB", "CaveRC", "CaveRD", "CaveRE", "CaveRF", "CaveRG", "CaveRH", "CaveRI", "CaveRJ", "CaveRK", "CaveRL"
]
}

View File

@@ -24,5 +24,14 @@
"color": "aeaeae",
"spriteNames":[ "WasteTree","Stone","WasteRock"] ,
"enemies":[ "Bandit","ClayGolem","Construct","Eldrazi","Gargoyle","Gargoyle 2","Golem","Sliver","Black Wiz1","Black Wiz2","Black Wiz3","Blue Wiz1","Blue Wiz2","Blue Wiz3","Green Wiz1","Green Wiz2","Green Wiz3","Red Wiz1","Red Wiz2","Red Wiz3","White Wiz1","White Wiz2","White Wiz3" ] ,
"pointsOfInterest":[ "Colorless Castle","Final Castle","Waste Town","Waste Town2","Waste Town3","Portal","Fort","Factory","MageTowerC","CaveC" ]
"pointsOfInterest":[
"Final Castle",
"Colorless Castle",
"Waste Town", "Waste Town2", "Waste Town3",
"Portal", "Portal1",
"Fort", "Fort1", "Fort2", "Fort3", "Fort4", "Fort5", "Fort6",
"Factory", "Factory1", "Factory2", "Factory3",
"MageTowerC", "MageTowerC1", "MageTowerC2", "MageTowerC3", "MageTowerC4", "MageTowerC5",
"CaveC", "CaveC1", "CaveC2", "CaveC3", "CaveC4", "CaveC5", "CaveC6", "CaveC7", "CaveC8", "CaveC9", "CaveCA", "CaveCB", "CaveCC", "CaveCD", "CaveCE", "CaveCF"
]
}

View File

@@ -24,5 +24,15 @@
"color": "efe697",
"spriteNames":[ "PlainsTree", "Cactus" ,"PlainsRock" ,"LargePlainsRock" ,"DarkGras" ],
"enemies":[ "Adventurer","Archer","Cat","Cathar","Cleric","Dawnhart Witch","Eldraine Knight","Griffin","Horseman","Human","Human elite","Human guard","Knight","Monk","White Dwarf","White Wiz1","White Wiz2","White Wiz3" ] ,
"pointsOfInterest":[ "White Castle","Plains Town","Monastery","Castle","Aerie","CatLairW","NestW","CaveW" ]
"pointsOfInterest":[
"White Castle",
"Plains Town",
"Monastery", "Monastery1", "Monastery2", "Monastery3", "Monastery4",
"Castle", "Castle1", "Castle2",
"Fort7", "Fort8", "Fort9", "FortA", "FortB",
"Aerie",
"CatLairW", "CatLairW1", "CatLairW2",
"NestW",
"CaveW", "CaveW1", "CaveW2", "CaveW3", "CaveW4", "CaveW5", "CaveW6"
]
}