Example #1
0
        public bool DoesActorWinFight()
        {
            float winChance       = EWFightPet.kBaseWinChance;
            float actorSkillLevel = skillActor.getEffectiveSkillLevel(Actor.LotCurrent == Actor.LotHome, Target);
            int   targetSkill     = Math.Max(0, Target.SkillManager.GetSkillLevel(SkillNames.MartialArts));

            winChance += (actorSkillLevel - targetSkill) * EWFightPet.kWinChanceBonusPerSkillLevelDiff;
            for (int i = 0; i < EWFightPet.kWinChanceModifyTraits.Length; i++)
            {
                if (Actor.HasTrait(EWFightPet.kWinChanceModifyTraits[i]))
                {
                    winChance += EWFightPet.kWinChanceModifyValues[i];
                }
            }
            for (int i = 0; i < kWinChanceModifyTraitsHuman.Length; i++)
            {
                if (Target.HasTrait(kWinChanceModifyTraitsHuman[i]))
                {
                    winChance -= kWinChanceModifyValuesHuman[i];
                }
            }

            float probability = MathUtils.Clamp(winChance, 0, 100);

            return(RandomUtil.RandomChance(winChance));
        }
Example #2
0
        public new bool DoesActorWinFight()
        {
            float winChance = kBaseWinChance;

            float actorSkillLevel = skillActor.getEffectiveSkillLevel(Actor.LotCurrent == Actor.LotHome, Target);

            float targetSkillLevel = skillTarget.getEffectiveSkillLevel(Target.LotCurrent == Target.LotHome, Actor);

            winChance += (actorSkillLevel - targetSkillLevel) * kWinChanceBonusPerSkillLevelDiff;

            for (int i = 0; i < kWinChanceModifyTraits.Length; i++)
            {
                if (Actor.HasTrait(kWinChanceModifyTraits[i]))
                {
                    winChance += kWinChanceModifyValues[i];
                }
                if (Target.HasTrait(kWinChanceModifyTraits[i]))
                {
                    winChance -= kWinChanceModifyValues[i];
                }
            }
            return(RandomUtil.RandomChance(winChance));
        }