155 lines
5.8 KiB
Python
155 lines
5.8 KiB
Python
"""Global constants shared by all model files.
|
|
|
|
Contains game lists, position mappings, platform codes, and TRN URL templates.
|
|
"""
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Constants
|
|
# ---------------------------------------------------------------------------
|
|
|
|
USER_TYPES = ['admin', 'manager', 'coach', 'player', 'scout']
|
|
|
|
# Ordered list of (field_name, human_label) pairs for the player evaluation
|
|
# score criteria. Kept in a single place so the evaluation forms, batch
|
|
# evaluation page, and any future reporting all stay in sync.
|
|
EVALUATION_CRITERIA = [
|
|
('mecanics_score', 'Mecanics'),
|
|
('cohesion_score', 'Cohesion'),
|
|
('communication_score', 'Communication'),
|
|
('gamesense_score', 'Gamesense'),
|
|
('versatility_score', 'Versatility'),
|
|
('discipline_score', 'Discipline'),
|
|
('analysis_score', 'Analysis'),
|
|
('sport_ethics_score', 'Sport Ethics'),
|
|
('mental_score', 'Mental'),
|
|
]
|
|
|
|
ESPORT_GAMES = [
|
|
'Valorant',
|
|
'League of Legends',
|
|
'Counter-Strike 2',
|
|
'Apex Legends',
|
|
'Overwatch 2',
|
|
'Rainbow Six Siege',
|
|
'Rocket League',
|
|
'Super Smash Bros.',
|
|
]
|
|
|
|
GAME_POSITIONS = {
|
|
'League of Legends': ['Top Lane', 'Jungle', 'Mid Lane', 'ADC', 'Support'],
|
|
'Valorant': ['Controller', 'Initiator', 'Duelist', 'Sentinel', 'Flex'],
|
|
'Counter-Strike 2': ['AWPer', 'Entry Fragger', 'Lurker', 'In-Game Leader', 'Support'],
|
|
'Rainbow Six Siege': ['Entry', 'Support', 'Breacher', 'Anchor', 'Flex'],
|
|
'Overwatch 2': ['Tank', 'Damage', 'Support'],
|
|
'Apex Legends': [],
|
|
'Rocket League': [],
|
|
'Super Smash Bros.': [],
|
|
}
|
|
|
|
GAME_PLATFORMS = {
|
|
'Valorant': [],
|
|
'League of Legends': [],
|
|
'Counter-Strike 2': [],
|
|
'Apex Legends': ['PC', 'PlayStation', 'Xbox', 'Nintendo Switch'],
|
|
'Overwatch 2': [],
|
|
'Rainbow Six Siege': ['Ubisoft', 'PlayStation', 'Xbox'],
|
|
'Rocket League': ['Epic', 'PlayStation', 'Xbox', 'Nintendo Switch'],
|
|
'Super Smash Bros.': ['Nintendo Switch'],
|
|
}
|
|
|
|
PLATFORM_CODES = {
|
|
'Ubisoft': 'ubi',
|
|
'PlayStation': 'psn',
|
|
'Xbox': 'xbl',
|
|
'Nintendo Switch': 'switch',
|
|
'PC': 'pc',
|
|
'Steam': 'steam',
|
|
'Epic': 'epic',
|
|
}
|
|
|
|
PLATFORM_DEFAULTS = {'Apex Legends': 'pc', 'Rainbow Six Siege': 'ubi', 'Rocket League': 'epic'}
|
|
|
|
# Objective-related constants for the Player Evolution planning feature.
|
|
# Ordered lists of (value, human_label) pairs for form fields and display.
|
|
OBJECTIVE_TYPES = [
|
|
('individual', 'Individuel'),
|
|
('team', 'Équipe'),
|
|
]
|
|
|
|
OBJECTIVE_STATUSES = [
|
|
('active', 'Actif'),
|
|
('pending', 'En attente'),
|
|
('completed', 'Terminé'),
|
|
('overdue', 'En retard'),
|
|
]
|
|
|
|
OBJECTIVE_PRIORITIES = [
|
|
('low', 'Faible'),
|
|
('medium', 'Moyenne'),
|
|
('high', 'Élevée'),
|
|
]
|
|
|
|
OBJECTIVE_CHECK_FREQUENCIES = [
|
|
('weekly', 'Hebdomadaire'),
|
|
('biweekly', 'Bi-hebdomadaire'),
|
|
('monthly', 'Mensuelle'),
|
|
]
|
|
|
|
# Default templates seeded on first run.
|
|
# (priority, title, description, kpi_metric, kpi_target, kpi_unit, type, category)
|
|
DEFAULT_OBJECTIVE_TEMPLATES = [
|
|
# Quantitative
|
|
('medium', 'Améliorer le taux de headshot (HS)',
|
|
'Augmenter le pourcentage de têtes sur les kills totaux.',
|
|
'Taux de headshot', 45.0, '%', 'individual', 'Mécaniques'),
|
|
('medium', 'Augmenter le K/D ratio',
|
|
'Améliorer le ratio kills/morts sur les matchs compétitifs.',
|
|
'K/D Ratio', 1.2, '', 'individual', 'Performance'),
|
|
('medium', 'Atteindre un KDA cible',
|
|
'Maintenir un ratio kills/deaths/assists au-dessus du seuil.',
|
|
'KDA', 3.0, '', 'individual', 'Performance'),
|
|
('medium', 'Améliorer la précision',
|
|
'Augmenter le pourcentage de tirs touchés par partie.',
|
|
'Précision', 40.0, '%', 'individual', 'Mécaniques'),
|
|
('medium', 'Augmenter les CS par minute',
|
|
'Atteindre une moyenne de last-hits par minute en jeu.',
|
|
'CS/min', 8.0, '', 'individual', 'Farm'),
|
|
('medium', 'Réduire les morts par match',
|
|
'Diminuer le nombre de décès moyens par partie compétitive.',
|
|
'Morts/match', 5.0, '', 'individual', 'Survie'),
|
|
('medium', 'Augmenter les dégâts par round',
|
|
'Améliorer le damage output moyen par round joué.',
|
|
'Dégâts/round', 150.0, '', 'individual', 'Performance'),
|
|
('medium', 'Améliorer le taux de victoire',
|
|
'Augmenter le pourcentage de parties gagnées sur la saison.',
|
|
'Winrate', 55.0, '%', 'team', 'Compétitif'),
|
|
|
|
# Qualitative
|
|
('medium', 'Améliorer le positionnement',
|
|
'Travailler le placement sur la carte pour réduire les angles exposés.',
|
|
None, None, None, 'individual', 'Positionnement'),
|
|
('medium', 'Améliorer la communication',
|
|
'Être plus vocal et clair dans les callouts en équipe.',
|
|
None, None, None, 'individual', 'Communication'),
|
|
('medium', 'Développer la conscience de carte',
|
|
'Anticiper les rotations adverses et mieux lire la minimap.',
|
|
None, None, None, 'individual', 'Game Sense'),
|
|
('medium', 'Améliorer la prise de décision',
|
|
'Réduire les décisions risquées et améliorer le choix des engagements.',
|
|
None, None, None, 'individual', 'Decision'),
|
|
('medium', 'Renforcer la cohésion d\'équipe',
|
|
'Participer activement aux stratégies collectives et aux drills.',
|
|
None, None, None, 'team', 'Équipe'),
|
|
]
|
|
|
|
TRN_URLS = {
|
|
'Valorant': 'https://tracker.gg/valorant/profile/riot/{username}',
|
|
'League of Legends': 'https://tracker.gg/lol/riot/profile/{username}',
|
|
'Counter-Strike 2': 'https://tracker.gg/cs2/profile/steam/{username}',
|
|
'Apex Legends': 'https://tracker.gg/apex/profile/{platform_code}/{username}',
|
|
'Overwatch 2': 'https://tracker.gg/overwatch/profile/battlenet/{username}',
|
|
'Rainbow Six Siege': 'https://r6.tracker.network/r6siege/profile/{platform_code}/{username}',
|
|
'Rocket League': 'https://rocketleague.tracker.network/rocket-league/profile/{platform_code}/{username}',
|
|
'Super Smash Bros.': 'https://tracker.gg/smash/profile/{username}',
|
|
}
|