public static void SimulateInteraction(Room room, List <Character> characters)
 {
     //RelationshipEvents
     //Fight
     //F**k
     //Bromance
     //Love Triangle
     //From Fight to Friend or from bromance to enemies
     if (characters.Count > 0)
     {
         characters.ForEach((character) =>
         {
             float bias   = character.Traits.GetTraitBias(room.Trait);
             int withRoom = 1;
             if (room.Bias * bias < 0)
             {
                 withRoom = -1;
             }
             int biasMod = (int)(bias * withRoom / 3);         //the 3 is just to make the bias mean a bit less
             int moodMod = Roll.Bias(5, 21, biasMod - 55) / 4; //4 is to get the total mood mod in a reasonable
             character.ModifyMood(moodMod);
             Debug.Log(character.Name + " mood: " + character.Mood);
         });
     }
     if (characters.Count > 1)
     {
         ModBond(characters, room.Trait);
         ModifyLust(characters, room.Expression);
     }
 }
Exemple #2
0
    public void CalculateBiases()
    {
        workStart = Roll.Bias(3, 3, -2);
        workEnd   = workStart + roundsOfWork;
        List <Room> path = Pathfinding.FromAToB(RoomManager.AllRooms, character.HomeRoom, character.WorkRoom);

        distanceBias = Pathfinding.GetRoomBiasByDistance(path, 0.7f);
        totalBias    = distanceBias.Aggregate(0f, (total, current) => total + current.Value + biasBase);
    }
 void GenerateTraits()
 {
     Util.EnumList <TraitsEnum>()
     .ForEach((trait) =>
     {
         traitLeaning[trait] = Roll.Bias(5, 40, -100);
     });
     SumTraits();
     SerializeTraits();
 }
Exemple #4
0
 void GenerateExpression()
 {
     Util.EnumList <ExpressionEnum>()
     .ForEach((expression) =>
     {
         skills[expression]      = Roll.Bias(5, 20);
         preferences[expression] = Roll.Bias(5, 20);
     });
     SerializeExpression();
 }
 static void ModBond(List <Character> characters, TraitsEnum roomTrait)
 {
     for (int i = 0; i < characters.Count; i++)
     {
         for (int j = i + 1; j < characters.Count; j++)
         {
             Character charA    = characters[i];
             Character charB    = characters[j];
             float     distance = charA.Traits.GetTraitBias(roomTrait) - charB.Traits.GetTraitBias(roomTrait);
             distance = 25 - Mathf.Abs(distance);
             float biasMod = distance / 4;
             int   result  = Roll.Bias(5, 21, (int)biasMod - 55);
             charA.Relationships.ModifyBond(charB, result);
             charB.Relationships.ModifyBond(charA, result);
             Debug.Log("Bond for " + charA.Name + " and " + charB.Name + ": " + charA.Relationships.GetBond(charB) + " \\ " + charB.Relationships.GetBond(charA) + " | Distance:" + distance);
         }
     }
 }
Exemple #6
0
 void GenerateAttraction()
 {
     identity   = Roll.Bias(1, 10);
     attraction = Roll.Bias(1, 10);
     SerializeAttraction();
 }
Exemple #7
0
 public int ExprsesionSkillnRoll(ExpressionEnum expression)
 {
     return(Roll.Bias(5, 20, (int)skills[expression]));
 }