public UnitItem Create(string aUnitFileName)
        {
            UnitItem vResult = new UnitItem();
            vResult.Name = Path.GetFileNameWithoutExtension(aUnitFileName);

            return vResult;
        }
        protected override bool ProcessUnit(UnitList aUnits, UnitItem aUnit)
        {
            int vUnitIdx = aUnits.IndexOf(aUnit.Name);
            UnitItem iToFix = aUnits[vUnitIdx];
            iToFix.UsePath = aUnit.UsePath;
            iToFix.Path = aUnit.Path;

            return true;
        }
        protected override bool ProcessUnit(UnitList aUnits, UnitItem aUnit)
        {
            int vUnitIdx = aUnits.IndexOf(aUnit.Name);
            if (aUnits[vUnitIdx].Form == aUnit.Form)
                return false;

            UnitItem vToFix = aUnits[vUnitIdx];
            vToFix.Form = aUnit.Form;

            return true;
        }
        /// <summary>
        /// Creates new UnitItem object and fills it will all required information that can be used in a project file. Requires valid RelativePath builder and UnitFormFinder.
        /// It finds corresponding form for the unit automatically. Path is always set relatively to the BasePath.
        /// </summary>
        /// <param name="aUnitFileName"></param>
        /// <returns></returns>
        public UnitItem Create(string aUnitFileName)
        {
            UnitItem vResult = new UnitItem();
            vResult.Name = Path.GetFileNameWithoutExtension(aUnitFileName);
            vResult.UsePath = UsePaths;
            if (!aUnitFileName.Equals(""))
                vResult.Path = Path.GetDirectoryName(aUnitFileName);
            vResult.Path = RelativePath.GetRelativeFileName(BasePath, vResult.Path);
            vResult.Form = UnitFormReader.GetUnitForm(aUnitFileName);

            return vResult;
        }
        protected override bool ProcessUnit(UnitList aUnits, UnitItem aUnit)
        {
            int vUnitIdx = aUnits.IndexOf(aUnit.Name);
            UnitItem vToDelete = aUnits[vUnitIdx];
            if (vToDelete.HasStartingConditions && !vToDelete.HasEndingConditions && vUnitIdx < aUnits.Count - 1)
                aUnits[vUnitIdx + 1].StartingConditions = vToDelete.StartingConditions;
            else
                if (vToDelete.HasEndingConditions && !vToDelete.HasStartingConditions && vUnitIdx > 0)
                    aUnits[vUnitIdx - 1].EndingConditions = vToDelete.EndingConditions;

            aUnits.RemoveAt(vUnitIdx);
            return true;
        }
 protected void DoTestHasForm(UnitItem iUnitItem, string iExpectedFormName, bool iExpectedHasForm)
 {
     Assert.AreEqual(iExpectedHasForm, iUnitItem.HasForm, "HasForm value is wrong. " + iUnitItem.Name);
     Assert.AreEqual(iExpectedFormName, iUnitItem.Form, "Form value is wrong. " + iUnitItem.Name);
 }
 protected void DoTestPathChange(UnitItem iUnitItem, string iInitialPath, string iNewPath, string iMessage)
 {
     Assert.AreEqual(iInitialPath, iUnitItem.Path, "Path wasn't set properly. " + iMessage);
     iUnitItem.Path = iNewPath;
     Assert.AreEqual(iNewPath, iUnitItem.Path, "Path wasn't changed correctly. " + iMessage);
 }
 protected void DoTestNameChange(UnitItem iUnitItem, string iInitialName, string iNewName)
 {
     Assert.AreEqual(iInitialName, iUnitItem.Name, "Name wasn't set properly.");
     iUnitItem.Name = iNewName;
     Assert.AreEqual(iNewName, iUnitItem.Name, "Name wasn't changed correctly.");
 }
 protected virtual bool CanProcessUnit(UnitItem aUnit)
 {
     return (aUnit.Name != "" && State.Units.Contains(aUnit.Name));
 }
Ejemplo n.º 10
0
 public override bool Visit(UnitItem node)
 {
     Visit((Node)node);
     return(true);
 }
Ejemplo n.º 11
0
        internal override void Process()
        {
            Player Player = this.Device.GameMode.Level.Player;

            if (Player.InAlliance)
            {
                Alliance    Alliance = Player.Alliance;
                StreamEntry Stream   = Alliance.Streams.Get(this.StreamId);

                if (Stream != null)
                {
                    if (Stream is DonateStreamEntry)
                    {
                        DonateStreamEntry DonationStream = (DonateStreamEntry)Stream;
                        Player            Target         = Resources.Accounts.LoadAccount(Stream.SenderHighId, Stream.SenderLowId)?.Player;
                        if (Target != null)
                        {
                            if (Target.InAlliance)
                            {
                                if (Target.AllianceId == Player.AllianceId)
                                {
                                    if (this.UnitType == 1)
                                    {
                                        if (this.Unit is SpellData)
                                        {
                                            SpellData SpellData = (SpellData)this.Unit;
                                            if (DonationStream.MaxSpell >= DonationStream.UsedSpell + SpellData.HousingSpace)
                                            {
                                                if (this.UseDiamonds)
                                                {
                                                    int Cost = SpellData.DonateCost;
                                                    if (Player.HasEnoughDiamonds(Cost))
                                                    {
                                                        Player.UseDiamonds(Cost);
                                                    }
                                                    else
                                                    {
                                                        Logging.Error(this.GetType(), "Unable to donate unit. The player use diamonds to donate but doesn't have enough diamonds!");
                                                        return;
                                                    }
                                                }

                                                int      UnitLevel = Player.GetUnitUpgradeLevel(SpellData);
                                                UnitItem Unit      = new UnitItem(SpellData.GlobalId, 1, UnitLevel);

                                                DonationStream.New = false;

                                                Target.AllianceUnits.Add(Unit);
                                                Unit.DonatorId = Player.UserId;
                                                DonationStream.Units.Add(Unit, Player.UserId);

                                                int HousingSpace = SpellData.HousingSpace;
                                                DonationStream.UsedSpell       += HousingSpace;
                                                Target.CastleUsedSpellCapacity += HousingSpace;

                                                Player.Donation         += HousingSpace;
                                                Target.DonationReceived += HousingSpace;
                                                Player.AddExperience(HousingSpace);

                                                this.Device.GameMode.CommandManager.AddCommand(new Donate_Unit_Callback(this.Device)
                                                {
                                                    StreamId = this.StreamId, UnitType = this.UnitType, UnitId = SpellData.GlobalId, UseDiamonds = this.UseDiamonds
                                                });

                                                if (Target.Connected)
                                                {
                                                    Target.Level.GameMode.CommandManager.AddCommand(new Alliance_Unit_Received(Target.Level.GameMode.Device)
                                                    {
                                                        Donator = Player.Name, UnitType = this.UnitType, UnitId = SpellData.GlobalId, Level = UnitLevel
                                                    });
                                                }

                                                Alliance.Streams.Update(Stream);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (this.Unit is CharacterData)
                                        {
                                            CharacterData CharacterData = (CharacterData)this.Unit;
                                            if (DonationStream.MaxTroop >= DonationStream.UsedTroop + CharacterData.HousingSpace)
                                            {
                                                if (this.UseDiamonds)
                                                {
                                                    int Cost = CharacterData.DonateCost;
                                                    if (Player.HasEnoughDiamonds(Cost))
                                                    {
                                                        Player.UseDiamonds(Cost);
                                                    }
                                                    else
                                                    {
                                                        Logging.Error(this.GetType(), "Unable to donate unit. The player use diamonds to donate but doesn't have enough diamonds!");
                                                        return;
                                                    }
                                                }

                                                int      UnitLevel = Player.GetUnitUpgradeLevel(CharacterData);
                                                UnitItem Unit      = new UnitItem(CharacterData.GlobalId, 1, UnitLevel);

                                                DonationStream.New = false;

                                                Target.AllianceUnits.Add(Unit);
                                                Unit.DonatorId = Player.UserId;
                                                DonationStream.Units.Add(Unit, Player.UserId);

                                                int HousingSpace = CharacterData.HousingSpace;
                                                DonationStream.UsedTroop  += HousingSpace;
                                                Target.CastleUsedCapacity += HousingSpace;

                                                Player.Donation         += HousingSpace;
                                                Target.DonationReceived += HousingSpace;
                                                Player.AddExperience(HousingSpace);

                                                this.Device.GameMode.CommandManager.AddCommand(new Donate_Unit_Callback(this.Device)
                                                {
                                                    StreamId = this.StreamId, UnitType = this.UnitType, UnitId = CharacterData.GlobalId, UseDiamonds = this.UseDiamonds
                                                });

                                                if (Target.Connected)
                                                {
                                                    Target.Level.GameMode.CommandManager.AddCommand(new Alliance_Unit_Received(Target.Level.GameMode.Device)
                                                    {
                                                        Donator = Player.Name, UnitType = this.UnitType, UnitId = CharacterData.GlobalId, Level = UnitLevel
                                                    });
                                                }

                                                Alliance.Streams.Update(Stream);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 12
0
 private void DistroyUnitItem(UnitItem item)
 {
     GameObject.Destroy(item.gameObject); item = null;
 }
Ejemplo n.º 13
0
 public UpdateModel(UnitItem item)
 {
     Success = true;
     Item    = item;
 }
Ejemplo n.º 14
0
 public OrderActivated(int orderId, int byMemberId, UnitItem affectedUnitItem = null)
 {
     OrderId          = orderId;
     ByMemberId       = byMemberId;
     AffectedUnitItem = affectedUnitItem;
 }
Ejemplo n.º 15
0
 protected virtual bool CanProcessUnit(UnitItem aUnit)
 {
     return(aUnit.Name != "" && State.Units.Contains(aUnit.Name));
 }
Ejemplo n.º 16
0
 public UpdateModel(UnitItem item, OrderStatusId newStatus)
 {
     Success   = true;
     UnitItem  = item;
     NewStatus = newStatus;
 }
Ejemplo n.º 17
0
 public OrderCompleted(int orderId, int memberId, UnitItem affectedUnitItem)
 {
     OrderId          = orderId;
     MemberId         = memberId;
     AffectedUnitItem = affectedUnitItem;
 }
Ejemplo n.º 18
0
 public virtual T Visit(UnitItem node)
 {
     return(Visit((Node)node));
 }
 protected abstract bool ProcessUnit(UnitList aUnits, UnitItem aUnit);
 protected override bool CanProcessUnit(UnitItem aUnit)
 {
     return (aUnit.Name != "") && !State.Units.Contains(aUnit.Name);
 }
 protected override bool ProcessUnit(UnitList aUnits, UnitItem aUnit)
 {
     aUnits.Add(aUnit);
     return true;
 }
Ejemplo n.º 22
0
 public DeviceDoor() : base()
 {
     this.unitItem = new UnitItem(DataAccRes.AppSettings("WorkConfig"), "门禁监控");
     this.query    = new QueryDataRes(this.unitItem.DataSrcFile);
 }
Ejemplo n.º 23
0
        protected void DoTestContains_NotExisting(UnitList iList, string iUnitPrefix, int iUnitIdx)
        {
            UnitItem vNotExisting = CreateItem(iUnitPrefix, iUnitIdx, true);

            Assert.IsFalse(iList.Contains(vNotExisting.Name), "Wrong Contains result. Item shouldn't be on the list: " + vNotExisting.Name);
        }
Ejemplo n.º 24
0
    public void SetItemValues()
    {
        #region Planet Items Set

        for (int i = 0; i < Celestials.Count; i++)
        {
            if (Celestials[i].GetComponent <ResourceObject>() == null)
            {
                PlanetItem planetItem = new PlanetItem();

                planetItem.celestialName = Celestials[i].name;
                planetItem.posX          = Celestials[i].transform.position.x;
                planetItem.posY          = Celestials[i].transform.position.y;
                planetItem.posZ          = Celestials[i].transform.position.z;
                planetItem.systemName    = Celestials[i].transform.parent.parent.name;

                itemDB.planets.Add(planetItem);
            }
        }
        #endregion

        #region Asteriod Items Set
        for (int i = 0; i < Celestials.Count; i++)
        {
            if (Celestials[i].GetComponent <ResourceObject>() != null)
            {
                AsteriodItem asteroidItem = new AsteriodItem();

                asteroidItem.celestialName = Celestials[i].name;
                asteroidItem.posX          = Celestials[i].transform.position.x;
                asteroidItem.posY          = Celestials[i].transform.position.y;
                asteroidItem.posZ          = Celestials[i].transform.position.z;
                asteroidItem.systemName    = Celestials[i].transform.parent.parent.name;

                itemDB.asteriods.Add(asteroidItem);
            }
        }
        #endregion

        #region  Systems Items Set
        for (int i = 0; i < SystemPrefabs.Count; i++)
        {
            SystemItem systemItem = new SystemItem();
            systemItem.systemName = SystemPrefabs[i].name;
            for (int j = 0; j < SystemPrefabs[i].transform.Find("Planets").childCount; j++) //Naprendszer bolygóelemek nevei
            {
                systemItem.celestials.Add(SystemPrefabs[i].transform.Find("Planets").GetChild(j).name);
            }

            itemDB.systems.Add(systemItem);
        }
        #endregion

        #region Galaxy Stars Items Set
        for (int i = 0; i < GalaxyStarPrefabs.Count; i++)
        {
            StarItem starItem = new StarItem();

            starItem.starName = GalaxyStarPrefabs[i].name;
            starItem.posX     = GalaxyStarPrefabs[i].transform.position.x;
            starItem.posY     = GalaxyStarPrefabs[i].transform.position.y;
            starItem.posZ     = GalaxyStarPrefabs[i].transform.position.z;

            itemDB.stars.Add(starItem);
        }
        #endregion

        #region Unit Items Set

        for (int i = 0; i < Units.Count; i++)
        {
            UnitItem unit = new UnitItem();

            unit.unitName = Units[i].name;
            unit.posX     = Units[i].transform.position.x;
            unit.posY     = Units[i].transform.position.y;
            unit.posZ     = Units[i].transform.position.z;
            unit.starName = Units[i].transform.parent.parent.name;

            itemDB.units.Add(unit);
        }

        #endregion
    }
        public void ToString_WithoutPath()
        {
            UnitItem vUnit = new UnitItem("unit_name");

            Assert.AreEqual("unit_name", vUnit.ToString("", "", false));
        }
        protected void DoTestNameChange(string iInitialName, string iNewName)
        {
            UnitItem vUnit = new UnitItem(iInitialName);

            DoTestNameChange(vUnit, iInitialName, iNewName);
        }
 private void ValidateUnits(UnitItem myUnit)
 {
     // BUGBUG write this code
 }
Ejemplo n.º 28
0
 protected abstract bool ProcessUnit(UnitList aUnits, UnitItem aUnit);