コード例 #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);
 }
コード例 #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);
        }
コード例 #3
0
ファイル: MySyncHelper.cs プロジェクト: warex0/SpaceEngineers
        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);
        }
コード例 #4
0
ファイル: MySyncHelper.cs プロジェクト: caomw/SpaceEngineers
        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);
        }