From 64f7089f2e3df2ce121e2e89cd3bd2d3c97edd60 Mon Sep 17 00:00:00 2001 From: bacon Date: Sat, 26 Aug 2023 02:40:24 +0300 Subject: [PATCH] Updated translate template added test file --- main.py | 8 +- weapongenerator.lua | 202 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 207 insertions(+), 3 deletions(-) create mode 100644 weapongenerator.lua diff --git a/main.py b/main.py index 23b66f7..29ceb91 100644 --- a/main.py +++ b/main.py @@ -4,13 +4,15 @@ import os from lib.translate import translate +# path = "C:\Users\riksl\PycharmProjects\weapon-project-extended" + name = "weapongenerator.lua" -def _lister(path) -> list: +def _lister(_path) -> list: _list: list = [] try: - for f in os.walk(path): + for f in os.walk(_path): _list.extend(f) break return sorted(_list[2]) @@ -35,7 +37,7 @@ def parsing_file(f): test_en = parsing_file(name)[0].split('\"')[1].split(' /*')[0] test = translate(test_en) -translate_entity = ("\n#: %s\nmsgid: \"%s\"\nmsgstr: \"%s\"" % (name, test_en, test)) +translate_entity = ("\n# ========== %s ==========\n#: %s\nmsgid: \"%s\"\nmsgstr: \"%s\"" % (name, name, test_en, test)) print(translate_entity) diff --git a/weapongenerator.lua b/weapongenerator.lua new file mode 100644 index 0000000..7919e76 --- /dev/null +++ b/weapongenerator.lua @@ -0,0 +1,202 @@ + +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)*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 = "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.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"%_T + 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.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.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.Harpoon] = WeaponGenerator.generateHarpoon