Scusa se ti risp solo ora Ros ma l'ho visto ora >.<.
C'è scritto nel punto (2) sotto al diagramma
Mettere su il sistema per realizzare l'inventario è oneroso. Per la demo implementerò un inventario molto basilare impostato su un paio di tabelle (lato DB) e le classi item ed inventory lato server.
L'entità principale del sistema è la tabella inventory_uname dove uname è il nome utente del personaggio che possiede quel dato inventario. Esiste una relazione uno ad uno fra ogni utente e le tabelle di inventario. Naturalmente il sistema non è efficiente ma purtroppo usiamo MySql :v
All'utente test1 verrà associata la tabella inventory_test1.
inventory_uname
inventory_id | id della entry relativa all'item dell'inventario |
category | nome della tabella contenente l'item relativo ad item_id |
item_id | id relativo all'item nella tabella associata al valore di category |
stack_quantity | numero di oggetti che occuperanno un singolo spazio nell'inventario |
La tabella category contiene tutti gli item relativi ad una categoria. Nell'esempio riporto la categoria "consumable".
consumable
item_id | id della entry relativa all'item di una data categoria |
icon | nome icona da associare all'inventario nel client |
name | nome dell'oggetto |
type | tipo dell'oggetto |
stack | 1 se n oggetti di questa entry possono occupare un solo spazio nell'inventario. 0 se ad ogni oggetto corrisponde uno spazio |
maximum_stack | se stack vale 1 allora questo valore indica la grandezza massima dello stack di oggetti |
il campo type potrebbe essere utile per differenziare gli item di una data categoria. Ad esempio fra i consumabili possiamo identificare le chiavi inglesi, i bulloni, le caramelle etc…
E' necessario stabilire dove e come vengono conservate su DB le propietà degli item non generati dal sistema, quindi gli item che non sono parti del robot o armi.