Exemple #1
0
    // Update is called once per frame
    void Update()
    {
        if (player == null)
        {
            player = StageManager.currentInstance.GetPlayer();
        }

        if (findNextPositionTimer < 0)
        {
            targetPos             = new Vector3(Random.Range(MIN_X, MAX_X), Random.Range(MIN_Y, MAX_Y), 0);
            findNextPositionTimer = FIND_NEXT_POSITION_DELAY;
        }
        else
        {
            findNextPositionTimer -= Time.deltaTime * entityNPC.GetEntityTimescale();
        }

        transform.position = Vector3.MoveTowards(transform.position, targetPos, Time.deltaTime * movespeed * entityNPC.GetEntityTimescale());

        shootready += Time.deltaTime * entityNPC.GetEntityTimescale();
        if (shootready > 1 && player != null)
        {
            shootready = 0;
            entityNPC.Shoot(TrackTo(player.GetGameObject().transform));
        }
    }
Exemple #2
0
 void FixedUpdate()
 {
     lifetime += Time.fixedDeltaTime * entityManaged.GetEntityTimescale();
     if (lifetime < MAX_FIGHT_TIME)
     {
         shootready += Time.fixedDeltaTime * entityManaged.GetEntityTimescale() * FIRERATE;
         if (transform.position.y > targetCombatY)
         {
             transform.Translate(0, -((transform.position.y - targetCombatY) + MIN_ENTRANCE_MOVESPEED) * Time.fixedDeltaTime * entityManaged.GetEntityTimescale(), 0);
         }
         transform.position = Vector3.MoveTowards(transform.position, new Vector3(player.GetGameObject().transform.position.x, transform.position.y, transform.position.z), FIGHT_MOVESPEED * Time.fixedDeltaTime * entityManaged.GetEntityTimescale());
     }
     else
     {
         transform.Translate(0, RETREAT_MOVESPEED * Time.fixedDeltaTime * entityManaged.GetEntityTimescale(), 0);
         if (transform.position.y > 17)
         {
             entityManaged.RetreatFromStage();
         }
     }
     if (shootready > 1)
     {
         shootready = 0;
         entityManaged.Shoot(270);
     }
 }
Exemple #3
0
    // Update is called once per frame
    void Update()
    {
        if (player == null)
        {
            player        = StageManager.currentInstance.GetPlayer();
            angleToTarget = 0;
        }
        else
        {
            angleToTarget = TrackTo(player.GetGameObject().transform);
            if (EntityManaged.GetEntityTimescale() > 0)
            {
                transform.rotation = Quaternion.Euler(0, 0, angleToTarget + 90);
            }
        }

        transform.position = Vector3.MoveTowards(transform.position, targetPos, Time.deltaTime * movespeed * EntityManaged.GetEntityTimescale());

        if (lifetime < RETREAT_TIME)
        {
            lifetime += Time.deltaTime * EntityManaged.GetEntityTimescale();
            if (lifetime >= RETREAT_TIME)
            {
                movespeed = ESCAPE_SPEED;
                targetPos = new Vector3(Random.Range(1, 3) == 1 ? -12 : 12, transform.position.y, 0);
            }
        }
        else if (transform.position == targetPos)
        {
            EntityManaged.RetreatFromStage();
        }

        shootready += Time.deltaTime * EntityManaged.GetEntityTimescale();
        if (shootready > 1 && player != null)
        {
            shootready = 0;
            EntityManaged.Shoot(angleToTarget);
        }
    }