Пример #1
0
        public override void InitBuff(BuffInfoRecord buffRecord, FightObj_Player sender, FightObj_Player reciver)
        {
            _ImpactRecord = TableReader.BuffImpact_ModifyValueLast.GetRecord(buffRecord.Impact.ID);

            if (_ImpactRecord == null)
            {
                return;
            }

            if (_ImpactRecord.TargetValue == PLAYER_VALUE_TYPE.EVALUATION)
            {
                ErrorManager.PushAndDisplayError("BuffImpact_ModifyValueLast TargetValue Cant modify last!! " + _ImpactRecord.TargetValue.ToString());
                return;
            }

            int sourceValue = 0;

            if (_ImpactRecord.SourceType == SKILL_TARGET_TYPE.Self)
            {
                sourceValue = sender.GetValue(_ImpactRecord.SourceValue);
            }
            else if (_ImpactRecord.SourceType == SKILL_TARGET_TYPE.Enemy)
            {
                sourceValue = sender.GetValue(_ImpactRecord.SourceValue);
            }
            else if (_ImpactRecord.ModifyType == IMPACT_MODIFY_TYPE.FIXED)
            {
                sourceValue = (int)_ImpactRecord.ModifyValue;
            }

            if (_ImpactRecord.ModifyType == IMPACT_MODIFY_TYPE.PERSEND)
            {
                sourceValue = (int)(sourceValue * _ImpactRecord.ModifyValue);
            }

            if (_ImpactRecord.TargetValue != PLAYER_VALUE_TYPE.EVALUATION)
            {
                _ModifiedValue = reciver.AddValue(_ImpactRecord.TargetValue, sourceValue);
            }
        }
Пример #2
0
        public override void Calculate(GirlMemberInfo girl, GuestInfoRecord guest, BuffInfoRecord buff, int orgAttract, int orgPoint, out int outAttract, out int outPoint)
        {
            Impact_ModifyCulRecord impactRecord = TableReader.Impact_ModifyCul.GetRecord(buff.Impact.ID);

            int valueAttract = 0;
            int valuePoint   = 0;

            outAttract = orgAttract;
            outPoint   = orgPoint;
            switch (impactRecord.ActTarget)
            {
            case IMPACT_MODIFY_TARGET.ATTR1A:
                valueAttract = (int)(girl.Attr1A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr1AAttract);
                valuePoint   = (int)(girl.Attr1A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr1APoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR1B:
                valueAttract = (int)(girl.Attr1B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr1BAttract);
                valuePoint   = (int)(girl.Attr1B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr1BPoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR2A:
                valueAttract = (int)(girl.Attr2A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2AAttract);
                valuePoint   = (int)(girl.Attr2A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2APoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR2B:
                valueAttract = (int)(girl.Attr2B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2BAttract);
                valuePoint   = (int)(girl.Attr2B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2BPoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR3A:
                valueAttract = (int)(girl.Attr2A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2AAttract);
                valuePoint   = (int)(girl.Attr2A * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr2APoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTR3B:
                valueAttract = (int)(girl.Attr3B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr3BAttract);
                valuePoint   = (int)(girl.Attr3B * ((impactRecord.ActPersent) * 0.0001f) * guest.Attr3BPoint);
                outAttract  += valueAttract;
                outPoint    += valuePoint;
                break;

            case IMPACT_MODIFY_TARGET.ATTRACK:
                valueAttract = (int)(orgAttract * ((impactRecord.ActPersent + 10000) * 0.0001f));
                outAttract   = valueAttract;
                break;

            case IMPACT_MODIFY_TARGET.POINT:
                valuePoint = (int)(orgPoint * ((impactRecord.ActPersent + 10000) * 0.0001f));
                outPoint   = valuePoint;
                break;
            }
        }
Пример #3
0
        public void Calculate(GirlMemberInfo girl, GuestInfoRecord guest, BuffInfoRecord buffRecord, int orgAttract, int orgPoint, out int outAttract, out int outPoint)
        {
            var buffBase = (BuffImpact_Base)System.Activator.CreateInstance(System.Type.GetType("GameLogic." + buffRecord.Impact.TableName));

            buffBase.Calculate(girl, guest, buffRecord, orgAttract, orgPoint, out outAttract, out outPoint);
        }
Пример #4
0
 public virtual void Calculate(GirlMemberInfo girl, GuestInfoRecord guest, BuffInfoRecord buff, int orgAttract, int orgPoint, out int outAttract, out int outPoint)
 {
     outAttract = orgAttract;
     outPoint   = orgPoint;
 }
Пример #5
0
 public override void InitBuff(BuffInfoRecord buffRecord, FightObj_Player sender, FightObj_Player reciver)
 {
     _ImpactRecord = TableReader.BuffImpact_ModifyAttract.GetRecord(buffRecord.Impact.ID);
 }