Exemple #1
0
 private void TurnHandling()
 {
     ChangeDirection -= Time.deltaTime;                                                                     //timern ökar lite varje frame
     if (ChangeDirection < 0)                                                                               //om timern har gått förbi noll
     {
         Movement = Vector3.Lerp(Movement, WindBehaviour.GetWindMovement(), Mathf.SmoothStep(0f, 1f, .3f)); //börjar röra från startpunkten(Direction) till den nya vindriktningen(WindBehaviour.GetWindMovement)
                                                                                                            //mathf.smoothstep är ungefär likadan men den går snabbare i början och långsamare i slutet
         ChangeDirection = 1f;                                                                              //sätter igång timern igen så att den inte kör klart rotationen
     }
 }
 void SetIndicator()
 {
     IndicatorDir = WindBehaviour.GetWindMovement();
     if (IndicatorDir != Vector2.zero)
     {
         IndicatorDir.Normalize();
         Vector3    up       = new Vector3(0, 0, -1);
         Quaternion rotation = Quaternion.LookRotation(IndicatorDir, up);
         rotation.x = 0;
         rotation.y = 0;
         IndicatorRenderer.transform.rotation = rotation;
     }
 }
 void Start()
 {
     OnCd            = true;
     Charged         = false;
     CamController   = GameObject.Find("CameraController").GetComponent <CameraController>();
     Direction       = WindBehaviour.GetWindMovement();                                 //tar rikningen vinden är när den spawnas
     TornadoSprite   = GetComponentInChildren <SpriteRenderer>();                       //tar spriten för tornado objectets child tornadosprite
     moving          = false;                                                           //den börjar med att inte röra sig då den antas laddas upp även om det är 0.1 sekund
     growing         = true;
     TornadoCollider = GetComponent <CircleCollider2D>();                               //tar en circlecollider på objektet
     DmgDealer       = GetComponent <DamageDealer>();
     CurrentDmg      = DmgDealer.DamageAmount;
     MaxDmg          = CurrentDmg;
     EventManager.TriggerEvent("Tornado");
     StartCoroutine(TornadoSpawnable(4));
 }
Exemple #4
0
    void Start()
    {
        CloudRenderer = GetComponentsInChildren <SpriteRenderer>();
        int index = Random.Range(0, CloudSprites.Length - 1);

        foreach (var renderer in CloudRenderer)
        {
            renderer.sprite = CloudSprites[index];
            Color CloudColor = renderer.color;
            CloudColor.a   = 0.0f;
            renderer.color = CloudColor;
        }

        //Movement = Random.insideUnitCircle.normalized;
        Movement        = WindBehaviour.GetWindMovement();
        ChangeDirection = 0.5f;
    }
 void Update()
 {
     if (TornadoSpeed < 0.2f || TornadoSprite.transform.localScale.x <= 0.00001f)
     {
         Destroy(gameObject);
     }
     SetIndicator();
     if (transform.position.x <= CamController.MinX)
     {
         transform.position = new Vector3(transform.position.x + 57.58f, transform.position.y, 0);
     }
     else if (transform.position.x >= CamController.MaxX)
     {
         transform.position = new Vector3(transform.position.x - 57.58f, transform.position.y, 0);
     }
     if (AbilitiesInput.Charging == true && Charged == false)                                                //kollar om tornadon laddas
     {
         ChargingUpdate();
         Direction = WindBehaviour.GetWindMovement();                                       //tar rikningen vinden är när den spawnas
         if (AbilitiesInput.TornadoIncrease() != 0)
         {
             UpdateSize(true, AbilitiesInput.TornadoIncrease() / 100);
         }
         TornadoCollider.enabled = false;
     }
     else
     {
         TornadoCollider.enabled = true;
         Charged = true;
         DmgDealer.DamageAmount = Mathf.RoundToInt(MaxDmg);
         moving     = true;                                                             //den rör på sig när den inte laddas så det sätts till true
         CurrentDmg = Mathf.MoveTowards(MaxDmg, CurrentDmg, 5 * Time.deltaTime);
         UpdateSize(false, 0.001f);
     }
     if (moving == true)
     {
         MovingUpdate();
     }
 }
    public static WindBehaviour instance;                                                                               //för att säga att det är just den här verisionen av scriptet som ska användas


    void Start()
    {
        WindMovement          = Vector2.up;
        WindIndicatorRenderer = GetComponentsInChildren <Image>()[1];                                           //getcomponent av pekarens sprite som ska flyttas och roteras
        instance = this;                                                                                        //klargör att instance är just det här scriptet
    }