public void CheckSkillCondition(TURN_STATES state, FightDataFormat selfFightData, FightDataFormat otherFightData) { if (selfFightData.OneTurnFightData.AllSkillFailed != null && selfFightData.OneTurnFightData.AllSkillFailed.Value == true) { return; } var _currentStateSkillList = selfFightData.SkillList.FindAll(skill => { if (skill.Level < SkillOthers.LEVEL_MIN) { return(false); } if (skill.SkillCondition.IsActive == true) { return(false); } return(skill.SkillCondition.CheckState(state)); }); if (_currentStateSkillList == null) { return; } if (state == TURN_STATES.JUDGE_INITIATIVE_SKILL) { var _initProbabilitySkillList = _currentStateSkillList.FindAll(skill => { if (skill.SkillCondition.IsActive == true) { return(false); } var _targetTrigger = skill.SkillCondition.TriggerList.Find(trigger => { return(trigger.Type == SKILL_TRIGGER_TYPE.PROBABILITY && skill.Type == SKILL_TYPE.INITIATIVE); }); return(_targetTrigger != null); }); if (_initProbabilitySkillList != null) { InitiativeSkillDrawBySlot(_initProbabilitySkillList, selfFightData); } } _currentStateSkillList.ForEach(skill => { if (skill.SkillCondition.IsActive) { return; } if (skill.SkillCondition.CheckSuccess(selfFightData, otherFightData) && skill.Type != SKILL_TYPE.BUFF) { InfoManagerInstance.EnqueueMessage(INFO_FORMAT_LABEL.ACTIVE_SKILL, selfFightData, otherFightData, skill); } }); }
public void ActiveSkill(TURN_STATES state, FightDataFormat selfFightData, FightDataFormat otherFightData = null, Queue <AbsCharacterController> targetQueue = null) { if (selfFightData.OneTurnFightData.AllSkillFailed != null && selfFightData.OneTurnFightData.AllSkillFailed.Value == true) { return; } CheckSkillCondition(state, selfFightData, otherFightData); ActiveEffect(state, selfFightData, otherFightData, targetQueue); }
public IEnumerator ActiveSkillCoroutine(TURN_STATES state, FightDataFormat selfFightData, FightDataFormat otherFightData = null, Queue <AbsCharacterController> targetQueue = null) { if (selfFightData.OneTurnFightData.AllSkillFailed != null && selfFightData.OneTurnFightData.AllSkillFailed.Value == true) { yield break; } CheckSkillCondition(state, selfFightData, otherFightData); ActiveEffect(state, selfFightData, otherFightData, targetQueue); yield break; }
public StatesFormat(ICommonSkill skill, TriggerTypeIDMapFormat triggerMap) : base(skill, triggerMap) { if (triggerMap.TriggerID < 0) { return; } var _triggerStateRow = StatesTableReader.Instance.FindDefaultFirst((ushort)triggerMap.TriggerID); this.SelfActiveState = _triggerStateRow.SelfState; this.OtherActiveState = _triggerStateRow.OtherState; this.InterruptCoditionList = null ?? new List <EXCEPTION_TYPE>(); this.CurrentExceptionList = null ?? new List <EXCEPTION_TYPE> (); }
public bool ActiveEffect(TURN_STATES state, FightDataFormat selfFightData, FightDataFormat otherFightData, Queue <AbsCharacterController> targetQueue) { bool _success = false; if (selfFightData.OneTurnFightData.AllSkillFailed != null && selfFightData.OneTurnFightData.AllSkillFailed.Value == true) { return(_success); } selfFightData.SkillList.ForEach(skill => { if (skill.SkillCondition.IsActive == false) { return; } // Not active yet & state var _targetList = skill.EffectList.FindAll(effect => { if (effect.EffectCondition.IsActive) { return(false); } return(effect.EffectCondition.CheckState(state)); }); if (_targetList == null) { return; } // Check condition & active effect _targetList.ForEach(effect => { effect.EffectCondition.CheckSuccess(selfFightData, otherFightData); if (effect.EffectCondition.IsActive) { effect.Active(selfFightData, otherFightData, targetQueue); _success = true; } else { // Debug.LogFormat("Effect [{0}] didn't active",effect); } }); }); return(_success); }
public override void Reset() { this.CurrentTurnState = TURN_STATES.NONE; }