示例#1
0
    protected virtual void OnAttackApproach()
    {
        Girl girl = EnemyHandler.GetInstance().GetGirl();
        bool exit = true;

        if (state == State.ATTACKING)
        {
            if (girl != null)
            {
                if (!girl.IsTaken())
                {
                    girl.SetCaptor(this);
                    exit = false;

                    Vector3 exitPos = GetNearExitPath();
                    exitPos = NormalizeVector(exitPos);
                    StartMoving(exitPos);
                    SetState(State.KIDNAPPING);
                    SetFinishedListener(OnEscaped);
                }
            }
        }

        if (exit)
        {
            OnStartExit();
        }
    }
示例#2
0
    public override void Attack()
    {
        Girl girl = EnemyHandler.GetInstance().GetGirl();

        if (girl == null)
        {
            return;
        }

        if (girl.IsTaken())
        {
            return;
        }

        Stop();
        SetState(State.ATTACKING);
        target = girl.transform;
        Vector3 targetPos = target.position - ray.transform.position;

        SetRayAngle(targetPos);

        girl.SetCaptor(this);
        takingGirl           = true;
        girlStartPos         = target.position;
        girlMovementTimer    = 0f;
        girlMovementDuration = Vector3.Distance(ray.transform.position, girlStartPos) / girlMovementSpeed;
    }
示例#3
0
 protected virtual void ReleaseGirl(bool saved = true)
 {
     if (state == State.KIDNAPPING)
     {
         Girl girl = EnemyHandler.GetInstance().GetGirl();
         if (girl.IsTaken())
         {
             girl.Release(this, saved);
         }
     }
 }
示例#4
0
    protected void OnAttackApproachDelayed()
    {
        Girl girl = EnemyHandler.GetInstance().GetGirl();
        bool exit = true;

        if (state == State.ATTACKING)
        {
            if (girl != null)
            {
                if (!girl.IsTaken())
                {
                    Vector3 girlPos = girl.transform.position;
                    girlPos.z = this.transform.position.z;
                    float dist = Vector3.Distance(girlPos, transform.position);
                    if (dist < 0.5f)
                    {
                        girl.SetCaptor(this);
                        exit = false;

                        Vector3 exitPos = this.transform.position;
                        if (exitPos.x > 0f)
                        {
                            exitPos.x = 12f;
                        }
                        else
                        {
                            exitPos.x = -12f;
                        }

                        exitPos = NormalizeVector(exitPos);
                        BounceToPosition(exitPos);
                        SetState(State.KIDNAPPING);
                        SetFinishedListener(OnEscaped);
                    }
                    else
                    {
                        BounceToPosition(girlPos);
                        SetFinishedListener(OnAttackApproach);
                    }
                }
            }
        }

        Debug.Log(this.name + " OnAttackApproachDelayed() " + this.transform.position.y);
        if (exit)
        {
            OnStartExit();
        }
    }
示例#5
0
    public virtual void Attack()
    {
        Girl girl = EnemyHandler.GetInstance().GetGirl();

        if (girl == null)
        {
            return;
        }

        if (girl.IsTaken())
        {
            return;
        }

        Stop();
        SetState(State.ATTACKING);
        Vector3 targetPos = girl.transform.position;

        targetPos.y -= carryOffset.y;
        StartMoving(targetPos, data.attackSpeed);
        SetFinishedListener(OnAttackApproach);

        target = girl.transform;
    }
示例#6
0
    public override void Attack()
    {
        Girl girl = EnemyHandler.GetInstance().GetGirl();

        if (girl == null)
        {
            return;
        }

        if (girl.IsTaken())
        {
            return;
        }

        Stop();
        SetState(State.ATTACKING);
        Vector3 targetPos = girl.transform.position;

        targetPos.y = EnemyHandler.GROUND;
        BounceToPosition(targetPos);
        SetFinishedListener(OnAttackApproach);

        target = girl.transform;
    }