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); } }
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(); }
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); } } }
void GenerateAttraction() { identity = Roll.Bias(1, 10); attraction = Roll.Bias(1, 10); SerializeAttraction(); }
public int ExprsesionSkillnRoll(ExpressionEnum expression) { return(Roll.Bias(5, 20, (int)skills[expression])); }