com.planet_ink.coffee_mud.Items.MiscMagic
Class StdDeckOfCards

java.lang.Object
  extended by com.planet_ink.coffee_mud.Items.Basic.StdItem
      extended by com.planet_ink.coffee_mud.Items.Basic.StdContainer
          extended by com.planet_ink.coffee_mud.Items.MiscMagic.StdHandOfCards
              extended by com.planet_ink.coffee_mud.Items.MiscMagic.StdDeckOfCards
All Implemented Interfaces:
Affectable, Behavable, CloseableLockable, CMObject, Contingent, DBIdentifiable, Environmental, Modifiable, MsgListener, Physical, PhysicalAgent, Readable, Rider, StatsAffecting, Tickable, Container, DeckOfCards, HandOfCards, Item, MiscMagic, Wearable, java.lang.Cloneable, java.lang.Comparable<CMObject>

public class StdDeckOfCards
extends StdHandOfCards
implements DeckOfCards


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Wearable
Wearable.CODES
 
Field Summary
protected  java.util.List<Item> cardsCache
           
 
Fields inherited from class com.planet_ink.coffee_mud.Items.Basic.StdContainer
capacity, containType, defaultsClosed, defaultsLocked, hasALid, hasALock, isLocked, isOpen, openDelayTicks
 
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.Items.interfaces.Container
CONTAIN_ANYTHING, CONTAIN_BODIES, CONTAIN_CAGED, CONTAIN_CLOTHES, CONTAIN_COINS, CONTAIN_DAGGERS, CONTAIN_DESCS, CONTAIN_DRINKABLES, CONTAIN_EATABLES, CONTAIN_FOOTWEAR, CONTAIN_KEYS, CONTAIN_LIQUID, CONTAIN_ONEHANDWEAPONS, CONTAIN_OTHERWEAPONS, CONTAIN_RAWMATERIALS, CONTAIN_READABLES, CONTAIN_SCROLLS, CONTAIN_SMOKEABLES, CONTAIN_SSCOMPONENTS, CONTAIN_SWORDS
 
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
StdDeckOfCards()
           
 
Method Summary
protected  boolean abilityImbuesMagic()
           
 boolean addCard(PlayingCard card)
          Returns the given card item object to the deck by removing it from its current owner and adding it back to the decks owner and container.
 HandOfCards addPlayerHand(MOB player, HandOfCards cards)
          Adds and possibly creates a hand for the given player if no hand is passed in, a new empty one is created the hand is then added to our table, keyed by the player object
 DeckOfCards createDeck(Environmental owner)
          Creates a new deck of 52 cards of the same time as the underlying object.
 HandOfCards getPlayerHand(MOB player)
          If a hand of cards has previously been added to this deck for internal management, this method will return that hand given the player object.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
protected  PlayingCard makePlayingCard(int cardBitCode)
           
 boolean okMessage(Environmental myHost, CMMsg msg)
          The general message event previewer for the object.
 void removePlayerHand(MOB player)
          If the given player object has a hand of cards currently being managed by this deck, this method will remove all of the cards from the hand, return them to the deck, then remove the hand from management, and destroy the hand.
 boolean resetDeckBackTo52Cards()
          Resets the deck back to 52 cards.
 
Methods inherited from class com.planet_ink.coffee_mud.Items.MiscMagic.StdHandOfCards
canContain, containsAtLeastOneOfSuit, containsAtLeastOneOfSuit, containsAtLeastOneOfValue, containsAtLeastOneOfValue, containsCard, containsCard, createEmptyHand, executeMsg, getCard, getCard, getContents, getContentsEncoded, getFirstCardOfSuit, getFirstCardOfSuit, getFirstCardOfValue, getFirstCardOfValue, getTopCardFromDeck, numberOfCards, removeAllCards, removeCard, shuffleDeck, sortByValueAceHigh, sortByValueAceLow
 
Methods inherited from class com.planet_ink.coffee_mud.Items.Basic.StdContainer
capacity, containTypes, defaultsClosed, defaultsLocked, emptyPlease, getDeepContents, hasADoor, hasALock, hasContent, isInside, isLocked, isOpen, keyName, numberOfItems, openDelayTicks, recursiveWeight, setCapacity, setContainTypes, setDoorsNLocks, setKeyName, setMiscText, setOpenDelayTicks, tick
 
Methods inherited from class com.planet_ink.coffee_mud.Items.Basic.StdItem
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, getCodeNum, getSaveStatIndex, getStat, getStatCodes, getTickStatus, I, image, initializeClass, isGeneric, isReadable, isSavable, isStat, L, material, maxRange, minRange, miscTextFormat, name, Name, name, newInstance, numBehaviors, numEffects, numScripts, owner, phyStats, rawImage, rawLogicalAnd, rawProperLocationBitmap, rawSecretIdentity, rawWornCode, readableText, recoverPhyStats, removeFromOwnerContainer, riding, sameAs, scripts, secretIdentity, setBasePhyStats, setBaseValue, setContainer, setDatabaseID, setDescription, setDisplayText, setExpirationDate, setImage, setMaterial, setName, setOwner, setRawLogicalAnd, setRawProperLocationBitmap, setRawWornCode, setReadable, setReadableText, setRiding, setSavable, setSecretIdentity, setStat, setUsesRemaining, stopTicking, subjectToWearAndTear, tackOns, text, ultimateContainer, unWear, usesRemaining, value, 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.HandOfCards
containsAtLeastOneOfSuit, containsAtLeastOneOfSuit, containsAtLeastOneOfValue, containsAtLeastOneOfValue, containsCard, containsCard, createEmptyHand, getCard, getCard, getContentsEncoded, getFirstCardOfSuit, getFirstCardOfSuit, getFirstCardOfValue, getFirstCardOfValue, getTopCardFromDeck, numberOfCards, removeAllCards, removeCard, shuffleDeck, sortByValueAceHigh, sortByValueAceLow
 
Methods inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Container
canContain, capacity, containTypes, emptyPlease, getContents, getDeepContents, hasContent, isInside, setCapacity, setContainTypes
 
Methods inherited from interface com.planet_ink.coffee_mud.Items.interfaces.Item
baseGoldValue, container, material, numberOfItems, owner, rawSecretIdentity, recursiveWeight, removeFromOwnerContainer, secretIdentity, setBaseValue, setContainer, setMaterial, setOwner, setSecretIdentity, setUsesRemaining, stopTicking, subjectToWearAndTear, ultimateContainer, usesRemaining, value
 
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.Physical
description, displayText, name
 
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, 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.MsgListener
executeMsg
 
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
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Affectable
addEffect, addNonUninvokableEffect, basePhyStats, delAllEffects, delEffect, eachEffect, effects, fetchEffect, fetchEffect, numEffects, phyStats, recoverPhyStats, setBasePhyStats
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Behavable
addBehavior, addScript, behaviors, delAllBehaviors, delAllScripts, delBehavior, delScript, eachBehavior, eachScript, fetchBehavior, fetchBehavior, fetchScript, numBehaviors, numScripts, scripts
 
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
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.CloseableLockable
defaultsClosed, defaultsLocked, hasADoor, hasALock, isLocked, isOpen, keyName, openDelayTicks, setDoorsNLocks, setKeyName, setOpenDelayTicks
 

Field Detail

cardsCache

protected java.util.List<Item> cardsCache
Constructor Detail

StdDeckOfCards

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

abilityImbuesMagic

protected boolean abilityImbuesMagic()
Overrides:
abilityImbuesMagic in class StdItem

makePlayingCard

protected PlayingCard makePlayingCard(int cardBitCode)

createDeck

public DeckOfCards createDeck(Environmental owner)
Description copied from interface: DeckOfCards
Creates a new deck of 52 cards of the same time as the underlying object. The deck is then handed over to the mob or room specified.

Specified by:
createDeck in interface DeckOfCards
Parameters:
owner - a mob or room to receive the new deck.
Returns:
the new deck of 52 cards, not shuffled.

resetDeckBackTo52Cards

public boolean resetDeckBackTo52Cards()
Description copied from interface: DeckOfCards
Resets the deck back to 52 cards. It will grab cards from all external sources first and return them to the deck container owner. If this fails to produce 52 cards, it will create a set of cards for the deck. this method also destroys any hands being managed.

Specified by:
resetDeckBackTo52Cards in interface DeckOfCards
Returns:
true

getPlayerHand

public HandOfCards getPlayerHand(MOB player)
Description copied from interface: DeckOfCards
If a hand of cards has previously been added to this deck for internal management, this method will return that hand given the player object.

Specified by:
getPlayerHand in interface DeckOfCards
Parameters:
player - the player whose hand to look for
Returns:
the hand belonging to that player, or null

addPlayerHand

public HandOfCards addPlayerHand(MOB player,
                                 HandOfCards cards)
Description copied from interface: DeckOfCards
Adds and possibly creates a hand for the given player if no hand is passed in, a new empty one is created the hand is then added to our table, keyed by the player object

Specified by:
addPlayerHand in interface DeckOfCards
Parameters:
player - the player whose hand this will be
cards - the hand, or null to make a new one
Returns:
the hand of cards passed in or created

removePlayerHand

public void removePlayerHand(MOB player)
Description copied from interface: DeckOfCards
If the given player object has a hand of cards currently being managed by this deck, this method will remove all of the cards from the hand, return them to the deck, then remove the hand from management, and destroy the hand.

Specified by:
removePlayerHand in interface DeckOfCards
Parameters:
player - the player whose hand to remove.

addCard

public boolean addCard(PlayingCard card)
Description copied from interface: HandOfCards
Returns the given card item object to the deck by removing it from its current owner and adding it back to the decks owner and container. If doing this causes a players hand to be devoid of cards, the hand container is destroyed.

Specified by:
addCard in interface DeckOfCards
Specified by:
addCard in interface HandOfCards
Overrides:
addCard in class StdHandOfCards
Parameters:
card - the card to remove
Returns:
true if the card was moved, false if pigs fly

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