コード例 #1
0
ファイル: Item.cs プロジェクト: avvie/SMZ3Randomizer
 public static bool CanAccessDeathMountainPortal(this Progression items)
 {
     return((items.CanDestroyBombWalls() || items.SpeedBooster) && items.Super && items.Morph);
 }
コード例 #2
0
ファイル: Region.cs プロジェクト: powerlord/SMZ3Randomizer
 public virtual bool CanEnter(Progression items)
 {
     return(true);
 }
コード例 #3
0
ファイル: Item.cs プロジェクト: avvie/SMZ3Randomizer
 public static bool CanExtendMagic(this Progression items, int bars = 2)
 {
     return((items.HalfMagic ? 2 : 1) * (items.Bottle ? 2 : 1) >= bars);
 }
コード例 #4
0
ファイル: Item.cs プロジェクト: avvie/SMZ3Randomizer
 public static bool CanKillManyEnemies(this Progression items)
 {
     return(items.Sword || items.Hammer || items.Bow || items.Firerod ||
            items.Somaria || items.Byrna && items.CanExtendMagic());
 }
コード例 #5
0
ファイル: Item.cs プロジェクト: avvie/SMZ3Randomizer
 public static bool CanLightTorches(this Progression items)
 {
     return(items.Firerod || items.Lamp);
 }
コード例 #6
0
ファイル: Item.cs プロジェクト: avvie/SMZ3Randomizer
 public static bool CanMeltFreezors(this Progression items)
 {
     return(items.Firerod || items.Bombos && items.Sword);
 }
コード例 #7
0
ファイル: Item.cs プロジェクト: avvie/SMZ3Randomizer
 public static bool CanLiftLight(this Progression items) => items.Glove;
コード例 #8
0
ファイル: World.cs プロジェクト: tewtal/SMZ3Randomizer
 public bool CanAcquireAll(Progression items, RewardType rewardsMask)
 {
     return(rewardLookup[(int)rewardsMask].All(x => x.CanComplete(items)));
 }
コード例 #9
0
 public bool Available(Progression items)
 {
     return(Region.CanEnter(items) && canAccess(items));
 }
コード例 #10
0
ファイル: Region.cs プロジェクト: tewtal/SMZ3Randomizer
 public virtual bool CanFill(Item item, Progression items)
 {
     return(Config.Keysanity || !item.IsDungeonItem || IsRegionItem(item));
 }
コード例 #11
0
        public static IEnumerable <Location> Available(this IEnumerable <Location> locations, IEnumerable <Item> items)
        {
            var progression = new Progression(items);

            return(locations.Where(l => l.Available(progression)));
        }
コード例 #12
0
 // For logic unit tests
 internal bool CanAccess(Progression items) => canAccess(items);
コード例 #13
0
ファイル: World.cs プロジェクト: tewtal/SMZ3Randomizer
 public bool CanAcquireAtLeast(int amount, Progression items, RewardType rewardsMask)
 {
     return(rewardLookup[(int)rewardsMask].Where(x => x.CanComplete(items)).Count() >= amount);
 }
コード例 #14
0
ファイル: World.cs プロジェクト: mrchrislad/SMZ3Randomizer
 public bool CanAquire(Progression items, RewardType reward)
 {
     return(Regions.OfType <IReward>().First(x => reward == x.Reward).CanComplete(items));
 }
コード例 #15
0
ファイル: Item.cs プロジェクト: avvie/SMZ3Randomizer
 public static bool CanLiftHeavy(this Progression items) => items.Mitt;
コード例 #16
0
ファイル: World.cs プロジェクト: mrchrislad/SMZ3Randomizer
 public bool CanAquireAll(Progression items, params RewardType[] rewards)
 {
     return(Regions.OfType <IReward>().Where(x => rewards.Contains(x.Reward)).All(x => x.CanComplete(items)));
 }
コード例 #17
0
ファイル: World.cs プロジェクト: tewtal/SMZ3Randomizer
 public bool CanAcquire(Progression items, RewardType reward)
 {
     // For the purpose of logic unit tests, if no region has the reward then CanAcquire is satisfied
     return(Regions.OfType <IReward>().FirstOrDefault(x => reward == x.Reward)?.CanComplete(items) ?? true);
 }