Example #1
0
        private bool CanTryToSummon()
        {
            if (Undead.count < maxArmySize())
            {
                var ch = FindChar(CityBossLevel.Pedestal(_nextPedestal));
                return(ch == this || ch == null);
            }

            return(false);
        }
Example #2
0
        public override bool Attack(Character enemy)
        {
            if (CanTryToSummon() && pos == CityBossLevel.Pedestal(_nextPedestal))
            {
                Summon();
                return(true);
            }

            if (FindChar(CityBossLevel.Pedestal(_nextPedestal)) == enemy)
            {
                _nextPedestal = !_nextPedestal;
            }

            return(base.Attack(enemy));
        }
Example #3
0
        public static Level NewLevel()
        {
            Level = null;
            Actor.Clear();

            Depth++;
            if (Depth > Statistics.DeepestFloor)
            {
                Statistics.DeepestFloor = Depth;

                if (Statistics.QualifiedForNoKilling)
                {
                    Statistics.CompletedWithNoKilling = true;
                }
                else
                {
                    Statistics.CompletedWithNoKilling = false;
                }
            }

            Arrays.Fill(Visible, false);

            Level level;

            switch (Depth)
            {
            case 1:
            case 2:
            case 3:
            case 4:
                level = new SewerLevel();
                break;

            case 5:
                level = new SewerBossLevel();
                break;

            case 6:
            case 7:
            case 8:
            case 9:
                level = new PrisonLevel();
                break;

            case 10:
                level = new PrisonBossLevel();
                break;

            case 11:
            case 12:
            case 13:
            case 14:
                level = new CavesLevel();
                break;

            case 15:
                level = new CavesBossLevel();
                break;

            case 16:
            case 17:
            case 18:
            case 19:
                level = new CityLevel();
                break;

            case 20:
                level = new CityBossLevel();
                break;

            case 21:
                level = new LastShopLevel();
                break;

            case 22:
            case 23:
            case 24:
                level = new HallsLevel();
                break;

            case 25:
                level = new HallsBossLevel();
                break;

            case 26:
                level = new LastLevel();
                break;

            default:
                level = new DeadEndLevel();
                Statistics.DeepestFloor--;
                break;
            }

            level.Create();

            Statistics.QualifiedForNoKilling = !BossLevel();

            return(level);
        }
Example #4
0
 protected internal override bool CanAttack(Character enemy)
 {
     return(CanTryToSummon() ? pos == CityBossLevel.Pedestal(_nextPedestal) : Level.Adjacent(pos, enemy.pos));
 }
Example #5
0
 protected internal override bool GetCloser(int target)
 {
     return(CanTryToSummon() ? base.GetCloser(CityBossLevel.Pedestal(_nextPedestal)) : base.GetCloser(target));
 }