Exemplo n.º 1
0
        public bool IsTargetValid(RLBaseActor skillUser, RLBaseTile targetTile)
        {
            if (!IsTargetInRange(skillUser, targetTile))
            {
                return(false);
            }
            switch (Target)
            {
            case TargetType.None:
                return(false);

            case TargetType.Any:
                return(true);

            case TargetType.EmptyTile:
                return(!targetTile.GetTileType().BlocksMovement&& targetTile.GetActor() == null);

            case TargetType.Self:
                return(true);

            case TargetType.AnyCreature:
                return(targetTile.GetActor() != null);

            case TargetType.Enemy:
                return(targetTile.GetActor() != null && skillUser.IsEnemyOf(targetTile.GetActor()));

            case TargetType.Ally:
                return(targetTile.GetActor() != null && skillUser.IsAllyOf(targetTile.GetActor()));

            case TargetType.Custom:
                return(IsCustomTargetValid(skillUser, targetTile));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Exemplo n.º 2
0
 protected bool CanSeeThrough(RLBaseTile tile)
 {
     return(!tile.GetTileType().BlocksVision);
 }