From 23550f8120ebb41b1732d63d6d09c21bdb314c1a Mon Sep 17 00:00:00 2001 From: jacopo grandi Date: Thu, 25 Feb 2021 12:46:55 +0100 Subject: component representation revolution! Vive la révolution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/army/balance 1000 melee.txt | Bin 21560 -> 21560 bytes build/army/balance 1000 the second.txt | Bin 21560 -> 21560 bytes build/content/__results.png | Bin 0 -> 38325 bytes build/content/armor.txt | 198 ++++---- build/content/augments.txt | 253 +++++----- build/content/autolevel.py | 38 -- build/content/batteries.txt | 102 ++--- build/content/brains.txt | 38 +- build/content/chassis.txt | 472 +++++++++---------- build/content/coso.py | 154 +++++++ build/content/templates/default.txt | 4 +- build/content/weapons.txt | 814 ++++++++++++++++----------------- build/test.exe | Bin 794781 -> 819801 bytes 13 files changed, 1069 insertions(+), 1004 deletions(-) create mode 100644 build/content/__results.png delete mode 100644 build/content/autolevel.py create mode 100644 build/content/coso.py (limited to 'build') diff --git a/build/army/balance 1000 melee.txt b/build/army/balance 1000 melee.txt index 0672fd9..727e08a 100644 Binary files a/build/army/balance 1000 melee.txt and b/build/army/balance 1000 melee.txt differ diff --git a/build/army/balance 1000 the second.txt b/build/army/balance 1000 the second.txt index 48b8155..ef02fec 100644 Binary files a/build/army/balance 1000 the second.txt and b/build/army/balance 1000 the second.txt differ diff --git a/build/content/__results.png b/build/content/__results.png new file mode 100644 index 0000000..8a527cb Binary files /dev/null and b/build/content/__results.png differ diff --git a/build/content/armor.txt b/build/content/armor.txt index 5ceaacc..de31e24 100644 --- a/build/content/armor.txt +++ b/build/content/armor.txt @@ -1,200 +1,200 @@ [ { "name": "metal plating", - "weight": [ + "base_weight": [ 10.0, - 10.0, - 10.0 + 7.5, + 5.0 ], - "pierce": [ + "base_pierce": [ 5.0, - 5.0, - 5.0 + 6.25, + 7.5 ], - "spread": [ - 8.0, + "base_spread": [ 8.0, - 8.0 + 10.0, + 12.0 ] }, { "name": "heavy metal plating", - "weight": [ + "base_weight": [ 16.0, - 16.0, - 16.0 + 12.0, + 8.0 ], - "pierce": [ + "base_pierce": [ 7.0, - 7.0, - 7.0 + 8.75, + 10.5 ], - "spread": [ - 10.0, + "base_spread": [ 10.0, - 10.0 + 12.5, + 15.0 ], - "impact": [ - 5.0, + "base_impact": [ 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "reflective plating", - "weight": [ + "base_weight": [ 8.0, - 8.0, - 8.0 + 6.0, + 4.0 ], - "laser": [ - 10.0, + "base_laser": [ 10.0, - 10.0 + 12.5, + 15.0 ] }, { "name": "heat resistent plating", - "weight": [ - 10.0, + "base_weight": [ 10.0, - 10.0 + 7.5, + 5.0 ], - "fusion": [ - 8.0, + "base_fusion": [ 8.0, - 8.0 + 10.0, + 12.0 ] }, { "name": "padding", - "weight": [ + "base_weight": [ 4.0, - 4.0, - 4.0 + 3.0, + 2.0 ], - "spread": [ - 5.0, + "base_spread": [ 5.0, - 5.0 + 6.25, + 7.5 ], - "impact": [ - 8.0, + "base_impact": [ 8.0, - 8.0 + 10.0, + 12.0 ] }, { "name": "reactive armor", - "weight": [ - 15.0, + "base_weight": [ 15.0, - 15.0 + 11.25, + 7.5 ], - "explosive": [ - 12.0, + "base_explosive": [ 12.0, - 12.0 + 15.0, + 18.0 ] }, { "name": "energy shields", - "weight": [ - 5.0, + "base_weight": [ 5.0, - 5.0 + 3.75, + 2.5 ], - "pierce": [ - 3.0, + "base_pierce": [ 3.0, - 3.0 + 3.75, + 4.5 ], - "spread": [ + "base_spread": [ 3.0, - 3.0, - 3.0 + 3.75, + 4.5 ], - "fusion": [ - 3.0, + "base_fusion": [ 3.0, - 3.0 + 3.75, + 4.5 ], - "explosive": [ - 3.0, + "base_explosive": [ 3.0, - 3.0 + 3.75, + 4.5 ], - "laser": [ + "base_laser": [ 3.0, - 3.0, - 3.0 + 3.75, + 4.5 ] }, { "name": "composite armor", - "weight": [ - 6.0, + "base_weight": [ 6.0, - 6.0 + 4.5, + 3.0 ], - "pierce": [ - 6.0, + "base_pierce": [ 6.0, - 6.0 + 7.5, + 9.0 ], - "spread": [ - 4.0, + "base_spread": [ 4.0, - 4.0 + 5.0, + 6.0 ], - "impact": [ - 3.0, + "base_impact": [ 3.0, - 3.0 + 3.75, + 4.5 ] }, { "name": "plastic armor", - "weight": [ + "base_weight": [ 2.0, - 2.0, - 2.0 + 1.5, + 1.0 ], - "pierce": [ - 4.0, + "base_pierce": [ 4.0, - 4.0 + 5.0, + 6.0 ] }, { "name": "sloped steel armor", - "weight": [ + "base_weight": [ 9.0, - 9.0, - 9.0 + 6.75, + 4.5 ], - "pierce": [ + "base_pierce": [ 10.0, - 10.0, - 10.0 + 12.5, + 15.0 ], - "spread": [ + "base_spread": [ 8.0, - 8.0, - 8.0 + 10.0, + 12.0 ] }, { "name": "charged armor", - "weight": [ - 20.0, + "base_weight": [ 20.0, - 20.0 + 15.0, + 10.0 ], - "explosive": [ - 25.0, + "base_explosive": [ 25.0, - 25.0 + 31.25, + 37.5 ] } ] \ No newline at end of file diff --git a/build/content/augments.txt b/build/content/augments.txt index 6582a7e..35e5bba 100644 --- a/build/content/augments.txt +++ b/build/content/augments.txt @@ -1,59 +1,59 @@ [ { "name": "charged ammo", - "weight": [ + "base_weight": [ 10.0, - 10.0, - 10.0 + 12.5, + 15.0 ], - "damage_emp": [ - 5.0, + "base_weapon_damage_emp": [ 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "fusion ammo", - "weight": [ + "base_weight": [ 10.0, - 10.0, - 10.0 + 12.5, + 15.0 ], - "damage_fusion": [ - 4.0, + "base_weapon_damage_fusion": [ 4.0, - 4.0 + 5.0, + 6.0 ] }, { "name": "explosive ammo", - "weight": [ - 30.0, + "base_weight": [ 30.0, - 30.0 + 37.5, + 45.0 ], - "armor_explosive": [ + "base_armor_explosive": [ 8.0, - 8.0, - 8.0 + 10.0, + 12.0 ] }, { "name": "radiator", - "weight": [ + "base_weight": [ 10.0, - 10.0, - 10.0 + 12.5, + 15.0 ], - "armor_fusion": [ - 2.0, + "base_armor_fusion": [ 2.0, - 2.0 + 2.5, + 3.0 ] }, { "name": "priority module", - "weight": [ + "base_weight": [ 0.0, 0.0, 0.0 @@ -61,27 +61,27 @@ }, { "name": "communication array", - "weight": [ + "base_weight": [ 50.0, - 50.0, - 50.0 + 62.5, + 75.0 ], - "armor_pierce": [ - 1.0, + "base_armor_pierce": [ 1.0, - 1.0 + 1.25, + 1.5 ], - "armor_impact": [ - 1.0, + "base_armor_impact": [ 1.0, - 1.0 + 1.25, + 1.5 ], - "armor_fusion": [ + "base_armor_fusion": [ 1.0, - 1.0, - 1.0 + 1.25, + 1.5 ], - "aoe": [ + "base_aoe": [ 2.0, 2.0, 2.0 @@ -89,185 +89,172 @@ }, { "name": "long range targeting", - "weight": [ + "base_weight": [ 0.0, 0.0, 0.0 ], - "add_range": [ - 1.0, + "perc_range": [ 1.0, - 1.0 - ] - }, - { - "name": "long range targeting", - "weight": [ - 0.0, - 0.0, - 0.0 - ], - "range": [ - 1.0, - 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "fast target acquisition", - "weight": [ + "base_weight": [ 5.0, - 5.0, - 5.0 + 6.25, + 7.5 ], - "add_cooldown": [ - -0.1, + "perc_weapon_cooldown": [ -0.1, - -0.1 + -0.125, + -0.15000000000000002 ] }, { "name": "overcharger", - "weight": [ - 10.0, + "base_weight": [ 10.0, - 10.0 + 12.5, + 15.0 ], - "damage_laser": [ + "base_weapon_damage_laser": [ 8.0, - 8.0, - 8.0 + 10.0, + 12.0 ], - "recharge": [ + "base_recharge": [ -5.0, - -5.0, - -5.0 + -6.25, + -7.5 ] }, { "name": "focus lens", - "weight": [ - 3.0, + "base_weight": [ 3.0, - 3.0 + 3.75, + 4.5 ], - "damage_laser": [ - 3.0, + "base_weapon_damage_laser": [ 3.0, - 3.0 + 3.75, + 4.5 ] }, { "name": "amplifier", - "weight": [ - 30.0, + "base_weight": [ 30.0, - 30.0 + 37.5, + 45.0 ], - "damage_laser": [ + "base_weapon_damage_laser": [ 3.0, - 3.0, - 3.0 + 3.75, + 4.5 ], - "damage_fusion": [ + "base_weapon_damage_fusion": [ 5.0, - 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "shrapnel", - "weight": [ - 5.0, + "base_weight": [ 5.0, - 5.0 + 6.25, + 7.5 ], - "damage_explosive": [ + "base_weapon_damage_explosive": [ 5.0, - 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "reloader", - "weight": [ - 40.0, + "base_weight": [ 40.0, - 40.0 + 50.0, + 60.0 ], - "add_cooldown": [ + "perc_weapon_cooldown": [ -0.1, - -0.1, - -0.1 + -0.125, + -0.15000000000000002 ] }, { "name": "anti jamming device", - "weight": [ - 2.0, + "base_weight": [ 2.0, - 2.0 + 2.5, + 3.0 ], - "armor_emp": [ + "base_armor_emp": [ 5.0, - 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "weight stripping", - "weight": [ - -10.0, + "base_weight": [ -10.0, - -10.0 + -12.5, + -15.0 ], - "add_hp": [ + "perc_hp": [ -10.0, - -10.0, - -10.0 + -12.5, + -15.0 ] }, { "name": "barebone weapon setup", - "weight": [ - -30.0, + "base_weight": [ -30.0, - -30.0 + -37.5, + -45.0 ], - "damage_pierce": [ + "base_weapon_damage_pierce": [ -25.0, - -25.0, - -25.0 + -31.25, + -37.5 ], - "damage_laser": [ - -25.0, + "base_weapon_damage_laser": [ -25.0, - -25.0 + -31.25, + -37.5 ], - "damage_impact": [ + "base_weapon_damage_impact": [ -25.0, - -25.0, - -25.0 + -31.25, + -37.5 ], - "damage_fusion": [ - -25.0, + "base_weapon_damage_fusion": [ -25.0, - -25.0 + -31.25, + -37.5 ], - "damage_explosive": [ + "base_weapon_damage_explosive": [ -25.0, - -25.0, - -25.0 + -31.25, + -37.5 ], - "damage_emp": [ - -25.0, + "base_weapon_damage_emp": [ -25.0, - -25.0 + -31.25, + -37.5 ], - "damage_spread": [ - -25.0, + "base_weapon_damage_spread": [ -25.0, - -25.0 + -31.25, + -37.5 ] } ] \ No newline at end of file diff --git a/build/content/autolevel.py b/build/content/autolevel.py deleted file mode 100644 index 51d30f3..0000000 --- a/build/content/autolevel.py +++ /dev/null @@ -1,38 +0,0 @@ -import json - -def vectorize (obj, forbidlist, _): - for c in obj: - for key in c: - if not(key in forbidlist): - val = c[key] - try: val = int(val); - except: pass - try: val = float(val); - except: pass - c[key] = [val for i in range(3)] - -def query (obj, allowlist, op): - for c in obj: - for key in c: - if key in allowlist: - c[key] = op(c[key]) - - -def comp(filename, l, fun, op=None): - with open(filename+".txt", "r") as f: obj = json.loads(f.read()) - fun(obj, l, op) - with open(filename+"-new"+".txt", "w") as f: - f.write(json.dumps(obj, indent=4)) - -if __name__ == "__main__": - #comp("weapons", ["name", "damage_type"]) - #comp("augments", ["name"]) - #comp("batteries", ["name"]) - #comp("armor", ["name"]) - #comp("chassis", ["name"]) - #comp("brains", ["name"]) - #comp("brains", ["name"]) - - amt = .5 - perc_inc = lambda x: [x[i]*(1.0+(i/2.0)*amt) for i in range(3)] - comp("weapons", ["damage"], query, perc_inc) diff --git a/build/content/batteries.txt b/build/content/batteries.txt index baf7201..babab29 100644 --- a/build/content/batteries.txt +++ b/build/content/batteries.txt @@ -1,43 +1,43 @@ [ { "name": "small alkaline pack", - "weight": [ + "base_weight": [ 0.0, 0.0, 0.0 ], - "capacity": [ + "base_capacity": [ 50.0, - 50.0, - 50.0 + 62.5, + 75.0 ] }, { "name": "big alkaline pack", - "weight": [ - 2.0, + "base_weight": [ 2.0, - 2.0 + 1.5, + 1.0 ], - "capacity": [ - 200.0, + "base_capacity": [ 200.0, - 200.0 + 250.0, + 300.0 ] }, { "name": "small lithium pack", - "weight": [ + "base_weight": [ 5.0, - 5.0, - 5.0 + 3.75, + 2.5 ], - "capacity": [ - 150.0, + "base_capacity": [ 150.0, - 150.0 + 187.5, + 225.0 ], - "recharge": [ + "base_recharge": [ 1, 1, 1 @@ -45,17 +45,17 @@ }, { "name": "big lithium pack", - "weight": [ + "base_weight": [ 15.0, - 15.0, - 15.0 + 11.25, + 7.5 ], - "capacity": [ - 500.0, + "base_capacity": [ 500.0, - 500.0 + 625.0, + 750.0 ], - "recharge": [ + "base_recharge": [ 1, 1, 1 @@ -63,17 +63,17 @@ }, { "name": "lead battery", - "weight": [ + "base_weight": [ 20.0, - 20.0, - 20.0 + 15.0, + 10.0 ], - "capacity": [ - 800.0, + "base_capacity": [ 800.0, - 800.0 + 1000.0, + 1200.0 ], - "recharge": [ + "base_recharge": [ 1, 1, 1 @@ -81,17 +81,17 @@ }, { "name": "small molten salt battery", - "weight": [ - 40.0, + "base_weight": [ 40.0, - 40.0 + 30.0, + 20.0 ], - "capacity": [ - 1500.0, + "base_capacity": [ 1500.0, - 1500.0 + 1875.0, + 2250.0 ], - "recharge": [ + "base_recharge": [ 1, 1, 1 @@ -99,17 +99,17 @@ }, { "name": "big molten salt battery", - "weight": [ + "base_weight": [ 70.0, - 70.0, - 70.0 + 52.5, + 35.0 ], - "capacity": [ - 2000.0, + "base_capacity": [ 2000.0, - 2000.0 + 2500.0, + 3000.0 ], - "recharge": [ + "base_recharge": [ 1, 1, 1 @@ -117,15 +117,15 @@ }, { "name": "atomic battery", - "weight": [ + "base_weight": [ 150.0, - 150.0, - 150.0 + 112.5, + 75.0 ], - "capacity": [ - 10000.0, + "base_capacity": [ 10000.0, - 10000.0 + 12500.0, + 15000.0 ] } ] \ No newline at end of file diff --git a/build/content/brains.txt b/build/content/brains.txt index 87d8d10..3201898 100644 --- a/build/content/brains.txt +++ b/build/content/brains.txt @@ -1,50 +1,50 @@ [ { "name": "search and destroy", - "upkeep": [ + "base_upkeep": [ 1.0, - 1.0, - 1.0 + 0.75, + 0.5 ] }, { "name": "follower", - "upkeep": [ - 1.0, + "base_upkeep": [ 1.0, - 1.0 + 0.75, + 0.5 ] }, { - "name": "defensive", - "upkeep": [ - 1.0, + "name": "friendly fire", + "base_upkeep": [ 1.0, - 1.0 + 0.75, + 0.5 ] }, { "name": "kamikaze", - "upkeep": [ + "base_upkeep": [ 1.0, - 1.0, - 1.0 + 0.75, + 0.5 ] }, { "name": "run and gun", - "upkeep": [ - 1.0, + "base_upkeep": [ 1.0, - 1.0 + 0.75, + 0.5 ] }, { "name": "flank", - "upkeep": [ - 1.0, + "base_upkeep": [ 1.0, - 1.0 + 0.75, + 0.5 ] } ] \ No newline at end of file diff --git a/build/content/chassis.txt b/build/content/chassis.txt index 5d8db88..e097f4e 100644 --- a/build/content/chassis.txt +++ b/build/content/chassis.txt @@ -1,37 +1,37 @@ [ { "name": "light two legged bot", - "slot_weapon": [ + "base_slot_weapon": [ 1.0, 1.0, 1.0 ], - "slot_armor": [ + "base_slot_armor": [ 0.0, 0.0, 0.0 ], - "slot_aug": [ + "base_slot_aug": [ 1.0, 1.0, 1.0 ], - "weight_max": [ + "base_weight_max": [ 20.0, - 20.0, - 20.0 + 25.0, + 30.0 ], - "hp": [ + "base_hp": [ 100.0, - 100.0, - 100.0 + 125.0, + 150.0 ], - "speed": [ + "base_speed": [ 1.5, - 1.5, - 1.5 + 1.875, + 2.25 ], - "upkeep": [ + "base_upkeep": [ 1.0, 1.0, 1.0 @@ -39,268 +39,268 @@ }, { "name": "heavy two legged bot", - "slot_weapon": [ + "base_slot_weapon": [ 1.0, 1.0, 1.0 ], - "slot_armor": [ + "base_slot_armor": [ 1.0, 1.0, 1.0 ], - "slot_aug": [ + "base_slot_aug": [ 3.0, 3.0, 3.0 ], - "weight_max": [ + "base_weight_max": [ 45.0, - 45.0, - 45.0 + 56.25, + 67.5 ], - "hp": [ + "base_hp": [ 350.0, - 350.0, - 350.0 + 437.5, + 525.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "light four legged bot", - "slot_weapon": [ + "base_slot_weapon": [ 2.0, 2.0, 2.0 ], - "slot_armor": [ + "base_slot_armor": [ 1.0, 1.0, 1.0 ], - "slot_aug": [ + "base_slot_aug": [ 2.0, 2.0, 2.0 ], - "weight_max": [ + "base_weight_max": [ 50.0, - 50.0, - 50.0 + 62.5, + 75.0 ], - "hp": [ - 400.0, + "base_hp": [ 400.0, - 400.0 + 500.0, + 600.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "heavy four legged bot", - "slot_weapon": [ + "base_slot_weapon": [ 2.0, 2.0, 2.0 ], - "slot_armor": [ + "base_slot_armor": [ 2.0, 2.0, 2.0 ], - "slot_aug": [ + "base_slot_aug": [ 5.0, 5.0, 5.0 ], - "weight_max": [ + "base_weight_max": [ 150.0, - 150.0, - 150.0 + 187.5, + 225.0 ], - "hp": [ + "base_hp": [ 1200.0, - 1200.0, - 1200.0 + 1500.0, + 1800.0 ], - "speed": [ + "base_speed": [ 0.67, - 0.67, - 0.67 + 0.8375, + 1.0050000000000001 ] }, { "name": "light six legged bot", - "slot_weapon": [ + "base_slot_weapon": [ 2.0, 2.0, 2.0 ], - "slot_armor": [ + "base_slot_armor": [ 2.0, 2.0, 2.0 ], - "slot_aug": [ + "base_slot_aug": [ 3.0, 3.0, 3.0 ], - "weight_max": [ - 210.0, + "base_weight_max": [ 210.0, - 210.0 + 262.5, + 315.0 ], - "hp": [ + "base_hp": [ 640.0, - 640.0, - 640.0 + 800.0, + 960.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "heavy six legged bot", - "slot_weapon": [ + "base_slot_weapon": [ 2.0, 2.0, 2.0 ], - "slot_armor": [ + "base_slot_armor": [ 4.0, 4.0, 4.0 ], - "slot_aug": [ + "base_slot_aug": [ 6.0, 6.0, 6.0 ], - "weight_max": [ + "base_weight_max": [ 300.0, - 300.0, - 300.0 + 375.0, + 450.0 ], - "hp": [ + "base_hp": [ 1500.0, - 1500.0, - 1500.0 + 1875.0, + 2250.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "light buggy", - "slot_weapon": [ + "base_slot_weapon": [ 1.0, 1.0, 1.0 ], - "slot_armor": [ + "base_slot_armor": [ 1.0, 1.0, 1.0 ], - "slot_aug": [ + "base_slot_aug": [ 1.0, 1.0, 1.0 ], - "weight_max": [ + "base_weight_max": [ 50.0, - 50.0, - 50.0 + 62.5, + 75.0 ], - "hp": [ - 200.0, + "base_hp": [ 200.0, - 200.0 + 250.0, + 300.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "buggy", - "slot_weapon": [ + "base_slot_weapon": [ 2.0, 2.0, 2.0 ], - "slot_armor": [ + "base_slot_armor": [ 2.0, 2.0, 2.0 ], - "slot_aug": [ + "base_slot_aug": [ 2.0, 2.0, 2.0 ], - "weight_max": [ + "base_weight_max": [ 150.0, - 150.0, - 150.0 + 187.5, + 225.0 ], - "hp": [ + "base_hp": [ 400.0, - 400.0, - 400.0 + 500.0, + 600.0 ], - "speed": [ + "base_speed": [ 1.0, - 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "light wheeled vehicle", - "slot_weapon": [ + "base_slot_weapon": [ 1.0, 1.0, 1.0 ], - "slot_armor": [ + "base_slot_armor": [ 0.0, 0.0, 0.0 ], - "slot_aug": [ + "base_slot_aug": [ 2.0, 2.0, 2.0 ], - "weight_max": [ - 60.0, + "base_weight_max": [ 60.0, - 60.0 + 75.0, + 90.0 ], - "hp": [ - 320.0, + "base_hp": [ 320.0, - 320.0 + 400.0, + 480.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ], - "recharge": [ + "base_recharge": [ 0.3, 0.3, 0.3 @@ -308,37 +308,37 @@ }, { "name": "medium wheeled vehicle", - "slot_weapon": [ + "base_slot_weapon": [ 2.0, 2.0, 2.0 ], - "slot_armor": [ + "base_slot_armor": [ 2.0, 2.0, 2.0 ], - "slot_aug": [ + "base_slot_aug": [ 3.0, 3.0, 3.0 ], - "weight_max": [ + "base_weight_max": [ 200.0, - 200.0, - 200.0 + 250.0, + 300.0 ], - "hp": [ + "base_hp": [ 720.0, - 720.0, - 720.0 + 900.0, + 1080.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ], - "recharge": [ + "base_recharge": [ 0.2, 0.2, 0.2 @@ -346,37 +346,37 @@ }, { "name": "heavy wheeled vehicle", - "slot_weapon": [ + "base_slot_weapon": [ 2.0, 2.0, 2.0 ], - "slot_armor": [ + "base_slot_armor": [ 4.0, 4.0, 4.0 ], - "slot_aug": [ + "base_slot_aug": [ 4.0, 4.0, 4.0 ], - "weight_max": [ - 270.0, + "base_weight_max": [ 270.0, - 270.0 + 337.5, + 405.0 ], - "hp": [ + "base_hp": [ 950.0, - 950.0, - 950.0 + 1187.5, + 1425.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ], - "recharge": [ + "base_recharge": [ 0.2, 0.2, 0.2 @@ -384,37 +384,37 @@ }, { "name": "light tank", - "slot_weapon": [ + "base_slot_weapon": [ 1.0, 1.0, 1.0 ], - "slot_armor": [ + "base_slot_armor": [ 3.0, 3.0, 3.0 ], - "slot_aug": [ + "base_slot_aug": [ 2.0, 2.0, 2.0 ], - "weight_max": [ + "base_weight_max": [ 300.0, - 300.0, - 300.0 + 375.0, + 450.0 ], - "hp": [ - 700.0, + "base_hp": [ 700.0, - 700.0 + 875.0, + 1050.0 ], - "speed": [ + "base_speed": [ 1.0, - 1.0, - 1.0 + 1.25, + 1.5 ], - "recharge": [ + "base_recharge": [ 0.4, 0.4, 0.4 @@ -422,37 +422,37 @@ }, { "name": "medium tank", - "slot_weapon": [ + "base_slot_weapon": [ 1.0, 1.0, 1.0 ], - "slot_armor": [ + "base_slot_armor": [ 4.0, 4.0, 4.0 ], - "slot_aug": [ + "base_slot_aug": [ 4.0, 4.0, 4.0 ], - "weight_max": [ - 400.0, + "base_weight_max": [ 400.0, - 400.0 + 500.0, + 600.0 ], - "hp": [ - 1250.0, + "base_hp": [ 1250.0, - 1250.0 + 1562.5, + 1875.0 ], - "speed": [ + "base_speed": [ 1.0, - 1.0, - 1.0 + 1.25, + 1.5 ], - "recharge": [ + "base_recharge": [ 0.5, 0.5, 0.5 @@ -460,103 +460,103 @@ }, { "name": "heavy tank", - "slot_weapon": [ + "base_slot_weapon": [ 2.0, 2.0, 2.0 ], - "slot_armor": [ + "base_slot_armor": [ 5.0, 5.0, 5.0 ], - "slot_aug": [ + "base_slot_aug": [ 5.0, 5.0, 5.0 ], - "weight_max": [ - 450.0, + "base_weight_max": [ 450.0, - 450.0 + 562.5, + 675.0 ], - "hp": [ - 1600.0, + "base_hp": [ 1600.0, - 1600.0 + 2000.0, + 2400.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "super heavy tank", - "slot_weapon": [ + "base_slot_weapon": [ 3.0, 3.0, 3.0 ], - "slot_armor": [ + "base_slot_armor": [ 6.0, 6.0, 6.0 ], - "slot_aug": [ + "base_slot_aug": [ 6.0, 6.0, 6.0 ], - "weight_max": [ + "base_weight_max": [ 500.0, - 500.0, - 500.0 + 625.0, + 750.0 ], - "hp": [ + "base_hp": [ 2000.0, - 2000.0, - 2000.0 + 2500.0, + 3000.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "hovercraft", - "slot_weapon": [ + "base_slot_weapon": [ 2.0, 2.0, 2.0 ], - "slot_armor": [ + "base_slot_armor": [ 0.0, 0.0, 0.0 ], - "slot_aug": [ + "base_slot_aug": [ 3.0, 3.0, 3.0 ], - "weight_max": [ - 40.0, + "base_weight_max": [ 40.0, - 40.0 + 50.0, + 60.0 ], - "hp": [ + "base_hp": [ 300.0, - 300.0, - 300.0 + 375.0, + 450.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ], - "recharge": [ + "base_recharge": [ -0.2, -0.2, -0.2 @@ -564,103 +564,103 @@ }, { "name": "jet floater", - "slot_weapon": [ + "base_slot_weapon": [ 1.0, 1.0, 1.0 ], - "slot_armor": [ + "base_slot_armor": [ 0.0, 0.0, 0.0 ], - "slot_aug": [ + "base_slot_aug": [ 2.0, 2.0, 2.0 ], - "weight_max": [ + "base_weight_max": [ 30.0, - 30.0, - 30.0 + 37.5, + 45.0 ], - "hp": [ - 60.0, + "base_hp": [ 60.0, - 60.0 + 75.0, + 90.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "one wheeler", - "slot_weapon": [ + "base_slot_weapon": [ 1.0, 1.0, 1.0 ], - "slot_armor": [ + "base_slot_armor": [ 0.0, 0.0, 0.0 ], - "slot_aug": [ + "base_slot_aug": [ 4.0, 4.0, 4.0 ], - "weight_max": [ - 15.0, + "base_weight_max": [ 15.0, - 15.0 + 18.75, + 22.5 ], - "hp": [ + "base_hp": [ 40.0, - 40.0, - 40.0 + 50.0, + 60.0 ], - "speed": [ - 1.0, + "base_speed": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "armored crawler", - "slot_weapon": [ + "base_slot_weapon": [ 1.0, 1.0, 1.0 ], - "slot_armor": [ + "base_slot_armor": [ 4.0, 4.0, 4.0 ], - "slot_aug": [ + "base_slot_aug": [ 2.0, 2.0, 2.0 ], - "weight_max": [ + "base_weight_max": [ 200.0, - 200.0, - 200.0 + 250.0, + 300.0 ], - "hp": [ + "base_hp": [ 750.0, - 750.0, - 750.0 + 937.5, + 1125.0 ], - "speed": [ + "base_speed": [ 1.0, - 1.0, - 1.0 + 1.25, + 1.5 ], - "upkeep": [ + "base_upkeep": [ 0.4, 0.4, 0.4 diff --git a/build/content/coso.py b/build/content/coso.py new file mode 100644 index 0000000..e68d89d --- /dev/null +++ b/build/content/coso.py @@ -0,0 +1,154 @@ +import json + +def vectorize (obj, forbidlist, _): + for c in obj: + for key in c: + if not(key in forbidlist): + val = c[key] + try: val = int(val); + except: pass + try: val = float(val); + except: pass + c[key] = [val for i in range(3)] + return obj + +def query (obj, allowlist, op): + for c in obj: + for key in c: + if key in allowlist: + c[key] = op(c[key]) + return obj + +def update (obj, forbidlist, op): + return op(obj) + +def select (obj, allowlist, op): + l = [] + for c in obj: + for key in c: + if key in allowlist: + l += [c] + return l + + +def comp(filename, l, fun, op=None, rewrite=None): + with open(filename+".txt", "r") as f: obj = json.loads(f.read()) + nobj = fun(obj, l, op) + if rewrite is None: + with open(filename+".txt", "w") as f: + f.write(json.dumps(nobj, indent=4)) + return nobj + +def change_values(): + amt = .5 + perc_inc = lambda x: [x[0]*(1.0+(i/2.0)*amt) for i in range(3)] + perc_dec = lambda x: [x[0]*(1.0-(i/2.0)*amt) for i in range(3)] + + comp("weapons", ["damage"], query, perc_inc) + comp("weapons", ["cooldown"], query, perc_dec) + comp("weapons", ["weight"], query, perc_dec) + comp("weapons", ["range"], query, perc_inc) + + comp("armor", ["weight"], query, perc_dec) + comp("armor", ["pierce"], query, perc_inc) + comp("armor", ["spread"], query, perc_inc) + comp("armor", ["fusion"], query, perc_inc) + comp("armor", ["explosive"], query, perc_inc) + comp("armor", ["laser"], query, perc_inc) + comp("armor", ["emp"], query, perc_inc) + comp("armor", ["impact"], query, perc_inc) + + comp("batteries", ["weight"], query, perc_dec) + comp("batteries", ["capacity"], query, perc_inc) + + comp("chassis", ["weight"], query, perc_dec) + comp("chassis", ["weight_max"], query, perc_inc) + comp("chassis", ["hp"], query, perc_inc) + comp("chassis", ["speed"], query, perc_inc) + + comp("brains", ["upkeep"], query, perc_dec) + + comp("augments", ["weight"], query, perc_inc) + comp("augments", ["damage_pierce"], query, perc_inc) + comp("augments", ["damage_spread"], query, perc_inc) + comp("augments", ["damage_fusion"], query, perc_inc) + comp("augments", ["damage_explosive"], query, perc_inc) + comp("augments", ["damage_laser"], query, perc_inc) + comp("augments", ["damage_emp"], query, perc_inc) + comp("augments", ["damage_impact"], query, perc_inc) + comp("augments", ["armor_pierce"], query, perc_inc) + comp("augments", ["armor_spread"], query, perc_inc) + comp("augments", ["armor_fusion"], query, perc_inc) + comp("augments", ["armor_explosive"], query, perc_inc) + comp("augments", ["armor_laser"], query, perc_inc) + comp("augments", ["armor_emp"], query, perc_inc) + comp("augments", ["armor_impact"], query, perc_inc) + comp("augments", ["add_range"], query, perc_inc) + comp("augments", ["add_cooldown"], query, perc_inc) + comp("augments", ["recharge"], query, perc_inc) + comp("augments", ["add_hp"], query, perc_inc) + +def get_data (): + # static data analysis, compute image + get_first = lambda x: x + xsc = comp("weapons", ["damage"], select, get_first, False) + if len(xsc) < 2: pygame.quit(); return + wstep = 200 + w = len(xsc)*wstep + hmax = 512 + xs = [x["damage"][0]/x["cooldown"][0]*x["weight"][0]*x["range"][0] for x in xsc] + maxx = max(xs); minx = min(xs) + + import pygame + pygame.init() + pygame.display.set_mode((20, 20)) + size = (w, hmax) + scr = pygame.Surface((size[0], size[1]+15)).convert_alpha() + scr.fill((0,0,0)) + font = pygame.font.SysFont("Courier New", 10) + + for i in range(len(xs)): + x = xs[i] + h = (x-minx)/(maxx-minx) *size[1] + rect = wstep*i, 15+size[1]-h, wstep, h + pygame.draw.rect(scr, (255,255,255), rect) + txt = font.render(xsc[i]["name"], True, (255,255,255)) + scr.blit(txt, (rect[0], rect[1]-12)) + pygame.image.save(scr, "__results.png") + pygame.quit() + +if __name__ == "__main__": + try: + #comp("weapons", ["name", "damage_type"]) + #comp("augments", ["name"]) + #comp("batteries", ["name"]) + #comp("armor", ["name"]) + #comp("chassis", ["name"]) + #comp("brains", ["name"]) + + #change_values() + + #get_data(); + + + forbidlist = ["name"] + def rename (obj): + nobj = [] + for d in obj: + nd = {} + for (key, value) in d.items(): + if not(key in forbidlist): nd["base_"+key] = value + else: nd[key] = value + nobj += [nd] + return nobj + #comp("chassis", ["name"], update, rename) + comp("weapons", ["name"], update, rename) + comp("augments", ["name"], update, rename) + comp("batteries", ["name"], update, rename) + comp("brains", ["name"], update, rename) + comp("armor", ["name"], update, rename) + + except: + import traceback + traceback.print_exc() + input() diff --git a/build/content/templates/default.txt b/build/content/templates/default.txt index a57fce5..88db0c8 100644 --- a/build/content/templates/default.txt +++ b/build/content/templates/default.txt @@ -7,7 +7,7 @@ "weapons": [ -1, -1, -1, -1, -1, -1, -1, -1 ], "armor": [ -1, -1, -1, -1, -1, -1, -1, -1 ], "augs": [ 4, -1, -1, -1, -1, -1, -1, -1 ], - "levels": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] + "levels": [ 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] }, { "name": "raw", @@ -107,6 +107,6 @@ "weapons": [ 0, 2, -1, -1, -1, -1, -1, -1 ], "armor": [ 1, 0, 1, -1, 3, -1, -1, -1 ], "augs": [ 1, -1, 2, -1, 0, -1, -1, -1 ], - "levels": [ 0, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 1, 1, 0, 2, 0, 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] + "levels": [ 0, 1, 2, 0, 2, 0, 0, 0, 0, 0, 0, 2, 1, 1, 0, 2, 0, 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] } ] \ No newline at end of file diff --git a/build/content/weapons.txt b/build/content/weapons.txt index 324b66a..61fda30 100644 --- a/build/content/weapons.txt +++ b/build/content/weapons.txt @@ -1,244 +1,234 @@ [ { "name": "smg", - "damage_type": "pierce", - "weight": [ + "base_weight": [ 10.0, - 10.0, - 10.0 + 7.5, + 5.0 ], - "cooldown": [ - 1.0, + "base_weapon_cooldown": [ 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_pierce": [ 10.0, 12.5, 15.0 ], - "range": [ - 4.0, + "base_weapon_range": [ 4.0, - 4.0 + 5.0, + 6.0 ] }, { "name": "machinegun", - "damage_type": "pierce", - "weight": [ - 25.0, + "base_weight": [ 25.0, - 25.0 + 18.75, + 12.5 ], - "cooldown": [ - 1.0, + "base_weapon_cooldown": [ 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_pierce": [ 15.0, 18.75, 22.5 ], - "range": [ - 5.0, + "base_weapon_range": [ 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "heavy machinegun", - "damage_type": "pierce", - "weight": [ - 40.0, + "base_weight": [ 40.0, - 40.0 + 30.0, + 20.0 ], - "cooldown": [ - 1.0, + "base_weapon_cooldown": [ 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_pierce": [ 20.0, 25.0, 30.0 ], - "range": [ + "base_weapon_range": [ 5.0, - 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "semi autocannon", - "damage_type": "pierce", - "weight": [ + "base_weight": [ 70.0, - 70.0, - 70.0 + 52.5, + 35.0 ], - "cooldown": [ - 2.0, + "base_weapon_cooldown": [ 2.0, - 2.0 + 1.5, + 1.0 ], - "damage": [ + "base_weapon_damage_pierce": [ 32.0, 40.0, 48.0 ], - "range": [ - 6.0, + "base_weapon_range": [ 6.0, - 6.0 + 7.5, + 9.0 ] }, { "name": "autocannon", - "damage_type": "pierce", - "weight": [ + "base_weight": [ 100.0, - 100.0, - 100.0 + 75.0, + 50.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 1.0, - 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_pierce": [ 40.0, 50.0, 60.0 ], - "range": [ + "base_weapon_range": [ 6.0, - 6.0, - 6.0 + 7.5, + 9.0 ] }, { "name": "high velocity cannon", - "damage_type": "pierce", - "weight": [ - 120.0, + "base_weight": [ 120.0, - 120.0 + 90.0, + 60.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 4.0, - 4.0, - 4.0 + 3.0, + 2.0 ], - "damage": [ + "base_weapon_damage_pierce": [ 250.0, 312.5, 375.0 ], - "range": [ - 7.0, + "base_weapon_range": [ 7.0, - 7.0 + 8.75, + 10.5 ] }, { "name": "scrap gun", - "damage_type": "spread", - "weight": [ - 5.0, + "base_weight": [ 5.0, - 5.0 + 3.75, + 2.5 ], - "cooldown": [ - 2.0, + "base_weapon_cooldown": [ 2.0, - 2.0 + 1.5, + 1.0 ], - "damage": [ + "base_weapon_damage_spread": [ 8.0, 10.0, 12.0 ], - "range": [ + "base_weapon_range": [ 3.0, - 3.0, - 3.0 + 3.75, + 4.5 ] }, { "name": "burst cannon", - "damage_type": "spread", - "weight": [ + "base_weight": [ 15.0, - 15.0, - 15.0 + 11.25, + 7.5 ], - "cooldown": [ - 2.0, + "base_weapon_cooldown": [ 2.0, - 2.0 + 1.5, + 1.0 ], - "damage": [ + "base_weapon_damage_spread": [ 25.0, 31.25, 37.5 ], - "range": [ + "base_weapon_range": [ 4.0, - 4.0, - 4.0 + 5.0, + 6.0 ] }, { "name": "heavy burst cannon", - "damage_type": "spread", - "weight": [ - 30.0, + "base_weight": [ 30.0, - 30.0 + 22.5, + 15.0 ], - "cooldown": [ - 2.0, + "base_weapon_cooldown": [ 2.0, - 2.0 + 1.5, + 1.0 ], - "damage": [ + "base_weapon_damage_spread": [ 40.0, 50.0, 60.0 ], - "range": [ + "base_weapon_range": [ 5.0, - 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "maul", - "damage_type": "impact", - "weight": [ + "base_weight": [ 200.0, - 200.0, - 200.0 + 150.0, + 100.0 ], - "cooldown": [ - 3.0, + "base_weapon_cooldown": [ 3.0, - 3.0 + 2.25, + 1.5 ], - "damage": [ + "base_weapon_damage_impact": [ 400.0, 500.0, 600.0 ], - "range": [ + "base_weapon_range": [ 1.0, - 1.0, - 1.0 + 1.25, + 1.5 ], - "knockback": [ + "base_weapon_knockback": [ 2.0, 2.0, 2.0 @@ -246,52 +236,50 @@ }, { "name": "slam", - "damage_type": "impact", - "weight": [ + "base_weight": [ 0.0, 0.0, 0.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 1.0, - 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_impact": [ 6.0, 7.5, 9.0 ], - "range": [ - 1.0, + "base_weapon_range": [ 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "warhammer", - "damage_type": "impact", - "weight": [ - 40.0, + "base_weight": [ 40.0, - 40.0 + 30.0, + 20.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 1.0, - 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_impact": [ 60.0, 75.0, 90.0 ], - "range": [ + "base_weapon_range": [ 1.0, - 1.0, - 1.0 + 1.25, + 1.5 ], - "knockback": [ + "base_weapon_knockback": [ 1.0, 1.0, 1.0 @@ -299,52 +287,50 @@ }, { "name": "rocket", - "damage_type": "explosive", - "weight": [ + "base_weight": [ 60.0, - 60.0, - 60.0 + 45.0, + 30.0 ], - "cooldown": [ - 3.0, + "base_weapon_cooldown": [ 3.0, - 3.0 + 2.25, + 1.5 ], - "damage": [ + "base_weapon_damage_explosive": [ 100.0, 125.0, 150.0 ], - "range": [ - 8.0, + "base_weapon_range": [ 8.0, - 8.0 + 10.0, + 12.0 ] }, { "name": "rocket swarm", - "damage_type": "explosive", - "weight": [ + "base_weight": [ 120.0, - 120.0, - 120.0 + 90.0, + 60.0 ], - "cooldown": [ - 3.0, + "base_weapon_cooldown": [ 3.0, - 3.0 + 2.25, + 1.5 ], - "damage": [ + "base_weapon_damage_explosive": [ 60.0, 75.0, 90.0 ], - "range": [ - 7.0, + "base_weapon_range": [ 7.0, - 7.0 + 8.75, + 10.5 ], - "aoe": [ + "base_weapon_aoe": [ 2.0, 2.0, 2.0 @@ -352,28 +338,27 @@ }, { "name": "tactical rocket", - "damage_type": "explosive", - "weight": [ + "base_weight": [ 160.0, - 160.0, - 160.0 + 120.0, + 80.0 ], - "cooldown": [ - 1.0, + "base_weapon_cooldown": [ 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_explosive": [ 100.0, 125.0, 150.0 ], - "range": [ - 8.0, + "base_weapon_range": [ 8.0, - 8.0 + 10.0, + 12.0 ], - "aoe": [ + "base_weapon_aoe": [ 1.0, 1.0, 1.0 @@ -381,28 +366,27 @@ }, { "name": "nuclear rocket", - "damage_type": "explosive", - "weight": [ - 200.0, + "base_weight": [ 200.0, - 200.0 + 150.0, + 100.0 ], - "cooldown": [ - 6.0, + "base_weapon_cooldown": [ 6.0, - 6.0 + 4.5, + 3.0 ], - "damage": [ + "base_weapon_damage_explosive": [ 300.0, 375.0, 450.0 ], - "range": [ + "base_weapon_range": [ 9.0, - 9.0, - 9.0 + 11.25, + 13.5 ], - "aoe": [ + "base_weapon_aoe": [ 3.0, 3.0, 3.0 @@ -410,172 +394,165 @@ }, { "name": "light laser", - "damage_type": "laser", - "weight": [ - 20.0, + "base_weight": [ 20.0, - 20.0 + 15.0, + 10.0 ], - "cooldown": [ - 1.0, + "base_weapon_cooldown": [ 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_laser": [ 8.0, 10.0, 12.0 ], - "range": [ - 5.0, + "base_weapon_range": [ 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "combined light laser", - "damage_type": "laser", - "weight": [ - 50.0, + "base_weight": [ 50.0, - 50.0 + 37.5, + 25.0 ], - "cooldown": [ - 1.0, + "base_weapon_cooldown": [ 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_laser": [ 20.0, 25.0, 30.0 ], - "range": [ - 6.0, + "base_weapon_range": [ 6.0, - 6.0 + 7.5, + 9.0 ] }, { "name": "heavy laser", - "damage_type": "laser", - "weight": [ - 130.0, + "base_weight": [ 130.0, - 130.0 + 97.5, + 65.0 ], - "cooldown": [ - 1.0, + "base_weapon_cooldown": [ 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_laser": [ 45.0, 56.25, 67.5 ], - "range": [ - 6.0, + "base_weapon_range": [ 6.0, - 6.0 + 7.5, + 9.0 ] }, { "name": "combined heavy laser", - "damage_type": "laser", - "weight": [ - 300.0, + "base_weight": [ 300.0, - 300.0 + 225.0, + 150.0 ], - "cooldown": [ - 1.0, + "base_weapon_cooldown": [ 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_laser": [ 150.0, 187.5, 225.0 ], - "range": [ - 7.0, + "base_weapon_range": [ 7.0, - 7.0 + 8.75, + 10.5 ] }, { "name": "plasma cannon", - "damage_type": "fusion", - "weight": [ + "base_weight": [ 80.0, - 80.0, - 80.0 + 60.0, + 40.0 ], - "cooldown": [ - 2.0, + "base_weapon_cooldown": [ 2.0, - 2.0 + 1.5, + 1.0 ], - "damage": [ + "base_weapon_damage_fusion": [ 125.0, 156.25, 187.5 ], - "range": [ - 5.0, + "base_weapon_range": [ 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "plasma autocannon", - "damage_type": "fusion", - "weight": [ - 170.0, + "base_weight": [ 170.0, - 170.0 + 127.5, + 85.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 1.0, - 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_fusion": [ 110.0, 137.5, 165.0 ], - "range": [ + "base_weapon_range": [ 5.0, - 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "plasma artillery", - "damage_type": "fusion", - "weight": [ + "base_weight": [ 200.0, - 200.0, - 200.0 + 150.0, + 100.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 3.0, - 3.0, - 3.0 + 2.25, + 1.5 ], - "damage": [ + "base_weapon_damage_fusion": [ 100.0, 125.0, 150.0 ], - "range": [ + "base_weapon_range": [ 7.0, - 7.0, - 7.0 + 8.75, + 10.5 ], - "aoe": [ + "base_weapon_aoe": [ 2.0, 2.0, 2.0 @@ -583,225 +560,216 @@ }, { "name": "fusion blade", - "damage_type": "fusion", - "weight": [ - 15.0, + "base_weight": [ 15.0, - 15.0 + 11.25, + 7.5 ], - "cooldown": [ + "base_weapon_cooldown": [ 1.0, - 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_fusion": [ 15.0, 18.75, 22.5 ], - "range": [ + "base_weapon_range": [ 1.0, - 1.0, - 1.0 + 1.25, + 1.5 ] }, { "name": "fusion lance", - "damage_type": "fusion", - "weight": [ - 50.0, + "base_weight": [ 50.0, - 50.0 + 37.5, + 25.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 1.0, - 1.0, - 1.0 + 0.75, + 0.5 ], - "damage": [ + "base_weapon_damage_fusion": [ 45.0, 56.25, 67.5 ], - "range": [ + "base_weapon_range": [ 2.0, - 2.0, - 2.0 + 2.5, + 3.0 ] }, { "name": "light railgun", - "damage_type": "impact", - "weight": [ - 50.0, + "base_weight": [ 50.0, - 50.0 + 37.5, + 25.0 ], - "cooldown": [ - 2.0, + "base_weapon_cooldown": [ 2.0, - 2.0 + 1.5, + 1.0 ], - "damage": [ + "base_weapon_damage_impact": [ 90.0, 112.5, 135.0 ], - "range": [ - 6.0, + "base_weapon_range": [ 6.0, - 6.0 + 7.5, + 9.0 ] }, { "name": "heavy railgun", - "damage_type": "impact", - "weight": [ - 190.0, + "base_weight": [ 190.0, - 190.0 + 142.5, + 95.0 ], - "cooldown": [ - 3.0, + "base_weapon_cooldown": [ 3.0, - 3.0 + 2.25, + 1.5 ], - "damage": [ + "base_weapon_damage_impact": [ 450.0, 562.5, 675.0 ], - "range": [ - 7.0, + "base_weapon_range": [ 7.0, - 7.0 + 8.75, + 10.5 ] }, { "name": "supercharged railgun", - "damage_type": "impact", - "weight": [ + "base_weight": [ 240.0, - 240.0, - 240.0 + 180.0, + 120.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 4.0, - 4.0, - 4.0 + 3.0, + 2.0 ], - "damage": [ + "base_weapon_damage_impact": [ 1000.0, 1250.0, 1500.0 ], - "range": [ - 8.0, + "base_weapon_range": [ 8.0, - 8.0 + 10.0, + 12.0 ] }, { "name": "discharge beam", - "damage_type": "emp", - "weight": [ - 40.0, + "base_weight": [ 40.0, - 40.0 + 30.0, + 20.0 ], - "cooldown": [ - 2.0, + "base_weapon_cooldown": [ 2.0, - 2.0 + 1.5, + 1.0 ], - "damage_battery": [ + "base_weapon_damage_battery": [ 3.0, 3.0, 3.0 ], - "range": [ - 4.0, + "base_weapon_range": [ 4.0, - 4.0 + 5.0, + 6.0 ] }, { "name": "haywire beam", - "damage_type": "emp", - "weight": [ + "base_weight": [ 50.0, - 50.0, - 50.0 + 37.5, + 25.0 ], - "cooldown": [ - 5.0, + "base_weapon_cooldown": [ 5.0, - 5.0 + 3.75, + 2.5 ], - "damage": [ + "base_weapon_damage_emp": [ 80.0, 100.0, 120.0 ], - "damage_battery": [ + "base_weapon_damage_battery": [ 5.0, 5.0, 5.0 ], - "range": [ - 6.0, + "base_weapon_range": [ 6.0, - 6.0 + 7.5, + 9.0 ] }, { "name": "stun beam", - "damage_type": "emp", - "weight": [ + "base_weight": [ 80.0, - 80.0, - 80.0 + 60.0, + 40.0 ], - "cooldown": [ - 5.0, + "base_weapon_cooldown": [ 5.0, - 5.0 + 3.75, + 2.5 ], - "stun": [ + "base_weapon_stun": [ 1.0, 1.0, 1.0 ], - "range": [ - 4.0, + "base_weapon_range": [ 4.0, - 4.0 + 5.0, + 6.0 ] }, { "name": "amplified discharge impulse", - "damage_type": "emp", - "weight": [ - 150.0, + "base_weight": [ 150.0, - 150.0 + 112.5, + 75.0 ], - "cooldown": [ - 3.0, + "base_weapon_cooldown": [ 3.0, - 3.0 + 2.25, + 1.5 ], - "damage_battery": [ + "base_weapon_damage_battery": [ 10.0, 10.0, 10.0 ], - "range": [ - 5.0, + "base_weapon_range": [ 5.0, - 5.0 + 6.25, + 7.5 ], - "aoe": [ + "base_weapon_aoe": [ 1.0, 1.0, 1.0 @@ -809,139 +777,134 @@ }, { "name": "amplified haywire beam", - "damage_type": "emp", - "weight": [ + "base_weight": [ 120.0, - 120.0, - 120.0 + 90.0, + 60.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 5.0, - 5.0, - 5.0 + 3.75, + 2.5 ], - "damage": [ + "base_weapon_damage_emp": [ 200.0, 250.0, 300.0 ], - "damage_battery": [ + "base_weapon_damage_battery": [ 12.0, 12.0, 12.0 ], - "range": [ + "base_weapon_range": [ 6.0, - 6.0, - 6.0 + 7.5, + 9.0 ] }, { "name": "amplified stun beam", - "damage_type": "emp", - "weight": [ - 200.0, + "base_weight": [ 200.0, - 200.0 + 150.0, + 100.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 6.0, - 6.0, - 6.0 + 4.5, + 3.0 ], - "stun": [ + "base_weapon_stun": [ 1.0, 1.0, 1.0 ], - "range": [ - 4.0, + "base_weapon_range": [ 4.0, - 4.0 + 5.0, + 6.0 ] }, { "name": "ion cannon", - "damage_type": "emp", - "weight": [ - 75.0, + "base_weight": [ 75.0, - 75.0 + 56.25, + 37.5 ], - "cooldown": [ + "base_weapon_cooldown": [ 2.0, - 2.0, - 2.0 + 1.5, + 1.0 ], - "reduce_fusion": [ + "base_weapon_reduce_fusion": [ 1.0, 1.0, 1.0 ], - "reduce_laser": [ + "base_weapon_reduce_laser": [ 1.0, 1.0, 1.0 ], - "range": [ - 5.0, + "base_weapon_range": [ 5.0, - 5.0 + 6.25, + 7.5 ] }, { "name": "heavy ion cannon", - "damage_type": "emp", - "weight": [ + "base_weight": [ 150.0, - 150.0, - 150.0 + 112.5, + 75.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 1.0, - 1.0, - 1.0 + 0.75, + 0.5 ], - "reduce_fusion": [ + "base_weapon_reduce_fusion": [ 1.0, 1.0, 1.0 ], - "reduce_laser": [ + "base_weapon_reduce_laser": [ 1.0, 1.0, 1.0 ], - "range": [ + "base_weapon_range": [ 6.0, - 6.0, - 6.0 + 7.5, + 9.0 ] }, { "name": "explosive charges", - "damage_type": "explosive", - "weight": [ - 5.0, + "base_weight": [ 5.0, - 5.0 + 3.75, + 2.5 ], - "cooldown": [ - 10.0, + "base_weapon_cooldown": [ 10.0, - 10.0 + 7.5, + 5.0 ], - "damage": [ + "base_weapon_damage_explosive": [ 100.0, 125.0, 150.0 ], - "range": [ + "base_weapon_range": [ 0.0, 0.0, 0.0 ], - "aoe": [ + "base_weapon_aoe": [ 2.0, 2.0, 2.0 @@ -949,26 +912,25 @@ }, { "name": "javelin", - "damage_type": "explosive", - "weight": [ - 60.0, + "base_weight": [ 60.0, - 60.0 + 45.0, + 30.0 ], - "cooldown": [ + "base_weapon_cooldown": [ 2.0, - 2.0, - 2.0 + 1.5, + 1.0 ], - "damage": [ + "base_weapon_damage_explosive": [ 40.0, 50.0, 60.0 ], - "range": [ - 7.0, + "base_weapon_range": [ 7.0, - 7.0 + 8.75, + 10.5 ] } ] \ No newline at end of file diff --git a/build/test.exe b/build/test.exe index 785d8e1..9182145 100644 Binary files a/build/test.exe and b/build/test.exe differ -- cgit v1.2.3-54-g00ecf