Ejemplo n.º 1
0
        private static Weapon getActualWeapon(PrimitiveWeapon primWep, PrimitiveIteamWeaponInfo info)
        {
            switch (primWep.wi_weapon_type)
            {
            case WeaponType.Melee:
                return(handleMeleeCase(primWep, info));

            case WeaponType.Rifle:
                return(handleCaseRifle(primWep, info));

            case WeaponType.Shotgun:
                return(handleCaseShotgun(primWep, info));

            case WeaponType.Sniper:
                return(handleCaseSniper(primWep, info));

            case WeaponType.Minigun:
                return(handleCaseMinigun(primWep, info));

            case WeaponType.Bazooka:
                return(handleCaseBazooka(primWep, info));

            case WeaponType.Grenade:
                return(handleCaseGrenade(primWep, info));

            default:
                throw new ArgumentException("Illegal weapon type");
            }
        }
Ejemplo n.º 2
0
        private static Weapon handleMeleeCase(PrimitiveWeapon primWep, PrimitiveIteamWeaponInfo info)
        {
            Weapon wep = new Melee(primWep.wi_ability_a, primWep.wi_ability_b,
                                   primWep.wi_ability_c, primWep.wi_ability_d);

            setWeaponStats(wep, primWep, info);
            return(wep);
        }
Ejemplo n.º 3
0
 void Start()
 {
     enabled = false;
     if (reloadHalf == reloadEnd)
     {
         reloadHalf = !reloadEnd;
     }
     primitiveWeapon  = GetComponentInParent <PrimitiveWeapon>();
     magazineRevolver = GetComponentInParent <PrimitiveWeapon> ().GetComponentInChildren <Magazine> ();
     trigger          = GetComponentInParent <PrimitiveWeapon> ().GetComponentInChildren <Trigger> ();
 }
Ejemplo n.º 4
0
 private void OnEnable()
 {
     //Debug.Log("enabled");
     primitiveWeapon = GetComponentInParent <PrimitiveWeapon>();
     if ((!primitiveWeapon.attachMagazine || primitiveWeapon.attachMagazine.ammo <= 0) && primitiveWeapon.holdOpen)
     {
         holdOpen = true;
     }
     else
     {
         holdOpen = false;
     }
 }
Ejemplo n.º 5
0
 void Start()
 {
     MagazineColliders = GetComponentsInChildren <Collider> ();
     if (Revolver)
     {
         primitiveWeaponRevolver = GetComponentInParent <PrimitiveWeapon>();
         stickingAmmo.AddRange(new Bullet[capacity]);
         enabled = true;
     }
     else
     {
         enabled = false;
     }
 }
Ejemplo n.º 6
0
 public void GrabStart(CustomHand hand)
 {
     if (primitiveWeapon)
     {
         primitiveWeapon.attachMagazine = null;
         transform.parent = null;
         canLoad          = true;
         for (int i = 0; i < primitiveWeapon.myCollidersToIgnore.Length; i++)
         {
             for (int j = 0; j < MagazineColliders.Length; j++)
             {
                 Physics.IgnoreCollision(primitiveWeapon.myCollidersToIgnore[i], MagazineColliders[j], false);
             }
         }
         primitiveWeapon = null;
     }
 }
Ejemplo n.º 7
0
 private static void setWeaponStats(Weapon wep, PrimitiveWeapon primWep, PrimitiveIteamWeaponInfo info)
 {
     wep.Id          = primWep.wi_id;
     wep.Description = info.ii_desc;
     wep.Name        = info.ii_name;
     wep.MeshPath    = info.ii_meshfilename;
     wep.AmmoClip    = primWep.wi_bullet_capacity;
     wep.TotalAmmo   = primWep.wi_bullet_total;
     wep.ChangeTime  = primWep.wi_change_time;
     foreach (var icon in  primIcons)
     {
         if (icon.ii_id == info.ii_icon)
         {
             wep.IconFile = icon.ii_filename;
             break;
         }
     }
 }
Ejemplo n.º 8
0
    public void DropMagazine()
    {
        this.GetComponent <PhysicalObject>().saveVariables.LoadProperty(this.GetComponent <Rigidbody>());
        //Debug.Log("dropped mag");
        if (primitiveWeapon)
        {
            primitiveWeapon.attachMagazine = null;
            transform.parent = null;
            canLoad          = true;
            GetComponent <PhysicalObject>().SetDistanceGrabbable(true);
            for (int i = 0; i < primitiveWeapon.myCollidersToIgnore.Length; i++)
            {
                for (int j = 0; j < MagazineColliders.Length; j++)
                {
                    Physics.IgnoreCollision(primitiveWeapon.myCollidersToIgnore[i], MagazineColliders[j], false);
                }
            }
            primitiveWeapon.previousMagazine = null;
            primitiveWeapon = null;
        }

        switch (dropBehavior)
        {
        case DropBehavior.DestroyEmpty:
            if (ammo <= 0)
            {
                GetComponent <PhysicalObject>().isInteractible = false;
                StartCoroutine(DestroySelf(TimeToDestroy));
            }
            break;

        case DropBehavior.DestroyAll:
            GetComponent <PhysicalObject>().isInteractible = false;
            StartCoroutine(DestroySelf(TimeToDestroy));
            break;

        case DropBehavior.DestroyNone:
            break;
        }
    }
Ejemplo n.º 9
0
    ; public TypeShoot typeShoot;   //safeguard

    void Start()
    {
        primitiveWeapon = GetComponentInParent <PrimitiveWeapon> ();
        manualReload    = primitiveWeapon.GetComponentInChildren <ManualReload> ();
    }