๐XP & Token Rewards
๐ Experience Points (XP)
Experience Points (XP) represent your PettBro's growth and accomplishments that can be earned by engaging in a wide range of activities, such as buying and using consumables, playing mini-games, or simply maintaining your PettBro's health. As your PettBro accumulates XP, it levels up and gains access to new features and bonuses!
๐ Level Up
Each level requires a certain amount of XP where the higher your level is, the more XP you need. The function that expresses the player's level goes as follows,
As your PettBro levels up, it unlocks new features, customisation options and even earns some token rewards. Below you can find the function that governs the token rewards per level,
๐ต Token Deposits
Every 72h, you get experienceย points by depositing $AIP tokens inside the game. To find out more about this mechanism, revert to Deposit Rewards.
Pett.ai team has employed some safety measures to avoid looped deposits. Any attempts to exploit loopholes or manipulate this mechanism will result in a loss of XP.
๐น๏ธ In-app Interactions
XP rewards are governed by a gaussian random function just like the one used in the ๐ฒ Random Source of Value section but now with variable ranges.
function gaussianRandom(minimum: number, maximum: number): number
๐ Consumables
Buy a Consumable: Purchasing consumables not only helps your PettBro but also awards you with XP. The amount gained depends on the price of the consumable and the quantity purchased.
const xpGained = gaussianRandom(0.1, 0.9) * consumable.price * quantity;
// Average XP: 0.5 * consumable.price * quantity
Use a Consumable: Using consumables grants XP based on the difference in hunger, health, and energy before and after consumption. Here's the formula
const xpGained += gaussianRandom(0.3, 0.7) * hungerDiff * 2;
// Average XP: 0.5 * hungerDiff * 2
const xpGained += gaussianRandom(0.4, 0.6) * healthDiff;
// Average XP: 0.5 * healthDiff
const xpGained += gaussianRandom(0.8, 1) * energyDiff;
// Average XP: 0.9 * energyDiff
๐ฟ Bathing & Rubbing
Cleaning your PettBro up to 75% cleanliness, especially using a shower (which makes it quicker but earns less token rewards), awards you with experience points. The average XP earned is approximately 20, determined by the following formula:
const xpGained = gaussianRandom(10, 30);
๐ฎ Mini-Games
โฝ๏ธ Throw Ball: Playing the Throw Ball Game is not just fun; it also grants you XP. On average, you can earn about 10 XP per game session, determined by:
Pet has less than 90 happiness?
๐ข xpGained = gaussianRandom(5, 15);
๐ด xpGained = 0;
๐ฒ Dice & Slots: Your performance in the Dice Game directly affects your XP rewards. If you win, you'll receive XP equivalent to the square root of the tokens bet. If you lose, you still get XP equal to the square root 1 / 10th of tokens bet:
Did Win?
๐ข xpGained = sqrt(tokensBet) // When you win
๐ด xpGained = sqrt(tokensBet / 10) // When you lose
๐ช Door Game: In the Door Game, if you managed to land of the 1/4th chance of XP being your reward, the amount is determined based on the difference between your current XP and the XP needed to reach the next level. The average XP gained in this game is approximately 37.5% of this difference.
let differenceXP = nextLevelXp - previousLevelXp;
let xpGained = gaussianRandom(Math.round(differenceXP/ 4),
Math.round(differenceXP/ 2));
๐งฉ Wordle: Your performance in the Wordle Game determines the XP reward. If you successfully guess the Wordle in six attempts or fewer, you will receive XP equal to the calculated reward for your current level. If not, your XP reward will be reduced, in this case, you will receive one-third (1/3) of the XP you would have earned for guessing the word within the given limit:
You won the Wordle Game?
const rewardLevel = getRewardLevelUp(user.level)
const rewardGameXP = gaussianRandom(rewardLevel / 10, rewardLevel / 5)
๐ข xpGained = rewardGameXP // Did guess the word in 6 attemps
๐ด xpGained = rewardGameXP / 3 // Did NOT guess the word in 6 attemps
๐ฐ Token Rewards
Tokens can be earned along your Pett.ai journey to help you level up faster and progress in your adventure.
All token rewards are subject to the Real Time Inflation Module (RTIM) from the central bank. They will vary along time based on the $AIP on-chain price.
For more information, revert ๐งฎ RTIM Module.
๐งผ Bath Clean
Cleaning your PettBro up to 75% cleanliness will reward you with some tokens, determined by a random number generator.
Is Clean above 75 points?
๐ข tokensRewarded = genRandomNumber(5, 10) // When you clean 75 or above
๐ด tokensRewarded = genRandomNumber(1, 3) // Cleaniless level < 75
๐ฒ Dice
The amount of your winnings depend on the bet amount and the outcome of your bet. The payout is calculated based either on your chosen bet number or whether its an even or odd number.
The payout function goes as follows,
function calcPayout(betAmount: number, isLess: boolean, numberBet: number) {
const payout = isLess ? 1 - (numberBet - 1) / 6 : 6;
return payout * betAmount;}
๐ช Door Game
There is a 1/4th chance of winning tokens in the "Door Game". If you are fortunate enough, you will receive a random amount of tokens. You can try the Door Game once every 24h.
The payout function goes as follows,
const rewardLevel = getRewardLevelUp(user.level);
const tokenReward = gaussianRandom(rewardLevel / 10, rewardLevel / 5);
// Average tokens: 0.15 * tokenReward for the current level
๐งฉ Wordle Game
Everyday a new word comes up in Wordle! Guessing the correct word grants you a token bonus and some additional XP.
You won the Wordle Game?
๐ข tokensRewarded = gaussianRandom(10, 30); // Guessed the word in 6 attemps
// Average tokens: 20 tokens
๐ด tokensRewarded = gaussianRandom(2, 10); // Did NOT guess the word in 6 attemps
// Average tokens: 6 tokens
Last updated