예제 #1
0
        public override float GetScore(BaseContext ctx)
        {
            NPCHumanContext c = ctx as NPCHumanContext;

            if (c != null)
            {
                float      bestDistance;
                CoverPoint closestCover = ProximityToCover.GetClosestCover(c, c.Position, this.MaxDistance, this._coverType, out bestDistance);
                if (closestCover != null)
                {
                    return(this.Response.Evaluate(bestDistance / this.MaxDistance) * closestCover.Score);
                }
            }
            return(0.0f);
        }
예제 #2
0
        public override float GetScore(BaseContext ctx, Vector3 option)
        {
            float           single;
            NPCHumanContext nPCHumanContext = ctx as NPCHumanContext;

            if (nPCHumanContext != null)
            {
                CoverPoint closestCover = ProximityToCover.GetClosestCover(nPCHumanContext, option, this.MaxDistance, this._coverType, out single);
                if (closestCover != null)
                {
                    return(this.Response.Evaluate(single / this.MaxDistance) * closestCover.Score);
                }
            }
            return(0f);
        }