コード例 #1
0
        protected override bool doAction()
        {
            Skill skillOrAttackById = base.unit.getSkillOrAttackById(this.skillKey.SkillID);

            if (skillOrAttackById == null)
            {
                return(false);
            }
            if (skillOrAttackById.IsGuide || this.interruptType == SkillInterruptType.Force || SkillUtility.IsBackHomeSkill(skillOrAttackById))
            {
                if (SkillUtility.IsBackHomeSkill(skillOrAttackById) && skillOrAttackById.IsInSkillCastIn)
                {
                    base.unit.jumpFont(JumpFontType.Interrupt, "回城打断!", null, false);
                }
                this.TryRemoveBornPowerObjSkillDataOnInterrupt(this.skillKey.SkillID);
                skillOrAttackById.Interrupt(true);
                if (base.unit.isPlayer)
                {
                    Singleton <SkillView> .Instance.ShowGuideBar(false, 1f, "回城");
                }
                return(true);
            }
            this.TryRemoveBornPowerObjSkillDataOnInterrupt(this.skillKey.SkillID);
            skillOrAttackById.Interrupt(false);
            return(false);
        }
コード例 #2
0
    public void AdvanceCombatState()
    {
        combatMenuState = CombatMenuState.Root;

        if (combatState == CombatState.Attack)
        {
            if (enemy.health > 0)
            {
                combatState = CombatState.Defend;
            }
            else
            {
                DropLoot();
                AdventureManager.instance.AddHearts(3, "You defeated it! Great job!");
                combatState = CombatState.None;
            }
        }
        else if (combatState == CombatState.Defend)
        {
            if (AdventureManager.instance.playerFighter.health > 0)
            {
                combatState = CombatState.Companion;

                var companion = AdventureManager.instance.companion;
                if (UnityEngine.Random.Range(0.0f, 1.0f) < 0.7f)
                {
                    AdventureManager.instance.branch.currentSituation.enemy.health -= companion.attack;
                    AdventureManager.instance.CompanionComment("Take this!");
                }
                else
                {
                    var randomSkill = companion.skills[UnityEngine.Random.Range(0, companion.skills.Count)];
                    AdventureManager.instance.CompanionComment("Let me help. " + randomSkill.name + "!");
                    SkillUtility.UseSkill(randomSkill, companion.attack, companion.defense, companion.speed);
                }

                AdventureManager.instance.AdvanceCombatState();
            }
            else
            {
                AdventureManager.instance.CompanionComment("Oh no, are you okay? Get up!");
                combatState = CombatState.None;

                // TODO: Lose!
            }
        }
        else if (combatState == CombatState.Companion)
        {
            if (enemy.health > 0)
            {
                combatState = CombatState.Attack;
            }
            else
            {
                DropLoot();
                AdventureManager.instance.AddHearts(3, "Couldn't have done it without you!");
                combatState = CombatState.None;
            }
        }
    }
コード例 #3
0
 private void BindSkill(string skill, ObserveHeroSkill skillComp)
 {
     try
     {
         SysSkillMainVo skillData   = SkillUtility.GetSkillData(skill, -1, -1);
         string         skill_icon  = skillData.skill_icon;
         Texture        mainTexture = ResourceManager.Load <Texture>(skill_icon, true, true, null, 0, false);
         skillComp.Texture.mainTexture = mainTexture;
         if (skillComp.Level)
         {
             int skillLevel = this._hero.skillManager.GetSkillLevel(skill);
             skillComp.Level.text = skillLevel.ToString();
         }
         float num         = 0f;
         float skillCDTime = this._hero.GetSkillCDTime(skill);
         if (skillCDTime > 0f)
         {
             num = this._hero.GetCDTime(skill) / skillCDTime;
         }
         skillComp.Mask.fillAmount = num;
         this.SetMaskEnableStatus(skillComp.Mask, num);
     }
     catch (Exception e)
     {
         ClientLogger.LogException(e);
     }
 }
コード例 #4
0
        private void OnPassiveItemChanged(BuffItem item, int dataIndex)
        {
            string         text      = this.passive_skills[dataIndex];
            SysSkillMainVo skillData = SkillUtility.GetSkillData(text, -1, -1);

            item.name = text;
            item.SetTexture(skillData.skill_icon);
        }
コード例 #5
0
    public static SysSkillMainVo GetSkillData(string skillID, int level = -1, int skin = -1)
    {
        SysSkillMainVo    skillMainData    = BaseDataMgr.instance.GetSkillMainData(skillID);
        SysSkillLevelupVo skillLevelupData = SkillUtility.GetSkillLevelupData(skillID, level);
        SysSkillSkinVo    skillSkinData    = SkillUtility.GetSkillSkinData(skillID, skin);

        return(SkillUtility.GetSkillData(skillMainData, skillLevelupData, skillSkinData));
    }
コード例 #6
0
 private bool doExcuteSpecialState(Units target, ref float damage)
 {
     if (SkillUtility.DoWuDi(target, damage))
     {
         target.jumpFont(JumpFontType.WuDi, string.Empty, this.casterUnit, false);
         return(true);
     }
     return(false);
 }
コード例 #7
0
        public void Init(int idx, string idxName, UIAtlas atlas)
        {
            this.skillIndex            = idx + SkillIndex._1st;
            this.skillFrame.spriteName = "Hero_skill_frame";
            SysSkillMainVo skillData = SkillUtility.GetSkillData(idxName, -1, -1);

            this.skillPic.atlas      = atlas;
            this.skillPic.spriteName = skillData.skill_icon;
            UIEventListener.Get(this.skillFrame.gameObject).onMobileHover = new UIEventListener.BoolDelegate(this.CheckState);
        }
コード例 #8
0
 public SkillData(string skill_id)
 {
     this.skillId = skill_id;
     this.config  = SkillUtility.GetSkillData(this.skillId, -1, -1);
     if (this.config == null)
     {
         return;
     }
     this.Parse(this.config);
 }
コード例 #9
0
    public static SysSkillSkinVo GetSkillSkinData(string skillID, int skin)
    {
        if (skin < 0)
        {
            return(null);
        }
        string unikey = skillID + SkillUtility.sSkinPreFix + SkillUtility.IntToString(skin);

        return(BaseDataMgr.instance.GetDataById <SysSkillSkinVo>(unikey));
    }
コード例 #10
0
    public static SysSkillLevelupVo GetSkillLevelupData(string skillID, int level)
    {
        if (level < 0)
        {
            return(null);
        }
        string skillLvUpId = SkillUtility.getSkillLvUpId(skillID, level);

        return(BaseDataMgr.instance.GetDataById <SysSkillLevelupVo>(skillLvUpId));
    }
コード例 #11
0
 private void UpdateSkills()
 {
     for (int i = 0; i < this.mSkillIds.Count; i++)
     {
         SysSkillMainVo skillData = SkillUtility.GetSkillData(this.mSkillIds[i], -1, -1);
         UITexture      component = this.SkillIcons.GetChild(i).GetComponent <UITexture>();
         component.name = this.mSkillIds[i];
         string  skill_icon  = skillData.skill_icon;
         Texture mainTexture = ResourceManager.Load <Texture>(skill_icon, true, true, null, 0, false);
         component.mainTexture = mainTexture;
     }
 }
コード例 #12
0
        public SkillData(string skill_id, int level, int skin)
        {
            SysSkillMainVo skillData = SkillUtility.GetSkillData(skill_id, level, skin);

            this.skillId = skill_id;
            this.config  = skillData;
            if (this.config == null)
            {
                return;
            }
            this.Parse(this.config);
        }
コード例 #13
0
    private void doBuff_Master(string buff_id)
    {
        if (!StringUtils.CheckValid(buff_id))
        {
            return;
        }
        BuffVo buffVo = null;

        if (this.buffList.ContainsKey(buff_id))
        {
            buffVo = this.buffList[buff_id];
        }
        if (buffVo != null)
        {
            if (!this.buffActionList.ContainsKey(buff_id))
            {
                ActionManager.StartBuff(buff_id, this.self, false);
            }
            else
            {
                this.buffActionList[buff_id].Play();
            }
            if (this.IsPropertyBuff(buff_id))
            {
                this.self.dataChange.doBuffWoundAction(buff_id, buffVo.casterUnit, false);
            }
            else
            {
                this.self.dataChange.doSkillWoundAction(buffVo.data.damage_ids, buffVo.casterUnit, true, new float[0]);
            }
            if (StringUtils.CheckValid(buffVo.data.higheff_ids))
            {
                for (int i = 0; i < buffVo.data.higheff_ids.Length; i++)
                {
                    if (!SkillUtility.IsImmunityHighEff(this.self, buffVo.data.higheff_ids[i]))
                    {
                        ActionManager.AddHighEffect(buffVo.data.higheff_ids[i], string.Empty, this.self, buffVo.casterUnit, null, true);
                    }
                }
            }
            if (StringUtils.CheckValid(buffVo.data.buff_ids))
            {
                for (int j = 0; j < buffVo.data.buff_ids.Length; j++)
                {
                    if (!SkillUtility.IsImmunityBuff(this.self, buffVo.data.buff_ids[j]))
                    {
                        ActionManager.AddBuff(buffVo.data.buff_ids[j], this.self, buffVo.casterUnit, true, string.Empty);
                    }
                }
            }
        }
    }
コード例 #14
0
 protected override void doStartHighEffect_Special()
 {
     if (StringUtils.CheckValid(this.data.strParam1) && this.targetUnits != null)
     {
         for (int i = 0; i < this.targetUnits.Count; i++)
         {
             if (this.targetUnits[i] != null && !SkillUtility.IsImmunityBuff(this.targetUnits[i], this.data.strParam1))
             {
                 ActionManager.AddBuff(this.data.strParam1, this.targetUnits[i], base.unit, true, string.Empty);
             }
         }
     }
 }
コード例 #15
0
        private List <DataInfo> GetDataInfos()
        {
            List <DataInfo> list = new List <DataInfo>();

            for (int i = 0; i < this.data.damage_ids.Length; i++)
            {
                DamageData vo = Singleton <DamageDataManager> .Instance.GetVo(this.data.damage_ids[i]);

                if (vo == null)
                {
                    Debug.LogError("没有找到伤害包:错误id" + this.data.damage_ids[i]);
                }
                else if (SkillUtility.DoMoFaMianYi(this.targetUnit, vo))
                {
                    this.targetUnit.jumpFont(JumpFontType.MoFaMianYi, string.Empty, null, true);
                }
                else if (SkillUtility.DoWuDi(this.targetUnit, vo))
                {
                    this.targetUnit.jumpFont(JumpFontType.WuDi, string.Empty, null, true);
                }
                else
                {
                    DataInfo dataInfo = new DataInfo();
                    dataInfo.reverse  = this.isReverse;
                    dataInfo.damageID = this.data.damage_ids[i];
                    if (vo.IsPropertyValue)
                    {
                        dataInfo.key     = vo.property_key;
                        dataInfo.value   = vo.property_value;
                        dataInfo.percent = vo.property_percent;
                        dataInfo.formula = false;
                        list.Add(dataInfo);
                    }
                    else if (vo.IsPropertyFormula)
                    {
                        dataInfo.key     = vo.property_key;
                        dataInfo.value   = FormulaTool.GetFormualValue(vo.property_formula, this.targetUnit);
                        dataInfo.percent = vo.property_percent;
                        dataInfo.formula = true;
                        list.Add(dataInfo);
                    }
                    else
                    {
                        Debug.LogError("DataChange 公式配置错误:既不是IsPropertyValue也不是IsPropertyFormula:错误id" + this.data.damage_ids[i]);
                    }
                }
            }
            return(list);
        }
コード例 #16
0
    public static SysSkillMainVo GetSkillData(SysSkillMainVo mainVo, SysSkillLevelupVo levelupVo, SysSkillSkinVo skinVo)
    {
        if (mainVo == null)
        {
            return(null);
        }
        SysSkillMainVo result = SkillUtility.CopySkillData(ref mainVo);

        if (levelupVo != null)
        {
            SkillUtility.LevelUpImpact(ref result, ref levelupVo);
        }
        if (skinVo != null)
        {
            SkillUtility.SkinImpact(ref result, ref skinVo);
        }
        return(result);
    }
コード例 #17
0
        public void UpdateSkillStudy()
        {
            Units         player       = PlayerControlMgr.Instance.GetPlayer();
            SysHeroMainVo heroMainData = BaseDataMgr.instance.GetHeroMainData(player.npc_id);

            string[] heroSkills = heroMainData.skill_id.Split(new char[]
            {
                ','
            });
            GridHelper.FillGrid <SkillShowItem>(this.mSkillGird, this.mSkillItem, (heroSkills.Length <= 4) ? heroSkills.Length : 4, delegate(int idx, SkillShowItem comp)
            {
                SysSkillMainVo skillData = SkillUtility.GetSkillData(heroSkills[idx], -1, -1);
                Texture textue           = null;
                string type   = (skillData.skill_trigger != 3) ? "(主动)" : "(被动)";
                string unikey = skillData.skill_id + "_lv0" + ((player.getSkillById(skillData.skill_id).skillLevel != 0) ? player.getSkillById(skillData.skill_id).skillLevel : 1).ToString();
                SysSkillLevelupVo dataById = BaseDataMgr.instance.GetDataById <SysSkillLevelupVo>(unikey);
                comp.Init(textue, skillData.skill_name, type, SkillView.FixSkillTxtInfo(BaseDataMgr.instance.GetLanguageData(dataById.skill_description).content, player), !player.skillManager.IsSkillUnlock(skillData.skill_id), (dataById.cd / (1f + player.GetAttr(AttrType.NormalSkillCooling))).ToString("0.0"));
            });
            this.mSkillGird.Reposition();
        }
コード例 #18
0
    public static void AddHighEff(Units selfUnit, SkillDataKey skill_key, SkillPhrase skillPhrase, List <Units> targets = null, Vector3?skillPosition = null)
    {
        if (!StringUtils.CheckValid(skill_key.SkillID))
        {
            return;
        }
        SkillData data = GameManager.Instance.SkillData.GetData(skill_key);

        if (data == null)
        {
            return;
        }
        string[] highEffects = data.GetHighEffects(skillPhrase);
        if (highEffects != null)
        {
            for (int i = 0; i < highEffects.Length; i++)
            {
                string text = highEffects[i];
                switch (skillPhrase)
                {
                case SkillPhrase.Start:
                case SkillPhrase.Init:
                    if (!SkillUtility.IsImmunityHighEff(selfUnit, text))
                    {
                        ActionManager.AddHighEffect(text, skill_key.SkillID, selfUnit, selfUnit, skillPosition, true);
                    }
                    break;

                case SkillPhrase.Hit:
                    for (int j = 0; j < targets.Count; j++)
                    {
                        if (targets[j] != null && targets[j].isLive && !SkillUtility.IsImmunityHighEff(targets[j], text))
                        {
                            ActionManager.AddHighEffect(text, skill_key.SkillID, targets[j], selfUnit, skillPosition, true);
                        }
                    }
                    break;
                }
            }
        }
    }
コード例 #19
0
    public static void AddBuff(Units selfUnit, SkillDataKey skill_key, SkillPhrase trigger, List <Units> targets = null)
    {
        if (!StringUtils.CheckValid(skill_key.SkillID))
        {
            return;
        }
        SkillData data = GameManager.Instance.SkillData.GetData(skill_key);

        if (data == null)
        {
            return;
        }
        string[] buffs = data.GetBuffs(trigger);
        if (buffs != null)
        {
            for (int i = 0; i < buffs.Length; i++)
            {
                string text = buffs[i];
                switch (trigger)
                {
                case SkillPhrase.Start:
                case SkillPhrase.Init:
                    if (!SkillUtility.IsImmunityBuff(selfUnit, text))
                    {
                        ActionManager.AddBuff(text, selfUnit, selfUnit, true, string.Empty);
                    }
                    break;

                case SkillPhrase.Hit:
                    for (int j = 0; j < targets.Count; j++)
                    {
                        if (targets[j] != null && targets[j].isLive && !SkillUtility.IsImmunityBuff(targets[j], text))
                        {
                            ActionManager.AddBuff(text, targets[j], selfUnit, true, string.Empty);
                        }
                    }
                    break;
                }
            }
        }
    }
コード例 #20
0
 protected override void doStartHighEffect_Special()
 {
     if (this.targetUnits != null)
     {
         for (int i = 0; i < this.targetUnits.Count; i++)
         {
             if (this.targetUnits[i] != null && !SkillUtility.IsImmunityHighEff(this.targetUnits[i], this.higheffId))
             {
                 T t = BaseAction.CreateAction <T>();
                 t.targetUnit    = this.targetUnits[i];
                 t.unit          = base.unit;
                 t.higheffId     = this.higheffId;
                 t.skillPosition = this.skillPosition;
                 t.skillId       = this.skillId;
                 t.rotateY       = this.rotateY;
                 t.Play();
                 this.AddAction(t);
             }
         }
     }
 }
コード例 #21
0
ファイル: Skill.cs プロジェクト: midgithub/ProjectC
    bool IsInRange()
    {
        // 自己追敌相信客户端;
        if (!GameController.IsConntrller(Owner))
        {
            return(false);
        }
        Character skillTarget = mSkillContext.SkillTarget;

        if (skillTarget == null)
        {
            return(true);
        }
        float maxDist  = mSkillInfo.maxDistance;
        float distance = SkillUtility.GetDistance(Owner, mSkillContext.SkillTarget, DistanceCalcType.OuterB);

        if (distance > maxDist)
        {
            return(false);
        }
        return(true);
    }
コード例 #22
0
        private void ChangeSkillText(int index)
        {
            SysHeroMainVo heroMainData = BaseDataMgr.instance.GetHeroMainData(this.heroNPC);

            string[] AllSkillName = heroMainData.skill_id.Split(new char[]
            {
                ','
            });
            SysSkillMainVo skillData = SkillUtility.GetSkillData(AllSkillName[index - 1], -1, -1);

            this.skillName.text        = LanguageManager.Instance.GetStringById(skillData.skill_name);
            this.skillDescription.text = LanguageManager.Instance.GetStringById(skillData.skill_description);
            if (skillData.skill_trigger == 3)
            {
                this.activeSkill.gameObject.SetActive(false);
                this.passiveSkill.gameObject.SetActive(true);
                this.passiveSkill.text = LanguageManager.Instance.GetStringById("HeroAltar_Passive");
            }
            else
            {
                this.activeSkill.gameObject.SetActive(true);
                this.passiveSkill.gameObject.SetActive(false);
                this.DealWithActiveSkill(AllSkillName[index - 1]);
            }
            SysSkillDescVo    dataById  = BaseDataMgr.instance.GetDataById <SysSkillDescVo>(AllSkillName[index - 1] + "_lv01");
            SysSkillLevelupVo dataById2 = BaseDataMgr.instance.GetDataById <SysSkillLevelupVo>(AllSkillName[index - 1] + "_lv01");

            this.Lv4.gameObject.SetActive(4 == dataById2.skill_levelmax);
            for (int num = 0; num != this.skillEffectGrid.transform.childCount; num++)
            {
                this.skillEffectGrid.transform.GetChild(num).gameObject.SetActive(true);
            }
            GridHelper.FillGrid <PropViewSkillEffect>(this.skillEffectGrid, this.skillEffect, (dataById != null) ? dataById.effect_num : 0, delegate(int idx, PropViewSkillEffect comp)
            {
                comp.name = index.ToString();
                comp.Init(AllSkillName[index - 1], idx);
            });
            this.skillEffectGrid.Reposition();
        }
コード例 #23
0
ファイル: Skill.cs プロジェクト: midgithub/ProjectC
    bool IsInRange()
    {
        // 主角追敌相信客户端;
        if (Owner.Type == CharacterType.Player)
        {
            return(false);
        }
        Character skillTarget = mSkillContext.SkillTarget;

        if (skillTarget == null)
        {
            return(true);
        }
        float maxDist  = mSkillInfo.maxDistance;
        float distance = SkillUtility.GetDistance(Owner, mSkillContext.SkillTarget, DistanceCalcType.OuterB);

        if (distance > maxDist)
        {
            return(false);
        }
        return(true);
    }
コード例 #24
0
    protected override void AddHighEff(SkillDataKey skill_key, SkillPhrase skillPhrase, List <Units> targets = null, Vector3?skillPosition = null)
    {
        if (!StringUtils.CheckValid(skill_key.SkillID))
        {
            return;
        }
        SkillData data = GameManager.Instance.SkillData.GetData(skill_key);

        string[] highEffects = data.GetHighEffects(skillPhrase);
        if (highEffects != null)
        {
            int curConjureIndex = this.GetCurConjureIndex();
            if (highEffects.Length > curConjureIndex)
            {
                string text = highEffects[curConjureIndex];
                switch (skillPhrase)
                {
                case SkillPhrase.Start:
                case SkillPhrase.Init:
                    if (!SkillUtility.IsImmunityHighEff(this.unit, text))
                    {
                        ActionManager.AddHighEffect(text, data.skillId, this.unit, this.unit, skillPosition, true);
                    }
                    break;

                case SkillPhrase.Hit:
                    for (int i = 0; i < targets.Count; i++)
                    {
                        if (targets[i] != null && targets[i].isLive && !SkillUtility.IsImmunityHighEff(targets[i], text))
                        {
                            ActionManager.AddHighEffect(text, data.skillId, targets[i], this.unit, skillPosition, true);
                        }
                    }
                    break;
                }
            }
        }
    }
コード例 #25
0
ファイル: SKillWindow.cs プロジェクト: zhaocy1217/War-Clash
 public void Initiate()
 {
     SkillEditTempData.copyItem         = null;
     SkillEditTempData.editingItem      = null;
     SkillEditTempData.editingItemCache = null;
     SkillEditTempData.editingSkill     = null;
     Type[] typelist = SkillEditorUtility.GetAllClasses();
     SkillEditorUtility.timeLineTypes.Clear();
     SkillEditorUtility.actionTypes.Clear();
     foreach (Type t in typelist)
     {
         if (typeof(BaseAction).IsAssignableFrom(t))
         {
             SkillEditorUtility.actionTypes.Add(t);
         }
         else if (typeof(TimeLine).IsAssignableFrom(t))
         {
             SkillEditorUtility.timeLineTypes.Add(t);
         }
         else if (typeof(Skill).IsAssignableFrom(t))
         {
             SkillEditorUtility.skillTypes.Add(t);
         }
         else if (typeof(Buff).IsAssignableFrom(t))
         {
             SkillEditorUtility.buffTypes.Add(t);
         }
         else if (typeof(Logic.Skill.Event).IsAssignableFrom(t))
         {
             SkillEditorUtility.eventTypes.Add(t);
         }
     }
     fileInfos.Clear();
     _runtimeOperatePanel = new ERuntimeOperatePanel();
     _actionDetailPanel   = new EShowActionDetailPanel();
     GetFiles(SkillUtility.GetRequiredConfigsPath(), fileInfos, null);
     SkillEditTempData.settingTex = AssetDatabase.LoadAssetAtPath <Texture2D>("Assets/Editor/Image/setting.png");
 }
コード例 #26
0
        protected override void OnSkillDamage(BaseSkillAction action, List <Units> targets)
        {
            this.AddAction(ActionManager.HitSkill(action.skillKey, base.unit, targets, true));
            SkillData data = GameManager.Instance.SkillData.GetData(this.skillKey);

            string[] highEffects = data.GetHighEffects(SkillPhrase.Hit);
            if (highEffects != null && this.skill.GetPreConjureIndex() < highEffects.Length)
            {
                string text = highEffects[this.skill.GetPreConjureIndex()];
                if (StringUtils.CheckValid(text))
                {
                    for (int i = 0; i < targets.Count; i++)
                    {
                        if (targets[i] != null && targets[i].isLive && !SkillUtility.IsImmunityHighEff(targets[i], text))
                        {
                            ActionManager.AddHighEffect(text, this.skill.skillMainId, targets[i], base.unit, this.targetPosition, true);
                        }
                    }
                }
            }
            string[] buffs = data.GetBuffs(SkillPhrase.Hit);
            if (buffs != null && this.skill.GetPreConjureIndex() < buffs.Length)
            {
                string text2 = buffs[this.skill.GetPreConjureIndex()];
                if (StringUtils.CheckValid(text2))
                {
                    for (int j = 0; j < targets.Count; j++)
                    {
                        if (targets[j] != null && targets[j].isLive && !SkillUtility.IsImmunityBuff(targets[j], text2))
                        {
                            ActionManager.AddBuff(text2, targets[j], base.unit, true, string.Empty);
                        }
                    }
                }
            }
            base.OnSkillDamage(action, targets);
        }
コード例 #27
0
 public void PVP_DoStartHighEffect_AttachPerformHighEffect(HighEffInfo info)
 {
     if (this.targetUnits == null)
     {
         return;
     }
     if (this.data.attachHighEffs != null)
     {
         for (int i = 0; i < this.data.attachHighEffs.Length; i++)
         {
             string text = this.data.attachHighEffs[i];
             if (StringUtils.CheckValid(text))
             {
                 for (int j = 0; j < this.targetUnits.Count; j++)
                 {
                     if (!SkillUtility.IsImmunityHighEff(this.targetUnits[j], text))
                     {
                         ActionManager.AddHighEffect(text, this.skillId, this.targetUnits[j], base.unit, null, true);
                     }
                 }
             }
         }
     }
 }
コード例 #28
0
 protected virtual void doStartHighEffect_AttachBuff()
 {
     if (this.targetUnits == null)
     {
         return;
     }
     if (this.data.attachBuffs != null)
     {
         for (int i = 0; i < this.data.attachBuffs.Length; i++)
         {
             string text = this.data.attachBuffs[i];
             if (StringUtils.CheckValid(text))
             {
                 for (int j = 0; j < this.targetUnits.Count; j++)
                 {
                     if (!SkillUtility.IsImmunityBuff(this.targetUnits[j], text))
                     {
                         ActionManager.AddBuff(text, this.targetUnits[j], base.unit, true, string.Empty);
                     }
                 }
             }
         }
     }
 }
コード例 #29
0
    void OnGUI()
    {
        var popups = new List <string>();

        for (int i = 0; i < SkillEditorUtility.skillTypes.Count; i++)
        {
            var type = SkillEditorUtility.skillTypes[i];
            popups.Add(type.FullName);
        }
        for (int i = 0; i < SkillEditorUtility.buffTypes.Count; i++)
        {
            var type = SkillEditorUtility.buffTypes[i];
            popups.Add(type.FullName);
        }
        for (int i = 0; i < SkillEditorUtility.eventTypes.Count; i++)
        {
            var type = SkillEditorUtility.eventTypes[i];
            popups.Add(type.FullName);
        }
        GUILayout.BeginVertical();
        GUILayout.BeginHorizontal();
        GUILayout.Label("名字");
        skillname = GUILayout.TextField(skillname, GUILayout.MinWidth(100));
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal();
        GUILayout.Label("ID");
        id = GUILayout.TextField(id, GUILayout.MinWidth(100));
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal();
        GUILayout.Label("路径");
        skillpath = GUILayout.TextField(skillpath, GUILayout.MinWidth(100));
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal();
        GUILayout.Label("创建类型");
        selectedIndex = EditorGUILayout.Popup(selectedIndex, popups.ToArray());
        //  tgType = (TimelingGroupType)EditorGUILayout.EnumPopup(tgType, GUILayout.MinWidth(100));
        GUILayout.EndHorizontal();
        int id_int = 0;

        if (!string.IsNullOrEmpty(id) && int.TryParse(id, out id_int) && !string.IsNullOrEmpty(skillname) && !string.IsNullOrEmpty(skillpath) && (GUILayout.Button("创建")))
        {
            string                 path     = "";
            TimeLineGroup          tg       = null;
            JsonSerializerSettings settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            };
            Type t = null;
            if (selectedIndex < SkillEditorUtility.skillTypes.Count)
            {
                tgType = TimelingGroupType.SKILL;
                t      = SkillEditorUtility.skillTypes[selectedIndex];
            }
            else if (selectedIndex < (SkillEditorUtility.skillTypes.Count + SkillEditorUtility.buffTypes.Count))
            {
                tgType = TimelingGroupType.BUFF;
                t      = SkillEditorUtility.buffTypes[selectedIndex - SkillEditorUtility.skillTypes.Count];
            }
            else
            {
                tgType = TimelingGroupType.EVENT;
                t      = SkillEditorUtility.eventTypes[selectedIndex - SkillEditorUtility.skillTypes.Count - SkillEditorUtility.buffTypes.Count];
            }
            tg = Create(t);
            if (tgType == TimelingGroupType.SKILL)
            {
                path += "Skills/";
                path += "skill_" + skillpath + ".bytes";
            }
            else if (tgType == TimelingGroupType.BUFF)
            {
                path += "Buffs/";
                path += "buff_" + skillpath + ".bytes";
            }
            else if (tgType == TimelingGroupType.EVENT)
            {
                path += "Events/";
                path += "event_" + skillpath + ".bytes";
            }
            string finalPath = SkillUtility.GetRequiredConfigsPath() + path;
            SkillUtility.SaveTimelineGroup(tg, finalPath);
            SkillUtility.SaveToSkillIndexFile(tg, path);
            skillWindow.OnCreate();
            Close();
        }
        GUILayout.EndVertical();
    }
コード例 #30
0
 public static string getSkillLvUpId(string skillId, int level)
 {
     return(skillId + SkillUtility.sLevelPreFix + SkillUtility.IntToString(level));
 }