Esempio n. 1
0
    public HomeCharacterBase CreateNPC(HomePeople home_people, Transform parent, OutGameSettingsManager.HomeScene.NPC npc)
    {
        //IL_008c: Unknown result type (might be due to invalid IL or missing references)
        //IL_00ac: Unknown result type (might be due to invalid IL or missing references)
        //IL_00cc: Unknown result type (might be due to invalid IL or missing references)
        if (!TutorialStep.IsTheTutorialOver(TUTORIAL_STEP.ENTER_FIELD_03) && npc.npcID != 0)
        {
            return(null);
        }
        OutGameSettingsManager.HomeScene.NPC.Situation situation = npc.GetSituation();
        if (situation == null)
        {
            return(null);
        }
        HomeNPCCharacter homeNPCCharacter = (!npc.overrideComponentName.IsNullOrWhiteSpace()) ? (Utility.CreateGameObjectAndComponent(npc.overrideComponentName, parent, -1) as HomeNPCCharacter) : (Utility.CreateGameObjectAndComponent("HomeNPCCharacter", parent, -1) as HomeNPCCharacter);

        homeNPCCharacter.SetNPCInfo(npc);
        homeNPCCharacter.SetNPCData(Singleton <NPCTable> .I.GetNPCData(npc.npcID));
        homeNPCCharacter.SetHomePeople(home_people);
        homeNPCCharacter._transform.set_position(situation.pos);
        homeNPCCharacter._transform.set_eulerAngles(new Vector3(0f, situation.rot, 0f));
        homeNPCCharacter._transform.set_localScale(new Vector3(npc.scaleX, 1f, 1f));
        homeNPCCharacter.StopDiscussion();
        return(homeNPCCharacter);
    }
Esempio n. 2
0
    protected override void SetupLoginBonus()
    {
        //IL_003f: Unknown result type (might be due to invalid IL or missing references)
        if (validLoginBonus)
        {
            shouldFrameInNPC006 = true;
            CheckLoginBonusFirst();
        }
        else
        {
            HomeNPCCharacter homeNPCCharacter = MonoBehaviourSingleton <LoungeManager> .I.HomePeople.GetHomeNPCCharacter(6);

            homeNPCCharacter.HideShadow();
            HomeDragonRandomMove homeDragonRandomMove = homeNPCCharacter.loader.GetAnimator().get_gameObject().AddComponent <HomeDragonRandomMove>();
            homeDragonRandomMove.Reset();
        }
    }
    private void SetTargetAreaNPC(int npc_id)
    {
        //IL_0058: Unknown result type (might be due to invalid IL or missing references)
        //IL_005e: Expected O, but got Unknown
        //IL_006f: Unknown result type (might be due to invalid IL or missing references)
        //IL_0074: Unknown result type (might be due to invalid IL or missing references)
        if (!(prefab_target_area == null) && MonoBehaviourSingleton <HomeManager> .IsValid() && !(MonoBehaviourSingleton <HomeManager> .I.HomePeople == null))
        {
            HomeNPCCharacter homeNPCCharacter = MonoBehaviourSingleton <HomeManager> .I.HomePeople.GetHomeNPCCharacter(npc_id);

            if (!(homeNPCCharacter == null))
            {
                t_target_area = ResourceUtility.Realizes(prefab_target_area, homeNPCCharacter.get_transform(), -1);
                t_target_area.set_position(homeNPCCharacter.get_transform().get_position());
            }
        }
    }
    public HomeNPCCharacter GetHomeNPCCharacter(int npcID)
    {
        if (charas == null)
        {
            return(null);
        }
        HomeNPCCharacter result = null;

        for (int i = 0; i < charas.Count; i++)
        {
            HomeNPCCharacter homeNPCCharacter = charas[i] as HomeNPCCharacter;
            if (!(homeNPCCharacter == null) && npcID == homeNPCCharacter.npcInfo.npcID)
            {
                result = homeNPCCharacter;
                break;
            }
        }
        return(result);
    }
Esempio n. 5
0
    private IEnumerator LoadEventLock()
    {
        isEventLockLoading = true;
        LoadingQueue loadingQueue = new LoadingQueue(this);
        LoadObject   loadedArrow  = loadingQueue.Load(RESOURCE_CATEGORY.NPC_MODEL, "lockeventbanner", new string[1]
        {
            "LockEventBanner"
        }, false);

        if (loadingQueue.IsLoading())
        {
            yield return((object)loadingQueue.Wait());
        }
        while (waitEventBalloon)
        {
            yield return((object)null);
        }
        HomeNPCCharacter eventNPC = MonoBehaviourSingleton <LoungeManager> .I.HomePeople.GetHomeNPCCharacter(6);

        if (eventNPC != null)
        {
            Vector3   MODEL_OFFSET = new Vector3(0f, 1.79f, 0.504f);
            Transform banner       = Utility.CreateGameObject("EventLockBanner", eventNPC._transform, -1);
            ResourceUtility.Realizes(loadedArrow.loadedObject, banner, -1);
            banner.set_localPosition(MODEL_OFFSET);
            if ((int)MonoBehaviourSingleton <UserInfoManager> .I.userStatus.level < MonoBehaviourSingleton <GlobalSettingsManager> .I.unlockEventLevel)
            {
                banner.get_gameObject().SetActive(true);
            }
            else
            {
                banner.get_gameObject().SetActive(false);
            }
            eventLockMesh = banner;
        }
        isEventLockLoading = false;
        yield return((object)null);
    }
 protected override void PlayNearAnim(HomeNPCCharacter npc)
 {
     //IL_008a: Unknown result type (might be due to invalid IL or missing references)
     if (!MonoBehaviourSingleton <UserInfoManager> .I.isArenaOpen)
     {
         animCtrl.Play(npc.nearAnim, false);
     }
     else if (MonoBehaviourSingleton <UserInfoManager> .I.isJoinedArenaRanking && animCtrl.playingAnim == PLCA.IDLE_01 && isTurned)
     {
         animCtrl.Play(PLCA.THROUGH_BOW, false);
     }
     else if ((int)MonoBehaviourSingleton <UserInfoManager> .I.userStatus.level >= 50)
     {
         if (!isTurned)
         {
             this.StartCoroutine(PlayThroughTurn());
             isTurned = true;
         }
     }
     else
     {
         animCtrl.Play(npc.nearAnim, false);
     }
 }
Esempio n. 7
0
 protected virtual void PlayNearAnim(HomeNPCCharacter npc)
 {
     animCtrl.Play(npc.nearAnim, false);
 }
Esempio n. 8
0
    private IEnumerator DoFreeMove()
    {
        while (true)
        {
            if (waitTime > 0f)
            {
                WaitInFreeMove();
                yield return((object)null);
            }
            else if (discussionTimer != 0f)
            {
                if (discussionTimer < 0f)
                {
                    if (this is HomeNPCCharacter && homePeople.selfChara != null)
                    {
                        HomeNPCCharacter npc = (HomeNPCCharacter)this;
                        if (npc != null && npc.nearAnim != PLCA.IDLE_01)
                        {
                            Vector2 val = homePeople.selfChara._transform.get_position().ToVector2XZ() - _transform.get_position().ToVector2XZ();
                            if (val.get_sqrMagnitude() < 9f)
                            {
                                PlayNearAnim(npc);
                            }
                            else if (animCtrl.playingAnim != animCtrl.defaultAnim)
                            {
                                animCtrl.PlayDefault(false);
                            }
                            yield return((object)null);

                            continue;
                        }
                    }
                    if (this is HomePlayerCharacter)
                    {
                        if (Random.Range(0, 10) == 0)
                        {
                            animCtrl.Play(PlayerAnimCtrl.emotionAnims, false);
                            discussionTimer = Random.Range(2f, 4f);
                        }
                        else if (Random.Range(0, 2) == 0)
                        {
                            animCtrl.Play(PlayerAnimCtrl.talkAnims, false);
                            discussionTimer = Random.Range(5f, 10f);
                        }
                        else
                        {
                            animCtrl.PlayIdleAnims(sexType, false);
                            discussionTimer = Random.Range(3f, 6f);
                        }
                    }
                }
                else
                {
                    discussionTimer -= Time.get_deltaTime();
                }
                yield return((object)null);
            }
            else
            {
                SetupNextWayPoint();
                yield return((object)null);

                if (MonoBehaviourSingleton <HomeManager> .IsValid())
                {
                    moveTargetPos = MonoBehaviourSingleton <HomeManager> .I.HomePeople.GetTargetPos(this, wayPoint);
                }
                else if (MonoBehaviourSingleton <LoungeManager> .IsValid())
                {
                    moveTargetPos = MonoBehaviourSingleton <LoungeManager> .I.HomePeople.GetTargetPos(this, wayPoint);
                }
                while (true)
                {
                    animCtrl.PlayMove(false);
                    Vector3    pos          = _transform.get_position();
                    Vector3    diff         = moveTargetPos - pos;
                    Vector2    val2         = diff.ToVector2XZ();
                    Vector2    dir3         = val2.get_normalized();
                    Quaternion val3         = Quaternion.LookRotation(dir3.ToVector3XZ());
                    Vector3    eulerAngles  = val3.get_eulerAngles();
                    float      rot2         = eulerAngles.y;
                    float      vel2         = 0f;
                    Vector3    eulerAngles2 = _transform.get_eulerAngles();
                    rot2 = Mathf.SmoothDampAngle(eulerAngles2.y, rot2, ref vel2, 0.1f);
                    _transform.set_eulerAngles(new Vector3(0f, rot2, 0f));
                    if (diff.get_magnitude() < 0.75f)
                    {
                        break;
                    }
                    yield return((object)null);
                }
                if (wayPoint.get_name().StartsWith("LEAF"))
                {
                    break;
                }
                if (wayPoint.get_name().StartsWith("WAIT"))
                {
                    while (true)
                    {
                        Vector3 eulerAngles3 = wayPoint.get_transform().get_eulerAngles();
                        float   dir2         = eulerAngles3.y;
                        float   vel          = 0f;
                        Vector3 eulerAngles4 = _transform.get_eulerAngles();
                        dir2 = Mathf.SmoothDampAngle(eulerAngles4.y, dir2, ref vel, 0.1f);
                        _transform.set_eulerAngles(new Vector3(0f, dir2, 0f));
                        vel = Mathf.Abs(vel);
                        if (vel > 15f)
                        {
                            animCtrl.Play(PLCA.WALK, false);
                        }
                        else if (!string.IsNullOrEmpty(wayPoint.waitAnimStateName))
                        {
                            PLCA motion = PlayerAnimCtrl.StringToEnum(wayPoint.waitAnimStateName);
                            animCtrl.Play(motion, false);
                        }
                        else if (this is LoungeMoveNPC)
                        {
                            animCtrl.PlayDefault(false);
                        }
                        else
                        {
                            animCtrl.PlayIdleAnims(sexType, false);
                        }
                        animator.set_applyRootMotion(false);
                        if (vel < 0.01f)
                        {
                            break;
                        }
                        yield return((object)null);
                    }
                    animCtrl.PlayIdleAnims(sexType, false);
                    waitTime = Random.Range(3f, 8f);
                }
                else if (wayPoint.get_name() == "CENTER")
                {
                    waitTime = Random.Range(-3f, 8f);
                }
            }
        }
        Object.Destroy(this.get_gameObject());
    }