public override DamageOffset calcOffsetWhenOffensiveSide(DamageOffset offset, MyCharacterController user, MyCharacterController target) { if (target.Parameter.CharacterElement == this.TargetElemental) { offset.addOffensiveSideFinalDamageOffset(levelrate[(int)this.CurrentAbilityLevel]); } return offset; }
public override DamageOffset calcOffsetWhenOffensiveSide(DamageOffset offset, DamageTokenBasis token) { if (token.Target.Parameter.CharacterElement == this.TargetElemental) { offset.addOffensiveSideFinalDamageOffset(levelrate[(int)this.CurrentAbilityLevel]); } return offset; }
public static float calcDamage(float atk, float def, DamageOffset offset,bool iscritical) { atk *= offset.getAtkOffset(); def *= offset.getDefOffset() * (offset.ArmorPiercing ? 0 : 1); float damage = atk * Mathf.Pow(0.9722f, def); damage = (float)GameController.Rnd.nextGaussian(damage, damage * 0.2f); //GameController.PlayingLogger.addLogFormat("d:{0} O:{1} D:{2}",damage,offset.getOffensiveSideFinalDamageOffset(),offset.getDeffensiveSideFinalDamageOffset()); damage *= offset.getOffensiveSideFinalDamageOffset() * offset.getDeffensiveSideFinalDamageOffset(); //GameController.PlayingLogger.addLogFormat("d:{0} O:{1} D:{2}", damage, offset.getOffensiveSideFinalDamageOffset(), offset.getDeffensiveSideFinalDamageOffset()); damage = Mathf.Ceil(damage) <= 1 ? 1 : damage; if (iscritical) damage *= 2; return damage; }
public static float calcDamage(DamageTokenBasis token, IDamageOffsetNode[] offensiveside, IDamageOffsetNode[] deffensiveside,bool iscritical) { var offset = new DamageOffset(); foreach (IDamageOffsetNode node in offensiveside) { //GameController.PlayingLogger.addLog(node.GetType().ToString()); offset = node.calcOffsetWhenOffensiveSide(offset, token); } foreach (IDamageOffsetNode node in deffensiveside) { offset = node.calcOffestWhenDefensiveSide(offset, token); } return calcDamage(token.Attacker.Parameter.RealAtk * token.Attacker.ParameterOffset.AtkOffset1, token.Target.Parameter.RealDef * token.Target.ParameterOffset.DefOffset1, offset,iscritical); }
public override DamageOffset calcOffsetWhenOffensiveSide(DamageOffset offset, DamageTokenBasis token) { if (token is NormalAttackDamage && token.Target.Parameter.hasCategory(TargetCategory)) { offset.mulOffensiveSideFinalDamageOffset(OffsetRate); } return offset; }
public virtual DamageOffset calcOffsetWhenOffensiveSide(DamageOffset offset,DamageTokenBasis token) { return offset; }