Ejemplo n.º 1
0
        public override object VisitAbilityLine([NotNull] classlist_langParser.AbilityLineContext context)
        {
            //add ability modif

            AbilityModifier modif = new AbilityModifier();

            var contextValue = context.value().VALUE();

            if (contextValue is ErrorNodeImpl)
            {
                return(base.VisitAbilityLine(context));
            }

            modif.AbilityName = context.ability().GetText();
            modif.Value       = int.Parse(context.value().GetText());

            if (context.abilityModifier().GetText() == "-")
            {
                modif.Value = -modif.Value;
            }

            currentClass.Modifiers.Add(modif);

            return(base.VisitAbilityLine(context));
        }
Ejemplo n.º 2
0
        public void GivenATotalScore_StringIsReturned(int totalScore, string expected)
        {
            AbilityModifier ability = new AbilityModifier();
            string          actual  = ability.Calculate(totalScore).ToString();

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 3
0
        public int CalculateTest([PexAssumeUnderTest] AbilityModifier target, int totalScore)
        {
            int result = target.Calculate(totalScore);

            return(result);
            // TODO: add assertions to method AbilityModifierTest.CalculateTest(AbilityModifier, Int32)
        }
Ejemplo n.º 4
0
        public void AbilityScores_HaveAppropriateModifier(int score, int expectedModifier)
        {
            AbilityScore    abilityScore = new AbilityScore(score, Ability.Strength);
            AbilityModifier modifier     = new AbilityModifier(abilityScore);

            Assert.AreEqual(modifier.Amount, expectedModifier);
        }
    public void SetAbility(WeaponItem weapon, ScriptableUseableAbility newAbility)
    {
        ScriptableAbility = newAbility;
        Modifiers.Clear();

        if (weapon)
        {
            //override the modifiers to add the attack bonus
            var attackModifier = ScriptableObject.CreateInstance <ScriptableStatModifier>();
            attackModifier.Type   = StatType.ATTACK;
            attackModifier.Amount = weapon.attack;

            var AbilityModifier = new AbilityModifier();
            AbilityModifier.Modifier = attackModifier;
            AbilityModifier.Stage    = ModifierStage.ACTION;
            AbilityModifier.Target   = ModifierTarget.CASTER;

            Modifiers.Insert(0, AbilityModifier);
        }

        if (worldGameObject)
        {
            Destroy(worldGameObject);
        }

        Initilise();
    }
Ejemplo n.º 6
0
        private ModifierRoot ParseAbilityModifier(AbilityModifier abilityModifier)
        {
            ModifierRoot root = new ModifierRoot(abilityModifier.duration);

            if (abilityModifier.OnIntervalThink != null)
            {
                foreach (var command in abilityModifier.OnIntervalThink)
                {
                    root.AddModifier(new ModifierThinkInterval(ParseCommands(command), command.thinkInterval));
                }
            }

            if (abilityModifier.OnAdd != null)
            {
                foreach (var command in abilityModifier.OnAdd)
                {
                    root.AddModifier(new ModifierOnAdd(ParseCommands(command)));
                }
            }

            if (abilityModifier.OnRemove != null)
            {
                foreach (var command in abilityModifier.OnRemove)
                {
                    root.AddModifier(new ModifierOnRemove(ParseCommands(command)));
                }
            }

            return(root);
        }
        /// <summary>
        /// Updates the racial ability modifiers for the selected ability
        /// </summary>
        /// <param name="characterAbilityType">The character ability type</param>
        private void UpdateRacialAbilityModifiers(Type characterAbilityType)
        {
            AbilityModifier racialAbilityModifier          = CharacterCreator.GetRacialAbilityModifier(characterAbilityType);
            Text            characterAbilityRacialModifier = GetAbilityRacialModifierGameObject(characterAbilityType);

            ClearRacialAbilityModifiers();
            UpdateRacialAbilityModifier(characterAbilityRacialModifier, racialAbilityModifier.Modifier);
        }
Ejemplo n.º 8
0
 public void RemoveAbilityModifier(AbilityModifier mod)   //todo maybe by id?
 {
     for (int i = 0; i < abilities.Count; i++)
     {
         mod.Remove(abilities[i]);
     }
     abilityModifiers.Remove(mod);
 }
Ejemplo n.º 9
0
 public void AddAbilityModifier(AbilityModifier mod)
 {
     mod.Initialize();
     for (int i = 0; i < abilities.Count; i++)
     {
         mod.Apply(abilities[i]);
     }
     abilityModifiers.Add(mod); //todo maybe ref count these as well? or break into stacks
 }
Ejemplo n.º 10
0
        public virtual void CalculateAbilityMods()
        {
            AbilityModifier ability = new AbilityModifier();

            StatMods.StrAbilityMod = ability.Calculate(TotalScore.StrTotalScore);
            StatMods.DexAbilityMod = ability.Calculate(TotalScore.DexTotalScore);
            StatMods.ConAbilityMod = ability.Calculate(TotalScore.ConTotalScore);
            StatMods.IntAbilityMod = ability.Calculate(TotalScore.IntTotalScore);
            StatMods.WisAbilityMod = ability.Calculate(TotalScore.WisTotalScore);
            StatMods.ChaAbilityMod = ability.Calculate(TotalScore.ChaTotalScore);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Returns an ability modifier for the specified type and returns its modifier
        /// </summary>
        /// <typeparam name="T">The type of ability</typeparam>
        /// <returns>An integer value representing the ability modifier for the specified type of ability.  Returns 0 if the type of ability modifier was not found.</returns>
        public int GetModifier <T>()
        {
            int             modifier;
            AbilityModifier abilityModifier = FindModifier <T>();

            if (abilityModifier != null)
            {
                modifier = abilityModifier.Modifier;
            }
            else
            {
                modifier = 0;
            }

            return(modifier);
        }
Ejemplo n.º 12
0
    private Modifier applyModifier(AbilityModifier abilityModifier, CharacterBase ownerCharacter,
                                   CharacterBase targetCharacter)
    {
        if (abilityModifier.Modifier == null)
        {
            return(null);
        }

        //create a new instance of the modifier
        Modifier modifier = new Modifier(abilityModifier.Modifier, ownerCharacter);

        modifier.Apply(targetCharacter);


        if (abilityModifier.Modifier.ActivePeriod <= 0.0f)
        {
            appliedInstantModifiers.Add(Tuple.Create(modifier, targetCharacter));
        }

        return(modifier);
    }
Ejemplo n.º 13
0
 public IAddSimpleAbilityActionModifierCommand(List <AbilityModifier> modifierList, AbilityModifier abilityModifier)
 {
     this.modifierList    = modifierList;
     this.abilityModifier = abilityModifier;
     logInsert            = true;
 }
Ejemplo n.º 14
0
 public void RemoveAbilityModifier(AbilityModifier mod) { //todo maybe by id?
     for (int i = 0; i < abilities.Count; i++) {
         mod.Remove(abilities[i]);
     }
     abilityModifiers.Remove(mod);
 }
Ejemplo n.º 15
0
 public void AddAbilityModifier(AbilityModifier mod) {
     mod.Initialize();
     for (int i = 0; i < abilities.Count; i++) {
         mod.Apply(abilities[i]);
     }
     abilityModifiers.Add(mod); //todo maybe ref count these as well? or break into stacks
 }
Ejemplo n.º 16
0
        /// <summary>
        /// Returns an ability modifier to support "Your Choice" modifiers
        /// </summary>
        /// <param name="characterAbilityType">The character ability type</param>
        /// <returns>An ability modifier for the specified character ability</returns>
        public static AbilityModifier GetRacialAbilityModifier(Type characterAbilityType)
        {
            AbilityModifier abilityModifier = new AbilityModifier(characterAbilityType, 2);

            return(abilityModifier);
        }
Ejemplo n.º 17
0
 public IRemoveAbilityActionModifierCommand(IAbility ability, AbilityModifier modifier)
 {
     this.ability  = ability;
     this.modifier = modifier;
     logInsert     = true;
 }
 public IAddAbilityActionModifierCommand(IAbility ability, AbilityModifier abilityModifier)
 {
     this.ability         = ability;
     this.abilityModifier = abilityModifier;
     logInsert            = true;
 }
Ejemplo n.º 19
0
 public override void OnEffectApplied()
 {
     modifier = new CastSpeedModifier(SlowCastId, power);
     target.abilityManager.AddAbilityModifier(modifier);
 }
Ejemplo n.º 20
0
 public override void OnEffectApplied() {
     modifier = new CastSpeedModifier(SlowCastId, power);
     target.abilityManager.AddAbilityModifier(modifier);
 }
 public IApplyModifierCommand(IAbility ability, AbilityModifier abilityModifier)
 {
     this.ability         = ability;
     this.abilityModifier = abilityModifier;
 }
Ejemplo n.º 22
0
 public void RemoveModifier(AbilityModifier m)
 {
     m.GetParent().RemoveModifier(m);
 }