bf_missin_simple.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. // package bf_mission_simple -- бизнес-функция забрать простые миссии
  2. package bf_mission_simple
  3. import (
  4. "strings"
  5. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  6. . "wartank/app/lev0/types"
  7. )
  8. // МиссииПростыеЗабрать -- забирает выполненные простые миссии
  9. func МиссииПростыеЗабрать(конт ILocalCtx) {
  10. сражениеЗащита(конт)
  11. сражениеНаступление(конт)
  12. проведиВойну(конт)
  13. battle5Fiting(конт)
  14. battle6win(конт)
  15. battle10Fiting(конт)
  16. battleDogFyting(конт)
  17. makeResource(конт)
  18. kill3tanks(конт)
  19. топливоДив(конт)
  20. upMan(конт)
  21. }
  22. // Проверяет награду за уничтожить 3 танка в бою
  23. func kill3tanks(конт ILocalCtx) {
  24. арена := конт.Get("миссии_простые").Val().(ИАрена)
  25. var (
  26. strOut string
  27. lstMissions = арена.СписПолучить()
  28. еслиНайдено bool
  29. ind int
  30. )
  31. for ind, strOut = range lstMissions {
  32. if strings.Contains(strOut, `Уничтожь в бою 3 танка<br/>`) {
  33. еслиНайдено = true
  34. break
  35. }
  36. }
  37. if !еслиНайдено {
  38. return
  39. }
  40. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  41. ind += 23
  42. strOut = lstMissions[ind]
  43. if !strings.Contains(strOut, `>Получить награду<`) {
  44. return
  45. }
  46. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  47. strLink := lstLink[1]
  48. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  49. strLink = "https://wartank.ru/missions/" + lstLink[0]
  50. lstMissions, err := арена.Сеть().Get(strLink)
  51. if err != nil {
  52. // log._rintf("ERRO Миссии.kill3tanks(): при выполнении GET-запроса, err=\n\t%v\n", err)
  53. return
  54. }
  55. арена.СтрОбновить(lstMissions)
  56. }
  57. // Проверяет награду оборонительного сражения
  58. func сражениеЗащита(конт ILocalCtx) {
  59. арена := конт.Get("миссии_простые").Val().(ИАрена)
  60. var (
  61. strOut string
  62. еслиНайдено bool
  63. )
  64. арена.Обновить()
  65. списМиссия := арена.СписПолучить()
  66. // <a class="simple-but border" href="?23-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  67. for _, strOut = range списМиссия {
  68. if strings.Contains(strOut, `.ILinkListener-missions-cc-0-c-awardLink`) {
  69. еслиНайдено = true
  70. break
  71. }
  72. }
  73. if !еслиНайдено {
  74. return
  75. }
  76. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  77. _ссылка := strings.TrimPrefix(strOut, `<a class="simple-but border" href="`)
  78. _ссылка = strings.TrimSuffix(_ссылка, `"><span><span>Получить награду</span></span></a>`)
  79. strLink := "https://wartank.ru/missions/" + _ссылка
  80. списМиссия, err := арена.Сеть().Get(strLink)
  81. if err != nil {
  82. // log._rintf("ERRO Миссии.battleDefence(): при выполнении GET-запроса, err=\n\t%v\n", err)
  83. return
  84. }
  85. арена.СтрОбновить(списМиссия)
  86. }
  87. // Проверяет награду за одну войну
  88. func проведиВойну(конт ILocalCtx) {
  89. арена := конт.Get("миссии_простые").Val().(ИАрена)
  90. var (
  91. strOut string
  92. lstMissions = арена.СписПолучить()
  93. еслиНайдено bool
  94. ind int
  95. )
  96. for ind, strOut = range lstMissions {
  97. if strings.Contains(strOut, `Проведи одну войну<br/>`) {
  98. еслиНайдено = true
  99. break
  100. }
  101. }
  102. if !еслиНайдено {
  103. return
  104. }
  105. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  106. ind += 23
  107. strOut = lstMissions[ind]
  108. if !strings.Contains(strOut, `>Получить награду<`) {
  109. return
  110. }
  111. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  112. strLink := lstLink[1]
  113. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  114. strLink = "https://wartank.ru/missions/" + lstLink[0]
  115. lstMissions, err := арена.Сеть().Get(strLink)
  116. if err != nil {
  117. // log._rintf("ERRO Миссии.battleWar(): при выполнении GET-запроса, err=\n\t%v\n", err)
  118. return
  119. }
  120. арена.СтрОбновить(lstMissions)
  121. }
  122. // Проверяет награду наступательного сражения
  123. func сражениеНаступление(конт ILocalCtx) {
  124. арена := конт.Get("миссии_простые").Val().(ИАрена)
  125. var (
  126. strOut string
  127. еслиНайдено bool
  128. ind int
  129. lstMissions = арена.СписПолучить()
  130. )
  131. if len(lstMissions) == 0 {
  132. арена.Обновить()
  133. lstMissions = арена.СписПолучить()
  134. }
  135. for ind, strOut = range lstMissions {
  136. if strings.Contains(strOut, "Проведи одно наступательное сражение<br/>") {
  137. еслиНайдено = true
  138. break
  139. }
  140. }
  141. if !еслиНайдено {
  142. return
  143. }
  144. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  145. ind += 23
  146. strOut = lstMissions[ind]
  147. if !strings.Contains(strOut, `>Получить награду<`) {
  148. return
  149. }
  150. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  151. strLink := lstLink[1]
  152. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  153. strLink = "https://wartank.ru/missions/" + lstLink[0]
  154. lstMissions, err := арена.Сеть().Get(strLink)
  155. if err != nil {
  156. // log._rintf("ERRO Миссии.battleAttack(): при выполнении GET-запроса, err=\n\t%v\n", err)
  157. return
  158. }
  159. арена.СтрОбновить(lstMissions)
  160. }
  161. // Проверяет награду за схватку
  162. func battleDogFyting(конт ILocalCtx) {
  163. арена := конт.Get("миссии_простые").Val().(ИАрена)
  164. var (
  165. strOut string
  166. lstMissions = арена.СписПолучить()
  167. еслиНайдено bool
  168. ind int
  169. )
  170. for ind, strOut = range lstMissions {
  171. if strings.Contains(strOut, `Проведи одну схватку<br/>`) {
  172. еслиНайдено = true
  173. break
  174. }
  175. }
  176. if !еслиНайдено {
  177. return
  178. }
  179. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  180. ind += 23
  181. strOut = lstMissions[ind]
  182. if !strings.Contains(strOut, `>Получить награду<`) {
  183. return
  184. }
  185. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  186. strLink := lstLink[1]
  187. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  188. strLink = "https://wartank.ru/missions/" + lstLink[0]
  189. lstMissions, err := арена.Сеть().Get(strLink)
  190. if err != nil {
  191. // log._rintf("ERRO Миссии.battleDogFyting(): при выполнении GET-запроса, err=\n\t%v\n", err)
  192. return
  193. }
  194. арена.СтрОбновить(lstMissions)
  195. }
  196. // Проверяет награду за ресурсы
  197. func makeResource(конт ILocalCtx) {
  198. арена := конт.Get("миссии_простые").Val().(ИАрена)
  199. var (
  200. strOut string
  201. lstMissions = арена.СписПолучить()
  202. еслиНайдено bool
  203. ind int
  204. )
  205. for ind, strOut = range lstMissions {
  206. if strings.Contains(strOut, `Произведи на базе 10 ресурсов<br/>`) {
  207. еслиНайдено = true
  208. break
  209. }
  210. }
  211. if !еслиНайдено {
  212. return
  213. }
  214. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  215. ind += 23
  216. strOut = lstMissions[ind]
  217. if !strings.Contains(strOut, `>Получить награду<`) {
  218. return
  219. }
  220. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  221. strLink := lstLink[1]
  222. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  223. strLink = "https://wartank.ru/missions/" + lstLink[0]
  224. lstMissions, err := арена.Сеть().Get(strLink)
  225. if err != nil {
  226. // log._rintf("ERRO Миссии.makeResource(): при выполнении GET-запроса, err=\n\t%v\n", err)
  227. return
  228. }
  229. арена.СтрОбновить(lstMissions)
  230. }
  231. // Проверяет награду за ресурсы
  232. func upMan(конт ILocalCtx) {
  233. арена := конт.Get("миссии_простые").Val().(ИАрена)
  234. var (
  235. strOut string
  236. lstMissions = арена.СписПолучить()
  237. еслиНайдено bool
  238. ind int
  239. )
  240. for ind, strOut = range lstMissions {
  241. if strings.Contains(strOut, `Прокачай экипаж на 100 опыта экипажа<br/>`) {
  242. еслиНайдено = true
  243. break
  244. }
  245. }
  246. if !еслиНайдено {
  247. return
  248. }
  249. // <a class="simple-but border" href="?70-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  250. ind += 23
  251. strOut = lstMissions[ind]
  252. if !strings.Contains(strOut, `>Получить награду<`) {
  253. return
  254. }
  255. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  256. strLink := lstLink[1]
  257. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  258. strLink = "https://wartank.ru/missions/" + lstLink[0]
  259. lstMissions, err := арена.Сеть().Get(strLink)
  260. if err != nil {
  261. // log._rintf("ERRO Миссии.upMan(): при выполнении GET-запроса, err=\n\t%v\n", err)
  262. return
  263. }
  264. арена.СтрОбновить(lstMissions)
  265. // log._rintf("INFO Миссии.upMan(): награда получена\n")
  266. }
  267. // Проверяет награду за топливо
  268. func топливоДив(конт ILocalCtx) {
  269. арена := конт.Get("миссии_простые").Val().(ИАрена)
  270. var (
  271. strOut string
  272. lstMissions = арена.СписПолучить()
  273. еслиНайдено bool
  274. ind int
  275. )
  276. for ind, strOut = range lstMissions {
  277. if strings.Contains(strOut, `Получи топливо в дивизии<br/>`) {
  278. еслиНайдено = true
  279. break
  280. }
  281. }
  282. if !еслиНайдено {
  283. return
  284. }
  285. // <a class="simple-but border" href="?157-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  286. ind += 19
  287. strOut = lstMissions[ind]
  288. if !strings.Contains(strOut, `>Получить награду</`) {
  289. return
  290. }
  291. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  292. strLink := lstLink[1]
  293. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  294. strLink = "https://wartank.ru/missions/" + lstLink[0]
  295. lstMissions, err := арена.Сеть().Get(strLink)
  296. if err != nil {
  297. // log._rintf("ERRO Миссии.makeFuel(): при выполнении GET-запроса, err=\n\t%v\n", err)
  298. return
  299. }
  300. арена.СтрОбновить(lstMissions)
  301. }
  302. // Проверяет награду 5 боёв
  303. func battle5Fiting(конт ILocalCtx) {
  304. арена := конт.Get("миссии_простые").Val().(ИАрена)
  305. var (
  306. strOut string
  307. lstMissions = арена.СписПолучить()
  308. еслиНайдено bool
  309. ind int
  310. )
  311. for ind, strOut = range lstMissions {
  312. if strings.Contains(strOut, `Проведи 5 боев<br/>`) {
  313. еслиНайдено = true
  314. break
  315. }
  316. }
  317. if !еслиНайдено {
  318. return
  319. }
  320. // <a class="simple-but border" href="?113-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  321. ind += 23
  322. strOut = lstMissions[ind]
  323. if !strings.Contains(strOut, `>Получить награду<`) {
  324. return
  325. }
  326. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  327. strLink := lstLink[1]
  328. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  329. strLink = "https://wartank.ru/missions/" + lstLink[0]
  330. lstMissions, err := арена.Сеть().Get(strLink)
  331. if err != nil {
  332. // log._rintf("ERRO Миссии.battle5Fiting(): при выполнении GET-запроса, err=\n\t%v\n", err)
  333. return
  334. }
  335. арена.СтрОбновить(lstMissions)
  336. }
  337. // Проверяет награду 10 боёв
  338. func battle10Fiting(конт ILocalCtx) {
  339. арена := конт.Get("миссии_простые").Val().(ИАрена)
  340. var (
  341. strOut string
  342. lstMissions = арена.СписПолучить()
  343. еслиНайдено bool
  344. ind int
  345. )
  346. for ind, strOut = range lstMissions {
  347. if strings.Contains(strOut, `Уничтожь в бою 10 танков<br/>`) {
  348. еслиНайдено = true
  349. break
  350. }
  351. }
  352. if !еслиНайдено {
  353. return
  354. }
  355. // <a class="simple-but border" href="?113-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  356. ind += 23
  357. strOut = lstMissions[ind]
  358. if !strings.Contains(strOut, `>Получить награду<`) {
  359. return
  360. }
  361. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  362. strLink := lstLink[1]
  363. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  364. strLink = "https://wartank.ru/missions/" + lstLink[0]
  365. lstMissions, err := арена.Сеть().Get(strLink)
  366. if err != nil {
  367. // log._rintf("ERRO Миссии.battle10Fiting(): при выполнении GET-запроса, err=\n\t%v\n", err)
  368. return
  369. }
  370. арена.СтрОбновить(lstMissions)
  371. }
  372. // Проверяет награду за 6 побед подряд
  373. func battle6win(конт ILocalCtx) {
  374. арена := конт.Get("миссии_простые").Val().(ИАрена)
  375. var (
  376. strOut string
  377. lstMissions = арена.СписПолучить()
  378. еслиНайдено bool
  379. ind int
  380. )
  381. for ind, strOut = range lstMissions {
  382. if strings.Contains(strOut, `Победи 6 раз подряд<br/>`) {
  383. еслиНайдено = true
  384. break
  385. }
  386. }
  387. if !еслиНайдено {
  388. return
  389. }
  390. // <a class="simple-but border" href="?113-1.ILinkListener-missions-cc-0-c-awardLink"><span><span>Получить награду</span></span></a>
  391. ind += 25
  392. strOut = lstMissions[ind]
  393. if !strings.Contains(strOut, `>Получить награду<`) {
  394. return
  395. }
  396. lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
  397. strLink := lstLink[1]
  398. lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
  399. strLink = "https://wartank.ru/missions/" + lstLink[0]
  400. lstMissions, err := арена.Сеть().Get(strLink)
  401. if err != nil {
  402. // log._rintf("ERRO Миссии.battle6win(): при выполнении GET-запроса, err=\n\t%v\n", err)
  403. return
  404. }
  405. арена.СтрОбновить(lstMissions)
  406. }