mirror of
https://github.com/yairm210/Unciv.git
synced 2025-10-01 07:51:53 -04:00
Add Militaristic type city-state.
This commit is contained in:
parent
3b515f58d7
commit
a8e248b892
@ -939,6 +939,19 @@
|
|||||||
secondaryColor:[194,97,255],
|
secondaryColor:[194,97,255],
|
||||||
cities:["Antwerp"]
|
cities:["Antwerp"]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name:"Dublin",
|
||||||
|
adjective:["Dublin"],
|
||||||
|
cityStateType:"Militaristic",
|
||||||
|
|
||||||
|
declaringWar:"You leave us no choice. War it must be.",
|
||||||
|
attacked:"Very well, this shall not be forgotten.",
|
||||||
|
afterPeace:"May peace forever bless our lands.",
|
||||||
|
|
||||||
|
mainColor:[0, 0, 0],
|
||||||
|
secondaryColor:[211,180,113],
|
||||||
|
cities:["Dublin"]
|
||||||
|
},
|
||||||
/*
|
/*
|
||||||
{
|
{
|
||||||
name:"Tyre",
|
name:"Tyre",
|
||||||
|
@ -3,5 +3,6 @@ package com.unciv.logic.civilization
|
|||||||
enum class CityStateType{
|
enum class CityStateType{
|
||||||
Cultured,
|
Cultured,
|
||||||
Maritime,
|
Maritime,
|
||||||
Mercantile
|
Mercantile,
|
||||||
|
Militaristic
|
||||||
}
|
}
|
@ -6,6 +6,7 @@ import com.badlogic.gdx.math.Vector2
|
|||||||
import com.unciv.Constants
|
import com.unciv.Constants
|
||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
import com.unciv.logic.GameInfo
|
import com.unciv.logic.GameInfo
|
||||||
|
import com.unciv.logic.automation.NextTurnAutomation
|
||||||
import com.unciv.logic.city.CityInfo
|
import com.unciv.logic.city.CityInfo
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomacyManager
|
import com.unciv.logic.civilization.diplomacy.DiplomacyManager
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
|
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
|
||||||
@ -397,5 +398,18 @@ class CivilizationInfo {
|
|||||||
updateStatsForNextTurn()
|
updateStatsForNextTurn()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun giftMilitaryUnitBy(otherCiv: CivilizationInfo) {
|
||||||
|
val city = NextTurnAutomation().getClosestCities(this, otherCiv).city1
|
||||||
|
if (city == null) {
|
||||||
|
addNotification("Exception! Failed to find a suitable city to place gift unit.".tr(), null, Color.RED)
|
||||||
|
} else {
|
||||||
|
var militaryUnit = city.cityConstructions
|
||||||
|
.getConstructableUnits().filter { !it.unitType.isCivilian() && it.unitType.isLandUnit()}
|
||||||
|
.random()
|
||||||
|
placeUnitNearTile(city.location, militaryUnit.name)
|
||||||
|
addNotification("[${otherCiv.civName}] gave us a [${militaryUnit.name}] as gift near [${city.name}]!".tr(), null, Color.RED)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package com.unciv.logic.civilization.diplomacy
|
|||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.unciv.Constants
|
import com.unciv.Constants
|
||||||
import com.unciv.logic.civilization.AlertType
|
import com.unciv.logic.civilization.AlertType
|
||||||
|
import com.unciv.logic.civilization.CityStateType
|
||||||
import com.unciv.logic.civilization.CivilizationInfo
|
import com.unciv.logic.civilization.CivilizationInfo
|
||||||
import com.unciv.logic.civilization.PopupAlert
|
import com.unciv.logic.civilization.PopupAlert
|
||||||
import com.unciv.logic.trade.Trade
|
import com.unciv.logic.trade.Trade
|
||||||
@ -30,7 +31,8 @@ enum class DiplomacyFlags{
|
|||||||
BorderConflict,
|
BorderConflict,
|
||||||
SettledCitiesNearUs,
|
SettledCitiesNearUs,
|
||||||
AgreedToNotSettleNearUs,
|
AgreedToNotSettleNearUs,
|
||||||
IgnoreThemSettlingNearUs
|
IgnoreThemSettlingNearUs,
|
||||||
|
ProvideMilitaryUnit
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class DiplomaticModifiers{
|
enum class DiplomaticModifiers{
|
||||||
@ -260,12 +262,23 @@ class DiplomacyManager() {
|
|||||||
if(!hasFlag(DiplomacyFlags.DeclarationOfFriendship))
|
if(!hasFlag(DiplomacyFlags.DeclarationOfFriendship))
|
||||||
revertToZero(DiplomaticModifiers.DeclarationOfFriendship, 1/2f) //decreases slowly and will revert to full if it is declared later
|
revertToZero(DiplomaticModifiers.DeclarationOfFriendship, 1/2f) //decreases slowly and will revert to full if it is declared later
|
||||||
|
|
||||||
|
if(otherCiv().isCityState() && otherCiv().getCityStateType() == CityStateType.Militaristic) {
|
||||||
|
if (relationshipLevel() < RelationshipLevel.Friend) {
|
||||||
|
if (hasFlag(DiplomacyFlags.ProvideMilitaryUnit)) removeFlag(DiplomacyFlags.ProvideMilitaryUnit)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!hasFlag(DiplomacyFlags.ProvideMilitaryUnit)) setFlag(DiplomacyFlags.ProvideMilitaryUnit, 20)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for(flag in flagsCountdown.keys.toList()) {
|
for(flag in flagsCountdown.keys.toList()) {
|
||||||
flagsCountdown[flag] = flagsCountdown[flag]!! - 1
|
flagsCountdown[flag] = flagsCountdown[flag]!! - 1
|
||||||
if(flagsCountdown[flag]==0) {
|
if(flagsCountdown[flag]==0) {
|
||||||
flagsCountdown.remove(flag)
|
flagsCountdown.remove(flag)
|
||||||
if(flag==DiplomacyFlags.AgreedToNotSettleNearUs.name)
|
if(flag==DiplomacyFlags.AgreedToNotSettleNearUs.name)
|
||||||
addModifier(DiplomaticModifiers.FulfilledPromiseToNotSettleCitiesNearUs,10f)
|
addModifier(DiplomaticModifiers.FulfilledPromiseToNotSettleCitiesNearUs,10f)
|
||||||
|
else if(flag==DiplomacyFlags.ProvideMilitaryUnit.name)
|
||||||
|
civInfo.giftMilitaryUnitBy(otherCiv())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,6 +104,7 @@ class DiplomacyScreen:CameraStageBaseScreen() {
|
|||||||
CityStateType.Cultured -> "Provides [" + (3 * (currentPlayerCiv.getEra().ordinal+1)).toString() + "] culture at [30] Influence"
|
CityStateType.Cultured -> "Provides [" + (3 * (currentPlayerCiv.getEra().ordinal+1)).toString() + "] culture at [30] Influence"
|
||||||
CityStateType.Maritime -> "Provides 3 food in capital and 1 food in other cities at [30] Influence"
|
CityStateType.Maritime -> "Provides 3 food in capital and 1 food in other cities at [30] Influence"
|
||||||
CityStateType.Mercantile -> "Provides 3 happiness at [30] Influence"
|
CityStateType.Mercantile -> "Provides 3 happiness at [30] Influence"
|
||||||
|
CityStateType.Militaristic -> "Provides land units every 20 turns at [30] Influence"
|
||||||
}
|
}
|
||||||
|
|
||||||
val friendBonusLabel = friendBonusText.toLabel()
|
val friendBonusLabel = friendBonusText.toLabel()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user