private void handleResquest(String s) { Logger.info("@ClientMediator.handleResquest id=" + _id + " :s=" + s); if (s.indexOf("sync") > -1) { tellClient("sync " + s.split(" ")[1], 0); } else if (s.indexOf("get-status") > -1) { Integer[] ts = (Integer[]) tankStateProxy().getTanks(); Logger.debug("ClientMediator.handleResquest: ts.len=" + ts.length); for (int i = 0; i < ts.length; i++) { ClientMediator cm = (ClientMediator) appFacade().retrieveMediator(Const.CLIENT_MEDIATOR + ts[i].intValue()); TankState t = cm.getState(); if (t == null || cm.destroyd) continue; tellClient( "create tank " + t.tankID + " " + t.tankName + " 0 0 " + t.life + " 500 " + t.x + " " + t.y + " " + cm.getTankAngle() + " " + cm.getGunAngle(), 0); } } else if (s.indexOf("born") > -1) { if (_state == null) Arena.addReq(_id, s, null); } else if (s.indexOf("move-to") > -1) { if (_state != null) { Arena.addReq(_id, s, getState()); } } else if (s.indexOf("rotate-to") > -1) { // rotate gun if (_state != null) { Arena.addReq(_id, s, getState()); } } else if (s.indexOf("shoot") > -1) { if (_state != null) { Arena.addReq(_id, s, getState()); } } else if (s.indexOf("talk") > -1) { if (_state != null) s = "talk " + _state.tankName + " say: " + s.substring(5); this.sendNotification(Const.BROAD_CAST, s, null); } }