1 #ifndef CATA_OBJECT_CREATOR_SPELL_WINDOW_H
2 #define CATA_OBJECT_CREATOR_SPELL_WINDOW_H
3 
4 #include "dual_list_box.h"
5 #include "fake_spell_listbox.h"
6 #include "magic.h"
7 
8 #include <QtWidgets/qcheckbox.h>
9 #include <QtWidgets/qcombobox.h>
10 #include <QtWidgets/qgridlayout.h>
11 #include <QtWidgets/qlineedit.h>
12 #include <QtWidgets/qlistwidget.h>
13 #include <QtWidgets/qmainwindow.h>
14 #include <QtWidgets/qplaintextedit.h>
15 #include <QtWidgets/qspinbox.h>
16 #include <QtWidgets/qtablewidget.h>
17 
18 namespace creator
19 {
20 class spell_window : public QMainWindow
21 {
22     public:
23         spell_window( QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags() );
24 
show()25         void show() {
26             spell_json.show();
27             QWidget::show();
28         }
29 
hide()30         void hide() {
31             spell_json.hide();
32             QWidget::hide();
33         }
34     private:
35         spell_type editable_spell;
36         QTextEdit spell_json;
37 
38         void write_json();
39 
40         QLabel id_label;
41         QLineEdit id_box;
42 
43         QLabel name_label;
44         QLineEdit name_box;
45 
46         QLabel description_label;
47         QPlainTextEdit description_box;
48 
49         QLabel valid_targets_label;
50         QListWidget valid_targets_box;
51 
52         QLabel energy_cost_label;
53         QSpinBox base_energy_cost_box;
54         QDoubleSpinBox energy_increment_box;
55         QSpinBox final_energy_cost_box;
56 
57         QLabel damage_label;
58         QSpinBox min_damage_box;
59         QDoubleSpinBox damage_increment_box;
60         QSpinBox max_damage_box;
61 
62         QLabel range_label;
63         QSpinBox min_range_box;
64         QDoubleSpinBox range_increment_box;
65         QSpinBox max_range_box;
66 
67         QLabel aoe_label;
68         QSpinBox min_aoe_box;
69         QDoubleSpinBox aoe_increment_box;
70         QSpinBox max_aoe_box;
71 
72         QLabel dot_label;
73         QSpinBox min_dot_box;
74         QDoubleSpinBox dot_increment_box;
75         QSpinBox max_dot_box;
76 
77         QLabel pierce_label;
78         QSpinBox min_pierce_box;
79         QDoubleSpinBox pierce_increment_box;
80         QSpinBox max_pierce_box;
81 
82         QLabel casting_time_label;
83         QSpinBox base_casting_time_box;
84         QDoubleSpinBox casting_time_increment_box;
85         QSpinBox final_casting_time_box;
86 
87         QLabel spell_flags_label;
88         QListWidget spell_flags_box;
89 
90         QLabel energy_source_label;
91         QComboBox energy_source_box;
92 
93         QLabel dmg_type_label;
94         QComboBox dmg_type_box;
95 
96         QLabel spell_class_label;
97         QComboBox spell_class_box;
98 
99         QLabel difficulty_label;
100         QSpinBox difficulty_box;
101 
102         QLabel max_level_label;
103         QSpinBox max_level_box;
104 
105         QLabel spell_message_label;
106         QLineEdit spell_message_box;
107 
108         QLabel components_label;
109         QComboBox components_box;
110 
111         QLabel skill_label;
112         QComboBox skill_box;
113 
114         QLabel field_id_label;
115         QComboBox field_id_box;
116 
117         QLabel field_chance_label;
118         QSpinBox field_chance_box;
119 
120         QLabel min_field_intensity_label;
121         QSpinBox min_field_intensity_box;
122 
123         QLabel field_intensity_increment_label;
124         QDoubleSpinBox field_intensity_increment_box;
125 
126         QLabel max_field_intensity_label;
127         QSpinBox max_field_intensity_box;
128 
129         QLabel field_intensity_variance_label;
130         QSpinBox field_intensity_variance_box;
131 
132         QLabel affected_bps_label;
133         QListWidget affected_bps_box;
134 
135         QLabel effect_label;
136         QComboBox effect_box;
137 
138         QLabel effect_str_label;
139         QLineEdit effect_str_box;
140 
141         QLabel shape_label;
142         QComboBox shape_box;
143 
144         QLabel sound_description_label;
145         QLineEdit sound_description_box;
146 
147         QLabel sound_type_label;
148         QComboBox sound_type_box;
149 
150         QLabel sound_id_label;
151         QLineEdit sound_id_box;
152 
153         QLabel sound_variant_label;
154         QLineEdit sound_variant_box;
155 
156         QLabel sound_ambient_label;
157         QCheckBox sound_ambient_box;
158 
159         fake_spell_listbox additional_spells_box;
160 
161         QLabel targeted_monster_ids_label;
162         dual_list_box targeted_monster_ids_box;
163 
164         QTableWidget learn_spells_box;
165 };
166 }
167 
168 #endif
169