private void Shoot(Message msg) { if (_shooted) { return; } _shooted = true; if (_weaponData.MagazineBulletAmount > 0) { --_weaponData.MagazineBulletAmount; //ToDo: replace to server var id = 1000 * _weaponData.OwnerNetId + BulletsFactory.GetNextBulletId(); MessageBus.SendMessage(NetBroadcastMessage.Get(Network.API.Messages.CREATE_PROJECTILE, UnityEngine.Networking.QosType.Reliable, -1, ProjectileMessageData.GetProjectileMessageData( id, _weaponData.OwnerNetId, _weaponData.ShootPosition.position, _weaponData.ShootPosition.rotation, _weaponData.WeaponConfig.bulletType, _weaponData.WeaponConfig.bulletStartSpeed, _weaponData.WeaponConfig.damageFactor))); MessageBus.SendMessage(SubscribeType.Channel, Channel.ChannelIds[SubscribeType.Channel], CommonMessage.Get(API.Messages.FIRING)); } else { _weaponData.NoBulletsInMagazine(); } }
private void Start() { var netId = Channel.ChannelIds[SubscribeType.Network]; MessageBus.SendMessage(NetBroadcastMessage.Get(Network.API.Messages.CREATE_CHARACTER_REPLICANT, QosType.Reliable, netId, IntData.GetIntData(netId))); }
private void Start() { var netId = Channel.ChannelIds[SubscribeType.Network]; MessageBus.SendMessage(NetBroadcastMessage.Get(Network.API.Messages.CREATE_AIM_TARGET_REPLICANT, QosType.Reliable, netId, API.InstanceData.GetData("Replicant", netId, GetComponent <Data.AimTargetData>().CharacterNetId))); }
public void OnCollisionAction(ProjectileData projectile, Collision collision) { var damage = 2 * DamageFactor; _ownerCharacterData.HitPoints -= (int)damage; MessageBus.SendMessage(NetBroadcastMessage.Get(Network.API.Messages.DELETE_OBJECT, UnityEngine.Networking.QosType.Reliable, projectile.GetComponent <Channel>().ChannelIds[SubscribeType.Network])); Destroy(projectile.gameObject); }
private void SendNetworkMovement() { timeBetweenMovementEnd = Time.time; MessageBus.SendMessage(NetBroadcastMessage.Get( Network.API.Messages.SYNC_TRANSFORM, UnityEngine.Networking.QosType.Unreliable, Channel.ChannelIds[SubscribeType.Network], SyncTransformTimedData.GetData( transform.position, timeBetweenMovementEnd - timeBetweenMovementStart))); canSendNetworkMovement = false; }
private void PickUpWeapon(Message msg) { bool hasEmpty = false; var data = (Looting.LootItemData)msg.Data; var PrevIndex = -1; if (_inventoryData.CurSelectedWeaponIndex == -1) { curWeaopnSlotIndex = 0; } else { curWeaopnSlotIndex = _inventoryData.CurSelectedWeaponIndex; PrevIndex = curWeaopnSlotIndex; for (int i = 0; i < _inventoryData.WeaponItemHolders.Length; ++i) { if (_inventoryData.WeaponItemHolders[i].WeaponObject != null) { continue; } hasEmpty = true; curWeaopnSlotIndex = i; } if (!hasEmpty) { //ToDo: drop current weapon MessageBus.SendMessage(NetServerMessage.Get(Network.API.Messages.DROP_LOOT_ITEM, UnityEngine.Networking.QosType.Reliable, -1, Looting.InstanceLootItemData.GetData(transform.position, Looting.API.LootType.WEAPONS, 1, new int[1] { (int)_inventoryData.WeaponItemHolders[PrevIndex].WeaponObject. GetComponent <Weapons.Data.WeaponData>().WeaponConfig.weaponName }, -1))); Destroy(_inventoryData.WeaponItemHolders[PrevIndex].WeaponObject); Destroy(_inventoryData.WeaponItemHolders[PrevIndex].AimTargetObject); } else { _inventoryData.WeaponItemHolders[PrevIndex].WeaponObject.SetActive(false); } } MessageBus.SendMessage(NetBroadcastMessage.Get(Network.API.Messages.CREATE_WEAPON, UnityEngine.Networking.QosType.Reliable, Channel.ChannelIds[SubscribeType.Network], WeaponInstantiateData.GetWeaponInstantiateData((WeaponType)data.Params[0], null, Channel.ChannelIds[SubscribeType.Channel], -1, true))); }
private void SpawnItem(Transform parent, Vector3 pos, Looting.API.LootType type, int amount, int[] prms) { ServiceLocator.GetService <ResourceLoader>().InstantiatePrefabByPathName("Loot/LootItem", go => { go.transform.SetParent(parent); go.transform.position = pos; var curLootData = go.GetComponent <LootData>(); curLootData.LootType = type; curLootData.Amount = amount; curLootData.Params = prms; var netId = Server.GetNetId(); var sub = go.GetComponent <SubscriberBehaviour>(); sub.Channel.ChannelIds.Add(SubscribeType.Network, netId); sub.ReSubscribe(); MessageBus.SendMessage(NetBroadcastMessage.Get(Network.API.Messages.CREATE_LOOT_ITEM, UnityEngine.Networking.QosType.Reliable, -1, InstanceLootItemData.GetData(pos, curLootData.LootType, curLootData.Amount, curLootData.Params, netId))); }); }