/*fish.cpp
Upon not being able to find a snippet being publicly shared to do this,
I decided to try to write something simple myself.
- Hera, of Athens - The Mud athens.boue.ca port 9000
hera_of_athens@yahoo.com*/
#include "include.h"
void do_fish( char_data *ch, char * )
{
OBJ_DATA *obj;
OBJ_DATA *fishcatch;
int fishevent;
if(!IS_SET(ch->in_room->room2_flags, ROOM2_FISH))
{
ch->println("`cYou are not at a fishing site.`x");
return;
}
if (!IS_NPC(ch))
{
for ( obj = ch->carrying; obj; obj = obj->next_content )
{
if ( obj->item_type == ITEM_POLE && obj->wear_loc == WEAR_HOLD )
break;
}
if ( !obj )
{
ch->println("`cYou are not holding a fishing pole.`x");
return;
}else{
for ( obj = ch->in_room->contents; obj; obj = obj->next_content )
{
if ( obj->item_type == ITEM_FISH )
extract_obj( obj );
break;
}
if ( obj == NULL )
{
ch->println( "`cThere are no fish to catch here.`x" );
return;
}
fishevent = dice(1,3);
switch(fishevent)
{
case 1:
ch->println("`cYou get a nibble but the fish leaves without taking the bait.`x\n\r");
break;
case 2:
ch->println("`cA fish steals your bait without getting hooked!`x\n\r");
break;
case 3:
if (get_obj_index(OBJ_VNUM_FISHCATCH)) {
fishcatch = create_object(get_obj_index(OBJ_VNUM_FISHCATCH));
ch->println("A fish takes the bait and becomes hooked.\n\r");
obj_to_char(fishcatch,ch);
}else{
ch->println( "BUG: No available catch object for fishing - please report!" );
return;
}
}
}
}
else
ch->println( "Mobiles don't need to fish." );
}