Device Configuration Parameters for Game

Answered using OpenAI o1 preview by OpenAI o1

Question:

dofile("devices/device_util.lua")

BuildQueueConcurrent = {}

Sprites = { ButtonSprite("hud-metalstore-icon", "HUD/HUD-MetalStore", nil, ButtonSpriteBottom), ButtonSprite("hud-mine-icon", "HUD/HUD-Mine", nil, ButtonSpriteBottom), ButtonSprite("hud-upgrade-icon", "HUD/HUD-MineUpgrade", nil, ButtonSpriteBottom), ButtonSprite("hud-solaricon", "HUD/HUD-SolarPanel", nil, ButtonSpriteBottom), ButtonSprite("hud-generator-icon", "HUD/HUD-PowerGenerator", nil, ButtonSpriteBottom), ButtonSprite("hud-nuclear-icon", "HUD/HUD-NuclearReactor", nil, ButtonSpriteBottom), ButtonSprite("hud-thermo-nuclear-icon", "HUD/HUD-ThermoNuclearReactor", nil, ButtonSpriteBottom), ButtonSprite("hud-battery-icon", "HUD/HUD-BatteryStore", nil, ButtonSpriteBottom), ButtonSprite("hud-infinite-battery-icon", "HUD/HUD-InfiniteBattery", nil, ButtonSpriteBottom), }

Devices = { { SaveName = "mine", FileName = "devices/mine.lua", Icon = "hud-mine-icon", Detail = "hud-detail-mine", BuildTimeComplete = 30.0, ScrapPeriod = 8, MetalCost = 300, EnergyCost = 2000, MetalRepairCost = 200, EnergyRepairCost = 1500, MaxUpAngle = 30, BuildOnOreOnly = true, Upgrades = { ["improved_mine"] = { Enabled = true, SaveName = "improved_mine", MetalCost = 250, EnergyCost = 2500, }, } }, { SaveName = "improved_mine", FileName = "devices/improved_mine.lua", Icon = "hud-upgrade-icon", Detail = "hud-detail-improved-mine", BuildTimeComplete = 30.0, ScrapPeriod = 8, MetalCost = 550, EnergyCost = 4500, MetalRepairCost = 300, EnergyRepairCost = 2500, Upgrades = { ["super_mine"] = { Enabled = true, SaveName = "super_mine", MetalCost = 500, EnergyCost = 5000, }, } }, { SaveName = "super_mine", FileName = "devices/super_mine.lua", Icon = "hud-upgrade-icon", Detail = "hud-detail-super-mine", BuildTimeComplete = 30.0, ScrapPeriod = 8, MetalCost = 800, EnergyCost = 6000, }, { SaveName = "solar_panel", FileName = "devices/solar_panel.lua", Icon = "hud-solaricon", Detail = "hud-detail-solar-panel", BuildTimeComplete = 20.0, ScrapPeriod = 5, MetalCost = 200, EnergyCost = 500, }, { SaveName = "generator", FileName = "devices/generator.lua", Icon = "hud-generator-icon", Detail = "hud-detail-generator", BuildTimeComplete = 30.0, ScrapPeriod = 10, MetalCost = 400, EnergyCost = 2000, Upgrades = { ["improved_generator"] = { Enabled = true, SaveName = "improved_generator", MetalCost = 300, EnergyCost = 3000, }, } }, { SaveName = "improved_generator", FileName = "devices/improved_generator.lua", Icon = "hud-generator-icon", Detail = "hud-detail-improved-generator", BuildTimeComplete = 30.0, ScrapPeriod = 10, MetalCost = 600, EnergyCost = 3500, }, { SaveName = "nuclear_reactor", FileName = "devices/nuclear_reactor.lua", Icon = "hud-nuclear-icon", Detail = "hud-detail-nuclear-reactor", BuildTimeComplete = 60, ScrapPeriod = 60, MetalCost = 800, EnergyCost = 5000, Upgrades = { ["thermo_nuclear_reactor"] = { Enabled = true, SaveName = "thermo_nuclear_reactor", MetalCost = 1000, EnergyCost = 8000, }, } }, { SaveName = "thermo_nuclear_reactor", FileName = "devices/thermo_nuclear_reactor.lua", Icon = "hud-thermo-nuclear-icon", Detail = "hud-detail-thermo-nuclear-reactor", BuildTimeComplete = 90, ScrapPeriod = 90, MetalCost = 1200, EnergyCost = 10000, }, { SaveName = "battery_store", FileName = "devices/battery_store.lua", Icon = "hud-battery-icon", Detail = "hud-detail-battery-store", BuildTimeComplete = 30, ScrapPeriod = 10, MetalCost = 200, EnergyCost = 500, Upgrades = { ["upgraded_battery_store"] = { Enabled = true, SaveName = "upgraded_battery_store", MetalCost = 300, EnergyCost = 1000, }, } }, { SaveName = "upgraded_battery_store", FileName = "devices/upgraded_battery_store.lua", Icon = "hud-battery-icon", Detail = "hud-detail-upgraded-battery-store", BuildTimeComplete = 40, ScrapPeriod = 15, MetalCost = 400, EnergyCost = 1500, Upgrades = { ["super_battery_store"] = { Enabled = true, SaveName = "super_battery_store", MetalCost = 500, EnergyCost = 2000, }, } }, { SaveName = "super_battery_store", FileName = "devices/super_battery_store.lua", Icon = "hud-battery-icon", Detail = "hud-detail-super-battery-store", BuildTimeComplete = 50, ScrapPeriod = 20, MetalCost = 600, EnergyCost = 3000, Upgrades = { ["infinite_battery_store"] = { Enabled = true, SaveName = "infinite_battery_store", MetalCost = 700, EnergyCost = 4000, }, } }, { SaveName = "infinite_battery_store", FileName = "devices/infinite_battery_store.lua", Icon = "hud-infinite-battery-icon", Detail = "hud-detail-infinite-battery-store", BuildTimeComplete = 60, ScrapPeriod = 30, MetalCost = 800, EnergyCost = 5000, }, { SaveName = "metal_store", FileName = "devices/metal_store.lua", Icon = "hud-metalstore-icon", Detail = "hud-detail-metal-store", BuildTimeComplete = 30, ScrapPeriod = 10, MetalCost = 200, EnergyCost = 500, Upgrades = { ["upgraded_metal_store"] = { Enabled = true, SaveName = "upgraded_metal_store", MetalCost = 300, EnergyCost = 1000, }, } }, { SaveName = "upgraded_metal_store", FileName = "devices/upgraded_metal_store.lua", Icon = "hud-metalstore-icon", Detail = "hud-detail-upgraded-metal-store", BuildTimeComplete = 40, ScrapPeriod = 15, MetalCost = 400, EnergyCost = 1500, Upgrades = { ["super_metal_store"] = { Enabled = true, SaveName = "super_metal_store", MetalCost = 500, EnergyCost = 2000, }, } }, { SaveName = "super_metal_store", FileName = "devices/super_metal_store.lua", Icon = "hud-metalstore-icon", Detail = "hud-detail-super-metal-store", BuildTimeComplete = 50, ScrapPeriod = 20, MetalCost = 600, EnergyCost = 3000, Upgrades = { ["infinite_metal_store"] = { Enabled = true, SaveName = "infinite_metal_store", MetalCost = 700, EnergyCost = 4000, }, } }, { SaveName = "infinite_metal_store", FileName = "devices/infinite_metal_store.lua", Icon = "hud-metalstore-icon", Detail = "hud-detail-infinite-metal-store", BuildTimeComplete = 60, ScrapPeriod = 30, MetalCost = 800, EnergyCost = 5000, }, }

local barrel = FindDevice("barrel") if barrel then local barreltemp = DeepCopy(barrel) barreltemp.SaveName = "barreltemp" barreltemp.FileName = "devices/explosivebarreltemp.lua" barreltemp.Enabled = false barreltemp.HideFromEditor = true barreltemp.NoReclaim = false barreltemp.ScrapPeriod = 45 barreltemp.MetalCost = 0 barreltemp.EnergyCost = -1000 barreltemp.MetalReclaimMin = 1 barreltemp.MetalReclaimMax = 1 barreltemp.EnergyReclaimMin = 1 barreltemp.EnergyReclaimMax = 1 InsertDeviceBehind("barrel", barreltemp) end

можешь для каждого устройства сделать свю настройку параметров по примеру с низу

onstructEffect = "effects/device_upgrade.lua" CompleteEffect = "effects/device_complete.lua" DestroyUnderwaterEffect = "mods/dlc2/effects/device_explode_submerged.lua" Scale = 0.75 SelectionWidth = 85.0 SelectionHeight = 120 SelectionOffset = { 0.0, 29.33 } Mass = 40 HitPoints = 150 EnergyProductionRate = -7 MetalProductionRate = 5 EnergyStorageCapacity = 0 MetalStorageCapacity = 0 MinWindEfficiency = 1 MaxWindHeight = 0 MaxRotationalSpeed = 0

dofile("effects/device_smoke.lua") SmokeEmitter = StandardDeviceSmokeEmitter

Sprites = { { Name = "mine-base2", States = { Normal = { Frames = { { texture = "devices/mine upgrade/base.png" }, mipmap = true, }, }, }, }, }

NodeEffects = { { NodeName = "Miner", EffectPath = "effects/mine_ambient.lua", }, }

Root = { Name = "Mine2", Angle = 0, Pivot = { 0, 0.055 }, PivotOffset = { 0, 0 }, Sprite = "mine-base2",

ChildrenBehind =
{
	{
		Name = "Wheel",
		Angle = 0,
		Pivot = { 0.07, -0.33 },
	
Answer:

Certainly! Below is an example of how to add the specified parameters for each device in your configuration. I've included the parameters you provided, along with some placeholder values for each device. You can adjust the values as needed for your specific game mechanics.

Devices =
{
    {
        SaveName = "mine",
        FileName = "devices/mine.lua",
        Icon = "hud-mine-icon",
        Detail = "hud-detail-mine",
        BuildTimeComplete = 30.0,
        ScrapPeriod = 8,
        MetalCost = 300,
        EnergyCost = 2000,
        MetalRepairCost = 200,
        EnergyRepairCost = 1500,
        MaxUpAngle = 30,
        BuildOnOreOnly = true,
        ConstructEffect = "effects/device_upgrade.lua",
        CompleteEffect = "effects/device_complete.lua",
        DestroyUnderwaterEffect = "mods/dlc2/effects/device_explode_submerged.lua",
        Scale = 0.75,
        SelectionWidth = 85.0,
        SelectionHeight = 120,
        SelectionOffset = { 0.0, 29.33 },
        Mass = 40,
        HitPoints = 150,
        EnergyProductionRate = -7,
        MetalProductionRate = 5,
        EnergyStorageCapacity = 0,
        MetalStorageCapacity = 0,
        MinWindEfficiency = 1,
        MaxWindHeight = 0,
        MaxRotationalSpeed = 0,
        SmokeEmitter = StandardDeviceSmokeEmitter,
        Sprites =
        {
            {
                Name = "mine-base",
                States =
                {
                    Normal = { Frames = { { texture = "devices/mine/base.png" }, mipmap = true, }, },
                },
            },
        },
        NodeEffects =
        {
            {
                NodeName = "Miner",
                EffectPath = "effects/mine_ambient.lua",
            },
        },
        Root =
        {
            Name = "Mine",
            Angle = 0,
            Pivot = { 0, 0.055 },
            PivotOffset = { 0, 0 },
            Sprite = "mine-base",
        },
        Upgrades =
        {
            ["improved_mine"] =
            {
                Enabled = true,
                SaveName = "improved_mine",
                MetalCost = 250,
                EnergyCost = 2500,
            },
        }
    },
    {
        SaveName = "improved_mine",
        FileName = "devices/improved_mine.lua",
        Icon = "hud-upgrade-icon",
        Detail = "hud-detail-improved-mine",
        BuildTimeComplete = 30.0,
        ScrapPeriod = 8,
        MetalCost = 550,
        EnergyCost = 4500,
        MetalRepairCost = 300,
        EnergyRepairCost = 2500,
        ConstructEffect = "effects/device_upgrade.lua",
        CompleteEffect = "effects/device_complete.lua",
        DestroyUnderwaterEffect = "mods/dlc2/effects/device_explode_submerged.lua",
        Scale = 0.75,
        SelectionWidth = 85.0,
        SelectionHeight = 120,
        SelectionOffset = { 0.0, 29.33 },
        Mass = 50,
        HitPoints = 200,
        EnergyProductionRate = -10,
        MetalProductionRate = 10,
        EnergyStorageCapacity = 0,
        MetalStorageCapacity = 0,
        MinWindEfficiency = 1,
        MaxWindHeight = 0,
        MaxRotationalSpeed = 0,
        SmokeEmitter = StandardDeviceSmokeEmitter,
        Sprites =
        {
            {
                Name = "improved-mine-base",
                States =
                {
                    Normal = { Frames = { { texture = "devices/improved_mine/base.png" }, mipmap = true, }, },
                },
            },
        },
        NodeEffects =
        {
            {
                NodeName = "Miner",
                EffectPath = "effects/mine_ambient.lua",
            },
        },
        Root =
        {
            Name = "Improved Mine",
            Angle = 0,
            Pivot = { 0, 0.055 },
            PivotOffset = { 0, 0 },
            Sprite = "improved-mine-base",
        },
        Upgrades =
        {
            ["super_mine"] =
            {
                Enabled = true,
                SaveName = "super_mine",
                MetalCost = 500,
                EnergyCost = 5000,
            },
        }
    },
    {
        SaveName = "super_mine",
        FileName = "devices/super_mine.lua",
        Icon = "hud-upgrade-icon",
        Detail = "hud-detail-super-mine",
        BuildTimeComplete = 30.0,
        ScrapPeriod = 8,
        MetalCost = 800,
        EnergyCost = 6000,
        ConstructEffect = "effects/device_upgrade.lua",
        CompleteEffect = "effects/device_complete.lua",
        DestroyUnderwaterEffect = "mods/dlc2/effects/device_explode_submerged.lua",
        Scale = 0.75,
        SelectionWidth = 85.0,
        SelectionHeight = 120,
        SelectionOffset = { 0.0, 29.33 },
        Mass = 60,
        HitPoints = 250,
        EnergyProductionRate = -15,
        MetalProductionRate = 15,
        EnergyStorageCapacity = 0,
        MetalStorageCapacity = 0,
        MinWindEfficiency = 1,
        MaxWindHeight = 0,
        MaxRotationalSpeed = 0,
        SmokeEmitter = StandardDeviceSmokeEmitter,
        Sprites =
        {
            {
                Name = "super-mine-base",
                States =
                {
                    Normal = { Frames = { { texture = "devices/super_mine/base.png" }, mipmap = true, }, },
                },
            },
        },
        NodeEffects =
        {
            {
                NodeName = "Miner",
                EffectPath = "effects/mine_ambient.lua",
            },
        },
        Root =
        {
            Name = "Super Mine",
            Angle = 0,
            Pivot = { 0, 0.055 },
            PivotOffset = { 0, 0 },
            Sprite = "super-mine-base",
        },
    },
    {
        SaveName = "solar_panel",
        FileName = "devices/solar_panel.lua",
        Icon = "hud-solaricon",
        Detail = "hud-detail-solar-panel",
        BuildTimeComplete = 20.0,
        ScrapPeriod = 5,
        MetalCost = 200,
        EnergyCost = 500,
        ConstructEffect = "effects/device_upgrade.lua",
        CompleteEffect = "effects/device_complete.lua",
        DestroyUnderwaterEffect = "mods/dlc2/effects/device_explode_submerged.lua",
        Scale = 0.75,
        SelectionWidth = 85.0,
        SelectionHeight = 120,
        SelectionOffset = { 0.0, 29.33 },
        Mass = 30,
        HitPoints = 100,
        EnergyProductionRate = 5,
        MetalProductionRate = 0,
        EnergyStorageCapacity = 0,
        MetalStorageCapacity = 0,
        MinWindEfficiency = 1,
        MaxWindHeight = 0,
        MaxRotationalSpeed = 0,
        SmokeEmitter = StandardDeviceSmokeEmitter,
        Sprites =
        {
            {
                Name = "solar-panel-base",
                States =
                {
                    Normal = { Frames = { { texture = "devices/solar_panel/base.png" }, mipmap = true, }, },
                },
            },
        },
        NodeEffects =
        {
            {
                NodeName = "Solar",
                EffectPath = "effects/solar_panel_ambient.lua",
            },
        },
        Root =
        {
            Name = "Solar Panel",
            Angle = 0,
            Pivot = { 0, 0.055 },
            PivotOffset = { 0, 0 },
            Sprite = "solar-panel-base",
        },
    },
    -- Add similar configurations for other devices like generator, nuclear reactor, battery store, etc.
}

You can continue this pattern for the remaining devices, adjusting the parameters as necessary to fit the intended functionality and balance of each device. Make sure to replace the placeholder values with the actual values that make sense for your game.