コード例 #1
0
ファイル: CombatChecker.cs プロジェクト: terrynoya/xnamugen-1
        private void MakeSpark(Projectile projectile, Character target, int animationnumber, Vector2 sparklocation, bool playeranimation)
        {
            if (projectile == null)
            {
                throw new ArgumentNullException(nameof(projectile));
            }
            if (target == null)
            {
                throw new ArgumentNullException(nameof(target));
            }

            var data = new ExplodData();

            data.IsHitSpark      = true;
            data.CommonAnimation = playeranimation == false;
            data.PositionType    = PositionType.P1;
            data.AnimationNumber = animationnumber;
            data.SpritePriority  = projectile.DrawOrder + 1;
            data.RemoveTime      = -2;
            data.OwnPalFx        = false;
            data.Scale           = Vector2.One;
            data.Location        = sparklocation;
            data.Creator         = projectile.Creator;
            data.Offseter        = projectile;

            var explod = new Explod(projectile.Engine, data);

            if (explod.IsValid)
            {
                explod.Engine.Entities.Add(explod);
            }
        }
コード例 #2
0
        void MakeSpark(Character attacker, Character target, Int32 animationnumber, Vector2 sparklocation, Boolean playeranimation)
        {
            if (attacker == null)
            {
                throw new ArgumentNullException("attacker");
            }
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            ExplodData data = new ExplodData();

            data.IsHitSpark      = true;
            data.CommonAnimation = playeranimation == false;
            data.PositionType    = PositionType.P1;
            data.AnimationNumber = animationnumber;
            data.SpritePriority  = attacker.DrawOrder + 1;
            data.RemoveTime      = -2;
            data.OwnPalFx        = false;
            data.Scale           = Vector2.One;
            data.Location        = GetSparkLocation(attacker, target, sparklocation);
            data.Creator         = attacker;
            data.Offseter        = target;

            Explod explod = new Explod(attacker.Engine, data);

            if (explod.IsValid == true)
            {
                explod.Engine.Entities.Add(explod);
            }
        }
コード例 #3
0
        public void Add(Entity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }
            if (Contains(entity) == true)
            {
                throw new ArgumentException("Entity is already part of collection");
            }

            if (m_inupdate == false)
            {
                m_entities.Add(entity);
            }
            else
            {
                m_addlist.Add(entity);
            }

            if (entity is Helper)
            {
                Helper helper = (Helper)entity;

                List <Helper> helpers;
                if (helper.BasePlayer.Helpers.TryGetValue(helper.Data.HelperId, out helpers) == false)
                {
                    helpers = new List <Helper>();
                    helper.BasePlayer.Helpers.Add(helper.Data.HelperId, helpers);
                }

                helpers.Add(helper);
            }

            if (entity is Explod)
            {
                Explod explod = (Explod)entity;

                List <Explod> explods;
                if (explod.Creator.Explods.TryGetValue(explod.Data.Id, out explods) == false)
                {
                    explods = new List <Explod>();
                    explod.Creator.Explods.Add(explod.Data.Id, explods);
                }

                explods.Add(explod);
            }
        }
コード例 #4
0
        public void Remove(Entity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }
            if (Contains(entity) == false)
            {
                throw new ArgumentException("Entity is not part of collection");
            }
            if (m_removelist.Contains(entity) == true)
            {
                throw new ArgumentException("Entity is already set to be removed from collection");
            }

            if (m_inupdate == false)
            {
                m_entities.Remove(entity);
                m_addlist.Remove(entity);
            }
            else
            {
                m_removelist.Add(entity);
            }

            if (entity is Helper)
            {
                Helper helper = (Helper)entity;
                helper.BasePlayer.Helpers[helper.Data.HelperId].Remove(helper);
            }

            if (entity is Explod)
            {
                Explod explod = (Explod)entity;
                explod.Creator.Explods[explod.Data.Id].Remove(explod);
            }
        }
コード例 #5
0
ファイル: CombatChecker.cs プロジェクト: lodossDev/xnamugen
		void MakeSpark(Character attacker, Character target, Int32 animationnumber, Vector2 sparklocation, Boolean playeranimation)
		{
			if (attacker == null) throw new ArgumentNullException("attacker");
			if (target == null) throw new ArgumentNullException("target");

			ExplodData data = new ExplodData();
            data.IsHitSpark = true;
            data.CommonAnimation = playeranimation == false;
			data.PositionType = PositionType.P1;
			data.AnimationNumber = animationnumber;
			data.SpritePriority = attacker.DrawOrder + 1;
			data.RemoveTime = -2;
			data.OwnPalFx = false;
			data.Scale = Vector2.One;
			data.Location = GetSparkLocation(attacker, target, sparklocation);
			data.Creator = attacker;
			data.Offseter = target;

			Explod explod = new Explod(attacker.Engine, data);
			if (explod.IsValid == true) explod.Engine.Entities.Add(explod);
		}