Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string[int] mods = file_to_array("data/tcrs numeric modifiers.txt");
- string[int] items_with_mod;
- string[string] names_of_mods;
- string[int][int] files;
- for i from 1 to 6{
- files[i] = file_to_array("data/TCRS_"+(i.to_class().replace_string(" ","_"))+"_Mongoose.txt");
- files[i+6] = file_to_array("data/TCRS_"+(i.to_class().replace_string(" ","_"))+"_Wallaby.txt");
- files[i+12] = file_to_array("data/TCRS_"+(i.to_class().replace_string(" ","_"))+"_Vole.txt");
- files[i+18] = file_to_array("data/TCRS_"+(i.to_class().replace_string(" ","_"))+"_Platypus.txt");
- files[i+24] = file_to_array("data/TCRS_"+(i.to_class().replace_string(" ","_"))+"_Marmot.txt");
- files[i+30] = file_to_array("data/TCRS_"+(i.to_class().replace_string(" ","_"))+"_Opossum.txt");
- }
- int county_thing;
- slot some_buffer_item_slot;
- boolean see_above;
- string intersection;
- string[int] intersection_words;
- boolean[int] intersection_boolean;
- foreach i in mods{
- clear(items_with_mod);
- county_thing = 0;
- //make a big list of item tcrsnames containing that modifier's name. We don't need all of them, just a bunch.
- for j from 1 to 36{
- foreach k in files[j]{
- //select lines where item's string modifier is precisely the current modifier.
- if(files[j][k].group_string("\\t([^\\t]*)$")[0][1] == mods[i] ){
- //reduce that to lines corresponding to equipment that goes into non-bullshit slots
- some_buffer_item_slot = files[j][k].group_string("^(\\d)+\\t")[0][1].to_int().to_item().to_slot();
- see_above = false;
- foreach asdf in $slots[acc1,weapon,pants]{
- if(asdf == some_buffer_item_slot){
- see_above = true;
- }
- }
- if(see_above){
- //if modifiers contains a comma, we should probably exclude the item.
- //you know, for reasons.
- if(!(files[j][k].group_string("^(\\d)+\\t")[0][1].to_int().to_item().string_modifier("Modifiers").contains_text(","))){
- county_thing++;
- //grab item's tcrsname.
- items_with_mod[county_thing] = files[j][k].group_string("^\\d+\\t([^\\t]*)\\t")[0][1];
- }
- }
- }
- }
- }
- //arbitrarily choose an item name from list to be the start of our intersection.
- intersection_words = items_with_mod[1].split_string(" ");
- //print(intersection_words[1]);
- int[string][int] counting_words;
- foreach j in items_with_mod{
- foreach k in items_with_mod[j].split_string(" "){
- foreach asdf in intersection_words{
- if( intersection_words[asdf] == items_with_mod[j].split_string(" ")[k] ){
- counting_words[intersection_words[asdf]][asdf]++;
- }
- }
- }
- }
- clear(intersection_words);
- county_thing = 0;
- foreach j,k in counting_words{
- if(counting_words[j][k] * 2 > count(items_with_mod)){
- intersection_words[county_thing] = j;
- county_thing++;
- }
- }
- //get rid of all duplicate words
- foreach j in intersection_words{
- foreach k in intersection_words{
- if(intersection_words[j].length() > 0 && j < k && intersection_words[j] == intersection_words[k]){
- intersection_words[k] = "";
- }
- }
- }
- //put the words together.
- intersection = "";
- foreach j in intersection_words{
- if(intersection_words[j].length() > 0){
- intersection += intersection_words[j] +" ";
- }
- }
- //trim single trailing whitespace guaranteed to result from above process
- intersection = intersection.group_string("^(.*)\\s$")[0][1];
- names_of_mods[mods[i]] = intersection;
- print(intersection);
- }
- map_to_file(names_of_mods, "tcrs modifier name correspondence");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement