Ejemplo n.º 1
0
    private void Update()
    {
        if (newObjClicked)
        {
            newObjClicked = false;
            hpc           = clickedObject.GetComponent <HPController>();
            fsm           = clickedObject.GetComponent <FSMController>();
        }

        if (hpSlider == null || fsm == null)
        {
            return;
        }

        hpSlider.maxValue = hpc.MaxHp;
        hpSlider.value    = hpc.HP;

        if (fsm.team == HelperFunctions.Team.Cube)
        {
            teamText.text = "Cube";
        }
        else if (fsm.team == HelperFunctions.Team.Sphere)
        {
            teamText.text = "Sphere";
        }
        else if (fsm.team == HelperFunctions.Team.Neutral)
        {
            teamText.text = "Neutral";
        }

        UpdateStateText();
    }
Ejemplo n.º 2
0
 // Update is called once per frame
 private void Awake()
 {
     _hpController               = GetComponent <HPController>();
     _levelController            = GetComponent <LevelController>();
     _hpController.onEmptyHP    += BeDestroy;
     _levelController.onLevelUp += OnLevelUp;
 }
 private void Start()
 {
     _selectableCharacterController = GetComponent <SelectableCharacterController>();
     _movableController             = GetComponent <MovableController>();
     _animator     = GetComponent <Animator>();
     _timer        = AttackPeriod;
     _hpController = GetComponent <HPController>();
 }
Ejemplo n.º 4
0
    //          아래에 트랜스폼 변수가 들어갈 것이다(target의 속성이기도 하다)
    void Damage(Transform unit)
    {
        HPController targetHP = unit.GetComponent <HPController> ();

        if (targetHP != null)
        {
            targetHP.GetDamage(damage);
        }
    }
Ejemplo n.º 5
0
 private void Start()
 {
     _animator = GetComponent <Animator>();
     _selectableCharacterController = GetComponent <SelectableCharacterController>();
     _agent = GetComponent <NavMeshAgent>();
     _agent.updateRotation = false;
     _agent.updateUpAxis   = false;
     _savedSpeed           = _agent.speed;
     _hpController         = GetComponent <HPController>();
 }
Ejemplo n.º 6
0
 // Start is called before the first frame update
 void Start()
 {
     hptext       = GameObject.Find("PlayerHP").GetComponent <Text>();
     hp           = GameObject.Find("towerRound_crystals").GetComponent <HPController>().hp;
     tracking     = GameObject.Find("towerRound_crystals").GetComponent <HPController>();
     scoretext    = GameObject.Find("Score").GetComponent <Text>();
     gameovertext = GameObject.Find("GameOver").GetComponent <Text>();
     //gameovertext.enabled = false;
     score = 0;
 }
    private void OnTriggerEnter(Collider other)

    {
        if (!other.CompareTag("Tower") && !other.CompareTag("Turret"))
        {
            return;
        }
        HPOfAttackedTarget = other.GetComponent <HPController>();
        currentState       = State.Attack;
    }
Ejemplo n.º 8
0
 public HPController()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         return;
     }
 }
    void UpdateSearch()
    {
        // 시간이 흐르다가 검색 시간이 되었을때 검색을 하고 시간 초기화. 너무 빈번한 검색을 하지 않기 위해..
        currentTime += Time.deltaTime;
        if (currentTime <= searchTime)
        {
            return;
        }
        currentTime = 0;
        // 내 반경 3M 내의 적의 목록을 이용해서 가장 가까운 적을 목적지로 설정하고싶다.
        int layer = 1 << LayerMask.NameToLayer("Unit");

        Collider[] cols = Physics.OverlapSphere(transform.position, 3f, layer);
        if (cols == null || cols.Length == 0)
        {
            // 내 반경 3M내에 적이없다.
            return;
        }
        else
        {
            Debug.Log("적이 있네?");
            //적이 있다. 나랑 가장 가까이 있는 것을 찾고싶다.
            float distance    = 999999999999f;
            int   selectIndex = -1;
            for (int i = 0; i < cols.Length; i++)
            {
                if (transform != cols[i].transform) //내 위치를 찾아선 안 되고
                {
                    // 거리를 구하고
                    float temp = Vector3.Distance(transform.position, cols[i].transform.position);
                    // 저장된 거리와 비교해서 더 가까우면 그녀석을 선택하자.
                    if (temp < distance)
                    {
                        distance    = temp;
                        selectIndex = i;
                    }
                }
            }
            if (selectIndex == -1)
            {
                return;
            }
            else
            {
                target = cols[selectIndex].transform;

                targetHP = target.GetComponent <HPController> ();
                //터렛이 club을 인식하는 문제//
                Debug.Log("터렛: " + target);
                SetState(eState.Attack);
            }
        }
    }
Ejemplo n.º 10
0
    void FixedUpdate()
    {
        this.hp = GameObject.Find("HPGauge");
        hpc     = this.hp.GetComponent <HPController>();
        int hp = hpc.Rehp();

        if (hp == 0 || tf)
        {
            //Debug.Log(hp.DestroyHP());
            FadeOut(); //フェードアウト演出を行う関数の呼びだし
            tf = false;
        }
    }
Ejemplo n.º 11
0
 void Start()
 {
     // Store reference to attached component
     controller = GetComponent <Rigidbody2D>();
     HPC        = GameObject.Find("HPC").GetComponent <HPController>();
     seedSystem = GameObject.Find("SeedSystem").GetComponent <SeedSystem>();
     hp         = maxhp = seedSystem.maxhp();
     HPC.UpdateHP(hp, maxhp);
     lastHunger = Time.time * 1000;
     if (seedSystem.getAttackBuff())
     {
         weapon.Buff();
     }
 }
Ejemplo n.º 12
0
    // Use this for initialization
    void Start()
    {
        transform.Rotate(0f, 0f, Random.Range(0, 360f));

        hpC = GetComponent <HPController>();

        float maxV = 50;
        float minV = -50;

        rb = GetComponent <Rigidbody2D>();

        float x = Random.Range(minV, maxV);
        float y = Random.Range(minV, maxV);

        rb.AddForce(new Vector2(x, y));
    }
Ejemplo n.º 13
0
        private void OnTriggerEnter(Collider other)
        {
            Enemy enemy = other.GetComponent <Enemy>();

            if (enemy != null)
            {
                //Нанести урон игроку
                HPController.TakeDamage(enemy.Damage);

                //Если игрок не был уничтожен
                if (HPController.CurrentProgress > 0)
                {
                    enemy.DestroyEnemyOnCollisionWithPlayer();
                }
            }
        }
Ejemplo n.º 14
0
    void Awake()
    {
        myBody         = GetComponent <Rigidbody2D>();
        animator       = GetComponent <Animator>();
        sphereCollider = GetComponent <CircleCollider2D>();
        audioSource    = GetComponent <AudioSource>();
//		animator.SetBool ("Grounded", false);
        currentSpeed   = speed;
        walkingTimer   = walkingDuration;
        hpController   = hpUI.GetComponent <HPController>();
        coinController = coinUI.GetComponent <CoinController>();
        if (isEquipped == false)
        {
            canAttack = false;
            sword.SetActive(false);
        }
    }
Ejemplo n.º 15
0
        /// <summary>
        /// Инициализация
        /// </summary>
        /// <param name="health">HP врага</param>
        /// <param name="speed">Скорость врага</param>
        /// <param name="pathController">Контроллер пути, по которому должен следовать враг</param>
        public void Init(int health, float speed, PathCreator pathController, int coinReward)
        {
            //Базовая инициализация
            Init(health);

            //Обнулить положение ХП бра (TEMP)
            HPController.ResetHPBarPosition();

            //Начать следовать по пути
            PathMoveController.StartMoveAlongPath(pathController, speed, GameManager.Instance.TimeMultiplayerController.CurValue);

            //Награда
            m_CoinReward = coinReward;

            //Подписаться на событие изменения изменения скорости мнодителя времени
            GameManager.Instance.OnTimeMultiplayerValueChanged += TimeMultiplayerChanged_Handler;
        }
Ejemplo n.º 16
0
    ///------------------------------------------------------
    /// <summary>
    /// ●1秒間に呼ばれる回数が一定で実行する関数.
    /// </summary>
    void FixedUpdate()
    {
        this.hp = GameObject.Find("HPGauge");
        hpc     = this.hp.GetComponent <HPController>();
        int hp = hpc.Rehp();

        if (hp == 0 || tf)
        {
            //Debug.Log(hp.DestroyHP());
            FadeOut(); //フェードアウト演出を行う関数の呼びだし
            tf = false;
        }
        if (hp == 0)
        {
            float nowtime = Time.fixedTime;
            if (fst)
            {
                syoki = nowtime;
                fst   = false;
            }
            Debug.Log(Time.fixedTime);
            if (nowtime < 0)
            {
                nowtime = 0;
            }
            floattaime += nowtime;
            if (syoki + 1 < nowtime)
            {
                syoki++;
                timecount++;
                this.targetText      = this.GetComponent <Text>();
                this.targetText.text = "" + retaime;
                retaime--;
            }
            if (retaime == 0)
            {
                SceneManager.LoadScene("main");
            }
        }
    }
Ejemplo n.º 17
0
    void UpdateAttack()
    {
        //시간차 공격을 하고 싶다(공격 - 공격대기)
        // 시간이 흐르다가
        currentTime += Time.deltaTime;
        // 만약 시간이 공격시간을 초과하면
        if (currentTime > attackTime)
        {
            // 공격을 시도한다.
            Shoot();
            // 1. 상대방 체력을 확인
            if (targetHP.currentHealth <= 0)
            {
                // 1-1. 만약 상대방의 체력이 0 이하이면 새로운 타겟을 검색(setstate->search)
                // target의 레이어를 NonTurret으로 변경한다.
                //Destroy (target.gameObject);
                target   = null;
                targetHP = null;
                SetState(eState.Move);
            }
            else
            {
                // 1-2. 만약 상대방의 체력이 0 이상이면
                // 1-2-2. 만약 사정거리 밖이면 그 타겟한테 이동(setstate->move)
                if ((Vector3.Distance(target.position, transform.position) >= attackRange))
                {
                    //공격 상태로
                    SetState(eState.Move);
                }
                else
                {
                    // 1-2-1. 만약 사정거리 안에 있으면 그 타겟을 공격(setstate->attack)
                }
            }

            // 시간을 0으로 되돌린다.
            currentTime = 0;
            Debug.Log("유닛의 타겟: " + target);
        }
    }
Ejemplo n.º 18
0
    void Update()
    {
        if (!ready)
        {
            return;
        }

        if (targetObject == null)
        {
            Destroy(gameObject);
            return;
        }

        transform.LookAt(targetObject.transform.position);
        transform.position = Vector3.MoveTowards(transform.position, targetObject.transform.position, 10 * Time.deltaTime);
        if (Vector3.Distance(targetObject.transform.position, transform.position) < 0.5f)
        {
            HPController hpc = targetObject.GetComponent <HPController>();
            hpc.DealDamage(hpc.MaxHp / 5);
            Destroy(gameObject);
        }
    }
Ejemplo n.º 19
0
    //各アイテムに触れた時の挙動
    private void OnTriggerEnter2D(Collider2D other)
    {
        GameObject obj = other.gameObject;

        Debug.Log(obj.name);

        if (other.gameObject.CompareTag("item"))
        {
            player player;

            switch (obj.name)
            {
            case "Heal":
                GameObject   HPGauge = Canvas.transform.Find("HPGauge").gameObject;
                HPController hpCtl   = HPGauge.GetComponent <HPController>();
                hpCtl.SetHP(hpCtl.transform.childCount + 1);
                break;

            case "Coin":
                player = GetComponent <player>();
                player.CoinCounter();
                break;

            case "Muteki":
                player = GetComponent <player>();
                bool isMuteki = player.GetMuteki();

                //無敵の重複はしない
                if (!isMuteki)
                {
                    player.MutekiTime();
                }

                break;
            }
            Destroy(obj);
        }
    }
Ejemplo n.º 20
0
    void DoExplo()
    {
        Instantiate(ExploEffect, transform.position, Quaternion.identity);
        //sm.PlaySound(GameEM.SoundList.爆破_榴彈爆炸);
        //BuzzFloorAdapter t_Buzzfloor = GameObjectFinder.GetObj("BuzzFloorAdapter").GetComponent<BuzzFloorAdapter>();
        //t_Buzzfloor.do_s3Button(1f);

        if (PhotonNetwork.isMasterClient)
        {
            ExploPos           = transform.position;
            isExplo            = true;
            ExploColliderArray = Physics.OverlapSphere(ExploPos, radius, layerMask.value);

            foreach (Collider col in ExploColliderArray)
            {
                //Debug.Log(col.gameObject.name);
                HPController _HPController = col.gameObject.GetComponentInParent <HPController>();
                //TrexController _TrexController = col.gameObject.GetComponentInParent<TrexController>();

                //if (_HPController != null && _TrexController != null)
                //{
                //    _HPController.setHit(Damage);
                //}
                //else if (col.gameObject.name.Contains("Bomb_"))
                //{
                //    _HPController.setHP(0);
                //}
                //else if (_HPController != null && _TrexController == null)
                //{
                //    Ragdollmanagement _ragdollman = _HPController.gameObject.GetComponent<Ragdollmanagement>();
                //    Vector3 ExploVector = col.gameObject.transform.position - ExploPos;
                //    _ragdollman.setLastHitInfo(ExploVector, null, force, forcemode);
                //    _HPController.setHP(0);
                //}
            }
        }
        Destroy(this.gameObject);
    }
 void UpdateAttack()
 {
     //시간차 공격을 하고 싶다(공격 - 공격대기)
     // 시간이 흐르다가
     currentTime += Time.deltaTime;
     // 만약 시간이 공격시간을 초과하면
     if (currentTime > attackTime)
     {
         // 공격을 시도한다.
         Shoot();
         // 1. 상대방 체력을 확인
         if (targetHP.currentHealth <= 0)
         {
             // 1-1. 만약 상대방의 체력이 0 이하이면 새로운 타겟을 검색(setstate->search)
             Destroy(target.gameObject);  //나중에 투사체에 넣어야.
             target   = null;
             targetHP = null;
             SetState(eState.Search);
         }
         else
         {
             // 1-2. 만약 상대방의 체력이 0 이상이면
             // 1-2-2. 만약 사정거리 밖이면 다른 타겟을 탐색(setstate->search)
             if ((Vector3.Distance(target.position, transform.position) > attackRange))
             {
                 SetState(eState.Search);
             }
             else
             {
                 // 1-2-1. 만약 사정거리 안에 있으면 그 타겟을 공격(setstate->attack)
             }
         }
         // 시간을 0으로 되돌린다.
         currentTime = 0;
     }
 }
Ejemplo n.º 22
0
 // Update is called once per frame
 void Update()
 {
     if (hpController == null)
     {
         hpController = FindObjectOfType <HPController>();
         transform.GetChild(0).gameObject.SetActive(true);
         transform.GetChild(1).gameObject.SetActive(false);
     }
     else
     {
         time = hpController.currentTime;
         Debug.Log(time);
         if (time < 5f)
         {
             transform.GetChild(1).gameObject.SetActive(true);
             transform.GetChild(0).gameObject.SetActive(false);
         }
         else
         {
             transform.GetChild(0).gameObject.SetActive(true);
             transform.GetChild(1).gameObject.SetActive(false);
         }
     }
 }
Ejemplo n.º 23
0
 private void Start()
 {
     Controller = HPController.instance;
 }
Ejemplo n.º 24
0
 private void Awake()
 {
     oba       = GetComponent <ObstacleAvoidance>();
     rigidbody = GetComponent <Rigidbody>();
     hpC       = GetComponent <HPController>();
 }
Ejemplo n.º 25
0
 public void Init(int health)
 {
     HPController = new HPController(health, GetHPBarControllerPrefab(), HPBarParent);
     HPController.OnDestroyObject += DestroyObjectHandler;
 }
Ejemplo n.º 26
0
 // Start is called before the first frame update
 void Start()
 {
     a             = gameObject.GetComponent <SpriteRenderer>();
     hpc           = HP.gameObject.GetComponent <HPController>();
     catController = cat.gameObject.GetComponent <CatController>();
 }