mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-27 13:55:54 -04:00
Replaced hardcoded embarked sight with configurable
"Normal vision when embarked" replaced by "[+1] Sight <for [Embarked] units>"
This commit is contained in:
parent
26a155351e
commit
2f25ed3053
@ -6,7 +6,8 @@
|
|||||||
"[-50]% [Production] [in all cities] <when below [-10] Happiness>",
|
"[-50]% [Production] [in all cities] <when below [-10] Happiness>",
|
||||||
"[-33]% Strength <for [All] units> <when below [-10] Happiness>",
|
"[-33]% Strength <for [All] units> <when below [-10] Happiness>",
|
||||||
"Cannot build [Settler] units <when below [-10] Happiness>",
|
"Cannot build [Settler] units <when below [-10] Happiness>",
|
||||||
"Rebel units may spawn <when below [-20] Happiness>"
|
"Rebel units may spawn <when below [-20] Happiness>",
|
||||||
|
"[-1] Sight <for [Embarked] units>"
|
||||||
|
|
||||||
// TODO: Implement the uniques below
|
// TODO: Implement the uniques below
|
||||||
// "[+20]% [Culture] [in all cities] <during a golden age>",
|
// "[+20]% [Culture] [in all cities] <during a golden age>",
|
||||||
|
@ -538,7 +538,9 @@
|
|||||||
"innerColor": [255,255,75],
|
"innerColor": [255,255,75],
|
||||||
"favoredReligion": "Christianity",
|
"favoredReligion": "Christianity",
|
||||||
"uniqueName": "Wayfinding",
|
"uniqueName": "Wayfinding",
|
||||||
"uniques": ["Enables embarkation for land units <starting from the [Ancient era]>", "Enables [All] units to enter ocean tiles <starting from the [Ancient era]>", "Normal vision when embarked <for [All] units>", "[+10]% Strength <within [2] tiles of a [Moai]>"],
|
"uniques": ["Enables embarkation for land units <starting from the [Ancient era]>",
|
||||||
|
"Enables [All] units to enter ocean tiles <starting from the [Ancient era]>",
|
||||||
|
"[+1] Sight <for [Embarked] units>", "[+10]% Strength <within [2] tiles of a [Moai]>"],
|
||||||
"cities": ["Honolulu","Samoa","Tonga","Nuku Hiva","Raiatea","Aotearoa","Tahiti","Hilo","Te Wai Pounamu","Rapa Nui",
|
"cities": ["Honolulu","Samoa","Tonga","Nuku Hiva","Raiatea","Aotearoa","Tahiti","Hilo","Te Wai Pounamu","Rapa Nui",
|
||||||
"Tuamotu","Rarotonga","Tuvalu","Tubuai","Mangareva","Oahu","Kiritimati","Ontong Java","Niue","Rekohu",
|
"Tuamotu","Rarotonga","Tuvalu","Tubuai","Mangareva","Oahu","Kiritimati","Ontong Java","Niue","Rekohu",
|
||||||
"Rakahanga","Bora Bora","Kailua","Uvea","Futuna","Rotuma","Tokelau","Lahaina","Bellona","Mungava","Tikopia",
|
"Rakahanga","Bora Bora","Kailua","Uvea","Futuna","Rotuma","Tokelau","Lahaina","Bellona","Mungava","Tikopia",
|
||||||
|
@ -1309,7 +1309,7 @@
|
|||||||
"cost": 400,
|
"cost": 400,
|
||||||
"requiredTech": "Pharmaceuticals",
|
"requiredTech": "Pharmaceuticals",
|
||||||
"promotions": ["Amphibious"],
|
"promotions": ["Amphibious"],
|
||||||
"uniques": ["Normal vision when embarked", "Defense bonus when embarked"],
|
"uniques": ["[+1] Sight <when [Embarked]>", "Defense bonus when embarked"],
|
||||||
"attackSound": "shot"
|
"attackSound": "shot"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -6,7 +6,8 @@
|
|||||||
"[-50]% [Production] [in all cities] <when below [-10] Happiness>",
|
"[-50]% [Production] [in all cities] <when below [-10] Happiness>",
|
||||||
"[-33]% Strength <for [All] units> <when below [-10] Happiness>",
|
"[-33]% Strength <for [All] units> <when below [-10] Happiness>",
|
||||||
"Cannot build [Settler] units <when below [-10] Happiness>",
|
"Cannot build [Settler] units <when below [-10] Happiness>",
|
||||||
"Rebel units may spawn <when below [-20] Happiness>"
|
"Rebel units may spawn <when below [-20] Happiness>",
|
||||||
|
"[-1] Sight <for [Embarked] units>"
|
||||||
|
|
||||||
// TODO: Implement the uniques below
|
// TODO: Implement the uniques below
|
||||||
// "[+20]% [Culture] [in all cities] <during a golden age>",
|
// "[+20]% [Culture] [in all cities] <during a golden age>",
|
||||||
@ -22,4 +23,4 @@
|
|||||||
// "[+20]% [Production] [in cities connected via railroad]"
|
// "[+20]% [Production] [in cities connected via railroad]"
|
||||||
// something something unit supply
|
// something something unit supply
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -499,7 +499,10 @@
|
|||||||
"outerColor": [217,89,0],
|
"outerColor": [217,89,0],
|
||||||
"innerColor": [255,255,75],
|
"innerColor": [255,255,75],
|
||||||
"uniqueName": "Wayfinding",
|
"uniqueName": "Wayfinding",
|
||||||
"uniques": ["Enables embarkation for land units <starting from the [Ancient era]>", "Enables [All] units to enter ocean tiles <starting from the [Ancient era]>", "Normal vision when embarked <for [All] units>", "[+10]% Strength <within [2] tiles of a [Moai]>"],
|
"uniques": ["Enables embarkation for land units <starting from the [Ancient era]>",
|
||||||
|
"Enables [All] units to enter ocean tiles <starting from the [Ancient era]>",
|
||||||
|
"[+1] Sight <for [Embarked] units>",
|
||||||
|
"[+10]% Strength <within [2] tiles of a [Moai]>"],
|
||||||
"cities": ["Honolulu","Samoa","Tonga","Nuku Hiva","Raiatea","Aotearoa","Tahiti","Hilo","Te Wai Pounamu","Rapa Nui",
|
"cities": ["Honolulu","Samoa","Tonga","Nuku Hiva","Raiatea","Aotearoa","Tahiti","Hilo","Te Wai Pounamu","Rapa Nui",
|
||||||
"Tuamotu","Rarotonga","Tuvalu","Tubuai","Mangareva","Oahu","Kiritimati","Ontong Java","Niue","Rekohu",
|
"Tuamotu","Rarotonga","Tuvalu","Tubuai","Mangareva","Oahu","Kiritimati","Ontong Java","Niue","Rekohu",
|
||||||
"Rakahanga","Bora Bora","Kailua","Uvea","Futuna","Rotuma","Tokelau","Lahaina","Bellona","Mungava","Tikopia",
|
"Rakahanga","Bora Bora","Kailua","Uvea","Futuna","Rotuma","Tokelau","Lahaina","Bellona","Mungava","Tikopia",
|
||||||
|
@ -278,15 +278,14 @@ class MapUnit : IsPartOfGameInfoSerialization {
|
|||||||
|
|
||||||
val conditionalState = StateForConditionals(civInfo = civ, unit = this)
|
val conditionalState = StateForConditionals(civInfo = civ, unit = this)
|
||||||
|
|
||||||
|
val relevantUniques = getMatchingUniques(UniqueType.Sight, conditionalState, checkCivInfoUniques = true) +
|
||||||
|
getTile().getMatchingUniques(UniqueType.Sight, conditionalState)
|
||||||
if (isEmbarked() && !hasUnique(UniqueType.NormalVisionWhenEmbarked, conditionalState, checkCivInfoUniques = true)) {
|
if (isEmbarked() && !hasUnique(UniqueType.NormalVisionWhenEmbarked, conditionalState, checkCivInfoUniques = true)) {
|
||||||
return 1
|
visibilityRange += relevantUniques
|
||||||
|
.filter { it.conditionals.any { it.type == UniqueType.ConditionalOurUnit && it.params[0] == Constants.embarked } }
|
||||||
|
.sumOf { it.params[0].toInt() }
|
||||||
}
|
}
|
||||||
|
else visibilityRange += relevantUniques.sumOf { it.params[0].toInt() }
|
||||||
visibilityRange += getMatchingUniques(UniqueType.Sight, conditionalState, checkCivInfoUniques = true)
|
|
||||||
.sumOf { it.params[0].toInt() }
|
|
||||||
|
|
||||||
visibilityRange += getTile().getMatchingUniques(UniqueType.Sight, conditionalState)
|
|
||||||
.sumOf { it.params[0].toInt() }
|
|
||||||
|
|
||||||
if (visibilityRange < 1) visibilityRange = 1
|
if (visibilityRange < 1) visibilityRange = 1
|
||||||
|
|
||||||
@ -799,15 +798,14 @@ class MapUnit : IsPartOfGameInfoSerialization {
|
|||||||
return filter.filterAndLogic { matchesFilter(it) } // multiple types at once - AND logic. Looks like:"{Military} {Land}"
|
return filter.filterAndLogic { matchesFilter(it) } // multiple types at once - AND logic. Looks like:"{Military} {Land}"
|
||||||
?: when (filter) {
|
?: when (filter) {
|
||||||
|
|
||||||
// todo: unit filters should be adjectives, fitting "[filterType] units"
|
Constants.wounded, "wounded units" -> health < 100
|
||||||
// This means converting "wounded units" to "Wounded", "Barbarians" to "Barbarian"
|
|
||||||
"Wounded", "wounded units" -> health < 100
|
|
||||||
Constants.barbarians, "Barbarian" -> civ.isBarbarian()
|
Constants.barbarians, "Barbarian" -> civ.isBarbarian()
|
||||||
"City-State" -> civ.isCityState()
|
"City-State" -> civ.isCityState()
|
||||||
"Embarked" -> isEmbarked()
|
Constants.embarked -> isEmbarked()
|
||||||
"Non-City" -> true
|
"Non-City" -> true
|
||||||
else -> {
|
else -> {
|
||||||
if (baseUnit.matchesFilter(filter)) return true
|
if (baseUnit.matchesFilter(filter)) return true
|
||||||
|
if (civ.nation.matchesFilter(filter)) return true
|
||||||
if (tempUniquesMap.containsKey(filter)) return true
|
if (tempUniquesMap.containsKey(filter)) return true
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -441,6 +441,8 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
|
|||||||
HealAdjacentUnits("All adjacent units heal [amount] HP when healing", UniqueTarget.Unit),
|
HealAdjacentUnits("All adjacent units heal [amount] HP when healing", UniqueTarget.Unit),
|
||||||
|
|
||||||
// Vision
|
// Vision
|
||||||
|
|
||||||
|
@Deprecated("as of 4.6.4", ReplaceWith("[+1] Sight <for [Embarked] units>\" OR \"[+1] Sight <when [Embarked]>"))
|
||||||
NormalVisionWhenEmbarked("Normal vision when embarked", UniqueTarget.Unit, UniqueTarget.Global),
|
NormalVisionWhenEmbarked("Normal vision when embarked", UniqueTarget.Unit, UniqueTarget.Global),
|
||||||
DefenceBonusWhenEmbarked("Defense bonus when embarked", UniqueTarget.Unit, UniqueTarget.Global),
|
DefenceBonusWhenEmbarked("Defense bonus when embarked", UniqueTarget.Unit, UniqueTarget.Global),
|
||||||
NoSight("No Sight", UniqueTarget.Unit),
|
NoSight("No Sight", UniqueTarget.Unit),
|
||||||
|
@ -1840,6 +1840,11 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl
|
|||||||
|
|
||||||
Applicable to: Conditional
|
Applicable to: Conditional
|
||||||
|
|
||||||
|
??? example "<when [mapUnitFilter]>"
|
||||||
|
Example: "<when [Wounded]>"
|
||||||
|
|
||||||
|
Applicable to: Conditional
|
||||||
|
|
||||||
??? example "<for units with [promotion]>"
|
??? example "<for units with [promotion]>"
|
||||||
Example: "<for units with [Shock I]>"
|
Example: "<for units with [Shock I]>"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user