SQLITE3> SELECT
substr(Valore,0,instr(Valore,'d')) AS "Rolls", -- Quanti TIri
substr(Valore,instr(Valore,'d')+1) AS "Faces", -- Quante faccie ha il dado
ReadyCharacters.NomePersonaggio AS "Nome Personaggio", -- Nome del Personaggio che ha l'arma
CompleteModifiers.Modifier AS "STR", -- Forza del personaggio da sommare all'attacco
Oggetto, -- Nome dell'arma
Valore, -- Dado Usato dall'arma
Modificatore AS "Arma", -- Modificatore dell'arma (Potenziamento)
abs(random() % -- Funzione Casuale, Numero casuale massimo
cast(
substr(Valore,instr(Valore,'d')+1) AS INTEGER) * -- Faccie moltiplicate per il numero di Tiri + il numero dei dadi che saranno almeno 1
substr(Valore,0,instr(Valore,'d')) --
)+substr(Valore,0,instr(Valore,'d'))
+ CharactersInventory.Modificatore
+ CompleteModifiers.Modifier AS "Rolled"
FROM CharactersInventory
INNER JOIN ReadyCharacters ON ReadyCharacters.ID = CharactersInventory.Propretario -- Questo esclude i pesonaggi non pronti
INNER JOIN CompleteModifiers ON CompleteModifiers.PersonaggioID = ReadyCharacters.ID
WHERE TipoID=1 AND CharactersInventory.Propretario = :id AND CompleteModifiers.StatisticaID=1 -- Questo esclude i personaggi senza STR
ORDER BY Faces*Rolls DESC -- Ordina le Armi con quella con possibilità di fare piu danno in cima