/// <summary> /// 對角色造成物理傷害,傳入[造成的傷害][是否在ICON顯示效果動畫] /// </summary> public virtual void ReceivePhysicalDamge(int _damage, bool _showIconAni, HitTextType _hitTextType, float _showDelay) { //不可對死者進行攻擊 if (!IsAlive) { return; } //傷害不小於等於0 if (_damage <= 0) { return; } //傷害最大等於剩餘血量 if (CurHP - _damage < 0) { _damage = CurHP; } CurHP -= _damage; HitTextController.ShowHitText(this, _damage, _hitTextType, _showDelay); UpdateHealthRatio(); //更新腳色介面 CharaDataUI.UpdateHealth(Index); //檢查是否存活 AliveCheck(); }
/// <summary> /// 创建受击数字 /// </summary> /// <param name="hitType">受击类型</param> /// <param name="number">伤害数字</param> public void CreateHitNumberObjcet(GetHitType hitType, float number) { HitTextController gameObject = null; switch (hitType) { case GetHitType.Normal: gameObject = GameObject.Instantiate(noramlHitObject); gameObject.transform.SetParent(transform.parent); gameObject.transform.localScale = new Vector3(1, 1, 1); gameObject.transform.localPosition = new Vector2(transform.localPosition.x, transform.localPosition.y); break; case GetHitType.CriticalStrike: gameObject = GameObject.Instantiate(criticalStrikeObject); gameObject.transform.SetParent(transform.parent); gameObject.transform.localScale = new Vector3(1, 1, 1); gameObject.transform.localPosition = new Vector2(transform.localPosition.x, transform.localPosition.y + 200); break; } if (gameObject == null) { return; } gameObject.SetText(number); }
/// <summary> /// 生成添加血量提示物体 /// </summary> private void CreateAddBlood() { HitTextController gameObject = GameObject.Instantiate(AddBloodObject); gameObject.transform.SetParent(transform.parent); gameObject.transform.localScale = new Vector3(1, 1, 1); gameObject.transform.localPosition = new Vector2(transform.localPosition.x, transform.localPosition.y); gameObject.SetText(100); }
public void Init() { if (IsInit) return; Canvas = transform.GetComponent<RectTransform>(); //腳色介面 MyCharaDataUI = Canvas.FindChild("CharaData").GetComponent<CharaDataUI>(); MyCharaDataUI.Init();//初始化 //跳血文字控制器 MyHitTextController = Canvas.FindChild("HitTextController").GetComponent<HitTextController>(); MyHitTextController.Init(); //標題控制器 TitleController = Canvas.FindChild("FightTitle").GetComponent<FightTitleController>(); TitleController.Init(); //冒險進度 MyProgress = Canvas.FindChild("Progress").GetComponent<Progress>(); MyProgress.Init(); //事件 MyEventUI = Canvas.FindChild("Event").GetComponent<EventUI>(); MyEventUI.Init(); IsInit = true; }
/// <summary> /// 對角色造成治癒,傳入[造成的治癒][是否在ICON顯示效果動畫] /// </summary> public virtual void ReceiveCure(int _cure, bool _showIconAni, HitTextType _hitTextType, float _showDelay) { //不可對死者進行治癒 if (!IsAlive) { return; } //治癒量不可小於等於0 if (_cure <= 0) { return; } //治癒量大於損失的血量 if (CurHP + _cure > MaxHP) { _cure = MaxHP - CurHP; } CurHP += _cure; UpdateHealthRatio(); HitTextController.ShowHitText(this, _cure, _hitTextType, _showDelay); //更新腳色介面 CharaDataUI.UpdateHealth(Index); }
public void Init() { if (IsInit) { return; } Canvas = transform.GetComponent <RectTransform>(); //腳色介面 MyCharaDataUI = Canvas.FindChild("CharaData").GetComponent <CharaDataUI>(); MyCharaDataUI.Init();//初始化 //跳血文字控制器 MyHitTextController = Canvas.FindChild("HitTextController").GetComponent <HitTextController>(); MyHitTextController.Init(); //標題控制器 TitleController = Canvas.FindChild("FightTitle").GetComponent <FightTitleController>(); TitleController.Init(); //冒險進度 MyProgress = Canvas.FindChild("Progress").GetComponent <Progress>(); MyProgress.Init(); //事件 MyEventUI = Canvas.FindChild("Event").GetComponent <EventUI>(); MyEventUI.Init(); IsInit = true; }