Esempio n. 1
0
        protected int?GetStatAfterSkillModifiers(SkillModifierType type, int?baseValue)
        {
            float?value = baseValue;
            List <SkillModifier> modifiers = GetSkillModifiers(type);

            foreach (SkillModifier mod in modifiers)
            {
                if (mod.Application == SkillModifierApplication.Add)
                {
                    value = mod.Apply(value, type);
                }
            }

            foreach (SkillModifier mod in modifiers)
            {
                if (mod.Application == SkillModifierApplication.Mult)
                {
                    value = mod.Apply(value, type);
                }
            }
            foreach (SkillModifier mod in modifiers)
            {
                // not really applying the addnomult
                if (mod.Application == SkillModifierApplication.AddNoMult)
                {
                    value = mod.Apply(value, type);
                }
            }

            return((int?)value);
        }
Esempio n. 2
0
        public float?Apply(float?value, SkillModifierType type)
        {
            // just double checking this modifier is being used on the right skill type
            if (type == this.Type)
            {
                switch (Application)
                {
                case SkillModifierApplication.Add:
                    return(value + this.value);

                case SkillModifierApplication.AddNoMult:
                    return(value + this.value);

                case SkillModifierApplication.Mult:
                    return(value * this.value);

                default:
                    return(0);
                }
            }
            else
            {
                return(value);
            }
        }
Esempio n. 3
0
        protected List <SkillModifier> GetSkillModifiers(SkillModifierType type)
        {
            List <SkillModifier> returnModifiers = new List <SkillModifier>();
            List <SkillModifier> modifiers       = boardEntity.GetSkillModifier(this);

            modifiers.AddRange(skillModifiers);
            foreach (SkillModifier mod in modifiers)
            {
                if (mod.Type == type)
                {
                    returnModifiers.Add(mod);
                }
            }
            return(returnModifiers);
        }
Esempio n. 4
0
 public SkillModifier(SkillModifierType type, SkillModifierApplication application, float value)
 {
     skillModifierType        = type;
     skillModifierApplication = application;
     this.value = value;
 }