| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package wrag
- import (
- "log"
- "strconv"
- "strings"
- "wartank/pkg/types"
- )
- /*
- Танк враг на битве, сражении, дуэли, войне
- */
- // Wrag -- объект врага
- type Wrag struct {
- app types.ИСервер
- health int // здоровье вражины
- }
- // NewWrag -- возвращает новый объект врага
- func NewWrag(app types.ИСервер, lstBattle []string) *Wrag {
- сам := &Wrag{
- app: app,
- }
- сам.update(lstBattle)
- return сам
- }
- // Обновляет вражину
- func (сам *Wrag) update(lstBattleOn []string) {
- // <img class="tank-img" src="/tankimg?c=2&k=1&m=0-2,1-2,2-0,3-2,5-2,6-0&t=png" alt="Тень Брата">
- var (
- ind int
- strOut string
- еслиНайдено bool
- )
- for ind, strOut = range lstBattleOn {
- if strings.Contains(strOut, `<img class="tank-img" src="/`) {
- // Убедиться, что это не свой танк
- if strings.Contains(strOut, "prospero tank") {
- continue
- }
- еслиНайдено = true
- break
- }
- }
- if !еслиНайдено { // Не нашёл метку врага
- log.Printf("Wrag.update(): не нашёл имя врага")
- сам.health = 800
- return
- }
- // Вражина найдена, ищем настоящее здоровье
- ind += 13
- strOut = lstBattleOn[ind]
- lstHealth := strings.Split(strOut, `<span>`)
- strHealth := lstHealth[1]
- lstHealth = strings.Split(strHealth, `</span>`)
- strHealth = lstHealth[0]
- iHealth, err := strconv.Atoi(strHealth)
- if err != nil {
- log.Printf("Wrag.update(): здоровье(%v) не число, err=\n\t%v\n", strHealth, err)
- сам.health = 800
- return
- }
- сам.health = iHealth
- }
|