<commit_before>import "../SBURBSim.dart";
import "Land.dart";
import "dart:html";


import "FeatureTypes/QuestChainFeature.dart";
/**
 * Session has a list of all possible moons, which it passes to a player when it assigns them a moon.
 *
 * A moon allows you to do as many questChains as are available, with repeats.
 *
 * Quest chains can be ADDED to a moon. (for example, NPC update might have a meeting with WV add "weaken queen" chain)
 *
 * TODO If a moon is destroyed, all dream selves beloning to the moon are destroyed as well.
 * This means a moon should have a list of dream selves on it, when the NPC update is a thing.
 */
class Moon extends Land {
    WeightedList<MoonQuestChainFeature> moonQuestChains = new WeightedList<MoonQuestChainFeature>();

  Moon.fromWeightedThemes(String name, Map<Theme, double> themes, Session session, Aspect a) : super.fromWeightedThemes(themes, session, a){
      Map<MoonQuestChainFeature, double> moonFeatures = new Map<MoonQuestChainFeature, double>();
      //override land of x and y. you are named Prospit/derse/etc
      this.name = name;
      processMoonShit(allQuestChains);
  }

  void processMoonShit( Map<QuestChainFeature, double> features) {
      print("Processing moon shit: ${features.keys}");
      for(QuestChainFeature f in features.keys) {
          print("adding moon quest chain");
          if(QuestChainFeature is MoonQuestChainFeature) moonQuestChains.add(f, features[f]);
      }
  }

  ///any quest chain can be done on the moon. Chain itself decides if can be repeated.
  @override
  String initQuest(List<Player> players) {
      if(symbolicMcguffin == null) decideMcGuffins(players.first);
      //first, do i have a current quest chain?
      if(currentQuestChain == null) {
          currentQuestChain = selectQuestChainFromSource(players, moonQuestChains);
          //nobody else can do this.
          if(!currentQuestChain.canRepeat) moonQuestChains.remove(currentQuestChain);

      }


  }<commit_msg>consorts are somehow not being set<commit_after>import "../SBURBSim.dart";
import "Land.dart";
import "dart:html";


import "FeatureTypes/QuestChainFeature.dart";
/**
 * Session has a list of all possible moons, which it passes to a player when it assigns them a moon.
 *
 * A moon allows you to do as many questChains as are available, with repeats.
 *
 * Quest chains can be ADDED to a moon. (for example, NPC update might have a meeting with WV add "weaken queen" chain)
 *
 * TODO If a moon is destroyed, all dream selves beloning to the moon are destroyed as well.
 * This means a moon should have a list of dream selves on it, when the NPC update is a thing.
 */
class Moon extends Land {
    WeightedList<MoonQuestChainFeature> moonQuestChains = new WeightedList<MoonQuestChainFeature>();

  Moon.fromWeightedThemes(String name, Map<Theme, double> themes, Session session, Aspect a) : super.fromWeightedThemes(themes, session, a){
      Map<MoonQuestChainFeature, double> moonFeatures = new Map<MoonQuestChainFeature, double>();
      //override land of x and y. you are named Prospit/derse/etc
      this.name = name;
      processMoonShit(allQuestChains);
  }

  @override
    String get shortName {
        return name;
    }

  void processMoonShit( Map<QuestChainFeature, double> features) {
     // print("Processing moon shit: ${features.keys}");
      for(QuestChainFeature f in features.keys) {
         // print("checking if ${f} is a moon quest.  ${f is MoonQuestChainFeature}");
          if(f is MoonQuestChainFeature) {
              //print("adding moon quest chain");
              moonQuestChains.add(f, features[f]);
          }
      }
  }

  ///any quest chain can be done on the moon. Chain itself decides if can be repeated.
  @override
  String initQuest(List<Player> players) {
      if(symbolicMcguffin == null) decideMcGuffins(players.first);
      //first, do i have a current quest chain?
      if(currentQuestChain == null) {
          print("going to pick a moon quest from ${moonQuestChains}");
          currentQuestChain = selectQuestChainFromSource(players, moonQuestChains);
          //nobody else can do this.
          if(!currentQuestChain.canRepeat) moonQuestChains.remove(currentQuestChain);

      }


  }
{'fraction_non_alphanumeric': 0.09193776520509193, 'fraction_numerical': 0.0, 'mean_word_length': 3.4522560335781742, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '93978', 'n_tokens_mistral': 1234, 'n_tokens_neox': 1207, 'n_words': 439}