protected override object this[string index] { get { #region switch (index) { case "AbilityID": return(AbilityID); case "AbilityName": return(AbilityName); case "AttackType": return(AttackType); case "AbilityProperty": return(AbilityProperty); case "AttackUnit": return(AttackUnit); case "AttackTaget": return(AttackTaget); case "RatioNum": return(RatioNum); case "IsIncrease": return(IsIncrease); case "HitPercent": return(HitPercent); case "IsCorrect": return(IsCorrect); case "IsIncreaseCorrect": return(IsIncreaseCorrect); case "AbilityType": return(AbilityType); case "BaseEffectNum": return(BaseEffectNum); case "IncreaseNum": return(IncreaseNum); case "EffectCount": return(EffectCount); case "RatioIncreaseNum": return(RatioIncreaseNum); case "EffectDesc": return(EffectDesc); case "AbilityDesc": return(AbilityDesc); case "IsMove": return(IsMove); case "EffectID1": return(EffectID1); case "EffectID2": return(EffectID2); case "Version": return(Version); case "AbilityStyle": return(AbilityStyle); case "HeadID": return(HeadID); case "DemandLv": return(DemandLv); case "ChangeAbility": return(ChangeAbility); case "AfterAbility": return(AfterAbility); case "MaxHeadID": return(MaxHeadID); case "Probability": return(Probability); case "FntHeadID": return(FntHeadID); case "IsActive": return(IsActive); case "AbilityQuality": return(AbilityQuality); default: throw new ArgumentException(string.Format("AbilityInfo index[{0}] isn't exist.", index)); } #endregion } set { #region switch (index) { case "AbilityID": _AbilityID = value.ToInt(); break; case "AbilityName": _AbilityName = value.ToNotNullString(); break; case "AttackType": _AttackType = value.ToEnum <AttackType>(); break; case "AbilityProperty": _AbilityProperty = value.ToEnum <AbilityProperty>(); break; case "AttackUnit": _AttackUnit = value.ToEnum <AttackUnit>(); break; case "AttackTaget": _AttackTaget = value.ToEnum <AttackTaget>(); break; case "RatioNum": _RatioNum = value.ToDecimal(); break; case "IsIncrease": _IsIncrease = value.ToBool(); break; case "HitPercent": _HitPercent = value.ToDecimal(); break; case "IsCorrect": _IsCorrect = value.ToBool(); break; case "IsIncreaseCorrect": _IsIncreaseCorrect = value.ToBool(); break; case "AbilityType": _AbilityType = value.ToNotNullString(); break; case "BaseEffectNum": _BaseEffectNum = value.ToNotNullString(); break; case "IncreaseNum": _IncreaseNum = value.ToNotNullString(); break; case "EffectCount": _EffectCount = value.ToShort(); break; case "RatioIncreaseNum": _RatioIncreaseNum = value.ToDecimal(); break; case "EffectDesc": _EffectDesc = value.ToNotNullString(); break; case "AbilityDesc": _AbilityDesc = value.ToNotNullString(); break; case "IsMove": _IsMove = value.ToBool(); break; case "EffectID1": _EffectID1 = value.ToNotNullString(); break; case "EffectID2": _EffectID2 = value.ToNotNullString(); break; case "Version": _Version = value.ToInt(); break; case "AbilityStyle": _AbilityStyle = value.ToShort(); break; case "HeadID": _HeadID = value.ToNotNullString(); break; case "DemandLv": _DemandLv = value.ToShort(); break; case "ChangeAbility": _ChangeAbility = value.ToEnum <AbilityType>(); break; case "AfterAbility": _AfterAbility = value.ToEnum <AbilityType>(); break; case "MaxHeadID": _MaxHeadID = value.ToNotNullString(); break; case "Probability": _Probability = value.ToDecimal(); break; case "FntHeadID": _FntHeadID = value.ToNotNullString(); break; case "IsActive": _IsActive = value.ToShort(); break; case "AbilityQuality": _AbilityQuality = value.ToInt(); break; default: throw new ArgumentException(string.Format("AbilityInfo index[{0}] isn't exist.", index)); } #endregion } }
/// <summary> /// 获取攻击单位 /// </summary> /// <param name="position">攻击方的位置</param> /// <param name="attackType">攻击方式</param> /// <param name="attackTaget">攻击目标</param> /// <param name="targetEmbattle"></param> private static CombatGeneral[] GetTargetUnit(int position, AttackUnit attackType, AttackTaget attackTaget, EmbattleQueue targetEmbattle) { IGeneral[] generalList = new IGeneral[0]; List<CombatGeneral> targetGeneralList = new List<CombatGeneral>(); switch (attackType) { case AttackUnit.Single: CombatGeneral cg = null; if (attackTaget == AttackTaget.Self) { cg = (CombatGeneral)targetEmbattle.GetGeneral(position); } else { cg = (CombatGeneral)targetEmbattle.FindGeneral(position); } if (cg != null) { generalList = new IGeneral[] { cg }; } break; case AttackUnit.Horizontal: generalList = targetEmbattle.FindHorizontal(position); break; case AttackUnit.Vertical: generalList = targetEmbattle.FindVertical(position); break; case AttackUnit.All: generalList = targetEmbattle.FindAll(); break; default: break; } foreach (IGeneral general in generalList) { targetGeneralList.Add((CombatGeneral)general); } return targetGeneralList.ToArray(); }
/// <summary> /// 获取攻击单位 /// </summary> /// <param name="position">攻击方的位置</param> /// <param name="attackType">攻击方式</param> /// <param name="attackTaget">攻击目标</param> /// <param name="targetEmbattle"></param> private static CombatGeneral[] GetTargetUnit(int position, AttackUnit attackType, AttackTaget attackTaget, EmbattleQueue targetEmbattle) { IGeneral[] generalList = new IGeneral[0]; List <CombatGeneral> targetGeneralList = new List <CombatGeneral>(); switch (attackType) { case AttackUnit.Single: CombatGeneral cg = null; if (attackTaget == AttackTaget.Self) { cg = (CombatGeneral)targetEmbattle.GetGeneral(position); } else { cg = (CombatGeneral)targetEmbattle.FindGeneral(position); } if (cg != null) { generalList = new IGeneral[] { cg }; } break; case AttackUnit.Horizontal: generalList = targetEmbattle.FindHorizontal(position); break; case AttackUnit.Vertical: generalList = targetEmbattle.FindVertical(position); break; case AttackUnit.All: generalList = targetEmbattle.FindAll(); break; default: break; } foreach (IGeneral general in generalList) { targetGeneralList.Add((CombatGeneral)general); } return(targetGeneralList.ToArray()); }
protected override object this[string index] { get { #region switch (index) { case "AbilityID": return AbilityID; case "AbilityName": return AbilityName; case "AttackType": return AttackType; case "AbilityProperty": return AbilityProperty; case "AttackUnit": return AttackUnit; case "AttackTaget": return AttackTaget; case "RatioNum": return RatioNum; case "IsIncrease": return IsIncrease; case "HitPercent": return HitPercent; case "IsCorrect": return IsCorrect; case "IsIncreaseCorrect": return IsIncreaseCorrect; case "AbilityType": return AbilityType; case "BaseEffectNum": return BaseEffectNum; case "IncreaseNum": return IncreaseNum; case "EffectCount": return EffectCount; case "RatioIncreaseNum": return RatioIncreaseNum; case "EffectDesc": return EffectDesc; case "AbilityDesc": return AbilityDesc; case "IsMove": return IsMove; case "EffectID1": return EffectID1; case "EffectID2": return EffectID2; case "Version": return Version; case "AbilityStyle": return AbilityStyle; case "HeadID": return HeadID; case "DemandLv": return DemandLv; case "ChangeAbility": return ChangeAbility; case "AfterAbility": return AfterAbility; case "MaxHeadID": return MaxHeadID; case "Probability": return Probability; case "FntHeadID": return FntHeadID; case "IsActive": return IsActive; case "AbilityQuality": return AbilityQuality; default: throw new ArgumentException(string.Format("AbilityInfo index[{0}] isn't exist.", index)); } #endregion } set { #region switch (index) { case "AbilityID": _AbilityID = value.ToInt(); break; case "AbilityName": _AbilityName = value.ToNotNullString(); break; case "AttackType": _AttackType = value.ToEnum<AttackType>(); break; case "AbilityProperty": _AbilityProperty = value.ToEnum<AbilityProperty>(); break; case "AttackUnit": _AttackUnit = value.ToEnum<AttackUnit>(); break; case "AttackTaget": _AttackTaget = value.ToEnum<AttackTaget>(); break; case "RatioNum": _RatioNum = value.ToDecimal(); break; case "IsIncrease": _IsIncrease = value.ToBool(); break; case "HitPercent": _HitPercent = value.ToDecimal(); break; case "IsCorrect": _IsCorrect = value.ToBool(); break; case "IsIncreaseCorrect": _IsIncreaseCorrect = value.ToBool(); break; case "AbilityType": _AbilityType = value.ToNotNullString(); break; case "BaseEffectNum": _BaseEffectNum = value.ToNotNullString(); break; case "IncreaseNum": _IncreaseNum = value.ToNotNullString(); break; case "EffectCount": _EffectCount = value.ToShort(); break; case "RatioIncreaseNum": _RatioIncreaseNum = value.ToDecimal(); break; case "EffectDesc": _EffectDesc = value.ToNotNullString(); break; case "AbilityDesc": _AbilityDesc = value.ToNotNullString(); break; case "IsMove": _IsMove = value.ToBool(); break; case "EffectID1": _EffectID1 = value.ToNotNullString(); break; case "EffectID2": _EffectID2 = value.ToNotNullString(); break; case "Version": _Version = value.ToInt(); break; case "AbilityStyle": _AbilityStyle = value.ToShort(); break; case "HeadID": _HeadID = value.ToNotNullString(); break; case "DemandLv": _DemandLv = value.ToShort(); break; case "ChangeAbility": _ChangeAbility = value.ToEnum<AbilityType>(); break; case "AfterAbility": _AfterAbility = value.ToEnum<AbilityType>(); break; case "MaxHeadID": _MaxHeadID = value.ToNotNullString(); break; case "Probability": _Probability = value.ToDecimal(); break; case "FntHeadID": _FntHeadID = value.ToNotNullString(); break; case "IsActive": _IsActive = value.ToShort(); break; case "AbilityQuality": _AbilityQuality = value.ToInt(); break; default: throw new ArgumentException(string.Format("AbilityInfo index[{0}] isn't exist.", index)); } #endregion } }