Ability CreateAbilityFromData(string abilityName, MonsterInfo mi = null) { AbilityInfo abilityInfo = abilityData.GetAbilityByName(abilityName); string givenName = abilityInfo.Name; if (mi != null) { givenName = mi.MonsterName; } Ability ability = new Ability(givenName, abilityInfo.AbilityCD, abilityInfo.ManaCost); ability.SetTargetType(abilityInfo.targetType); ability.SetAbilityEffectType(abilityInfo.abilityEffectType); foreach (var effect in abilityInfo.abilityEffects) { AbilityEffect abilityEffect = new AbilityEffect() { abilityType = effect.abilityType, damageType = effect.damageType, BaseAbilityStrength = effect.BaseAbilityStrength }; if (mi != null) { abilityEffect.monsterInfo = mi; } ability.AddToEffectList(abilityEffect); } return(ability); // TODO... should never be allowed to happen, look inot more robust error handling return(null); }
Ability CreateConsumableAbilityFromData(string abilityName, int charges) { AbilityInfo consumableInfo = ConsumableDataReader.GetConsumableByName(abilityName); string givenName = consumableInfo.Name; Ability consumableAbility = new Ability(givenName, consumableInfo.AbilityCD, consumableInfo.ManaCost, charges); consumableAbility.SetTargetType(consumableInfo.targetType); consumableAbility.SetAbilityEffectType(consumableInfo.abilityEffectType); foreach (var effect in consumableInfo.abilityEffects) { AbilityEffect abilityEffect = new AbilityEffect() { abilityType = effect.abilityType, damageType = effect.damageType, BaseAbilityStrength = effect.BaseAbilityStrength }; consumableAbility.AddToEffectList(abilityEffect); } return(consumableAbility); // TODO... should never be allowed to happen, look inot more robust error handling return(null); }
public void AddToEffectList(AbilityEffect effect) { effectList.Add(effect); }