Ejemplo n.º 1
0
 /// <summary>
 /// 更新施法冷卻百分比與施法冷卻圖像
 /// </summary>
 void UpdateCDRatio()
 {
     //更新冷卻百分比
     CDRaito = CDTimer / CD;
     //更新施法冷卻圖像
     CharaDataUI.UpdateSpellCD(Self.Index);
 }
Ejemplo n.º 2
0
 /// <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();
 }
Ejemplo n.º 3
0
    /// <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++;
    }
Ejemplo n.º 4
0
 /// <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);
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 檢查是否還存活
 /// </summary>
 protected override void AliveCheck()
 {
     base.AliveCheck();
     //如果腳色死亡就執行死亡IconUI
     if (!IsAlive)
     {
         CharaDataUI.Dead(Index);
     }
 }
Ejemplo n.º 6
0
 /// <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);
     }
 }
Ejemplo n.º 7
0
 void Start()
 {
     if (IsInit)
     {
         return;
     }
     LoadObj();
     SetData();
     LoadUI();
     SetAudio();
     CharaDataUI.UpdateData();
     //開始冒險
     StartAdventure();
     IsInit = true;
 }
Ejemplo n.º 8
0
    //事件協程
    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();//繼續冒險
        }
    }
Ejemplo n.º 9
0
 /// <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);
 }
Ejemplo n.º 10
0
 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;
 }
Ejemplo n.º 11
0
 /// <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);
 }
Ejemplo n.º 12
0
 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;
 }
Ejemplo n.º 13
0
 /// <summary>
 /// 取消按鈕被按下
 /// </summary>
 public void Click_Cancel()
 {
     CharaDataUI.ShowCharas(true); //顯示腳色資料介面
     ShowInvestigateUI(false);     //隱藏調查介面
     FightScene.KeepAdventure();   //繼續冒險
 }
Ejemplo n.º 14
0
 /// <summary>
 /// 確認按鈕被按下
 /// </summary>
 public void Click_Confirm()
 {
     CharaDataUI.ShowCharas(true); //顯示腳色資料介面
     ShowCampUI(false);            //隱藏紮營介面
     FightScene.KeepAdventure();   //繼續冒險
 }