Exemplo n.º 1
0
        /// <summary>
        /// Find the selected chain with a shop.
        /// </summary>

        private void ShopList_SelectionChanged()
        {
            //SelecttedRow in tabel
            var    drvShopView = (DataRowView)ShopList.SelectedItem;
            string chainId     = null;

            //Checks for the tabel isnt empty
            if (drvShopView != null)
            {
                chainId = drvShopView[5].ToString();
            }
            //Runs a for loop for all chains
            for (var i = 0; i < ChainList.Items.Count; i++)
            {
                var row = (DataGridRow)ChainList.ItemContainerGenerator.ContainerFromIndex(i);
                if (row == null)
                {
                    ChainList.UpdateLayout();
                    ChainList.ScrollIntoView(ChainList.Items[i]);
                    row = (DataGridRow)ChainList.ItemContainerGenerator.ContainerFromIndex(i);
                }
                var cellContent = ChainList.Columns[0].GetCellContent(row) as TextBlock;
                if (cellContent == null || !cellContent.Text.Equals(chainId))
                {
                    continue;
                }
                var item = ChainList.Items[i];
                ChainList.SelectedItem = item;
                ChainList.ScrollIntoView(item);
                row.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
                break;
            }
        }
Exemplo n.º 2
0
        private void btnTest3_Click(object sender, EventArgs e)
        {
            ChainList <string> l = new ChainList <string>();

            l.Add("aa");
            l.Add("bb");
            l.Add("cc");
            l.Add("dd");
            l.Add("ee");
            l.Add("ff");
            l.Add("gg");

            WriteMsg(l.Visit().element);
            WriteMsg(l.Count);

            l.MoveNext();

            WriteMsg(l.Visit().element);
            WriteMsg(l.Count);

            l.MoveNext();

            WriteMsg(l.Visit().element);
            WriteMsg(l.Count);

            l.Remove(l.Visit());
            WriteMsg(l.Count);

            WriteMsg(l.Visit().element);
        }
Exemplo n.º 3
0
        public void 進むべきオブジェクトがない場合falseを取得する()
        {
            ChainList<PathInfo> list = new ChainList<PathInfo>();
            list.Add(new PathInfo(@"C:\"));
            list.Add(new PathInfo(@"C:\AA"));

            Assert.IsFalse(list.MoveNext());
        }
Exemplo n.º 4
0
				public FactTypeChainer(FactTypeMappingDictionary predecidedManyToOneFactTypeMappings, FactTypeMappingDictionary predecidedOneToOneFactTypeMappings, FactTypeMappingListDictionary undecidedOneToOneFactTypeMappings)
				{
					myChains = new ChainList();

					myPredecidedManyToOneFactTypeMappings = predecidedManyToOneFactTypeMappings;
					myPredecidedOneToOneFactTypeMappings = predecidedOneToOneFactTypeMappings;
					myUndecidedOneToOneFactTypeMappings = undecidedOneToOneFactTypeMappings;
				}
Exemplo n.º 5
0
        public void 戻るべきオブジェクトがある場合trueを取得する()
        {
            ChainList<PathInfo> list = new ChainList<PathInfo>();
            list.Add(new PathInfo(@"C:\"));
            list.Add(new PathInfo(@"C:\AA"));

            Assert.IsTrue(list.MovePrevious());
        }
Exemplo n.º 6
0
        public void 前回プッシュされた値が取得できる()
        {
            ChainList<PathInfo> list = new ChainList<PathInfo>();
            list.Add(new PathInfo(@"C:\"));
            list.Add(new PathInfo(@"C:\AA"));

            list.MovePrevious();

            Assert.AreEqual(new PathInfo(@"C:\"), list.Current);
        }
Exemplo n.º 7
0
 public void SetStatusEffect(StatusEffect statusEffect)
 {
     statusEffectList.Add(statusEffect);
     // 침묵이나 기절상태가 될 경우 체인 해제.
     // FIXME : 넉백 추가할 것. (넉백은 디버프가 아니라서 다른 곳에서 적용할 듯?)
     if (statusEffect.IsOfType(StatusEffectType.Faint) ||
         statusEffect.IsOfType(StatusEffectType.Silence))
     {
         ChainList.RemoveChainsFromUnit(gameObject);
     }
 }
Exemplo n.º 8
0
        public void 追加した値が取得できる()
        {
            ChainList<PathInfo> list = new ChainList<PathInfo>();
            list.Add(new PathInfo(@"C:\"));

            Assert.AreEqual(new PathInfo(@"C:\"), list.Current);

            list.Add(new PathInfo(@"C:\AA"));

            Assert.AreEqual(new PathInfo(@"C:\AA"), list.Current);
        }
Exemplo n.º 9
0
        public void 一度戻った後にプッシュした場合戻る前のオブジェクトの参照は削除される()
        {
            ChainList<PathInfo> list = new ChainList<PathInfo>();
            list.Add(new PathInfo(@"C:\"));
            list.Add(new PathInfo(@"C:\AA"));

            list.MovePrevious();
            list.Add(new PathInfo(@"C:\BB"));

            list.MovePrevious();

            Assert.AreEqual(new PathInfo(@"C:\"), list.Current);
        }
Exemplo n.º 10
0
        static void Main(string[] args)
        {
            ChainList<int> test = new ChainList<int>();
            for (int i = 0; i < 10; i++)
            {
                test.Add(i);
            }

            foreach (int i in test)
            {
                Console.WriteLine(i);
            }
        }
Exemplo n.º 11
0
 public void GetLongestChainForPlayer_Standard_ReturnsChainWithHighestCount()
 {
     const int highestLength = 3;
     Func<int, IInPlayChain> getChain = i => { var mock = new Mock<IInPlayChain>();
         mock.Setup(c => c.Count).Returns(i);
         mock.Setup(c => c.IsAvailableForPlayer(It.IsAny<IPlayer>())).Returns(true);
         return mock.Object;};
     var chains = new[] { 1, highestLength, 2 }.Select(getChain);
     var chainList = new ChainList {Chains = chains.ToList()};
     var player  = new Mock<IPlayer>();
     var longChain = chainList.GetLongestChainForPlayer(player.Object);
     Assert.IsTrue(longChain.Count == highestLength);
 }
Exemplo n.º 12
0
        public void chain_MaximumChainLengthReached_Standard_ChainIsSaved()
        {
            var mockChain = new Mock<IInPlayChain>();
            var guesses = Enumerable.Range(1, 3).Select(i => new Mock<IGuessDTO>().Object);
            var mockRepo = new Mock<IRepository>();
            var mockChains = new Mock<IList<IInPlayChain>>();
            var chainList = new ChainList(mockChains.Object, mockRepo.Object);
            mockChain.Setup(c => c.Guesses).Returns(guesses.ToList());

            chainList.chain_MaximumChainLengthReached(mockChain.Object, null);

            mockRepo.Verify(r => r.Save(It.Is<IInPlayChain>(c => c.Equals(mockChain.Object))));
        }
Exemplo n.º 13
0
        public TransformationViewModel()
        {
            int           i        = 0;
            List <string> PathList = new List <string>()
            {
                path, path2
            };

            foreach (var path in PathList)
            {
                XmlToObjectBuilder x        = new XmlToObjectBuilder();
                IRunAsChain        ChainObj = new RunAsChain.Model.RunAsChain()
                {
                    ChainPath = PathList[i],
                    Chain     = x.ModelObj(PathList[i])
                };
                ChainList.Add(ChainObj);
                // ChainList = TempList;
                i++;
            }
        }
Exemplo n.º 14
0
    IEnumerator ActionAtTurn(GameObject unit)
    {
        battleData.uiManager.UpdateApBarUI(battleData, battleData.unitManager.GetAllUnits());

        Debug.Log(unit.GetComponent <Unit>().GetName() + "'s turn");
        battleData.selectedUnitObject = unit;
        battleData.moveCount          = 0;                             // 누적 이동 수
        battleData.alreadyMoved       = false;                         // 연속 이동 불가를 위한 변수.
        ChainList.RemoveChainsFromUnit(battleData.selectedUnitObject); // 턴이 돌아오면 자신이 건 체인 삭제.
        battleData.currentState = CurrentState.FocusToUnit;

        battleData.uiManager.SetSelectedUnitViewerUI(battleData.selectedUnitObject);
        battleData.selectedUnitObject.GetComponent <Unit>().SetActive();

        yield return(StartCoroutine(FocusToUnit(battleData)));

        battleData.uiManager.DisableSelectedUnitViewerUI();
        if (battleData.selectedUnitObject != null)
        {
            battleData.selectedUnitObject.GetComponent <Unit>().SetInactive();
        }
    }
Exemplo n.º 15
0
        /// <summary>
        /// Loads the selected item into the textfields
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LoadShopIntoTextField_Click(object sender, RoutedEventArgs e)
        {
            var drv = (DataRowView)ShopList.SelectedItem;

            if (drv != null)
            {
                ShopIdField.Text      = (drv["shopId"]).ToString();
                ShopNameField.Text    = (drv["shopName"]).ToString();
                ShopAddressField.Text = (drv["shopAddress"]).ToString();
                ShopCVRField.Text     = (drv["shopCVR"]).ToString();
                //Replace the semicolons with new lines because of the database
                var openingTimeRaw = (drv["ShopOpeningTime"]).ToString();
                var newOpeningTime = openingTimeRaw.Replace(";", "\r\n");
                ShopOpeningTimesField.Text = newOpeningTime;
                var chainId = (drv["ShopChainId"]).ToString();
                ShopList_SelectionChanged();
                ChainList.FindName(chainId);
            }
            else
            {
                MessageBox.Show("Du mangler at markere en række");
            }
        }
Exemplo n.º 16
0
        public void 何も追加されてていない時はfalseを取得する()
        {
            ChainList<PathInfo> list = new ChainList<PathInfo>();

            Assert.IsFalse(list.MoveNext());
        }
Exemplo n.º 17
0
        public void 何もプッシュされてていない時はfalseを取得する()
        {
            ChainList<PathInfo> list = new ChainList<PathInfo>();

            Assert.IsFalse(list.MovePrevious());
        }
Exemplo n.º 18
0
        public void 何も追加していないカレントオブジェクトはnullである()
        {
            ChainList<PathInfo> list = new ChainList<PathInfo>();

            Assert.AreEqual(null, list.Current);
        }
Exemplo n.º 19
0
    public IEnumerator Damaged(UnitClass unitClass, float amount, float penetration, bool isDot, bool isHealth)
    {
        float actualDamage = 0.0f;
        int   finalDamage  = 0;      // 최종 대미지 (정수로 표시되는)

        // 공격이 물리인지 마법인지 체크
        // 방어력 / 저항력 중 맞는 값을 적용 (적용 단계에서 능력치 변동 효과 반영)
        // 대미지 증가/감소 효과 적용
        // 보호막 있을 경우 대미지 삭감
        // 체력 깎임
        // 체인 해제
        if (isHealth == true)
        {
            if (unitClass == UnitClass.Melee)
            {
                // 실제 피해 = 원래 피해 x 200/(200+방어력)
                actualDamage = amount * 200.0f / (200.0f + GetActualStat(Stat.Defense) * (1.0f - penetration));
                Debug.Log("Actual melee damage without status effect : " + actualDamage);
            }
            else if (unitClass == UnitClass.Magic)
            {
                actualDamage = amount * 200.0f / (200.0f + GetActualStat(Stat.Resistance) * (1.0f - penetration));
                Debug.Log("Actual magic damage without status effect: " + actualDamage);
            }
            else if (unitClass == UnitClass.None)
            {
                actualDamage = amount;
            }

            // sisterna_l_1의 저항력 계산
            if (penetration == -1.0f)
            {
                actualDamage = amount - GetActualStat(Stat.Resistance);
            }

            // 대미지 증감 효과 적용
            if (this.HasStatusEffect(StatusEffectType.DamageChange))
            {
                actualDamage = GetActualEffect(actualDamage, StatusEffectType.DamageChange);
            }

            finalDamage = (int)actualDamage;

            // 보호막에 따른 대미지 삭감
            if (this.HasStatusEffect(StatusEffectType.Shield))
            {
                int shieldAmount = 0;
                for (int i = 0; i < statusEffectList.Count; i++)
                {
                    if (statusEffectList[i].IsOfType(StatusEffectType.Shield) && statusEffectList[i].GetCooldown() == 0)
                    {
                        // sisterna_m_12 발동 조건 체크
                        if (statusEffectList[i].GetName().Equals("파장 분류"))
                        {
                            if (finalDamage < (int)(0.2 * maxHealth))
                            {
                                continue;
                            }
                            else
                            {
                                int absorbDamage = (int)(statusEffectList[i].GetAmount(statusEffectList[i].GetLevel()) * this.GetActualStat(statusEffectList[i].GetAmountStat()));
                                finalDamage -= absorbDamage;
                                float[] tempArray = new float[5] {
                                    0, 0, 0, 0, 0
                                };                                                                                // 강타 정의용 임시 array
                                StatusEffect sisternaSmite = new StatusEffect("파장 분류 강타", statusEffectList[i].GetLevel(), StatusEffectType.Smite,
                                                                              true, false, false, false,
                                                                              tempArray, Stat.None, tempArray, absorbDamage,
                                                                              0, 1, 0, false, "None", EffectVisualType.None, EffectMoveType.None);
                                statusEffectList.Add(sisternaSmite);
                                statusEffectList[i].SetToBeRemoved(true);
                                break;
                            }
                        }
                        shieldAmount = statusEffectList[i].GetRemainAmount();
                        if (shieldAmount > finalDamage)
                        {
                            statusEffectList[i].SetRemainAmount(shieldAmount - finalDamage);
                            finalDamage = 0;
                            Debug.Log("Remain Shield Amount : " + statusEffectList[i].GetRemainAmount());
                            break;
                        }
                        else
                        {
                            finalDamage -= shieldAmount;
                            statusEffectList[i].SetToBeRemoved(true);
                        }
                    }
                }
                this.UpdateStatusEffect();
            }

            if (finalDamage > -1)
            {
                currentHealth -= finalDamage;
            }
            if (currentHealth < 0)
            {
                currentHealth = 0;
            }

            damageTextObject.SetActive(true);
            damageTextObject.GetComponent <CustomWorldText>().text = finalDamage.ToString();

            healthViewer.UpdateCurrentHealth(currentHealth, maxHealth);

            if (!isDot)             // 도트데미지가 아니면 체인이 해제됨.
            {
                ChainList.RemoveChainsFromUnit(gameObject);
            }

            // 데미지 표시되는 시간.
            yield return(new WaitForSeconds(1));

            damageTextObject.SetActive(false);
        }

        else
        {
            finalDamage = (int)amount;
            if (activityPoint >= finalDamage)
            {
                activityPoint -= finalDamage;
            }
            else
            {
                activityPoint = 0;
            }
            Debug.Log(GetName() + " loses " + finalDamage + "AP.");
        }
    }