Module:Properties

From Pacific Drive Wiki

Documentation for this module may be created at Module:Properties/doc

local p = {}

p.properties = {
    health = {
        icon = 'Health.png',
        name = 'Health',
        color = '#dce2a0',
    },
    w_health = {
        icon = 'W-Health.png',
        name = 'Health',
        color = '#dce2a0',
    },
    health_peruse = {
        icon = 'W-Health.png',
        name = 'Health / Use',
        color = '#dce2a0',
    },
    health_cure = {
        icon = 'W-Health.png',
        name = 'Health / Cure',
        color = '#dce2a0',
    },
    health_overtime = {
        icon = 'W-Health.png',
        name = 'Health / Over Time',
        color = '#dce2a0',
    },
    fuel_capacity = {
        icon = 'FUELS.png',
        name = 'Capacity',
        color = '#dce2a0',
    },
    fuel_gain_persec = {
        icon = 'Fuel Gain.png',
        name = 'Fuel Gain (Fuel/SEC)',
        color = '#dce2a0',
    },
    durability = {
        icon = 'Durability.png',
        name = 'Durability',
        color = '#dce2a0',
    },
    piercing_damage_persec = {
        icon = 'HAZARD-PIERCING.png',
        name = 'Piercing Damage / Sec',
        color = '#dce2a0',
    },
    explosive_damage_peruse = {
        icon = 'HAZARD-EXPLOSIVE.png',
        name = 'Explosive Damage / Use',
        color = '#dce2a0',
    },
    battery_capacity = {
        icon = 'BATTERIES.png',
        name = 'Capacity',
        color = '#dce2a0',
    },
    battery_drain_persec = {
        icon = 'Battery Drain.png',
        name = 'Battery Drain (KW/SEC)',
        color = '#eaaa8a',
    },
    battery_drain_peractive = {
        icon = 'Battery Drain.png',
        name = 'Battery Drain (KW/Activate)',
        color = '#eaaa8a',
    },
    battery_drain_perfuel = {
        icon = 'Battery Drain.png',
        name = 'Battery Drain (KW/Fuel)',
        color = '#eaaa8a',
    },
    battery_gain_persec = {
        icon = 'Battery Gain.png',
        name = 'Battery Gain (KW/SEC)',
        color = '#beec9b',
    },
    battery_gain_perklim = {
        icon = 'Battery Gain.png',
        name = 'Battery Gain (KW/kLIM)',
        color = '#beec9b',
    },
    battery_gain_peruse = {
        icon = 'Battery Gain.png',
        name = 'Battery Gain (KW/Use)',
        color = '#beec9b',
    },
    battery_gain_perbolt = {
        icon = 'Battery Gain.png',
        name = 'Battery Gain (KW/Bolt)',
        color = '#beec9b',
    },
    impact_damage_peruse = {
        icon = 'Physical DMG.png',
        name = 'Impact Damage / Use',
        color = '#dce2a0',
    },
    impact_resist = {
        icon = 'Physical DMG.png',
        name = 'Impact Resist (%)',
        color = '#dce2a0',
    },
    explode_resist = {
        icon = 'HAZARD-EXPLOSIVE.png',
        name = 'Explosion Resist (%)',
        color = '#dce2a0',
    },
    electric_resist = {
        icon = 'HAZARD-ELECTRICAL.png',
        name = 'Electrical Resist (%)',
        color = '#dce2a0',
    },
    radiation_resist = {
        icon = 'HAZARD-RADIATION.png',
        name = 'Radiation Resist (%)',
        color = '#dce2a0',
    },
    acid_resist = {
        icon = 'HAZARD-ACID.png',
        name = 'Acid Resist (%)',
        color = '#dce2a0',
    },
    blocks_charged = {
        icon = 'Charged Block.png',
        name = 'Blocks Charged',
        color = '#fcc300',
    },
    blocks_flat = {
        icon = 'Flat Block.png',
        name = 'Blocks Flat',
        color = '#dce2a0',
    },
    blocks_blown = {
        icon = 'Flat Block.png',
        name = 'Blocks Blown Out',
        color = '#dce2a0',
    },
    bracer_ability = {
        icon = 'Bracer.png',
        name = 'Bracer Shield Ability',
        color = '#dce2a0',
    },
    impact_ability = {
        icon = 'Impact Shield.png',
        name = 'Impact Shield Ability',
        color = '#dce2a0',
    },
    bubble_ability = {
        icon = 'BUBBLE-SHIELD.png',
        name = 'Anti-Radiation Shield Ability',
        color = '#dce2a0',
    },
    boost_ability = {
        icon = 'BOOST.png',
        name = 'Boost Ability',
        color = '#dce2a0',
    },
    grip_ability = {
        icon = 'POWER-GRIP-TIRE 2.png',
        name = 'Grip Ability',
        color = '#dce2a0',
    },
    
    road_rating = {
        icon = 'COLL-WHEEL.png',
        name = 'Road Rating',
        color = '#dce2a0',
    },
    offroad_rating = {
        icon = 'COLL-WHEEL.png',
        name = 'Offroad Rating',
        color = '#dce2a0',
    },
    water_rating = {
        icon = 'COLL-WHEEL.png',
        name = 'Water Rating',
        color = '#dce2a0',
    },
    horsepower = {
        icon = 'ENGINES.png',
        name = 'Horsepower',
        color = '#dce2a0',
    },
    fuel_consumption = {
        icon = 'FUEL-CAN.png',
        name = 'Fuel Consumption (MPG)',
        color = '#dce2a0',
    },
}

function p.main(frame)
    local res = ''
    for key, value in frame.args.stats:gmatch("([%w_]+)=([%w_\.]+)") do
        local property = p.properties[key]
        if not property then
            return string.format("Property %s not found.", key)
        end
        res = string.format('%s<div style="color: #eaecc3; display: flex; align-items: center; max-width: 24em; padding: 0; margin: 0; border: solid; border-color: %s; border-width: 2px;"><span style="margin: 0; padding-left: 8px; padding-right: 8px;">[[File:%s|26px|alt=Icon for the %s property]]</span><span style="width: 14em; border-left: solid; border-color: %s; border-width: 2px; font-size: 24px; padding: 2px 8px 2px 8px; margin: 0;">[[%s]]</span><span style="padding-right: 8px; font-size: 24px;">%s</span></div>',
        res, property.color, property.icon, property.name, property.color, property.name, value)
    end
    return res
end

return p