Skip to content
Snippets Groups Projects
Commit a4db66f3 authored by Chris Kearney's avatar Chris Kearney
Browse files

all of the merchants ported over

parent 64784c85
No related branches found
No related tags found
No related merge requests found
Showing
with 453 additions and 583 deletions
...@@ -22,7 +22,7 @@ public class ConfigureNpc { ...@@ -22,7 +22,7 @@ public class ConfigureNpc {
EntityManager entityManager = gameManager.getEntityManager(); EntityManager entityManager = gameManager.getEntityManager();
List<Npc> npcsFromFile = gameManager.getNpcStorage().getAllNpcs(); List<Npc> npcsFromFile = gameManager.getNpcStorage().getAllNpcs();
for (Npc npc : npcsFromFile) { for (Npc npc : npcsFromFile) {
Main.startUpMessage("Added " + npc.getName()); Main.startUpMessage("Adding spawn: " + npc.getName());
entityManager.addEntity(npc); entityManager.addEntity(npc);
Set<SpawnRule> spawnRules = npc.getSpawnRules(); Set<SpawnRule> spawnRules = npc.getSpawnRules();
for (SpawnRule spawnRule : spawnRules) { for (SpawnRule spawnRule : spawnRules) {
...@@ -37,91 +37,26 @@ public class ConfigureNpc { ...@@ -37,91 +37,26 @@ public class ConfigureNpc {
List<ItemMetadata> allItemMetadata = gameManager.getItemStorage().getAllItemMetadata(); List<ItemMetadata> allItemMetadata = gameManager.getItemStorage().getAllItemMetadata();
for (ItemMetadata itemMetadata: allItemMetadata) { for (ItemMetadata itemMetadata : allItemMetadata) {
for (SpawnRule spawnRule: itemMetadata.getSpawnRules()) { for (SpawnRule spawnRule : itemMetadata.getSpawnRules()) {
Main.startUpMessage("Adding spawn: " + itemMetadata.getInternalItemName()); Main.startUpMessage("Adding spawn: " + itemMetadata.getInternalItemName());
ItemSpawner itemSpawner = new ItemSpawner(itemMetadata, spawnRule, gameManager); ItemSpawner itemSpawner = new ItemSpawner(itemMetadata, spawnRule, gameManager);
entityManager.addEntity(itemSpawner); entityManager.addEntity(itemSpawner);
} }
} }
for (ItemMetadata itemMetadata: allItemMetadata) { for (ItemMetadata itemMetadata : allItemMetadata) {
for (Forage forage: itemMetadata.getForages()) { for (Forage forage : itemMetadata.getForages()) {
Main.startUpMessage("Processing forages for " + itemMetadata.getInternalItemName()); Main.startUpMessage("Adding forage: " + itemMetadata.getInternalItemName());
gameManager.getForageManager().addForage(itemMetadata.getInternalItemName(), forage); gameManager.getForageManager().addForage(itemMetadata.getInternalItemName(), forage);
} }
} }
List<Merchant> allMerchantMetadatas = gameManager.getMerchantStorage().getAllMerchants(); List<Merchant> allMerchantMetadatas = gameManager.getMerchantStorage().getAllMerchants();
for (Merchant merchant: allMerchantMetadatas) { for (Merchant merchant : allMerchantMetadatas) {
Main.startUpMessage("Adding merchant: " + merchant.getInternalName());
gameManager.getRoomManager().addMerchant(merchant); gameManager.getRoomManager().addMerchant(merchant);
} }
// ItemSpawner itemSpawner = new ItemSpawner(ItemType.SMALL_HEALTH_POTION, new SpawnRuleBuilder().setArea(Area.NEWBIE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(100).setMaxPerRoom(5).setRandomPercent(40).createSpawnRule(), gameManager);
// ItemSpawner itemSpawner1 = new ItemSpawner(ItemType.SMALL_HEALTH_POTION, new SpawnRuleBuilder().setArea(Area.FANCYHOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(12).setMaxPerRoom(2).setRandomPercent(50).createSpawnRule(), gameManager);
// ItemSpawner itemSpawner2 = new ItemSpawner(ItemType.SMALL_HEALTH_POTION, new SpawnRuleBuilder().setArea(Area.HOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(12).setMaxPerRoom(2).setRandomPercent(50).createSpawnRule(), gameManager);
// ItemSpawner itemSpawner5 = new ItemSpawner(ItemType.KEY, new SpawnRuleBuilder().setArea(Area.LOBBY).setSpawnIntervalTicks(600).setMaxInstances(1).setMaxPerRoom(1).setRandomPercent(5).createSpawnRule(), gameManager);
// entityManager.addEntity(itemSpawner);
// entityManager.addEntity(itemSpawner1
//);
// entityManager.addEntity(itemSpawner2);
// entityManager.addEntity(itemSpawner5);
// List<MerchantItemForSale> itemsForSale = Lists.newArrayList();
// itemsForSale.add(new MerchantItemForSale("small health potion", 8));
// itemsForSale.add(new MerchantItemForSale("purple drank", 80));
// itemsForSale.add(new MerchantItemForSale("biggers skin satchel", 25000));
////
// LloydBartender lloydBartender = new LloydBartender(gameManager, itemsForSale);
// gameManager.getRoomManager().addMerchant(64, lloydBartender);
////
// Map<Integer, MerchantItemForSale> nigelForSale = Maps.newLinkedHashMap();
// nigelForSale.put(1, new MerchantItemForSale(ItemType.SMALL_HEALTH_POTION, 6));
//
// NigelBartender nigelBartender = new NigelBartender(gameManager, new Loot(18, 26, Sets.<ItemType>newHashSet()), nigelForSale);
// gameManager.getRoomManager().addMerchant(377, nigelBartender);
//
// Map<Integer, MerchantItemForSale> blacksmithItems = Maps.newHashMap();
// blacksmithItems.put(1, new MerchantItemForSale(ItemType.BERSERKER_BATON, 10000));
// blacksmithItems.put(2, new MerchantItemForSale(ItemType.BERSEKER_BOOTS, 3500));
// blacksmithItems.put(3, new MerchantItemForSale(ItemType.BERSERKER_BRACERS, 3500));
// blacksmithItems.put(4, new MerchantItemForSale(ItemType.BERSEKER_HELM, 3500));
// blacksmithItems.put(5, new MerchantItemForSale(ItemType.BERSERKER_CHEST, 7000));
// blacksmithItems.put(6, new MerchantItemForSale(ItemType.BERSEKER_SHORTS, 8500));
// blacksmithItems.put(7, new MerchantItemForSale(ItemType.LEATHER_SATCHEL, 600));
//
// Blacksmith blacksmith = new Blacksmith(gameManager, new Loot(18, 26, Sets.<ItemType>newHashSet()), blacksmithItems);
// gameManager.getRoomManager().addMerchant(66, blacksmith);
// gameManager.getRoomManager().addMerchant(253, blacksmith);
//
// Map<Integer, MerchantItemForSale> wizarditems = Maps.newHashMap();
// wizarditems.put(1, new MerchantItemForSale(ItemType.LIGHTNING_SPELLBOOKNG, 50000));
//
// Wizard wizard = new Wizard(gameManager, new Loot(18, 26, Sets.<ItemType>newHashSet()), wizarditems);
// gameManager.getRoomManager().addMerchant(98, wizard);
//
// JimBanker jimBanker = new JimBanker(gameManager, new Loot(18, 26, Sets.<ItemType>newHashSet()), null);
// gameManager.getRoomManager().addMerchant(65, jimBanker);
// gameManager.getRoomManager().addMerchant(209, jimBanker);
//
// OldWiseMan oldWiseMan = new OldWiseMan(gameManager, new Loot(18, 26, Sets.<ItemType>newHashSet()), null);
// gameManager.getRoomManager().addMerchant(2, oldWiseMan);
//
// LockerRoomGuy lockerRoomGuy = new LockerRoomGuy(gameManager, new Loot(18, 26, Sets.<ItemType>newHashSet()), null);
// gameManager.getRoomManager().addMerchant(63, lockerRoomGuy);
// ForageBuilder marijuanaForageBuilder = new ForageBuilder();
// marijuanaForageBuilder.setInternalItemName("Marijuana");
// marijuanaForageBuilder.setMinAmt(1);
// marijuanaForageBuilder.setMaxAmt(3);
// marijuanaForageBuilder.setPctOfSuccess(40);
// marijuanaForageBuilder.setForageExperience(4);
// marijuanaForageBuilder.setCoolDownTicks(600);
// gameManager.getForageManager().addForageToArea(Area.WESTERN9_ZONE, marijuanaForageBuilder);
// gameManager.getForageManager().addForageToArea(Area.NORTH3_ZONE, marijuanaForageBuilder);
// gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE2_ZONE, marijuanaForageBuilder);
// gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE1_ZONE, marijuanaForageBuilder);
} }
} }
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class BlackbeardRogue extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "blackbeard";
private final static String welcomeMessage = "Welcome to Blackbeard's Rogue Shop.\r\n";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"blackbeard", "b", "rogue", "r", NAME}
));
private final static String colorName = BOLD_ON + Color.CYAN + NAME + Color.RESET ;
public BlackbeardRogue(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage);
}
}
*/
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class Blacksmith extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "biggers the blacksmith";
private final static String welcomeMessage = " ____ _ \r\n" +
" | __ )(_) __ _ __ _ ___ _ __ ___ \r\n" +
" | _ \\| |/ _` |/ _` |/ _ \\ '__/ __| \r\n" +
" | |_) | | (_| | (_| | __/ | \\__ \\ \r\n" +
" |____/|_|\\__, |\\__, |\\___|_| |___/ \r\n" +
" ____ |___/ |___/ _ _ _ _ \r\n" +
" | __ )| | __ _ ___| | _____ _ __ ___ (_) |_| |__ \r\n" +
" | _ \\| |/ _` |/ __| |/ / __| '_ ` _ \\| | __| '_ \\ \r\n" +
" | |_) | | (_| | (__| <\\__ \\ | | | | | | |_| | | |\r\n" +
" |____/|_|\\__,_|\\___|_|\\_\\___/_| |_| |_|_|\\__|_| |_|\r\n" +
" ";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"blacksmith", "biggers the blacksmith", "biggers", NAME}
));
private final static String colorName = BOLD_ON + Color.CYAN + NAME + Color.RESET ;
public Blacksmith(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage);
}
}
*/
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class GrimulfWizard extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "grimulf the wizard";
private final static String welcomeMessage = "Welcome to my den.\r\n";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"grimulf", "g", "wizard", "w", NAME}
));
private final static String colorName = BOLD_ON + Color.CYAN + NAME + Color.RESET ;
public GrimulfWizard(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage);
}
}
*/
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class JimBanker extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "jim the banker";
private final static String welcomeMessage = "Welcome to the First National Bank of Creeper.";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"bank", "banker", "jim the banker", "jim", "j", NAME}
));
private final static String colorName = BOLD_ON + Color.CYAN + NAME + Color.RESET;
public JimBanker(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage, MerchantType.BANK);
}
@Override
public String getMenu() {
return null;
}
}
*/
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class KetilCommissary extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "ketil";
private final static String welcomeMessage = "Welcome to the Ketil Commissary.\r\n";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"ketil", "k", "commissary", "c", NAME}
));
private final static String colorName = BOLD_ON + Color.CYAN + NAME + Color.RESET ;
public KetilCommissary(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage);
}
}
*/
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class LloydBartender extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "lloyd the bartender";
private final static String welcomeMessage = " _ _ _______ ______ _ _______ \r\n" +
"( \\ ( \\ ( ___ )|\\ /|( __ \\ ( )( ____ \\\r\n" +
"| ( | ( | ( ) |( \\ / )| ( \\ )|/ | ( \\/\r\n" +
"| | | | | | | | \\ (_) / | | ) | | (_____ \r\n" +
"| | | | | | | | \\ / | | | | (_____ )\r\n" +
"| | | | | | | | ) ( | | ) | ) |\r\n" +
"| (____/\\| (____/\\| (___) | | | | (__/ ) /\\____) |\r\n" +
"(_______/(_______/(_______) \\_/ (______/ \\_______)\r\n" +
" ";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"lloyd", "bartender", "barkeep", "Lloyd", "LLOYD", NAME}
));
private final static String colorName = BOLD_ON + Color.CYAN + NAME + Color.RESET ;
public LloydBartender(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage);
}
}
*/
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class LockerRoomGuy extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "a bank of lockers";
private final static String welcomeMessage = "Locker opened.";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"lockers", "locker", "l", NAME}
));
private final static String colorName = BOLD_ON + Color.RED + NAME + Color.RESET;
public LockerRoomGuy(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage, MerchantType.LOCKER);
}
@Override
public String getMenu() {
return null;
}
}
*/
...@@ -19,13 +19,13 @@ public class Merchant { ...@@ -19,13 +19,13 @@ public class Merchant {
private final List<MerchantItemForSale> merchantItemForSales; private final List<MerchantItemForSale> merchantItemForSales;
private final String welcomeMessage; private final String welcomeMessage;
private final MerchantType merchantType; private final MerchantType merchantType;
private final Integer roomId; private final Set<Integer> roomIds;
public Merchant(GameManager gameManager, String internalName, String name, String colorName, Set<String> validTriggers, List<MerchantItemForSale> merchantItemForSales, String welcomeMessage, Integer roomId) { public Merchant(GameManager gameManager, String internalName, String name, String colorName, Set<String> validTriggers, List<MerchantItemForSale> merchantItemForSales, String welcomeMessage, Set<Integer> roomIds) {
this(gameManager, internalName, name, colorName, validTriggers, merchantItemForSales, welcomeMessage, roomId, MerchantType.BASIC); this(gameManager, internalName, name, colorName, validTriggers, merchantItemForSales, welcomeMessage, roomIds, MerchantType.BASIC);
} }
public Merchant(GameManager gameManager, String internalName, String name, String colorName, Set<String> validTriggers, List<MerchantItemForSale> merchantItemForSales, String welcomeMessage, Integer roomId, MerchantType merchantType) { public Merchant(GameManager gameManager, String internalName, String name, String colorName, Set<String> validTriggers, List<MerchantItemForSale> merchantItemForSales, String welcomeMessage, Set<Integer> roomIds, MerchantType merchantType) {
this.gameManager = gameManager; this.gameManager = gameManager;
this.name = name; this.name = name;
this.colorName = colorName; this.colorName = colorName;
...@@ -33,7 +33,7 @@ public class Merchant { ...@@ -33,7 +33,7 @@ public class Merchant {
this.merchantItemForSales = merchantItemForSales; this.merchantItemForSales = merchantItemForSales;
this.welcomeMessage = welcomeMessage; this.welcomeMessage = welcomeMessage;
this.merchantType = merchantType; this.merchantType = merchantType;
this.roomId = roomId; this.roomIds = roomIds;
this.internalName = internalName; this.internalName = internalName;
} }
...@@ -72,8 +72,8 @@ public class Merchant { ...@@ -72,8 +72,8 @@ public class Merchant {
return gameManager; return gameManager;
} }
public Integer getRoomId() { public Set<Integer> getRoomIds() {
return roomId; return roomIds;
} }
public String getName() { public String getName() {
......
...@@ -6,13 +6,26 @@ import java.util.Set; ...@@ -6,13 +6,26 @@ import java.util.Set;
public class MerchantMetadata { public class MerchantMetadata {
private String internalName; private String internalName;
private Integer roomId; private Set<Integer> roomIds;
private String name; private String name;
private String colorName; private String colorName;
private Set<String> validTriggers; private Set<String> validTriggers;
private List<MerchantItemForSale> merchantItemForSales; private List<MerchantItemForSale> merchantItemForSales;
private String welcomeMessage; private String welcomeMessage;
private Merchant.MerchantType merchantType;
public void setMerchantType(Merchant.MerchantType merchantType) {
this.merchantType = merchantType;
}
public Set<Integer> getRoomIds() {
return roomIds;
}
public Merchant.MerchantType getMerchantType() {
return merchantType;
}
public String getInternalName() { public String getInternalName() {
return internalName; return internalName;
...@@ -50,12 +63,12 @@ public class MerchantMetadata { ...@@ -50,12 +63,12 @@ public class MerchantMetadata {
this.internalName = internalName; this.internalName = internalName;
} }
public Integer getRoomId() { public Set<Integer> getRoomId() {
return roomId; return roomIds;
} }
public void setRoomId(Integer roomId) { public void setRoomIds(Set<Integer> roomIds) {
this.roomId = roomId; this.roomIds = roomIds;
} }
public void setMerchantItemForSales(List<MerchantItemForSale> merchantItemForSales) { public void setMerchantItemForSales(List<MerchantItemForSale> merchantItemForSales) {
......
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class NigelBartender extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "nigel the bartender";
private final static String welcomeMessage = "\r\n N I G E L 'S B A R \r\n";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"nigel", "bartender", "barkeep", "Nigel", "NIGEL", NAME}
));
private final static String colorName = BOLD_ON + Color.CYAN + NAME + Color.RESET ;
public NigelBartender(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage);
}
}
*/
package com.comandante.creeper.merchant;
public class OldWiseMan {
/* private final static long phraseIntervalMs = 300000;
private final static String NAME = "old wise man";
private final static String colorName = BOLD_ON + Color.CYAN + NAME + Color.RESET;
private final static String welcomeMessage = "The "+ colorName +" can assist you in choosing a character class.\r\n";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"wise", "man", "old", "old wise man", "m", "w", NAME}
));
public OldWiseMan(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage, MerchantType.PLAYERCLASS_SELECTOR);
}
@Override
public String getMenu() {
return null;
}*/
}
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class WentworthTailor extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "wentworth";
private final static String welcomeMessage = "Welcome to WENTWORTH's TAILOR SHOP.\r\n";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"wentworth", "w", "tailor", "t", NAME}
));
private final static String colorName = BOLD_ON + Color.CYAN + NAME + Color.RESET ;
public WentworthTailor(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage);
}
}
*/
/*
package com.comandante.creeper.merchant;
import com.comandante.creeper.core_game.GameManager;
import com.comandante.creeper.server.player_communication.Color;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.comandante.creeper.server.player_communication.Color.BOLD_ON;
public class Wizard extends Merchant {
private final static long phraseIntervalMs = 300000;
private final static String NAME = "willy the wizard";
private final static String welcomeMessage = " ____ \n" +
" 6MMMMb\\ \n" +
"6M' ` / \n" +
"MM /M _____ _____ __ ____ \n" +
"YM. /MMMMM 6MMMMMb 6MMMMMb `M6MMMMb \n" +
" YMMMMb MM 6M' `Mb 6M' `Mb MM' `Mb\n" +
" `Mb MM MM MM MM MM MM MM\n" +
" MM MM MM MM MM MM MM MM\n" +
" MM MM MM MM MM MM MM MM\n" +
"L ,M9 YM. , YM. ,M9 YM. ,M9 MM. ,M9\n" +
"MYMMMM9 YMMM9 YMMMMM9 YMMMMM9 MMYMMM9 \n" +
" MM \n" +
" MM \n" +
" _MM_ \n" +
"\n";
private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"wizard", "willy the wizard", "willy", NAME}
));
private final static String colorName = BOLD_ON + Color.BLUE + NAME + Color.RESET ;
public Wizard(GameManager gameManager, List<MerchantItemForSale> merchantItemForSales) {
super(gameManager, NAME, colorName, validTriggers, merchantItemForSales, welcomeMessage);
}
}
*/
...@@ -32,6 +32,19 @@ public class MerchantStorage { ...@@ -32,6 +32,19 @@ public class MerchantStorage {
} }
public Merchant create(MerchantMetadata merchantMetadata) { public Merchant create(MerchantMetadata merchantMetadata) {
if (merchantMetadata.getMerchantType() != null) {
return new Merchant(gameManager,
merchantMetadata.getInternalName(),
merchantMetadata.getName(),
merchantMetadata.getColorName(),
merchantMetadata.getValidTriggers(),
merchantMetadata.getMerchantItemForSales(),
merchantMetadata.getWelcomeMessage(),
merchantMetadata.getRoomId(),
merchantMetadata.getMerchantType());
}
return new Merchant(gameManager, return new Merchant(gameManager,
merchantMetadata.getInternalName(), merchantMetadata.getInternalName(),
merchantMetadata.getName(), merchantMetadata.getName(),
...@@ -42,11 +55,6 @@ public class MerchantStorage { ...@@ -42,11 +55,6 @@ public class MerchantStorage {
merchantMetadata.getRoomId()); merchantMetadata.getRoomId());
} }
public List<MerchantMetadata> getAllMerchantMetadatas() {
return merchantMetadatas;
}
public void saveMerchantMetadata(MerchantMetadata merchantMetadata) throws IOException { public void saveMerchantMetadata(MerchantMetadata merchantMetadata) throws IOException {
filebasedJsonStorage.saveMetadata(merchantMetadata.getInternalName(), LOCAL_MERCHANT_DIRECTORY, merchantMetadata); filebasedJsonStorage.saveMetadata(merchantMetadata.getInternalName(), LOCAL_MERCHANT_DIRECTORY, merchantMetadata);
} }
......
...@@ -44,7 +44,9 @@ public class RoomManager { ...@@ -44,7 +44,9 @@ public class RoomManager {
} }
public void addMerchant(Merchant merchant) { public void addMerchant(Merchant merchant) {
getRoom(merchant.getRoomId()).addMerchant(merchant); for (Integer roomId: merchant.getRoomIds()) {
getRoom(roomId).addMerchant(merchant);
};
} }
public Room getRoom(Integer roomId) { public Room getRoom(Integer roomId) {
......
package com.comandante.creeper.items; package com.comandante.creeper.items;
import com.comandante.creeper.merchant.Merchant;
import com.comandante.creeper.merchant.MerchantItemForSale; import com.comandante.creeper.merchant.MerchantItemForSale;
import com.comandante.creeper.merchant.MerchantMetadata; import com.comandante.creeper.merchant.MerchantMetadata;
import com.comandante.creeper.server.player_communication.Color; import com.comandante.creeper.server.player_communication.Color;
import com.comandante.creeper.spawner.SpawnRule;
import com.comandante.creeper.spawner.SpawnRuleBuilder;
import com.comandante.creeper.stats.Stats;
import com.comandante.creeper.stats.StatsBuilder;
import com.comandante.creeper.storage.FilebasedJsonStorage; import com.comandante.creeper.storage.FilebasedJsonStorage;
import com.comandante.creeper.storage.ItemStorage; import com.comandante.creeper.storage.ItemStorage;
import com.comandante.creeper.storage.MerchantStorage; import com.comandante.creeper.storage.MerchantStorage;
import com.comandante.creeper.world.model.Area;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import org.junit.Test; import org.junit.Test;
...@@ -88,144 +95,184 @@ public class ItemMetadataTest { ...@@ -88,144 +95,184 @@ public class ItemMetadataTest {
FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create()); FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create());
ItemStorage itemStorage = new ItemStorage(filebasedJsonStorage); ItemStorage itemStorage = new ItemStorage(filebasedJsonStorage);
//
// BERSERKER BOOTS //BERSERKER BOOTS
// ItemMetadata itemMetadata = metadataFrom(ItemType.BERSEKER_BOOTS); {
// Stats stats = new StatsBuilder().setArmorRating(3).createStats(); ItemMetadata itemMetadata = metadataFrom(ItemType.BERSEKER_BOOTS);
// final Equipment equipment = new Equipment(EquipmentSlotType.FEET, stats); Stats stats = new StatsBuilder().setArmorRating(3).createStats();
// itemMetadata.setEquipment(equipment); final Equipment equipment = new Equipment(EquipmentSlotType.FEET, stats);
// itemMetadata.setInternalItemName("beserker boots"); itemMetadata.setEquipment(equipment);
// itemStorage.saveItemMetadata(itemMetadata); itemMetadata.setInternalItemName("beserker boots");
// itemStorage.saveItemMetadata(itemMetadata);
// BERSERKER HELM }
// ItemMetadata itemMetadataHelm = metadataFrom(ItemType.BERSEKER_HELM);
// Stats statsHelm = new StatsBuilder().setArmorRating(3).createStats(); // BERSERKER HELM
// final Equipment equipmentHeml = new Equipment(EquipmentSlotType.HEAD, statsHelm); {
// itemMetadataHelm.setEquipment(equipmentHeml); ItemMetadata itemMetadataHelm = metadataFrom(ItemType.BERSEKER_HELM);
// itemMetadataHelm.setInternalItemName("beserker helm"); Stats statsHelm = new StatsBuilder().setArmorRating(3).createStats();
// itemStorage.saveItemMetadata(itemMetadataHelm); final Equipment equipmentHeml = new Equipment(EquipmentSlotType.HEAD, statsHelm);
// itemMetadataHelm.setEquipment(equipmentHeml);
// itemMetadataHelm.setInternalItemName("beserker helm");
// BERSERKER SHORTS itemStorage.saveItemMetadata(itemMetadataHelm);
// ItemMetadata itemMetadataShorts = metadataFrom(ItemType.BERSEKER_SHORTS); }
// Stats statsShorts = new StatsBuilder().setArmorRating(4).createStats();
// final Equipment equipmentShorts = new Equipment(EquipmentSlotType.LEGS, statsShorts);
// itemMetadataShorts.setEquipment(equipmentShorts); //BERSERKER SHORTS
// itemMetadataShorts.setInternalItemName("beserker shorts"); {
// itemStorage.saveItemMetadata(itemMetadataShorts); ItemMetadata itemMetadataShorts = metadataFrom(ItemType.BERSEKER_SHORTS);
// Stats statsShorts = new StatsBuilder().setArmorRating(4).createStats();
// final Equipment equipmentShorts = new Equipment(EquipmentSlotType.LEGS, statsShorts);
// BERSERKER BATON itemMetadataShorts.setEquipment(equipmentShorts);
// ItemMetadata itemMetadataBaton = metadataFrom(ItemType.BERSERKER_BATON); itemMetadataShorts.setInternalItemName("beserker shorts");
// Stats statsBaton = new StatsBuilder().setWeaponRatingMin(4).setWeaponRatingMax(6).createStats(); itemStorage.saveItemMetadata(itemMetadataShorts);
// final Equipment equipmentBaton = new Equipment(EquipmentSlotType.HAND, statsBaton); }
// itemMetadataBaton.setEquipment(equipmentBaton);
// itemMetadataBaton.setInternalItemName("beserker baton");
// itemStorage.saveItemMetadata(itemMetadataBaton); // BERSERKER BATON
// {
// BERSERKER BATON ItemMetadata itemMetadataBaton = metadataFrom(ItemType.BERSERKER_BATON);
// ItemMetadata itemMetadataBracers = metadataFrom(ItemType.BERSERKER_BRACERS); Stats statsBaton = new StatsBuilder().setWeaponRatingMin(4).setWeaponRatingMax(6).createStats();
// Stats statsBracers = new StatsBuilder().setArmorRating(4).createStats(); final Equipment equipmentBaton = new Equipment(EquipmentSlotType.HAND, statsBaton);
// final Equipment equipmentBracers = new Equipment(EquipmentSlotType.WRISTS, statsBracers); itemMetadataBaton.setEquipment(equipmentBaton);
// itemMetadataBracers.setEquipment(equipmentBracers); itemMetadataBaton.setInternalItemName("beserker baton");
// itemMetadataBracers.setInternalItemName("beserker bracers"); itemStorage.saveItemMetadata(itemMetadataBaton);
// itemStorage.saveItemMetadata(itemMetadataBracers); }
//
// // BERSERKER BATON
// BERSERKER BATON {
// ItemMetadata itemMetadataChest = metadataFrom(ItemType.BERSERKER_CHEST); ItemMetadata itemMetadataBracers = metadataFrom(ItemType.BERSERKER_BRACERS);
// Stats statsChest = new StatsBuilder().setArmorRating(6).createStats(); Stats statsBracers = new StatsBuilder().setArmorRating(4).createStats();
// final Equipment equipmentChest = new Equipment(EquipmentSlotType.CHEST, statsChest); final Equipment equipmentBracers = new Equipment(EquipmentSlotType.WRISTS, statsBracers);
// itemMetadataChest.setEquipment(equipmentChest); itemMetadataBracers.setEquipment(equipmentBracers);
// itemMetadataChest.setInternalItemName("beserker chest"); itemMetadataBracers.setInternalItemName("beserker bracers");
// itemStorage.saveItemMetadata(itemMetadataChest); itemStorage.saveItemMetadata(itemMetadataBracers);
// }
// BIGGERS SKIN SATCHEL
// ItemMetadata itemMetadataBiggersSkinSatchel = metadataFrom(ItemType.BIGGERS_SKIN_SATCHEL);
// Stats statsBiggersSkinSatchel = new StatsBuilder().setInventorySize(100).createStats(); // BERSERKER BATON
// final Equipment equipmentBiggersSkinSatchel= new Equipment(EquipmentSlotType.BAG, statsBiggersSkinSatchel); {
// itemMetadataBiggersSkinSatchel.setEquipment(equipmentBiggersSkinSatchel); ItemMetadata itemMetadataChest = metadataFrom(ItemType.BERSERKER_CHEST);
// itemMetadataBiggersSkinSatchel.setInternalItemName("biggers skin satchel"); Stats statsChest = new StatsBuilder().setArmorRating(6).createStats();
// itemStorage.saveItemMetadata(itemMetadataBiggersSkinSatchel); final Equipment equipmentChest = new Equipment(EquipmentSlotType.CHEST, statsChest);
// itemMetadataChest.setEquipment(equipmentChest);
// itemMetadataChest.setInternalItemName("beserker chest");
// Key itemStorage.saveItemMetadata(itemMetadataChest);
// ItemMetadata itemMetadataKey = metadataFrom(ItemType.KEY); }
// itemMetadataKey.setInternalItemName("basic key");
// SpawnRule spawnRule = new SpawnRuleBuilder().setArea(Area.LOBBY).setSpawnIntervalTicks(600).setMaxInstances(1).setMaxPerRoom(1).setRandomPercent(5).createSpawnRule(); // BIGGERS SKIN SATCHEL
// itemMetadataKey.setSpawnRules(Sets.newHashSet(spawnRule)); {
// itemStorage.saveItemMetadata(itemMetadataKey); ItemMetadata itemMetadataBiggersSkinSatchel = metadataFrom(ItemType.BIGGERS_SKIN_SATCHEL);
// Stats statsBiggersSkinSatchel = new StatsBuilder().setInventorySize(100).createStats();
// final Equipment equipmentBiggersSkinSatchel = new Equipment(EquipmentSlotType.BAG, statsBiggersSkinSatchel);
// Marijuana itemMetadataBiggersSkinSatchel.setEquipment(equipmentBiggersSkinSatchel);
// ItemMetadata itemMetadataMarijuana = metadataFrom(ItemType.MARIJUANA); itemMetadataBiggersSkinSatchel.setInternalItemName("biggers skin satchel");
// itemMetadataMarijuana.setInternalItemName("marijuana"); itemStorage.saveItemMetadata(itemMetadataBiggersSkinSatchel);
// ForageBuilder marijuanaForageBuilder = new ForageBuilder(); }
// marijuanaForageBuilder.setMinAmt(1);
// marijuanaForageBuilder.setMaxAmt(3); //Key
// marijuanaForageBuilder.setPctOfSuccess(40); {
// marijuanaForageBuilder.setForageExperience(4); ItemMetadata itemMetadataKey = metadataFrom(ItemType.KEY);
// marijuanaForageBuilder.setCoolDownTicks(600); itemMetadataKey.setInternalItemName("basic key");
// marijuanaForageBuilder.setAreas(Sets.newHashSet(Area.WESTERN9_ZONE, Area.NORTH3_ZONE, Area.BLOODRIDGE2_ZONE, Area.BLOODRIDGE1_ZONE)); SpawnRule spawnRule = new SpawnRuleBuilder().setArea(Area.LOBBY).setSpawnIntervalTicks(600).setMaxInstances(1).setMaxPerRoom(1).setRandomPercent(5).createSpawnRule();
// itemMetadataMarijuana.setForages(Sets.newHashSet(marijuanaForageBuilder.createForage())); itemMetadataKey.setSpawnRules(Sets.newHashSet(spawnRule));
// itemStorage.saveItemMetadata(itemMetadataMarijuana); itemStorage.saveItemMetadata(itemMetadataKey);
// }
// Drank
// ItemMetadata itemMetadataDrank = metadataFrom(ItemType.PURPLE_DRANK);
// itemMetadataDrank.setInternalItemName("purple drank"); // Marijuana
// Stats statsDrank = new StatsBuilder().setCurrentHealth(50).createStats(); {
// itemMetadataDrank.setItemApplyStats(statsDrank); ItemMetadata itemMetadataMarijuana = metadataFrom(ItemType.MARIJUANA);
// itemStorage.saveItemMetadata(itemMetadataDrank); itemMetadataMarijuana.setInternalItemName("marijuana");
// ForageBuilder marijuanaForageBuilder = new ForageBuilder();
// Smell Health Potion marijuanaForageBuilder.setMinAmt(1);
// Set<SpawnRule> spawnRulesHealthPotion = Sets.newHashSet( marijuanaForageBuilder.setMaxAmt(3);
// new SpawnRuleBuilder().setArea(Area.NEWBIE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(100).setMaxPerRoom(5).setRandomPercent(40).createSpawnRule(), marijuanaForageBuilder.setPctOfSuccess(40);
// new SpawnRuleBuilder().setArea(Area.FANCYHOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(12).setMaxPerRoom(2).setRandomPercent(50).createSpawnRule(), marijuanaForageBuilder.setForageExperience(4);
// new SpawnRuleBuilder().setArea(Area.HOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(12).setMaxPerRoom(2).setRandomPercent(50).createSpawnRule() marijuanaForageBuilder.setCoolDownTicks(600);
// ); marijuanaForageBuilder.setAreas(Sets.newHashSet(Area.WESTERN9_ZONE, Area.NORTH3_ZONE, Area.BLOODRIDGE2_ZONE, Area.BLOODRIDGE1_ZONE));
// ItemMetadata itemMetadataHealthPotion = metadataFrom(ItemType.SMALL_HEALTH_POTION); itemMetadataMarijuana.setForages(Sets.newHashSet(marijuanaForageBuilder.createForage()));
// itemMetadataHealthPotion.setInternalItemName("small health potion"); itemStorage.saveItemMetadata(itemMetadataMarijuana);
// Stats statsHealthPotion = new StatsBuilder().setCurrentHealth(20).createStats(); }
// itemMetadataHealthPotion.setSpawnRules(spawnRulesHealthPotion);
// itemMetadataHealthPotion.setItemApplyStats(statsHealthPotion); // Drank
// itemStorage.saveItemMetadata(itemMetadataHealthPotion); {
// ItemMetadata itemMetadataDrank = metadataFrom(ItemType.PURPLE_DRANK);
// itemMetadataDrank.setInternalItemName("purple drank");
// BIGGERS SKIN SATCHEL Stats statsDrank = new StatsBuilder().setCurrentHealth(50).createStats();
// ItemMetadata itemMetadataSpellbook = metadataFrom(ItemType.LIGHTNING_SPELLBOOKNG); itemMetadataDrank.setItemApplyStats(statsDrank);
// itemMetadataSpellbook.setInternalItemName("lightning spellbook"); itemStorage.saveItemMetadata(itemMetadataDrank);
// itemStorage.saveItemMetadata(itemMetadataSpellbook); }
//
// Stick OF Justice // Smell Health Potion
// ItemMetadata itemMetadataStickOfJustice = metadataFrom(ItemType.STICK_OF_JUSTICE); {
// itemMetadataStickOfJustice.setInternalItemName("stick of justice"); Set<SpawnRule> spawnRulesHealthPotion = Sets.newHashSet(
// itemStorage.saveItemMetadata(itemMetadataStickOfJustice); new SpawnRuleBuilder().setArea(Area.NEWBIE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(100).setMaxPerRoom(5).setRandomPercent(40).createSpawnRule(),
// new SpawnRuleBuilder().setArea(Area.FANCYHOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(12).setMaxPerRoom(2).setRandomPercent(50).createSpawnRule(),
// RED CLAW BEANIE new SpawnRuleBuilder().setArea(Area.HOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(12).setMaxPerRoom(2).setRandomPercent(50).createSpawnRule()
// ItemMetadata itemMetadataBeanie = metadataFrom(ItemType.RED_CLAW_BEANIE); );
// Stats statsBeanie = new StatsBuilder().setArmorRating(8).setStrength(4).setMaxHealth(50).createStats(); ItemMetadata itemMetadataHealthPotion = metadataFrom(ItemType.SMALL_HEALTH_POTION);
// final Equipment equipmentBeanie = new Equipment(EquipmentSlotType.HEAD, statsBeanie); itemMetadataHealthPotion.setInternalItemName("small health potion");
// itemMetadataBeanie.setEquipment(equipmentBeanie); Stats statsHealthPotion = new StatsBuilder().setCurrentHealth(20).createStats();
// itemMetadataBeanie.setInternalItemName("red claw beanie"); itemMetadataHealthPotion.setSpawnRules(spawnRulesHealthPotion);
// itemStorage.saveItemMetadata(itemMetadataBeanie); itemMetadataHealthPotion.setItemApplyStats(statsHealthPotion);
// itemStorage.saveItemMetadata(itemMetadataHealthPotion);
// }
// RED CLAW Hoodie
// ItemMetadata itemMetadataHoodie = metadataFrom(ItemType.RED_CLAW_HOODIE); {
// Stats statsHoodie = new StatsBuilder().setArmorRating(15).setStrength(7).createStats();
// final Equipment equipmentHoodie = new Equipment(EquipmentSlotType.CHEST, statsHoodie); // BIGGERS SKIN SATCHEL
// itemMetadataHoodie.setEquipment(equipmentHoodie); ItemMetadata itemMetadataSpellbook = metadataFrom(ItemType.LIGHTNING_SPELLBOOKNG);
// itemMetadataHoodie.setInternalItemName("rad claw hoodie"); itemMetadataSpellbook.setInternalItemName("lightning spellbook");
// itemStorage.saveItemMetadata(itemMetadataHoodie); itemStorage.saveItemMetadata(itemMetadataSpellbook);
// }
//
// RED CLAW PANTS {
// ItemMetadata itemMetadataPants = metadataFrom(ItemType.RED_CLAW_PANTS); // Stick OF Justice
// Stats statsPants = new StatsBuilder().setArmorRating(15).setStrength(7).createStats(); ItemMetadata itemMetadataStickOfJustice = metadataFrom(ItemType.STICK_OF_JUSTICE);
// final Equipment equipmentPants = new Equipment(EquipmentSlotType.LEGS, statsPants); itemMetadataStickOfJustice.setInternalItemName("stick of justice");
// itemMetadataPants.setEquipment(equipmentPants); itemStorage.saveItemMetadata(itemMetadataStickOfJustice);
// itemMetadataPants.setInternalItemName("rad claw pants1"); }
// itemStorage.saveItemMetadata(itemMetadataPants);
{
// RED CLAW BEANIE
ItemMetadata itemMetadataBeanie = metadataFrom(ItemType.RED_CLAW_BEANIE);
Stats statsBeanie = new StatsBuilder().setArmorRating(8).setStrength(4).setMaxHealth(50).createStats();
final Equipment equipmentBeanie = new Equipment(EquipmentSlotType.HEAD, statsBeanie);
itemMetadataBeanie.setEquipment(equipmentBeanie);
itemMetadataBeanie.setInternalItemName("red claw beanie");
itemStorage.saveItemMetadata(itemMetadataBeanie);
}
{
// RED CLAW Hoodie
ItemMetadata itemMetadataHoodie = metadataFrom(ItemType.RED_CLAW_HOODIE);
Stats statsHoodie = new StatsBuilder().setArmorRating(15).setStrength(7).createStats();
final Equipment equipmentHoodie = new Equipment(EquipmentSlotType.CHEST, statsHoodie);
itemMetadataHoodie.setEquipment(equipmentHoodie);
itemMetadataHoodie.setInternalItemName("rad claw hoodie");
itemStorage.saveItemMetadata(itemMetadataHoodie);
}
{
// RED CLAW PANTS
ItemMetadata itemMetadataPants = metadataFrom(ItemType.RED_CLAW_PANTS);
Stats statsPants = new StatsBuilder().setArmorRating(15).setStrength(7).createStats();
final Equipment equipmentPants = new Equipment(EquipmentSlotType.LEGS, statsPants);
itemMetadataPants.setEquipment(equipmentPants);
itemMetadataPants.setInternalItemName("rad claw pants");
itemStorage.saveItemMetadata(itemMetadataPants);
//Lether Satchel
}
{
ItemMetadata itemMetadataPants = metadataFrom(ItemType.LEATHER_SATCHEL);
Stats stats = new StatsBuilder().setInventorySize(15).createStats();
final Equipment equipment = new Equipment(EquipmentSlotType.BAG, stats);
itemMetadataPants.setEquipment(equipment);
itemMetadataPants.setInternalItemName("leather satchel");
itemStorage.saveItemMetadata(itemMetadataPants);
}
} }
...@@ -267,9 +314,9 @@ public class ItemMetadataTest { ...@@ -267,9 +314,9 @@ public class ItemMetadataTest {
String name = "lloyd the bartender"; String name = "lloyd the bartender";
String colorName = BOLD_ON + Color.CYAN + name + Color.RESET; String colorName = BOLD_ON + Color.CYAN + name + Color.RESET;
Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[] Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"lloyd", "bartender", "barkeep", "Lloyd", "LLOYD", name})); {"lloyd", "bartender", "barkeep", "Lloyd", "LLOYD", name}));
List<MerchantItemForSale> itemsForSale = Lists.newArrayList(); List<MerchantItemForSale> itemsForSale = Lists.newArrayList();
itemsForSale.add(new MerchantItemForSale("small health potion", 8)); itemsForSale.add(new MerchantItemForSale("small health potion", 8));
...@@ -280,10 +327,170 @@ public class ItemMetadataTest { ...@@ -280,10 +327,170 @@ public class ItemMetadataTest {
merchantMetadata.setInternalName(name); merchantMetadata.setInternalName(name);
merchantMetadata.setColorName(colorName); merchantMetadata.setColorName(colorName);
merchantMetadata.setMerchantItemForSales(itemsForSale); merchantMetadata.setMerchantItemForSales(itemsForSale);
merchantMetadata.setRoomId(64); merchantMetadata.setRoomIds(Sets.newHashSet(64));
merchantMetadata.setValidTriggers(validTriggers);
merchantMetadata.setWelcomeMessage(welcomeMessage);
FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create());
MerchantStorage merchantStorage = new MerchantStorage(null, filebasedJsonStorage);
merchantStorage.saveMerchantMetadata(merchantMetadata);
}
// BIGGER BLACKSMITH
{
final String welcomeMessage = " ____ _ \n" +
"\" +\n" +
" \" | __ )(_) __ _ __ _ ___ _ __ ___ \\r\\n\" +\n" +
" \" | _ \\\\| |/ _` |/ _` |/ _ \\\\ '__/ __| \\r\\n\" +\n" +
" \" | |_) | | (_| | (_| | __/ | \\\\__ \\\\ \\r\\n\" +\n" +
" \" |____/|_|\\\\__, |\\\\__, |\\\\___|_| |___/ \\r\\n\" +\n" +
" \" ____ |___/ |___/ _ _ _ _ \\r\\n\" +\n" +
" \" | __ )| | __ _ ___| | _____ _ __ ___ (_) |_| |__ \\r\\n\" +\n" +
" \" | _ \\\\| |/ _` |/ __| |/ / __| '_ ` _ \\\\| | __| '_ \\\\ \\r\\n\" +\n" +
" \" | |_) | | (_| | (__| <\\\\__ \\\\ | | | | | | |_| | | |\\r\\n\" +\n" +
" \" |____/|_|\\__,_|\\___|_|\\_\\___/_| |_| |_|_|\\__|_| |_|\n";
String name = "biggers the blacksmith";
String colorName = BOLD_ON + Color.CYAN + name + Color.RESET;
Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"blacksmith", "biggers the blacksmith", "biggers", name}));
List<MerchantItemForSale> blacksmithItems = Lists.newArrayList();
blacksmithItems.add(new MerchantItemForSale("berserker baton", 10000));
blacksmithItems.add(new MerchantItemForSale("berserker boots", 3500));
blacksmithItems.add(new MerchantItemForSale("berserker bracers", 3500));
blacksmithItems.add(new MerchantItemForSale("berserker helm", 3500));
blacksmithItems.add(new MerchantItemForSale("berserker chest", 7000));
blacksmithItems.add(new MerchantItemForSale("berserker shorts", 8500));
blacksmithItems.add(new MerchantItemForSale("leather satchel", 600));
MerchantMetadata merchantMetadata = new MerchantMetadata();
merchantMetadata.setName(name);
merchantMetadata.setInternalName(name);
merchantMetadata.setColorName(colorName);
merchantMetadata.setMerchantItemForSales(blacksmithItems);
merchantMetadata.setRoomIds(Sets.newHashSet(66, 253));
merchantMetadata.setValidTriggers(validTriggers);
merchantMetadata.setWelcomeMessage(welcomeMessage);
FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create());
MerchantStorage merchantStorage = new MerchantStorage(null, filebasedJsonStorage);
merchantStorage.saveMerchantMetadata(merchantMetadata);
}
{
String name = "nigel the bartender";
String colorName = BOLD_ON + Color.CYAN + name + Color.RESET;
Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"nigel", "bartender", "barkeep", "Nigel", "NIGEL", name}));
List<MerchantItemForSale> blacksmithItems = Lists.newArrayList();
blacksmithItems.add(new MerchantItemForSale("small health potion", 6));
MerchantMetadata merchantMetadata = new MerchantMetadata();
merchantMetadata.setName(name);
merchantMetadata.setInternalName(name);
merchantMetadata.setColorName(colorName);
merchantMetadata.setMerchantItemForSales(blacksmithItems);
merchantMetadata.setRoomIds(Sets.newHashSet(377));
merchantMetadata.setValidTriggers(validTriggers);
merchantMetadata.setWelcomeMessage("\r\n N I G E L 'S B A R \r\n");
FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create());
MerchantStorage merchantStorage = new MerchantStorage(null, filebasedJsonStorage);
merchantStorage.saveMerchantMetadata(merchantMetadata);
}
{
String name = "willy the wizard";
String colorName = BOLD_ON + Color.CYAN + name + Color.RESET;
Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"wizard", "willy the wizard", "willy", name}));
List<MerchantItemForSale> items = Lists.newArrayList();
items.add(new MerchantItemForSale("lightning spellbook", 50000));
MerchantMetadata merchantMetadata = new MerchantMetadata();
merchantMetadata.setName(name);
merchantMetadata.setInternalName(name);
merchantMetadata.setColorName(colorName);
merchantMetadata.setMerchantItemForSales(items);
merchantMetadata.setRoomIds(Sets.newHashSet(98));
merchantMetadata.setValidTriggers(validTriggers);
String welcomeMessage = " ____ \n" +
" 6MMMMb\\ \n" +
"6M' ` / \n" +
"MM /M _____ _____ __ ____ \n" +
"YM. /MMMMM 6MMMMMb 6MMMMMb `M6MMMMb \n" +
" YMMMMb MM 6M' `Mb 6M' `Mb MM' `Mb\n" +
" `Mb MM MM MM MM MM MM MM\n" +
" MM MM MM MM MM MM MM MM\n" +
" MM MM MM MM MM MM MM MM\n" +
"L ,M9 YM. , YM. ,M9 YM. ,M9 MM. ,M9\n" +
"MYMMMM9 YMMM9 YMMMMM9 YMMMMM9 MMYMMM9 \n" +
" MM \n" +
" MM \n" +
" _MM_ \n" +
"\n";
merchantMetadata.setWelcomeMessage(welcomeMessage);
FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create());
MerchantStorage merchantStorage = new MerchantStorage(null, filebasedJsonStorage);
merchantStorage.saveMerchantMetadata(merchantMetadata);
}
{
String welcomeMessage = "Welcome to the First National Bank of Creeper.";
final String name = "jim the banker";
final String colorName = BOLD_ON + Color.CYAN + name + Color.RESET;
Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"bank", "banker", "jim the banker", "jim", "j", name}));
MerchantMetadata merchantMetadata = new MerchantMetadata();
merchantMetadata.setWelcomeMessage(welcomeMessage);
merchantMetadata.setName(name);
merchantMetadata.setInternalName(name);
merchantMetadata.setColorName(colorName);
merchantMetadata.setValidTriggers(validTriggers); merchantMetadata.setValidTriggers(validTriggers);
merchantMetadata.setMerchantType(Merchant.MerchantType.BANK);
merchantMetadata.setRoomIds(Sets.newHashSet(65, 209));
FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create());
MerchantStorage merchantStorage = new MerchantStorage(null, filebasedJsonStorage);
merchantStorage.saveMerchantMetadata(merchantMetadata);
}
{
final String name = "old wise man";
final String colorName = BOLD_ON + Color.CYAN + name + Color.RESET;
String welcomeMessage = "The " + colorName + " can assist you in choosing a character class.\r\n";
Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"wise", "man", "old", "old wise man", "m", "w", name}));
MerchantMetadata merchantMetadata = new MerchantMetadata();
merchantMetadata.setWelcomeMessage(welcomeMessage); merchantMetadata.setWelcomeMessage(welcomeMessage);
merchantMetadata.setName(name);
merchantMetadata.setInternalName(name);
merchantMetadata.setColorName(colorName);
merchantMetadata.setValidTriggers(validTriggers);
merchantMetadata.setMerchantType(Merchant.MerchantType.PLAYERCLASS_SELECTOR);
merchantMetadata.setRoomIds(Sets.newHashSet(2));
FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create());
MerchantStorage merchantStorage = new MerchantStorage(null, filebasedJsonStorage);
merchantStorage.saveMerchantMetadata(merchantMetadata);
}
{
final String name = "a bank of lockers";
final String colorName = BOLD_ON + Color.CYAN + name + Color.RESET;
String welcomeMessage = "Locker opened.";
Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[]
{"lockers", "locker", "l", name}));
MerchantMetadata merchantMetadata = new MerchantMetadata();
merchantMetadata.setWelcomeMessage(welcomeMessage);
merchantMetadata.setName(name);
merchantMetadata.setInternalName(name);
merchantMetadata.setColorName(colorName);
merchantMetadata.setValidTriggers(validTriggers);
merchantMetadata.setMerchantType(Merchant.MerchantType.LOCKER);
merchantMetadata.setRoomIds(Sets.newHashSet(63));
FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create()); FilebasedJsonStorage filebasedJsonStorage = new FilebasedJsonStorage(new GsonBuilder().setPrettyPrinting().create());
MerchantStorage merchantStorage = new MerchantStorage(null, filebasedJsonStorage); MerchantStorage merchantStorage = new MerchantStorage(null, filebasedJsonStorage);
merchantStorage.saveMerchantMetadata(merchantMetadata); merchantStorage.saveMerchantMetadata(merchantMetadata);
......
{
"internalItemName": "leather satchel",
"itemName": "a \u001b[32mleather satchel\u001b[m",
"itemDescription": "a \u001b[32mleather satchel\u001b[m (15 items)",
"restingName": "a \u001b[32mleather satchel\u001b[m",
"valueInGold": 800,
"itemHalfLifeTicks": 60,
"rarity": "BASIC",
"equipment": {
"equipmentSlotType": "BAG",
"statsIncreaseWhileEquipped": {
"strength": 0,
"intelligence": 0,
"willpower": 0,
"aim": 0,
"agile": 0,
"armorRating": 0,
"meleSkill": 0,
"currentHealth": 0,
"maxHealth": 0,
"weaponRatingMax": 0,
"weaponRatingMin": 0,
"numberOfWeaponRolls": 0,
"experience": 0,
"currentMana": 0,
"maxMana": 0,
"foraging": 0,
"inventorySize": 15,
"maxEffects": 0
}
},
"itemTriggers": [
"leather satchel",
"satchel"
],
"validTimeOfDays": [],
"isDisposable": false,
"maxUses": 0
}
\ No newline at end of file
...@@ -31,8 +31,7 @@ ...@@ -31,8 +31,7 @@
"BLOODRIDGE1_ZONE", "BLOODRIDGE1_ZONE",
"WESTERN9_ZONE", "WESTERN9_ZONE",
"NORTH3_ZONE" "NORTH3_ZONE"
], ]
"entityId": "8fe8b5a9-55e3-4706-9aee-474d52684d05"
} }
] ]
} }
\ No newline at end of file
{
"internalName": "a bank of lockers",
"roomIds": [
63
],
"name": "a bank of lockers",
"colorName": "\u001b[1m\u001b[36ma bank of lockers\u001b[m",
"validTriggers": [
"a bank of lockers",
"lockers",
"l",
"locker"
],
"welcomeMessage": "Locker opened.",
"merchantType": "LOCKER"
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment