예제 #1
0
    public override void UpdateAction()
    {
        base.UpdateAction();

        if (NodeUtil.StateActionMacro(Owner))
        {
        }

        else
        {
            NodeUtil.LookPlayer(Owner);
            NodeUtil.RotationAnim(Owner, "run");

            if (NodeUtil.PlayerInRange(Owner, 8f))
            {
                if (NodeUtil.PlayerInRange(Owner, 5f))
                {
                    NodeUtil.ChangeAction(Owner, "DruidAttackAction");
                    NodeUtil.AvoidFormPlayer(Owner);
                }

                else
                {
                }
            }

            else
            {
                NodeUtil.ChangeAction(Owner, "DruidIdleAction");
            }
        }
    }
예제 #2
0
 public override void StartAction(Character owner)
 {
     base.StartAction(owner);
     TimelineEvents.Add(new TimeLineEvent(0.01f, TimeLine_4));
     NodeUtil.LookPlayer(Owner);
     NodeUtil.PlayAnim(Owner, "hit");
 }
예제 #3
0
    public override void UpdateAction()
    {
        base.UpdateAction();

        if (NodeUtil.StateActionMacro(Owner))
        {
        }

        else
        {
            NodeUtil.LookPlayer(Owner);
            NodeUtil.RotationAnim(Owner, "run");

            if (NodeUtil.PlayerInRange(Owner, 2f))
            {
                NodeUtil.ChangeAction(Owner, "GoblinStealerAttackAction");
                return;
            }

            else
            {
                NodeUtil.MoveToPlayer(Owner);
            }
        }
    }
예제 #4
0
    public override void UpdateAction()
    {
        base.UpdateAction();

        if (NodeUtil.StateActionMacro(Owner))
        {
        }

        else
        {
            if (NodeUtil.PlayerInRange(Owner, 7f))
            {
                NodeUtil.LookPlayer(Owner);
                NodeUtil.ChangeAction(Owner, "GoblinSlingMoveAction");
            }

            else
            {
            }
        }
    }
예제 #5
0
    public override void UpdateAction()
    {
        base.UpdateAction();

        if (NodeUtil.StateActionMacro(Owner))
        {
        }

        else
        {
            if (NodeUtil.IsLastFrame(Owner))
            {
                NodeUtil.ChangeAction(Owner, "DruidIdleAction");
            }

            else
            {
                NodeUtil.LookPlayer(Owner);
            }
        }
    }
예제 #6
0
    public override void UpdateAction()
    {
        base.UpdateAction();

        if (NodeUtil.HitDeadLogicMacro(Owner, "CSlimeHitAction", "CSlimeDeadAction"))
        {
        }

        else
        {
            NodeUtil.LookPlayer(Owner);
            NodeUtil.RotationAnim(Owner, "run");

            if (NodeUtil.PlayerInRange(Owner, 0.7f))
            {
                NodeUtil.ChangeAction(Owner, "CSlimeAttackAction");
            }

            else
            {
                NodeUtil.MoveToPlayer(Owner);
            }
        }
    }
예제 #7
0
 public override void StartAction(Character owner)
 {
     base.StartAction(owner);
     NodeUtil.LookPlayer(Owner);
     NodeUtil.PlayAnim(Owner, "hit");
 }
예제 #8
0
    public override void UpdateAction()
    {
        base.UpdateAction();

        timer1 += 1;

        if (NodeUtil.StateActionMacro(Owner))
        {
        }


        else
        {
            if (check1 == 1)
            {
                if (timer1 == timer2)
                {
                    timer1 = 0;
                    timer2 = UnityEngine.Random.Range(80, 120);
                    check1 = UnityEngine.Random.Range(1, 3);
                    RandomMove.Set(UnityEngine.Random.Range(-10, 10), 0, UnityEngine.Random.Range(-10, 10));
                    RandomMove = RandomMove + Owner.transform.position;
                    NodeUtil.StopMovement(Owner);
                    NodeUtil.RotationAnim(Owner, "idle");
                }
                else
                {
                    Owner.transform.rotation = Quaternion.LookRotation(RandomMove.normalized, Vector3.up);
                    NodeUtil.RotationAnim(Owner, "run");
                    Owner.NavAgent.destination = RandomMove.normalized;
                }
            }

            else if (check1 == 2)
            {
                timer2 = 200;

                if (timer1 == timer2)
                {
                    timer1 = 0;
                    timer2 = UnityEngine.Random.Range(80, 120);
                    check1 = UnityEngine.Random.Range(1, 3);
                    RandomMove.Set(UnityEngine.Random.Range(-10, 10), 0, UnityEngine.Random.Range(-10, 10));
                    RandomMove = RandomMove + Owner.transform.position;
                }
                else
                {
                    NodeUtil.LookPlayer(Owner);
                    NodeUtil.RotationAnim(Owner, "idle");
                    NodeUtil.StopMovement(Owner);
                }
            }

            if (IsAttack == false)
            {
                if (NodeUtil.PlayerInRange(Owner, 7f))
                {
                    NodeUtil.ChangeAction(Owner, "GoblinDrunkMoveAction");
                    return;
                }
            }
        }
    }
예제 #9
0
    public override void UpdateAction()
    {
        base.UpdateAction();

        if (NodeUtil.StateActionMacro(Owner))
        {
        }

        else
        {
            if (check1 == 1)
            {
                timer1 = timer1 + 1;

                if (timer1 == timer2)
                {
                    timer1 = 0;
                    timer2 = UnityEngine.Random.Range(40, 100);
                    check1 = UnityEngine.Random.Range(1, 3);
                    NodeUtil.StopMovement(Owner);
                }
                else
                {
                    NodeUtil.LookPlayer(Owner);
                    NodeUtil.RotationAnim(Owner, "run");

                    if (NodeUtil.PlayerInRange(Owner, 1f))
                    {
                        NodeUtil.ChangeAction(Owner, "CSlimeAttackAction");
                    }

                    else
                    {
                        NodeUtil.MoveToPlayer(Owner);
                    }
                }
            }

            else if (check1 == 2)
            {
                timer1 = timer1 + 1;

                if (timer1 == timer2)
                {
                    timer1 = 0;
                    timer2 = UnityEngine.Random.Range(40, 100);
                    check1 = UnityEngine.Random.Range(1, 3);
                }
                else
                {
                    NodeUtil.LookPlayer(Owner);
                    NodeUtil.RotationAnim(Owner, "idle");
                    NodeUtil.StopMovement(Owner);
                }
            }
            else if (check1 == 3)
            {
                timer1 = timer1 + 1;

                if (timer1 == timer2)
                {
                    timer1 = 0;
                    timer2 = UnityEngine.Random.Range(40, 100);
                    check1 = UnityEngine.Random.Range(1, 3);
                }
                else
                {
                    Owner.transform.rotation = Quaternion.LookRotation((Owner.transform.position - Player.CurrentPlayer.transform.position).normalized, Vector3.up);
                    NodeUtil.RotationAnim(Owner, "run");
                    NodeUtil.AvoidFormPlayer(Owner);
                }
            }
        }
    }
예제 #10
0
    public override void UpdateAction()
    {
        base.UpdateAction();

        if (NodeUtil.StateActionMacro(Owner))
        {
        }

        else
        {
            // 5M 이내로 진입할때 까지 movetoplayer
            if (NodeUtil.PlayerInRange(Owner, 5))
            {
                if (pandan == 1 || pandan == 6)//공격
                {
                    NodeUtil.LookPlayer(Owner);
                    NodeUtil.ChangeAction(Owner, "GoblinSlingAttackAction");
                }
                else if (pandan == 2)//이동->플레이어
                {
                    timer2 += 0.1f;

                    if (timer2 <= timer1) // 2m내에 있으면 판단 변수 재지정 아니면 이동
                    {
                        NodeUtil.LookPlayer(Owner);
                        NodeUtil.RotationAnim(Owner, "run");
                        NodeUtil.MoveToPlayer(Owner);
                    }
                    else
                    {
                        pandan = UnityEngine.Random.Range(min, max);
                        timer2 = 0f;
                        timer1 = UnityEngine.Random.Range(6, 10);;
                    }
                }
                else if (pandan == 3)//대기
                {
                    NodeUtil.StopMovement(Owner);
                    timer2 += 0.1f;

                    if (timer2 <= timer1)
                    {
                        NodeUtil.LookPlayer(Owner);
                        NodeUtil.RotationAnim(Owner, "idle");
                    }
                    else
                    {
                        pandan = UnityEngine.Random.Range(min, max);
                        timer2 = 0f;
                        timer1 = UnityEngine.Random.Range(6, 10);
                    }
                }
                else if (pandan == 4 || pandan == 5)//랜덤 장소로 이동
                {
                    timer2 += 0.05f;

                    if (timer2 <= timer1)
                    {
                        NodeUtil.RotationAnim(Owner, "run");
                        if (chamgo == 0)
                        {
                            chamgo = 1;
                            xx     = UnityEngine.Random.Range(-1f, 1f);
                            zz     = UnityEngine.Random.Range(-1f, 1f);
                            DesPos = Owner.transform.position + new Vector3(xx, 0, zz);
                            Owner.transform.rotation = Quaternion.LookRotation((DesPos - Owner.transform.position).normalized, Vector3.up);
                        }
                        DesPos = Owner.transform.position + new Vector3(xx, 0, zz);
                        NodeUtil.MoveToPpsition(Owner, DesPos);
                    }
                    else
                    {
                        pandan = UnityEngine.Random.Range(min, max);
                        timer2 = 0f;
                        chamgo = 0;
                        timer1 = UnityEngine.Random.Range(6, 10);
                    }
                }
                else //도망
                {
                    timer2 += 0.1f;

                    if (timer2 <= timer1) // 7m내에 PC가 없으면 재지저
                    {
                        Owner.transform.rotation = Quaternion.LookRotation((Owner.transform.position - Player.CurrentPlayer.transform.position).normalized, Vector3.up);
                        NodeUtil.RotationAnim(Owner, "run");
                        NodeUtil.AvoidFormPlayer(Owner);
                    }
                    else
                    {
                        pandan = UnityEngine.Random.Range(min, max);
                        timer2 = 0f;
                        timer1 = UnityEngine.Random.Range(6, 10);
                    }
                }
            }
            else
            {
                NodeUtil.LookPlayer(Owner);
                NodeUtil.RotationAnim(Owner, "run");
                NodeUtil.MoveToPlayer(Owner);
            }
        }
    }