fuse method

Persona? fuse(
  1. Persona persona1,
  2. Persona persona2
)

Fuses two Personas together.

Implementation

Persona? fuse(Persona persona1, Persona persona2) {
  Persona? persona;
  if ((persona1.rare && persona2.rare) || persona1 == persona2) return null;
  persona = _getSpecialFuse(persona1, persona2);
  if (persona != null) {
    return persona;
  }
  if ((persona1.rare && !persona2.rare) ||
      (!persona1.rare && persona2.rare)) {
    final Persona rarePersona = persona1.rare ? persona1 : persona2;
    final Persona normalPersona = persona1.rare ? persona2 : persona1;
    persona = _getRareFuse(rarePersona, normalPersona);
    return persona;
  }

  return _normalFuse(persona1, persona2);
}