public bool FireGun(int directionX, bool topPosition) { if (PullTriggerReady()) { lastShot = Time.time; if (HasAmmunition()) { SoundManager.PlaySFX(gunStruct.gunShotSound); Bullet newBullet = Instantiate(gunStruct.bullet, muzzlePosition.position, muzzlePosition.rotation); newBullet.InitBullet(gunStruct.bulletSpeed, gunStruct.damageModifier, directionX); newBullet.transform.parent = EffectParent.GetInstance().transform; // Create empty shell ThrowShell(directionX, topPosition); // remove bullet from clip currentClip--; // remove bullet from inventory //Inventory.instance.bullets[gunStruct.bullet.bulletType]--; GuiController.GetInstance().RefreshBulletCount(currentClip, Inventory.GetInstance().bullets[gunStruct.bullet.bulletType]); return(true); } else { SoundManager.PlaySFX(gunStruct.gunEmptySound); return(false); } } return(false); }
private void CreateDestroyEffect() { GameObject explosionGO = Instantiate(destroyEffect, transform.position, transform.rotation); if (cart != null) { explosionGO.transform.localScale = new Vector3(cart.transform.localScale.x, cart.transform.localScale.y, cart.transform.localScale.z); } explosionGO.transform.parent = EffectParent.GetInstance().transform; GameObject textGO = Instantiate(textEffect, transform.position, transform.rotation); textGO.transform.parent = EffectParent.GetInstance().transform; TextMesh textMesh = textGO.GetComponentInChildren <TextMesh>(); textMesh.text = "FOOBEAR"; }
public override void DamageEvent() { // change sprite if (damageSprites.Length > damage) { spriteRenderer.sprite = damageSprites[damage]; damage++; } // play sound SoundManager.PlaySFX(impactSound); // instanciate sparkEmitter GameObject go = Instantiate(impactEffect, transform.position, transform.rotation); go.transform.localScale = new Vector3(cart.transform.localScale.x, cart.transform.localScale.y, cart.transform.localScale.z); go.transform.parent = EffectParent.GetInstance().transform; }
private void ThrowShell(int directionX, bool topPosition) { if (shellBounceArray != null && shellBounceArray.Length > 0) { int random = Random.Range(0, this.shellBounceArray.Length); GameObject shellBounceInstance = Instantiate(shellBounceArray[random].gameObject, transform.position, transform.rotation); Vector3 shellScale = shellBounceInstance.transform.localScale; shellBounceInstance.transform.localScale = new Vector3(directionX * shellScale.x, shellScale.y, shellScale.z); shellBounceInstance.transform.parent = EffectParent.GetInstance().transform; SpriteRenderer sr = shellBounceInstance.GetComponent <SpriteRenderer>(); Coordinates coordinates = GameObject.FindObjectOfType <Coordinates>(); if (shellBounceInstance.transform.position == coordinates.bottom.transform.position) { sr.sortingOrder = 4; } } }
public override void DestroyEvent() { SoundManager.PlaySFX(explosionSound); GameObject explosionGO = Instantiate(explosionEffect, transform.position, transform.rotation); if (cart != null) { explosionGO.transform.localScale = new Vector3(cart.transform.localScale.x, cart.transform.localScale.y, cart.transform.localScale.z); } explosionGO.transform.parent = EffectParent.GetInstance().transform; // shake Camera CameraShake.GetInstance().StartShake(.1f, .2f); if (Random.value < chanceLoot) { GameObject packageGO = Instantiate(GameController.GetInstance().spawnObject, transform.position, transform.rotation); Package lootPackage = packageGO.GetComponent <Package>(); lootPackage.lootAmount = lootAmount; } Destroy(gameObject); }