LVPWB/lvpwb/constants.py

184 lines
5 KiB
Python

from __future__ import annotations
from typing import Any
import lvpwb as app
PS1_GAMES = {"sd1", "sd2"}
SEASON_CYCLE = ("Raw", "SmackDown", "PPV")
SHOW_BRANDS = SEASON_CYCLE
DEFAULT_CUSTOM_SHOWS = {
"Raw": "Weekly Show #1",
"SmackDown": "Weekly Show #2",
"PPV": "Big Pay-Per-View",
}
CHAMPIONSHIPS = (
"Tag Team",
"World Wrestling Federation",
"Intercontinental",
"European",
"Hardcore",
"Light-Heavyweight",
"Women's",
)
PPV_TITLE_WEIGHT = 1.5
PPV_RIVALRY_WEIGHT = 1.5
MATCH_BASE_RATINGS = {
"Singles": 4.5,
"Tag Team": 4.5,
"Tornado Tag": 4.5,
"Handicap": 4.5,
"Triple Threat": 5.5,
"Fatal 4-Way": 5.5,
"Battle Royal": 5.5,
"Cage": 6.5,
"Ladder": 6.5,
"Hardcore": 7.5,
"Table": 7.5,
"TLC": 7.5,
"Hell in a Cell": 9.5,
"I Quit": 9.5,
}
MATCH_TIME_BONUS_PER_MINUTE = 0.1
MATCH_TIME_BONUS_CAP = 5.0
MATCH_ACTION_BONUS_CAP = 10.0
FINISHER_BONUS = 0.5
NEAR_FALL_BONUS = 0.2
TITLE_MATCH_MULTIPLIER = 1.5
PPV_MATCH_WEIGHTS = (0.2, 0.3, 0.5)
MATCH_OUTCOME_OPTIONS = {
"Ladder": ("Item retrieval",),
"TLC": ("Item retrieval",),
"Table": ("Table break",),
"Battle Royal": ("Last wrestler standing",),
"Cage": ("Escape the cage",),
}
STANDARD_MATCH_OUTCOMES = ("Pinfall", "Submission")
WOMEN_ROSTERS = {
"sd1": {"Debra", "Tori", "Chyna"},
"sd2": {"Ivory", "Jacqueline", "The Kat", "Lita", "Chyna",
"Stephanie McMahon", "Tori", "Trish Stratus"},
"sd3": {"Ivory", "Lita", "Molly Holly", "Stephanie McMahon-Helmsley",
"Trish Stratus"},
}
GAMES: dict[str, dict[str, str]] = {
"sd1": {"title": "WWF SmackDown!", "roster": "smackdown1roster.json"},
"sd2": {"title": "WWF SmackDown! 2: Know Your Role", "roster": "smackdown2roster.json"},
"sd3": {"title": "WWF SmackDown! Just Bring It", "roster": "smackdown3roster.json"},
}
MATCH_TYPES: dict[str, list[tuple[str, tuple[int, ...]]]] = {
"sd1": [
("Singles", (1, 1)),
("Tag Team", (2, 2)),
("Handicap", (2, 1)),
("Triple Threat", (1, 1, 1)),
("Fatal 4-Way", (1, 1, 1, 1)),
("Battle Royal", (1, 1, 1, 1)),
("Cage", (1, 1)),
("Hardcore", (1, 1)),
],
"sd2": [
("Singles", (1, 1)),
("Tag Team", (2, 2)),
("Tornado Tag", (2, 2)),
("Handicap", (2, 1)),
("Triple Threat", (1, 1, 1)),
("Fatal 4-Way", (1, 1, 1, 1)),
("Battle Royal", (1, 1, 1, 1)),
("Cage", (1, 1)),
("Hardcore", (1, 1)),
("Ladder", (1, 1)),
("Table", (1, 1)),
("Hell in a Cell", (1, 1)),
],
"sd3": [
("Singles", (1, 1)),
("Tag Team", (2, 2)),
("Tornado Tag", (2, 2)),
("Handicap", (2, 1)),
("Triple Threat", (1, 1, 1)),
("Fatal 4-Way", (1, 1, 1, 1)),
("Battle Royal", (1, 1, 1, 1)),
("Cage", (1, 1)),
("Hardcore", (1, 1)),
("Ladder", (1, 1)),
("Table", (1, 1)),
("TLC", (2, 2)),
("Hell in a Cell", (1, 1)),
],
}
BUILTIN_GAME_IDS = frozenset(GAMES)
CUSTOM_GAME_CONFIGS: dict[str, dict[str, Any]] = {}
CITY_ATTENDANCE_RANGES: dict[str, tuple[int, int]] = {
# United States
"New York, NY": (17000, 19800),
"Boston, MA": (14500, 17500),
"Philadelphia, PA": (15000, 19500),
"Chicago, IL": (18000, 22000),
"Detroit, MI": (15000, 20000),
"Atlanta, GA": (12000, 17000),
"Dallas, TX": (14000, 18000),
"Los Angeles, CA": (15000, 19000),
"San Francisco, CA": (13000, 16000),
"Seattle, WA": (12000, 15500),
"Minneapolis, MN": (12000, 16500),
"Nashville, TN": (10000, 15000),
"Miami, FL": (12500, 15500),
# Canada
"Toronto, ON": (15000, 19000),
"Montreal, QC": (16000, 20000),
"Vancouver, BC": (14000, 17000),
"Calgary, AB": (9500, 13000),
# Europe
"London, England": (12000, 17000),
"Manchester, England": (9000, 12500),
"Dublin, Ireland": (9000, 13000),
"Paris, France": (13000, 17000),
"Berlin, Germany": (11000, 14500),
"Amsterdam, Netherlands": (9000, 12000),
"Madrid, Spain": (10000, 13500),
"Milan, Italy": (9000, 12500),
# Japan
"Tokyo, Japan": (15000, 45000),
"Yokohama, Japan": (12000, 18000),
"Osaka, Japan": (11000, 17000),
"Nagoya, Japan": (9000, 12000),
"Sapporo, Japan": (8000, 11000),
"Fukuoka, Japan": (8000, 11000),
}
DEFAULT_ATTENDANCE_RANGE = (7000, 15000)
RESET = "\033[0m"
RED = "\033[31m"
YELLOW = "\033[33m"
CYAN = "\033[36m"
DIM = "\033[2m"
__all__ = ['BUILTIN_GAME_IDS', 'CHAMPIONSHIPS', 'CITY_ATTENDANCE_RANGES', 'CUSTOM_GAME_CONFIGS', 'CYAN', 'DEFAULT_ATTENDANCE_RANGE', 'DEFAULT_CUSTOM_SHOWS', 'DIM', 'FINISHER_BONUS', 'GAMES', 'MATCH_ACTION_BONUS_CAP', 'MATCH_BASE_RATINGS', 'MATCH_OUTCOME_OPTIONS', 'MATCH_TIME_BONUS_CAP', 'MATCH_TIME_BONUS_PER_MINUTE', 'MATCH_TYPES', 'NEAR_FALL_BONUS', 'PPV_MATCH_WEIGHTS', 'PPV_RIVALRY_WEIGHT', 'PPV_TITLE_WEIGHT', 'PS1_GAMES', 'RED', 'RESET', 'SEASON_CYCLE', 'SHOW_BRANDS', 'STANDARD_MATCH_OUTCOMES', 'TITLE_MATCH_MULTIPLIER', 'WOMEN_ROSTERS', 'YELLOW']