public void ArrowReportMiss(ArrowMovement arrow, ItemRepresentation itemRepresentation) { BitStream stream = new BitStream(false); stream.Write <Vector3>(arrow.transform.position, new object[0]); itemRepresentation.ActionStream(3, RPCMode.Server, stream); }
public string MoveSelection(ArrowMovement arrowMovement) { string selectedValue = null; if (_AutoCompleteList != null && _AutoCompleteList.Count > 0) { if (arrowMovement == ArrowMovement.Up) { _ArrowPosition--; if (_ArrowPosition < 0) { _ArrowPosition = _AutoCompleteList.Count() - 1; } } else if (arrowMovement == ArrowMovement.Down) { _ArrowPosition++; if (_ArrowPosition > _AutoCompleteList.Count() - 1) { _ArrowPosition = 0; } } selectedValue = _AutoCompleteList[_ArrowPosition]; } return(selectedValue); }
void Impact(Vector3 pos, Vector3 normal, GameObject hitObject) { myRigidbody.constraints = RigidbodyConstraints.FreezeAll; ArrowMovement moveScript = GameObject.Find("Player").GetComponent <ArrowMovement>(); int num = moveScript.ArrowsRemaining; if (hitObject.CompareTag("Target")) { hitObject.tag = "Disabled"; targetNumber--; moveScript.targetNumber = targetNumber; } if (targetNumber == 0) { if (UIReceiver.Mode == "Classic") { LoadManager.Instance.LoadSceneAdditive(SceneNames.CLASSIC_SUCCESS, false); moveScript.GameOver(); } } if (num <= 0 && targetNumber > 0) { LoadManager.Instance.LoadSceneAdditive(SceneNames.CLASSIC_FAIL, false); moveScript.GameOver(); } }
public void SetTurn() { Debug.Log("Turn: " + turn); if (turn != client.id) { guessPanel.SetActive(false); GameObject cup = GameObject.Find(client.players[turn].Cup + "Cup"); GameObject arrow = GameObject.Find("arrow"); arrow.transform.position = new Vector3(cup.transform.position.x, cup.transform.position.y + 0.7f, cup.transform.position.z); ArrowMovement arrowScript = arrow.GetComponent <ArrowMovement>(); arrowScript.start = cup.transform.position.y + 0.7f; arrowScript.end = cup.transform.position.y + 1.0f; arrowScript._timeStartedLerping = Time.time; arrowScript.direction = true; arrowScript.moving = true; Text name = GameObject.Find("Canvas/CurrentTurn/CurrentTurnName").GetComponent <Text>(); name.text = client.players[turn].Name + "'s Turn"; } else { Text name = GameObject.Find("Canvas/CurrentTurn/CurrentTurnName").GetComponent <Text>(); name.text = "Your Turn"; GameObject cup = GameObject.Find("Player"); GameObject arrow = GameObject.Find("arrow"); ArrowMovement arrowScript = arrow.GetComponent <ArrowMovement>(); arrowScript.moving = false; arrow.transform.position = new Vector3(cup.transform.position.x, cup.transform.position.y - 5f, cup.transform.position.z); guessPanel.SetActive(true); SetPanel(); } }
void InstantiateArrow(Collider2D collider) { if (collider != null) { newArrow = Instantiate(arrow) as GameObject; arrowTransform = newArrow.transform; // Set the arrow position to be just in front of the moblin, according to the moblin and the tower position arrowTransform.position = new Vector3(transform.position.x + (Mathf.Cos((collider.transform.position.x - transform.position.x)) * 0.5f), transform.position.y + (Mathf.Sin((collider.transform.position.y - transform.position.y)) * 0.2f), transform.position.z); // Set the path the arrow has to follow relative = collider.gameObject.transform.position - transform.position; targetAngle = Mathf.Atan2(relative.y, relative.x) * Mathf.Rad2Deg - 90; transform.rotation = Quaternion.Euler(0, 0, targetAngle); moblinMovScript.rotate = false; movScript = newArrow.GetComponent("ArrowMovement") as ArrowMovement; movScript.pathName = collider.gameObject.name; movScript.active = true; } else { anim.Play("bowMoblinWalk"); moblinMovScript.movementSpeed = 10; alreadyAttacking = false; moblinMovScript.rotate = true; } }
void Shoot(Transform enemyTransform) { Vector3 spawnPosition = gameObject.transform.position; GameObject arrow = Instantiate(Projectile, spawnPosition, Quaternion.Euler(0, 0, 0)) as GameObject; ArrowMovement arrowScript = arrow.GetComponent <ArrowMovement>(); arrowScript.enemyTransform = enemyTransform; sound.Play(); }
public void ArrowReportHit(IDMain hitMain, ArrowMovement arrow, ItemRepresentation itemRepresentation, IBowWeaponItem itemInstance) { if (hitMain != null) { TakeDamage component = hitMain.GetComponent <TakeDamage>(); if (component != null) { BitStream stream = new BitStream(false); stream.Write <NetEntityID>(NetEntityID.Get((MonoBehaviour)hitMain), new object[0]); stream.Write <Vector3>(hitMain.transform.position, new object[0]); itemRepresentation.ActionStream(2, RPCMode.Server, stream); Character shooterOrNull = itemInstance.character; if ((component != null) && component.ShouldPlayHitNotification()) { this.PlayHitNotification(arrow.transform.position, shooterOrNull); } } } }
public override void StartAttack() { if (lastLaunchTime > 0.0f && Time.time < (lastLaunchTime + coolDown)) { // we cannot fire yet, so wait return; } // play the sound effect if (soundEffectPlayer != null) { soundEffectPlayer.PlayBowSound(); } // remember time for cooldown purposes lastLaunchTime = Time.time; // show the attack animation animator.SetBool("Attack", true); // spawn a new arrow StartCoroutine(DelayedAction( () => { // rotate the arrow Quaternion rotation = Quaternion.Euler(GetRotation()); // position the arrow Vector3 position = arrowSpawnPosition.position; // spawn the arrow GameObject arrow = Instantiate(arrowPrefab, position, rotation); ArrowMovement arrowMovement = arrow.GetComponent <ArrowMovement>(); arrowMovement.direction = GetAttackDirection(); arrowMovement.targetLayerName = targetLayerName; arrowMovement.lifetime = projectileLifetime; arrowMovement.rangedDamage = arrowDamage; arrowMovement.attacker = this; }, arrowSpawnDelay )); }
public void CreateShootArrow() { if (cooldown <= 0.0f) { Vector3 fromTo = mousePos - transform.position; float length = new Vector2(fromTo.x, fromTo.y).magnitude; float rotation = Mathf.Atan2(fromTo.y, fromTo.x) * Mathf.Rad2Deg; GameObject obj = (GameObject)Instantiate(arrowPrefab, new Vector3(arrowStartTransform.position.x, arrowStartTransform.position.y, 0.0f), Quaternion.identity); //obj.transform.position = transform.position; ArrowMovement arrow = obj.GetComponent <ArrowMovement>(); float speed = Mathf.Clamp(length, minArrowSpeed, maxArrowSpeed); arrow.direction = new Vector2(fromTo.x / length, fromTo.y / length) * speed; cooldown = totalCooldown; //Debug.DrawRay(transform.position ,fromTo, Color.red, 1.0f); //sound for shooting AudioSource.PlayClipAtPoint(shootingSound, transform.position, 1f); } }
public void ArrowReportHit(IDMain hitMain, ArrowMovement arrow, ItemRepresentation itemRepresentation, IBowWeaponItem itemInstance) { if (!hitMain) { return; } TakeDamage component = hitMain.GetComponent <TakeDamage>(); if (!component) { return; } uLink.BitStream bitStream = new uLink.BitStream(false); bitStream.Write <NetEntityID>(NetEntityID.Get(hitMain), new object[0]); bitStream.Write <Vector3>(hitMain.transform.position, new object[0]); itemRepresentation.ActionStream(2, uLink.RPCMode.Server, bitStream); Character character = itemInstance.character; if (component && component.ShouldPlayHitNotification()) { this.PlayHitNotification(arrow.transform.position, character); } }
void SpawnArrow() { arrowClone = Instantiate(arrowPrefab, spawnPoints[Random.Range(0, spawnPoints.Length)]); Destroy(arrowClone.gameObject, 8f); arrowClone.speed = arrowSpeed; }
void IBowWeaponItem.ArrowReportMiss(ArrowMovement arrow) { base.ArrowReportMiss(arrow); }
void IBowWeaponItem.ArrowReportHit(IDMain hitMain, ArrowMovement arrow) { base.ArrowReportHit(hitMain, arrow); }
public string MoveSelection(ArrowMovement arrowMovement) { string selectedValue = null; if (_AutoCompleteList != null && _AutoCompleteList.Count > 0) { if (arrowMovement == ArrowMovement.Up) { _ArrowPosition--; if (_ArrowPosition < 0) _ArrowPosition = _AutoCompleteList.Count() - 1; } else if (arrowMovement == ArrowMovement.Down) { _ArrowPosition++; if (_ArrowPosition > _AutoCompleteList.Count() - 1) _ArrowPosition = 0; } selectedValue = _AutoCompleteList[_ArrowPosition]; } return selectedValue; }
private void Update() { Vector3 vector3; Vector3 vector31; GameObject gameObject; Rigidbody rigidbody; if (this.impacted) { return; } float single = Time.time - this.lastUpdateTime; this.lastUpdateTime = Time.time; RaycastHit raycastHit = new RaycastHit(); RaycastHit2 raycastHit2 = RaycastHit2.invalid; base.transform.Rotate(Vector3.right, this.dropDegreesPerSec * single); Ray ray = new Ray(base.transform.position, base.transform.forward); bool flag = true; if (!Physics2.Raycast2(ray, out raycastHit2, this.speedPerSec * single, this.layerMask)) { Transform transforms = base.transform; transforms.position = transforms.position + ((base.transform.forward * this.speedPerSec) * single); ArrowMovement arrowMovement = this; arrowMovement.distance = arrowMovement.distance + this.speedPerSec * single; } else { if (!flag) { vector31 = raycastHit.normal; vector3 = raycastHit.point; gameObject = raycastHit.collider.gameObject; rigidbody = raycastHit.rigidbody; } else { vector31 = raycastHit2.normal; vector3 = raycastHit2.point; gameObject = raycastHit2.gameObject; rigidbody = raycastHit2.rigidbody; } Quaternion quaternion = Quaternion.LookRotation(vector31); Vector3 vector32 = Vector3.zero; int num = gameObject.layer; bool flag1 = true; if (rigidbody && !rigidbody.isKinematic && !rigidbody.CompareTag("Door")) { rigidbody.AddForceAtPosition(Vector3.up * 200f, vector3); rigidbody.AddForceAtPosition(ray.direction * 1000f, vector3); } if (num == 17 || num == 18 || num == 27 || num == 21) { flag1 = false; } else { vector32 = vector3 + (vector31 * 0.01f); } this.impacted = true; base.transform.position = vector3; this.TryReportHit(gameObject); base.transform.parent = gameObject.transform; TrailRenderer component = base.GetComponent <TrailRenderer>(); if (component) { component.enabled = false; } base.audio.enabled = false; if (gameObject) { SurfaceInfoObject surfaceInfoFor = SurfaceInfo.GetSurfaceInfoFor(gameObject, vector3); surfaceInfoFor.GetImpactEffect(SurfaceInfoObject.ImpactType.Bullet); UnityEngine.Object obj = UnityEngine.Object.Instantiate(surfaceInfoFor.GetImpactEffect(SurfaceInfoObject.ImpactType.Bullet), vector3, quaternion); UnityEngine.Object.Destroy(obj, 1.5f); this.TryReportMiss(); } UnityEngine.Object.Destroy(base.gameObject, 20f); } if (this.distance > this.maxRange || Time.time - this.spawnTime > this.maxLifeTime) { UnityEngine.Object.Destroy(base.gameObject); } }
public void ArrowReportMiss(ArrowMovement arrow) { base.datablock.ArrowReportMiss(arrow, base.itemRepresentation); }
public void ArrowReportHit(IDMain hitMain, ArrowMovement arrow) { base.datablock.ArrowReportHit(hitMain, arrow, base.itemRepresentation, base.iface as IBowWeaponItem); }