Пример #1
0
                } // end CheckAttributeData

                public override void UnderAttack(IDamageData damage) {
                    if (null == damage) return;
                    // end if
                    IRealData realData = new RealData(damage, m_charcterData);
                    m_charcterData.Minus(realData);
                    Vector2 screenPoint = SceneManager.mainCamera.camera.WorldToScreenPoint(character.helpTransform.position);
                    Vector2 hud_pos;
                    if (RectTransformUtility.ScreenPointToLocalPointInRectangle(SceneManager.mainCanvas.HUD_rectTRansform, screenPoint,
                        SceneManager.mainCanvas.camera, out hud_pos)) {
                        HUD_Damage hud = InstanceMgr.GetObjectManager().GetGameObject<HUD_Damage>(HUD_Damage.poolName);
                        hud.SetNumber(realData.HP);
                        hud.transform.SetParent(SceneManager.mainCanvas.HUD_rectTRansform, false);
                        hud.transform.localPosition = hud_pos;
                        hud.gameObject.SetActive(true);
                    } // end if
                    if (null != lockCharacter) return;
                    // end if
                    if (damage.hashID == SceneManager.mainCharacter.hashID) {
                        LockCharacter(SceneManager.mainCharacter);
                        return;
                    } // end if
                    ICharacter npc = SceneManager.characterManager.factory.GetNPCharacter(damage.hashID);
                    if (null != npc) {
                        LockCharacter(npc);
                    } // end if
                } // end UnderAttack
Пример #2
0
    public override void OnAttacked(CreatureStat attackerStat)
    {
        int damage = Mathf.Max(0, attackerStat.Attack - Defense);

        Hp -= damage;

        HUD_Damage HUDDamage = Managers.UI.MakeWorldSpaceUI <HUD_Damage>();

        HUDDamage.transform.position = HUD_DamagePos.position;
        HUDDamage.GetComponent <TextMeshPro>().text = damage.ToString();

        if (Hp <= 0)
        {
            Hp = 0;
            OnDead(attackerStat);
        }
    }