46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			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);
 | |
| }
 |