public static AbilityStats Create(AAbilityType type, int level, int quantity, StaticsDB statics) { var factory = new AbilityStatsFactory(level, statics); type.Accept(factory); return(new AbilityStats(type, level, quantity, factory.range, factory.isInstantDamage, factory.targetColony, factory.targetShips, factory.targetStar, factory.firePower, factory.accuracy, factory.energyCost, factory.ammo, factory.accuracyRangePenalty, factory.armorEfficiency, factory.shieldEfficiency, factory.planetEfficiency, factory.appliesTrait)); }
public static AbilityStats Create(AAbilityType type, AComponentType provider, int level, int quantity, StaticsDB statics) { var factory = new AbilityStatsFactory(level, statics); type.Accept(factory); return(new AbilityStats(type, provider, level, quantity, factory.range, factory.isInstantDamage, factory.isProjectile, factory.targetColony, factory.targetShips, factory.targetStar, factory.firePower, factory.accuracy, factory.energyCost, factory.ammo, factory.accuracyRangePenalty, factory.armorEfficiency, factory.shieldEfficiency, factory.planetEfficiency, factory.appliesTrait, factory.projectileImage, factory.speed, factory.splashMaxTargets, factory.splashFirePower, factory.splashShieldEfficiency, factory.splashArmorEfficiency)); }