コード例 #1
0
        /// <summary>
        /// Обновляет максимальные значения объёмов хранимых ресурсов
        /// </summary>
        public void UpdateResulstMax()
        {
            var db = new skagryDataContext();

            var tblResourceStorage = db.GetTable <planet_resource_storage>();

            var query =
                from rs in tblResourceStorage
                where rs.planet_id == PlanetId
                select rs;

            foreach (var row in query)
            {
                row.e_max  = GetResultEMax();
                row.ir_max = GetResultIrMax();
                row.dm_max = GetResultDmMax();
                row.am_max = GetResultAmMax();
            }

            try
            {
                db.SubmitChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
コード例 #2
0
        /// <summary>
        /// Обновляет текущие значения прироста рейтов новыми значениями
        /// </summary>
        /// <param name="newERate"></param>
        /// <param name="newIrRate"></param>
        /// <param name="newDmRate"></param>
        /// <param name="newAmRate"></param>
        public void UpdateRates(double newERate, double newIrRate, double newDmRate, double newAmRate)
        {
            var EMaxValue = 100D;

            newIrRate = (newIrRate < EMaxValue) ? newIrRate : EMaxValue;
            EMaxValue = EMaxValue - newIrRate;

            newDmRate = (2 * newDmRate < EMaxValue) ? newDmRate : EMaxValue / 2;
            EMaxValue = EMaxValue - newDmRate * 2;

            newAmRate = (5 * newAmRate < EMaxValue) ? newAmRate : EMaxValue / 5;
            EMaxValue = EMaxValue - newAmRate * 5;

            newERate  = (newERate < EMaxValue) ? newERate : EMaxValue;
            EMaxValue = EMaxValue - newERate;

            if (0 < EMaxValue)
            {
                newERate = newERate + EMaxValue;
            }

            var db = new skagryDataContext();

            var tblPlanetResourseRate = db.GetTable <planet_resource_rate>();

            var query =
                from prr in tblPlanetResourseRate
                where prr.planet_id == PlanetId
                select prr;


            foreach (var row in query)
            {
                row.e_rate      = newERate;
                row.ir_rate     = newIrRate;
                row.dm_rate     = newDmRate;
                row.am_rate     = newAmRate;
                row.date_change = DateTime.UtcNow;
            }

            db.SubmitChanges();

            Notify(new NotyfyData
            {
                ERate  = newERate,
                IrRate = newIrRate,
                DmRate = newDmRate,
                AmRate = newAmRate
            });
        }
コード例 #3
0
        /// <summary>
        /// Добавляет К значению хранимых ресурсов значение прироста ресурсов от обсерверабле
        /// </summary>
        /// <param name="eValueAdded">Добавляемое значения для энергии</param>
        /// <param name="irValueAdded">Добавляемое значения для Ир</param>
        /// <param name="dmValueAdded">Добавляемое значения для Дм</param>
        /// <param name="amValueAdded">Добавляемое значения для АМ</param>
        public void AddCurrentResources(double eValueAdded, double irValueAdded, double dmValueAdded,
                                        double amValueAdded)
        {
            var db = new skagryDataContext();

            var tblPlanetResourceStorage = db.GetTable <planet_resource_storage>();

            var newEValue  = GetNewResourceValue("EMax", GetECurrent(), eValueAdded);
            var newIrValue = GetNewResourceValue("IrMax", GetIrCurrent(), irValueAdded);
            var newDmValue = GetNewResourceValue("DmMax", GetDmCurrent(), dmValueAdded);
            var newAmValue = GetNewResourceValue("AmMax", GetAmCurrent(), amValueAdded);

            var query =
                from rs in tblPlanetResourceStorage
                where rs.planet_id == PlanetId
                select rs;

            foreach (var row in query)
            {
                row.e_current   = newEValue;
                row.ir_current  = newIrValue;
                row.dm_current  = newDmValue;
                row.am_current  = newAmValue;
                row.date_change = DateTime.UtcNow;
            }

            var oldECurrent  = GetECurrent();
            var oldIrCurrent = GetIrCurrent();
            var oldDmCurrent = GetDmCurrent();
            var oldAmCurrent = GetAmCurrent();
            var oldLastDate  = GetLastDate();

            try
            {
                db.SubmitChanges();

                ECurrent  = newEValue;
                IrCurrent = newIrValue;
                DmCurrent = newDmValue;
                AmCurrent = newAmValue;
            }
            catch (Exception e)
            {
                ECurrent  = oldECurrent;
                IrCurrent = oldIrCurrent;
                DmCurrent = oldDmCurrent;
                AmCurrent = oldAmCurrent;
                LastDate  = oldLastDate;
            }
        }
コード例 #4
0
        public void UpLevel()
        {
            var db = new skagryDataContext();

            var tblStructureTurn = db.GetTable <structure_turn>();

            int    charSkillLevel     = 0;
            double charSkillBaseValue = 0;

            // get character mods
            Character character = PlanetHelper.GetCharacter(PlanetId);

            if (null != character)
            {
                // todo get from character
                var charSkills = character.GetSkillLevels();

                charSkillLevel     = (int)charSkills["s16"];
                charSkillBaseValue = character.GetSkill("s16").GetValue();
            }

            var startDate = DateTime.UtcNow;

            var duration = GetTimePrice() * Math.Pow(GetLevelMod(), GetLevel());

            if (0 < charSkillLevel)
            {
                duration *= charSkillBaseValue * charSkillLevel;
            }

            var endDate = startDate.AddSeconds(duration);

            tblStructureTurn.InsertOnSubmit(new structure_turn
            {
                planet_id            = GetPlanetId(),
                structure_class_name = GetName(),
                next_level           = GetLevel() + 1,
                start_date           = startDate,
                end_date             = endDate
            });

            db.SubmitChanges();
        }