Currently I'm working through Guardian, there's alot less copy pasta I can do from primaries here as the sets are unique.
for anyone who wants to help with text input, this is the dictionary system I'm using:
secondaryDict['Guardian'] = {};
secondaryDict['Guardian']['Atmospheric_Composition'] = ["Charged Armor", "Gale Winds", "Grounding Shield", "Static Shield", "Steamy Mist", "Mass Energise", "Snow Storm", "Power Sink", "Freezing Rain"];
secondaryDict['Guardian']['Atmospheric_CompositionValues'] = ["Charged_Armor", "Gale_Winds", "Grounding_Shield", "Static_Shield", "Steamy_Mist", "Mass_Energise", "Snow_Storm", "Power_Sink", "Freezing_Rain"];
secondaryDict['Guardian']['Dark_Composition'] = ["Dark Embrace", "Twilight Grasp", "Tar Patch", "Obsidian Shield", "Murky Haze", "Shadow Fall", "Cloak of Fear", "Soul Absorption", "Howling Twilight"];
secondaryDict['Guardian']['Dark_CompositionValues'] = ["Dark_Embrace", "Twilight_Grasp", "Tar_Patch", "Obsidian_Shield", "Murky_Haze", "Shadow_Fall", "Cloak_of_Fear", "Soul_Absorption", "Howling_Twilight"];
secondaryDict['Guardian']['Energy_Composition'] = ["Kinetic Shield", "Siphon Power", "Power Shield", "Entropy Shield", "Inertial Siphon", "Mass Energize", "Kinetic Dampening", "Transference", "Fulcrum Flip"];
secondaryDict['Guardian']['Energy_CompositionValues'] = ["Kinetic Shield", "Siphon Power", "Power Shield", "Entropy Shield", "Inertial Siphon", "Mass Energize", "Kinetic Dampening", "Transference", "Fulcrum Flip"];
to explain it so it's simple:
secondaryDict['Guardian'] = {};
secondaryDict is the name of the dictionary
['Guardian'] is a "key" in that dictionary, Keys are a name that can be searched and that name returns any sub-keys or data, so if I printed out secondaryDict['Guardian'] right now I'd get a list of subkeys: ["Atmospheric_Composition", "Atmospheric_CompositionValues", "Dark_Composition", "Dark_CompositionValues", "Energy_Composition", "Energy_CompositionValues"].
I use ' which is a "single quote" and also called an apostrophe like in "there's" or "it's", I tend to reserve single quotes ' rather than double quotes " for key names, where " double quotes are reserved for "strings of text". it makes reading the code easier.
we wont get into combining the quote types as it will not be necessary for keying or data entry.
"= {};"
this tells it that secondaryDict['Guardian'] is a dictionary data type. = means this variable name = what I put after it, {} means dictionary, ";" means "end argument" it essentially tells it not to continue looking for more information to compute for this line on any further lines. it's like a javascript period meaning end of sentence.
fun lesson for those who don't know: dictionary keys can be written like this {keyname: value} so in example {"HP": 1200}, or {"Guardian": ["Atmospheric_Composition", "Atmospheric_CompositionValues", "Dark_Composition", "Dark_CompositionValues", "Energy_Composition", "Energy_CompositionValues"]}
"secondaryDict['Guardian']['Atmospheric_Composition'] = ["Charged Armor", "Gale Winds", "Grounding Shield", "Static Shield", "Steamy Mist", "Mass Energise", "Snow Storm", "Power Sink", "Freezing Rain"];"
this calls the dictionary named secondaryDict and grabs the value of guardian then from that list of values it specifies further that I only want to grab the value of "Atmospheric_Composition"
the "=" here is telling it that I wish to set the value for the key "Atmospheric_Composition" whatever is following it will be the key it returns when called.
"[];"
this is a "list" or "array", with an ; end sentence telling it "go no further for values of 'Atmospheric_Composition'".
["Charged Armor", "Gale Winds", "Grounding Shield", "Static Shield", "Steamy Mist", "Mass Energise", "Snow Storm", "Power Sink", "Freezing Rain"]
this list contains the power names as strings "" separated by commas , . this is as far as we are going at current, just inputting power names, in level order for the Archetype.
what do these lists do?
below the dictionary in the actual script I have code which checks a drop-down menu value in the webpage and then based on the name of that drop-down menu option it will return the list of powers with that powerset name.
then for each power in the list, in order, it creates a button in the space below the dropdown menu. these buttons will eventually allow users to select their powers.
what about the keys that say the powerset name followed by "Values"?
secondaryDict['Guardian']['Atmospheric_CompositionValues'] = ["Charged_Armor", "Gale_Winds", "Grounding_Shield", "Static_Shield", "Steamy_Mist", "Mass_Energise", "Snow_Storm", "Power_Sink", "Freezing_Rain"];
it's almost the same as the other list, but here there's no spaces, dashes, nor apostrophes in power names. this is important because these texts are used to create object IDs, object IDs are like names which can be used to select an element in the webpage document to then apply some action or code, so giving each button a unique ID is important. however IDs throw errors with things like spaces, -, ', in their name, the errors just cause the code to stop and the button will just be skipped(it wont make the button if you do "Executioner's Strike" or "X-ray Beam" as the ID name, instead we'd do "Executoners_Strike" removing the apostrophe and replacing the space with _ underscore, and "Xray_Beam" for the names of the IDs. this means creating a second list with the power names which I named 'powerset_nameValues'
that's what I'm doing right now. I've completed the entire primary powerset dictionary and the code to create primary power buttons.
for the secondary dictionary I've done blaster, controller, scrapper, defender, tanker, peacebringer and warshade, then started on guardian. I still have the "villain" ATs secondary sets' to input. so that's where I am if people want to help.