From fb6058aedd4aa6ad8737109761f574bae8460fd6 Mon Sep 17 00:00:00 2001 From: Mehni Date: Thu, 26 Jul 2018 17:43:43 +0200 Subject: [PATCH] hunter's lodge reworked --- Assemblies/MoreFactionInteraction.dll | Bin 98816 -> 99328 bytes Defs/Incidents/Incidents_World_Misc.xml | 2 +- .../SymbolResolver_Rules_BasePart_Indoors.xml | 9 ++-- ...SymbolResolver_Rules_BasePart_Outdoors.xml | 3 -- Defs/Sites/Cores/HuntersLodge.xml | 1 + Defs/Sites/Parts/MigratoryHerd.xml | 4 +- Languages/English/Keyed/Keys.xml | 1 - .../IncidentWorker_FactionPeaceTalks.cs | 2 +- .../GenStep_HuntersLodge.cs | 6 ++- .../MFI_SymbolResolver_BasePart_Indoors.cs | 25 +++++++++ .../SymbolResolver_HuntersLodgeBase.cs | 5 -- .../SymbolResolver_Kitchen.cs | 5 +- .../IncidentWorker_HerdMigration_Ambush.cs | 13 +++-- .../IncidentWorker_HuntersLodge.cs | 29 +++++------ .../SitePartWorker_MigratoryHerd.cs | 49 ++++++++---------- 15 files changed, 83 insertions(+), 71 deletions(-) diff --git a/Assemblies/MoreFactionInteraction.dll b/Assemblies/MoreFactionInteraction.dll index 718467280c844f35fcd37e8cabc3bcd7fe0d0e68..d321758c21433fcb1e158df6fbed2a6b8960452b 100644 GIT binary patch delta 40140 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

kuO;K*P(A*dl&uJbe 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 delta 39261 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 diff --git a/Defs/Incidents/Incidents_World_Misc.xml b/Defs/Incidents/Incidents_World_Misc.xml index 66e3098..2d51f22 100644 --- a/Defs/Incidents/Incidents_World_Misc.xml +++ b/Defs/Incidents/Incidents_World_Misc.xml @@ -34,7 +34,7 @@ MoreFactionInteraction.World_Incidents.IncidentWorker_HuntersLodge Hunter's lodge PositiveEvent - You are invited to {0}'s {1} summer retreat. There's usually a large herd of {2} coming through around this time of year. They have all the required facilities there to make meals, and they've extended their hospitality to you. This offer expires in {3} days. + You are invited to {0}'s {1} summer retreat. {2}. There is an outpost at the site with all the required facilities to make meals, and they've extended their hospitality to you. This offer expires in {3} days. 0.8 15 30 diff --git a/Defs/RuleDefs/SymbolResolver_Rules_BasePart_Indoors.xml b/Defs/RuleDefs/SymbolResolver_Rules_BasePart_Indoors.xml index a9b0f8f..45392cc 100644 --- a/Defs/RuleDefs/SymbolResolver_Rules_BasePart_Indoors.xml +++ b/Defs/RuleDefs/SymbolResolver_Rules_BasePart_Indoors.xml @@ -25,10 +25,9 @@

  • (3, 3) - 0.65 + 0.45
  • - 0.5 (5, 5)
  • @@ -37,7 +36,11 @@
  • (5, 5) - 1.25 + 0.45 +
  • +
  • + (4, 4) + 0.3
  • diff --git a/Defs/RuleDefs/SymbolResolver_Rules_BasePart_Outdoors.xml b/Defs/RuleDefs/SymbolResolver_Rules_BasePart_Outdoors.xml index a801c39..6bd62c8 100644 --- a/Defs/RuleDefs/SymbolResolver_Rules_BasePart_Outdoors.xml +++ b/Defs/RuleDefs/SymbolResolver_Rules_BasePart_Outdoors.xml @@ -75,9 +75,6 @@
  • 0.65
  • -
  • - 0.3 -
  • (4, 4)
  • diff --git a/Defs/Sites/Cores/HuntersLodge.xml b/Defs/Sites/Cores/HuntersLodge.xml index b38db8b..2b60482 100644 --- a/Defs/Sites/Cores/HuntersLodge.xml +++ b/Defs/Sites/Cores/HuntersLodge.xml @@ -7,6 +7,7 @@ A small outpost, used by friendly factions as a hunting base. World/WorldObjects/Sites/GenericSite World/WorldObjects/Expanding/Sites/Nothing + true 10 diff --git a/Defs/Sites/Parts/MigratoryHerd.xml b/Defs/Sites/Parts/MigratoryHerd.xml index 52349d5..5930b71 100644 --- a/Defs/Sites/Parts/MigratoryHerd.xml +++ b/Defs/Sites/Parts/MigratoryHerd.xml @@ -7,10 +7,10 @@ A small outpost, used by friendly factions as a hunting base. World/WorldObjects/Sites/GenericSite World/WorldObjects/Expanding/Sites/Nothing - there is an outpost at the site you're free to use + There's usually a large herd of {0} coming through around this time of year MoreFactionInteraction.World_Incidents.SitePartWorker_MigratoryHerd - true true + true Visit {0} Visiting {0} Your caravan has arrived at the hunter's lodge. It seems nobody is here, but they've obviously been expecting you and have made the place hospitable. diff --git a/Languages/English/Keyed/Keys.xml b/Languages/English/Keyed/Keys.xml index 96e4802..7b4bd5e 100644 --- a/Languages/English/Keyed/Keys.xml +++ b/Languages/English/Keyed/Keys.xml @@ -11,7 +11,6 @@ Desperate trader {0} thanks you. Their trade caravan will arrive in about {1}. trader - {0} invited you to hunt {1} here. Caravan is working. diff --git a/MoreFactionInteraction/MoreFactionWar/IncidentWorker_FactionPeaceTalks.cs b/MoreFactionInteraction/MoreFactionWar/IncidentWorker_FactionPeaceTalks.cs index af1b97f..fd645a9 100644 --- a/MoreFactionInteraction/MoreFactionWar/IncidentWorker_FactionPeaceTalks.cs +++ b/MoreFactionInteraction/MoreFactionWar/IncidentWorker_FactionPeaceTalks.cs @@ -36,7 +36,7 @@ protected override bool TryExecuteWorker(IncidentParms parms) factionWarPeaceTalks.SetFaction(newFaction: faction); factionWarPeaceTalks.SetWarringFactions(factionOne: faction, factionInstigator: instigatingFaction); int randomInRange = TimeoutDaysRange.RandomInRange; - factionWarPeaceTalks.GetComponent().StartTimeout(/*ticks: randomInRange **/ GenDate.TicksPerDay); + factionWarPeaceTalks.GetComponent().StartTimeout(ticks: randomInRange * GenDate.TicksPerDay); Find.WorldObjects.Add(o: factionWarPeaceTalks); string text = string.Format(format: this.def.letterText.AdjustedFor(p: faction.leader), faction.def.leaderTitle, faction.Name, instigatingFaction.Name, randomInRange).CapitalizeFirst(); diff --git a/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/GenStep_HuntersLodge.cs b/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/GenStep_HuntersLodge.cs index 6d3a8ce..7c73af7 100644 --- a/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/GenStep_HuntersLodge.cs +++ b/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/GenStep_HuntersLodge.cs @@ -7,7 +7,7 @@ namespace MoreFactionInteraction.World_Incidents { public class GenStep_HuntersLodge : GenStep { - private const int Size = 24; + private const int Size = 36; private static List possibleRects = new List(); @@ -29,7 +29,9 @@ public override void Generate(Map map, GenStepParams genStepParams) ThingSetMakerParams maxFoodAndStuffForHuntersLodge = default; maxFoodAndStuffForHuntersLodge.totalMarketValueRange = new FloatRange(200, 500); - maxFoodAndStuffForHuntersLodge.totalNutritionRange = new FloatRange(0, 50); + maxFoodAndStuffForHuntersLodge.totalNutritionRange = new FloatRange(20, 50); + + //maxFoodAndStuffForHuntersLodge.filter.SetAllow(ThingCategoryDefOf.PlantFoodRaw, true); resolveParams.thingSetMakerParams = maxFoodAndStuffForHuntersLodge; diff --git a/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/MFI_SymbolResolver_BasePart_Indoors.cs b/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/MFI_SymbolResolver_BasePart_Indoors.cs index a004884..3146348 100644 --- a/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/MFI_SymbolResolver_BasePart_Indoors.cs +++ b/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/MFI_SymbolResolver_BasePart_Indoors.cs @@ -4,6 +4,7 @@ using System.Text; using Verse; using RimWorld.BaseGen; +using UnityEngine; namespace MoreFactionInteraction.World_Incidents.GenStep_SymbolResolver { @@ -70,4 +71,28 @@ public override void Resolve(ResolveParams rp) } } } + + class MFI_SymbolResolver_BasePart_Indoors_Leaf_GloriousPotat : SymbolResolver + { + public override void Resolve(ResolveParams rp) + { + CellRect rect = new CellRect(rp.rect.maxX - 3, rp.rect.maxZ - 3, 4, 4); + ThingDef gloriousPotat = ThingDefOf.RawPotatoes; + int num = Rand.RangeInclusive(2, 3); + for (int i = 0; i < num; i++) + { + ResolveParams resolveParams = rp; + resolveParams.rect = rect.ContractedBy(1); + resolveParams.singleThingDef = gloriousPotat; + resolveParams.singleThingStackCount = Rand.RangeInclusive(Mathf.Min(10, gloriousPotat.stackLimit), Mathf.Min(50, gloriousPotat.stackLimit)); + BaseGen.symbolStack.Push("thing", resolveParams); + } + ResolveParams resolveParams2 = rp; + resolveParams2.rect = rect; + BaseGen.symbolStack.Push("ensureCanReachMapEdge", resolveParams2); + ResolveParams resolveParams3 = rp; + resolveParams3.rect = rect; + BaseGen.symbolStack.Push("emptyRoom", resolveParams3); + } + } } diff --git a/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/SymbolResolver_HuntersLodgeBase.cs b/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/SymbolResolver_HuntersLodgeBase.cs index 9dada67..b596445 100644 --- a/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/SymbolResolver_HuntersLodgeBase.cs +++ b/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/SymbolResolver_HuntersLodgeBase.cs @@ -37,11 +37,6 @@ public override void Resolve(ResolveParams rp) BaseGen.symbolStack.Push(symbol: "ensureCanReachMapEdge", resolveParams: resolveParams4); ResolveParams mainBasePart = rp; - ThingSetMakerParams thingSet = default; - thingSet.totalMarketValueRange = new FloatRange(300, 1000); - thingSet.filter = new ThingFilter(); - thingSet.filter.SetAllow(ThingCategoryDefOf.PlantFoodRaw, true); - rp.thingSetMakerParams = thingSet; mainBasePart.faction = faction; BaseGen.symbolStack.Push(symbol: "MFI_basePart_outdoors_division", resolveParams: mainBasePart); } diff --git a/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/SymbolResolver_Kitchen.cs b/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/SymbolResolver_Kitchen.cs index 2ea9f23..0a9a35e 100644 --- a/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/SymbolResolver_Kitchen.cs +++ b/MoreFactionInteraction/World Incidents/GenStep_SymbolResolver/SymbolResolver_Kitchen.cs @@ -62,10 +62,11 @@ public override void Resolve(ResolveParams rp) Rot4 rot = (!flipACoin) ? Rot4.North : Rot4.West; if (!GenSpawn.WouldWipeAnythingWith(thingPos: potentialSpot, thingRot: rot, thingDef: thingDef, map: map, predicate: x => x.def.category == ThingCategory.Building)) { - if (!BaseGenUtility.AnyDoorAdjacentCardinalTo(rect: GenAdj.OccupiedRect(center: potentialSpot, rot: rot, size: thingDef.Size + thingDef.interactionCellOffset.ToIntVec2), map: map)) + IntVec2 dontTouchMe = new IntVec2(thingDef.Size.x + 1, thingDef.Size.z + 1); + if (!BaseGenUtility.AnyDoorAdjacentCardinalTo(rect: GenAdj.OccupiedRect(center: potentialSpot, rot: rot, size: dontTouchMe), map: map)) { ResolveParams resolveParams = rp; - resolveParams.rect = GenAdj.OccupiedRect(center: potentialSpot, rot: rot, size: thingDef.size); + resolveParams.rect = GenAdj.OccupiedRect(center: potentialSpot, rot: rot, size: thingDef.Size); resolveParams.singleThingDef = (Rand.Element(a: thingDef, b: tableButcher)); resolveParams.thingRot = rot; bool? skipSingleThingIfHasToWipeBuildingOrDoesntFit = rp.skipSingleThingIfHasToWipeBuildingOrDoesntFit; diff --git a/MoreFactionInteraction/World Incidents/IncidentWorker_HerdMigration_Ambush.cs b/MoreFactionInteraction/World Incidents/IncidentWorker_HerdMigration_Ambush.cs index 94d05cd..6df1ae5 100644 --- a/MoreFactionInteraction/World Incidents/IncidentWorker_HerdMigration_Ambush.cs +++ b/MoreFactionInteraction/World Incidents/IncidentWorker_HerdMigration_Ambush.cs @@ -29,13 +29,12 @@ protected override List GeneratePawns(IncidentParms parms) { Map map = parms.target as Map; - this.pawnKindDef = PawnKindDefOf.Thrumbo; - if (Find.WorldObjects.SiteAt(map.Tile) is Site site) - { - SitePartWorker_MigratoryHerd sitePart = - (SitePartWorker_MigratoryHerd) site.parts.First(predicate: x => x.def == MFI_DefOf.MFI_HuntersLodgePart).def.Worker; - this.pawnKindDef = sitePart?.pawnKindDef; - } + if (map == null) + this.pawnKindDef = PawnKindDefOf.Thrumbo; //something went really wrong. Let's uh.. brush it under the rug. + + else if (Find.WorldObjects.SiteAt(map.Tile) is Site site) + this.pawnKindDef = site.parts.First(predicate: x => x.def == MFI_DefOf.MFI_HuntersLodgePart).parms.animalKind; + int num = new IntRange(min: 30, max: 50).RandomInRange; List list = new List(); diff --git a/MoreFactionInteraction/World Incidents/IncidentWorker_HuntersLodge.cs b/MoreFactionInteraction/World Incidents/IncidentWorker_HuntersLodge.cs index 23212c4..7bbb0ec 100644 --- a/MoreFactionInteraction/World Incidents/IncidentWorker_HuntersLodge.cs +++ b/MoreFactionInteraction/World Incidents/IncidentWorker_HuntersLodge.cs @@ -2,10 +2,10 @@ using RimWorld; using RimWorld.Planet; using Verse; -//using Kitchen.Sink; namespace MoreFactionInteraction.World_Incidents { + public class IncidentWorker_HuntersLodge : IncidentWorker { private const int MinDistance = 2; @@ -33,32 +33,27 @@ protected override bool TryExecuteWorker(IncidentParms parms) if (site == null) return false; - if (!this.TryFindAnimalKind(tile: tile, animalKind: out PawnKindDef pawnKindDef)) - return false; - - if (pawnKindDef == null) pawnKindDef = PawnKindDefOf.Thrumbo; //mostly for testing. - int randomInRange = TimeoutDaysRange.RandomInRange; + site.Tile = tile; site.GetComponent().StartTimeout(ticks: randomInRange * GenDate.TicksPerDay); site.SetFaction(newFaction: faction); - - if(site.parts.First(predicate: x => x.def == MFI_DefOf.MFI_HuntersLodgePart).Def.Worker is SitePartWorker_MigratoryHerd sitePart) - sitePart.pawnKindDef = pawnKindDef; + site.customLabel = site.def.LabelCap + site.parts.First(predicate: x => x.def == MFI_DefOf.MFI_HuntersLodgePart).def.Worker + .GetPostProcessedThreatLabel(site, site.parts.FirstOrDefault()); Find.WorldObjects.Add(o: site); - string text = string.Format(format: this.def.letterText, faction, faction.def.leaderTitle, pawnKindDef.GetLabelPlural(), randomInRange).CapitalizeFirst(); + + string text = string.Format(format: this.def.letterText, + faction, + faction.def.leaderTitle, + SitePartUtility.GetDescriptionDialogue(site, site.parts.FirstOrDefault()), + randomInRange) + .CapitalizeFirst(); + Find.LetterStack.ReceiveLetter(label: this.def.letterLabel, text: text, textLetterDef: this.def.letterDef, lookTargets: site); return true; } - private bool TryFindAnimalKind(int tile, out PawnKindDef animalKind) - { - return (from k in DefDatabase.AllDefs - where k.RaceProps.CanDoHerdMigration && Find.World.tileTemperatures.SeasonAndOutdoorTemperatureAcceptableFor(tile: tile, animalRace: k.race) - select k).TryRandomElementByWeight(weightSelector: (PawnKindDef x) => x.RaceProps.wildness, result: out animalKind); - } - private static bool TryFindTile(out int tile) { return TileFinder.TryFindNewSiteTile(tile: out tile, minDist: MinDistance, maxDist: MaxDistance, allowCaravans: true, preferCloserTiles: false); diff --git a/MoreFactionInteraction/World Incidents/SitePartWorker_MigratoryHerd.cs b/MoreFactionInteraction/World Incidents/SitePartWorker_MigratoryHerd.cs index 5f687df..ec0a867 100644 --- a/MoreFactionInteraction/World Incidents/SitePartWorker_MigratoryHerd.cs +++ b/MoreFactionInteraction/World Incidents/SitePartWorker_MigratoryHerd.cs @@ -1,13 +1,13 @@ using RimWorld; using RimWorld.Planet; using Verse; +using System.Linq; +using UnityEngine; namespace MoreFactionInteraction.World_Incidents { public class SitePartWorker_MigratoryHerd : SitePartWorker { - public PawnKindDef pawnKindDef; - public override string GetPostProcessedThreatLabel(Site site, SiteCoreOrPartBase siteCoreOrPart) { return string.Concat(base.GetPostProcessedThreatLabel(site, siteCoreOrPart), @@ -17,15 +17,6 @@ public override string GetPostProcessedThreatLabel(Site site, SiteCoreOrPartBase ); } - - //public IncidentParms parmesan; - //public Faction faction; - - //public override string CompInspectStringExtra() - //{ - // return "MFI_HuntersLodgeInspectString".Translate(new object[] { faction, pawnKindDef.GetLabelPlural() }); - //} - public override void PostMapGenerate(Map map) { IncidentParms incidentParms = StorytellerUtility.DefaultParmsNow(incCat: IncidentCategoryDefOf.Misc, target: map); @@ -33,22 +24,26 @@ public override void PostMapGenerate(Map map) Find.Storyteller.incidentQueue.Add(qi: queuedIncident); } - + public override string GetPostProcessedDescriptionDialogue(Site site, SiteCoreOrPartBase siteCoreOrPart) + { + return string.Format(base.GetPostProcessedDescriptionDialogue(site, siteCoreOrPart), GenLabel.BestKindLabel(siteCoreOrPart.parms.animalKind, Gender.None, true)); + } + + private bool TryFindAnimalKind(int tile, out PawnKindDef animalKind) + { + return (from k in DefDatabase.AllDefs + where k.RaceProps.CanDoHerdMigration && Find.World.tileTemperatures.SeasonAndOutdoorTemperatureAcceptableFor(tile: tile, animalRace: k.race) + select k).TryRandomElementByWeight(weightSelector: (PawnKindDef x) => x.RaceProps.wildness, result: out animalKind); + } - //public override void PostExposeData() - //{ - // base.PostExposeData(); - // Scribe_Defs.Look(ref pawnKindDef, "MFI_HuntersLodgepawnKindDef"); - // Scribe_References.Look(ref faction, "MFI_HuntersLodgeFaction"); - // Scribe_Deep.Look(ref this.parmesan, "MFI_HuntersLodgeincidentParms", new object[0]); - //} + public override SiteCoreOrPartParams GenerateDefaultParams(Site site, float myThreatPoints) + { + SiteCoreOrPartParams siteCoreOrPartParams = base.GenerateDefaultParams(site, myThreatPoints); + if (TryFindAnimalKind(site.Tile, out siteCoreOrPartParams.animalKind)) + { + siteCoreOrPartParams.threatPoints = Mathf.Max(siteCoreOrPartParams.threatPoints, siteCoreOrPartParams.animalKind.combatPower); + } + return siteCoreOrPartParams; + } } - - //class WorldObjectCompProperties_MigratoryHerd : WorldObjectCompProperties - //{ - // public WorldObjectCompProperties_MigratoryHerd() - // { - // this.compClass = typeof(SitePartWorker_MigratoryHerd); - // } - //} }