コード例 #1
0
        public static jtbvMonster GetMonster(char symbol, string desc)
        {
            jtbvMonster retVal = null;

            Match m = CommonMonsters.Match(desc);
            if (!m.Success)
                m = RareMonsters.Match(desc);

            if ((m.Success) && (monsterSymbols.Contains(symbol.ToString())))
            {
                retVal = new jtbvMonster();

                switch (m.Groups[1].Value)
                {
                    case "tame":
                        retVal.Temperment = jtbvTemperment.TAME;
                        break;
                    case "peaceful":
                        retVal.Temperment = jtbvTemperment.PEACEFUL;
                        break;
                    case "":
                    default:
                        retVal.Temperment = jtbvTemperment.HOSTILE;
                        break;
                }

                retVal.Species = m.Groups[2].Value;
                retVal.Symbol = symbol;

                //Console.WriteLine("Recognized monster " + retVal.Species);
            }
            else if (symbol == 'I')
            {
                retVal = new jtbvMonster();
                retVal.Symbol = symbol;
            }

            return retVal;
        }
コード例 #2
0
        public void UseQueryResult(char Symbol, string Description)
        {
            jtbvLog.WriteFile("Inquiries.log", "Query result for " + this.Loc.ToString() + " is (" + Symbol.ToString() + ") '" + Description + "'");

            HasItem = false;
            Monster = null; // Always reset the monster, because they might have moved.

            switch (Description)
            {
                case "doorway":
                    Tile = jtbvTile.OPEN_DOOR;
                    break;
                case "closed door":
                    Tile = jtbvTile.CLOSED_DOOR;
                    break;
                case "dark part of a room":
                    Tile = jtbvTile.UNEXPLORED;
                    break;
                case "floor of a room":
                    jtbvLog.WriteFile("MovementErrs.log", "Location2");
                    jtbvLog.WriteFile("MovementErrs.log", "Former tile was " + Tile.ToString());
                    Tile = jtbvTile.FLOOR;
                    jtbvLog.WriteFile("MovementErrs.log", "Tile is now " + Tile.ToString());
                    break;
                case "lit corridor":
                case "corridor":
                    jtbvLog.WriteFile("MovementErrs.log", "Location4");
                    jtbvLog.WriteFile("MovementErrs.log", "Former tile was " + Tile.ToString());
                    Tile = jtbvTile.CORRIDOR;
                    jtbvLog.WriteFile("MovementErrs.log", "Tile is now " + Tile.ToString());
                    break;
                case "wall":
                    Tile = jtbvTile.WALL;
                    break;
                case "broken door":
                    Tile = jtbvTile.BROKEN_DOOR;
                    break;
                case "open door":
                    Tile = jtbvTile.OPEN_DOOR;
                    break;
                case "staircase up":
                    Tile = jtbvTile.STAIRCASE_UP;
                    break;
                case "staircase down":
                    Tile = jtbvTile.STAIRCASE_DOWN;
                    break;
                case "lawful altar":
                    Tile = jtbvTile.LAWFUL_ALTAR;
                    break;
                case "neutral altar":
                    Tile = jtbvTile.NEUTRAL_ALTAR;
                    break;
                case "chaotic altar":
                    Tile = jtbvTile.CHAOTIC_ALTAR;
                    break;
                default: // In this case, we don't think it's a dungeon feature, so it must be a monster or an item.
                    if (Tile == jtbvTile.UNEXPLORED)
                    {
                        Tile = jtbvTile.UNKNOWN;
                    }

                    Monster = jtbvMonster.GetMonster(Symbol, Description);

                    if (Monster == null)
                    {
                        this.HasItem = true;
                        //Console.WriteLine("Found an item at loc " + this.Loc.ToString());
                        //jtbvItem item = jtbvItem.GetItem(sym, desc);
                    }
                    else
                    {
                        jtbvLog.WriteFile("FoundMonsters.log", Monster.Species);
                        //Console.WriteLine("Found monster " + Monster.Species + " at loc " + this.Loc.ToString());
                    }

                    break;
            }
        }
コード例 #3
0
        public jtbvMapSpace(jtbvGameLevel level, int x, int y)
        {
            parent = level;
            Loc = new Point(x, y);

            Items = new List<jtbvItem>();

            SearchStatus = 0;
            Tile = jtbvTile.UNEXPLORED;
            Monster = null;
        }
コード例 #4
0
        public void UseAppearanceData(char Appearance)
        {
            HasItem = false;
            Monster = null; // Always reset the monster, because they might have moved.

            switch (Appearance)
            {
                case '.':
                    jtbvLog.WriteFile("MovementErrs.log", "Location1");
                    jtbvLog.WriteFile("MovementErrs.log", "Old tile was " + Tile.ToString() + ", being set to floor");
                    Tile = jtbvTile.FLOOR;
                    break;
                case '{':
                    if ((Tile == jtbvTile.UNKNOWN) ||
                        (Tile == jtbvTile.UNEXPLORED))
                    {
                        RequestMoreInfo();
                    }
                    break;
                case '-':
                case '|':
                    RequestMoreInfo();
                    break;
                case '#':
                    if ((Tile == jtbvTile.UNKNOWN) ||
                        (Tile == jtbvTile.UNEXPLORED))
                        Tile = jtbvTile.WALL;
                    break;
                case '_':
                    RequestMoreInfo();
                    break;
                case '^':
                    if (!this.IsTrap())
                        RequestMoreInfo();
                    break;
                case '+':
                    RequestMoreInfo();
                    break;
                case '>':
                    if (Tile != jtbvTile.STAIRCASE_DOWN)
                        RequestMoreInfo();
            //		    				this[cursor] = jtbvMapSquare.STAIRCASE_DOWN;
                    break;
                case '<':
                    if (Tile != jtbvTile.STAIRCASE_UP)
                        RequestMoreInfo();
            //		    				this[cursor] = jtbvMapSquare.STAIRCASE_UP;
                    break;
                case ' ':
                    if (Tile == jtbvTile.UNKNOWN)
                        Tile = jtbvTile.UNEXPLORED;
                    break;
                default:
               					RequestMoreInfo();
                    break;
            }
        }