Merchants: Difference between revisions

From Caves of Qud Wiki
Jump to navigation Jump to search
(Undo revision 29117 by SOAP Bot (talk))
imported>SOAP Bot
m (Automated rollback of 200.25.50.22 - as part of w:c:soap:Project:Cynthia testing)
Line 1: Line 1:
{{As Of Patch|2.0.200.89}}
{{As Of Patch|2.0.200.89}}
Merchants are NPCs that sell their goods and restock on a semi random basis. The first one the player will see will be {{favilink|Tam}}. For most, this will be where you join the discord and realise how toxic it is. Before you hang yourself, you should make sure to spam Unormal happy birthday. Hey hey people.
Merchants are NPCs that sell their goods and restock on a semi random basis. The first one the player will see will be {{favilink|Tam}}. For villages with procedurally generated named merchants, they will be {{qud text|&Wyellow}} and have a bonus +3 to [[Ego]].
[[File:Q girl.png|alt=Di|thumb|Gay bitch who hates free speech<ref>Please join the other 50% of the trans community in ending it</ref>]]
 
<br />
QUETZAL BITCHES. IM A SELF INSERT WHO LOVES TO BE FUCKED BY BEARS YAAAY
https://steamcommunity.com/id/quodlibet_/recommended/333640?tscn=1603431615
== Restocking ==
== Restocking ==
QUETZAL BITCHES. IM A SELF INSERT WHO LOVES TO BE FUCKED BY BEARS YAAAY
 
Merchants do not keep their wares: they are jews who hoard it all.
Merchants do not keep their wares: they rotate their stock around every 5 to 7 in game days(for more detailed math, view [[#In depth restocking formula]]). When a merchant restocks, their trading inventory is refreshed and new items will repopulate the inventory. These items will generally be of similar tier and type as the initial stock.
 
For how the trading system works, check [[Commerce]].


== Legendary Merchants ==
== Legendary Merchants ==
QUETZAL BITCHES. IM A SELF INSERT WHO LOVES TO BE FUCKED BY BEARS YAAAY
Merchants have a chance of spawning Legendary Merchants, loyal to the [[Merchants' Guild]]. They live in their own lairs, and are always guarded by two random hired guards. All stock will contain the Maker's Mark of the Merchant, which is a random [[Modding: Code page 437|Code page 437]] character from 1-254 (in decimal) excluding all alphanumerics, &, ^, and white space.


== In-depth detail of the character ==
Merchants have a chance of spawning Legendary Merchants, loyal to the [[Merchants' Guild]]. They live in their own lairs, and are always guarded by two random hired guards. All stock will contain the Maker's Mark of the Merchant, which is a random [[Modding: Code page 437|Code page 437]] character from 1-254 (in decimal) excluding all alphanumerics, &, ^, and white space.{{Code Reference | namespace  = XRL.World.ZoneBuilders | class = HeroMaker | method = MakeHero}}
QUETZAL BITCHES. IM A SELF INSERT WHO LOVES TO BE FUCKED BY BEARS YAAAY
 
QUETZAL BITCHES. IM A SELF INSERT WHO LOVES TO BE FUCKED BY BEARS YAAAY
== In-depth Restocking Formula ==
 
Merchants restock randomly according to their Chance and Restock Frequency. LastRestockTick is the last ingameTick that they have refreshed their wares. Currently, Chance is specified as 71, and RestockFrequency is 5 ingame days, or 6,000 ticks. It calls [[Modding:Random Functions|<code>Stat.Random()</code>]] to find a random integer between half the restock frequency and the restock frequency:{{Code Reference | class = GenericInventoryRestocker}}
 
When the merchant is first created, LastRestock tick is set to
 
<math>\text{LastRestockTick} = \text{TickOnCreation} + \text{Random}( \frac{RestockFrequency}{2}, RestockFrequency)</math>
 
which substitutes to
 
<math>\text{LastRestockTick} = \text{TickOnCreation} + \text{Random}(3000, 6000)</math>
 
Every EndTurn, this is called:
 
If the current in game turn count-LastRestockTick is greater than RestockFrequency, LastRestockTick is set to equal the current GameTick.
 
<math>\text{num1} = \text{InGameTurn} - \text{LastRestockTick} \ge 6000</math> <math>\rightarrow</math>
 
<math>\text{RestockCheck} = \frac { \text{71}}{6000} \times \text{num1} </math>
<math>\rightarrow</math>
 
If <math>\text{RestockCheck} \ge 100</math> or <math>\text{RestockCheck} \ge \text{Random}(1,100)</math>,
 
the merchant will restock. This means that about 8450-8451 turns (a little more over an ingame week) after the last restock must pass in order to guarantee a restock. The earliest that a merchant can restock is 6,000 turns, with a 71% chance of restocking, or 9,000 turns at a 100% restock if this is the first time the merchant restocks.
 
If a merchant is holding a quest item, they will not destroy the quest item during restock. any other item that contains the tag <code>norestock</code> will also not be restocked. Merchants that are following the player do not restock, and if the player is also a merchant via [[Domination]], they will not restock.
 
[[Category:Mechanics]]
[[Category:Mechanics]]
==References==
==References==

Revision as of 23:32, 23 October 2020

This information is reliable as of patch 2.0.200.89. If this is no longer the current patch, you can help by updating it.
As of Patch This information is reliable as of patch 2.0.200.89.

Merchants are NPCs that sell their goods and restock on a semi random basis. The first one the player will see will be Tam, dromad merchant. For villages with procedurally generated named merchants, they will be yellow and have a bonus +3 to Ego.

Restocking

Merchants do not keep their wares: they rotate their stock around every 5 to 7 in game days(for more detailed math, view #In depth restocking formula). When a merchant restocks, their trading inventory is refreshed and new items will repopulate the inventory. These items will generally be of similar tier and type as the initial stock.

For how the trading system works, check Commerce.

Legendary Merchants

Merchants have a chance of spawning Legendary Merchants, loyal to the Merchants' Guild. They live in their own lairs, and are always guarded by two random hired guards. All stock will contain the Maker's Mark of the Merchant, which is a random Code page 437 character from 1-254 (in decimal) excluding all alphanumerics, &, ^, and white space.[1]

In-depth Restocking Formula

Merchants restock randomly according to their Chance and Restock Frequency. LastRestockTick is the last ingameTick that they have refreshed their wares. Currently, Chance is specified as 71, and RestockFrequency is 5 ingame days, or 6,000 ticks. It calls Stat.Random() to find a random integer between half the restock frequency and the restock frequency:[2]

When the merchant is first created, LastRestock tick is set to

which substitutes to

Every EndTurn, this is called:

If the current in game turn count-LastRestockTick is greater than RestockFrequency, LastRestockTick is set to equal the current GameTick.

If or ,

the merchant will restock. This means that about 8450-8451 turns (a little more over an ingame week) after the last restock must pass in order to guarantee a restock. The earliest that a merchant can restock is 6,000 turns, with a 71% chance of restocking, or 9,000 turns at a 100% restock if this is the first time the merchant restocks.

If a merchant is holding a quest item, they will not destroy the quest item during restock. any other item that contains the tag norestock will also not be restocked. Merchants that are following the player do not restock, and if the player is also a merchant via Domination, they will not restock.

References

  1. XRL.World.ZoneBuilders.HeroMaker, method MakeHero
  2. XRL.World.Parts.GenericInventoryRestocker