Ejemplo n.º 1
0
 public override DamageOffset calcOffsetWhenOffensiveSide(DamageOffset offset, MyCharacterController user, MyCharacterController target)
 {
     if (target.Parameter.CharacterElement == this.TargetElemental) {
         offset.addOffensiveSideFinalDamageOffset(levelrate[(int)this.CurrentAbilityLevel]);
     }
     return offset;
 }
Ejemplo n.º 2
0
 public override DamageOffset calcOffsetWhenOffensiveSide(DamageOffset offset, DamageTokenBasis token)
 {
     if (token.Target.Parameter.CharacterElement == this.TargetElemental) {
         offset.addOffensiveSideFinalDamageOffset(levelrate[(int)this.CurrentAbilityLevel]);
     }
     return offset;
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 6
0
 public virtual DamageOffset calcOffsetWhenOffensiveSide(DamageOffset offset,DamageTokenBasis token)
 {
     return offset;
 }