Exemple #1
0
        //----------------------------------------------------------------------------
        //                   Add Alterations
        //----------------------------------------------------------------------------

        #region Add Alterations

        // Attack alterations have to specify who they apply to
        // Trade off: you have to add an alteration for each character
        // so you have quicker implementation but more memory is used
        //
        // Honestly I don't think either would impact performance, but
        // it might be a good idea to add a mix of both

        public void AddAttackAlteration(IHasAttack hasAttack, IAttackDataAlteration attackDataAlteration)
        {
            if (!HasAttackAlterationsDict.ContainsKey(hasAttack))
            {
                HasAttackAlterationsDict[hasAttack] = new List <IAttackDataAlteration>();
            }
            HasAttackAlterationsDict[hasAttack].Add(attackDataAlteration);
        }
Exemple #2
0
        //----------------------------------------------------------------------------
        //                    Alter
        //----------------------------------------------------------------------------

        #region Alter

        public void Alter(IAttackData attackData)
        {
            if (HasAttackAlterationsDict.ContainsKey(attackData.MyHasAttack))
            {
                foreach (IAttackDataAlteration attackDataAlteration in HasAttackAlterationsDict[attackData.MyHasAttack])
                {
                    attackDataAlteration.Alter(attackData);
                }
            }

            if (IsVictimAlterationsDict.ContainsKey(attackData.MyIsVictim))
            {
                foreach (IAttackDataAlteration attackDataAlteration in IsVictimAlterationsDict[attackData.MyIsVictim])
                {
                    attackDataAlteration.Alter(attackData);
                }
            }
        }