o
    I\h+                     @   s   d dl mZ d dlmZmZ d dlZd dl mZmZ ddddd	d
Zdd Z	dee
ef de
fddZdedefddZdedefddZdS )    &load_team_upcoming_fix_difficulty_data)AnyDictN)load_players_datar   g333333?g?      ?g?皙?)               c                 C   s(  t | d }t| d d }t| d d }|tv rt| }nd}| d dkr.d	}d
}d}n-| d dkr;d	}d
}d}n | d dkrHd}d
}d}n| d dkrUd}d
}d}nd}d}d}d}| d dkrj| d d }	nd}	| d |	 | | d |	 |  | d |	 |  }
|
|d| d|    d }
|
S )z4Calculates expected points based on various factors.team	ict_index      Y@form      $@r   element_typeGK   r   r   DEFMIDr   r	   FWDr      minutesZ   goals_scoredassistsclean_sheets      ?皙?r
   )!get_current_gw_opponent_diffucltyfloatdifficulty_multiplier)playerfixture_difficultyr   r   difficulty_factorgoal_pointsassist_pointsclean_sheet_pointsmin_minutesgames_playedexpected_points r-   1/var/www/html/FantasyAPI/squad/expected_points.py calculate_player_expected_score2   sJ   
r/   r$   posc                 C   sf  |dkrdn|dkrdnd}d}d}|dv rdn|dkrd	nd
}|dv r&dnd
}| d }| d }| d }	t | d d }
t | d d }tt| d }|| d d| d|
   }|	| d d| d|
   }|| }|| }d
}d
}|dv r|dkrd	d| d|   }n
d	d| d|   }|d	|  d }|| }|| }t|| | | | d	}td
|S )Nr   r   r   r   r   r   r
   )r   r   r	   r   g      expected_goals_conceded_per_90expected_goals_per_90expected_assists_per_90r   r   r   r   r   g      ?r   r    g      @gp=
ף?r   g?g(\µ?g      ?gUUUUUU?)r"   !calculate_match_difficulty_impactr!   roundmax)r$   r0   r'   r(   playing_pointsr)   goals_conceded_penalty
xgc_per_90	xg_per_90	xa_per_90r   r   match_difficultyexpected_goalsexpected_assistsexpected_goal_pointsexpected_assist_points expected_clean_sheet_probabilityexpected_goals_concededexpected_clean_sheet_pointsexpected_goals_conceded_pointstotal_expected_pointsr-   r-   r.   calculate_player_expected_scoreI   sD   
rF   diffreturnc                 C   s(   | dkrdS | dkrdS d}|| d  S )Nr   r	   g?r   r-   )rG   scaling_factorr-   r-   r.   r4   o   s   r4   team_idc                 C   s   t  }|| d  d S )Nr	   GW_1r   )rJ   team_fixr-   r-   r.   r!   z   s   r!   )fantasy_data.servicesr   typingr   r   pandaspdr   r#   r/   strrF   intr"   r4   r!   r-   r-   r-   r.   <module>   s$   	9

&