Added Harpoon
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
|
||||
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}
|
||||
weaponProbabilities[WeaponType.Diffuser] = {d = 0.6, p = 1.0}
|
||||
weaponProbabilities[WeaponType.Harpoon] = {d = 0.6, p = 1.0}
|
||||
@@ -2,3 +2,4 @@
|
||||
valueWeights[WeaponType.AutoCannon ] = 2
|
||||
valueWeights[WeaponType.HeavyCannon ] = 1.7
|
||||
valueWeights[WeaponType.Diffuser ] = 2.1
|
||||
valueWeights[WeaponType.Harpoon ] = 2.1
|
||||
|
||||
@@ -22,6 +22,13 @@ scales[WeaponType.Diffuser] = {
|
||||
{from = 51, to = 52, size = 3.0, usedSlots = 6},
|
||||
}
|
||||
|
||||
scales[WeaponType.Harpoon] = {
|
||||
{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},
|
||||
@@ -74,6 +81,19 @@ else
|
||||
}
|
||||
end
|
||||
|
||||
if GameVersion() >= Version(0, 31, 0) then
|
||||
possibleSpecialties[WeaponType.Harpoon] = {
|
||||
{specialty = Specialty.HighDamage, probability = 0.3},
|
||||
{specialty = Specialty.HighRange, probability = 0.3},
|
||||
-- {specialty = Specialty.FasterRechargeTime, probability = 0.6},
|
||||
}
|
||||
else
|
||||
possibleSpecialties[WeaponType.Harpoon] = {
|
||||
Specialty.HighDamage,
|
||||
Specialty.HighRange,
|
||||
Specialty.FasterRechargeTime,
|
||||
}
|
||||
end
|
||||
|
||||
function TurretGenerator.generateAutoCannonTurret(rand, dps, tech, material, rarity)
|
||||
local result = TurretTemplate()
|
||||
@@ -174,3 +194,37 @@ function TurretGenerator.generateDiffuserTurret(rand, dps, tech, material, rarit
|
||||
end
|
||||
|
||||
generatorFunction[WeaponType.Diffuser] = TurretGenerator.generateDiffuserTurret
|
||||
|
||||
|
||||
function TurretGenerator.generateHarpoonTurret(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.generateHarpoon(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.Harpoon, tech, 0.75)
|
||||
TurretGenerator.addSpecialties(rand, result, WeaponType.Harpoon)
|
||||
|
||||
result:updateStaticStats()
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
generatorFunction[WeaponType.Harpoon] = TurretGenerator.generateHarpoonTurret
|
||||
|
||||
@@ -23,6 +23,17 @@ TurretIngredients[WeaponType.HeavyCannon] =
|
||||
}
|
||||
|
||||
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.Harpoon] =
|
||||
{
|
||||
{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", },
|
||||
|
||||
@@ -146,3 +146,55 @@ function WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
|
||||
end
|
||||
|
||||
generatorFunction[WeaponType.Diffuser] = WeaponGenerator.generateDiffuser
|
||||
|
||||
|
||||
|
||||
function WeaponGenerator.generateHarpoon(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 = "Harpoon /* Weapon Name*/"%_t
|
||||
weapon.prefix = "Harpoon /* Weapon Prefix*/"%_t
|
||||
weapon.icon = "data/textures/icons/harpoon.png"
|
||||
weapon.sound = "cannon"
|
||||
weapon.accuracy = 0.99 - rand:getFloat(0, 0.02)
|
||||
|
||||
|
||||
weapon.otherForce = -400 * 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.Harpoon] = WeaponGenerator.generateHarpoon
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
|
||||
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)
|
||||
WeaponTypes.addType("Diffuser", "Diffuser /* Weapon Type */"%_t, armed)
|
||||
WeaponTypes.addType("Harpoon", "Harpoon /* Weapon Type */"%_t, armed)
|
||||
BIN
data/textures/icons/harpoon.png
Normal file
BIN
data/textures/icons/harpoon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Reference in New Issue
Block a user