com.planet_ink.coffee_mud.Abilities.Properties
Class Prop_HaveEnabler

java.lang.Object
  extended by com.planet_ink.coffee_mud.Abilities.Properties.Property
      extended by com.planet_ink.coffee_mud.Abilities.Properties.Prop_SpellAdder
          extended by com.planet_ink.coffee_mud.Abilities.Properties.Prop_HaveEnabler
All Implemented Interfaces:
Ability, Behavable, CMModifiable, CMObject, Environmental, MsgListener, StatsAffecting, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>
Direct Known Subclasses:
Prop_RideEnabler, Prop_WearEnabler

public class Prop_HaveEnabler
extends Prop_SpellAdder


Field Summary
protected  java.util.Vector lastMOBeffected
           
protected  Item myItem
           
protected  boolean processing2
           
 
Fields inherited from class com.planet_ink.coffee_mud.Abilities.Properties.Prop_SpellAdder
compiledMask, invokerMOB, lastMOB, level, processing, spellV, uninvocable, unrevocableSpells
 
Fields inherited from class com.planet_ink.coffee_mud.Abilities.Properties.Property
affected, amDestroyed, empty, envStats, miscText, savable
 
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
Prop_HaveEnabler()
           
 
Method Summary
 java.lang.String accountForYourself()
          For use by the identify spell, this should return a nice description of any properties incorporated by this effect.
 boolean addMeIfNeccessary(Environmental source, Environmental target, boolean makeLongLasting)
           
 void affectEnvStats(Environmental host, EnvStats affectableStats)
          This method is called by the recoverEnvStats() method on other Environmental objects.
protected  int canAffectCode()
          Designates whether, when used as a property/effect, what sort of objects this ability can affect.
 void executeMsg(Environmental host, CMMsg msg)
          The general message event handler for the object.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 java.lang.String name()
          The displayable name of this object.
 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.
 void removeMyAffectsFrom(Environmental E)
           
 void removeMyAffectsFromLastMob()
           
 void setMiscText(java.lang.String newText)
          For objects which have false for their isGeneric method, this is used to set any internally coded strings to change the nature or behavior of the object.
 
Methods inherited from class com.planet_ink.coffee_mud.Abilities.Properties.Prop_SpellAdder
addMeIfNeccessary, convertToV2, didHappen, getBestInvokerMOB, getInvokerMOB, getMaskString, getMySpellsV, getParmString, invoke, makeMySpellsH, removeMyAffectsFromLastMOB, spellAccountingsWithMask
 
Methods inherited from class com.planet_ink.coffee_mud.Abilities.Properties.Property
abilityCode, abstractQuality, addBehavior, addEffect, addNonUninvokableEffect, addScript, adjustedLevel, affectCharState, affectCharStats, affecting, amDestroyed, appropriateToMyFactions, autoInvocation, baseEnvStats, bubbleAffect, buildMask, canAffect, canAffect, canBeLearnedBy, canBePracticedBy, canBeTaughtBy, canBeUninvoked, canTarget, canTarget, canTargetCode, castingQuality, castingTime, classificationCode, combatCastingTime, compareTo, copyOf, delBehavior, delEffect, delScript, description, destroy, displayText, enchantQuality, envStats, expirationDate, externalFiles, fetchBehavior, fetchBehavior, fetchEffect, fetchEffect, fetchScript, finalize, flags, getCodeNum, getSaveStatIndex, getStat, getStatCodes, getTickStatus, helpProficiency, image, initializeClass, invoke, invoker, isAutoInvoked, isGeneric, isNowAnAutoEffect, isStat, makeLongLasting, makeNonUninvokable, maxRange, minRange, miscTextFormat, Name, newInstance, numBehaviors, numEffects, numScripts, okMessage, practice, practicesRequired, preInvoke, proficiency, proficiencyCheck, putInCommandlist, rawImage, requirements, sameAs, savable, separateMask, setAbilityCode, setAffectedOne, setBaseEnvStats, setDescription, setDisplayText, setExpirationDate, setImage, setInvoker, setName, setProficiency, setSavable, setStat, startTickDown, teach, text, tick, trainsRequired, triggerStrings, unInvoke, usageCost, usageType
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

myItem

protected Item myItem

lastMOBeffected

protected java.util.Vector lastMOBeffected

processing2

protected boolean processing2
Constructor Detail

Prop_HaveEnabler

public Prop_HaveEnabler()
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 Prop_SpellAdder
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 Prop_SpellAdder
Returns:
the modified final name of this object on the map.
See Also:
Environmental.Name()

canAffectCode

protected int canAffectCode()
Description copied from class: Property
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 Prop_SpellAdder
Returns:
a mask showing the type of objects this ability can affect
See Also:
Ability

accountForYourself

public java.lang.String accountForYourself()
Description copied from interface: Ability
For use by the identify spell, this should return a nice description of any properties incorporated by this effect.

Specified by:
accountForYourself in interface Ability
Overrides:
accountForYourself in class Prop_SpellAdder
Returns:
a description of properties incorporated

setMiscText

public void setMiscText(java.lang.String newText)
Description copied from interface: Environmental
For objects which have false for their isGeneric method, this is used to set any internally coded strings to change the nature or behavior of the object. For objects which have true for their isGeneric method, this is used to set and parse the XML which will be used to fill out the fields in this object. Since Ability objects are never Generic, this will always be where parameters are read from an Ability instance.

Specified by:
setMiscText in interface Environmental
Overrides:
setMiscText in class Prop_SpellAdder
Parameters:
newText - either an open internal text string, or XML

addMeIfNeccessary

public boolean addMeIfNeccessary(Environmental source,
                                 Environmental target,
                                 boolean makeLongLasting)

removeMyAffectsFrom

public void removeMyAffectsFrom(Environmental E)
Overrides:
removeMyAffectsFrom in class Prop_SpellAdder

removeMyAffectsFromLastMob

public void removeMyAffectsFromLastMob()

recoverEnvStats

public void recoverEnvStats()
Description copied from interface: Environmental
This method copies the baseEnvStats() object into the envStats() object, then makes repeated calls to all surrounding objects with affectEnvStats(Environmental,EnvStats) method. Surrounding objects include the room where the object is located, the Ability objects in the Effects list, the Behaviors in the behaviors list, and race/charclass/area if applicable. Those methods will then make all necessary adjustments to the values in the new envStats() object. When it returns, envStats() will have a totally updated object. This method must be called in code whenever the object is placed on the map, or when anything changes in its environment, such as location, effects, or other states.

Specified by:
recoverEnvStats in interface Environmental
Overrides:
recoverEnvStats in class Property
See Also:
Environmental.baseEnvStats(), Environmental.envStats(), Environmental.addEffect(Ability), Behavable.addBehavior(Behavior), EnvStats

executeMsg

public void executeMsg(Environmental host,
                       CMMsg msg)
Description copied from interface: MsgListener
The general message event handler for the object. Messages passed herein may not necessarily be FOR this object, or from it, but will almost always represent events happening in the same room. The messages have already been through an approval process, so this method is called only to affect the final execution of the meaning of the message. Every game event goes through these methods.

Specified by:
executeMsg in interface MsgListener
Overrides:
executeMsg in class Prop_SpellAdder
Parameters:
host - either the initiator of the event, or the host of this object
msg - the CMMsg that needs to be executed
See Also:
CMMsg

affectEnvStats

public void affectEnvStats(Environmental host,
                           EnvStats affectableStats)
Description copied from interface: StatsAffecting
This method is called by the recoverEnvStats() method on other Environmental objects. It is used to transform the Environmental baseEnvStats() object into a finished envStats() object, both of which are objects implementing the EnvStats interface. See those methods for more information.

Specified by:
affectEnvStats in interface StatsAffecting
Overrides:
affectEnvStats in class Prop_SpellAdder
Parameters:
host - the host of the EnvStats object being affected
affectableStats - the particular EnvStats object being affected
See Also:
EnvStats, Environmental, Environmental.baseEnvStats(), Environmental.envStats(), Environmental.recoverEnvStats()