Example #1
0
 public void swingBarricade(Vector3 position)
 {
     if (!base.GetComponent <Life>().dead&& (position - base.transform.position).magnitude < 5f)
     {
         SpawnBarricades.damage(position, (int)((float)MeleeStats.getDamage(base.GetComponent <Clothes>().item) * (1f + base.GetComponent <Skills>().warrior() * 0.4f) * 0.25f));
     }
 }
Example #2
0
 public void swingStructure(Vector3 position, NetworkMessageInfo info)
 {
     if (!base.GetComponent <Life>().dead&& (position - base.transform.position).magnitude < 5f)
     {
         SpawnStructures.damage(position, (int)((float)MeleeStats.getDamage(base.GetComponent <Clothes>().item) * (1f + base.GetComponent <Skills>().warrior() * 0.4f) * 0.25f), info.sender);
     }
 }
Example #3
0
 public void swingAnimal(NetworkViewID id, int limb)
 {
     if (!base.GetComponent <Life>().dead)
     {
         GameObject gameObject = NetworkView.Find(id).gameObject;
         if (gameObject != null && !gameObject.GetComponent <AI>().dead)
         {
             gameObject.GetComponent <AI>().damage((int)((float)MeleeStats.getDamage(base.GetComponent <Clothes>().item) * (1f + base.GetComponent <Skills>().warrior() * 0.4f) * DamageMultiplier.getMultiplierZombie(limb)));
             if (gameObject.GetComponent <AI>().dead)
             {
                 base.GetComponent <Skills>().learn(UnityEngine.Random.Range(gameObject.GetComponent <AI>().xp - 1, gameObject.GetComponent <AI>().xp + 2));
                 if (gameObject.name == "zombie")
                 {
                     if (!base.networkView.isMine)
                     {
                         base.networkView.RPC("killedZombie", base.networkView.owner, new object[0]);
                     }
                     else
                     {
                         base.GetComponent <Player>().killedZombie();
                     }
                 }
                 else if (!base.networkView.isMine)
                 {
                     base.networkView.RPC("killedAnimal", base.networkView.owner, new object[0]);
                 }
                 else
                 {
                     base.GetComponent <Player>().killedAnimal();
                 }
             }
         }
     }
 }
Example #4
0
 public void swingVehicle(NetworkViewID id)
 {
     if (!base.GetComponent <Life>().dead&& ServerSettings.pvp)
     {
         GameObject gameObject = NetworkView.Find(id).gameObject;
         if (gameObject != null)
         {
             gameObject.GetComponent <Vehicle>().damage((int)((float)MeleeStats.getDamage(base.GetComponent <Clothes>().item) * (1f + base.GetComponent <Skills>().warrior() * 0.4f) * 0.2f));
         }
     }
 }
Example #5
0
    public void swingPlayer(string id, int limb)
    {
        if (!base.GetComponent <Life>().dead&& ServerSettings.pvp)
        {
            NetworkUser userFromID = NetworkUserList.getUserFromID(id);
            if (userFromID != null && userFromID.model != null && userFromID.model != base.gameObject && !userFromID.model.GetComponent <Life>().dead&& (base.GetComponent <Player>().owner.friend == string.Empty || base.GetComponent <Player>().owner.friend != userFromID.friend) && (userFromID.model.transform.position - base.transform.position).magnitude < 3f)
            {
                float damage = (float)MeleeStats.getDamage(base.GetComponent <Clothes>().item) * DamageMultiplier.getMultiplierPlayer(limb);
                damage = damage * (1f + base.GetComponent <Skills>().warrior() * 0.4f);
                damage = damage * (1f - userFromID.model.GetComponent <Skills>().warrior() * 0.4f);
                if ((limb == 0 || limb == 1) && userFromID.model.GetComponent <Clothes>().pants != -1)
                {
                    damage = damage * ArmorStats.getArmor(userFromID.model.GetComponent <Clothes>().pants);
                }
                if ((limb == 2 || limb == 3 || limb == 5) && userFromID.model.GetComponent <Clothes>().shirt != -1)
                {
                    damage = damage * ArmorStats.getArmor(userFromID.model.GetComponent <Clothes>().shirt);
                }
                if (limb == 5 && userFromID.model.GetComponent <Clothes>().vest != -1)
                {
                    damage = damage * ArmorStats.getArmor(userFromID.model.GetComponent <Clothes>().vest);
                }
                if (limb == 4 && userFromID.model.GetComponent <Clothes>().hat != -1)
                {
                    damage = damage * ArmorStats.getArmor(userFromID.model.GetComponent <Clothes>().hat);
                }
                string empty = string.Empty;
                if (limb == 0)
                {
                    empty = "shin";
                }
                else if (limb == 1)
                {
                    empty = "thigh";
                }
                else if (limb == 2)
                {
                    empty = "arm";
                }
                else if (limb == 3)
                {
                    empty = "shoulder";
                }
                else if (limb == 4)
                {
                    empty = "head";
                }
                else if (limb == 5)
                {
                    empty = "chest";
                }

                int    itemId  = base.GetComponent <Clothes>().item;
                string steamID = base.GetComponent <Player>().owner.id;
                userFromID.model.GetComponent <Life>().damage((int)damage, string.Concat(new string[] { "You were chopped in the ", empty, " with the ", ItemName.getName(itemId), " by ", base.GetComponent <Player>().owner.name, "!" }), itemId, steamID);
                if (userFromID.model.GetComponent <Life>().dead&& Time.realtimeSinceStartup - userFromID.model.GetComponent <Player>().owner.spawned > (float)Reputation.SPAWN_DELAY)
                {
                    if (userFromID.model.GetComponent <Player>().owner.reputation >= 0)
                    {
                        NetworkHandler.offsetReputation(base.networkView.owner, -1);
                    }
                    else
                    {
                        NetworkHandler.offsetReputation(base.networkView.owner, 1);
                    }
                    if (!base.networkView.isMine)
                    {
                        base.sendKilledPlayer(userFromID, base.networkView.owner);
                        //base.networkView.RPC("killedPlayer", base.networkView.owner, new object[0]);
                    }
                    else
                    {
                        base.GetComponent <Player>().killedPlayer();
                    }
                }
            }
        }
    }
Example #6
0
 public override void tick()
 {
     if (this.swinging && Time.realtimeSinceStartup - this.lastSwing > 0.1f)
     {
         Viewmodel.offset_x = UnityEngine.Random.Range(-0.02f, 0.02f);
         Viewmodel.offset_y = UnityEngine.Random.Range(-0.02f, 0.02f);
         Viewmodel.offset_z = UnityEngine.Random.Range(-0.02f, 0.02f);
         this.lastSwing     = Time.realtimeSinceStartup;
         NetworkSounds.askSound(string.Concat("Sounds/Items/", ItemSounds.getSource(Equipment.id), "/use"), Camera.main.transform.position + (Camera.main.transform.forward * 0.5f), 0.25f, UnityEngine.Random.Range(0.9f, 1.1f), 1f);
         Physics.Raycast(Camera.main.transform.position + (Camera.main.transform.forward * -0.5f), Camera.main.transform.forward, out Chainsaw.hit, MeleeStats.getRange(Equipment.id) + 0.5f, RayMasks.DAMAGE);
         if (Chainsaw.hit.collider != null)
         {
             if (Chainsaw.hit.point.y < Ocean.level)
             {
                 NetworkSounds.askSound("Sounds/Impacts/rock", Chainsaw.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/bubbles", Chainsaw.hit.point + (Chainsaw.hit.normal * 0.05f), Quaternion.LookRotation(Chainsaw.hit.normal), -1f);
             }
             else if (Chainsaw.hit.collider.gameObject.name == "ground" || Chainsaw.hit.collider.material.name.ToLower() == "rock (instance)" || Chainsaw.hit.collider.material.name.ToLower() == "ground (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/rock", Chainsaw.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/rock", Chainsaw.hit.point + (Chainsaw.hit.normal * 0.05f), Quaternion.LookRotation(Chainsaw.hit.normal), -1f);
             }
             else if (Chainsaw.hit.collider.material.name.ToLower() == "cloth (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/concrete", Chainsaw.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/cloth", Chainsaw.hit.point + (Chainsaw.hit.normal * 0.05f), Quaternion.LookRotation(Chainsaw.hit.normal), -1f);
             }
             else if (Chainsaw.hit.collider.material.name.ToLower() == "wood (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/wood", Chainsaw.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/splinters", Chainsaw.hit.point + (Chainsaw.hit.normal * 0.05f), Quaternion.LookRotation(Chainsaw.hit.normal), -1f);
             }
             else if (Chainsaw.hit.collider.material.name.ToLower() == "tile (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/concrete", Chainsaw.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/tile", Chainsaw.hit.point + (Chainsaw.hit.normal * 0.05f), Quaternion.LookRotation(Chainsaw.hit.normal), -1f);
             }
             else if (Chainsaw.hit.collider.material.name.ToLower() == "concrete (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/concrete", Chainsaw.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/concrete", Chainsaw.hit.point + (Chainsaw.hit.normal * 0.05f), Quaternion.LookRotation(Chainsaw.hit.normal), -1f);
             }
             else if (Chainsaw.hit.collider.material.name.ToLower() == "metal (instance)" || Chainsaw.hit.collider.material.name.ToLower() == "iron (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/metal", Chainsaw.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/sparks", Chainsaw.hit.point + (Chainsaw.hit.normal * 0.05f), Quaternion.LookRotation(Chainsaw.hit.normal), -1f);
             }
             else if (Chainsaw.hit.collider.material.name.ToLower() == "flesh (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/flesh", Chainsaw.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/flesh", Chainsaw.hit.point + (Chainsaw.hit.normal * 0.05f), Quaternion.LookRotation(Chainsaw.hit.normal), -1f);
             }
             if (Chainsaw.hit.collider.tag == "Resource")
             {
                 if (Chainsaw.hit.collider.name.Substring(0, 4) != "rock")
                 {
                     //HUDGame.lastHitmarker = Time.realtimeSinceStartup;
                     int num = int.Parse(Chainsaw.hit.collider.transform.parent.name.Substring(Chainsaw.hit.collider.transform.parent.name.IndexOf("_") + 1));
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingResource", RPCMode.Server, new object[] { num });
                     }
                     else
                     {
                         this.swingResource(num);
                     }
                 }
             }
             else if (Chainsaw.hit.collider.tag == "Barricade")
             {
                 //HUDGame.lastStructmarker = Time.realtimeSinceStartup;
                 if (!Network.isServer)
                 {
                     base.networkView.RPC("swingBarricade", RPCMode.Server, new object[] { Chainsaw.hit.collider.transform.parent.position });
                 }
                 else
                 {
                     this.swingBarricade(Chainsaw.hit.collider.transform.parent.position);
                 }
             }
             else if (Chainsaw.hit.collider.tag == "Structure")
             {
                 //HUDGame.lastStructmarker = Time.realtimeSinceStartup;
                 if (!Network.isServer)
                 {
                     base.networkView.RPC("swingStructure", RPCMode.Server, new object[] { Chainsaw.hit.collider.transform.parent.position });
                 }
                 else
                 {
                     // FIXME: client side?
                     //this.swingStructure(Chainsaw.hit.collider.transform.parent.position);
                 }
             }
             else if (Chainsaw.hit.collider.tag == "Enemy" && ServerSettings.pvp)
             {
                 int        limb  = OwnerFinder.getLimb(Chainsaw.hit.collider.gameObject);
                 GameObject owner = OwnerFinder.getOwner(Chainsaw.hit.collider.gameObject);
                 if (owner != null && owner.GetComponent <Player>().action != 4 && (PlayerSettings.friend == string.Empty || PlayerSettings.friendHash != owner.GetComponent <Player>().owner.friend))
                 {
                     //HUDGame.lastHitmarker = Time.realtimeSinceStartup;
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingPlayer", RPCMode.Server, new object[] { owner.GetComponent <Player>().owner.id, limb });
                     }
                     else
                     {
                         this.swingPlayer(owner.GetComponent <Player>().owner.id, limb);
                     }
                 }
             }
             else if (Chainsaw.hit.collider.tag == "Animal")
             {
                 int        limb1      = OwnerFinder.getLimb(Chainsaw.hit.collider.gameObject);
                 GameObject gameObject = OwnerFinder.getOwner(Chainsaw.hit.collider.gameObject);
                 if (gameObject != null && !gameObject.GetComponent <AI>().dead)
                 {
                     //HUDGame.lastHitmarker = Time.realtimeSinceStartup;
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingAnimal", RPCMode.Server, new object[] { gameObject.networkView.viewID, limb1 });
                     }
                     else
                     {
                         this.swingAnimal(gameObject.networkView.viewID, limb1);
                     }
                 }
             }
             else if (Chainsaw.hit.collider.tag == "Vehicle" && Chainsaw.hit.collider.GetComponent <Vehicle>().health > 0 && ServerSettings.pvp)
             {
                 //HUDGame.lastHitmarker = Time.realtimeSinceStartup;
                 if (!Network.isServer)
                 {
                     base.networkView.RPC("swingVehicle", RPCMode.Server, new object[] { Chainsaw.hit.collider.networkView.viewID });
                 }
                 else
                 {
                     this.swingVehicle(Chainsaw.hit.collider.networkView.viewID);
                 }
             }
         }
     }
 }
Example #7
0
 public override void tick()
 {
     if (this.swung)
     {
         if (Time.realtimeSinceStartup - this.lastSwing > (!this.lastStrong ? Viewmodel.model.animation["swingWeak"].length / 2f : Viewmodel.model.animation["swingStrong"].length / 2f))
         {
             NetworkSounds.askSound(string.Concat("Sounds/Items/", ItemSounds.getSource(Equipment.id), "/use"), Camera.main.transform.position + (Camera.main.transform.forward * 0.5f), 0.25f, UnityEngine.Random.Range(0.9f, 1.1f), 1f);
             this.swung = false;
             Physics.Raycast(Camera.main.transform.position + (Camera.main.transform.forward * -0.5f), Camera.main.transform.forward, out Melee.hit, MeleeStats.getRange(Equipment.id) + 0.5f, RayMasks.DAMAGE);
             if (Melee.hit.collider != null)
             {
                 if (Melee.hit.point.y < Ocean.level)
                 {
                     NetworkSounds.askSound("Sounds/Impacts/rock", Melee.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/bubbles", Melee.hit.point + (Melee.hit.normal * 0.05f), Quaternion.LookRotation(Melee.hit.normal), -1f);
                 }
                 else if (Melee.hit.collider.gameObject.name == "ground" || Melee.hit.collider.material.name.ToLower() == "rock (instance)" || Melee.hit.collider.material.name.ToLower() == "ground (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/rock", Melee.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/rock", Melee.hit.point + (Melee.hit.normal * 0.05f), Quaternion.LookRotation(Melee.hit.normal), -1f);
                 }
                 else if (Melee.hit.collider.material.name.ToLower() == "cloth (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/concrete", Melee.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/cloth", Melee.hit.point + (Melee.hit.normal * 0.05f), Quaternion.LookRotation(Melee.hit.normal), -1f);
                 }
                 else if (Melee.hit.collider.material.name.ToLower() == "wood (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/wood", Melee.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/splinters", Melee.hit.point + (Melee.hit.normal * 0.05f), Quaternion.LookRotation(Melee.hit.normal), -1f);
                 }
                 else if (Melee.hit.collider.material.name.ToLower() == "tile (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/concrete", Melee.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/tile", Melee.hit.point + (Melee.hit.normal * 0.05f), Quaternion.LookRotation(Melee.hit.normal), -1f);
                 }
                 else if (Melee.hit.collider.material.name.ToLower() == "concrete (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/concrete", Melee.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/concrete", Melee.hit.point + (Melee.hit.normal * 0.05f), Quaternion.LookRotation(Melee.hit.normal), -1f);
                 }
                 else if (Melee.hit.collider.material.name.ToLower() == "metal (instance)" || Melee.hit.collider.material.name.ToLower() == "iron (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/metal", Melee.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/sparks", Melee.hit.point + (Melee.hit.normal * 0.05f), Quaternion.LookRotation(Melee.hit.normal), -1f);
                 }
                 else if (Melee.hit.collider.material.name.ToLower() == "flesh (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/flesh", Melee.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/flesh", Melee.hit.point + (Melee.hit.normal * 0.05f), Quaternion.LookRotation(Melee.hit.normal), -1f);
                 }
                 if (Melee.hit.collider.name == "ground" || Melee.hit.collider.tag == "Prop" || Melee.hit.collider.tag == "World" || Melee.hit.collider.tag == "Environment" || Melee.hit.collider.tag == "Global")
                 {
                     NetworkEffects.askEffect("Effects/hole", Melee.hit.point + (Melee.hit.normal * UnityEngine.Random.Range(0.04f, 0.06f)), Quaternion.LookRotation(Melee.hit.normal) * Quaternion.Euler(0f, 0f, (float)UnityEngine.Random.Range(0, 360)), 20f);
                 }
                 if (Melee.hit.collider.tag == "Barricade")
                 {
                     //HUDGame.lastStructmarker = Time.realtimeSinceStartup;
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingBarricade", RPCMode.Server, new object[] { Melee.hit.collider.transform.parent.position, this.lastStrong });
                     }
                     else
                     {
                         this.swingBarricade(Melee.hit.collider.transform.parent.position, this.lastStrong);
                     }
                 }
                 else if (Melee.hit.collider.tag == "Structure")
                 {
                     //HUDGame.lastStructmarker = Time.realtimeSinceStartup;
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingStructure", RPCMode.Server, new object[] { Melee.hit.collider.transform.parent.position, this.lastStrong });
                     }
                     else
                     {
                         // FIXME: client stuff?
                         //this.swingStructure(Melee.hit.collider.transform.parent.position, this.lastStrong);
                     }
                 }
                 else if (Melee.hit.collider.tag == "Enemy" && ServerSettings.pvp)
                 {
                     int        limb  = OwnerFinder.getLimb(Melee.hit.collider.gameObject);
                     GameObject owner = OwnerFinder.getOwner(Melee.hit.collider.gameObject);
                     if (owner != null && owner.GetComponent <Player>().action != 4 && (PlayerSettings.friend == string.Empty || PlayerSettings.friendHash != owner.GetComponent <Player>().owner.friend))
                     {
                         //HUDGame.lastHitmarker = Time.realtimeSinceStartup;
                         if (!Network.isServer)
                         {
                             base.networkView.RPC("swingPlayer", RPCMode.Server, new object[] { owner.GetComponent <Player>().owner.id, limb, this.lastStrong });
                         }
                         else
                         {
                             this.swingPlayer(owner.GetComponent <Player>().owner.id, limb, this.lastStrong);
                         }
                     }
                 }
                 else if (Melee.hit.collider.tag == "Animal")
                 {
                     int        num        = OwnerFinder.getLimb(Melee.hit.collider.gameObject);
                     GameObject gameObject = OwnerFinder.getOwner(Melee.hit.collider.gameObject);
                     if (gameObject != null && !gameObject.GetComponent <AI>().dead)
                     {
                         //HUDGame.lastHitmarker = Time.realtimeSinceStartup;
                         if (!Network.isServer)
                         {
                             base.networkView.RPC("swingAnimal", RPCMode.Server, new object[] { gameObject.networkView.viewID, num, this.lastStrong });
                         }
                         else
                         {
                             this.swingAnimal(gameObject.networkView.viewID, num, this.lastStrong);
                         }
                     }
                 }
                 else if (Melee.hit.collider.tag == "Vehicle" && Melee.hit.collider.GetComponent <Vehicle>().health > 0 && ServerSettings.pvp)
                 {
                     //HUDGame.lastHitmarker = Time.realtimeSinceStartup;
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingVehicle", RPCMode.Server, new object[] { Melee.hit.collider.networkView.viewID, this.lastStrong });
                     }
                     else
                     {
                         this.swingVehicle(Melee.hit.collider.networkView.viewID, this.lastStrong);
                     }
                 }
             }
         }
     }
     if (this.swinging && Movement.vehicle == null && (!this.strong || Player.life.stamina >= 10 - (int)(Player.skills.endurance() * 10f)))
     {
         if (Time.realtimeSinceStartup - this.lastSwing <= (!this.lastStrong ? Viewmodel.model.animation["swingWeak"].length : Viewmodel.model.animation["swingStrong"].length))
         {
             this.swinging = false;
             return;
         }
         if (this.strong)
         {
             Player.life.exhaust(10 - (int)(Player.skills.endurance() * 10f));
         }
         this.lastStrong = this.strong;
         this.swinging   = false;
         this.lastSwing  = Time.realtimeSinceStartup;
         this.swung      = true;
         if (!this.strong)
         {
             Viewmodel.play("swingWeak");
         }
         else
         {
             Viewmodel.play("swingStrong");
         }
         if (Stance.state == 0)
         {
             Player.play("standMelee");
         }
         else if (Stance.state == 1)
         {
             Player.play("crouchMelee");
         }
         else if (Stance.state == 2)
         {
             Player.play("proneMelee");
         }
         return;
     }
     this.swinging = false;
 }
Example #8
0
 public override void tick()
 {
     if (this.swinging && Time.realtimeSinceStartup - this.lastSwing > 0.1f)
     {
         this.lastSwing = Time.realtimeSinceStartup;
         NetworkSounds.askSound(string.Concat("Sounds/Items/", ItemSounds.getSource(Equipment.id), "/use"), Camera.main.transform.position + (Camera.main.transform.forward * 0.5f), 0.25f, UnityEngine.Random.Range(0.9f, 1.1f), 1f);
         Physics.Raycast(Camera.main.transform.position + (Camera.main.transform.forward * -0.5f), Camera.main.transform.forward, out Repair.hit, MeleeStats.getRange(Equipment.id) + 0.5f, RayMasks.DAMAGE);
         if (Repair.hit.collider != null)
         {
             NetworkEffects.askEffect("Effects/repair", Repair.hit.point + (Repair.hit.normal * 0.05f), Quaternion.LookRotation(Repair.hit.normal), -1f);
             if (Repair.hit.collider.tag == "Enemy" && ServerSettings.pvp)
             {
                 int        limb  = OwnerFinder.getLimb(Repair.hit.collider.gameObject);
                 GameObject owner = OwnerFinder.getOwner(Repair.hit.collider.gameObject);
                 if (owner != null && owner.GetComponent <Player>().action != 4 && (PlayerSettings.friend == string.Empty || PlayerSettings.friendHash != owner.GetComponent <Player>().owner.friend))
                 {
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingPlayer", RPCMode.Server, new object[] { owner.GetComponent <Player>().owner.id, limb });
                     }
                     else
                     {
                         this.swingPlayer(owner.GetComponent <Player>().owner.id, limb);
                     }
                 }
             }
             else if (Repair.hit.collider.tag == "Animal")
             {
                 int        num        = OwnerFinder.getLimb(Repair.hit.collider.gameObject);
                 GameObject gameObject = OwnerFinder.getOwner(Repair.hit.collider.gameObject);
                 if (gameObject != null && !gameObject.GetComponent <AI>().dead)
                 {
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingAnimal", RPCMode.Server, new object[] { gameObject.networkView.viewID, num });
                     }
                     else
                     {
                         this.swingAnimal(gameObject.networkView.viewID, num);
                     }
                 }
             }
             else if (Repair.hit.collider.tag == "Vehicle" && Repair.hit.collider.GetComponent <Vehicle>().health < Repair.hit.collider.GetComponent <Vehicle>().maxHealth&& !Repair.hit.collider.GetComponent <Vehicle>().exploded)
             {
                 if (!Network.isServer)
                 {
                     base.networkView.RPC("swingVehicle", RPCMode.Server, new object[] { Repair.hit.collider.networkView.viewID });
                 }
                 else
                 {
                     this.swingVehicle(Repair.hit.collider.networkView.viewID);
                 }
             }
         }
     }
 }
Example #9
0
 public override void tick()
 {
     if (this.swung && Time.realtimeSinceStartup - this.lastSwing > Viewmodel.model.animation["swingWeak"].length / 2f)
     {
         NetworkSounds.askSound(string.Concat("Sounds/Items/", ItemSounds.getSource(Equipment.id), "/use"), Camera.main.transform.position + (Camera.main.transform.forward * 0.5f), 0.25f, UnityEngine.Random.Range(0.9f, 1.1f), 1f);
         this.swung = false;
         Physics.Raycast(Camera.main.transform.position + (Camera.main.transform.forward * -0.5f), Camera.main.transform.forward, out Flashlight.hit, MeleeStats.getRange(Equipment.id) + 0.5f, RayMasks.DAMAGE);
         if (Flashlight.hit.collider != null)
         {
             if (Flashlight.hit.point.y < Ocean.level)
             {
                 NetworkSounds.askSound("Sounds/Impacts/rock", Flashlight.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/bubbles", Flashlight.hit.point + (Flashlight.hit.normal * 0.05f), Quaternion.LookRotation(Flashlight.hit.normal), -1f);
             }
             else if (Flashlight.hit.collider.gameObject.name == "ground" || Flashlight.hit.collider.material.name.ToLower() == "rock (instance)" || Flashlight.hit.collider.material.name.ToLower() == "ground (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/rock", Flashlight.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/rock", Flashlight.hit.point + (Flashlight.hit.normal * 0.05f), Quaternion.LookRotation(Flashlight.hit.normal), -1f);
             }
             else if (Flashlight.hit.collider.material.name.ToLower() == "cloth (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/concrete", Flashlight.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/cloth", Flashlight.hit.point + (Flashlight.hit.normal * 0.05f), Quaternion.LookRotation(Flashlight.hit.normal), -1f);
             }
             else if (Flashlight.hit.collider.material.name.ToLower() == "wood (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/wood", Flashlight.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/splinters", Flashlight.hit.point + (Flashlight.hit.normal * 0.05f), Quaternion.LookRotation(Flashlight.hit.normal), -1f);
             }
             else if (Flashlight.hit.collider.material.name.ToLower() == "tile (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/concrete", Flashlight.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/tile", Flashlight.hit.point + (Flashlight.hit.normal * 0.05f), Quaternion.LookRotation(Flashlight.hit.normal), -1f);
             }
             else if (Flashlight.hit.collider.material.name.ToLower() == "concrete (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/concrete", Flashlight.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/concrete", Flashlight.hit.point + (Flashlight.hit.normal * 0.05f), Quaternion.LookRotation(Flashlight.hit.normal), -1f);
             }
             else if (Flashlight.hit.collider.material.name.ToLower() == "metal (instance)" || Flashlight.hit.collider.material.name.ToLower() == "iron (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/metal", Flashlight.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/sparks", Flashlight.hit.point + (Flashlight.hit.normal * 0.05f), Quaternion.LookRotation(Flashlight.hit.normal), -1f);
             }
             else if (Flashlight.hit.collider.material.name.ToLower() == "flesh (instance)")
             {
                 NetworkSounds.askSound("Sounds/Impacts/flesh", Flashlight.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                 NetworkEffects.askEffect("Effects/flesh", Flashlight.hit.point + (Flashlight.hit.normal * 0.05f), Quaternion.LookRotation(Flashlight.hit.normal), -1f);
             }
             if (Flashlight.hit.collider.name == "ground" || Flashlight.hit.collider.tag == "Prop" || Flashlight.hit.collider.tag == "World" || Flashlight.hit.collider.tag == "Environment" || Flashlight.hit.collider.tag == "Global")
             {
                 NetworkEffects.askEffect("Effects/hole", Flashlight.hit.point + (Flashlight.hit.normal * UnityEngine.Random.Range(0.04f, 0.06f)), Quaternion.LookRotation(Flashlight.hit.normal) * Quaternion.Euler(0f, 0f, (float)UnityEngine.Random.Range(0, 360)), 20f);
             }
             if (Flashlight.hit.collider.tag == "Enemy" && ServerSettings.pvp)
             {
                 int        limb  = OwnerFinder.getLimb(Flashlight.hit.collider.gameObject);
                 GameObject owner = OwnerFinder.getOwner(Flashlight.hit.collider.gameObject);
                 if (owner != null && owner.GetComponent <Player>().action != 4 && (PlayerSettings.friend == string.Empty || PlayerSettings.friendHash != owner.GetComponent <Player>().owner.friend))
                 {
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingPlayer", RPCMode.Server, new object[] { owner.GetComponent <Player>().owner.id, limb });
                     }
                     else
                     {
                         this.swingPlayer(owner.GetComponent <Player>().owner.id, limb);
                     }
                 }
             }
             else if (Flashlight.hit.collider.tag == "Animal")
             {
                 int        num        = OwnerFinder.getLimb(Flashlight.hit.collider.gameObject);
                 GameObject gameObject = OwnerFinder.getOwner(Flashlight.hit.collider.gameObject);
                 if (gameObject != null && !gameObject.GetComponent <AI>().dead)
                 {
                     if (!Network.isServer)
                     {
                         base.networkView.RPC("swingAnimal", RPCMode.Server, new object[] { gameObject.networkView.viewID, num });
                     }
                     else
                     {
                         this.swingAnimal(gameObject.networkView.viewID, num);
                     }
                 }
             }
         }
     }
     if (!this.swinging || Time.realtimeSinceStartup - this.lastSwing <= Viewmodel.model.animation["swingWeak"].length)
     {
         this.swinging = false;
     }
     else
     {
         this.swinging  = false;
         this.lastSwing = Time.realtimeSinceStartup;
         this.swung     = true;
         Viewmodel.play("swingWeak");
         if (Stance.state == 0)
         {
             Player.play("standMelee");
         }
         else if (Stance.state == 1)
         {
             Player.play("crouchMelee");
         }
         else if (Stance.state == 2)
         {
             Player.play("proneMelee");
         }
     }
 }