예제 #1
0
파일: DodgeDamage.cs 프로젝트: c2001324/Leo
 public DodgeData(float chance, DamageSource source, DamageType type, CheckDamageDelegate customHandle)
 {
     this.chance       = chance;
     this.source       = source;
     this.type         = type;
     this.customHandle = customHandle;
 }
예제 #2
0
    public DamageResistValue(DamageType type, DamageSource source, float value, CheckDamageDelegate handle)
    {
        m_Value  = value;
        m_Handle = handle;

        damageType   = type;
        damageSource = source;
    }
예제 #3
0
 public DamageGainValue(DamageType type, DamageSource source, DamageGainValueType valueType, float value, GetCustomDamageGainDelegate customDamageHandle, CheckDamageDelegate checkDamageHandle)
 {
     m_Value                      = value;
     m_GainValueType              = valueType;
     m_CheckDamageHandle          = checkDamageHandle;
     m_GetCustomDamageValueHandle = customDamageHandle;
     m_DamageType                 = type;
     m_DamageSource               = source;
 }
예제 #4
0
 public ShieldData(ValueType valueType, float value, int blockCount, DamageType type, DamageSource source, CheckDamageDelegate handle)
 {
     this.valueType  = valueType;
     this.value      = value;
     this.blockCount = blockCount;
     m_Handle        = handle;
     remaingingCount = blockCount;
     damageType      = type;
     damageSource    = source;
 }
예제 #5
0
    public void AddValue(object effect, DamageGainValueType valueType, float value, GetCustomDamageGainDelegate customGetDamageHandle, DamageType damageType, DamageSource damageSource, CheckDamageDelegate checkDamageHandle)
    {
        DamageGainValue data = new DamageGainValue(damageType, damageSource, valueType, value, customGetDamageHandle, checkDamageHandle);

        if (valueType == DamageGainValueType.DamagePoint || valueType == DamageGainValueType.Custom)
        {
            if (m_PointAndCustomValueDict.ContainsKey(effect))
            {
                m_PointAndCustomValueDict[effect] = data;
            }
            else
            {
                m_PointAndCustomValueDict.Add(effect, data);
            }
        }
        else
        {
            if (m_PercentValueDict.ContainsKey(effect))
            {
                m_PercentValueDict[effect] = data;
            }
            else
            {
                m_PercentValueDict.Add(effect, data);
            }
        }
    }
예제 #6
0
파일: DodgeDamage.cs 프로젝트: c2001324/Leo
 public void SetDodge(object effect, float chance, DamageSource source, DamageType type, CheckDamageDelegate customHandle)
 {
     if (m_Datas.ContainsKey(effect))
     {
         m_Datas[effect] = new DodgeData(chance, source, type, customHandle);
     }
     else
     {
         m_Datas.Add(effect, new DodgeData(chance, source, type, customHandle));
     }
 }
예제 #7
0
파일: DamageBlock.cs 프로젝트: c2001324/Leo
 public BlockData(DamageType type, DamageSource source, CheckDamageDelegate handle)
 {
     m_Handle       = handle;
     m_DamageType   = type;
     m_DamageSource = source;
 }
예제 #8
0
파일: DamageBlock.cs 프로젝트: c2001324/Leo
    public void AddBlock(object key, DamageType damageType, DamageSource damageSource, CheckDamageDelegate handle)
    {
        BlockData data = new BlockData(damageType, damageSource, handle);

        if (m_BlockDatas.ContainsKey(key))
        {
            m_BlockDatas[key] = data;
        }
        else
        {
            m_BlockDatas.Add(key, data);
        }
    }
예제 #9
0
    public ShieldData AddShield(object effect, ValueType valueType, float value, int blockCount, DamageType damageType, DamageSource damageSource, CheckDamageDelegate handle)
    {
        ShieldData data = new ShieldData(valueType, value, blockCount, damageType, damageSource, handle);

        if (valueType == ValueType.Point)
        {
            if (m_PointValue.ContainsKey(effect))
            {
                m_PointValue[effect] = data;
            }
            else
            {
                m_PointValue.Add(effect, data);
            }
        }
        else
        {
            if (m_PercentValue.ContainsKey(effect))
            {
                m_PercentValue[effect] = data;
            }
            else
            {
                m_PercentValue.Add(effect, data);
            }
        }
        return(data);
    }
예제 #10
0
 public MarkData(T mark, CheckDamageDelegate condition = null)
 {
     this.mark   = mark;
     m_Condition = condition;
 }
예제 #11
0
 public void AddMark(IPropertyController effect, OperatorType type, DamageMark mark, CheckDamageDelegate condition = null)
 {
     if (mark != DamageMark.None)
     {
         if (type == OperatorType.Add && !m_AddMark.ContainsKey(effect))
         {
             m_AddMark.Add(effect, new MarkData <DamageMark>(mark, condition));
         }
         else if (type == OperatorType.Remove && !m_RemoveMark.ContainsKey(effect))
         {
             m_RemoveMark.Add(effect, new MarkData <DamageMark>(mark, condition));
         }
     }
 }
예제 #12
0
 public void Reset()
 {
     m_Value  = 0;
     m_Handle = null;
 }
예제 #13
0
 public void AddResistValue(object effect, ValueType valueType, float value, DamageType damageType, DamageSource damageSource, CheckDamageDelegate handle)
 {
     if (valueType == ValueType.Point)
     {
         if (m_ResistPointValue.ContainsKey(effect))
         {
             m_ResistPointValue[effect] = new DamageResistValue(damageType, damageSource, value, handle);
         }
         else
         {
             m_ResistPointValue.Add(effect, new DamageResistValue(damageType, damageSource, value, handle));
         }
     }
     else
     {
         if (m_ResistPercentValue.ContainsKey(effect))
         {
             m_ResistPercentValue[effect] = new DamageResistValue(damageType, damageSource, value, handle);
         }
         else
         {
             m_ResistPercentValue.Add(effect, new DamageResistValue(damageType, damageSource, value, handle));
         }
     }
 }