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"); } }
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); }
void Start() { enabled = false; if (reloadHalf == reloadEnd) { reloadHalf = !reloadEnd; } primitiveWeapon = GetComponentInParent <PrimitiveWeapon>(); magazineRevolver = GetComponentInParent <PrimitiveWeapon> ().GetComponentInChildren <Magazine> (); trigger = GetComponentInParent <PrimitiveWeapon> ().GetComponentInChildren <Trigger> (); }
private void OnEnable() { //Debug.Log("enabled"); primitiveWeapon = GetComponentInParent <PrimitiveWeapon>(); if ((!primitiveWeapon.attachMagazine || primitiveWeapon.attachMagazine.ammo <= 0) && primitiveWeapon.holdOpen) { holdOpen = true; } else { holdOpen = false; } }
void Start() { MagazineColliders = GetComponentsInChildren <Collider> (); if (Revolver) { primitiveWeaponRevolver = GetComponentInParent <PrimitiveWeapon>(); stickingAmmo.AddRange(new Bullet[capacity]); enabled = true; } else { enabled = false; } }
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; } }
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; } } }
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; } }
; public TypeShoot typeShoot; //safeguard void Start() { primitiveWeapon = GetComponentInParent <PrimitiveWeapon> (); manualReload = primitiveWeapon.GetComponentInChildren <ManualReload> (); }