/// <summary> /// 更新施法冷卻百分比與施法冷卻圖像 /// </summary> void UpdateCDRatio() { //更新冷卻百分比 CDRaito = CDTimer / CD; //更新施法冷卻圖像 CharaDataUI.UpdateSpellCD(Self.Index); }
/// <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> void TriggerEvent() { switch (Events[NextEvent]) { case MilestoneEvent.Monster: FightScene.MeetEnemy(MonsterGetter.GetMonsterDicsFromEvent(MyAdventure.MonsterEvent)); //遭遇敵人 break; case MilestoneEvent.Accident: CharaDataUI.ShowCharas(false); //隱藏腳色資料介面 AccidentUI.CallAccident(EventGetter.GetAccidentInGroup(MyAdventure.AccidentGroup)); //呼叫意外事件 FightScene.AccidentEvent(); //遭遇意外事件 break; case MilestoneEvent.Investigate: CharaDataUI.ShowCharas(false); //隱藏腳色資料介面 InvestigateUI.CallInvestigate(EventGetter.GetInvestigateInGroup(MyAdventure.InvestigateGroup)); //呼叫調查事件 FightScene.InvestigateEvent(); //遭遇調查事件 break; case MilestoneEvent.Camp: CharaDataUI.ShowCharas(false); //隱藏腳色資料介面 CampUI.CallCamp(EventGetter.GetCampInGroup(MyAdventure.CampGroup)); //呼叫紮營事件 FightScene.InvestigateEvent(); //遭遇調查事件 break; } NextEvent++; }
/// <summary> /// 對角色造成治癒,傳入[造成的治癒][是否在ICON顯示效果動畫] /// </summary> public override void ReceiveCure(int _cure, bool _showIconAni, HitTextType _hitTextType, float _showDelay) { base.ReceiveCure(_cure, _showIconAni, _hitTextType, _showDelay); if (_showIconAni) { CharaDataUI.ShowHealingHealthAni(Index); } }
/// <summary> /// 檢查是否還存活 /// </summary> protected override void AliveCheck() { base.AliveCheck(); //如果腳色死亡就執行死亡IconUI if (!IsAlive) { CharaDataUI.Dead(Index); } }
/// <summary> /// 對角色造成物理傷害,傳入[造成的傷害][是否在ICON顯示效果動畫] /// </summary> public override void ReceivePhysicalDamge(int _damage, bool _showIconAni, HitTextType _hitTextType, float _showDelay) { base.ReceivePhysicalDamge(_damage, _showIconAni, _hitTextType, _showDelay); //是否在Icon顯示腳色被擊中效果 if (_showIconAni) { CharaDataUI.ShowDamageAni(Index); } }
void Start() { if (IsInit) { return; } LoadObj(); SetData(); LoadUI(); SetAudio(); CharaDataUI.UpdateData(); //開始冒險 StartAdventure(); IsInit = true; }
//事件協程 static IEnumerator EventCoroutine() { Go_Scenario.SetActive(true); yield return(new WaitForSeconds(1f)); Go_Feedback.SetActive(true); yield return(new WaitForSeconds(2f)); ShowResultUI(false); //隱藏結果UI CharaDataUI.ShowCharas(true); //顯示腳色資料介面 //如果有戰鬥就進入戰鬥沒有則繼續冒險 if (Data.CheckFight()) { FightScene.AmbushEvent(MonsterGetter.GetMonsterDicsFromEvent(Data.MonsterEvent));//埋伏事件 } else { FightScene.KeepAdventure();//繼續冒險 } }
/// <summary> /// 消耗精神,傳入[消耗的精神][是否在ICON顯示效果動畫] /// </summary> public void ConsumeVitality(int _vitality) { //死者不會消耗精神 if (!IsAlive) { return; } //消耗量不可小於等於0 if (_vitality <= 0) { return; } //消耗最大等於剩餘精神 if (CurVP - _vitality < 0) { _vitality = CurVP; } CurVP -= _vitality; UpdateVitalityRatio(); //更新腳色介面 CharaDataUI.UpdateVitality(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; }
/// <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; }
/// <summary> /// 取消按鈕被按下 /// </summary> public void Click_Cancel() { CharaDataUI.ShowCharas(true); //顯示腳色資料介面 ShowInvestigateUI(false); //隱藏調查介面 FightScene.KeepAdventure(); //繼續冒險 }
/// <summary> /// 確認按鈕被按下 /// </summary> public void Click_Confirm() { CharaDataUI.ShowCharas(true); //顯示腳色資料介面 ShowCampUI(false); //隱藏紮營介面 FightScene.KeepAdventure(); //繼續冒險 }