public void Should_Push_Two_Items_On_Stack_Test() { int expectedValue = 2; AStack <int> stack = InitStack(); Assert.AreEqual(stack.Peek(), expectedValue); }
public override bool AddToThisInventory(AStack aStack) { SkillStack stack = aStack as SkillStack; var skillSaves = GameManager.Instance.SavablePlayerData.PlayerProgress.Skills; switch (skillNum) { case SkillNum.FIRS: Squad.playerSquadInstance.Inventory.FirstSkill.Skill = stack.Skill; Squad.playerSquadInstance.Inventory.FirstSkill.SkillStats = stack.SkillStats; skillSaves.firstSkill = Squad.playerSquadInstance.Inventory.FirstSkill; break; case SkillNum.SECOND: Squad.playerSquadInstance.Inventory.SecondSkill.Skill = stack.Skill; Squad.playerSquadInstance.Inventory.SecondSkill.SkillStats = stack.SkillStats; skillSaves.secondSkill = Squad.playerSquadInstance.Inventory.SecondSkill; break; } PlayUiEffectForEquipmant(); return(true); }
public override bool RemoveFromThisInventory(AStack aStack) { EquipmentStack stack = aStack as EquipmentStack; //очищаем инвентарь if (stack.EquipmentStats.Type == Squad.playerSquadInstance.Inventory[CellIndex].EquipmentStats.Type && stack.EquipmentStats.Id == Squad.playerSquadInstance.Inventory[CellIndex].EquipmentStats.Id && stack.EquipmentStats.ItemDurability == Squad.playerSquadInstance.Inventory[CellIndex].EquipmentStats.ItemDurability) { if (stack.Count == Squad.playerSquadInstance.Inventory[CellIndex].Count) { Squad.playerSquadInstance.Inventory[CellIndex] = null; } else { Squad.playerSquadInstance.Inventory[CellIndex].PopItems(stack.Count); } } else { throw new System.Exception("Нельзя удалить из ячейки предметы, которые там не лежат"); } return(true); }
/// <summary> /// Создаем контейнер итема в указаной ячейке, устанавливаем иконку и её цвет /// </summary> /// <param name="origin">оригинал итема в указаной ячейке</param> /// <param name="cell">ячейка</param> /// <param name="stack"></param> /// <param name="canDrag">можно ли еретаскивать этот контейнер</param> /// <returns>контейнер итема в указаной ячейке</returns> virtual public GameObject SetImage(GameObject origin, Transform cell, AStack stack, bool canDrag) { GameObject go = null; if (cell.childCount > 0) { Destroy(cell.GetChild(cell.childCount - 1).gameObject); } if (origin != null && stack != null && stack.MainProperties != null) { go = Instantiate(origin, cell); Image img = go.GetComponent <Image>(); img.sprite = stack.MainProperties.Value.Icon; if (stack.MainProperties.Value.Currency == DSPlayerScore.Currency.GOLD) { img.color = new Color(1, 1, 0); } var drag = go.GetComponent <Drag>(); drag.CanDrag = canDrag; drag.Stack = stack; } var cellUI = cell.GetComponent <InventoryCellUI>(); if (cellUI != null) { cellUI.Present(); } return(go); }
public override bool RemoveFromThisInventory(AStack aStack) { EquipmentStack stack = aStack as EquipmentStack; var stats = stack.EquipmentStats; //очищаем инвентарь if (stats.Type == EquipmentStats.TypeOfEquipment.HEAD) { Squad.playerSquadInstance.Inventory.Helmet = null; } else if (stats.Type == EquipmentStats.TypeOfEquipment.SHIELD) { Squad.playerSquadInstance.Inventory.Shield = null; } else if (stats.Type == EquipmentStats.TypeOfEquipment.BODY) { Squad.playerSquadInstance.Inventory.Body = null; } else if (stats.Type == EquipmentStats.TypeOfEquipment.WEAPON) { throw new Exception("Нельзя выбрасывать оружие вручную"); } return(true); }
public override bool CanGetFromThisIventory(AStack aStack, AStack stackForReplacement) { EquipmentStack stack = aStack as EquipmentStack; float summ = stack.EquipmentStats.Cost * stack.Count; EquipmentStack stackForReplace; if (stackForReplacement != null) { stackForReplace = stackForReplacement as EquipmentStack; if (!stackForReplace.EquipmentStats.Empty && stack.EquipmentMainProperties.Currency == stackForReplace.EquipmentMainProperties.Currency) { summ -= stackForReplace.EquipmentStats.Cost * stackForReplace.Count; } if (summ < 0) { summ = 0; } } if (GameManager.Instance.SavablePlayerData.PlayerProgress.Score.EnoughtMoney(summ, stack.EquipmentMainProperties.Currency)) { return(true); } else { Toast.Instance.Show(GameManager.Instance.SavablePlayerData.PlayerProgress.Score.NotEoughtMoveyWarningString(stack.EquipmentMainProperties.Currency)); return(false); } }
public override bool CanGetFromThisIventory(AStack stack, AStack stackForReplacement) { bool res = false; var st = stack as ConsumableStack; if (st != null) { res = true; var score = GameManager.Instance.SavablePlayerData.PlayerProgress.Score; if (st.ConsumableStats is ISkillCostable) { int cost = (st.ConsumableStats as ISkillCostable).Cost; if (st.ConsumableStats is IStackCountConstraintable && st.Count != (st.ConsumableStats as IStackCountConstraintable).MaxCount && st.Consumable.MainPropertie.Currency != DSPlayerScore.Currency.GOLD) { cost = 0; } if (!score.EnoughtMoney(cost, st.Consumable.MainPropertie.Currency)) { res = false; Toast.Instance.Show(score.NotEoughtMoveyWarningString(st.Consumable.MainPropertie.Currency)); } } } return(res); }
private AStack <int> InitStack() { AStack <int> stack = new AStack <int>(); stack.Push(1); stack.Push(2); return(stack); }
public override bool RemoveFromThisInventory(AStack stack) { if (MarketConsumablesUI.Instance != null) { MarketConsumablesUI.Instance.RemoveFtomInventory(stack as ConsumableStack); } return(true); }
public override bool RemoveFromThisInventory(AStack aStack) { EquipmentStack stack = aStack as EquipmentStack; EnvirinmantInventoryUI.Instance.PickUpEquipment(stack); return(true); }
public void Should_Push_Two_Items_And_Pop_One_Off_Stack_Test() { int expectedValue = 1; AStack <int> stack = InitStack(); int result = stack.Pop(); Assert.AreEqual(stack.Peek(), expectedValue); Assert.AreEqual(stack.Count, expectedValue); }
/// <summary> /// A non-recursive method using a stack to remove recursion /// Will be called by GetEnumerator /// </summary> /// <remarks> /// This method took me a while to get my head around it. /// Stepping through the code with the debugger helped make it click. /// </remarks> /// <returns>An IEnumerator<T></returns> private IEnumerator <T> InOrderTraversal() { if (_head != null) { // Used to store nodes we skip AStack <BinaryTreeNode <T> > stack = new AStack <BinaryTreeNode <T> >(); BinaryTreeNode <T> current = _head; // When not using recursion, we need to keep track of whether we // should be processing left or right nodes bool goLeftNext = true; // Push the current node on the stack stack.Push(current); while (stack.Count > 0) { // If heading left if (goLeftNext) { // Push all but the left-most node on the stack // yield the left-most after this block while (current.Left != null) { stack.Push(current); current = current.Left; } } // InOrder is left->yield->right yield return(current.Value); // If we can go right, do it if (current.Right != null) { current = current.Right; // Once we've gone right once, start going left again goLeftNext = true; } else { // If can't go right, pop off parent node // so it can be processed and then go to its right side current = stack.Pop(); goLeftNext = false; } } } }
public override bool AddToThisInventory(AStack aStack) { EquipmentStack stack = aStack as EquipmentStack; if (stack.Count == 0) { return(false); } //возможно, надо переписать так, чтобы дропал этот скрипт, а не скрипт отряда Squad.playerSquadInstance.DropEquipment(stack); return(true); }
public override GameObject SetImage(GameObject origin, Transform cell, AStack stack, bool canDrag) { var go = base.SetImage(origin, cell, stack, canDrag); if (go != null) { var drag = go.GetComponent <DragEquipment>(); drag.showNewEquipment = true; drag.Stack = stack;//нужно чтобы инициализировать значек показывающий новую экипировку drag.Present(); } return(go); }
public override GameObject SetImage(GameObject origin, Transform cell, AStack stack, bool canDrag) { var go = base.SetImage(origin, cell, stack, canDrag); if (go != null) { var st = stack as ConsumableStack; var drag = go.GetComponent <DragConsumable>(); if (st.Consumable != null) { var image = go.GetComponent <Image>(); if (st.ConsumableStats is IStackCountConstraintable && st.Count != (st.ConsumableStats as IStackCountConstraintable).MaxCount && st.Consumable.MainPropertie.Currency != DSPlayerScore.Currency.GOLD) { image.color = new Color(1, 0.8f, 0.8f); } drag.ConsumableStack = new ConsumableStack(); drag.ConsumableStack.Consumable = st.Consumable; drag.ConsumableStack.ConsumableStats = st.ConsumableStats; drag.ConsumableStack.Count = st.Count; var text = go.transform.GetChild(0).GetComponent <TextMeshProUGUI>(); text.text = string.Empty; if (st.ConsumableStats is IStackCountConstraintable) { if (st.Count > 0) { text.text = st.Count.ToString(StringFormats.intNumber); } else { if (st == Squad.playerSquadInstance.Inventory.FirstConsumable) { Squad.playerSquadInstance.Inventory.FirstConsumable.Consumable = null; } else if (st == Squad.playerSquadInstance.Inventory.SecondConsumable) { Squad.playerSquadInstance.Inventory.SecondConsumable.Consumable = null; } SetImage(origin, cell, stack, canDrag); } } } } return(go); }
public Computer(AStack st) { sttemp = st; AddToken add = new AddToken(sttemp, stoutput); SubtractionToken substraction = new SubtractionToken(sttemp, stoutput); MultipToken mutiptoken = new MultipToken(sttemp, stoutput); DivisionToken division = new DivisionToken(sttemp, stoutput); ModToken mod = new ModToken(sttemp, stoutput); add.Next = substraction; substraction.Next = mutiptoken; mutiptoken.Next = division; division.Next = mod; tk = add; }
public override GameObject SetImage(GameObject origin, Transform cell, AStack stack, bool canDrag) { var go = base.SetImage(origin, cell, stack, canDrag); if (go != null) { var st = stack as EquipmentStack; var drag = go.GetComponent <DragEquipment>(); var txt = go.transform.GetChild(0).GetComponent <TextMeshProUGUI>(); //drag.EquipStack = st; txt.text = drag.EquipStack.Count.ToString(); } return(go); }
public override bool RemoveFromThisInventory(AStack aStack) { EquipmentStack stack = aStack as EquipmentStack; float summ = stack.EquipmentStats.Cost * stack.Count; summ = (float)Math.Truncate(summ); GameManager.Instance.SavablePlayerData.PlayerProgress.Score.SpendMoney(summ, stack.EquipmentMainProperties.Currency); // а тут уже удаляем MarketInventoryUI.Instance.RemoveFtomInventory(stack); return(true); }
public override bool RemoveFromThisInventory(AStack aStack) { SkillStack stack = aStack as SkillStack; switch (skillNum) { case SkillNum.FIRS: Squad.playerSquadInstance.Inventory.FirstSkill.Skill = null; break; case SkillNum.SECOND: Squad.playerSquadInstance.Inventory.SecondSkill.Skill = null; break; } return(true); }
public override bool AddToThisInventory(AStack stack) { bool res = false; if (MarketConsumablesUI.Instance != null) { if (!MarketConsumablesUI.Instance.Fill) { MarketConsumablesUI.Instance.AddToInventory(stack as ConsumableStack); res = true; } } //if(res) // PlayUiEffectForMoney(); return(res); }
public override GameObject SetImage(GameObject origin, Transform cell, AStack stack, bool canDrag) { var go = base.SetImage(origin, cell, stack, canDrag); if (go != null) { var st = stack as SkillStack; var drag = go.GetComponent <DragSkill>(); if (st.Skill != null) { drag.SkillStack = new SkillStack(); drag.SkillStack.Skill = st.Skill; drag.SkillStack.SkillStats = st.SkillStats; } } return(go); }
public override bool AddToThisInventory(AStack aStack) { var stack = aStack as ConsumableStack; switch (consumableCellNum) { case SkillNum.FIRS: Squad.playerSquadInstance.Inventory.FirstConsumable.Consumable = stack.Consumable; Squad.playerSquadInstance.Inventory.FirstConsumable.ConsumableStats = stack.ConsumableStats; Squad.playerSquadInstance.Inventory.FirstConsumable.Count = stack.Count; break; case SkillNum.SECOND: Squad.playerSquadInstance.Inventory.SecondConsumable.Consumable = stack.Consumable; Squad.playerSquadInstance.Inventory.SecondConsumable.ConsumableStats = stack.ConsumableStats; Squad.playerSquadInstance.Inventory.SecondConsumable.Count = stack.Count; break; } var score = GameManager.Instance.SavablePlayerData.PlayerProgress.Score; int cost = -1; //проверяем стоит ли оно денег if (stack.ConsumableStats is ISkillCostable) { cost = (stack.ConsumableStats as ISkillCostable).Cost; } //если оно уже ипользовано, то бесплатно добавляем (но ток если это не голдовый расходник) if (stack.ConsumableStats is IStackCountConstraintable && stack.Count != (stack.ConsumableStats as IStackCountConstraintable).MaxCount && stack.Consumable.MainPropertie.Currency != DSPlayerScore.Currency.GOLD) { cost = 0; } if (cost > 0) { score.SpendMoney(cost, stack.Consumable.MainPropertie.Currency); } PlayUiEffectForEquipmant(); return(true); }
public override bool AddToThisInventory(AStack aStack) { EquipmentStack stack = aStack as EquipmentStack; var stats = stack.EquipmentStats; if (stats.Type == EquipmentStats.TypeOfEquipment.HEAD) { Squad.playerSquadInstance.Inventory.Helmet = stack; } else if (stats.Type == EquipmentStats.TypeOfEquipment.SHIELD) { if (Squad.playerSquadInstance.Inventory.Weapon.EquipmentStats.CanUseWithShield) { Squad.playerSquadInstance.Inventory.Shield = stack; } else { Toast.Instance.Show(LocalizedStrings.toast_cant_use_with_current_weapon); return(false); } } else if (stats.Type == EquipmentStats.TypeOfEquipment.BODY) { Squad.playerSquadInstance.Inventory.Body = stack; } else if (stats.Type == EquipmentStats.TypeOfEquipment.WEAPON) { if (stats.CanUseWithShield || Squad.playerSquadInstance.Inventory.Shield.EquipmentStats.Empty) { Squad.playerSquadInstance.Inventory.Weapon = stack; } else { Toast.Instance.Show(LocalizedStrings.toast_cant_use_with_shield); return(false); } } PlayUiEffectForEquipmant(); return(true); }
public override bool AddToThisInventory(AStack aStack) { EquipmentStack stack = aStack as EquipmentStack; if (MarketInventoryUI.Instance.Fill) { return(false); } float summ = stack.EquipmentStats.Cost * stack.Count; summ = (float)Math.Truncate(summ); GameManager.Instance.SavablePlayerData.PlayerProgress.Score.EarnMoney(summ, stack.EquipmentMainProperties.Currency); // а тут уже добавояем MarketInventoryUI.Instance.AddToInventory(stack); //PlayUiEffectForMoney(); return(true); }
public override GameObject SetImage(GameObject origin, Transform cell, AStack stack, bool canDrag) { var go = base.SetImage(origin, cell, stack, canDrag); if (go != null) { var st = stack as ConsumableStack; var drag = go.GetComponent <DragConsumable>(); var txt = go.transform.GetChild(0).GetComponent <TextMeshProUGUI>(); var img = go.GetComponent <Image>(); drag.ConsumableStack = new ConsumableStack(st.Consumable, st.ConsumableStats, st.Count); txt.text = st.Count.ToString(StringFormats.intNumber); if (st.ConsumableStats is IStackCountConstraintable && st.Count != (st.ConsumableStats as IStackCountConstraintable).MaxCount && st.Consumable.MainPropertie.Currency != DSPlayerScore.Currency.GOLD) { img.color = new Color(1, 0.8f, 0.8f); } } return(go); }
public override bool RemoveFromThisInventory(AStack aStack) { var stack = aStack as ConsumableStack; switch (consumableCellNum) { case SkillNum.FIRS: Squad.playerSquadInstance.Inventory.FirstConsumable = null; break; case SkillNum.SECOND: Squad.playerSquadInstance.Inventory.SecondConsumable = null; break; } //если уже использовал, то за продажу денег не дадут!!! но если это за голду, то дадут :) if (stack.ConsumableStats is ISkillCostable) { bool t = true; if (stack.ConsumableStats is IStackCountConstraintable) { if ((stack.ConsumableStats as IStackCountConstraintable).MaxCount != stack.Count && stack.Consumable.MainPropertie.Currency != DSPlayerScore.Currency.GOLD) { t = false; } } if (t) { int cost = (stack.ConsumableStats as ISkillCostable).Cost; var score = GameManager.Instance.SavablePlayerData.PlayerProgress.Score; score.EarnMoney(cost, stack.Consumable.MainPropertie.Currency); } } return(true); }
public override bool AddToThisInventory(AStack aStack) { EquipmentStack stack = aStack as EquipmentStack; if (stack.Count == 0) { return(false); } //если был пустой, то заносим этот стак if (Squad.playerSquadInstance.Inventory[CellIndex] == null) { Squad.playerSquadInstance.Inventory[CellIndex] = new EquipmentStack(stack.EquipmentMainProperties, stack.EquipmentStats, stack.Count); } //если был НЕ пустой, то прибавлем else { Squad.playerSquadInstance.Inventory[CellIndex].PushItems(stack); } PlayUiEffectForEquipmant(); return(true); }
public CompToken(AStack st, AStack stout) : base(st, stout) { }
public NumberToken(AStack st, AStack stout) : base(st, stout) { }
public void MyStackTest() { this.intStack = new MyStack <int>(); Assert.IsTrue(intStack is MyStack <int>); Assert.IsTrue(intStack.IsEmpty()); }
public void SetupTest() { // Create a test Stack instance as the generic class MyStack that inherits from the abstract class this.intStack = new MyStack <int>(); }
public ModToken(AStack st, AStack stout) : base(st, stout) { token = "%"; }
public DivisionToken(AStack st, AStack stout) : base(st, stout) { token = "/"; }
public override bool CanGetFromThisIventory(AStack aStack, AStack stackForReplacement) { //var stack = aStack as ConsumableStack; return(true); }
public override bool CanGetFromThisIventory(AStack aStack, AStack stackForReplacement) { return(true); }
public MultipToken(AStack st, AStack stout) : base(st, stout) { token = "*"; }
public SubtractionToken(AStack st, AStack stout) : base(st, stout) { token = "-"; }
public AddToken(AStack st, AStack stout) : base(st, stout) { token = "+"; }
public OperatorToken(AStack st, AStack stout, MyOperatoer op) : base(st, stout) { this.ope = op; }
public TreatToken(AStack st, AStack stout) { this.st = st; this.stOutput = stout; }