diff --git a/src/components/shardTraderModal.html b/src/components/shardTraderModal.html
index c503901c52..0696534fab 100644
--- a/src/components/shardTraderModal.html
+++ b/src/components/shardTraderModal.html
@@ -41,7 +41,7 @@
|
-
+
|
→ |
@@ -74,7 +74,7 @@
diff --git a/src/modules/items/ItemList.ts b/src/modules/items/ItemList.ts
index cf50026ea7..fa581d050f 100644
--- a/src/modules/items/ItemList.ts
+++ b/src/modules/items/ItemList.ts
@@ -362,7 +362,7 @@ ItemList['Grotle (Acorn)'] = new PokemonItem('Grotle (Acorn)');
ItemList.Combee = new PokemonItem('Combee', 6750);
ItemList['Burmy (Plant)'] = new PokemonItem('Burmy (Plant)', 6750);
ItemList.Cherubi = new PokemonItem('Cherubi', 6750);
-ItemList.Spiritomb = new PokemonItem('Spiritomb', 6750);
+ItemList.Spiritomb = new PokemonItem('Spiritomb', 432, Currency.diamond);
// Unova
ItemList.Zorua = new PokemonItem('Zorua', 50625);
ItemList['Meloetta (Pirouette)'] = new PokemonItem('Meloetta (Pirouette)', 200000);
diff --git a/src/modules/underground/ShardDeal.ts b/src/modules/underground/ShardDeal.ts
index 0e8a4cfd49..dd4ae5650f 100644
--- a/src/modules/underground/ShardDeal.ts
+++ b/src/modules/underground/ShardDeal.ts
@@ -17,6 +17,7 @@ export class ShardDeal {
public shards: ShardCost[];
public item: { itemType: Item, amount: number };
public questPointCost: number;
+ public currencyType: Currency;
public static list: Partial>> = {};
constructor(shardCosts: ShardCost[], item: Item, itemAmount: number) {
@@ -24,6 +25,7 @@ export class ShardDeal {
this.shards.forEach((s) => { s.shardType = UndergroundItems.getByName(s.shardTypeString); });
this.item = { itemType: item, amount: itemAmount };
this.questPointCost = this.item.itemType.basePrice / 4 || 1;
+ this.currencyType = this.item.itemType.currency ?? Currency.questPoint;
}
public isVisible(): boolean {
@@ -41,7 +43,7 @@ export class ShardDeal {
}
if (ItemList[deal.item.itemType.name].isSoldOut()) {
return false;
- } else if (deal.questPointCost > App.game.wallet.currencies[Currency.questPoint]()) {
+ } else if (deal.questPointCost > App.game.wallet.currencies[deal.currencyType]()) {
return false;
} else {
return deal.shards.every((value) => player.itemList[value.shardType.itemName]() >= value.amount);
@@ -56,14 +58,14 @@ export class ShardDeal {
const maxShardTrades = Math.floor(amt / shard.amount);
return maxShardTrades;
});
- const qp = App.game.wallet.currencies[Currency.questPoint]();
+ const qp = App.game.wallet.currencies[deal.currencyType]();
const maxCurrencyTrades = Math.floor(qp / deal.questPointCost);
const maxTrades = Math.min(maxCurrencyTrades, trades.reduce((a, b) => Math.min(a, b), tradeTimes));
deal.shards.forEach((value) => player.loseItem(value.shardType.itemName, value.amount * maxTrades));
const amount = deal.item.amount * maxTrades;
deal.item.itemType.gain(deal.item.amount * maxTrades);
- App.game.wallet.loseAmount(new Amount(deal.questPointCost * maxTrades, Currency.questPoint));
+ App.game.wallet.loseAmount(new Amount(deal.questPointCost * maxTrades, deal.currencyType));
Notifier.notify({
message: `You traded for ${amount.toLocaleString('en-US')} × ${pluralizeString(humanifyString(deal.item.itemType.displayName), amount)}.`,
type: NotificationConstants.NotificationOption.success,
@@ -731,6 +733,12 @@ export class ShardDeal {
);
ShardDeal.list[ShardTraderLocations['Solaceon Town']] = ko.observableArray(
[
+ new ShardDeal(
+ [
+ { shardTypeString: 'Odd Keystone', amount: 1 },
+ ],
+ ItemList.Spiritomb,
+ 1),
new ShardDeal(
[
{ shardTypeString: 'Yellow Shard', amount: 20 },
diff --git a/src/scripts/towns/TownList.ts b/src/scripts/towns/TownList.ts
index 504b5a19f7..a8a207ebaf 100644
--- a/src/scripts/towns/TownList.ts
+++ b/src/scripts/towns/TownList.ts
@@ -3993,7 +3993,6 @@ const SolaceonTownShop = new Shop([
ItemList.Shiny_stone,
ItemList.Dusk_stone,
ItemList.Dawn_stone,
- ItemList.Spiritomb,
]);
const PastoriaShop = new Shop([
ItemList.Pokeball,
|