diff --git a/etc/db_admin.py b/etc/db_admin.py index ca6832e..0eb6bc3 100644 --- a/etc/db_admin.py +++ b/etc/db_admin.py @@ -74,6 +74,17 @@ except Exception as e: except Exception as e: mmind_score = "System: mmind_hs.pkl not found" +try: + with open('../golfsim_hs.pkl', 'rb') as f: + golfsim_score = pickle.load(f) +except Exception as e: + try: + with open('golfsim_hs.pkl', 'rb') as f: + golfsim_score = pickle.load(f) + except Exception as e: + golfsim_score = "System: golfsim_hs.pkl not found" + + print ("\n Meshing-Around Database Admin Tool\n") print ("System: bbs_messages") print (bbs_messages) @@ -85,4 +96,5 @@ print (f"dopewar:{dopewar_score}") print (f"blackjack:{blackjack_score}") print (f"videopoker:{videopoker_score}") print (f"mmind:{mmind_score}") +print (f"golfsim:{golfsim_score}") print ("\n") diff --git a/modules/golfsim.py b/modules/golfsim.py index 5b4189a..729d254 100644 --- a/modules/golfsim.py +++ b/modules/golfsim.py @@ -3,6 +3,7 @@ import random import time +import pickle from modules.log import * # Clubs setup @@ -98,6 +99,28 @@ def getScorecardGolf(scorecard): msg += f" -Par {str(abs(scorecard))} " return msg +def getHighScoreGolf(nodeID, strokes, par): + # check if player is in high score list + try: + with open('golfsim_hs.pkl', 'rb') as f: + golfHighScore = pickle.load(f) + except: + logger.debug("System: GolfSim: High Score file not found.") + golfHighScore = [{'nodeID': nodeID, 'strokes': strokes, 'par': par}] + with open('golfsim_hs.pkl', 'wb') as f: + pickle.dump(golfHighScore, f) + + if strokes > golfHighScore[0]['strokes']: + # player got new low score which is high score + golfHighScore[0]['nodeID'] = nodeID + golfHighScore[0]['strokes'] = strokes + golfHighScore[0]['par'] = par + with open('golfsim_hs.pkl', 'wb') as f: + pickle.dump(golfHighScore, f) + return golfHighScore + + return 0 + # Main game loop def playGolf(nodeID, message, finishedHole=False): msg = '' @@ -369,6 +392,10 @@ def playGolf(nodeID, message, finishedHole=False): if hole >= 9: # Final score messages & exit prompt msg += f"🎉Finished 9-hole round⛳️" + #HighScore Display + highscore = getHighScoreGolf(nodeID, total_strokes, total_to_par) + if highscore != 0: + msg += "\n🏆New Club Record🏆" # pop player from tracker for i in range(len(golfTracker)): if golfTracker[i]['nodeID'] == nodeID: