com.planet_ink.coffee_mud.Common
Class DefaultClimate

java.lang.Object
  extended by com.planet_ink.coffee_mud.Common.DefaultClimate
All Implemented Interfaces:
Climate, CMCommon, CMObject, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>

public class DefaultClimate
extends java.lang.Object
implements Climate


Field Summary
protected static int[] changeMap
           
protected static int[] cold
           
protected  int currentWeather
           
protected static int[] dry
           
protected static int[] hot
           
protected  int nextWeather
           
protected static int[] seasonalWeather
           
protected  int tickStatus
           
protected  int weatherTicker
           
protected static int[] wet
           
protected static int[] windy
           
 
Fields inherited from interface com.planet_ink.coffee_mud.Common.interfaces.Climate
NUM_WEATHER, WEATHER_BLIZZARD, WEATHER_CLEAR, WEATHER_CLOUDY, WEATHER_DESCS, WEATHER_DROUGHT, WEATHER_DUSTSTORM, WEATHER_HAIL, WEATHER_HEAT_WAVE, WEATHER_RAIN, WEATHER_SLEET, WEATHER_SNOW, WEATHER_THUNDERSTORM, WEATHER_TICK_DOWN, WEATHER_WINDY, WEATHER_WINTER_COLD
 
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
 
Constructor Summary
DefaultClimate()
           
 
Method Summary
 int[] addMaskAndReturn(int[] one, int[] two)
           
 int adjustMovement(int base, Room room)
          If applicable, thies method will return the base movement cost of the given mob, modified up or down based on the room given.
 int adjustWaterConsumption(int base, Room room)
          If applicable, thies method will return the base water thirstiness of the given mob, modified up or down based on the room given.
 boolean canSeeTheMoon(Room room, Ability butNotA)
          Returns whether a player can see the moon from the current room.
 boolean canSeeTheStars(Room room)
          Returns whether a player can see the stars from the current room.
 boolean canSeeTheSun(Room room)
          Returns whether a player can see the sun from the current room.
 int compareTo(CMObject o)
           
 CMObject copyOf()
          Similar to Cloneable.clone(), but does its best to make sure that any internal objects to this class are also copyOfed.
 void forceWeatherTick(Area A)
          This method forces the weather to change to what is designated by the nextWeatherType().
 java.lang.String getNextWeatherDescription(Area A)
          Returns a readable string describing the upcoming weather conditions in the given area, assuming this climate is the correct one.
 int getTickStatus()
          A coded status for this object during the period where its tick method is being called.
 java.lang.String getWeatherDescription(Area A)
          Returns a readable string describing the weather conditions in the given area, assuming this climate is the correct one.
protected  java.lang.String getWeatherStop(int weatherCode)
           
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 void initializeClass()
          Called ONCE after all objects are loaded, but before the map is read in during initialization.
 java.lang.String name()
          The nice displayable name of this instance of this object
 CMObject newInstance()
          Returns a new instance of this class.
 java.lang.String nextWeatherDescription(Room room)
          Returns a readable description of the weather that will be upcoming for the given room.
 int nextWeatherType(Room room)
          Returns the upcoming specific weather situation for the given room.
protected  void sayToEveryoneInArea(Area A, int oldWeather, java.lang.String say)
           
 void setCurrentWeatherType(int weatherCode)
          Sets the current specific weather situation for this area.
 void setNextWeatherType(int weatherCode)
          Sets the upcoming specific weather situation for this area.
protected  java.lang.String theWeatherDescription(Area A, int weather)
           
 boolean tick(Tickable ticking, int tickID)
          this is the method which is called periodically by the threading engine.
 java.lang.String weatherDescription(Room room)
          Returns a readable description of the weather for the given room.
 void weatherTick(Area A)
           
 int weatherType(Room room)
          Returns the specific weather situation for the given room.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tickStatus

protected int tickStatus

currentWeather

protected int currentWeather

nextWeather

protected int nextWeather

weatherTicker

protected int weatherTicker

seasonalWeather

protected static final int[] seasonalWeather

cold

protected static final int[] cold

hot

protected static final int[] hot

dry

protected static final int[] dry

wet

protected static final int[] wet

windy

protected static final int[] windy

changeMap

protected static final int[] changeMap
Constructor Detail

DefaultClimate

public DefaultClimate()
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
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
Returns:
the displayable name of this object instance
See Also:
Environmental.Name()

getTickStatus

public int getTickStatus()
Description copied from interface: Tickable
A coded status for this object during the period where its tick method is being called. The statis is defined, at least in part, by constants in this interface STATUS_*. STATUS_NOT should be returned when the objects tick method is not currently in execution. It should never return STATUS_NOT when the objects tick method is in execution.

Specified by:
getTickStatus in interface Tickable
Returns:
the numeric status of this object
See Also:
Tickable.tick(Tickable, int)

newInstance

public CMObject newInstance()
Description copied from interface: CMObject
Returns a new instance of this class.

Specified by:
newInstance in interface CMObject
Returns:
a new instance of this class

initializeClass

public void initializeClass()
Description copied from interface: CMObject
Called ONCE after all objects are loaded, but before the map is read in during initialization.

Specified by:
initializeClass in interface CMObject

copyOf

public CMObject copyOf()
Description copied from interface: CMObject
Similar to Cloneable.clone(), but does its best to make sure that any internal objects to this class are also copyOfed.

Specified by:
copyOf in interface CMObject
Returns:
a clone of this object

nextWeatherType

public int nextWeatherType(Room room)
Description copied from interface: Climate
Returns the upcoming specific weather situation for the given room. Returns one of the Climate.WEATHER_* constants. It always returns WEATHER_CLEAR for indoor locales. Climate objects always calculate weather 1 step ahead for predictive purposes.

Specified by:
nextWeatherType in interface Climate
Parameters:
room - the room to evaluate.
Returns:
the Climate.WEATHER_* constant
See Also:
Climate, Climate.setNextWeatherType(int)

nextWeatherDescription

public java.lang.String nextWeatherDescription(Room room)
Description copied from interface: Climate
Returns a readable description of the weather that will be upcoming for the given room.

Specified by:
nextWeatherDescription in interface Climate
Parameters:
room - the room to evaluate
Returns:
a readable string.

getNextWeatherDescription

public java.lang.String getNextWeatherDescription(Area A)
Description copied from interface: Climate
Returns a readable string describing the upcoming weather conditions in the given area, assuming this climate is the correct one.

Specified by:
getNextWeatherDescription in interface Climate
Parameters:
A - the area to evaluate
Returns:
a description of the weather coming up.

setNextWeatherType

public void setNextWeatherType(int weatherCode)
Description copied from interface: Climate
Sets the upcoming specific weather situation for this area. Takes one of the Climate.WEATHER_* constants. Climate objects always calculate weather 1 step ahead for predictive purposes.

Specified by:
setNextWeatherType in interface Climate
Parameters:
weatherCode - the Climate.WEATHER_* constant
See Also:
Climate, Climate.nextWeatherType(Room)

setCurrentWeatherType

public void setCurrentWeatherType(int weatherCode)
Description copied from interface: Climate
Sets the current specific weather situation for this area. Takes one of the Climate.WEATHER_* constants. Climate objects always calculate weather 1 step ahead for predictive purposes.

Specified by:
setCurrentWeatherType in interface Climate
Parameters:
weatherCode - the Climate.WEATHER_* constant
See Also:
Climate, Climate.weatherType(Room)

weatherType

public int weatherType(Room room)
Description copied from interface: Climate
Returns the specific weather situation for the given room. Returns one of the Climate.WEATHER_* constants. It always returns WEATHER_CLEAR for indoor locales.

Specified by:
weatherType in interface Climate
Parameters:
room - the room to evaluate.
Returns:
the Climate.WEATHER_* constant
See Also:
Climate, Climate.setCurrentWeatherType(int)

weatherDescription

public java.lang.String weatherDescription(Room room)
Description copied from interface: Climate
Returns a readable description of the weather for the given room.

Specified by:
weatherDescription in interface Climate
Parameters:
room - the room to evaluate
Returns:
a readable string.

canSeeTheMoon

public boolean canSeeTheMoon(Room room,
                             Ability butNotA)
Description copied from interface: Climate
Returns whether a player can see the moon from the current room.

Specified by:
canSeeTheMoon in interface Climate
Parameters:
room - the room vantage point
butNotA - an ability to exempt from moon flags
Returns:
whether the moon can be seen.

canSeeTheStars

public boolean canSeeTheStars(Room room)
Description copied from interface: Climate
Returns whether a player can see the stars from the current room.

Specified by:
canSeeTheStars in interface Climate
Parameters:
room - the room vantage point
Returns:
whether the stars can be seen.

canSeeTheSun

public boolean canSeeTheSun(Room room)
Description copied from interface: Climate
Returns whether a player can see the sun from the current room.

Specified by:
canSeeTheSun in interface Climate
Parameters:
room - the room vantage point
Returns:
whether the sun can be seen.

getWeatherStop

protected java.lang.String getWeatherStop(int weatherCode)

forceWeatherTick

public void forceWeatherTick(Area A)
Description copied from interface: Climate
This method forces the weather to change to what is designated by the nextWeatherType(). The Area is required to calculate a new nextWeatherType.

Specified by:
forceWeatherTick in interface Climate
Parameters:
A - the area to calculate next weather for.

addMaskAndReturn

public int[] addMaskAndReturn(int[] one,
                              int[] two)

sayToEveryoneInArea

protected void sayToEveryoneInArea(Area A,
                                   int oldWeather,
                                   java.lang.String say)

weatherTick

public void weatherTick(Area A)

tick

public boolean tick(Tickable ticking,
                    int tickID)
Description copied from interface: Tickable
this is the method which is called periodically by the threading engine. How often it is called depends on the parameters passed to the threadding engine when it is submitted for thread access. Typically the period is once per TIME_TICK period, but that is determined when the object is submitted to the thread engine.

Specified by:
tick in interface Tickable
Parameters:
ticking - a reference to this Tickable object
tickID - the TICKID_ constant describing this periodic call, as defined in Tickable
Returns:
true always, unless this object no longer wishes to ever tick again, in which case false
See Also:
Tickable, ServiceEngine, TickableGroup

theWeatherDescription

protected java.lang.String theWeatherDescription(Area A,
                                                 int weather)

getWeatherDescription

public java.lang.String getWeatherDescription(Area A)
Description copied from interface: Climate
Returns a readable string describing the weather conditions in the given area, assuming this climate is the correct one.

Specified by:
getWeatherDescription in interface Climate
Parameters:
A - the area to evaluate
Returns:
a description of the weather.

adjustWaterConsumption

public int adjustWaterConsumption(int base,
                                  Room room)
Description copied from interface: Climate
If applicable, thies method will return the base water thirstiness of the given mob, modified up or down based on the room given.

Specified by:
adjustWaterConsumption in interface Climate
Parameters:
base - the water thirst gain to start with
room - the room the mob is in
Returns:
the modified base thirst, after gain or loss

adjustMovement

public int adjustMovement(int base,
                          Room room)
Description copied from interface: Climate
If applicable, thies method will return the base movement cost of the given mob, modified up or down based on the room given.

Specified by:
adjustMovement in interface Climate
Parameters:
base - the movement loss to start with
room - the room the mob is moving through
Returns:
the modified movement, after gain or loss

compareTo

public int compareTo(CMObject o)
Specified by:
compareTo in interface java.lang.Comparable<CMObject>