本文整理汇总了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();
}