sorry if you saw the crashing I had dinner
This commit is contained in:
SpudGunMan
2025-10-19 18:31:51 -07:00
parent a79de8a325
commit 03895248cd
8 changed files with 65 additions and 23 deletions

View File

@@ -603,8 +603,10 @@ def handle_llm(message_from_id, channel_number, deviceID, message, publicChannel
llmTotalRuntime.append(end - start)
return response
def handleDopeWars(message, nodeID, rxNode):
global dwPlayerTracker, dwHighScore
from modules.settings import dwPlayerTracker
global dwHighScore
# Find player in tracker
player = next((p for p in dwPlayerTracker if p.get('userID') == nodeID), None)
@@ -656,7 +658,8 @@ def handle_gTnW(chess = False):
return response[selected_index]
def handleLemonade(message, nodeID, deviceID):
global lemonadeTracker, lemonadeCups, lemonadeLemons, lemonadeSugar, lemonadeWeeks, lemonadeScore, lemon_starting_cash, lemon_total_weeks
from modules.settings import lemonadeTracker
global lemonadeCups, lemonadeLemons, lemonadeSugar, lemonadeWeeks, lemonadeScore, lemon_starting_cash, lemon_total_weeks
msg = ""
def create_player(nodeID):
@@ -703,7 +706,7 @@ def handleLemonade(message, nodeID, deviceID):
return msg
def handleBlackJack(message, nodeID, deviceID):
global jackTracker
from modules.settings import jackTracker
msg = ""
# Find player in tracker
@@ -719,9 +722,23 @@ def handleBlackJack(message, nodeID, deviceID):
# Create new player if not found
if not player and nodeID != 0:
logger.debug(f"System: BlackJack: New Player {nodeID}")
jackTracker.append({'nodeID': nodeID, 'cmd': 'new', 'last_played': time.time()})
msg += "Welcome to 🃏BlackJack🃏!\n"
# create new player
jackTracker.append({
'nodeID': nodeID,
'bet': 0,
'cash': 100, # starting cash
'gameStats': {'p_win': 0, 'd_win': 0, 'draw': 0},
'p_cards': [],
'd_cards': [],
'p_hand': [],
'd_hand': [],
'next_card': [],
'last_played': time.time(),
'cmd': 'new'
})
msg += f"Welcome to 🃏BlackJack🃏!\n (H)it,(S)tand,(F)orfit,(D)ouble,(R)esend,(L)eave table"
# Show high score if available
highScore = 0
highScore = loadHSJack()
if highScore and highScore.get('nodeID', 0) != 0:
nodeName = get_name_from_number(highScore['nodeID'])
@@ -734,12 +751,18 @@ def handleBlackJack(message, nodeID, deviceID):
if player:
player['last_played'] = time.time()
# get player's last command from tracker if not new player
last_cmd = ""
for i in range(len(jackTracker)):
if jackTracker[i]['nodeID'] == nodeID:
last_cmd = jackTracker[i]['cmd']
# Play BlackJack
msg += playBlackJack(nodeID=nodeID, message=message)
msg += playBlackJack(nodeID=nodeID, message=message, last_cmd=last_cmd)
return msg
def handleVideoPoker(message, nodeID, deviceID):
global vpTracker
from modules.settings import vpTracker
msg = ""
# Find player in tracker
@@ -774,7 +797,7 @@ def handleVideoPoker(message, nodeID, deviceID):
return msg
def handleMmind(message, nodeID, deviceID):
global mindTracker
from modules.settings import mindTracker
msg = ''
if "end" in message.lower() or message.lower().startswith("e"):
@@ -818,7 +841,7 @@ def handleMmind(message, nodeID, deviceID):
return msg
def handleGolf(message, nodeID, deviceID):
global golfTracker
from modules.settings import golfTracker
msg = ''
# get player's last command from tracker if not new player
@@ -866,7 +889,7 @@ def handleGolf(message, nodeID, deviceID):
return msg
def handleHangman(message, nodeID, deviceID):
global hangmanTracker
from modules.settings import hangmanTracker
index = 0
msg = ''
for i in range(len(hangmanTracker)):
@@ -892,7 +915,7 @@ def handleHangman(message, nodeID, deviceID):
return msg
def handleHamtest(message, nodeID, deviceID):
global hamtestTracker
from modules.settings import hamtestTracker
index = 0
msg = ''
response = message.split(' ')
@@ -925,7 +948,7 @@ def handleHamtest(message, nodeID, deviceID):
return msg
def handleTicTacToe(message, nodeID, deviceID):
global tictactoeTracker
from modules.settings import tictactoeTracker
index = 0
msg = ''
@@ -1013,7 +1036,8 @@ def quizHandler(message, nodeID, deviceID):
return "🧠Please provide an answer or command, or send q: ?"
def surveyHandler(message, nodeID, deviceID):
global surveyTracker
from modules.settings import surveyTracker
user_id = nodeID
location = get_node_location(nodeID, deviceID)
msg = ''
# Normalize and parse the command
@@ -1497,6 +1521,7 @@ def onReceive(packet, interface):
message_bytes = packet['decoded']['payload']
message_string = message_bytes.decode('utf-8')
via_mqtt = packet['decoded'].get('viaMqtt', False)
transport_mechanism = packet['decoded'].get('transport_mechanism', 'unknown')
rx_time = packet['decoded'].get('rxTime', time.time())
# check if the packet is from us
@@ -1545,7 +1570,7 @@ def onReceive(packet, interface):
if hop_start == hop_limit:
hop = "Direct"
hop_count = 0
elif hop_start == 0 and hop_limit > 0 or via_mqtt:
elif hop_start == 0 and hop_limit > 0 or via_mqtt or transport_mechanism == "TRANSPORT_MQTT":
hop = "MQTT"
hop_count = 0
else:

View File

@@ -7,6 +7,7 @@ import time
import pickle
jack_starting_cash = 100 # Replace 100 with your desired starting cash value
from modules.settings import jackTracker
SUITS = ("♥️", "♦️", "♠️", "♣️")
RANKS = (
@@ -240,7 +241,7 @@ def loadHSJack():
pickle.dump(highScore, file)
return 0
def playBlackJack(nodeID, message):
def playBlackJack(nodeID, message, last_cmd=None):
# Initalize the Game
msg, last_cmd = '', None
blackJack = False
@@ -283,7 +284,7 @@ def playBlackJack(nodeID, message):
jackTracker.append({'nodeID': nodeID, 'cmd': 'new', 'last_played': time.time(), 'cash': jack_starting_cash,\
'bet': 0, 'gameStats': {'p_win': p_win, 'd_win': d_win, 'draw': draw}, 'p_cards':p_cards, 'd_cards':d_cards, 'p_hand':p_hand.cards, 'd_hand':d_hand.cards, 'next_card':next_card})
return f"You have {p_chips.total} chips. Whats your bet?"
return ''
return "Error: Player not found."
if getLastCmdJack(nodeID) == "new":
# Place Bet
@@ -296,18 +297,20 @@ def playBlackJack(nodeID, message):
#resend the hand
msg += show_some(p_cards, d_cards, p_hand)
return msg
elif message.lower() == "blackjack":
return f"\nTo place a bet, enter the amount you wish to wager."
else:
try:
bet_money = int(message)
except ValueError:
return "Invalid Bet, please enter a valid number."
return f"\nInvalid Bet, please enter a valid number."
if bet_money <= p_chips.total and bet_money >= 1:
p_chips.bet = bet_money
else:
return f"Invalid Bet, the maximum bet you can place is {p_chips.total} and the minimum bet is 1."
return f"\nInvalid Bet, the maximum bet you can place is {p_chips.total} and the minimum bet is 1."
except ValueError:
return f"Invalid Bet, the maximum bet, {p_chips.total}"
return f"\nInvalid Bet, the maximum bet, {p_chips.total}"
# Show the cards
msg += show_some(p_cards, d_cards, p_hand)

View File

@@ -14,6 +14,7 @@ dwInventoryDb = [{'userID': 1234567890, 'inventory': 0, 'priceList': [], 'amount
dwCashDb = [{'userID': 1234567890, 'cash': starting_cash},]
dwGameDayDb = [{'userID': 1234567890, 'day': 0},]
dwLocationDb = [{'userID': 1234567890, 'location': 'USA', 'loc_choice': 0},]
from modules.settings import dwPlayerTracker
# high score is saved in a pickle file
dwHighScore = {}

View File

@@ -26,6 +26,7 @@ par4_5_range = par4_range + par5_range
# Player setup
playingHole = False
from modules.settings import golfTracker
# Club functions
def hit_driver():
@@ -123,7 +124,6 @@ def getHighScoreGolf(nodeID, strokes, par):
# Main game loop
def playGolf(nodeID, message, finishedHole=False, last_cmd=''):
msg = ''
global golfTracker
# Course setup
par3_count = 0
par4_count = 0

View File

@@ -23,6 +23,7 @@ lemonadeLemons = [{'nodeID': 0, 'cost': 4.00, 'count': 8, 'min': 2.00, 'unit': 0
lemonadeSugar = [{'nodeID': 0, 'cost': 3.00, 'count': 15, 'min': 1.50, 'unit': 0.00}]
lemonadeWeeks = [{'nodeID': 0, 'current': 1, 'total': lemon_total_weeks, 'sales': 99, 'potential': 0, 'unit': 0.00, 'price': 0.00, 'total_sales': 0}]
lemonadeScore = [{'nodeID': 0, 'value': 0.00, 'total': 0.00}]
from modules.settings import lemonadeTracker
def get_sales_amount(potential, unit, price):
"""Gets the sales amount.

View File

@@ -5,7 +5,7 @@ import random
import time
import pickle
from modules.log import *
from modules.settings import mindTracker
def chooseDifficultyMMind(message):
usrInput = message.lower()
msg = ''

View File

@@ -6,7 +6,7 @@ import pickle
from modules.log import *
vpStartingCash = 20
from modules.settings import vpTracker
# Define the Card class
class CardVP:

View File

@@ -28,11 +28,23 @@ wiki_return_limit = 3 # limit the number of sentences returned off the first par
GAMEDELAY = 28800 # 8 hours in seconds for game mode holdoff
cmdHistory = [] # list to hold the last commands
seenNodes = [] # list to hold the last seen nodes
surveyTracker, tictactoeTracker, hamtestTracker, hangmanTracker, golfTracker, mastermindTracker, vpTracker, blackjackTracker, lemonadeTracker, dwPlayerTracker, jackTracker = [], [], [], [], [], [], [], [], [], [], [] # game trackers
cmdHistory = [] # list to hold the command history for lheard and history commands
msg_history = [] # list to hold the message history for the messages command
max_bytes = 200 # Meshtastic has ~237 byte limit, use conservative 200 bytes for message content
voxMsgQueue = [] # queue for VOX detected messages
# Game trackers
surveyTracker = [] # Survey game tracker
tictactoeTracker = [] # TicTacToe game tracker
hamtestTracker = [] # Ham radio test tracker
hangmanTracker = [] # Hangman game tracker
golfTracker = [] # GolfSim game tracker
mastermindTracker = [] # Mastermind game tracker
vpTracker = [] # Video Poker game tracker
jackTracker = [] # Blackjack game tracker
lemonadeTracker = [] # Lemonade Stand game tracker
dwPlayerTracker = [] # DopeWars player tracker
jackTracker = [] # Jack game tracker
mindTracker = [] # Mastermind (mmind) game tracker
# Read the config file, if it does not exist, create basic config file
config = configparser.ConfigParser()