IS:0 Item System. Objetos en Seijyuji - otiasc/Seijyuji-Rest GitHub Wiki

Ahora en Seijyuji Gakuen los usuarios pueden tener objetos y usarlos. El IS introduce las herramientas necesarias para tal acontecimiento.

class Converter

Convertidor de Número a Cadena y viceversa

  • Converter.CONVERSION constante de conversión

  • Converter.LENGTH constante. Longitud de Converter.CONVERSION

  • Converter.toNumber(_string:str):int. Convierte una cadena en número _string:str la cadena a convertir devuelve int el número convertido

  • Converter.toString(_number:int):str. Convierte un número en cadena _number:int el número devuelve str la cadena convertida

class Item

Cada uno de los ítems que puede tener la Seijyuji Gakuen

  • int id identificador de ítem

  • str name nombre del ítem

  • str description descripción del ítem

  • str image URL de la imagen del ítem

  • constructor Item(_id, _name, _description, _image)

class HistoryStep

Registro individual de compra/venta/uso de un item

  • str action qué se ha hecho con el item. puede ser get, lose
  • Item item el item correspondiente
  • int prize precio de compra/venta
    Si se omite, la acción ha sido un regalo/uso/pérdida
  • int thread ID del tema en el que ha sucedido la acción
    Si se omite, la acción se ha hecho desde administración
  • int post ID del post en el que ha sucedido la acción
    Si se omite la acción se ha hecho desde administración

class ItemList extends array

Matriz con un conjunto de objetos Item, algunos incluso repetidos

  • addItem(_item:Item, [_amount:int]) añade uno o varios items a la lista
  • removeItem(_item:Item, [_amount:int]) elimina uno o varios items de la lista
  • getString() obtiene la cadena de la matriz

class ItemListWithPrize extends ItemList

Conjunto de objetos Item con un precio. El conjunto puede ser de tamaño 1

  • int prize precio del conjunto

class ShopList extends array

Matriz con un conjunto de objetos ItemListWithPrize

  • addItem(_item:Item, _prize:int, [_amount:int]) añade un item a la lista y le pone un precio
  • addItemList(_itemList:ItemList, _prize:int, [_amount:int]) añade una lista de items y le pone un precio

class HistoryList extends array

  • addHistoryStep(_step:HistoryStep) añade un nuevo paso efectuado
  • newFromString(_string:str) crea una nueva array desde el texto historial

A partir de aquí elementos fuera de la clase

str {user_item}

Almacena un ítem que posee el usuario. La estructura es itemID/amount

  • itemID (obligatorio) es el ID del item
  • amount (obligatorio) es la cantidad que posee

Campo de usuario objetos

Almacena el conjunto de ítems que posee el usuario. La estructura es {user_item}|{user_item}

str {user_item_history}

Es un registro individual de uso o compra de un objeto por parte del usuario. Estructura: getoruse/itemID/thread/post/[amount] en donde:

  • getoruse (obligatorio) puede ser get o use según si el registro se refiere a obtención o uso
  • itemID (obligatorio) es el ID del item referido
  • thread y post (obligatorios) son los ID de tema y post en los que ha ocurrido la acción Usar 0 en ambos en caso de que la acción haya sido resuelta desde Administración.
  • amount (opcional) es la cantidad de objetos usados. Si se omite se considera 1

Un script se encarga de transformar esto a un (X)HTML "legible"

arr itemList

Lista constante de todos los ítems que se usarán en el foro. Cada elemento del array es un objeto map con la siguiente información

  • índice de la matriz ID único del ítem
  • str name (obligatorio): Nombre del objeto
  • str description (obligatorio): Descripción del objeto
  • str image (obligatorio): URL de la imagen del objeto
  • otros campos que se irán añadiendo

Función getObject(_user, _object, _amount)

Un usuario recibe una determinada cantidad de objetos

  • int _user id del usuario que va a recibir el objeto
  • int _object id del objeto que va a recibir el usuario
  • int _amount cantidad de objetos que va a recibir el usuario

Solo admin/moderadores pueden ejecutar esta función. Proceso:

  1. Se obtiene la lista de ítems que posee el usuario _user
  2. Se procesa y se añade el nuevo objeto
  3. Se envía nuevo la lista de ítems

Usar un objeto