Exemple #1
0
        private static void AddPointsOnRight()
        {
            double xEnd             = GetRightPointXPos();
            var    additionalPoints = Thinker.GetPointsList(rpn, pointsList[pointsList.Count - 1].X + Step, xEnd, Step, Zoom);

            pointsList = pointsList.Concat(additionalPoints).ToList();
        }
Exemple #2
0
 public override void Initialize(Thinker x)
 {
     base.Initialize(x);
     //target = GameObject.Find(GameObjectNameToFollow).transform;
     target = GameObjectVariableToFollow.Value.transform;
     anim   = x.GetComponent <Animator>();//NÃO VAI CONTROLAR ANIMAÇÃO
 }
Exemple #3
0
        static void Main(string[] args)
        {
            ComPort port = null;

            try
            {
                port = new ComPort();
                Console.WriteLine("FRF started");

                var thinker = new Thinker(port);
                thinker.MainLoop();

                Console.ReadLine();

                /*while (true)
                 * {
                 *  string str = Console.ReadLine();
                 *  if (str == "exit")
                 *  {
                 *      break;
                 *  }
                 *
                 *  byte degree = Byte.Parse(str);
                 *  port.SendCommand(Commands.Status, new byte[] { degree });
                 * }*/
            }
            finally
            {
                if (port != null)
                {
                    port.Close();
                }
            }
        }
Exemple #4
0
    private void Awake()
    {
        bcollider         = GetComponent <BoxCollider>();
        seenByWhom        = new int[Team.teams.Length];
        orderOverwriteST  = shootType;
        orderOverwriteMSA = msa;
        thinker           = Thinker.Get(unitType, this);
        List <Ability> delete = new List <Ability>();

        foreach (var p in thinker.passives)
        {
            p.Start();
        }
        allUnits.Add(this);
        team = Team.Get(teamInit);
        //   meshAgent = GetComponent<NavMeshAgent>();
        //  meshAgent.speed = moveSpeed;
        //  meshAgent.acceleration = acceleration;
        //  meshAgent.angularSpeed = rotationSpeed;
        mover = GetComponent <Mover>();
        mover.SetSpeed(moveSpeed);
        mover.SetAcceleration(acceleration);
        mover.SetAngularSpeed(rotationSpeed);
        mover.SetStopingDistance(stoppingDistance);
        rb                   = GetComponent <Rigidbody>();
        ds.myTeam            = team;
        FieldOfVision.myTeam = team;
    }
Exemple #5
0
    public override void Think(Thinker thinker)
    {
        DrakeController    drake     = thinker.Remember <DrakeController>("drake");
        MovementController mc        = thinker.Remember <MovementController>("movement");
        AttackController   at        = thinker.Remember <AttackController>("attack");
        Vector2            moveInput = thinker.Remember <Vector2>("moveInput");

        if (!mc.IsGrounded)
        {
            return;
        }

        if (moveInput.sqrMagnitude <= 0)
        {
            moveInput = new Vector2(1, 0);
        }
        else if (mc.IsAtWall() || mc.IsAtEdge())
        {
            moveInput.x *= -1;
        }

        thinker.Remember("moveInput", moveInput);
        drake.Walk(moveInput);

        if (target.Value != null && at.AttackCollider.bounds.Intersects(target.Value.bounds))
        {
            drake.Attack();
        }
    }
Exemple #6
0
//    [SerializeField] [TextArea] private string developerDescription =
//        "Settings:\n" +
//        "punchInterval in overrideSettings to customise on a per instance level";

    public override void Initialize(Thinker thinker)
    {
        thinker.Remember("drake", thinker.GetComponent <DrakeController>());
        thinker.Remember("movement", thinker.GetComponent <MovementController>());
        thinker.Remember("attack", thinker.GetComponent <AttackController>());
        thinker.Remember("moveInput", Vector2.zero);
    }
Exemple #7
0
 public override void Initialize(Thinker x)
 {
     base.Initialize(x);
     target = GameObject.Find(GameObjectNameToFollow).transform;
     anim   = x.GetComponent <Animator>();//NÃO VAI CONTROLAR ANIMAÇÃO
     anim.SetBool("Walking", false);
 }
Exemple #8
0
        private static void SetPoints()
        {
            double xStart = GetLeftPointXPos();
            double xEnd   = GetRightPointXPos();

            pointsList = Thinker.GetPointsList(rpn, xStart, xEnd, Step, Zoom);
        }
Exemple #9
0
        private static void AddPointsOnLeft()
        {
            double xStart           = GetLeftPointXPos();
            var    additionalPoints = Thinker.GetPointsList(rpn, xStart, pointsList[0].X - Step, Step, Zoom);

            pointsList = additionalPoints.Concat(pointsList).ToList();
        }
Exemple #10
0
 public override void Initialize(Thinker thinker)
 {
     thinker.Remember("drake", thinker.GetComponent <DrakeController>());
     thinker.Remember("punchInterval",
                      thinker.HasMemory("punchInterval")
             ? float.Parse(thinker.Remember <string>("punchInterval"))
             : punchInterval);
 }
        void SteerLeft(Thinker thinker)
        {
            Opponent self = (Opponent)thinker.Self;

            if (self.Steering > -1.0)
            {
                self.Steering = self.Steering - 0.01f;
            }
        }
        void SteerRight(Thinker thinker)
        {
            Opponent self = (Opponent)thinker.Self;

            if (self.Steering < 1.0)
            {
                self.Steering = self.Steering + 0.01f;
            }
        }
Exemple #13
0
 void OnTriggerEnter(Collider other)
 {
     if (!hasBeenHeard)
     {
         Thinker colliderThinker = other.GetComponent <Thinker>();
         colliderThinker.OnHearImpactSound(soundOrigin);
         hasBeenHeard = true;
     }
 }
Exemple #14
0
        /// <summary>
        /// Loads timed events.
        /// </summary>
        private static void LoadEvents()
        {
            ServerConsole.WriteLine("Loading Events", MessageLevel.Message);

            Thinker = new Thinker();
            Thinker.Start();

            //entities in view
            Thinker.Add(1, new DelegateThought.ThoughtCallback(UpdateEntitiesInView));
        }
        public override bool Match(object check, Context context, IContinuation succ, IFailure fail)
        {
            List <Relations.Relation> kinds = new List <Relations.Relation>();

            kinds.Add(Relations.Relation.Tense);

            Thinker.SearchForMatch(salience, memory, kinds, (Datum)check, context, succ, fail, DecideValue, check);

            return(true);
        }
        public override bool Match(object check, Context context, IContinuation succ, IFailure fail)
        {
            List <Relations.Relation> kinds = new List <Relations.Relation>();

            kinds.Add(Relations.Relation.InLocation);
            kinds.Add(Relations.Relation.HasProperty);

            Thinker.SearchForMatch(salience, memory, kinds, (Datum)check, context, succ, fail);

            return(true);
        }
Exemple #17
0
 public override void Think(Thinker thinker)
 {
     if (!thinker.HasMemory("coroutineStarted"))
     {
         thinker.Remember("coroutineStarted", true);
         float           punchInterval = thinker.Remember <float>("punchInterval");
         DrakeController drake         = thinker.Remember <DrakeController>("drake");
         thinker.StartCoroutine(
             CoroutineUtils.Repeat(() => { drake.Attack(); }, 0, punchInterval));
     }
 }
        void Accelerate(Thinker thinker)
        {
            Opponent self = (Opponent)thinker.Self;

            self.Brake = 0.0f;

            if (self.Gas < 1.0)
            {
                self.Gas = self.Gas + 0.1f;
            }
        }
        void HitTheBrakes(Thinker thinker)
        {
            Opponent self = (Opponent)thinker.Self;

            self.Gas = 0.0f;

            if (self.Brake < 1.0)
            {
                self.Brake = self.Brake + 0.1f;
            }
        }
        void SteerStraight(Thinker thinker)
        {
            Opponent self = (Opponent)thinker.Self;

            if (self.Steering > 0.0)
            {
                self.Steering = self.Steering - 0.01f;
            }
            else if (self.Steering < 0.0)
            {
                self.Steering = self.Steering + 0.01f;
            }
        }
Exemple #21
0
    public override void Think(Thinker thinker)
    {
        DrakeController drake     = thinker.GetComponent <DrakeController>();
        Vector2         moveInput = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));

        drake.Walk(moveInput);
        if (Input.GetButtonDown("Jump") || moveInput.y > 0)
        {
            drake.Jump();
        }

        if (Input.GetKeyDown(KeyCode.J))
        {
            drake.Attack();
        }
    }
        public Opponent(string name, string meshFile, Vector3 offset, Attitude adjust,
                        string knowledge) : base(name, meshFile, offset, adjust)
        {
            m_camera = new Camera(name + " cam");
            m_camera.Attach(this, new Vector3(0.0f, 0.0f, 0.0f));

            Thinker.AddAction("SteerLeft", new Thinker.ActionMethod(SteerLeft));
            Thinker.AddAction("SteerStraight", new Thinker.ActionMethod(SteerStraight));
            Thinker.AddAction("SteerRight", new Thinker.ActionMethod(SteerRight));
            Thinker.AddAction("HitTheBrakes", new Thinker.ActionMethod(HitTheBrakes));
            Thinker.AddAction("Accelerate", new Thinker.ActionMethod(Accelerate));

            m_thinker = new Thinker(this);

            m_thinker.AddSensorMethod(new Thinker.SensorMethod(DriverView));

            m_thinker.Read(knowledge);
        }
        public void DriverView(Thinker thinker)
        {
            ArrayList objects = new ArrayList();

            Opponent self = (Opponent)thinker.Self;
            Camera   eyes = self.Eyes;

            // get a local copy of the objects that the camera can see
            objects.Clear();
            foreach (Object3D obj in eyes.VisibleObjects)
            {
                objects.Add(obj);
            }

            float    range_to_nearest   = 10000.0f;
            float    bearing_to_nearest = 0.0f;
            Object3D nearest_object     = null;

            // nearest red post
            foreach (Object3D obj in objects)
            {
                if (obj.Name.Substring(0, 3) == "red")
                {
                    float range = eyes.GetDistance(obj);
                    if (range < range_to_nearest)
                    {
                        range_to_nearest = range;
                        nearest_object   = obj;
                    }
                }
            }
            if (nearest_object != null)
            {
                bearing_to_nearest = GetBearing(self, nearest_object);
                thinker.SetFact("red_post_in_sight", 1.0f);
                thinker.SetFact("red_post_range", range_to_nearest);
                thinker.SetFact("red_post_bearing", bearing_to_nearest);
            }
            else
            {
                thinker.SetFact("red_post_in_sight", 0.0f);
            }

            // nearest blue post
            range_to_nearest = 10000.0f;
            foreach (Object3D obj in objects)
            {
                if (obj.Name.Substring(0, 4) == "blue")
                {
                    float range = eyes.GetDistance(obj);
                    if (range < range_to_nearest)
                    {
                        range_to_nearest = range;
                        nearest_object   = obj;
                    }
                }
            }
            if (nearest_object != null)
            {
                bearing_to_nearest = GetBearing(self, nearest_object);
                thinker.SetFact("blue_post_in_sight", 1.0f);
                thinker.SetFact("blue_post_range", range_to_nearest);
                thinker.SetFact("blue_post_bearing", bearing_to_nearest);
            }
            else
            {
                thinker.SetFact("blue_post_in_sight", 0.0f);
            }

            // nearest obstacle (vehicles and trees)
            range_to_nearest = 10000.0f;
            foreach (Object3D obj in objects)
            {
                if (obj.Name.Substring(0, 4) == "tree" ||
                    obj.Name.Substring(0, 3) == "car")
                {
                    float bearing = GetBearing(self, nearest_object);
                    float range   = eyes.GetDistance(obj);

                    // only accept nearest object within +/- 5 degrees
                    if (Math.Abs(bearing) < 0.087266462599716478846184538424431 && range < range_to_nearest)
                    {
                        range_to_nearest   = range;
                        nearest_object     = obj;
                        bearing_to_nearest = bearing;
                    }
                }
            }
            if (nearest_object != null)
            {
                thinker.SetFact("obstacle_in_sight", 1.0f);
                thinker.SetFact("obstacle_range", range_to_nearest);
                thinker.SetFact("obstacle_bearing", bearing_to_nearest);
            }
            else
            {
                thinker.SetFact("obstacle_in_sight", 0.0f);
            }
        }
Exemple #24
0
 public abstract void Think(Thinker thinker);
Exemple #25
0
 public virtual void Initialize(Thinker tank)
 {
 }
Exemple #26
0
 public virtual void Initialize(Thinker x)
 {
     thinker    = x;
     gameObject = x.gameObject;
     transform  = x.transform;
 }
Exemple #27
0
 public void OnEnable()
 {
     nextState         = new PonderingState(this);
     playerThinker     = GetComponent <Thinker>();
     movementComponent = GetComponent <AutonomousMovementComponent>();
 }
Exemple #28
0
        /// <summary>
        /// Loads timed events.
        /// </summary>
        private static void LoadEvents()
        {
            ServerConsole.WriteLine("Loading Events", MessageLevel.Message);

            Thinker = new Thinker();
            Thinker.Start();

            //entities in view
            Thinker.Add(1, new DelegateThought.ThoughtCallback(UpdateEntitiesInView));
        }