Compare commits

...

12 Commits

Author SHA1 Message Date
Slava
de517a1b5b Update 2 files
- /data/localization/template.pot
- /data/localization/ru.po
2023-08-29 20:52:08 +00:00
Slava
b5036334b1 Update 3 files
- /data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua
- /data/localization/ru.po
- /data/localization/template.pot
2023-08-29 20:48:31 +00:00
Slava
385608bb7a Update 3 files
- /data/localization/template.pot
- /data/localization/ru.po
- /data/scripts/lib/turretgenerator.lua
2023-08-29 19:21:40 +00:00
Slava
357d46cd1f Reset Translate 2023-08-29 19:03:58 +00:00
Slava
3cd1e2d575 Add translation template file 2023-08-29 15:31:29 +00:00
Alex
9111bf856e Update 2 files
- /data/scripts/lib/weapongenerator.lua
- /data/scripts/lib/turretgenerator.lua
2023-08-29 15:11:13 +00:00
bacon
f74138d77b changed main 2023-08-29 02:06:55 +03:00
Slava
cbcc5ae680 Update file .gitattributes 2023-08-28 21:01:26 +00:00
Alex
fc351d2555 Update 2 files
- /data/textures/icons/hive.png
- /data/textures/icons/hivelauncher.png
2023-08-28 20:08:36 +00:00
Alex
e90ff8f1e2 Update file weapongenerator.lua 2023-08-28 20:08:13 +00:00
Alex
13a688edb3 Update 2 files
- /data/scripts/lib/turretgenerator.lua
- /data/scripts/lib/weapongenerator.lua
2023-08-28 20:07:43 +00:00
Slava
0880b82677 Update 6 files
- /data/scripts/lib/galaxy.lua
- /data/scripts/lib/inventoryitemprice.lua
- /data/scripts/lib/turretgenerator.lua
- /data/scripts/lib/turretingredients.lua
- /data/scripts/lib/weapongenerator.lua
- /data/scripts/lib/weapontype.lua
2023-08-28 18:50:20 +00:00
11 changed files with 698 additions and 422 deletions

2
.gitattributes vendored
View File

@@ -4,4 +4,4 @@ CHANGELOG export-ignore
.gitlab-ci.yml export-ignore
.git export-ignore
.vs export-ignore
.gitignore exsport-ignore
.gitignore export-ignore

View File

@@ -1,153 +1,138 @@
# ========== C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua ==========
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
# ========== \data\scripts\lib\turretgenerator.lua ==========
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "SmartCannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "Weapon Prefix"
msgid "Ionized"
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Ionized SmartCannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "SmartCannon"
msgstr "Умная пушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Heavy Cannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Diffusor"
msgid "Cumulative Heavy Cannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Diffuser"
msgstr ""
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Hookgun"
msgstr ""
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "HiveLauncher"
msgstr ""
# ========== C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua ==========
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
# ========== \data\scripts\lib\weapongenerator.lua ==========
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "SmartCannon"
msgstr "Умная пушка"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "SmartCannon"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Heavy Cannon"
msgstr "Тяжелая Пушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Cumulative"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Heavy Cannon"
msgstr "Тяжелая Пушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Diffuser"
msgstr "Диффузор"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Diffuser"
msgstr "Диффузор"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Harpoon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Harpoon"
msgstr ""
# ========== C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua ==========
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type"
msgid "Smart Сannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type"
msgid "Heavy Cannon"
msgstr "Тяжелая Пушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type"
msgid "Diffuser"
msgstr "Диффузор"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type"
msgid "Hookgun"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Hookgun"
msgstr ""
# ========== C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua ==========
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "HiveLauncher"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "HiveLauncher"
msgstr ""
# ========== \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua ==========
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "WPE Turrets"
msgstr "Расширенный пак оружия"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Intro"
msgstr "Вступление"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "In this part of the encyclopedia you will find a description of the turrets from the Weapon Pack Extended mod.\n\nI recommend using turret models from the collection in the workshop."
msgstr "В этой части энциклопедии вы найдете описание турелей из мода Weapon Pack Extended. \n\nЯ рекомендую использовать модели турелей из коллекции в мастерской"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "Autocannon"
msgstr "Автопушка"
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "SmartCannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "A lightweight version of the classic cannon.\n\nCompared to conventional cannons:\n+ Increased rate of fire (x2)\n+ Increased projectile speed (x1.5)\n+ A little more damage on the shield (10% - 15%)\n+ Can be equipped with homing missiles.\n- Less damage (x0.75)\n- Shorter damage range (x0.8)"
msgstr "Облегченная версия классической пушки.\n\nПо сравнению с обычными пушками:\n+ Увеличенная скорострельность (x2)\n+ Увеличенная скорость полета снаряда (x1.5)\n+ Немного больший урон по щиту (10% - 15%)\n+ Может оснащаться самонаводящимися ракетами.\n- Меньший урон (x0.75)\n- Меньшая дальность поражения (x0.8)."
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Heavy Cannon"
msgstr "Тяжелая Пушка"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "The cannon of the main caliber. It shoots with heavy explosive shells, the hit of which can displace the enemy ship.\n\n+ High damage\n+ High projectile speed\n+ When hit, push the opponent\n+ Also can have a penetration\n- Low rate of fire\n- Occupies many slots\n- Big size\n- Requires more crew"
msgstr "Пушка главного калибра. Стреляет тяжелыми разрывными снарядами, попадание которых может смести вражеский корабль.\n\n+ Высокий урон\n+ Высокая скорость снаряда\n+ При попадании в цель толкает противника\n+ Также может иметь пробитие\n- Низкая скорострельность\n- Занимает много слотов\n- Большие размеры\n- Требует больше экипажа"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Energy diffuser"
msgstr "Энегретический диффузор"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Short range combat weapon. Does not cause damage to the hull, but extremely effectively destroys shields. Requires civil slots.\n\nShield Damage x20"
msgstr "Боевое оружие малой дальности. Не наносит повреждений корпусу, но чрезвычайно эффективно разрушает щиты. Требует гражданских слотов.\n\nУрон по щитам x20"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Hookgun"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Short range combat weapon. Does not cause damage to the shield, but extremely effectively to attrac. Requires 2 gunners slots.\n May have penetration\n"
msgstr ""
# ========== old ==========
# msgctxt "Weapon Type"
# msgid "Auto Сannon"
# msgstr "Автопушка"
# msgctxt "Weapon Prefix"
# msgid "Cumulative Heavy Cannon"
# msgstr "Кумулятивная тяжелая пушка"

View File

@@ -0,0 +1,138 @@
# ========== \data\scripts\lib\turretgenerator.lua ==========
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "SmartCannon"
msgstr ""
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Ionized SmartCannon"
msgstr ""
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Heavy Cannon"
msgstr ""
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Cumulative Heavy Cannon"
msgstr ""
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Diffuser"
msgstr ""
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "Hookgun"
msgstr ""
#: \data\scripts\lib\turretgenerator.lua:
msgctxt "weapon name"
msgid "HiveLauncher"
msgstr ""
# ========== \data\scripts\lib\weapongenerator.lua ==========
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "SmartCannon"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "SmartCannon"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Heavy Cannon"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Diffuser"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Diffuser"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Hookgun"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Hookgun"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Name"
msgid "HiveLauncher"
msgstr ""
#: \data\scripts\lib\weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "HiveLauncher"
msgstr ""
# ========== \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua ==========
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "WPE Turrets"
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Intro"
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "In this part of the encyclopedia you will find a description of the turrets from the Weapon Pack Extended mod.\n\nI recommend using turret models from the collection in the workshop."
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "SmartCannon"
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "A lightweight version of the classic cannon.\n\nCompared to conventional cannons:\n+ Increased rate of fire (x2)\n+ Increased projectile speed (x1.5)\n+ A little more damage on the shield (10% - 15%)\n+ Can be equipped with homing missiles.\n- Less damage (x0.75)\n- Shorter damage range (x0.8)"
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Heavy Cannon"
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "The cannon of the main caliber. It shoots with heavy explosive shells, the hit of which can displace the enemy ship.\n\n+ High damage\n+ High projectile speed\n+ When hit, push the opponent\n+ Also can have a penetration\n- Low rate of fire\n- Occupies many slots\n- Big size\n- Requires more crew"
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Energy diffuser"
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Short range combat weapon. Does not cause damage to the hull, but extremely effectively destroys shields. Requires civil slots.\n\nShield Damage x20"
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Hookgun"
msgstr ""
#: \data\scripts\player\ui\encyclopedia\chapters\wpeturrets.lua:
msgctxt ""
msgid "Short range combat weapon. Does not cause damage to the shield, but extremely effectively to attrac. Requires 2 gunners slots.\n May have penetration\n"
msgstr ""

View File

@@ -1,5 +1,6 @@
weaponProbabilities[WeaponType.SmartCannon] = {d = 0.65, p = 2.0}
weaponProbabilities[WeaponType.HeavyCannon] = {d = 0.6, p = 1.0}
weaponProbabilities[WeaponType.Diffuser] = {d = 0.6, p = 1.0}
weaponProbabilities[WeaponType.Hookgun] = {d = 0.6, p = 1.0}
weaponProbabilities[WeaponType.SmartCannon] = {d = 0.65, p = 2.0}
weaponProbabilities[WeaponType.HeavyCannon] = {d = 0.6, p = 1.0}
weaponProbabilities[WeaponType.Diffuser] = {d = 0.6, p = 1.0}
weaponProbabilities[WeaponType.Hookgun] = {d = 0.6, p = 1.0}
weaponProbabilities[WeaponType.HiveLauncher] = {d = 0.6, p = 1.0} -- TODO Подсмотреть у ванильных ракетниц

View File

@@ -1,5 +1,6 @@
valueWeights[WeaponType.SmartCannon ] = 2
valueWeights[WeaponType.HeavyCannon ] = 2.5
valueWeights[WeaponType.Diffuser ] = 1.7
valueWeights[WeaponType.Hookgun ] = 1.5
valueWeights[WeaponType.SmartCannon ] = 2
valueWeights[WeaponType.HeavyCannon ] = 2.5
valueWeights[WeaponType.Diffuser ] = 1.7
valueWeights[WeaponType.Hookgun ] = 1.5
valueWeights[WeaponType.HiveLauncher] = 2

View File

@@ -1,266 +1,352 @@
scales[WeaponType.SmartCannon] = {
{from = 0, to = 28, size = 1.0, usedSlots = 2},
{from = 29, to = 38, size = 2.0, usedSlots = 3},
{from = 39, to = 49, size = 3.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level
{from = 50, to = 52, size = 4.0, usedSlots = 5},
}
scales[WeaponType.HeavyCannon] = {
{from = 0, to = 28, size = 3.0, usedSlots = 4},
{from = 29, to = 38, size = 4.0, usedSlots = 5},
{from = 39, to = 49, size = 5.0, usedSlots = 6},
--dummy for cooaxial, add 1 to size and level
{from = 50, to = 52, size = 5, usedSlots = 6},
}
scales[WeaponType.Diffuser] = {
{from = 0, to = 46, size = 1.0, usedSlots = 2},
{from = 47, to = 50, size = 2.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level
{from = 51, to = 52, size = 3.0, usedSlots = 6},
}
scales[WeaponType.Hookgun] = {
{from = 0, to = 46, size = 1.0, usedSlots = 2},
{from = 47, to = 50, size = 2.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level
{from = 51, to = 52, size = 3.0, usedSlots = 6},
}
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.SmartCannon] = {
{specialty = Specialty.HighDamage, probability = 0.2},
{specialty = Specialty.HighFireRate, probability = 0.3},
{specialty = Specialty.HighRange, probability = 0.7},
-- {specialty = Specialty.HighHullDamage, probability = 0.5},
-- {specialty = Specialty.LessCoolingTime, probability = 0.4},
}
else
possibleSpecialties[WeaponType.SmartCannon] = {
Specialty.HighDamage,
Specialty.HighFireRate,
Specialty.HighRange,
Specialty.HighHullDamage,
Specialty.LessCoolingTime,
}
end
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.HeavyCannon] = {
{specialty = Specialty.HighDamage, probability = 0.2},
{specialty = Specialty.HighRange, probability = 0.35},
{specialty = Specialty.HighFireRate, probability = 0.3},
-- {specialty = Specialty.HighHullDamage, probability = 0.2},
-- {specialty = Specialty.HighShieldDamage, probability = 0.2},
-- {specialty = Specialty.LessCoolingTime, probability = 0.2}
}
else
possibleSpecialties[WeaponType.HeavyCannon] = {
Specialty.HighDamage,
Specialty.HighFireRate,
Specialty.HighRange,
Specialty.HighHullDamage,
Specialty.HighShieldDamage,
Specialty.LessCoolingTime,
}
end
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.Diffuser] = {
{specialty = Specialty.HighDamage, probability = 0.3},
{specialty = Specialty.HighRange, probability = 0.3},
-- {specialty = Specialty.FasterRechargeTime, probability = 0.6},
}
else
possibleSpecialties[WeaponType.Diffuser] = {
Specialty.HighDamage,
Specialty.HighRange,
Specialty.FasterRechargeTime,
}
end
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.Hookgun] = {
{specialty = Specialty.HighDamage, probability = 0.3},
{specialty = Specialty.HighRange, probability = 0.3},
-- {specialty = Specialty.FasterRechargeTime, probability = 0.6},
}
else
possibleSpecialties[WeaponType.Hookgun] = {
Specialty.HighDamage,
Specialty.HighRange,
Specialty.FasterRechargeTime,
}
end
function TurretGenerator.generateSmartCannonTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
-- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew, CrewMan(CrewProfessionType.Gunner))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 4)
local weapon = WeaponGenerator.generateSmartCannon(rand, dps, tech, material, rarity)
weapon.fireDelay = weapon.fireDelay * numWeapons
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local shootingTime = 25 * rand:getFloat(0.8, 1.2)
local coolingTime = 15 * rand:getFloat(0.8, 1.2)
TurretGenerator.createStandardCooling(result, coolingTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.SmartCannon, tech, 0.6)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.SmartCannon)
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "SmartCannon /* weapon name*/"%_T
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial], e.g. Enduring Dual Coaxial Plasmatic Tri-R-Mining Laser T-F */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
local specType = 1
if specType > 0 then
weapon.prefix = "Ionized /* Weapon Prefix*/"%_t
weapon.shieldPenetration = 1
end
return result
end
generatorFunction[WeaponType.SmartCannon] = TurretGenerator.generateSmartCannonTurret
function TurretGenerator.generateHeavyCannonTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
-- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew*2, CrewMan(CrewProfessionType.Gunner))
crew:add(requiredCrew, CrewMan(CrewProfessionType.Repair))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 4)
local weapon = WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
weapon.fireDelay = weapon.fireDelay * numWeapons
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local shootingTime = 25 * rand:getFloat(0.8, 1.2)
local coolingTime = 20 * rand:getFloat(0.8, 1.2)
TurretGenerator.createStandardCooling(result, coolingTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.HeavyCannon, tech, 0.6)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.HeavyCannon)
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "Heavy Cannon /* weapon name*/"%_T
local Pen = rand:getInt(0, rarity.value)
if Pen > 0 then
weapon.blockPenetration = Pen
weapon.prefix = "Cumulative /* Weapon Prefix*/"%_t
end
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial], e.g. Enduring Dual Coaxial Plasmatic Tri-R-Mining Laser T-F */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
end
generatorFunction[WeaponType.HeavyCannon] = TurretGenerator.generateHeavyCannonTurret
function TurretGenerator.generateDiffuserTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
-- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew, CrewMan(CrewProfessionType.Gunner))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 2)
local weapon = WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
weapon.damage = weapon.damage / numWeapons
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local rechargeTime = 20 * rand:getFloat(0.8, 1.2)
local shootingTime = 15 * rand:getFloat(0.8, 1.2)
TurretGenerator.createBatteryChargeCooling(result, rechargeTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.Diffuser, tech, 0.75)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.Diffuser)
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "Diffusor /* weapon name*/"%_T
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Energy)
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial], e.g. Enduring Dual Coaxial Plasmatic Tri-R-Mining Laser T-F */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
end
generatorFunction[WeaponType.Diffuser] = TurretGenerator.generateDiffuserTurret
function TurretGenerator.generateHookgunTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
-- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew*2, CrewMan(CrewProfessionType.Gunner))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 2)
local weapon = WeaponGenerator.generateHookgun(rand, dps, tech, material, rarity)
weapon.damage = weapon.damage / numWeapons
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local rechargeTime = 4 * rand:getFloat(0.8, 1.2)
local shootingTime = 2 * rand:getFloat(0.8, 1.2)
TurretGenerator.createBatteryChargeCooling(result, rechargeTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.Hookgun, tech, 0.75)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.Hookgun)
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "Hookgun /* weapon name*/"%_T
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial], e.g. Enduring Dual Coaxial Plasmatic Tri-R-Mining Laser T-F */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
end
generatorFunction[WeaponType.Hookgun] = TurretGenerator.generateHookgunTurret
scales[WeaponType.SmartCannon] = {
{from = 0, to = 28, size = 1.0, usedSlots = 2},
{from = 29, to = 38, size = 1,5, usedSlots = 3},
{from = 39, to = 49, size = 2.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level
{from = 50, to = 52, size = 4.0, usedSlots = 5},
}
scales[WeaponType.HeavyCannon] = { -- TODO уточнить размеры
{from = 0, to = 28, size = 3.0, usedSlots = 4},
{from = 29, to = 38, size = 4.0, usedSlots = 5},
{from = 39, to = 49, size = 5.0, usedSlots = 6},
--dummy for cooaxial, add 1 to size and level
{from = 50, to = 52, size = 5, usedSlots = 6},
}
scales[WeaponType.Diffuser] = {-- TODO проверить возможность спавна с определенной дистанции, Уточнить размеры
{from = 0, to = 46, size = 1.0, usedSlots = 2},
{from = 47, to = 50, size = 2.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level
{from = 51, to = 52, size = 3.0, usedSlots = 6},
}
scales[WeaponType.Hookgun] = {
{from = 0, to = 46, size = 1.0, usedSlots = 2},
{from = 47, to = 50, size = 2.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level
{from = 51, to = 52, size = 4.0, usedSlots = 6},
}
scales[WeaponType.HiveLauncher] = { -- TODO Увеличить разнообразие размеров6
{from = 0, to = 46, size = 1.0, usedSlots = 2},
{from = 47, to = 50, size = 2.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level
{from = 51, to = 52, size = 3.0, usedSlots = 6},
}
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.SmartCannon] = {
{specialty = Specialty.HighDamage, probability = 0.2},
{specialty = Specialty.HighFireRate, probability = 0.3},
{specialty = Specialty.HighRange, probability = 0.7},
-- {specialty = Specialty.HighHullDamage, probability = 0.5},
-- {specialty = Specialty.LessCoolingTime, probability = 0.4},
}
else
possibleSpecialties[WeaponType.SmartCannon] = {
Specialty.HighDamage,
Specialty.HighFireRate,
Specialty.HighRange,
Specialty.HighHullDamage,
Specialty.LessCoolingTime,
}
end
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.HeavyCannon] = {
{specialty = Specialty.HighDamage, probability = 0.2},
{specialty = Specialty.HighRange, probability = 0.35},
{specialty = Specialty.HighFireRate, probability = 0.3},
-- {specialty = Specialty.HighHullDamage, probability = 0.2},
-- {specialty = Specialty.HighShieldDamage, probability = 0.2},
-- {specialty = Specialty.LessCoolingTime, probability = 0.2}
}
else
possibleSpecialties[WeaponType.HeavyCannon] = {
Specialty.HighDamage,
Specialty.HighFireRate,
Specialty.HighRange,
Specialty.HighHullDamage,
Specialty.HighShieldDamage,
Specialty.LessCoolingTime,
}
end
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.Diffuser] = {
{specialty = Specialty.HighDamage, probability = 0.3},
{specialty = Specialty.HighRange, probability = 0.3},
-- {specialty = Specialty.FasterRechargeTime, probability = 0.6},
}
else
possibleSpecialties[WeaponType.Diffuser] = {
Specialty.HighDamage,
Specialty.HighRange,
Specialty.FasterRechargeTime,
}
end
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.Hookgun] = {
{specialty = Specialty.HighDamage, probability = 0.3},
{specialty = Specialty.HighRange, probability = 0.3},
-- {specialty = Specialty.FasterRechargeTime, probability = 0.6},
}
else
possibleSpecialties[WeaponType.Hookgun] = {
Specialty.HighDamage,
Specialty.HighRange,
Specialty.FasterRechargeTime,
}
end
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.HiveLauncher] = {
{specialty = Specialty.HighDamage, probability = 0.3},
{specialty = Specialty.HighRange, probability = 0.3},
-- {specialty = Specialty.FasterRechargeTime, probability = 0.6},
}
else
possibleSpecialties[WeaponType.HiveLauncher] = {
Specialty.HighDamage,
Specialty.HighRange,
Specialty.FasterRechargeTime,
}
end
function TurretGenerator.generateSmartCannonTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
-- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew, CrewMan(CrewProfessionType.Gunner))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 4)
local weapon = WeaponGenerator.generateSmartCannon(rand, dps, tech, material, rarity)
weapon.fireDelay = weapon.fireDelay * numWeapons
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local shootingTime = 25 * rand:getFloat(0.8, 1.2)
local coolingTime = 15 * rand:getFloat(0.8, 1.2)
TurretGenerator.createStandardCooling(result, coolingTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.SmartCannon, tech, 0.6)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.SmartCannon)
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "SmartCannon /* weapon name*/"%_T
local specType = 1
if specType > 0 then
name = "Ionized SmartCannon /* weapon name*/"%_T
weapon.shieldPenetration = 1
end
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial], e.g. Enduring Dual Coaxial Plasmatic Tri-R-Mining Laser T-F */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
end
generatorFunction[WeaponType.SmartCannon] = TurretGenerator.generateSmartCannonTurret
function TurretGenerator.generateHeavyCannonTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
-- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew*2, CrewMan(CrewProfessionType.Gunner))
crew:add(requiredCrew, CrewMan(CrewProfessionType.Repair))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 4)
local weapon = WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
weapon.fireDelay = weapon.fireDelay * numWeapons
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local shootingTime = 25 * rand:getFloat(0.8, 1.2)
local coolingTime = 20 * rand:getFloat(0.8, 1.2)
TurretGenerator.createStandardCooling(result, coolingTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.HeavyCannon, tech, 0.6)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.HeavyCannon)
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "Heavy Cannon /* weapon name*/"%_T
local Pen = rand:getInt(0, rarity.value)
if Pen > 0 then
weapon.blockPenetration = Pen
name = "Cumulative Heavy Cannon /* weapon name*/"%_T
end
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial], e.g. Enduring Dual Coaxial Plasmatic Tri-R-Mining Laser T-F */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
end
generatorFunction[WeaponType.HeavyCannon] = TurretGenerator.generateHeavyCannonTurret
function TurretGenerator.generateDiffuserTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
-- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew, CrewMan(CrewProfessionType.Gunner))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 2)
local weapon = WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
weapon.damage = weapon.damage / numWeapons
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local rechargeTime = 20 * rand:getFloat(0.8, 1.2)
local shootingTime = 15 * rand:getFloat(0.8, 1.2)
TurretGenerator.createBatteryChargeCooling(result, rechargeTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.Diffuser, tech, 0.75)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.Diffuser)
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "Diffuser /* weapon name*/"%_T
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Energy)
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial], e.g. Enduring Dual Coaxial Plasmatic Tri-R-Mining Laser T-F */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
end
generatorFunction[WeaponType.Diffuser] = TurretGenerator.generateDiffuserTurret
function TurretGenerator.generateHookgunTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
-- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew*2, CrewMan(CrewProfessionType.Gunner))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 2)
local weapon = WeaponGenerator.generateHookgun(rand, dps, tech, material, rarity)
weapon.damage = weapon.damage / numWeapons
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local rechargeTime = 4 * rand:getFloat(0.8, 1.2)
local shootingTime = 2 * rand:getFloat(0.8, 1.2)
TurretGenerator.createBatteryChargeCooling(result, rechargeTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.Hookgun, tech, 0.75)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.Hookgun)
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "Hookgun /* weapon name*/"%_T
local specType = 0
if specType >0 then
else
end
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial], e.g. Enduring Dual Coaxial Plasmatic Tri-R-Mining Laser T-F */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
end
generatorFunction[WeaponType.Hookgun] = TurretGenerator.generateHookgunTurret
function TurretGenerator.generateHiveLauncherTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate()
-- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
crew:add(requiredCrew*2, CrewMan(CrewProfessionType.Gunner))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 2)
local weapon = WeaponGenerator.generateHiveLauncher(rand, dps, tech, material, rarity)
weapon.damage = weapon.damage / numWeapons
-- attach weapons to turret
local positions = {}
if rand:getBool() then
table.insert(positions, vec3(0, 0.3, 0))
else
table.insert(positions, vec3(0.4, 0.3, 0))
table.insert(positions, vec3(-0.4, 0.3, 0))
end
-- attach
for _, position in pairs(positions) do
weapon.localPosition = position * result.size
result:addWeapon(weapon)
end
local shootingTime = 20 * rand:getFloat(0.8, 1.2)
local coolingTime = 15 * rand:getFloat(0.8, 1.2)
TurretGenerator.createStandardCooling(result, coolingTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.RocketLauncher, tech, 0.6, coaxialAllowed)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.RocketLauncher)
result.slotType = TurretSlotType.Armed
result:updateStaticStats()
local name = "HiveLauncher /* weapon name*/"%_T
local specType = 0
if specType >0 then
else
end
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial], e.g. Enduring Dual Coaxial Plasmatic Tri-R-Mining Laser T-F */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
end
generatorFunction[WeaponType.HiveLauncher] = TurretGenerator.generateHiveLauncherTurret

View File

@@ -1,45 +1,56 @@
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 = "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,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
}
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 = "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 = "Steel", amount = 20, investable = 10, minimum = 20,},
{name = "Metal Plate", amount = 8, investable = 10, minimum = 10,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
}
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 = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
}
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 = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
}
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 = "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,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
}
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 = "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 = "Steel", amount = 20, investable = 10, minimum = 20,},
{name = "Metal Plate", amount = 8, investable = 10, minimum = 10,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
}
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 = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
}
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 = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
}
TurretIngredients[WeaponType.HiveLauncher] =
{
{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 = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
}

View File

@@ -46,6 +46,7 @@ end
generatorFunction[WeaponType.SmartCannon] = WeaponGenerator.generateSmartCannon
function WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
local weapon = Weapon()
weapon:setProjectile()
@@ -91,6 +92,7 @@ end
generatorFunction[WeaponType.HeavyCannon] = WeaponGenerator.generateHeavyCannon
function WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
local weapon = Weapon()
weapon:setBeam()
@@ -192,3 +194,54 @@ function WeaponGenerator.generateHookgun(rand, dps, tech, material, rarity)
end
generatorFunction[WeaponType.Hookgun] = WeaponGenerator.generateHookgun
function WeaponGenerator.generateHiveLauncher(rand, dps, tech, material, rarity)
local weapon = Weapon()
weapon:setProjectile()
local fireDelay = rand:getFloat(2.2, 3)
local reach = rand:getFloat(1300, 1800)
local damage = dps * fireDelay
local speed = rand:getFloat(150, 200)
local existingTime = reach / speed
weapon.fireDelay = fireDelay
weapon.reach = reach
weapon.appearanceSeed = rand:getInt()
weapon.seeker = true
weapon.appearance = WeaponAppearance.RocketLauncher
weapon.name = "HiveLauncher /* Weapon Name*/"%_t
weapon.prefix = "HiveLauncher /* Weapon Prefix*/"%_t
weapon.icon = "data/textures/icons/hivelauncher.png"
weapon.sound = "cannon"
weapon.accuracy = 0.5 - rand:getFloat(0, 0.02)
weapon.damage = damage
weapon.damageType = DamageType.Physical
weapon.impactParticles = ImpactParticles.Explosion
weapon.impactSound = 1
weapon.impactExplosion = true
weapon.psize = rand:getFloat(0.2, 0.4)
weapon.pmaximumTime = existingTime
weapon.pvelocity = speed
weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1)
weapon.pshape = ProjectileShape.Rocket
if rand:test(1) then
local shots = {6, 10, 14, 18, 22, 26, 30}
weapon.shotsFired = shots[rand:getInt(1, #shots)]
weapon.damage = (weapon.damage * 1.5) / weapon.shotsFired
end
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
weapon.recoil = weapon.damage * 2
weapon.explosionRadius = math.sqrt(weapon.damage * 5)
return weapon
end
generatorFunction[WeaponType.HiveLauncher] = WeaponGenerator.generateHiveLauncher

View File

@@ -1,5 +1,6 @@
WeaponTypes.addType("SmartCannon", "Smart Сannon /* Weapon Type */"%_t, armed)
WeaponTypes.addType("HeavyCannon", "Heavy Cannon /* Weapon Type */"%_t, armed)
WeaponTypes.addType("Diffuser", "Diffuser /* Weapon Type */"%_t, armed)
WeaponTypes.addType("Hookgun", "Hookgun /* Weapon Type */"%_t, armed)
WeaponTypes.addType("SmartCannon", "Smart Сannon /* Weapon Type */"%_t, armed)
WeaponTypes.addType("HeavyCannon", "Heavy Cannon /* Weapon Type */"%_t, armed)
WeaponTypes.addType("Diffuser", "Diffuser /* Weapon Type */"%_t, armed)
WeaponTypes.addType("Hookgun", "Hookgun /* Weapon Type */"%_t, armed)
WeaponTypes.addType("HiveLauncher", "HiveLauncher /* Weapon Type */"%_t, armed)

View File

@@ -14,7 +14,7 @@ category.chapters =
},
{
title = "Autocannon"%_t,
title = "Smartcannon"%_t,
picture = "data/textures/slide/3.png",
text = "A lightweight version of the classic cannon.\n\nCompared to conventional cannons:\n+ Increased rate of fire (x2)\n+ Increased projectile speed (x1.5)\n+ A little more damage on the shield (10% - 15%)\n+ Can be equipped with homing missiles.\n- Less damage (x0.75)\n- Shorter damage range (x0.8)"%_t,
},

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB