コード例 #1
0
ファイル: spechit.c プロジェクト: naota/rogueclone2s-utf8
void
cough_up(object *monster)
{
    object *obj;
    short row, col, i, n;

    if (cur_level < max_level) {
	return;
    }

    if (monster->m_flags & STEALS_GOLD) {
	obj = alloc_object();
	obj->what_is = GOLD;
	obj->quantity = get_rand((cur_level * 15), (cur_level * 30));
    } else {
	if (!rand_percent((int) monster->drop_percent)) {
	    return;
	}
	obj = gr_object();
    }
    row = monster->row;
    col = monster->col;

    for (n = 0; n <= 5; n++) {
	for (i = -n; i <= n; i++) {
	    if (try_to_cough(row + n, col + i, obj)) {
		return;
	    }
	    if (try_to_cough(row - n, col + i, obj)) {
		return;
	    }
	}
	for (i = -n; i <= n; i++) {
	    if (try_to_cough(row + i, col - n, obj)) {
		return;
	    }
	    if (try_to_cough(row + i, col + n, obj)) {
		return;
	    }
	}
    }
    free_object(obj);
}
コード例 #2
0
ファイル: object.c プロジェクト: PhillipNordwall/original-bsd
put_objects()
{
	short i, n;
	object *obj;

	if (cur_level < max_level) {
		return;
	}
	n = coin_toss() ? get_rand(2, 4) : get_rand(3, 5);
	while (rand_percent(33)) {
		n++;
	}
	if (party_room != NO_ROOM) {
		make_party();
	}
	for (i = 0; i < n; i++) {
		obj = gr_object();
		rand_place(obj);
	}
	put_gold();
}