Beispiel #1
0
 public IEnumerator EndAction()
 {
     if (this.isActive)
     {
         this.isActive = false;
         if (this.StateRoutine != null && this.actionEnumerator != null)
         {
             base.StopCoroutine(this.actionEnumerator);
             this.actionEnumerator = null;
             this.StopSubRoutine();
         }
         this.cancelState = FarmDigimon.CancelState.START;
         if (this.CancelRoutine != null)
         {
             this.CancelRoutine();
         }
         this.actionState = FarmDigimon.ActionState.NONE;
         base.StopCoroutine(this.mainEnumerator);
         this.mainEnumerator = null;
         while (this.cancelState != FarmDigimon.CancelState.END)
         {
             yield return(null);
         }
         this.cancelEnumerator = null;
     }
     yield break;
 }
Beispiel #2
0
    private IEnumerator TouchAction()
    {
        yield return(base.StartCoroutine(this.EndAction()));

        this.farmDigimonAI.CreateActionParam(FarmDigimonAI.ActionID.TOUCH_ACTION);
        this.actionState = FarmDigimon.ActionState.ACT;
        this.StartAction();
        if (this.IsFriendShipUp && DateTime.MinValue != this.memoryNextTime)
        {
            if ((this.memoryNextTime - ServerDateTime.Now).TotalSeconds <= 0.0 && this.memoryNextTime != DateTime.MinValue)
            {
                int friendshipMaxValue = MonsterFriendshipData.GetFriendshipMaxValue(this.monsterData.monsterMG.growStep);
                int num = int.Parse(this.monsterData.userMonster.friendship);
                if (num < friendshipMaxValue)
                {
                    this.beforeFriendship = this.monsterData.userMonster.friendship;
                    this.UpFriendStatus();
                }
                else
                {
                    this.PopBalloon(false);
                }
            }
            else
            {
                this.PopBalloon(false);
            }
        }
        yield break;
    }
Beispiel #3
0
    private IEnumerator Act()
    {
        yield return(null);

        this.actionState = FarmDigimon.ActionState.WAIT;
        yield break;
    }
Beispiel #4
0
 public void DeleteDigimon()
 {
     this.isInitialized = false;
     this.isActive      = false;
     this.userMonsterID = string.Empty;
     this.actionState   = FarmDigimon.ActionState.NONE;
     this.cancelState   = FarmDigimon.CancelState.NONE;
     FarmRoot.Instance.Input.RemoveTouchEndEvent(new Action <InputControll, bool>(this.OnTouchUp));
     if (this.hitcheckEnumerator != null)
     {
         base.StopCoroutine(this.hitcheckEnumerator);
         this.hitcheckEnumerator = null;
     }
     if (this.mainEnumerator != null)
     {
         base.StopCoroutine(this.mainEnumerator);
         this.mainEnumerator = null;
     }
     if (this.actionEnumerator != null)
     {
         base.StopCoroutine(this.actionEnumerator);
         this.actionEnumerator = null;
     }
     this.StopSubRoutine();
     this.farmDigimonAI.ClearActionParam();
     this.farmDigimonAction.StopAction();
     if (null != this.digimon)
     {
         UnityEngine.Object.Destroy(this.digimon);
         this.digimon = null;
     }
 }
Beispiel #5
0
 public IEnumerator Boot()
 {
     while (!this.isInitialized)
     {
         yield return(null);
     }
     this.actionState = FarmDigimon.ActionState.APPEARANCE;
     this.UpdateOutline();
     this.StartAction();
     yield break;
 }
Beispiel #6
0
    private IEnumerator Thinking()
    {
        FarmDigimonAI.ActionID actionID = this.farmDigimonAI.ChooseAction();
        while (this.manager.FindAction(actionID))
        {
            yield return(new WaitForSeconds(2f));

            actionID = this.farmDigimonAI.ChooseAction();
        }
        this.farmDigimonAI.CreateActionParam(actionID);
        this.actionState = FarmDigimon.ActionState.ACT;
        yield break;
    }
Beispiel #7
0
    private IEnumerator WaitAppearance()
    {
        this.digimon.SetActive(true);
        this.StartIdleAnimation();
        this.actionSubEnumerator = this.farmDigimonAI.Appearance(this.digimon);
        this.actionSubCoroutine  = base.StartCoroutine(this.actionSubEnumerator);
        yield return(this.actionSubCoroutine);

        this.actionSubEnumerator = null;
        this.actionSubCoroutine  = null;
        this.actionState         = ((!this.digimon.activeSelf) ? FarmDigimon.ActionState.NONE : FarmDigimon.ActionState.THINKING);
        yield break;
    }
Beispiel #8
0
    private IEnumerator WaitEndAction()
    {
        FarmDigimonAI.ActionParam param = this.farmDigimonAI.GetActionParam();
        switch (param.actionID)
        {
        case FarmDigimonAI.ActionID.MEAT_FARM:
        case FarmDigimonAI.ActionID.STROLL:
        case FarmDigimonAI.ActionID.STROLL_FAST:
        case FarmDigimonAI.ActionID.CONSTRUCTION:
            if (param.pathGridIndexs != null)
            {
                CharacterParams characterParams = this.digimon.GetComponent <CharacterParams>();
                characterParams.PlayAnimation(CharacterAnimationType.move, SkillType.Attack, 0, null, null);
                this.actionSubEnumerator = this.farmDigimonAction.Walk();
                yield return(base.StartCoroutine(this.actionSubEnumerator));

                this.actionSubEnumerator = null;
            }
            break;

        case FarmDigimonAI.ActionID.TOUCH_ACTION:
        {
            CharacterParams characterParams2 = this.digimon.GetComponent <CharacterParams>();
            characterParams2.PlayAnimation(CharacterAnimationType.move, SkillType.Attack, 0, null, null);
            this.actionSubEnumerator = this.farmDigimonAction.TouchAction();
            yield return(base.StartCoroutine(this.actionSubEnumerator));

            this.actionSubEnumerator = null;
            break;
        }

        default:
        {
            CharacterParams component = this.digimon.GetComponent <CharacterParams>();
            component.PlayAnimationSmooth(CharacterAnimationType.revival, SkillType.Attack, 0, null, null);
            break;
        }
        }
        CharacterParams component2 = this.digimon.GetComponent <CharacterParams>();

        component2.PlayAnimationSmooth(CharacterAnimationType.revival, SkillType.Attack, 0, null, null);
        yield return(new WaitForSeconds(5f));

        this.farmDigimonAI.ClearActionParam();
        this.actionState = FarmDigimon.ActionState.THINKING;
        yield return(null);

        yield break;
    }
Beispiel #9
0
 private IEnumerator ActionMainRoutine()
 {
     if (this.cancelState != FarmDigimon.CancelState.NONE)
     {
         while (this.cancelState != FarmDigimon.CancelState.END)
         {
             yield return(new WaitForSeconds(1f));
         }
         this.cancelState = FarmDigimon.CancelState.NONE;
         if (this.actionState == FarmDigimon.ActionState.NONE)
         {
             this.actionState = (this.digimon.activeSelf ? FarmDigimon.ActionState.THINKING : FarmDigimon.ActionState.APPEARANCE);
         }
     }
     while (this.StateRoutine != null)
     {
         this.actionEnumerator = this.StateRoutine();
         yield return(base.StartCoroutine(this.actionEnumerator));
     }
     yield break;
 }