Added CityStateTypes into rulesets! Not in use yet

This commit is contained in:
Yair Morgenstern 2022-11-21 19:59:55 +02:00
parent cf7966d84a
commit 6976360da6
4 changed files with 99 additions and 11 deletions

View File

@ -0,0 +1,32 @@
[
{
"name":"Cultured",
"friendBonusUniques": ["[+3 Culture]"],
"allyBonusUniques": ["[+6 Culture]"],
"color": [139, 96, 255]
},
{
"Maritime":"Maritime",
"friendBonusUniques": ["[+2 Food] [in capital]"],
"allyBonusUniques": ["[+2 Food] [in capital]", "[+1 Food] [in all cities]"],
"color": [56, 255, 112]
},
{
"name":"Mercantile",
"friendBonusUniques": ["[+2 Happiness]"],
"allyBonusUniques": ["[+2 Happiness]", "Provides a unique luxury"],
"color": [255, 216, 0]
},
{
"name":"Militaristic",
"friendBonusUniques": ["Provides military units every ≈[20] turns"],
"allyBonusUniques": ["Provides military units every ≈[17] turns"],
"color": [255, 0, 0]
},
{
"name":"Religious",
"friendBonusUniques": ["[+3 Faith]"],
"allyBonusUniques": ["[+6 Faith]"],
"color": [255, 255, 255]
}
]

View File

@ -0,0 +1,32 @@
[
{
"name":"Cultured",
"friendBonusUniques": ["[+3 Culture]"],
"allyBonusUniques": ["[+6 Culture]"],
"color": [139, 96, 255]
},
{
"Maritime":"Maritime",
"friendBonusUniques": ["[+2 Food] [in capital]"],
"allyBonusUniques": ["[+2 Food] [in capital]", "[+1 Food] [in all cities]"],
"color": [56, 255, 112]
},
{
"name":"Mercantile",
"friendBonusUniques": ["[+2 Happiness]"],
"allyBonusUniques": ["[+2 Happiness]", "Provides a unique luxury"],
"color": [255, 216, 0]
},
{
"name":"Militaristic",
"friendBonusUniques": ["Provides military units every ≈[20] turns"],
"allyBonusUniques": ["Provides military units every ≈[17] turns"],
"color": [255, 0, 0]
},
{
"name":"Religious",
"friendBonusUniques": ["[+3 Faith]"],
"allyBonusUniques": ["[+6 Faith]"],
"color": [255, 255, 255]
}
]

View File

@ -0,0 +1,18 @@
package com.unciv.models.ruleset
import com.unciv.models.ruleset.unique.Unique
import com.unciv.models.ruleset.unique.UniqueMap
import com.unciv.models.stats.INamed
import com.unciv.ui.utils.extensions.colorFromRGB
class CityStateType: INamed {
override var name = ""
var friendBonusUniques = ArrayList<String>()
val friendBonusUniqueMap by lazy { UniqueMap().addUniques(friendBonusUniques.map { Unique(it) }) }
var allyBonusUniques = ArrayList<String>()
val allyBonusUniqueMap by lazy { UniqueMap().addUniques(allyBonusUniques.map { Unique(it) }) }
lateinit var color:List<Int>
private val colorObject by lazy { colorFromRGB(color) }
fun getColor() = colorObject
}

View File

@ -96,6 +96,7 @@ class Ruleset {
val unitPromotions = LinkedHashMap<String, Promotion>()
val unitTypes = LinkedHashMap<String, UnitType>()
var victories = LinkedHashMap<String, Victory>()
var cityStateTypes = LinkedHashMap<String, CityStateType>()
val mods = LinkedHashSet<String>()
var modOptions = ModOptions()
@ -141,6 +142,7 @@ class Ruleset {
units.putAll(ruleset.units)
unitTypes.putAll(ruleset.unitTypes)
victories.putAll(ruleset.victories)
cityStateTypes.putAll(ruleset.cityStateTypes)
for (unitToRemove in ruleset.modOptions.unitsToRemove) units.remove(unitToRemove)
modOptions.uniques.addAll(ruleset.modOptions.uniques)
modOptions.constants.merge(ruleset.modOptions.constants)
@ -196,6 +198,7 @@ class Ruleset {
units.clear()
unitTypes.clear()
victories.clear()
cityStateTypes.clear()
}
fun allRulesetObjects(): Sequence<IRulesetObject> =
@ -359,9 +362,14 @@ class Ruleset {
globalUniques = json().fromJsonFile(GlobalUniques::class.java, globalUniquesFile)
}
val victoryTypesFiles = folderHandle.child("VictoryTypes.json")
if (victoryTypesFiles.exists()) {
victories += createHashmap(json().fromJsonFile(Array<Victory>::class.java, victoryTypesFiles))
val victoryTypesFile = folderHandle.child("VictoryTypes.json")
if (victoryTypesFile.exists()) {
victories += createHashmap(json().fromJsonFile(Array<Victory>::class.java, victoryTypesFile))
}
val cityStateTypesFile = folderHandle.child("VictoryTypes.json")
if (cityStateTypesFile.exists()) {
cityStateTypes += createHashmap(json().fromJsonFile(Array<CityStateType>::class.java, cityStateTypesFile))
}
@ -374,20 +382,18 @@ class Ruleset {
}
// These should be permanent
if (ruinRewards.isEmpty()) {
if (ruinRewards.isEmpty())
ruinRewards.putAll(RulesetCache.getVanillaRuleset().ruinRewards)
}
if (globalUniques.uniques.isEmpty()) {
globalUniques = RulesetCache.getVanillaRuleset().globalUniques
}
// If we have no victories, add all the default victories
if (victories.isEmpty()) {
victories.putAll(RulesetCache.getVanillaRuleset().victories)
}
if (victories.isEmpty()) victories.putAll(RulesetCache.getVanillaRuleset().victories)
if (speeds.isEmpty()) {
speeds.putAll(RulesetCache.getVanillaRuleset().speeds)
}
if (speeds.isEmpty()) speeds.putAll(RulesetCache.getVanillaRuleset().speeds)
if (cityStateTypes.isEmpty()) cityStateTypes.putAll(RulesetCache.getVanillaRuleset().cityStateTypes)
}
debug("Loading ruleset - %sms", System.currentTimeMillis() - gameBasicsStartTime)