Esempio n. 1
0
 static void DoDamage(ref DoDamageMsg msg, MyNetworkClient sender)
 {
     MyEntity ent;
     if(!MyEntities.TryGetEntityById(msg.DestroyableEntityId, out ent))
         return;
     if (!(ent is IMyDestroyableObject))
     {
         Debug.Fail("Damage can be done to destroyable only");
         return;
     }
     (ent as IMyDestroyableObject).DoDamage(msg.Damage, msg.Type, false);
 }
Esempio n. 2
0
        public static void DoDamageSynced(MyEntity destroyable, float damage, MyDamageType type)
        {
            Debug.Assert(Sync.IsServer || destroyable.SyncObject is MySyncEntity || (destroyable.SyncObject as MySyncEntity).ResponsibleForUpdate(Sync.Clients.LocalClient));
            if (!(destroyable is IMyDestroyableObject))
                return;

            var msg = new DoDamageMsg();
            msg.DestroyableEntityId = destroyable.EntityId;
            msg.Damage = damage;
            msg.Type = type;

            (destroyable as IMyDestroyableObject).DoDamage(damage, type, false);
            Sync.Layer.SendMessageToAll<DoDamageMsg>(ref msg);
        }
Esempio n. 3
0
        static void DoDamage(ref DoDamageMsg msg, MyNetworkClient sender)
        {
            MyEntity ent;

            if (!MyEntities.TryGetEntityById(msg.DestroyableEntityId, out ent))
            {
                return;
            }
            if (!(ent is IMyDestroyableObject))
            {
                Debug.Fail("Damage can be done to destroyable only");
                return;
            }
            (ent as IMyDestroyableObject).DoDamage(msg.Damage, msg.Type, false, null, msg.AttackerEntityId);
        }
Esempio n. 4
0
        public static void DoDamageSynced(MyEntity destroyable, float damage, MyDamageType type)
        {
            Debug.Assert(Sync.IsServer || destroyable.SyncObject is MySyncEntity || (destroyable.SyncObject as MySyncEntity).ResponsibleForUpdate(Sync.Clients.LocalClient));
            if (!(destroyable is IMyDestroyableObject))
            {
                return;
            }

            var msg = new DoDamageMsg();

            msg.DestroyableEntityId = destroyable.EntityId;
            msg.Damage = damage;
            msg.Type   = type;

            (destroyable as IMyDestroyableObject).DoDamage(damage, type, false);
            Sync.Layer.SendMessageToAll <DoDamageMsg>(ref msg);
        }