refactor: fix interfaces issues
This commit is contained in:
parent
b111e9bbee
commit
6c436f8f3d
@ -5,7 +5,7 @@ import Items.Item;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public abstract class Character extends Entity {
|
||||
public abstract class Character extends Entity implements IMovable, IFeelable {
|
||||
private final Gender gender;
|
||||
private Entity position;
|
||||
private String currentState = "";
|
||||
@ -44,8 +44,7 @@ public abstract class Character extends Entity {
|
||||
this.position = obj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
public String getState() {
|
||||
return this.currentState;
|
||||
}
|
||||
|
||||
@ -53,6 +52,12 @@ public abstract class Character extends Entity {
|
||||
this.currentState = state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return this.getName();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
|
||||
@ -30,12 +30,12 @@ public class FrenBok extends Character {
|
||||
|
||||
public void grabCharacter(IGrabbableCharacter character) {
|
||||
this.characterInHand = character;
|
||||
this.setState(String.format("%s схватила %s за %s", this.getGender(), character.getName(), character.getGrabbablePart()));
|
||||
this.setState(String.format("%s схватила %s за %s", this.getGender(), character, character.getGrabbablePart()));
|
||||
}
|
||||
|
||||
public void pushCharacterBehindItem(Item item) {
|
||||
this.characterInHand.moveTo(item);
|
||||
this.setState(String.format("%s вытолкнула %s за %s", this.getGender(), this.characterInHand.getName(), item));
|
||||
this.setState(String.format("%s вытолкнула %s за %s", this.getGender(), this.characterInHand, item));
|
||||
this.characterInHand = null;
|
||||
}
|
||||
}
|
||||
|
||||
5
src/Characters/IFeelable.java
Normal file
5
src/Characters/IFeelable.java
Normal file
@ -0,0 +1,5 @@
|
||||
package Characters;
|
||||
|
||||
interface IFeelable {
|
||||
void setFeel(Feels feel);
|
||||
}
|
||||
@ -1,11 +1,5 @@
|
||||
package Characters;
|
||||
|
||||
import Entity.Entity;
|
||||
|
||||
interface IGrabbableCharacter {
|
||||
interface IGrabbableCharacter extends IMovable {
|
||||
String getGrabbablePart();
|
||||
|
||||
void moveTo(Entity obj);
|
||||
|
||||
String getName();
|
||||
}
|
||||
|
||||
7
src/Characters/IMovable.java
Normal file
7
src/Characters/IMovable.java
Normal file
@ -0,0 +1,7 @@
|
||||
package Characters;
|
||||
|
||||
import Entity.*;
|
||||
|
||||
public interface IMovable {
|
||||
void moveTo(Entity obj);
|
||||
}
|
||||
@ -19,23 +19,23 @@ public class StoryTeller {
|
||||
|
||||
public void play() {
|
||||
karlson.setFeel(Feels.SCARY);
|
||||
System.out.println(karlson);
|
||||
System.out.println(karlson.getState());
|
||||
karlson.setFeel(Feels.SAD);
|
||||
System.out.println(karlson);
|
||||
System.out.println(karlson.getState());
|
||||
karlson.moveTo(kitchenHob);
|
||||
System.out.println(karlson);
|
||||
System.out.println(karlson.getState());
|
||||
karlson.grabFrom(fryingPan);
|
||||
System.out.println(karlson);
|
||||
System.out.println(karlson.getState());
|
||||
if (fryingPan.getOwner() == frenBok) {
|
||||
System.out.println("Вот этого ему не следовало делать");
|
||||
frenBok.setFeel(Feels.RAGE);
|
||||
System.out.println(frenBok);
|
||||
System.out.println(frenBok.getState());
|
||||
frenBok.moveTo(karlson);
|
||||
System.out.println(frenBok);
|
||||
System.out.println(frenBok.getState());
|
||||
frenBok.grabCharacter(karlson);
|
||||
System.out.println(frenBok);
|
||||
System.out.println(frenBok.getState());
|
||||
frenBok.pushCharacterBehindItem(door);
|
||||
System.out.println(frenBok);
|
||||
System.out.println(frenBok.getState());
|
||||
} else {
|
||||
frenBok.setFeel(Feels.NORMAL);
|
||||
System.out.println(frenBok);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user