bumcheekcity
Active member
Anyone have a snippet of code to return true if I have at least one one-handed ranged weapon on me?
boolean has_ranged()
{
foreach s in $slots[ weapon, off-hand ]
if ( s.equipped_item().weapon_type() == $stat[ Moxie ] )
return true;
return false;
}
boolean has_ranged = ( weapon_type( equipped_item( $slot[ weapon ] ) ) == $stat[ Moxie ] || weapon_type( equipped_item( $slot[ off-hand ] ) ) == $stat[ Moxie ] );
boolean has_1h_ranged()
{
foreach s in $slots[ weapon, off-hand ]
if ( s.equipped_item().weapon_type() == $stat[ Moxie ] && s.equipped_item().weapon_hands() == 1 )
return true;
return false;
}
boolean has_1h_ranged = ( equipped_item( $slot[ weapon ] ).weapon_hands() == 1 && ( weapon_type( equipped_item( $slot[ weapon ] ) ) == $stat[ Moxie ] || weapon_type( equipped_item( $slot[ off-hand ] ) ) == $stat[ Moxie ] ) );
void main() {
int [item] my_stuff = get_inventory();
boolean [item] ohr; //one handed ranged weapons map
foreach it in my_stuff {
if ((weapon_type(it) == $stat[Moxie]) && (weapon_hands(it) == 1)) {
ohr[it] = true;
}
}
if (count(ohr) > 0) {
print("One-handed ranged weapons:", "blue");
foreach it in ohr {
print(it.to_string());
}
}
}
import <item_search.ash>
// 1. Create a list of items you want to check
boolean [ item ] item_list;
foreach it in get_inventory()
item_list[ it ] = false;
// 2. create the item_search
item_search my_ims = create_item_search( item_list );
// search for the '1-handed' and 'ranged' keywords
// and take appropriate action
boolean has_1h_ranged = false;
foreach it in my_ims.search( "1-handed" ).search( "ranged" ).current_selection
{
has_1h_ranged = true;
}
print( has_1h_ranged );
ashq print("One-handed ranged weapons:"); foreach it in get_inventory() if ((weapon_type(it) == $stat[moxie]) && (weapon_hands(it) == 1)) print(doodad+" ("+get_power(it)+")");
maximize [whatever modifier you're looking for], 1 hand, -melee should consider only one-handed ranged weapons.