Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b34148f77 | ||
|
|
cae212f5a9 | ||
|
|
3988151ccf | ||
|
|
94eff683a6 | ||
|
|
8ba224680f | ||
|
|
5f3dac6eef | ||
|
|
03dd9529e0 | ||
|
|
abd1186280 | ||
|
|
4f65bc33b4 | ||
|
|
3f17cef2f3 | ||
|
|
83b57db47c | ||
|
|
ca53b60531 |
@@ -6,15 +6,20 @@ release_job:
|
|||||||
stage: release # It only runs when *both* jobs in the test stage complete successfully.
|
stage: release # It only runs when *both* jobs in the test stage complete successfully.
|
||||||
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||||
|
|
||||||
rules:
|
only:
|
||||||
- if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
|
# - if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
|
||||||
- if: $CI_COMMIT_TAG
|
refs:
|
||||||
when: never
|
- main
|
||||||
- if:
|
- ^tags
|
||||||
changes:
|
changes:
|
||||||
- data/**/*
|
- ^README.md
|
||||||
- modinfo.lua
|
- ^CHANGELOG
|
||||||
- thumb.png
|
- ^.gitattribute
|
||||||
|
- ^.gitignore
|
||||||
|
- ^.gitlab-ci.yml
|
||||||
|
- data/**/*
|
||||||
|
- modinfo.lua
|
||||||
|
- thumb.png
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- echo "Release WPE 2.0_$CI_COMMIT_SHORT_SHA"
|
- echo "Release WPE 2.0_$CI_COMMIT_SHORT_SHA"
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"ExpandedNodes": [
|
|
||||||
""
|
|
||||||
],
|
|
||||||
"SelectedNode": "\\C:\\Users\\riksl\\Source\\Repos\\weapon-project-extended",
|
|
||||||
"PreviewInSolutionExplorer": false
|
|
||||||
}
|
|
||||||
BIN
.vs/slnx.sqlite
BIN
.vs/slnx.sqlite
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,5 @@
|
|||||||
[](http://gl.beaconborn.ru/bacon/weapon-project-extended/-/commits/main)
|
[](http://gl.beaconborn.ru/bacon/weapon-project-extended/-/commits/main) [](http://gl.beaconborn.ru/bacon/weapon-project-extended/-/releases)
|
||||||
# weapon project extended
|
# weapon project extended 2.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
|
|
||||||
@@ -11,4 +9,4 @@ That mod for Avorion original writed [Alive!](https://steamcommunity.com/id/CasK
|
|||||||
* Hookgun
|
* Hookgun
|
||||||
* Smart-cannon
|
* Smart-cannon
|
||||||
* Heavy Cannon
|
* Heavy Cannon
|
||||||
* Diffuser
|
* Diffuser
|
||||||
|
|||||||
@@ -1,201 +1,210 @@
|
|||||||
|
|
||||||
function WeaponGenerator.generateSmartCannon(rand, dps, tech, material, rarity)
|
function WeaponGenerator.generateAutoCannon(rand, dps, tech, material, rarity)
|
||||||
local weapon = Weapon()
|
local weapon = Weapon()
|
||||||
weapon:setProjectile()
|
weapon:setProjectile()
|
||||||
|
|
||||||
dps = dps * 0.75
|
dps = dps * 0.75
|
||||||
local fireDelay = rand:getFloat(1.5, 2.5)*0.5
|
local fireDelay = rand:getFloat(1.5, 2.5)*0.5
|
||||||
local reach = rand:getFloat(1100, 1500)*0.7
|
local reach = rand:getFloat(1100, 1500)*0.7
|
||||||
local damage = dps * fireDelay
|
local damage = dps * fireDelay
|
||||||
local speed = rand:getFloat(300, 400)*2
|
local speed = rand:getFloat(300, 400)*2
|
||||||
local existingTime = (reach / speed)*1.2
|
local existingTime = (reach / speed)*1.2
|
||||||
|
|
||||||
weapon.fireDelay = fireDelay
|
weapon.fireDelay = fireDelay
|
||||||
weapon.reach = reach
|
weapon.reach = reach
|
||||||
weapon.appearanceSeed = rand:getInt()
|
weapon.appearanceSeed = rand:getInt()
|
||||||
weapon.seeker = rand:test(1 / 2)
|
weapon.seeker = 1
|
||||||
weapon.appearance = WeaponAppearance.Cannon
|
weapon.appearance = WeaponAppearance.Cannon
|
||||||
weapon.name = "Smart Cannon /* Weapon Name*/"%_t
|
weapon.name = "Smart-Cannon /* Weapon Name*/"%_t
|
||||||
weapon.prefix = "Smart Cannon /* Weapon Prefix*/"%_t
|
weapon.prefix = "Smart-Cannon /* Weapon Prefix*/"%_t
|
||||||
weapon.icon = "data/textures/icons/autocannon.png"
|
weapon.icon = "data/textures/icons/autocannon.png"
|
||||||
weapon.sound = "cannon"
|
weapon.sound = "cannon"
|
||||||
weapon.accuracy = 0.99 - rand:getFloat(0, 0.03)
|
weapon.accuracy = 0.99 - rand:getFloat(0, 0.03)
|
||||||
|
|
||||||
weapon.damage = damage
|
weapon.damage = damage
|
||||||
weapon.damageType = DamageType.Physical
|
weapon.damageType = DamageType.Physical
|
||||||
weapon.impactParticles = ImpactParticles.Explosion
|
weapon.impactParticles = ImpactParticles.Explosion
|
||||||
weapon.shieldDamageMultiplicator=1.1 + rarity.value * 0.1
|
weapon.shieldDamageMultiplicator=1.1 + rarity.value * 0.1
|
||||||
weapon.impactSound = 1
|
weapon.impactSound = 1
|
||||||
weapon.impactExplosion = true
|
weapon.impactExplosion = true
|
||||||
|
|
||||||
weapon.psize = rand:getFloat(0.2, 0.5)
|
local specType = rand:getInt(0, 1)
|
||||||
weapon.pmaximumTime = existingTime
|
if specType > 0 then
|
||||||
weapon.pvelocity = speed
|
weapon.prefix = "Ionized Smart-Cannon /* Weapon Prefix*/"%_t
|
||||||
weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1)
|
weapon.shieldPenetration = 1
|
||||||
|
else
|
||||||
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
|
weapon.prefix = "Smart-Cannon /* Weapon Prefix*/"%_t
|
||||||
|
end
|
||||||
-- these have to be assigned after the weapon was adjusted since the damage might be changed
|
|
||||||
weapon.recoil = weapon.damage * 20 * 0.75
|
weapon.psize = rand:getFloat(0.2, 0.5)
|
||||||
weapon.explosionRadius = math.sqrt(weapon.damage * 6)
|
weapon.pmaximumTime = existingTime
|
||||||
|
weapon.pvelocity = speed
|
||||||
return weapon
|
weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1)
|
||||||
end
|
|
||||||
|
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
|
||||||
generatorFunction[WeaponType.SmartCannon] = WeaponGenerator.generateSmartCannon
|
|
||||||
|
-- these have to be assigned after the weapon was adjusted since the damage might be changed
|
||||||
function WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
|
weapon.recoil = weapon.damage * 20 * 0.75
|
||||||
local weapon = Weapon()
|
weapon.explosionRadius = math.sqrt(weapon.damage * 6)
|
||||||
weapon:setProjectile()
|
|
||||||
|
return weapon
|
||||||
dps = dps * 1.85
|
end
|
||||||
local fireDelay = rand:getFloat(1.5, 2.0)*1.7
|
|
||||||
local reach = rand:getFloat(1100, 1500)*1.2
|
generatorFunction[WeaponType.AutoCannon] = WeaponGenerator.generateAutoCannon
|
||||||
local damage = dps * fireDelay
|
|
||||||
local speed = rand:getFloat(600, 1000)*1.4
|
|
||||||
local existingTime = (reach / speed)*1.1
|
function WeaponGenerator.generateHeavyCannon(rand, dps, tech, material, rarity)
|
||||||
|
local weapon = Weapon()
|
||||||
weapon.fireDelay = fireDelay
|
weapon:setProjectile()
|
||||||
weapon.reach = reach
|
|
||||||
weapon.appearanceSeed = rand:getInt()
|
dps = dps * 1.85
|
||||||
weapon.appearance = WeaponAppearance.Bolter
|
local fireDelay = rand:getFloat(1.5, 2.0)*1.7
|
||||||
weapon.name = "Heavy Cannon /* Weapon Name*/"%_t
|
local reach = rand:getFloat(1100, 1500)*1.2
|
||||||
weapon.icon = "data/textures/icons/heavycannon.png"
|
local damage = dps * fireDelay
|
||||||
weapon.sound = "cannon"
|
local speed = rand:getFloat(600, 1000)*1.4
|
||||||
weapon.accuracy = 0.95 - rand:getFloat(0, 0.02)
|
local existingTime = (reach / speed)*1.1
|
||||||
|
|
||||||
weapon.damage = damage
|
weapon.fireDelay = fireDelay
|
||||||
weapon.damageType = DamageType.Physical
|
weapon.reach = reach
|
||||||
weapon.impactParticles = ImpactParticles.Explosion
|
weapon.appearanceSeed = rand:getInt()
|
||||||
weapon.impactSound = 1
|
weapon.appearance = WeaponAppearance.Bolter
|
||||||
weapon.impactExplosion = true
|
weapon.name = "Heavy Cannon /* Weapon Name*/"%_t
|
||||||
weapon.otherForce = dps*math.max(1, rarity.value)*89*5
|
weapon.icon = "data/textures/icons/heavycannon.png"
|
||||||
|
weapon.sound = "cannon"
|
||||||
|
weapon.accuracy = 0.95 - rand:getFloat(0, 0.02)
|
||||||
weapon.psize = rand:getFloat(0.2, 0.5)
|
|
||||||
weapon.pmaximumTime = existingTime
|
weapon.damage = damage
|
||||||
weapon.pvelocity = speed
|
weapon.damageType = DamageType.Physical
|
||||||
weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1)
|
weapon.impactParticles = ImpactParticles.Explosion
|
||||||
|
weapon.impactSound = 1
|
||||||
local Pen = rand:getInt(0, rarity.value)
|
weapon.impactExplosion = true
|
||||||
if Pen > 0 then
|
weapon.otherForce = dps*math.max(1, rarity.value)*89*5
|
||||||
weapon.blockPenetration = Pen
|
|
||||||
weapon.prefix = "Cumulative Heavy Cannon /* Weapon Prefix*/"%_t
|
|
||||||
else
|
weapon.psize = rand:getFloat(0.2, 0.5)
|
||||||
weapon.prefix = "Heavy Cannon /* Weapon Prefix*/"%_t
|
weapon.pmaximumTime = existingTime
|
||||||
end
|
weapon.pvelocity = speed
|
||||||
|
weapon.pcolor = ColorHSV(rand:getFloat(10, 60), 0.7, 1)
|
||||||
|
|
||||||
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
|
local Pen = rand:getInt(0, rarity.value)
|
||||||
|
if Pen > 0 then
|
||||||
-- these have to be assigned after the weapon was adjusted since the damage might be changed
|
weapon.blockPenetration = Pen
|
||||||
weapon.recoil = weapon.damage * 50
|
weapon.prefix = "Cumulative Heavy Cannon /* Weapon Prefix*/"%_t
|
||||||
weapon.explosionRadius = math.sqrt(weapon.damage * 7)
|
else
|
||||||
|
weapon.prefix = "Heavy Cannon /* Weapon Prefix*/"%_t
|
||||||
return weapon
|
end
|
||||||
end
|
|
||||||
|
|
||||||
generatorFunction[WeaponType.HeavyCannon] = WeaponGenerator.generateHeavyCannon
|
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
|
||||||
|
|
||||||
|
-- these have to be assigned after the weapon was adjusted since the damage might be changed
|
||||||
function WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
|
weapon.recoil = weapon.damage * 50
|
||||||
local weapon = Weapon()
|
weapon.explosionRadius = math.sqrt(weapon.damage * 7)
|
||||||
weapon:setBeam()
|
|
||||||
|
return weapon
|
||||||
local fireDelay = rand:getFloat(1, 2.5)*0.5
|
end
|
||||||
local reach = rand:getFloat(950, 1400)
|
|
||||||
local damage = dps * fireDelay
|
generatorFunction[WeaponType.HeavyCannon] = WeaponGenerator.generateHeavyCannon
|
||||||
|
|
||||||
weapon.fireDelay = fireDelay
|
|
||||||
weapon.appearanceSeed = rand:getInt()
|
function WeaponGenerator.generateDiffuser(rand, dps, tech, material, rarity)
|
||||||
weapon.reach = reach
|
local weapon = Weapon()
|
||||||
weapon.continuousBeam = false
|
weapon:setBeam()
|
||||||
weapon.appearance = WeaponAppearance.Tesla
|
|
||||||
weapon.name = "Diffuser /* Weapon Name*/"%_t
|
local fireDelay = rand:getFloat(1, 2.5)*0.5
|
||||||
weapon.prefix = "Diffuser /* Weapon Prefix*/"%_t
|
local reach = rand:getFloat(950, 1400)
|
||||||
weapon.icon = "data/textures/icons/diffuser.png"
|
local damage = dps * fireDelay
|
||||||
weapon.sound = "railgun"
|
|
||||||
weapon.accuracy = 0.99 - rand:getFloat(0, 0.02)
|
weapon.fireDelay = fireDelay
|
||||||
|
weapon.appearanceSeed = rand:getInt()
|
||||||
weapon.damage = damage
|
weapon.reach = reach
|
||||||
weapon.damageType = DamageType.Energy
|
weapon.continuousBeam = false
|
||||||
weapon.impactParticles = ImpactParticles.Energy
|
weapon.appearance = WeaponAppearance.Tesla
|
||||||
weapon.shieldDamageMultiplicator = 20 + rand:getFloat(0, 4) + rarity.value * 3
|
weapon.name = "Diffuser /* Weapon Name*/"%_t
|
||||||
weapon.stoneDamageMultiplicator = 0
|
weapon.prefix = "Diffuser /* Weapon Prefix*/"%_t
|
||||||
weapon.hullDamageMultiplicator = 0
|
weapon.icon = "data/textures/icons/diffuser.png"
|
||||||
weapon.impactSound = 1
|
weapon.sound = "railgun"
|
||||||
|
weapon.accuracy = 0.99 - rand:getFloat(0, 0.02)
|
||||||
weapon.blength = weapon.reach
|
|
||||||
weapon.bshape = BeamShape.Lightning
|
weapon.damage = damage
|
||||||
weapon.bwidth = 0.5
|
weapon.damageType = DamageType.Energy
|
||||||
weapon.bauraWidth = 3
|
weapon.impactParticles = ImpactParticles.Energy
|
||||||
weapon.banimationSpeed = 0
|
weapon.shieldDamageMultiplicator = 20 + rand:getFloat(0, 4) + rarity.value * 3
|
||||||
weapon.banimationAcceleration = 0
|
weapon.stoneDamageMultiplicator = 0
|
||||||
weapon.bshapeSize = 13
|
weapon.hullDamageMultiplicator = 0
|
||||||
|
weapon.impactSound = 1
|
||||||
-- shades of blue
|
|
||||||
weapon.bouterColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.5, 1), rand:getFloat(0.1, 0.5))
|
weapon.blength = weapon.reach
|
||||||
weapon.binnerColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.1, 0.5), 1)
|
weapon.bshape = BeamShape.Lightning
|
||||||
|
weapon.bwidth = 0.5
|
||||||
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
|
weapon.bauraWidth = 3
|
||||||
|
weapon.banimationSpeed = 0
|
||||||
weapon.recoil = weapon.damage * 5
|
weapon.banimationAcceleration = 0
|
||||||
|
weapon.bshapeSize = 13
|
||||||
return weapon
|
|
||||||
end
|
-- shades of blue
|
||||||
|
weapon.bouterColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.5, 1), rand:getFloat(0.1, 0.5))
|
||||||
generatorFunction[WeaponType.Diffuser] = WeaponGenerator.generateDiffuser
|
weapon.binnerColor = ColorHSV(rand:getFloat(180, 260), rand:getFloat(0.1, 0.5), 1)
|
||||||
|
|
||||||
|
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
|
||||||
|
|
||||||
function WeaponGenerator.generateHookgun(rand, dps, tech, material, rarity)
|
weapon.recoil = weapon.damage * 5
|
||||||
local weapon = Weapon()
|
|
||||||
weapon:setBeam()
|
return weapon
|
||||||
|
end
|
||||||
local fireDelay = rand:getFloat(0.2, 0.5)
|
|
||||||
local reach = rand:getFloat(500, 900)
|
generatorFunction[WeaponType.Diffuser] = WeaponGenerator.generateDiffuser
|
||||||
local damage = dps * fireDelay
|
|
||||||
|
|
||||||
weapon.fireDelay = fireDelay
|
|
||||||
weapon.appearanceSeed = rand:getInt()
|
function WeaponGenerator.generateHarpoon(rand, dps, tech, material, rarity)
|
||||||
weapon.reach = reach
|
local weapon = Weapon()
|
||||||
weapon.continuousBeam = true
|
weapon:setBeam()
|
||||||
weapon.appearance = WeaponAppearance.Cannon
|
|
||||||
weapon.name = "Hookgun /* Weapon Name*/"%_t
|
local fireDelay = rand:getFloat(0.2, 0.5)
|
||||||
weapon.prefix = "Hookgun /* Weapon Prefix*/"%_t
|
local reach = rand:getFloat(500, 900)
|
||||||
weapon.icon = "data/textures/icons/harpoon.png"
|
local damage = dps * fireDelay
|
||||||
weapon.sound = "cannon"
|
|
||||||
weapon.accuracy = 0.99 - rand:getFloat(0, 0.02)
|
weapon.fireDelay = fireDelay
|
||||||
|
weapon.appearanceSeed = rand:getInt()
|
||||||
weapon.blockPenetration = rand:getInt(0, rarity.value) + 2
|
weapon.reach = reach
|
||||||
|
weapon.continuousBeam = true
|
||||||
|
weapon.appearance = WeaponAppearance.Cannon
|
||||||
weapon.otherForce = -500 * dps * rarity.value
|
weapon.name = "Harpoon /* Weapon Name*/"%_t
|
||||||
|
weapon.prefix = "Harpoon /* Weapon Prefix*/"%_t
|
||||||
weapon.damage = damage
|
weapon.icon = "data/textures/icons/harpoon.png"
|
||||||
weapon.damageType = DamageType.Physical
|
weapon.sound = "cannon"
|
||||||
weapon.impactParticles = ImpactParticles.Physical
|
weapon.accuracy = 0.99 - rand:getFloat(0, 0.02)
|
||||||
weapon.shieldDamageMultiplicator = 0.75
|
|
||||||
weapon.stoneDamageMultiplicator = 1.2
|
weapon.blockPenetration = rand:getInt(0, rarity.value) + 2
|
||||||
weapon.hullDamageMultiplicator = 1
|
|
||||||
weapon.impactSound = 1
|
|
||||||
|
weapon.otherForce = -500 * dps * rarity.value
|
||||||
weapon.blength = weapon.reach
|
|
||||||
weapon.bshape = BeamShape.Swirly
|
weapon.damage = damage
|
||||||
weapon.bwidth = 0.5
|
weapon.damageType = DamageType.Physical
|
||||||
weapon.bauraWidth = 3
|
weapon.impactParticles = ImpactParticles.Physical
|
||||||
weapon.banimationSpeed = 0
|
weapon.shieldDamageMultiplicator = 0.75
|
||||||
weapon.banimationAcceleration = 0
|
weapon.stoneDamageMultiplicator = 1.2
|
||||||
weapon.bshapeSize = 13
|
weapon.hullDamageMultiplicator = 1
|
||||||
|
weapon.impactSound = 1
|
||||||
-- shades of blue
|
|
||||||
weapon.bouterColor = ColorHSV(0, 0, rand:getFloat(0.35, 0.65))
|
weapon.blength = weapon.reach
|
||||||
weapon.binnerColor = ColorHSV(1, 1, rand:getFloat(0.35, 0.65))
|
weapon.bshape = BeamShape.Swirly
|
||||||
|
weapon.bwidth = 0.5
|
||||||
WeaponGenerator.adaptWeapon(rand, weapon, tech, material, rarity)
|
weapon.bauraWidth = 3
|
||||||
|
weapon.banimationSpeed = 0
|
||||||
|
weapon.banimationAcceleration = 0
|
||||||
return weapon
|
weapon.bshapeSize = 13
|
||||||
end
|
|
||||||
|
-- shades of blue
|
||||||
generatorFunction[WeaponType.Hookgun] = WeaponGenerator.generateHookgun
|
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,3 @@
|
|||||||
|
|
||||||
meta =
|
meta =
|
||||||
{
|
{
|
||||||
-- ID of your mod; Make sure this is unique!
|
-- ID of your mod; Make sure this is unique!
|
||||||
@@ -14,14 +13,14 @@ meta =
|
|||||||
title = "Weapon Pack Extended2",
|
title = "Weapon Pack Extended2",
|
||||||
|
|
||||||
-- Description of your mod that will be displayed to players
|
-- Description of your mod that will be displayed to players
|
||||||
description = "Adds some new weapon to the game. test",
|
description = "Adds some new weapon to the game.",
|
||||||
|
|
||||||
-- Insert all authors into this list
|
-- Insert all authors into this list
|
||||||
authors = {"Alive!"},
|
authors = {"Alive!"},
|
||||||
|
|
||||||
-- Version of your mod, should be in format 1.0.0 (major.minor.patch) or 1.0 (major.minor)
|
-- Version of your mod, should be in format 1.0.0 (major.minor.patch) or 1.0 (major.minor)
|
||||||
-- This will be used to check for unmet dependencies or incompatibilities
|
-- This will be used to check for unmet dependencies or incompatibilities
|
||||||
version = "1.3",
|
version = "2.0",
|
||||||
|
|
||||||
-- If your mod requires dependencies, enter them here. The game will check that all dependencies given here are met.
|
-- If your mod requires dependencies, enter them here. The game will check that all dependencies given here are met.
|
||||||
-- Possible attributes:
|
-- Possible attributes:
|
||||||
|
|||||||
Reference in New Issue
Block a user