| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package shot_time
- import (
- "sync"
- . "gitp78su.ipnodns.ru/svi/kern/kc/helpers"
- . "wartank/app/lev0/alias"
- )
- /*
- Содержит время до выстрела
- */
- // ShotTime -- время до выстрела
- type ShotTime struct {
- val АМилСек // Время в мсек
- block sync.RWMutex
- }
- // NewShotTime -- возвращает новый ShotTime
- func NewShotTime() *ShotTime {
- return &ShotTime{}
- }
- // Get -- возвращает хранимое время до выстрела
- func (сам *ShotTime) Get() АМилСек {
- сам.block.RLock()
- defer сам.block.RUnlock()
- return сам.val
- }
- // Dec5 -- уменьшает время до выстрела на 5 мсек
- func (сам *ShotTime) Dec5() {
- сам.block.Lock()
- defer сам.block.Unlock()
- сам.val -= 5
- if сам.val > 500_000 {
- сам.val = 0
- }
- }
- // Dec30 -- уменьшает время до выстрела на 30 мсек
- func (сам *ShotTime) Dec30() {
- сам.block.Lock()
- defer сам.block.Unlock()
- сам.val -= 30
- if сам.val > 500_000 {
- сам.val = 0
- }
- }
- // Inc210 -- увеличивает время до выстрела на 210 мсек
- func (сам *ShotTime) Inc210() {
- сам.block.Lock()
- defer сам.block.Unlock()
- сам.val += 210
- }
- // IsZero -- возвращает истину, если значение обнулено
- func (сам *ShotTime) IsZero() bool {
- сам.block.RLock()
- defer сам.block.RUnlock()
- return сам.val == 0
- }
- // Set -- устанавливает значение по требованию
- func (сам *ShotTime) Set(val АМилСек) {
- сам.block.Lock()
- defer сам.block.Unlock()
- Hassert(val <= 500_000, "ShotTime.Set(): значение(%v)>500_000", val)
- сам.val = val
- }
|