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.НовСтатПарам("атака") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы атаки, ош=\n\t%w", ош) } точность, ош := static_param.НовСтатПарам("точность") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы точности, ош=\n\t%w", ош) } прочность, ош := static_param.НовСтатПарам("прочность") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы прочности, ош=\n\t%w", ош) } броня, ош := static_param.НовСтатПарам("броня") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы брони, ош=\n\t%w", ош) } мощь, ош := static_param.НовСтатПарам("мощь") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы мощи, ош=\n\t%w", ош) } усиление, ош := static_param.НовСтатПарам("усиление") if ош != nil { return nil, fmt.Errorf("НовТанкСтат(): при создании статы усиления, ош=\n\t%w", ош) } сам := &TankStat{ атака: атака, точность: точность, прочность: прочность, броня: броня, power: мощь, усиление: усиление, } return сам, nil } // Атака -- возвращает объект силы атаки func (сам *TankStat) Атака() types.ИСтатПарам { return сам.атака } // Прочность -- возвращает объект прочности танка func (сам *TankStat) Прочность() types.ИСтатПарам { return сам.броня } // Точность -- возвращает объект точности танка func (сам *TankStat) Точность() types.ИСтатПарам { return сам.точность } // Броня -- возвращает объект брони танка func (сам *TankStat) Броня() types.ИСтатПарам { return сам.прочность } // Мощь -- возвращает объект мощи танка func (сам *TankStat) Мощь() types.ИСтатПарам { return сам.power } // Форсаж -- возвращает объект форсированного параметра func (сам *TankStat) Форсаж() types.ИСтатПарам { return сам.усиление } // Форсаж -- возвращает объект форсированного параметра func (сам *TankStat) ФорсажОбнов(парам string, знач int) { var ош error сам.усиление, ош = static_param.НовСтатПарам("force") if ош != nil { log.Printf("НовТанкСтат(): при создании статы усиления, ош=\n\t%v\n", ош) panic("TanStat.ФорсажОбнов()") } сам.усиление.Уст(знач) }