… | |
… | |
899 | new_draw_info_format (NDI_UNIQUE, 0, pl, "You convince the %s to become your follower.\n", query_name (tmp)); |
899 | new_draw_info_format (NDI_UNIQUE, 0, pl, "You convince the %s to become your follower.\n", query_name (tmp)); |
900 | |
900 | |
901 | tmp->set_owner (pl); |
901 | tmp->set_owner (pl); |
902 | tmp->skill = skill->skill; |
902 | tmp->skill = skill->skill; |
903 | tmp->stats.exp = 0; |
903 | tmp->stats.exp = 0; |
904 | add_friendly_object (tmp); |
|
|
905 | tmp->attack_movement = PETMOVE; |
904 | tmp->attack_movement = PETMOVE; |
|
|
905 | |
|
|
906 | if (!QUERY_FLAG (tmp, FLAG_FRIENDLY)) |
|
|
907 | add_friendly_object (tmp); |
|
|
908 | |
906 | return calc_skill_exp (pl, tmp, skill); |
909 | return calc_skill_exp (pl, tmp, skill); |
907 | } |
910 | } |
908 | /* Charm failed. Creature may be angry now */ |
911 | /* Charm failed. Creature may be angry now */ |
909 | else if ((skill->level + ((pl->stats.Cha - 10) / 2)) < random_roll (1, 2 * tmp->level, pl, PREFER_LOW)) |
912 | else if ((skill->level + ((pl->stats.Cha - 10) / 2)) < random_roll (1, 2 * tmp->level, pl, PREFER_LOW)) |
910 | { |
913 | { |
911 | new_draw_info_format (NDI_UNIQUE, 0, pl, "Your speech angers the %s!\n", query_name (tmp)); |
914 | new_draw_info_format (NDI_UNIQUE, 0, pl, "Your speech angers the %s!\n", query_name (tmp)); |
912 | if (QUERY_FLAG (tmp, FLAG_FRIENDLY)) |
915 | if (QUERY_FLAG (tmp, FLAG_FRIENDLY)) |
913 | { |
916 | { |
914 | CLEAR_FLAG (tmp, FLAG_FRIENDLY); |
|
|
915 | remove_friendly_object (tmp); |
917 | remove_friendly_object (tmp); |
916 | tmp->attack_movement = 0; /* needed? */ |
918 | tmp->attack_movement = 0; /* needed? */ |
917 | } |
919 | } |
918 | |
920 | |
919 | CLEAR_FLAG (tmp, FLAG_UNAGGRESSIVE); |
921 | CLEAR_FLAG (tmp, FLAG_UNAGGRESSIVE); |