boolean equip_it(item it) {
return equipped_item($slot[familiar]) == it || (available_amount(it) > 0 && equip(it));
}
// Primestat to true for Crimbo Shrub choice
int to_int(stat s) {
switch(s) {
case $stat[Muscle]: return 1;
case $stat[Mysticality]: return 2;
case $stat[Moxie]: return 3;
}
return 0;
}
// Make a static list of all Generic familiar gear that is not breakable and increases familiar weight
item [int] generic_familiar_gear() {
item [int] gear;
foreach it in $items[]
if(item_type(it) == "familiar equipment" && string_modifier(it, "Modifiers").contains_text("Generic") && !string_modifier(it, "Modifiers").contains_text("Breakable") && numeric_modifier(it, "Familiar Weight") > 0)
gear[ count(gear) ] = it;
sort gear by -numeric_modifier(value, "Familiar Weight");
return gear;
}
static item [int] generics = generic_familiar_gear();
boolean equip_familiar() {
item specific;
switch(my_familiar()) {
case $familiar[Baby Bugged Bugbear]:
if(equipped_item($slot[familiar]) == $item[none]) {
if(item_amount($item[bugged balaclava]) > 0)
specific = $item[bugged balaclava];
else if(item_amount($item[bugged bön±Ã©t]) > 0)
specific = $item[bugged bön±Ã©t];
else if(item_amount($item[bugged beanie]) == 0) {
visit_url("arena.php");
cli_execute("fold bugged balaclava");
specific = $item[bugged balaclava];
} else
specific = $item[bugged beanie];
} else
specific = $item[bugged beanie];
break;
case $familiar[Mini-Hipster]:
return false;
case $familiar[stocking mimic]:
specific = $item[bag of many confections];
break;
case $familiar[artistic goth kid]:
specific = $item[little wooden mannequin];
break;
case $familiar[Dataspider]:
specific = $item[solid state loom];
break;
case $familiar[Crimbo Shrub]:
// Decorate my Crimbo Shrub!!
if(get_property("shrubGifts") == "") {
visit_url("inv_use.php?pwd&which=3&whichitem=7958");
// Set lights = prismatic dmg, garland = bloacking, gift = yellow ray, topper = mainstat
visit_url("choice.php?whichchoice=999&pwd&option=1&lights=1&garland=3&gift=1&topper=" + to_int(my_primestat()));
}
break;
// Never swtich gear for any of the following familiars
case $familiar[Disembodied Hand]:
case $familiar[Mad Hatrack]:
case $familiar[Fancypants Scarecrow]:
case $familiar[Comma Chameleon]:
return true;
}
// This is after setting Crimbo Shrub, but before equipping any other familiar item
if(my_path() == "One Crazy Random Summer" && equip_it($item[kill screen])) {
if(!is_familiar_equipment_locked())
lock_familiar_equipment(true);
return true;
}
if(specific != $item[none] && equip_it(specific))
return true;
sort generics by -numeric_modifier(value, "Familiar Weight"); // Value of Snow Suit changes over time
foreach x,doodad in generics
if(equip_it(doodad))
return true;
return false;
}
// Lock gamiliar gear if it is hardcore and the gear is generic.
void check_lock() {
if(!can_interact() && equipped_item($slot[familiar]).string_modifier("Modifiers").contains_text("Generic") && !is_familiar_equipment_locked())
lock_familiar_equipment(true);
}
boolean main() {
if(is_familiar_equipment_locked())
return true;
boolean ok = equip_familiar();
check_lock();
return ok;
}