diff --git a/Arctic_Nigthmare/src/arctic_nightmare/Audio.java b/Arctic_Nigthmare/src/arctic_nightmare/Audio.java index 6a28f35548dbb933ca2174163d544c66212cfbf9..f63531f629f53cc9bd23f6cacaae8afab1944dee 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/Audio.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/Audio.java @@ -40,13 +40,13 @@ public class Audio { public void play() { clip.setFramePosition(0); - clip.start(); + //clip.start(); } public void play(float newvolume) { clip.setFramePosition(0); - clip.start(); + //clip.start(); FloatControl volume = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN); double gain = 0.1; float dB = (float) (Math.log(gain) / Math.log(10.0) * 20.0); diff --git a/Arctic_Nigthmare/src/arctic_nightmare/Block.java b/Arctic_Nigthmare/src/arctic_nightmare/Block.java index 96e9533d12f6cc104400c865de54eeca30c8b2ee..762ed76e3668e2cb14103066db3d0316b5dca793 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/Block.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/Block.java @@ -50,7 +50,8 @@ public class Block extends JLabel{ removeImages(); if (field.snow > 0 || field.capacity > 0) { - if (field.item != null) images.add(new ScaledImagePanel(window, field.itemPickable ? MediaAssociation.getImage(field.item.getName()) : MediaAssociation.getImageCovered(field.item.getName()), x + (int)(width*0.5)-10, y +(int)(height*0.5)-10, 20, 20)); + if (field.item != null) images.add(new ScaledImagePanel(window, field.itemPickable ? MediaAssociation.getImage(field.item.getName()) : MediaAssociation.getImageCovered(field.item.getName()), x + (int)(width*0.5)-10, y +(int)(height*0.5)-10, 20, 20)); + //if (field.item != null && field.snow == 0) images.add(new ScaledImagePanel(window, field.itemPickable ? MediaAssociation.getImage(field.item.getName()) : MediaAssociation.getImageCovered(field.item.getName()), x + (int)(width*0.5)-10, y +(int)(height*0.5)-10, 20, 20)); if (field.bear != null) images.add(new ScaledImagePanel(window, MediaAssociation.getImage("bear"), x + (int)(width*0.33), y +(int)(2 * height*0.3), (int)(width*0.33), (int)(height*0.33))); for(int i = 0; field.persons.size() > i; i ++) images.add(new ScaledImagePanel(window, MediaAssociation.getImage(field.persons.get(i) instanceof Eskimo ? "eskimo" : "explorer"), x + (int)(width*(0.1 + 0.1 * i)), y +(int)(height*0.1), (int)(width*0.33), (int)(height*0.33))); if (field.hasIgloo) images.add(new ScaledImagePanel(window, MediaAssociation.getImage("igloo"), x + (int)(2 *width*0.33), y +(int)(height*0.33), (int)(width*0.33), (int)(height*0.33))); diff --git a/Arctic_Nigthmare/src/arctic_nightmare/Board.java b/Arctic_Nigthmare/src/arctic_nightmare/Board.java index 824ac9df71db98d468e7ce54c960fd93c58d6d4f..3a227bc5e79468518d788b20185a7c321811648d 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/Board.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/Board.java @@ -72,10 +72,15 @@ public class Board { fields.add(f); } - public void makeBlizzard() throws PlayerDiedException{ - for(Field f : fields) - f.blizzard(1); - + public boolean makeBlizzard() throws PlayerDiedException{ + Random rand = new Random(); + if(rand.nextInt() % 2 == 0) { + for(Field f : fields) + if(rand.nextInt() % 5 == 0) + f.blizzard(1); + return true; + } + return false; } public Field getfield(int i) { diff --git a/Arctic_Nigthmare/src/arctic_nightmare/Field.java b/Arctic_Nigthmare/src/arctic_nightmare/Field.java index 503f7c3888f34df47a89cfea2e9bc961bf069805..9a7e906686cb0689d6253f2359b981b27852e0d6 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/Field.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/Field.java @@ -158,7 +158,11 @@ public abstract class Field { } public boolean setTent(Tent t) { - if(tent != null) return false; + if(tent != null) { + if(t == null) + tent = null; + return false; + } tent = t; return true; } diff --git a/Arctic_Nigthmare/src/arctic_nightmare/Game.java b/Arctic_Nigthmare/src/arctic_nightmare/Game.java index 0dd0c79d0a8aa5ee8d04586c14bcacce2291d692..c34db777269bf16835a633126d726a6284d28e97 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/Game.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/Game.java @@ -49,6 +49,8 @@ public class Game{ int nextPlayerIdx = actualPlayerIdx + 1; if(nextPlayerIdx >= players.size()) { nextPlayerIdx = 0; + if(board.makeBlizzard()) + window.drawBlizzard(); bear.step(); } setActualPerson(nextPlayerIdx); @@ -57,7 +59,7 @@ public class Game{ public void play(Event ev) { try { actualPlayer.event(ev); - if(actualPlayer.getWork() == 0) { + if(actualPlayer.getWork() <= 0) { nextPlayer(); actualPlayer.enablePlayer(); } diff --git a/Arctic_Nigthmare/src/arctic_nightmare/GameWindow.java b/Arctic_Nigthmare/src/arctic_nightmare/GameWindow.java index 2b9d7f8ec44933e97b1cbaf24c2030e7090918e9..657f8efb4cdcbb6e5a33dbee0d00ee4965a47db6 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/GameWindow.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/GameWindow.java @@ -174,6 +174,10 @@ public class GameWindow extends JFrame{ else lastclick = event; } + public void drawBlizzard() { + System.out.println("Blizzard"); + } + /////////////////// // Dialogwindows // /////////////////// @@ -184,7 +188,7 @@ public class GameWindow extends JFrame{ UI.put("OptionPane.background", new Color(255, 255, 255)); UI.put("Panel.background", Color.white); String[] size = {"4", "5", "6", "7"}; - String[] players = {"2", "3", "4", "5", "6"}; + String[] players = {"3", "4", "5", "6"}; JComboBox<String> combo = new JComboBox<>(size); JComboBox<String> combo1 = new JComboBox<>(players); JPanel panel0 = new JPanel(new FlowLayout()); diff --git a/Arctic_Nigthmare/src/arctic_nightmare/Person.java b/Arctic_Nigthmare/src/arctic_nightmare/Person.java index ef178cce3ee40e5ec356dcc411c04277b695f753..9e966aff08e87e7d4372ee5aaa5957a4d6aa76e4 100644 --- a/Arctic_Nigthmare/src/arctic_nightmare/Person.java +++ b/Arctic_Nigthmare/src/arctic_nightmare/Person.java @@ -63,7 +63,7 @@ public abstract class Person { } } if(b[0] && b[1] && b[2] && persons.size() == game.getPlayerNumber()) { - throw new PlayersWinException(name + "shoot the flare, and the good guys win again!"); + throw new PlayersWinException(name + " shoot the flare, and the good guys win again!"); } } @@ -266,7 +266,11 @@ public abstract class Person { public void enablePlayer() { setWork(4); - if(builtTent != null) builtTent.removeFromField(); + if(builtTent != null) { + builtTent.removeFromField(); + System.out.println("Sátor"); + builtTent = null; + } } public void buildTent() { @@ -276,6 +280,7 @@ public abstract class Person { if(it.use(field)) { items.remove(it); work--; + builtTent = (Tent) it; } break; }