Ejemplo n.º 1
0
        public void Field_Order_Works_With_Inheritance()
        {
            var g  = Guid.NewGuid();
            var pc = new PatternC(g, 1000);
            var pd = new PatternD(g, 1000, 1234);

            Assert.IsTrue(pd.ToString().StartsWith(pc.ToString()));
        }
Ejemplo n.º 2
0
    void Update()
    {
        //if (!NetworkObjectCheck())
        //    return;

        if (m_hp <= 0)
        {
            MapManager.Instance().AddObject(GamePath.EFFECT, transform.position);
            NetworkManager.Instance().SendOrderMessage(JSONMessageTool.ToJsonRemoveOrder(m_name, "Monster"));
            return;
        }
        if (Input.GetKeyUp(KeyCode.I))
        {
            GameManager.Instance().SetCurrentEnemy(this);

            Damage(20);
        }


        // 방향설정
        Vector3 p = GameManager.Instance().ROBO.transform.position - transform.position;

        p.Normalize();
        m_angle = (Mathf.Atan2(p.x, p.y) * Mathf.Rad2Deg);
        m_angle = -m_angle - 85.0f;
        transform.eulerAngles = new Vector3(0, 0, m_angle);

        Vector2 p2 = new Vector2(transform.position.x - 10.0f, transform.position.y);

        Debug.DrawLine(transform.position, p2, Color.red);


        if (m_pattern != null)
        {
            m_pattern.Update(gameObject);
        }

        // 체력이 30% 이하로 떨어지면
        if (m_hp <= m_fullHp * GameSetting.BOSS1_PATTERN_D_HP_CONDITION)
        {
            // 광폭화 모드가 아니라면 광폭화 모드다 !!!!
            if (!(m_pattern is PatternD))
            {
                m_pattern = new PatternD(m_skeletonAnimation, ANI_CD_MOVE, null, m_name);
            }
        }
        else
        {
            if (!AttackAbleCheck())
            {
                if (!PatternA_AbleCheck())
                {
                    if (!PatternB_AbleCheck())
                    {
                        if (!PatternC_AbleCheck())
                        {
                            m_attackableTick = 0.0f;
                            m_patternATick   = 0.0f;
                            m_patternBTick   = 0.0f;
                            m_patternCTick   = 0.0f;
                        }
                    }
                }
            }
        }
        // Move
        Move();
        // 쿨타임 중이면 아~~무것도 안함
        if (CoolTime())
        {
            return;
        }

        SetCoolTime(Attack());
    }