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);
    }
Example #2
0
        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);
        }
Example #3
0
    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();
        }
    }
Example #5
0
 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;
     }
 }
Example #6
0
    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);
             }
         }
     }
 }
Example #8
0
    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
                           ));
    }
Example #9
0
    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);
        }
    }
Example #10
0
    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);
        }
    }
Example #11
0
 void SpawnArrow()
 {
     arrowClone = Instantiate(arrowPrefab, spawnPoints[Random.Range(0, spawnPoints.Length)]);
     Destroy(arrowClone.gameObject, 8f);
     arrowClone.speed = arrowSpeed;
 }
Example #12
0
 void IBowWeaponItem.ArrowReportMiss(ArrowMovement arrow)
 {
     base.ArrowReportMiss(arrow);
 }
Example #13
0
 void IBowWeaponItem.ArrowReportHit(IDMain hitMain, ArrowMovement arrow)
 {
     base.ArrowReportHit(hitMain, arrow);
 }
Example #14
0
        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;
        }
Example #15
0
    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);
        }
    }
Example #16
0
 public void ArrowReportMiss(ArrowMovement arrow)
 {
     base.datablock.ArrowReportMiss(arrow, base.itemRepresentation);
 }
Example #17
0
 public void ArrowReportHit(IDMain hitMain, ArrowMovement arrow)
 {
     base.datablock.ArrowReportHit(hitMain, arrow, base.itemRepresentation, base.iface as IBowWeaponItem);
 }