com.planet_ink.coffee_mud.CharClasses
Class Apprentice

java.lang.Object
  extended by com.planet_ink.coffee_mud.CharClasses.StdCharClass
      extended by com.planet_ink.coffee_mud.CharClasses.Apprentice
All Implemented Interfaces:
CharClass, CMObject, Modifiable, MsgListener, StatsAffecting, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>

public class Apprentice
extends StdCharClass


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.planet_ink.coffee_mud.CharClasses.interfaces.CharClass
CharClass.SubClassRule
 
Field Summary
protected  java.util.Set<Tickable> currentApprentices
           
 
Fields inherited from class com.planet_ink.coffee_mud.CharClasses.StdCharClass
cachedRaceQualList, CODES, finalAllowedRaceSet, hitPointDescReplacePairs, hitPointsDesc, lastPropsCheckTime, manaDesc, manaDescReplacePairs, maxStatAdj, movementDesc, movementDescReplacePairs, names, outfitChoices, previousRaceListHash
 
Fields inherited from interface com.planet_ink.coffee_mud.CharClasses.interfaces.CharClass
ARMOR_ANY, ARMOR_CLOTH, ARMOR_DESCS, ARMOR_LEATHER, ARMOR_LONGDESC, ARMOR_METALONLY, ARMOR_NONMETAL, ARMOR_OREONLY, ARMOR_VEGAN, ARMOR_WEARMASK, GENFLAG_DESCS, GENFLAG_NOEXP, GENFLAG_NOLEVELS, GENFLAG_NORACE, GENFLAG_THINQUALLIST, WEAPONS_ALLCLERIC, WEAPONS_ANY, WEAPONS_BURGLAR, WEAPONS_DAGGERONLY, WEAPONS_EVILCLERIC, WEAPONS_FLAILONLY, WEAPONS_GOODCLERIC, WEAPONS_LONGDESC, WEAPONS_MAGELIKE, WEAPONS_MERLIKE, WEAPONS_NATURAL, WEAPONS_NEUTRALCLERIC, WEAPONS_ROCKY, WEAPONS_SETS, WEAPONS_STAFFONLY, WEAPONS_THIEFLIKE
 
Fields inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
STATUS_AFFECT, STATUS_ALIVE, STATUS_BEHAVIOR, STATUS_CLASS, STATUS_DEAD, STATUS_END, STATUS_FIGHT, STATUS_MISC, STATUS_MISC2, STATUS_MISC3, STATUS_MISC4, STATUS_MISC5, STATUS_MISC6, STATUS_MISC7, STATUS_NOT, STATUS_OTHER, STATUS_RACE, STATUS_REBIRTH, STATUS_SCRIPT, STATUS_START, STATUS_WEATHER, TICKID_AREA, TICKID_BEAMWEAPON, TICKID_CLAN, TICKID_CLANITEM, TICKID_DEADBODY_DECAY, TICKID_ELECTRONICS, TICKID_EMAIL, TICKID_EXIT_BEHAVIOR, TICKID_EXIT_REOPEN, TICKID_ITEM_BEHAVIOR, TICKID_ITEM_BOUNCEBACK, TICKID_LIGHT_FLICKERS, TICKID_LIVEAUCTION, TICKID_LONGERMASK, TICKID_MISCELLANEOUS, TICKID_MOB, TICKID_PROPERTY_SPECIAL, TICKID_QUEST, TICKID_READYTOSTOP, TICKID_ROOM_BEHAVIOR, TICKID_ROOM_ITEM_REJUV, TICKID_SOLITARYMASK, TICKID_SPECIALCOMBAT, TICKID_SPECIALMANEUVER, TICKID_SPELL_AFFECT, TICKID_SUPPORT, TICKID_TIMEAUCTION, TICKID_TRAP_DESTRUCTION, TICKID_TRAP_RESET
 
Constructor Summary
Apprentice()
           
 
Method Summary
 int adjustExperienceGain(MOB host, MOB mob, MOB victim, int amount)
          Whenever a player or mob of this race gains experience, this method gets a chance to modify the amount before the gain actually occurs.
 int allowedArmorLevel()
          A code designating what kind of armor can be used by this class without affecting their skills.
 int allowedWeaponLevel()
          A code designating what kind of weapons can be used by this class without fumbling their usage.
 int availabilityCode()
          Returns one or a combination of the Area.THEME_* constants from the Area interface.
 java.lang.String baseClass()
          Returns the base-class of this class.
protected  java.util.Set<java.lang.Integer> disallowedWeaponClasses(MOB mob)
           
 int getAttackAttribute()
          Returns which of the CharStats.STAT_* constants should be used to calculate the standard attack prowess points given when a member of this class gains a level.
 int getBonusAttackLevel()
          Returns the number of bonus attack points received by members of this class when they gain a level.
 int getBonusPracLevel()
          Returns the number of bonus practices received by members of this class when they gain a level.
 java.lang.String getHitPointsFormula()
          Returns the formula used every time a player of this class gains a level as this class.
 int getLevelCap()
          Returns the highest class level that can be achieved by a player who has this class.
 int getLevelsPerBonusDamage()
          Returns the number of levels which must be gained by a member of this class before they gain 1 more point of default damage per hit.
 java.lang.String getManaFormula()
          Returns the formula used every time a player of this class gains a level as this class.
 Pair<java.lang.String,java.lang.Integer>[] getMinimumStatRequirements()
          Returns pairings of stat names and the minimum a player must have in the state in order to learn this class.
 java.lang.String getOtherBonusDesc()
          Returns a text description of any bonus properties granted by this class to its members.
 java.lang.String[] getRequiredRaceList()
          Returns an array of Strings containing either the names of particular races, racial categories, or the word "ANY" to mean any class is OK.
 CharClass.SubClassRule getSubClassRule()
          This defines how this class fits into the SUB subclassing class system.
 int getTrainsFirstLevel()
          Returns the number of training points received by members of this class when they are first created.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 void initializeClass()
          Called ONCE after all objects are loaded, but before the map is read in during initialization.
 java.lang.String name()
          Returns the generally displayable name of this class.
 java.util.List<Item> outfit(MOB myChar)
          Returns a vector of Item objects representing the standard clothing, weapons, or other objects commonly given to players of this class just starting out.
 void startCharacter(MOB mob, boolean isBorrowedClass, boolean verifyOnly)
          This method should be called whenever a mob has this class added to their charStats list.
 boolean tick(Tickable ticking, int tickID)
          this is the method which is called periodically by the threading engine.
 
Methods inherited from class com.planet_ink.coffee_mud.CharClasses.StdCharClass
addedExpertise, affectCharState, affectCharStats, affectPhyStats, armorCheck, armorFailMessage, buildDisallowedWeaponClasses, buildDisallowedWeaponClasses, buildRequiredWeaponMaterials, canBeABenificiary, canBeADivider, checkRaceQualifierChanges, classDurationModifier, classLevelModifier, classParms, cloneFix, compareTo, copyOf, endCharacter, executeMsg, expless, getArmorLimitDesc, getAttackDesc, getCodeNum, getDamageDesc, getHitPointDesc, getManaDesc, getMaxStatDesc, getMovementDesc, getMovementFormula, getOtherLimitsDesc, getPracsFirstLevel, getPracticeDesc, getPrimeStatDesc, getRaceQualDesc, getSaveStatIndex, getSecurityFlags, getShortAttackAttribute, getStartingMoney, getStat, getStatCodes, getStatQualDesc, getTickStatus, getTrainDesc, getWeaponLimitDesc, giveMobAbility, giveMobAbility, grantAbilities, isAllowedRace, isGeneric, isQualifyingAuthority, isStat, isValidClassBeneficiary, isValidClassDivider, L, level, leveless, makeGenCharClass, maxCommonSkills, maxCraftingSkills, maxLanguages, maxNonCraftingSkills, maxStatAdjustments, name, nameSet, newInstance, okMessage, qualifiesForThisClass, raceless, requiredArmorSourceMinor, requiredWeaponMaterials, sameAs, setClassParms, setStat, showThinQualifyList, unLevel, weaponCheck
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

currentApprentices

protected java.util.Set<Tickable> currentApprentices
Constructor Detail

Apprentice

public Apprentice()
Method Detail

ID

public java.lang.String ID()
Description copied from interface: CMObject
The CoffeeMud Java Class ID shared by all instances of this object. Unlike the Java Class name, this method does not include package information. However, it must return a String value unique to its class category in the ClassLoader. Class categories include Libraries, Common, Areas, Abilities, Behaviors, CharClasses, Commands, Exits Locales, MOBS, Races, WebMacros, Basic Items, Armor, Weapons, ClanItems, Tech. The name is typically identical to the class name.

Specified by:
ID in interface CMObject
Overrides:
ID in class StdCharClass
Returns:
the name of this class

name

public java.lang.String name()
Description copied from interface: CharClass
Returns the generally displayable name of this class. Usually deferred to by name(int), which is more often called.

Specified by:
name in interface CharClass
Specified by:
name in interface CMObject
Specified by:
name in interface Tickable
Overrides:
name in class StdCharClass
Returns:
the displayable name of this object instance
See Also:
CharClass.name(int), CharClass.nameSet()

baseClass

public java.lang.String baseClass()
Description copied from interface: CharClass
Returns the base-class of this class. Typically only important in multi-classing systems that restrict class changing to those classes part of the same base class. True multi-classing systems don't need to worry about this value. Can be the same as the ID() method.

Specified by:
baseClass in interface CharClass
Overrides:
baseClass in class StdCharClass
Returns:
the base-class of this class

getBonusPracLevel

public int getBonusPracLevel()
Description copied from interface: CharClass
Returns the number of bonus practices received by members of this class when they gain a level. This is over and above the normal formula applied during the leveling process.

Specified by:
getBonusPracLevel in interface CharClass
Overrides:
getBonusPracLevel in class StdCharClass
Returns:
the number of bonus practices to grant

getBonusAttackLevel

public int getBonusAttackLevel()
Description copied from interface: CharClass
Returns the number of bonus attack points received by members of this class when they gain a level. This is over and above the normal formula applied during the leveling process.

Specified by:
getBonusAttackLevel in interface CharClass
Overrides:
getBonusAttackLevel in class StdCharClass
Returns:
the number of bonus attack points to grant

getAttackAttribute

public int getAttackAttribute()
Description copied from interface: CharClass
Returns which of the CharStats.STAT_* constants should be used to calculate the standard attack prowess points given when a member of this class gains a level.

Specified by:
getAttackAttribute in interface CharClass
Overrides:
getAttackAttribute in class StdCharClass
Returns:
a CharStats.STAT_* attribute constant code
See Also:
CharStats

getLevelsPerBonusDamage

public int getLevelsPerBonusDamage()
Description copied from interface: CharClass
Returns the number of levels which must be gained by a member of this class before they gain 1 more point of default damage per hit.

Specified by:
getLevelsPerBonusDamage in interface CharClass
Overrides:
getLevelsPerBonusDamage in class StdCharClass
Returns:
the number of levels between damage gains

getTrainsFirstLevel

public int getTrainsFirstLevel()
Description copied from interface: CharClass
Returns the number of training points received by members of this class when they are first created.

Specified by:
getTrainsFirstLevel in interface CharClass
Overrides:
getTrainsFirstLevel in class StdCharClass
Returns:
the number of initial trains to grant

getHitPointsFormula

public java.lang.String getHitPointsFormula()
Description copied from interface: CharClass
Returns the formula used every time a player of this class gains a level as this class. The total is added (or removed on unlevel) from the players hit points score. Variables may be included in the formula, which are: \@x1: Players current class level \@x2: Players adjusted Strength @x3: Players Max adjusted Strength \@x4: Players adjusted Dexterity @x5: Players Max adjusted Dexterity @x6: Players adjusted Constitution @x7: Players Max adjusted Constitution @x8: Players adjusted Wisdom @x9: Players adjusted Intelligence

Specified by:
getHitPointsFormula in interface CharClass
Overrides:
getHitPointsFormula in class StdCharClass
Returns:
the formula that causes a gain or loss in hit points
See Also:
CharClass.getHitPointDesc()

getManaFormula

public java.lang.String getManaFormula()
Description copied from interface: CharClass
Returns the formula used every time a player of this class gains a level as this class. The total is added (or removed on unlevel) from the players mana score. Variables may be included in the formula, which are: @x1: Players current class level @x2: Players adjusted Wisdom @x3: Players Max adjusted Wisdom @x4: Players adjusted Intelligence @x5: Players Max adjusted Intelligence @x6: Players adjusted Attack Attr @x7: Players Max adjusted Attack Attr @x8: Players adjusted Charisma @x9: Players adjusted Constitution

Specified by:
getManaFormula in interface CharClass
Overrides:
getManaFormula in class StdCharClass
Returns:
the formula that causes a gain or loss in mana
See Also:
CharClass.getManaDesc(), CharClass.getAttackAttribute()

getLevelCap

public int getLevelCap()
Description copied from interface: CharClass
Returns the highest class level that can be achieved by a player who has this class. Once this level is reached, the class behaves as it is were levelless. Default is -1, meaning the cap does not exist.

Specified by:
getLevelCap in interface CharClass
Overrides:
getLevelCap in class StdCharClass
Returns:
highest class level for this class;

getSubClassRule

public CharClass.SubClassRule getSubClassRule()
Description copied from interface: CharClass
This defines how this class fits into the SUB subclassing class system. A class may be one that can change to any class, or only another class if it is the same base class, or many no class at all.

Specified by:
getSubClassRule in interface CharClass
Overrides:
getSubClassRule in class StdCharClass
Returns:
the rule to use in the subclassing system

allowedArmorLevel

public int allowedArmorLevel()
Description copied from interface: CharClass
A code designating what kind of armor can be used by this class without affecting their skills. The worn locations this coded type refers to locations defined by ARMOR_WEARMASK

Specified by:
allowedArmorLevel in interface CharClass
Overrides:
allowedArmorLevel in class StdCharClass
Returns:
the encoded allowed armor type
See Also:
CharClass.ARMOR_WEARMASK, CharClass.ARMOR_ANY

allowedWeaponLevel

public int allowedWeaponLevel()
Description copied from interface: CharClass
A code designating what kind of weapons can be used by this class without fumbling their usage.

Specified by:
allowedWeaponLevel in interface CharClass
Overrides:
allowedWeaponLevel in class StdCharClass
Returns:
the encoded allowed weapon type
See Also:
CharClass.WEAPONS_ANY

disallowedWeaponClasses

protected java.util.Set<java.lang.Integer> disallowedWeaponClasses(MOB mob)
Overrides:
disallowedWeaponClasses in class StdCharClass

initializeClass

public void initializeClass()
Description copied from interface: CMObject
Called ONCE after all objects are loaded, but before the map is read in during initialization.

Specified by:
initializeClass in interface CMObject
Overrides:
initializeClass in class StdCharClass

availabilityCode

public int availabilityCode()
Description copied from interface: CharClass
Returns one or a combination of the Area.THEME_* constants from the Area interface. This bitmap then describes the types of areas, skills, and classes which can interact. This bitmap is also used to to tell whether the class is available for selection by users at char creation time, whether they can change to this class via spells, or whether the class is utterly unavailable to them.

Specified by:
availabilityCode in interface CharClass
Overrides:
availabilityCode in class StdCharClass
Returns:
the availability/theme of this class
See Also:
Area

tick

public boolean tick(Tickable ticking,
                    int tickID)
Description copied from interface: Tickable
this is the method which is called periodically by the threading engine. How often it is called depends on the parameters passed to the threadding engine when it is submitted for thread access. Typically the period is once per TIME_TICK period, but that is determined when the object is submitted to the thread engine.

Specified by:
tick in interface Tickable
Overrides:
tick in class StdCharClass
Parameters:
ticking - a reference to this Tickable object
tickID - the TICKID_ constant describing this periodic call, as defined in Tickable
Returns:
true always, unless this object no longer wishes to ever tick again, in which case false
See Also:
Tickable, ServiceEngine, TickableGroup

getRequiredRaceList

public java.lang.String[] getRequiredRaceList()
Description copied from interface: CharClass
Returns an array of Strings containing either the names of particular races, racial categories, or the word "ANY" to mean any class is OK. All others are not permitted to be this class.

Specified by:
getRequiredRaceList in interface CharClass
Overrides:
getRequiredRaceList in class StdCharClass
Returns:
a list of races, racecats, or ANY
See Also:
CharClass.isAllowedRace(Race)

getMinimumStatRequirements

public Pair<java.lang.String,java.lang.Integer>[] getMinimumStatRequirements()
Description copied from interface: CharClass
Returns pairings of stat names and the minimum a player must have in the state in order to learn this class.

Specified by:
getMinimumStatRequirements in interface CharClass
Overrides:
getMinimumStatRequirements in class StdCharClass
Returns:
a pairs of stat names and minimum

startCharacter

public void startCharacter(MOB mob,
                           boolean isBorrowedClass,
                           boolean verifyOnly)
Description copied from interface: CharClass
This method should be called whenever a mob has this class added to their charStats list. Its purpose is to outfit the mob with any necessary abilities, or perform other necessary changes to the mob to reflect the class addition or change. A character class is considered borrowed if its existence is derived from something else, or its skills/abilities should not be saved as a permanent feature of the mob.

Specified by:
startCharacter in interface CharClass
Overrides:
startCharacter in class StdCharClass
Parameters:
mob - the mob being outfitted with this class
isBorrowedClass - whether the charclasses skills are borrowed(true) or permanent
verifyOnly - send true if no skills or changes are to be made

outfit

public java.util.List<Item> outfit(MOB myChar)
Description copied from interface: CharClass
Returns a vector of Item objects representing the standard clothing, weapons, or other objects commonly given to players of this class just starting out.

Specified by:
outfit in interface CharClass
Overrides:
outfit in class StdCharClass
Parameters:
myChar - one who will receive the objects
Returns:
a vector of Item objects

adjustExperienceGain

public int adjustExperienceGain(MOB host,
                                MOB mob,
                                MOB victim,
                                int amount)
Description copied from interface: CharClass
Whenever a player or mob of this race gains experience, this method gets a chance to modify the amount before the gain actually occurs.

Specified by:
adjustExperienceGain in interface CharClass
Overrides:
adjustExperienceGain in class StdCharClass
Parameters:
host - the player or mob whose class is being queried
mob - the player or mob gaining experience
victim - if applicable, the mob or player who died to give the exp
amount - the amount of exp on track for gaining
Returns:
the adjusted amount of experience to gain

getOtherBonusDesc

public java.lang.String getOtherBonusDesc()
Description copied from interface: CharClass
Returns a text description of any bonus properties granted by this class to its members.

Specified by:
getOtherBonusDesc in interface CharClass
Overrides:
getOtherBonusDesc in class StdCharClass
Returns:
a text description of bonus properties