package tankstat import ( "fmt" "log" "wartank/pkg/types" "wartank/server/serv_bots/warbot/tank/tankstat/static_param" ) /* Исходник предоставляет статические параметры танка. Броня, атака, прочность и т.п. */ // TankStat -- статические параметры танка type TankStat struct { атака types.ИСтатПарам // Сила атаки танка точность types.ИСтатПарам // Точность танка прочность types.ИСтатПарам // Броня танка броня types.ИСтатПарам // Броня танка power types.ИСтатПарам // Танковая мощь (может не совпадать по сумме, если есть усиление) усиление types.ИСтатПарам } // NewTankStat -- возвращает новый *TankStat func NewTankStat() (*TankStat, error) { атака, ош := static_param.НовСтатПарам("attack") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы атаки, ош=\n\t%w", ош) } точность, ош := static_param.НовСтатПарам("fyne") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы точности, ош=\n\t%w", ош) } прочность, ош := static_param.НовСтатПарам("armor") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы прочности, ош=\n\t%w", ош) } броня, ош := static_param.НовСтатПарам("hard") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы брони, ош=\n\t%w", ош) } мощь, ош := static_param.НовСтатПарам("power") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы мощи, ош=\n\t%w", ош) } усиление, ош := static_param.НовСтатПарам("force") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы усиления, ош=\n\t%w", ош) } sf := &TankStat{ атака: атака, точность: точность, прочность: прочность, броня: броня, power: мощь, усиление: усиление, } return sf, nil } // Атака -- возвращает объект силы атаки func (sf *TankStat) Атака() types.ИСтатПарам { return sf.атака } // Прочность -- возвращает объект прочности танка func (sf *TankStat) Прочность() types.ИСтатПарам { return sf.броня } // Точность -- возвращает объект точности танка func (sf *TankStat) Точность() types.ИСтатПарам { return sf.точность } // Броня -- возвращает объект брони танка func (sf *TankStat) Броня() types.ИСтатПарам { return sf.прочность } // Мощь -- возвращает объект мощи танка func (sf *TankStat) Мощь() types.ИСтатПарам { return sf.power } // Форсаж -- возвращает объект форсированного параметра func (sf *TankStat) Форсаж() types.ИСтатПарам { return sf.усиление } // Форсаж -- возвращает объект форсированного параметра func (сам *TankStat) ФорсажОбнов(парам string, знач int) { var ош error сам.усиление, ош = static_param.НовСтатПарам("force") if ош != nil { log.Printf("НовТанкСтат(): при создании статы усиления, ош=\n\t%v\n", ош) panic("TanStat.ФорсажОбнов()") } сам.усиление.Уст(знач) }