コード例 #1
0
ファイル: TargetInfo.cs プロジェクト: phiLyken/RC_1
    /// <summary>
    /// Returns true if the target is targetable (according to the specified targeting rules)
    /// </summary>
    /// <param name="target"></param>
    /// <param name="fromTile"></param>
    /// <returns></returns>
    public static bool CanTarget(TargetInfo targetRules, Unit targeter, Unit target, Tile fromTile)
    {
        if (target.IsDead())
        {
            return(false);
        }
        if (target == targeter && !targetRules.TargetSelf)
        {
            return(false);
        }
        if (!targetRules.TargetSelf && (!targetRules.TargetFriendly && target.OwnerID == targeter.OwnerID))
        {
            return(false);
        }
        if (!targetRules.TargetEnemies && target.OwnerID != targeter.OwnerID)
        {
            return(false);
        }
        if (!IsInRangeAndHasLOS(targeter, target, targetRules.GetRange(targeter), fromTile))
        {
            return(false);
        }

        return(true);
    }
コード例 #2
0
 public float GetRange(Unit u)
 {
     return(TargetRule.GetRange(u));
 }