Пример #1
0
 public void RefreshCounter()
 {
     if (UnitCounter != null)
     {
         UnitCounter.RefreshUnitCounter();
     }
 }
Пример #2
0
    public bool EndOfTurn(bool isActive)
    {
        if (CheckEtherealEndOfTurn())
        {
            return(true);
        }

        if (isActive)
        {
            RemoveEnchantmentsOfStatus(new List <UnitEnchantment.EnchantmentStatus>()
            {
                UnitEnchantment.EnchantmentStatus.EndOfOwnersTurn, UnitEnchantment.EnchantmentStatus.AfterAttack
            });
        }
        else
        {
            RemoveEnchantmentsOfStatus(new List <UnitEnchantment.EnchantmentStatus>()
            {
                UnitEnchantment.EnchantmentStatus.EndOfOpponentTurn, UnitEnchantment.EnchantmentStatus.AfterAttack
            });
        }

        UnitCounter.RefreshUnitCounter();

        if (IsHero && ((Hero)this).ActiveMagisFury.HasValue && !((Hero)this).ActiveMagisFury.Value)
        {
            RemoveUnit(true);
        }

        return(false);
    }
Пример #3
0
    private void Start()
    {
        occupantCounter = null;

        tileStatusCanvas.worldCamera = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <Camera>();
        ClearTileStatuses();
    }
Пример #4
0
        private Border CreateUnit(Unit unit)
        {
            UnitCounter counter = new UnitCounter();

            //counter.lbl_unit_type.Content = unit.Symbol;
            counter.img_unit_size.Source    = unit.Symbol;
            counter.img_unit_counter.Source = Images.IconQuestionmark;
            if (unit.Color != null)
            {
                counter.border_unit.Background = ColorHandler.ColorFromRGB(unit.Color);
            }

            counter.img_unit_counter.Source = unit.IconCounter;

            string tt = unit.Name + "\n";

            if (unit.Owner != null)
            {
                tt += "Besitzer von " + unit.Owner.Name + "\n";
            }
            if (unit.Commander != null)
            {
                tt += "Unter kontrolle von " + unit.Commander.Name;
            }
            counter.border_unit.ToolTip = tt;

            Border border = (Border)SubWindow.CopyFrom(counter.border_unit);

            unit.BorderParent = border;
            border.Tag        = unit;
            border.MouseUp   += UnitCounterClick;
            return(border);
        }
Пример #5
0
    public void AddSummon(UnitCounter summonCounter)
    {
        DeployedSummonUnits.Add(summonCounter);

        if (CurrentSummons > SummonCapcity)
        {
            Debug.Log(DeployedSummonUnits.Count);
            GameManager.instance.effectManager.DestroyUnit(DeployedSummonUnits.FirstOrDefault().Unit);
            Debug.Log(DeployedSummonUnits.Count);
        }
    }
Пример #6
0
    public void RemoveUnitCounter(UnitCounter unitCounter)
    {
        DestroyUnitCounter(unitCounter);
        unitCounter.Owner.DeployedUnits.Remove(unitCounter);

        if (unitCounter.Unit == SelectedUnit &&
            ActiveEffect != ActiveEffectTypes.UnitMove &&
            ActiveEffect != ActiveEffectTypes.UnitForceMove &&
            ActiveEffect != ActiveEffectTypes.UnitUseSpeed &&
            ActiveEffect != ActiveEffectTypes.UnitDisengage &&
            ActiveEffect != ActiveEffectTypes.UnitUseDisengageSpeed)
        {
            SelectedUnit = null;
            GameManager.instance.uiManager.RefreshUI();
        }
    }
Пример #7
0
    public bool CheckWarden()
    {
        if (CurrentStatusEffects.Contains(StatusEffects.Warded))
        {
            CurrentStatusEffects.Remove(StatusEffects.Warded);
            UnitCounter.RefreshUnitCounter();
        }

        if (!HasKeyword(Keywords.Stalker) && !UnitCounter.Cell.IsSurveyed(Owner.Id))
        {
            foreach (var adjCell in UnitCounter.Cell.adjCell)
            {
                if (adjCell.occupantCounter != null)
                {
                    var adjUnit = adjCell.occupantCounter.Unit;
                    if (adjUnit.Owner.Id != Owner.Id)
                    {
                        if (adjUnit.HasKeyword(Keywords.Warden))
                        {
                            if (!adjUnit.HasStatusEffect(StatusEffects.Stunned))
                            {
                                if (CheckWardenMatchingKeywords(adjUnit, Keywords.Ethereal) && CheckWardenMatchingKeywords(adjUnit, Keywords.Flying))
                                {
                                    CurrentStatusEffects.Add(StatusEffects.Warded);
                                    RefreshCounter();
                                    return(true);
                                }
                            }
                        }
                    }
                }
            }
        }

        return(false);
    }
Пример #8
0
 private void DestroyUnitCounter(UnitCounter unitCounter)
 {
     Destroy(unitCounter.gameObject);
     unitCounter.Cell.occupantCounter = null;
     unitCounter.Unit.UnitCounter     = null;
 }
Пример #9
0
 public void RemoveSummon(UnitCounter summonCounter)
 {
     DeployedSummonUnits.Remove(summonCounter);
 }