com.planet_ink.coffee_mud.Items.MiscMagic
Class StdScroll

java.lang.Object
  extended by com.planet_ink.coffee_mud.Items.Basic.StdItem
      extended by com.planet_ink.coffee_mud.Items.MiscMagic.StdScroll
All Implemented Interfaces:
Affectable, Behavable, CMObject, Contingent, DBIdentifiable, Environmental, Modifiable, MsgListener, Physical, PhysicalAgent, Readable, Rider, StatsAffecting, Tickable, Item, MiscMagic, Scroll, SpellHolder, Wearable, java.lang.Cloneable, java.lang.Comparable<CMObject>
Direct Known Subclasses:
GenScroll, ScrollSpell

public class StdScroll
extends StdItem
implements MiscMagic, Scroll


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Wearable
Wearable.CODES
 
Field Summary
protected static java.lang.String[] CODES
           
protected  java.lang.String readableScrollBy
           
 
Fields inherited from class com.planet_ink.coffee_mud.Items.Basic.StdItem
affectPhyStats, affects, baseGoldValue, basePhyStats, behaviors, cachedImageName, databaseID, description, destroyed, displayText, dispossessionTime, material, me, miscText, myContainer, myUses, myWornCode, name, owner, phyStats, properWornBitmap, rawImageName, riding, scripts, secretIdentity, tickCtr, tickStatus, wornLogicalAnd, xtraValues
 
Fields inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Wearable
DEFAULT_WORN_CODES, DEFAULT_WORN_DEPENDENCYGRID, DEFAULT_WORN_DESCS, DEFAULT_WORN_ORDER, DEFAULT_WORN_USUAL_NAMES, DEFAULT_WORN_WEIGHT_POINTS, DEFAULT_WORN_WEIGHTS, FILTER_ANY, FILTER_MOBINVONLY, FILTER_ROOMONLY, FILTER_UNWORNONLY, FILTER_WORNONLY, HIGHEST_WORN_CODE, IN_INVENTORY, WORN_ABOUT_BODY, WORN_ARMS, WORN_BACK, WORN_EARS, WORN_EYES, WORN_FEET, WORN_FLOATING_NEARBY, WORN_HANDS, WORN_HEAD, WORN_HELD, WORN_LEFT_FINGER, WORN_LEFT_WRIST, WORN_LEGS, WORN_MOUTH, WORN_NECK, WORN_RIGHT_FINGER, WORN_RIGHT_WRIST, WORN_TORSO, WORN_WAIST, WORN_WIELD
 
Constructor Summary
StdScroll()
           
 
Method Summary
 void executeMsg(Environmental myHost, CMMsg msg)
          The general message event handler for the object.
protected  int getCodeNum(java.lang.String code)
           
 java.lang.String getSpellList()
          Gets the list of abilities that this item contains as a semicolon-delimited list, with any spell arguments in parenthesis after the spell ID.
 java.util.List<Ability> getSpells()
          Returns the list of ability objects that this item contains.
 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.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 boolean isReadableScrollBy(java.lang.String name)
          Checks whether the given mob was the last one to decipher the runes on this scroll through the Read Magic ability, allowing them to freely read the contents of the scroll in the future.
static java.lang.String makeSecretIdentity(java.lang.String thang, java.lang.String id, java.lang.String more, java.util.List<Ability> V)
           
 void readIfAble(MOB mob, java.lang.String spellName)
          Reads the given spell off this scroll for the given mob, if they are able.
 boolean sameAs(Environmental E)
          Whether this object instance is functionally identical to the object passed in.
 java.lang.String secretIdentity()
          This method returns the calculated and expanded description of the properties of the item as would be discovered through the Identify spell.
 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.
 void setReadableScrollBy(java.lang.String name)
          Sets the given mob as the last one to decipher the runes on this scroll through the Read Magic ability, allowing them to freely read the contents of the scroll in the future.
 void setSpellList(java.lang.String list)
          Sets the list of abilities that this item contains as a semicolon-delimited list, with any spell arguments in parenthesis after the spell ID.
 void setStat(java.lang.String code, java.lang.String val)
          An alternative means of setting the values of those fields on this object which are modifiable at run-time by builders.
 boolean useTheScroll(Ability A, MOB mob)
          Causes the given mob to cast the given spell/effect through this scroll.
 int value()
          The default value of the item, represented in the base CoffeeMud currency.
 
Methods inherited from class com.planet_ink.coffee_mud.Items.Basic.StdItem
abilityImbuesMagic, addBehavior, addEffect, addNonUninvokableEffect, addScript, affectCharState, affectCharStats, affectPhyStats, alreadyWornMsg, amBeingWornProperly, amDestroyed, amWearingAt, baseGoldValue, basePhyStats, behaviors, canSaveDatabaseID, canWear, canWearComplete, cloneFix, compareProperLocations, compareTo, container, copyOf, databaseID, delAllBehaviors, delAllEffects, delAllScripts, delBehavior, delEffect, delScript, description, description, destroy, displayText, displayText, eachBehavior, eachEffect, eachScript, effects, expirationDate, fetchBehavior, fetchBehavior, fetchEffect, fetchEffect, fetchScript, fitsOn, getSaveStatIndex, getTickStatus, I, image, initializeClass, isGeneric, isReadable, isSavable, isStat, L, material, maxRange, minRange, miscTextFormat, name, Name, name, newInstance, numBehaviors, numberOfItems, numEffects, numScripts, okMessage, owner, phyStats, rawImage, rawLogicalAnd, rawProperLocationBitmap, rawSecretIdentity, rawWornCode, readableText, recoverPhyStats, recursiveWeight, removeFromOwnerContainer, riding, scripts, setBasePhyStats, setBaseValue, setContainer, setDatabaseID, setDescription, setDisplayText, setExpirationDate, setImage, setMaterial, setName, setOwner, setRawLogicalAnd, setRawProperLocationBitmap, setRawWornCode, setReadable, setReadableText, setRiding, setSavable, setSecretIdentity, setUsesRemaining, stopTicking, subjectToWearAndTear, tackOns, text, tick, ultimateContainer, unWear, usesRemaining, wearAt, wearEvenIfImpossible, wearIfPossible, wearIfPossible, whereCantWear
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Item
baseGoldValue, container, material, numberOfItems, owner, rawSecretIdentity, recursiveWeight, removeFromOwnerContainer, setBaseValue, setContainer, setMaterial, setOwner, setSecretIdentity, setUsesRemaining, stopTicking, subjectToWearAndTear, ultimateContainer, usesRemaining
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Rider
riding, setRiding
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.CMObject
copyOf, initializeClass, newInstance
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.DBIdentifiable
canSaveDatabaseID, databaseID, setDatabaseID
 
Methods inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Wearable
amBeingWornProperly, amWearingAt, canWear, compareProperLocations, fitsOn, rawLogicalAnd, rawProperLocationBitmap, rawWornCode, setRawLogicalAnd, setRawProperLocationBitmap, setRawWornCode, unWear, wearAt, wearEvenIfImpossible, wearIfPossible, wearIfPossible, whereCantWear
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Readable
isReadable, readableText, setReadable, setReadableText
 

Field Detail

readableScrollBy

protected java.lang.String readableScrollBy

CODES

protected static java.lang.String[] CODES
Constructor Detail

StdScroll

public StdScroll()
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 StdItem
Returns:
the name of this class

getSpellList

public java.lang.String getSpellList()
Description copied from interface: SpellHolder
Gets the list of abilities that this item contains as a semicolon-delimited list, with any spell arguments in parenthesis after the spell ID.

Specified by:
getSpellList in interface SpellHolder
Returns:
the list of ability names semicolon delimited
See Also:
SpellHolder.setSpellList(String)

setSpellList

public void setSpellList(java.lang.String list)
Description copied from interface: SpellHolder
Sets the list of abilities that this item contains as a semicolon-delimited list, with any spell arguments in parenthesis after the spell ID.

Specified by:
setSpellList in interface SpellHolder
Parameters:
list - the list of ability names semicolon delimited
See Also:
SpellHolder.getSpellList()

value

public int value()
Description copied from interface: Item
The default value of the item, represented in the base CoffeeMud currency. This method starts with baseGoldValue, which is a user-entered value, and adjusts according to magical enhancements and the condition of the item.

Specified by:
value in interface Item
Overrides:
value in class StdItem
Returns:
the adjusted value of the item in the base currency.

useTheScroll

public boolean useTheScroll(Ability A,
                            MOB mob)
Description copied from interface: Scroll
Causes the given mob to cast the given spell/effect through this scroll. This will remove the spell from the scroll.

Specified by:
useTheScroll in interface Scroll
Parameters:
A - the spell on the scroll to cast
mob - the person reading the spell on the scroll.
Returns:
true if the spell was cast, false otherwise

secretIdentity

public java.lang.String secretIdentity()
Description copied from interface: Item
This method returns the calculated and expanded description of the properties of the item as would be discovered through the Identify spell. It starts with its rawSecretIdentity() and adds to it any strings which the Ability objects contained in the Items effects list would generate. An empty string means the item has no secret properties per se.

Specified by:
secretIdentity in interface Item
Overrides:
secretIdentity in class StdItem
Returns:
a displayable string describing the secret properties of the item.

makeSecretIdentity

public static java.lang.String makeSecretIdentity(java.lang.String thang,
                                                  java.lang.String id,
                                                  java.lang.String more,
                                                  java.util.List<Ability> V)

readIfAble

public void readIfAble(MOB mob,
                       java.lang.String spellName)
Description copied from interface: Scroll
Reads the given spell off this scroll for the given mob, if they are able. Any errors will be messaged directly to the mob.

Specified by:
readIfAble in interface Scroll
Parameters:
mob - the mob who is trying to read
spellName - the spell the mob is trying to read

getSpells

public java.util.List<Ability> getSpells()
Description copied from interface: SpellHolder
Returns the list of ability objects that this item contains.

Specified by:
getSpells in interface SpellHolder
Returns:
the list of ability objects that this item contains
See Also:
SpellHolder.getSpellList(), SpellHolder.setSpellList(String)

executeMsg

public void executeMsg(Environmental myHost,
                       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 StdItem
Parameters:
myHost - either the initiator of the event, or the host of this object
msg - the CMMsg that needs to be executed
See Also:
CMMsg

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

isReadableScrollBy

public boolean isReadableScrollBy(java.lang.String name)
Description copied from interface: Scroll
Checks whether the given mob was the last one to decipher the runes on this scroll through the Read Magic ability, allowing them to freely read the contents of the scroll in the future.

Specified by:
isReadableScrollBy in interface Scroll
Parameters:
name - the name of the player to check
Returns:
true if the player has already read, false otherwise
See Also:
Scroll.setReadableScrollBy(String)

setReadableScrollBy

public void setReadableScrollBy(java.lang.String name)
Description copied from interface: Scroll
Sets the given mob as the last one to decipher the runes on this scroll through the Read Magic ability, allowing them to freely read the contents of the scroll in the future.

Specified by:
setReadableScrollBy in interface Scroll
Parameters:
name - the name of the player to set
See Also:
Scroll.isReadableScrollBy(String)

getStat

public java.lang.String getStat(java.lang.String code)
Description copied from interface: Modifiable
An alternative means of retreiving the values of those fields on this object which are modifiable at run-time by builders. See getStatCodes() for possible values for the code passed to this method. Values returned are always strings, even if the field itself is numeric or a list.

Specified by:
getStat in interface Modifiable
Overrides:
getStat in class StdItem
Parameters:
code - the name of the field to read.
Returns:
the value of the field read
See Also:
Modifiable.getStatCodes()

setStat

public void setStat(java.lang.String code,
                    java.lang.String val)
Description copied from interface: Modifiable
An alternative means of setting the values of those fields on this object which are modifiable at run-time by builders. See getStatCodes() for possible values for the code passed to this method. The value passed in is always a string, even if the field itself is numeric or a list.

Specified by:
setStat in interface Modifiable
Overrides:
setStat in class StdItem
Parameters:
code - the name of the field to set
val - the value to set the field to
See Also:
Modifiable.getStatCodes()

getStatCodes

public java.lang.String[] getStatCodes()
Description copied from interface: Modifiable
Returns an array of the string names of those fields which are modifiable on this object at run-time by builders.

Specified by:
getStatCodes in interface Modifiable
Overrides:
getStatCodes in class StdItem
Returns:
list of the fields which may be set.
See Also:
Modifiable.getStat(String), Modifiable.setStat(String, String)

getCodeNum

protected int getCodeNum(java.lang.String code)
Overrides:
getCodeNum in class StdItem

sameAs

public boolean sameAs(Environmental E)
Description copied from interface: Environmental
Whether this object instance is functionally identical to the object passed in. Works by repeatedly calling getStat on both objects and comparing the values.

Specified by:
sameAs in interface Environmental
Overrides:
sameAs in class StdItem
Parameters:
E - the object to compare this one to
Returns:
whether this object is the same as the one passed in
See Also:
Modifiable.getStatCodes(), Modifiable.getStat(String)