105 lines
3.8 KiB
Python
105 lines
3.8 KiB
Python
"""Data and settings for the crime system."""
|
|
|
|
# Define available crimes and their properties
|
|
CRIME_TYPES = {
|
|
"pickpocket": {
|
|
"requires_target": True,
|
|
"min_reward": 150,
|
|
"max_reward": 500,
|
|
"success_rate": 0.6,
|
|
"cooldown": 600, # 10 minutes
|
|
"jail_time": 3600, # 1 hour if caught
|
|
"risk": "low",
|
|
"enabled": True,
|
|
"fine_multiplier": 0.35, # 35% of max reward as fine
|
|
"min_steal_percentage": 0.01, # Steal 1-10% of target's credits
|
|
"max_steal_percentage": 0.10
|
|
},
|
|
"mugging": {
|
|
"requires_target": True,
|
|
"min_reward": 400,
|
|
"max_reward": 1500,
|
|
"success_rate": 0.6,
|
|
"cooldown": 1800, # 30 minutes
|
|
"jail_time": 5400, # 1 hour 30 minutes if caught
|
|
"risk": "medium",
|
|
"enabled": True,
|
|
"fine_multiplier": 0.4, # 40% of max reward as fine
|
|
"min_steal_percentage": 0.15, # Steal 15-25% of target's credits
|
|
"max_steal_percentage": 0.25
|
|
},
|
|
"rob_store": {
|
|
"requires_target": False,
|
|
"min_reward": 500,
|
|
"max_reward": 2000,
|
|
"success_rate": 0.5,
|
|
"cooldown": 21600, # 6 hours
|
|
"jail_time": 10800, # 3 hours if caught
|
|
"risk": "medium",
|
|
"enabled": True,
|
|
"fine_multiplier": 0.4, # 45% of max reward as fine
|
|
"steal_percentage": 0
|
|
},
|
|
"bank_heist": {
|
|
"requires_target": False,
|
|
"min_reward": 1500,
|
|
"max_reward": 5000,
|
|
"success_rate": 0.4,
|
|
"cooldown": 86400, # 1 day
|
|
"jail_time": 14400, # 4 hours if caught
|
|
"risk": "high",
|
|
"enabled": True,
|
|
"fine_multiplier": 0.4, # 40% of max reward as fine
|
|
"steal_percentage": 0
|
|
},
|
|
"random": {
|
|
"requires_target": False,
|
|
"min_reward": 100, # Will be overridden by scenario
|
|
"max_reward": 3000, # Will be overridden by scenario
|
|
"success_rate": 0.5, # Will be overridden by scenario
|
|
"cooldown": 3600, # 1 hour
|
|
"jail_time": 600, # Will be overridden by scenario
|
|
"risk": "random", # Will be determined by scenario
|
|
"enabled": True,
|
|
"fine_multiplier": 0.5, # Will be overridden by scenario
|
|
"steal_percentage": 0
|
|
}
|
|
}
|
|
|
|
# Default guild settings
|
|
DEFAULT_GUILD = {
|
|
"crime_options": CRIME_TYPES,
|
|
"global_settings": {
|
|
"allow_bail": True,
|
|
"bail_cost_multiplier": 1.6,
|
|
"min_steal_balance": 100,
|
|
"max_steal_amount": 1000,
|
|
"default_jail_time": 1800, # 30 minutes
|
|
"default_fine_multiplier": 0.5,
|
|
"protect_low_balance": True, # Prevent stealing from users with very low balance
|
|
"show_success_rate": True, # Show success rate in crime messages
|
|
"show_fine_amount": True, # Show potential fine amounts
|
|
"enable_random_events": True # Enable random events during crimes
|
|
},
|
|
"custom_scenarios": [] # List to store custom scenarios for this guild
|
|
}
|
|
|
|
# Default member settings specific to crime
|
|
DEFAULT_MEMBER = {
|
|
"jail_time": 0, # Total time to serve
|
|
"jail_started": 0, # When jail time started
|
|
"attempted_jailbreak": False, # Whether attempted jailbreak this sentence
|
|
"cooldowns": {}, # Crime cooldowns
|
|
"total_successful_crimes": 0,
|
|
"total_failed_crimes": 0,
|
|
"total_fines_paid": 0,
|
|
"total_credits_earned": 0,
|
|
"largest_heist": 0, # Track largest successful heist
|
|
"total_stolen_from": 0, # Amount stolen from others
|
|
"total_stolen_by": 0, # Amount stolen by others
|
|
"total_bail_paid": 0, # Amount spent on bail
|
|
"notify_on_release": False, # Whether to ping user when jail sentence is over
|
|
"current_streak": 0, # Current successful crime streak
|
|
"highest_streak": 0, # Highest streak achieved
|
|
"streak_multiplier": 1.0, # Current reward multiplier from streak
|
|
}
|