Quick actions

cmd+k|ctrl+k

Navigation

Languages

Genshin Impact AR Exp Calculator 

Snippet info

Language

Python

Visibility

public

Author

shainmeena950

Created

2025-07-22T02:02:44.202189Z

Updated

2025-07-22T02:02:44.202189Z

#!/usr/bin/env python3

# SET YOUR CURRENT INFO BELOW
MY_AR_EXP = 0
MY_AR = 1
WANTED_AR = 25
PRIMOGEM_REFILLS_PER_DAY = 0

# AR EXP Table (Full: AR 1 to 60)
ADVENTURE_RANK_EXP_TABLE = {
    1: 0,
    2: 375,
    3: 825,
    4: 1425,
    5: 2100,
    6: 2925,
    7: 3925,
    8: 5075,
    9: 6375,
    10: 7875,
    11: 9625,
    12: 11625,
    13: 13875,
    14: 16375,
    15: 19125,
    16: 22125,
    17: 25375,
    18: 28875,
    19: 32625,
    20: 36625,
    21: 40875,
    22: 45375,
    23: 50125,
    24: 55125,
    25: 60375,
    26: 65875,
    27: 71625,
    28: 77625,
    29: 83875,
    30: 90375,
    31: 97125,
    32: 104125,
    33: 111375,
    34: 118875,
    35: 126625,
    36: 134625,
    37: 142875,
    38: 151375,
    39: 160125,
    40: 169125,
    41: 178375,
    42: 187875,
    43: 197625,
    44: 207625,
    45: 217875,
    46: 228375,
    47: 239125,
    48: 250125,
    49: 261375,
    50: 272875,
    51: 284625,
    52: 296625,
    53: 308875,
    54: 321375,
    55: 334125,
    56: 347125,
    57: 360375,
    58: 373875,
    59: 387625,
    60: 401625,
}

# Constants
RESIN_USAGE_PER_DAY = 180
EXP_PER_20_RESIN = 100
RESIN_EXP_PER_DAY = (RESIN_USAGE_PER_DAY / 20) * EXP_PER_20_RESIN
DAILY_COMMISSION_EXP = 500 + (4 * 250)  # 1500 EXP
PRIMOGEM_EXP_PER_DAY = min(PRIMOGEM_REFILLS_PER_DAY, 6) * ((60 / 20) * EXP_PER_20_RESIN)

EXP_GAIN_PER_DAY = DAILY_COMMISSION_EXP + RESIN_EXP_PER_DAY + PRIMOGEM_EXP_PER_DAY

# Calculate EXP required from MY_AR to WANTED_AR
if WANTED_AR <= MY_AR:
    print("⚠️ WANTED_AR must be greater than MY_AR")
    exit()

TOTAL_EXP_REQUIRED = ADVENTURE_RANK_EXP_TABLE[WANTED_AR] - ADVENTURE_RANK_EXP_TABLE[MY_AR] - MY_AR_EXP
estimated_days = TOTAL_EXP_REQUIRED / EXP_GAIN_PER_DAY

# Output
print("📊 Current AR:", MY_AR, "with", MY_AR_EXP, "EXP")
print("🎯 Target AR:", WANTED_AR)
print("🧮 EXP needed:", TOTAL_EXP_REQUIRED)
print("📅 Estimated days to reach AR", WANTED_AR, ":", round(estimated_days, 2))
INFO