106 665
contributi
m |
(Corretta Flusso Delta *** sovrascritto il testo esistente ***) |
||
local tab = require('Modulo:Wikilib/tables')
--[[
-- Tabella contenente i valori di efficacia. Il livello esterno è il tipo attaccante, il livello interno il difensore.▼
-- Ad esempio, normale.fuoco è l'efficacia di un attacco di tipo normale che colpisce un tipo fuoco puro▼
▲
è il tipo attaccante, il livello interno il difensore.
▲
tipo normale che colpisce un tipo fuoco puro
--]]
local eff = {}
end
--[[
-- Le abilità che alterano l'efficacia dei tipi.▼
-- il primo indice è il tipo alterato, il secondo▼
-- moltiplicare. Filtro, Solidroccia e Magidifesa▼
secondo il tipo alterato e il valore associato
sarà moltiplicato all'efficacia calcolata solo
con i tipi.
Per esempio, all'indice grassospess corrispondono
i due tipi fuoco e ghiaccio, entrambi con valore
0.5, perché l'abilità dimezza l'efficacia di
questi due tipi.
--]]
local ability = {}
ability['mare primordiale'] = ability.fuocardore
ability['terra estrema'] = ability.acquascolo
ability['flusso delta'] = {elettro = 0.5, ghiaccio =
--[[
-- Creazione dinamica di una table contenente tutte le▼
-- influenzati. Le abilità sono gli indici e i tipi▼
-- influenzati gli elementi associati, es: all'indice▼
-- pellearsa corrisponde una table contenente i tipi▼
-- solidroccia, che non hanno tipi associati fissi▼
fuoco e acqua.
Fanno eccezione Magidifesa, Filtro e Solidroccia,
--]]
et.modTypesAbil = {magidifesa = {}, filtro = {}, solidroccia = {}}
end
--[[
-- immunità, con associati i tipi a cui sono immuni. I▼
-- primi sono gli indici, i secondi gli elementi di una▼
-- table associata agli indici, es: all'indice spettro▼
▲-- è associata una table contenente i tipi lotta e normale
è associata una table contenente i tipi lotta e normale
--]]
et.typesHaveImm = {}
end
--[[
-- Calcola l'efficacia di un attacco (0 - 0.25 - 0.5 - 1 - 2 - 4)▼
-- si aspetta i nomi dei tipi, tutti in minuscolo▼
--]]
et.efficacia = function(atk, def1, def2, abil)
-- Efficacia base con due tipi
local e = eff[atk][def1]
if def2 ~= def1 then
e = e * eff[atk][def2]
end
-- Abilità standard
if ability[abil] and ability[abil][atk] then
return e * ability[abil][atk]
-- Filtro e solidroccia
elseif e >= 2 and (abil == 'filtro' or abil == 'solidroccia') then
return e * 0.75
-- Magidifesa
elseif e < 2 and abil == 'magidifesa' then
return 0
end
--[[
-- Cerca tutti i tipi che soddisfano una condizione data.▼
-- Il parametro test è una funzione che si aspetta un solo argomento (vedere gli esempi dopo per chiarimenti).▼
▲
argomento (vedere gli esempi dopo per chiarimenti).
--]]
local cerca_tipi = function(test)
end
--[[
-- Trova tutti i tipi che attaccando tipo1,tipo2 hanno efficacia eff▼
abilità abil, hanno efficacia eff
--]]
et.difesa = function(eff, tipo1, tipo2, abil)
|