familiar dropfam() {
if (my_location().zone == "The Sea" || $locations[none, the slime tube] contains my_location()) return my_familiar();
boolean has_more_drop(familiar f, int soft) {
boolean clim(string prop, int hard) { return to_int(get_property(prop)) < min(soft,hard); }
switch(f) {
case $familiar[grimstone golem]: return clim("_grimstoneMaskDrops",1);
case $familiar[angry jung man]: return clim("_jungDrops",1);
case $familiar[astral badger]: return clim("_astralDrops",5);
case $familiar[baby sandworm]: return clim("_aguaDrops",5);
case $familiar[blavious kloop]: return clim("_kloopDrops",5);
case $familiar[bloovian groose]: return clim("_grooseDrops",5);
case $familiar[grim brother]: return clim("_grimFairyTaleDrops",5);
case $familiar[gelatinous cubeling]: return (available_amount($item[eleven-foot pole]) == 0 ||
available_amount($item[ring of detect boring doors]) == 0 || available_amount($item[pick-o-matic lockpicks]) == 0);
case $familiar[green pixie]: if (have_effect($effect[absinthe-minded]) > 0) return false; return clim("_absintheDrops",5);
case $familiar[happy medium]: return clim("_mediumSiphons",20);
case $familiar[knob goblin organ grinder]: return clim("_pieDrops",5);
case $familiar[li'l xenomorph]: return clim("_transponderDrops",5);
case $familiar[llama lama]: return clim("_gongDrops",5);
case $familiar[artistic goth kid]: if (!hippy_stone_broken() && have_familiar($familiar[mini-hipster])) return false;
case $familiar[mini-hipster]: if (!contains_text(to_url(my_location()),"adventure.php")) return false; return clim("_hipsterAdv",7);
case $familiar[pair of stomping boots]: foreach i,m in get_monsters(my_location()) if (!($phyla[dude,none] contains m.phylum)) return clim("_pasteDrops",7); return false;
case $familiar[rogue program]: return clim("_tokenDrops",5);
case $familiar[unconscious collective]: return clim("_dreamJarDrops",5);
} return false;
}
for i from 1 upto 10
foreach f in $familiars[green pixie, li'l xenomorph, baby sandworm, astral badger, llama lama, bloovian groose,
rogue program, blavious kloop, grim brother, unconscious collective, angry jung man, grimstone golem, happy medium,
knob goblin organ grinder, pair of stomping boots, artistic goth kid, mini-hipster, gelatinous cubeling]
if (have_familiar(f) && has_more_drop(f,i)) return f;
return my_familiar();
}