public static ImagoEntitaet GetRandomEntitaet() { var rand = new Random(); var bereich = SpielerBereich.FromValue <SpielerBereich>(rand.Next(0, 5)); Enumeration konkret = null; int count = 0; switch (bereich.Value) { case 0: count = new List <ImagoAttribut>(ImagoAttribut.GetAll <ImagoAttribut>()).Count; konkret = ImagoAttribut.FromValue <ImagoAttribut>(rand.Next(0, count)); break; case 1: count = new List <ImagoFertigkeit>(ImagoFertigkeit.GetAll <ImagoFertigkeit>()).Count; konkret = ImagoFertigkeit.FromValue <ImagoFertigkeit>(rand.Next(0, count)); break; case 2: count = new List <ImagoFertigkeitsKategorie>(ImagoFertigkeitsKategorie.GetAll <ImagoFertigkeitsKategorie>()).Count; konkret = ImagoFertigkeitsKategorie.FromValue <ImagoFertigkeitsKategorie>(rand.Next(0, count)); break; case 3: count = new List <ImagoKoerperTeil>(ImagoKoerperTeil.GetAll <ImagoKoerperTeil>()).Count; konkret = ImagoKoerperTeil.FromValue <ImagoKoerperTeil>(rand.Next(0, count)); break; case 4: count = new List <ImagoNichtSteigerbareFertigkeit>(ImagoNichtSteigerbareFertigkeit.GetAll <ImagoNichtSteigerbareFertigkeit>()).Count; konkret = ImagoNichtSteigerbareFertigkeit.FromValue <ImagoNichtSteigerbareFertigkeit>(rand.Next(0, count)); break; } return(new ImagoEntitaet(bereich, konkret)); }
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]); } } }
public void GibErfahrungAnAttribut(ImagoAttribut attribut) { var attributObject = Attribute.FirstOrDefault(attr => attr.Identifier.Equals(attribut)); attributObject.Erfahrung++; }