_BASE_STATS_DATA = { 1: { 'PC': 80, 'ST': 'Cannot Walk', 'DX': 'Infant', 'IQ': 'Vegetable', 'HT': 'Barely awake' }, 2: { 'PC': 70, 'ST': 'Cannot Walk', 'DX': 'Cannot Walk', 'IQ': 'Insect', 'HT': 'Barely awake' }, 3: { 'PC': 60, 'ST': '3 year old', 'DX': 'Ludicrous', 'IQ': 'Reptile', 'HT': 'Very sickly' }, 4: { 'PC': 50, 'ST': '4 year old', 'DX': 'Ludicrous', 'IQ': 'Horse', 'HT': 'Very sickly' }, 5: { 'PC': 40, 'ST': '6 year old', 'DX': 'Ludicrous', 'IQ': 'Dog', 'HT': 'Sickly' }, 6: { 'PC': 30, 'ST': '8 year old', 'DX': 'Ludicrous', 'IQ': 'Chimpanzee', 'HT': 'Sickly' }, 7: { 'PC': 20, 'ST': '10 year old', 'DX': 'Clumsy', 'IQ': 'Child', 'HT': 'Weak' }, 8: { 'PC': 15, 'ST': '13 year old', 'DX': 'Clumsy', 'IQ': 'Dull', 'HT': 'Weak' }, 9: { 'PC': 10, 'ST': 'Average', 'DX': 'Average', 'IQ': 'Dull average', 'HT': 'Average' }, 10: { 'PC': 0, 'ST': 'Average', 'DX': 'Average', 'IQ': 'Average', 'HT': 'Average' }, 11: { 'PC': 10, 'ST': 'Average', 'DX': 'Average', 'IQ': 'Average +', 'HT': 'Average' }, 12: { 'PC': 20, 'ST': 'Weekend Athlete', 'DX': 'Graceful', 'IQ': 'Bright average', 'HT': 'Energetic' }, 13: { 'PC': 30, 'ST': 'Athlete', 'DX': 'Graceful', 'IQ': 'Bright', 'HT': 'Energetic' }, 14: { 'PC': 45, 'ST': 'Athlete', 'DX': 'Graceful', 'IQ': 'Very Bright', 'HT': 'Energetic' }, 15: { 'PC': 60, 'ST': 'Weightlifter', 'DX': 'Very nimble', 'IQ': 'Genius minus', 'HT': 'Very healthy' }, 16: { 'PC': 80, 'ST': 'Weightlifter', 'DX': 'Very nimble', 'IQ': 'Genius', 'HT': 'Very healthy' }, 17: { 'PC': 100, 'ST': 'Circus strongman', 'DX': 'Very nimble', 'IQ': 'Genius-plus', 'HT': 'Very healthy' }, 18: { 'PC': 125, 'ST': 'Circus strongman', 'DX': 'Very nimble', 'IQ': 'Genius-plus', 'HT': 'Very healthy' }, 19: { 'PC': 150, 'ST': 'Olympic weightlifter', 'DX': 'Incredible agile', 'IQ': 'Nobel prize', 'HT': 'Perfect health' }, 20: { 'PC': 175, 'ST': 'Olympic weightlifter', 'DX': 'Incredible agile', 'IQ': 'Nobel prize', 'HT': 'Perfect health' }, } def getStatDescription(level, stat): return _BASE_STATS_DATA[level][stat] def getStatCost(currentLevel, newLevel): pcCurrent = _BASE_STATS_DATA[currentLevel]['PC'] pcNew = _BASE_STATS_DATA[newLevel]['PC'] if newLevel < currentLevel: if newLevel <= 10 and currentLevel <= 10: return pcNew - pcCurrent elif newLevel >= 10 and currentLevel >= 10: return pcCurrent - pcNew elif newLevel <= 10 and currentLevel >= 10: return pcCurrent + pcNew else: if currentLevel <= 10 and newLevel <= 10: return pcCurrent - pcNew elif currentLevel >= 10 and newLevel >= 10: return pcNew - pcCurrent elif currentLevel <= 10 and newLevel >= 10: return pcCurrent + pcNew