/** * */ package com.javaxyq.battle; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import com.javaxyq.model.PlayerVO; import com.javaxyq.widget.Player; /** * ս������ * @author dewitt */ public class Command implements Comparable{ private String cmd; private Player source; private Player target; private Map params = new HashMap(); public Command(String cmd,Player source) { this(cmd,source,null,null); } public Command(String cmd,Player source,Player target) { this.cmd = cmd; this.source = source; this.target = target; } public Command(String cmd,Player source,Player target,Map params) { this(cmd,source,target); this.params = params; } public String getCmd() { return this.cmd; } /** * ���һ������ * @param name * @param value */ public void add(String name,Object value) { //this.params[name] = value; this.params.put(name, value); } public Object get(String name) { return this.params.get(name); } public int getInt(String name) { Integer val = (Integer) this.params.get(name); return val!=null?val.intValue():0; } public boolean getBool(String name) { Boolean val = (Boolean) this.params.get(name); return val!=null?val.booleanValue():false; } /** * @return the source */ public Player getSource() { return source; } /** * @return the target */ public Player getTarget() { return target; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Command [cmd="); builder.append(cmd); builder.append(", params="); builder.append(params); builder.append(", source="); builder.append(source); builder.append(", target="); builder.append(target); builder.append("]"); return builder.toString(); } @Override public int compareTo(Object o) { if (o instanceof Command) { Command cmd2 = (Command) o; PlayerVO data1 = this.source.getData(); PlayerVO data2 = cmd2.getSource().getData(); return (data1.speed +data1.tmpSpeed) - (data2.speed +data2.tmpSpeed); } return 0; } }