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,