Skip to content

use the Try[part] instead of the #30

@github-actions

Description

@github-actions

use the Try[part] instead of the

* Sets or maps the source text for the DisplayName. // TODO: use the Try[part] instead of the

 * @tparam E
 *   Entry ID / Enumeration used to qualify which part is being modified.
 */
trait PartModifier[V, E <: EnumEntry] extends Feature[V] with DisplayName {
  self: UsingSearchPrefix =>
  /**
   * The current Seaerch-Fu is weak. Override this default function.
   */
  override lazy val part: Try[EffectPart] =
    EffectPart.tryFindByPattern(partToModify.entryName, Option(withPrefix))
  override lazy val parameters: Seq[Try[EffectParameter]] = effectParameters.map(_.parameter)
// FIXME add UsingSearchPrefix to type constraint
  override val withPrefix: String = s"$searchPrefix$nameSource"
  protected[this] val partToModify: E

  protected[this] def effectParameters: Seq[ParameterModifier[_]] = ???

  /**
   * Sets or maps the source text for the DisplayName. // TODO: use the Try[part] instead of the
   * partToModify
   *
   * @return
   *   Source text.
   */
  override protected def nameSource: String = partToModify.entryName
}

trait FeatModifier[T, E <: Feat] extends PartModifier[T, E] {
  self: UsingSearchPrefix =>

}

/**
 * A parameter that SHOULD be found in EffectParameter used for validation / stacking
 * @tparam E
 *   Enum of the parameter type being used, such as A Bonus Type of 'Action Boost'
 */
trait ParameterModifier[E <: EnumEntry] {

  lazy val parameter: Try[EffectParameter] =
    EffectParameter.tryFindByPattern(parameterToModify.entryName, None)
  protected[this] val parameterToModify: E
}

case class EffectFeature[T](
  parameter: Try[EffectParameter],
  override val part: Try[EffectPart],
  override val source: SourceInfo,
  override val categories: Seq[String],
  override val value: T,
  override val generalDescription: String,
  effectDetail: DetailedEffect)
  extends Feature[T] {
  override def parameters: Seq[Try[EffectParameter]] = ???
}

4086695ce8083c05f43414d28b0b86c6cb60742b

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions