update README.md
This commit is contained in:
parent
6c436f8f3d
commit
94fa4dae6b
15
README.md
15
README.md
@ -21,4 +21,17 @@
|
||||
Она кинулась к Кралсон
|
||||
Она схватила Кралсон за шиворот
|
||||
Она вытолкнула Кралсон за дверь
|
||||
```
|
||||
```
|
||||
|
||||
## Структура проекта
|
||||
```mermaid
|
||||
graph TD;
|
||||
Entity-->Character;
|
||||
Character-->FenBok;
|
||||
Character-->Karlson;
|
||||
Entity-->Item;
|
||||
Item-->Container;
|
||||
```
|
||||
Главный абстрактный класс - Entity, который имеет только имя. От него наследуются предметы и персонажи. Персонажи могут чувствовать *(IFeelabe)*, двигаться *(IMovable)* и брать вещи *(ITakeable)*. Также персонажи имеют гендер *(enum Feels)*.
|
||||
|
||||
За историю отвечает класс *StoryTeller*. Он меняет состояние персонажей и отображает их состояние.
|
||||
@ -5,7 +5,7 @@ import Items.Item;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public abstract class Character extends Entity implements IMovable, IFeelable {
|
||||
public abstract class Character extends Entity implements IMovable, IFeelable, ICanTake {
|
||||
private final Gender gender;
|
||||
private Entity position;
|
||||
private String currentState = "";
|
||||
|
||||
@ -4,7 +4,7 @@ import Entity.Entity;
|
||||
import Items.Item;
|
||||
|
||||
public class FrenBok extends Character {
|
||||
private IGrabbableCharacter characterInHand;
|
||||
private IGrabbable characterInHand;
|
||||
|
||||
public FrenBok() {
|
||||
super("Фрекен Бок", Gender.WOMAN);
|
||||
@ -28,7 +28,7 @@ public class FrenBok extends Character {
|
||||
this.setState(String.format("%s взяла %s", this.getGender(), obj.getName()));
|
||||
}
|
||||
|
||||
public void grabCharacter(IGrabbableCharacter character) {
|
||||
public void grabCharacter(IGrabbable character) {
|
||||
this.characterInHand = character;
|
||||
this.setState(String.format("%s схватила %s за %s", this.getGender(), character, character.getGrabbablePart()));
|
||||
}
|
||||
|
||||
7
src/Characters/ICanTake.java
Normal file
7
src/Characters/ICanTake.java
Normal file
@ -0,0 +1,7 @@
|
||||
package Characters;
|
||||
|
||||
import Items.Item;
|
||||
|
||||
interface ICanTake {
|
||||
void grab(Item obj);
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
package Characters;
|
||||
|
||||
interface IFeelable {
|
||||
void setFeel(Feels feel);
|
||||
void setFeel(Feels feel);
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
package Characters;
|
||||
|
||||
interface IGrabbableCharacter extends IMovable {
|
||||
interface IGrabbable extends IMovable {
|
||||
String getGrabbablePart();
|
||||
}
|
||||
@ -2,6 +2,6 @@ package Characters;
|
||||
|
||||
import Entity.*;
|
||||
|
||||
public interface IMovable {
|
||||
void moveTo(Entity obj);
|
||||
interface IMovable {
|
||||
void moveTo(Entity obj);
|
||||
}
|
||||
@ -4,7 +4,7 @@ import Entity.Entity;
|
||||
import Items.Container;
|
||||
import Items.Item;
|
||||
|
||||
public class Karlson extends Character implements IGrabbableCharacter {
|
||||
public class Karlson extends Character implements IGrabbable {
|
||||
public Karlson() {
|
||||
super("Кралсон", Gender.MAN);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user