public RDHorseController __Gen_Delegate_Imp33(object self, UnityEngine.Vector3 pos)
        {
#if THREAD_SAFT || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
            RealStatePtr L = luaEnv.rawL;
            int err_func   = LuaAPI.load_error_func(L, errorFuncRef);
            ObjectTranslator translator = luaEnv.translator;

            LuaAPI.lua_getref(L, luaReference);

            translator.PushAny(L, self);
            translator.PushUnityEngineVector3(L, pos);

            int __gen_error = LuaAPI.lua_pcall(L, 2, 1, err_func);
            if (__gen_error != 0)
            {
                luaEnv.ThrowExceptionFromError(err_func - 1);
            }


            RDHorseController __gen_ret = (RDHorseController)translator.GetObject(L, err_func + 1, typeof(RDHorseController));
            LuaAPI.lua_settop(L, err_func - 1);
            return(__gen_ret);

#if THREAD_SAFT || HOTFIX_ENABLE
        }
#endif
        }
Exemple #2
0
    IEnumerator GameLoop()
    {
        // give player a horse
        RDHorseController horse = AddHorse(player.transform.position);

        player.GetComponent <RiderController> ().RideHorse(horse, false);

        // Waiting for click...
        yield return(StartCoroutine(RoundStarting()));

        if (AutoGenerateHorse)
        {
            InvokeRepeating("GenerateHorse", 0, 3f);
        }

        player.horse.GetComponent <RDHorseController> ().Run = true;

        // Guide user to control the player...
        yield return(StartCoroutine(RoundGuiding()));

        // Game playing...
        yield return(StartCoroutine(RoundPlaying()));

        // set timescale normal
        Time.timeScale = 1;

        //gameover, do some dirty work...
        GameOver();

        // Game end, waiting for click the restart button...
        yield return(StartCoroutine(RoundEnding()));

        // Restart button pressed, do sone clean up and reload the scene...
        Restart();
    }
Exemple #3
0
 public void RideHorse(RDHorseController horse, bool run)
 {
     ResetCircle();
     if (horse != null)
     {
         m_jumping = false;
         anim.SetBool(JumpHash, false);
         Time.timeScale             = 1;
         rigidBody.useGravity       = false;
         rigidBody.isKinematic      = true;
         rigidBody.detectCollisions = false;              //屏蔽rigidbody
         transform.SetParent(horse.riderParent.transform);
         transform.localPosition = Vector3.zero;
         transform.localRotation = Quaternion.Euler(new Vector3(0, -90, -90));
         if (this.horse)
         {
             this.horse.GetComponent <RDHorseController> ().onCowboyLeave();
         }
         this.horse = horse.gameObject;
         horse.onCowboyRide(this);
         if (run)
         {
             horse.Run = true;
         }
     }
 }
Exemple #4
0
    RDHorseController AddHorse(Vector3 pos)
    {
        int t = Random.Range(0, instanableHorse.Length);
        //t = 4;
        GameObject        newHorse = Instantiate(instanableHorse [t]);
        RDHorseController horse    = newHorse.GetComponent <RDHorseController> ();

        newHorse.transform.position += pos;
        horse.circle = circle;
        return(horse);
    }
Exemple #5
0
    void GenerateHorse()
    {
        int count = Random.Range(1, 4);

        for (int i = 0; i < count; i++)
        {
            Vector3 PlayerPos = player.transform.position;
            PlayerPos.y  = 0;
            PlayerPos.x += Random.Range(-8, 8);
            PlayerPos.z += 20 + Random.Range(5, 10);
            RDHorseController horse = AddHorse(PlayerPos);
            horse.Run = true;
        }
    }
Exemple #6
0
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Player"))
        {
            bool IsCowBoy = false;
            if (other.gameObject.GetComponent <RiderController> () != null)
            {
                IsCowBoy = true;
            }

            RDHorseController rd = other.gameObject.GetComponent <RDHorseController> ();
            if (IsCowBoy || (!Trigger && rd != null && rd.BeenRide))
            {
                // should add a tile...
                //TODO: use a objectPool
                Trigger = !Trigger;
                GameObject newTile = Instantiate(Tile);
                newTile.transform.SetParent(gameObject.transform.parent.transform);
                newTile.GetComponent <AutoTerrain> ().SetileIndex = ++TileIndex;
            }
        }
    }
Exemple #7
0
 // Use this for initialization
 void Start()
 {
     hc = GetComponent <RDHorseController> ();
     rb = GetComponent <Rigidbody> ();
 }