public Loot GetByKind(Spells.SpellKind kind) { var tile = factory.FirstOrDefault(i => Scroll.DiscoverKindFromName(i.Key) == kind); if (tile.Key != null) { return(tile.Value(tile.Key)); } return(null); }
protected override void Create() { Func <string, Scroll> createScroll = (string tag) => { var scroll = new Scroll(); scroll.tag1 = tag; scroll.Kind = Scroll.DiscoverKindFromName(tag); scroll.Count = Enumerable.Range(1, 3).ToList().GetRandomElem(); return(scroll); }; var names = new[] { "fire_ball_scroll", "ice_ball_scroll", "poison_ball_scroll", "identify_scroll", "teleport_scroll", "portal_scroll", "transform_scroll", "mana_shield_scroll", "rage_scroll", "skeleton_scroll" }; foreach (var name in names) { factory[name] = createScroll; } }
protected override void Create() { Func <string, Book> createBook = (string tag) => { var book = new Book(); book.tag1 = tag; book.Kind = Scroll.DiscoverKindFromName(tag); //scroll.Count = Enumerable.Range(1, 3).ToList().GetRandomElem(); return(book); }; var names = new[] { "fire_ball_book", "ice_ball_book", "poison_ball_book", "identify_book", "portal_book", "mana_shield_book", "skeleton_book" //"teleport_scroll" "transform_scroll" }; foreach (var name in names) { factory[name] = createBook; } }
public void ScrollFromTagName() { var kind = Scroll.DiscoverKindFromName("fire_ball_scroll"); Assert.AreEqual(kind, SpellKind.FireBall); }