init
87
data/localization/ru.po
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# ========== /WPE2/data/scripts/lib/weapongenerator.lua ==========
|
||||||
|
#: /WPE2/data/scripts/lib/weapongenerator.lua:
|
||||||
|
msgctxt "Weapon Name"
|
||||||
|
msgid "Auto Cannon"
|
||||||
|
msgstr "Автопушка"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/lib/weapongenerator.lua:
|
||||||
|
msgctxt "Weapon Prefix"
|
||||||
|
msgid "Auto Cannon"
|
||||||
|
msgstr "Автопушка"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/lib/weapongenerator.lua:
|
||||||
|
msgctxt "Weapon Name"
|
||||||
|
msgid "Heavy Cannon"
|
||||||
|
msgstr "Тяжелая Пушка"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/lib/weapongenerator.lua:
|
||||||
|
msgctxt "Weapon Prefix"
|
||||||
|
msgid "Heavy Cannon"
|
||||||
|
msgstr "Тяжелая Пушка"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/lib/weapongenerator.lua:
|
||||||
|
msgctxt "Weapon Name"
|
||||||
|
msgid "Diffuser"
|
||||||
|
msgstr "Диффузор"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/lib/weapongenerator.lua:
|
||||||
|
msgctxt "Weapon Prefix"
|
||||||
|
msgid "Diffuser"
|
||||||
|
msgstr "Диффузор"
|
||||||
|
|
||||||
|
|
||||||
|
# ========== /WPE2/data/scripts/lib/weapontype.lua ==========
|
||||||
|
#: /WPE2/data/scripts/lib/weapontype.lua:
|
||||||
|
msgctxt "Weapon Type"
|
||||||
|
msgid "Auto Сannon"
|
||||||
|
msgstr "Автопушка"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/lib/weapontype.lua:
|
||||||
|
msgctxt "Weapon Type"
|
||||||
|
msgid "Heavy Cannon"
|
||||||
|
msgstr "Тяжелая Пушка"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/lib/weapontype.lua:
|
||||||
|
msgctxt "Weapon Type"
|
||||||
|
msgid "Diffuser"
|
||||||
|
msgstr "Диффузор"
|
||||||
|
|
||||||
|
|
||||||
|
# ========== /WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua ==========
|
||||||
|
#: /WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
|
||||||
|
msgid "WPE Turrets"
|
||||||
|
msgstr "Расширенный пак оружия"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
|
||||||
|
msgid "Intro"
|
||||||
|
msgstr "Вступление"
|
||||||
|
|
||||||
|
#: /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Я рекомендую использовать модели турелей из коллекции в мастерской"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
|
||||||
|
msgid "Autocannon"
|
||||||
|
msgstr "Автопушка"
|
||||||
|
|
||||||
|
#: /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)."
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
|
||||||
|
msgid "Heavy Cannon"
|
||||||
|
msgstr "Тяжелая Пушка"
|
||||||
|
|
||||||
|
#: /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- Low rate of fire\n- Occupies many slots\n- Big size"
|
||||||
|
msgstr "Пушка главного калибра. Стреляет тяжелыми разрывными снарядами, попадание которых может смести вражеский корабль.\n\n+ Большой урон\n+ Высокая скорость снаряда\n+ При попадании в цель толкает противника\n- Низкая скорострельность\n- Занимает много слотов\n- Большие размеры"
|
||||||
|
|
||||||
|
#: /WPE2/data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua:
|
||||||
|
msgid "Energy diffuser"
|
||||||
|
msgstr "Энегретический диффузор"
|
||||||
|
|
||||||
|
#: /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"
|
||||||
|
|
||||||
|
|
||||||
4
data/scripts/lib/galaxy.lua
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
weaponProbabilities[WeaponType.AutoCannon] = {d = 0.65, p = 2.0}
|
||||||
|
weaponProbabilities[WeaponType.HeavyCannon] = {d = 0.6, p = 1.0}
|
||||||
|
weaponProbabilities[WeaponType.Diffuser] = {d = 0.6, p = 1.0}
|
||||||
4
data/scripts/lib/inventoryitemprice.lua
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
valueWeights[WeaponType.AutoCannon ] = 2
|
||||||
|
valueWeights[WeaponType.HeavyCannon ] = 1.7
|
||||||
|
valueWeights[WeaponType.Diffuser ] = 2.1
|
||||||
177
data/scripts/lib/turretgenerator.lua
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
|
||||||
|
scales[WeaponType.AutoCannon] = {
|
||||||
|
{from = 0, to = 28, size = 1.5, 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 = 3.5, 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.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},
|
||||||
|
}
|
||||||
|
|
||||||
|
if GameVersion() >= Version(0, 31, 0) then
|
||||||
|
possibleSpecialties[WeaponType.AutoCannon] = {
|
||||||
|
{specialty = Specialty.HighDamage, probability = 0.2},
|
||||||
|
{specialty = Specialty.HighRange, probability = 0.3},
|
||||||
|
{specialty = Specialty.HighRange, probability = 0.35},
|
||||||
|
{specialty = Specialty.HighFireRate, probability = 0.5},
|
||||||
|
}
|
||||||
|
else
|
||||||
|
possibleSpecialties[WeaponType.AutoCannon] = {
|
||||||
|
Specialty.HighDamage,
|
||||||
|
Specialty.HighFireRate,
|
||||||
|
Specialty.HighRange,
|
||||||
|
Specialty.HighHullDamage,
|
||||||
|
Specialty.HighShieldDamage,
|
||||||
|
Specialty.LessCoolingTime,
|
||||||
|
Specialty.BurstFire,
|
||||||
|
}
|
||||||
|
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.5},
|
||||||
|
{specialty = Specialty.BurstFire, probability = 0.2},
|
||||||
|
}
|
||||||
|
else
|
||||||
|
possibleSpecialties[WeaponType.HeavyCannon] = {
|
||||||
|
Specialty.HighDamage,
|
||||||
|
Specialty.HighFireRate,
|
||||||
|
Specialty.HighRange,
|
||||||
|
Specialty.HighHullDamage,
|
||||||
|
Specialty.HighShieldDamage,
|
||||||
|
Specialty.LessCoolingTime,
|
||||||
|
Specialty.BurstFire,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
if GameVersion() >= Version(0, 31, 0) then
|
||||||
|
possibleSpecialties[WeaponType.Diffuser] = {
|
||||||
|
{specialty = Specialty.HighDamage, probability = 0.2},
|
||||||
|
{specialty = Specialty.HighRange, probability = 0.3},
|
||||||
|
{specialty = Specialty.HighRange, probability = 0.35},
|
||||||
|
{specialty = Specialty.HighFireRate, probability = 0.5},
|
||||||
|
}
|
||||||
|
else
|
||||||
|
possibleSpecialties[WeaponType.Diffuser] = {
|
||||||
|
Specialty.HighDamage,
|
||||||
|
Specialty.HighRange,
|
||||||
|
Specialty.SlightlyHigherHullDamage,
|
||||||
|
Specialty.FasterRechargeTime,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function TurretGenerator.generateAutoCannonTurret(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.generateAutoCannon(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.AutoCannon, tech, 0.6)
|
||||||
|
TurretGenerator.addSpecialties(rand, result, WeaponType.AutoCannon)
|
||||||
|
|
||||||
|
result:updateStaticStats()
|
||||||
|
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
generatorFunction[WeaponType.AutoCannon] = TurretGenerator.generateAutoCannonTurret
|
||||||
|
|
||||||
|
|
||||||
|
function TurretGenerator.generateHeavyCannonTurret(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.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
|
||||||
34
data/scripts/lib/turretingredients.lua
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
TurretIngredients[WeaponType.AutoCannon] =
|
||||||
|
{
|
||||||
|
{name = "Servo", amount = 15, investable = 10, minimum = 5, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
|
||||||
|
{name = "Warhead", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
|
||||||
|
{name = "High Pressure Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "reach", },
|
||||||
|
{name = "Ammunition M", amount = 2, investable = 4, minimum = 1, weaponStat = "damage", investFactor = 0.5,},
|
||||||
|
{name = "Targeting Card", amount = 3, investable = 3, minimum = 0, weaponStat = "seeker", investFactor = 1, changeType = StatChanges.Flat},
|
||||||
|
{name = "Steel", amount = 8, investable = 10, minimum = 3,},
|
||||||
|
{name = "Steel Tube", amount = 5, investable = 10, minimum = 3,},
|
||||||
|
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
|
||||||
|
}
|
||||||
|
|
||||||
|
TurretIngredients[WeaponType.HeavyCannon] =
|
||||||
|
{
|
||||||
|
{name = "Servo", amount = 8, investable = 8, minimum = 4, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
|
||||||
|
{name = "Warhead", amount = 5, investable = 6, minimum = 1, weaponStat = "damage", },
|
||||||
|
{name = "High Pressure Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "reach", },
|
||||||
|
{name = "Ammunition", amount = 5, investable = 10, minimum = 3, weaponStat = "damage", investFactor = 0.2,},
|
||||||
|
{name = "Steel", amount = 20, investable = 10, minimum = 20,},
|
||||||
|
{name = "Metal Plate", amount = 8, investable = 10, minimum = 10,},
|
||||||
|
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
|
||||||
|
}
|
||||||
|
|
||||||
|
TurretIngredients[WeaponType.Diffuser] =
|
||||||
|
{
|
||||||
|
{name = "Plasma Cell", amount = 10, investable = 10, minimum = 10, weaponStat = "fireRate", investFactor = 1.0, changeType = StatChanges.Percentage},
|
||||||
|
{name = "High Capacity Lens", amount = 5, investable = 6, minimum = 1, weaponStat = "reach", },
|
||||||
|
{name = "Energy Tube", amount = 2, investable = 6, minimum = 1, weaponStat = "damage", },
|
||||||
|
{name = "Steel", amount = 20, investable = 0, minimum = 20,},
|
||||||
|
{name = "Copper", amount = 10, investable = 0, minimum = 10,},
|
||||||
|
{name = "Silver", amount = 5, investable = 0, minimum = 5,},
|
||||||
|
-- {name = "Targeting System", amount = 0, investable = 2, minimum = 0, turretStat = "automatic", investFactor = 1, changeType = StatChanges.Flat},
|
||||||
|
}
|
||||||
139
data/scripts/lib/weapongenerator.lua
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
|
||||||
|
function WeaponGenerator.generateAutoCannon(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)*1.5
|
||||||
|
local existingTime = (reach / speed)*1.1
|
||||||
|
|
||||||
|
weapon.fireDelay = fireDelay
|
||||||
|
weapon.reach = reach
|
||||||
|
weapon.appearanceSeed = rand:getInt()
|
||||||
|
weapon.seeker = rand:test(1 / 2)
|
||||||
|
weapon.appearance = WeaponAppearance.Cannon
|
||||||
|
weapon.name = "Auto Cannon /* Weapon Name*/"%_t
|
||||||
|
weapon.prefix = "Auto 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.AutoCannon] = WeaponGenerator.generateAutoCannon
|
||||||
|
|
||||||
|
|
||||||
|
function WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
|
||||||
|
local weapon = Weapon()
|
||||||
|
weapon:setProjectile()
|
||||||
|
|
||||||
|
dps = dps * 1.85
|
||||||
|
local fireDelay = rand:getFloat(1.5, 2.5)*1.8
|
||||||
|
local reach = rand:getFloat(1100, 1500)*0.5
|
||||||
|
local damage = dps * fireDelay
|
||||||
|
local speed = rand:getFloat(600, 1000)
|
||||||
|
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.prefix = "Heavy Cannon /* Weapon Prefix*/"%_t
|
||||||
|
weapon.icon = "data/textures/icons/heavycannon.png"
|
||||||
|
weapon.sound = "cannon"
|
||||||
|
weapon.accuracy = 0.89 - rand:getFloat(0, 0.03)
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
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)*1.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
|
||||||
4
data/scripts/lib/weapontype.lua
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
WeaponTypes.addType("AutoCannon", "Auto Сannon /* Weapon Type */"%_t, armed)
|
||||||
|
WeaponTypes.addType("HeavyCannon", "Heavy Cannon /* Weapon Type */"%_t, armed)
|
||||||
|
WeaponTypes.addType("Diffuser", "Diffuser /* Weapon Type */"%_t, armed)
|
||||||
34
data/scripts/player/ui/encyclopedia/chapters/wpeturrets.lua
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
Categories = Categories or {}
|
||||||
|
category = {}
|
||||||
|
|
||||||
|
table.insert(Categories, category)
|
||||||
|
|
||||||
|
category.title = "WPE Turrets"%_t
|
||||||
|
category.chapters =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
title = "Intro"%_t,
|
||||||
|
picture = "data/textures/slide/thumb.png",
|
||||||
|
text = "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."%_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,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title = "Heavy Cannon"%_t,
|
||||||
|
picture = "data/textures/slide/4.png",
|
||||||
|
text = "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- Low rate of fire\n- Occupies many slots\n- Big size"%_t,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title = "Energy diffuser"%_t,
|
||||||
|
picture = "data/textures/slide/1.png",
|
||||||
|
text = "Short range combat weapon. Does not cause damage to the hull, but extremely effectively destroys shields. Requires civil slots.\n\nShield Damage x20"%_t,
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
1
data/scripts/player/ui/encyclopedia/contents.lua
Normal file
@@ -0,0 +1 @@
|
|||||||
|
contents = {}
|
||||||
17
data/scripts/player/ui/encyclopedia/encyclopedia.lua
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
Encyclopedia._fillTree = Encyclopedia.fillTree
|
||||||
|
|
||||||
|
function Encyclopedia.fillTree()
|
||||||
|
|
||||||
|
include("chapters/wpeturrets")
|
||||||
|
|
||||||
|
Encyclopedia._fillTree()
|
||||||
|
|
||||||
|
local searchText = string.trim(self.searchTextBox.text)
|
||||||
|
|
||||||
|
if searchText == "" then
|
||||||
|
Encyclopedia.fillTreeCompletely()
|
||||||
|
else
|
||||||
|
Encyclopedia.fillTreeFiltered(searchText)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
BIN
data/textures/icons/16353.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
data/textures/icons/autocannon.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
data/textures/icons/diffuser.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
data/textures/icons/heavycannon.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
data/textures/icons/ram.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
data/textures/slide/1.PNG
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
data/textures/slide/2.PNG
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
data/textures/slide/3.PNG
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
data/textures/slide/4.PNG
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
data/textures/slide/thumb.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
57
modinfo.lua
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
|
||||||
|
meta =
|
||||||
|
{
|
||||||
|
-- ID of your mod; Make sure this is unique!
|
||||||
|
-- Will be used for identifying the mod in dependency lists
|
||||||
|
-- Will be changed to workshop ID (ensuring uniqueness) when you upload the mod to the workshop
|
||||||
|
id = "",
|
||||||
|
|
||||||
|
-- Name of your mod; You may want this to be unique, but it's not absolutely necessary.
|
||||||
|
-- This is an additional helper attribute for you to easily identify your mod in the Mods() list
|
||||||
|
name = "Weapon_Pack_Extended2",
|
||||||
|
|
||||||
|
-- Title of your mod that will be displayed to players
|
||||||
|
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 = {"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
|
||||||
|
version = "1.3",
|
||||||
|
|
||||||
|
-- If your mod requires dependencies, enter them here. The game will check that all dependencies given here are met.
|
||||||
|
-- Possible attributes:
|
||||||
|
-- id: The ID of the other mod as stated in its modinfo.lua
|
||||||
|
-- min, max, exact: version strings that will determine minimum, maximum or exact version required (exact is only syntactic sugar for min == max)
|
||||||
|
-- optional: set to true if this mod is only an optional dependency (will only influence load order, not requirement checks)
|
||||||
|
-- incompatible: set to true if your mod is incompatible with the other one
|
||||||
|
-- Example:
|
||||||
|
-- dependencies = {
|
||||||
|
-- {id = "Avorion", min = "0.17", max = "0.21"}, -- we can only work with Avorion between versions 0.17 and 0.21
|
||||||
|
-- {id = "SomeModLoader", min = "1.0", max = "2.0"}, -- we require SomeModLoader, and we need its version to be between 1.0 and 2.0
|
||||||
|
-- {id = "AnotherMod", max = "2.0"}, -- we require AnotherMod, and we need its version to be 2.0 or lower
|
||||||
|
-- {id = "IncompatibleMod", incompatible = true}, -- we're incompatible with IncompatibleMod, regardless of its version
|
||||||
|
-- {id = "IncompatibleModB", exact = "2.0", incompatible = true}, -- we're incompatible with IncompatibleModB, but only exactly version 2.0
|
||||||
|
-- {id = "OptionalMod", min = "0.2", optional = true}, -- we support OptionalMod optionally, starting at version 0.2
|
||||||
|
-- },
|
||||||
|
dependencies = {
|
||||||
|
{id = "Avorion", max = "2.*"}
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Set to true if the mod only has to run on the server. Clients will get notified that the mod is running on the server, but they won't download it to themselves
|
||||||
|
serverSideOnly = false,
|
||||||
|
|
||||||
|
-- Set to true if the mod only has to run on the client, such as UI mods
|
||||||
|
clientSideOnly = false,
|
||||||
|
|
||||||
|
-- Set to true if the mod changes the savegame in a potentially breaking way, as in it adds scripts or mechanics that get saved into database and no longer work once the mod gets disabled
|
||||||
|
-- logically, if a mod is client-side only, it can't alter savegames, but Avorion doesn't check for that at the moment
|
||||||
|
saveGameAltering = false,
|
||||||
|
|
||||||
|
-- Contact info for other users to reach you in case they have questions
|
||||||
|
contact = "https://steamcommunity.com/id/CasKepler2/",
|
||||||
|
}
|
||||||