diff --git a/analyze.py b/analyze.py new file mode 100644 index 0000000..79a4607 --- /dev/null +++ b/analyze.py @@ -0,0 +1,57 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +""" + Tool to analyze Logs in general. +""" +import os, sys, logging +from logs.logfiles import LogFileResolver as LogFile +from logs import combat, game, chat +from logs.session import LogSessionCollector +from logs.game import ClientInfo + +# for windows its kinda this: +settings = {'root_path': os.path.join(os.path.expanduser('~'), + 'Documents', + 'My Games', + 'StarConflict',), + 'logfiles': os.path.join(os.path.expanduser('~'), + 'Documents', + 'My Games', + 'StarConflict', + 'logs' + )} + + +if __name__ == '__main__': + coll = LogSessionCollector(os.path.join(os.path.expanduser('~'), + 'Documents', 'My Games', 'sc')) + coll.collect_unique() + #f = open('output.txt', 'w') + rex = {} + for logf in coll.sessions: + logf.parse_files(['game.log',]) + print "Combat Log %s" % logf.idstr + if logf.combat_log: + for l in logf.combat_log.lines: + if isinstance(l, dict): + #print l + pass + else: + if not l.unpack(): + rex[l.__class__.__name__] = rex.get(l.__class__.__name__, 0) + 1 + if not isinstance(l, combat.UserEvent): + print l.values['log'] + if logf.game_log: + for l in logf.game_log.lines: + if isinstance(l, dict): + pass + else: + if l.unpack(): + pass + else: + print l.values['log'] + # ClientInfo introspection for ping + if isinstance(l, ClientInfo) and l.values.get('clinfo', '') == 'avgPing': + print l.values + # fix avgPing parsing! + print rex diff --git a/app.py b/app.py index eddaa31..db66202 100644 --- a/app.py +++ b/app.py @@ -1,5 +1,5 @@ - - +#!/usr/bin/python +# -*- coding: utf-8 -*- """ Main application functions. diff --git a/backup.py b/backup.py index ea3c1ca..29bb191 100644 --- a/backup.py +++ b/backup.py @@ -1,3 +1,5 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- """ Backup Directories, Handle Files... """ diff --git a/battle.py b/battle.py index e69de29..5bcfe9b 100644 --- a/battle.py +++ b/battle.py @@ -0,0 +1,2 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- diff --git a/brainstorm.py b/brainstorm.py index 19fe4ba..df6fcda 100644 --- a/brainstorm.py +++ b/brainstorm.py @@ -16,7 +16,7 @@ """ #from win32com.shell import shell, shellcon import os, sys, logging -from logs.logresolver import LogFileResolver as LogFile +from logs.logfiles import LogFileResolver as LogFile from logs import combat # for windows its kinda this: diff --git a/dj/scon/fixtures/generated.json b/dj/scon/fixtures/generated.json index eccd332..14d3902 100644 --- a/dj/scon/fixtures/generated.json +++ b/dj/scon/fixtures/generated.json @@ -1 +1 @@ -[{"fields": {"sell_price": 6600, "tech": 0, "name": "Tungsten ore", "craftable": true, "typ": 12, "icon": "resource_tungsten_ore"}, "model": "scon.item", "pk": 1}, {"fields": {"sell_price": 4500, "tech": 0, "name": "Osmium ore", "craftable": true, "typ": 12, "icon": "resource_osmium_ore"}, "model": "scon.item", "pk": 2}, {"fields": {"sell_price": 600, "tech": 0, "name": "Silicon ore", "craftable": true, "typ": 12, "icon": "resource_silicon_ore"}, "model": "scon.item", "pk": 3}, {"fields": {"sell_price": 500, "tech": 0, "name": "Vanadium", "craftable": true, "typ": 12, "icon": "resource_vanadium"}, "model": "scon.item", "pk": 4}, {"fields": {"sell_price": 3500, "tech": 0, "name": "Crystal shard", "craftable": true, "typ": 12, "icon": "resource_crystal_shard"}, "model": "scon.item", "pk": 5}, {"fields": {"sell_price": 20000, "tech": 0, "name": "Tungsten plate", "description": "Durable tungsten plate", "craftable": true, "typ": 13, "icon": "component_tungsten_plate"}, "model": "scon.item", "pk": 6}, {"fields": {"sell_price": 42000, "tech": 0, "name": "Screened battery", "craftable": true, "typ": 13, "icon": "component_screened_battery"}, "model": "scon.item", "pk": 7}, {"fields": {"sell_price": 5500, "tech": 0, "name": "Osmium crystals", "craftable": true, "typ": 13, "icon": "component_osmium_crystals"}, "model": "scon.item", "pk": 8}, {"fields": {"sell_price": 2500, "tech": 0, "name": "Pure Silicon", "craftable": true, "typ": 13, "icon": "component_pure_silicon"}, "model": "scon.item", "pk": 9}, {"fields": {"sell_price": 22000, "tech": 0, "name": "Processing block", "craftable": true, "typ": 13, "icon": "component_processing_block"}, "model": "scon.item", "pk": 10}, {"fields": {"sell_price": 1600, "tech": 0, "name": "Metal blank", "craftable": true, "typ": 13, "icon": "component_metal_blank"}, "model": "scon.item", "pk": 11}, {"fields": {"sell_price": 25000, "tech": 0, "name": "Alien Monocrystal", "craftable": true, "typ": 13, "icon": "component_alien_monocrystal"}, "model": "scon.item", "pk": 12}, {"fields": {"sell_price": 4500, "tech": 0, "name": "Computing chip", "craftable": true, "typ": 13, "icon": "component_computing_chip"}, "model": "scon.item", "pk": 13}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Explosive Shells", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_explosive_shells_mk4"}, "model": "scon.item", "pk": 14}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Double Deflector", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_double_deflector_mk4"}, "model": "scon.item", "pk": 15}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Xenon Lamp", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_xenon_lamp_mk4"}, "model": "scon.item", "pk": 16}, {"fields": {"sell_price": 1092, "tech": 0, "name": "Attack Drone", "quality": 10, "craftable": true, "typ": 8, "icon": "ammo_attack_drone"}, "model": "scon.item", "pk": 17}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Focusing Lens", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_focusing_lens"}, "model": "scon.item", "pk": 18}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Iridium Slugs", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_iridium_slugs"}, "model": "scon.item", "pk": 19}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Supercooled Charges", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_supercooled_charges"}, "model": "scon.item", "pk": 20}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Doomsday Missile", "quality": 1, "craftable": true, "typ": 8, "icon": "ammo_doomsday_missile"}, "model": "scon.item", "pk": 21}, {"fields": {"sell_price": 8000, "buy_price_premium": 200, "name": "Duplicator", "icon": "duplicator", "craftable": true, "typ": 0, "description": "Revives in Invasion with Cargo once."}, "model": "scon.item", "pk": 22}, {"fields": {"name": "A1MA IV", "typ": 8, "craftable": true, "sell_price": 26910, "tech": 4, "role": 0, "quality": 1, "icon": "active_a1ma"}, "model": "scon.item", "pk": 23}, {"fields": {"tech": 5, "name": "Pirate \"Orion\" Targeting Complex V", "role": 3, "craftable": true, "quality": 14, "typ": 8, "icon": "active_t5_orion_targeting_complex_pirate"}, "model": "scon.item", "pk": 24}, {"fields": {"tech": 5, "name": "Pirate Engine Overcharge V", "role": 6, "craftable": true, "quality": 14, "typ": 8, "icon": "active_t5_engine_overcharge_pirate"}, "model": "scon.item", "pk": 25}, {"fields": {"tech": 5, "name": "Pirate Mass Shield Generator V", "role": 7, "craftable": true, "quality": 14, "typ": 8, "icon": "active_t5_mass_shield_generator_pirate"}, "model": "scon.item", "pk": 26}, {"fields": {"tech": 3, "name": "Reverse Thruster III", "role": 9, "craftable": true, "quality": 1, "typ": 8, "icon": "active_reverse_thruster"}, "model": "scon.item", "pk": 27}, {"fields": {"tech": 4, "name": "Reverse Thruster IV", "role": 9, "craftable": true, "quality": 1, "typ": 8, "icon": "active_reverse_thruster"}, "model": "scon.item", "pk": 28}, {"fields": {"tech": 5, "name": "Reverse Thruster V", "role": 9, "craftable": true, "quality": 1, "typ": 8, "icon": "active_reverse_thruster"}, "model": "scon.item", "pk": 29}, {"fields": {"tech": 3, "name": "Plasma Gun III", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_plasma_gun_mk5"}, "model": "scon.item", "pk": 30}, {"fields": {"tech": 4, "name": "Plasma Gun IV", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_plasma_gun_mk5"}, "model": "scon.item", "pk": 31}, {"fields": {"tech": 5, "name": "Plasma Gun V", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_plasma_gun_mk5"}, "model": "scon.item", "pk": 32}, {"fields": {"tech": 3, "name": "Assault Railgun III", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_assault_rail_mk5"}, "model": "scon.item", "pk": 33}, {"fields": {"tech": 4, "name": "Assault Railgun IV", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_assault_rail_mk5"}, "model": "scon.item", "pk": 34}, {"fields": {"tech": 5, "name": "Assault Railgun V", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_assault_rail_mk5"}, "model": "scon.item", "pk": 35}, {"fields": {"tech": 3, "name": "Beam Cannon III", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_beam_cannon_mk5"}, "model": "scon.item", "pk": 36}, {"fields": {"tech": 4, "name": "Beam Cannon IV", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_beam_cannon_mk5"}, "model": "scon.item", "pk": 37}, {"fields": {"tech": 5, "name": "Beam Cannon V", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_beam_cannon_mk5"}, "model": "scon.item", "pk": 38}, {"fields": {"sell_price": 20188, "tech": 3, "name": "Target Tracking Coprocessor III", "icon": "cpu_target_tracking_coprocessor", "craftable": false, "typ": 5, "description": "Increases Critical Damage"}, "model": "scon.item", "pk": 39}, {"fields": {"tech": 3, "name": "Plasma Gun III", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_plasma_gun"}, "model": "scon.item", "pk": 40}, {"fields": {"tech": 4, "name": "Plasma Gun IV", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_plasma_gun"}, "model": "scon.item", "pk": 41}, {"fields": {"tech": 5, "name": "Plasma Gun V", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_plasma_gun"}, "model": "scon.item", "pk": 42}, {"fields": {"tech": 3, "name": "Assault Railgun III", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_assault_railgun"}, "model": "scon.item", "pk": 43}, {"fields": {"tech": 4, "name": "Assault Railgun IV", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_assault_railgun"}, "model": "scon.item", "pk": 44}, {"fields": {"tech": 5, "name": "Assault Railgun V", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_assault_railgun"}, "model": "scon.item", "pk": 45}, {"fields": {"tech": 3, "name": "Beam Cannon III", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_beam_cannon"}, "model": "scon.item", "pk": 46}, {"fields": {"tech": 4, "name": "Beam Cannon IV", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_beam_cannon"}, "model": "scon.item", "pk": 47}, {"fields": {"tech": 5, "name": "Beam Cannon V", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_beam_cannon"}, "model": "scon.item", "pk": 48}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Focusing Lens Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 49}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Iridium Slugs Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 50}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Supercooled Charges Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 51}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "A1MA T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 52}, {"fields": {"tech": 0, "name": "Orion-2 Targeting Complex Blueprint", "description": "Module works twice as long but much weaker.", "craftable": true, "typ": 11, "icon": "blueprint"}, "model": "scon.item", "pk": 53}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Engine Warp Overcharge Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 54}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Mass Shield Energizer Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 55}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Reverse Thruster T3 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 56}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Reverse Thruster T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 57}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Reverse Thruster T5 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 58}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Beam Cannon Prototype T3 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 59}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Beam Cannon Prototype T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 60}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Beam Cannon Prototype T5 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 61}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Assault Railgun Prototype T3 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 62}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Assault Railgun Prototype T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 63}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Assault Railgun Prototype T5 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 64}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Plasma Gun Prototype T3 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 65}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Plasma Gun Prototype T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 66}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Plasma Gun Prototype T5 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 67}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Doomsday Missile Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 68}, {"pk": 1, "model": "scon.crafting", "fields": {"output": 22, "amount": 1}}, {"pk": 1, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 1, "amount": 1, "primary": true}}, {"pk": 2, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 1, "amount": 2, "primary": false}}, {"pk": 3, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 1, "amount": 2, "primary": false}}, {"pk": 2, "model": "scon.crafting", "fields": {"output": 6, "amount": 1}}, {"pk": 4, "model": "scon.craftinginput", "fields": {"item": 1, "crafting": 2, "amount": 2, "primary": true}}, {"pk": 3, "model": "scon.crafting", "fields": {"output": 7, "amount": 1}}, {"pk": 5, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 3, "amount": 1, "primary": true}}, {"pk": 6, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 3, "amount": 2, "primary": false}}, {"pk": 4, "model": "scon.crafting", "fields": {"output": 8, "amount": 1}}, {"pk": 7, "model": "scon.craftinginput", "fields": {"item": 2, "crafting": 4, "amount": 1, "primary": true}}, {"pk": 5, "model": "scon.crafting", "fields": {"output": 9, "amount": 1}}, {"pk": 8, "model": "scon.craftinginput", "fields": {"item": 3, "crafting": 5, "amount": 1, "primary": true}}, {"pk": 6, "model": "scon.crafting", "fields": {"output": 13, "amount": 1}}, {"pk": 9, "model": "scon.craftinginput", "fields": {"item": 5, "crafting": 6, "amount": 1, "primary": true}}, {"pk": 7, "model": "scon.crafting", "fields": {"output": 10, "amount": 1}}, {"pk": 10, "model": "scon.craftinginput", "fields": {"item": 9, "crafting": 7, "amount": 4, "primary": true}}, {"pk": 11, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 7, "amount": 2, "primary": false}}, {"pk": 8, "model": "scon.crafting", "fields": {"output": 11, "amount": 1}}, {"pk": 12, "model": "scon.craftinginput", "fields": {"item": 4, "crafting": 8, "amount": 2, "primary": true}}, {"pk": 9, "model": "scon.crafting", "fields": {"output": 39, "amount": 1}}, {"pk": 13, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 9, "amount": 1, "primary": true}}, {"pk": 14, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 9, "amount": 7, "primary": false}}, {"pk": 15, "model": "scon.craftinginput", "fields": {"item": 9, "crafting": 9, "amount": 5, "primary": false}}, {"pk": 10, "model": "scon.crafting", "fields": {"output": 14, "amount": 2}}, {"pk": 16, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 10, "amount": 1, "primary": true}}, {"pk": 17, "model": "scon.craftinginput", "fields": {"item": 9, "crafting": 10, "amount": 2, "primary": false}}, {"pk": 11, "model": "scon.crafting", "fields": {"output": 17, "amount": 1}}, {"pk": 18, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 11, "amount": 1, "primary": true}}, {"pk": 19, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 11, "amount": 1, "primary": false}}, {"pk": 12, "model": "scon.crafting", "fields": {"output": 15, "amount": 2}}, {"pk": 20, "model": "scon.craftinginput", "fields": {"item": 8, "crafting": 12, "amount": 1, "primary": true}}, {"pk": 13, "model": "scon.crafting", "fields": {"output": 16, "amount": 2}}, {"pk": 21, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 13, "amount": 1, "primary": true}}, {"pk": 22, "model": "scon.craftinginput", "fields": {"item": 9, "crafting": 13, "amount": 1, "primary": false}}, {"pk": 14, "model": "scon.crafting", "fields": {"output": 18, "amount": 2}}, {"pk": 23, "model": "scon.craftinginput", "fields": {"item": 49, "crafting": 14, "amount": 1, "primary": true}}, {"pk": 24, "model": "scon.craftinginput", "fields": {"item": 8, "crafting": 14, "amount": 1, "primary": false}}, {"pk": 15, "model": "scon.crafting", "fields": {"output": 20, "amount": 2}}, {"pk": 25, "model": "scon.craftinginput", "fields": {"item": 51, "crafting": 15, "amount": 1, "primary": true}}, {"pk": 26, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 15, "amount": 1, "primary": false}}, {"pk": 16, "model": "scon.crafting", "fields": {"output": 19, "amount": 2}}, {"pk": 27, "model": "scon.craftinginput", "fields": {"item": 50, "crafting": 16, "amount": 1, "primary": true}}, {"pk": 28, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 16, "amount": 1, "primary": false}}, {"pk": 17, "model": "scon.crafting", "fields": {"output": 23, "amount": 1}}, {"pk": 29, "model": "scon.craftinginput", "fields": {"item": 52, "crafting": 17, "amount": 1, "primary": true}}, {"pk": 30, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 17, "amount": 2, "primary": false}}, {"pk": 31, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 17, "amount": 14, "primary": false}}, {"pk": 32, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 17, "amount": 2, "primary": false}}, {"pk": 33, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 17, "amount": 20, "primary": false}}, {"pk": 18, "model": "scon.crafting", "fields": {"output": 24, "amount": 1}}, {"pk": 34, "model": "scon.craftinginput", "fields": {"item": 53, "crafting": 18, "amount": 1, "primary": true}}, {"pk": 35, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 18, "amount": 3, "primary": false}}, {"pk": 36, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 18, "amount": 4, "primary": false}}, {"pk": 37, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 18, "amount": 2, "primary": false}}, {"pk": 38, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 18, "amount": 30, "primary": false}}, {"pk": 19, "model": "scon.crafting", "fields": {"output": 25, "amount": 1}}, {"pk": 39, "model": "scon.craftinginput", "fields": {"item": 54, "crafting": 19, "amount": 1, "primary": true}}, {"pk": 40, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 19, "amount": 3, "primary": false}}, {"pk": 41, "model": "scon.craftinginput", "fields": {"item": 8, "crafting": 19, "amount": 2, "primary": false}}, {"pk": 42, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 19, "amount": 2, "primary": false}}, {"pk": 43, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 19, "amount": 30, "primary": false}}, {"pk": 20, "model": "scon.crafting", "fields": {"output": 26, "amount": 1}}, {"pk": 44, "model": "scon.craftinginput", "fields": {"item": 55, "crafting": 20, "amount": 1, "primary": true}}, {"pk": 45, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 20, "amount": 10, "primary": false}}, {"pk": 46, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 20, "amount": 3, "primary": false}}, {"pk": 47, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 20, "amount": 3, "primary": false}}, {"pk": 48, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 20, "amount": 30, "primary": false}}, {"pk": 21, "model": "scon.crafting", "fields": {"output": 27, "amount": 1}}, {"pk": 49, "model": "scon.craftinginput", "fields": {"item": 56, "crafting": 21, "amount": 1, "primary": true}}, {"pk": 50, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 21, "amount": 7, "primary": false}}, {"pk": 51, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 21, "amount": 1, "primary": false}}, {"pk": 52, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 21, "amount": 4, "primary": false}}, {"pk": 53, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 21, "amount": 15, "primary": false}}, {"pk": 22, "model": "scon.crafting", "fields": {"output": 28, "amount": 1}}, {"pk": 54, "model": "scon.craftinginput", "fields": {"item": 57, "crafting": 22, "amount": 1, "primary": true}}, {"pk": 55, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 22, "amount": 12, "primary": false}}, {"pk": 56, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 22, "amount": 2, "primary": false}}, {"pk": 57, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 22, "amount": 5, "primary": false}}, {"pk": 58, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 22, "amount": 20, "primary": false}}, {"pk": 23, "model": "scon.crafting", "fields": {"output": 29, "amount": 1}}, {"pk": 59, "model": "scon.craftinginput", "fields": {"item": 58, "crafting": 23, "amount": 1, "primary": true}}, {"pk": 60, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 23, "amount": 7, "primary": false}}, {"pk": 61, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 23, "amount": 3, "primary": false}}, {"pk": 62, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 23, "amount": 6, "primary": false}}, {"pk": 63, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 23, "amount": 30, "primary": false}}, {"pk": 24, "model": "scon.crafting", "fields": {"output": 30, "amount": 1}}, {"pk": 64, "model": "scon.craftinginput", "fields": {"item": 65, "crafting": 24, "amount": 1, "primary": true}}, {"pk": 65, "model": "scon.craftinginput", "fields": {"item": 40, "crafting": 24, "amount": 1, "primary": false}}, {"pk": 66, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 24, "amount": 6, "primary": false}}, {"pk": 67, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 24, "amount": 3, "primary": false}}, {"pk": 68, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 24, "amount": 30, "primary": false}}, {"pk": 25, "model": "scon.crafting", "fields": {"output": 31, "amount": 1}}, {"pk": 69, "model": "scon.craftinginput", "fields": {"item": 66, "crafting": 25, "amount": 1, "primary": true}}, {"pk": 70, "model": "scon.craftinginput", "fields": {"item": 41, "crafting": 25, "amount": 1, "primary": false}}, {"pk": 71, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 25, "amount": 1, "primary": false}}, {"pk": 72, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 25, "amount": 4, "primary": false}}, {"pk": 73, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 25, "amount": 50, "primary": false}}, {"pk": 26, "model": "scon.crafting", "fields": {"output": 32, "amount": 1}}, {"pk": 74, "model": "scon.craftinginput", "fields": {"item": 67, "crafting": 26, "amount": 1, "primary": true}}, {"pk": 75, "model": "scon.craftinginput", "fields": {"item": 42, "crafting": 26, "amount": 1, "primary": false}}, {"pk": 76, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 26, "amount": 3, "primary": false}}, {"pk": 77, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 26, "amount": 5, "primary": false}}, {"pk": 78, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 26, "amount": 70, "primary": false}}, {"pk": 27, "model": "scon.crafting", "fields": {"output": 33, "amount": 1}}, {"pk": 79, "model": "scon.craftinginput", "fields": {"item": 62, "crafting": 27, "amount": 1, "primary": true}}, {"pk": 80, "model": "scon.craftinginput", "fields": {"item": 43, "crafting": 27, "amount": 1, "primary": false}}, {"pk": 81, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 27, "amount": 6, "primary": false}}, {"pk": 82, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 27, "amount": 3, "primary": false}}, {"pk": 83, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 27, "amount": 30, "primary": false}}, {"pk": 28, "model": "scon.crafting", "fields": {"output": 34, "amount": 1}}, {"pk": 84, "model": "scon.craftinginput", "fields": {"item": 63, "crafting": 28, "amount": 1, "primary": true}}, {"pk": 85, "model": "scon.craftinginput", "fields": {"item": 44, "crafting": 28, "amount": 1, "primary": false}}, {"pk": 86, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 28, "amount": 1, "primary": false}}, {"pk": 87, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 28, "amount": 4, "primary": false}}, {"pk": 88, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 28, "amount": 50, "primary": false}}, {"pk": 29, "model": "scon.crafting", "fields": {"output": 35, "amount": 1}}, {"pk": 89, "model": "scon.craftinginput", "fields": {"item": 64, "crafting": 29, "amount": 1, "primary": true}}, {"pk": 90, "model": "scon.craftinginput", "fields": {"item": 45, "crafting": 29, "amount": 1, "primary": false}}, {"pk": 91, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 29, "amount": 3, "primary": false}}, {"pk": 92, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 29, "amount": 5, "primary": false}}, {"pk": 93, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 29, "amount": 70, "primary": false}}, {"pk": 30, "model": "scon.crafting", "fields": {"output": 36, "amount": 1}}, {"pk": 94, "model": "scon.craftinginput", "fields": {"item": 59, "crafting": 30, "amount": 1, "primary": true}}, {"pk": 95, "model": "scon.craftinginput", "fields": {"item": 46, "crafting": 30, "amount": 1, "primary": false}}, {"pk": 96, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 30, "amount": 6, "primary": false}}, {"pk": 97, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 30, "amount": 3, "primary": false}}, {"pk": 98, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 30, "amount": 30, "primary": false}}, {"pk": 31, "model": "scon.crafting", "fields": {"output": 37, "amount": 1}}, {"pk": 99, "model": "scon.craftinginput", "fields": {"item": 60, "crafting": 31, "amount": 1, "primary": true}}, {"pk": 100, "model": "scon.craftinginput", "fields": {"item": 47, "crafting": 31, "amount": 1, "primary": false}}, {"pk": 101, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 31, "amount": 1, "primary": false}}, {"pk": 102, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 31, "amount": 4, "primary": false}}, {"pk": 103, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 31, "amount": 50, "primary": false}}, {"pk": 32, "model": "scon.crafting", "fields": {"output": 38, "amount": 1}}, {"pk": 104, "model": "scon.craftinginput", "fields": {"item": 61, "crafting": 32, "amount": 1, "primary": true}}, {"pk": 105, "model": "scon.craftinginput", "fields": {"item": 48, "crafting": 32, "amount": 1, "primary": false}}, {"pk": 106, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 32, "amount": 3, "primary": false}}, {"pk": 107, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 32, "amount": 5, "primary": false}}, {"pk": 108, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 32, "amount": 70, "primary": false}}, {"pk": 33, "model": "scon.crafting", "fields": {"output": 21, "amount": 1}}, {"pk": 109, "model": "scon.craftinginput", "fields": {"item": 68, "crafting": 33, "amount": 1, "primary": true}}, {"pk": 110, "model": "scon.craftinginput", "fields": {"item": 8, "crafting": 33, "amount": 2, "primary": false}}, {"pk": 111, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 33, "amount": 1, "primary": false}}, {"pk": 112, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 33, "amount": 1, "primary": false}}] \ No newline at end of file +[{"fields": {"sell_price": 6600, "tech": 0, "name": "Impure tungsten", "craftable": true, "typ": 12, "icon": "resource_tungsten_ore"}, "model": "scon.item", "pk": 1}, {"fields": {"sell_price": 4500, "tech": 0, "name": "Impure osmium", "craftable": true, "typ": 12, "icon": "resource_osmium_ore"}, "model": "scon.item", "pk": 2}, {"fields": {"sell_price": 600, "tech": 0, "name": "Impure silicon", "craftable": true, "typ": 12, "icon": "resource_silicon_ore"}, "model": "scon.item", "pk": 3}, {"fields": {"sell_price": 500, "tech": 0, "name": "Vanadium", "craftable": true, "typ": 12, "icon": "resource_vanadium"}, "model": "scon.item", "pk": 4}, {"fields": {"sell_price": 3500, "tech": 0, "name": "Crystal shard", "craftable": true, "typ": 12, "icon": "resource_crystal_shard"}, "model": "scon.item", "pk": 5}, {"fields": {"sell_price": 20000, "tech": 0, "name": "Tungsten plate", "description": "Durable tungsten plate", "craftable": true, "typ": 13, "icon": "component_tungsten_plate"}, "model": "scon.item", "pk": 6}, {"fields": {"sell_price": 42000, "tech": 0, "name": "Screened battery", "craftable": true, "typ": 13, "icon": "component_screened_battery"}, "model": "scon.item", "pk": 7}, {"fields": {"sell_price": 5500, "tech": 0, "name": "Osmium crystals", "craftable": true, "typ": 13, "icon": "component_osmium_crystals"}, "model": "scon.item", "pk": 8}, {"fields": {"sell_price": 2500, "tech": 0, "name": "Pure Silicon", "craftable": true, "typ": 13, "icon": "component_pure_silicon"}, "model": "scon.item", "pk": 9}, {"fields": {"sell_price": 22000, "tech": 0, "name": "Processing block", "craftable": true, "typ": 13, "icon": "component_processing_block"}, "model": "scon.item", "pk": 10}, {"fields": {"sell_price": 1600, "tech": 0, "name": "Metal blank", "craftable": true, "typ": 13, "icon": "component_metal_blank"}, "model": "scon.item", "pk": 11}, {"fields": {"sell_price": 25000, "tech": 0, "name": "Alien Monocrystal", "craftable": true, "typ": 13, "icon": "component_alien_monocrystal"}, "model": "scon.item", "pk": 12}, {"fields": {"sell_price": 4500, "tech": 0, "name": "Computing chip", "craftable": true, "typ": 13, "icon": "component_computing_chip"}, "model": "scon.item", "pk": 13}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Explosive Shells", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_explosive_shells_mk4"}, "model": "scon.item", "pk": 14}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Double Deflector", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_double_deflector_mk4"}, "model": "scon.item", "pk": 15}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Xenon Lamp", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_xenon_lamp_mk4"}, "model": "scon.item", "pk": 16}, {"fields": {"sell_price": 1092, "tech": 0, "name": "Attack Drone", "quality": 10, "craftable": true, "typ": 8, "icon": "ammo_attack_drone"}, "model": "scon.item", "pk": 17}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Focusing Lens", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_focusing_lens"}, "model": "scon.item", "pk": 18}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Iridium Slugs", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_iridium_slugs"}, "model": "scon.item", "pk": 19}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Supercooled Charges", "quality": 4, "craftable": true, "typ": 8, "icon": "ammo_supercooled_charges"}, "model": "scon.item", "pk": 20}, {"fields": {"sell_price": 1000, "tech": 0, "name": "Doomsday Missile", "quality": 1, "craftable": true, "typ": 8, "icon": "ammo_doomsday_missile"}, "model": "scon.item", "pk": 21}, {"fields": {"sell_price": 8000, "buy_price_premium": 200, "name": "Duplicator", "icon": "duplicator", "craftable": true, "typ": 0, "description": "Revives in Invasion with Cargo once."}, "model": "scon.item", "pk": 22}, {"fields": {"name": "A1MA IV", "typ": 8, "craftable": true, "sell_price": 26910, "tech": 4, "role": 0, "quality": 1, "icon": "active_a1ma"}, "model": "scon.item", "pk": 23}, {"fields": {"tech": 5, "name": "Pirate \"Orion\" Targeting Complex V", "role": 3, "craftable": true, "quality": 14, "typ": 8, "icon": "active_t5_orion_targeting_complex_pirate"}, "model": "scon.item", "pk": 24}, {"fields": {"tech": 5, "name": "Pirate Engine Overcharge V", "role": 6, "craftable": true, "quality": 14, "typ": 8, "icon": "active_t5_engine_overcharge_pirate"}, "model": "scon.item", "pk": 25}, {"fields": {"tech": 5, "name": "Pirate Mass Shield Generator V", "role": 7, "craftable": true, "quality": 14, "typ": 8, "icon": "active_t5_mass_shield_generator_pirate"}, "model": "scon.item", "pk": 26}, {"fields": {"tech": 3, "name": "Reverse Thruster III", "role": 9, "craftable": true, "quality": 1, "typ": 8, "icon": "active_reverse_thruster"}, "model": "scon.item", "pk": 27}, {"fields": {"tech": 4, "name": "Reverse Thruster IV", "role": 9, "craftable": true, "quality": 1, "typ": 8, "icon": "active_reverse_thruster"}, "model": "scon.item", "pk": 28}, {"fields": {"tech": 5, "name": "Reverse Thruster V", "role": 9, "craftable": true, "quality": 1, "typ": 8, "icon": "active_reverse_thruster"}, "model": "scon.item", "pk": 29}, {"fields": {"tech": 3, "name": "Plasma Gun III", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_plasma_gun_mk5"}, "model": "scon.item", "pk": 30}, {"fields": {"tech": 4, "name": "Plasma Gun IV", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_plasma_gun_mk5"}, "model": "scon.item", "pk": 31}, {"fields": {"tech": 5, "name": "Plasma Gun V", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_plasma_gun_mk5"}, "model": "scon.item", "pk": 32}, {"fields": {"tech": 3, "name": "Assault Railgun III", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_assault_rail_mk5"}, "model": "scon.item", "pk": 33}, {"fields": {"tech": 4, "name": "Assault Railgun IV", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_assault_rail_mk5"}, "model": "scon.item", "pk": 34}, {"fields": {"tech": 5, "name": "Assault Railgun V", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_assault_rail_mk5"}, "model": "scon.item", "pk": 35}, {"fields": {"tech": 3, "name": "Beam Cannon III", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_beam_cannon_mk5"}, "model": "scon.item", "pk": 36}, {"fields": {"tech": 4, "name": "Beam Cannon IV", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_beam_cannon_mk5"}, "model": "scon.item", "pk": 37}, {"fields": {"tech": 5, "name": "Beam Cannon V", "quality": 5, "craftable": true, "typ": 7, "icon": "weapon_beam_cannon_mk5"}, "model": "scon.item", "pk": 38}, {"fields": {"sell_price": 20188, "tech": 3, "name": "Target Tracking Coprocessor III", "icon": "cpu_target_tracking_coprocessor", "craftable": false, "typ": 5, "description": "Increases Critical Damage"}, "model": "scon.item", "pk": 39}, {"fields": {"tech": 3, "name": "Plasma Gun III", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_plasma_gun"}, "model": "scon.item", "pk": 40}, {"fields": {"tech": 4, "name": "Plasma Gun IV", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_plasma_gun"}, "model": "scon.item", "pk": 41}, {"fields": {"tech": 5, "name": "Plasma Gun V", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_plasma_gun"}, "model": "scon.item", "pk": 42}, {"fields": {"tech": 3, "name": "Assault Railgun III", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_assault_railgun"}, "model": "scon.item", "pk": 43}, {"fields": {"tech": 4, "name": "Assault Railgun IV", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_assault_railgun"}, "model": "scon.item", "pk": 44}, {"fields": {"tech": 5, "name": "Assault Railgun V", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_assault_railgun"}, "model": "scon.item", "pk": 45}, {"fields": {"tech": 3, "name": "Beam Cannon III", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_beam_cannon"}, "model": "scon.item", "pk": 46}, {"fields": {"tech": 4, "name": "Beam Cannon IV", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_beam_cannon"}, "model": "scon.item", "pk": 47}, {"fields": {"tech": 5, "name": "Beam Cannon V", "typ": 7, "craftable": false, "quality": 4, "icon": "weapon_beam_cannon"}, "model": "scon.item", "pk": 48}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Focusing Lens Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 49}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Iridium Slugs Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 50}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Supercooled Charges Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 51}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "A1MA T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 52}, {"fields": {"tech": 0, "name": "Orion-2 Targeting Complex Blueprint", "description": "Module works twice as long but much weaker.", "craftable": true, "typ": 11, "icon": "blueprint"}, "model": "scon.item", "pk": 53}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Engine Warp Overcharge Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 54}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Mass Shield Energizer Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 55}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Reverse Thruster T3 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 56}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Reverse Thruster T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 57}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Reverse Thruster T5 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 58}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Beam Cannon Prototype T3 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 59}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Beam Cannon Prototype T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 60}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Beam Cannon Prototype T5 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 61}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Assault Railgun Prototype T3 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 62}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Assault Railgun Prototype T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 63}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Assault Railgun Prototype T5 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 64}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Plasma Gun Prototype T3 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 65}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Plasma Gun Prototype T4 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 66}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Plasma Gun Prototype T5 Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 67}, {"fields": {"tech": 0, "craftable": true, "typ": 11, "name": "Doomsday Missile Blueprint", "icon": "blueprint"}, "model": "scon.item", "pk": 68}, {"pk": 1, "model": "scon.crafting", "fields": {"output": 22, "amount": 1}}, {"pk": 1, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 1, "amount": 1, "primary": true}}, {"pk": 2, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 1, "amount": 2, "primary": false}}, {"pk": 3, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 1, "amount": 2, "primary": false}}, {"pk": 2, "model": "scon.crafting", "fields": {"output": 6, "amount": 1}}, {"pk": 4, "model": "scon.craftinginput", "fields": {"item": 1, "crafting": 2, "amount": 2, "primary": true}}, {"pk": 3, "model": "scon.crafting", "fields": {"output": 7, "amount": 1}}, {"pk": 5, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 3, "amount": 1, "primary": true}}, {"pk": 6, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 3, "amount": 2, "primary": false}}, {"pk": 4, "model": "scon.crafting", "fields": {"output": 8, "amount": 1}}, {"pk": 7, "model": "scon.craftinginput", "fields": {"item": 2, "crafting": 4, "amount": 1, "primary": true}}, {"pk": 5, "model": "scon.crafting", "fields": {"output": 9, "amount": 1}}, {"pk": 8, "model": "scon.craftinginput", "fields": {"item": 3, "crafting": 5, "amount": 1, "primary": true}}, {"pk": 6, "model": "scon.crafting", "fields": {"output": 13, "amount": 1}}, {"pk": 9, "model": "scon.craftinginput", "fields": {"item": 5, "crafting": 6, "amount": 1, "primary": true}}, {"pk": 7, "model": "scon.crafting", "fields": {"output": 10, "amount": 1}}, {"pk": 10, "model": "scon.craftinginput", "fields": {"item": 9, "crafting": 7, "amount": 4, "primary": true}}, {"pk": 11, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 7, "amount": 2, "primary": false}}, {"pk": 8, "model": "scon.crafting", "fields": {"output": 11, "amount": 1}}, {"pk": 12, "model": "scon.craftinginput", "fields": {"item": 4, "crafting": 8, "amount": 2, "primary": true}}, {"pk": 9, "model": "scon.crafting", "fields": {"output": 39, "amount": 1}}, {"pk": 13, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 9, "amount": 1, "primary": true}}, {"pk": 14, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 9, "amount": 7, "primary": false}}, {"pk": 15, "model": "scon.craftinginput", "fields": {"item": 9, "crafting": 9, "amount": 5, "primary": false}}, {"pk": 10, "model": "scon.crafting", "fields": {"output": 14, "amount": 2}}, {"pk": 16, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 10, "amount": 1, "primary": true}}, {"pk": 17, "model": "scon.craftinginput", "fields": {"item": 9, "crafting": 10, "amount": 2, "primary": false}}, {"pk": 11, "model": "scon.crafting", "fields": {"output": 17, "amount": 1}}, {"pk": 18, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 11, "amount": 1, "primary": true}}, {"pk": 19, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 11, "amount": 1, "primary": false}}, {"pk": 12, "model": "scon.crafting", "fields": {"output": 15, "amount": 2}}, {"pk": 20, "model": "scon.craftinginput", "fields": {"item": 8, "crafting": 12, "amount": 1, "primary": true}}, {"pk": 13, "model": "scon.crafting", "fields": {"output": 16, "amount": 2}}, {"pk": 21, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 13, "amount": 1, "primary": true}}, {"pk": 22, "model": "scon.craftinginput", "fields": {"item": 9, "crafting": 13, "amount": 1, "primary": false}}, {"pk": 14, "model": "scon.crafting", "fields": {"output": 18, "amount": 2}}, {"pk": 23, "model": "scon.craftinginput", "fields": {"item": 49, "crafting": 14, "amount": 1, "primary": true}}, {"pk": 24, "model": "scon.craftinginput", "fields": {"item": 8, "crafting": 14, "amount": 1, "primary": false}}, {"pk": 15, "model": "scon.crafting", "fields": {"output": 20, "amount": 2}}, {"pk": 25, "model": "scon.craftinginput", "fields": {"item": 51, "crafting": 15, "amount": 1, "primary": true}}, {"pk": 26, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 15, "amount": 1, "primary": false}}, {"pk": 16, "model": "scon.crafting", "fields": {"output": 19, "amount": 2}}, {"pk": 27, "model": "scon.craftinginput", "fields": {"item": 50, "crafting": 16, "amount": 1, "primary": true}}, {"pk": 28, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 16, "amount": 1, "primary": false}}, {"pk": 17, "model": "scon.crafting", "fields": {"output": 23, "amount": 1}}, {"pk": 29, "model": "scon.craftinginput", "fields": {"item": 52, "crafting": 17, "amount": 1, "primary": true}}, {"pk": 30, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 17, "amount": 2, "primary": false}}, {"pk": 31, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 17, "amount": 14, "primary": false}}, {"pk": 32, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 17, "amount": 2, "primary": false}}, {"pk": 33, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 17, "amount": 20, "primary": false}}, {"pk": 18, "model": "scon.crafting", "fields": {"output": 24, "amount": 1}}, {"pk": 34, "model": "scon.craftinginput", "fields": {"item": 53, "crafting": 18, "amount": 1, "primary": true}}, {"pk": 35, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 18, "amount": 3, "primary": false}}, {"pk": 36, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 18, "amount": 4, "primary": false}}, {"pk": 37, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 18, "amount": 2, "primary": false}}, {"pk": 38, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 18, "amount": 30, "primary": false}}, {"pk": 19, "model": "scon.crafting", "fields": {"output": 25, "amount": 1}}, {"pk": 39, "model": "scon.craftinginput", "fields": {"item": 54, "crafting": 19, "amount": 1, "primary": true}}, {"pk": 40, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 19, "amount": 3, "primary": false}}, {"pk": 41, "model": "scon.craftinginput", "fields": {"item": 8, "crafting": 19, "amount": 2, "primary": false}}, {"pk": 42, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 19, "amount": 2, "primary": false}}, {"pk": 43, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 19, "amount": 30, "primary": false}}, {"pk": 20, "model": "scon.crafting", "fields": {"output": 26, "amount": 1}}, {"pk": 44, "model": "scon.craftinginput", "fields": {"item": 55, "crafting": 20, "amount": 1, "primary": true}}, {"pk": 45, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 20, "amount": 10, "primary": false}}, {"pk": 46, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 20, "amount": 3, "primary": false}}, {"pk": 47, "model": "scon.craftinginput", "fields": {"item": 10, "crafting": 20, "amount": 3, "primary": false}}, {"pk": 48, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 20, "amount": 30, "primary": false}}, {"pk": 21, "model": "scon.crafting", "fields": {"output": 27, "amount": 1}}, {"pk": 49, "model": "scon.craftinginput", "fields": {"item": 56, "crafting": 21, "amount": 1, "primary": true}}, {"pk": 50, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 21, "amount": 7, "primary": false}}, {"pk": 51, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 21, "amount": 1, "primary": false}}, {"pk": 52, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 21, "amount": 4, "primary": false}}, {"pk": 53, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 21, "amount": 15, "primary": false}}, {"pk": 22, "model": "scon.crafting", "fields": {"output": 28, "amount": 1}}, {"pk": 54, "model": "scon.craftinginput", "fields": {"item": 57, "crafting": 22, "amount": 1, "primary": true}}, {"pk": 55, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 22, "amount": 12, "primary": false}}, {"pk": 56, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 22, "amount": 2, "primary": false}}, {"pk": 57, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 22, "amount": 5, "primary": false}}, {"pk": 58, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 22, "amount": 20, "primary": false}}, {"pk": 23, "model": "scon.crafting", "fields": {"output": 29, "amount": 1}}, {"pk": 59, "model": "scon.craftinginput", "fields": {"item": 58, "crafting": 23, "amount": 1, "primary": true}}, {"pk": 60, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 23, "amount": 7, "primary": false}}, {"pk": 61, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 23, "amount": 3, "primary": false}}, {"pk": 62, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 23, "amount": 6, "primary": false}}, {"pk": 63, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 23, "amount": 30, "primary": false}}, {"pk": 24, "model": "scon.crafting", "fields": {"output": 30, "amount": 1}}, {"pk": 64, "model": "scon.craftinginput", "fields": {"item": 65, "crafting": 24, "amount": 1, "primary": true}}, {"pk": 65, "model": "scon.craftinginput", "fields": {"item": 40, "crafting": 24, "amount": 1, "primary": false}}, {"pk": 66, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 24, "amount": 6, "primary": false}}, {"pk": 67, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 24, "amount": 3, "primary": false}}, {"pk": 68, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 24, "amount": 30, "primary": false}}, {"pk": 25, "model": "scon.crafting", "fields": {"output": 31, "amount": 1}}, {"pk": 69, "model": "scon.craftinginput", "fields": {"item": 66, "crafting": 25, "amount": 1, "primary": true}}, {"pk": 70, "model": "scon.craftinginput", "fields": {"item": 41, "crafting": 25, "amount": 1, "primary": false}}, {"pk": 71, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 25, "amount": 1, "primary": false}}, {"pk": 72, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 25, "amount": 4, "primary": false}}, {"pk": 73, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 25, "amount": 50, "primary": false}}, {"pk": 26, "model": "scon.crafting", "fields": {"output": 32, "amount": 1}}, {"pk": 74, "model": "scon.craftinginput", "fields": {"item": 67, "crafting": 26, "amount": 1, "primary": true}}, {"pk": 75, "model": "scon.craftinginput", "fields": {"item": 42, "crafting": 26, "amount": 1, "primary": false}}, {"pk": 76, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 26, "amount": 3, "primary": false}}, {"pk": 77, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 26, "amount": 5, "primary": false}}, {"pk": 78, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 26, "amount": 70, "primary": false}}, {"pk": 27, "model": "scon.crafting", "fields": {"output": 33, "amount": 1}}, {"pk": 79, "model": "scon.craftinginput", "fields": {"item": 62, "crafting": 27, "amount": 1, "primary": true}}, {"pk": 80, "model": "scon.craftinginput", "fields": {"item": 43, "crafting": 27, "amount": 1, "primary": false}}, {"pk": 81, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 27, "amount": 6, "primary": false}}, {"pk": 82, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 27, "amount": 3, "primary": false}}, {"pk": 83, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 27, "amount": 30, "primary": false}}, {"pk": 28, "model": "scon.crafting", "fields": {"output": 34, "amount": 1}}, {"pk": 84, "model": "scon.craftinginput", "fields": {"item": 63, "crafting": 28, "amount": 1, "primary": true}}, {"pk": 85, "model": "scon.craftinginput", "fields": {"item": 44, "crafting": 28, "amount": 1, "primary": false}}, {"pk": 86, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 28, "amount": 1, "primary": false}}, {"pk": 87, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 28, "amount": 4, "primary": false}}, {"pk": 88, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 28, "amount": 50, "primary": false}}, {"pk": 29, "model": "scon.crafting", "fields": {"output": 35, "amount": 1}}, {"pk": 89, "model": "scon.craftinginput", "fields": {"item": 64, "crafting": 29, "amount": 1, "primary": true}}, {"pk": 90, "model": "scon.craftinginput", "fields": {"item": 45, "crafting": 29, "amount": 1, "primary": false}}, {"pk": 91, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 29, "amount": 3, "primary": false}}, {"pk": 92, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 29, "amount": 5, "primary": false}}, {"pk": 93, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 29, "amount": 70, "primary": false}}, {"pk": 30, "model": "scon.crafting", "fields": {"output": 36, "amount": 1}}, {"pk": 94, "model": "scon.craftinginput", "fields": {"item": 59, "crafting": 30, "amount": 1, "primary": true}}, {"pk": 95, "model": "scon.craftinginput", "fields": {"item": 46, "crafting": 30, "amount": 1, "primary": false}}, {"pk": 96, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 30, "amount": 6, "primary": false}}, {"pk": 97, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 30, "amount": 3, "primary": false}}, {"pk": 98, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 30, "amount": 30, "primary": false}}, {"pk": 31, "model": "scon.crafting", "fields": {"output": 37, "amount": 1}}, {"pk": 99, "model": "scon.craftinginput", "fields": {"item": 60, "crafting": 31, "amount": 1, "primary": true}}, {"pk": 100, "model": "scon.craftinginput", "fields": {"item": 47, "crafting": 31, "amount": 1, "primary": false}}, {"pk": 101, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 31, "amount": 1, "primary": false}}, {"pk": 102, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 31, "amount": 4, "primary": false}}, {"pk": 103, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 31, "amount": 50, "primary": false}}, {"pk": 32, "model": "scon.crafting", "fields": {"output": 38, "amount": 1}}, {"pk": 104, "model": "scon.craftinginput", "fields": {"item": 61, "crafting": 32, "amount": 1, "primary": true}}, {"pk": 105, "model": "scon.craftinginput", "fields": {"item": 48, "crafting": 32, "amount": 1, "primary": false}}, {"pk": 106, "model": "scon.craftinginput", "fields": {"item": 6, "crafting": 32, "amount": 3, "primary": false}}, {"pk": 107, "model": "scon.craftinginput", "fields": {"item": 7, "crafting": 32, "amount": 5, "primary": false}}, {"pk": 108, "model": "scon.craftinginput", "fields": {"item": 12, "crafting": 32, "amount": 70, "primary": false}}, {"pk": 33, "model": "scon.crafting", "fields": {"output": 21, "amount": 1}}, {"pk": 109, "model": "scon.craftinginput", "fields": {"item": 68, "crafting": 33, "amount": 1, "primary": true}}, {"pk": 110, "model": "scon.craftinginput", "fields": {"item": 8, "crafting": 33, "amount": 2, "primary": false}}, {"pk": 111, "model": "scon.craftinginput", "fields": {"item": 13, "crafting": 33, "amount": 1, "primary": false}}, {"pk": 112, "model": "scon.craftinginput", "fields": {"item": 11, "crafting": 33, "amount": 1, "primary": false}}] \ No newline at end of file diff --git a/dj/scon/generate_fixtures.py b/dj/scon/generate_fixtures.py index 3190dcb..9b5714a 100644 --- a/dj/scon/generate_fixtures.py +++ b/dj/scon/generate_fixtures.py @@ -53,9 +53,9 @@ def generate_fixtures(): data = [] ORES = [ - {'name': 'Tungsten ore', 'sell_price': 6600, 'icon': 'resource_tungsten_ore'}, - {'name': 'Osmium ore', 'sell_price': 4500, 'icon': 'resource_osmium_ore'}, - {'name': 'Silicon ore', 'sell_price': 600, 'icon': 'resource_silicon_ore'}, + {'name': 'Impure tungsten', 'sell_price': 6600, 'icon': 'resource_tungsten_ore'}, + {'name': 'Impure osmium', 'sell_price': 4500, 'icon': 'resource_osmium_ore'}, + {'name': 'Impure silicon', 'sell_price': 600, 'icon': 'resource_silicon_ore'}, {'name': 'Vanadium', 'sell_price': 500, 'icon': 'resource_vanadium'}, {'name': 'Crystal shard', 'sell_price': 3500, 'icon': 'resource_crystal_shard'}, ] @@ -329,13 +329,13 @@ def generate_fixtures(): {'item': 'Duplicator', 'recipee': [(1, 'Processing Block'), (2,'Computing chip'), (2, 'Metal blank')]}, {'item': 'Tungsten plate', - 'recipee': [(2, 'Tungsten ore'),]}, + 'recipee': [(2, 'Impure tungsten'),]}, {'item': 'Screened battery', 'recipee': [(1, 'Tungsten plate'), (2, 'Computing chip')]}, {'item': 'Osmium crystals', - 'recipee': [(1, 'Osmium ore'),]}, + 'recipee': [(1, 'Impure osmium'),]}, {'item': 'Pure Silicon', - 'recipee': [(1, 'Silicon ore'),]}, + 'recipee': [(1, 'Impure silicon'),]}, {'item': 'Computing chip', 'recipee': [(1, 'Crystal shard'),]}, {'item': 'Processing block', diff --git a/dj/scon/models.py b/dj/scon/models.py index 8eeb515..8666ab7 100644 --- a/dj/scon/models.py +++ b/dj/scon/models.py @@ -90,6 +90,17 @@ class Item(models.Model): def crafting_used_in(self): return CraftingInput.objects.filter(item=self) + def parents(self): + my_recipee = Crafting.objects.filter(output=self) + if my_recipee.count(): + ci = CraftingInput.objects.filter(crafting=my_recipee).filter(primary=True) + if ci.count(): + # ci.item is my parent + ret = [ci[0].item] + ret.extend(ci[0].item.parents()) + return ret + return [] + def get_full_name(self): if self.quality: return '%s (%s)' % (self.name, D_QUALITY.get(self.quality, '')) @@ -122,8 +133,8 @@ class Crafting(models.Model): return 'Recipee for %s' % (self.output.name,) class CraftingInput(models.Model): - crafting = models.ForeignKey(Crafting) - item = models.ForeignKey(Item) + crafting = models.ForeignKey(Crafting) # the items you need. + item = models.ForeignKey(Item) # the item you get. amount = models.IntegerField(default=1) primary = models.BooleanField(default=False, blank=True) diff --git a/dj/scon/templates/scon/base.html b/dj/scon/templates/scon/base.html index 114a8fc..1870b99 100644 --- a/dj/scon/templates/scon/base.html +++ b/dj/scon/templates/scon/base.html @@ -68,6 +68,7 @@ border-radius: 3px; } + .arrowright { background: #2C2C2C; font-size: 12px; diff --git a/dj/scon/templates/scon/crafting/bbcode.txt b/dj/scon/templates/scon/crafting/bbcode.txt new file mode 100644 index 0000000..96fbaa9 --- /dev/null +++ b/dj/scon/templates/scon/crafting/bbcode.txt @@ -0,0 +1,581 @@ +[quote name="FunkyDonut" post="271113" timestamp="1402589748"] +This guide will only focus on the crafting system in the Invasion game mode. Please use the [url=http://forum.star-conflict.com/index.php?/topic/23371-invasion-introductory-guide/?p=269862][color=#0000cd]introductory guide[/color][/url], if you have general questions on the game mode itself, rather than the crafting system. +[center] [/center] +[center] [/center] +[center][color=#008000][b]Special thanks go to [/b][/color][b][url=http://forum.star-conflict.com/index.php?/user/239042-g4borg/][color=#0000cd]g4borg[/color][/url][/b][color=#008000][b], who mostly provided the information![/b][/color][/center] + +In the Invasion game mode, you will be able to find trophies floating around in space. Those trophies can be simply credits, artefacts or debris, which is sold autmatically once you used a drone/returned to the station. But you may also find ressources - mostly close to asteroids, but sometimes also in cargo transports, shipwrecks or stolen containers from other pilots, which you shot down. These ressources can be used to craft to usefull items, such as new and powerful modules, new types of ammunition or the valuable duplicators, which allow you to reconstruct your ship, if you have been destroyed once. Below, you will see a listing + +[color=#ff0000][u][b]Concerning updates:[/b][/u][/color] Please write me a private message, if you have something to add, or if there is anything wrong. I will edit/update this guide as soon as possible. +[indent=1] [/indent] +[size=6][b]Ressources[/b][/size] +[table][tr][th][b]Ressources[/b][/th][th][b][color=#ff8c00]Crafting result[/color]/[color=#8b4513]necessary ressources[/color][/b][/th][th][b]Used for...[/b][/th][/tr][tr] +[td][b]Tungsten Ore[/b] +[/td][td][b][color=#ff8c00]Tungsten Plate[/color] +[color=#8b4513]Tungsten ore x 2[/color][/b] +[/td][td] +[LIST] +[*]Screened battery (Tungsten plate)[/*] +[*]Pirate "Orion" Targeting Complex V (Tungsten plate)[/*] +[*]Pirate Engine Overcharge V (Tungsten plate)[/*] +[*]Reverse Thruster V (Tungsten plate)[/*] +[*]Alien Plasma Gun IV (Tungsten plate)[/*] +[*]Alien Plasma Gun V (Tungsten plate)[/*] +[*]Alien Assault Railgun IV (Tungsten plate)[/*] +[*]Alien Assault Railgun V (Tungsten plate)[/*] +[*]Alien Beam Cannon IV (Tungsten plate)[/*] +[*]Alien Beam Cannon V (Tungsten plate)[/*] +[/LIST] +[/td][/tr][tr][td][b]Osmium ore[/b] +[/td][td] +[b][color=#ff8c00]Osmium crystals[/color] +[color=#8b4513]Osmium ore x 1[/color][/b] +[/td][td] +[LIST] +[*]Double Deflector (Osmium crystals)[/*] +[*]Focusing Lens (Osmium crystals)[/*] +[*]Pirate Engine Overcharge V (Osmium crystals)[/*] +[*]Doomsday Missile (Osmium crystals)[/*] +[/LIST] +[indent=1][/td][/tr][tr][td][b]Silicon ore[/b] +[/td][td] +[b][color=#ff8c00]Pure Silicon[/color] +[color=#8b4513]Silicon ore x 1[/color][/b][/indent] + +[/td][td] +[LIST] +[*]Processing block (Pure Silicon)[/*] +[*]Target Tracking Coprocessor III (Pure Silicon)[/*] +[*]Explosive Shells (Pure Silicon)[/*] +[*]Xenon Lamp (Pure Silicon)[/*] +[/LIST] +[indent=1][/td][/tr][tr][td][b]Vanadium[/b] +[/td][td] +[b][color=#ff8c00]Metal blank[/color] +[color=#8b4513]Vanadium x 2[/color][/b][/indent] +[/td][td] +[LIST] +[*]Duplicator (Metal blank)[/*] +[*]Target Tracking Coprocessor III (Metal blank)[/*] +[*]Explosive Shells (Metal blank)[/*] +[*]Iridium Slugs (Metal blank)[/*] +[*]A1MA IV (Metal blank)[/*] +[*]Pirate Mass Shield Generator V (Metal blank)[/*] +[*]Reverse Thruster III (Metal blank)[/*] +[*]Reverse Thruster IV (Metal blank)[/*] +[*]Alien Plasma Gun III (Metal blank)[/*] +[*]Alien Assault Railgun III (Metal blank)[/*] +[*]Alien Beam Cannon III (Metal blank)[/*] +[*]Doomsday Missile (Metal blank)[/td][/*] +[/LIST] +[/tr][tr][td][b]Crystal shard[/b] +[/td] +[td] +[b][color=#ff8c00]Computing chip[/color][/b] +[color=#8b4513][b]Crystal shard x 1[/b][/color] + +[/td] +[td] +[LIST] +[*]Duplicator (Computing chip)[/*] +[*]Screened battery (Computing chip)[/*] +[*]Processing block (Computing chip)[/*] +[*]Attack Drone (Computing chip)[/*] +[*]Xenon Lamp (Computing chip)[/*] +[*]Supercooled Charges (Computing chip)[/*] +[*]Pirate "Orion" Targeting Complex V (Computing chip)[/*] +[*]Pirate Mass Shield Generator V (Computing chip)[/*] +[*]Reverse Thruster III (Computing chip)[/*] +[*]Reverse Thruster IV (Computing chip)[/*] +[*]Reverse Thruster V (Computing chip)[/*] +[*]Doomsday Missile (Computing chip)[/*] +[/LIST] +[/td][/tr][tr][td][b]Osmium crystals[/b] +[/td] +[td] +[b][color=#ff8c00]Double Deflector (Mk4)[/color][/b] +[color=#8b4513][b]Osmium crystals x 1[/b][/color][/td] + +[td] +[LIST] +[*]Focusing Lens[/*] +[*]Pirate Engine Overcharge V[/*] +[*]Doomsday Missile[/*] +[/LIST] +[/td][/tr][tr][td][b]Alien Monocrystal[/b] +[/td][td] +[b][color=#ff8c00]Attack Drone (Universal)[/color][/b] +[color=#8b4513][b]Alien Monocrystal x 1[/b][/color] + +[color=#8b4513][b]Computing chip x 1[/b][/color][/td][td] +[LIST] +[*]A1MA IV[/*] +[*]Pirate "Orion" Targeting Complex V[/*] +[*]Pirate Engine Overcharge V[/*] +[*]Pirate Mass Shield Generator V[/*] +[*]Reverse Thruster III[/*] +[*]Reverse Thruster IV[/*] +[*]Reverse Thruster V[/*] +[*]Alien Plasma Gun III[/*] +[*]Alien Plasma Gun IV[/*] +[*]Alien Plasma Gun V[/*] +[*]Alien Assault Railgun III[/*] +[*]Alien Assault Railgun IV[/*] +[*]Alien Assault Railgun V[/*] +[*]Alien Beam Cannon III[/*] +[*]Alien Beam Cannon IV[/*] +[*]Alien Beam Cannon V[/*] +[/LIST] +[/td][/tr][tr] + +[td][b]Tungsten plate[/b][/td][td] +[b][color=#ff8c00]Screened battery[/color][/b] +[color=#8b4513][b]Tungsten plate x 1[/b][/color] + +[color=#8b4513][b]Computing chip x 2[/b][/color][/td] +[td] +[LIST] +[*]Target Tracking Coprocessor III (Screened battery)[/*] +[*]A1MA IV (Screened battery)[/*] +[*]Reverse Thruster III (Screened battery)[/*] +[*]Reverse Thruster IV (Screened battery)[/*] +[*]Reverse Thruster V (Screened battery)[/*] +[*]Alien Plasma Gun III (Screened battery)[/*] +[*]Alien Plasma Gun IV (Screened battery)[/*] +[*]Alien Plasma Gun V (Screened battery)[/*] +[*]Alien Assault Railgun III (Screened battery)[/*] +[*]Alien Assault Railgun IV (Screened battery)[/*] +[*]Alien Assault Railgun V (Screened battery)[/*] +[*]Alien Beam Cannon III (Screened battery)[/*] +[*]Alien Beam Cannon IV (Screened battery)[/*] +[*]Alien Beam Cannon V (Screened battery)[/*] +[*]Pirate "Orion" Targeting Complex V[/*] +[*]Pirate Engine Overcharge V[/*] +[*]Reverse Thruster V[/*] +[*]Alien Plasma Gun IV[/*] +[*]Alien Plasma Gun V[/*] +[*]Alien Assault Railgun IV[/*] +[*]Alien Assault Railgun V[/*] +[*]Alien Beam Cannon IV[/*] +[*]Alien Beam Cannon V[/*] +[/LIST] +[/td][/tr][tr] +[td][b]Screened battery[/b][/td][td] +[b][color=#ff8c00]Target Tracking Coprocessor III[/color][/b] +[color=#8b4513][b]Screened battery x 1[/b][/color] + +[color=#8b4513][b]Metal blank x 7[/b][/color] +[color=#8b4513][b]Pure Silicon x 5[/b][/color] +[/td][td] +[LIST] +[*]A1MA IV[/*] +[*]Reverse Thruster III[/*] +[*]Reverse Thruster IV[/*] +[*]Reverse Thruster V[/*] +[*]Alien Plasma Gun III[/*] +[*]Alien Plasma Gun IV[/*] +[*]Alien Plasma Gun V[/*] +[*]Alien Assault Railgun III[/*] +[*]Alien Assault Railgun IV[/*] +[*]Alien Assault Railgun V[/*] +[*]Alien Beam Cannon III[/*] +[*]Alien Beam Cannon IV[/*] +[*]Alien Beam Cannon V[/*] +[/LIST] +[/td][/tr][tr][td][b]Pure Silicon[/b][/td] +[td] +[b][color=#ff8c00]Processing block[/color][/b] +[color=#8b4513][b]Pure Silicon x 4[/b][/color] + +[color=#8b4513][b]Computing chip x 2[/b][/color] +[/td][td] +[LIST] +[*]Duplicator (Processing block)[/*] +[*]A1MA IV (Processing block)[/*] +[*]Pirate "Orion" Targeting Complex V (Processing block)[/*] +[*]Pirate Engine Overcharge V (Processing block)[/*] +[*]Pirate Mass Shield Generator V (Processing block)[/*] +[*]Target Tracking Coprocessor III[/*] +[*]Explosive Shells[/*] +[*]Xenon Lamp[/*] +[/LIST] +[/td][/tr][tr] +[td][b]Metal blank[/b][/td] +[td] +[b][color=#ff8c00]Explosive Shells (Mk4)[/color][/b] +[color=#8b4513][b]Metal blank x 1[/b][/color] + +[color=#8b4513][b]Pure Silicon x 2[/b][/color] +[/td][td] +[LIST] +[*]Duplicator[/*] +[*]Target Tracking Coprocessor III[/*] +[*]Explosive Shells[/*] +[*]Iridium Slugs[/*] +[*]A1MA IV[/*] +[*]Pirate Mass Shield Generator V[/*] +[*]Reverse Thruster III[/*] +[*]Reverse Thruster IV[/*] +[*]Alien Plasma Gun III[/*] +[*]Alien Assault Railgun III[/*] +[*]Alien Beam Cannon III[/*] +[*]Doomsday Missile[/*] +[/LIST] +[/td][/tr][tr] +[td][b]Computing chip[/b][/td][td] +[b][color=#ff8c00]Xenon Lamp (Mk4)[/color][/b] +[color=#8b4513][b]Computing chip x 1[/b][/color] + +[color=#8b4513][b]Pure Silicon x 1[/b][/color] [/td][td] +[LIST] +[*]Duplicator[/*] +[*]Screened battery[/*] +[*]Target Tracking Coprocessor III (Screened battery)[/*] +[*]A1MA IV (Screened battery)[/*] +[*]Reverse Thruster III (Screened battery)[/*] +[*]Reverse Thruster IV (Screened battery)[/*] +[*]Reverse Thruster V (Screened battery)[/*] +[*]Alien Plasma Gun III (Screened battery)[/*] +[*]Alien Plasma Gun IV (Screened battery)[/*] +[*]Alien Plasma Gun V (Screened battery)[/*] +[*]Alien Assault Railgun III (Screened battery)[/*] +[*]Alien Assault Railgun IV (Screened battery)[/*] +[*]Alien Assault Railgun V (Screened battery)[/*] +[*]Alien Beam Cannon III (Screened battery)[/*] +[*]Alien Beam Cannon IV (Screened battery)[/*] +[*]Alien Beam Cannon V (Screened battery)[/*] +[*]Processing block[/*] +[*]Duplicator (Processing block)[/*] +[*]A1MA IV (Processing block)[/*] +[*]Pirate "Orion" Targeting Complex V (Processing block)[/*] +[*]Pirate Engine Overcharge V (Processing block)[/*] +[*]Pirate Mass Shield Generator V (Processing block)[/*] +[*]Attack Drone[/*] +[*]Xenon Lamp[/*] +[*]Supercooled Charges[/*] +[*]Pirate "Orion" Targeting Complex V[/*] +[*]Pirate Mass Shield Generator V[/*] +[*]Reverse Thruster III[/*] +[*]Reverse Thruster IV[/*] +[*]Reverse Thruster V[/*] +[*]Doomsday Missile[/*] +[/LIST] +[/td][/tr] + + + + + + + + + +[/table] + + +[size=6][b]Known/Available Blueprints[/b][/size] + +[indent=1][size=6][b][size=4][size=5][color=#008000]Important: [/color][/size][/size][/b][size=4][size=5]The ammunition-blueprints produce consumable items, which only last for one battle each! The same goes for duplicators and Doomsday missiles![/size][/size][/size][/indent] + +[table][tr][th][b]Blueprints[/b][/th][th][color=#8b4513][b]Crafting parts[/b][/color][/th][th][b]Result[/b][/th][/tr][tr] +[td][b]Focusing Lens[/b][/td][td] + +[LIST] +[*][b][color=#8b4513]Focusing Lens Blueprint x 1[/color][/b][/*] +[*][b][color=#8b4513]Osmium crystals x 1[/color][/b][/*] +[/LIST] +[/td][td]Focusing Lens Mk.4[/td][/tr][tr] +[td][b]Iridium Slugs[/b][/td][td] + +[LIST] +[*][b][color=#8b4513]Iridium Slugs Blueprint x 1[/color][/b][/*] +[*][b][color=#8b4513]Metal blank x 1[/color][/b][/*] +[/LIST] +[/td][td]Iridium Slugs Mk.4[/td][/tr][tr] +[td][b]Supercooled Charges[/b][/td][td] + +[LIST] +[*][b][color=#8b4513]Supercooled Charges Blueprint x 1[/color][/b][/*] +[*][b][color=#8b4513]Computing chip x 1[/color][/b][/*] +[/LIST] +[/td][td]Supercooled Charges Mk.4[/td][/tr][tr] +[td][b]A1MA T4[/b][/td][td] + +[LIST] +[*][b][color=#8b4513]A1MA T4 Blueprint x 1[/color][/b][/*] +[*][b][color=#8b4513]Processing block x 2[/color][/b][/*] +[*][b][color=#8b4513]Metal blank x 14[/color][/b][/*] +[*][b][color=#8b4513]Screened battery x 2[/color][/b][/*] +[*][b][color=#8b4513]Alien Monocrystal x 20[/color][/b][/*] +[/LIST] +[/td][td] +A1MA IV[/td][/tr][tr] +[td][b]Orion-2 Targeting Complex[/b][/td][td] +Pirate "Orion" Targeting Complex V (Pirate Mk4) + +[LIST] +[*][b][color=#8b4513]Orion-2 Targeting Complex Blueprint x 1[/color][/b][/*] +[*][b][color=#8b4513]Tungsten plate x 3[/color][/b][/*] +[*][b][color=#8b4513]Computing chip x 4[/color][/b][/*] +[*][b][color=#8b4513]Processing block x 2[/color][/b][/*] +[*][b][color=#8b4513]Alien Monocrystal x 30[/color][/b][/*] +[/LIST] +[/td][td]Pirate "Orion" Targeting Complex V[/td][/tr][tr] +[td][b]Engine Warp Overcharge[/b][/td][td] +Pirate Engine Overcharge V (Pirate Mk4) + +[LIST] +[*][color=#8b4513][b]Engine Warp Overcharge Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Tungsten plate x 3[/b][/color][/*] +[*][color=#8b4513][b]Osmium crystals x 2[/b][/color][/*] +[*][color=#8b4513][b]Processing block x 2[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 30[/b][/color][/*] +[/LIST] +[/td][td]Pirate Engine Overcharge V[/td][/tr][tr] +[td][b]Mass Shield Energizer[/b][/td][td] +Pirate Mass Shield Generator V (Pirate Mk4) + +[LIST] +[*][color=#8b4513][b]Mass Shield Energizer Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Metal blank x 10[/b][/color][/*] +[*][color=#8b4513][b]Computing chip x 3[/b][/color][/*] +[*][color=#8b4513][b]Processing block x 3[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 30[/b][/color][/*] +[/LIST] +[/td][td]Pirate Mass Shield Generator V[/td][/tr][tr] +[td][b]Reverse Thruster T3[/b][/td][td] +Reverse Thruster III (Mk1) + +[LIST] +[*][color=#8b4513][b]Reverse Thruster T3 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Metal blank x 7[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 1[/b][/color][/*] +[*][color=#8b4513][b]Computing chip x 4[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 15[/b][/color][/*] +[/LIST] +[/td][td]Reverse Thruster III[/td][/tr][tr] +[td][b]Reverse Thruster T4[/b][/td][td] +Reverse Thruster IV (Mk1) + +[LIST] +[*][color=#8b4513][b]Reverse Thruster T4 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Metal blank x 12[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 2[/b][/color][/*] +[*][color=#8b4513][b]Computing chip x 5[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 20[/b][/color][/*] +[/LIST] +[/td][td]Reverse Thruster IV[/td][/tr][tr][td][b]Reverse Thruster T5[/b][/td] +[td] +Reverse Thruster V (Mk1) + +[LIST] +[*][color=#8b4513][b]Reverse Thruster T5 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Tungsten plate x 7[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 3[/b][/color][/*] +[*][color=#8b4513][b]Computing chip x 6[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 30[/b][/color][/*] +[/LIST] +[/td][td]Reverse Thruster V[/td][/tr][tr] +[td][b]Beam Cannon Prototype T3[/b][/td][td] +Alien Beam Cannon III (Mk5) + +[LIST] +[*][color=#8b4513][b]Beam Cannon Prototype T3 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Beam Cannon III x 1[/b][/color][/*] +[*][color=#8b4513][b]Metal blank x 6[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 3[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 30[/b][/color][/*] +[/LIST] +[/td][td]Alien Beam Cannon III[/td][/tr][tr] +[td][b]Beam Cannon Prototype T4[/b][/td][td] +Alien Beam Cannon IV (Mk5) + +[LIST] +[*][color=#8b4513][b]Beam Cannon Prototype T4 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Beam Cannon IV x 1[/b][/color][/*] +[*][color=#8b4513][b]Tungsten plate x 1[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 4[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 50[/b][/color][/*] +[/LIST] + + +[/td][td]Alien Beam Cannon IV[/td][/tr][tr] +[td][b]Beam Cannon Prototype T5[/b][/td][td] +Alien Beam Cannon V (Mk5) + +[LIST] +[*][color=#8b4513][b]Beam Cannon Prototype T5 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Beam Cannon V x 1[/b][/color][/*] +[*][color=#8b4513][b]Tungsten plate x 3[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 5[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 70[/b][/color][/*] +[/LIST] + + +[/td][td]Alien Beam Cannon V[/td][/tr][tr] +[td][b]Assault Railgun Prototype T3[/b][/td][td] +Alien Assault Railgun III (Mk5) + +[LIST] +[*][color=#8b4513][b]Assault Railgun Prototype T3 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Assault Railgun III x 1[/b][/color][/*] +[*][color=#8b4513][b]Metal blank x 6[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 3[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 30[/b][/color][/*] +[/LIST] + + +[/td][td] +Alien Assault Railgun III +[/td][/tr][tr] +[td][b]Assault Railgun Prototype T4[/b][/td][td] +Alien Assault Railgun IV (Mk5) + +[LIST] +[*][color=#8b4513][b]Assault Railgun Prototype T4 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Assault Railgun IV x 1[/b][/color][/*] +[*][color=#8b4513][b]Tungsten plate x 1[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 4[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 50[/b][/color][/*] +[/LIST] + + +[/td][td]Alien Assault Railgun IV[/td][/tr][tr] +[td][b]Assault Railgun Prototype T5[/b][/td][td] +Alien Assault Railgun V (Mk5) + +[LIST] +[*][color=#8b4513][b]Assault Railgun Prototype T5 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Assault Railgun V x 1[/b][/color][/*] +[*][color=#8b4513][b]Tungsten plate x 3[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 5[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 70[/b][/color][/*] +[/LIST] + + +[/td][td]Alien Assault Railgun V[/td][/tr][tr] +[td][b]Plasma Gun Prototype T3[/b][/td][td] +Alien Plasma Gun III (Mk5) + +[LIST] +[*][color=#8b4513][b]Plasma Gun Prototype T3 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Plasma Gun III x 1[/b][/color][/*] +[*][color=#8b4513][b]Metal blank x 6[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 3[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 30[/b][/color][/*] +[/LIST] + + +[/td][td]Alien Plasma Gun III[/td][/tr][tr] +[td][b]Plasma Gun Prototype T4[/b][/td][td] +Alien Plasma Gun IV (Mk5) + +[LIST] +[*][color=#8b4513][b]Plasma Gun Prototype T4 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Plasma Gun IV x 1[/b][/color][/*] +[*][color=#8b4513][b]Tungsten plate x 1[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 4[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 50[/b][/color][/*] +[/LIST] + + +[/td][td]Alien Plasma Gun IV[/td][/tr][tr] +[td][b]Plasma Gun Prototype T5[/b][/td][td] +Alien Plasma Gun V (Mk5) + +[LIST] +[*][color=#8b4513][b]Plasma Gun Prototype T5 Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Plasma Gun V x 1[/b][/color][/*] +[*][color=#8b4513][b]Tungsten plate x 3[/b][/color][/*] +[*][color=#8b4513][b]Screened battery x 5[/b][/color][/*] +[*][color=#8b4513][b]Alien Monocrystal x 70[/b][/color][/*] +[/LIST] + + +[/td][td]Alien Plasma Gun V[/td][/tr][tr] +[td][b]Doomsday Missile[/b][/td][td] +Doomsday Missile (Mk1) + +[LIST] +[*][color=#8b4513][b]Doomsday Missile Blueprint x 1[/b][/color][/*] +[*][color=#8b4513][b]Osmium crystals x 2[/b][/color][/*] +[*][color=#8b4513][b]Computing chip x 1[/b][/color][/*] +[*][color=#8b4513][b]Metal blank x 1[/b][/color][/*] +[/LIST] + + +[/td][td]Doomsday Missile[/td][/tr][tr] +[td][b]Duplicator[/b][/td][td] +Duplicator + +[LIST] +[*][color=#8b4513][b]Processing block x 1[/b][/color][/*] +[*][color=#8b4513][b]Computing chip x 2[/b][/color][/*] +[*][color=#8b4513][b]Metal blank x 2[/b][/color][/*] +[/LIST] + +[/td][td]Duplicator[/td][/tr] +[/table] +[/quote] + + + + +[b][font=arial, sans-serif][size=14]The Color Code[/size][/font][/b] +[b][color=#595959][font=arial, sans-serif][size=12]Gray [/size][/font][/color][/b][font=arial, sans-serif][size=12]– Materials of this color will be raw resources. [/size][/font] +[b][color=#00b050][font=arial, sans-serif][size=12]Green [/size][/font][/color][/b][font=arial, sans-serif][size=12]– Materials here have been crafted once since being a raw resource.[/size][/font] +[b][color=#1f497d][font=arial, sans-serif][size=12]Blue [/size][/font][/color][/b][font=arial, sans-serif][size=12]– Materials here have been at most crafted twice since being a raw resource.[/size][/font] +[b][color=#7030a0][font=arial, sans-serif][size=12]Purple [/size][/font][/color][/b][font=arial, sans-serif][size=12]– Materials here have been at most crafted three times since being a raw resource.[/size][/font] +[b][color=#e46c0a][font=arial, sans-serif][size=12]Orange [/size][/font][/color][/b][font=arial, sans-serif][size=12]– Materials here have been at most crafted four times since being a raw resource.[/size][/font] +[b][color=#ff3399][font=arial, sans-serif][size=12]Pink [/size][/font][/color][/b][font=arial, sans-serif][size=12]– Materials here have been at most crafted five times since being a raw resource (I doubt this is even possible but just in case).[/size][/font] + + + [table] +[tr][th][b][font=arial, sans-serif][size=12]Crafting Result [/size][/font][/b] +[b][font=arial, sans-serif][size=12](the components you want)[/size][/font][/b][/th][th][b][font=arial, sans-serif][size=12]Prerequisite Materials [/size][/font][/b] +[b][font=arial, sans-serif][size=12](what you need to get the result)[/size][/font][/b][/th][/tr] +[tr] +[td][b][color=#595959][font=arial, sans-serif][size=12]Crystal Shard[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]N/A[/size][/font][/td] +[/tr] +[tr] +[td][b][color=#595959][font=arial, sans-serif][size=12]Osmium Ore[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]N/A[/size][/font][/td] +[/tr][tr] +[td][b][color=#595959][font=arial, sans-serif][size=12]Silicon Ore[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]N/A[/size][/font][/td] +[/tr][tr] +[td][b][color=#595959][font=arial, sans-serif][size=12]Tungsten Ore[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]N/A[/size][/font][/td] +[/tr][tr] +[td][b][color=#595959][font=arial, sans-serif][size=12]Vanadium (Ore)[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]N/A[/size][/font][/td] +[/tr][tr] +[td][b][color=#595959][font=arial, sans-serif][size=12]Alien Monocrystal[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]N/A [/size][/font][font=arial, sans-serif](Although this is a component you cannot craft it using raw resources.)[/size][/font][/td] +[/tr][tr] +[td][b][color=#00b050][font=arial, sans-serif][size=12]Computing Chip[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]1x [/size][/font][b][color=#595959]Crystal Shard[/color][/b][/td] +[/tr][tr] +[td][b][color=#00b050][font=arial, sans-serif][size=12]Metal Blank[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]2x [/size][/font][b][color=#595959]Vanadium (Ore)[/color][/b][/td] +[/tr][tr] +[td][b][color=#00b050][font=arial, sans-serif][size=12]Osmium Crystals[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]1x [/size][/font][b][color=#595959]Osmium Ore[/color][/b][/td] +[/tr][tr] +[td][b][color=#00b050][font=arial, sans-serif][size=12]Pure Silicon[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]1x [/size][/font][b][color=#595959]Silicon Ore[/color][/b][/td] +[/tr][tr] +[td][b][color=#00b050][font=arial, sans-serif][size=12]Tungsten Plate[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]2x [/size][/font][b][color=#595959]Tungsten Ore[/color][/b][/td] +[/tr][tr] +[td][b][color=#1f497d][font=arial, sans-serif][size=12]Processing Block[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]4x [/size][/font][b][color=#00b050]Pure Silicon[/color][/b] +[font=arial, sans-serif]2x [/size][/font][b][color=#00b050]Computing Chip[/color][/b][/td] +[/tr][tr] +[td][b][color=#1f497d][font=arial, sans-serif][size=12]Screened Battery[/size][/font][/color][/b][/td] +[td][font=arial, sans-serif]1x [/size][/font][b][color=#00b050]Tungsten Plate[/color][/b] +[font=arial, sans-serif]2x [/size][/font][b][color=#00b050]Computing Chip[/color][/b][/td] +[/tr] +[/table] + \ No newline at end of file diff --git a/dj/scon/templates/scon/crafting/forum.html b/dj/scon/templates/scon/crafting/forum.html new file mode 100644 index 0000000..16e4ee0 --- /dev/null +++ b/dj/scon/templates/scon/crafting/forum.html @@ -0,0 +1,41 @@ +{% extends "scon/base.html" %} + +{% block context %} +
+ [table][tr][th]Item[/th][th]Produces[/th][/tr]
+ {% for item in items %}
+ {% if item.primary_recipee %}
+ [tr]
+ {% with item.primary_recipee as recipee %}
+
+ [td]
+ {{ item.name }}
+ [/td]
+
+
+
+
+ [td]
+ {{ recipee.output.name }}
+ [LIST]
+ {% for ingredient in recipee.ingredients %}
+ {% if ingredient.item != item %}
+ [*]{{ ingredient.amount }} x {{ ingredient.item.name }}[/*]
+ {% else %}
+ {% if ingredient.amount > 1 %}
+ [*][b]{{ ingredient.amount }} x [/b]{{ ingredient.item.name }}[/*]
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ [/LIST]
+ [/td]
+ {% endwith %}
+ [/tr]
+ {% endif %}
+ {% endfor %}
+ [/table]
+
+{% endblock context %}
\ No newline at end of file
diff --git a/dj/scon/templates/scon/crafting/forum_efefay.html b/dj/scon/templates/scon/crafting/forum_efefay.html
new file mode 100644
index 0000000..bd5922b
--- /dev/null
+++ b/dj/scon/templates/scon/crafting/forum_efefay.html
@@ -0,0 +1,133 @@
+{% extends "scon/base.html" %}
+
+{% block css %}
+{{ block.super }}
+
+
+
+{% endblock css %}
+
+{% block context %}
+
+What ya wanna | +What ya needze | +
---|---|
{{ ore.name }} | +N/A{% if ore.typ == 13 %} (This is a component you cannot craft){% endif %} | +
+ {{ recipee.output.name }} + | + +
+
|
+ {% endwith %}
+
+ [table]
+ [tr][th][b][font=arial, sans-serif][size=12]Crafting Result [/size][/font][/b]
+ [b][font=arial, sans-serif][size=12](the components you want)[/size][/font][/b][/th][th][b][font=arial, sans-serif][size=12]Prerequisite Materials [/size][/font][/b]
+ [b][font=arial, sans-serif][size=12](what you need to get the result)[/size][/font][/b][/th][/tr]
+ {% for ore in ores %}
+ [tr]
+ [td][color=#595959]{{ ore.name }}[/color][/td]
+ [td]N/A{% if ore.typ == 13 %} (This is a component you cannot craft){% endif %}[/td]
+ [/tr]
+ {% endfor %}
+ {% for item in items %}
+ {% if item.primary_recipee %}
+ [tr]
+ {% with item.primary_recipee as recipee %}
+ [td]
+ {% with recipee.output.parents|length as depth %}
+ [color={% if depth == 0 %}#595959{% elif depth == 1 %}#00b050{% elif depth == 2 %}#1f497d{% else %}#7030a0{% endif %}]{{ recipee.output.name }}[/color]
+ {% endwith %}
+ [/td]
+
+
+ [td]
+ [LIST]
+ {% for ingredient in recipee.ingredients %}
+ [*]{% with ingredient.item.parents|length as depth %}
+ [font=arial, sans-serif][size=12]
+ {% if ingredient.item != item %}
+ {{ ingredient.amount }} x [color={% if depth == 0 %}#595959{% elif depth == 1 %}#00b050{% elif depth == 2 %}#1f497d{% else %}#7030a0{% endif %}]{{ ingredient.item.name }}[/color]
+ {% else %}
+ {% if ingredient.amount > 1 %}
+ [b][i]{{ ingredient.amount }}[/i] x [color={% if depth == 0 %}#595959{% elif depth == 1 %}#00b050{% elif depth == 2 %}#1f497d{% else %}#7030a0{% endif %}]{{ ingredient.item.name }}[/color][/b]
+ {% else %}
+ [b]{{ ingredient.amount }} x [color={% if depth == 0 %}#595959{% elif depth == 1 %}#00b050{% elif depth == 2 %}#1f497d{% else %}#7030a0{% endif %}]{{ ingredient.item.name }}[/color][/b]
+ {% endif %}
+ {% endif %}
+ {% endwith %}[/size][/font][/*]
+ {% endfor %}
+ [/LIST]
+ [/td]
+
+ {% endwith %}
+ [/tr]
+ {% endif %}
+ {% endfor %}
+ [/table]
+
+{% endblock context %}
\ No newline at end of file
diff --git a/dj/scon/views.py b/dj/scon/views.py
index 7864a18..022d568 100644
--- a/dj/scon/views.py
+++ b/dj/scon/views.py
@@ -16,4 +16,17 @@ def crafting(request):
tree = None
c = RequestContext(request, {'tree': tree,
'items': items})
- return HttpResponse(t.render(c))
\ No newline at end of file
+ return HttpResponse(t.render(c))
+
+def crafting_forum(request):
+ t = loader.get_template('scon/crafting/forum_efefay.html')
+ items = models.Item.objects.filter(craftable=True)
+ ores = []
+ for item in items.filter(typ__in=[12, 13]):
+ if len(item.parents()) == 0 and item.primary_recipee():
+ ores.append(item)
+ tree = None
+ c = RequestContext(request, {'tree': tree,
+ 'ores': ores,
+ 'items': items})
+ return HttpResponse(t.render(c))
diff --git a/dj/urls.py b/dj/urls.py
index 8133e37..e8464b3 100644
--- a/dj/urls.py
+++ b/dj/urls.py
@@ -8,7 +8,9 @@ urlpatterns = patterns('',
# url(r'^$', 'dj.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
- url(r'^crafting/', 'dj.scon.views.crafting', name='scon_crafting'),
+ url(r'^crafting/forum/$', 'dj.scon.views.crafting_forum', name='scon_crafting_forum'),
+ url(r'^crafting/$', 'dj.scon.views.crafting', name='scon_crafting'),
+
)
if settings.DEBUG or getattr(settings, 'SERVE_INTERNAL', False):
diff --git a/gui/viewer.py b/gui/viewer.py
index 5ac2be9..ff59fa6 100644
--- a/gui/viewer.py
+++ b/gui/viewer.py
@@ -77,7 +77,7 @@ class Browser(QtGui.QMainWindow):
self.connect(self.bt_back, QtCore.SIGNAL("clicked()"), self.html.back)
self.connect(self.bt_ahead, QtCore.SIGNAL("clicked()"), self.html.forward)
- self.tb_url.setText('Search...')
+ self.tb_url.setText('/crafting/forum')
self.browse()
@@ -87,10 +87,13 @@ class Browser(QtGui.QMainWindow):
Webview widget.
"""
- #url = self.tb_url.text() if self.tb_url.text() else self.default_url
- #self.html.load(QtCore.QUrl(url))
+ url = self.tb_url.text() if self.tb_url.text() else 'page:///'
+ if not str(url).startswith('page://'):
+ url = 'page://' + url
+ self.html.load(QtCore.QUrl(url))
#self.html.setHtml(self.serve())
- self.html.load(QtCore.QUrl('page:///crafting/overview/'))
+
+ #self.html.load(QtCore.QUrl('page:///crafting/forum/'))
self.html.show()
def serve(self, what=None):
diff --git a/logs/__init__.py b/logs/__init__.py
index e3d7ef9..4bf1f8d 100644
--- a/logs/__init__.py
+++ b/logs/__init__.py
@@ -1,13 +1,14 @@
-"""
- Library dedicated to Star Conflict Logs.
-
- Development plan:
- - Make Combat Log parse completely.
- - Make Game Log parse to get information like the local nickname or other needed infos.
- - Create a soft emulation, which keeps track of the basic game outcome / events.
-
- Additional Goals:
- - probably save games in own format to keep space.
- - database entries for kills, encountered players, etc.
-
+# -*- coding: utf-8 -*-
+"""
+ Library dedicated to Star Conflict Logs.
+
+ Development plan:
+ - Make Combat Log parse completely.
+ - Make Game Log parse to get information like the local nickname or other needed infos.
+ - Create a soft emulation, which keeps track of the basic game outcome / events.
+
+ Additional Goals:
+ - probably save games in own format to keep space.
+ - database entries for kills, encountered players, etc.
+
"""
\ No newline at end of file
diff --git a/logs/base.py b/logs/base.py
index a4ae7c0..308abad 100644
--- a/logs/base.py
+++ b/logs/base.py
@@ -1,9 +1,16 @@
+L_CMBT = 'CMBT'
+L_WARNING = 'WARNING'
+L_NET = 'NET'
+L_CHAT = 'CHAT'
class Log(object):
matcher = None
+ trash = False
@classmethod
def is_handler(cls, log):
return False
-
\ No newline at end of file
+
+ def unpack(self):
+ pass
diff --git a/logs/chat.py b/logs/chat.py
index e69de29..4c48b5a 100644
--- a/logs/chat.py
+++ b/logs/chat.py
@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-
diff --git a/logs/combat.py b/logs/combat.py
index 8673003..20c635d 100644
--- a/logs/combat.py
+++ b/logs/combat.py
@@ -1,3 +1,5 @@
+# -*- coding: utf-8 -*-
+
"""
todo:
- English implementation first.
@@ -19,9 +21,10 @@
The typical log entry
"""
import re
-from base import Log
+from base import Log, L_CMBT
class CombatLog(Log):
+ __slots__ = ['matcher', 'trash', '_match_id', 'values']
@classmethod
def _log_handler(cls, log):
if log.get('log', '').strip().startswith(cls.__name__):
@@ -30,7 +33,7 @@ class CombatLog(Log):
@classmethod
def is_handler(cls, log):
- if log.get('logtype', None) == 'CMBT':
+ if log.get('logtype', None) == L_CMBT:
return cls._log_handler(log)
return False
@@ -38,22 +41,28 @@ class CombatLog(Log):
self.values = values
def unpack(self):
+ self._match_id = None
# unpacks the data from the values.
if hasattr(self, 'matcher') and self.matcher:
matchers = self.matcher
if not isinstance(matchers, list):
matchers = [matchers,]
- for matcher in matchers:
+ for i, matcher in enumerate(matchers):
m = matcher.match(self.values.get('log', ''))
if m:
self.values.update(m.groupdict())
+ self._match_id = i
return True
+ # unknown?
+ self.trash = True
# @todo: where does this come from?
class Action(CombatLog):
+ __slots__ = CombatLog.__slots__
pass
class Gameplay(CombatLog):
+ __slots__ = CombatLog.__slots__
matcher = [
# usual: team(reason). explained reason.
re.compile(r"^Gameplay\sfinished\.\sWinner\steam\:\s+(?P