Exemple #1
0
        /// <summary>
        /// Отметить прохолост (самка не окролилась)
        /// </summary>
        /// <param name="when">Дата установки прохолоста</param>
        public void ProholostIt(int daysPast)
        {
            if (Sex != Rabbit.SexType.FEMALE)
            {
                throw new ExNotFemale(this);
            }
            if (EventDate == DateTime.MinValue)
            {
                throw new ExNotFucked(this);
            }
            //if (when > DateTime.Now) throw new ExBadDate(when);
            if (daysPast < 0)
            {
                throw new ExBadPastDays();
            }

            _eng.logs().log(LogType.PROHOLOST, ID, 0, AddressSmall, "", daysPast != 0 ? String.Format(" {0:d} дней назад", daysPast) : "");
            _eng.db().makeProholost(this._id, daysPast);
            if (_eng.options().getBoolOption(Options.OPT_ID.NEST_OUT_IF_PROHOLOST))
            {
                //todo пиздец и говнокод и опасно но...
                RabNetEngBuilding rnd = RabNetEngBuilding.FromPlace(this.RawAddress, _eng);
                rnd.RabbitNestOut(this.ID);
            }
        }
        /// <summary>
        /// Установка гнездовья в клетку А
        /// </summary>
        /// <param name="value">установить или убрать</param>
        public void setNest(bool value, int sec)
        {
            char newValue = value ? '1' : '0';

            if (b.Nests[sec] == newValue)
            {
                return;
            }
            _eng.logs().log(value ? LogType.NEST_ON : LogType.NEST_OFF, b.Busy[sec].ID, b.SmallName(sec));

            char [] cNests = b.Nests.ToCharArray();
            cNests[sec] = newValue;
            b.Nests     = new String(cNests);
            this.commit();

            if (!value && _eng.options().getBoolOption(Options.OPT_ID.NEST_OUT_WITH_HEATER))
            {
                this.setHeater(HEATER_UNSET, sec);
            }
        }