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 },
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.