private void cureCond(Unit target, EUnitCondition condition, LogMapTrick.TargetInfo log_mt_ti) { bool flag = target.IsUnitCondition(condition); target.CureCondEffects(condition, true, false); if (log_mt_ti == null || !flag || target.IsUnitCondition(condition)) { return; } log_mt_ti.IsEffective = true; log_mt_ti.CureCondition |= condition; }
private bool actionDamage(Unit target, LogMapTrick.TargetInfo log_mt_ti) { int num = this.calcDamage(target); if (num <= 0) { return(false); } target.Damage(num, true); if (log_mt_ti != null) { log_mt_ti.IsEffective = true; log_mt_ti.Damage = num; } return(true); }
private bool actionHeal(Unit target, LogMapTrick.TargetInfo log_mt_ti) { int num = 0; if (!target.IsUnitCondition(EUnitCondition.DisableHeal)) { num = this.calcHeal(target); } if (num < 0) { return(false); } target.Heal(num); if (log_mt_ti != null) { log_mt_ti.IsEffective = true; log_mt_ti.Heal = num; } return(true); }
private bool actionEffectTurnEnd(List <Unit> target_lists, RandXorshift rand, LogMapTrick log_mt) { if (target_lists == null) { return(false); } bool flag = false; using (List <Unit> .Enumerator enumerator = target_lists.GetEnumerator()) { while (enumerator.MoveNext()) { Unit current = enumerator.Current; LogMapTrick.TargetInfo log_mt_ti = (LogMapTrick.TargetInfo)null; if (log_mt != null) { log_mt_ti = new LogMapTrick.TargetInfo(); log_mt_ti.Target = current; } switch (this.mTrickParam.DamageType) { case eTrickDamageType.DAMAGE: flag |= this.actionDamage(current, log_mt_ti); break; case eTrickDamageType.HEAL: flag |= this.actionHeal(current, log_mt_ti); break; } flag |= this.actionCond(current, rand, log_mt_ti); flag |= this.actionKnockBack(current, rand, log_mt_ti); if (log_mt != null) { log_mt.TargetInfoLists.Add(log_mt_ti); } } } return(flag); }
private bool actionKnockBack(Unit target, RandXorshift rand, LogMapTrick.TargetInfo log_mt_ti) { if (rand == null || (int)this.mTrickParam.KnockBackRate == 0 || (int)this.mTrickParam.KnockBackVal == 0) { return(false); } SceneBattle instance = SceneBattle.Instance; if (!UnityEngine.Object.op_Implicit((UnityEngine.Object)instance)) { return(false); } BattleCore battle = instance.Battle; if (battle == null) { return(false); } if (!this.checkKnockBack(target, rand)) { return(true); } EUnitDirection dir = this.reverseDirection[(int)target.Direction]; Grid gridKnockBack = battle.GetGridKnockBack(target, dir, (int)this.mTrickParam.KnockBackVal, (SkillData)null, 0, 0); if (gridKnockBack == null) { return(true); } if (log_mt_ti != null) { log_mt_ti.IsEffective = true; log_mt_ti.KnockBackGrid = gridKnockBack; } target.x = gridKnockBack.x; target.y = gridKnockBack.y; return(true); }
private void failCond(Unit target, CondEffect effect, ConditionEffectTypes effect_type, EUnitCondition condition, LogMapTrick.TargetInfo log_mt_ti) { SceneBattle instance = SceneBattle.Instance; if (UnityEngine.Object.op_Implicit((UnityEngine.Object)instance)) { BattleCore battle = instance.Battle; if (battle != null) { LogFailCondition logFailCondition = battle.Log <LogFailCondition>(); logFailCondition.self = target; logFailCondition.source = (Unit)null; logFailCondition.condition = condition; TacticsUnitController unitController = instance.FindUnitController(target); if (UnityEngine.Object.op_Implicit((UnityEngine.Object)unitController)) { unitController.LockUpdateBadStatus(condition, false); } } } CondAttachment condAttachment = this.createCondAttachment(target, effect, effect_type, condition); target.SetCondAttachment(condAttachment); if (log_mt_ti == null || !target.IsUnitCondition(condition)) { return; } log_mt_ti.IsEffective = true; log_mt_ti.FailCondition |= condition; }
private bool actionCond(Unit target, RandXorshift rand, LogMapTrick.TargetInfo log_mt_ti) { CondEffect mCondEffect = this.mCondEffect; if (rand == null || mCondEffect == null || (mCondEffect.param == null || mCondEffect.param.conditions == null)) { return(false); } ConditionEffectTypes conditionEffectTypes = ConditionEffectTypes.None; if (!mCondEffect.CheckEnableCondTarget(target)) { return(true); } if (mCondEffect.param.type != ConditionEffectTypes.None && mCondEffect.param.conditions != null) { int rate = (int)mCondEffect.rate; if (0 < rate && rate < 100 && (int)(rand.Get() % 100U) > rate) { return(true); } conditionEffectTypes = mCondEffect.param.type; } switch (conditionEffectTypes) { case ConditionEffectTypes.CureCondition: for (int index = 0; index < mCondEffect.param.conditions.Length; ++index) { EUnitCondition condition = mCondEffect.param.conditions[index]; this.cureCond(target, condition, log_mt_ti); } break; case ConditionEffectTypes.FailCondition: if ((int)mCondEffect.value != 0) { EnchantParam enchantResist = target.CurrentStatus.enchant_resist; for (int index = 0; index < mCondEffect.param.conditions.Length; ++index) { EUnitCondition condition = mCondEffect.param.conditions[index]; if (!target.IsDisableUnitCondition(condition) && this.checkFailCond(target, (int)mCondEffect.value, (int)enchantResist[condition], condition, rand)) { this.failCond(target, mCondEffect, conditionEffectTypes, condition, log_mt_ti); } } break; } break; case ConditionEffectTypes.ForcedFailCondition: for (int index = 0; index < mCondEffect.param.conditions.Length; ++index) { EUnitCondition condition = mCondEffect.param.conditions[index]; this.failCond(target, mCondEffect, conditionEffectTypes, condition, log_mt_ti); } break; case ConditionEffectTypes.RandomFailCondition: if ((int)mCondEffect.value != 0) { EnchantParam enchantResist = target.CurrentStatus.enchant_resist; int index = (int)((long)rand.Get() % (long)mCondEffect.param.conditions.Length); EUnitCondition condition = mCondEffect.param.conditions[index]; if (!target.IsDisableUnitCondition(condition) && this.checkFailCond(target, (int)mCondEffect.value, (int)enchantResist[condition], condition, rand)) { this.failCond(target, mCondEffect, conditionEffectTypes, condition, log_mt_ti); break; } break; } break; case ConditionEffectTypes.DisableCondition: for (int index = 0; index < mCondEffect.param.conditions.Length; ++index) { CondAttachment condAttachment = this.createCondAttachment(target, mCondEffect, conditionEffectTypes, mCondEffect.param.conditions[index]); target.SetCondAttachment(condAttachment); } break; } return(true); }