Zwiększanie limitu kolonistów!

Każdy narrator ma swoją upragnioną liczbę kolonistów, którą można zmienić – innymi słowy: zwiększyć limit kolonistów. Dziś uczymy się szperania w plikach gry!

  • Wejdź do katalogu z Rimem, w folder StorytellerDefs.
    Domyślnie: steam/steamapps/common/RimWorld/Mods/Core/Defs/StorytellerDefs
  • Plik Storytellers.xml otwórz dowolnym edytorem tekstu.
  • Zmieniaj wartości pomiędzy tagami <tag>to_zmień</tag>. W innym razie zepsujesz i nie będzie działało, a mówiłem! Jak zepsujesz, pobierz z naszego dysku niezmodyfikowany plik.
    Pracuję tu na Kassandrze. Inni narratorzy za wiele różnić się od niej nie będą.
  • Na czerwono oznaczam to, co nas interesuje. Resztę dopowiadam jako ciekawostkę.

Do dzieła, młodzi junacy!

Klasyczna Kassandra, zwiększanie limitu kolonistów

Dane narratora, limit kolonistów

<StorytellerDef>
 <defName>Cassandra</defName>
 <label>Cassandra Classic</label>
 <description>Cassandra creates story events on a steadily-increasing curve of challenge and tension.</description>
 <portraitLarge>UI/HeroArt/Storytellers/CassandraClassic</portraitLarge>
 <portraitTiny>UI/HeroArt/Storytellers/CassandraClassicTiny</portraitTiny>
 <listOrder>20</listOrder>
 <desiredPopulationMin>4</desiredPopulationMin>
 <desiredPopulationMax>13</desiredPopulationMax>
 <desiredPopulationCritical>18</desiredPopulationCritical>
  • defName – nazwa narratora w plikach
  • label – wyświetlana nazwa narratora
  • description – opis mu towarzyszący
  • portraitLarge/portraitTiny – pierwszy to duży portret, drugi – miniaturka po lewej stronie przy wyborze narratora.
  • listOrder – kolejność wyświetlania się narratora w menu (Kassandra – 20, Phoebe – 30, Randy – 40, widoczni są po kolei; to ułatwienie dla modderów).
  • desiredPopulationMin/Max/Critical – to właśnie sedno tego artykułu. Narratorzy mają różną ustaloną liczbę kolonistów, do której dążą – jeśli jest minimalna, będą częściej zsyłać okazje typu kapsuła ratunkowa czy wędrowiec, który do nas dołącza. Jeśli wartość przekroczy maksymalną, te sytuacje wystąpią rzadko. Krytyczna – nie jestem tu jednak stuprocentowo pewien – oznacza, że szansa na to, że ktoś do Ciebie dołączy będzie bliska zeru (ale nie zerowa!), piraci nie zaoferują Ci niewolników do kupienia, a prawdopodobieństwo zabicia wroga na miejscu podczas walki wyniesie prawie że 100%.
    • Radzę nie przesadzać przy zwiększaniu minimalnej wartości – żyłem na górze lodowej w Rimie w dwóch kolonistów, więc wiem, jak wkurzające potrafi być ciągłe spadanie kapsuł ratunkowych, a w nich teściowe, żony, matki, dzieci…
      IMHO 4/25/30 to rozsądna wartość.

Cykl zagrożeń

<comps>
<li Class="StorytellerCompProperties_ClassicIntro"/>
<li Class="StorytellerCompProperties_ThreatCycle">
 <minDaysPassed>5</minDaysPassed>
 <mtbDaysThreatSmall>3.75</mtbDaysThreatSmall>
 <mtbDaysThreatBig>1.20</mtbDaysThreatBig>
 <threatOffDays>5.8</threatOffDays>
 <threatOnDays>4.6</threatOnDays>
 <minDaysBetweenThreatBigs>1.9</minDaysBetweenThreatBigs>
</li>
  • StorytellerCompProperties_ClassicIntro – Generuje cztery pierwsze wydarzenia w grze:
    • Po 54 godzinach od rozpoczęcia powinna odwiedzić Cię grupa gości – zazwyczaj przybywa tylko jeden.
    • Po 78 godzinach pojawia się losowe, niewielkie zagrożenie – najpewniej jedno ze zwierząt wpadnie w stan załamania: ludojad.
    • Po 102 godzinach zawsze dołączy do Ciebie wędrowiec.
    • Po 126 godzinach doświadczasz pierwszego ataku.
    • ! Jeśli chcesz to usunąć, wykasuj tylko jedną linijkę (zaznaczona na czerwono) – tag <li> jest tu domknięty na końcu w jednym wersie (/>).
      Ten tag posiada tylko Phoebe i Cassandra. Randy… Randy rządzi się własnymi zasadami.
  • StorytellerCompProperties_ThreatCycle – Interwał wydarzeń. Jaki? Wszystko jest pomiędzy tagami <li>…</li>.
  • minDaysPassed – Trudno mi jednoznacznie rozszyfrować… Minimalna liczba dni, która musi minąć, aby odpalić cały ten cykl? Może…
  • mtbDaysThreatSmall/Big – Czas trwania zagrożenia.
  • threatOffDays/OnDays – Dni bez zagrożeń/z zagrożeniami. Możliwe, że w ciągu jednej pory roku.
  • minDaysBetweenThreatBigs – Minimum dni, które muszą minąć pomiędzy dużymi zagrożeniami (jak najazdy czy grupa zwierząt-ludożerców).

Jak działa ThreatCycle:

  1. Jeśli zbliżamy się do dnia minDaysPassed, sprawdź, w którym miejscu ThreatCycle stoimy (dzisiaj to procent długości ThreatCycle narratora; coś jak z miesiączką – im bliżej 28. dnia, tym większa szansa, że nas dopadnie – w końcu staje się stuprocentowa).
    1. Jeśli jest to mniej lub równo 50% cyklu, zostaw gracza w spokoju – nie wygeneruje się żadne zagrożenie.
    2. Jeśli minęła minimalna liczba dni od ostatniego dużego zagrożenia…
      1. Sprawdź, czy chcemy odpalić duże zagrożenie, kalkulując szansę wyrażoną w mtbDaysThreatBig i długości cyklu.
        1. Jeśli jesteśmy powyżej 85% cyklu, duże zagrożenie jest praktycznie gwarantowane.
      2. Jeśli chcemy, zsyłamy na gracza duże zagrożenie i tyle.
      3. Jeśli nie chcemy, kalkulujemy, czy chcemy dać graczowi małe zagrożenie, bazujące na mtbDaysThreatSmall i szczypty randomowości.
        1. Jeśli chcemy dać małe zagrożenie… no, dajemy!

Wartości te i tak w większości zależą od zagrożeń samych w sobie i poziomu trudności, a nie stricte narratorów.

A dla zainteresowanych modowaniem…
już niedługo kolejna część modyfikowania narratorów!

Źródła:
Steamcommunity
Reddit