Example #1
0
        public override Finite.Mode act(Finite collection)
        {
            if (path.Count == 0)
            {
                collection.set_next("idle");
                return(Finite.Mode.Next);
            }

            var from  = Context.transform.position;
            var to    = room.grid_to_world(path.Peek(), true) - Context.transform.position;
            var angle = Vector3.SignedAngle(from.normalized, to.normalized, Vector3.up);

            rb.rotation = Quaternion.Euler(0.0f, angle + 45.0f, 0.0f);

            to.Normalize();
            to.y = 0;
            to  *= 3.0f * Time.deltaTime;
            rb.MovePosition(rb.position + to);


            draw_rect(room.grid_to_world(path.Peek(), true), 1.0f, Color.yellow);
            if (Vector3.Distance(rb.position, room.grid_to_world(path.Peek(), true)) < 0.15f)
            {
                path.Pop();
            }
            foreach (var value in debug)
            {
                draw_rect(room.grid_to_world(value, true), 1.0f, Color.blue);
            }
            return(mode);
        }
Example #2
0
 public override void decide(Finite collection)
 {
     if (!is_reachable)
     {
         collection.set_next("Idle");
         mode = Finite.Mode.Next;
     }
 }
Example #3
0
 public override void decide(Finite collection)
 {
     if (in_range)
     {
         Next = "Chase";
         collection.set_next(Next);
         mode = Finite.Mode.Next;
     }
 }
Example #4
0
 public override Finite.Mode update(Finite collection)
 {
     sense_timer  -= Time.deltaTime;
     decide_timer -= Time.deltaTime;
     if (sense_timer < 0)
     {
         sense();
         sense_timer = sense_interval;
     }
     if (decide_timer < 0)
     {
         decide(collection);
         decide_timer = decide_interval;
     }
     return(act(collection));
 }
Example #5
0
 public abstract void decide(Finite collection);
Example #6
0
 public abstract Finite.Mode act(Finite collection);
Example #7
0
 public override Finite.Mode update(Finite collection)
 {
     return(Finite.Mode.Run);
 }
Example #8
0
 public Machine(IState state)
 {
     collection = new Finite(state);
 }
Example #9
0
 public override void enter(Finite collection)
 {
     mode = Finite.Mode.Run;
 }
Example #10
0
 public override void exit(Finite collection)
 {
 }
Example #11
0
 public abstract void enter(Finite collection);
Example #12
0
 public abstract void exit(Finite collection);
Example #13
0
 public override void exit(Finite collection)
 {
     damage.unregister(this);
 }
Example #14
0
 public override void enter(Finite collection)
 {
     damage.register(this);
     mode = Finite.Mode.Run;
 }
Example #15
0
 public override Finite.Mode update(Finite collection)
 {
     Debug.Log("Entry");
     collection.set_next(Next);
     return(Finite.Mode.Next);
 }
Example #16
0
 public override void exit(Finite collection)
 {
     Debug.Log("Entry Exit");
 }
Example #17
0
 public override void enter(Finite collection)
 {
     Debug.Log("Entry Enter");
 }
Example #18
0
 public abstract Mode update(Finite collection);
Example #19
0
 public override Finite.Mode act(Finite collection)
 {
     return(mode);
 }
Example #20
0
 public Machine(string name, IState state)
 {
     collection = new Finite(name, state);
     collection.current.enter(collection);
 }
Example #21
0
 public override void enter(Finite collection)
 {
 }