/**
 * Adult Romance Events
 * Marriage and long-term romantic relationships (ages 18+)
 */

import { Player } from '../../models/Player';
import { createMessageEvent, createQuestionEvent, checkProbability, type EventResult } from '../base';

export function marriage(player: Player, _type: 'message' | 'question' = 'message'): EventResult {
  const fname = 'marriage';
  const check = !player.askedQuestions.has(fname) &&
    player.character.ageYears > 18 &&
    !!player.character.partner &&
    checkProbability(1000);

  if (check) {
    player.askedQuestions.add(fname);
  }

  // Note: In full implementation, would check partner affinity > 80
  return createQuestionEvent(
    fname,
    "Would you like to marry your partner?",
    player,
    check,
    {
      answerOptions: ['Yes', 'No']
    }
  );
}

export function wedding(player: Player, _type: 'message' | 'question' = 'message'): EventResult {
  const fname = 'wedding';
  // Use events set for message events (not askedQuestions which is for questions)
  const check = !player.events.has(fname) &&
    player.character.engaged === true &&
    player.character.ageYears > 18 &&
    !!player.character.partner &&
    checkProbability(1000);

  if (check) {
    player.events.add(fname);
    player.lifecycleQueue.push({ type: 'marriage' });
    // In full implementation, would update relationship from Partner to Spouse
  }

  return createMessageEvent(
    fname,
    "You have a beautiful wedding! Everyone is so happy for you!",
    player,
    check
  );
}
