protected virtual IEnumerator HandleSpawnCharacter() { var heroData = CTaskUtil.Get(CTaskUtil.HERO_DATA) as CHeroData; this.m_CharacterController = Instantiate(Resources.Load <CHeroController>("CharacterPrefabs/" + heroData.objectModel)); yield return(this.m_CharacterController); // Init Events this.m_CharacterController.AddAction("StartIdleState", this.OnPlayerStartRollDice); this.m_CharacterController.AddAction("MovedBlockState", this.OnPlayerMovedToBlock); // INIT DATA this.m_CharacterController.SetData(heroData); this.m_CharacterController.SetActive(true); this.m_CharacterController.Init(); // SET CURRENT BLOCK var currentBlock = this.m_MapManager.CalculateCurrentBlock(this.m_CharacterController.GetStep()); this.m_CharacterController.currentBlock = currentBlock; this.m_CharacterController.targetBlock = currentBlock; this.m_CharacterController.SetPosition(currentBlock.GetMovePointPosition()); // LOADING COMPLETED this.m_LoadingCompleted = true; if (this.OnEventLoadingCompleted != null) { this.OnEventLoadingCompleted(); } CUIGameManager.Instance.OnLoadCharacterInfo(this.m_CharacterController, false); CUIGameManager.Instance.OnUpdateCurrentEnergy(heroData.currentEnergy, heroData.maxEnergy); CUIGameManager.Instance.OnUpdateCurrentGold(heroData.currentGold); }
// START LOAD CHARACTER public virtual void StartLoading() { this.m_MiniFightingData = CTaskUtil.Get(CTaskUtil.MINI_FIGHTING_DATA) as CMiniFightingData; // LOAD PLAYER CONTROLLER StartCoroutine(this.HandleSpawnCharacter(this.m_MiniFightingData.playerData, this.m_PlayerSpawnPoint, (ctrl) => { this.m_PlayerController = ctrl; })); // LOAD ENEMY CONTROLLER StartCoroutine(this.HandleSpawnCharacter(this.m_MiniFightingData.enemyData, this.m_EnemySpawnPoint, (ctrl) => { this.m_EnemyController = ctrl; })); // LOAD SEED UnityEngine.Random.InitState(this.m_MiniFightingData.randomSeed); }