ChampionData/getter

--

```
local p    = {}
local data = mw.loadData('Module:ChampionData/data')

function p.id(champname)
    return data[champname].id
end

function p.apiname(champname)
    return data[champname].apiname or champname
end

function p.title(champname)
    return data[champname].title
end

function p.attack(champname)
    return data[champname].attack
end

function p.defense(champname)
    return data[champname].defense
end

function p.magic(champname)
    return data[champname].magic
end

function p.difficulty(champname)
    return data[champname].difficulty
end

function p.herotype(champname)
    return data[champname].herotype
end

function p.alttype(champname)
    return data[champname].alttype
end

function p.resource(champname)
    return data[champname].resource
end

function p.hp_base(champname)
    return data[champname].stats.hp_base
end

function p.hp_lvl(champname)
    return data[champname].stats.hp_lvl
end

function p.mp_base(champname)
    return data[champname].stats.mp_base
end

function p.mp_lvl(champname)
    return data[champname].stats.mp_lvl
end

function p.arm_base(champname)
    return data[champname].stats.arm_base
end

function p.arm_lvl(champname)
    return data[champname].stats.arm_lvl
end

function p.mr_base(champname)
    return data[champname].stats.mr_base
end

function p.mr_lvl(champname)
    return data[champname].stats.mr_lvl
end

function p.hp5_base(champname)
    return data[champname].stats.hp5_base
end

function p.hp5_lvl(champname)
    return data[champname].stats.hp5_lvl
end

function p.mp5_base(champname)
    return data[champname].stats.mp5_base
end

function p.mp5_lvl(champname)
    return data[champname].stats.mp5_lvl
end

function p.dam_base(champname)
    return data[champname].stats.dam_base
end

function p.dam_lvl(champname)
    return data[champname].stats.dam_lvl
end

function p.as_base(champname)
    return data[champname].stats.as_base
end
function p.as_lvl1(champname)
    return data[champname].stats.as_lvl1
end

function p.attack_delay(champname)
    return data[champname].stats.attack_delay
end

function p.as_lvl(champname)
    return data[champname].stats.as_lvl
end

function p.as_lvl1_bonus(champname)
    return data[champname].stats.as_lvl1_bonus
end

function p.range(champname)
    return data[champname].stats.range
end

function p.range_lvl(champname)
    return data[champname].stats.range_lvl
end

function p.ms(champname)
    return data[champname].stats.ms
end

function p.ms_lvl(champname)
    return data[champname].stats.ms_lvl
end

function p.acquisition_radius(champname)
    return data[champname].stats.acquisition_radius or 750
end

function p.selection_radius(champname)
    return data[champname].stats.selection_radius
end

function p.pathing_radius(champname)
    return data[champname].stats.pathing_radius
end

function p.gameplay_radius(champname)
    return data[champname].stats.gameplay_radius or 65
end

function p.crit_base(champname)
    return data[champname].stats.crit_base or 200
end

function p.crit_mod(champname)
    return data[champname].stats.crit_mod
end

function p.as_ratio(champname)
    return data[champname].stats.as_ratio
end

function p.windup_modifier(champname)
    return data[champname].stats.windup_modifier
end

function p.missile_speed(champname)
    return data[champname].stats.missile_speed
end

function p.attack_cast_time(champname)
    return data[champname].stats.attack_cast_time
end

function p.attack_total_time(champname)
    return data[champname].stats.attack_total_time
end

function p.attack_delay_offset(champname)
    return data[champname].stats.attack_delay_offset
end

function p.windup(champname)
    if (data[champname].stats.attack_cast_time and data[champname].stats.attack_total_time) then
        return data[champname].stats.attack_cast_time / data[champname].stats.attack_total_time
    else
        return 0.3 + (data[champname].stats.attack_delay_offset or 0)
    end
end

function p.aram_dmg_dealt(champname)
    return data[champname].stats.aram_dmg_dealt or 1.0
end

function p.aram_dmg_taken(champname)
    return data[champname].stats.aram_dmg_taken or 1.0
end

function p.aram_healing(champname)
    return data[champname].stats.aram_healing or 1.0
end

function p.aram_shielding(champname)
    return data[champname].stats.aram_shielding or 1.0
end

function p.nb_dmg_dealt(champname)
    return data[champname].stats.nb_dmg_dealt or 1.0
end

function p.nb_dmg_taken(champname)
    return data[champname].stats.nb_dmg_taken or 1.0
end

function p.nb_healing(champname)
    return data[champname].stats.nb_healing or 1.0
end

function p.nb_shielding(champname)
    return data[champname].stats.nb_shielding or 1.0
end

function p.ofa_dmg_dealt(champname)
    return data[champname].stats.ofa_dmg_dealt or 1.0
end

function p.ofa_dmg_taken(champname)
    return data[champname].stats.ofa_dmg_taken or 1.0
end

function p.ofa_healing(champname)
    return data[champname].stats.ofa_healing or 1.0
end

function p.ofa_shielding(champname)
    return data[champname].stats.ofa_shielding or 1.0
end

function p.urf_dmg_dealt(champname)
    return data[champname].stats.urf_dmg_dealt or 1.0
end

function p.urf_dmg_taken(champname)
    return data[champname].stats.urf_dmg_taken or 1.0
end

function p.urf_healing(champname)
    return data[champname].stats.urf_healing or 1.0
end

function p.urf_shielding(champname)
    return data[champname].stats.urf_shielding or 1.0
end

function p.fullname(champname)
    return data[champname].fullname
end

function p.nickname(champname)
    return data[champname].nickname
end

function p.rangetype(champname)
    return data[champname].rangetype
end

function p.date(champname)
    return data[champname].date
end

function p.patch(champname)
    return data[champname].patch
end

function p.changes(champname)
    return data[champname].changes
end

function p.role(champname) -- table
    return data[champname].role
end

function p.positions(champname) -- table
    return data[champname].positions
end

function p.op_positions(champname) -- table
    return data[champname].op_positions
end

function p.damage(champname)
    return data[champname].damage
end

function p.toughness(champname)
    return data[champname].toughness
end

function p.control(champname)
    return data[champname].control
end

function p.mobility(champname)
    return data[champname].mobility
end

function p.utility(champname)
    return data[champname].utility
end

function p.style(champname)
    return data[champname].style
end

function p.adaptivetype(champname)
    return data[champname].adaptivetype or "Physical"
end

function p.be(champname)
    return data[champname].be
end

function p.rp(champname)
    return data[champname].rp
end

function p.skill_i(champname)
    return data[champname].skill_i -- table
end

function p.skill_q(champname)
    return data[champname].skill_q -- table
end

function p.skill_w(champname)
    return data[champname].skill_w -- table
end

function p.skill_e(champname)
    return data[champname].skill_e -- table
end

function p.skill_r(champname)
    return data[champname].skill_r -- table
end

return p
--
```

--