Example #1
0
        public static void TakeOwnership(Unit unit)
        {
            ThreadManager.ExecuteOnMainThread(() =>
            {
                if (LocalCamera.GetParent() != null)
                {
                    LocalCamera.GetParent().RemoveChild(LocalCamera);   // wow godot very nice
                }
                if (!Vars.PersistentData.isMobile)
                {
                    unit.AddChild(LocalCamera);
                }
                else
                {
                    unit.AddChild(LocalCamera);
                }

                LocalUnit = unit;

                ThreadManager.ExecuteOnMainThread(() =>
                {
                    LocalCamera.GlobalPosition = unit.GlobalPosition;
                    LocalCamera.Offset         = Vector2.Zero;
                    LocalCamera.Position       = Vector2.Zero;
                });
            });
        }
    private void ShowEffect(Unit unit)
    {
        var floatingText = (FloatingText)_floatingTextPrefab.Instance();

        floatingText.Text  = _effectText;
        floatingText.Color = _effectTextColor;
        unit.AddChild(floatingText);
    }
Example #3
0
        private void BindUnit(IEnumerable <UnitRow> units, IEnumerable <SpecRow> specs, Unit parent, int?parentId)
        {
            var rows = units.Where(n => n.ParentId == parentId);

            foreach (var unitRow in rows)
            {
                Unit unit = new Unit(unitRow.Key, unitRow.Name);
                foreach (var specRow in specs.Where(n => n.Id == unitRow.Id))
                {
                    Specs.Specification spec = null;
                    switch (specRow.Type)
                    {
                    case Specs.SpecificationType.Boolean:
                        spec = new Specs.BooleanSpecification();
                        break;

                    case Specs.SpecificationType.Required:
                        spec = new Specs.RequiredSpecification();
                        break;

                    case Specs.SpecificationType.Composite:
                        spec = new Specs.CompositeSpecification(specRow.GetMin <int>(), specRow.GetMax <int>());
                        break;

                    case Specs.SpecificationType.Integer:
                        spec = new Specs.IntegerSpecification(specRow.GetMin <int>(), specRow.GetMax <int>());
                        break;

                    case Specs.SpecificationType.String:
                        spec = new Specs.StringSpecification(specRow.GetMin <int>(), specRow.GetMax <int>());
                        break;

                    case Specs.SpecificationType.DateTime:
                        spec = new Specs.DateTimeSpecification(specRow.GetMin <DateTime>(), specRow.GetMax <DateTime>());
                        break;

                    case Specs.SpecificationType.Decimal:
                        spec = new Specs.DecimalSpecification(specRow.GetMin <decimal>(), specRow.GetMax <decimal>());
                        break;

                    case Specs.SpecificationType.Lookup:
                        spec = new Specs.LookupSpecification(specRow.Options.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).ToList());
                        break;
                    }
                    unit.AddSpecification(spec);
                }
                parent.AddChild(unit);
                BindUnit(units, specs, unit, unitRow.Id);
            }
        }