New civilization: Denmark (#2370)
* Enable the Denmark civilization * Nation unique ability is implemented * Units unique abilities are implemented * Unit icons * Misprint in the tech name is corrected
This commit is contained in:
parent
2b120f0b2a
commit
0624542fd8
9 changed files with 34 additions and 18 deletions
BIN
android/Images/NationIcons/Denmark.png
Normal file
BIN
android/Images/NationIcons/Denmark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
BIN
android/Images/UnitIcons/Berserker.png
Normal file
BIN
android/Images/UnitIcons/Berserker.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
BIN
android/Images/UnitIcons/Norwegian Ski Infantry.png
Normal file
BIN
android/Images/UnitIcons/Norwegian Ski Infantry.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
|
@ -607,9 +607,7 @@
|
|||
"Huaras","Riobamba","Caxamalca","Sausa","Tambo Colorado","Huaca","Tumbes","Chan Chan","Sipan","Pachacamac",
|
||||
"Llactapata","Pisac","Kuelap","Pajaten","Chucuito","Choquequirao"]
|
||||
},
|
||||
/*
|
||||
{
|
||||
//NEEDS SNOW AND ICE
|
||||
"name": "Denmark",
|
||||
"leaderName": "Harald Bluetooth",
|
||||
"adjective": ["Danish"],
|
||||
|
@ -633,7 +631,7 @@
|
|||
"Sarpsborg","Odense","Aalborg","Stavanger","Vorbasse","Schleswig","Kristiansand","Halogaland","Randers",
|
||||
"Fredrikstad","Kolding","Horsens","Tromsoe","Vejle","Koge","Sandnes","Holstebro","Slagelse","Drammen",
|
||||
"Hillerod","Sonderborg","Skien","Svendborg","Holbaek","Hjorring","Fladstrand","Haderslev","Ringsted","Skrive"]
|
||||
},
|
||||
}, /*
|
||||
{
|
||||
"name": "Sweden",
|
||||
"leaderName": "Gustavus Adolphus",
|
||||
|
|
|
@ -484,7 +484,6 @@
|
|||
"attackSound": "metalhit"
|
||||
//Aside from the Great Generals II promotion, Samurai should also create Fishing Boats (not now, surely)
|
||||
},
|
||||
/*
|
||||
{
|
||||
"name": "Berserker",
|
||||
"replaces": "Longswordsman",
|
||||
|
@ -493,7 +492,7 @@
|
|||
"movement": 3,
|
||||
"strength": 21,
|
||||
"cost": 120,
|
||||
"requiredTech": "Steel",
|
||||
"requiredTech": "Metal Casting",
|
||||
"upgradesTo": "Musketman",
|
||||
"obsoleteTech": "Metallurgy",
|
||||
"requiredResource": "Iron",
|
||||
|
@ -503,7 +502,6 @@
|
|||
"attackSound": "metalhit"
|
||||
//Danish unique unit. Can attack from the sea without any penalty, and moves faster.
|
||||
},
|
||||
*/
|
||||
{
|
||||
"name": "Pikeman",
|
||||
"unitType": "Melee",
|
||||
|
@ -894,10 +892,8 @@
|
|||
"hurryCostModifier": 20,
|
||||
"attackSound": "shot"
|
||||
},
|
||||
|
||||
/*
|
||||
{
|
||||
"name": "Norvegian Ski Infantry",
|
||||
"name": "Norwegian Ski Infantry",
|
||||
"unitType": "Melee",
|
||||
"replaces": "Rifleman",
|
||||
"uniqueTo": "Denmark",
|
||||
|
@ -907,11 +903,10 @@
|
|||
"requiredTech": "Rifling",
|
||||
"obsoleteTech": "Replaceable Parts",
|
||||
"upgradesTo": "Great War Infantry",
|
||||
"uniques": ["Bonus in Snow, Tundra and Hills"],
|
||||
"uniques": ["+25% bonus in Snow, Tundra and Hills", "Double movement in Snow, Tundra and Hills"],
|
||||
"hurryCostModifier": 20,
|
||||
"attackSound": "shot"
|
||||
},
|
||||
*/
|
||||
{
|
||||
"name": "Cavalry",
|
||||
"unitType": "Mounted",
|
||||
|
|
|
@ -125,7 +125,7 @@ object BattleDamage {
|
|||
else modifiers["Attacker Bonus"] = bonus
|
||||
}
|
||||
|
||||
if(attacker.unit.isEmbarked())
|
||||
if(attacker.unit.isEmbarked() && !attacker.unit.hasUnique("Amphibious"))
|
||||
modifiers["Landing"] = -0.5f
|
||||
|
||||
if (attacker.isMelee()) {
|
||||
|
@ -206,6 +206,14 @@ object BattleDamage {
|
|||
if(!tile.isFriendlyTerritory(unit.getCivInfo()) && unit.unit.hasUnique("+20% bonus outside friendly territory"))
|
||||
modifiers["Foreign Land"] = 0.2f
|
||||
|
||||
if (unit.unit.hasUnique("+25% bonus in Snow, Tundra and Hills") &&
|
||||
(tile.baseTerrain == Constants.snow
|
||||
|| tile.baseTerrain == Constants.tundra
|
||||
|| tile.baseTerrain == Constants.hill) &&
|
||||
// except when there is a vegetation
|
||||
(tile.terrainFeature != Constants.forest
|
||||
|| tile.terrainFeature != Constants.jungle))
|
||||
modifiers[tile.baseTerrain] = 0.25f
|
||||
|
||||
if(unit.getCivInfo().nation.unique == UniqueAbility.WAYFINDING && tile.getTilesInDistance(2).any { it.improvement=="Moai" })
|
||||
modifiers["Moai"] = 0.1f
|
||||
|
|
|
@ -38,6 +38,7 @@ class MapUnit {
|
|||
@Transient var roughTerrainPenalty = false
|
||||
@Transient var doubleMovementInCoast = false
|
||||
@Transient var doubleMovementInForestAndJungle = false
|
||||
@Transient var doubleMovementInSnowTundraAndHills = false
|
||||
|
||||
lateinit var owner: String
|
||||
lateinit var name: String
|
||||
|
@ -133,10 +134,11 @@ class MapUnit {
|
|||
uniques.addAll(promotions.promotions.map { currentTile.tileMap.gameInfo.ruleSet.unitPromotions[it]!!.effect })
|
||||
tempUniques = uniques
|
||||
|
||||
if("Ignores terrain cost" in uniques) ignoresTerrainCost=true
|
||||
if("Rough terrain penalty" in uniques) roughTerrainPenalty=true
|
||||
if("Double movement in coast" in uniques) doubleMovementInCoast=true
|
||||
if("Double movement rate through Forest and Jungle" in uniques) doubleMovementInForestAndJungle=true
|
||||
if("Ignores terrain cost" in uniques) ignoresTerrainCost = true
|
||||
if("Rough terrain penalty" in uniques) roughTerrainPenalty = true
|
||||
if("Double movement in coast" in uniques) doubleMovementInCoast = true
|
||||
if("Double movement rate through Forest and Jungle" in uniques) doubleMovementInForestAndJungle = true
|
||||
if("Double movement in Snow, Tundra and Hills" in uniques) doubleMovementInSnowTundraAndHills = true
|
||||
}
|
||||
|
||||
fun hasUnique(unique:String): Boolean {
|
||||
|
@ -227,6 +229,7 @@ class MapUnit {
|
|||
fun getEmbarkedMovement(): Int {
|
||||
var movement=2
|
||||
movement += civInfo.tech.getTechUniques().count { it == "Increases embarked movement +1" }
|
||||
if (civInfo.nation.unique == UniqueAbility.VIKING_FURY) movement +=1
|
||||
return movement
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,8 @@ class UnitMovementAlgorithms(val unit:MapUnit) {
|
|||
// This function is called ALL THE TIME and should be as time-optimal as possible!
|
||||
fun getMovementCostBetweenAdjacentTiles(from: TileInfo, to: TileInfo, civInfo: CivilizationInfo): Float {
|
||||
|
||||
if ((from.isLand != to.isLand) && unit.type.isLandUnit())
|
||||
if ((from.isLand != to.isLand) && unit.type.isLandUnit() &&
|
||||
(unit.civInfo.nation.unique != UniqueAbility.VIKING_FURY))
|
||||
return 100f // this is embarkment or disembarkment, and will take the entire turn
|
||||
|
||||
var extraCost = 0f
|
||||
|
@ -39,6 +40,11 @@ class UnitMovementAlgorithms(val unit:MapUnit) {
|
|||
if (unit.doubleMovementInCoast && to.baseTerrain == Constants.coast)
|
||||
return 1 / 2f + extraCost
|
||||
|
||||
if (unit.doubleMovementInSnowTundraAndHills && to.baseTerrain == Constants.hill)
|
||||
return 1f + extraCost // usually hills take 2
|
||||
if (unit.doubleMovementInSnowTundraAndHills && (to.baseTerrain == Constants.snow || to.baseTerrain == Constants.tundra))
|
||||
return 1 / 2f + extraCost
|
||||
|
||||
return to.getLastTerrain().movementCost.toFloat() + extraCost // no road
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.unciv.ui.worldscreen.unit
|
|||
import com.badlogic.gdx.graphics.Color
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.automation.UnitAutomation
|
||||
import com.unciv.logic.automation.WorkerAutomation
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
|
@ -183,8 +184,13 @@ object UnitActions {
|
|||
}
|
||||
tile.improvement = null
|
||||
if (tile.resource!=null) tile.getOwner()?.updateDetailedCivResources() // this might take away a resource
|
||||
if (!unit.hasUnique("No movement cost to pillage")) unit.useMovementPoints(1f)
|
||||
|
||||
if (!unit.hasUnique("No movement cost to pillage") &&
|
||||
(!unit.type.isMelee() || unit.civInfo.nation.unique != UniqueAbility.VIKING_FURY))
|
||||
unit.useMovementPoints(1f)
|
||||
|
||||
unit.healBy(25)
|
||||
|
||||
}.takeIf { unit.currentMovement > 0 && canPillage(unit, tile) })
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue