本文整理汇总了C#中Forays.PhysicalObject.YouVisible方法的典型用法代码示例。如果您正苦于以下问题:C# PhysicalObject.YouVisible方法的具体用法?C# PhysicalObject.YouVisible怎么用?C# PhysicalObject.YouVisible使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Forays.PhysicalObject
的用法示例。
在下文中一共展示了PhysicalObject.YouVisible方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Toggle
public void Toggle(PhysicalObject toggler,TileType toggle_to){
bool lighting_update = false;
List<PhysicalObject> light_sources = new List<PhysicalObject>();
TileType original_type = ttype;
if(opaque != Prototype(toggle_to).opaque){
for(int i=row-1;i<=row+1;++i){
for(int j=col-1;j<=col+1;++j){
if(M.tile[i,j].IsLit()){
lighting_update = true;
}
}
}
}
if(lighting_update){
for(int i=row-Global.MAX_LIGHT_RADIUS;i<=row+Global.MAX_LIGHT_RADIUS;++i){
for(int j=col-Global.MAX_LIGHT_RADIUS;j<=col+Global.MAX_LIGHT_RADIUS;++j){
if(i>0 && i<ROWS-1 && j>0 && j<COLS-1){
if(M.actor[i,j] != null && M.actor[i,j].LightRadius() > 0){
light_sources.Add(M.actor[i,j]);
M.actor[i,j].UpdateRadius(M.actor[i,j].LightRadius(),0);
}
if(M.tile[i,j].inv != null && M.tile[i,j].inv.light_radius > 0){
light_sources.Add(M.tile[i,j].inv);
M.tile[i,j].inv.UpdateRadius(M.tile[i,j].inv.light_radius,0);
}
if(M.tile[i,j].light_radius > 0){
light_sources.Add(M.tile[i,j]);
M.tile[i,j].UpdateRadius(M.tile[i,j].light_radius,0);
}
}
}
}
}
TransformTo(toggle_to);
if(lighting_update){
foreach(PhysicalObject o in light_sources){
if(o is Actor){
Actor a = o as Actor;
a.UpdateRadius(0,a.LightRadius());
}
else{
o.UpdateRadius(0,o.light_radius);
}
}
}
if(toggler != null && toggler != player){
if(ttype == TileType.DOOR_C && original_type == TileType.DOOR_O){
if(player.CanSee(this)){
B.Add(toggler.TheVisible() + " closes the door. ");
}
else{
if(seen || player.DistanceFrom(this) <= 6){
B.Add("You hear a door closing. ");
}
}
}
if(ttype == TileType.DOOR_O && original_type == TileType.DOOR_C){
if(player.CanSee(this)){
B.Add(toggler.TheVisible() + " opens the door. ");
}
else{
if(seen || player.DistanceFrom(this) <= 6){
B.Add("You hear a door opening. ");
}
}
}
}
if(toggler != null){
if(original_type == TileType.RUBBLE){
B.Add(toggler.YouVisible("shift") + " the rubble aside. ",this);
}
}
}