All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.rpgframework.character.RuleSpecificCharacterObject Maven / Gradle / Ivy

/**
 *
 */
package de.rpgframework.character;

import java.util.List;
import java.util.UUID;

import de.rpgframework.classification.Gender;
import de.rpgframework.core.RoleplayingSystem;
import de.rpgframework.genericrpg.chargen.Rule;
import de.rpgframework.genericrpg.chargen.RuleConfiguration;
import de.rpgframework.genericrpg.chargen.ai.Recommender;
import de.rpgframework.genericrpg.data.ASkillValue;
import de.rpgframework.genericrpg.data.AttributeValue;
import de.rpgframework.genericrpg.data.Decision;
import de.rpgframework.genericrpg.data.IAttribute;
import de.rpgframework.genericrpg.data.ISkill;
import de.rpgframework.genericrpg.items.CarriedItem;
import de.rpgframework.genericrpg.items.PieceOfGear;

/**
 * This interface must be implemented by a character object of a plugin
 * adding support to serialize characters.
 *
 * @author prelle
 *
 */
public interface RuleSpecificCharacterObject, T extends PieceOfGear> {

	//-------------------------------------------------------------------
	public RoleplayingSystem getRules();

	//-------------------------------------------------------------------
	/**
	 * Returns a name by which a user interface shall display this character.
	 *
	 * @return A printable name
	 */
	public String getName();
	public void setName(String value);

	//-------------------------------------------------------------------
	public byte[] getImage();
	public void setImage(byte[] data);

	//-------------------------------------------------------------------
	/**
	 * Return text description suitable for character overview pages.
	 */
	public String getShortDescription();

	//-------------------------------------------------------------------
	public boolean isInCareerMode();

	//-------------------------------------------------------------------
	public AttributeValue getAttribute(A key);

	//-------------------------------------------------------------------
	public V getSkillValue(S key);

	//-------------------------------------------------------------------
	public boolean hasDecisionBeenMade(UUID choice);

	//-------------------------------------------------------------------
	public Decision getDecision(UUID choice);

	//-------------------------------------------------------------------
	public void removeDecision(UUID choice);

	//-------------------------------------------------------------------
	public void addDecision(Decision decision);

	//-------------------------------------------------------------------
	public Gender getGender();
	public void setGender(Gender value);

	//-------------------------------------------------------------------
	public String getHairColor();
	public void setHairColor(String value);

	//-------------------------------------------------------------------
	public String getEyeColor();
	public void setEyeColor(String value);

	//-------------------------------------------------------------------
	public String getSkinColor();
	public void setSkinColor(String value);

	//-------------------------------------------------------------------
	public int getWeight();
	public void setWeight(int value);

	//-------------------------------------------------------------------
	public int getSize();
	public void setSize(int value);

	//-------------------------------------------------------------------
	public String getAge();
	public void setAge(String value);

	//-------------------------------------------------------------------
	public void addCarriedItem(CarriedItem item);
	public void removeCarriedItem(CarriedItem item);
	public List> getCarriedItems();
	public CarriedItem getCarriedItem(String id);

	//-------------------------------------------------------------------
	public RuleConfiguration getRuleValue(Rule rule);
	public void setRuleValue(Rule rule, String value);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy