WIP: Add a research tree view #1

Closed
williamjcm wants to merge 22 commits from research-tree into master
Showing only changes of commit f321a06a0e - Show all commits

View file

@ -127,6 +127,7 @@ void ResearchTree::generateEngineTree() {
return; return;
} }
// T1
_engineNodes.emplace(VerseEngine, Node{Node::Type::Engine, "Verse Engine", 1, 3, _engineNodes.emplace(VerseEngine, Node{Node::Type::Engine, "Verse Engine", 1, 3,
"A basic low-speed engine with great durability.", "A basic low-speed engine with great durability.",
"Durability +346, Power +60, Armour +22, Acceleration +75, Magazine load +35, Energy capacity +35", "Durability +346, Power +60, Armour +22, Acceleration +75, Magazine load +35, Energy capacity +35",
@ -140,61 +141,83 @@ void ResearchTree::generateEngineTree() {
_engineNodes.emplace(MetalPlatings1, Node{Node::Type::Gear, "Metal Platings 1", 1, 0, _engineNodes.emplace(MetalPlatings1, Node{Node::Type::Gear, "Metal Platings 1", 1, 0,
"Level 1 metal plating that adds durability and armour to your engine.", "Level 1 metal plating that adds durability and armour to your engine.",
"Durability +60, Armour +5, Acceleration -15", ""}); "Durability +60, Armour +5, Acceleration -15", ""});
_engineNodes.emplace(HeatTurbines1, Node{Node::Type::Gear, "Heat Turbines 1", 1, 0, _engineNodes.emplace(HeatTurbines1, Node{Node::Type::Gear, "Heat Turbines 1", 1, 0,
"Modified heat turbines to increase speed for a M.A.S.S.", "Modified heat turbines to increase speed for a M.A.S.S.",
"Acceleration +75, Fuel capacity +5", ""}); "Acceleration +75, Fuel capacity +5", ""});
_engineNodes.emplace(Microcontroller1, Node{Node::Type::Gear, "Microcontroller 1", 1, 0, _engineNodes.emplace(Microcontroller1, Node{Node::Type::Gear, "Microcontroller 1", 1, 0,
"A microchip that enhances various aspects of a M.A.S.S.", "A microchip that enhances various aspects of a M.A.S.S.",
"Durability +36, Power +1, Armour +11, Magazine load +5, Energy capacity +5, Fuel capacity +3", ""}); "Durability +36, Power +1, Armour +11, Magazine load +5, Energy capacity +5, Fuel capacity +3", ""});
_engineNodes.emplace(CombustionController1, Node{Node::Type::Gear, "Combustion Controller 1", 1, 0, _engineNodes.emplace(CombustionController1, Node{Node::Type::Gear, "Combustion Controller 1", 1, 0,
"Controlled combustion allows increased power generation through specific ignition.", "Controlled combustion allows increased power generation through specific ignition.",
"Power +2, Magazine load +10, Energy capacity +10, Acceleration -25", ""}); "Power +2, Magazine load +10, Energy capacity +10, Acceleration -25", ""});
// T2
_engineNodes.emplace(ModAlloyEngine, Node{Node::Type::Engine, "Mod. Alloy Engine", 2, 3, _engineNodes.emplace(ModAlloyEngine, Node{Node::Type::Engine, "Mod. Alloy Engine", 2, 3,
"Built with a modified alloy and able to sustain greater attacks from any enemy.", "Built with a modified alloy and able to sustain greater attacks from any enemy.",
"Durability +1152, Power +75, Armour +194, Acceleration +75, Magazine load +40, Energy capacity +40", "Durability +1152, Power +75, Armour +194, Acceleration +75, Magazine load +40, Energy capacity +40",
"Durability +3%"}); "Durability +3%"});
_engineNodes.emplace(ChargedEngine, Node{Node::Type::Engine, "Charged Engine", 2, 3, _engineNodes.emplace(ChargedEngine, Node{Node::Type::Engine, "Charged Engine", 2, 3,
"Remove most armours to attain more speed and power, and fuel.", "Remove most armours to attain more speed and power, and fuel.",
"Durability +960, Power +75, Acceleration +300, Magazine load +40, Energy capacity +40, Fuel capacity +52", "Durability +960, Power +75, Acceleration +300, Magazine load +40, Energy capacity +40, Fuel capacity +52",
"Acceleration +5"}); "Acceleration +5"});
_engineNodes.emplace(ReinforcedLoadedEngine, Node{Node::Type::Engine, "Reinforced Loaded Engine", 2, 3, _engineNodes.emplace(ReinforcedLoadedEngine, Node{Node::Type::Engine, "Reinforced Loaded Engine", 2, 3,
"An upgraded build of the basic model, with reinforced Verse Steel for more strength.", "An upgraded build of the basic model, with reinforced Verse Steel for more strength.",
"Durability +960, Power +105, Armour +130, Acceleration +75, Magazine load +40, Energy capacity +40", "Durability +960, Power +105, Armour +130, Acceleration +75, Magazine load +40, Energy capacity +40",
"Power +3%"}); "Power +3%"});
_engineNodes.emplace(HeavyImpactsEnabler, Node{Node::Type::Engine, "Heavy Impacts Enabler", 2, 0, _engineNodes.emplace(HeavyImpactsEnabler, Node{Node::Type::Engine, "Heavy Impacts Enabler", 2, 0,
"Enable the usage of Heavy Combos in close combat attacks.", "", ""}); "Enable the usage of Heavy Combos in close combat attacks.", "", ""});
_engineNodes.emplace(MetalPlatings2, Node{Node::Type::Gear, "Metal Platings 2", 2, 0, _engineNodes.emplace(MetalPlatings2, Node{Node::Type::Gear, "Metal Platings 2", 2, 0,
"Level 2 Metal plating that adds durability and armour to your engine.", "Level 2 Metal plating that adds durability and armour to your engine.",
"Durability +180, Armour +41, Acceleration -15", ""}); "Durability +180, Armour +41, Acceleration -15", ""});
_engineNodes.emplace(HeatTurbines2, Node{Node::Type::Gear, "Heat Turbines 2", 2, 0, _engineNodes.emplace(HeatTurbines2, Node{Node::Type::Gear, "Heat Turbines 2", 2, 0,
"Level 2 Modified heat turbines to increase speed for a M.A.S.S.", "Level 2 Modified heat turbines to increase speed for a M.A.S.S.",
"Acceleration +75, Fuel capacity +16", ""}); "Acceleration +75, Fuel capacity +16", ""});
_engineNodes.emplace(Microcontroller2, Node{Node::Type::Gear, "Microcontroller 2", 2, 0, _engineNodes.emplace(Microcontroller2, Node{Node::Type::Gear, "Microcontroller 2", 2, 0,
"Level 2 Microchip that enhances various aspects of a M.A.S.S.", "Level 2 Microchip that enhances various aspects of a M.A.S.S.",
"Durability +108, Power +3, Armour +17, Magazine load +6, Energy capacity +6, Fuel capacity +8", ""}); "Durability +108, Power +3, Armour +17, Magazine load +6, Energy capacity +6, Fuel capacity +8", ""});
_engineNodes.emplace(WeaponsCargo1, Node{Node::Type::Gear, "Weapons Cargo 1", 2, 0, _engineNodes.emplace(WeaponsCargo1, Node{Node::Type::Gear, "Weapons Cargo 1", 2, 0,
"Added another cargo hold for ammo and energy recharger", "Added another cargo hold for ammo and energy recharger.",
"Magazine load +24, Energy capacity +24, Acceleration -40", ""}); "Magazine load +24, Energy capacity +24, Acceleration -40", ""});
_engineNodes.emplace(CombustionController2, Node{Node::Type::Gear, "Combustion Controller 2", 2, 0, _engineNodes.emplace(CombustionController2, Node{Node::Type::Gear, "Combustion Controller 2", 2, 0,
"Level 2 Controlled combustion allows increased power generation through specific ignition.", "Level 2 Controlled combustion allows increased power generation through specific ignition.",
"Power +5, Magazine load +12, Energy capacity +12, Acceleration -25", ""}); "Power +5, Magazine load +12, Energy capacity +12, Acceleration -25", ""});
_engineNodes.emplace(PoweredRewiring1, Node{Node::Type::Gear, "Powered Rewiring 1", 2, 0, _engineNodes.emplace(PoweredRewiring1, Node{Node::Type::Gear, "Powered Rewiring 1", 2, 0,
"Rewiring that efficiently improves power and engine durability.", "Rewiring that efficiently improves power and engine durability.",
"Durability +180, Power +5", ""}); "Durability +180, Power +5", ""});
// T3
_engineNodes.emplace(ModSteelEngine, Node{Node::Type::Engine, "Mod. Steel Engine", 3, 3,
"Low-speed engine that uses heavy materials for high durability.",
"Durability +2352, Power +90, Armour +311, Acceleration +75, Magazine load +47, Energy capacity +47",
"Durability +3%"});
_engineNodes.emplace(SuperchargedEngine, Node{Node::Type::Engine, "Supercharged Engine", 3, 3,
"An engine with more thermal efficiency that does not sacrifice much performance for speed.",
"Durability +1960, Power +90, Acceleration +300, Magazine load +47, Energy capacity +47, Fuel capacity +104",
"Acceleration +5"});
_engineNodes.emplace(NecriumAlloyEngine, Node{Node::Type::Engine, "Necrium Alloy Engine", 3, 3,
"Engine constructed of Necrium Alloy. Costly but with better performance.",
"Durability +1960, Power +126, Armour +207, Acceleration +75, Magazine load +47, Energy capacity +47",
"Power +3%"});
_engineNodes.emplace(MetalPlatings3, Node{Node::Type::Gear, "Metal Platings 3", 3, 0,
"Level 2 Metal plating that adds durability and armour to your engine.",
"Durability +360, Armour +57, Acceleration -15", ""});
_engineNodes.emplace(HeatTurbines3, Node{Node::Type::Gear, "Heat Turbines 3", 3, 0,
"Level 3 Modified heat turbines to increase speed for a M.A.S.S.",
"Acceleration +75, Fuel capacity +32", ""});
_engineNodes.emplace(Microcontroller3, Node{Node::Type::Gear, "Microcontroller 3", 3, 0,
"Level 3 Microchip that enhances various aspects of a M.A.S.S.",
"Durability +216, Power +5, Armour +24, Magazine load +7, Energy capacity +7, Fuel capacity +16", ""});
_engineNodes.emplace(WeaponsCargo2, Node{Node::Type::Gear, "Weapons Cargo 2", 3, 0,
"Level 2 Added another cargo hold for ammo and energy recharger.",
"Magazine load +28, Energy capacity +28, Acceleration -40", ""});
_engineNodes.emplace(CombustionController3, Node{Node::Type::Gear, "Combustion Controller 3", 3, 0,
"Level 3 Controlled combustion allows increased power generation through specific ignition.",
"Power +11, Magazine load +14, Energy capacity +14, Acceleration -25", ""});
_engineNodes.emplace(PoweredRewiring2, Node{Node::Type::Gear, "Powered Rewiring 2", 3, 0,
"Level 2 Rewiring that efficiently improves power and engine durability.",
"Durability +360, Power +11", ""});
_engineNodes.at(VerseEngine).addChild(_engineNodes.at(MetalPlatings1)); _engineNodes.at(VerseEngine).addChild(_engineNodes.at(MetalPlatings1));
_engineNodes.at(VerseEngine).addChild(_engineNodes.at(HeatTurbines1)); _engineNodes.at(VerseEngine).addChild(_engineNodes.at(HeatTurbines1));
_engineNodes.at(VerseEngine).addChild(_engineNodes.at(LoadedEngine)); _engineNodes.at(VerseEngine).addChild(_engineNodes.at(LoadedEngine));
@ -212,6 +235,20 @@ void ResearchTree::generateEngineTree() {
_engineNodes.at(ReinforcedLoadedEngine).addChild(_engineNodes.at(CombustionController2)); _engineNodes.at(ReinforcedLoadedEngine).addChild(_engineNodes.at(CombustionController2));
_engineNodes.at(ReinforcedLoadedEngine).addChild(_engineNodes.at(PoweredRewiring1)); _engineNodes.at(ReinforcedLoadedEngine).addChild(_engineNodes.at(PoweredRewiring1));
_engineNodes.at(ReinforcedLoadedEngine).addChild(_engineNodes.at(HeavyImpactsEnabler)); _engineNodes.at(ReinforcedLoadedEngine).addChild(_engineNodes.at(HeavyImpactsEnabler));
_engineNodes.at(MetalPlatings2).addChild(_engineNodes.at(ModSteelEngine));
_engineNodes.at(HeatTurbines2).addChild(_engineNodes.at(SuperchargedEngine));
_engineNodes.at(Microcontroller2).addChild(_engineNodes.at(SuperchargedEngine));
_engineNodes.at(WeaponsCargo1).addChild(_engineNodes.at(SuperchargedEngine));
_engineNodes.at(CombustionController2).addChild(_engineNodes.at(NecriumAlloyEngine));
_engineNodes.at(PoweredRewiring1).addChild(_engineNodes.at(NecriumAlloyEngine));
_engineNodes.at(ModSteelEngine).addChild(_engineNodes.at(MetalPlatings3));
_engineNodes.at(ModSteelEngine).addChild(_engineNodes.at(HeatTurbines3));
_engineNodes.at(SuperchargedEngine).addChild(_engineNodes.at(HeatTurbines3));
_engineNodes.at(SuperchargedEngine).addChild(_engineNodes.at(Microcontroller3));
_engineNodes.at(SuperchargedEngine).addChild(_engineNodes.at(WeaponsCargo2));
_engineNodes.at(NecriumAlloyEngine).addChild(_engineNodes.at(WeaponsCargo2));
_engineNodes.at(NecriumAlloyEngine).addChild(_engineNodes.at(CombustionController3));
_engineNodes.at(NecriumAlloyEngine).addChild(_engineNodes.at(PoweredRewiring2));
_engineNodes.at(VerseEngine).setState(Node::State::Unlocked); _engineNodes.at(VerseEngine).setState(Node::State::Unlocked);
} }