| | |
| | | |
| | | public class SkillButtonEffects : MonoBehaviour |
| | | { |
| | | [SerializeField] AttackButton m_Attack; |
| | | |
| | | [SerializeField] SkillButton m_BlinkSkill; |
| | | [SerializeField] SkillButton m_Skill1; |
| | | [SerializeField] SkillButton m_Skill2; |
| | | [SerializeField] SkillButton m_Skill3; |
| | | [SerializeField] SkillButton m_Skill4; |
| | | [SerializeField] SkillButton m_Skill5; |
| | | [SerializeField] SkillButton m_Skill6; |
| | | [SerializeField] SkillButton m_Skill7; |
| | | [SerializeField] SkillButton m_SkillXp; |
| | | |
| | | [SerializeField] Transform Skill1Info; |
| | | [SerializeField] Transform Skill2Info; |
| | | [SerializeField] Transform Skill3Info; |
| | | [SerializeField] Transform Skill4Info; |
| | | [SerializeField] Transform Skill5Info; |
| | | [SerializeField] Transform Skill6Info; |
| | | [SerializeField] Transform Skill7Info; |
| | | [SerializeField] Transform XpSkillInfo; |
| | | |
| | | [SerializeField] GameObject SkillSelected1; |
| | | [SerializeField] GameObject SkillSelected2; |
| | | [SerializeField] GameObject SkillSelected3; |
| | | [SerializeField] GameObject SkillSelected4; |
| | | [SerializeField] GameObject SkillSelected5; |
| | | [SerializeField] GameObject SkillSelected6; |
| | | [SerializeField] GameObject SkillSelected7; |
| | | [SerializeField] GameObject SkillSelectedXp; |
| | | |
| | | LongPressShowPanel _LongPressShowPanel; |
| | | public float TimeLong = 1f; |
| | | private bool BoolFb = false; |
| | | private bool AccordingBool = true;//显示开关 |
| | | private int SkillsHole = -1;//获取技能孔 |
| | | private float _currentime = 0; |
| | | private int m_PlayerXpSkillId = 0; |
| | | private bool _bool = false; |
| | | UIEffect effect; |
| | | |
| | | private float preTime = 0; |
| | | |
| | | private void Awake() |
| | | { |
| | | m_PlayerXpSkillId = ConfigParse.GetDic<int, int>(FuncConfigConfig.Get("XpSkillID").Numerical1)[PlayerDatas.Instance.baseData.Job];//获取各个职业的XP技能 |
| | | MagicWeapon(); |
| | | } |
| | | |
| | | public void Init() |
| | | { |
| | | SkillSelected1.SetActive(false); |
| | | SkillSelected2.SetActive(false); |
| | | SkillSelected3.SetActive(false); |
| | | SkillSelected4.SetActive(false); |
| | | SkillSelected5.SetActive(false); |
| | | SkillSelected6.SetActive(false); |
| | | SkillSelected7.SetActive(false); |
| | | SkillSelectedXp.SetActive(false); |
| | | TipShutDown(-1); |
| | | |
| | | Skill.OnSkillCDFinished += OnSkillCDFinished; |
| | | Skill.OnSkillCast += OnSkillCast; |
| | | } |
| | | |
| | | public void UnInit() |
| | | { |
| | | TipShutDown(-1); |
| | | Skill.OnSkillCDFinished -= OnSkillCDFinished; |
| | | Skill.OnSkillCast -= OnSkillCast; |
| | | } |
| | | |
| | | private void OnSkillCast(uint objSID, int obj) |
| | | { |
| | | if (objSID != PlayerDatas.Instance.PlayerId) |
| | | { |
| | | return; |
| | | } |
| | | if (obj != 0 && obj == m_PlayerXpSkillId) |
| | | { |
| | | EffectMgr.Instance.PlayUIEffect(1023, 1500, m_SkillXp.transform, false); |
| | | } |
| | | int position = PlayerDatas.Instance.skill.ContainsQuickSkill(obj); |
| | | switch ((SkillEffects)position) |
| | | { |
| | | case SkillEffects.skillEffect_1: |
| | | EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill1.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_2: |
| | | EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill2.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_3: |
| | | EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill3.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_4: |
| | | EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill4.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_5: |
| | | EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill5.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_6: |
| | | EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill6.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_7: |
| | | EffectMgr.Instance.PlayUIEffect(1023, 1500, m_Skill7.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_xp: |
| | | //EffectMgr.Instance.PlayUIEffect(1023, 1500, m_SkillXp.transform, false); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | } |
| | | |
| | | private void OnSkillCDFinished(int obj) |
| | | { |
| | | if (obj != 0 && obj == m_PlayerXpSkillId) |
| | | { |
| | | EffectMgr.Instance.PlayUIEffect(1024, 1500, m_SkillXp.transform, false); |
| | | } |
| | | int position = PlayerDatas.Instance.skill.ContainsQuickSkill(obj); |
| | | switch ((SkillEffects)position) |
| | | { |
| | | case SkillEffects.skillEffect_1: |
| | | EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill1.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_2: |
| | | EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill2.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_3: |
| | | EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill3.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_4: |
| | | EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill4.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_5: |
| | | EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill5.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_6: |
| | | EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill6.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_7: |
| | | EffectMgr.Instance.PlayUIEffect(1024, 1500, m_Skill7.transform, false); |
| | | break; |
| | | case SkillEffects.skillEffect_xp: |
| | | //EffectMgr.Instance.PlayUIEffect(1024, 1500, m_SkillXp.transform, false); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private void Start() |
| | | { |
| | | UIEventTrigger.Get(m_Attack.gameObject).OnDown = DownAttackButton; |
| | | UIEventTrigger.Get(m_Skill1.gameObject).OnDown = DownAttackButton; |
| | | UIEventTrigger.Get(m_Skill2.gameObject).OnDown = DownAttackButton; |
| | | UIEventTrigger.Get(m_Skill3.gameObject).OnDown = DownAttackButton; |
| | | UIEventTrigger.Get(m_Skill4.gameObject).OnDown = DownAttackButton; |
| | | UIEventTrigger.Get(m_Skill5.gameObject).OnDown = DownAttackButton; |
| | | UIEventTrigger.Get(m_Skill6.gameObject).OnDown = DownAttackButton; |
| | | UIEventTrigger.Get(m_Skill7.gameObject).OnDown = DownAttackButton; |
| | | UIEventTrigger.Get(m_SkillXp.gameObject).OnDown = DownAttackButton; |
| | | |
| | | UIEventTrigger.Get(m_Attack.gameObject).OnUp = UpAttackButton; |
| | | UIEventTrigger.Get(m_Skill1.gameObject).OnUp = UpAttackButton; |
| | | UIEventTrigger.Get(m_Skill2.gameObject).OnUp = UpAttackButton; |
| | | UIEventTrigger.Get(m_Skill3.gameObject).OnUp = UpAttackButton; |
| | | UIEventTrigger.Get(m_Skill4.gameObject).OnUp = UpAttackButton; |
| | | UIEventTrigger.Get(m_Skill5.gameObject).OnUp = UpAttackButton; |
| | | UIEventTrigger.Get(m_Skill6.gameObject).OnUp = UpAttackButton; |
| | | UIEventTrigger.Get(m_Skill7.gameObject).OnUp = UpAttackButton; |
| | | UIEventTrigger.Get(m_SkillXp.gameObject).OnUp = UpAttackButton; |
| | | } |
| | | |
| | | private void OnComplete() |
| | | { |
| | | if (_bool) |
| | | { |
| | | effect = EffectMgr.Instance.PlayUIEffect(1021, 1500, m_Attack.transform, false); |
| | | effect.OnComplete = OnComplete; |
| | | } |
| | | } |
| | | |
| | | void DownAttackButton(GameObject go) |
| | | { |
| | | switch (go.name) |
| | | { |
| | | case "AttackBtn": |
| | | preTime = Time.time; |
| | | effect = EffectMgr.Instance.PlayUIEffect(1021, 1500, m_Attack.transform, false); |
| | | effect.OnComplete = OnComplete; |
| | | _bool = true; |
| | | break; |
| | | case "Btn_Skill1": |
| | | Prompting((int)SkillEffects.skillEffect_1); |
| | | if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_1) == null) |
| | | { |
| | | return; |
| | | } |
| | | BoolFb = true; |
| | | AccordingBool = true; |
| | | SkillsHole = (int)SkillEffects.skillEffect_1; |
| | | SkillSelected1.SetActive(true); |
| | | break; |
| | | case "Btn_Skill2": |
| | | Prompting((int)SkillEffects.skillEffect_2); |
| | | if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_2) == null) |
| | | return; |
| | | BoolFb = true; |
| | | AccordingBool = true; |
| | | SkillsHole = (int)SkillEffects.skillEffect_2; |
| | | SkillSelected2.SetActive(true); |
| | | break; |
| | | case "Btn_Skill3": |
| | | Prompting((int)SkillEffects.skillEffect_3); |
| | | if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_3) == null) |
| | | return; |
| | | BoolFb = true; |
| | | AccordingBool = true; |
| | | SkillsHole = (int)SkillEffects.skillEffect_3; |
| | | SkillSelected3.SetActive(true); |
| | | break; |
| | | case "Btn_Skill4": |
| | | Prompting((int)SkillEffects.skillEffect_4); |
| | | if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_4) == null) |
| | | return; |
| | | BoolFb = true; |
| | | AccordingBool = true; |
| | | SkillsHole = (int)SkillEffects.skillEffect_4; |
| | | SkillSelected4.SetActive(true); |
| | | break; |
| | | case "Btn_Skill5": |
| | | Prompting((int)SkillEffects.skillEffect_5); |
| | | if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_5) == null) |
| | | return; |
| | | BoolFb = true; |
| | | AccordingBool = true; |
| | | SkillsHole = (int)SkillEffects.skillEffect_5; |
| | | SkillSelected5.SetActive(true); |
| | | break; |
| | | case "Btn_Skill6": |
| | | Prompting((int)SkillEffects.skillEffect_6); |
| | | if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_6) == null) |
| | | return; |
| | | BoolFb = true; |
| | | AccordingBool = true; |
| | | SkillsHole = (int)SkillEffects.skillEffect_6; |
| | | SkillSelected6.SetActive(true); |
| | | break; |
| | | case "Btn_Skill7": |
| | | Prompting((int)SkillEffects.skillEffect_7); |
| | | if (PlayerDatas.Instance.skill.GetQuickSkillByPos((int)SkillEffects.skillEffect_7) == null) |
| | | return; |
| | | BoolFb = true; |
| | | AccordingBool = true; |
| | | SkillsHole = (int)SkillEffects.skillEffect_7; |
| | | SkillSelected7.SetActive(true); |
| | | break; |
| | | case "Btn_SkillXp": |
| | | Prompting((int)SkillEffects.skillEffect_xp); |
| | | var skillModel = ModelCenter.Instance.GetModel<SkillModel>();
|
| | | var xpSkillId = skillModel.GetXpSkillID(); |
| | | if (PlayerDatas.Instance.skill.GetSKillById(xpSkillId) != null)
|
| | | {
|
| | | BoolFb = true;
|
| | | AccordingBool = true;
|
| | | SkillsHole = (int)SkillEffects.skillEffect_xp;
|
| | | SkillSelectedXp.SetActive(true);
|
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | void UpAttackButton(GameObject go) |
| | | { |
| | | _currentime = 0; |
| | | TipShutDown(-1); |
| | | switch (go.name) |
| | | { |
| | | case "AttackBtn": |
| | | _bool = false; |
| | | if (effect != null) |
| | | { |
| | | if (Time.time - preTime < effect.duration) |
| | | { |
| | | effect.OnComplete = null; |
| | | } |
| | | } |
| | | break; |
| | | case "Btn_Skill1": |
| | | BoolFb = false; |
| | | SkillSelected1.SetActive(false); |
| | | break; |
| | | case "Btn_Skill2": |
| | | BoolFb = false; |
| | | SkillSelected2.SetActive(false); |
| | | break; |
| | | case "Btn_Skill3": |
| | | BoolFb = false; |
| | | SkillSelected3.SetActive(false); |
| | | break; |
| | | case "Btn_Skill4": |
| | | BoolFb = false; |
| | | SkillSelected4.SetActive(false); |
| | | break; |
| | | case "Btn_Skill5": |
| | | BoolFb = false; |
| | | SkillSelected5.SetActive(false); |
| | | break; |
| | | case "Btn_Skill6": |
| | | BoolFb = false; |
| | | SkillSelected6.SetActive(false); |
| | | break; |
| | | case "Btn_Skill7": |
| | | BoolFb = false; |
| | | SkillSelected7.SetActive(false); |
| | | break; |
| | | case "Btn_SkillXp": |
| | | BoolFb = false; |
| | | SkillSelectedXp.SetActive(false); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private Dictionary<int, int> _SkillAndPreTreasure = new Dictionary<int, int>(); |
| | | void MagicWeapon()//法宝获取 |
| | | { |
| | | var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>(); |
| | | var treasures = treasureModel.GetAllTreasure(); |
| | | |
| | | for (int i = 0; i < treasures.Count; i++) |
| | | { |
| | | Treasure treasure; |
| | | if (treasureModel.TryGetTreasure(treasures[i], out treasure)) |
| | | { |
| | | _SkillAndPreTreasure[treasure.skillId] = treasures[i]; |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void LateUpdate() |
| | | { |
| | | if (BoolFb) |
| | | { |
| | | _currentime += Time.deltaTime; |
| | | if (_currentime >= TimeLong) |
| | | { |
| | | if (AccordingBool) |
| | | { |
| | | DynamicallyCreate(); |
| | | AccordingBool = false; |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | void DynamicallyCreate() |
| | | { |
| | | TipShutDown(SkillsHole); |
| | | switch ((SkillEffects)SkillsHole) |
| | | { |
| | | case SkillEffects.skillEffect_1: |
| | | _LongPressShowPanel = Skill1Info.GetChild(0).GetComponent<LongPressShowPanel>(); |
| | | break; |
| | | case SkillEffects.skillEffect_2: |
| | | _LongPressShowPanel = Skill2Info.GetChild(0).GetComponent<LongPressShowPanel>(); |
| | | break; |
| | | case SkillEffects.skillEffect_3: |
| | | _LongPressShowPanel = Skill3Info.GetChild(0).GetComponent<LongPressShowPanel>(); |
| | | break; |
| | | case SkillEffects.skillEffect_4: |
| | | _LongPressShowPanel = Skill4Info.GetChild(0).GetComponent<LongPressShowPanel>(); |
| | | break; |
| | | case SkillEffects.skillEffect_5: |
| | | _LongPressShowPanel = Skill5Info.GetChild(0).GetComponent<LongPressShowPanel>(); |
| | | break; |
| | | case SkillEffects.skillEffect_6: |
| | | _LongPressShowPanel = Skill6Info.GetChild(0).GetComponent<LongPressShowPanel>(); |
| | | break; |
| | | case SkillEffects.skillEffect_7: |
| | | _LongPressShowPanel = Skill7Info.GetChild(0).GetComponent<LongPressShowPanel>(); |
| | | break; |
| | | case SkillEffects.skillEffect_xp: |
| | | _LongPressShowPanel = XpSkillInfo.GetChild(0).GetComponent<LongPressShowPanel>(); |
| | | break; |
| | | }
|
| | | PlayerSkillData _PlayerSkillData = null; |
| | | if ((SkillEffects)SkillsHole == SkillEffects.skillEffect_xp) |
| | | {
|
| | | var skillModel = ModelCenter.Instance.GetModel<SkillModel>();
|
| | | var xpSkillId = skillModel.GetXpSkillID(); |
| | | _PlayerSkillData = PlayerDatas.Instance.skill.GetSKillById(xpSkillId);
|
| | | } |
| | | else |
| | | { |
| | | _PlayerSkillData = PlayerDatas.Instance.skill.GetQuickSkillByPos(SkillsHole); |
| | | } |
| | | if (!_SkillAndPreTreasure.ContainsKey(_PlayerSkillData.id)) |
| | | { |
| | | DebugEx.LogError("法宝表没有对应的技能ID" + _PlayerSkillData.id); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | int FBID = _SkillAndPreTreasure[_PlayerSkillData.id]; |
| | | _LongPressShowPanel.Name.text = SkillConfig.Get(_PlayerSkillData.id).SkillName; |
| | | _LongPressShowPanel.Describe.text = SkillConfig.Get(_PlayerSkillData.id).Description; |
| | | |
| | | var treasureConfig = TreasureConfig.Get(FBID); |
| | | _LongPressShowPanel.m_Icon.SetSprite(treasureConfig.Icon); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | void TipShutDown(int _index) |
| | | { |
| | | Skill1Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_1); |
| | | Skill2Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_2); |
| | | Skill3Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_3); |
| | | Skill4Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_4); |
| | | Skill5Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_5); |
| | | Skill6Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_6); |
| | | Skill7Info.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_7); |
| | | XpSkillInfo.gameObject.SetActive((SkillEffects)_index == SkillEffects.skillEffect_xp); |
| | | } |
| | | |
| | | void Prompting(int _Skillindex) |
| | | { |
| | | if (PlayerDatas.Instance.skill.GetQuickSkillByPos(_Skillindex) == null) |
| | | { |
| | | switch ((SkillEffects)_Skillindex) |
| | | { |
| | | case SkillEffects.skillEffect_1: |
| | | SysNotifyMgr.Instance.ShowTip("Skill1Btn_Unlock"); |
| | | break; |
| | | case SkillEffects.skillEffect_2: |
| | | SysNotifyMgr.Instance.ShowTip("Skill2Btn_Unlock"); |
| | | break; |
| | | case SkillEffects.skillEffect_3: |
| | | SysNotifyMgr.Instance.ShowTip("Skill3Btn_Unlock"); |
| | | break; |
| | | case SkillEffects.skillEffect_4: |
| | | SysNotifyMgr.Instance.ShowTip("Skill4Btn_Unlock"); |
| | | break; |
| | | case SkillEffects.skillEffect_5: |
| | | SysNotifyMgr.Instance.ShowTip("Skill5Btn_Unlock"); |
| | | break; |
| | | case SkillEffects.skillEffect_6: |
| | | SysNotifyMgr.Instance.ShowTip("Skill6Btn_Unlock"); |
| | | break; |
| | | case SkillEffects.skillEffect_7: |
| | | SysNotifyMgr.Instance.ShowTip("Skill7Btn_Unlock"); |
| | | break; |
| | | case SkillEffects.skillEffect_xp: |
| | | var skillModel = ModelCenter.Instance.GetModel<SkillModel>(); |
| | | var xpSkillId = skillModel.GetXpSkillID(); |
| | | if (PlayerDatas.Instance.skill.GetSKillById(xpSkillId) == null) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("SkillXpBtn_Unlock"); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | int SkillID = PlayerDatas.Instance.skill.GetQuickSkillByPos(_Skillindex).id; |
| | | Skill _skill = PlayerDatas.Instance.hero.SkillMgr.Get(SkillID); |
| | | if (!_skill.IsValid()) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("SkillBtn_CD"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | private enum SkillEffects |
| | | { |
| | | skillEffect_1 = 0, |
| | | skillEffect_2 = 1, |
| | | skillEffect_3 = 2, |
| | | skillEffect_4 = 3, |
| | | skillEffect_5 = 4, |
| | | skillEffect_6 = 5, |
| | | skillEffect_7 = 6, |
| | | skillEffect_xp = 7, |
| | | } |
| | | } |
| | | |
| | | } |