示例#1
0
        public Arcanum?Fusion(Arcanum a1, Arcanum a2)
        {
            Arcanum first  = ((int)a1 < (int)a2) ? a1 : a2;
            Arcanum second = ((int)a1 < (int)a2) ? a2 : a1;

            return(Fusions[first][second]);
        }
示例#2
0
        public Persona Fusion(Persona p1, Persona p2)
        {
            Arcanum a1 = p1.Arcana;
            int     l1 = p1.Level;

            Arcanum a2 = p2.Arcana;
            int     l2 = p2.Level;

            int avg = ((l1 + l2) / 2) + 1;

            Arcanum?arcanaresult = fm.Fusion(a1, a2);

            if (!arcanaresult.HasValue)
            {
                return(null);
            }

            var query = from p in Personas
                        where p.Value.Arcana == arcanaresult.Value
                        select p.Value;

            foreach (var item in query)
            {
                if (item.Level >= avg)
                {
                    return(item);
                }
            }

            return(null);
        }
示例#3
0
 private void Fill(Arcanum first, params Arcanum?[] result)
 {
     if (result.Length != 23)
     {
         throw new ArgumentException("Length different than expected 23", "result");
     }
     Fusions[first][Arcanum.Fool]       = result[0];
     Fusions[first][Arcanum.Magician]   = result[1];
     Fusions[first][Arcanum.Priestess]  = result[2];
     Fusions[first][Arcanum.Empress]    = result[3];
     Fusions[first][Arcanum.Emperor]    = result[4];
     Fusions[first][Arcanum.Hierophant] = result[5];
     Fusions[first][Arcanum.Lovers]     = result[6];
     Fusions[first][Arcanum.Chariot]    = result[7];
     Fusions[first][Arcanum.Justice]    = result[8];
     Fusions[first][Arcanum.Hermit]     = result[9];
     Fusions[first][Arcanum.Fortune]    = result[10];
     Fusions[first][Arcanum.Strength]   = result[11];
     Fusions[first][Arcanum.Hanged]     = result[12];
     Fusions[first][Arcanum.Death]      = result[13];
     Fusions[first][Arcanum.Temperance] = result[14];
     Fusions[first][Arcanum.Devil]      = result[15];
     Fusions[first][Arcanum.Tower]      = result[16];
     Fusions[first][Arcanum.Star]       = result[17];
     Fusions[first][Arcanum.Moon]       = result[18];
     Fusions[first][Arcanum.Sun]        = result[19];
     Fusions[first][Arcanum.Judgement]  = result[20];
     Fusions[first][Arcanum.Jester]     = result[21];
     Fusions[first][Arcanum.Aeon]       = result[22];
 }
示例#4
0
        public Arcanum?Fusion(Arcanum a1, Arcanum a2, Arcanum a3)
        {
            Arcanum?first = Fusion(a1, a2);

            if (!first.HasValue)
            {
                return(null);
            }
            return(Fusion(first.Value, a3));
        }
示例#5
0
 public Persona(
     string name,
     int level,
     Arcanum arcanum,
     bool isMaterial      = true,
     bool isSpecialFusion = false)
 {
     Name            = name;
     Level           = level;
     Arcana          = arcanum;
     IsMaterial      = isMaterial;
     IsSpecialFusion = isSpecialFusion;
 }
示例#6
0
 public Fusion this[Arcanum key]
 {
     get
     {
         if (fusionSet.ContainsKey(key))
         {
             return(fusionSet[key]);
         }
         else
         {
             return(null);
         }
     }
     set
     {
         if (fusionSet.ContainsKey(key))
         {
             fusionSet[key] = value;
         }
     }
 }
示例#7
0
 public Arcanum?this[Arcanum key]
 {
     get
     {
         if (rule.ContainsKey(key))
         {
             return(rule[key]);
         }
         else
         {
             return(null);
         }
     }
     set
     {
         if (rule.ContainsKey(key))
         {
             rule[key] = value;
         }
     }
 }