Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ON TRAITE LES MOVES => ON REUPDATE LES LSITES A CHAQUE MOVE
- else if (!myUnits.isEmpty()) {
- //System.err.println("myUnits size " + myUnits.size());
- for (Unit unit : myUnits) {
- System.err.println("unit id " + unit.id);
- unitNode = state.map.nodes[calcID(unit.x, unit.y)];
- generateMoveList(unit);
- //System.err.println("nodesTomove size " + nodesToMove.size());
- //System.err.println("neutralNodestoMove size " + neutralNodesToMove.size());
- //System.err.println("walkableNodesToMove size " + walkableNodesToMove.size());
- // CASES NEUTRES EN PRIO
- if (!neutralNodesToMove.isEmpty() && state.map.getQG(HIM) != null && unit.level == LEVEL.L1.id) {
- neutralNodesToMove = state.map.sortByDistance(neutralNodesToMove, state.map.getQG(HIM), DISTANCE.MIN);
- actions.add(new Action(ACTIONS.MOVE,unit.id,neutralNodesToMove.get(0).x,neutralNodesToMove.get(0).y));
- state.map.updateUnitMove(unit.level,unitNode.id,neutralNodesToMove.get(0).id);
- myIncome = updateIncome();
- }
- // AUTRES CASES WALKABLE AUTRE QUE ACTIVE ME
- else if (!walkableNodesToMoveNoL3.isEmpty() && unit.level == LEVEL.L1.id && state.map.getQG(HIM) != null) {
- walkableNodesToMoveNoL3 = state.map.sortByDistance(walkableNodesToMoveNoL3, state.map.getQG(HIM), DISTANCE.MAX);
- System.err.println("getqg him " + state.map.getQG(HIM).y + " " + state.map.getQG(HIM).x);
- actions.add(new Action(ACTIONS.MOVE,unit.id,walkableNodesToMoveNoL3.get(0).x,walkableNodesToMoveNoL3.get(0).y));
- state.map.updateUnitMove(unit.level,unitNode.id,walkableNodesToMoveNoL3.get(0).id);
- myIncome = updateIncome();
- }
- // si LEVEL 3 A COTE D'UNE TOUR ENNEMIE => ON LA PETE
- else if (!walkableNodesToMoveL3.isEmpty() && unit.level == LEVEL.L3.id && state.map.getQG(HIM) != null && unitNode.isAdjTower()) {
- for (Node node : walkableNodesToMoveL3) {
- if (node.building == TOWER && node.owner == HIM) {
- actions.add(new Action(ACTIONS.MOVE,unit.id,node.x,node.y));
- state.map.updateUnitMove(unit.level,unitNode.id,node.id);
- myIncome = updateIncome();
- break;
- }
- }
- }
- // si LEVEL 2 A COTE D'UN ENNEMI NIVEAU 1 => ON LE PETE
- else if (!walkableNodesToMoveNoL3.isEmpty() && unit.level == LEVEL.L2.id && state.map.getQG(HIM) != null) {
- for (Node node : walkableNodesToMoveNoL3) {
- if (node.unit == LEVEL.L1.id && node.owner == HIM) {
- actions.add(new Action(ACTIONS.MOVE,unit.id,node.x,node.y));
- state.map.updateUnitMove(unit.level,unitNode.id,node.id);
- myIncome = updateIncome();
- break;
- }
- }
- }
- else if (!walkableNodesToMoveL3.isEmpty() && unit.level == LEVEL.L3.id && state.map.getQG(HIM) != null) {
- walkableNodesToMoveL3 = state.map.sortByDistance(walkableNodesToMoveL3, state.map.getQG(HIM), DISTANCE.MIN);
- actions.add(new Action(ACTIONS.MOVE,unit.id,walkableNodesToMoveL3.get(0).x,walkableNodesToMoveL3.get(0).y));
- state.map.updateUnitMove(unit.level,unitNode.id,walkableNodesToMoveL3.get(0).id);
- myIncome = updateIncome();
- }
- // CASE ACTIVE ME => on ne fait que push
- else if (!walkableNodesToPushNoL3.isEmpty() && unit.level != LEVEL.L3.id && state.map.getQG(HIM) != null) {
- walkableNodesToPushNoL3 = state.map.sortByDistance(walkableNodesToPushNoL3, state.map.getQG(HIM), DISTANCE.MIN);
- if (state.map.getQG(HIM) != null && walkableNodesToPushNoL3.get(0).getDistance(state.map.getQG(HIM)) < unitNode.getDistance(state.map.getQG(HIM))) {
- actions.add(new Action(ACTIONS.MOVE,unit.id,walkableNodesToPushNoL3.get(0).x,walkableNodesToPushNoL3.get(0).y));
- state.map.updateUnitMove(unit.level,unitNode.id,walkableNodesToPushNoL3.get(0).id);
- myIncome = updateIncome();
- }
- }
- else if (!walkableNodesToPushL3.isEmpty() && unit.level == LEVEL.L3.id && state.map.getQG(HIM) != null) {
- System.err.println("L3 push ");
- walkableNodesToPushL3 = state.map.sortByDistance(walkableNodesToPushL3, state.map.getQG(HIM), DISTANCE.MIN);
- if (state.map.getQG(HIM) != null && walkableNodesToPushL3.get(0).getDistance(state.map.getQG(HIM)) < unitNode.getDistance(state.map.getQG(HIM))) {
- actions.add(new Action(ACTIONS.MOVE,unit.id,walkableNodesToPushL3.get(0).x,walkableNodesToPushL3.get(0).y));
- state.map.updateUnitMove(unit.level,unitNode.id,walkableNodesToPushL3.get(0).id);
- myIncome = updateIncome();
- }
- }
- // WAIT
- else {
- actions.add(new Action(ACTIONS.WAIT));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement