Le marché crypto
Six devises créées par cette ville, un cours qui bouge que quelqu’un regarde ou non, et un moyen de transférer des avoirs d’un téléphone à un autre sans qu’aucune banque n’en entende parler.
Rien à l’intérieur ne demande jamais au monde extérieur ce que vaut quoi que ce soit. Les cours sont ceux de votre serveur.
Les devises fournies
Section intitulée « Les devises fournies »| Débute à | Variation | Ce que c’est | |
|---|---|---|---|
| Santocoin SNT | 42 000 $ | 3 % | La première créée par la ville. Lente, lourde, dans le portefeuille de tout le monde |
| Vinewood VNW | 3 200 $ | 8 % | La célébrité, tarifée à l’heure |
| Bayview BAY | 180 $ | 2 % | Monotone à dessein. Un endroit où placer son argent le temps de réfléchir |
| Dustcoin DST | 12 $ | 15 % | Vient du comté, et elle est déjà allée sur la lune deux fois |
| Voltline VLT | 640 $ | 9 % | Électricité, eau et voirie. Ennuyeuse jusqu’à ce que le courant saute |
| Omen OMN | 4 $ | 22 % | Personne ne sait qui l’a créée |
Supprimez-en une du fichier de configuration et elle cesse d’exister. Les avoirs de personne ne sont supprimés pour autant — remettez la devise et chacun retrouve exactement ce qu’il possédait.
Comment le marché évolue
Section intitulée « Comment le marché évolue »shared/config/crypto.lua :
Tick = 300, -- seconds between one price and the nextVolatility = 1.0, -- every coin's swing, multiplied. One number for the whole marketHistory = 48, -- how many prices the chart remembersShock = { Chance = 0.02, Size = 0.22 }, -- rare, and the reason anybody checks twice a dayFee = 0.02, -- the house, on the way in and on the way outTrade = { Min = 10, Max = 250000 }, -- what one order may be, in moneyEt par devise : le cours auquel elle débute, sa variation Swing, une dérive Drift qui l’oriente à la hausse ou à la baisse au fil des semaines, un plancher Floor et un plafond Ceiling dont elle ne sort jamais, et une profondeur Depth — l’argent nécessaire pour faire bouger cette devise d’un pour cent lorsque quelqu’un l’échange. Une devise à faible profondeur est une devise qu’un joueur fortuné peut faire grimper tout seul, ce qui rend une telle monnaie intéressante à posséder et redoutable à surveiller. Depth = 0 signifie que les ordres ne font pas varier le cours du tout, ce qui est plus simple et beaucoup plus facile à farmer.
Icon attribue une image à une devise ; une devise personnelle sans icône se rabat sur un glyphe dessiné, puis sur la première lettre de son symbole.
À qui appartient le portefeuille
Section intitulée « À qui appartient le portefeuille »Wallet = 'character', -- or 'device'En mode character, un téléphone volé affiche une application vide au voleur. En mode device, le téléphone est le portefeuille, et voler un appareil emporte le portefeuille d’investissements avec lui.
Il est livré réglé sur character, car l’autre option transforme chaque agression de rue en braquage de banque, et cela doit être un choix délibéré plutôt qu’un comportement par défaut.
Ce qui ne peut pas arriver
Section intitulée « Ce qui ne peut pas arriver »Un cours est exprimé en centimes et un solde en millionièmes de devise, tous deux sous forme d’entiers du début à la fin, arrondis en défaveur de la personne qui effectue la transaction, avec la commission ajoutée par-dessus. Acheter quelque chose et le revendre dans la même seconde coûte toujours de l’argent — un marché où cette opération s’équilibrerait serait un marché où une boucle d’achats-ventes imprimerait de l’argent à l’infini.
Le client n’est jamais interrogé sur la valeur d’une devise et n’envoie jamais de prix. Chaque écriture sur un portefeuille est protégée par un verrou, car lire les soldes, déplacer l’argent et réécrire les données représente trois étapes avec une attente entre chacune, et deux ordres lors du même tick vendraient sinon les mêmes devises deux fois.
Pour les autres ressources
Section intitulée « Pour les autres ressources »exports.mic_phone:Coins() --> every coin, with price, change and historyexports.mic_phone:CoinPrice('santo') --> 42137.55, in moneyexports.mic_phone:GetCrypto(src, 'santo') --> 0.4218exports.mic_phone:GetCryptoValue(src) --> the whole portfolio, in money
exports.mic_phone:AddCrypto(src, 'omen', 12.5) --> a hack that pays in coin, a mining scriptexports.mic_phone:RemoveCrypto(src, 'omen', 12.5) --> false when they did not have it, and nothing movesexports.mic_phone:SetCoinPrice('omen', 0.4) --> move the market for a storyRemoveCrypto refuse l’opération plutôt que de passer en négatif, sa réponse indique donc aussi ont-ils pu payer — ce qui est précisément la question qu’une boutique vendant un objet contre de la cryptomonnaie se pose :
if exports.mic_phone:RemoveCrypto(src, 'omen', price) then giveThem(thing) end