VanaTime 1.1.0 README

This document was last updated on Thu Aug 30 22:58:05 EDT 2007.

Introduction to VanaTime

VanaTime is a group of classes that deal with times, days, and moon phases in the MMORPG Final Fantasy Online (aka FFXI). Besides translating earth time to game time, you can also convert game time to real time, step forward a day, get a time estimate about how long you have left until the next optimal moon phase, and a few other useful features.

VanaTime is a work in progress and the API may change from time to timeā€¦ you may want to use explicit versioning in any code depending on it.

FFXI::VanaTime API

* new(Time)
    accepts a Time object to initialize a new VanaTime, using the current
    time if no Time object is passed
* now
    an alias for new as a convenience method
* at(VanaTime)
    accepts a VanaTime object, int, or float representing vana time to
    initialize a new VanaTime object
* earth_time=(Time)
    allows re-initializing a VanaTime object with a new earth time
* vana_time=(VanaTime)
    allows re-initializing a VanaTime object with a new vana time, given
    as a VanaTime object (why not >_>), or (more useful) an int or float
* to_i
    returns an integer with the internal representation of vana time
* to_f
    returns a float with the internal representation of vana time without
    losing any accuracy
* year
* month
* date
* hour
* minute
* second
    these methods return various times, what we're interested in
* to_s
    returns a string in the format:
    YYYY-MM-DD hh:mm:ss
* day
    returns a VanaDay object initialized with the current VanaTime
* moon
    returns a VanaMoon object initialized with the current time

FFXI::VanaDay API

* new(VanaTime)
    accepts a VanaTime object used to initialize the vana day, using a new
    VanaTime initialized to the current time if one isn't passed
* vana_time=(VanaTime)
    used to reinitialize the vana day object with a new time
* to_i
    returns a base zero number representing the day of the week
* to_s
    returns the name of the day of the week
* weak_element
    returns the element that the current day is weak to
* day_start
    returns a VanaTime object representing the start of the current day
* tomorrow
    returns a VanaTime object representing the start of the next vana day

FFXI::VanaMoon API

* new(Time)
    Unlike VanaDay, VanaMoon is initialized with the current earth time
* to_i
    returns a number representing the exact position along the progression
    of moon phases
* percent
    returns the absolute value of the percentage formatted
* phase
    returns the name of the current moon phase
* to_s
    returns a string in the format: moon_percent.abs phase_name
* to_next_array
    returns an array containing the days, hours, minutes, and seconds until
    the next moon phase
* to_next
    returns a formatted countdown until the next moon phase
* next_phase
    returns the name of the next moon phase
* to_optimal_array
    returns an array containing the days, hours, minutes, and seconds until
    the next optimal moon phase
* to_optimal
    returns a formatted countdown until the next optimal moon phase
* optimal_phase
    returns the name of the next optimal moon phase