Skip to content

Commit

Permalink
Add mod "Downtown"
Browse files Browse the repository at this point in the history
  • Loading branch information
lion053 committed Aug 9, 2024
1 parent d753c13 commit a73abda
Show file tree
Hide file tree
Showing 645 changed files with 184,437 additions and 0 deletions.
52 changes: 52 additions & 0 deletions [Building] Downtown (Lion053)/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Downtown (Lion053)

## TL;DR

- This mod adds 3x3-sized building variations for public services, institutions, the post office and hotel.
- They are intended to be built in a block between residences to form a lively downtown or to cover small (leftover) areas where the larger original would be a waste of precious space.

## Properties

- Public service ranges are lower than their larger originals.
- Institutions have a slightly lower influence distance and you can only mobilize 2 instead of 3 special resolver units.
- The tiny hotel can accomodate 1/3 of the amount of tourists a vanilla hotel can accomodate.
- Construction and maintenance costs reflect their later unlocks
- All other values are inherited from their originals

## Menu

- "Engineer" category, next to Coffee chain
- "Public Services" category, next to Bank

## Unlock

- The unlock starts at 1.000 engineers for all building types which are originally available at this level. The others are unlocked when their original unlock conditions are met (e.g. bank at 3.000 engineers).
- For non-dlc owners, the hotel, post office and advanced institutions can be built as ornaments / skins.

## Includes

- Market with 4 skins
- Pub with 4 skins
- School with 3 skins
- Varietè Theatre with 2 skins
- University
- Bank with 3 skins
- Clubhouse
- Radio Tower
- Post Office
- Hotel with 4 skins
- Fire Department with 2 skins
- Advanced Fire Department with 2 skins
- Police Station with 2 skins
- Advanced Police Station with 2 skins
- Hospital with 4 skins
- Advanced Hospital with 3 skins

## Compatibility

- Should be compatible with all other mods, since it does not alter, replace or remove anything vanilla.

## Changelog

- 1.0: First release

146 changes: 146 additions & 0 deletions [Building] Downtown (Lion053)/[Shared] Pools and Definitions/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# Shared Pools and Definitions

Shared effect target pools, New World hotel needs and other definitions to use as sub-mod.

The modloader will always load the latest version.
You do not need to update your sub-mod if you don't need the new features yourself.

## Do not modify contents of this mod

Making changes may break mods and cause compatibility issues.

Go to [github.com/anno-mods/shared-resources](https://github.com/anno-mods/shared-resources) and create an issue to make change suggestions.

## How to Use

Copy the `[Shared] Pools and Definitions` into your mod and add `shared-pools-and-definitions` to your `LoadAfterIds`.

### Pools

Generic approach:

```xml
<!-- add to pools having sand mine -->
<ModOp Type="add"
Path="//ItemEffectTargetPool/EffectTargetGUIDs[Item/GUID='1010560']">
<Item>
<GUID>1500010708</GUID> <!-- NW Sand Pit -->
</Item>
</ModOp>
```

Fast approach:
```xml
<!-- add to sand pool -->
<ModOp Type="add" GUID="1500010714"
Path="/Values/ItemEffectTargetPool/EffectTargetGUIDs">
<Item>
<GUID>1500010708</GUID> <!-- NW Sand Pit -->
</Item>
</ModOp>
```

### Insert into Progression Menus by Unlock

Inserting into construction menus at the right spot while ensuring no other mods break your entry is quite cumbersome.

`shared-pools-and-definitions` allows you to insert using population progress instead of GUIDs.

Snippet:

```xml
<ModOp Type="addNextSibling" GUID="25000190"
Path="/Values/ConstructionCategory/BuildingList/Item[Worker&lt;=400][last()]">
<Item>
<Building>1500010111</Building>
<Worker>400</Worker>
</Item>
</ModOp>
```

Result:

![](./../doc/menu-result.png)

#### Menu Unlock Guide

- Always add your own unlock condition
- If there's no unlock in this region, use the consumer unlock instead. E.g. Rum has no unlock in the OW, but consumption starts at 500 Artisans
- For production chains: use the tab of the highest workforce in the chain
- For construction categories: use the tab of the lowest workforce/consumer in the chain
- Include previous population if you add an entry to a lower tier, e.g. add `Farmer` if you want to add an `Worker` unlocked chain into the Farmers tab.

Currently available populations are:
- OW: `Farmer`, `Worker`, `Artisan`, `Engineer`

Feel free to contribute other populations as well.

### Hotel Needs

```xml
<!-- copy needs from vanilla/NW Tourism hotel -->
<ModOp Type="add" GUID="601379" Path="/Values/PopulationLevel7/PopulationInputs/Item/RequiredBuildings[Item/Region='Moderate']">
<Item>
<RequiredBuilding>1500010500</RequiredBuilding>
<Region>Moderate</Region>
</Item>
</ModOp>
<ModOp Type="add" GUID="601379" Path="/Values/PopulationLevel7/PopulationInputs/Item/RequiredBuildings[Item/Region='Colony01']">
<Item>
<RequiredBuilding>1500010529</RequiredBuilding>
<Region>Colony01</Region>
</Item>
</ModOp>
```

### Construction Menu Descriptions

The mod enableds you to change the words "Production Chain" in the construction chain InfoTip.

![](../doc/construction-infotip.jpg)

**Production Chains:**

```xml
<Asset>
<Template>ProductionChain</Template>
<Values>
<Standard>
<InfoDescription><!-- Text GUID --></InfoDescription>
...
```

Changing the description of categories and buildings is possible already possible in vanilla.

**Production Categories:**

```xml
<Asset>
<Template>ConstructionCategory</Template>
<Values>
<ConstructionCategory>
<CategoryDescription><!-- Text GUID --></CategoryDescription>
...
```

**Buildings:**

```xml
<Asset>
<Template>FactoryBuilding7</Template>
<Values>
<Building>
<BuildingCategoryName><!-- Text GUID --></BuildingCategoryName>
...
```

## Changes
- 8.3: Adjust/add pools (Kurila)
- 8.2: Updated Korean translations (thanks to modpark817)
- 8.2: Added Timber production pool
- 8.1: Add NW Docklands need to tourists only when `NewWorldDocklands` is active
- 8: Replace NW tourist need of fur coats with ponchos
- 7: Added pools for motor assembly plant and subway station
- 7: Renamed most pool names from plural / 'all' to singular
- 6: Added pools for oil power plants, and various other productions
- 6: Renamed `assets-pools.xml` to `assets-pools.include.xml`
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
<!--
Compatibility Changes for Hotel needs
You are free to include this snippet in your mod, as long as you don't change any values.
Copy the file as is and use `<Include File="./assets-hotel-needs.include.xml" />`.
Original from: https://github.com/anno-mods/shared-resources
You can request changes there as well.
Limit all Hotel needs to vanilla hotel only.
Mods have to add themselves to the `RequiredBuildings` list.
<ModOp Type="add" GUID="601379" Path="/Values/PopulationLevel7/PopulationInputs/Item/RequiredBuildings[Item/Region='Moderate']">
<Item>
<RequiredBuilding>my-guid</RequiredBuilding>
<Region>Moderate</Region>
</Item>
</ModOp>
-->
<ModOps>
<!-- # OW Needs -->
<ModOp Type="add" GUID="601379"
Condition="~/Values/PopulationLevel7/PopulationInputs/Item[not(RequiredBuildings)]"
Path="/Values/PopulationLevel7/PopulationInputs/Item[not(RequiredBuildings)]">
<RequiredBuildings>
<Item>
<RequiredBuilding>601445</RequiredBuilding>
<Region>Moderate</Region>
</Item>
</RequiredBuildings>
</ModOp>

<!-- # NW Tourism Needs -->
<ModOp Type="addNextSibling" GUID="601379"
Condition="!~/Values/PopulationLevel7/PopulationInputs/Item[Product='1440134405']"
Path="/Values/PopulationLevel7/PopulationInputs/Item[Product='133573']">
<Item>
<Product>1440134405</Product> <!-- NW Tourism Boxing -->
<SupplyWeight>25</SupplyWeight>
<MoneyValue>45</MoneyValue>
<FullWeightPopulationCount>50</FullWeightPopulationCount>
<NoWeightPopulationCount>49</NoWeightPopulationCount>
<RequiredBuildings>
<Item>
<RequiredBuilding>1440134300</RequiredBuilding>
<Region>Colony01</Region>
</Item>
</RequiredBuildings>
</Item>
</ModOp>
<ModOp Type="add" GUID="601379"
Condition="!~/Values/PopulationLevel7/PopulationInputs/Item[Product='1440134406']"
Path="/Values/PopulationLevel7/PopulationInputs">
<Item>
<Product>1440134406</Product> <!-- NW Tourism Christo -->
<SupplyWeight>80</SupplyWeight>
<MoneyValue>135</MoneyValue>
<FullWeightPopulationCount>4000</FullWeightPopulationCount>
<NoWeightPopulationCount>2499</NoWeightPopulationCount>
<RequiredBuildings>
<Item>
<RequiredBuilding>1440134300</RequiredBuilding>
<Region>Colony01</Region>
</Item>
</RequiredBuildings>
</Item>
</ModOp>
<ModOp Type="addPrevSibling" GUID="601379"
Condition="!~/Values/PopulationLevel7/PopulationInputs/Item[Product='1440134407']"
Path="/Values/PopulationLevel7/PopulationInputs/Item[Product='601485']">
<Item>
<Product>1440134407</Product> <!-- NW Tourism Hacienda -->
<HappinessValue>3</HappinessValue>
<IsOptionalHappinessValue>1</IsOptionalHappinessValue>
<MoneyValue>75</MoneyValue>
<RequiredBuildings>
<Item>
<RequiredBuilding>1440134300</RequiredBuilding>
<Region>Colony01</Region>
</Item>
</RequiredBuildings>
</Item>
</ModOp>
<ModOp Type="addNextSibling" GUID="601379"
Condition="!~/Values/PopulationLevel7/PopulationInputs/Item[Product='120043']"
Path="/Values/PopulationLevel7/PopulationInputs/Item[Product='1010247']">
<Item>
<Product>120043</Product>
<Amount>0.01666667</Amount>
<HappinessValue>3</HappinessValue>
<MoneyValue>40</MoneyValue>
<FullWeightPopulationCount>75</FullWeightPopulationCount>
<NoWeightPopulationCount>49</NoWeightPopulationCount>
<RequiredBuildings>
<Item>
<RequiredBuilding>1440134300</RequiredBuilding>
<Region>Colony01</Region>
</Item>
</RequiredBuildings>
</Item>
</ModOp>

<!-- copy needs from vanilla hotel -->
<ModOp Type="add" GUID="601379"
AllowNoMatch="1"
Path="/Values/PopulationLevel7/PopulationInputs/Item[not(RequiredBuildings/Item/RequiredBuilding='1440134300') and (Product&lt;1010500) and not(Product='133573') and not(Product='132761') and not(Product='133536') and not(Product='137757') and not(Product='1010247') and not(Product='134257') and not(Product='134781')]/RequiredBuildings">
<Item>
<RequiredBuilding>1440134300</RequiredBuilding>
<Region>Colony01</Region>
</Item>
</ModOp>

<Group Condition="#NewWorldDocklands">
<ModOp Type="add" GUID="601379"
Condition="!/Values/PopulationLevel7/PopulationInputs/Item[Product='134781' and RequiredBuildings/Item/RequiredBuilding='1440134300']"
Path="/Values/PopulationLevel7/PopulationInputs/Item[Product='134781']/RequiredBuildings">
<Item>
<RequiredBuilding>1440134300</RequiredBuilding>
<Region>Colony01</Region>
</Item>
</ModOp>
</Group>
</ModOps>
Loading

0 comments on commit a73abda

Please sign in to comment.