diff --git a/src/Characters/Character.java b/src/Characters/Character.java index 16e8dc4..b6d54a3 100644 --- a/src/Characters/Character.java +++ b/src/Characters/Character.java @@ -1,6 +1,7 @@ package Characters; -import Entity.*; +import Entity.Entity; +import Items.Item; import java.util.Objects; @@ -9,7 +10,7 @@ public abstract class Character extends Entity { private Entity position; private String currentState = ""; protected Feels feel; - protected IGrabbable itemInHand; + protected Item itemInHand; public Character(String name, Gender gender) { this(name, gender, Feels.NORMAL); @@ -26,14 +27,19 @@ public abstract class Character extends Entity { } public abstract void setFeel(Feels feel); + public abstract void moveTo(Entity obj); - public abstract void grab(IGrabbable obj); - public IGrabbable getItemInHand() { + + public abstract void grab(Item obj); + + public Item getItemInHand() { return this.itemInHand; } + public Entity getPosition() { return this.position; } + protected void setPosition(Entity obj) { this.position = obj; } @@ -42,9 +48,11 @@ public abstract class Character extends Entity { public String toString() { return this.currentState; } + protected void setState(String state) { this.currentState = state; } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/src/Characters/Feels.java b/src/Characters/Feels.java index 0ec751b..1fc9b8d 100644 --- a/src/Characters/Feels.java +++ b/src/Characters/Feels.java @@ -1,11 +1,11 @@ package Characters; public enum Feels { - ANGRY ("злиться"), - SCARY ("дрогнул губой"), - SAD ("надулся"), - RAGE ("взревела от бешенства"), - NORMAL ("Нормально"); + ANGRY("злиться"), + SCARY("дрогнул губой"), + SAD("надулся"), + RAGE("взревела от бешенства"), + NORMAL("Нормально"); private final String feel; diff --git a/src/Characters/FrenBok.java b/src/Characters/FrenBok.java index d07f744..48ccd00 100644 --- a/src/Characters/FrenBok.java +++ b/src/Characters/FrenBok.java @@ -1,10 +1,11 @@ package Characters; -import Entity.*; +import Entity.Entity; import Items.Item; public class FrenBok extends Character { private IGrabbableCharacter characterInHand; + public FrenBok() { super("Фрекен Бок", Gender.WOMAN); } @@ -22,7 +23,7 @@ public class FrenBok extends Character { } @Override - public void grab(IGrabbable obj) { + public void grab(Item obj) { this.itemInHand = obj; this.setState(String.format("%s взяла %s", this.getGender(), obj.getName())); } diff --git a/src/Characters/Gender.java b/src/Characters/Gender.java index 712aa13..ecae76d 100644 --- a/src/Characters/Gender.java +++ b/src/Characters/Gender.java @@ -1,8 +1,8 @@ package Characters; public enum Gender { - MAN ("Он"), - WOMAN ("Она"); + MAN("Он"), + WOMAN("Она"); private final String gender; diff --git a/src/Characters/IGrabbableCharacter.java b/src/Characters/IGrabbableCharacter.java index 50bb1c4..aa6c6ce 100644 --- a/src/Characters/IGrabbableCharacter.java +++ b/src/Characters/IGrabbableCharacter.java @@ -1,9 +1,11 @@ package Characters; import Entity.Entity; -import Entity.IGrabbable; -public interface IGrabbableCharacter extends IGrabbable { +interface IGrabbableCharacter { String getGrabbablePart(); + void moveTo(Entity obj); + + String getName(); } diff --git a/src/Characters/Karlson.java b/src/Characters/Karlson.java index d214b95..9a9bb6b 100644 --- a/src/Characters/Karlson.java +++ b/src/Characters/Karlson.java @@ -1,12 +1,14 @@ package Characters; -import Entity.*; +import Entity.Entity; import Items.Container; +import Items.Item; public class Karlson extends Character implements IGrabbableCharacter { public Karlson() { super("Кралсон", Gender.MAN); } + public Karlson(Feels feel) { this(); this.feel = feel; @@ -25,9 +27,9 @@ public class Karlson extends Character implements IGrabbableCharacter { } @Override - public void grab(IGrabbable obj) { + public void grab(Item obj) { this.itemInHand = obj; - this.setState(String.format("%s взял %s", this.getGender() ,obj)); + this.setState(String.format("%s взял %s", this.getGender(), obj)); } public void grabFrom(Container container) { diff --git a/src/Entity/Entity.java b/src/Entity/Entity.java index d17a524..eb832f8 100644 --- a/src/Entity/Entity.java +++ b/src/Entity/Entity.java @@ -4,6 +4,7 @@ import java.util.Objects; public abstract class Entity { protected String name; + public final String getName() { return this.name; } diff --git a/src/Entity/IGrabbable.java b/src/Entity/IGrabbable.java deleted file mode 100644 index 0fa6fd7..0000000 --- a/src/Entity/IGrabbable.java +++ /dev/null @@ -1,7 +0,0 @@ -package Entity; - -import Characters.Character; - -public interface IGrabbable { - String getName(); -} diff --git a/src/Items/Container.java b/src/Items/Container.java index 3ac5ea7..3062300 100644 --- a/src/Items/Container.java +++ b/src/Items/Container.java @@ -1,25 +1,24 @@ package Items; import Characters.Character; -import Entity.IGrabbable; import java.util.Objects; public class Container extends Item { - private final IGrabbable innerItem; + private final Item innerItem; - public Container(String name, IGrabbable item) { + public Container(String name, Item item) { super(name); this.innerItem = item; } - public Container(String name, IGrabbableItem item, Character owner) { + public Container(String name, Item item, Character owner) { super(name, owner); item.setOwner(owner); - this.innerItem = (IGrabbable) item; + this.innerItem = item; } - public IGrabbable getInnerItem() { + public Item getInnerItem() { return this.innerItem; } diff --git a/src/Items/IGrabbableItem.java b/src/Items/IGrabbableItem.java deleted file mode 100644 index a50052a..0000000 --- a/src/Items/IGrabbableItem.java +++ /dev/null @@ -1,8 +0,0 @@ -package Items; - -import Characters.Character; -import Entity.IGrabbable; - -public interface IGrabbableItem extends IGrabbable { - void setOwner(Character owner); -} diff --git a/src/Items/Item.java b/src/Items/Item.java index 588ca23..392adf0 100644 --- a/src/Items/Item.java +++ b/src/Items/Item.java @@ -1,15 +1,17 @@ package Items; import Characters.Character; -import Entity.*; +import Entity.Entity; import java.util.Objects; public class Item extends Entity { private Character owner; + public Item(String name) { this.name = name; } + public Item(String name, Character owner) { this.name = name; this.owner = owner; @@ -18,6 +20,7 @@ public class Item extends Entity { public Character getOwner() { return owner; } + public void setOwner(Character owner) { this.owner = owner; } diff --git a/src/Items/SmallItem.java b/src/Items/SmallItem.java deleted file mode 100644 index b15be9b..0000000 --- a/src/Items/SmallItem.java +++ /dev/null @@ -1,9 +0,0 @@ -package Items; - -import Entity.IGrabbable; - -public class SmallItem extends Item implements IGrabbableItem { - public SmallItem(String name) { - super(name); - } -} diff --git a/src/Main.java b/src/Main.java index a2ab174..b6c8508 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,9 +1,3 @@ -import Characters.Feels; -import Characters.FrenBok; -import Characters.Karlson; -import Items.Container; -import Items.Item; -import Items.SmallItem; import StoryTeller.StoryTeller; public class Main { diff --git a/src/StoryTeller/StoryTeller.java b/src/StoryTeller/StoryTeller.java index bfd2fc9..d1054f6 100644 --- a/src/StoryTeller/StoryTeller.java +++ b/src/StoryTeller/StoryTeller.java @@ -1,15 +1,10 @@ package StoryTeller; -import Characters.Character; import Characters.Feels; import Characters.FrenBok; import Characters.Karlson; -import Entity.*; import Items.Container; import Items.Item; -import Items.SmallItem; - -import java.util.function.Function; public class StoryTeller { // Персонажи @@ -18,7 +13,7 @@ public class StoryTeller { // Предметы private final Item kitchenHob = new Item("плита"); - private final SmallItem meatball = new SmallItem("тефтелька"); + private final Item meatball = new Item("тефтелька"); private final Container fryingPan = new Container("сковородка", meatball, frenBok); private final Item door = new Item("дверь");