Compare commits

...

5 Commits

Author SHA1 Message Date
Alex
d72a2b701e Update file turretgenerator.lua 2023-09-02 18:55:23 +00:00
Alex
c0b7a4ef83 Update file turretgenerator.lua 2023-09-02 18:55:09 +00:00
Alex
8e63f249a7 Update file turretgenerator.lua 2023-09-02 18:54:06 +00:00
Alex
9a56e21c2a Update file turretgenerator.lua 2023-09-02 18:49:04 +00:00
Alex
32fc8f43ea Update 3 files
- /data/scripts/lib/weapongenerator.lua
- /data/scripts/lib/turretgenerator.lua
- /data/scripts/lib/turretingredients.lua
2023-09-02 18:19:34 +00:00
3 changed files with 44 additions and 22 deletions

View File

@@ -112,6 +112,7 @@ else
}
end
-- ===========================================================================================================================================================
function TurretGenerator.generateSmartCannonTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
@@ -119,6 +120,7 @@ function TurretGenerator.generateSmartCannonTurret(rand, dps, tech, material, ra
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew, CrewMan(CrewProfessionType.Gunner))
crew:add(requiredCrew, CrewMan(CrewProfessionType.Pilot))
result.crew = crew
-- generate weapons
@@ -127,14 +129,10 @@ function TurretGenerator.generateSmartCannonTurret(rand, dps, tech, material, ra
local weapon = WeaponGenerator.generateSmartCannon(rand, dps, tech, material, rarity)
weapon.fireDelay = weapon.fireDelay * numWeapons
local name = "Smart-Cannon /* weapon name*/"%_T
local specType = rand:getInt(0, 2)
if specType == 1 then
name = "Ionized Smart-Cannon /* weapon name*/"%_T
if specType == 1 then
weapon.shieldPenetration = 1
elseif specType == 2 then
name = "Plasmed Smart-Cannon /* weapon name*/"%_T
weapon.damageType = DamageType.Plasma
weapon.damage = weapon.damage * 0.9
end
@@ -152,8 +150,14 @@ function TurretGenerator.generateSmartCannonTurret(rand, dps, tech, material, ra
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "Smart-Cannon /* weapon name*/"%_T
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
if specType == 1 then
outerAdjective = "Ionized "%_T
elseif specType == 2 then
outerAdjective = "Plasmed "%_T
weapon.damage = weapon.damage * 0.9
end
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial] */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
@@ -162,6 +166,7 @@ end
generatorFunction[WeaponType.SmartCannon] = TurretGenerator.generateSmartCannonTurret
-- ===========================================================================================================================================================
function TurretGenerator.generateHeavyCannonTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
@@ -202,11 +207,15 @@ function TurretGenerator.generateHeavyCannonTurret(rand, dps, tech, material, ra
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
if result.size >= 4 then
name = "Mons Meg /* weapon name*/"%_T
name = "Mass Driver /* weapon name*/"%_T
weapon.speed = weapon.speed * 2
weapon.reach = weapon.reach * 1.2
end
if result.size >= 5 then
name = "Dulle Griet /* weapon name*/"%_T
name = "Mass Warper /* weapon name*/"%_T
weapon.speed = weapon.speed * 2
weapon.reach = weapon.reach * 1.5
end
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial] */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
@@ -217,6 +226,7 @@ end
generatorFunction[WeaponType.HeavyCannon] = TurretGenerator.generateHeavyCannonTurret
-- ===========================================================================================================================================================
function TurretGenerator.generateDiffuserTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
@@ -257,6 +267,7 @@ end
generatorFunction[WeaponType.Diffuser] = TurretGenerator.generateDiffuserTurret
-- ===========================================================================================================================================================
function TurretGenerator.generateHookgunTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
@@ -271,6 +282,13 @@ function TurretGenerator.generateHookgunTurret(rand, dps, tech, material, rarity
local weapon = WeaponGenerator.generateHookgun(rand, dps, tech, material, rarity)
weapon.damage = weapon.damage / numWeapons
local spec = rand:getInt(0, 1)
if spec then
weapon.holdingForce = weapon.otherForce * 2
weapon.otherForce = 0
end
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
@@ -289,6 +307,11 @@ function TurretGenerator.generateHookgunTurret(rand, dps, tech, material, rarity
local name = "Hookgun /* weapon name*/"%_T
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
if spec then
outerAdjective = "Stabilizing"%_T
end
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial] */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
@@ -297,7 +320,7 @@ end
generatorFunction[WeaponType.Hookgun] = TurretGenerator.generateHookgunTurret
-- ===========================================================================================================================================================
function TurretGenerator.generateHiveLauncherTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()

View File

@@ -2,9 +2,9 @@
TurretIngredients[WeaponType.SmartCannon] =
{
{name = "Servo", amount = 15, investable = 10, minimum = 5, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
{name = "Warhead", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "High Pressure Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "reach", },
{name = "Ammunition M", amount = 2, investable = 4, minimum = 1, weaponStat = "damage", investFactor = 0.5,},
{name = "Processor", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "High Pressure Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "reach", investFactor = 1.5, changeType = StatChanges.Percentage},
{name = "Ammunition M", amount = 2, investable = 4, minimum = 1, weaponStat = "damage", investFactor = 1, changeType = StatChanges.Percentage},
{name = "Targeting Card", amount = 3, investable = 3, minimum = 0, weaponStat = "seeker", investFactor = 1, changeType = StatChanges.Flat},
{name = "Steel", amount = 8, investable = 10, minimum = 3,},
{name = "Steel Tube", amount = 5, investable = 10, minimum = 3,},
@@ -13,9 +13,9 @@ TurretIngredients[WeaponType.SmartCannon] =
TurretIngredients[WeaponType.HeavyCannon] =
{
{name = "Servo", amount = 8, investable = 8, minimum = 4, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
{name = "Warhead", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "Explosive Charge", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "High Pressure Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "reach", },
{name = "Ammunition", amount = 5, investable = 10, minimum = 3, weaponStat = "damage", investFactor = 0.2,},
{name = "Ammunition L", amount = 5, investable = 10, minimum = 3, weaponStat = "damage", investFactor = 0.2,},
{name = "Steel", amount = 20, investable = 10, minimum = 20,},
{name = "Metal Plate", amount = 8, investable = 10, minimum = 10,},
}
@@ -24,20 +24,19 @@ TurretIngredients[WeaponType.Diffuser] =
{
{name = "Plasma Cell", amount = 10, investable = 10, minimum = 10, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
{name = "High Capacity Lens", amount = 5, investable = 6, minimum = 1, weaponStat = "reach", },
{name = "Energy Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "Industrial Tesla Coil",amount = 2, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,},
}
TurretIngredients[WeaponType.Hookgun] = -- TODO Подумать над составляющими
TurretIngredients[WeaponType.Hookgun] =
{
{name = "Plasma Cell", amount = 10, investable = 10, minimum = 10, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
{name = "High Capacity Lens", amount = 5, investable = 6, minimum = 1, weaponStat = "reach", },
{name = "Energy Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "Force Generator", amount = 10, investable = 10, minimum = 10, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
{name = "Energy Tube", amount = 5, investable = 6, minimum = 1, weaponStat = "reach", },
{name = "Power Unit", amount = 2, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,},
{name = "Conductor", amount = 10, investable = 0, minimum = 10,},
}
TurretIngredients[WeaponType.HiveLauncher] =

View File

@@ -53,7 +53,7 @@ function WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
dps = dps * 1.85
local fireDelay = rand:getFloat(1.5, 2.0)*1.7
local reach = rand:getFloat(1100, 1500)*1.2
local reach = rand:getFloat(1100, 1500)*1.5
local damage = dps * fireDelay
local speed = rand:getFloat(600, 1000)*1.4
local existingTime = (reach / speed)*1.1