diff --git a/core/app/GameController.java b/core/app/GameController.java index 07334ffbfb608032fc0002d24060bfb1d9d8acf3..e5c4f61cc44d20ea12ffb9a8eaa280278df6e4e1 100644 --- a/core/app/GameController.java +++ b/core/app/GameController.java @@ -83,8 +83,8 @@ public class GameController implements PropertyChangeListener{ if(lastKey != null) { // previous values of the players ZPM counts - int prevColonelZpm = Model.getInstance().getColonel().getZpmCount(); - int prevJaffaZpm = Model.getInstance().getJaffa().getZpmCount(); + Integer prevColonelZpm = Model.getInstance().getColonel().getZpmCount(); + Integer prevJaffaZpm = Model.getInstance().getJaffa().getZpmCount(); switch(lastKey) { @@ -214,8 +214,7 @@ public class GameController implements PropertyChangeListener{ break; } - takenUpZPMCountInOneTurn += updateZPMCount( rZPMCount, prevColonelZpm, prevJaffaZpm ); - takenUpZPMCountInOneTurn = invokeZPMSpawn(takenUpZPMCountInOneTurn); + updateZPMCount( rZPMCount, prevColonelZpm, prevJaffaZpm ); } // end of if key pressed } // end of while @@ -225,45 +224,6 @@ public class GameController implements PropertyChangeListener{ return; // Map finished } - /** - * Checks if a new ZPM should be spawned. - * If so, than it creates a zpm in a random empty Field - * @param zpms zpm's taken up since the last spawn - * @return zpm's tanken up since the last spawn - */ - private int invokeZPMSpawn(int zpms) { - if(zpms > 1) { - randomZPMSpawn(); - return 0; - } - return zpms; - } - - /** - * Searches for an empty field and inserts a zpm - */ - private void randomZPMSpawn() { - boolean ready = false; - ArrayList<Field> map = Model.getInstance().getMap(); - - - Random rand = new Random(); - while( !ready ) { - // TODO not works - int randNum = rand.nextInt(map.size()); - if(map.get(randNum).getElementNum() == 0) { - - System.out.println("new zpm at: " + randNum); - Field chosedField = map.get(randNum); - ZPM zpm = new ZPM(chosedField); - chosedField.addElement(zpm); - chosedField.addToInsert(zpm); - ready = true; - } - } - - } - private void updateViewToolbar(Integer beforeColonelLives, Integer beforeJaffaLives) { int afterColonelLives = Model.getInstance().getColonel().getPlayerLives(); @@ -324,7 +284,7 @@ public class GameController implements PropertyChangeListener{ * @param prevColonelZpm the previous ZPM count of * the colonel on the current map */ - private int updateZPMCount( int[] rZPMCount, int prevColonelZpm, int prevJaffaZpm) + private void updateZPMCount( int[] rZPMCount, Integer prevColonelZpm, Integer prevJaffaZpm) { if( rZPMCount == null) rZPMCount = new int[] {0, 0}; @@ -336,17 +296,9 @@ public class GameController implements PropertyChangeListener{ rZPMCount[0] += colonelZPMChange; rZPMCount[1] += jaffaZPMChange; - int returnValue = colonelZPMChange + jaffaZPMChange; - - - // update previous values of ZPM's on the current map - prevColonelZpm = Model.getInstance().getColonel().getZpmCount(); - prevJaffaZpm = Model.getInstance().getJaffa().getZpmCount(); this.view.setColonelZPMDisplayed(rZPMCount[0]); this.view.setJaffaZPMDisplayed(rZPMCount[1]); - - return returnValue; } @Override diff --git a/core/game/Model.java b/core/game/Model.java index b8c276e8541e7edf27244b8f2ad3a4dbe0190801..8b7f978fa5fd455634bd206b64960a8632cb0ad2 100644 --- a/core/game/Model.java +++ b/core/game/Model.java @@ -145,7 +145,7 @@ public class Model implements PropertyChangeListener int rndNum = rnd.nextInt(options.size()); Field tmp = options.get(rndNum); - tmp.addElement(new ZPM(tmp)); + tmp.meet(new ZPM(tmp)); this.ZPMs++; } } diff --git a/core/mapobjs/defobjs/Field.java b/core/mapobjs/defobjs/Field.java index 553482b3d59223a364271c03c460f7a3501472cb..b0691d97466435ce5c28ad5ca4568bf16ab04bd4 100644 --- a/core/mapobjs/defobjs/Field.java +++ b/core/mapobjs/defobjs/Field.java @@ -338,4 +338,14 @@ public class Field implements IElement { return false; } + + public boolean meet(ZPM zpm) + { + if(elements.size() != 0) + return false; + + addToInsert(zpm); + insertInsertables(); + return true; + } }