예제 #1
0
파일: Form1.cs 프로젝트: szyuGH/playground
        private void CalculateTempBonds(ref Disciple[] disciples)
        {
            for (int i=0;i < disciples.Length;i++)
            {
                int hpAdd = 0;
                int attackAdd = 0;
                int defAdd = 0;
                int spiritAdd = 0;
                foreach (DiscipleBond bond in disciples[i].Bonds)
                {
                    bool requirementsMet = true;
                    foreach (Disciple requiredDisciple in bond.Required)
                    {
                        if (!disciples.Contains(requiredDisciple))
                        {
                            requirementsMet = false;
                            break;
                        }
                    }
                    if (requirementsMet)
                    {
                        hpAdd += bond.HpAdd;
                        attackAdd += bond.AttackAdd;
                        defAdd += bond.DefenseAdd;
                        spiritAdd += bond.SpiritAdd;
                    }
                }
                Disciple tempDisciple = Disciple.FindById(disciples[i].Id);
                disciples[i].Hp = (int)(tempDisciple.Hp * (1 + hpAdd * 0.01f));
                disciples[i].Attack = (int)(tempDisciple.Attack * (1 + attackAdd * 0.01f));
                disciples[i].Defense = (int)(tempDisciple.Defense * (1 + defAdd * 0.01f));
                disciples[i].Spirit = (int)(tempDisciple.Spirit * (1 + spiritAdd * 0.01f));

                if (disciples[i].Defense > 20000)
                {
                    int a = 2;
                }
            }
        }
예제 #2
0
파일: Form1.cs 프로젝트: szyuGH/playground
 private Disciple[] GetFilter(Disciple[] t)
 {
     List<Disciple> filter = new List<Disciple>();
     foreach (Disciple d in t.Where(d => d != null))
     {
         foreach (DiscipleBond db in d.Bonds)
         {
             foreach (Disciple d2 in db.Required)
             {
                 if (!t.Contains(d2) && !filter.Contains(d2))
                 filter.Add(d2);
             }
         }
         foreach (Disciple d2 in Disciple.All.Where(d2 => d2 != null))
         {
             foreach (DiscipleBond db in d2.Bonds)
             {
                 foreach (Disciple d3 in db.Required)
                 {
                     if (d3.Equals(d) && !t.Contains(d2) && !filter.Contains(d2))
                         filter.Add(d2);
                 }
             }
         }
     }
     
     return filter.Distinct().ToArray();
 }