本文整理汇总了C#中ICharacter.GetActions方法的典型用法代码示例。如果您正苦于以下问题:C# ICharacter.GetActions方法的具体用法?C# ICharacter.GetActions怎么用?C# ICharacter.GetActions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICharacter
的用法示例。
在下文中一共展示了ICharacter.GetActions方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BotPerformMove
private void BotPerformMove(ICharacter c, ArenaFloorTile tile)
{
// Get movement with most distance.
var moveAction = c.GetActions(false)
.Where(a => a is MoveBase)
.OrderByDescending(a => ((MoveBase)a).Distance)
.FirstOrDefault() as MoveBase;
if (moveAction == null) return;
// Get as close to player as possible - find movement that does this.
var d = moveAction.Distance;
var newPosition = ArenaHelper.GetClosestMovablePosition(c.ArenaLocation.GetTileLocation(), tile.GetTileLocation(), d);
var newTile = CurrentBattleDetails.Arena.ArenaFloor[newPosition.XCoord, newPosition.YCoord];
//TODO: Implement logic for bot moving around obstacles? For now don't allow movement onto tiles that have entities
var actions = c.TargetTileAndSelectActions(newTile);
if (actions.Exists(i => i.Name == moveAction.Name))
{
if (EnableLogging)
{
Logger.WriteBattleTurnEntry(c.SkillTree.Get()
.Where(s => s.IsActive)
.OrderByDescending(s => s.Level)
.First()
.Path
+ " (" + c.Name + " " + c.Health + "/" + c.Mana + ") "
+ "performed "
+ moveAction.Name);
}
CurrentBattleDetails.TurnDetails.Add(moveAction.Perform((Character)c));
}
}