internal SimulationModel(MapEvent mapEvent, PartyBase attackerParty, PartyBase defenderParty) { BattleId = mapEvent.Id; EventDescription = mapEvent.ToString(); bool isSiegeBattle = mapEvent.EventType == BattleTypes.Siege; Parties = new ReadOnlyCollection <Party>(new List <Party> { new Party(defenderParty, isSiegeBattle), new Party(attackerParty) }); // do not change the order of the list IsPlayerInvolved = Hero.MainHero.Id == attackerParty.LeaderHero?.Id || Hero.MainHero.Id == defenderParty.LeaderHero?.Id; }