anchor.diff:      //two sections, I'm in the land of x and y!// Cool, what's it like?// It's full of x and y.// Oh.
       //goodLand
       List<PlusMinusConversationalPair> getLandPair() {
  -      //TODO IMPORTANT: !!! DO *NOT* PASS IN A PLAYER WHEN YOU ARE GETTING A SMELL OR SOUND OR WHATEVER. CANNOT ALLOW CHATS TO MODIFY ANYTHING.
  -        List<PlusMinusConversationalPair> possible1 = new List<PlusMinusConversationalPair>();
  -        List<PlusMinusConversationalPair> possible2 = new List<PlusMinusConversationalPair>();
  -        //generic
  -        possible1.add(new PlusMinusConversationalPair(["I am finally in the medium!", "Hey, I'm in the medium!", "I'm finally in!", "I'm in.", "I made it in!"], ["Oh, cool, what's it like?","What's it like?","What do you see?", "Really? What's it like?"],["About time! Tell me what you see!","Fucking finally. Where are you? What did you do?"]));
  -
  -        possible2.add(new PlusMinusConversationalPair(["I am finally in the medium!", "Hey, I'm in the medium!", "I'm finally in!", "I'm in.", "I made it in!"], ["Oh, cool, what's it like?","What's it like?","What do you see?", "Really? What's it like?"],["About time! Tell me what you see!","Fucking finally. Where are you? What did you do?"]));
  -
  -
  -        //relationship specific
  -        //possible.add(new PlusMinusConversationalPair(["I am finally in the medium!", "Hey, I'm in the medium!", "I'm finally in!"], ["..."],["I'm already playing a game, asshole.","Hell no, I don't want to play whatever shitty game you're talking about."]));
  -
  -        //interest specific
  -        //possible.add(new PlusMinusConversationalPair(["I am finally in the medium!", "Hey, I'm in the medium!", "I'm finally in!"], ["..."],["I'm already playing a game, asshole.","Hell no, I don't want to play whatever shitty game you're talking about."]));
  -        return <PlusMinusConversationalPair>[rand.pickFrom(possible1), rand.pickFrom(possible2)];
  +        List<PlusMinusConversationalPair> lines = new List<PlusMinusConversationalPair>();
  +        String land = player.land.name;
  +        //start it off
  +        lines.add(new PlusMinusConversationalPair(["Apparently it's the land of $land?", "It's the land of $land.", "Some random ${player.land.consortFeature.name} sad it was the $land?", "There's this giant sign that says it's the $land."], ["Huh. What does that even mean?","What's it like?", "Really? What's it like?"],["Wow. That sounds. Kinda weird.","Holy shit, what does that even mean?", "That ... doesn't sound fun."]));
  +
  +        double randomNum = rand.nextDouble();
  +
  +        if(randomNum > .66) {
  +            return smellConvo(lines);
  +        }else if(randomNum > .33) {
  +            return feelConvo(lines);
  +        }else {
  +            return soundConvo(lines);
  +        }
  +  }
  +
  +    List<PlusMinusConversationalPair> smellConvo(List<PlusMinusConversationalPair> lines) {
  +        //IMPORTANT: !!! DO *NOT* PASS IN A PLAYER WHEN YOU ARE GETTING A SMELL OR SOUND OR WHATEVER. CANNOT ALLOW CHATS TO MODIFY ANYTHING.
  +        SpecificQualia smellQualia = player.land.smellsLike(rand);
  +        goodLand = smellQualia.quality > 0;
  +        String qualiaString = smellQualia.desc;
  +        if(smellQualia == 0) {
  +            lines.add(new PlusMinusConversationalPair(["Huh. It kind of smells like $qualiaString.", "It's weird, it smells like $qualiaString.", "Do you think there's a reason it smells like $qualiaString?"], ["Weird.", "That's random.","Huh.","I guess that makes sense."], ["Weird.", "That's random.","Huh.","I guess that makes sense."]));
  +        }else if(goodLand) {
  +            lines.add(new PlusMinusConversationalPair(["Wow, it smells like $qualiaString!", "I could get used to smelling $qualiaString!", "Holy shit, it smells fuckin FANTASTIC! Like...$qualiaString?"], ["Wow! I'm jealous!","That's so cool!", "Really? That's amazing!"],["Wow! I'm jealous!","That's so cool!", "Really? That's amazing!"]));
  +        }else {
  +            lines.add(new PlusMinusConversationalPair(["Oh god, it reeks of $qualiaString!", "Oh god, I hope I fucking get a cold. I cannot stand the smell of $qualiaString.", "I think the smell of $qualiaString is gonna drive me shithive maggots.", "$qualiaString. It smells like fucking ${qualiaString.toUpperCase()}. What. The. Fuck."], ["Oh man, that sucks.","Wow, I'm not even a little bit jealous anymore.", "Holy shit, talk about a bad break."],["Oh man, that sucks.","Wow, I'm not even a little bit jealous anymore.", "Holy shit, talk about a bad break."]));
  +        }
  +
  +        return lines;
  +    }
  +
  +    List<PlusMinusConversationalPair> soundConvo(List<PlusMinusConversationalPair> lines) {
  +        //IMPORTANT: !!! DO *NOT* PASS IN A PLAYER WHEN YOU ARE GETTING A SMELL OR SOUND OR WHATEVER. CANNOT ALLOW CHATS TO MODIFY ANYTHING.
  +        SpecificQualia sound = player.land.soundsLike(rand);
  +        goodLand = sound.quality > 0;
  +        String qualiaString = sound.desc;
  +        if(sound == 0) {
  +            lines.add(new PlusMinusConversationalPair(["Huh. It kind of sounds like $qualiaString.", "It's weird, it sounds like $qualiaString.", "Do you think there's a reason it sounds like $qualiaString?"], ["Weird.", "That's random.","Huh.","I guess that makes sense."], ["Weird.", "That's random.","Huh.","I guess that makes sense."]));
  +        }else if(goodLand) {
  +            lines.add(new PlusMinusConversationalPair(["Wow, it sounds like $qualiaString! So relaxing!", "I could get used to hearing $qualiaString!", "Holy shit, I love the $qualiaString I am hearing!"], ["Wow! I'm jealous!","That's so cool!", "Really? That's amazing!"],["Wow! I'm jealous!","That's so cool!", "Really? That's amazing!"]));
  +        }else {
  +            lines.add(new PlusMinusConversationalPair(["Oh god, I can't get the sound of $qualiaString out of my head...", "I am going to hear $qualiaString in my nightmares for weeks.", "I think the sound of $qualiaString is gonna drive me shithive maggots.", "$qualiaString. I can barely fucking even THINK because of all this fucking ${qualiaString.toUpperCase()}. What. The. Fuck."], ["Oh man, that sucks.","Wow, I'm not even a little bit jealous anymore.", "Holy shit, talk about a bad break."],["Oh man, that sucks.","Wow, I'm not even a little bit jealous anymore.", "Holy shit, talk about a bad break."]));
  +        }
  +        return lines;
  +    }
  +
  +    List<PlusMinusConversationalPair> feelConvo(List<PlusMinusConversationalPair> lines) {
  +        //IMPORTANT: !!! DO *NOT* PASS IN A PLAYER WHEN YOU ARE GETTING A SMELL OR SOUND OR WHATEVER. CANNOT ALLOW CHATS TO MODIFY ANYTHING.
  +        SpecificQualia feel = player.land.feelsLike(rand);
  +        goodLand = feel.quality > 0;
  +        String qualiaString = feel.desc;
  +        if(feel == 0) {
  +            lines.add(new PlusMinusConversationalPair(["Huh. It kind of feels $qualiaString.", "It's weird, it feels $qualiaString.", "It's kind of $qualiaString..."], ["Weird.", "That's random.","Huh.","I guess that makes sense."], ["Weird.", "That's random.","Huh.","I guess that makes sense."]));
  +        }else if(goodLand) {
  +            lines.add(new PlusMinusConversationalPair(["Wow, it feels so $qualiaString!", "It's so $qualiaString here!", "Holy shit, I just love the way it feels here! Like...$qualiaString or something?"], ["Wow! I'm jealous!","That's so cool!", "Really? That's amazing!"],["Wow! I'm jealous!","That's so cool!", "Really? That's amazing!"]));
  +        }else {
  +            lines.add(new PlusMinusConversationalPair(["Oh god, it feels so $qualiaString! I feel unclean.", "I am already getting sick of how $qualiaString it feels here.", "I think $qualiaString fucking land is gonna drive me shithive maggots.", "$qualiaString. It smells like fucking ${qualiaString.toUpperCase()}. What. The. Fuck."], ["Oh man, that sucks.","Wow, I'm not even a little bit jealous anymore.", "Holy shit, talk about a bad break."],["Oh man, that sucks.","Wow, I'm not even a little bit jealous anymore.", "Holy shit, talk about a bad break."]));
  +        }
  +        return lines;
       }
   
   
  
positive.code:   void renderContent(Element div, int i) {
        doNarration(div,i);
        String chat = "";
        if(friend != null) {
            List<Conversation> convos = getConversations();
            String player1Start = player.chatHandleShort() + ": ";
            String player2Start = friend.chatHandleShortCheckDup(player.chatHandleShort()) + ": "; //don't be lazy and usePlayer1Start as input, there's a colon.
  
            chat = convos[0].returnStringConversation(player, friend, player1Start, player2Start,friend.getRelationshipWith(player).value > 0);
            chat += convos[0].returnStringConversation(player, friend, player1Start, player2Start,player.object_to_prototype.getStat(Stats.POWER)>200);
            chat += convos[0].returnStringConversation(player, friend, player1Start, player2Start,goodLand);
  
            //lookit me, doing canvas shit correctly. what even IS this???
            CanvasElement canvas = new CanvasElement(width: canvasWidth, height: canvasHeight);
            div.append(canvas);
            Drawing.drawChat(canvas, player, friend, chat,"discuss_sburb.png");
        }
    }
  
  
negative.code: 
      List<Conversation> getConversations() {
        List<Conversation>ret = new List<Conversation>();
        //TODO have different things for foreign players
  
        //order is important cuz whether i do positive or negative matters if it's land or whatever
        ret.add(new Conversation(getEnterPair()));
        ret.add(new Conversation(getLandPair()));
  