com.planet_ink.coffee_mud.Items.Basic
Class StdTitle

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

public class StdTitle
extends StdItem
implements LandTitle


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 CANCEL_WORD
           
 
Fields inherited from class com.planet_ink.coffee_mud.Items.Basic.StdItem
affectPhyStats, affects, baseGoldValue, basePhyStats, behaviors, cachedImageName, CODES, 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.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_BEAMWEAPON, TICKID_CLAN, TICKID_CLANITEM, TICKID_DEADBODY_DECAY, TICKID_ELECTRONICS, TICKID_EMAIL, TICKID_EXIT_BEHAVIOR, TICKID_EXIT_REOPEN, TICKID_ITEM_BEHAVIOR, TICKID_ITEM_BOUNCEBACK, TICKID_LIGHT_FLICKERS, TICKID_LIVEAUCTION, TICKID_LONGERMASK, TICKID_MISCELLANEOUS, TICKID_MOB, TICKID_PROPERTY_SPECIAL, TICKID_QUEST, TICKID_READYTOSTOP, TICKID_ROOM_BEHAVIOR, TICKID_ROOM_ITEM_REJUV, TICKID_SOLITARYMASK, TICKID_SPECIALCOMBAT, TICKID_SPECIALMANEUVER, TICKID_SPELL_AFFECT, TICKID_SUPPORT, TICKID_TIMEAUCTION, TICKID_TRAP_DESTRUCTION, TICKID_TRAP_RESET
 
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
StdTitle()
           
 
Method Summary
 boolean allowsExpansionConstruction()
          Returns whether this title allows property to be expanded through masonry or construction.
 int backTaxes()
          If back taxes is owned on this property, this is how the value is retrieved.
 int baseGoldValue()
          The user/builder-entered value of the item, represented in base CoffeeMud currency.
 java.lang.String displayText()
          Gets the raw string used to show what this object looks like in the room.
 void executeMsg(Environmental myHost, CMMsg msg)
          The general message event handler for the object.
 LandTitle fetchALandTitle()
           
 PrivateProperty fetchAPropertyRecord()
           
 LandTitle generateNextRoomTitle()
          If this title allows expansion construction, this this will return the new title to assign to the newly constructed rooms.
 java.util.List<Room> getAllTitledRooms()
          The complete set of room objects represented by this title
 java.util.List<Room> getConnectedPropertyRooms()
          The complete set of room objects that are tied together by one or more titles.
 java.lang.String getOwnerName()
          Get the owner of the property, usually a clan name or a player name.
 CMObject getOwnerObject()
          Get the actual clan or mob owner of the property, or null if it can not.
 int getPrice()
          The value of the property in base currency values
 java.lang.String getTitleID()
          Returns a unique id for this particular title and the rooms is represents, even if the contents change.
 java.lang.String getUniqueLotID()
          Returns a unique identifier corresponding to getConnectedPropertyRooms.
 boolean gridLayout()
          Returns whether this title creates connected walls between new rooms as if the rooms were laid out in a grid.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 java.lang.String landPropertyID()
          Get the roomID or the Area name of the property for sale
 boolean okMessage(Environmental myHost, CMMsg msg)
          The general message event previewer for the object.
 void recoverPhyStats()
          This method copies the basePhyStats() object into the phyStats() object, then makes repeated calls to all surrounding objects with affectPhyStats(Environmental,PhyStats) method.
 boolean rentalProperty()
          Whether this property is a rental.
 void setBackTaxes(int amount)
          If back taxes is owned on this property, this is how the value is set.
 void setBaseGoldValue(int newValue)
           
 void setGridLayout(boolean layout)
          Sets whether this title creates connected walls between new rooms as if the rooms were laid out in a grid.
 void setLandPropertyID(java.lang.String landID)
          Set the roomID or the Area name of the property for sale
 void setOwnerName(java.lang.String owner)
          Set the owner of the property, usually a clan name or a player name.
 void setPrice(int price)
          set the value of the property in base currency values
 void setRentalProperty(boolean truefalse)
          Sets whether this property is a rental.
 void updateLot(java.util.Set<java.lang.String> optPlayerList)
          Checks for changes in the content or condition of the rooms represented by this title and saves the changes to the database, if necessary.
 void updateTitle()
          Simply resaves the rooms represented by this title to reflect change in ownership or price.
 void updateTitleName()
           
 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, basePhyStats, behaviors, canSaveDatabaseID, canWear, canWearComplete, cloneFix, compareProperLocations, compareTo, container, copyOf, databaseID, delAllBehaviors, delAllEffects, delAllScripts, delBehavior, delEffect, delScript, description, description, destroy, displayText, eachBehavior, eachEffect, eachScript, effects, expirationDate, fetchBehavior, fetchBehavior, fetchEffect, fetchEffect, fetchScript, fitsOn, getCodeNum, getSaveStatIndex, getStat, getStatCodes, getTickStatus, I, image, initializeClass, isGeneric, isReadable, isSavable, isStat, L, material, maxRange, minRange, miscTextFormat, name, Name, name, newInstance, numBehaviors, numberOfItems, numEffects, numScripts, owner, phyStats, rawImage, rawLogicalAnd, rawProperLocationBitmap, rawSecretIdentity, rawWornCode, readableText, recursiveWeight, removeFromOwnerContainer, riding, sameAs, scripts, secretIdentity, setBasePhyStats, setBaseValue, setContainer, setDatabaseID, setDescription, setDisplayText, setExpirationDate, setImage, setMaterial, setMiscText, setName, setOwner, setRawLogicalAnd, setRawProperLocationBitmap, setRawWornCode, setReadable, setReadableText, setRiding, setSavable, setSecretIdentity, setStat, 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.core.interfaces.Environmental
description, expirationDate, image, isGeneric, L, maxRange, minRange, miscTextFormat, Name, rawImage, sameAs, setDescription, setDisplayText, setExpirationDate, setImage, setMiscText, setName, text
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
getTickStatus, name, tick
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.StatsAffecting
affectCharState, affectCharStats, affectPhyStats
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Contingent
amDestroyed, destroy, isSavable, setSavable
 
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.Modifiable
getSaveStatIndex, getStat, getStatCodes, isStat, setStat
 

Field Detail

CANCEL_WORD

protected static final java.lang.String CANCEL_WORD
See Also:
Constant Field Values
Constructor Detail

StdTitle

public StdTitle()
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

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 StdItem
Returns:
the string describing how this object looks in the room

baseGoldValue

public int baseGoldValue()
Description copied from interface: Item
The user/builder-entered value of the item, represented in base CoffeeMud currency. It is used as a basis for the value returned by the value() method.

Specified by:
baseGoldValue in interface Item
Overrides:
baseGoldValue in class StdItem
Returns:
the raw user-entered value of item.

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.

setBaseGoldValue

public void setBaseGoldValue(int newValue)

allowsExpansionConstruction

public boolean allowsExpansionConstruction()
Description copied from interface: LandTitle
Returns whether this title allows property to be expanded through masonry or construction.

Specified by:
allowsExpansionConstruction in interface LandTitle
Returns:
true if expansion is OK, false otherwise
See Also:
LandTitle.generateNextRoomTitle()

getPrice

public int getPrice()
Description copied from interface: PrivateProperty
The value of the property in base currency values

Specified by:
getPrice in interface PrivateProperty
Returns:
the price of the property

generateNextRoomTitle

public LandTitle generateNextRoomTitle()
Description copied from interface: LandTitle
If this title allows expansion construction, this this will return the new title to assign to the newly constructed rooms.

Specified by:
generateNextRoomTitle in interface LandTitle
Returns:
the new title to assigne to a new room.
See Also:
LandTitle.allowsExpansionConstruction()

setPrice

public void setPrice(int price)
Description copied from interface: PrivateProperty
set the value of the property in base currency values

Specified by:
setPrice in interface PrivateProperty
Parameters:
price - the price of the property

setBackTaxes

public void setBackTaxes(int amount)
Description copied from interface: LandTitle
If back taxes is owned on this property, this is how the value is set. The value should be in base coffeemud currency

Specified by:
setBackTaxes in interface LandTitle
Parameters:
amount - the back taxes owed

backTaxes

public int backTaxes()
Description copied from interface: LandTitle
If back taxes is owned on this property, this is how the value is retrieved. The value should be in base coffeemud currency

Specified by:
backTaxes in interface LandTitle
Returns:
amount the back taxes owed

setGridLayout

public void setGridLayout(boolean layout)
Description copied from interface: LandTitle
Sets whether this title creates connected walls between new rooms as if the rooms were laid out in a grid.

Specified by:
setGridLayout in interface LandTitle
Parameters:
layout - true if the rooms can lay out as a grid, false otherwise

gridLayout

public boolean gridLayout()
Description copied from interface: LandTitle
Returns whether this title creates connected walls between new rooms as if the rooms were laid out in a grid.

Specified by:
gridLayout in interface LandTitle
Returns:
true if the rooms can lay out as a grid, false otherwise

rentalProperty

public boolean rentalProperty()
Description copied from interface: LandTitle
Whether this property is a rental.

Specified by:
rentalProperty in interface LandTitle
Returns:
true if the property is rental, false if ownable outright

getUniqueLotID

public java.lang.String getUniqueLotID()
Description copied from interface: LandTitle
Returns a unique identifier corresponding to getConnectedPropertyRooms. An identifier that uniquely identifies all the connected lots of this property, even if they are unowned, or owned by different people. Think of it as a "subdivision" when lots are variously owned, or a "mansion id" when lots are owned by one person.

Specified by:
getUniqueLotID in interface LandTitle
Returns:
unique identifier

setRentalProperty

public void setRentalProperty(boolean truefalse)
Description copied from interface: LandTitle
Sets whether this property is a rental.

Specified by:
setRentalProperty in interface LandTitle
Parameters:
truefalse - true if the property is rental, false if ownable outright

getOwnerObject

public CMObject getOwnerObject()
Description copied from interface: PrivateProperty
Get the actual clan or mob owner of the property, or null if it can not.

Specified by:
getOwnerObject in interface PrivateProperty
Returns:
the owner of the property

getOwnerName

public java.lang.String getOwnerName()
Description copied from interface: PrivateProperty
Get the owner of the property, usually a clan name or a player name.

Specified by:
getOwnerName in interface PrivateProperty
Returns:
the name of the owner of the property

setOwnerName

public void setOwnerName(java.lang.String owner)
Description copied from interface: PrivateProperty
Set the owner of the property, usually a clan name or a player name.

Specified by:
setOwnerName in interface PrivateProperty
Parameters:
owner - the name of the owner of the property

fetchALandTitle

public LandTitle fetchALandTitle()

fetchAPropertyRecord

public PrivateProperty fetchAPropertyRecord()

landPropertyID

public java.lang.String landPropertyID()
Description copied from interface: LandTitle
Get the roomID or the Area name of the property for sale

Specified by:
landPropertyID in interface LandTitle
Returns:
the roomID or the Area name of the property for sale

updateTitleName

public void updateTitleName()

setLandPropertyID

public void setLandPropertyID(java.lang.String landID)
Description copied from interface: LandTitle
Set the roomID or the Area name of the property for sale

Specified by:
setLandPropertyID in interface LandTitle
Parameters:
landID - the roomID or the Area name of the property for sale

updateLot

public void updateLot(java.util.Set<java.lang.String> optPlayerList)
Description copied from interface: LandTitle
Checks for changes in the content or condition of the rooms represented by this title and saves the changes to the database, if necessary.

Specified by:
updateLot in interface LandTitle
Parameters:
optPlayerList - - null, or a vector of player names for quick confirms
See Also:
LandTitle.updateTitle()

updateTitle

public void updateTitle()
Description copied from interface: LandTitle
Simply resaves the rooms represented by this title to reflect change in ownership or price. The state of the rooms is not inspected or updated as in updateLot.

Specified by:
updateTitle in interface LandTitle
See Also:
LandTitle.updateLot(Set)

getConnectedPropertyRooms

public java.util.List<Room> getConnectedPropertyRooms()
Description copied from interface: LandTitle
The complete set of room objects that are tied together by one or more titles.

Specified by:
getConnectedPropertyRooms in interface LandTitle
Returns:
a list of the complete set of Room objects represented by property
See Also:
Room

getAllTitledRooms

public java.util.List<Room> getAllTitledRooms()
Description copied from interface: LandTitle
The complete set of room objects represented by this title

Specified by:
getAllTitledRooms in interface LandTitle
Returns:
a list of the complete set of Room objects represented by this title
See Also:
Room

getTitleID

public java.lang.String getTitleID()
Description copied from interface: PrivateProperty
Returns a unique id for this particular title and the rooms is represents, even if the contents change.

Specified by:
getTitleID in interface PrivateProperty
Returns:
a unique id

recoverPhyStats

public void recoverPhyStats()
Description copied from interface: Affectable
This method copies the basePhyStats() object into the phyStats() object, then makes repeated calls to all surrounding objects with affectPhyStats(Environmental,PhyStats) 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 phyStats() object. When it returns, phyStats() 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:
recoverPhyStats in interface Affectable
Overrides:
recoverPhyStats in class StdItem
See Also:
Affectable.basePhyStats(), Affectable.phyStats(), Affectable.addEffect(Ability), Behavable.addBehavior(Behavior), PhyStats

okMessage

public boolean okMessage(Environmental myHost,
                         CMMsg msg)
Description copied from interface: MsgListener
The general message event previewer for the object. Messages passed herein are in a pending state, and may be safely modified or rejected without fear that they might be in the middle of being executed. Messages passed herein may not necessarily be FOR or FROM this object, but will almost always represent events which want to happen in the same rom. This method should always always return true UNLESS this message needs to be canceled, in which case it is necessary to tell the mob initiating the event (CMMsg.source()) why it is being cancelled. Every game event goes through these methods.

Specified by:
okMessage in interface MsgListener
Overrides:
okMessage in class StdItem
Parameters:
myHost - either the initiator of the event, or the host of this object
msg - the CMMsg that wants to be executed
Returns:
whether this message is allowed to execute
See Also:
CMMsg, CMMsg.source()

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