OSDN Git Service

[Refactor] #40653 Separated mind-chaos-warrior.c/h from spells-object.c/h
[hengband/hengband.git] / src / mind / mind-chaos-warrior.c
1 #include "mind/mind-chaos-warrior.h"
2 #include "floor/floor-object.h"
3 #include "object-enchant/object-boost.h"
4 #include "object-enchant/object-ego.h"
5 #include "object/object-generator.h"
6 #include "object/object-kind-hook.h"
7 #include "sv-definition/sv-weapon-types.h"
8 #include "system/floor-type-definition.h"
9 #include "system/object-type-definition.h"
10
11 void acquire_chaos_weapon(player_type *creature_ptr)
12 {
13     object_type forge;
14     object_type *q_ptr = &forge;
15     tval_type dummy = TV_SWORD;
16     OBJECT_SUBTYPE_VALUE dummy2;
17     switch (randint1(creature_ptr->lev)) {
18     case 0:
19     case 1:
20         dummy2 = SV_DAGGER;
21         break;
22     case 2:
23     case 3:
24         dummy2 = SV_MAIN_GAUCHE;
25         break;
26     case 4:
27         dummy2 = SV_TANTO;
28         break;
29     case 5:
30     case 6:
31         dummy2 = SV_RAPIER;
32         break;
33     case 7:
34     case 8:
35         dummy2 = SV_SMALL_SWORD;
36         break;
37     case 9:
38     case 10:
39         dummy2 = SV_BASILLARD;
40         break;
41     case 11:
42     case 12:
43     case 13:
44         dummy2 = SV_SHORT_SWORD;
45         break;
46     case 14:
47     case 15:
48         dummy2 = SV_SABRE;
49         break;
50     case 16:
51     case 17:
52         dummy2 = SV_CUTLASS;
53         break;
54     case 18:
55         dummy2 = SV_WAKIZASHI;
56         break;
57     case 19:
58         dummy2 = SV_KHOPESH;
59         break;
60     case 20:
61         dummy2 = SV_TULWAR;
62         break;
63     case 21:
64         dummy2 = SV_BROAD_SWORD;
65         break;
66     case 22:
67     case 23:
68         dummy2 = SV_LONG_SWORD;
69         break;
70     case 24:
71     case 25:
72         dummy2 = SV_SCIMITAR;
73         break;
74     case 26:
75         dummy2 = SV_NINJATO;
76         break;
77     case 27:
78         dummy2 = SV_KATANA;
79         break;
80     case 28:
81     case 29:
82         dummy2 = SV_BASTARD_SWORD;
83         break;
84     case 30:
85         dummy2 = SV_GREAT_SCIMITAR;
86         break;
87     case 31:
88         dummy2 = SV_CLAYMORE;
89         break;
90     case 32:
91         dummy2 = SV_ESPADON;
92         break;
93     case 33:
94         dummy2 = SV_TWO_HANDED_SWORD;
95         break;
96     case 34:
97         dummy2 = SV_FLAMBERGE;
98         break;
99     case 35:
100         dummy2 = SV_NO_DACHI;
101         break;
102     case 36:
103         dummy2 = SV_EXECUTIONERS_SWORD;
104         break;
105     case 37:
106         dummy2 = SV_ZWEIHANDER;
107         break;
108     case 38:
109         dummy2 = SV_HAYABUSA;
110         break;
111     default:
112         dummy2 = SV_BLADE_OF_CHAOS;
113     }
114
115     object_prep(creature_ptr, q_ptr, lookup_kind(dummy, dummy2));
116     q_ptr->to_h = 3 + randint1(creature_ptr->current_floor_ptr->dun_level) % 10;
117     q_ptr->to_d = 3 + randint1(creature_ptr->current_floor_ptr->dun_level) % 10;
118     one_resistance(q_ptr);
119     q_ptr->name2 = EGO_CHAOTIC;
120     (void)drop_near(creature_ptr, q_ptr, -1, creature_ptr->y, creature_ptr->x);
121 }