Exemplo n.º 1
0
        protected virtual bool _body_OnCollision(Fixture fixtureA, Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
        {
            if (fixtureB.UserData is ShipBodyDataObject)
            {
                if (TimeKeeper.MsSinceInitialization - _lastSendTime > 1000)
                {
                    _messageService.SendObjectPickupRequest(((ShipBodyDataObject)fixtureB.UserData).ID, Id, PickupableTypes.FloatyAreaObject);
                    _lastSendTime = TimeKeeper.MsSinceInitialization;
                }
            }

            return(false);
        }
Exemplo n.º 2
0
        protected bool _pickupBody_OnCollision(Fixture fixtureA, Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact)
        {
            if (fixtureB.Body.UserData is ShipBodyDataObject)
            {
                var s = fixtureB.Body.UserData as ShipBodyDataObject;

                if (s.Ship.EnterMode && s.Ship.OnSameTeam(this) && s.Ship.Cargo.CheckCargoSpace(StatefulCargoTypes.DefensiveMine, 1))
                {
                    _messageService.SendObjectPickupRequest(s.ID, Id, PickupableTypes.DefensiveMine);
                }
            }


            return(false);
        }
Exemplo n.º 3
0
        bool OnCollision(Fixture fixtureA, Fixture fixtureB, Contact contact)
        {
            if (fixtureB.Body.UserData is ShipBodyDataObject)
            {
                var s = fixtureB.Body.UserData as ShipBodyDataObject;
                if (!s.Ship.OnSameTeam(this))
                {
                    return(true);//Collide with enemy turrets
                }
                if (s.Ship.EnterMode && s.Ship.Cargo.CheckCargoSpace(StatefulCargoTypes.LaserTurret, 1))
                {
                    _messageService.SendObjectPickupRequest(s.ID, Id, PickupableTypes.Turret);
                }
            }



            return(false);
        }