com.planet_ink.coffee_mud.Abilities.Common
Class CommonSkill

java.lang.Object
  extended by com.planet_ink.coffee_mud.Abilities.StdAbility
      extended by com.planet_ink.coffee_mud.Abilities.Common.CommonSkill
All Implemented Interfaces:
Ability, Behavable, CMModifiable, CMObject, Environmental, MsgListener, StatsAffecting, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>
Direct Known Subclasses:
AnimalTaming, AnimalTrading, AnimalTraining, Bandaging, BodyPiercing, Domesticating, Dyeing, Embroidering, Engraving, FireBuilding, GatheringSkill, Herbology, Hunting, Lacquerring, Merchant, Painting, PlantLore, Scalp, Scrapping, Searching, Shearing, SlaveTrading, SmokeRings, Speculate, Tattooing, Unbinding

public class CommonSkill
extends StdAbility


Field Summary
protected  boolean aborted
           
protected  Room activityRoom
           
protected  boolean bundling
           
protected  java.lang.String displayText
           
protected  boolean helping
           
 Ability helpingAbility
           
protected  java.lang.String playSound
           
protected  int tickUp
           
protected  java.lang.String verb
           
protected  int yield
           
 
Fields inherited from class com.planet_ink.coffee_mud.Abilities.StdAbility
affected, amDestroyed, canBeUninvoked, empty, envStats, expertise, invoker, isAnAutoEffect, lastCastHelp, miscText, proficiency, savable, tickDown, unInvoked
 
Fields inherited from interface com.planet_ink.coffee_mud.Abilities.interfaces.Ability
ACODE_CHANT, ACODE_COMMON_SKILL, ACODE_DESCS, ACODE_DISEASE, ACODE_LANGUAGE, ACODE_POISON, ACODE_PRAYER, ACODE_PROPERTY, ACODE_SKILL, ACODE_SONG, ACODE_SPELL, ACODE_SUPERPOWER, ACODE_THIEF_SKILL, ACODE_TRAP, ALL_ACODES, ALL_DOMAINS, CAN_AREAS, CAN_DESCS, CAN_EXITS, CAN_ITEMS, CAN_MOBS, CAN_ROOMS, DOMAIN_ABJURATION, DOMAIN_ACROBATIC, DOMAIN_ALERT, DOMAIN_ALTERATION, DOMAIN_ANATOMY, DOMAIN_ANIMALAFFINITY, DOMAIN_ARCANELORE, DOMAIN_ARCHON, DOMAIN_ARMORUSE, DOMAIN_ARTISTIC, DOMAIN_BINDING, DOMAIN_BLESSING, DOMAIN_BREEDING, DOMAIN_CALLIGRAPHY, DOMAIN_COMBATFLUIDITY, DOMAIN_COMBATLORE, DOMAIN_COMMUNING, DOMAIN_CONJURATION, DOMAIN_CORRUPTION, DOMAIN_CRAFTINGSKILL, DOMAIN_CREATION, DOMAIN_CRIMINAL, DOMAIN_CURSING, DOMAIN_DANCING, DOMAIN_DEATHLORE, DOMAIN_DECEPTIVE, DOMAIN_DEEPMAGIC, DOMAIN_DESCS, DOMAIN_DETRAP, DOMAIN_DIRTYFIGHTING, DOMAIN_DIVINATION, DOMAIN_ENCHANTMENT, DOMAIN_ENDURING, DOMAIN_EVANGELISM, DOMAIN_EVASIVE, DOMAIN_EVOCATION, DOMAIN_FITNESS, DOMAIN_FOOLISHNESS, DOMAIN_GATHERINGSKILL, DOMAIN_GRAPPLING, DOMAIN_HEALING, DOMAIN_HOLYPROTECTION, DOMAIN_ILLUSION, DOMAIN_INFLUENTIAL, DOMAIN_KICKING, DOMAIN_LEGAL, DOMAIN_MARTIALLORE, DOMAIN_MOONALTERING, DOMAIN_MOONSUMMONING, DOMAIN_NATURELORE, DOMAIN_NEUTRALIZATION, DOMAIN_PLANTCONTROL, DOMAIN_PLANTGROWTH, DOMAIN_PLAYING, DOMAIN_POISONING, DOMAIN_PRESERVING, DOMAIN_PUNCHING, DOMAIN_RACIALABILITY, DOMAIN_RESTORATION, DOMAIN_ROCKCONTROL, DOMAIN_SHAPE_SHIFTING, DOMAIN_SHIELDUSE, DOMAIN_SINGING, DOMAIN_STEALING, DOMAIN_STEALTHY, DOMAIN_STREETSMARTS, DOMAIN_TRANSMUTATION, DOMAIN_TRAPPING, DOMAIN_VERBS, DOMAIN_VEXING, DOMAIN_WARDING, DOMAIN_WEAPON_USE, DOMAIN_WEATHER_MASTERY, FLAG_AIRBASED, FLAG_BINDING, FLAG_CHARMING, FLAG_CLANMAGIC, FLAG_DESCS, FLAG_EARTHBASED, FLAG_FIREBASED, FLAG_HEALINGMAGIC, FLAG_HEATING, FLAG_HOLY, FLAG_INTOXICATING, FLAG_MOVING, FLAG_NOORDERING, FLAG_PARALYZING, FLAG_SUMMONING, FLAG_TRACKING, FLAG_TRANSPORTING, FLAG_UNHOLY, FLAG_WATERBASED, FLAG_WEATHERAFFECTING, QUALITY_BENEFICIAL_OTHERS, QUALITY_BENEFICIAL_SELF, QUALITY_DESCS, QUALITY_INDIFFERENT, QUALITY_MALICIOUS, QUALITY_OK_OTHERS, QUALITY_OK_SELF, RANGE_CHOICES, USAGE_DESCS, USAGE_HITPOINTS, USAGE_MANA, USAGE_MOVEMENT, USAGE_NADA, USAGEINDEX_HITPOINTS, USAGEINDEX_MANA, USAGEINDEX_MOVEMENT
 
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_CLAN, TICKID_CLANITEM, TICKID_DEADBODY_DECAY, TICKID_EMAIL, TICKID_EXIT_BEHAVIOR, TICKID_EXIT_REOPEN, TICKID_ITEM_BEHAVIOR, TICKID_ITEM_BOUNCEBACK, TICKID_LIGHT_FLICKERS, TICKID_LIVEAUCTION, TICKID_LONGERMASK, TICKID_MOB, TICKID_QUEST, TICKID_READYTOSTOP, TICKID_ROOM_BEHAVIOR, TICKID_ROOM_ITEM_REJUV, TICKID_SPELL_AFFECT, TICKID_TIMEAUCTION, TICKID_TRAP_DESTRUCTION, TICKID_TRAP_RESET, TICKMASK_SOLITARY, TICKS_PER_RLMIN, TIME_MILIS_PER_MUDHOUR, TIME_TICK, TIME_TICK_DOUBLE
 
Constructor Summary
CommonSkill()
           
 
Method Summary
 int abilityCode()
          Returns an optional numeric value whose purpose is entirely contextual.
 int abstractQuality()
          Returns a constant value notifying the system of the general quality of the skill, whether it is malicious, beneficial, indifferent, or qualifiably beneficial (ok), as well as whether it is intended to target the invoker (self) or others.
protected  int addedTickTime(MOB invokerMOB, int baseTickTime)
           
protected  boolean allowedWhileMounted()
           
protected  int canAffectCode()
          Designates whether, when used as a property/effect, what sort of objects this ability can affect.
protected  int canTargetCode()
          Designates whether, when invoked as a skill, what sort of objects this ability can effectively target.
 int classificationCode()
          Returns a bitmap describing the general classification of the skill (spell, skill, chant, or property, etc) and its domain.
protected  void commonEmote(MOB mob, java.lang.String str)
           
protected  void commonTell(MOB mob, Environmental target, Environmental tool, java.lang.String str)
           
protected  void commonTell(MOB mob, java.lang.String str)
           
 boolean confirmPossibleMaterialLocation(int resource, Room location)
           
 java.lang.String displayText()
          Gets the raw string used to show what this object looks like in the room.
protected  int getDuration(int baseTicks, MOB mob, int itemLevel, int minDuration)
           
 Item getRequiredFire(MOB mob, int autoGenerate)
           
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
protected  int iniPracticesRequired()
           
protected  int iniPracticesToPractice()
           
protected  int iniTrainsRequired()
           
 boolean invoke(MOB mob, java.util.Vector commands, Environmental givenTarget, boolean auto, int asLevel)
          This method is called when a player or the system invokes this skill, casts this spell, etc.
protected  int lookingFor(int material, Room fromHere)
           
protected  int lookingFor(java.util.Vector materials, Room fromHere)
           
 java.lang.String name()
          The displayable name of this object.
 void setAbilityCode(int newCode)
          Sets an optional numeric value whose purpose is entirely contextual.
 java.lang.String supportedResourceString()
           
 boolean tick(Tickable ticking, int tickID)
          this is the method which is called periodically by the threading engine.
 java.lang.String[] triggerStrings()
          A set of the command strings the user types to access this command when it is listed as a skill ability.
 void unInvoke()
          If this skill is uninvokable, this method will uninvoke it, remove it as an effect on the target, and shut it down.
 int[] usageCost(MOB mob, boolean ignoreClassOverride)
          Returns an integer array telling the system how much mana, movement, or hit points are required to invoke this skill.
 int usageType()
          Returns a bitmap made up of constants defined by Ability.USAGE_*.
 int xlevel(MOB mob)
           
 
Methods inherited from class com.planet_ink.coffee_mud.Abilities.StdAbility
ableOk, ableSend, accountForYourself, addBehavior, addEffect, addNonUninvokableEffect, addScript, adjustedLevel, adjustedMaxInvokerRange, affectCharState, affectCharStats, affectEnvStats, affecting, amDestroyed, appropriateToMyFactions, autoInvocation, baseEnvStats, beneficialAffect, beneficialVisualFizzle, beneficialWordsFizzle, bubbleAffect, buildCostArray, canAffect, canAffect, canBeLearnedBy, canBePracticedBy, canBeTaughtBy, canBeUninvoked, canTarget, canTarget, castingQuality, castingQuality, castingTime, checkComponents, cloneFix, combatCastingTime, compareTo, copyOf, delBehavior, delEffect, delScript, description, destroy, disregardsArmorCheck, enchantQuality, envStats, executeMsg, experienceLevels, expertise, expirationDate, externalFiles, fetchBehavior, fetchBehavior, fetchEffect, fetchEffect, fetchScript, finalize, flags, getAnyTarget, getAnyTarget, getAnyTarget, getBeneficialTickdownTime, getCodeNum, getMaliciousTickdownTime, getSaveStatIndex, getStat, getStatCodes, getTarget, getTarget, getTarget, getTarget, getTickDownRemaining, getTickStatus, getX1Level, getX2Level, getX3Level, getX4Level, getX5Level, getXLEVELLevel, getXLOWCOSTLevel, getXMAXRANGELevel, getXPCOSTAdjustment, getXPCOSTLevel, getXTIMELevel, helpProficiency, image, initializeClass, invoke, invoker, isAutoInvoked, isGeneric, isNowAnAutoEffect, isStat, makeLongLasting, makeNonUninvokable, maliciousAffect, maliciousFizzle, maxRange, minCastWaitTime, minRange, miscTextFormat, Name, newInstance, numBehaviors, numEffects, numScripts, okMessage, overrideMana, possibleContainer, practice, practicesRequired, practicesToPractice, preInvoke, proficiency, proficiencyCheck, properTargets, putInCommandlist, rawImage, recoverEnvStats, requirements, sameAs, savable, setAffectedOne, setBaseEnvStats, setDescription, setDisplayText, setExpirationDate, setImage, setInvoker, setMiscText, setName, setProficiency, setSavable, setStat, setTickDownRemaining, somanticCastCode, somanticCastMask, spreadImmunity, startTickDown, teach, text, trainsRequired, verbalCastCode, verbalCastMask
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

displayText

protected java.lang.String displayText

activityRoom

protected Room activityRoom

aborted

protected boolean aborted

helping

protected boolean helping

bundling

protected boolean bundling

helpingAbility

public Ability helpingAbility

tickUp

protected int tickUp

verb

protected java.lang.String verb

playSound

protected java.lang.String playSound

yield

protected int yield
Constructor Detail

CommonSkill

public CommonSkill()
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, MiscTech. The name is typically identical to the class name.

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

name

public java.lang.String name()
Description copied from interface: Environmental
The displayable name of this object. May be modified by envStats() object. Is derived from the Name().

Specified by:
name in interface Environmental
Specified by:
name in interface Tickable
Overrides:
name in class StdAbility
Returns:
the modified final name of this object on the map.
See Also:
Environmental.Name()

triggerStrings

public java.lang.String[] triggerStrings()
Description copied from interface: Ability
A set of the command strings the user types to access this command when it is listed as a skill ability.

Specified by:
triggerStrings in interface Ability
Overrides:
triggerStrings in class StdAbility
Returns:
an array of command invoking string words
See Also:
Ability.putInCommandlist()

supportedResourceString

public java.lang.String supportedResourceString()

abstractQuality

public int abstractQuality()
Description copied from interface: Ability
Returns a constant value notifying the system of the general quality of the skill, whether it is malicious, beneficial, indifferent, or qualifiably beneficial (ok), as well as whether it is intended to target the invoker (self) or others. These constants are defined in the Ability interface and called QUALITY_*

Specified by:
abstractQuality in interface Ability
Overrides:
abstractQuality in class StdAbility
Returns:
Ability.QUALITY_* constant classification
See Also:
Ability

displayText

public java.lang.String displayText()
Description copied from interface: Environmental
Gets the raw string used to show what this object looks like in the room. May be used as a basis for other methods, such as the title of rooms, and what an exit looks like when open. The value for Items may be null if the item is not displayed when the room is seen.

Specified by:
displayText in interface Environmental
Overrides:
displayText in class StdAbility
Returns:
the string describing how this object looks in the room

iniTrainsRequired

protected int iniTrainsRequired()
Overrides:
iniTrainsRequired in class StdAbility

iniPracticesRequired

protected int iniPracticesRequired()
Overrides:
iniPracticesRequired in class StdAbility

iniPracticesToPractice

protected int iniPracticesToPractice()
Overrides:
iniPracticesToPractice in class StdAbility

allowedWhileMounted

protected boolean allowedWhileMounted()

usageType

public int usageType()
Description copied from interface: Ability
Returns a bitmap made up of constants defined by Ability.USAGE_*. It lets the system know which of the values in the usageCost(MOB,boolean) method are relevant. It determines whether this skill requires mana, movement, hit points, or some combination of the three.

Specified by:
usageType in interface Ability
Overrides:
usageType in class StdAbility
Returns:
a bitmap defined by Ability.USAGE_*
See Also:
Ability

canAffectCode

protected int canAffectCode()
Description copied from class: StdAbility
Designates whether, when used as a property/effect, what sort of objects this ability can affect. Uses the Ability.CAN_* constants.

Overrides:
canAffectCode in class StdAbility
Returns:
a mask showing the type of objects this ability can affect
See Also:
Ability

canTargetCode

protected int canTargetCode()
Description copied from class: StdAbility
Designates whether, when invoked as a skill, what sort of objects this ability can effectively target. Uses the Ability.CAN_* constants.

Overrides:
canTargetCode in class StdAbility
Returns:
a mask showing the type of objects this ability can target
See Also:
Ability

classificationCode

public int classificationCode()
Description copied from interface: Ability
Returns a bitmap describing the general classification of the skill (spell, skill, chant, or property, etc) and its domain. It is made up of the ACODE_* constants the Ability interface, and optionally the DOMAIN_* constants also defined in this interface.

Specified by:
classificationCode in interface Ability
Overrides:
classificationCode in class StdAbility
Returns:
ACODE_* constant classification
See Also:
Ability

abilityCode

public int abilityCode()
Description copied from interface: Ability
Returns an optional numeric value whose purpose is entirely contextual. For many skills, this reflects some sort of enhancement. Default is 0.

Specified by:
abilityCode in interface Ability
Overrides:
abilityCode in class StdAbility
Returns:
the current optional numeric value or enhancement

setAbilityCode

public void setAbilityCode(int newCode)
Description copied from interface: Ability
Sets an optional numeric value whose purpose is entirely contextual. For many skills, this reflects some sort of enhancement. Default is 0.

Specified by:
setAbilityCode in interface Ability
Overrides:
setAbilityCode in class StdAbility
Parameters:
newCode - the optional numeric value or enhancement

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 StdAbility
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

unInvoke

public void unInvoke()
Description copied from interface: Ability
If this skill is uninvokable, this method will uninvoke it, remove it as an effect on the target, and shut it down.

Specified by:
unInvoke in interface Ability
Overrides:
unInvoke in class StdAbility
See Also:
Ability.canBeUninvoked()

getDuration

protected int getDuration(int baseTicks,
                          MOB mob,
                          int itemLevel,
                          int minDuration)

addedTickTime

protected int addedTickTime(MOB invokerMOB,
                            int baseTickTime)
Overrides:
addedTickTime in class StdAbility

commonTell

protected void commonTell(MOB mob,
                          Environmental target,
                          Environmental tool,
                          java.lang.String str)

commonTell

protected void commonTell(MOB mob,
                          java.lang.String str)

commonEmote

protected void commonEmote(MOB mob,
                           java.lang.String str)

lookingFor

protected int lookingFor(int material,
                         Room fromHere)

lookingFor

protected int lookingFor(java.util.Vector materials,
                         Room fromHere)

getRequiredFire

public Item getRequiredFire(MOB mob,
                            int autoGenerate)

usageCost

public int[] usageCost(MOB mob,
                       boolean ignoreClassOverride)
Description copied from interface: Ability
Returns an integer array telling the system how much mana, movement, or hit points are required to invoke this skill. Use the Ability.USAGEINDEX_* constants to index the array. A value of 0-1000 is an absolute cost. A value of Integer.MAX_VALUE means to use all of the mana, movement, hit points. A value of Integer.MAXVALUE-100 and up represents a percentage of the cost. The values in this method MUST be accompanied by properly set usageType() bitmap.

Specified by:
usageCost in interface Ability
Overrides:
usageCost in class StdAbility
Parameters:
mob - the invoker of the skill
ignoreClassOverride - whether to ignore Class Overrides
Returns:
an array of costs, indexed by Ability.USAGEINDEX_*
See Also:
Ability.usageType(), Ability

xlevel

public int xlevel(MOB mob)

confirmPossibleMaterialLocation

public boolean confirmPossibleMaterialLocation(int resource,
                                               Room location)

invoke

public boolean invoke(MOB mob,
                      java.util.Vector commands,
                      Environmental givenTarget,
                      boolean auto,
                      int asLevel)
Description copied from interface: Ability
This method is called when a player or the system invokes this skill, casts this spell, etc. Calls the more complete invoke method without an empty command strings vector unless target is non-null, in which case the vector will contain the name of the target.

Specified by:
invoke in interface Ability
Overrides:
invoke in class StdAbility
Parameters:
mob - the player or mob invoking the skill
commands - the parameters entered for the skill (minus trigger word)
givenTarget - null, unless being auto-invoked. Represents an override target.
auto - false if player enters command, true if system invokes the command
asLevel - -1, unless being auto-invoked, when it is the level to invoke it at.
Returns:
whether the skill successfully invoked.