Ejemplo n.º 1
0
        DTOBuffPlayer CreateBuffPlayer(DicPlayerEntity cfg, int showOrder, int pid = 0)
        {
            if (null == cfg)
            {
                return(null);
            }
            var rawProps = cfg.GetRawProps();
            var obj      = new DTOBuffPlayer();

            obj.Pid         = pid == 0 ? cfg.Idx : pid;
            obj.Pos         = cfg.Position;
            obj.Clr         = cfg.CardLevel;
            obj.Club        = cfg.Club;
            obj.Nationality = cfg.Nationality;
            obj.Props       = new DTOBuffProp[rawProps.Length];
            obj.PosOn       = -1;
            obj.ShowOrder   = showOrder;
            for (int i = 0; i < rawProps.Length; ++i)
            {
                obj.Props[i] = new DTOBuffProp {
                    Orig = rawProps[i]
                };
            }
            rawProps = null;
            return(obj);
        }
Ejemplo n.º 2
0
        public static void TheStarPlayerCardData(TeammemberEntity teammember, DTOBuffPlayer buffPlayer)
        {
            if (null == teammember.PlayerCard || null == teammember.PlayerCard.Property)
            {
                return;
            }
            var cardProp = teammember.PlayerCard.Property;

            if (0 == cardProp.TheStar || cardProp.TheStar > 5)
            {
                return;
            }

            var    teammemberProps = BuffUtil.GetTeammemberProps(teammember);
            double growPlus        = 0;

            growPlus = 15 * cardProp.TheStar;
            if (growPlus > 0)
            {
                growPlus = growPlus / 100.00;
            }
            for (int i = 0; i < buffPlayer.Props.Length; ++i)
            {
                buffPlayer.Props[i].Point   += teammemberProps[i];
                buffPlayer.Props[i].Percent += growPlus;
            }
        }
Ejemplo n.º 3
0
        void FillBuffPack(DTOBuffPack buffPack, bool homeFlag, Guid managerId, ArenaTeammemberFrame arenaFrame, List <TeammemberEntity> rawMembers = null, string siteId = "")
        {
            FillBuffPackRaw(buffPack, homeFlag, managerId, arenaFrame, rawMembers, siteId);
            var dicAll = buffPack.GetBuffPlayers(homeFlag);
            var lstOn  = buffPack.GetOnBuffPlayers(homeFlag);

            if (null != dicAll && null != lstOn)
            {
                return;
            }
            var members = buffPack.GetRawMembers(homeFlag);
            var pids    = buffPack.GetOnPids(homeFlag);
            var form    = buffPack.GetSolution(homeFlag);

            dicAll = new Dictionary <Guid, DTOBuffPlayer>(members.Count);
            lstOn  = new List <DTOBuffPlayer>(12);
            int             pid   = 0;
            Guid            tid   = Guid.Empty;
            DicPlayerEntity cfg   = null;
            DTOBuffPlayer   buffP = null;

            int showOrder = 1;

            foreach (var kvp in form.PlayerDic)
            {
                pid = kvp.Key;
                cfg = PlayersdicCache.Instance.GetPlayer(pid);
                if (null == cfg || !pids.TryGetValue(pid, out tid))
                {
                    throw new Exception(string.Format("BuffDataCore:Manager[{0}] Miss Player[{1}] With Config Or Member", managerId, pid));
                }
                buffP             = CreateBuffPlayer(cfg, showOrder++);
                buffP.Pos         = buffP.PosOn = kvp.Value.Position;
                buffP.ActionSkill = kvp.Value.SkillCode;
                dicAll[tid]       = buffP;
                lstOn.Add(buffP);
            }
            foreach (var kvp in members)
            {
                pid = kvp.Value.PlayerId;
                tid = kvp.Key;
                if (dicAll.ContainsKey(tid))
                {
                    continue;
                }
                cfg = PlayersdicCache.Instance.GetPlayer(pid);
                if (null == cfg)
                {
                    continue;
                }
                buffP       = CreateBuffPlayer(cfg, showOrder++, -cfg.Idx);
                dicAll[tid] = buffP;
            }
            buffPack.SetBuffPlayers(homeFlag, dicAll);
            buffPack.SetOnBuffPlayers(homeFlag, lstOn);
        }
Ejemplo n.º 4
0
        protected IEnumerable <DTOBuffPlayer> GetRootDest(DTOBuffPack buffPack, bool homeFlag, Guid memberId, int dstDir)
        {
            if (null == buffPack)
            {
                return(null);
            }
            switch (dstDir)
            {
            case 0:    //己方全体
                var players = buffPack.GetBuffPlayers(homeFlag);
                if (null == players)
                {
                    return(null);
                }
                return(players.Values);

            case 1:    //己方场上
                var onPlayers = buffPack.GetOnBuffPlayers(homeFlag);
                if (null == onPlayers)
                {
                    return(null);
                }
                return(onPlayers);

            case 9:    //自己
                players = buffPack.GetBuffPlayers(homeFlag);
                DTOBuffPlayer player = null;
                if (players.TryGetValue(memberId, out player))
                {
                    return new DTOBuffPlayer[] { player }
                }
                ;
                return(null);

            case 10:    //对方全体
                players = buffPack.GetBuffPlayers(!homeFlag);
                if (null == players)
                {
                    return(null);
                }
                return(players.Values);

            case 11:    //对方场上
                onPlayers = buffPack.GetOnBuffPlayers(!homeFlag);
                if (null == onPlayers)
                {
                    return(null);
                }
                return(onPlayers);

            default:
                return(null);
            }
        }
Ejemplo n.º 5
0
 public static void FillPlayerCardData(DTOBuffPlayer buffPlayer, TeammemberEntity teammember)
 {
     try
     {
         if (null == teammember.PlayerCard || null == teammember.PlayerCard.Property)
         {
             return;
         }
         var cardProp = teammember.PlayerCard.Property;
         if (null == cardProp.Potential)
         {
             return;
         }
         ConfigPotentialEntity cfg;
         double point, percent;
         foreach (var item in cardProp.Potential)
         {
             cfg = PlayersdicCache.Instance.GetPotentialConfig(item.Level, item.Idx);
             if (null == cfg)
             {
                 continue;
             }
             if (cfg.BuffType == 2)
             {
                 point   = 0;
                 percent = Convert.ToDouble(item.Buff) / 100d;
             }
             else
             {
                 point   = Convert.ToDouble(item.Buff);
                 percent = 0;
             }
             if (cfg.BuffId < 1000)
             {
                 buffPlayer.SBMList.Add(BuffCache.Instance().GetVarySkillCode(cfg.BuffId, point, percent));
             }
             else
             {
                 buffPlayer.AddMatchBuff(point, percent, cfg.BuffId);
             }
         }
     }
     catch (Exception ex)
     {
         LogHelper.Insert(ex, "TeammemberDataHelper:FillPlayerCardData");
     }
 }
Ejemplo n.º 6
0
        public static void FillTeammemberLevelData(TeammemberEntity teammember, DTOBuffPlayer buffPlayer)
        {
            var teammemberProps = BuffUtil.GetTeammemberProps(teammember);
            var level           = teammember.Level;

            double levelPlus = 0;

            if (level > 1)
            {
                levelPlus = (level - 1) / 100.00;
            }
            for (int i = 0; i < buffPlayer.Props.Length; ++i)
            {
                buffPlayer.Props[i].Point   += teammemberProps[i];
                buffPlayer.Props[i].Percent += levelPlus;
            }
        }
Ejemplo n.º 7
0
 public static void FillTeammemberGrowData(TeammemberEntity teammember, DTOBuffPlayer buffPlayer)
 {
     //var teammemberProps = BuffUtil.GetTeammemberProps(teammember);
     //var growCache = CacheFactory.TeammemberCache.GetGrow(teammember.GrowLevel);
     //double growPlus = 0;
     //if (growCache != null)
     //{
     //    growPlus = growCache.PlusPercent;
     //    if (growPlus > 0)
     //    {
     //        growPlus = growPlus / 100.00;
     //    }
     //}
     //for (int i = 0; i < buffPlayer.Props.Length; ++i)
     //{
     //    buffPlayer.Props[i].Point += teammemberProps[i];
     //    buffPlayer.Props[i].Percent += growPlus;
     //}
 }
Ejemplo n.º 8
0
        void FillBuffMemberProp(NbManagerbuffmemberEntity member, DTOBuffPlayer player)
        {
            var props = player.Props;

            member.SpeedCount        += props[0].BuffValue;
            member.ShootCount        += props[1].BuffValue;
            member.FreeKickCount     += props[2].BuffValue;
            member.BalanceCount      += props[3].BuffValue;
            member.PhysiqueCount     += props[4].BuffValue;
            member.PowerConst        += props[5].BuffValue;
            member.AggressionCount   += props[6].BuffValue;
            member.DisturbCount      += props[7].BuffValue;
            member.InterceptionCount += props[8].BuffValue;
            member.DribbleCount      += props[9].BuffValue;
            member.PassCount         += props[10].BuffValue;
            member.MentalityCount    += props[11].BuffValue;
            member.ResponseCount     += props[12].BuffValue;
            member.PositioningCount  += props[13].BuffValue;
            member.HandControlCount  += props[14].BuffValue;
            member.AccelerationCount += props[15].BuffValue;
            member.BounceCount       += props[16].BuffValue;
            player.ClearBuff();
        }
Ejemplo n.º 9
0
        NbManagerbuffmemberEntity CreateBuffMember(Guid tid, DTOBuffPlayer player)
        {
            if (null == player)
            {
                return(null);
            }
            var member = new NbManagerbuffmemberEntity();

            member.Tid       = tid;
            member.Pid       = player.AsPid;
            member.PPos      = player.Pos;
            member.PPosOn    = player.PosOn;
            member.Level     = player.Level;
            member.Strength  = player.Strength;
            member.IsMain    = player.OnFlag;
            member.ShowOrder = player.ShowOrder;
            var props = player.Props;

            member.SpeedConst        = props[0].Orig;
            member.ShootConst        = props[1].Orig;
            member.FreeKickConst     = props[2].Orig;
            member.BalanceConst      = props[3].Orig;
            member.PhysiqueConst     = props[4].Orig;
            member.PowerConst        = props[5].Orig;
            member.AggressionConst   = props[6].Orig;
            member.DisturbConst      = props[7].Orig;
            member.InterceptionConst = props[8].Orig;
            member.DribbleConst      = props[9].Orig;
            member.PassConst         = props[10].Orig;
            member.MentalityConst    = props[11].Orig;
            member.ResponseConst     = props[12].Orig;
            member.PositioningConst  = props[13].Orig;
            member.HandControlConst  = props[14].Orig;
            member.AccelerationConst = props[15].Orig;
            member.BounceConst       = props[16].Orig;
            return(member);
        }
Ejemplo n.º 10
0
        static DTOBuffPlayer BuildPlayer(LocalTransferPlayerEntity playerEntity)
        {
            var cfg      = LocalHelper.LocalCache.Players.Find(d => d.Idx == playerEntity.PlayerId);
            var rawProps = GetTeammemberProps(playerEntity);
            var obj      = new DTOBuffPlayer();

            obj.Pid   = playerEntity.PlayerId;
            obj.Pos   = playerEntity.Position;
            obj.Clr   = cfg == null?0:cfg.CardLevel;
            obj.Props = new DTOBuffProp[rawProps.Length];
            for (int i = 0; i < rawProps.Length; ++i)
            {
                obj.Props[i] = new DTOBuffProp {
                    Orig = rawProps[i]
                };
            }
            rawProps        = null;
            obj.Level       = 1;
            obj.SBMList     = new List <string>();
            obj.Strength    = 0;
            obj.ActionSkill = playerEntity.Skill;
            obj.StarSkill   = playerEntity.StarSkill;
            return(obj);
        }
Ejemplo n.º 11
0
        static DTOBuffPlayer BuildPlayer(int level, int propertyPoint, int strength, int playerId, int equipId, string skill, int position, int buffScale, ref Dictionary <int, List <int> > suitDic, ref Dictionary <int, int> suitTypeDic)
        {
            DicPlayerEntity cfg      = MatchDataUtil.GetDicPlayer(Guid.Empty, playerId);
            var             rawProps = cfg.GetRawProps();
            var             obj      = new DTOBuffPlayer();

            obj.Pid   = cfg.Idx;
            obj.Pos   = position;
            obj.Clr   = cfg.CardLevel;
            obj.Props = new DTOBuffProp[rawProps.Length];

            for (int i = 0; i < rawProps.Length; ++i)
            {
                obj.Props[i] = new DTOBuffProp {
                    Orig = rawProps[i]
                };
                obj.Props[i].Percent = (buffScale - 100) / 100.00;
            }
            if (propertyPoint > 0)
            {
                switch (position)
                {
                case (int)EnumPosition.Forward:
                    obj.Props[0].Point += propertyPoint;
                    obj.Props[1].Point += propertyPoint;
                    obj.Props[2].Point += propertyPoint;
                    obj.Props[3].Point += propertyPoint;
                    break;

                case (int)EnumPosition.Midfielder:
                    obj.Props[10].Point += propertyPoint;
                    obj.Props[11].Point += propertyPoint;
                    obj.Props[12].Point += propertyPoint;
                    obj.Props[3].Point  += propertyPoint;
                    break;

                case (int)EnumPosition.Fullback:
                    obj.Props[7].Point += propertyPoint;
                    obj.Props[8].Point += propertyPoint;
                    obj.Props[9].Point += propertyPoint;
                    break;

                case (int)EnumPosition.Goalkeeper:
                    obj.Props[13].Point += propertyPoint;
                    obj.Props[14].Point += propertyPoint;
                    obj.Props[15].Point += propertyPoint;
                    break;
                }
            }
            rawProps        = null;
            obj.Level       = level;
            obj.Strength    = strength;
            obj.SBMList     = new List <string>();
            obj.ActionSkill = skill;
            //obj.StarSkill = CacheFactory.PlayersdicCache.GetStarSkill(obj.AsPid, obj.Strength);
            EquipmentUsedEntity equipment = null;

            if (equipId > 0)
            {
                equipment          = new EquipmentUsedEntity();
                equipment.Property = CacheFactory.EquipmentCache.RandomEquipmentPropertyForNpc(equipId);
            }
            //装备和副卡
            //TeammemberDataHelper.FillEquipData(obj, equipment, null, null, ref suitDic, ref suitTypeDic);

            return(obj);
        }
Ejemplo n.º 12
0
        void FillBuffMemberSkill(DTOBuffMemberView view, NbManagerbuffmemberEntity member, DTOBuffPlayer player)
        {
            member.MatchPropList  = player.MatchPropList;
            member.MatchBoostList = player.MatchBoostList;
            if (null == view.ReadySkillList)
            {
                view.ReadySkillList = new List <string>();
            }
            member.LiveSkillList = new List <string>();
            member.FirmSkillList = new List <string>();
            if (null != player.SBMList)
            {
                var rankSkills = BuffCache.Instance().GetRankedSkillList(player.SBMList);
                view.ReadySkillList.AddRange(rankSkills[0]);
                member.LiveSkillList.AddRange(rankSkills[1]);
                member.FirmSkillList.AddRange(rankSkills[2]);
            }
            var skill = player.ActionSkill;

            if (!string.IsNullOrEmpty(skill))
            {
                member.LiveSkillList.Add(skill);
            }
            skill = player.StarPlusSkill;
            if (!string.IsNullOrEmpty(skill))
            {
                member.LiveSkillList.Add(skill);
            }
            skill = player.StarSkill;
            if (!string.IsNullOrEmpty(skill))
            {
                member.LiveSkillList.AddRange(player.AsStarSkill);
            }
        }
Ejemplo n.º 13
0
        public static void FillEquipData(DTOBuffPlayer buffPlayer, EquipmentUsedEntity equipment, ref Dictionary <int, List <int> > suitDic, ref Dictionary <int, int> suitTypeDic)
        {
            try
            {
                var strengthPlus = CacheFactory.TeammemberCache.GetStrengthPlus(buffPlayer.Strength);



                for (int i = 0; i < buffPlayer.Props.Length; ++i)
                {
                    buffPlayer.Props[i].Percent += strengthPlus / 100.00;
                }

                if (equipment != null)
                {
                    var equipmentProperty = equipment.Property;
                    var itemDic           = CacheFactory.ItemsdicCache.GetEquipmentByItemCode(equipment.ItemCode);
                    if (buffPlayer.OnFlag && itemDic != null && itemDic.SuitId > 0)
                    {
                        var suitCode = itemDic.Idx % 1000;
                        if (suitDic.ContainsKey(itemDic.SuitId))
                        {
                            var list = suitDic[itemDic.SuitId];
                            if (list == null)
                            {
                                list = new List <int>();
                            }
                            if (!list.Contains(suitCode))
                            {
                                list.Add(suitCode);
                            }
                            suitDic[itemDic.SuitId] = list;
                        }
                        else
                        {
                            suitDic.Add(itemDic.SuitId, new List <int>()
                            {
                                suitCode
                            });
                            suitTypeDic.Add(itemDic.SuitId, itemDic.SuitType);
                        }
                    }
                    double equipPlus = 0;
                    foreach (var plus in equipmentProperty.PropertyPluses)
                    {
                        equipPlus = plus.PlusValue * (1 + equipmentProperty.Level * 0.1);
                        if (plus.PlusType == (int)EnumPlusType.Percent)
                        {
                            buffPlayer.Props[plus.PropertyId - 1].Percent += equipPlus / 100.00;
                        }
                        else
                        {
                            buffPlayer.Props[plus.PropertyId - 1].Point += equipPlus;
                        }
                    }
                    if (equipmentProperty.EquipmentSlots != null)
                    {
                        foreach (var equipmentSlot in equipmentProperty.EquipmentSlots)
                        {
                            if (equipmentSlot.BallSoul != null)
                            {
                                //var sbm = CacheFactory.ManagerDataCache.GetSkillbuff(EnumSBMType.BallSoul, equipmentSlot.BallSoul.ItemCode);
                                //buffPlayer.SBMList.AddRange(sbm);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Insert(ex, "TeammemberDataHelper:FillEquipData");
            }
        }