package module.command.character; import module.character.Group; import module.character.api.ICharacter; import module.command.CommandServer; import module.command.api.ICommand; import module.map.constants.CExit; import module.server.PlayerServer; import module.utility.HelpUtil; import module.utility.NpcActionUtil; public class Flee implements ICommand { private String[] name; public Flee() { name = new String[2]; name[0] = "flee"; name[1] = "fl"; } @Override public String[] getName() { return name; } @Override public boolean action(ICharacter c, String[] command) { Group g = c.getMyGroup(); synchronized (g.getAtRoom()) { if (!g.getInBattle()) { CommandServer.informGroup(g, "�A�èS���b�԰����A����n�k�]?\n"); return false; } else { // TODO: implement flee mechanism int prob = PlayerServer.getRandom().nextInt(10); if (prob <= 6) { if (CExit.getAccessibleExitsRoom(g.getAtRoom()) == null) { g.getAtRoom().informRoom( String.format( "%s���\���@�ӪŻطdzưk���԰��A���o�o�{�ж��S���X�f�A�L�k�k��!\n", c.getChiName())); return true; } g.getAtRoom().informRoom( c.getChiName() + "�}���٪o�A�@�ȵҪ����\�k�X�F�Գ��C\n"); g.getBattleTask().removeBattleGroup(g); NpcActionUtil.randomMove(g); } else { g.getAtRoom().informRoom(c.getChiName() + "���հk�]�A���������ѤF!\n"); } } return true; } } @Override public String getHelp() { String output = HelpUtil.getHelp("resources/help/flee.help"); output += "\n"; output += HelpUtil.getHelp("resources/help/chooseTeammate.help"); return output; } }