| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- 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.ФорсажОбнов()")
- }
- сам.усиление.Уст(знач)
- }
|