Beispiel #1
0
    public void ChangeStatus(Type_Status status)
    {
        switch (status)
        {
        case Type_Status.ATTACK:
            PlayerDodge   = null;
            playerRunAway = null;
            break;

        case Type_Status.MOVE:
            status        = Type_Status.MOVE;
            Target        = null;
            PlayerDodge   = null;
            playerRunAway = null;
            break;

        case Type_Status.RUN_AWAY:
            Target      = null;
            PlayerDodge = null;
            break;

        case Type_Status.DODGE:
            Target        = null;
            playerRunAway = null;
            PlayerDodge   = null;
            break;
            ;
        }
    }
Beispiel #2
0
    public void Attack()
    {
        if (Target != null)
        {
            if (!Target.GetComponent <Enemy>().isGround)
            {
                Target = null;
                status = Type_Status.MOVE;
                return;
            }
            else
            {
                float ForceTarget = Target.GetComponent <Enemy>().Get_Force();

                float AttackPower = ((Force / DistanceFromLimitNeart()) * Mass);



                DirectMove = (new Vector3(Target.transform.position.x, 0, Target.transform.position.z) - new Vector3(transform.position.x, 0, transform.position.z));
            }
        }
        else
        {
            status = Type_Status.MOVE;
        }
    }
 private void Equal(object sender, RoutedEventArgs e)
 {
     if (Display_Right.Text != "")
     {
         Calculate();
         formula_01         = "";
         formula_02         = "";
         Display_Right.Text = result.ToString();
         Display_Left.Text  = "";
         SubDisplay_01.Text = "=";
         Current_Status     = Type_Status.Solved;
     }
     else
     {
         if (Display_Left.Text != "")
         {
             formula_01         = "";
             formula_02         = "";
             Display_Right.Text = result.ToString();
             Display_Left.Text  = "";
             SubDisplay_01.Text = "=";
             Current_Status     = Type_Status.Solved;
         }
         else
         {
             Reset();
             Current_Status = Type_Status.None;
         }
     }
 }
Beispiel #4
0
    public void Process_Status()
    {
        Player[] player;
        if (GetEnemyInRadius(Radius, transform.position, transform.up, out player) != 0)
        {
            int indexBall = index_Limit + index_Enemy;
            int isDodge   = index_Blood_War - index_Dodge;
            if (indexBall <= index_Blood_War)
            {
                status = Type_Status.ATTACK;
                Target = GetTargert(Radius);
                if (Target != null && Target.GetComponent <Enemy>().isGround)
                {
                    if (isDodge <= index_Dodge && index_Dodge <= index_Blood_War)
                    {
                        Player[] dodgePlayer;
                        if (GetEnemyInRadius(Radius / 2, transform.position, transform.up, out dodgePlayer) != 0)
                        {
                            PlayerDodge = PlayerStrongerst(dodgePlayer);

                            if (PlayerDodge != null)
                            {
                                status = Type_Status.DODGE;
                            }
                        }
                    }
                }
                else
                {
                    status = Type_Status.MOVE;
                }
            }

            else
            {
                // Run Away
                playerRunAway = player;
                status        = Type_Status.RUN_AWAY;
            }
        }
        else
        {
            //  Debug.Log("Move");
            // status = Type_Status.MOVE;
            ChangeStatus(Type_Status.MOVE);
        }
    }
Beispiel #5
0
    public void RunAway()
    {
        if (playerRunAway != null)
        {
            List <Vector3> direct = new List <Vector3>();
            for (int i = 0; i < directX8.Length; i++)
            {
                direct.Add(directX8[i]);
            }
            float[] Score;
            for (int i = 0; i < playerRunAway.Length; i++)
            {
                for (int j = 0; j < directX8.Length; j++)
                {
                    if (IsCollWithPlayer(directX8[j], playerRunAway[i]))
                    {
                        Debug.Log("Remove Direct : " + gameObject.name + " " + playerRunAway[i].gameObject.name + "  " + directX8[j]);
                        if (direct.Contains(directX8[j]))
                        {
                            direct.Remove(directX8[j]);
                        }
                    }
                }
            }
            Score = new float[direct.Count];
            string s1 = "";
            for (int i = 0; i < direct.Count; i++)
            {
                s1 += " " + direct[i];
            }

            int index = ScoreOfDirect(direct.ToArray());

            DirectMove = direct[index];
            body.AddForce(DirectMove * SpeedChance * Length, ForceMode.Force);
            //   Debug.Log(s1);
            // Debug.Log(DirectMove);
        }
        else
        {
            status = Type_Status.MOVE;
        }
    }
Beispiel #6
0
    public void Dodge()
    {
        if (PlayerDodge != null)
        {
            List <Vector3> direct = new List <Vector3>();
            float[]        Score;
            for (int i = 0; i < directX8.Length; i++)
            {
                direct.Add(directX8[i]);
            }


            for (int j = 0; j < directX8.Length; j++)
            {
                if (IsCollWithPlayer(directX8[j], PlayerDodge))
                {
                    if (direct.Contains(directX8[j]))
                    {
                        direct.Remove(directX8[j]);
                        direct.Remove(-directX8[j]);
                        //
                    }
                }
            }



            Score = new float[direct.Count];
            //     Debug.Log(direct.Count + "  "+directX8.Length);

            int index = ScoreOfDirectWithAngle(direct.ToArray(), (transform.position - PlayerDodge.transform.position).normalized);

            DirectMove = direct[index];

            //     Debug.Log(DirectMove);
        }
        else
        {
            status = Type_Status.MOVE;
        }
    }
 private void Clear(object sender, RoutedEventArgs e)
 {
     Reset();
     Current_Status = Type_Status.None;
 }
 private void Division(object sender, RoutedEventArgs e)
 {
     CurrentCalculate = Type_Calculate.Division;
     Calculate();
     Current_Status = Type_Status.Calculating;
 }
 private void Multiplication(object sender, RoutedEventArgs e)
 {
     CurrentCalculate = Type_Calculate.Multiplication;
     Calculate();
     Current_Status = Type_Status.Calculating;
 }