예제 #1
0
 void Initialize()
 {
     if (!Tornado)
     {
         Tornado = FindObjectOfType <Tornado>().transform.root;
     }
     if (!tornadoController)
     {
         tornadoController = FindObjectOfType <TornadoController>();
     }
     if (!Car)
     {
         Car = FindObjectOfType <Car>().transform;
     }
     if (!Camera)
     {
         Camera = Camera.main;
     }
     if (!Road)
     {
         Road = FindObjectOfType <Road>();
     }
     startPoint   = Road.Platforms[0].StartPoint.transform;
     Car.position = startPoint.position;
     Car.rotation = startPoint.rotation;
     //  Camera.transform.LookAt(Car.transform);
     Tornado.rotation = startPoint.rotation;
     Tornado.position = startPoint.position + Tornado.forward * 10;
 }
예제 #2
0
    void Select(GameObject go)
    {
        switch (go.name)
        {
        case "TornadoShell":
            TornadoController tc = go.GetComponentInParent <TornadoController> ();
            tc.isSelected = true;
            break;

        case "CarShell":
            EmptyCarController ecc = go.GetComponentInParent <EmptyCarController> ();
            ecc.isSelected = true;
            break;

        case "SharkShell":
            EmptySharkController esc = go.GetComponentInParent <EmptySharkController> ();
            esc.isSelected = true;
            break;

        case "CowShell":
            CowController cc = go.GetComponentInParent <CowController> ();
            cc.isSelected = true;
            break;

        case "Barn":
            EmptyBarnController ebc = go.GetComponentInParent <EmptyBarnController> ();
            ebc.isSelected = true;
            break;
        }
    }
예제 #3
0
        public static bool OnEnterCollapseTrigger(TornadoController __instance,
                                                  GameObject hitObject)
        {
            if (QSBCore.IsHost && hitObject.GetComponentInParent <OWRigidbody>().GetMass() > 50f)
            {
                __instance.StartCollapse();
                var qsbTornado = __instance.GetWorldObject <QSBTornado>();
                qsbTornado.SendMessage(new TornadoFormStateMessage(qsbTornado.FormState));
            }

            return(false);
        }
    public void CreateTornado(Vector3 tornadoPos, Vector3 tornadoScale /*, TornadoType newType*/)
    {
        //TornadoType newType = GetRandomTornado();   //For Test
        TornadoType newType = TornadoType.Lightning;   //For Test

        //config.tornadoType = newType;

        GameObject newTornado = Instantiate(GetTornadoPrefab(newType));

        newTornado.transform.localScale = tornadoScale;

        TornadoController newTornadoC = newTornado.GetComponent <TornadoController>();

        newTornadoC.Init(this, uiController, tornadoScale.x);
    }
    // Use this for initialization
    void Start()
    {
        transform.position = Vector3.zero;

        tc  = GetComponentInChildren <TornadoController> ();
        ecc = GetComponentInChildren <EmptyCarController> ();
        esc = GetComponentInChildren <EmptySharkController> ();
        sc  = GetComponentInChildren <SharkController> ();
        cc  = GetComponentInChildren <CowController> ();
        ebc = GetComponentInChildren <EmptyBarnController> ();
        sbc = GetComponentInChildren <SpinBarnController> ();

        tornado    = GameObject.Find("Tornado");
        car        = GameObject.Find("Car");
        emptyCar   = GameObject.Find("EmptyCar");
        shark      = GameObject.Find("Shark");
        emptyShark = GameObject.Find("EmptyShark");
        emptySpin  = GameObject.Find("EmptySpin");
        emptyBarn  = GameObject.Find("EmptyBarn");


        tornadoOldSpeed   = 0;
        carOldSpeed       = 0;
        sharkOldSpeed     = 0;
        sharkOldOsciSpeed = 0;
        barnOldSpeed      = 0;
        barnOldSpinSpeed  = 0;
        cowOldSpeed       = 0;

        allPaused   = false;
        barnPaused  = false;
        sharkPaused = false;
        carPaused   = false;

        windowRect       = new Rect(0, 0, 600, 200);
        tornadoScale     = 1.0F;
        barnRotateSpeed  = 40.0f;
        barnSpinSpeed    = 100.0F;
        sharkRotateSpeed = 60.0f;
        sharkOsciSpeed   = 30.0f;
        sharkOsciRange   = 8.0F;
        carRotateSpeed   = 30.0F;
        carDirection     = 180.0F;
    }
예제 #6
0
        public static bool FixedUpdate(TornadoController __instance)
        {
            if (QSBCore.IsHost && __instance._secondsUntilFormation > 0f)
            {
                __instance._secondsUntilFormation -= Time.fixedDeltaTime;
                if (__instance._secondsUntilFormation < 0f)
                {
                    __instance.StartFormation();
                    var qsbTornado = __instance.GetWorldObject <QSBTornado>();
                    qsbTornado.SendMessage(new TornadoFormStateMessage(qsbTornado.FormState));
                    return(false);
                }
            }
            else
            {
                if (__instance._tornadoCollapsing)
                {
                    __instance.UpdateCollapse();
                }
                else if (__instance._tornadoForming)
                {
                    __instance.UpdateFormation();
                }

                if (__instance._isSectorOccupied)
                {
                    __instance.UpdateAnimation();
                    if (__instance._wander)
                    {
                        var num              = Mathf.PerlinNoise(Time.time * __instance._wanderRate, 0f) * 2f - 1f;
                        var num2             = Mathf.PerlinNoise(Time.time * __instance._wanderRate, 5f) * 2f - 1f;
                        var localEulerAngles = new Vector3(num * __instance._wanderDegreesX, 0f, num2 * __instance._wanderDegreesZ);
                        __instance.transform.localEulerAngles = localEulerAngles;
                    }
                }
            }

            return(false);
        }