Compare commits

...

19 Commits

Author SHA1 Message Date
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
bacon
050a642982 - retexture 2023-08-28 01:09:23 +03:00
bacon
6a8483efa5 Merge branch 'HEAD' of git@gl.beaconborn.ru:bacon/weapon-project-extended.git 2023-08-28 00:52:40 +03:00
bacon
e8f8d9d195 - retexture
- rebalance
2023-08-28 00:48:41 +03:00
Alex
eec8c10de4 Update file modinfo.lua 2023-08-27 21:38:49 +00:00
Alex
f51f351e06 Update file modinfo.lua 2023-08-27 21:38:08 +00:00
bacon
7d60ec6da3 Merge remote-tracking branch 'origin/main' 2023-08-27 20:02:13 +03:00
bacon
1eec0fba6c up 2023-08-27 20:01:07 +03:00
Slava
b137aec60a Update file weapongenerator.lua 2023-08-27 17:00:17 +00:00
bacon
f3deba9b30 fixed 2023-08-27 19:46:14 +03:00
Slava
ca00911fd7 Update 2 files
- /data/localization/ru.po
- /data/scripts/lib/weapongenerator.lua
2023-08-27 16:41:44 +00:00
Slava
3b34148f77 Updated balance 2023-08-27 16:32:58 +00:00
Slava
cae212f5a9 Merge branch 'alive-main-patch-16741' into 'main'
Upload New File

See merge request bacon/weapon-project-extended!1
2023-08-27 16:31:14 +00:00
Alex
3988151ccf Upload New File 2023-08-27 16:29:28 +00:00
Slava
94eff683a6 Update README.md 2023-08-27 06:42:45 +00:00
Slava
8ba224680f Update README.md 2023-08-26 23:39:09 +00:00
Slava
5f3dac6eef Update file modinfo.lua 2023-08-26 23:38:28 +00:00
Slava
03dd9529e0 Update .gitlab-ci.yml file 2023-08-26 23:37:32 +00:00
Slava
abd1186280 Update .gitlab-ci.yml file 2023-08-26 23:27:42 +00:00
17 changed files with 773 additions and 539 deletions

View File

@@ -6,15 +6,20 @@ release_job:
stage: release # It only runs when *both* jobs in the test stage complete successfully. stage: release # It only runs when *both* jobs in the test stage complete successfully.
image: registry.gitlab.com/gitlab-org/release-cli:latest image: registry.gitlab.com/gitlab-org/release-cli:latest
rules: only:
- if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH" # - if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
- if: $CI_COMMIT_TAG refs:
when: never - main
- if: - ^tags
changes: changes:
- data/**/* - ^README.md
- modinfo.lua - ^CHANGELOG
- thumb.png - ^.gitattribute
- ^.gitignore
- ^.gitlab-ci.yml
- data/**/*
- modinfo.lua
- thumb.png
script: script:
- echo "Release WPE 2.0_$CI_COMMIT_SHORT_SHA" - echo "Release WPE 2.0_$CI_COMMIT_SHORT_SHA"

View File

@@ -1,7 +1,5 @@
[![pipeline status](http://gl.beaconborn.ru/bacon/weapon-project-extended/badges/main/pipeline.svg)](http://gl.beaconborn.ru/bacon/weapon-project-extended/-/commits/main) [![pipeline status](http://gl.beaconborn.ru/bacon/weapon-project-extended/badges/main/pipeline.svg)](http://gl.beaconborn.ru/bacon/weapon-project-extended/-/commits/main) [![Latest Release](http://gl.beaconborn.ru/bacon/weapon-project-extended/-/badges/release.svg)](http://gl.beaconborn.ru/bacon/weapon-project-extended/-/releases)
# weapon project extended # weapon project extended 2.0
## Getting started ## Getting started
@@ -11,4 +9,4 @@ That mod for Avorion original writed [Alive!](https://steamcommunity.com/id/CasK
* Hookgun * Hookgun
* Smart-cannon * Smart-cannon
* Heavy Cannon * Heavy Cannon
* Diffuser * Diffuser

View File

@@ -1,92 +1,153 @@
# ========== /mods/WPE2/data/scripts/lib/weapongenerator.lua ========== # ========== C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua ==========
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua: #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "Weapon Name" msgctxt "weapon name"
msgid "Smart Cannon" msgid "SmartCannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "Weapon Prefix"
msgid "Ionized"
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 "Умная пушка" msgstr "Умная пушка"
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua: #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "Weapon Prefix" msgctxt "weapon name"
msgid "Smart Cannon" msgid "Heavy Cannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Diffusor"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Hookgun"
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:
msgctxt "Weapon Name"
msgid "SmartCannon"
msgstr "Умная пушка" msgstr "Умная пушка"
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua: #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name" msgctxt "Weapon Name"
msgid "Heavy Cannon" msgid "Heavy Cannon"
msgstr "Тяжелая Пушка" msgstr "Тяжелая Пушка"
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua: #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix" msgctxt "Weapon Prefix"
msgid "Cumulative Heavy Cannon" msgid "Cumulative"
msgstr "Кумулятивная тяжелая пушка" msgstr ""
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua: #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix" msgctxt "Weapon Prefix"
msgid "Heavy Cannon" msgid "Heavy Cannon"
msgstr "Тяжелая Пушка" msgstr "Тяжелая Пушка"
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua: #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name" msgctxt "Weapon Name"
msgid "Diffuser" msgid "Diffuser"
msgstr "Диффузор" msgstr "Диффузор"
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua: #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix" msgctxt "Weapon Prefix"
msgid "Diffuser" msgid "Diffuser"
msgstr "Диффузор" msgstr "Диффузор"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Harpoon"
msgstr ""
# ========== /mods/WPE2/data/scripts/lib/weapontype.lua ========== #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
#: /mods/WPE2/data/scripts/lib/weapontype.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" msgctxt "Weapon Type"
msgid "Auto Сannon" msgid "Smart Сannon"
msgstr "Автопушка" msgstr ""
#: /mods/WPE2/data/scripts/lib/weapontype.lua: #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type" msgctxt "Weapon Type"
msgid "Heavy Cannon" msgid "Heavy Cannon"
msgstr "Тяжелая Пушка" msgstr "Тяжелая Пушка"
#: /mods/WPE2/data/scripts/lib/weapontype.lua: #: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type" msgctxt "Weapon Type"
msgid "Diffuser" msgid "Diffuser"
msgstr "Диффузор" msgstr "Диффузор"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type"
msgid "Hookgun"
msgstr ""
# ========== /mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua ==========
#: /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 ==========
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "WPE Turrets" msgid "WPE Turrets"
msgstr "Расширенный пак оружия" msgstr "Расширенный пак оружия"
#: /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:
msgid "Intro" msgid "Intro"
msgstr "Вступление" msgstr "Вступление"
#: /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:
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." 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 "В этой части энциклопедии вы найдете описание турелей из мода Weapon Pack Extended. \n\nЯ рекомендую использовать модели турелей из коллекции в мастерской"
#: /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:
msgid "Autocannon" msgid "Autocannon"
msgstr "Автопушка" msgstr "Автопушка"
#: /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:
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)" 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 "Облегченная версия классической пушки.\n\nПо сравнению с обычными пушками:\n+ Увеличенная скорострельность (x2)\n+ Увеличенная скорость полета снаряда (x1.5)\n+ Немного больший урон по щиту (10% - 15%)\n+ Может оснащаться самонаводящимися ракетами.\n- Меньший урон (x0.75)\n- Меньшая дальность поражения (x0.8)."
#: /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:
msgid "Heavy Cannon" msgid "Heavy Cannon"
msgstr "Тяжелая Пушка" msgstr "Тяжелая Пушка"
#: /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:
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" 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 "Пушка главного калибра. Стреляет тяжелыми разрывными снарядами, попадание которых может смести вражеский корабль.\n\n+ Высокий урон\n+ Высокая скорость снаряда\n+ При попадании в цель толкает противника\n+ Также может иметь пробитие\n- Низкая скорострельность\n- Занимает много слотов\n- Большие размеры\n- Требует больше экипажа"
#: /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:
msgid "Energy diffuser" msgid "Energy diffuser"
msgstr "Энегретический диффузор" msgstr "Энегретический диффузор"
#: /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:
msgid "Short range combat weapon. Does not cause damage to the hull, but extremely effectively destroys shields. Requires civil slots.\n\nShield Damage x20" 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 "Боевое оружие малой дальности. Не наносит повреждений корпусу, но чрезвычайно эффективно разрушает щиты. Требует гражданских слотов.\n\nУрон по щитам x20"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "Hookgun"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
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

@@ -1,5 +1,6 @@
weaponProbabilities[WeaponType.Hookgun] = {d = 0.65, p = 2.0} weaponProbabilities[WeaponType.SmartCannon] = {d = 0.65, p = 2.0}
weaponProbabilities[WeaponType.HeavyCannon] = {d = 0.6, p = 1.0} weaponProbabilities[WeaponType.HeavyCannon] = {d = 0.6, p = 1.0}
weaponProbabilities[WeaponType.Diffuser] = {d = 0.6, p = 1.0} weaponProbabilities[WeaponType.Diffuser] = {d = 0.6, p = 1.0}
weaponProbabilities[WeaponType.Harpoon] = {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.SmartCannon ] = 2
valueWeights[WeaponType.HeavyCannon ] = 1.7 valueWeights[WeaponType.HeavyCannon ] = 2.5
valueWeights[WeaponType.Diffuser ] = 2.1 valueWeights[WeaponType.Diffuser ] = 1.7
valueWeights[WeaponType.Hookgun ] = 2.1 valueWeights[WeaponType.Hookgun ] = 1.5
valueWeights[WeaponType.HiveLauncher] = 2

View File

@@ -1,230 +1,341 @@
scales[WeaponType.SmartCannon] = { scales[WeaponType.SmartCannon] = {
{from = 0, to = 28, size = 1.0, usedSlots = 2}, {from = 0, to = 28, size = 1.0, usedSlots = 2},
{from = 29, to = 38, size = 2.0, usedSlots = 3}, {from = 29, to = 38, size = 2.0, usedSlots = 3},
{from = 39, to = 49, size = 3.0, usedSlots = 4}, {from = 39, to = 49, size = 3.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level --dummy for cooaxial, add 1 to size and level
{from = 50, to = 52, size = 4.0, usedSlots = 5}, {from = 50, to = 52, size = 4.0, usedSlots = 5},
} }
scales[WeaponType.HeavyCannon] = { scales[WeaponType.HeavyCannon] = {
{from = 0, to = 28, size = 3.0, usedSlots = 4}, {from = 0, to = 28, size = 3.0, usedSlots = 4},
{from = 29, to = 38, size = 4.0, usedSlots = 5}, {from = 29, to = 38, size = 4.0, usedSlots = 5},
{from = 39, to = 49, size = 5.0, usedSlots = 6}, {from = 39, to = 49, size = 5.0, usedSlots = 6},
--dummy for cooaxial, add 1 to size and level --dummy for cooaxial, add 1 to size and level
{from = 50, to = 52, size = 5, usedSlots = 6}, {from = 50, to = 52, size = 5, usedSlots = 6},
} }
scales[WeaponType.Diffuser] = { scales[WeaponType.Diffuser] = {
{from = 0, to = 46, size = 1.0, usedSlots = 2}, {from = 0, to = 46, size = 1.0, usedSlots = 2},
{from = 47, to = 50, size = 2.0, usedSlots = 4}, {from = 47, to = 50, size = 2.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level --dummy for cooaxial, add 1 to size and level
{from = 51, to = 52, size = 3.0, usedSlots = 6}, {from = 51, to = 52, size = 3.0, usedSlots = 6},
} }
scales[WeaponType.Hookgun] = { scales[WeaponType.Hookgun] = {
{from = 0, to = 46, size = 1.0, usedSlots = 2}, {from = 0, to = 46, size = 1.0, usedSlots = 2},
{from = 47, to = 50, size = 2.0, usedSlots = 4}, {from = 47, to = 50, size = 2.0, usedSlots = 4},
--dummy for cooaxial, add 1 to size and level --dummy for cooaxial, add 1 to size and level
{from = 51, to = 52, size = 3.0, usedSlots = 6}, {from = 51, to = 52, size = 3.0, usedSlots = 6},
} }
if GameVersion() >= Version(0, 31, 0) then scales[WeaponType.HiveLauncher] = {
possibleSpecialties[WeaponType.SmartCannon] = { {from = 0, to = 46, size = 1.0, usedSlots = 2},
{specialty = Specialty.HighDamage, probability = 0.2}, {from = 47, to = 50, size = 2.0, usedSlots = 4},
{specialty = Specialty.HighFireRate, probability = 0.3}, --dummy for cooaxial, add 1 to size and level
{specialty = Specialty.HighRange, probability = 0.7}, {from = 51, to = 52, size = 3.0, usedSlots = 6},
-- {specialty = Specialty.HighHullDamage, probability = 0.5}, }
-- {specialty = Specialty.LessCoolingTime, probability = 0.4},
} if GameVersion() >= Version(0, 31, 0) then
else possibleSpecialties[WeaponType.SmartCannon] = {
possibleSpecialties[WeaponType.SmartCannon] = { {specialty = Specialty.HighDamage, probability = 0.2},
Specialty.HighDamage, {specialty = Specialty.HighFireRate, probability = 0.3},
Specialty.HighFireRate, {specialty = Specialty.HighRange, probability = 0.7},
Specialty.HighRange, -- {specialty = Specialty.HighHullDamage, probability = 0.5},
Specialty.HighHullDamage, -- {specialty = Specialty.LessCoolingTime, probability = 0.4},
Specialty.LessCoolingTime, }
} else
end possibleSpecialties[WeaponType.SmartCannon] = {
Specialty.HighDamage,
if GameVersion() >= Version(0, 31, 0) then Specialty.HighFireRate,
possibleSpecialties[WeaponType.HeavyCannon] = { Specialty.HighRange,
{specialty = Specialty.HighDamage, probability = 0.2}, Specialty.HighHullDamage,
{specialty = Specialty.HighRange, probability = 0.35}, Specialty.LessCoolingTime,
{specialty = Specialty.HighFireRate, probability = 0.3}, }
-- {specialty = Specialty.HighHullDamage, probability = 0.2}, end
-- {specialty = Specialty.HighShieldDamage, probability = 0.2},
-- {specialty = Specialty.LessCoolingTime, probability = 0.2} if GameVersion() >= Version(0, 31, 0) then
} possibleSpecialties[WeaponType.HeavyCannon] = {
else {specialty = Specialty.HighDamage, probability = 0.2},
possibleSpecialties[WeaponType.HeavyCannon] = { {specialty = Specialty.HighRange, probability = 0.35},
Specialty.HighDamage, {specialty = Specialty.HighFireRate, probability = 0.3},
Specialty.HighFireRate, -- {specialty = Specialty.HighHullDamage, probability = 0.2},
Specialty.HighRange, -- {specialty = Specialty.HighShieldDamage, probability = 0.2},
Specialty.HighHullDamage, -- {specialty = Specialty.LessCoolingTime, probability = 0.2}
Specialty.HighShieldDamage, }
Specialty.LessCoolingTime, else
} possibleSpecialties[WeaponType.HeavyCannon] = {
end Specialty.HighDamage,
Specialty.HighFireRate,
if GameVersion() >= Version(0, 31, 0) then Specialty.HighRange,
possibleSpecialties[WeaponType.Diffuser] = { Specialty.HighHullDamage,
{specialty = Specialty.HighDamage, probability = 0.3}, Specialty.HighShieldDamage,
{specialty = Specialty.HighRange, probability = 0.3}, Specialty.LessCoolingTime,
-- {specialty = Specialty.FasterRechargeTime, probability = 0.6}, }
} end
else
possibleSpecialties[WeaponType.Diffuser] = { if GameVersion() >= Version(0, 31, 0) then
Specialty.HighDamage, possibleSpecialties[WeaponType.Diffuser] = {
Specialty.HighRange, {specialty = Specialty.HighDamage, probability = 0.3},
Specialty.FasterRechargeTime, {specialty = Specialty.HighRange, probability = 0.3},
} -- {specialty = Specialty.FasterRechargeTime, probability = 0.6},
end }
else
if GameVersion() >= Version(0, 31, 0) then possibleSpecialties[WeaponType.Diffuser] = {
possibleSpecialties[WeaponType.Hookgun] = { Specialty.HighDamage,
{specialty = Specialty.HighDamage, probability = 0.3}, Specialty.HighRange,
{specialty = Specialty.HighRange, probability = 0.3}, Specialty.FasterRechargeTime,
-- {specialty = Specialty.FasterRechargeTime, probability = 0.6}, }
} end
else
possibleSpecialties[WeaponType.Hookgun] = { if GameVersion() >= Version(0, 31, 0) then
Specialty.HighDamage, possibleSpecialties[WeaponType.Hookgun] = {
Specialty.HighRange, {specialty = Specialty.HighDamage, probability = 0.3},
Specialty.FasterRechargeTime, {specialty = Specialty.HighRange, probability = 0.3},
} -- {specialty = Specialty.FasterRechargeTime, probability = 0.6},
end }
else
function TurretGenerator.generateSmartCannonTurret(rand, dps, tech, material, rarity) possibleSpecialties[WeaponType.Hookgun] = {
local result = TurretTemplate() Specialty.HighDamage,
Specialty.HighRange,
-- generate turret Specialty.FasterRechargeTime,
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps) }
local crew = Crew() end
crew:add(requiredCrew, CrewMan(CrewProfessionType.Gunner))
result.crew = crew if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.HiveLauncher] = {
-- generate weapons {specialty = Specialty.HighDamage, probability = 0.3},
local numWeapons = rand:getInt(1, 4) {specialty = Specialty.HighRange, probability = 0.3},
-- {specialty = Specialty.FasterRechargeTime, probability = 0.6},
local weapon = WeaponGenerator.generateSmartCannon(rand, dps, tech, material, rarity) }
weapon.fireDelay = weapon.fireDelay * numWeapons else
possibleSpecialties[WeaponType.HiveLauncher] = {
-- attach weapons to turret Specialty.HighDamage,
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons) Specialty.HighRange,
Specialty.FasterRechargeTime,
local shootingTime = 25 * rand:getFloat(0.8, 1.2) }
local coolingTime = 15 * rand:getFloat(0.8, 1.2) end
TurretGenerator.createStandardCooling(result, coolingTime, shootingTime)
function TurretGenerator.generateSmartCannonTurret(rand, dps, tech, material, rarity)
TurretGenerator.scale(rand, result, WeaponType.SmartCannon, tech, 0.6) local result = TurretTemplate()
TurretGenerator.addSpecialties(rand, result, WeaponType.SmartCannon)
-- generate turret
result:updateStaticStats() local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
return result crew:add(requiredCrew, CrewMan(CrewProfessionType.Gunner))
end result.crew = crew
generatorFunction[WeaponType.SmartCannon] = TurretGenerator.generateSmartCannonTurret -- generate weapons
local numWeapons = rand:getInt(1, 4)
function TurretGenerator.generateHeavyCannonTurret(rand, dps, tech, material, rarity) local weapon = WeaponGenerator.generateSmartCannon(rand, dps, tech, material, rarity)
local result = TurretTemplate() weapon.fireDelay = weapon.fireDelay * numWeapons
-- generate turret -- attach weapons to turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps) TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local crew = Crew()
crew:add(requiredCrew*2, CrewMan(CrewProfessionType.Gunner)) local shootingTime = 25 * rand:getFloat(0.8, 1.2)
crew:add(requiredCrew, CrewMan(CrewProfessionType.Repair)) local coolingTime = 15 * rand:getFloat(0.8, 1.2)
result.crew = crew TurretGenerator.createStandardCooling(result, coolingTime, shootingTime)
-- generate weapons TurretGenerator.scale(rand, result, WeaponType.SmartCannon, tech, 0.6)
local numWeapons = rand:getInt(1, 4) local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.SmartCannon)
local weapon = WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity) result.slotType = TurretSlotType.Armed
weapon.fireDelay = weapon.fireDelay * numWeapons result:updateStaticStats()
-- attach weapons to turret local name = "SmartCannon /* weapon name*/"%_T
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
local specType = 1
local shootingTime = 25 * rand:getFloat(0.8, 1.2) if specType > 0 then
local coolingTime = 20 * rand:getFloat(0.8, 1.2) name = "Ionized SmartCannon/* weapon name*/"%_T
TurretGenerator.createStandardCooling(result, coolingTime, shootingTime) weapon.shieldPenetration = 1
end
TurretGenerator.scale(rand, result, WeaponType.HeavyCannon, tech, 0.6)
TurretGenerator.addSpecialties(rand, result, WeaponType.HeavyCannon) local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
result:updateStaticStats() 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 return result
end end
generatorFunction[WeaponType.HeavyCannon] = TurretGenerator.generateHeavyCannonTurret generatorFunction[WeaponType.SmartCannon] = TurretGenerator.generateSmartCannonTurret
function TurretGenerator.generateDiffuserTurret(rand, dps, tech, material, rarity) function TurretGenerator.generateHeavyCannonTurret(rand, dps, tech, material, rarity)
local result = TurretTemplate() local result = TurretTemplate()
-- generate turret -- generate turret
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps) local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew() local crew = Crew()
crew:add(requiredCrew, CrewMan(CrewProfessionType.Gunner)) crew:add(requiredCrew*2, CrewMan(CrewProfessionType.Gunner))
result.crew = crew crew:add(requiredCrew, CrewMan(CrewProfessionType.Repair))
result.crew = crew
-- generate weapons
local numWeapons = rand:getInt(1, 2) -- generate weapons
local numWeapons = rand:getInt(1, 4)
local weapon = WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
weapon.damage = weapon.damage / numWeapons local weapon = WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
weapon.fireDelay = weapon.fireDelay * numWeapons
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, 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) local shootingTime = 25 * rand:getFloat(0.8, 1.2)
TurretGenerator.createBatteryChargeCooling(result, rechargeTime, shootingTime) local coolingTime = 20 * rand:getFloat(0.8, 1.2)
TurretGenerator.createStandardCooling(result, coolingTime, shootingTime)
TurretGenerator.scale(rand, result, WeaponType.Diffuser, tech, 0.75) TurretGenerator.scale(rand, result, WeaponType.HeavyCannon, tech, 0.6)
TurretGenerator.addSpecialties(rand, result, WeaponType.Diffuser) local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.HeavyCannon)
result:updateStaticStats() result.slotType = TurretSlotType.Armed
result:updateStaticStats()
return result
end local name = "Heavy Cannon /* weapon name*/"%_T
generatorFunction[WeaponType.Diffuser] = TurretGenerator.generateDiffuserTurret local Pen = rand:getInt(0, rarity.value)
if Pen > 0 then
weapon.blockPenetration = Pen
function TurretGenerator.generateHookgunTurret(rand, dps, tech, material, rarity) name = "Cumulative Heavy Cannon /* weapon name*/"%_T
local result = TurretTemplate() end
-- generate turret local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps) 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 crew = Crew()
crew:add(requiredCrew*2, CrewMan(CrewProfessionType.Gunner)) return result
result.crew = crew end
-- generate weapons generatorFunction[WeaponType.HeavyCannon] = TurretGenerator.generateHeavyCannonTurret
local numWeapons = rand:getInt(1, 2)
local weapon = WeaponGenerator.generateHookgun(rand, dps, tech, material, rarity) function TurretGenerator.generateDiffuserTurret(rand, dps, tech, material, rarity)
weapon.damage = weapon.damage / numWeapons local result = TurretTemplate()
-- attach weapons to turret -- generate turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons) local requiredCrew = TurretGenerator.dpsToRequiredCrew(dps)
local crew = Crew()
local rechargeTime = 4 * rand:getFloat(0.8, 1.2) crew:add(requiredCrew, CrewMan(CrewProfessionType.Gunner))
local shootingTime = 2 * rand:getFloat(0.8, 1.2) result.crew = crew
TurretGenerator.createBatteryChargeCooling(result, rechargeTime, shootingTime)
-- generate weapons
local numWeapons = rand:getInt(1, 2)
TurretGenerator.scale(rand, result, WeaponType.Hookgun, tech, 0.75)
TurretGenerator.addSpecialties(rand, result, WeaponType.Hookgun) local weapon = WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
weapon.damage = weapon.damage / numWeapons
result:updateStaticStats()
-- attach weapons to turret
return result TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
end
local rechargeTime = 20 * rand:getFloat(0.8, 1.2)
generatorFunction[WeaponType.Hookgun] = TurretGenerator.generateHookgunTurret 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 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
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.HiveLauncher, tech, 0.75)
local specialties = TurretGenerator.addSpecialties(rand, result, WeaponType.HiveLauncher)
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] = TurretIngredients[WeaponType.SmartCannon] =
{ {
{name = "Servo", amount = 15, investable = 10, minimum = 5, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage}, {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 = "Warhead", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "High Pressure Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "reach", }, {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 = "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 = "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", amount = 8, investable = 10, minimum = 3,},
{name = "Steel Tube", amount = 5, 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}, -- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
} }
TurretIngredients[WeaponType.SmartCannon] = TurretIngredients[WeaponType.HeavyCannon] =
{ {
{name = "Servo", amount = 8, investable = 8, minimum = 4, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage}, {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 = "Warhead", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "High Pressure Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "reach", }, {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", amount = 5, investable = 10, minimum = 3, weaponStat = "damage", investFactor = 0.2,},
{name = "Steel", amount = 20, investable = 10, minimum = 20,}, {name = "Steel", amount = 20, investable = 10, minimum = 20,},
{name = "Metal Plate", amount = 8, investable = 10, minimum = 10,}, {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}, -- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
} }
TurretIngredients[WeaponType.Diffuser] = TurretIngredients[WeaponType.Diffuser] =
{ {
{name = "Plasma Cell", amount = 10, investable = 10, minimum = 10, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage}, {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 = "High Capacity Lens", amount = 5, investable = 6, minimum = 1, weaponStat = "reach", },
{name = "Energy Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "damage", }, {name = "Energy Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "Steel", amount = 20, investable = 0, minimum = 20,}, {name = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,}, {name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,}, {name = "Silver", amount = 5, investable = 0, minimum = 5,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat}, -- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
} }
TurretIngredients[WeaponType.Hookgun] = TurretIngredients[WeaponType.Hookgun] =
{ {
{name = "Plasma Cell", amount = 10, investable = 10, minimum = 10, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage}, {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 = "High Capacity Lens", amount = 5, investable = 6, minimum = 1, weaponStat = "reach", },
{name = "Energy Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "damage", }, {name = "Energy Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "Steel", amount = 20, investable = 0, minimum = 20,}, {name = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,}, {name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,}, {name = "Silver", amount = 5, investable = 0, minimum = 5,},
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat}, -- {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

@@ -1,201 +1,246 @@
function WeaponGenerator.generateSmartCannon(rand, dps, tech, material, rarity) function WeaponGenerator.generateSmartCannon(rand, dps, tech, material, rarity)
local weapon = Weapon() local weapon = Weapon()
weapon:setProjectile() weapon:setProjectile()
dps = dps * 0.75 dps = dps * 0.75
local fireDelay = rand:getFloat(1.5, 2.5)*0.5 local fireDelay = rand:getFloat(1.5, 2.5)*0.5
local reach = rand:getFloat(1100, 1500)*0.7 local reach = rand:getFloat(1100, 1500)*0.7
local damage = dps * fireDelay local damage = dps * fireDelay
local speed = rand:getFloat(300, 400)*2 local speed = rand:getFloat(300, 400)*2
local existingTime = (reach / speed)*1.2 local existingTime = (reach / speed)*1.2
weapon.fireDelay = fireDelay weapon.fireDelay = fireDelay
weapon.reach = reach weapon.reach = reach
weapon.appearanceSeed = rand:getInt() weapon.appearanceSeed = rand:getInt()
weapon.seeker = rand:test(1 / 2) weapon.seeker = 1
weapon.appearance = WeaponAppearance.Cannon weapon.appearance = WeaponAppearance.Cannon
weapon.name = "Smart Cannon /* Weapon Name*/"%_t weapon.name = "SmartCannon /* Weapon Name*/"%_t
weapon.prefix = "Smart Cannon /* Weapon Prefix*/"%_t weapon.prefix = "SmartCannon /* Weapon Prefix*/"%_t
weapon.icon = "data/textures/icons/autocannon.png" weapon.icon = "data/textures/icons/smartcannon.png"
weapon.sound = "cannon" weapon.sound = "cannon"
weapon.accuracy = 0.99 - rand:getFloat(0, 0.03) weapon.accuracy = 0.99 - rand:getFloat(0, 0.03)
weapon.damage = damage weapon.damage = damage
weapon.damageType = DamageType.Physical weapon.damageType = DamageType.Physical
weapon.impactParticles = ImpactParticles.Explosion weapon.impactParticles = ImpactParticles.Explosion
weapon.shieldDamageMultiplicator=1.1 + rarity.value * 0.1 weapon.shieldDamageMultiplicator=1.1 + rarity.value * 0.1
weapon.impactSound = 1 weapon.impactSound = 1
weapon.impactExplosion = true weapon.impactExplosion = true
weapon.psize = rand:getFloat(0.2, 0.5)
weapon.pmaximumTime = existingTime weapon.psize = rand:getFloat(0.2, 0.5)
weapon.pvelocity = speed weapon.pmaximumTime = existingTime
weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1) weapon.pvelocity = speed
weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1)
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
-- these have to be assigned after the weapon was adjusted since the damage might be changed
weapon.recoil = weapon.damage * 20 * 0.75 -- these have to be assigned after the weapon was adjusted since the damage might be changed
weapon.explosionRadius = math.sqrt(weapon.damage * 6) weapon.recoil = weapon.damage * 20 * 0.75
weapon.explosionRadius = math.sqrt(weapon.damage * 6)
return weapon
end return weapon
end
generatorFunction[WeaponType.SmartCannon] = WeaponGenerator.generateSmartCannon
generatorFunction[WeaponType.SmartCannon] = WeaponGenerator.generateSmartCannon
function WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
local weapon = Weapon()
weapon:setProjectile() function WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
local weapon = Weapon()
dps = dps * 1.85 weapon:setProjectile()
local fireDelay = rand:getFloat(1.5, 2.0)*1.7
local reach = rand:getFloat(1100, 1500)*1.2 dps = dps * 1.85
local damage = dps * fireDelay local fireDelay = rand:getFloat(1.5, 2.0)*1.7
local speed = rand:getFloat(600, 1000)*1.4 local reach = rand:getFloat(1100, 1500)*1.2
local existingTime = (reach / speed)*1.1 local damage = dps * fireDelay
local speed = rand:getFloat(600, 1000)*1.4
weapon.fireDelay = fireDelay local existingTime = (reach / speed)*1.1
weapon.reach = reach
weapon.appearanceSeed = rand:getInt() weapon.fireDelay = fireDelay
weapon.appearance = WeaponAppearance.Bolter weapon.reach = reach
weapon.name = "Heavy Cannon /* Weapon Name*/"%_t weapon.appearanceSeed = rand:getInt()
weapon.icon = "data/textures/icons/heavycannon.png" weapon.appearance = WeaponAppearance.Bolter
weapon.sound = "cannon" weapon.name = "Heavy Cannon /* Weapon Name*/"%_t
weapon.accuracy = 0.95 - rand:getFloat(0, 0.02) weapon.icon = "data/textures/icons/heavycannon.png"
weapon.sound = "cannon"
weapon.damage = damage weapon.accuracy = 0.95 - rand:getFloat(0, 0.02)
weapon.damageType = DamageType.Physical
weapon.impactParticles = ImpactParticles.Explosion weapon.damage = damage
weapon.impactSound = 1 weapon.damageType = DamageType.Physical
weapon.impactExplosion = true weapon.impactParticles = ImpactParticles.Explosion
weapon.otherForce = dps*math.max(1, rarity.value)*89*5 weapon.impactSound = 1
weapon.impactExplosion = true
weapon.otherForce = dps*math.max(1, rarity.value)*89*5
weapon.psize = rand:getFloat(0.2, 0.5)
weapon.pmaximumTime = existingTime
weapon.pvelocity = speed weapon.psize = rand:getFloat(0.2, 0.5)
weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1) weapon.pmaximumTime = existingTime
weapon.pvelocity = speed
local Pen = rand:getInt(0, rarity.value) weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1)
if Pen > 0 then
weapon.blockPenetration = Pen WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
weapon.prefix = "Cumulative Heavy Cannon /* Weapon Prefix*/"%_t
else -- these have to be assigned after the weapon was adjusted since the damage might be changed
weapon.prefix = "Heavy Cannon /* Weapon Prefix*/"%_t weapon.recoil = weapon.damage * 50
end weapon.explosionRadius = math.sqrt(weapon.damage * 7)
return weapon
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity) end
-- these have to be assigned after the weapon was adjusted since the damage might be changed generatorFunction[WeaponType.HeavyCannon] = WeaponGenerator.generateHeavyCannon
weapon.recoil = weapon.damage * 50
weapon.explosionRadius = math.sqrt(weapon.damage * 7)
function WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
return weapon local weapon = Weapon()
end weapon:setBeam()
generatorFunction[WeaponType.HeavyCannon] = WeaponGenerator.generateHeavyCannon local fireDelay = rand:getFloat(1, 2.5)*0.5
local reach = rand:getFloat(950, 1400)
local damage = dps * fireDelay
function WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
local weapon = Weapon() weapon.fireDelay = fireDelay
weapon:setBeam() weapon.appearanceSeed = rand:getInt()
weapon.reach = reach
local fireDelay = rand:getFloat(1, 2.5)*0.5 weapon.continuousBeam = false
local reach = rand:getFloat(950, 1400) weapon.appearance = WeaponAppearance.Tesla
local damage = dps * fireDelay weapon.name = "Diffuser /* Weapon Name*/"%_t
weapon.prefix = "Diffuser /* Weapon Prefix*/"%_t
weapon.fireDelay = fireDelay weapon.icon = "data/textures/icons/diffuser.png"
weapon.appearanceSeed = rand:getInt() weapon.sound = "railgun"
weapon.reach = reach weapon.accuracy = 0.99 - rand:getFloat(0, 0.02)
weapon.continuousBeam = false
weapon.appearance = WeaponAppearance.Tesla weapon.damage = damage
weapon.name = "Diffuser /* Weapon Name*/"%_t weapon.damageType = DamageType.Energy
weapon.prefix = "Diffuser /* Weapon Prefix*/"%_t weapon.impactParticles = ImpactParticles.Energy
weapon.icon = "data/textures/icons/diffuser.png" weapon.shieldDamageMultiplicator = 20 + rand:getFloat(0, 4) + rarity.value * 3
weapon.sound = "railgun" weapon.stoneDamageMultiplicator = 0
weapon.accuracy = 0.99 - rand:getFloat(0, 0.02) weapon.hullDamageMultiplicator = 0
weapon.impactSound = 1
weapon.damage = damage
weapon.damageType = DamageType.Energy weapon.blength = weapon.reach
weapon.impactParticles = ImpactParticles.Energy weapon.bshape = BeamShape.Lightning
weapon.shieldDamageMultiplicator = 20 + rand:getFloat(0, 4) + rarity.value * 3 weapon.bwidth = 0.5
weapon.stoneDamageMultiplicator = 0 weapon.bauraWidth = 3
weapon.hullDamageMultiplicator = 0 weapon.banimationSpeed = 0
weapon.impactSound = 1 weapon.banimationAcceleration = 0
weapon.bshapeSize = 13
weapon.blength = weapon.reach
weapon.bshape = BeamShape.Lightning -- shades of blue
weapon.bwidth = 0.5 weapon.bouterColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.5, 1), rand:getFloat(0.1, 0.5))
weapon.bauraWidth = 3 weapon.binnerColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.1, 0.5), 1)
weapon.banimationSpeed = 0
weapon.banimationAcceleration = 0 WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
weapon.bshapeSize = 13
weapon.recoil = weapon.damage * 5
-- shades of blue
weapon.bouterColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.5, 1), rand:getFloat(0.1, 0.5)) return weapon
weapon.binnerColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.1, 0.5), 1) end
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity) generatorFunction[WeaponType.Diffuser] = WeaponGenerator.generateDiffuser
weapon.recoil = weapon.damage * 5
return weapon function WeaponGenerator.generateHookgun(rand, dps, tech, material, rarity)
end local weapon = Weapon()
weapon:setBeam()
generatorFunction[WeaponType.Diffuser] = WeaponGenerator.generateDiffuser
local fireDelay = rand:getFloat(0.2, 0.5)
local reach = rand:getFloat(500, 900)
local damage = dps * fireDelay
function WeaponGenerator.generateHookgun(rand, dps, tech, material, rarity)
local weapon = Weapon() weapon.fireDelay = fireDelay
weapon:setBeam() weapon.appearanceSeed = rand:getInt()
weapon.reach = reach
local fireDelay = rand:getFloat(0.2, 0.5) weapon.continuousBeam = true
local reach = rand:getFloat(500, 900) weapon.appearance = WeaponAppearance.Cannon
local damage = dps * fireDelay weapon.name = "Hookgun /* Weapon Name*/"%_t
weapon.prefix = "Hookgun /* Weapon Prefix*/"%_t
weapon.fireDelay = fireDelay weapon.icon = "data/textures/icons/hookgun.png"
weapon.appearanceSeed = rand:getInt() weapon.sound = "cannon"
weapon.reach = reach weapon.accuracy = 0.99 - rand:getFloat(0, 0.02)
weapon.continuousBeam = true
weapon.appearance = WeaponAppearance.Cannon weapon.blockPenetration = rand:getInt(0, rarity.value) + 2
weapon.name = "Hookgun /* Weapon Name*/"%_t
weapon.prefix = "Hookgun /* Weapon Prefix*/"%_t
weapon.icon = "data/textures/icons/harpoon.png" weapon.otherForce = -500 * dps * rarity.value
weapon.sound = "cannon"
weapon.accuracy = 0.99 - rand:getFloat(0, 0.02) weapon.damage = damage
weapon.damageType = DamageType.Physical
weapon.blockPenetration = rand:getInt(0, rarity.value) + 2 weapon.impactParticles = ImpactParticles.Physical
weapon.shieldDamageMultiplicator = 0.75
weapon.stoneDamageMultiplicator = 1.2
weapon.otherForce = -500 * dps * rarity.value weapon.hullDamageMultiplicator = 1
weapon.impactSound = 1
weapon.damage = damage
weapon.damageType = DamageType.Physical weapon.blength = weapon.reach
weapon.impactParticles = ImpactParticles.Physical weapon.bshape = BeamShape.Swirly
weapon.shieldDamageMultiplicator = 0.75 weapon.bwidth = 0.5
weapon.stoneDamageMultiplicator = 1.2 weapon.bauraWidth = 3
weapon.hullDamageMultiplicator = 1 weapon.banimationSpeed = 0
weapon.impactSound = 1 weapon.banimationAcceleration = 0
weapon.bshapeSize = 13
weapon.blength = weapon.reach
weapon.bshape = BeamShape.Swirly -- shades of blue
weapon.bwidth = 0.5 weapon.bouterColor = ColorHSV(0, 0, rand:getFloat(0.35, 0.65))
weapon.bauraWidth = 3 weapon.binnerColor = ColorHSV(1, 1, rand:getFloat(0.35, 0.65))
weapon.banimationSpeed = 0
weapon.banimationAcceleration = 0 WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
weapon.bshapeSize = 13
-- shades of blue return weapon
weapon.bouterColor = ColorHSV(0, 0, rand:getFloat(0.35, 0.65)) end
weapon.binnerColor = ColorHSV(1, 1, rand:getFloat(0.35, 0.65))
generatorFunction[WeaponType.Hookgun] = WeaponGenerator.generateHookgun
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
function WeaponGenerator.generateHiveLauncher(rand, dps, tech, material, rarity)
local weapon = Weapon()
return weapon weapon:setBeam()
end
local fireDelay = rand:getFloat(0.2, 0.5)
generatorFunction[WeaponType.Hookgun] = WeaponGenerator.generateHookgun local reach = rand:getFloat(500, 900)
local damage = dps * fireDelay
weapon.fireDelay = fireDelay
weapon.appearanceSeed = rand:getInt()
weapon.reach = reach
weapon.continuousBeam = true
weapon.appearance = WeaponAppearance.Cannon
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.99 - rand:getFloat(0, 0.02)
weapon.blockPenetration = rand:getInt(0, rarity.value) + 2
weapon.otherForce = -500 * dps * rarity.value
weapon.damage = damage
weapon.damageType = DamageType.Physical
weapon.impactParticles = ImpactParticles.Physical
weapon.shieldDamageMultiplicator = 0.75
weapon.stoneDamageMultiplicator = 1.2
weapon.hullDamageMultiplicator = 1
weapon.impactSound = 1
weapon.blength = weapon.reach
weapon.bshape = BeamShape.Swirly
weapon.bwidth = 0.5
weapon.bauraWidth = 3
weapon.banimationSpeed = 0
weapon.banimationAcceleration = 0
weapon.bshapeSize = 13
-- shades of blue
weapon.bouterColor = ColorHSV(0, 0, rand:getFloat(0.35, 0.65))
weapon.binnerColor = ColorHSV(1, 1, rand:getFloat(0.35, 0.65))
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
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("SmartCannon", "Smart Сannon /* Weapon Type */"%_t, armed)
WeaponTypes.addType("HeavyCannon", "Heavy Cannon /* Weapon Type */"%_t, armed) WeaponTypes.addType("HeavyCannon", "Heavy Cannon /* Weapon Type */"%_t, armed)
WeaponTypes.addType("Diffuser", "Diffuser /* Weapon Type */"%_t, armed) WeaponTypes.addType("Diffuser", "Diffuser /* Weapon Type */"%_t, armed)
WeaponTypes.addType("Hookgun", "Hookgun /* Weapon Type */"%_t, armed) WeaponTypes.addType("Hookgun", "Hookgun /* Weapon Type */"%_t, armed)
WeaponTypes.addType("HiveLauncher", "HiveLauncher /* Weapon Type */"%_t, armed)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -10,17 +10,17 @@ meta =
name = "Weapon_Pack_Extended2", name = "Weapon_Pack_Extended2",
-- Title of your mod that will be displayed to players -- Title of your mod that will be displayed to players
title = "Weapon Pack Extended2", title = "Weapon Pack Extended - Reloaded",
-- Description of your mod that will be displayed to players -- Description of your mod that will be displayed to players
description = "Adds some new weapon to the game.", description = "Adds some new weapon to the game.",
-- Insert all authors into this list -- Insert all authors into this list
authors = {"Alive!"}, authors = {"Casimir Kepler, Baconborn, OmenOs"},
-- Version of your mod, should be in format 1.0.0 (major.minor.patch) or 1.0 (major.minor) -- Version of your mod, should be in format 1.0.0 (major.minor.patch) or 1.0 (major.minor)
-- This will be used to check for unmet dependencies or incompatibilities -- This will be used to check for unmet dependencies or incompatibilities
version = "1.3", version = "2.0",
-- If your mod requires dependencies, enter them here. The game will check that all dependencies given here are met. -- If your mod requires dependencies, enter them here. The game will check that all dependencies given here are met.
-- Possible attributes: -- Possible attributes:
@@ -52,5 +52,5 @@ meta =
saveGameAltering = false, saveGameAltering = false,
-- Contact info for other users to reach you in case they have questions -- Contact info for other users to reach you in case they have questions
contact = "https://steamcommunity.com/id/CasKepler2/", contact = "https://steamcommunity.com/id/CasKepler2/", "https://steamcommunity.com/id/baconborn/",
} }