void main() {
    string[familiar] dropperProperty;
    int[familiar] otherThan5;
    string[item] itDropperProperty;
    int[item] noOfDrops;
    item[familiar] itemDroppedFam;
    item[item] itemDroppedItem;
    string colour;
    int valueOfDrops;
    
    dropperProperty[$familiar[Astral Badger]] = "_astralDrops";
    dropperProperty[$familiar[Green Pixie]] = "_absintheDrops";
    dropperProperty[$familiar[Llama Lama]] = "_gongDrops";
    dropperProperty[$familiar[Baby Sandworm]] = "_aguaDrops";
    dropperProperty[$familiar[Rogue Program]] = "_tokenDrops";
    dropperProperty[$familiar[Li'l Xenomorph]] = "_transponderDrops";
    dropperProperty[$familiar[Bloovian Groose]] = "_grooseDrops";
    dropperProperty[$familiar[Blavious Kloop]] = "_kloopDrops";
    dropperProperty[$familiar[Pair of Stomping Boots]] = "_bootStomps";
    dropperProperty[$familiar[Unconscious Collective]] = "_dreamJarDrops";
    dropperProperty[$familiar[Angry Jung Man]] = "_jungDrops";
    
    itemDroppedFam[$familiar[Astral Badger]] = $item[Astral Mushroom];
    itemDroppedFam[$familiar[Green Pixie]] = $item[tiny bottle of absinthe];
    itemDroppedFam[$familiar[Llama Lama]] = $item[Llama lama gong];
    itemDroppedFam[$familiar[Baby Sandworm]] = $item[Agua de vida];
    itemDroppedFam[$familiar[Rogue Program]] = $item[Game Grid token];
    itemDroppedFam[$familiar[Li'l Xenomorph]] = $item[transporter transponder];
    itemDroppedFam[$familiar[Bloovian Groose]] = $item[groose grease];
    itemDroppedFam[$familiar[Blavious Kloop]] = $item[devilish folio];
    itemDroppedFam[$familiar[Pair of Stomping Boots]] = $item[hobo paste];
    itemDroppedFam[$familiar[Unconscious Collective]] = $item[Unconscious Collective Dream Jar];
    itemDroppedFam[$familiar[Angry Jung Man]] = $item[jar of psychoses (The Meatsmith)];
    
    itDropperProperty[$item[Snow Suit]] = "_carrotNoseDrops";
    
    itemDroppedItem[$item[Snow Suit]] = $item[carrot nose];
    
    otherThan5[$familiar[Angry Jung Man]] = 1;
    otherThan5[$familiar[Pair of Stomping Boots]] = 7;
    
    noOfDrops[$item[Snow Suit]] = 3;
    
    foreach f in dropperProperty {
        colour = "red";
        if (have_familiar(f)) {
            valueOfDrops = (historical_age(itemDroppedFam[f])>1)? mall_price(itemDroppedFam[f]) : historical_price(itemDroppedFam[f]);
            if (otherThan5 contains f) {
                if (get_property(dropperProperty[f]) >= otherThan5[f]) {
                    colour = "blue";
                }
                print(get_property(dropperProperty[f]) + "/" + otherThan5[f] + " " + ((otherThan5[f]==1)? to_string(itemDroppedFam[f]) : to_plural(itemDroppedFam[f])) + " from the " + f + " (worth " + valueOfDrops + " meat.)", colour);
            } else {
                if (get_property(dropperProperty[f]) >= 5) {
                    colour = "blue";
                }
                print(get_property(dropperProperty[f]) + "/5" + " " + to_plural(itemDroppedFam[f]) + " from the " + f + " (worth " + valueOfDrops + " meat.)", colour);
            }
        }
    }
    print("\n");
    foreach it in itDropperProperty {
        colour = "red";
        if (available_amount(it) > 0) {
            valueOfDrops = (historical_age(itemDroppedItem[it])>1)? mall_price(itemDroppedItem[it]) : historical_price(itemDroppedItem[it]);
            if (get_property(itDropperProperty[it]) >= noOfDrops[it]) {
                colour = "blue";
            }
            print(get_property(itDropperProperty[it]) + "/" + noOfDrops[it] + " " + ((noOfDrops[it]==1)? to_string(itemDroppedItem[it]) : to_plural(itemDroppedItem[it])) + " from the " + it + " (worth " + valueOfDrops + " meat.)", colour);
        }
    }
}