public bool TrySetSkillSlot(SkillNameTag skillNameTag, SkillSlotTag skillSlotTag, SkillComponentTag skillComponentTag) { SkillTypeTag skillTypeTag = GetComponent <PCSkillManager>() .GetSkillTypeTag(skillNameTag); bool canSetSlot; switch (skillSlotTag) { case SkillSlotTag.Merit1: case SkillSlotTag.Merit2: case SkillSlotTag.Merit3: canSetSlot = VerifyMeritSlot(skillTypeTag, skillComponentTag); break; case SkillSlotTag.Flaw1: case SkillSlotTag.Flaw2: case SkillSlotTag.Flaw3: canSetSlot = VerifyFlawSlot(skillComponentTag); break; default: canSetSlot = false; break; } if (canSetSlot && slotCompDict.TryGetValue(skillNameTag, out var slotComp)) { slotComp[skillSlotTag] = skillComponentTag; return(true); } return(false); }
private int SetBaseDamage(SkillNameTag skillNameTag) { SkillTypeTag skillType = GetComponent <PCSkillManager>() .GetSkillTypeTag(skillNameTag); int damage = zeroDamage; Dictionary <SkillComponentTag, EffectData> compEffect; SkillComponentTag checkComp; if (skillType == SkillTypeTag.Attack) { damage = baseDamage; compEffect = GetComponent <PCSkillManager>() .GetSkillEffect(skillNameTag); checkComp = SkillComponentTag.AirCurse; if (compEffect.TryGetValue(checkComp, out EffectData effectData)) { damage += effectData.Power; } } nameDamage[skillNameTag] = damage; return(damage); }
private void Effect(CommandTag commandTag) { SkillTypeTag skillType = skillManager.GetSkillTypeTag(commandTag); if (!printEffect.Contains(skillType)) { return; } SkillNameTag skillName = skillManager.GetSkillNameTag(commandTag); Dictionary <SkillComponentTag, EffectData> compInt = skillManager.GetSkillEffect(skillName); SkillComponentTag[] sortedComp = SortComponents(skillType, compInt); string comp; string effect; SkillComponentTag current; for (int i = 0; i < sortedComp.Length; i++) { current = sortedComp[i]; comp = skillManager.GetSkillComponentName(current); effect = skillManager.GetSkillEffectName(current, compInt[current]); SearchText(uiCurseText[i]).text = comp; SearchText(uiCurseData[i]).text = effect; } }
private void PCTeleportSelf_TakingAction(object sender, PublishActionEventArgs e) { if (e.SubTag != SubTag.PC) { return; } SkillNameTag skillName = GetComponent <PCSkillManager>() .GetSkillNameTag(e.Action); SkillTypeTag skillType = GetComponent <PCSkillManager>() .GetSkillTypeTag(skillName); if (skillType != SkillTypeTag.Move) { return; } int[] source = GetComponent <MetaInfo>().Position; int[] target = targetPosition; GetComponent <LocalManager>().SetPosition(target); GameCore.AxeManCore.GetComponent <TileOverlay>().TryHideTile(source); GameCore.AxeManCore.GetComponent <TileOverlay>().TryHideTile(target); GameCore.AxeManCore.GetComponent <LogManager>().Add( new LogMessage(LogCategoryTag.Combat, LogMessageTag.PCTeleport)); }
private SkillComponentTag[] SortComponents(SkillTypeTag skillTypeTag, Dictionary <SkillComponentTag, EffectData> compInt) { Queue <SkillComponentTag> sortedComp = new Queue <SkillComponentTag>(); SkillComponentTag[] checkList; switch (skillTypeTag) { case SkillTypeTag.Buff: checkList = sortedEnhance; break; case SkillTypeTag.Curse: checkList = sortedCurse; break; default: checkList = new SkillComponentTag[] { }; break; } foreach (SkillComponentTag sct in checkList) { if (compInt.ContainsKey(sct)) { sortedComp.Enqueue(sct); } } return(sortedComp.ToArray()); }
private int SetBaseRange(SkillNameTag skillNameTag) { SkillTypeTag skillType = GetComponent <PCSkillManager>() .GetSkillTypeTag(skillNameTag); int range = minRange; Dictionary <SkillComponentTag, EffectData> compEffect; SkillComponentTag checkComp; if (skillType != SkillTypeTag.Buff) { range = baseRange; compEffect = GetComponent <PCSkillManager>() .GetSkillEffect(skillNameTag); checkComp = SkillComponentTag.AirMerit; if (compEffect.TryGetValue(checkComp, out EffectData effectData)) { range += effectData.Power; } } nameRange[skillNameTag] = range; return(range); }
private void PCBuffSelf_TakingAction(object sender, PublishActionEventArgs e) { if (e.SubTag != SubTag.PC) { return; } SkillNameTag skillName = GetComponent <PCSkillManager>() .GetSkillNameTag(e.Action); SkillTypeTag skillType = GetComponent <PCSkillManager>() .GetSkillTypeTag(skillName); if (skillType != SkillTypeTag.Buff) { return; } Dictionary <SkillComponentTag, EffectData> compInt = GetComponent <PCSkillManager>().GetSkillEffect(skillName); foreach (SkillComponentTag sct in buffComps) { if (compInt.ContainsKey(sct)) { GetComponent <ActorStatus>().AddStatus(sct, compInt[sct]); } } GameCore.AxeManCore.GetComponent <LogManager>().Add( new LogMessage(LogCategoryTag.Combat, LogMessageTag.PCBuff)); }
public string GetShortSkillTypeName(SkillTypeTag skillTypeTag) { if (shortTypeNameDict.TryGetValue(skillTypeTag, out string shortType)) { return(shortType); } return(invalidName); }
public string GetLongSkillTypeName(SkillTypeTag skillTypeTag) { if (longTypeNameDict.TryGetValue(skillTypeTag, out string longType)) { return(longType); } return(invalidName); }
private bool VerifyMeritSlot(SkillTypeTag skillTypeTag, SkillComponentTag skillComponentTag) { if (validMeritSlot.TryGetValue(skillTypeTag, out var comp)) { return(Array.Exists(comp, e => e == skillComponentTag)); } return(false); }
public SkillTypeTag GetSkillTypeTag(SkillNameTag skillName, out string shortTypeName, out string fullTypeName) { SkillTypeTag skillType = skillTypeDict[skillName]; shortTypeName = shortTypeNameDict[skillType]; fullTypeName = fullTypeNameDict[skillType]; return(skillType); }
private void SkillNameType(CommandTag e) { SkillNameTag skillName = skillManager.GetSkillNameTag(e); SkillTypeTag skillType = skillManager.GetSkillTypeTag(skillName); string name = skillManager.GetSkillName(skillName); string type = skillManager.GetLongSkillTypeName(skillType); SearchText(UITag.SkillText).text = type; SearchText(UITag.SkillData).text = name; }
private void SetTemplateData(SkillNameTag skillName, SkillTypeTag skillType) { SkillSlotTag skillSlot = SkillSlotTag.SkillType; nameTypeDict[skillName] = skillType; xmlFile .Element(skillName.ToString()) .Element(skillSlot.ToString()) .Value = skillType.ToString(); }
private void Damage(CommandTag commandTag) { SkillTypeTag skillType = skillManager.GetSkillTypeTag(commandTag); if (skillType != SkillTypeTag.Attack) { return; } SearchText(UITag.Status1Text).text = GetComponent <UITextData>().GetStringData( UITextCategoryTag.ActorStatus, UITextDataTag.Damage); SearchText(UITag.Status1Data).text = skillManager.GetSkillDamage(commandTag).ToString(); }
private int SetBaseRange(SkillNameTag skillNameTag) { SkillTypeTag skillType = GetComponent <PCSkillManager>() .GetSkillTypeTag(skillNameTag); int range = zeroRange; Dictionary <SkillComponentTag, int[]> compEffect; SkillComponentTag checkComp; if (skillType != SkillTypeTag.Enhance) { range = baseRange; compEffect = GetComponent <PCSkillManager>() .GetSkillEffect(skillNameTag); checkComp = SkillComponentTag.AirMerit; if (compEffect.TryGetValue(checkComp, out int[] powerDuration))
private int SetBaseDamage(SkillNameTag skillNameTag) { SkillTypeTag skillType = GetComponent <PCSkillManager>() .GetSkillTypeTag(skillNameTag); int damage = zeroDamage; Dictionary <SkillComponentTag, int[]> compEffect; SkillComponentTag checkComp; if (skillType == SkillTypeTag.Attack) { damage = baseDamage; compEffect = GetComponent <PCSkillManager>() .GetSkillEffect(skillNameTag); checkComp = SkillComponentTag.AirCurse; if (compEffect.TryGetValue(checkComp, out int[] powerDuration))
private void PCAttackTarget_TakingAction(object sender, PublishActionEventArgs e) { if (e.SubTag != SubTag.PC) { return; } SkillNameTag skillName = GetComponent <PCSkillManager>() .GetSkillNameTag(e.Action); SkillTypeTag skillType = GetComponent <PCSkillManager>() .GetSkillTypeTag(skillName); if (skillType != SkillTypeTag.Attack) { return; } if (!GameCore.AxeManCore.GetComponent <SearchObject>() .Search(targetPosition[0], targetPosition[1], MainTag.Actor, out GameObject[] targets))
private void VerifySkillTarget_VerifyingSkill(object sender, VerifyingSkillEventArgs e) { SkillNameTag skillName = skillManager.GetSkillNameTag(e.UseSkill); SkillTypeTag skillType = skillManager.GetSkillTypeTag(skillName); int[] position = aimMarker.GetComponent <MetaInfo>().Position; GameObject[] go = GetComponent <SearchObject>().Search( position[0], position[1]); bool canUseSkill; switch (skillType) { case SkillTypeTag.Move: canUseSkill = VerifyMove(go); break; case SkillTypeTag.Attack: case SkillTypeTag.Curse: canUseSkill = VerifyAttackCurse(go); break; case SkillTypeTag.Buff: canUseSkill = VerifyBuff(go); break; default: canUseSkill = false; break; } if (!canUseSkill) { e.CanUseSkill.Push(false); } }
public string GetShortSkillTypeName(SkillTypeTag skillTypeTag) { return(GameCore.AxeManCore.GetComponent <SkillData>() .GetShortSkillTypeName(skillTypeTag)); }
public string GetShortSkillTypeName(SkillTypeTag skillTypeTag) { return(GameCore.AxeManCore.GetComponent <ConvertSkillMetaInfo>() .GetShortSkillTypeName(skillTypeTag)); }
public string GetLongSkillTypeName(SkillTypeTag skillTypeTag) { return(GetStringData(longType, skillTypeTag.ToString())); }
public string GetShortSkillTypeName(SkillTypeTag skillTypeTag) { return(GetStringData(shortType, skillTypeTag.ToString())); }