示例#1
0
 /*
 ============================================================================
 Check functions
 ============================================================================
 */
 public bool CheckRequirement(Combatant c)
 {
     bool check = false;
     if(StatusNeeded.STATUS_VALUE.Equals(this.statusNeeded) &&
         c.status[this.statID].CompareTo(this.value, this.comparison, this.setter, c))
     {
         check = true;
     }
     else if(StatusNeeded.ELEMENT.Equals(this.statusNeeded))
     {
         int element = c.GetElementDefence(this.statID);
         if((ValueCheck.EQUALS.Equals(this.comparison) && element == this.value) ||
             (ValueCheck.LESS.Equals(this.comparison) && element < this.value) ||
             (ValueCheck.GREATER.Equals(this.comparison) && element > this.value))
         {
             check = true;
         }
     }
     else if(StatusNeeded.SKILL.Equals(this.statusNeeded) && c.HasSkill(this.statID, 0))
     {
         check = true;
     }
     else if(StatusNeeded.RACE.Equals(this.statusNeeded) && c.raceID == this.statID)
     {
         check = true;
     }
     else if(StatusNeeded.SIZE.Equals(this.statusNeeded) && c.sizeID == this.statID)
     {
         check = true;
     }
     else if(StatusNeeded.LEVEL.Equals(this.statusNeeded))
     {
         int lvl = c.currentLevel;
         if(this.classLevel) lvl = c.currentClassLevel;
         if((ValueCheck.EQUALS.Equals(this.comparison) && lvl == this.value) ||
             (ValueCheck.LESS.Equals(this.comparison) && lvl < this.value) ||
             (ValueCheck.GREATER.Equals(this.comparison) && lvl > this.value))
         {
             check = true;
         }
     }
     return check;
 }
示例#2
0
 private int GetDefendedChange(int change, int elementID, Combatant user, Combatant target)
 {
     // race damage
     if(!this.ignoreRace)
     {
         change *= user.GetRaceDamageFactor(target.raceID);
         change /= 100;
     }
     // size damage
     if(!this.ignoreSize)
     {
         change *= user.GetSizeDamageFactor(target.sizeID);
         change /= 100;
     }
     // element defence
     if(!this.ignoreRace && elementID >= 0)
     {
         change *= target.GetElementDefence(elementID);
         change /= 100;
     }
     // defend command
     if(!this.ignoreDefend && target.isDefending)
     {
         change = (int)(change * DataHolder.Formula(DataHolder.BattleSystem().defendFormula).Calculate(user, target));
         change /= 100;
     }
     return change;
 }