// // this should work only each casting phase // void UpdateFightAttr( ) // { // if (FightAttr == null ) // return; // // FightAttr.ClearBase (); // clear base attr only // // // cast attr will add in cast pahse // //// if (FightAttr.SkillData != null) { //// MyTool.AttrSkillEffect( this , FightAttr.SkillData.CastPool , FightAttr.SkillData.CastCond , FightAttr.SkillData.CastCondEffectPool ); //// } // } cAttrData GetAttrData( int idx ) { cAttrData attr; if (Attr.TryGetValue( idx , out attr ) == false ) { attr = new cAttrData(); Attr.Add( idx , attr ); } if (attr == null) { Debug.LogErrorFormat( "GetAttrData err! Unit{0} can't get attr{1} , " , n_CharID ,idx ); } return attr; }
override public void _Attr( cUnitData Atker , cUnitData Defer, ref cAttrData attr ){ attr.f_MAR += fValue; }
override public void _Attr( cUnitData Atker , cUnitData Defer, ref cAttrData attr ){ if ((Atker != null) && ( Defer != null)) { float fDelt = Defer.GetBaseMar() - Atker.GetBaseMar(); fDelt *=fValue; // this is final attr.f_MAR += fDelt; } }
override public void _Attr( cUnitData Atker , cUnitData Defer, ref cAttrData attr ){ attr.fMpCostRate += fValue; }
public virtual void _Attr( cUnitData Atker , cUnitData Defer, ref cAttrData attr ){ }
override public void _Attr( cUnitData Atker , cUnitData Defer, ref cAttrData attr ){ attr.n_MOV += nValue; }
override public void _Attr( cUnitData Atker , cUnitData Defer, ref cAttrData attr ){ if ((Atker != null)) { attr.n_SP += iValue; } }
override public void _Attr( cUnitData Atker , cUnitData Defer, ref cAttrData attr ){ if ((Atker != null) && ( Defer != null)) { float fDelt = Defer.GetBaseAttack() - Atker.GetBaseAttack(); fDelt *=fValue; // this is final attr.n_ATK += (int)fDelt; } }
public void UpdateCondAttr( ref cAttrData attr ) { attr.Reset (); if (Pool.Count == 0) return; cUnitData unit_e = GameDataManager.Instance.GetUnitDateByIdent ( Owner.FightAttr.TarIdent ); foreach( KeyValuePair< int , cBuffData > pair in Pool ) { cUnitData unit = null ; if( pair.Value.nTargetIdent > 0 ){ unit = GameDataManager.Instance.GetUnitDateByIdent ( pair.Value.nTargetIdent ); } else { unit = unit_e; } //if( MyScript.Instance.CheckSkillCond( pair.Value.tableData.s_BUFF_CONDITON , this.Owner , unit_e ) == true ) if( pair.Value.Condition.Check( this.Owner , unit , pair.Value.nSkillID , pair.Value.nID ) ) { foreach( cEffect eft in pair.Value.ConditionEffectPool ) { if( eft != null ) { eft._Attr( Owner , unit , ref attr ); } } } } }
public void UpdateAttr( ref cAttrData attr ) { attr.Reset (); if (Pool.Count == 0) return; cUnitData unit_e = GameDataManager.Instance.GetUnitDateByIdent ( Owner.FightAttr.TarIdent ); foreach( KeyValuePair< int , cBuffData > pair in Pool ) { cUnitData unit = null ; if( pair.Value.nTargetIdent > 0 ){ unit = GameDataManager.Instance.GetUnitDateByIdent ( pair.Value.nTargetIdent ); } else { unit = unit_e; } foreach( cEffect eft in pair.Value.EffectPool ) { if( eft != null ) { eft._Attr( Owner , unit , ref attr ); } } } }