OSDN Git Service

Merge pull request #41491 (taotao/hengband/fix-impure_calc_num_blow into develop).
[hengband/hengband.git] / src / blue-magic / blue-magic-util.c
1 #include "blue-magic/blue-magic-util.h"
2 #include "monster-floor/place-monster-types.h"
3
4 bmc_type *initialize_blue_magic_type(
5     player_type *caster_ptr, bmc_type *bmc_ptr, const bool success, get_pseudo_monstetr_level_pf get_pseudo_monstetr_level)
6 {
7     bmc_ptr->plev = (*get_pseudo_monstetr_level)(caster_ptr);
8     bmc_ptr->summon_lev = caster_ptr->lev * 2 / 3 + randint1(caster_ptr->lev / 2);
9     bmc_ptr->damage = 0;
10     bmc_ptr->pet = success; // read-only.
11     bmc_ptr->no_trump = FALSE;
12     bmc_ptr->p_mode = bmc_ptr->pet ? PM_FORCE_PET : PM_NO_PET;
13     bmc_ptr->u_mode = 0L;
14     bmc_ptr->g_mode = bmc_ptr->pet ? 0 : PM_ALLOW_GROUP;
15     if (!success || (randint1(50 + bmc_ptr->plev) < bmc_ptr->plev / 10))
16         bmc_ptr->u_mode = PM_ALLOW_UNIQUE;
17
18     return bmc_ptr;
19 }