com.planet_ink.coffee_mud.Abilities.Common
Class Merchant

java.lang.Object
  extended by com.planet_ink.coffee_mud.Abilities.StdAbility
      extended by com.planet_ink.coffee_mud.Abilities.Common.CommonSkill
          extended by com.planet_ink.coffee_mud.Abilities.Common.Merchant
All Implemented Interfaces:
Ability, CMObject, Contingent, Economics, Environmental, Modifiable, MsgListener, ShopKeeper, StatsAffecting, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>

public class Merchant
extends CommonSkill
implements ShopKeeper


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.planet_ink.coffee_mud.core.interfaces.ShopKeeper
ShopKeeper.ShopPrice
 
Field Summary
protected  CoffeeShop shop
           
 
Fields inherited from class com.planet_ink.coffee_mud.Abilities.Common.CommonSkill
aborted, activityRoom, bundling, displayText, helping, helpingAbility, playSound, tickUp, verb, yield
 
Fields inherited from class com.planet_ink.coffee_mud.Abilities.StdAbility
affected, amDestroyed, canBeUninvoked, empty, expertise, invoker, isAnAutoEffect, lastCastHelp, miscText, proficiency, savable, tickDown, unInvoked
 
Fields inherited from interface com.planet_ink.coffee_mud.core.interfaces.ShopKeeper
DEAL_ALCHEMIST, DEAL_ANYTECHNOLOGY, DEAL_ANYTHING, DEAL_ARMOR, DEAL_AUCTIONEER, DEAL_BANKER, DEAL_BUTCHER, DEAL_CASTER, DEAL_CLANBANKER, DEAL_CLANDSELLER, DEAL_CLANPOSTMAN, DEAL_CONFLICTS, DEAL_CSHIPSELLER, DEAL_DESCS, DEAL_FOODSELLER, DEAL_GENERAL, DEAL_GROWER, DEAL_HIDESELLER, DEAL_INNKEEPER, DEAL_INVENTORYONLY, DEAL_JEWELLER, DEAL_LANDSELLER, DEAL_LEATHER, DEAL_LUMBERER, DEAL_MAGIC, DEAL_METALSMITH, DEAL_PETS, DEAL_POSTMAN, DEAL_SHIPSELLER, DEAL_SLAVES, DEAL_STONEYARDER, DEAL_TRAINER, DEAL_WEAPONS
 
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
 
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
 
Constructor Summary
Merchant()
           
 
Method Summary
 void addSoldType(int mask)
          Adds the ShopKeeper DEAL_* constants describing what is sold or bought by this ShopKeeper to the existing shopkeeper mask.
 void affectPhyStats(Physical E, PhyStats affectableStats)
          This method is called by the recoverPhyStats() method on other Environmental objects.
 boolean autoInvocation(MOB mob)
          An autoinvocating ability is an ability which affects the mob just by having learned the ability.
 java.lang.String budget()
          Returns a description of the buying budget of the shopkeeper.
protected  int canAffectCode()
          Designates whether, when used as a property/effect, what sort of objects this ability can affect.
 boolean canBeUninvoked()
          Whether this skill is allowed to be uninvoked.
 boolean canPossiblyVend(Environmental E, Environmental what)
           
protected  int canTargetCode()
          Designates whether, when invoked as a skill, what sort of objects this ability can effectively target.
 int classificationCode()
          Returns a bitmap describing the general classification of the skill (spell, skill, chant, or property, etc) and its domain.
 MOB deriveMerchant(MOB roomHelper)
           
 java.lang.String devalueRate()
          Returns a string describing the percentage in the drop of the price at which this ShopKeeper will buy back items based on the number already in his inventory.
 boolean doISellThis(Environmental thisThang)
          Returns whether this ShopKeeper deals in the type of item passed in.
 void executeMsg(Environmental myHost, CMMsg msg)
          The general message event handler for the object.
 java.lang.String finalBudget()
          Returns a description of the buying budget of the shopkeeper.
 java.lang.String finalDevalueRate()
          Returns a string describing the percentage in the drop of the price at which this ShopKeeper will buy back items based on the number already in his inventory.
 java.lang.String finalIgnoreMask()
          Returns the mask used to determine if a customer is ignored by the ShopKeeper.
 int finalInvResetRate()
          Returns the number of ticks between totally resetting this ShopKeepers inventory back to what it was.
 java.lang.String[] finalItemPricingAdjustments()
          A string set describing how pricing for this ShopKeeper will differ based on item masks The format for each string is a floating point number followers by a space and a zapper mask
 java.lang.String finalPrejudiceFactors()
          A string describing how pricing for this ShopKeeper will differ based on customer attributes such as race.
 CoffeeShop getShop()
          the CoffeeShop method to access the shopkeepers store of goods
protected  Area getStartArea()
           
 long getWhatIsSoldMask()
          Returns the ShopKeeper DEAL_* mask describing what is sold or bought by this ShopKeeper
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 java.lang.String ignoreMask()
          Returns the mask used to determine if a customer is ignored by the ShopKeeper.
protected  int iniPracticesRequired()
           
protected  int iniTrainsRequired()
           
 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.
 int invResetRate()
          Returns the number of ticks between totally resetting this ShopKeepers inventory back to what it was.
 boolean isAutoInvoked()
          An autoinvocating ability is an ability which affects the mob just by having learned the ability.
 boolean isSold(int mask)
          Returns whether the given type of good is sold by this shopkeeper.
 java.lang.String[] itemPricingAdjustments()
          A string set describing how pricing for this ShopKeeper will differ based on item masks The format for each string is a floating point number followers by a space and a zapper mask
 java.lang.String name()
          The displayable name of this object.
 boolean okMessage(Environmental myHost, CMMsg msg)
          The general message event previewer for the object.
 int overrideMana()
           
 java.lang.String prejudiceFactors()
          A string describing how pricing for this ShopKeeper will differ based on customer attributes such as race.
 boolean putUpForSale(MOB source, MOB merchantM, Environmental tool)
           
 void setBudget(java.lang.String factors)
          Sets a description of the buying budget of the shopkeeper.
 void setDevalueRate(java.lang.String factors)
          Sets a string describing the percentage in the drop of the price at which this ShopKeeper will buy back items based on the number already in his inventory.
 void setIgnoreMask(java.lang.String factors)
          Sets the mask used to determine if a customer is ignored by the ShopKeeper.
 void setInvResetRate(int ticks)
          Sets the number of ticks between totally resetting this ShopKeepers inventory back to what it was.
 void setItemPricingAdjustments(java.lang.String[] factors)
          Sets the string set describing how pricing for this ShopKeeper will differ based on item masks The format for each string is a floating point number followers by a space and a zapper mask
 void setMiscText(java.lang.String text)
          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 setPrejudiceFactors(java.lang.String factors)
          Sets the string describing how pricing for this ShopKeeper will differ based on customer attributes such as race.
 void setWhatIsSoldMask(long newSellCode)
          Sets the encoded ShopKeeper DEAL_* constants describing what is sold or bought by this ShopKeeper
 java.lang.String storeKeeperString()
          Based on the value of this ShopKeepers whatIsSold() method, this will return a displayable string describing that type.
 java.lang.String text()
          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[] triggerStrings()
          A set of the command strings the user types to access this command when it is listed as a skill ability.
 
Methods inherited from class com.planet_ink.coffee_mud.Abilities.Common.CommonSkill
abilityCode, abstractQuality, addedTickTime, allowedWhileMounted, canBeLearnedBy, commonEmote, commonTell, commonTell, confirmPossibleMaterialLocation, displayText, getDuration, getRequiredFire, iniPracticesToPractice, lookingFor, lookingFor, setAbilityCode, supportedResourceString, teach, tick, unInvoke, usageCost, usageType, xlevel
 
Methods inherited from class com.planet_ink.coffee_mud.Abilities.StdAbility
ableOk, ableSend, accountForYourself, adjustedLevel, adjustedMaxInvokerRange, affectCharState, affectCharStats, affecting, amDestroyed, appropriateToMyFactions, beneficialAffect, beneficialVisualFizzle, beneficialWordsFizzle, bubbleAffect, buildCostArray, canAffect, canAffect, canBePracticedBy, canBeTaughtBy, canTarget, canTarget, castingQuality, castingQuality, castingTime, checkComponents, checkedCastingTime, clearExpertiseCache, cloneFix, combatCastingTime, compareTo, copyOf, description, destroy, disregardsArmorCheck, enchantQuality, experienceLevels, expertise, expirationDate, externalFiles, flags, getAnyTarget, getAnyTarget, getAnyTarget, getBeneficialTickdownTime, getCodeNum, getMaliciousTickdownTime, getSaveStatIndex, getStat, getStatCodes, getTarget, getTarget, getTarget, getTarget, getTickDownRemaining, getTicksBetweenCasts, getTickStatus, getTimeOfNextCast, getX1Level, getX2Level, getX3Level, getX4Level, getX5Level, getXLEVELLevel, getXLOWCOSTLevel, getXMAXRANGELevel, getXPCOSTAdjustment, getXPCOSTLevel, getXTIMELevel, helpProficiency, image, initializeClass, invoke, invoker, isGeneric, isNowAnAutoEffect, isSavable, isStat, makeLongLasting, makeNonUninvokable, maliciousAffect, maliciousFizzle, maxRange, minCastWaitTime, minRange, miscTextFormat, Name, newInstance, possibleContainer, practice, practicesRequired, practicesToPractice, preInvoke, proficiency, proficiencyCheck, properTargets, putInCommandlist, rawImage, requirements, sameAs, setAffectedOne, setDescription, setDisplayText, setExpirationDate, setImage, setInvoker, setName, setProficiency, setSavable, setStat, setTickDownRemaining, setTimeOfNextCast, setTimeOfNextCast, somanticCastCode, somanticCastMask, spreadImmunity, startTickDown, trainsRequired, verbalCastCode, verbalCastMask
 
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, maxRange, minRange, miscTextFormat, Name, rawImage, sameAs, setDescription, setDisplayText, setExpirationDate, setImage, setName
 
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
 
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

shop

protected CoffeeShop shop
Constructor Detail

Merchant

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

triggerStrings

public java.lang.String[] triggerStrings()
Description copied from interface: Ability
A set of the command strings the user types to access this command when it is listed as a skill ability.

Specified by:
triggerStrings in interface Ability
Overrides:
triggerStrings in class CommonSkill
Returns:
an array of command invoking string words
See Also:
Ability.putInCommandlist()

overrideMana

public int overrideMana()
Overrides:
overrideMana in class StdAbility

isAutoInvoked

public boolean isAutoInvoked()
Description copied from interface: Ability
An autoinvocating ability is an ability which affects the mob just by having learned the ability. Dodge is an example of this. This method returns whether this skill is classified as one of those kinds of abilities.

Specified by:
isAutoInvoked in interface Ability
Overrides:
isAutoInvoked in class StdAbility
Returns:
whether this is an autoinvoking skill

canBeUninvoked

public boolean canBeUninvoked()
Description copied from interface: Ability
Whether this skill is allowed to be uninvoked. If it returns false, then it behaves as a permanent property of the object it is affecting. Not death, dispelling, or other negations will remove it.

Specified by:
canBeUninvoked in interface Ability
Overrides:
canBeUninvoked in class StdAbility
Returns:
whether this skill can be uninvoked.
See Also:
Ability.makeNonUninvokable()

iniTrainsRequired

protected int iniTrainsRequired()
Overrides:
iniTrainsRequired in class CommonSkill

iniPracticesRequired

protected int iniPracticesRequired()
Overrides:
iniPracticesRequired in class CommonSkill

canAffectCode

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

canTargetCode

protected int canTargetCode()
Description copied from class: StdAbility
Designates whether, when invoked as a skill, what sort of objects this ability can effectively target. Uses the Ability.CAN_* constants.

Overrides:
canTargetCode in class CommonSkill
Returns:
a mask showing the type of objects this ability can target
See Also:
Ability

classificationCode

public int classificationCode()
Description copied from interface: Ability
Returns a bitmap describing the general classification of the skill (spell, skill, chant, or property, etc) and its domain. It is made up of the ACODE_* constants the Ability interface, and optionally the DOMAIN_* constants also defined in this interface.

Specified by:
classificationCode in interface Ability
Overrides:
classificationCode in class CommonSkill
Returns:
ACODE_* constant classification
See Also:
Ability

getShop

public CoffeeShop getShop()
Description copied from interface: ShopKeeper
the CoffeeShop method to access the shopkeepers store of goods

Specified by:
getShop in interface ShopKeeper
Returns:
the CoffeeShop object
See Also:
CoffeeShop

text

public java.lang.String text()
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:
text in interface Environmental
Overrides:
text in class StdAbility
Returns:
either an open internal text string, or XML

budget

public java.lang.String budget()
Description copied from interface: Economics
Returns a description of the buying budget of the shopkeeper. Format is an amount of base currency followed by HOUR,WEEK,DAY,MONTH or YEAR.

Specified by:
budget in interface Economics
Returns:
the string for the shopkeepers buying budget

setBudget

public void setBudget(java.lang.String factors)
Description copied from interface: Economics
Sets a description of the buying budget of the shopkeeper. Format is an amount of base currency followed by HOUR,WEEK,DAY,MONTH or YEAR.

Specified by:
setBudget in interface Economics
Parameters:
factors - the string for the shopkeepers buying budget

devalueRate

public java.lang.String devalueRate()
Description copied from interface: Economics
Returns a string describing the percentage in the drop of the price at which this ShopKeeper will buy back items based on the number already in his inventory. The format is a number representing the percentage price drop per normal item followed by a space, followed by a number representing the percentage price drop per raw resource item. A value of "0 0" would mean no drop in price for either, ever.

Specified by:
devalueRate in interface Economics
Returns:
the price dropping percentage rule for this shopkeeper

setDevalueRate

public void setDevalueRate(java.lang.String factors)
Description copied from interface: Economics
Sets a string describing the percentage in the drop of the price at which this ShopKeeper will buy back items based on the number already in his inventory. The format is a number representing the percentage price drop per normal item followed by a space, followed by a number representing the percentage price drop per raw resource item. A value of "0 0" would mean no drop in price for either, ever.

Specified by:
setDevalueRate in interface Economics
Parameters:
factors - the price dropping percentage rule for this shopkeeper

invResetRate

public int invResetRate()
Description copied from interface: Economics
Returns the number of ticks between totally resetting this ShopKeepers inventory back to what it was.

Specified by:
invResetRate in interface Economics
Returns:
the number of ticks between total resets of inventory

setInvResetRate

public void setInvResetRate(int ticks)
Description copied from interface: Economics
Sets the number of ticks between totally resetting this ShopKeepers inventory back to what it was.

Specified by:
setInvResetRate in interface Economics
Parameters:
ticks - the number of ticks between total resets of inventory

setMiscText

public void setMiscText(java.lang.String text)
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 StdAbility
Parameters:
text - either an open internal text string, or XML

affectPhyStats

public void affectPhyStats(Physical E,
                           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 StdAbility
Parameters:
E - 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()

isSold

public boolean isSold(int mask)
Description copied from interface: ShopKeeper
Returns whether the given type of good is sold by this shopkeeper.

Specified by:
isSold in interface ShopKeeper
Parameters:
mask - the ShopKeeper DEAL_* constant describing what is sold or bought by this ShopKeeper
Returns:
true if the shopkeeper will make such a deal
See Also:
ShopKeeper.DEAL_DESCS, ShopKeeper.getWhatIsSoldMask()

addSoldType

public void addSoldType(int mask)
Description copied from interface: ShopKeeper
Adds the ShopKeeper DEAL_* constants describing what is sold or bought by this ShopKeeper to the existing shopkeeper mask. A value of 0 will clear the whole mask.

Specified by:
addSoldType in interface ShopKeeper
Parameters:
mask - the ShopKeeper DEAL_* constants describing what is sold or bought by this ShopKeeper
See Also:
ShopKeeper.DEAL_DESCS, ShopKeeper.isSold(int)

getWhatIsSoldMask

public long getWhatIsSoldMask()
Description copied from interface: ShopKeeper
Returns the ShopKeeper DEAL_* mask describing what is sold or bought by this ShopKeeper

Specified by:
getWhatIsSoldMask in interface ShopKeeper
See Also:
ShopKeeper.DEAL_DESCS, return the dealer type constants to the 2nd power, shifted 8 bits left

setWhatIsSoldMask

public void setWhatIsSoldMask(long newSellCode)
Description copied from interface: ShopKeeper
Sets the encoded ShopKeeper DEAL_* constants describing what is sold or bought by this ShopKeeper

Specified by:
setWhatIsSoldMask in interface ShopKeeper
Parameters:
newSellCode - the dealer type constants to the 2nd power, shifted 8 bits left
See Also:
ShopKeeper.DEAL_DESCS, ShopKeeper.addSoldType(int)

storeKeeperString

public java.lang.String storeKeeperString()
Description copied from interface: ShopKeeper
Based on the value of this ShopKeepers whatIsSold() method, this will return a displayable string describing that type.

Specified by:
storeKeeperString in interface ShopKeeper
Returns:
a description of the whatIsSold() code
See Also:
ShopKeeper.isSold(int)

doISellThis

public boolean doISellThis(Environmental thisThang)
Description copied from interface: ShopKeeper
Returns whether this ShopKeeper deals in the type of item passed in. The determination is based on the whatIsSold() code.

Specified by:
doISellThis in interface ShopKeeper
Parameters:
thisThang - the item to determine if the shopkeeper deals in
Returns:
whether the shopkeeper deals in the type of item passed in
See Also:
ShopKeeper.isSold(int)

prejudiceFactors

public java.lang.String prejudiceFactors()
Description copied from interface: Economics
A string describing how pricing for this ShopKeeper will differ based on customer attributes such as race.

Specified by:
prejudiceFactors in interface Economics
Returns:
the string describing price prejudicing

setPrejudiceFactors

public void setPrejudiceFactors(java.lang.String factors)
Description copied from interface: Economics
Sets the string describing how pricing for this ShopKeeper will differ based on customer attributes such as race.

Specified by:
setPrejudiceFactors in interface Economics
Parameters:
factors - the string describing price prejudicing

ignoreMask

public java.lang.String ignoreMask()
Description copied from interface: Economics
Returns the mask used to determine if a customer is ignored by the ShopKeeper.

Specified by:
ignoreMask in interface Economics
Returns:
the mask used
See Also:
MaskingLibrary

setIgnoreMask

public void setIgnoreMask(java.lang.String factors)
Description copied from interface: Economics
Sets the mask used to determine if a customer is ignored by the ShopKeeper.

Specified by:
setIgnoreMask in interface Economics
Parameters:
factors - the mask to use
See Also:
MaskingLibrary

itemPricingAdjustments

public java.lang.String[] itemPricingAdjustments()
Description copied from interface: Economics
A string set describing how pricing for this ShopKeeper will differ based on item masks The format for each string is a floating point number followers by a space and a zapper mask

Specified by:
itemPricingAdjustments in interface Economics
Returns:
an array of the strings describing price adjustments

setItemPricingAdjustments

public void setItemPricingAdjustments(java.lang.String[] factors)
Description copied from interface: Economics
Sets the string set describing how pricing for this ShopKeeper will differ based on item masks The format for each string is a floating point number followers by a space and a zapper mask

Specified by:
setItemPricingAdjustments in interface Economics
Parameters:
factors - the string describing price prejudicing

getStartArea

protected Area getStartArea()

finalInvResetRate

public int finalInvResetRate()
Description copied from interface: Economics
Returns the number of ticks between totally resetting this ShopKeepers inventory back to what it was.

Specified by:
finalInvResetRate in interface Economics
Returns:
the number of ticks between total resets of inventory

finalPrejudiceFactors

public java.lang.String finalPrejudiceFactors()
Description copied from interface: Economics
A string describing how pricing for this ShopKeeper will differ based on customer attributes such as race.

Specified by:
finalPrejudiceFactors in interface Economics
Returns:
the string describing price prejudicing

finalIgnoreMask

public java.lang.String finalIgnoreMask()
Description copied from interface: Economics
Returns the mask used to determine if a customer is ignored by the ShopKeeper.

Specified by:
finalIgnoreMask in interface Economics
Returns:
the mask used
See Also:
MaskingLibrary

finalItemPricingAdjustments

public java.lang.String[] finalItemPricingAdjustments()
Description copied from interface: Economics
A string set describing how pricing for this ShopKeeper will differ based on item masks The format for each string is a floating point number followers by a space and a zapper mask

Specified by:
finalItemPricingAdjustments in interface Economics
Returns:
an array of the strings describing price adjustments

finalBudget

public java.lang.String finalBudget()
Description copied from interface: Economics
Returns a description of the buying budget of the shopkeeper. Format is an amount of base currency followed by HOUR,WEEK,DAY,MONTH or YEAR.

Specified by:
finalBudget in interface Economics
Returns:
the string for the shopkeepers buying budget

finalDevalueRate

public java.lang.String finalDevalueRate()
Description copied from interface: Economics
Returns a string describing the percentage in the drop of the price at which this ShopKeeper will buy back items based on the number already in his inventory. The format is a number representing the percentage price drop per normal item followed by a space, followed by a number representing the percentage price drop per raw resource item. A value of "0 0" would mean no drop in price for either, ever.

Specified by:
finalDevalueRate in interface Economics
Returns:
the price dropping percentage rule for this shopkeeper

deriveMerchant

public MOB deriveMerchant(MOB roomHelper)

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

putUpForSale

public boolean putUpForSale(MOB source,
                            MOB merchantM,
                            Environmental tool)

canPossiblyVend

public boolean canPossiblyVend(Environmental E,
                               Environmental what)

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

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 CommonSkill
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.

autoInvocation

public boolean autoInvocation(MOB mob)
Description copied from interface: Ability
An autoinvocating ability is an ability which affects the mob just by having learned the ability. Dodge is an example of this. This method is called to initiate this, and is called whenever a mob gains this skill as a new Ability. This method will add the ability to the mob as an effect.

Specified by:
autoInvocation in interface Ability
Overrides:
autoInvocation in class StdAbility
Parameters:
mob - the player or npc mob who has this ability
Returns:
whether the ability autoinvoked correctly
See Also:
Ability.isAutoInvoked(), Ability.isNowAnAutoEffect()