com.planet_ink.coffee_mud.Abilities.Properties
Class Prop_AreaForSale

java.lang.Object
  extended by com.planet_ink.coffee_mud.Abilities.Properties.Property
      extended by com.planet_ink.coffee_mud.Abilities.Properties.Prop_AreaForSale
All Implemented Interfaces:
Ability, CMObject, Contingent, Environmental, LandTitle, Modifiable, MsgListener, PrivateProperty, StatsAffecting, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>

public class Prop_AreaForSale
extends Property
implements LandTitle


Field Summary
protected  long lastCall
           
protected  int lastDayDone
           
protected  java.util.Hashtable<Room,java.lang.Integer> lastItemNums
           
protected  long lastMobSave
           
 
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.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.Abilities.interfaces.Ability
ACODE_CHANT, ACODE_COMMON_SKILL, ACODE_DESCS, ACODE_DESCS_, ACODE_DISEASE, ACODE_LANGUAGE, ACODE_POISON, ACODE_PRAYER, ACODE_PROPERTY, ACODE_SKILL, ACODE_SONG, ACODE_SPELL, ACODE_SUPERPOWER, ACODE_TECH, ACODE_THIEF_SKILL, ACODE_TRAP, ALL_ACODES, ALL_DOMAINS, CACHEINDEX_CLASSLESS, CACHEINDEX_EXPERTISE, CACHEINDEX_NORMAL, CACHEINDEX_TOTAL, CAN_AREAS, CAN_DESCS, CAN_EXITS, CAN_ITEMS, CAN_MOBS, CAN_ROOMS, COST_ALL, COST_NORMAL, COST_PCT, 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_BUILDINGSKILL, 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_EDUCATIONLORE, DOMAIN_ENCHANTMENT, DOMAIN_ENDURING, DOMAIN_EPICUREAN, 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_SEATRAVEL, DOMAIN_SHAPE_SHIFTING, DOMAIN_SHIELDUSE, DOMAIN_SINGING, DOMAIN_STEALING, DOMAIN_STEALTHY, DOMAIN_STREETSMARTS, DOMAIN_THEATRE, DOMAIN_TRANSMUTATION, DOMAIN_TRAPPING, DOMAIN_VERBS, DOMAIN_VEXING, DOMAIN_WARDING, DOMAIN_WATERCONTROL, DOMAIN_WATERLORE, DOMAIN_WEAPON_USE, DOMAIN_WEATHER_MASTERY, FLAG_ADJUSTER, FLAG_AGGROFYING, FLAG_AIRBASED, FLAG_BINDING, FLAG_CASTER, FLAG_CHARMING, FLAG_CLANMAGIC, FLAG_DESCS, FLAG_EARTHBASED, FLAG_ENABLER, FLAG_FIREBASED, FLAG_HEALINGMAGIC, FLAG_HEATING, FLAG_HOLY, FLAG_IMMUNER, FLAG_INTOXICATING, FLAG_MINDALTERING, FLAG_MOVING, FLAG_NEUTRAL, FLAG_NOORDERING, FLAG_NOUNINVOKING, FLAG_PARALYZING, FLAG_POTENTIALLY_DEADLY, FLAG_RESISTER, FLAG_SUMMONING, FLAG_SUNSUMMONING, FLAG_TIDEALTERING, FLAG_TORTURING, FLAG_TRACKING, FLAG_TRANSPORTING, FLAG_UNCRAFTABLE, FLAG_UNHOLY, FLAG_WATERBASED, FLAG_WEATHERAFFECTING, FLAG_ZAPPER, QUALITY_BENEFICIAL_OTHERS, QUALITY_BENEFICIAL_SELF, QUALITY_DESCS, QUALITY_INDIFFERENT, QUALITY_MALICIOUS, QUALITY_OK_OTHERS, QUALITY_OK_SELF, RANGE_CHOICES, TICKS_ALMOST_FOREVER, TICKS_FOREVER, USAGE_DESCS, USAGE_HITPOINTS, USAGE_MANA, USAGE_MOVEMENT, USAGE_NADA, USAGEINDEX_HITPOINTS, USAGEINDEX_MANA, USAGEINDEX_MOVEMENT
 
Constructor Summary
Prop_AreaForSale()
           
 
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 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.
protected  int canAffectCode()
          Designates whether, when used as a property/effect, what sort of objects this ability can affect.
 void executeMsg(Environmental myHost, CMMsg msg)
          The general message event handler for the object.
 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
 java.lang.String name()
          The nice displayable name of this instance of this object
 boolean okMessage(Environmental myHost, CMMsg msg)
          The general message event previewer for the object.
 boolean rentalProperty()
          Whether this property is a rental.
 void setBackTaxes(int tax)
          If back taxes is owned on this property, this is how the value is set.
 void setGridLayout(boolean gridLayout)
          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.
 
Methods inherited from class com.planet_ink.coffee_mud.Abilities.Properties.Property
abilityCode, abstractQuality, adjustedLevel, affectCharState, affectCharStats, affecting, affectPhyStats, amDestroyed, appropriateToMyFactions, autoInvocation, bubbleAffect, canAffect, canAffect, canBeLearnedBy, canBePracticedBy, canBeTaughtBy, canBeUninvoked, canTarget, canTarget, canTargetCode, castingQuality, castingTime, checkedCastingCost, classificationCode, combatCastingTime, compareTo, copyOf, description, destroy, displayText, enchantQuality, expirationDate, externalFiles, flags, getCodeNum, getSaveStatIndex, getStat, getStatCodes, getTickStatus, getTrainingCost, helpProficiency, image, initializeClass, invoke, invoke, invoker, isAutoInvoked, isGeneric, isNowAnAutoEffect, isSavable, isStat, L, makeLongLasting, makeNonUninvokable, maxRange, minRange, miscTextFormat, Name, newInstance, practice, preInvoke, proficiency, proficiencyCheck, putInCommandlist, rawImage, requirements, sameAs, setAbilityCode, setAffectedOne, setDescription, setDisplayText, setExpirationDate, setImage, setInvoker, setMiscText, setName, setProficiency, setSavable, setStat, startTickDown, teach, text, tick, triggerStrings, unInvoke, usageCost, usageType
 
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, displayText, 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, 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

lastItemNums

protected java.util.Hashtable<Room,java.lang.Integer> lastItemNums

lastCall

protected long lastCall

lastMobSave

protected long lastMobSave

lastDayDone

protected int lastDayDone
Constructor Detail

Prop_AreaForSale

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

name

public java.lang.String name()
Description copied from interface: Tickable
The nice displayable name of this instance of this object

Specified by:
name in interface CMObject
Specified by:
name in interface Tickable
Overrides:
name in class Property
Returns:
the displayable name of this object instance
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

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

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

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

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

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

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

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

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

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

setBackTaxes

public void setBackTaxes(int tax)
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:
tax - the back taxes owed

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

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

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)

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

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

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

setGridLayout

public void setGridLayout(boolean gridLayout)
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:
gridLayout - true if the rooms can lay out as a grid, false otherwise

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

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

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

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

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