com.planet_ink.coffee_mud.Abilities
Class StdAbility

java.lang.Object
  extended by com.planet_ink.coffee_mud.Abilities.StdAbility
All Implemented Interfaces:
Ability, Behavable, CMModifiable, CMObject, Environmental, MsgListener, StatsAffecting, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>
Direct Known Subclasses:
Addictions, Age, Allergies, Amputation, Antidote, ArchonSkill, BardSkill, Bleeding, Burning, Chant, CommonSkill, Dance, Disease, Disease_MummyRot, DiseaseCure, Dragonbreath, Druid_Bite, Druid_DruidicPass, Druid_GolemForm, Druid_KnowPlants, Druid_MyPlants, Druid_PackCall, Druid_PlantForm, Druid_RecoverVoice, Druid_Rend, Druid_ShapeShift, Falling, FighterSkill, GenAbility, Immunities, Injury, ItemRejuv, Mood, Paladin, Paladin_Breakup, Paladin_Defend, Paladin_HealingHands, Paladin_MountedCharge, Paladin_SummonMount, Paralysis, Play, Poison, Prayer, Pregnancy, Prisoner, Ranger_AnimalFrenzy, Ranger_Enemy1, Ranger_FindWater, Ranger_Hide, Ranger_Sneak, Ranger_Track, Ranger_TrackAnimal, Ranger_WoodlandCreep, Ranger_WoodlandLore, Regeneration, Sinking, Soiled, Song, SoundEcho, Specialization_Weapon, Spell, StdLanguage, StdSkill, StdTrap, SuperPower, TemporaryImmunity, ThiefSkill, Trap_Trap, Undead_ColdTouch, Undead_EnergyDrain, Undead_LifeDrain, Undead_WeakEnergyDrain, WeakParalysis, WingFlying

public class StdAbility
extends java.lang.Object
implements Ability


Field Summary
protected  Environmental affected
           
protected  boolean amDestroyed
           
protected  boolean canBeUninvoked
           
static java.lang.String[] empty
           
protected static EnvStats envStats
           
protected  short[] expertise
           
protected  MOB invoker
           
protected  boolean isAnAutoEffect
           
protected  long lastCastHelp
           
 java.lang.String miscText
           
protected  int proficiency
           
protected  boolean savable
           
protected  int tickDown
           
protected  boolean 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
StdAbility()
           
 
Method Summary
 int abilityCode()
          Returns an optional numeric value whose purpose is entirely contextual.
protected  boolean ableOk(MOB mob, MOB target, CMMsg msg)
           
protected  void ableSend(MOB mob, MOB target, CMMsg msg)
           
 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.
 java.lang.String accountForYourself()
          For use by the identify spell, this should return a nice description of any properties incorporated by this effect.
 void addBehavior(Behavior to)
          Add a new behavior to this object.
protected  int addedTickTime(MOB invokerMOB, int baseTickTime)
           
 void addEffect(Ability to)
          Add a new effect to this object, whether permanent or temporary.
 void addNonUninvokableEffect(Ability to)
          Same as addEffect(Ability), but will set the Ability object as never being able to be uninvoked.
 void addScript(ScriptingEngine S)
          Add a new runnable script to this object.
 int adjustedLevel(MOB caster, int asLevel)
          This method calculates the strength level of this skill for the given mob, and taking into account the given override-level (asLevel).
 int adjustedMaxInvokerRange(int max)
           
 void affectCharState(MOB affectedMob, CharState affectableMaxState)
          This method is called by the recoverCharState() method on other MOB objects.
 void affectCharStats(MOB affectedMob, CharStats affectableStats)
          This method is called by the recoverCharStats() method on other MOB objects.
 void affectEnvStats(Environmental affectedEnv, EnvStats affectableStats)
          This method is called by the recoverEnvStats() method on other Environmental objects.
 Environmental affecting()
          Returns a reference to the room, item, mob, or exit that is currently being affected by this skill.
 boolean amDestroyed()
          Whether the destroy() method has been previousy called on this object.
 boolean appropriateToMyFactions(MOB mob)
          Returns whether there are any Faction reasons why the given mob should not use this skill.
 boolean autoInvocation(MOB mob)
          An autoinvocating ability is an ability which affects the mob just by having learned the ability.
 EnvStats baseEnvStats()
          Object containing a set of base, unmodified, mostly numeric fields.
 boolean beneficialAffect(MOB mob, Environmental target, int asLevel, int tickAdjustmentFromStandard)
           
 boolean beneficialVisualFizzle(MOB mob, Environmental target, java.lang.String message)
           
 boolean beneficialWordsFizzle(MOB mob, Environmental target, java.lang.String message)
           
 boolean bubbleAffect()
          This method is used to modify the behavior of the affectEnvStats, affectCharStats, and affectCharState methods.
protected  int[] buildCostArray(MOB mob, int consumed, int minimum)
           
 boolean canAffect(Environmental E)
          Returns whether, when used as a property/effect, this ability can affect the given object.
 boolean canAffect(int can_code)
          Returns whether, when used as a property/effect, this ability can affect the given type of object.
protected  int canAffectCode()
          Designates whether, when used as a property/effect, what sort of objects this ability can affect.
 boolean canBeLearnedBy(MOB teacher, MOB student)
          Returns whether the given student mob is able and allowed to learn this skill from the given teacher.
 boolean canBePracticedBy(MOB teacher, MOB student)
          Returns whether the given teacher mob is able and allowed to practice this skill with the given student *and* whether the student is able and allowed to practice this skill.
 boolean canBeTaughtBy(MOB teacher, MOB student)
          Returns whether the given teacher mob is able and allowed to teach this skill to the given student.
 boolean canBeUninvoked()
          Whether this skill is allowed to be uninvoked.
 boolean canTarget(Environmental E)
          Returns whether, when used as a skill, this ability can target itself at the given object.
 boolean canTarget(int can_code)
          Returns whether, when used as a skill, this ability can target itself at an object of the given type.
protected  int canTargetCode()
          Designates whether, when invoked as a skill, what sort of objects this ability can effectively target.
 int castingQuality(MOB mob, Environmental target)
          Serves a purpose similar to that of the Ability abstractQuality() method, but it determines a more exact quality based on a given invoker, target, and assumes an imminent use of the skill.
protected  int castingQuality(MOB mob, Environmental target, int abstractQuality)
           
 double castingTime(MOB mob, java.util.Vector cmds)
          Returns the number of actions required to completely activate this skill.
 boolean checkComponents(MOB mob)
           
 int classificationCode()
          Returns a bitmap describing the general classification of the skill (spell, skill, chant, or property, etc) and its domain.
protected  void cloneFix(Ability E)
           
 double combatCastingTime(MOB mob, java.util.Vector cmds)
          Returns the number of actions required to completely activate this skill.
 int compareTo(CMObject o)
           
 CMObject copyOf()
          Similar to Cloneable.clone(), but does its best to make sure that any internal objects to this class are also copyOfed.
 void delBehavior(Behavior to)
          Delete a behavior from this object.
 void delEffect(Ability to)
          Delete an effect from this object, whether permanent or temporary.
 void delScript(ScriptingEngine S)
          Remove a running script from this object.
 java.lang.String description()
          The basic description of this object, as shown when the item is directly LOOKed at.
 void destroy()
          Utterly and permanently destroy this object, not only removing it from the map, but causing this object to be collected as garbage by Java.
 java.lang.String displayText()
          Gets the raw string used to show what this object looks like in the room.
protected  boolean disregardsArmorCheck(MOB mob)
           
 int enchantQuality()
          Identical to abstractQuality() method, but returns a quality based on how the skill or spell behaves as a spell effect on a weapon or on armor.
 EnvStats envStats()
          Object containing a set of current, modified, usable, mostly numeric fields.
 void executeMsg(Environmental myHost, CMMsg msg)
          The general message event handler for the object.
 int experienceLevels(MOB caster, int asLevel)
           
protected  int expertise(MOB mob, int code)
           
 long expirationDate()
          If this object expires, it should have a timestamp saying when it expires, in real time.
 java.util.Vector externalFiles()
          Any external files which may be required to make this ability work files returned by this method should not be base distrib files!
 Behavior fetchBehavior(int index)
          Returns a behavior object on this object.
 Behavior fetchBehavior(java.lang.String ID)
          Returns a behavior object listed on this object.
 Ability fetchEffect(int index)
          Returns an ability object listed as an effect on this object.
 Ability fetchEffect(java.lang.String ID)
          Returns an ability object listed as an effect on this object.
 ScriptingEngine fetchScript(int x)
          Retreive one of the enumerated scripts running on this object
protected  void finalize()
           
 long flags()
          Returns a bitmap giving some specific information about the scope and purpose of the skill.
 Environmental getAnyTarget(MOB mob, java.util.Vector commands, Environmental givenTarget, int wornReqCode)
           
 Environmental getAnyTarget(MOB mob, java.util.Vector commands, Environmental givenTarget, int wornReqCode, boolean checkOthersInventory)
           
 Environmental getAnyTarget(MOB mob, java.util.Vector commands, Environmental givenTarget, int wornReqCode, boolean checkOthersInventory, boolean alreadyAffOk)
           
 int getBeneficialTickdownTime(MOB mob, Environmental target, int tickAdjustmentFromStandard, int asLevel)
           
protected  int getCodeNum(java.lang.String code)
           
 int getMaliciousTickdownTime(MOB mob, Environmental target, int tickAdjustmentFromStandard, int asLevel)
           
 int getSaveStatIndex()
          Returns the index into the stat codes array where extra savable fields begins.
 java.lang.String getStat(java.lang.String code)
          An alternative means of retreiving the values of those fields on this object which are modifiable at run-time by builders.
 java.lang.String[] getStatCodes()
          Returns an array of the string names of those fields which are modifiable on this object at run-time by builders.
 Item getTarget(MOB mob, Room location, Environmental givenTarget, Item container, java.util.Vector commands, int wornReqCode)
           
 Item getTarget(MOB mob, Room location, Environmental givenTarget, java.util.Vector commands, int wornReqCode)
           
 MOB getTarget(MOB mob, java.util.Vector commands, Environmental givenTarget)
           
 MOB getTarget(MOB mob, java.util.Vector commands, Environmental givenTarget, boolean quiet, boolean alreadyAffOk)
           
 int getTickDownRemaining()
           
 long getTickStatus()
          A coded status for this object during the period where its tick method is being called.
protected  int getX1Level(MOB mob)
           
protected  int getX2Level(MOB mob)
           
protected  int getX3Level(MOB mob)
           
protected  int getX4Level(MOB mob)
           
protected  int getX5Level(MOB mob)
           
protected  int getXLEVELLevel(MOB mob)
           
protected  int getXLOWCOSTLevel(MOB mob)
           
protected  int getXMAXRANGELevel(MOB mob)
           
protected  int getXPCOSTAdjustment(MOB mob, int xpLoss)
           
protected  int getXPCOSTLevel(MOB mob)
           
protected  int getXTIMELevel(MOB mob)
           
 void helpProficiency(MOB mob)
          This method should, occassionally, add to the proficiency the given mob has in this skill.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 java.lang.String image()
          Returns the fully qualified and determined name of the image file displayed for this object when MXP is used.
protected  int iniPracticesRequired()
           
protected  int iniPracticesToPractice()
           
 void initializeClass()
          Called ONCE after all objects are loaded, but before the map is read in during initialization.
protected  int iniTrainsRequired()
           
 boolean invoke(MOB mob, Environmental target, boolean auto, int asLevel)
          This method is called when a player or the system invokes this skill, casts this spell, etc.
 boolean invoke(MOB mob, java.util.Vector commands, Environmental target, boolean auto, int asLevel)
          This method is called when a player or the system invokes this skill, casts this spell, etc.
 MOB invoker()
          Always returns the mob that invoked or initiated the skill or effect.
 boolean isAutoInvoked()
          An autoinvocating ability is an ability which affects the mob just by having learned the ability.
 boolean isGeneric()
          Whether the fields of this item are set in code, or set by builders.
 boolean isNowAnAutoEffect()
          An autoinvocating ability is an ability which affects the mob just by having learned the ability.
 boolean isStat(java.lang.String code)
          An alternative means of retreiving the values of those fields on this object which are modifiable at run-time by builders.
 void makeLongLasting()
          If this ability has been added as as temporary effect, like sleep, or trip, or other typical spells, calling this method will make it so thatit will not do so on its own for a long long time.
 void makeNonUninvokable()
          Designates that this skill should never be uninvoked.
 boolean maliciousAffect(MOB mob, Environmental target, int asLevel, int tickAdjustmentFromStandard, int additionAffectCheckCode)
           
 boolean maliciousFizzle(MOB mob, Environmental target, java.lang.String message)
           
 int maxRange()
          the maximum range of this object, if applicable.
protected  long minCastWaitTime()
           
 int minRange()
          the minimum range of this object, if applicable.
 java.lang.String miscTextFormat()
          Unimplemented as of yet, but will hold a string telling the system what the proper format of any miscText data.
 java.lang.String name()
          The displayable name of this object.
 java.lang.String Name()
          The raw unmodified name of this object as stored in the database.
 CMObject newInstance()
          Returns a new instance of this class.
 int numBehaviors()
          The number of behaviors this object has.
 int numEffects()
          Returns the number of ability objects listed as effects on this object.
 int numScripts()
          Return the number of scripts running on this object
 boolean okMessage(Environmental myHost, CMMsg msg)
          The general message event previewer for the object.
protected  int overrideMana()
           
protected static Item possibleContainer(MOB mob, java.util.Vector commands, boolean withStuff, int wornReqCode)
           
 void practice(MOB teacher, MOB student)
          Causes the student to practice this skill, presumably with the teacher mob.
 int practicesRequired(MOB mob)
          Returns practices required to learn this skill
 int practicesToPractice(MOB mob)
           
 boolean preInvoke(MOB mob, java.util.Vector commands, Environmental givenTarget, boolean auto, int asLevel, int secondsElapsed, double actionsRemaining)
          This method is only called when the mob invoking this skill does not have enough actions to complete it immediately.
 int proficiency()
          Returns a number from 0-100 representing the percent of proficiency the mob or player who has this instance in their Abilities list has in this skill.
 boolean proficiencyCheck(MOB mob, int adjustment, boolean auto)
          Returns whether the given mob passes their proficiency check in this skill at this time.
 java.util.HashSet properTargets(MOB mob, Environmental givenTarget, boolean auto)
           
 boolean putInCommandlist()
          Returns whether this skills triggerStrings should be places in the master list of commands, unlike properties or other hidden skills.
 java.lang.String rawImage()
          Returns the raw name of the image file to display for this object when MXP is used.
 void recoverEnvStats()
          This method copies the baseEnvStats() object into the envStats() object, then makes repeated calls to all surrounding objects with affectEnvStats(Environmental,EnvStats) method.