示例#1
0
        public byte skillCastDmgTypeCalculations(Fightable chr, Fightable target, bool canCrit)
        {
            byte dmgType;

            //successrate to hit
            if (chr.getAtkSuc() >= target.getDefSuc() || (int)(Randomizer.NextInt(2) / (Math.Pow(2, (float)-(target.getDefSuc() - chr.getAtkSuc()) / 400f))) == 0)
            {
                if (chr.getCritRate() >= target.getDefSuc() || (int)(Randomizer.NextInt(2) / (Math.Pow(2, (float)-(target.getDefSuc() - chr.getCritRate()) / 200f))) == 0)
                {
                    if (canCrit && (int)(Randomizer.NextInt(2) * 50) == 0)
                    {
                        dmgType = 5;
                    }
                    else
                    {
                        dmgType = 2;
                    }
                }
                else
                {
                    dmgType = 1;
                }
            }
            else
            {
                dmgType = 0;
            }
            return(dmgType);
        }
示例#2
0
        public byte skillCastDmgTypeCalculations(Fightable chr, Fightable target, bool canCrit)
        {
            byte dmgType;

            //successrate to hit
            if(chr.getAtkSuc()>=target.getDefSuc() || (int)(Randomizer.NextInt(2)/(Math.Pow(2,(float)-(target.getDefSuc()-chr.getAtkSuc())/400f)))==0) {
                if(chr.getCritRate()>=target.getDefSuc() || (int)(Randomizer.NextInt(2)/(Math.Pow(2,(float)-(target.getDefSuc()-chr.getCritRate())/200f)))==0) {
                    if(canCrit && (int)(Randomizer.NextInt(2)*50)==0) {
                        dmgType=5;
                    } else {
                        dmgType=2;
                    }
                }else{
                    dmgType=1;
                }
            }else{
                dmgType=0;
            }
            return dmgType;
        }