public virtual bool isTrue(ESMSTeam team, ESMSTeam away, int min) { /* I need to know if player is a number or a position */ int number = -1; bool isNumber = true; if (team.RedCarded == null) { return(false); } try { number = System.Int32.Parse(this.player); } catch (System.FormatException err) { isNumber = false; } if (!isNumber) { if (team.getPosition(team.RedCarded).Equals(player)) { return(true); } else { return(false); } } else { if (team.RedCarded.Name.Equals(team.getPlayer(number).Name)) { return(true); } else { return(false); } } }
public virtual void execute(ESMSTeam team) { //Ovvio che così non funzioni, devo stabilire se si tratta di un numero e se è una //posizione devo trovare il peggiore in quel ruolo bool isNumber = true; int p = -1; if (lastMinuteActive == CSEsMS.ESMS.ESMS.currentMinute && lastActiveTeam.Equals(team.Abbreviation)) { return; } try { p = System.Int32.Parse(player); } catch (System.FormatException e) { isNumber = false; } if (!isNumber) { p = team.electWorsePlayer(player); } //if (p==-1) throw new Exception("Unable to detect player to substitute"); if (p == -1) { return; } if (team.getPosition(p).Equals(newpos)) { return; } lastMinuteActive = CSEsMS.ESMS.ESMS.currentMinute; lastActiveTeam = team.Abbreviation; team.changePosition(p, newpos); string[] params_Renamed = new string[] { System.Convert.ToString(CSEsMS.ESMS.ESMS.currentMinute), team.Abbreviation, team.getPlayer(p).Name, newpos }; CSEsMS.ESMS.ESMS.output.Write("<ChangePosition min=\"" + params_Renamed[0] + "\" team=\"" + params_Renamed[1] + "\" player=\"" + params_Renamed[2] + "\" newPosition=\"" + params_Renamed[3] + "\">"); CSEsMS.ESMS.ESMS.output.Write(Comment.getComment().getCommentString("CHANGEPOSITION", params_Renamed)); CSEsMS.ESMS.ESMS.output.Write("</ChangePosition>"); }