com.planet_ink.coffee_mud.Abilities.Properties
Class Prop_SpellAdder

java.lang.Object
  extended by com.planet_ink.coffee_mud.Abilities.Properties.Property
      extended by com.planet_ink.coffee_mud.Abilities.Properties.Prop_SpellAdder
All Implemented Interfaces:
Ability, CMObject, Contingent, Environmental, Modifiable, MsgListener, StatsAffecting, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>
Direct Known Subclasses:
Prop_FightSpellCast, Prop_HaveEnabler, Prop_HaveSpellCast, Prop_UseSpellCast

public class Prop_SpellAdder
extends Property


Field Summary
protected  MaskingLibrary.CompiledZapperMask compiledMask
           
protected  MOB invokerMOB
           
protected  Physical lastMOB
           
protected  int level
           
protected  boolean processing
           
protected  java.util.List<Ability> spellV
           
protected  boolean uninvocable
           
protected  java.util.List<Ability> unrevocableSpells
           
 
Fields inherited from class com.planet_ink.coffee_mud.Abilities.Properties.Property
affected, amDestroyed, empty, 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
 
Constructor Summary
Prop_SpellAdder()
           
 
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(PhysicalAgent source, Physical target, boolean makeLongLasting, int asLevel)
           
 void affectPhyStats(Physical host, PhyStats affectableStats)
          This method is called by the recoverPhyStats() method on other Environmental objects.
protected  int canAffectCode()
          Designates whether, when used as a property/effect, what sort of objects this ability can affect.
 java.util.List convertToV2(java.util.List<Ability> spellsV, Physical target)
           
 boolean didHappen(int defaultPct)
           
 void executeMsg(Environmental host, CMMsg msg)
          The general message event handler for the object.
protected  void finalize()
           
 MOB getBestInvokerMOB(Environmental target)
           
 MOB getInvokerMOB(Environmental source, Environmental target)
           
 java.lang.String getMaskString(java.lang.String newText)
           
 java.util.List<Ability> getMySpellsV()
           
 java.lang.String getParmString(java.lang.String newText)
           
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 boolean invoke(MOB mob, java.util.Vector commands, Physical givenTarget, boolean auto, int asLevel)
          This method is called when a player or the system invokes this skill, casts this spell, etc.
 java.util.Map<java.lang.String,java.lang.String> makeMySpellsH(java.util.List<Ability> V)
           
 java.lang.String name()
          The displayable name of this object.
 void removeMyAffectsFrom(Physical P)
           
 void removeMyAffectsFromLastMOB()
           
 void setAffectedOne(Physical P)
          Sets a reference to the room, item, mob, or exit that is currently being affected by this skill.
 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.
 java.lang.String spellAccountingsWithMask(java.lang.String pre, java.lang.String post)
           
 
Methods inherited from class com.planet_ink.coffee_mud.Abilities.Properties.Property
abilityCode, abstractQuality, adjustedLevel, affectCharState, affectCharStats, affecting, amDestroyed, appropriateToMyFactions, autoInvocation, bubbleAffect, canAffect, canAffect, canBeLearnedBy, canBePracticedBy, canBeTaughtBy, canBeUninvoked, canTarget, canTarget, canTargetCode, castingQuality, castingTime, checkedCastingTime, classificationCode, clearExpertiseCache, combatCastingTime, compareTo, copyOf, description, destroy, displayText, enchantQuality, expirationDate, externalFiles, flags, getCodeNum, getSaveStatIndex, getStat, getStatCodes, getTicksBetweenCasts, getTickStatus, helpProficiency, image, initializeClass, invoke, invoker, isAutoInvoked, isGeneric, isNowAnAutoEffect, isSavable, isStat, makeLongLasting, makeNonUninvokable, maxRange, minRange, miscTextFormat, Name, newInstance, okMessage, practice, practicesRequired, preInvoke, proficiency, proficiencyCheck, putInCommandlist, rawImage, requirements, sameAs, setAbilityCode, 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

lastMOB

protected Physical lastMOB

invokerMOB

protected MOB invokerMOB

processing

protected boolean processing

uninvocable

protected boolean uninvocable

level

protected int level

spellV

protected java.util.List<Ability> spellV

compiledMask

protected MaskingLibrary.CompiledZapperMask compiledMask

unrevocableSpells

protected java.util.List<Ability> unrevocableSpells
Constructor Detail

Prop_SpellAdder

public Prop_SpellAdder()
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 Property
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 phyStats() object. Is derived from the Name().

Specified by:
name in interface Environmental
Specified by:
name in interface Tickable
Overrides:
name in class Property
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 Property
Returns:
a mask showing the type of objects this ability can affect
See Also:
Ability

finalize

protected void finalize()
Overrides:
finalize in class java.lang.Object

getMaskString

public java.lang.String getMaskString(java.lang.String newText)

getParmString

public java.lang.String getParmString(java.lang.String newText)

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 Property
Parameters:
newText - either an open internal text string, or XML

getMySpellsV

public java.util.List<Ability> getMySpellsV()

didHappen

public boolean didHappen(int defaultPct)

makeMySpellsH

public java.util.Map<java.lang.String,java.lang.String> makeMySpellsH(java.util.List<Ability> V)

getBestInvokerMOB

public MOB getBestInvokerMOB(Environmental target)

getInvokerMOB

public MOB getInvokerMOB(Environmental source,
                         Environmental target)

convertToV2

public java.util.List convertToV2(java.util.List<Ability> spellsV,
                                  Physical target)

addMeIfNeccessary

public boolean addMeIfNeccessary(PhysicalAgent source,
                                 Physical target,
                                 boolean makeLongLasting,
                                 int asLevel)

invoke

public boolean invoke(MOB mob,
                      java.util.Vector commands,
                      Physical 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 Property
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.

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 Property
Returns:
a description of properties incorporated

removeMyAffectsFromLastMOB

public void removeMyAffectsFromLastMOB()

setAffectedOne

public void setAffectedOne(Physical P)
Description copied from interface: Ability
Sets a reference to the room, item, mob, or exit that is currently being affected by this skill. Does not apply to non-affecting skills like kick, but more to auto-invoking skills and spells that affect people like sleep, and especially to properties.

Specified by:
setAffectedOne in interface Ability
Overrides:
setAffectedOne in class Property
Parameters:
P - the room, mob, or item being affected
See Also:
Ability.affecting()

removeMyAffectsFrom

public void removeMyAffectsFrom(Physical P)

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

affectPhyStats

public void affectPhyStats(Physical host,
                           PhyStats affectableStats)
Description copied from interface: StatsAffecting
This method is called by the recoverPhyStats() method on other Environmental objects. It is used to transform the Environmental basePhyStats() object into a finished phyStats() object, both of which are objects implementing the PhyStats interface. See those methods for more information.

Specified by:
affectPhyStats in interface StatsAffecting
Overrides:
affectPhyStats in class Property
Parameters:
host - the host of the PhyStats object being affected
affectableStats - the particular PhyStats object being affected
See Also:
PhyStats, Environmental, Affectable.basePhyStats(), Affectable.phyStats(), Affectable.recoverPhyStats()

spellAccountingsWithMask

public java.lang.String spellAccountingsWithMask(java.lang.String pre,
                                                 java.lang.String post)