Пример #1
0
    public bool ChangeStateToHeal()
    {
        Robot_Status temptarget = null;

        foreach (GameObject go in UsefulFunctions.GetNearbyRobotWithBoxColliderArray(parent_object.transform.position, robot_local_sprite_size * 4))
        {
            if (go != parent_object)
            {
                temptarget = go.GetComponent <Robot_Status>();
                if (temptarget.GetHealthPoint() < temptarget.GetBaseHealthPoint() && (temptarget.state_manager.states_enum != ROBOT_STATES.DEAD && temptarget.state_manager.states_enum != ROBOT_STATES.OUTOFENERGY))
                {
                    ally_target = go;
                    break;
                }
                else
                {
                    ally_target = null;
                }
            }
        }
        if (ally_target != null && Random.Range(1, 101) < parent_object.GetComponent <Robot_Status>().GetChanceToHeal())
        {
            SetCurrentState(ROBOT_STATES.HEAL);
            return(true);
        }
        return(false);
    }
Пример #2
0
        /// <summary>
        /// 등록된 로봇의 워크 상태읽기
        /// </summary>
        public void onDBRead_RobotStatus()
        {
            try
            {
                Data.Instance.Robot_status_info.Clear();

                string sql = string.Format("SELECT * FROM robot_jobstatus_t ");

                DataSet          ds = new DataSet();
                MySqlDataAdapter da = new MySqlDataAdapter(sql, G_SqlCon);
                da.Fill(ds);

                Robot_Status_list.Clear();

                int ncnt = ds.Tables[0].Rows.Count;
                if (ncnt > 0)
                {
                    for (int i = 0; i < ncnt; i++)
                    {
                        string strrobotid    = ds.Tables[0].Rows[i]["robot_id"].ToString();
                        string strworkid     = ds.Tables[0].Rows[i]["work_id"].ToString();
                        string strworkstatus = ds.Tables[0].Rows[i]["work_status"].ToString();
                        string strworkcnt    = ds.Tables[0].Rows[i]["work_cnt"].ToString();
                        string stractionidx  = ds.Tables[0].Rows[i]["action_idx"].ToString();

                        if (strworkid == "")
                        {
                            strworkid = "";
                        }
                        if (strworkstatus == "")
                        {
                            strworkstatus = "wait";
                        }


                        string strTemp = string.Format("{0},{1},{2},{3},{4}", strrobotid, strworkid, strworkstatus, strworkcnt, stractionidx);

                        Data.Instance.Robot_status_info.Add(strrobotid, strTemp);

                        Robot_Status robotstatus = new Robot_Status();
                        robotstatus.robot_id    = strrobotid;
                        robotstatus.work_id     = strworkid;
                        robotstatus.work_status = strworkstatus;
                        robotstatus.work_cnt    = strworkcnt;
                        robotstatus.action_idx  = stractionidx;

                        Robot_Status_list.Add(strrobotid, robotstatus);
                    }
                }
            }
            catch (MySqlException ex)
            {
                MessageBox.Show("onDBRead_RobotStatus err" + ex.Message.ToString());
            }
            catch (Exception ex2)
            {
                MessageBox.Show("onDBRead_RobotStatus err" + ex2.Message.ToString());
            }
        }
Пример #3
0
 // Use this for initialization
 public virtual void Start()
 {
     state_holder = transform.parent.gameObject;
     main_robot   = transform.root.gameObject;
     state_holder_stateManager = state_holder.GetComponent <State_Manager>();
     robot_status = main_robot.GetComponent <Robot_Status>();
     gameObject.SetActive(false);
 }
    /// <summary>
    /// 開始処理
    /// </summary>
    public override void Enter()
    {
        m_target = obj.GetStats().m_robotList.GetTarget(obj.transform.position);

        //obj.m_anime.SetTrigger("attack");
        m_timer = 0.0f;
        if (m_target != null)
        {
            m_robotStats = m_target.GetComponent <Robot_Status>();
            m_robotStats.TakeDamage(obj.GetStats().ATK);
            CreateEffect();
            obj.GetStats().m_hitSE.Play();
            isTakedDamage = true;
        }
    }
Пример #5
0
 public void SetRobotStatus(Robot_Status status)
 {
     robot_status = status;
 }
Пример #6
0
    // Update is called once per frame
    void Update()
    {
        if (baseUIcs.target != null || monsterUIcs.target != null)
        {
            this_obj.SetActive(false);
        }
        else
        {
            this_obj.SetActive(true);
        }


        //左クリックした奴を顔を拡大して出す。
        // 左クリックされた場所のオブジェクトを取得
        // Left Click
        if (Input.GetMouseButtonDown(0))
        {
            Vector2    tapPoint    = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Collider2D collition2d = Physics2D.OverlapPoint(tapPoint);
            if (collition2d && collition2d.gameObject.tag == "Robot")
            {
                //BaseUIStateがtrueだったらBaseUIを消す
                if (baseUIcs.target != null)
                {
                    Destroy(baseUIcs.target);
                }
                else if (monsterUIcs.target != null)
                {
                    Destroy(monsterUIcs.target);
                }
                //すでにRobotのUIが表示されていたら消す
                if (statusClone != null)
                {
                    Destroy(target);
                    Destroy(statusClone);
                }

                _getObject = collition2d.transform.gameObject;
                //Make clone of robot clicked
                //クリックしたロボットのcloneを作る

                //ロボットの性格を読み取る
                statusClone = Instantiate(_getObject, new Vector2(-40.0f, clonePotision.y), Quaternion.identity);
                statusClone.gameObject.tag = "clone";
                robot_status = _getObject.GetComponent <Robot_Status>();
                if (!deadState)
                {
                    viewNum = (int)robot_status.GetMood();
                }
                else
                {
                    viewNum = 6;
                }
                target = Instantiate(viewUI[viewNum], new Vector2(clonePotision.x, clonePotision.y), Quaternion.identity);
            }
        }
        //scripts取得
        //HP Energyリアルタイム更新
        //cloneのスピード0
        if (_getObject != null)
        {
            robot_status = _getObject.GetComponent <Robot_Status>();

            if (statusClone != null)
            {
                clone_status = statusClone.GetComponent <Robot_Status>();
                //target
                clone_status.speed_point = 0.0f;
                //hp energy test
                clone_status.SetHealthPoint(robot_status.GetHealthPoint());
                clone_status.SetEnergyPoint(robot_status.GetEnergyPoint());
            }
        }

        //ステータスリアルタイム更新
        if (robot_status != null)
        {
            //Get Status Here
            hp_point          = robot_status.GetHealthPoint();
            energy_point      = robot_status.GetEnergyPoint();
            personality_point = robot_status.GetPersonality();
            mood_point        = robot_status.GetMood();
            atk_point         = robot_status.GetAttackPoint();
            spd_point         = robot_status.GetSpeedPoint();
            int_point         = robot_status.GetMagicPoint();
            luk_point         = robot_status.GetLuckPoint();
            def_point         = robot_status.GetDefencePoint();

            uihp_point     = (int)hp_point;
            uienergy_point = (int)robot_status.GetEnergyPoint();

            if ((hp_point <= 0 || energy_point <= 0))
            {
                textDead  = "DEAD";
                viewNum   = 6;
                deadState = true;
            }
            else
            {
                textDead  = personality_point.ToString();
                deadState = false;
            }
            Debug.Log(viewNum);
            //Text
            statusText[(int)STATUS.PERSONALITY].text = ":" + textDead;
            statusText[(int)STATUS.MOOD].text        = ":" + mood_point;
            statusText[(int)STATUS.ATK].text         = "ATK:" + atk_point.ToString();
            statusText[(int)STATUS.SPD].text         = "SPD:" + spd_point.ToString();
            statusText[(int)STATUS.INT].text         = "MAG:" + int_point.ToString();
            statusText[(int)STATUS.LUK].text         = "LCK:" + luk_point.ToString();
            statusText[(int)STATUS.DEF].text         = "DEF:" + def_point.ToString();
            statusText[(int)STATUS.HP].text          = "HELTH" + uihp_point.ToString() + "/" + robot_status.GetBaseHealthPoint();
            statusText[(int)STATUS.ENERGY].text      = "ENERGY" + uienergy_point.ToString() + "/" + robot_status.GetBaseEnergyPoint();
        }
    }
Пример #7
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Vector2    tapPoint    = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Collider2D collition2d = Physics2D.OverlapPoint(tapPoint);
            if (collition2d && collition2d.gameObject.tag == "Robot")
            {
                if (statusClone != null)
                {
                    Destroy(target);
                    Destroy(statusClone);
                }
                _getObject  = collition2d.transform.gameObject;
                statusClone = Instantiate(_getObject, new Vector2(-40.0f, clonePotision.y), Quaternion.identity);
                statusClone.gameObject.tag = "clone";
                robot_status = _getObject.GetComponent <Robot_Status>();

                if (!deadState)
                {
                    viewNum = (int)robot_status.GetMood();
                }
                else
                {
                    viewNum = 6;
                }
                target = Instantiate(viewUI[viewNum], new Vector2(clonePotision.x, clonePotision.y), Quaternion.identity);
            }
        }
        //scripts取得
        //HP Energyリアルタイム更新
        //cloneのスピード0
        if (_getObject != null)
        {
            robot_status = _getObject.GetComponent <Robot_Status>();

            if (statusClone != null)
            {
                clone_status = statusClone.GetComponent <Robot_Status>();
                //target
                clone_status.speed_point = 0.0f;
                //hp energy test
                clone_status.SetHealthPoint(robot_status.GetHealthPoint());
                clone_status.SetEnergyPoint(robot_status.GetEnergyPoint());
            }
        }
        //ステータスリアルタイム更新
        if (robot_status != null)
        {
            //Get Status Here
            hp_point          = robot_status.GetHealthPoint();
            energy_point      = robot_status.GetEnergyPoint();
            personality_point = robot_status.GetPersonality();
            mood_point        = robot_status.GetMood();
            atk_point         = robot_status.GetAttackPoint();
            spd_point         = robot_status.GetSpeedPoint();
            int_point         = robot_status.GetMagicPoint();
            luk_point         = robot_status.GetLuckPoint();
            def_point         = robot_status.GetDefencePoint();

            uihp_point     = (int)hp_point;
            uienergy_point = (int)robot_status.GetEnergyPoint();

            if ((hp_point <= 0 || energy_point <= 0))
            {
                textDead  = "DEAD";
                viewNum   = 6;
                deadState = true;
            }
            else
            {
                textDead  = personality_point.ToString();
                deadState = false;
            }
            Debug.Log(viewNum);
            //Text
            statusText[(int)STATUS.PERSONALITY].text = ":" + textDead;
            statusText[(int)STATUS.MOOD].text        = ":" + mood_point;
            statusText[(int)STATUS.ATK].text         = "ATK: " + atk_point.ToString();
            statusText[(int)STATUS.SPD].text         = "SPD: " + spd_point.ToString();
            statusText[(int)STATUS.INT].text         = "MAG: " + int_point.ToString();
            statusText[(int)STATUS.LUK].text         = "LCK: " + luk_point.ToString();
            statusText[(int)STATUS.DEF].text         = "DEF: " + def_point.ToString();
            statusText[(int)STATUS.HP].text          = "HP: " + uihp_point.ToString();
            statusText[(int)STATUS.ENERGY].text      = "ENE: " + uienergy_point.ToString();
        }
    }