当前位置: 首页>>代码示例>>C#>>正文


C# Floor.is_impassible_doodad_here方法代码示例

本文整理汇总了C#中Floor.is_impassible_doodad_here方法的典型用法代码示例。如果您正苦于以下问题:C# Floor.is_impassible_doodad_here方法的具体用法?C# Floor.is_impassible_doodad_here怎么用?C# Floor.is_impassible_doodad_here使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Floor的用法示例。


在下文中一共展示了Floor.is_impassible_doodad_here方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: move

        public void move(gridCoordinate.direction dir, Floor fl)
        {
            int MonsterID = -1;
            Doodad target_doodad = null;
            bool opened_door = false;
            gridCoordinate test_coord = new gridCoordinate(my_grid_coord);
            test_coord.shift_direction(dir);

            if (is_spot_free(fl, test_coord))
            {
                my_grid_coord = test_coord;
                reset_my_drawing_position();
            }
            else
            {
                int DoodadID = -1;
                //Check for monsters / doodads first.
                fl.is_monster_here(test_coord, out MonsterID);
                if (fl.is_impassible_doodad_here(test_coord, out DoodadID))
                    target_doodad = fl.Doodad_by_index(DoodadID);
                //Check to see if there's a door there. If there is, attempt to open it.
                fl.open_door_here(test_coord, out opened_door);
            }

            if (MonsterID != -1)
                melee_attack(fl, my_grid_coord, test_coord);

            if (target_doodad != null)
            {
                switch (target_doodad.get_my_doodad_type())
                {
                    case Doodad.Doodad_Type.Door:
                        fl.open_door_here(test_coord, out opened_door);
                        if (!opened_door)
                            melee_attack(fl, my_grid_coord, test_coord);
                        break;
                    case Doodad.Doodad_Type.TreasureBox:
                        if (!target_doodad.is_chest_open())
                            target_doodad.open_chest(fl);
                        else
                            if (target_doodad.chest_contains_stuff())
                                target_doodad.loot_chest(fl, this);
                        break;
                    default:
                        melee_attack(fl, my_grid_coord, test_coord);
                        break;
                }
            }
            //after moving, loot the current tile, and set sound / smell values.
            loot(fl);
            total_sound = my_sound_value();
            total_scent = my_scent_value();
        }
开发者ID:Chupaflor,项目名称:Cronkpit_Samples,代码行数:53,代码来源:Player.cs


注:本文中的Floor.is_impassible_doodad_here方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。