message: added functionality to have .roll in a different location. Useful for sub-attributes (condition of roofs, etc)
diff: -setup.defineRollDataGetter = function (baseObj, rollDataObj, propName, keyName, indexNumber) {
  +setup.defineRollDataGetter = function (baseObj, rollDataObj, propName, keyName, indexNumber, rollLocation) {
  // this handles setting up getters and setters for attributes like wealth, cleanliness and such.
  // it expects the baseObj (the one that is getting the attributes), and the rollData obj (the one that is providing the descriptions)
  // it needs the propName to be exact, unless the optional keyName is specified. This is for when you might want to tie several properties to the same attribute, i.e. cleanliness controlling bedleanliness.
  @@ -6,13 +6,26 @@ setup.defineRollDataGetter = function (baseObj, rollDataObj, propName, keyName,
  // the indexNumber is an optional argument, which tells the function to look at a different location in the array for the string
  // this is most useful for when you have multiple descriptions tied to the same thing (long and short descriptions, or cleanliness controlling bedCleanliness as well.)
  indexNumber = indexNumber || 1
  -
  + // rollLocation = rollLocation || baseObj.roll
  + console.groupCollapsed('DefineRollDataGetters')
  + console.log({
  + baseObj,
  + rollDataObj,
  + propName,
  + keyName,
  + indexNumber,
  + rollLocation
  + })
  Object.defineProperty(baseObj, propName, {
  get: function () {
  console.log('Fetching ' + this.name + ' ' + propName + '.')
  var rollArray = rollDataObj[keyName]
  var result = rollArray.find(function (desc) {
  + if (rollLocation) {
  + return desc[0] <= rollLocation[keyName]
  + } else {
  return desc[0] <= this.roll[keyName]
  + }
  }, this)
  if (result === undefined) {
  console.log('Failed to get a descriptor that matched the roll of ' + this.roll[propName] + ' for ' + propName + '.')
  @@ -28,7 +41,11 @@ setup.defineRollDataGetter = function (baseObj, rollDataObj, propName, keyName,
  console.log('Setting ' + this.name + ' ' + propName + '.')
  var rollArray = rollDataObj[keyName]
  var result = rollArray.find(function (desc) {
  + if (rollLocation) {
  + return desc[0] <= rollLocation[keyName]
  + } else {
  return desc[0] <= this.roll[keyName]
  + }
  }, this)
  if (result === undefined) {
  console.log('Failed to set a descriptor that matched the roll of ' + this.roll[propName] + ' for ' + propName + '.')
  @@ -38,4 +55,5 @@ setup.defineRollDataGetter = function (baseObj, rollDataObj, propName, keyName,
  return this['_' + propName]
  }
  })
  + console.groupEnd()
  }
  