Exemplo n.º 1
0
        private void FixedUpdate()
        {
            if (_grounded || !_launch)
            {
                return;
            }

            if (transform.position.y <= 0)
            {
                _grounded = true;
                var t = transform.position;
                t.y = 0.2f;
                transform.position = t;
            }

            var groundRay = new Ray(transform.position, _groundCheck);

            if (!Physics.Raycast(groundRay, out _, 0.25f, 9))
            {
                return;
            }

            _grounded = true;


            var spawnSponge = SpawnSponge.Create(GlobalTargets.OnlyServer, ReliabilityModes.ReliableOrdered);

            spawnSponge.Position = transform.position;
            spawnSponge.Type     = "Weapon-Sponge";
            spawnSponge.Send();

            var createSplash = CreateSplash.Create(GlobalTargets.Everyone, ReliabilityModes.ReliableOrdered);

            createSplash.Position      = transform.position;
            createSplash.Radius        = player.weaponSystem.spongeWeaponState.weapon.Radius;
            createSplash.Damage        = player.weaponSystem.spongeWeaponState.weapon.Damage;
            createSplash.PlayerWhoShot = player.entity;
            createSplash.Send();

            var destroySpongeOnHit = DestroySpongeOnHit.Create(GlobalTargets.Everyone, ReliabilityModes.ReliableOrdered);

            destroySpongeOnHit.SpongeId = guid;
            destroySpongeOnHit.Send();
        }
Exemplo n.º 2
0
 /// <summary>
 /// Gets called whenever a sponge needs to be instantiated over the network.
 /// </summary>
 /// <param name="spawnSponge"></param>
 public override void OnEvent(SpawnSponge spawnSponge)
 {
     BoltNetwork.Instantiate(BoltPrefabs.Sponge_Weapon_Pickup, spawnSponge.Position, Quaternion.identity);
 }