Пример #1
0
 public void OnAttackPostJet(EffectCast cast)
 {
     foreach (EffectCast buff in myBuffActives[BuffActiveType.ACTIVE_ATTACK_POST_JET])
     {
         BuffProcessor.ApplyBuff(buff, cast);
     }
 }
Пример #2
0
        public void OnTurnBegin()
        {
            foreach (EffectCast buff in myBuffActives[BuffActiveType.ACTIVE_BEGINTURN])
            {
                BuffProcessor.ApplyBuff(buff);
            }

            foreach (EffectCast buff in myBuffDecrements[BuffDecrementType.TYPE_BEGINTURN])
            {
                buff.Duration -= 1;

                if (buff.Duration <= 0)
                {
                    BuffProcessor.RemoveBuff(buff);

                    foreach (BuffActiveType active in myBuffActives.Keys)
                    {
                        if (myBuffActives[active].Contains(buff))
                        {
                            myBuffActives[active].Remove(buff);
                            break;
                        }
                    }
                }
            }

            myBuffDecrements[BuffDecrementType.TYPE_BEGINTURN].RemoveAll(x => x.Duration <= 0);
        }
Пример #3
0
 public void OnAttackedAfterJet(EffectCast cast)
 {
     foreach (EffectCast buff in myBuffActives[BuffActiveType.ACTIVE_ATTACKED_AFTER_JET])
     {
         BuffProcessor.ApplyBuff(buff, cast);
     }
 }
Пример #4
0
        public void OnMoveEnd()
        {
            foreach (EffectCast buff in myBuffActives[BuffActiveType.ACTIVE_ENDMOVE])
            {
                BuffProcessor.ApplyBuff(buff);
            }

            foreach (EffectCast buff in myBuffDecrements[BuffDecrementType.TYPE_ENDMOVE])
            {
                buff.Duration -= 1;

                if (buff.Duration <= 0)
                {
                    BuffProcessor.RemoveBuff(buff);

                    foreach (BuffActiveType active in myBuffActives.Keys)
                    {
                        if (myBuffActives[active].Contains(buff))
                        {
                            myBuffActives[active].Remove(buff);
                            return;
                        }
                    }
                }
            }

            myBuffDecrements[BuffDecrementType.TYPE_ENDMOVE].RemoveAll(x => x.Duration <= 0);
        }
Пример #5
0
	public BuffElement(Msg_CharBuff_Body _body, BuffProcessor _owner, bool _effect)
	{
		m_CurId = s_Index++;
		
		m_Owner = _owner.Owner;
		m_Processor = _owner;
		
		m_Body = _body;
		
		m_BuffType = _body.type_;
		m_Activated = _effect;
		
		int effectIdx = int.MaxValue;	
		if(BuffBaseMgr.s_MonsterSkillIndexRange_Min <= _body.skillTableIdx_ && _body.skillTableIdx_ <= BuffBaseMgr.s_MonsterSkillIndexRange_Max)
		{
			#region - set skill name -
			Tbl_MonsterSkill_Record skillRecord = AsTableManager.Instance.GetTbl_MonsterSkill_Record(_body.skillTableIdx_);
			SetSkillData(skillRecord);
			#endregion
			
//			Tbl_MonsterSkillLevel_Record skill = AsTableManager.Instance.GetTbl_MonsterSkillLevel_Record(_body.skillLevel_, _body.skillTableIdx_);
			Tbl_MonsterSkillLevel_Record skill = AsTableManager.Instance.GetTbl_MonsterSkillLevel_Record(_body.skillLevelTableIdx_);
			
			try{
				effectIdx = skill.listSkillLevelPotency[_body.potencyIdx_].Potency_EffectIndex;
				m_SkillLevelPotency = skill.listSkillLevelPotency[_body.potencyIdx_];
			}
			catch(System.Exception e)
			{
				Debug.LogError(e);
			}
		}
		else
		{
			#region - set skill name -
			Tbl_Skill_Record skillRecord = AsTableManager.Instance.GetTbl_Skill_Record(_body.skillTableIdx_);
			SetSkillData(skillRecord);
			#endregion
			
			Tbl_SkillLevel_Record skill = null;
			
			if(_body.chargeStep_ == int.MaxValue)
			{
				skill = AsTableManager.Instance.GetTbl_SkillLevel_Record(_body.skillLevel_, _body.skillTableIdx_);
			}
			else
			{
				skill = AsTableManager.Instance.GetTbl_SkillLevel_Record(_body.skillLevel_, _body.skillTableIdx_, _body.chargeStep_);
			}
						
			effectIdx = skill.listSkillLevelPotency[_body.potencyIdx_].Potency_EffectIndex;
			m_SkillLevelPotency = skill.listSkillLevelPotency[_body.potencyIdx_];
		}
		
		m_SkillIdx = _body.skillTableIdx_;
		m_PotencyIdx = _body.potencyIdx_;
		m_Record = AsTableManager.Instance.GetTbl_SkillPotencyEffect_Record(effectIdx);
	}
Пример #6
0
	public ElementProcessor(AsBaseEntity _entity)
	{
		m_Owner = _entity;
		
		m_Effect = new EffectProcessor(_entity);
		m_Sound = new SoundProcessor(_entity);		
		m_Potency = new PotencyProcessor(_entity);		
		m_Buff = new BuffProcessor(_entity);
	}
Пример #7
0
        public void Debuff()
        {
            foreach (BuffDecrementType decrement in myBuffDecrements.Keys)
            {
                foreach (EffectCast buff in myBuffDecrements[decrement])
                {
                    if (IsDebuffable(buff))
                    {
                        BuffProcessor.RemoveBuff(buff);
                    }
                }

                myBuffDecrements[decrement].RemoveAll(x => IsDebuffable(x));
            }

            foreach (BuffActiveType active in myBuffActives.Keys)
            {
                myBuffActives[active].RemoveAll(x => IsDebuffable(x));
            }
        }
Пример #8
0
	public BuffElement(Msg_NpcBuff_Body _body, BuffProcessor _owner, bool _effect)
	{
		m_CurId = s_Index++;
		
		m_Owner = _owner.Owner;
		m_Processor = _owner;
		
		m_BuffType = _body.type_;
		m_Activated = _effect;
		
		int effectIdx = int.MaxValue;	
		if(BuffBaseMgr.s_MonsterSkillIndexRange_Min <= _body.skillTableIdx_ && _body.skillTableIdx_ <= BuffBaseMgr.s_MonsterSkillIndexRange_Max)
		{
			#region - set skill name -
			Tbl_MonsterSkill_Record skillRecord = AsTableManager.Instance.GetTbl_MonsterSkill_Record(_body.skillTableIdx_);
			SetSkillData(skillRecord);
			#endregion
			
//			Tbl_MonsterSkillLevel_Record skill = AsTableManager.Instance.GetTbl_MonsterSkillLevel_Record(_body.skillLevel_, _body.skillTableIdx_);
			Tbl_MonsterSkillLevel_Record skill = AsTableManager.Instance.GetTbl_MonsterSkillLevel_Record(_body.skillLevelTableIdx_);
			if( null == skill )
			{
				AsUtil.ShutDown ( "BuffProcessor::BuffElement()[ (GetTbl_MonsterSkillLevel_Record) null == skill ] skill id : " + _body.skillTableIdx_ + " skill level : " + _body.skillLevel_ );
				return;
			}
			effectIdx = skill.listSkillLevelPotency[_body.potencyIdx_].Potency_EffectIndex;
			m_SkillLevelPotency = skill.listSkillLevelPotency[_body.potencyIdx_];
		}
		else
		{
			#region - set skill name -
			Tbl_Skill_Record skillRecord = AsTableManager.Instance.GetTbl_Skill_Record(_body.skillTableIdx_);
			SetSkillData(skillRecord);
			#endregion
			
			Tbl_SkillLevel_Record skill = null;
			
			if(_body.chargeStep_ == int.MaxValue)
			{
				skill = AsTableManager.Instance.GetTbl_SkillLevel_Record(_body.skillLevel_, _body.skillTableIdx_);
			}
			else
			{
				skill = AsTableManager.Instance.GetTbl_SkillLevel_Record(_body.skillLevel_, _body.skillTableIdx_, _body.chargeStep_);
			}
			
			if( null == skill )
			{
				AsUtil.ShutDown ( "BuffProcessor::BuffElement()[ (GetTbl_SkillLevel_Record) null == skill ] skill id : " + _body.skillTableIdx_ + " skill level : " + _body.skillLevel_ );
				return;
			}
			effectIdx = skill.listSkillLevelPotency[_body.potencyIdx_].Potency_EffectIndex;
			m_SkillLevelPotency = skill.listSkillLevelPotency[_body.potencyIdx_];
		}
		
		m_SkillIdx = _body.skillTableIdx_;
		m_PotencyIdx = _body.potencyIdx_;
		m_Record = AsTableManager.Instance.GetTbl_SkillPotencyEffect_Record(effectIdx);
	}
Пример #9
0
	public BuffElement(body2_SC_CHAR_BUFF _body, BuffProcessor _owner, bool _effect)
	{
		m_CurId = s_Index++;
		
		m_Owner = _owner.Owner;
		m_Processor = _owner;
		
		m_BuffType = _body.eType;
		m_Activated = _effect;
		
		int effectIdx = int.MaxValue;		
		if(BuffBaseMgr.s_MonsterSkillIndexRange_Min <= _body.nSkillTableIdx && _body.nSkillTableIdx <= BuffBaseMgr.s_MonsterSkillIndexRange_Max)
		{
			#region - set skill name -
			Tbl_MonsterSkill_Record skillRecord = AsTableManager.Instance.GetTbl_MonsterSkill_Record(_body.nSkillTableIdx);
			SetSkillData(skillRecord);
			#endregion
			
//			Tbl_MonsterSkillLevel_Record skill = AsTableManager.Instance.GetTbl_MonsterSkillLevel_Record(_body.nSkillLevel, _body.nSkillTableIdx);
			Tbl_MonsterSkillLevel_Record skill = AsTableManager.Instance.GetTbl_MonsterSkillLevel_Record(_body.nSkillLevelTableIdx);
			effectIdx = skill.listSkillLevelPotency[_body.nPotencyIdx].Potency_EffectIndex;
			m_SkillLevelPotency = skill.listSkillLevelPotency[_body.nPotencyIdx];
		}
		else
		{
			#region - set skill name -
			Tbl_Skill_Record skillRecord = AsTableManager.Instance.GetTbl_Skill_Record(_body.nSkillTableIdx);
			SetSkillData(skillRecord);
			#endregion
			
			Tbl_SkillLevel_Record skill = null;
			
			if(_body.nChargeStep == int.MaxValue)
			{
				skill = AsTableManager.Instance.GetTbl_SkillLevel_Record(_body.nSkillLevel, _body.nSkillTableIdx);
			}
			else
			{
				skill = AsTableManager.Instance.GetTbl_SkillLevel_Record(_body.nSkillLevel, _body.nSkillTableIdx, _body.nChargeStep);
			}
			
//			Tbl_SkillLevel_Record skill = AsTableManager.Instance.GetTbl_SkillLevel_Record(_body.nSkillLevel, _body.nSkillTableIdx);
			effectIdx = skill.listSkillLevelPotency[_body.nPotencyIdx].Potency_EffectIndex;
			m_SkillLevelPotency = skill.listSkillLevelPotency[_body.nPotencyIdx];
		}
		
		m_SkillIdx = _body.nSkillTableIdx;
		m_PotencyIdx = _body.nPotencyIdx;
		m_Record = AsTableManager.Instance.GetTbl_SkillPotencyEffect_Record(effectIdx);
	}