Beispiel #1
0
    public void OnTriggerEnter(Collider other)
    {
        if (base.transform.parent.GetComponent <Vehicle>().lastSpeed > 5 && base.transform.parent.GetComponent <Vehicle>().passengers[0] != null)
        {
            if ((other.tag == "Enemy" || other.tag == "Player") && ServerSettings.pvp)
            {
                GameObject gameObject = null;
                gameObject = (other.tag != "Enemy" ? other.gameObject : OwnerFinder.getOwner(other.gameObject));
                NetworkUser userFromPlayer = NetworkUserList.getUserFromPlayer(base.transform.parent.GetComponent <Vehicle>().passengers[0].player);
                if (userFromPlayer != null && !gameObject.GetComponent <Life>().dead&& (userFromPlayer.friend == string.Empty || userFromPlayer.friend != gameObject.GetComponent <Player>().owner.friend))
                {
                    if (gameObject.GetComponent <Player>().owner.reputation >= 0)
                    {
                        NetworkHandler.offsetReputation(userFromPlayer.player, -1);
                    }
                    else
                    {
                        NetworkHandler.offsetReputation(userFromPlayer.player, 1);
                    }

                    gameObject.GetComponent <Life>().damage(1000, string.Concat("You were run over by ", userFromPlayer.name, "!"), -1, userFromPlayer.id);
                    NetworkSounds.askSound("Sounds/Impacts/flesh", gameObject.transform.position + Vector3.up, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                    NetworkEffects.askEffect("Effects/flesh", gameObject.transform.position + Vector3.up, Quaternion.identity, -1f);
                }
            }
            else if (other.tag == "Animal")
            {
                GameObject owner = OwnerFinder.getOwner(other.gameObject);
                owner.GetComponent <AI>().damage(1000);
                NetworkSounds.askSound("Sounds/Impacts/flesh", owner.transform.position + Vector3.up, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                NetworkEffects.askEffect("Effects/flesh", owner.transform.position + Vector3.up, Quaternion.identity, -1f);
            }
        }
    }
Beispiel #2
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);
                 }
             }
         }
     }
 }
Beispiel #3
0
 public static void explode(Vector3 position, float range, int damage)
 {
     Collider[] colliderArray = Physics.OverlapSphere(position, range, RayMasks.ATTACKABLE);
     for (int i = 0; i < (int)colliderArray.Length; i++)
     {
         if (RayMasks.isVisible(position, colliderArray[i].transform.position + Vector3.up))
         {
             if (colliderArray[i].tag == "Player")
             {
                 if (ServerSettings.pvp)
                 {
                     colliderArray[i].GetComponent <Life>().damage(damage, "You were blown up by an explosion.", -2, "");
                     NetworkEffects.askEffect("Effects/flesh", colliderArray[i].transform.position + Vector3.up, Quaternion.identity, -1f);
                 }
             }
             else if (colliderArray[i].tag == "Enemy")
             {
                 if (ServerSettings.pvp)
                 {
                     GameObject owner = OwnerFinder.getOwner(colliderArray[i].gameObject);
                     owner.GetComponent <Life>().damage(damage, "You were blown up by an explosion.", -2, "");
                     NetworkEffects.askEffect("Effects/flesh", colliderArray[i].transform.position + Vector3.up, Quaternion.identity, -1f);
                 }
             }
             else if (colliderArray[i].tag == "Animal")
             {
                 GameObject gameObject = OwnerFinder.getOwner(colliderArray[i].gameObject);
                 gameObject.GetComponent <AI>().damage(damage);
                 NetworkEffects.askEffect("Effects/flesh", colliderArray[i].transform.position + Vector3.up, Quaternion.identity, -1f);
             }
             else if (colliderArray[i].tag == "Barricade")
             {
                 if (ServerSettings.pvp)
                 {
                     SpawnBarricades.damage(colliderArray[i].transform.parent.position, damage);
                 }
             }
             else if (colliderArray[i].tag == "Structure")
             {
                 if (ServerSettings.pvp)
                 {
                     // FIXME: explosion to structures?
                     //SpawnStructures.damage(colliderArray[i].transform.parent.position, damage);
                 }
             }
             else if (colliderArray[i].tag == "Vehicle" && ServerSettings.pvp)
             {
                 colliderArray[i].GetComponent <Vehicle>().damage(damage);
             }
         }
     }
     SpawnAnimals.attract(position + Vector3.up, 64f);
 }
Beispiel #4
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);
                 }
             }
         }
     }
 }
Beispiel #5
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;
 }
Beispiel #6
0
 public void Update()
 {
     if (Interact.edit != null && (Input.GetKeyDown(InputSettings.interactKey) || (Interact.edit.transform.position - Player.model.transform.position).magnitude > 4f))
     {
         Interact.edit = null;
     }
     if (GraphicsSettings.dof)
     {
         Physics.Raycast(base.transform.position, base.transform.forward, out Interact.hit, 512f, RayMasks.INTERACTABLE);
         if (Interact.hit.collider != null)
         {
             Interact.range = Interact.hit.distance;
         }
         else
         {
             Interact.range = -1f;
         }
     }
     if (Movement.vehicle == null)
     {
         if (!GraphicsSettings.dof || Interact.hit.collider != null && Interact.hit.distance < 8f)
         {
             if (!GraphicsSettings.dof)
             {
                 Physics.Raycast(base.transform.position, base.transform.forward, out Interact.hit, 8f, RayMasks.INTERACTABLE);
             }
             if (Interact.hit.collider == null)
             {
                 if (Interact.focus != null && Interact.focus.renderer != null && Interact.material.shader.name != "Transparent/Cutout/Diffuse")
                 {
                     Interact.focus.renderer.material = Interact.material;
                 }
                 Interact.focus    = null;
                 Interact.material = null;
             }
             else if (Interact.hit.collider.tag == "Enemy")
             {
                 if (Interact.focus != null && Interact.focus.renderer != null && Interact.material.shader.name != "Transparent/Cutout/Diffuse")
                 {
                     Interact.focus.renderer.material = Interact.material;
                 }
                 Interact.focus    = null;
                 Interact.material = null;
                 NetworkUser component = OwnerFinder.getOwner(Interact.hit.collider.gameObject).GetComponent <Player>().owner;
                 if (!(PlayerSettings.friendHash != string.Empty) || !(component.friend == PlayerSettings.friendHash) || !(component.nickname != string.Empty))
                 {
                     //HUDGame.setHint(component.name, null, (component.status != 21 ? Color.white : Colors.GOLD), (component.status != 21 ? Color.white : Colors.GOLD), Reputation.getIcon(component.reputation));
                 }
                 else
                 {
                     //HUDGame.setHint(string.Concat(component.name, " [", component.nickname, "]"), null, (component.status != 21 ? Color.white : Colors.GOLD), (component.status != 21 ? Color.white : Colors.GOLD), Reputation.getIcon(component.reputation));
                 }
             }
             else if (Interact.hit.distance >= 3f)
             {
                 if (Interact.focus != null && Interact.focus.renderer != null && Interact.material.shader.name != "Transparent/Cutout/Diffuse")
                 {
                     Interact.focus.renderer.material = Interact.material;
                 }
                 Interact.focus    = null;
                 Interact.material = null;
                 //HUDGame.setHint(Interact.hint, null, Color.white, Color.white, Interact.icon);
             }
             else
             {
                 Interact.interactable = Interact.hit.collider.GetComponent <Interactable>();
                 if (Interact.interactable == null)
                 {
                     if (Interact.focus != null && Interact.focus.renderer != null && Interact.material.shader.name != "Transparent/Cutout/Diffuse")
                     {
                         Interact.focus.renderer.material = Interact.material;
                     }
                     Interact.focus    = null;
                     Interact.material = null;
                     //HUDGame.setHint(Interact.hint, null, Color.white, Color.white, Interact.icon);
                 }
                 else
                 {
                     if (Interact.focus == null)
                     {
                         Interact.focus = Interact.hit.collider.gameObject;
                         if (Interact.focus.renderer != null)
                         {
                             Interact.material = Interact.hit.collider.renderer.material;
                             if (GraphicsSettings.hud && Interact.hit.collider.renderer.material.shader.name != "Transparent/Cutout/Diffuse")
                             {
                                 if (Interact.interactable.hint() == string.Empty)
                                 {
                                     Interact.hit.collider.renderer.material = (Material)Resources.Load("Materials/Help/badInteract");
                                 }
                                 else
                                 {
                                     Interact.hit.collider.renderer.material = (Material)Resources.Load("Materials/Help/goodInteract");
                                 }
                             }
                             Interact.hit.collider.renderer.material.mainTexture = Interact.material.mainTexture;
                             Interact.hit.collider.renderer.material.color       = Interact.material.color;
                         }
                     }
                     else if (Interact.focus != Interact.hit.collider.gameObject)
                     {
                         if (Interact.focus != null && Interact.focus.renderer != null && Interact.material.shader.name != "Transparent/Cutout/Diffuse")
                         {
                             Interact.focus.renderer.material = Interact.material;
                         }
                         Interact.focus = Interact.hit.collider.gameObject;
                         if (Interact.focus.renderer != null)
                         {
                             Interact.material = Interact.hit.collider.renderer.material;
                             if (GraphicsSettings.hud && Interact.hit.collider.renderer.material.shader.name != "Transparent/Cutout/Diffuse")
                             {
                                 if (Interact.interactable.hint() == string.Empty)
                                 {
                                     Interact.hit.collider.renderer.material = (Material)Resources.Load("Materials/Help/badInteract");
                                 }
                                 else
                                 {
                                     Interact.hit.collider.renderer.material = (Material)Resources.Load("Materials/Help/goodInteract");
                                 }
                             }
                             Interact.hit.collider.renderer.material.mainTexture = Interact.material.mainTexture;
                             Interact.hit.collider.renderer.material.color       = Interact.material.color;
                         }
                     }
                     if (Interact.interactable.hint() != string.Empty)
                     {
                         //HUDGame.setHint(string.Concat(new object[] { Interact.interactable.hint(), " [", InputSettings.interactKey, "]" }), (Interact.focus.transform.FindChild("focus") == null ? Interact.focus : Interact.focus.transform.FindChild("focus").gameObject), Color.white, Color.white, Interact.interactable.icon());
                     }
                 }
             }
         }
         else
         {
             if (Interact.focus != null && Interact.focus.renderer != null && Interact.material.shader.name != "Transparent/Cutout/Diffuse")
             {
                 Interact.focus.renderer.material = Interact.material;
             }
             Interact.focus    = null;
             Interact.material = null;
             //HUDGame.setHint(Interact.hint, null, Color.white, Color.white, Interact.icon);
         }
         if (Input.GetKeyDown(InputSettings.interactKey) && !Player.life.dead && Interact.focus != null && Interact.interactable.hint() != string.Empty && Screen.lockCursor)
         {
             Interact.interactable.trigger();
         }
     }
     else
     {
         if (Input.GetKeyDown(InputSettings.interactKey) && !Player.life.dead && Screen.lockCursor)
         {
             Movement.vehicle.trigger();
         }
         if (Interact.focus != null && Interact.focus.renderer != null && Interact.material.shader.name != "Transparent/Cutout/Diffuse")
         {
             Interact.focus.renderer.material = Interact.material;
         }
         Interact.focus        = null;
         Interact.material     = null;
         Interact.interactable = null;
         //HUDGame.setHint(string.Concat("Exit [", InputSettings.interactKey, "] - Seats [F1-6]"), null, Color.white, Color.white, string.Empty);
     }
 }
Beispiel #7
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");
         }
     }
 }
Beispiel #8
0
 public void Update()
 {
     if (base.networkView.isMine)
     {
         if ((Player.life.dead || Movement.isSwimming || Movement.isClimbing || Movement.isDriving) && Equipment.model != null)
         {
             Equipment.dequip();
         }
         if (Equipment.model != null)
         {
             if (!Equipment.ready)
             {
                 Equipment.ready = true;
                 Equipment.model.transform.FindChild("model").renderer.enabled = true;
                 Equipment.useable.equip();
                 Equipment.ticking = true;
             }
             else if (Equipment.ticking)
             {
                 if (Equipment.setup)
                 {
                     Equipment.useable.tick();
                 }
                 else if (Time.realtimeSinceStartup - Equipment.startedEquip > Viewmodel.model.animation["equip"].length)
                 {
                     Equipment.setup = true;
                 }
             }
             if (Input.GetKeyDown(InputSettings.dropKey))
             {
                 int num  = Equipment.equipped.x;
                 int num1 = Equipment.equipped.y;
                 Equipment.dequip();
                 SpawnItems.dropItem(num, num1, Input.GetKey(InputSettings.otherKey));
             }
             else if (Input.GetKeyDown(InputSettings.itemKey))
             {
                 Equipment.dequip();
             }
         }
         if (Screen.lockCursor && !Player.life.dead)
         {
             if (Input.GetKeyDown(KeyCode.Alpha1))
             {
                 Equipment.equip(0, 0);
             }
             if (Input.GetKeyDown(KeyCode.Alpha2))
             {
                 Equipment.equip(1, 0);
             }
             if (Input.GetKeyDown(KeyCode.Alpha3))
             {
                 Equipment.equip(2, 0);
             }
             if (Input.GetKeyDown(KeyCode.Alpha4))
             {
                 Equipment.equip(3, 0);
             }
             if (Input.GetKeyDown(KeyCode.Alpha5))
             {
                 Equipment.equip(4, 0);
             }
             if (Input.GetKeyDown(KeyCode.Alpha6))
             {
                 Equipment.equip(5, 0);
             }
             if (!Equipment.busy && Equipment.setup)
             {
                 if (Equipment.useable != null)
                 {
                     if (Input.GetKeyDown(InputSettings.shootKey))
                     {
                         Equipment.useable.startPrimary();
                     }
                     if (Input.GetKeyUp(InputSettings.shootKey))
                     {
                         Equipment.useable.stopPrimary();
                     }
                     if (Input.GetKeyDown(InputSettings.aimKey))
                     {
                         Equipment.useable.startSecondary();
                     }
                     if (Input.GetKeyUp(InputSettings.aimKey))
                     {
                         Equipment.useable.stopSecondary();
                     }
                 }
                 else if (!Player.life.dead && !Movement.isSwimming && !Movement.isClimbing && Movement.vehicle == null && Stance.state != 2)
                 {
                     if (Input.GetKeyDown(InputSettings.shootKey) && !this.swinging)
                     {
                         this.swinging = true;
                         this.right    = false;
                     }
                     if (Input.GetKeyDown(InputSettings.aimKey) && !this.swinging)
                     {
                         this.swinging = true;
                         this.right    = true;
                     }
                 }
             }
         }
         if (this.swung && Time.realtimeSinceStartup - this.lastSwing > Viewmodel.model.animation["punchRight"].length / 2f)
         {
             NetworkSounds.askSound("Sounds/Items/8001/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 Equipment.hit, 2f, RayMasks.DAMAGE);
             if (Equipment.hit.collider != null)
             {
                 if (Equipment.hit.point.y < Ocean.level)
                 {
                     NetworkSounds.askSound("Sounds/Impacts/rock", Equipment.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/bubbles", Equipment.hit.point + (Equipment.hit.normal * 0.05f), Quaternion.LookRotation(Equipment.hit.normal), -1f);
                 }
                 else if (Equipment.hit.collider.gameObject.name == "ground" || Equipment.hit.collider.material.name.ToLower() == "rock (instance)" || Equipment.hit.collider.material.name.ToLower() == "ground (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/rock", Equipment.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/rock", Equipment.hit.point + (Equipment.hit.normal * 0.05f), Quaternion.LookRotation(Equipment.hit.normal), -1f);
                 }
                 else if (Equipment.hit.collider.material.name.ToLower() == "cloth (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/concrete", Equipment.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/cloth", Equipment.hit.point + (Equipment.hit.normal * 0.05f), Quaternion.LookRotation(Equipment.hit.normal), -1f);
                 }
                 else if (Equipment.hit.collider.material.name.ToLower() == "wood (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/wood", Equipment.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/splinters", Equipment.hit.point + (Equipment.hit.normal * 0.05f), Quaternion.LookRotation(Equipment.hit.normal), -1f);
                 }
                 else if (Equipment.hit.collider.material.name.ToLower() == "tile (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/concrete", Equipment.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/tile", Equipment.hit.point + (Equipment.hit.normal * 0.05f), Quaternion.LookRotation(Equipment.hit.normal), -1f);
                 }
                 else if (Equipment.hit.collider.material.name.ToLower() == "concrete (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/concrete", Equipment.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/concrete", Equipment.hit.point + (Equipment.hit.normal * 0.05f), Quaternion.LookRotation(Equipment.hit.normal), -1f);
                 }
                 else if (Equipment.hit.collider.material.name.ToLower() == "metal (instance)" || Equipment.hit.collider.material.name.ToLower() == "iron (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/metal", Equipment.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/sparks", Equipment.hit.point + (Equipment.hit.normal * 0.05f), Quaternion.LookRotation(Equipment.hit.normal), -1f);
                 }
                 else if (Equipment.hit.collider.material.name.ToLower() == "flesh (instance)")
                 {
                     NetworkSounds.askSound("Sounds/Impacts/flesh", Equipment.hit.point, 0.5f, UnityEngine.Random.Range(0.9f, 1.1f), 0.25f);
                     NetworkEffects.askEffect("Effects/flesh", Equipment.hit.point + (Equipment.hit.normal * 0.05f), Quaternion.LookRotation(Equipment.hit.normal), -1f);
                 }
                 if (Equipment.hit.collider.tag == "Enemy" && ServerSettings.pvp)
                 {
                     int        limb  = OwnerFinder.getLimb(Equipment.hit.collider.gameObject);
                     GameObject owner = OwnerFinder.getOwner(Equipment.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("punchPlayer", RPCMode.Server, new object[] { owner.GetComponent <Player>().owner.id, limb });
                         }
                         else
                         {
                             this.punchPlayer(owner.GetComponent <Player>().owner.id, limb);
                         }
                     }
                 }
                 else if (Equipment.hit.collider.tag == "Animal")
                 {
                     int        limb1      = OwnerFinder.getLimb(Equipment.hit.collider.gameObject);
                     GameObject gameObject = OwnerFinder.getOwner(Equipment.hit.collider.gameObject);
                     if (gameObject != null && !gameObject.GetComponent <AI>().dead)
                     {
                         if (!Network.isServer)
                         {
                             base.networkView.RPC("punchAnimal", RPCMode.Server, new object[] { gameObject.networkView.viewID, limb1 });
                         }
                         else
                         {
                             this.punchAnimal(gameObject.networkView.viewID, limb1);
                         }
                     }
                 }
             }
         }
         if (!this.swinging || Time.realtimeSinceStartup - this.lastSwing <= Viewmodel.model.animation["punchRight"].length)
         {
             this.swinging = false;
         }
         else
         {
             this.swinging  = false;
             this.lastSwing = Time.realtimeSinceStartup;
             this.swung     = true;
             if (!this.right)
             {
                 Viewmodel.play("punchLeft");
                 if (Stance.state == 0)
                 {
                     Player.play("standPunchLeft");
                 }
                 else if (Stance.state == 1)
                 {
                     Player.play("crouchPunchLeft");
                 }
             }
             else
             {
                 Viewmodel.play("punchRight");
                 if (Stance.state == 0)
                 {
                     Player.play("standPunchRight");
                 }
                 else if (Stance.state == 1)
                 {
                     Player.play("crouchPunchRight");
                 }
             }
         }
     }
 }