From af3e32d9dee5c1e4e88b34319976a960a1970e47 Mon Sep 17 00:00:00 2001 From: William JCM Date: Sat, 7 Aug 2021 15:29:24 +0200 Subject: [PATCH] ResearchTree: add OS T2 nodes and IDs. --- src/ResearchTree/NodeIDs.h | 22 +++++------ src/ResearchTree/ResearchTree.cpp | 62 ++++++++++++++++++++++++++++--- 2 files changed, 68 insertions(+), 16 deletions(-) diff --git a/src/ResearchTree/NodeIDs.h b/src/ResearchTree/NodeIDs.h index 7846704..2e0bd2b 100644 --- a/src/ResearchTree/NodeIDs.h +++ b/src/ResearchTree/NodeIDs.h @@ -93,17 +93,17 @@ enum OSIDs: Int { LongRange1 = 400030, // Tier 2 - SparkOS, - ImprovedNeuralOS, - EnhancedSkeletonOS, - ExtendedArtsLibrary, - SustainableShields1, - Shields2, - SustainableRecharger1, - Enhancements2, - FuelSave2, - LongRange2, - EmpoweredArtsLibrary, + SparkOS = 310010, + ImprovedNeuralOS = 310050, + EnhancedSkeletonOS = 310030, + ExtendedArtsLibrary = 310100, + SustainableShields1 = 410011, + Shields2 = 410010, + SustainableRecharger1 = 410052, + Enhancements2 = 410050, + FuelSave2 = 410051, + LongRange2 = 410030, + EmpoweredArtsLibrary = 310101, //Tier 3 BlazeOS, diff --git a/src/ResearchTree/ResearchTree.cpp b/src/ResearchTree/ResearchTree.cpp index 2ec4166..14e1dbe 100644 --- a/src/ResearchTree/ResearchTree.cpp +++ b/src/ResearchTree/ResearchTree.cpp @@ -358,12 +358,64 @@ void ResearchTree::generateOSTree() { "Controlling module that helps in stabilisation for higher accuracy and reload speed.", "Accuracy +2, Fuel burn rate +50, Magazine reload +25, Energy recharge +33", ""}); + // T2 + _osNodes.emplace(SparkOS, Node{Node::Type::OS, "Spark OS", 2, 3, + "An OS equipped with an enhanced AI for M.A.S.S. control called \"Spark\".", + "Accuracy +31, Shield +1872, Fuel burn rate +200, Magazine reload +54, Energy recharge +93, Shield recover +2040", + "Shield +3%"}); + _osNodes.emplace(ImprovedNeuralOS, Node{Node::Type::OS, "Improved Neural OS", 2, 3, + "An improved version of the Neural OS that improves synchronisation.", + "Accuracy +14, Shield +1296, Fuel burn rate +50, Magazine reload +68, Energy recharge +117, Shield recover +3230", + "Magazine reload +3%, Energy recharge +3%"}); + _osNodes.emplace(EnhancedSkeletonOS, Node{Node::Type::OS, "Enhanced Skeleton OS", 2, 3, + "An updated version of the ExoSkel OS that improves weight simulation.", + "Accuracy +59, Shield +1080, Fuel burn rate +300, Magazine reload +68, Energy recharge +117, Shield recover +765", + "Accuracy +3%"}); + _osNodes.emplace(ExtendedArtsLibrary, Node{Node::Type::OS, "Extended Arts Library", 2, 0, + "Enable the usage of Extended Combos in close combat attacks.", + "", ""}); + _osNodes.emplace(SustainableShields1, Node{Node::Type::Module, "Sustainable Shields 1", 2, 0, + "A module that efficiently converts energy into shields.", + "Shields +216", ""}); + _osNodes.emplace(Shields2, Node{Node::Type::Module, "Shields 2", 2, 0, + "Level 2 Module that helps in optimising shield usage.", + "Shield +180, Fuel burn rate +25, Shield recover +675", ""}); + _osNodes.emplace(SustainableRecharger1, Node{Node::Type::Module, "Sustainable Recharger 1", 2, 0, + "Energy-saving shield recharging module.", + "Shield recover +1350", ""}); + _osNodes.emplace(Enhancements2, Node{Node::Type::Module, "Enhancements 2", 2, 0, + "Level 2 Overall enhancement module.", + "Accuracy +3, Shield +108, Magazine reload +15, Energy recharge +19, Fuel burn rate -6, Shield recover +225", ""}); + _osNodes.emplace(FuelSave2, Node{Node::Type::Module, "Fuel Save 2", 2, 0, + "Level 2 Optimisation module for energy usage of the M.A.S.S. frame.", + "Fuel burn rate -12, Fuel recharge +7", ""}); + _osNodes.emplace(LongRange2, Node{Node::Type::Module, "Long Range 2", 2, 0, + "Level 2 Controlling module that helps in stabilisation for higher accuracy and reload speed.", + "Accuracy +5, Fuel burn rate +50, Magazine reload +31, Energy recharge +38", ""}); + _osNodes.emplace(EmpoweredArtsLibrary, Node{Node::Type::OS, "Empowered Arts Library", 2, 0, + "Enable the usage of Empowered Combos in close combat attacks.", + "", ""}); + #define osAddChild(parent, child) _osNodes.at(parent).addChild(_osNodes.at(child)); - osAddChild(NeuralOS, Shields1) - osAddChild(NeuralOS, Enhancements1) - osAddChild(NeuralOS, ExoSkelOS) - osAddChild(ExoSkelOS, FuelSave1) - osAddChild(ExoSkelOS, LongRange1) + osAddChild(NeuralOS, Shields1) + osAddChild(NeuralOS, Enhancements1) + osAddChild(NeuralOS, ExoSkelOS) + osAddChild(ExoSkelOS, FuelSave1) + osAddChild(ExoSkelOS, LongRange1) + osAddChild(Shields1, SparkOS) + osAddChild(Enhancements1, ImprovedNeuralOS) + osAddChild(FuelSave1, ImprovedNeuralOS) + osAddChild(LongRange1, EnhancedSkeletonOS) + osAddChild(SparkOS, SustainableShields1) + osAddChild(SparkOS, Shields2) + osAddChild(SparkOS, SustainableRecharger1) + osAddChild(ImprovedNeuralOS, SustainableRecharger1) + osAddChild(ImprovedNeuralOS, Enhancements2) + osAddChild(ImprovedNeuralOS, FuelSave2) + osAddChild(EnhancedSkeletonOS, FuelSave2) + osAddChild(EnhancedSkeletonOS, LongRange2) + osAddChild(EnhancedSkeletonOS, ExtendedArtsLibrary) + osAddChild(ExtendedArtsLibrary, EmpoweredArtsLibrary) #undef osAddChild _osNodes.at(NeuralOS).setState(Node::State::Unlocked);