added inventory and items
This commit is contained in:
parent
beedda8b62
commit
20c77ace10
@ -11,8 +11,8 @@ import java.io.FileNotFoundException;
|
|||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class InteractionCell extends Cell {
|
public class InteractionCell extends Cell {
|
||||||
private String message;
|
protected String message;
|
||||||
private ruscz.game.gameOfProd.Dialog.Dialog dialog;
|
protected ruscz.game.gameOfProd.Dialog.Dialog dialog;
|
||||||
private Scanner scanner;
|
private Scanner scanner;
|
||||||
private ImageCell imageCell;
|
private ImageCell imageCell;
|
||||||
private WindowOfFreeMove window;
|
private WindowOfFreeMove window;
|
||||||
|
|||||||
@ -110,11 +110,19 @@ public class Person extends Cell {
|
|||||||
else {
|
else {
|
||||||
door.readNextLine();
|
door.readNextLine();
|
||||||
}
|
}
|
||||||
|
} else if (isItemInFront(x, y, directionSight)) {
|
||||||
|
if (!isInEvent) {
|
||||||
|
isInEvent = true;
|
||||||
|
map.findItemByXY(x, y, directionSight).startEvent();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
map.findItemByXY(x, y, directionSight).endEvent();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (directionMove != WindowOfFreeMove.KEY_EVENT) {
|
if (directionMove != WindowOfFreeMove.KEY_EVENT) {
|
||||||
if (directionMove != 0 && !map.isBusyCell(x, y, true) && !map.isInteractionCell(x, y) && !map.isClosedDoor(x, y)) {
|
if (directionMove != 0 && !map.isBusyCell(x, y, true) && !map.isInteractionCell(x, y) && !map.isClosedDoor(x, y) && !map.isItem(x, y)) {
|
||||||
directionMoveLast = directionMove;
|
directionMoveLast = directionMove;
|
||||||
isMoving = true;
|
isMoving = true;
|
||||||
} else if (directionMove != 0 && map.isBusyCell(x, y, true)) {
|
} else if (directionMove != 0 && map.isBusyCell(x, y, true)) {
|
||||||
@ -123,6 +131,8 @@ public class Person extends Cell {
|
|||||||
directionMoveLast = 0;
|
directionMoveLast = 0;
|
||||||
} else if (directionMove != 0 && map.isClosedDoor(x, y)) {
|
} else if (directionMove != 0 && map.isClosedDoor(x, y)) {
|
||||||
directionMoveLast = 0;
|
directionMoveLast = 0;
|
||||||
|
} else if (directionMove != 0 && map.isItem(x, y)) {
|
||||||
|
directionMoveLast = 0;
|
||||||
}
|
}
|
||||||
if (map.isCellMoveTo(x, y) && !map.isClosedDoor(x, y)) {
|
if (map.isCellMoveTo(x, y) && !map.isClosedDoor(x, y)) {
|
||||||
set(x, y);
|
set(x, y);
|
||||||
@ -131,7 +141,7 @@ public class Person extends Cell {
|
|||||||
map.findEventByXY(x, y).moveToMap();
|
map.findEventByXY(x, y).moveToMap();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!map.isInteractionCell(x, y) && !map.isBusyCell(x, y, true) && !map.isClosedDoor(x, y)) {
|
if (!map.isInteractionCell(x, y) && !map.isBusyCell(x, y, true) && !map.isClosedDoor(x, y) && !map.isItem(x, y)) {
|
||||||
set(x, y);
|
set(x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -152,39 +162,18 @@ public class Person extends Cell {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isEventInFront(int x, int y, int directionSight) {
|
private boolean isEventInFront(int x, int y, int directionSight) {
|
||||||
switch (directionSight) {
|
int[] coords = map.directionSightSwitch(x, y, directionSight);
|
||||||
case 1:
|
return map.isInteractionCell(coords[0], coords[1]);
|
||||||
x--;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
x++;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
y--;
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
y++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return map.isInteractionCell(x, y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isDoorInFront(int x, int y, int directionSight) {
|
private boolean isDoorInFront(int x, int y, int directionSight) {
|
||||||
switch (directionSight) {
|
int[] coords = map.directionSightSwitch(x, y, directionSight);
|
||||||
case 1:
|
return map.isDoor(coords[0], coords[1]);
|
||||||
x--;
|
}
|
||||||
break;
|
|
||||||
case 3:
|
private boolean isItemInFront(int x, int y, int directionSight) {
|
||||||
x++;
|
int[] coords = map.directionSightSwitch(x, y, directionSight);
|
||||||
break;
|
return map.isActiveItem(coords[0], coords[1]);
|
||||||
case 2:
|
|
||||||
y--;
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
y++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return map.isDoor(x, y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stopPerson(){
|
public void stopPerson(){
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
package ruscz.game.gameOfProd.Image;
|
package ruscz.game.gameOfProd.Image;
|
||||||
|
|
||||||
import ruscz.game.gameOfProd.Cells.Cell;
|
|
||||||
import ruscz.game.gameOfProd.Windows.WindowOfFreeMove;
|
import ruscz.game.gameOfProd.Windows.WindowOfFreeMove;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
@ -18,6 +17,7 @@ public class ImageCell {
|
|||||||
private LinkedList<BufferedImage> imagesOfTiles;
|
private LinkedList<BufferedImage> imagesOfTiles;
|
||||||
private HashMap<String, Integer> cellMap;
|
private HashMap<String, Integer> cellMap;
|
||||||
private ImageDoor imageDoor;
|
private ImageDoor imageDoor;
|
||||||
|
private LinkedList<BufferedImage> imagesOfItems;
|
||||||
private int[][] mapBackground;
|
private int[][] mapBackground;
|
||||||
private int[][] mapForeground;
|
private int[][] mapForeground;
|
||||||
|
|
||||||
@ -34,6 +34,10 @@ public class ImageCell {
|
|||||||
String[] mapInfo = data.split(" ");
|
String[] mapInfo = data.split(" ");
|
||||||
imageTileset(mapInfo);
|
imageTileset(mapInfo);
|
||||||
}
|
}
|
||||||
|
else if (data.contains("<items>")) {
|
||||||
|
String[] mapInfo = data.split(" ");
|
||||||
|
imageItem(mapInfo);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
String[] mapColumn = data.split(" ");
|
String[] mapColumn = data.split(" ");
|
||||||
for (int i = 0; i < mapColumn.length; i++) {
|
for (int i = 0; i < mapColumn.length; i++) {
|
||||||
@ -127,6 +131,38 @@ public class ImageCell {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void imageItem(String[] itemInfo) {
|
||||||
|
int imageWidth = 0;
|
||||||
|
int imageHeight = 0;
|
||||||
|
int size = 0;
|
||||||
|
try {
|
||||||
|
image = ImageIO.read(new File("src/main/resources/items/" + itemInfo[1]));
|
||||||
|
imageWidth = Integer.parseInt(itemInfo[2]);
|
||||||
|
imageHeight = Integer.parseInt(itemInfo[3]);
|
||||||
|
size = Integer.parseInt(itemInfo[4]);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
int Xtiles = imageWidth / size;
|
||||||
|
int Ytiles = imageHeight / size;
|
||||||
|
int tiles = Xtiles * Ytiles;
|
||||||
|
|
||||||
|
if (imagesOfItems == null)
|
||||||
|
imagesOfItems = new LinkedList<BufferedImage>();
|
||||||
|
|
||||||
|
for (int i = 0; i < Xtiles; i++) {
|
||||||
|
for (int j = 0; j < Ytiles; j++) {
|
||||||
|
BufferedImage img = image.getSubimage(size * i, size * j, size, size);
|
||||||
|
imagesOfItems.add(img);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public LinkedList<BufferedImage> getImagesOfItems() {
|
||||||
|
return imagesOfItems;
|
||||||
|
}
|
||||||
|
|
||||||
public int getImageFromCellMap(String cell) {
|
public int getImageFromCellMap(String cell) {
|
||||||
return cellMap.get(cell);
|
return cellMap.get(cell);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,36 @@
|
|||||||
|
package ruscz.game.gameOfProd.Inventory;
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
|
||||||
|
public class InventoryManager {
|
||||||
|
private static LinkedList<Item> inventory = new LinkedList<Item>();
|
||||||
|
|
||||||
|
|
||||||
|
public static void addItem(Item item) {
|
||||||
|
inventory.add(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void flushInventory() {
|
||||||
|
inventory = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isInInventory(Item item) {
|
||||||
|
for (Item inventoryItem : inventory) {
|
||||||
|
if (inventoryItem == item) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void removeItem(Item item) {
|
||||||
|
inventory.remove(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LinkedList<Item> getInventory() { return inventory; }
|
||||||
|
|
||||||
|
public static Item findItemByName(String name) {
|
||||||
|
for (Item item : inventory) {
|
||||||
|
if (item.getName().equals(name)) return item;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
102
src/main/java/ruscz/game/gameOfProd/Inventory/Item.java
Normal file
102
src/main/java/ruscz/game/gameOfProd/Inventory/Item.java
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
package ruscz.game.gameOfProd.Inventory;
|
||||||
|
|
||||||
|
import ruscz.game.gameOfProd.Cells.InteractionCell;
|
||||||
|
import ruscz.game.gameOfProd.Cells.Person;
|
||||||
|
import ruscz.game.gameOfProd.Dialog.Dialog;
|
||||||
|
import ruscz.game.gameOfProd.Image.ImageCell;
|
||||||
|
import ruscz.game.gameOfProd.Windows.WindowOfFreeMove;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
public class Item extends InteractionCell {
|
||||||
|
private ItemAction itemAction;
|
||||||
|
private String name;
|
||||||
|
private int multiplicity;
|
||||||
|
private int image;
|
||||||
|
private boolean isActive;
|
||||||
|
|
||||||
|
public Item(int x, int y, String name, Dialog dialog, ImageCell imageCell, WindowOfFreeMove window, int multiplicity, int image, String itemAction) {
|
||||||
|
super(x, y, null, dialog, imageCell, window, true);
|
||||||
|
message = parseNameToMessage(name);
|
||||||
|
this.image = image;
|
||||||
|
this.multiplicity = multiplicity;
|
||||||
|
setItemActionByName(itemAction);
|
||||||
|
this.isActive = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Item(int x, int y, String name, Dialog dialog, ImageCell imageCell, WindowOfFreeMove window, int image, String itemAction) {
|
||||||
|
super(x, y, null, dialog, imageCell, window, true);
|
||||||
|
message = parseNameToMessage(name);
|
||||||
|
this.image = image;
|
||||||
|
this.multiplicity = 1;
|
||||||
|
setItemActionByName(itemAction);
|
||||||
|
this.isActive = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void startEvent() {
|
||||||
|
WindowOfFreeMove.setCanPersonMove(false);
|
||||||
|
this.dialog.hideText();
|
||||||
|
this.dialog.setText(message);
|
||||||
|
this.dialog.showText();
|
||||||
|
InventoryManager.addItem(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void endEvent() {
|
||||||
|
this.isActive = false;
|
||||||
|
this.dialog.hideText();
|
||||||
|
this.dialog.setImageDialog(null);
|
||||||
|
Person.setInEvent(false);
|
||||||
|
WindowOfFreeMove.setCanPersonMove(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setItemActionByName(String action) {
|
||||||
|
switch (action) {
|
||||||
|
case "heal":
|
||||||
|
itemAction = ItemAction.HEAL;
|
||||||
|
break;
|
||||||
|
case "mana":
|
||||||
|
itemAction = ItemAction.MANA;
|
||||||
|
break;
|
||||||
|
case "def":
|
||||||
|
itemAction = ItemAction.DEFENCE;
|
||||||
|
break;
|
||||||
|
case "str":
|
||||||
|
itemAction = ItemAction.STRENGTH;
|
||||||
|
break;
|
||||||
|
case "key":
|
||||||
|
itemAction = ItemAction.KEY;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String parseNameToMessage(String name) {
|
||||||
|
name = name.replace("-", " ");
|
||||||
|
this.name = name.substring(0,1).toUpperCase() + name.substring(1);
|
||||||
|
String message = this.name + " was added to your inventory.";
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() { return name; }
|
||||||
|
|
||||||
|
public int getImage() { return image; }
|
||||||
|
|
||||||
|
public int getMultiplicity() { return multiplicity; }
|
||||||
|
|
||||||
|
public void hideItem() {
|
||||||
|
isActive = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isActive() {
|
||||||
|
return isActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paint(Graphics2D g) {
|
||||||
|
if (isActive) {
|
||||||
|
g.drawImage(super.getImageCell().getImagesOfItems().get(image), getX() * getSize(),
|
||||||
|
getY() * getSize(), getSize() / 2, getSize() / 2, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
package ruscz.game.gameOfProd.Inventory;
|
||||||
|
|
||||||
|
public enum ItemAction {
|
||||||
|
HEAL, MANA, DEFENCE, STRENGTH, KEY;
|
||||||
|
}
|
||||||
@ -3,6 +3,8 @@ package ruscz.game.gameOfProd.Map;
|
|||||||
import ruscz.game.gameOfProd.Cells.*;
|
import ruscz.game.gameOfProd.Cells.*;
|
||||||
import ruscz.game.gameOfProd.Dialog.Dialog;
|
import ruscz.game.gameOfProd.Dialog.Dialog;
|
||||||
import ruscz.game.gameOfProd.Image.ImageCell;
|
import ruscz.game.gameOfProd.Image.ImageCell;
|
||||||
|
import ruscz.game.gameOfProd.Inventory.Item;
|
||||||
|
import ruscz.game.gameOfProd.Inventory.ItemAction;
|
||||||
import ruscz.game.gameOfProd.Windows.WindowOfFreeMove;
|
import ruscz.game.gameOfProd.Windows.WindowOfFreeMove;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -19,6 +21,7 @@ public class Map {
|
|||||||
private LinkedList<InteractionCell> interactionCells;
|
private LinkedList<InteractionCell> interactionCells;
|
||||||
private LinkedList<TriggerCell> triggerCells;
|
private LinkedList<TriggerCell> triggerCells;
|
||||||
private LinkedList<DoorCell> doorCells;
|
private LinkedList<DoorCell> doorCells;
|
||||||
|
private LinkedList<Item> items;
|
||||||
private LinkedList<Npc> npcs;
|
private LinkedList<Npc> npcs;
|
||||||
private int idExit;
|
private int idExit;
|
||||||
private ImageCell imageCell;
|
private ImageCell imageCell;
|
||||||
@ -34,6 +37,7 @@ public class Map {
|
|||||||
doorCells = new LinkedList<>();
|
doorCells = new LinkedList<>();
|
||||||
block = new LinkedList<>();
|
block = new LinkedList<>();
|
||||||
imageCell = new ImageCell();
|
imageCell = new ImageCell();
|
||||||
|
items = new LinkedList<>();
|
||||||
npcs = new LinkedList<>();
|
npcs = new LinkedList<>();
|
||||||
this.mapArray = mapArray;
|
this.mapArray = mapArray;
|
||||||
person = new Person(this);
|
person = new Person(this);
|
||||||
@ -113,6 +117,12 @@ public class Map {
|
|||||||
map.addInteractionEvent(new DoorCell(x, y, Boolean.parseBoolean(door[1]), map.getImageCell(), window));
|
map.addInteractionEvent(new DoorCell(x, y, Boolean.parseBoolean(door[1]), map.getImageCell(), window));
|
||||||
else
|
else
|
||||||
map.addInteractionEvent(new DoorCell(x, y, Boolean.parseBoolean(door[1]), door[2], new Dialog(window.getDialogBar()), map.getImageCell(), window, Boolean.parseBoolean(door[3])));
|
map.addInteractionEvent(new DoorCell(x, y, Boolean.parseBoolean(door[1]), door[2], new Dialog(window.getDialogBar()), map.getImageCell(), window, Boolean.parseBoolean(door[3])));
|
||||||
|
} else if (line[x].contains("ITEM")) {
|
||||||
|
String[] item = line[x].split(",");
|
||||||
|
if (item.length == 5)
|
||||||
|
map.addInteractionEvent(new Item(x, y, item[1], new Dialog(window.getDialogBar()), map.getImageCell(), window, Integer.parseInt(item[2]), Integer.parseInt(item[3]), item[4]));
|
||||||
|
else
|
||||||
|
map.addInteractionEvent(new Item(x, y, item[1], new Dialog(window.getDialogBar()), map.getImageCell(), window, Integer.parseInt(item[2]), item[3]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -176,6 +186,11 @@ public class Map {
|
|||||||
doorCells.add(doorCell);
|
doorCells.add(doorCell);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addInteractionEvent(Item item) {
|
||||||
|
mapArray[item.getX()][item.getY()] = TypeOfCell.EVENT;
|
||||||
|
items.add(item);
|
||||||
|
}
|
||||||
|
|
||||||
public void setNpcs(Npc npc){
|
public void setNpcs(Npc npc){
|
||||||
npcs.add(npc);
|
npcs.add(npc);
|
||||||
}
|
}
|
||||||
@ -216,6 +231,8 @@ public class Map {
|
|||||||
|
|
||||||
public LinkedList<DoorCell> getDoorCells() { return doorCells; }
|
public LinkedList<DoorCell> getDoorCells() { return doorCells; }
|
||||||
|
|
||||||
|
public LinkedList<Item> getItems() { return items; }
|
||||||
|
|
||||||
public void setIdExit(int id) {
|
public void setIdExit(int id) {
|
||||||
this.idExit = id;
|
this.idExit = id;
|
||||||
}
|
}
|
||||||
@ -287,6 +304,20 @@ public class Map {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isActiveItem(int x, int y) {
|
||||||
|
for (Item item : items)
|
||||||
|
if (x == item.getX() && y == item.getY() && item.getClass().getName().equals("ruscz.game.gameOfProd.Inventory.Item") && item.isActive())
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isItem(int x, int y) {
|
||||||
|
for (Item item : items)
|
||||||
|
if (x == item.getX() && y == item.getY() && item.getClass().getName().equals("ruscz.game.gameOfProd.Inventory.Item"))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public EventMoveToCell findEventByXY(int x, int y) {
|
public EventMoveToCell findEventByXY(int x, int y) {
|
||||||
for (EventMoveToCell cell : moveToCells)
|
for (EventMoveToCell cell : moveToCells)
|
||||||
if (x == cell.getX() && y == cell.getY())
|
if (x == cell.getX() && y == cell.getY())
|
||||||
@ -295,22 +326,9 @@ public class Map {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public InteractionCell findInteractionByXY(int x, int y, int directionSight) {
|
public InteractionCell findInteractionByXY(int x, int y, int directionSight) {
|
||||||
switch (directionSight) {
|
int[] coords = directionSightSwitch(x, y, directionSight);
|
||||||
case 1:
|
|
||||||
x--;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
x++;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
y--;
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
y++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
for (InteractionCell cell : interactionCells)
|
for (InteractionCell cell : interactionCells)
|
||||||
if (x == cell.getX() && y == cell.getY())
|
if (coords[0] == cell.getX() && coords[1] == cell.getY())
|
||||||
return cell;
|
return cell;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -330,22 +348,9 @@ public class Map {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public DoorCell findDoorByXY(int x, int y, int directionSight) {
|
public DoorCell findDoorByXY(int x, int y, int directionSight) {
|
||||||
switch (directionSight) {
|
int[] coords = directionSightSwitch(x, y, directionSight);
|
||||||
case 1:
|
|
||||||
x--;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
x++;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
y--;
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
y++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
for (DoorCell cell : doorCells)
|
for (DoorCell cell : doorCells)
|
||||||
if (x == cell.getX() && y == cell.getY())
|
if (coords[0] == cell.getX() && coords[1] == cell.getY())
|
||||||
return cell;
|
return cell;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -363,4 +368,31 @@ public class Map {
|
|||||||
return cell;
|
return cell;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Item findItemByXY(int x, int y, int directionSight) {
|
||||||
|
int[] coords = directionSightSwitch(x, y, directionSight);
|
||||||
|
for (Item item : items)
|
||||||
|
if (coords[0] == item.getX() && coords[1] == item.getY())
|
||||||
|
return item;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] directionSightSwitch(int x, int y, int directionSight) {
|
||||||
|
switch (directionSight) {
|
||||||
|
case 1:
|
||||||
|
x--;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
x++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
y--;
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
y++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
int[] coords = {x, y};
|
||||||
|
return coords;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package ruscz.game.gameOfProd.Windows;
|
|||||||
|
|
||||||
import ruscz.game.gameOfProd.Cells.*;
|
import ruscz.game.gameOfProd.Cells.*;
|
||||||
import ruscz.game.gameOfProd.Dialog.DialogBar;
|
import ruscz.game.gameOfProd.Dialog.DialogBar;
|
||||||
|
import ruscz.game.gameOfProd.Inventory.Item;
|
||||||
import ruscz.game.gameOfProd.Map.Map;
|
import ruscz.game.gameOfProd.Map.Map;
|
||||||
import ruscz.game.gameOfProd.Map.MapManager;
|
import ruscz.game.gameOfProd.Map.MapManager;
|
||||||
import ruscz.game.gameOfProd.Sounds.MusicManager;
|
import ruscz.game.gameOfProd.Sounds.MusicManager;
|
||||||
@ -216,6 +217,9 @@ public class WindowOfFreeMove extends JLayeredPane {
|
|||||||
for (int j = 0; j < mapManager.getActualMap().getCanvasSize()[1]; j++) {
|
for (int j = 0; j < mapManager.getActualMap().getCanvasSize()[1]; j++) {
|
||||||
mapManager.getActualMap().getImageCell().paintForeground(g2D, j, i);
|
mapManager.getActualMap().getImageCell().paintForeground(g2D, j, i);
|
||||||
}
|
}
|
||||||
|
for (Item item : mapManager.getActualMap().getItems()) {
|
||||||
|
if (item.getY() == i) item.paint(g2D);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
src/main/resources/items/TransparentIcons.png
Normal file
BIN
src/main/resources/items/TransparentIcons.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 121 KiB |
@ -2,6 +2,7 @@
|
|||||||
<tileset> Openspace1.png 512 512 32
|
<tileset> Openspace1.png 512 512 32
|
||||||
<tileset> Openspace2.png 512 512 32
|
<tileset> Openspace2.png 512 512 32
|
||||||
<tileset> D_Inside_House.png 512 512 32
|
<tileset> D_Inside_House.png 512 512 32
|
||||||
|
<items> TransparentIcons.png 512 640 32
|
||||||
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
|
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
|
||||||
6 117 117 117 117 117 117 117 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
|
6 117 117 117 117 117 117 117 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
|
||||||
6 117 117 117 117 117 117 117 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
|
6 117 117 117 117 117 117 117 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
|
||||||
|
|||||||
@ -6,7 +6,7 @@ BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK,u EMPTY EMPTY EMPTY BLOCK
|
|||||||
BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY DOOR,false EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
|
BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY DOOR,false EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
|
||||||
BLOCK BLOCK,d EMPTY BLOCK,d BLOCK,d BLOCK,d EMPTY BLOCK,d BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
|
BLOCK BLOCK,d EMPTY BLOCK,d BLOCK,d BLOCK,d EMPTY BLOCK,d BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
|
||||||
BLOCK BLOCK DOOR,true,locked,false BLOCK BLOCK BLOCK DOOR,true BLOCK BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
|
BLOCK BLOCK DOOR,true,locked,false BLOCK BLOCK BLOCK DOOR,true BLOCK BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
|
||||||
BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
|
BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block ITEM,white-key-card,19,key block block EMPTY block
|
||||||
BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK
|
BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK
|
||||||
BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK BLOCK,d BLOCK,d BLOCK,d EMPTY BLOCK,d BLOCK,d BLOCK
|
BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK BLOCK,d BLOCK,d BLOCK,d EMPTY BLOCK,d BLOCK,d BLOCK
|
||||||
BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY EMPTY EMPTY BLOCK BLOCK BLOCK BLOCK DOOR,true BLOCK BLOCK BLOCK
|
BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY EMPTY EMPTY BLOCK BLOCK BLOCK BLOCK DOOR,true BLOCK BLOCK BLOCK
|
||||||
|
|||||||
70
src/main/resources/save/savedGame/events-DESKTOP-TL25DTN.txt
Normal file
70
src/main/resources/save/savedGame/events-DESKTOP-TL25DTN.txt
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<map>
|
||||||
|
<mapName>m1</mapName>
|
||||||
|
<events>
|
||||||
|
</events>
|
||||||
|
</map>
|
||||||
|
<map>
|
||||||
|
<mapName>m2</mapName>
|
||||||
|
<events>
|
||||||
|
<event>
|
||||||
|
<x>7</x>
|
||||||
|
<y>2</y>
|
||||||
|
<active>true</active>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
</map>
|
||||||
|
<map>
|
||||||
|
<mapName>m3</mapName>
|
||||||
|
<events>
|
||||||
|
<event>
|
||||||
|
<x>2</x>
|
||||||
|
<y>5</y>
|
||||||
|
<active>true</active>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
</map>
|
||||||
|
<map>
|
||||||
|
<mapName>m4</mapName>
|
||||||
|
<events>
|
||||||
|
<event>
|
||||||
|
<x>3</x>
|
||||||
|
<y>3</y>
|
||||||
|
<active>true</active>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
</map>
|
||||||
|
<map>
|
||||||
|
<mapName>m5</mapName>
|
||||||
|
<events>
|
||||||
|
</events>
|
||||||
|
</map>
|
||||||
|
<map>
|
||||||
|
<mapName>m6</mapName>
|
||||||
|
<events>
|
||||||
|
<event>
|
||||||
|
<x>11</x>
|
||||||
|
<y>11</y>
|
||||||
|
<active>true</active>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
</map>
|
||||||
|
<map>
|
||||||
|
<mapName>openspace</mapName>
|
||||||
|
<events>
|
||||||
|
</events>
|
||||||
|
</map>
|
||||||
|
<map>
|
||||||
|
<mapName>office</mapName>
|
||||||
|
<events>
|
||||||
|
</events>
|
||||||
|
</map>
|
||||||
|
<map>
|
||||||
|
<mapName>boss</mapName>
|
||||||
|
<events>
|
||||||
|
<event>
|
||||||
|
<x>4</x>
|
||||||
|
<y>18</y>
|
||||||
|
<active>true</active>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
</map>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
<event>
|
<event>
|
||||||
<x>4</x>
|
<x>4</x>
|
||||||
<y>18</y>
|
<y>18</y>
|
||||||
<active>false</active>
|
<active>true</active>
|
||||||
</event>
|
</event>
|
||||||
</events>
|
</events>
|
||||||
</map>
|
</map>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<location>
|
<location>
|
||||||
<map>openspace</map>
|
<map>openspace</map>
|
||||||
<x>8</x>
|
<x>8</x>
|
||||||
<y>15</y>
|
<y>16</y>
|
||||||
</location>
|
</location>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
TODO: Village
|
||||||
Loading…
x
Reference in New Issue
Block a user