Compare commits

..

57 Commits

Author SHA1 Message Date
Slava
ccfa671f52 Update .gitlab-ci.yml file 2023-08-28 20:46:03 +00:00
Slava
6e6b3aa8a6 Update .gitlab-ci.yml file 2023-08-28 20:05:28 +00:00
Slava
812a652bed Update .gitlab-ci.yml file 2023-08-28 20:04:11 +00:00
Slava
19e0acdf6d Update .gitlab-ci.yml file 2023-08-28 20:02:19 +00:00
Slava
d21c529591 Update .gitlab-ci.yml file 2023-08-28 19:56:23 +00:00
Slava
7d08a6bdfc Update .gitlab-ci.yml file 2023-08-28 19:54:11 +00:00
Slava
83dddbea1e Update .gitlab-ci.yml file 2023-08-28 19:52:59 +00:00
Slava
8c3ff4993b Update .gitlab-ci.yml file 2023-08-28 19:52:33 +00:00
Slava
34d41c4c5b Update .gitlab-ci.yml file 2023-08-28 19:49:30 +00:00
Slava
efce751464 Update .gitlab-ci.yml file 2023-08-28 19:49:01 +00:00
Slava
02a32a81f2 Update .gitlab-ci.yml file 2023-08-28 19:46:01 +00:00
Slava
90c76900e1 Update .gitlab-ci.yml file 2023-08-28 19:44:10 +00:00
Slava
4cb196b579 Update .gitlab-ci.yml file 2023-08-28 19:43:48 +00:00
Slava
30343d47a0 Update .gitlab-ci.yml file 2023-08-28 19:33:58 +00:00
Slava
7410e3f488 Update .gitlab-ci.yml file 2023-08-28 19:25:56 +00:00
Slava
36434648d6 Update .gitlab-ci.yml file 2023-08-28 19:22:19 +00:00
Slava
42c671c3a7 Update .gitlab-ci.yml file 2023-08-28 19:21:27 +00:00
Slava
aa6c42b840 Update .gitlab-ci.yml file 2023-08-28 18:47:34 +00:00
Slava
92e0636354 Update .gitlab-ci.yml file 2023-08-28 18:40:33 +00:00
Slava
f84cc424b1 Update .gitlab-ci.yml file 2023-08-28 18:39:16 +00:00
Slava
1e11687962 Update .gitlab-ci.yml file 2023-08-28 18:31:56 +00:00
Slava
07a05df171 Update .gitlab-ci.yml file 2023-08-28 18:22:08 +00:00
Slava
4c101287bf Update .gitlab-ci.yml file 2023-08-28 18:21:26 +00:00
Slava
a16f0be550 Update .gitlab-ci.yml file 2023-08-28 18:18:42 +00:00
Slava
6915961e99 Update .gitlab-ci.yml file 2023-08-28 18:16:18 +00:00
Slava
1612ba9195 Update .gitlab-ci.yml file 2023-08-28 18:10:57 +00:00
Slava
44fef51edd Update .gitlab-ci.yml file 2023-08-28 18:08:29 +00:00
Slava
946a585ec7 Update .gitlab-ci.yml file 2023-08-28 18:06:37 +00:00
Slava
cd6210888b Update .gitlab-ci.yml file 2023-08-28 18:05:38 +00:00
Slava
ccf5c37ec8 Update .gitlab-ci.yml file 2023-08-28 18:02:50 +00:00
Slava
0edade93c1 Update .gitlab-ci.yml file 2023-08-28 18:00:00 +00:00
Slava
ce80b62b82 Update .gitlab-ci.yml file 2023-08-28 17:56:48 +00:00
Slava
80d1d57d94 Update .gitlab-ci.yml file 2023-08-28 17:55:38 +00:00
Slava
1d21757453 Update .gitlab-ci.yml file 2023-08-28 17:54:10 +00:00
Slava
4644383c73 Update .gitlab-ci.yml file 2023-08-28 17:52:09 +00:00
Slava
a99b373b25 Update .gitlab-ci.yml file 2023-08-28 17:50:52 +00:00
Slava
7cf0b95477 Update .gitlab-ci.yml file 2023-08-28 17:49:32 +00:00
Slava
ae4e872b74 Update .gitlab-ci.yml file 2023-08-28 17:47:04 +00:00
Slava
4e5f0a0f89 Update .gitlab-ci.yml file 2023-08-28 17:45:14 +00:00
Slava
599872b114 Update .gitlab-ci.yml file 2023-08-28 17:42:46 +00:00
Slava
e11ab2dae5 Update .gitlab-ci.yml file 2023-08-28 17:41:46 +00:00
Slava
d46d044e2d Update .gitlab-ci.yml file 2023-08-28 17:40:01 +00:00
Slava
b81d07eb49 Update .gitlab-ci.yml file 2023-08-28 17:39:25 +00:00
Slava
0f744108b0 Update .gitlab-ci.yml file 2023-08-28 17:37:14 +00:00
Slava
e92fa54cac Update .gitlab-ci.yml file 2023-08-28 17:29:00 +00:00
Slava
c4a48cbed4 Update .gitlab-ci.yml file 2023-08-28 17:27:14 +00:00
Slava
cdabe00195 Update .gitlab-ci.yml file 2023-08-28 17:26:59 +00:00
Slava
60c589fb74 Update .gitlab-ci.yml file 2023-08-28 17:26:12 +00:00
Slava
5024ed74d4 Update .gitlab-ci.yml file 2023-08-28 17:26:00 +00:00
Slava
8f1f252601 Update .gitlab-ci.yml file 2023-08-28 17:25:00 +00:00
Slava
927da67587 Update .gitlab-ci.yml file 2023-08-28 17:24:29 +00:00
Slava
ce4627919f Update .gitlab-ci.yml file 2023-08-28 17:20:56 +00:00
Slava
ee48cf94c5 Update .gitlab-ci.yml file 2023-08-28 17:18:37 +00:00
Slava
3f5c906577 Update .gitlab-ci.yml file 2023-08-28 17:16:16 +00:00
Slava
d6450e63c0 Update .gitlab-ci.yml file 2023-08-28 17:15:32 +00:00
Slava
71e17e719b Update .gitlab-ci.yml file 2023-08-28 17:05:46 +00:00
Slava
d5c9874b2b Update .gitlab-ci.yml file 2023-08-28 17:05:33 +00:00
23 changed files with 580 additions and 1037 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 export-ignore
.gitignore exsport-ignore

View File

@@ -1,25 +1,37 @@
stages: # List of stages for jobs, and their order of execution
stages:
- prepare # List of stages for jobs, and their order of execution
- release
image: python:3.10
release_job:
prepare_job:
stage: prepare
script:
- 'pip install requests'
- 'git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gl.beaconborn.ru/bacon/translation-generator.git'
- 'python3 translation-generator/main.py $CI_PROJECT_DIR/WPE-2/data/'
- 'ls -al'
- cat test.txt
release_job:
needs:
- prepare_job
stage: release # It only runs when *both* jobs in the test stage complete successfully.
image: registry.gitlab.com/gitlab-org/release-cli:latest
only:
# - if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
refs:
- main
- testing
- ^tags
changes:
- ^README.md
- ^CHANGELOG
- ^.gitattribute
- ^.gitignore
- ^.gitlab-ci.yml
- data/**/*
- modinfo.lua
- thumb.png
- test.txt
script:
- echo "Release WPE 2.0_$CI_COMMIT_SHORT_SHA"

View File

@@ -1,9 +1,6 @@
[![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 2.0
![Weapon Pack Extended Remastered](thumb.png)
## Getting started
That mod for Avorion original writed [Alive!](https://steamcommunity.com/id/CasKepler2/) for 0.32 and updated by me with him
@@ -13,28 +10,3 @@ That mod for Avorion original writed [Alive!](https://steamcommunity.com/id/CasK
* Smart-cannon
* Heavy Cannon
* Diffuser
### Описание
Возвращение олдсульного мода на сбалансированное оружие!
WPE-Remastered добавляет несколько новых, хорошо сбалансированных для ванильной игры орудий.
В отличии от старой (ого, прошло уже больше 4 лет) версии часть орудий была заменена на новые образцы, а остальные доведены до идеала ( но могут быть отредактированы по отзывам пользователей).
И так, орудия:
Смарт-пушка:
Вариант пушки со снарядами, начиненными всякой электроникой для наведения и уничтожения врага. Да, дороже чем обычно, но поверьте, оно того стоит! [Возможны модификации для пробития щитов и плазменных зарядов]
Тяжелая пушка:
"Большому кораблю нужны большие калибры!" - именно этим девизом руководствовались инженеры разрабатывая данное оружие. Лучший способ доставить противнику **БОЛЬШИЕ** проблемы
Гарпун:
Враг убегает? Не сегодня! Гарпун не даст врагу и шанса улизнуть.
Рассеиватель энергии:
У врага мощный щит? Не проблема! Бюро сверхсовременных разработок нашло решение и этой проблемы: рассеиватель энергии скушает щиты как вкусный тортик (но увы, даже не облизнет корпус).
Сотовые ракетные установки:
Что может быть лучше ракеты? Правильно - много ракет! Пусть по отдельности эти малышки слабы, их рой не оставит врагу и шанса.

View File

@@ -1,137 +1,92 @@
# ========== 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:
msgctxt "weapon name"
msgid "Smart-Cannon"
msgstr "Смарт-Пушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgid " Ionized"
msgstr " Ионизирующая"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "[outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial]"
msgid "%1%%2%%3%%4%%5%%6%%7%"
msgstr "%2%%3%%4%%5%%6%%7%%1%"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgid " Cumulative"
msgstr " Кумулятивное"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/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:
msgctxt "weapon name"
msgid "Mass Driver"
msgstr "Магнитная катапульта"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Mass Warper"
msgstr "Доставщик проблем"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Diffuser"
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/turretgenerator.lua:
msgid " Holding"
msgstr " Удерживающий"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Hive-Launcher"
msgstr "Сотовая ракетная установка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Swarm-Launcher"
msgstr "Роевая ракетная установка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgid ""
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:
# ========== /mods/WPE2/data/scripts/lib/weapongenerator.lua ==========
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Smart-Cannon"
msgstr "Смарт-Пушка"
msgid "Smart Cannon"
msgstr "Умная пушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Smart-Cannon"
msgstr "Смарт-Пушка"
msgid "Smart Cannon"
msgstr "Умная пушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Heavy Cannon"
msgstr "Тяжелое орудие"
msgstr "Тяжелая Пушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Cumulative Heavy Cannon"
msgstr "Кумулятивная тяжелая пушка"
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Heavy Cannon"
msgstr "Тяжелая Пушка"
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Diffuser"
msgstr "Диффузор"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
#: /mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Diffuser"
msgstr "Диффузор"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Hookgun"
msgstr "Гарпун"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Hookgun"
msgstr "Гарпун"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Hive-Launcher"
msgstr "Роевая ракетная установка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Hive-Launcher"
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:
# ========== /mods/WPE2/data/scripts/lib/weapontype.lua ==========
#: /mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type"
msgid "Smart-Сannon"
msgstr "Смарт-Пушка"
msgid "Auto Сannon"
msgstr "Автопушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
#: /mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type"
msgid "Heavy Cannon"
msgstr "Тяжелое орудие"
msgstr "Тяжелая Пушка"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
#: /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 "Гарпун"
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type"
msgid "Hive-Launcher"
msgstr "Роевая ракетная установка"
# ========== /mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua ==========
#: /mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "WPE Turrets"
msgstr "Расширенный пак оружия"
#: /mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "Intro"
msgstr "Вступление"
#: /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."
msgstr "В этой части энциклопедии вы найдете описание турелей из мода Weapon Pack Extended. \n\nЯ рекомендую использовать модели турелей из коллекции в мастерской"
#: /mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "Autocannon"
msgstr "Автопушка"
#: /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)"
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:
msgid "Heavy Cannon"
msgstr "Тяжелая Пушка"
#: /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"
msgstr "Пушка главного калибра. Стреляет тяжелыми разрывными снарядами, попадание которых может смести вражеский корабль.\n\n+ Высокий урон\n+ Высокая скорость снаряда\n+ При попадании в цель толкает противника\n+ Также может иметь пробитие\n- Низкая скорострельность\n- Занимает много слотов\n- Большие размеры\n- Требует больше экипажа"
#: /mods/WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "Energy diffuser"
msgstr "Энегретический диффузор"
#: /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"
msgstr "Боевое оружие малой дальности. Не наносит повреждений корпусу, но чрезвычайно эффективно разрушает щиты. Требует гражданских слотов.\n\nУрон по щитам x20"

View File

@@ -1,183 +0,0 @@
# ========== 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"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/_player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "Intro"
msgstr ""
#: 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."
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/_player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "Smartcannon"
msgstr ""
#: 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)"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/_player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "Heavy Cannon"
msgstr ""
#: 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"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/_player/ui/encyclopedia/chapters/wpeturrets.lua:
msgid "Energy diffuser"
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 hull, but extremely effectively destroys shields. Requires civil slots.\n\nShield Damage x20"
msgstr ""
#: 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 ""
# ========== 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:
msgctxt "weapon name"
msgid "Smart-Cannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgid "Ionized "
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "[outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial]"
msgid "%1%%2%%3%%4%%5%%6%%7%"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgid "Cumulative "
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/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:
msgctxt "weapon name"
msgid "Mass Driver"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Mass Warper"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Diffuser"
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/turretgenerator.lua:
msgid "Stabilizing"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Hive-Launcher"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgctxt "weapon name"
msgid "Swarm-Launcher"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/turretgenerator.lua:
msgid ""
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 "Smart-Cannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Smart-Cannon"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/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 Name"
msgid "Diffuser"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Diffuser"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Hookgun"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Hookgun"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Name"
msgid "Hive-Launcher"
msgstr ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapongenerator.lua:
msgctxt "Weapon Prefix"
msgid "Hive-Launcher"
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 ""
#: C:/Users/riksl/AppData/Roaming/Avorion/mods/WPE2/data/scripts/lib/weapontype.lua:
msgctxt "Weapon Type"
msgid "HiveLauncher"
msgstr ""

View File

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

View File

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

View File

@@ -1,391 +1,230 @@
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] = {
{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 = 6, 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 = 4.0, usedSlots = 6},
}
scales[WeaponType.HiveLauncher] = {
{from = 0, to = 32, size = 1.0, usedSlots = 2},
{from = 33, to = 40, size = 1.5, usedSlots = 3},
{from = 41, 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},
}
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},
}
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},
}
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},
}
else
possibleSpecialties[WeaponType.Hookgun] = {
Specialty.HighDamage,
Specialty.HighRange,
Specialty.FasterRechargeTime,
}
end
if GameVersion() >= Version(0, 31, 0) then
possibleSpecialties[WeaponType.HiveLauncher] = {
{specialty = Specialty.HighShootingTime, probability = 0.2},
{specialty = Specialty.HighDamage, probability = 0.15},
{specialty = Specialty.HighFireRate, probability = 0.15},
{specialty = Specialty.HighRange, probability = 0.25},
{specialty = Specialty.BurstFire, probability = 0.1},
}
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))
crew:add(requiredCrew, CrewMan(CrewProfessionType.Pilot))
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
local specType = rand:getInt(0, 2)
if specType == 1 then
weapon.shieldPenetration = 1
if rand:getInt(0, 1) then
weapon.pcolor = ColorHSV(rand:getFloat(180, 210), 0.8, 0.8)
else
weapon.pcolor = ColorHSV(rand:getFloat(260, 290), 0.8, 0.8)
end
elseif specType == 2 then
weapon.damageType = DamageType.Plasma
weapon.damage = weapon.damage * 0.9
weapon.pcolor = ColorHSV(rand:getFloat(90, 120), 0.7, 1)
end
-- 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 = "Smart-Cannon /* weapon name*/"%_T
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
if specType == 1 then
outerAdjective = " Ionized"%_T
end
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial] */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
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 * 3, 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
local Pen = rand:getInt(0, rarity.value)
if Pen > 0 then
weapon.blockPenetration = Pen
outerAdjective = " Cumulative"%_T
end
if result.size >= 4 then
weapon.psize = weapon.psize * 1.5
weapon.speed = weapon.speed * 2
weapon.reach = weapon.reach * 1.2
weapon.pcolor = ColorHSV(rand:getFloat(10, 45), 0.7, 0.7)
end
if result.size >= 5 then
weapon.psize = weapon.psize * 1.5
weapon.speed = weapon.speed * 2
weapon.reach = weapon.reach * 1.5
weapon.pcolor = ColorHSV(rand:getFloat(10, 45), 0.7, 0.9)
end
-- 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 dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
if result.size >= 4 then
name = "Mass Driver /* weapon name*/"%_T
end
if result.size >= 5 then
name = "Mass Warper /* weapon name*/"%_T
end
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial] */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
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] */"%_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
local spec = rand:getInt(0, 1)
if spec then
weapon.holdingForce = weapon.otherForce * 2
weapon.otherForce = 0
end
-- attach weapons to turret
TurretGenerator.attachWeapons(rand, result, weapon, numWeapons)
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)
if spec then
outerAdjective = " Holding"%_T
end
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial] */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
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 = "Hive-Launcher /* weapon name*/"%_T
if weapon.shotsFired > 20 then
name = "Swarm-Launcher /* weapon name*/"%_T
end
local dmgAdjective, outerAdjective, barrel, multishot, coax, serial = makeTitleParts(rand, specialties, result, DamageType.Physical)
multishot = ""%_T
result.title = Format("%1%%2%%3%%4%%5%%6%%7% /* [outer-adjective][barrel][coax][dmg-adjective][multishot][name][serial] */"%_T, outerAdjective, barrel, coax, dmgAdjective, multishot, name, serial)
return result
end
generatorFunction[WeaponType.HiveLauncher] = TurretGenerator.generateHiveLauncherTurret
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)
TurretGenerator.addSpecialties(rand, result, WeaponType.SmartCannon)
result:updateStaticStats()
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)
TurretGenerator.addSpecialties(rand, result, WeaponType.HeavyCannon)
result:updateStaticStats()
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)
TurretGenerator.addSpecialties(rand, result, WeaponType.Diffuser)
result:updateStaticStats()
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)
TurretGenerator.addSpecialties(rand, result, WeaponType.Hookgun)
result:updateStaticStats()
return result
end
generatorFunction[WeaponType.Hookgun] = TurretGenerator.generateHookgunTurret

View File

@@ -1,51 +1,45 @@
TurretIngredients[WeaponType.SmartCannon] =
{
{name = "Servo", amount = 15, investable = 10, minimum = 5, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
{name = "Processor", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "High Pressure Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "reach", investFactor = 1.5, changeType = StatChanges.Percentage},
{name = "Ammunition M", amount = 2, investable = 4, minimum = 1, weaponStat = "damage", investFactor = 1, changeType = StatChanges.Percentage},
{name = "Targeting Card", amount = 3, investable = 3, minimum = 0, weaponStat = "seeker", investFactor = 1, changeType = StatChanges.Flat},
{name = "Steel", amount = 8, investable = 10, minimum = 3,},
{name = "Steel Tube", amount = 5, investable = 10, minimum = 3,},
}
TurretIngredients[WeaponType.HeavyCannon] =
{
{name = "Servo", amount = 8, investable = 8, minimum = 4, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
{name = "Explosive Charge", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "High Pressure Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "reach", },
{name = "Ammunition L", amount = 5, investable = 10, minimum = 3, weaponStat = "damage", investFactor = 0.2,},
{name = "Steel", amount = 20, investable = 10, minimum = 20,},
{name = "Metal Plate", amount = 8, investable = 10, minimum = 10,},
}
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 = "Industrial Tesla Coil",amount = 2, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Copper", amount = 10, investable = 0, minimum = 10,},
{name = "Silver", amount = 5, investable = 0, minimum = 5,},
}
TurretIngredients[WeaponType.Hookgun] =
{
{name = "Force Generator", amount = 10, investable = 10, minimum = 10, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
{name = "Energy Tube", amount = 5, investable = 6, minimum = 1, weaponStat = "reach", },
{name = "Power Unit", amount = 2, investable = 6, minimum = 1, weaponStat = "damage", },
{name = "Steel", amount = 20, investable = 0, minimum = 20,},
{name = "Conductor", amount = 10, investable = 0, minimum = 10,},
}
TurretIngredients[WeaponType.HiveLauncher] =
{
{name = "Servo", amount = 15, investable = 10, minimum = 5, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
{name = "Rocket", amount = 15, investable = 10, minimum = 15, weaponStat = "damage", investFactor = 0.2, changeType = StatChanges.Percentage},
{name = "High Pressure Tube", amount = 6, investable = 12, minimum = 1, weaponStat = "reach", investFactor = 0.4, changeType = StatChanges.Percentage},
{name = "Fuel", amount = 6, investable = 12, minimum = 1, weaponStat = "reach", investFactor = 0.5, changeType = StatChanges.Percentage},
{name = "Targeting Card", amount = 10, investable = 10, minimum = 0, weaponStat = "seeker", investFactor = 1, changeType = StatChanges.Flat},
{name = "Steel", amount = 8, investable = 10, minimum = 3,},
{name = "Wire", amount = 5, investable = 10, minimum = 3,},
}
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.SmartCannon] =
{
{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},
}

View File

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

View File

@@ -1,6 +1,5 @@
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", "Hive-Launcher /* 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)

View File

@@ -14,7 +14,7 @@ category.chapters =
},
{
title = "Smartcannon"%_t,
title = "Autocannon"%_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,
},

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -10,13 +10,13 @@ meta =
name = "Weapon_Pack_Extended2",
-- Title of your mod that will be displayed to players
title = "Weapon Pack Extended - Reloaded",
title = "Weapon Pack Extended2",
-- Description of your mod that will be displayed to players
description = "Adds some new weapon to the game.",
-- Insert all authors into this list
authors = {"Casimir Kepler, Baconborn, OmenOs"},
authors = {"Alive!"},
-- 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
@@ -52,5 +52,5 @@ meta =
saveGameAltering = false,
-- Contact info for other users to reach you in case they have questions
contact = "https://steamcommunity.com/id/CasKepler2/", "https://steamcommunity.com/id/baconborn/",
contact = "https://steamcommunity.com/id/CasKepler2/",
}

BIN
thumb.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 KiB

After

Width:  |  Height:  |  Size: 45 KiB