示例#1
0
        public JiaMiTu InitialJiaMiTuPoint(JiaMiTu curMiTu, JiaMiTu father, JiaMiTu mother)
        {
            float totalPoint     = 0;
            var   curMiTuType    = curMiTu.GetType();
            var   fatherMiTuType = curMiTu.GetType();
            var   motherMiTuType = curMiTu.GetType();

            foreach (var field in specialFields)
            {
                var fatherValue = (float)fatherMiTuType.GetField(field).GetValue(father);
                var motherValue = (float)motherMiTuType.GetField(field).GetValue(mother);
                var summary     = fatherValue + motherValue;
                curMiTuType.GetField(field).SetValue(curMiTu, summary);
                totalPoint += summary;
            }


            //curMiTu.BODY_COLOR = father.BODY_COLOR + mother.BODY_COLOR;
            //curMiTu.EYE = father.EYE + mother.EYE;
            //curMiTu.EYE_COLOR = father.EYE_COLOR + mother.EYE_COLOR;
            //curMiTu.FIGURE = father.FIGURE + mother.FIGURE;
            //curMiTu.MOUTH = father.MOUTH + mother.MOUTH;
            //curMiTu.PATTERN = father.PATTERN + mother.PATTERN;
            //curMiTu.PATTERN_COLOR = father.PATTERN_COLOR + mother.PATTERN_COLOR;
            ////汇总得分
            //totalPoint = curMiTu.BODY_COLOR + curMiTu.EYE + curMiTu.EYE_COLOR + curMiTu.FIGURE + curMiTu.MOUTH + curMiTu.PATTERN + curMiTu.PATTERN_COLOR;
            curMiTu.TotalPoint       = totalPoint;
            curMiTu.FatherRareDegree = father.RareDegree;
            curMiTu.MotherRareDegree = mother.RareDegree;
            return(curMiTu);
        }
示例#2
0
        public JiaMiTu InitialJiaMiTu(BsonDocument doc)
        {
            var miTuObj = new JiaMiTu()
            {
                //BODY_COLOR = doc["BODY_COLOR.rare"].ToString()=="true"?1:0,
                //EYE = doc["EYE.rare"].ToString() == "true" ? 1 : 0,
                //EYE_COLOR = doc["EYE_COLOR.rare"].ToString() == "true" ? 1 : 0,
                //FIGURE = doc["FIGURE.rare"].ToString() == "true" ? 1 : 0,
                //MOUTH = doc["MOUTH.rare"].ToString() == "true" ? 1 : 0,
                //PATTERN = doc["PATTERN.rare"].ToString() == "true" ? 1 : 0,
                //PATTERN_COLOR = doc["PATTERN_COLOR.rare"].ToString() == "true" ? 1 : 0,
            };
            var type = miTuObj.GetType();

            try
            {
                //赋值遍历
                foreach (var elem in doc.Elements)
                {
                    if (specialFields.Contains(elem.Name))
                    {
                        var curValue = doc[elem.Name] as BsonDocument;
                        if (curValue.Text("rare") == "true")
                        {
                            var getProperty = type.GetField(elem.Name);
                            if (getProperty != null)
                            {
                                getProperty.SetValue(miTuObj, 1);
                            }
                        }
                    }
                }

                miTuObj.RareDegree = (int)Enum.Parse(typeof(RareDegree), doc.Text("rareDegreeKey"));
            }
            catch (Exception ex)
            {
            }
            return(miTuObj);
        }