Exemplo n.º 1
0
 public override void Execute(Entity context)
 {
     Transform transform = context.transform;
     direction = context.GetMedrashPosition() - transform.position;
     direction.y = 0.0f;
     context.SetDirection(direction);
 }
Exemplo n.º 2
0
    public override void Execute(Entity context)
    {
        CharacterController controller = context.GetComponent<CharacterController>();
        transform = controller.transform;
        //transform = context.transform;
        direction = context.GetMedrashPosition() - transform.position;
        direction.y = 0.0f;

        tangent.x = clockwise*direction.z;
        tangent.z = -clockwise*direction.x;
        tangent.y = 0.0f;

        if (context.DistanceToMainCharacter() > context.GetCloseRadius())
            direction = tangent + 0.01f*(direction.magnitude - context.GetFarRadius()) * direction;
        else
            direction = tangent + 0.1f*(direction.magnitude - context.GetFarRadius()) * direction;

        RaycastHit hitInfo;
        if (Physics.Raycast(transform.position + controller.center, direction, out hitInfo, 3.0f)) {
            clockwise *= -1;
            direction *= -1;
        }
        context.SetDirection(direction);
        context.SetRunAnimation();
    }
 public override void Execute(Entity context)
 {
     direction = context.ReturnPlace() - context.transform.position;
     direction.y = 0;
     context.SetDirection(direction);
     context.SetWalkAnimation();
 }
 public override void Enter(Entity context)
 {
     transform = context.transform;
     direction = context.GetMedrashPosition() - transform.position;
     direction.y = 0.0f;
     context.SetSpeed(context.GetBaseSpeed()*1.5f);
     context.SetDirection(direction);
 }
Exemplo n.º 5
0
 public override void Execute(Entity context)
 {
     target = context.medrash.transform;
     transform = context.transform;
     direction = target.position - transform.position;
     direction.y = 0;
     direction = -5.0f*direction.normalized;
     context.SetDirection(direction);
 }
Exemplo n.º 6
0
 public override void Enter(Entity context)
 {
     context.SetSpeed(context.GetBaseSpeed());
     float r = Random.value;
     rotateAngle = 120.0f*(2*r - 1)*Mathf.PI/180.0f;
     if (r < 0.4)
         context.RotateBy(rotateAngle);
     else if (r < 0.8)
         context.RotateBy(-rotateAngle);
     direction = context.transform.forward;
     direction.y = 0.0f;
     context.SetDirection(direction);
 }
 public override void Execute(Entity context)
 {
     transform = context.transform;
     direction = context.GetMedrashPosition() - transform.position;
     direction.y = 0.0f;
     tangent.x = clockwise*direction.z;
     tangent.z = -clockwise*direction.x;
     tangent.y = 0.0f;
     direction = tangent + (direction.magnitude - context.GetFarRadius()) * direction;
     if (Physics.Raycast(transform.position, direction, context.GetCloseRadius()))
         clockwise *= -1;
     context.SetDirection(direction);
     context.SetRunAnimation();
 }
Exemplo n.º 8
0
 public override void Execute(Entity context)
 {
     context.SetDirection(Vector3.zero);
     context.SetFace(context.transform.right);
 }
Exemplo n.º 9
0
    public void EntityEnter(uint id, Entity.Type type, uint subType, Vector3 position, float direction)
    {
        Entity entity = null;

        switch (type)
        {
        case Entity.Type.Player:
        case Entity.Type.NPC:
        {
            RoleInfo   info = Core.Database.GetRoleInfo(subType);
            GameObject go   = Core.Database.LoadResource("Roles/" + info.res);
            go.transform.localScale = Vector3.one * info.scale;
            Role role = go.AddComponent <Role>();

            go.AddComponent <RoleAnimator>();
            RoleAgent agent = go.AddComponent <RoleAgent>();
            agent.RoleId = id;

            CapsuleCollider collider = go.AddComponent <CapsuleCollider>();
            collider.radius = 0.5f;
            collider.height = 2;
            collider.center = new Vector3(0, 1.1f, 0);

            if (Core.Account.role == null)
            {
                Core.Account.role = role;
                m_camera.GetComponent <CameraController>().target = go.transform;
                go.AddComponent <RoleController>();
                Rigidbody rigidbody = go.AddComponent <Rigidbody>();
                rigidbody.freezeRotation = true;
                rigidbody.useGravity     = false;
            }

            entity = role;
        }
        break;

        case Entity.Type.Teleporter:
        {
            GameObject go = Core.Database.LoadResource("Entities/Teleporter");
            entity = go.AddComponent <Teleporter>();
        }
        break;

        case Entity.Type.Item:
        {
            GameObject go = Core.Database.LoadResource("Entities/Bottle");
            entity = go.AddComponent <DropItem>();
        }
        break;

        default:
            break;
        }

        if (entity != null)
        {
            entity.SetInfo(id, type, subType);
            entity.SetPosition(position);
            entity.SetDirection(direction);
            AddEntity(entity);
        }
    }