anchor.diff:      return ret + pname +" (" + (this.getStat("currentHP")).round() +" hp, " + (this.getStat("power")).round() + " power)</font>"; //TODO denizens are aspect colored.
     }
     void flipOut(reason){
  -    this.flippingOutOverDeadPlayer = null;
  -    this.flipOutReason = reason;
  +
     }
  -  //TODO this will be different for different children. ???
  -  void addPrototyping(object){
  -    this.name = object.name + this.name; //sprite becomes puppetsprite.
  -    this.fraymotifs.addAll(object.fraymotifs);
  -    if(object.fraymotifs.length == 0){
  -      var f = new Fraymotif([], object.name + "Sprite Beam!", 1);
  -      f.effects.add(new FraymotifEffect("power",2,true)); //do damage
  -      f.effects.add(new FraymotifEffect("hp",1,true)); //heal
  -      f.flavorText = " An appropriately themed beam of light damages enemies and heals allies. ";
  -      this.fraymotifs.add(f);
  -    }
  -    this.corrupted = object.corrupted;
  -    this.helpfulness = object.helpfulness; //completely overridden.
  -    this.helpPhrase = object.helpPhrase;
  -    this.grist += object.grist;
  -    this.lusus = object.lusus;
  -    this.minLuck += object.minLuck;
  -    this.currentHP += object.currentHP;
  -    this.hp += object.hp;
  -    this.mobility += object.mobility;
  -    this.maxLuck += object.maxLuck;
  -    this.freeWill += object.freeWill;
  -    this.power += object.power;
  -    this.illegal = object.illegal;
  -    this.minLuck += object.minLuck;
  -    this.minLuck += object.minLuck;
  -    this.minLuck += object.minLuck;
  -    this.player = object.player;
  -  }
  -
  +  
     dynamic htmlTitleBasic(){
       return this.name;
     }
  
positive.code:         this.relationships[i].value += modValue * stat.multiplier;
        }
      }else{
        this[stat.name] += modValue * stat.multiplier;
      }
    }
    dynamic getStat(statName){
      num ret = 0;
      ret += this[statName] ;//for game entitties RELATIONSHIPS will ALSO be a fake as fuck int var thingy.;
      if(statName == "RELATIONSHIPS"){ //in addition to the for loop of doom.
        for(num i = 0; i<this.relationships.length; i++){
          ret += this.relationships[i].value;s
        }
      }
      for(num i = 0; i<this.buffs.length; i++){
        var b = this.buffs[i];
        if(b.name == statName) ret += b.value;
      }
      if(this.crowned) ret += this.crowned.getStat(statName); //so meta.
      return ret;
    }
  
    void setStatsHash(hashStats){
      for (var key in hashStats){
        this[key] = hashStats[key];
      }
      this.currentHP = Math.max(this.hp, 10); //no negative hp asshole.
    }
    void setStats(minLuck, maxLuck, hp, mobility, sanity, freeWill, power, abscondable, canAbscond, framotifs, grist){
      this.minLuck = minLuck;
      this.hp = hp;
      this.currentHP = this.hp;
      this.mobility = mobility;
      this.maxLuck = maxLuck;
      this.sanity = sanity;
      this.freeWill = freeWill;
      this.power = power;
      this.abscondable = abscondable;
      this.canAbscond = canAbscond;
      this.grist = grist;
    }
    dynamic htmlTitle(){
      String ret = "";
      if(this.crowned != null) ret+="Crowned ";
      var pname = this.name;
      if(pname == "Yaldabaoth"){
        var misNames = ['Yaldobob', 'Yolobroth', 'Yodelbooger', "Yaldabruh", 'Yogertboner','Yodelboth'];
        print("Yaldobooger!!! " + this.session.session_d);
        pname = getRandomElementFromArray(misNames);
      }
      if(this.corrupted) pname = Zalgo.generate(this.name); //will i let denizens and royalty get corrupted???
  
negative.code:   Session session;
    String name;
    bool dead = false;
    bool corrupted = false; //players are corrupted at level 4. will be easier than always checking grimDark level
    List<dynamic> fraymotifs = [];
    bool usedFraymotifThisTurn = false;
    List<dynamic> buffs = []; //only used in strifes, array of BuffStats (from fraymotifs and eventually weapons)
    HashMap stats = {};
    List<Relationship> relationships; //not to be confused with the RELATIONSHIPS stat which is the value of all relationships.
    var permaBuffs = {"MANGRIT":0}; //is an object so it looks like a player with stats.  for things like manGrit which are permanent buffs to power (because modding power directly gets OP as shit because power controls future power)
    num renderingType = 0; //0 means default for this sim.
    List<dynamic> associatedStats = [];  //most players will have a 2x, a 1x and a -1x stat.
  