static void _Collision(SpriteColliderBase a, SpriteColliderBase b)
 {
     if (a != null && b != null && a.gameObject && b.gameObject && a.AllowCollision() && b.AllowCollision())
     {
         a.OnCollision(b);
     }
     //if (a != null && b != null && a.gameObject && b.gameObject && a.AllowCollision() && b.AllowCollision()) b.OnCollision(a);
 }
Example #2
0
        void Update()
        {
            SpriteColliderBase.ResetList();

            SpriteColliderBase.Check(group1, group2);

            SpriteColliderBase.ClearList();
        }
 public static void Remove(string id, SpriteColliderBase data)
 {
     for (int i = 0; i < _group.Count; i++)
     {
         if (_group[i].id == id)
         {
             _group[i].collider.Remove(data);
         }
     }
 }
            public static void Add(string id, SpriteColliderBase data)
            {
                for (int i = 0; i < _group.Count; i++)
                {
                    if (_group[i].id == id)
                    {
                        _group[i].collider.Add(data);

                        return;
                    }
                }

                var collisionList = new Group();

                collisionList.id = id;
                _group.Add(collisionList);
                Add(id, data);
            }
Example #5
0
        void Awake()
        {
            if (spriteRenderer == null)
            {
                spriteRenderer = GetComponent <SpriteRenderer>();
            }

            if (spriteColliderBase == null)
            {
                spriteColliderBase = GetComponent <SpriteColliderBase>();
            }

            if (spriteRenderer == null)
            {
                enabled = false;

                return;
            }

            if (spriteColliderBase)
            {
                spriteColliderBase.enabled = false;
            }
        }
Example #6
0
        public override void OnCollision(SpriteColliderBase collider)
        {
            var collisionData = collider as CollisionData;

            if (collisionData == null)
            {
                return;
            }

            var a = structuralIntegrity;
            var b = collisionData.structuralIntegrity;


            if (indestructible && collisionData.indestructible)
            {
                print("oops");
            }

            if (indestructible)
            {
                b = 0;
                collisionData.structuralIntegrity = 0;
            }

            if (collisionData.indestructible)
            {
                a = 0;
                structuralIntegrity = 0;
            }

            structuralIntegrity -= b;
            collisionData.structuralIntegrity -= a;



            if (structuralIntegrity < 0)
            {
                structuralIntegrity = 0;
            }
            if (collisionData.structuralIntegrity < 0)
            {
                collisionData.structuralIntegrity = 0;
            }

            if (structuralIntegrity == 0)
            {
                OnStructuralFailure(collisionData);
            }
            if (collisionData.structuralIntegrity == 0)
            {
                collisionData.OnStructuralFailure(this);
            }

            _Ghost();
            collisionData._Ghost();

            if ((structuralIntegrity > 0 || collisionData.structuralIntegrity > 0) && material != "" && collisionData.material != "")
            {
                CollisionAudio.Play(material, collisionData.material);
            }
        }
 public virtual void OnCollision(SpriteColliderBase collider)
 {
 }