itmo-prog-lab-3/src/characters/Character.java

46 lines
1.3 KiB
Java

package characters;
import enums.CharacterType;
import interfaces.Interactable;
import interfaces.Listenable;
import story.StoryContext;
import model.StoryElement;
public abstract class Character extends StoryElement implements Interactable, Listenable {
protected CharacterType type;
protected String name;
public Character(String description, CharacterType type, String name) {
super(description);
this.type = type;
this.name = name;
}
// Method where characters can reminisce about past events
public abstract void reminisce(String memory);
// Method for characters to react to stories being told
public abstract void reactToStory();
// Method for telling a story about a specific place or event
public abstract void tellStoryOf(String place);
// Method for characters, especially children, to ask questions about the story
public abstract void askQuestionsAbout(String subject);
public abstract void listen();
public abstract void tell();
public abstract void converse(StoryContext context, String subject);
// Interaction method for general purposes
@Override
public abstract void interact(StoryContext context);
// Listening method within a story context
@Override
public abstract void listen(StoryContext context);
}