Coverage report for ai


src/
File: src/run/patterns/Incantation.cpp
Date: 2024-06-25 10:57:00
Lines:
0/172
0.0%
Functions:
0/57
0.0%
Branches:
0/122
0.0%

Line Branch Exec Source
1 /*
2 ** EPITECH PROJECT, 2024
3 ** zappy/ai
4 ** File description:
5 ** Incantation.cpp
6 */
7
8 #include "../../bots/ABotPattern.hpp"
9 // Landmark: fix meeting_id_group_done
10 void ABotPattern::warnsWillIncant()
11 {
12 std::string willIncant = "warns_will_incant_" + _state.metadata["id_group"];
13 addBroadcastAction(willIncant);
14 }
15
16 void ABotPattern::incantationLvl1()
17 {
18 queue.push_back({[&]()
19 { doAction(SET, "linemate"); }, "SET"});
20 _state.ressources.linemate--;
21 queue.push_back({[&]()
22 { doAction(INCANTATION, ""); }, "INCANTATION"});
23 }
24
25 void ABotPattern::incantationLvl2()
26 {
27 queue.push_back({[&]()
28 { doAction(SET, "linemate"); }, "SET"});
29 _state.ressources.linemate--;
30 queue.push_back({[&]()
31 { doAction(SET, "deraumere"); }, "SET"});
32 _state.ressources.deraumere--;
33 queue.push_back({[&]()
34 { doAction(SET, "sibur"); }, "SET"});
35 _state.ressources.sibur--;
36 warnsWillIncant();
37 queue.push_back({[&]()
38 { doAction(INCANTATION, ""); }, "INCANTATION"});
39 _state.metadata["should_incant"] = "false";
40 }
41
42 void ABotPattern::incantationLvl3()
43 {
44 queue.push_back({[&]()
45 { doAction(SET, "linemate"); }, "SET"});
46 _state.ressources.linemate--;
47 queue.push_back({[&]()
48 { doAction(SET, "linemate"); }, "SET"});
49 _state.ressources.linemate--;
50 queue.push_back({[&]()
51 { doAction(SET, "sibur"); }, "SET"});
52 _state.ressources.sibur--;
53 queue.push_back({[&]()
54 { doAction(SET, "phiras"); }, "SET"});
55 _state.ressources.phiras--;
56 queue.push_back({[&]()
57 { doAction(SET, "phiras"); }, "SET"});
58 _state.ressources.phiras--;
59 warnsWillIncant();
60 queue.push_back({[&]()
61 { doAction(INCANTATION, ""); }, "INCANTATION"});
62 _state.metadata["should_incant"] = "false";
63 }
64
65 void ABotPattern::incantationLvl4()
66 {
67 queue.push_back({[&]()
68 { doAction(SET, "linemate"); }, "SET"});
69 _state.ressources.linemate--;
70 queue.push_back({[&]()
71 { doAction(SET, "deraumere"); }, "SET"});
72 _state.ressources.deraumere--;
73 queue.push_back({[&]()
74 { doAction(SET, "sibur"); }, "SET"});
75 _state.ressources.sibur--;
76 queue.push_back({[&]()
77 { doAction(SET, "sibur"); }, "SET"});
78 _state.ressources.sibur--;
79 queue.push_back({[&]()
80 { doAction(SET, "phiras"); }, "SET"});
81 _state.ressources.phiras--;
82 warnsWillIncant();
83 queue.push_back({[&]()
84 { doAction(INCANTATION, ""); }, "INCANTATION"});
85 _state.metadata["should_incant"] = "false";
86 }
87
88 void ABotPattern::incantationLvl5()
89 {
90 queue.push_back({[&]()
91 { doAction(SET, "linemate"); }, "SET"});
92 _state.ressources.linemate--;
93 queue.push_back({[&]()
94 { doAction(SET, "deraumere"); }, "SET"});
95 _state.ressources.deraumere--;
96 queue.push_back({[&]()
97 { doAction(SET, "deraumere"); }, "SET"});
98 _state.ressources.deraumere--;
99 queue.push_back({[&]()
100 { doAction(SET, "sibur"); }, "SET"});
101 _state.ressources.sibur--;
102 queue.push_back({[&]()
103 { doAction(SET, "mendiane"); }, "SET"});
104 _state.ressources.mendiane--;
105 queue.push_back({[&]()
106 { doAction(SET, "mendiane"); }, "SET"});
107 _state.ressources.mendiane--;
108 queue.push_back({[&]()
109 { doAction(SET, "mendiane"); }, "SET"});
110 _state.ressources.mendiane--;
111 warnsWillIncant();
112 queue.push_back({[&]()
113 { doAction(INCANTATION, ""); }, "INCANTATION"});
114 _state.metadata["should_incant"] = "false";
115 }
116
117 void ABotPattern::incantationLvl6()
118 {
119 queue.push_back({[&]()
120 { doAction(SET, "linemate"); }, "SET"});
121 _state.ressources.linemate--;
122 queue.push_back({[&]()
123 { doAction(SET, "deraumere"); }, "SET"});
124 _state.ressources.deraumere--;
125 queue.push_back({[&]()
126 { doAction(SET, "deraumere"); }, "SET"});
127 _state.ressources.deraumere--;
128 queue.push_back({[&]()
129 { doAction(SET, "sibur"); }, "SET"});
130 _state.ressources.sibur--;
131 queue.push_back({[&]()
132 { doAction(SET, "sibur"); }, "SET"});
133 _state.ressources.sibur--;
134 queue.push_back({[&]()
135 { doAction(SET, "sibur"); }, "SET"});
136 _state.ressources.sibur--;
137 queue.push_back({[&]()
138 { doAction(SET, "phiras"); }, "SET"});
139 _state.ressources.phiras--;
140 warnsWillIncant();
141 queue.push_back({[&]()
142 { doAction(INCANTATION, ""); }, "INCANTATION"});
143 _state.metadata["should_incant"] = "false";
144 }
145
146 void ABotPattern::incantationLvl7()
147 {
148 queue.push_back({[&]()
149 { doAction(SET, "linemate"); }, "SET"});
150 _state.ressources.linemate--;
151 queue.push_back({[&]()
152 { doAction(SET, "linemate"); }, "SET"});
153 _state.ressources.linemate--;
154 queue.push_back({[&]()
155 { doAction(SET, "deraumere"); }, "SET"});
156 _state.ressources.deraumere--;
157 queue.push_back({[&]()
158 { doAction(SET, "deraumere"); }, "SET"});
159 _state.ressources.deraumere--;
160 queue.push_back({[&]()
161 { doAction(SET, "sibur"); }, "SET"});
162 _state.ressources.sibur--;
163 queue.push_back({[&]()
164 { doAction(SET, "sibur"); }, "SET"});
165 _state.ressources.sibur--;
166 queue.push_back({[&]()
167 { doAction(SET, "mendiane"); }, "SET"});
168 _state.ressources.mendiane--;
169 queue.push_back({[&]()
170 { doAction(SET, "mendiane"); }, "SET"});
171 _state.ressources.mendiane--;
172 queue.push_back({[&]()
173 { doAction(SET, "phiras"); }, "SET"});
174 _state.ressources.phiras--;
175 queue.push_back({[&]()
176 { doAction(SET, "phiras"); }, "SET"});
177 _state.ressources.phiras--;
178 queue.push_back({[&]()
179 { doAction(SET, "thystame"); }, "SET"});
180 _state.ressources.thystame--;
181 warnsWillIncant();
182 queue.push_back({[&]()
183 { doAction(INCANTATION, ""); }, "INCANTATION"});
184 _state.metadata["should_incant"] = "false";
185 }
186
187 // TODO: Fix this i guess. objStr is empty
188 void ABotPattern::incantation(std::vector<std::string> objs)
189 {
190 for (auto &obj : objs)
191 {
192 std::string objStr = obj;
193
194 queue.push_back({[&]()
195 { doAction(SET, objStr); }, "SET"});
196 if (obj == "linemate")
197 _state.ressources.linemate--;
198 }
199 warnsWillIncant();
200 queue.push_back({[&]()
201 { doAction(INCANTATION, ""); }, "INCANTATION"});
202 }
203