示例#1
0
        public void ChangeErfahrung_RaisesNoEvent()
        {
            var id       = ImagoEntitaetFactory.GetNewEntitaet(ImagoAttribut.Staerke);
            var attribut = new Attribut(id);
            var args     = new FaktischerWertChangedEventArgs(id);

            attribut.Erfahrung = 5;

            //todo
            //no assert available
        }
        private void OnFaktischerWertChanged(FaktischerWertChangedEventArgs faktischerWertChangedEventArgs)
        {
            if (Fertigkeiten != null)
            {
                foreach (var item in Fertigkeiten)
                {
                    item.NatuerlicherWert = this.FaktischerWert;
                }
            }

            FaktischerWertChanged?.Invoke(this, faktischerWertChangedEventArgs);
        }
示例#3
0
        public void HandleFaktischerWertAttributChanged(object sender, FaktischerWertChangedEventArgs args)
        {
            var collection = (AttributeCollection)sender;

            if (collection == null)
            {
                throw new ArgumentException("Der Sender ist keine AttributCollection oder null");
            }

            if (args == null)
            {
                throw new ArgumentException("Das sendende Attribut konnte nicht erkannt werden: args == null");
            }

            ImagoAttribut attribut = (ImagoAttribut)args.Entitaet.Identifier;

            if (attribut == null)
            {
                throw new ArgumentException("Das sendende Attribut konnte nicht erkannt werden: Casting-Fehler");
            }

#if debug
            Console.WriteLine("Event " + this.GetType().Name + ". Der faktische Wert von " + attribut.Name + " wurde geändert.")
#endif

            var values = Attribute.GetFaktischeWerte();
            foreach (var item in FertigkeitsKategorien)
            {
                var attributReferenzen = new List <ImagoAttribut>(item.AttributReferenzen);

                if (attributReferenzen.Contains(attribut))
                {
                    item.BerechneNatuerlicherWert(values);
                }
            }

            Initiative.BerechneNatuerlicherWert(values);
            SchadensMod.BerechneNatuerlicherWert(values);
            EgoRegeneration.BerechneNatuerlicherWert(values);
            Lastgrenze.BerechneNatuerlicherWert(values);

            if (attribut == ImagoAttribut.Konstitution)
            {
                foreach (var teil in Koerper)
                {
                    teil.BerechneTrefferpunkte(values[ImagoAttribut.Konstitution]);
                }
            }
        }
示例#4
0
        public void ChangeModifikation_RaisesEvent()
        {
            var id       = ImagoEntitaetFactory.GetNewEntitaet(ImagoAttribut.Staerke);
            var attribut = new Attribut(id);
            var args     = new FaktischerWertChangedEventArgs(id);

            var evt = Assert.RaisesAny <FaktischerWertChangedEventArgs>(
                h => attribut.FaktischerWertChanged += h,
                h => attribut.FaktischerWertChanged -= h,
                () => attribut.Modifikation          = 5);

            Assert.NotNull(evt);
            Assert.Equal(attribut, evt.Sender);
            Assert.Equal(args, evt.Arguments);
        }
示例#5
0
        public void ChangeModifikation_RaisesEvent()
        {
            var id        = ImagoEntitaetFactory.GetNewEntitaet(ImagoFertigkeitsKategorie.Nahkampf);
            var kategorie = new FertigkeitsKategorie(id, new ImagoAttribut[] { ImagoAttribut.Staerke, ImagoAttribut.Staerke, ImagoAttribut.Staerke, ImagoAttribut.Staerke }, new Fertigkeit[] { });
            var args      = new FaktischerWertChangedEventArgs(id);

            var evt = Assert.RaisesAny <FaktischerWertChangedEventArgs>(
                h => kategorie.FaktischerWertChanged += h,
                h => kategorie.FaktischerWertChanged -= h,
                () => kategorie.Modifikation          = 5);

            Assert.NotNull(evt);
            Assert.Equal(kategorie, evt.Sender);
            Assert.Equal(args, evt.Arguments);
        }
示例#6
0
 public virtual void OnFaktischerWertChanged(object sender, FaktischerWertChangedEventArgs args)
 {
     FaktischerWertChanged?.Invoke(this, args);
 }