private void OnGemDestroyedAnimComplete(Spell spell, SpellStateType spellStateType, object userData)
 {
     if (spell.GetActiveState() == SpellStateType.NONE)
     {
         UnityEngine.Object.Destroy(base.gameObject);
     }
 }
    protected void CallStateFunction(SpellStateType prevStateType, SpellStateType stateType)
    {
        switch (stateType)
        {
        case SpellStateType.BIRTH:
            this.OnBirth(prevStateType);
            break;

        case SpellStateType.IDLE:
            this.OnIdle(prevStateType);
            break;

        case SpellStateType.ACTION:
            this.OnAction(prevStateType);
            break;

        case SpellStateType.CANCEL:
            this.OnCancel(prevStateType);
            break;

        case SpellStateType.DEATH:
            this.OnDeath(prevStateType);
            break;

        default:
            this.OnNone(prevStateType);
            break;
        }
    }
 protected void ChangeFsmState(SpellStateType stateType)
 {
     if (this.m_fsm != null)
     {
         base.StartCoroutine(this.WaitThenChangeFsmState(stateType));
     }
 }
 public virtual void OnFsmStateStarted(FsmState state, SpellStateType stateType)
 {
     if (this.m_activeStateChange != stateType)
     {
         this.ChangeStateImpl(stateType);
     }
 }
 private void OnOverloadUnlockedAnimComplete(Spell spell, SpellStateType prevStateType, object userData)
 {
     if (spell.GetActiveState() == SpellStateType.NONE)
     {
         UnityEngine.Object.Destroy(spell.transform.parent.gameObject);
     }
 }
 protected override void OnAction(SpellStateType prevStateType)
 {
     base.m_effectsPendingFinish++;
     base.OnAction(prevStateType);
     base.m_effectsPendingFinish--;
     base.FinishIfPossible();
 }
Esempio n. 7
0
 private void OnImpactSpellStateFinished(Spell spell, SpellStateType prevStateType, object userData)
 {
     if (spell.GetActiveState() == SpellStateType.NONE)
     {
         UnityEngine.Object.Destroy(spell.gameObject);
     }
 }
Esempio n. 8
0
 private void OnCardSpellStateFinished(Spell spell, SpellStateType prevStateType, object userData)
 {
     if (spell.GetActiveState() == SpellStateType.NONE)
     {
         this.CardSpellNoneStateEntered();
     }
 }
    private void OnSpellStateStarted(Spell spell, SpellStateType prevStateType, object userData)
    {
        SpellStateType activeState = spell.GetActiveState();
        TurnTimerState state       = this.TranslateSpellStateToTimerState(activeState);

        this.ChangeStateImpl(state);
    }
 public virtual void ChangeState(SpellStateType stateType)
 {
     this.ChangeStateImpl(stateType);
     if (this.m_activeStateType == stateType)
     {
         this.ChangeFsmState(stateType);
     }
 }
 private void OnOverloadBirthCompletePayOverload(Spell spell, SpellStateType prevStateType, object userData)
 {
     if (spell.GetActiveState() == SpellStateType.IDLE)
     {
         spell.RemoveStateFinishedCallback(new Spell.StateFinishedCallback(this.OnOverloadBirthCompletePayOverload));
         this.PayOverload();
     }
 }
 public virtual bool HasUsableState(SpellStateType stateType)
 {
     if (stateType == SpellStateType.NONE)
     {
         return(false);
     }
     return(this.HasStateContent(stateType) || (this.HasOverriddenStateMethod(stateType) || (((this.m_activeStateType == SpellStateType.NONE) && (this.m_ZonesToDisable != null)) && (this.m_ZonesToDisable.Count > 0))));
 }
 private void OnDragStopSpellStateFinished(Spell spell, SpellStateType prevStateType, object userData)
 {
     if (spell.GetActiveState() == SpellStateType.NONE)
     {
         UnopenedPack pack = (UnopenedPack)userData;
         UnityEngine.Object.Destroy(pack.gameObject);
     }
 }
    private void ChangeSpellState(TurnTimerState timerState)
    {
        SpellStateType stateType = this.TranslateTimerStateToSpellState(timerState);

        this.m_spell.ActivateState(stateType);
        if (timerState == TurnTimerState.START)
        {
            base.StartCoroutine(this.TimerBirthAnimateMaterialValues());
        }
    }
Esempio n. 15
0
    private void OnFatigueDeathSpellFinished(Spell spell, SpellStateType prevStateType, object userData)
    {
        Actor actor = (Actor)userData;

        if (actor != null)
        {
            actor.Destroy();
        }
        base.OnFinished();
    }
 public void ActivateState(SpellStateType stateType)
 {
     if (!this.HasUsableState(stateType))
     {
         this.Deactivate();
     }
     else
     {
         this.ChangeState(stateType);
     }
 }
Esempio n. 17
0
 private void OnHeroSourceAttackStateFinished(Spell spell, SpellStateType prevStateType, object userData)
 {
     if (spell.GetActiveState() == SpellStateType.NONE)
     {
         spell.RemoveStateFinishedCallback(new Spell.StateFinishedCallback(this.OnHeroSourceAttackStateFinished));
         Card   source = base.GetSource();
         Entity entity = source.GetEntity();
         this.PlayWindfuryReminderIfPossible(entity, source);
         this.FinishEverything();
     }
 }
Esempio n. 18
0
 private void OnActorTriggerSpellStateFinished(Spell spell, SpellStateType prevStateType, object userData)
 {
     if (prevStateType == SpellStateType.ACTION)
     {
         spell.RemoveStateFinishedCallback(new Spell.StateFinishedCallback(this.OnActorTriggerSpellStateFinished));
         if (!this.ActivateCardEffects())
         {
             base.OnProcessTaskList();
         }
     }
 }
 protected override void OnDeath(SpellStateType prevStateType)
 {
     base.OnDeath(prevStateType);
     if (this.m_ImpactSpellPrefab != null)
     {
         for (int i = 0; i < base.m_targets.Count; i++)
         {
             this.SpawnImpactSpell(base.m_targets[i]);
         }
     }
 }
Esempio n. 20
0
 protected override void OnBirth(SpellStateType prevStateType)
 {
     if (this.m_BurstMotes != null)
     {
         this.m_BurstMotes.Play();
     }
     if (this.m_EdgeGlow != null)
     {
         this.m_EdgeGlow.GetComponent <Renderer>().enabled = true;
     }
     this.OnSpellFinished();
 }
Esempio n. 21
0
 protected override void OnAction(SpellStateType prevStateType)
 {
     foreach (PowerTask task in base.m_taskList.GetTaskList())
     {
         Network.HistFullEntity power = task.GetPower() as Network.HistFullEntity;
         if (power != null)
         {
             GameState.Get().GetEntity(power.Entity.ID).GetCard().SuppressPlaySounds(true);
         }
     }
     base.OnAction(prevStateType);
 }
Esempio n. 22
0
 protected override void OnAction(SpellStateType prevStateType)
 {
     if (this.m_SuppressNewCardPlaySound)
     {
         Card card = this.FindNewCard();
         if (card != null)
         {
             card.SuppressPlaySounds(true);
         }
     }
     base.OnAction(prevStateType);
 }
 protected void FireStateStartedCallbacks(SpellStateType prevStateType)
 {
     StateStartedListener[] listenerArray = this.m_stateStartedListeners.ToArray();
     if (this.m_activeStateType == SpellStateType.NONE)
     {
         this.m_stateStartedListeners.Clear();
     }
     foreach (StateStartedListener listener in listenerArray)
     {
         listener.Fire(this, prevStateType);
     }
 }
    protected bool HasOverriddenStateMethod(SpellStateType stateType)
    {
        string stateMethodName = this.GetStateMethodName(stateType);

        if (stateMethodName == null)
        {
            return(false);
        }
        System.Type type   = base.GetType();
        MethodInfo  method = typeof(Spell).GetMethod(stateMethodName, BindingFlags.NonPublic | BindingFlags.Instance);

        return(GeneralUtils.IsOverriddenMethod(type.GetMethod(stateMethodName, BindingFlags.NonPublic | BindingFlags.Instance), method));
    }
    public void Activate()
    {
        SpellStateType stateType = this.GuessNextStateType();

        if (stateType == SpellStateType.NONE)
        {
            this.Deactivate();
        }
        else
        {
            this.ChangeState(stateType);
        }
    }
    protected override void OnAction(SpellStateType prevStateType)
    {
        base.m_effectsPendingFinish++;
        base.OnAction(prevStateType);
        Card  sourceCard = base.GetSourceCard();
        Spell prefab     = this.DetermineRangePrefab(sourceCard.GetEntity().GetATK());
        Spell spell2     = base.CloneSpell(prefab);

        spell2.SetSource(sourceCard.gameObject);
        spell2.Activate();
        base.m_effectsPendingFinish--;
        base.FinishIfPossible();
    }
Esempio n. 27
0
    private void OnSourceAttackStateStarted(Spell spell, SpellStateType prevStateType, object userData)
    {
        switch (spell.GetActiveState())
        {
        case SpellStateType.IDLE:
            spell.ActivateState(SpellStateType.ACTION);
            break;

        case SpellStateType.ACTION:
            spell.RemoveStateStartedCallback(new Spell.StateStartedCallback(this.OnSourceAttackStateStarted));
            this.LaunchAttack();
            break;
        }
    }
    protected override void OnAction(SpellStateType prevStateType)
    {
        base.OnAction(prevStateType);
        Card targetCard = base.GetTargetCard();

        if (targetCard == null)
        {
            this.OnStateFinished();
        }
        else
        {
            this.DoEffect(targetCard);
        }
    }
    public SpellStateType GuessNextStateType(SpellStateType stateType)
    {
        switch (stateType)
        {
        case SpellStateType.NONE:
            if (!this.HasUsableState(SpellStateType.BIRTH))
            {
                if (this.HasUsableState(SpellStateType.IDLE))
                {
                    return(SpellStateType.IDLE);
                }
                if (this.HasUsableState(SpellStateType.ACTION))
                {
                    return(SpellStateType.ACTION);
                }
                if (this.HasUsableState(SpellStateType.DEATH))
                {
                    return(SpellStateType.DEATH);
                }
                if (this.HasUsableState(SpellStateType.CANCEL))
                {
                    return(SpellStateType.CANCEL);
                }
                break;
            }
            return(SpellStateType.BIRTH);

        case SpellStateType.BIRTH:
            if (!this.HasUsableState(SpellStateType.IDLE))
            {
                break;
            }
            return(SpellStateType.IDLE);

        case SpellStateType.IDLE:
            if (!this.HasUsableState(SpellStateType.ACTION))
            {
                break;
            }
            return(SpellStateType.ACTION);

        case SpellStateType.ACTION:
            if (!this.HasUsableState(SpellStateType.DEATH))
            {
                break;
            }
            return(SpellStateType.DEATH);
        }
        return(SpellStateType.NONE);
    }
 private void ChangeFsmStateNow(SpellStateType stateType)
 {
     if (this.m_fsmStateMap == null)
     {
         UnityEngine.Debug.LogError(string.Format("Spell.ChangeFsmStateNow() - stateType {0} was requested but the m_fsmStateMap is null", stateType));
     }
     else
     {
         FsmState state = null;
         if (this.m_fsmStateMap.TryGetValue(stateType, out state))
         {
             this.m_fsm.SendEvent(EnumUtils.GetString <SpellStateType>(stateType));
         }
     }
 }