Пример #1
0
        public IUnitData CreateUnit(IUnitAdd impact)
        {
            var unit = Factory.CreateUnit(impact.Id, impact.Shards, impact.Stars, impact.Exp, impact.Level, impact.EquipmentRarity, impact.FamiliarUnlock);

            unit.ExplorerPosition = impact.SlotExplorer;
            foreach (var temp in impact.Equipment ?? new Dictionary <int, int>())
            {
                unit.Equipment[temp.Key] = temp.Value;
            }
            foreach (var temp in impact.PerkCharges ?? new Dictionary <int, int>())
            {
                unit.PerkCharges[temp.Key] = temp.Value;
            }

            var allPerks = Static.Perks.Where(x => x.Value.UnitId == impact.Id);

            foreach (var temp in allPerks)
            {
                unit.PerkStars[temp.Key] = 1;
            }
            var allAbilities = Static.Abilities.Where(x => x.Value.Params.UnitId == impact.Id);

            foreach (var temp in allAbilities)
            {
                unit.Abilities[temp.Key] = 1;
            }
            return(unit);
        }
Пример #2
0
        public bool AddUnit(IUnitAdd impact)
        {
            var unit = CreateUnit(impact);

            if (State.Units.FirstOrDefault(x => x.ExplorerPosition == impact.SlotExplorer) != null)
            {
                unit.ExplorerPosition = -1;
            }

            var oldUnit = State.Units.FirstOrDefault(x => x.Id == impact.Id);

            if (oldUnit != null)
            {
                if (oldUnit.Stars > 0)
                {
                    return(false);
                }
                unit.Shards += oldUnit.Shards;
                State.Units.Remove(oldUnit);
            }
            State.Units.Add(unit);
            return(true);
        }