Beispiel #1
0
        private void UpdateMagicForm()
        {
            _selectedMagicInfo = (MagicInfo)MagiclistBox.SelectedItem;

            lblBookValid.BackColor = SystemColors.Window;

            if (_selectedMagicInfo == null)
            {
                tabControl1.Enabled     = false;
                lblBookValid.Text       = "Searching";
                lblSelected.Text        = "Selected Skill: none";
                lblDamageExample.Text   = "";
                txtSkillIcon.Text       = "0";
                txtSkillLvl1Points.Text = "0";
                txtSkillLvl1Req.Text    = "0";
                txtSkillLvl2Points.Text = "0";
                txtSkillLvl2Req.Text    = "0";
                txtSkillLvl3Points.Text = "0";
                txtSkillLvl3Req.Text    = "0";
                txtMPBase.Text          = "0";
                txtMPIncrease.Text      = "0";
                txtDelayBase.Text       = "0";
                txtDelayReduction.Text  = "0";
                txtDmgBaseMin.Text      = "0";
                txtDmgBaseMax.Text      = "0";
                txtDmgBonusMin.Text     = "0";
                txtDmgBonusMax.Text     = "0";
            }
            else
            {
                tabControl1.Enabled     = true;
                lblSelected.Text        = "Selected Skill: " + _selectedMagicInfo.ToString();
                lblDamageExample.Text   = string.Format("Damage @ Skill level 0: {0:000}-{1:000}   |||   level 1: {2:000}-{3:000}   |||   level 2: {4:000}-{5:000}   |||   level 3: {6:000}-{7:000}", GetMinPower(0), GetMaxPower(0), GetMinPower(1), GetMaxPower(1), GetMinPower(2), GetMaxPower(2), GetMinPower(3), GetMaxPower(3));
                txtSkillIcon.Text       = _selectedMagicInfo.Icon.ToString();
                txtSkillLvl1Points.Text = _selectedMagicInfo.Need1.ToString();
                txtSkillLvl1Req.Text    = _selectedMagicInfo.Level1.ToString();
                txtSkillLvl2Points.Text = _selectedMagicInfo.Need2.ToString();
                txtSkillLvl2Req.Text    = _selectedMagicInfo.Level2.ToString();
                txtSkillLvl3Points.Text = _selectedMagicInfo.Need3.ToString();
                txtSkillLvl3Req.Text    = _selectedMagicInfo.Level3.ToString();
                txtMPBase.Text          = _selectedMagicInfo.BaseCost.ToString();
                txtMPIncrease.Text      = _selectedMagicInfo.LevelCost.ToString();
                txtDelayBase.Text       = _selectedMagicInfo.DelayBase.ToString();
                txtDelayReduction.Text  = _selectedMagicInfo.DelayReduction.ToString();
                txtDmgBaseMin.Text      = _selectedMagicInfo.PowerBase.ToString();
                txtDmgBaseMax.Text      = (_selectedMagicInfo.PowerBase + _selectedMagicInfo.PowerBonus).ToString();
                txtDmgBonusMin.Text     = _selectedMagicInfo.MPowerBase.ToString();
                txtDmgBonusMax.Text     = (_selectedMagicInfo.MPowerBase + _selectedMagicInfo.MPowerBonus).ToString();
                ItemInfo Book = Envir.GetBook((short)_selectedMagicInfo.Spell);
                if (Book != null)
                {
                    lblBookValid.Text = Book.Name;
                }
                else
                {
                    lblBookValid.Text      = "No book found";
                    lblBookValid.BackColor = Color.Red;
                }
            }
        }
Beispiel #2
0
        public override void BuildPacket()
        {
            PushIntoStack(pageCount);
            PushIntoStack(ContextUser.ExpNum);
            PushIntoStack(queueID);
            PushIntoStack(coldTime);
            PushIntoStack(userMagicArray.Count);
            foreach (UserMagic magic in userMagicArray)
            {
                magicInfo = new ConfigCacheSet <MagicInfo>().FindKey(magic.MagicID);
                if (IsUp(magic.MagicID, magic.MagicLv, ContextUser))
                {
                    isUp = 1;
                }
                else
                {
                    isUp = 0;
                }

                DataStruct ds = new DataStruct();
                ds.PushIntoStack(magic.MagicID);
                ds.PushIntoStack((int)magic.MagicType);
                ds.PushIntoStack(magicInfo == null ? string.Empty : magicInfo.MagicName.ToNotNullString());
                ds.PushIntoStack(magicInfo == null ? string.Empty : magicInfo.HeadID.ToNotNullString());
                ds.PushIntoStack((short)magic.MagicLv);
                ds.PushIntoStack(isUp);
                ds.PushIntoStack(magic.IsOpen ? 1 : 0);
                ds.PushIntoStack(magic.IsLv);
                PushIntoStack(ds);
            }
        }
Beispiel #3
0
        private static readonly Bitboard[][] NoContextAttackBitboards = new Bitboard[6][]; // knight and king

        static StaticInfo()
        {
            for (int i = 0; i < Location.NumberOfValues; i++)
            {
                var           source    = Location.FromIndex(i);
                ref MagicInfo info      = ref BishopInfos[i];
                var           occupancy = ComputeBishopOccupancy(source);
                info.Mask = occupancy;

                var magic = BishopMagics[i];
                info.Magic = magic;

                int numBits = occupancy.CountSetBits();
                Debug.Assert(numBits <= 11);
                int shift     = 64 - numBits;
                int numValues = 1 << numBits;
                info.Shift           = shift;
                info.AttackBitboards = new Bitboard[numValues];

                foreach (var blockers in occupancy.PowerSet())
                {
                    ushort key = (ushort)((blockers * magic) >> shift);
                    info.AttackBitboards[key] = ComputeBishopAttacks(source, blockers);
                }
            }
Beispiel #4
0
        private IEnumerator ToWait(MagicInfo magicInfo)
        {
            yield return(new WaitForSecondsRealtime(magicInfo.TimeCast));

            if (_player.GetNavMeshAgent().velocity.magnitude > 0.1f)
            {
                yield break;
            }
            var ray = new Ray(_player.GetTransformStartPosition().position, _player.GetTransformStartPosition().forward);

            _destination = Physics.Raycast(ray, out var hit) ? hit.point : ray.GetPoint(50f);
            InstantiateMagic(magicInfo);
        }
Beispiel #5
0
        private void SaveButton_Click(object sender, EventArgs e)
            {
            var list = MagiclistBox.SelectedItems.Cast<MagicInfo>().ToList();
            if (list.Count == 0)
                {
                MessageBox.Show("Not selected any Magics");
                return;
                }

            for (int i = 0; i < list.Count; i++)
                MagicInfo.SaveMagicInfoDB(list[i]);
            MessageBox.Show("Saved Magic(s)");

            }
Beispiel #6
0
        public override bool TakeAction()
        {
            magicInfo      = new ConfigCacheSet <MagicInfo>().FindKey(magicID);
            userMagicArray = new GameDataCacheSet <UserMagic>().FindAll(ContextUser.UserID, u => u.MagicID == magicID);
            if (userMagicArray.Count > 0)
            {
                magicLv = userMagicArray[0].MagicLv;
            }
            int upgradeLv = MathUtils.Addition(magicLv, 1, int.MaxValue);

            if (upgradeLv <= 10)
            {
                magicLvInfo = new ConfigCacheSet <MagicLvInfo>().FindKey(magicID, upgradeLv);
            }

            return(true);
        }
Beispiel #7
0
        private void InstantiateMagic(MagicInfo magicInfo)
        {
            var position = _player.GetTransformStartPosition().position + (_player.GetTransformStartPosition().forward *magicInfo.SpawnOffset);

            Debug.Log(position);
            var magic = Instantiate(magicInfo.Projectile, position, Quaternion.identity);

            if (magicInfo.IsParent)
            {
                magic.transform.SetParent(_player.GetTransformStartPosition());
            }

            if (magic.GetComponent <Rigidbody>() != null)
            {
                magic.GetComponent <Rigidbody>().velocity = (_destination - position).normalized * magicInfo.Speed;
                RandomMoveProjectile(magic, magicInfo.ArcRange);
            }
        }
        public static void InsertMagicInfo(MagicInfo magicInfo)
        {
            try
            {
                conn.Open();
                cmd = new MySqlCommand("InsertMagicInfo", conn)
                {
                    CommandType = CommandType.StoredProcedure
                };

                cmd.Parameters.AddWithValue("SpellName", magicInfo.Name);
                cmd.Parameters.AddWithValue("Spell", (short)magicInfo.Spell);
                cmd.Parameters.AddWithValue("BaseCost", magicInfo.BaseCost);
                cmd.Parameters.AddWithValue("LevelCost", magicInfo.LevelCost);
                cmd.Parameters.AddWithValue("Icon", magicInfo.Icon);
                cmd.Parameters.AddWithValue("Level1", magicInfo.Level1);
                cmd.Parameters.AddWithValue("Level2", magicInfo.Level2);
                cmd.Parameters.AddWithValue("Level3", magicInfo.Level3);
                cmd.Parameters.AddWithValue("Need1", magicInfo.Need1);
                cmd.Parameters.AddWithValue("Need2", magicInfo.Need2);
                cmd.Parameters.AddWithValue("Need3", magicInfo.Need3);
                cmd.Parameters.AddWithValue("DelayBase", magicInfo.DelayBase);
                cmd.Parameters.AddWithValue("DelayReduction", magicInfo.DelayReduction);
                cmd.Parameters.AddWithValue("PowerBase", magicInfo.PowerBase);
                cmd.Parameters.AddWithValue("PowerBonus", magicInfo.PowerBonus);
                cmd.Parameters.AddWithValue("MPowerBase", magicInfo.MPowerBase);
                cmd.Parameters.AddWithValue("MPowerBonus", magicInfo.MPowerBonus);
                cmd.Parameters.AddWithValue("MagicRange", magicInfo.Range);
                cmd.Parameters.AddWithValue("MultiplierBase", magicInfo.MultiplierBase);
                cmd.Parameters.AddWithValue("MultiplierBonus", magicInfo.MultiplierBonus);

                cmd.ExecuteNonQuery();
            }
            catch (MySqlException ex)
            { }
            finally
            {
                conn.Close();
            }
        }
Beispiel #9
0
        private void magicToolStripMenuItem_Click(object sender, EventArgs e)
        {
            foreach (var NewMagic in EditEnvir.MagicInfoList)
            {
                MagicInfo OldMagic = Envir.MagicInfoList.Find(x => x.Spell == NewMagic.Spell);
                if (OldMagic != null)
                {
                    OldMagic.Copy(NewMagic);
                }
            }

            foreach (var p in Envir.Players)
            {
                foreach (var Magic in Envir.MagicInfoList)
                {
                    p.Enqueue(new S.RefreshMagic {
                        Magic = (new UserMagic(Magic.Spell)).CreateClientMagic()
                    });
                }
            }

            SMain.Enqueue("[Magic DataBase] total magics :" + Envir.MagicInfoList.Count.ToString());
            SMain.Enqueue("[Magic DataBase] " + (Envir.MagicInfoList.Count).ToString() + " has been updated");
        }
Beispiel #10
0
        private void UpdateMagicForm(byte field = 0)
        {
            _selectedMagicInfo = (MagicInfo)MagiclistBox.SelectedItem;

            lblBookValid.BackColor = SystemColors.Window;

            if (_selectedMagicInfo == null)
            {
                tabControl1.Enabled     = false;
                lblBookValid.Text       = "Searching";
                lblSelected.Text        = "Selected Skill: none";
                lblDamageExample.Text   = "";
                lblDamageExplained.Text = "";
                txtSkillIcon.Text       = "0";
                txtSkillLvl1Points.Text = "0";
                txtSkillLvl1Req.Text    = "0";
                txtSkillLvl2Points.Text = "0";
                txtSkillLvl2Req.Text    = "0";
                txtSkillLvl3Points.Text = "0";
                txtSkillLvl3Req.Text    = "0";
                txtMPBase.Text          = "0";
                txtMPIncrease.Text      = "0";
                txtDelayBase.Text       = "0";
                txtDelayReduction.Text  = "0";
                txtDmgBaseMin.Text      = "0";
                txtDmgBaseMax.Text      = "0";
                txtDmgBonusMin.Text     = "0";
                txtDmgBonusMax.Text     = "0";
            }
            else
            {
                tabControl1.Enabled     = true;
                lblSelected.Text        = "Selected Skill: " + _selectedMagicInfo.ToString();
                lblDamageExample.Text   = string.Format("Damage @ Skill level 0: {0:000}-{1:000}   |||   level 1: {2:000}-{3:000}   |||   level 2: {4:000}-{5:000}   |||   level 3: {6:000}-{7:000}", GetMinPower(0), GetMaxPower(0), GetMinPower(1), GetMaxPower(1), GetMinPower(2), GetMaxPower(2), GetMinPower(3), GetMaxPower(3));
                lblDamageExplained.Text = string.Format("Damage: {{Random(minstat-maxstat) + [<(random({0}-{1})/4) X (skill level +1)> + random<{2}-{3}>]}}  X  {{{4} + (skill level * {5})}}", _selectedMagicInfo.MPowerBase, _selectedMagicInfo.MPowerBase + _selectedMagicInfo.MPowerBonus, _selectedMagicInfo.PowerBase, _selectedMagicInfo.PowerBonus + _selectedMagicInfo.PowerBase, _selectedMagicInfo.MultiplierBase, _selectedMagicInfo.MultiplierBonus);
                txtSkillIcon.Text       = _selectedMagicInfo.Icon.ToString();
                txtSkillLvl1Points.Text = _selectedMagicInfo.Need1.ToString();
                txtSkillLvl1Req.Text    = _selectedMagicInfo.Level1.ToString();
                txtSkillLvl2Points.Text = _selectedMagicInfo.Need2.ToString();
                txtSkillLvl2Req.Text    = _selectedMagicInfo.Level2.ToString();
                txtSkillLvl3Points.Text = _selectedMagicInfo.Need3.ToString();
                txtSkillLvl3Req.Text    = _selectedMagicInfo.Level3.ToString();
                txtMPBase.Text          = _selectedMagicInfo.BaseCost.ToString();
                txtMPIncrease.Text      = _selectedMagicInfo.LevelCost.ToString();
                txtDelayBase.Text       = _selectedMagicInfo.DelayBase.ToString();
                txtDelayReduction.Text  = _selectedMagicInfo.DelayReduction.ToString();
                txtDmgBaseMin.Text      = _selectedMagicInfo.PowerBase.ToString();
                txtDmgBaseMax.Text      = (_selectedMagicInfo.PowerBase + _selectedMagicInfo.PowerBonus).ToString();
                txtDmgBonusMin.Text     = _selectedMagicInfo.MPowerBase.ToString();
                txtDmgBonusMax.Text     = (_selectedMagicInfo.MPowerBase + _selectedMagicInfo.MPowerBonus).ToString();
                if (field != 1)
                {
                    txtDmgMultBase.Text = _selectedMagicInfo.MultiplierBase.ToString();
                }
                if (field != 2)
                {
                    txtDmgMultBoost.Text = _selectedMagicInfo.MultiplierBonus.ToString();
                }
                txtRange.Text = _selectedMagicInfo.Range.ToString();
                ItemInfo Book = Envir.GetBook((short)_selectedMagicInfo.Spell);
                if (Book != null)
                {
                    lblBookValid.Text = Book.Name;
                }
                else
                {
                    lblBookValid.Text      = "No book found";
                    lblBookValid.BackColor = Color.Red;
                }
            }
        }
Beispiel #11
0
 public void Complete()
 {
     NextCast = Time.Now + Cooldown;
     Info     = Globals.MagicInfoList.Binding.FirstOrDefault(x => x.Index == InfoIndex);
 }
Beispiel #12
0
 public void Complete()
 {
     Info = Globals.MagicInfoList.Binding.FirstOrDefault(x => x.Index == InfoIndex);
 }
Beispiel #13
0
        public override bool TakeAction()
        {
            //List<UserQueue> queueList = new PersonalCacheStruct<UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType == QueueType.MagicStrong);
            //if (queueList.Count > 0)
            //{
            //    if (queueList[0].StrengNum >= 2 && queueList[0].DoRefresh() > 0)
            //    {
            //        ErrorCode = LanguageManager.GetLang().ErrorCode;
            //        ErrorInfo = LanguageManager.GetLang().St1503_MagicColding;
            //        return false;
            //    }
            //}
            magicInfo = new ShareCacheStruct <MagicInfo>().FindKey(magicID);
            if (magicInfo == null)
            {
                return(false);
            }
            int maxMagicLv = ConfigEnvSet.GetInt("Queue.MaxLength");

            UserMagic userMagic = new PersonalCacheStruct <UserMagic>().FindKey(ContextUser.UserID, magicID);

            if (userMagic == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1503_MagicIDNotEnough;
                return(false);
            }
            sumMagicLv = MathUtils.Addition(userMagic.MagicLv, (short)1, (short)100);
            MagicLvInfo magicLvInfo = new ShareCacheStruct <MagicLvInfo>().FindKey(magicID, sumMagicLv);

            if (magicLvInfo == null || userMagic.MagicLv == maxMagicLv)
            {
                guideID = 1;
                //等级已达到最高
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1503_MaxMagicLv;
                return(false);
            }
            if (ContextUser.UserLv < magicLvInfo.EscalateMinLv)
            {
                //超出用户等级
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1503_MagicLevel;
                return(false);
            }


            experience = magicLvInfo.ExpNum;
            //codeTime = magicLvInfo.ColdTime;
            if (experience > ContextUser.ExpNum)
            {
                guideID = 3;
                //阅历不足
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1503_UpgradeExpNum);
                return(false);
            }
            int useGold = 0;

            if (ops == 1)
            {
                if (!VipHelper.GetVipOpenFun(ContextUser.VipLv, ExpandType.EquXiaoChuLengQueShiJian))
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_VipNotEnoughNotFuntion;
                    return(false);
                }
                useGold = (codeTime / 60);
                if (ContextUser.GoldNum < useGold)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }

                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold, int.MaxValue);
            }
            else
            {
                //放入队列中
                // List<UserQueue> queueList = new PersonalCacheStruct<UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType ==QueueType.MagicStrong);
                //todo
                //if (queueList.Count > 0)
                //{
                //    UserQueue queue = queueList[0];
                //    if (queue.DoRefresh() > 0 && queue.StrengNum < 2)
                //    {
                //        queue.TotalColdTime = MathUtils.Addition(queue.TotalColdTime, codeTime, int.MaxValue);
                //        queue.ColdTime = MathUtils.Addition(queue.ColdTime, codeTime, int.MaxValue);
                //        queue.IsSuspend = false;
                //        queue.StrengNum = MathUtils.Addition(queue.StrengNum, 1, int.MaxValue);
                //        //queue.Update();
                //    }
                //    else
                //    {
                //        queue.TotalColdTime = codeTime;
                //        queue.Timing = DateTime.Now;
                //        queue.ColdTime = codeTime;
                //        queue.IsSuspend = false;
                //        queue.StrengNum = 1;
                //        //queue.Update();
                //    }
                //}
                //else
                //{
                //    UserQueue userQueue = new UserQueue()
                //    {
                //        QueueID = Guid.NewGuid().ToString(),
                //        UserID = ContextUser.UserID,
                //        QueueType = QueueType.MagicStrong,
                //        QueueName = QueueType.MagicStrong.ToString(),
                //        TotalColdTime = codeTime,
                //        Timing = DateTime.Now,
                //        ColdTime = codeTime,
                //        StrengNum = 1,
                //        IsSuspend = false
                //    };
                //    new PersonalCacheStruct<UserQueue>().Add(userQueue);
                //}
            }

            if (userMagic != null)
            {
                if (userMagic.MagicType == MagicType.MoFaZhen)
                {
                    MagicLvInfo mLvInfo    = new ShareCacheStruct <MagicLvInfo>().FindKey(userMagic.MagicID, userMagic.MagicLv);
                    string[]    mGridRange = mLvInfo.GridRange.Split(',');
                    foreach (string gridRange in mGridRange)
                    {
                        UserEmbattle userEmbattle = new PersonalCacheStruct <UserEmbattle>().FindKey(ContextUser.UserID, userMagic.MagicID, gridRange.ToShort());
                        if (userEmbattle == null)
                        {
                            UserEmbattle embattle = new UserEmbattle()
                            {
                                UserID    = ContextUser.UserID,
                                MagicID   = userMagic.MagicID,
                                Position  = gridRange.ToShort(),
                                GeneralID = 0
                            };
                            new PersonalCacheStruct <UserEmbattle>().Add(embattle);
                        }
                    }
                }

                if (experience < ContextUser.ExpNum)
                {
                    ContextUser.ExpNum = MathUtils.Subtraction(ContextUser.ExpNum, experience, 0);
                    userMagic.MagicLv  = MathUtils.Addition(userMagic.MagicLv, (short)1, (short)maxMagicLv);
                }
                UserLogHelper.AppenStrongLog(ContextUser.UserID, 1, null, magicID, 2, (short)userMagic.MagicLv, useGold, 0);
            }

            List <UserGeneral> userGeneralsArray = new PersonalCacheStruct <UserGeneral>().FindAll(ContextUser.UserID, s => s.GeneralStatus == GeneralStatus.DuiWuZhong && s.GeneralType != GeneralType.Soul);

            foreach (UserGeneral general in userGeneralsArray)
            {
                general.RefreshMaxLife();
            }
            //日常任务-魔术升级
            TaskHelper.TriggerDailyTask(Uid, 4004);
            return(true);
        }
Beispiel #14
0
 public void ShootProjectile(MagicInfo magicInfo)
 {
     StartCoroutine(ToWait(magicInfo));
 }