private void _ToSkill(SkillDataWhole skillDataWhole) { if (skillDataWhole.m_eSkillKind == SkillEnum.SkillKind.Soul && m_CharData.SoulSkillInvalid.Value) { HUDTextMgr.GetInst().NewText(ConfigData.GetHUDText("16"), this, HUDTextMgr.HUDTextType.BUFF); //"技能失效" } m_CharData.m_iCurSkillID = skillDataWhole.m_iSkillID; OfficialShow(); int actionId = skillDataWhole.m_iActionID; if (-1 == actionId) { ExcuteSkill(0); Invoke("OfficialHide", 1f); } else { m_CharAnim.ToSkill(actionId); m_CharMove.StopAutoMove(); } if (skillDataWhole.m_eSkillKind == SkillEnum.SkillKind.Soul) { HUDTextMgr.GetInst().NewText(skillDataWhole.m_sDisplayName, this, HUDTextMgr.HUDTextType.MainSkillName); } else { HUDTextMgr.GetInst().NewText(skillDataWhole.m_sDisplayName, this, HUDTextMgr.HUDTextType.NormalSkillName); } }
public void ToSkillWithoutCheck(int skillId) { SkillDataWhole skillDataWhole = SkillHandler.GetInst().GetSkillDataByID(skillId); if (CheckMP(skillDataWhole, false)) { _ToSkill(skillDataWhole); } }
public void ReleaseSkill(int skillId) { if (!CheckCanDo(skillId, false)) { return; } SkillDataWhole skillDataWhole = SkillHandler.GetInst().GetSkillDataByID(skillId); _ToSkill(skillDataWhole); }
private void CheckRate(SkillDataWhole skillDataWhole, CharHandler charHandler, ref List <CharHandler> targets) { for (int i = targets.Count - 1; i >= 0; --i) { float rate = BattleCalculate.ExcuteFormula(skillDataWhole.m_sEffectRate, null, charHandler, targets[i]); if (Random.Range(0f, 1f) > rate) { HUDTextMgr.GetInst().NewText(ConfigData.GetValue("Lan_Battle_Client", "15", "Text"), targets[i], HUDTextMgr.HUDTextType.BUFF); //"释放不成功" targets.RemoveAt(i); } } }
protected bool CheckRate(SkillDataWhole skillDataWhole, CharHandler charHandler, CharHandler target) { float rate = BattleCalculate.ExcuteFormula(skillDataWhole.m_sEffectRate, null, charHandler, target); if (Random.Range(0f, 1f) > rate) { HUDTextMgr.GetInst().NewText(ConfigData.GetHUDText("15"), target, HUDTextMgr.HUDTextType.BUFF); //"释放不成功" return(false); } return(true); }
public SkillDataSon(ConfigRow rowData, SkillDataWhole parent) { m_Parent = parent; m_bDeliver = false; string sSkillType = rowData.GetValue("SkillType"); m_eSkillType = string.Empty == sSkillType ? SkillEnum.SkillType.Property : (SkillEnum.SkillType)Enum.Parse(typeof(SkillEnum.SkillType), sSkillType); string[] temp = rowData.GetValue("Camp_AimType").Split('_'); m_eAimSide = (SkillEnum.AimSide)Enum.Parse(typeof(SkillEnum.AimSide), temp[0]); m_eAimSideType = (SkillEnum.AimSideType)Enum.Parse(typeof(SkillEnum.AimSideType), temp[1]); m_eCatchType = rowData.GetValue("CatchType").Length > 0 ? (SkillEnum.CatchType)Enum.Parse(typeof(SkillEnum.CatchType), rowData.GetValue("CatchType")) : SkillEnum.CatchType.All; SetCatchScope(rowData.GetValue("CatchScope")); SetBuffTime(rowData.GetValue("EffectExpress")); SetReceptorEffect(rowData.GetValue("ReceptorEffect")); }
public bool ToSkill(int skillId, bool bManual = false) { if (!CheckCanDo(skillId, bManual)) { return(false); } SkillDataWhole skillDataWhole = SkillHandler.GetInst().GetSkillDataByID(skillId); if (!CheckMP(skillDataWhole, bManual)) { return(false); } _ToSkill(skillDataWhole); return(true); }
protected override void Excute(CharHandler charHandler, int index = -1, int skillInstId = -1) { SkillDataWhole skillDataWhole = SkillHandler.GetInst().GetSkillDataByID(charHandler.m_CharData.m_iCurSkillID); if (skillDataWhole.m_eSkillKind == SkillEnum.SkillKind.Soul && charHandler.m_CharData.SoulSkillInvalid.Value) { return; } SkillDataSon skillDataSon; List <CharHandler> targets; for (int i = 1; i <= skillDataWhole.GetSonCount(); ++i) { skillDataSon = skillDataWhole.GetSkillDataBySonID(i); targets = GetTargets(charHandler, skillDataSon, index); OnDoSkill(skillDataSon, charHandler, targets, skillInstId); } }
private bool CheckMP(SkillDataWhole skillDataWhole, bool bManual) { if (ApplicationConst.bFreeSkill && bManual) { return(true); } if (SkillEnum.SkillKind.Soul == skillDataWhole.m_eSkillKind) { if (m_CharData.CurMP >= m_CharData.MaxMP) { m_CharData.CurMP -= skillDataWhole.m_iNeedMP; return(true); } else { return(false); } } return(true); }