Untitled
unknown
plain_text
3 years ago
25 kB
18
Indexable
package com.soccerment.api.ws.opta;
import java.io.IOException;
import java.util.HashMap;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.log4j.Logger;
//import org.w3c.dom.Document;
//import org.w3c.dom.Element;
//import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import com.soccerment.api.ws.io.entity.Player;
import com.soccerment.api.ws.io.entity.SeasonDetails;
import com.soccerment.api.ws.io.entity.Team;
public class ProcessF30DataUtility {
private static final Logger logger = Logger.getLogger(ProcessF30DataUtility.class.getName());
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
}
private static SeasonDetails computeSoccermentMetrics(String myDate, String season,
HashMap<String, String> mapPlayerIdRealPosition, HashMap<String, String> mapPlayerIdTeamName,
SeasonDetails mySeasonStatistics) {
String myP90 = "P90";
double ass_goals = 1.00;
double ass_miss_penalties = -0.76;
double ass_shot_on_target_in_goals = 0.33;
double ass_shot_off_target_inc_woodwork = 0.13;
double ass_blocked_shots = 0.06;
double ass_goal_assists = 0.40; // 0.30
double ass_second_goal_assists = 0.10;
double ass_key_passed_attempt_assists = 0.15;
double ass_Through_balls = 0.08;
double ass_Total_Touches_In_Opposition_Box = 0.05;
double ass_Forward_Passes = 0.04;
double ass_Rightside_Passes = 0.02;
double ass_Leftside_Passes = 0.02;
double ass_Backward_Passes = 0.01;
double ass_Successful_Launches = 0.05;
double ass_Unsuccessful_Launches = -0.01;
double ass_Successful_Lay_offs = 0.01;
double ass_Unsuccessful_lay_offs = -0.04;
double ass_successful_cross_open_play = 0.25;
double ass_Throw_Ins_to_Own_Player = 0.03;
double ass_Total_Losses_Of_Possession = -0.04;
double ass_Aerial_Duels_won = 0.05;
double ass_Aerial_Duels_lost = -0.01;
double ass_Successful_Dribbles = 0.10;
double ass_Unsuccessful_Dribbles = -0.03;
double ass_Saves_Made_from_Inside_Box = 0.45;
double ass_Saves_Made_from_Outside_Box = 0.13;
double ass_Goals_Conceded_Inside_Box = -0.40;
double ass_Goals_Conceded_Outside_Box = -1.0;
double ass_Yellow_Cards = -0.10;
double ass_Red_Cards_minus_2nd_Yellow = -0.20;
double ass_Straight_Red_Cards = -0.4;
double ass_Penalties_Conceded = -0.4;
double ass_Total_Fouls_Conceded = -0.02;
double ass_Total_Fouls_Won = 0.02;
double ass_Tackles_Won = 0.08;
double ass_Tackles_Lost = -0.02;
double ass_Blocks = 0.06; // 0.07
double ass_Total_Clearances = 0.06;
double ass_Recoveries = 0.02;
double ass_Interceptions = 0.08;
double ass_GK_Successful_Distribution = 0.03;
double ass_GK_Unsuccessful_Distribution = -0.06;
double ass_clean_sheets = 1.50;
double ass_saves_from_penalties = 1.0;
double[][] ass_Weights = { { 0.75, 0.25, 0 }, { 0.65, 0.25, 0.10 }, { 0.35, 0.40, 0.25 }, { 0.30, 0.40, 0.30 },
{ 0.20, 0.40, 0.40 }, { 0.15, 0.35, 0.50 }, { 0.15, 0.25, 0.60 }, { 0.35, 0.40, 0.25 } };
int myIposition = 0;
for (int iTeam = 0; iTeam < mySeasonStatistics.getMyAllTeam().size(); iTeam++) {
Team myTeam = mySeasonStatistics.getMyAllTeam().get(iTeam);
// System.out.println(myTeam);
if (myTeam == null) {
continue;
}
for (int iPlayer = 0; iPlayer < myTeam.getMyAllPlayers().size(); iPlayer++) {
Player myPlayer = myTeam.getMyAllPlayers().get(iPlayer);
HashMap<String, Double> mapStatNameStatValue = myPlayer.getMapStatNameStatValue();
HashMap<String, Double> mapStatcomputed = new HashMap<>();
HashMap<String, Double> mapStatcomputed_tmp = new HashMap<>();
double time_played = mapStatNameStatValue.get("Time Played"); // n
if (time_played < 270) {
continue;
}
// mapStatNameStatValue.remove("Time Played");
String playerSoccPosition = mapPlayerIdRealPosition.get(myPlayer.getPlayerId());
if (playerSoccPosition == null) {
System.err.println("###### The playerId = " + myPlayer.getPlayerId()
+ " has no position define yet.. Minute played " + time_played);
continue;
}
if (!mapPlayerIdTeamName.get(myPlayer.getPlayerId()).equalsIgnoreCase(myTeam.getTeamId())) {
System.err.println("The playerID: " + myPlayer.getPlayerId() + " is present in teams : "
+ mapPlayerIdTeamName.get(myPlayer.getPlayerId()) + "(actual) and " + myTeam.getTeamId());
// logger.info(myPlayer);
continue;
}
double myFlabo = 0;
double myFlaboRecoveries = 1;
switch (playerSoccPosition) {
case "GK":
myFlabo = 1;
myFlaboRecoveries = 0.3;
myIposition = 0;
break;
case "CB":
myIposition = 1;
break;
case "FB":
myIposition = 2;
break;
case "CM":
myIposition = 3;
break;
case "CAM":
myIposition = 4;
break;
case "WAM":
myIposition = 5;
break;
case "FW":
myIposition = 6;
break;
case "DMC":
myIposition = 7;
break;
default:
myIposition = -1;
break;
}
if (myIposition == -1) {
System.err.println(" myIposition was not defined ");
continue;
}
double shots_recalculated = mapStatNameStatValue.get("Shots On Target ( inc goals )")
+ mapStatNameStatValue.get("Shots Off Target (inc woodwork)")
+ mapStatNameStatValue.get("Blocked Shots");
mapStatcomputed.put("shots_recalculated", shots_recalculated);
mapStatcomputed.put("Total dribbles", mapStatNameStatValue.get("Successful Dribbles")
+ mapStatNameStatValue.get("Unsuccessful Dribbles"));
mapStatcomputed.put("Total short passes", mapStatNameStatValue.get("Successful Short Passes")
+ mapStatNameStatValue.get("Unsuccessful Short Passes"));
mapStatcomputed.put("Total long passes", mapStatNameStatValue.get("Successful Long Passes")
+ mapStatNameStatValue.get("Unsuccessful Long Passes"));
mapStatcomputed.put("Total passes own half", mapStatNameStatValue.get("Successful Passes Own Half")
+ mapStatNameStatValue.get("Unsuccessful Passes Own Half"));
mapStatcomputed.put("Total passes opposition half",
mapStatNameStatValue.get("Successful Passes Opposition Half")
+ mapStatNameStatValue.get("Unsuccessful Passes Opposition Half"));
mapStatcomputed.put("Total launches", mapStatNameStatValue.get("Successful Launches")
+ mapStatNameStatValue.get("Unsuccessful Launches"));
mapStatcomputed.put("Total layoffs", mapStatNameStatValue.get("Successful Lay-offs")
+ mapStatNameStatValue.get("Unsuccessful lay-offs"));
mapStatcomputed.put("Total throw ins", mapStatNameStatValue.get("Throw Ins to Own Player")
+ mapStatNameStatValue.get("Throw Ins to Opposition Player"));
mapStatcomputed.put("Total crosses", mapStatNameStatValue.get("Successful Crosses open play")
+ mapStatNameStatValue.get("Unsuccessful Crosses open play"));
mapStatcomputed.put("Total corners into box", mapStatNameStatValue.get("Successful Corners into Box")
+ mapStatNameStatValue.get("Unsuccessful Corners into Box"));
mapStatcomputed.put("Non-penalty goals",
mapStatNameStatValue.get("Goals") - mapStatNameStatValue.get("Penalty Goals"));
mapStatcomputed.put("Non-penalty shots",
shots_recalculated - mapStatNameStatValue.get("Penalties Taken"));
mapStatcomputed.put("Open-play shots", shots_recalculated - mapStatNameStatValue.get("Penalties Taken")
+ mapStatNameStatValue.get("Attempts from Set Pieces"));
mapStatcomputed.put("Open-play goals", mapStatNameStatValue.get("Goals")
- mapStatNameStatValue.get("Penalty Goals") - mapStatNameStatValue.get("Set Pieces Goals"));
mapStatcomputed.put("Goals & Assists",
mapStatNameStatValue.get("Goals") + mapStatNameStatValue.get("Goal Assists"));
mapStatcomputed.put("NP Goals & Assists",
mapStatcomputed.get("Non-penalty goals") + mapStatNameStatValue.get("Goal Assists"));
mapStatcomputed.put("Open-play goals & Assists",
mapStatcomputed.get("Open-play goals") + mapStatNameStatValue.get("Goal Assists"));
mapStatcomputed.put("Tackles & Interceptions",
mapStatNameStatValue.get("Tackles Won") + mapStatNameStatValue.get("Interceptions"));
mapStatcomputed.put("Total recoveries", mapStatNameStatValue.get("Recoveries")
+ mapStatNameStatValue.get("Tackles Won") + mapStatNameStatValue.get("Interceptions"));
mapStatcomputed.put("Blocks & Clearances",
mapStatNameStatValue.get("Blocks") + mapStatNameStatValue.get("Total Clearances"));
mapStatcomputed.put("GK total distribution", mapStatNameStatValue.get("GK Successful Distribution")
+ mapStatNameStatValue.get("GK Unsuccessful Distribution"));
if (myIposition == 0) {// only for GK
mapStatcomputed.put("Shots against",
mapStatNameStatValue.get("Saves Made") + mapStatNameStatValue.get("Goals Conceded"));
}
mapStatcomputed.put("Chances created", mapStatNameStatValue.get("Goal Assists")
+ mapStatNameStatValue.get("Key Passes (Attempt Assists)"));
mapStatcomputed.put("Defensive Actions",
mapStatNameStatValue.get("Tackles Won") + mapStatNameStatValue.get("Interceptions")
+ mapStatNameStatValue.get("Blocks") + mapStatNameStatValue.get("Total Clearances"));
// Set<String> myAllKeys = mapStatcomputed.keySet();
// compute P90 player by player
for (String myKey : mapStatcomputed.keySet()) {
mapStatcomputed_tmp.put(myKey + "_" + myP90,
(time_played == 0.0) ? 0.0 : mapStatcomputed.get(myKey) / time_played * 90);
}
for (String myKey : mapStatcomputed_tmp.keySet()) {
mapStatcomputed.put(myKey, mapStatcomputed_tmp.get(myKey));
}
for (String myKey : mapStatNameStatValue.keySet()) {
mapStatcomputed.put(myKey, mapStatNameStatValue.get(myKey));
mapStatcomputed.put(myKey + "_" + myP90,
(time_played == 0.0) ? 0.0 : mapStatNameStatValue.get(myKey) / time_played * 90);
// // System.out.println(myKey+"_"+myP90 +" --> " +mapStatcomputed.get(myKey+"_"+myP90) );
}
mapStatcomputed.remove("Time Played" + "_" + myP90);
///// -------- compute ratio
String ratio = "_paulin";
// HV = AE3/AI3
mapStatcomputed.put("Shot_accuracy" + ratio, (shots_recalculated == 0.0) ? 0.0
: mapStatNameStatValue.get("Shots On Target ( inc goals )") / shots_recalculated);
// HW = R3/AI3
// mapStatcomputed.put("Goal_accuracy"+ratio,
// (shots_recalculated == 0.0) ? 0.0 : mapStatNameStatValue.get("Goals") / shots_recalculated);
// HX = AV3/AQ3
mapStatcomputed.put("pass_accuracy" + ratio,
(mapStatNameStatValue.get("Total Passes") == 0.0) ? 0.0
: mapStatNameStatValue.get("Total Successful Passes ( Excl Crosses & Corners )")
/ mapStatNameStatValue.get("Total Passes"));
mapStatcomputed.put("Short pass accuracy" + ratio,
(mapStatcomputed.get("Total short passes") == 0.0) ? 0.0
: mapStatNameStatValue.get("Successful Short Passes")
/ mapStatcomputed.get("Total short passes"));
mapStatcomputed.put("Long pass accuracy" + ratio,
(mapStatcomputed.get("Total long passes") == 0.0) ? 0.0
: mapStatNameStatValue.get("Successful Long Passes")
/ mapStatcomputed.get("Total long passes"));
mapStatcomputed.put("Launch accuracy" + ratio, (mapStatcomputed.get("Total launches") == 0.0) ? 0.0
: mapStatNameStatValue.get("Successful Launches") / mapStatcomputed.get("Total launches"));
mapStatcomputed.put("Pass accuracy in opposition half" + ratio,
(mapStatcomputed.get("Total passes opposition half") == 0.0) ? 0.0
: mapStatNameStatValue.get("Successful Passes Opposition Half")
/ mapStatcomputed.get("Total passes opposition half"));
mapStatcomputed.put("Pass accuracy in own half" + ratio,
(mapStatcomputed.get("Total passes own half") == 0.0) ? 0.0
: mapStatNameStatValue.get("Successful Passes Own Half")
/ mapStatcomputed.get("Total passes own half"));
mapStatcomputed.put("Cross accuracy" + ratio,
(mapStatcomputed.get("Total crosses") == 0.0) ? 0.0
: mapStatNameStatValue.get("Successful Crosses open play")
/ mapStatcomputed.get("Total crosses"));
mapStatcomputed.put("Corner accuracy" + ratio,
(mapStatcomputed.get("Total corners into box") == 0.0) ? 0.0
: mapStatNameStatValue.get("Successful Corners into Box")
/ mapStatcomputed.get("Total corners into box"));
mapStatcomputed.put("Throw in accuracy" + ratio, (mapStatcomputed.get("Total throw ins") == 0.0) ? 0.0
: mapStatNameStatValue.get("Throw Ins to Own Player") / mapStatcomputed.get("Total throw ins"));
mapStatcomputed.put("Duel success ratio" + ratio, (mapStatNameStatValue.get("Duels") == 0.0) ? 0.0
: mapStatNameStatValue.get("Duels won") / mapStatNameStatValue.get("Duels"));
mapStatcomputed.put("Ground duel success ratio" + ratio,
(mapStatNameStatValue.get("Ground Duels") == 0.0) ? 0.0
: mapStatNameStatValue.get("Ground Duels won")
/ mapStatNameStatValue.get("Ground Duels"));
mapStatcomputed.put("Aerial success ratio" + ratio, (mapStatNameStatValue.get("Aerial Duels") == 0.0)
? 0.0
: mapStatNameStatValue.get("Aerial Duels won") / mapStatNameStatValue.get("Aerial Duels"));
mapStatcomputed.put("Dribble success ratio" + ratio, (mapStatcomputed.get("Total dribbles") == 0.0)
? 0.0
: mapStatNameStatValue.get("Successful Dribbles") / mapStatcomputed.get("Total dribbles"));
mapStatcomputed.put("Tackle success ratio" + ratio,
(mapStatNameStatValue.get("Total Tackles") == 0.0) ? 0.0
: mapStatNameStatValue.get("Tackles Won") / mapStatNameStatValue.get("Total Tackles"));
if (myIposition == 0) {
mapStatcomputed.put("Saves success ratio" + ratio,
(mapStatcomputed.get("Shots against") == 0.0) ? 0.0
: mapStatNameStatValue.get("Saves Made") / mapStatcomputed.get("Shots against"));
}
mapStatcomputed.put("Caught balls percentage" + ratio, (mapStatNameStatValue.get("Saves Made") == 0.0)
? 0.0
: mapStatNameStatValue.get("Saves made - caught") / mapStatNameStatValue.get("Saves Made"));
mapStatcomputed.put("GK distribution accuracy" + ratio,
(mapStatcomputed.get("GK total distribution") == 0.0) ? 0.0
: mapStatNameStatValue.get("GK Successful Distribution")
/ mapStatcomputed.get("GK total distribution"));
mapStatcomputed.put("Percentage of throughballs" + ratio,
(mapStatNameStatValue.get("Total Passes") == 0.0) ? 0.0
: mapStatNameStatValue.get("Through balls") / mapStatNameStatValue.get("Total Passes"));
mapStatcomputed.put("Duel success ratio" + ratio, (mapStatNameStatValue.get("Duels") == 0.0) ? 0.0
: mapStatNameStatValue.get("Duels won") / mapStatNameStatValue.get("Duels"));
mapStatcomputed.put("Percentage of forward passes" + ratio,
(mapStatNameStatValue.get("Total Passes") == 0.0) ? 0.0
: mapStatNameStatValue.get("Forward Passes")
/ mapStatNameStatValue.get("Total Passes"));
mapStatcomputed.put("Percentage of backward passes" + ratio,
(mapStatNameStatValue.get("Total Passes") == 0.0) ? 0.0
: mapStatNameStatValue.get("Backward Passes")
/ mapStatNameStatValue.get("Total Passes"));
mapStatcomputed.put("Percentage of rightside passes" + ratio,
(mapStatNameStatValue.get("Total Passes") == 0.0) ? 0.0
: mapStatNameStatValue.get("Rightside Passes")
/ mapStatNameStatValue.get("Total Passes"));
mapStatcomputed.put("Percentage of leftside passes" + ratio,
(mapStatNameStatValue.get("Total Passes") == 0.0) ? 0.0
: mapStatNameStatValue.get("Leftside Passes")
/ mapStatNameStatValue.get("Total Passes"));
mapStatcomputed.put("Goal conversion" + ratio,
(shots_recalculated == 0.0) ? 0.0 : mapStatNameStatValue.get("Goals") / shots_recalculated);
mapStatcomputed.put("Non-penalty goal conversion" + ratio,
(mapStatcomputed.get("Non-penalty shots") == 0.0) ? 0.0
: mapStatcomputed.get("Non-penalty goals") / mapStatcomputed.get("Non-penalty shots"));
mapStatcomputed.put("Open-play goal conversion" + ratio,
(mapStatcomputed.get("Open-play shots") == 0.0) ? 0.0
: mapStatcomputed.get("Open-play goals") / mapStatcomputed.get("Open-play shots"));
mapStatcomputed.put("Percentage of attacking actions" + ratio,
(mapStatNameStatValue.get("Touches") == 0.0) ? 0.0
: (mapStatcomputed.get("Chances created") + shots_recalculated)
/ mapStatNameStatValue.get("Touches"));
mapStatcomputed.put("Percentage of touches in the opposition box" + ratio,
(mapStatNameStatValue.get("Touches") == 0.0) ? 0.0
: mapStatNameStatValue.get("Total Touches In Opposition Box")
/ mapStatNameStatValue.get("Touches"));
mapStatcomputed.put("Penalties success ratio" + ratio,
(mapStatNameStatValue.get("Penalties Taken") == 0.0) ? 0.0
: mapStatNameStatValue.get("Penalty Goals")
/ mapStatNameStatValue.get("Penalties Taken"));
mapStatcomputed.put("Assist conversion" + ratio, (mapStatcomputed.get("Chances created") == 0.0) ? 0.0
: mapStatNameStatValue.get("Goal Assists") / mapStatcomputed.get("Chances created"));
mapStatcomputed.put("Percentage of chances created" + ratio,
(mapStatNameStatValue.get("Total Passes") == 0.0) ? 0.0
: mapStatcomputed.get("Chances created") / mapStatNameStatValue.get("Total Passes"));
// mapStatcomputed.put("Percentage of key passes"+ratio, (mapStatNameStatValue.get("Total Passes") == 0.0) ? 0.0
// : mapStatNameStatValue.get("Key Passes (Attempt Assists)") / mapStatNameStatValue.get("Total Passes"));
mapStatcomputed.put("Percentage of success passes in the opposition half" + ratio,
(mapStatNameStatValue.get("Total Successful Passes ( Excl Crosses & Corners )") == 0.0) ? 0.0
: mapStatNameStatValue.get("Successful Passes Opposition Half") / mapStatNameStatValue
.get("Total Successful Passes ( Excl Crosses & Corners )"));
// HY = BF3/AV3
mapStatcomputed.put("% successful passes in the opposition half",
(mapStatNameStatValue.get("Total Successful Passes ( Excl Crosses & Corners )") == 0.0) ? 0.0
: mapStatNameStatValue.get("Successful Passes Opposition Half") / mapStatNameStatValue
.get("Total Successful Passes ( Excl Crosses & Corners )"));
// new entry
// - Close_range_saves_ratio = saves from inside box / shots against from inside box*
// - Long_range_saves_ratio = saves from outside box / shots against from outside box**
//
// Dove:
// * shots against from inside box = [Goal conceded from inside box + Saves made from inside box]
// ** shots against from outside box = [Goal conceded from outside box + Saves made from outside box]
double shots_against_from_inside_box = mapStatcomputed.get("Goals Conceded Inside Box")
+ mapStatcomputed.get("Saves Made from Inside Box");
double shots_against_from_outside_box = mapStatcomputed.get("Goals Conceded Outside Box")
+ mapStatcomputed.get("Saves Made from Outside Box");
mapStatcomputed.put("Close range saves ratio" + ratio, (shots_against_from_inside_box == 0.0) ? 0.0
: mapStatcomputed.get("Saves Made from Inside Box") / shots_against_from_inside_box);
mapStatcomputed.put("Long_range_saves_ratio" + ratio, (shots_against_from_outside_box == 0.0) ? 0.0
: mapStatcomputed.get("Saves Made from Outside Box") / shots_against_from_outside_box);
// -------------------------
if (myPlayer.getPlayerId().equals("14937")) {
// System.out.println(myPlayer);
}
// AD = AC3-T3
mapStatcomputed.put("Missed penalties",
mapStatNameStatValue.get("Penalties Taken") - mapStatNameStatValue.get("Penalty Goals"));
// IM
mapStatcomputed.put("ATTACK", mapStatNameStatValue.get("Goals") * ass_goals
+ mapStatcomputed.get("Missed penalties") * ass_miss_penalties
+ mapStatNameStatValue.get("Shots On Target ( inc goals )") * ass_shot_on_target_in_goals
+ mapStatNameStatValue.get("Shots Off Target (inc woodwork)") * ass_shot_off_target_inc_woodwork
+ mapStatNameStatValue.get("Blocked Shots") * ass_blocked_shots
+ mapStatNameStatValue.get("Goal Assists") * ass_goal_assists
+ mapStatNameStatValue.get("Second Goal Assists") * ass_second_goal_assists
+ mapStatNameStatValue.get("Key Passes (Attempt Assists)") * ass_key_passed_attempt_assists
+ mapStatNameStatValue.get("Total Touches In Opposition Box")
* ass_Total_Touches_In_Opposition_Box);
// JB
mapStatcomputed.put("BUILD_UP",
((mapStatNameStatValue.get("Forward Passes") * ass_Forward_Passes
+ mapStatNameStatValue.get("Rightside Passes") * ass_Rightside_Passes
+ mapStatNameStatValue.get("Leftside Passes") * ass_Leftside_Passes
+ mapStatNameStatValue.get("Backward Passes") * ass_Backward_Passes)
* mapStatcomputed.get("pass_accuracy" + ratio)
* (1 + mapStatcomputed.get("% successful passes in the opposition half")))
+ mapStatNameStatValue.get("Successful Launches") * ass_Successful_Launches
+ mapStatNameStatValue.get("Unsuccessful Launches") * ass_Unsuccessful_Launches
+ mapStatNameStatValue.get("Successful Lay-offs") * ass_Successful_Lay_offs
+ mapStatNameStatValue.get("Unsuccessful lay-offs") * ass_Unsuccessful_lay_offs
+ mapStatNameStatValue.get("Total Losses Of Possession")
* ass_Total_Losses_Of_Possession
+ mapStatNameStatValue.get("Aerial Duels won") * ass_Aerial_Duels_won
+ mapStatNameStatValue.get("Aerial Duels lost") * ass_Aerial_Duels_lost
+ mapStatNameStatValue.get("Successful Dribbles") * ass_Successful_Dribbles
+ mapStatNameStatValue.get("Unsuccessful Dribbles") * ass_Unsuccessful_Dribbles
+ mapStatNameStatValue.get("Successful Crosses open play")
* ass_successful_cross_open_play
+ mapStatNameStatValue.get("Throw Ins to Own Player") * ass_Throw_Ins_to_Own_Player
+ mapStatNameStatValue.get("Through balls") * ass_Through_balls
+ mapStatNameStatValue.get("GK Successful Distribution")
* ass_GK_Successful_Distribution
+ mapStatNameStatValue.get("GK Unsuccessful Distribution")
* ass_GK_Unsuccessful_Distribution);
// JW
mapStatcomputed.put("DEFENCE",
mapStatNameStatValue.get("Saves Made from Inside Box") * ass_Saves_Made_from_Inside_Box
+ mapStatNameStatValue.get("Saves Made from Outside Box")
* ass_Saves_Made_from_Outside_Box
+ mapStatNameStatValue.get("Goals Conceded Inside Box") * ass_Goals_Conceded_Inside_Box
* myFlabo
+ mapStatNameStatValue.get("Goals Conceded Outside Box")
* ass_Goals_Conceded_Outside_Box * myFlabo
+ mapStatNameStatValue.get("Yellow Cards") * ass_Yellow_Cards
+ mapStatNameStatValue.get("Red Cards - 2nd Yellow") * ass_Red_Cards_minus_2nd_Yellow
+ mapStatNameStatValue.get("Straight Red Cards") * ass_Straight_Red_Cards
+ mapStatNameStatValue.get("Penalties Conceded") * ass_Penalties_Conceded
+ mapStatNameStatValue.get("Total Fouls Conceded") * ass_Total_Fouls_Conceded
+ mapStatNameStatValue.get("Total Fouls Won") * ass_Total_Fouls_Won
+ mapStatNameStatValue.get("Tackles Won") * ass_Tackles_Won
+ mapStatNameStatValue.get("Tackles Lost") * ass_Tackles_Lost
+ mapStatNameStatValue.get("Blocks") * ass_Blocks
+ mapStatNameStatValue.get("Total Clearances") * ass_Total_Clearances
+ mapStatNameStatValue.get("Recoveries") * ass_Recoveries * myFlaboRecoveries
+ mapStatNameStatValue.get("Interceptions") * ass_Interceptions
+ mapStatNameStatValue.get("Clean Sheets") * ass_clean_sheets * myFlabo
+ mapStatNameStatValue.get("Saves from Penalty") * ass_saves_from_penalties);
// KA=IM3/$N3
mapStatcomputed.put("ATTACK_P90",
(time_played == 0.0) ? 0.0 : mapStatcomputed.get("ATTACK") * 90 / time_played);
// JZ=JB3/$N3
mapStatcomputed.put("BUILD_UP_P90",
(time_played == 0.0) ? 0.0 : mapStatcomputed.get("BUILD_UP") * 90 / time_played);
// JY=JW3/$N3
mapStatcomputed.put("DEFENCE_P90",
(time_played == 0.0) ? 0.0 : mapStatcomputed.get("DEFENCE") * 90 / time_played);
if (myIposition == -1) {
mapStatcomputed.put("SPR_base", 0.0);
} else {
mapStatcomputed.put("SPR_base",
(mapStatcomputed.get("ATTACK_P90") * ass_Weights[myIposition][2]
+ mapStatcomputed.get("BUILD_UP_P90") * ass_Weights[myIposition][1]
+ mapStatcomputed.get("DEFENCE_P90") * ass_Weights[myIposition][0]) * 33);
}
myDate = myDate.replace("_", "-");
mapStatcomputed.remove("% successful passes in the opposition half");
myPlayer.setMapStatcomputed(mapStatcomputed, myDate, myTeam.getCompId(), season);
myPlayer.setMapStat(mapStatNameStatValue, myDate, myTeam.getCompId(), season);
mapStatNameStatValue.putAll(mapStatcomputed);
}
}
return mySeasonStatistics;
}
}
Editor is loading...