示例#1
0
 public void Init(EditorUnit unit, string _skillId)
 {
     this.skillid  = _skillId;
     this.unit     = unit;
     this.data     = new SkillData(_skillId, 1, 0);
     this.skillKey = new SkillDataKey(this.skillid, 1, 0);
 }
    private void DoInsert(string skillID, int level, int skin)
    {
        SkillDataKey key = new SkillDataKey(skillID, level, skin);

        if (!this.mDataPool.ContainsKey(key))
        {
            this.mDataPool.Add(key, new SkillData(skillID, level, skin));
        }
    }
 protected override void doStartHighEffect_Perform()
 {
     if (this.performIds != null)
     {
         for (int i = 0; i < this.performIds.Length; i++)
         {
             if (this.targetUnits != null && this.targetUnits.Count > 0)
             {
                 SkillDataKey skill_key = new SkillDataKey(this.skillId, 1, 0);
                 ActionManager.PlayPerformMustntLive(skill_key, this.performIds[i], this.targetUnits[0], this.targetUnits, null, true, this, base.unit);
             }
         }
     }
 }
    public SkillData GetData(SkillDataKey skillKey)
    {
        SkillData result;

        if (this.mDataPool.TryGetValue(skillKey, out result))
        {
            return(result);
        }
        this.InsertData(skillKey.SkillID, skillKey.Skin);
        if (this.mDataPool.TryGetValue(skillKey, out result))
        {
            return(result);
        }
        return(null);
    }
    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;
                }
            }
        }
    }
    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;
                }
            }
        }
    }
示例#7
0
 private void OnResetBtn(GameObject go)
 {
     if (LevelManager.Instance.CheckSceneIsTest())
     {
         if (LevelManager.Instance.IsServerZyBattleType)
         {
             return;
         }
         GameObject gameObject = GameObject.FindGameObjectWithTag("Player");
         if (gameObject != null)
         {
             Units       component = gameObject.GetComponent <Units>();
             UtilCounter counter   = UtilManager.Instance.GetCounter(UtilType.Exp);
             ExpValue    expValue  = counter.GetValue(PlayerControlMgr.Instance.GetPlayer().unique_id) as ExpValue;
             expValue.AddExp(-expValue.CurExp);
             component.skillManager.SkillPointsLeft = 0;
             for (int i = 0; i < 4; i++)
             {
                 List <SkillDataKey> skillsByIndex = component.getSkillsByIndex(i);
                 if (skillsByIndex != null)
                 {
                     for (int j = 0; j < skillsByIndex.Count; j++)
                     {
                         skillsByIndex[j] = new SkillDataKey(skillsByIndex[j].SkillID, 0, skillsByIndex[j].Skin);
                         Skill skillById = component.getSkillById(skillsByIndex[j].SkillID);
                         if (skillById != null)
                         {
                             skillById.SetLevel(0);
                         }
                     }
                 }
             }
             SkillCounter skillCounter = UtilManager.Instance.GetCounter(UtilType.Skill) as SkillCounter;
             skillCounter.OnHeroLevelup(component, 0);
             component.level = 1;
             component.UpLevel();
             CtrlManager.CloseWindow(WindowID.SkillView);
             CtrlManager.OpenWindow(WindowID.SkillView, null);
         }
     }
 }
示例#8
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;
                }
            }
        }
    }
 protected override void OnSkillPhase3End(SkillDataKey skill_key)
 {
     base.OnSkillPhase3End(skill_key);
     this.Switch();
 }
示例#10
0
        private void DoEventDispatch(SkillDataKey skill_key, Units targetUnit, Units casterUnit)
        {
            if (targetUnit == null || casterUnit == null)
            {
                return;
            }
            SkillData data = GameManager.Instance.SkillData.GetData(skill_key);

            if (data == null)
            {
                return;
            }
            Skill skillOrAttackById = casterUnit.getSkillOrAttackById(data.skillId);

            if (skillOrAttackById == null)
            {
                return;
            }
            if (skillOrAttackById.IsAttack)
            {
                targetUnit.SetAttackedYouTarget(casterUnit);
                Singleton <TriggerManager> .Instance.SendUnitStateEvent(UnitEvent.UnitAttackHitOther, casterUnit, null, null);
            }
            if (skillOrAttackById.IsSkill)
            {
                if (targetUnit.unique_id != base.unit.unique_id)
                {
                    casterUnit.SetSkillHitedTarget(targetUnit);
                }
                if (casterUnit.isEnemy)
                {
                    targetUnit.SetSkillHitedYouTarget(casterUnit);
                }
                Singleton <TriggerManager> .Instance.SendUnitStateEvent(UnitEvent.UnitSkillHitOther, casterUnit, null, null);

                if (skillOrAttackById.skillIndex != 3)
                {
                    Singleton <TriggerManager> .Instance.SendUnitStateEvent(UnitEvent.UnitConjureQWE_HitOther, casterUnit, null, null);
                }
            }
            Singleton <TriggerManager> .Instance.SendUnitStateEvent(UnitEvent.UnitHit, targetUnit, null, null);

            if (skillOrAttackById.IsAttack)
            {
                Singleton <TriggerManager> .Instance.SendUnitStateEvent(UnitEvent.UnitBeAttackHit, targetUnit, null, null);
            }
            if (skillOrAttackById.IsSkill)
            {
                Singleton <TriggerManager> .Instance.SendUnitStateEvent(UnitEvent.UnitBeSkillHit, targetUnit, null, null);
            }
            if (StringUtils.CheckValid(base.unit.attackForTargetBuff))
            {
                ActionManager.AddBuff(base.unit.attackForTargetBuff, targetUnit, casterUnit, true, string.Empty);
                casterUnit.attackForTargetBuff = string.Empty;
            }
            if (!casterUnit.isLocalUnit && targetUnit != null && targetUnit.isLocalUnit)
            {
                if (casterUnit.m_nVisibleState >= 2)
                {
                    casterUnit.m_fVisibleTimer = 3f;
                }
                if (GlobalSettings.FogMode == 1)
                {
                    if (casterUnit != null && FogMgr.Instance.IsInFog(casterUnit) && targetUnit.isLocalUnit)
                    {
                        FogMgr.Instance.AddFogItem(casterUnit, 1f, 3f);
                    }
                }
                else if (GlobalSettings.FogMode >= 2 && casterUnit != null && !FOWSystem.Instance.IsVisible(casterUnit.transform.position) && targetUnit.isLocalUnit)
                {
                    FOWSystem.CreateStaticTimeRevealer(casterUnit.transform.position, 1f, 3f);
                }
            }
            if (targetUnit == PlayerControlMgr.Instance.GetPlayer())
            {
                Singleton <TriggerManager> .Instance.SendGameStateEvent(GameEvent.MainPlayerHitted);
            }
        }
 protected void AddBuff(SkillDataKey skill_key, SkillPhrase skillPhrase, List <Units> targets = null)
 {
     SkillUtility.AddBuff(base.unit, this.skillKey, skillPhrase, targets);
 }
 protected void AddHighEff(SkillDataKey skill_key, SkillPhrase skillPhrase, List <Units> targets = null, Vector3?skillPosition = null)
 {
     SkillUtility.AddHighEff(base.unit, this.skillKey, skillPhrase, targets, skillPosition);
 }
示例#13
0
    public SkillData GetData(string skillID, int level = 0, int skin = 0)
    {
        SkillDataKey skillKey = new SkillDataKey(skillID, level, skin);

        return(this.GetData(skillKey));
    }
 public override void StartCastSkill(SkillDataKey skill_key)
 {
     this.hitList.Clear();
     base.StartCastSkill(skill_key);
 }
 public override void StartCastSkill(SkillDataKey skill_key)
 {
     this._DoStartCastSkill(skill_key);
     GlobalObject.Instance.StartCoroutine(this._StartCastSkillEnumerator(skill_key));
 }
 private IEnumerator _StartCastSkillEnumerator(SkillDataKey skill_key)
 {
     Skill_ShiRenMo_01.< _StartCastSkillEnumerator > c__Iterator98 <_StartCastSkillEnumerator> c__Iterator = new Skill_ShiRenMo_01.< _StartCastSkillEnumerator > c__Iterator98();