Beispiel #1
0
    public int valCaused(BattleRoleData source, BattleRoleData target, SkillKind kind)
    {
        int           B   = 0;
        NumberData    d   = physicalND;
        AttributeData atb = AttributeData.AT;

        if (kind == SkillKind.Elemental)
        {
            atb = AttributeData.MT;
            d   = elementalND;
        }
        else if (kind == SkillKind.Physical)
        {
            atb = AttributeData.AT;
            d   = physicalND;
        }
        else if (kind == SkillKind.Arcane)
        {
            d = arcaneND;
        }
        if (physicalND.dataTag == NumberData.DataType.percent)
        {
            for (int i = 0; i < SkillGrade; i++)
            {
                d.DATA += 10;
            }

            HSkilInfo hsi = GetComponent <HSkilInfo>();
            if (hsi && hsi.UseAppointedAtb)
            {
                atb = hsi.Atb;
            }
            else
            {
                if (kind == SkillKind.Arcane)
                {
                    B = (int)((source.ThisBasicRoleProperty().ReadRA(AttributeData.MT)
                               + source.ThisBasicRoleProperty().ReadRA(AttributeData.AT)) / 2
                              * d.DECIMAL);
                }
            }
            B = (int)(source.ThisBasicRoleProperty().ReadRA(atb) * d.DECIMAL);
        }
        else
        {
            B = physicalND.DATA;
        }
        if (HSModifity)
        {
            B = HSModifity.AllResult(source, target, kind, SkillGrade);
        }
        B = ValChangedByCharacterType(source, target, B);
        return(B);
    }
    public void OpenSDP(SkillFunction skill)
    {
        HSkilInfo info   = skill.GetComponent <HSkilInfo>();
        OneSkill  detail = info.HSDetail;

        SkillPanelContent.GetComponent <Image>().color = Color.clear;
        SkillPanelContent.GetChild(0).localScale       = Vector3.zero;
        SkillPanelContent.localScale = Vector3.one;
        SkillDetailsPanel.DOScale(Vector3.one, 0.15f).SetEase(Ease.OutBack);
        //显示当前技能详情
        ShowThisSkillDetails(skill, detail);
    }
Beispiel #3
0
    public virtual int dmgCaused(BattleRoleData source, BattleRoleData target)
    {
        SkillKind     kind = SkillKind.Physical;
        AttributeData Atb  = AttributeData.AT;
        HSkilInfo     hsi  = GetComponent <HSkilInfo>();

        if (hsi)
        {
            kind = hsi.kind;
            if (hsi.UseAppointedAtb)
            {
                Atb = hsi.Atb;
            }
            else
            {
                if (kind == SkillKind.Physical)
                {
                    Atb = AttributeData.AT;
                }
                else if (kind == SkillKind.Elemental)
                {
                    Atb = AttributeData.MT;
                }
                else if (kind == SkillKind.Arcane)
                {
                    Atb = AttributeData.MT;
                }
            }
        }
        int atk = source.ThisBasicRoleProperty().ReadRA(Atb);

        if (atk <= 0)
        {
            atk = SDConstants.MinDamageCount;
        }
        HSExportDmgModifity S = HSModifity;

        if (S)
        {
            atk = S.AllResult(source, target, kind, SkillGrade);
        }

        atk = ValChangedByCharacterType(source, target, atk);

        return(atk);
    }
    public void addSkill(OneSkill skill, Transform trans, string heroId)
    {
        Transform s;

        if (!skill.UseAppointedPrefab)
        {
            if (skill.SkillFunctionID < 0)
            {
                return;
            }
            int index = skill.SkillFunctionID;
            s = Instantiate(SDL.AllSkillList[index]) as Transform;
        }
        else
        {
            s = Instantiate(skill.SkillPrefab) as Transform;
            s.GetComponent <Button>().interactable = true;
            HSExportDmgModifity HSE = s.GetComponent <HSExportDmgModifity>();
            if (HSE)
            {
                HSE.BCPerformDataUsingRA    = skill.DataSet.BCPerformDataUsingRA;
                HSE.PDUsingRA_PerLevel      = skill.DataSet.PDUsingRA_PerLevel;
                HSE.PDUsingRA_PerSkillGrade = skill.DataSet.PDUsingRA_PerSkillGrade;
            }
            SkillFunction sf = s.GetComponent <SkillFunction>();
            if (sf)
            {
                sf.UseState       = skill.DataSet.UseState;
                sf._standardState = skill.DataSet._standardState;
            }
        }

        s.GetComponentInChildren <HSkilInfo>().HSDetail = skill;
        s.SetParent(trans);
        s.GetComponent <RectTransform>().anchoredPosition = Vector2.zero;
        s.localScale = Vector3.one;
        HSkilInfo info = s.GetComponent <HSkilInfo>();

        info.breed = skill.Breed;
        if (skill.Kind != SkillKind.End)
        {
            info.kind = skill.Kind;
        }
        if (skill.SkillAoe != SDConstants.AOEType.End)
        {
            info.AOEType = skill.SkillAoe;
        }
        if (skill.MpTpAddType != SDConstants.AddMpTpType.End)
        {
            info.AfterwardsAddType = skill.MpTpAddType;
        }
        SkillFunction basicSkillController = s.GetComponent <SkillFunction>();

        if (skill.Aim != SkillAim.End)
        {
            basicSkillController.ThisSkillAim = skill.Aim;
        }

        basicSkillController.SkillGrade = skill.lv;
        basicSkillController.IsOmega    = skill.isOmegaSkill;


        if (skill.BulletImg != null && skill.BulletImg != "")
        {
            basicSkillController.bullet.GetComponent <Image>().sprite
                = Resources.Load <Sprite>("Sprites/" + skill.BulletImg);
        }
        //判断是否为稀有角色



        //
        basicSkillController.initIcon();
    }