Resolved #698 - Added Heal Instantly 'promotion'

This commit is contained in:
Yair Morgenstern
2019-05-08 16:03:01 +03:00
parent ff508f22b0
commit 8ce1613559
10 changed files with 78 additions and 53 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -398,7 +398,7 @@ BuildingIcons/Paper Maker
index: -1
BuildingIcons/Pentagon
rotate: false
xy: 1632, 729
xy: 1530, 744
size: 100, 100
orig: 100, 100
offset: 0, 0
@ -797,28 +797,28 @@ ImprovementIcons/Quarry
index: -1
ImprovementIcons/Railroad
rotate: false
xy: 1102, 724
xy: 898, 622
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
TileSets/Default/Railroad
rotate: false
xy: 1102, 724
xy: 898, 622
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
TileSets/FantasyHex/Railroad
rotate: false
xy: 1102, 724
xy: 898, 622
size: 100, 100
orig: 100, 100
offset: 0, 0
index: -1
TileSets/ThorfMaps/Railroad
rotate: false
xy: 1102, 724
xy: 898, 622
size: 100, 100
orig: 100, 100
offset: 0, 0
@ -923,7 +923,7 @@ OtherIcons/MenuIcon
index: -1
OtherIcons/Pentagon
rotate: false
xy: 1530, 744
xy: 1632, 729
size: 100, 100
orig: 100, 100
offset: 0, 0
@ -1980,7 +1980,7 @@ TechIcons/Radio
index: -1
TechIcons/Railroad
rotate: false
xy: 898, 622
xy: 1102, 724
size: 100, 100
orig: 100, 100
offset: 0, 0
@ -3070,164 +3070,171 @@ UnitPromotionIcons/Formation_I_(Civ5)
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Indirect_Fire_(Civ5)
UnitPromotionIcons/Heal_Instantly_(Civ5)
rotate: false
xy: 2020, 568
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Logistics_(Civ5)
UnitPromotionIcons/Indirect_Fire_(Civ5)
rotate: false
xy: 2020, 546
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/March_(Civ5)
UnitPromotionIcons/Logistics_(Civ5)
rotate: false
xy: 2020, 524
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/March_(Civ5)
rotate: false
xy: 1356, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Medic_(Civ5)
rotate: false
xy: 1356, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Medic_II_(Civ5)
rotate: false
xy: 1356, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Mobility_(Civ5)
rotate: false
xy: 1378, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Range_(Civ5)
UnitPromotionIcons/Medic_II_(Civ5)
rotate: false
xy: 1378, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Mobility_(Civ5)
rotate: false
xy: 1400, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Scouting_III_(Civ5)
UnitPromotionIcons/Range_(Civ5)
rotate: false
xy: 1422, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Scouting_II_(Civ5)
UnitPromotionIcons/Scouting_III_(Civ5)
rotate: false
xy: 1444, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Scouting_I_(Civ5)
UnitPromotionIcons/Scouting_II_(Civ5)
rotate: false
xy: 1466, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Sentry_(Civ5)
UnitPromotionIcons/Scouting_I_(Civ5)
rotate: false
xy: 1488, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Shock_III_(Civ5)
UnitPromotionIcons/Sentry_(Civ5)
rotate: false
xy: 1510, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Shock_II_(Civ5)
UnitPromotionIcons/Shock_III_(Civ5)
rotate: false
xy: 1532, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Shock_I_(Civ5)
UnitPromotionIcons/Shock_II_(Civ5)
rotate: false
xy: 1750, 302
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Siege_(Civ5)
UnitPromotionIcons/Shock_I_(Civ5)
rotate: false
xy: 1750, 280
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Targeting_III_(Civ5)
UnitPromotionIcons/Siege_(Civ5)
rotate: false
xy: 1750, 258
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Targeting_II_(Civ5)
UnitPromotionIcons/Targeting_III_(Civ5)
rotate: false
xy: 1750, 236
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Targeting_I_(Civ5)
UnitPromotionIcons/Targeting_II_(Civ5)
rotate: false
xy: 1750, 214
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Volley_(Civ5)
UnitPromotionIcons/Targeting_I_(Civ5)
rotate: false
xy: 1750, 192
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Wolfpack_III_(Civ5)
UnitPromotionIcons/Volley_(Civ5)
rotate: false
xy: 1750, 170
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Wolfpack_II_(Civ5)
UnitPromotionIcons/Wolfpack_III_(Civ5)
rotate: false
xy: 1750, 148
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Wolfpack_I_(Civ5)
UnitPromotionIcons/Wolfpack_II_(Civ5)
rotate: false
xy: 2000, 1046
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Woodsman_(Civ5)
UnitPromotionIcons/Wolfpack_I_(Civ5)
rotate: false
xy: 1802, 444
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Woodsman_(Civ5)
rotate: false
xy: 442, 752
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 986 KiB

After

Width:  |  Height:  |  Size: 988 KiB

View File

@ -1,3 +0,0 @@
{
}

View File

@ -1471,5 +1471,16 @@
Simplified_Chinese:"狼群III级"
}
"Wolfpack III":{
Italian:"Attacco in massa III"
German:"Rudeltaktik III"
French:"Meute III"
Russian:"Массовая атака III"
Simplified_Chinese:"狼群III级"
}
"Heal Instantly":{}
"Heal this Unit by 50 HP; Doing so will consume this opportunity to choose a Promotion":{}
}

View File

@ -1,5 +1,10 @@
[
{
name:"Heal Instantly",
effect:"Heal this Unit by 50 HP; Doing so will consume this opportunity to choose a Promotion",
unitTypes:["Melee","Mounted","Scout","Siege","Ranged","Armor","WaterMelee","WaterRanged","WaterSubmarine"]
}
{
name:"Accuracy I",
effect:"Bonus vs units in open terrain 15%",
@ -292,7 +297,4 @@
effect:"This unit and all others in adjacent tiles heal 5 additional HP. This unit heals 5 additional HP outside of friendly territory.",
unitTypes:["Melee","Mounted","Scout"]
}
]

View File

@ -1,8 +1,8 @@
package com.unciv.logic.city
import com.badlogic.gdx.graphics.Color
import com.unciv.logic.automation.Automation
import com.unciv.Constants
import com.unciv.logic.automation.Automation
import com.unciv.models.gamebasics.Building
import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.tr
@ -108,8 +108,8 @@ class CityConstructions {
else return 0
}
fun getRemainingWork(constructionName: String) = getConstruction(constructionName)
.getProductionCost(cityInfo.civInfo.policies.adoptedPolicies) - getWorkDone(constructionName)
fun getRemainingWork(constructionName: String) =
getConstruction(constructionName).getProductionCost(cityInfo.civInfo.policies.adoptedPolicies) - getWorkDone(constructionName)
fun turnsToConstruction(constructionName: String): Int {
val workLeft = getRemainingWork(constructionName)

View File

@ -20,7 +20,13 @@ class UnitPromotions{
XP -= xpForNextPromotion()
numberOfPromotions++
}
promotions.add(promotionName)
if(promotionName=="Heal Instantly"){
unit.health += 50
if(unit.health>100) unit.health=100
}
else promotions.add(promotionName)
unit.updateUniques()
unit.civInfo.updateViewableTiles() // some promotions give the unit bonus sight
}

View File

@ -31,7 +31,9 @@ class PromotionPickerScreen(mapUnit: MapUnit) : PickerScreen() {
val unitType = mapUnit.type
val promotionsForUnitType = GameBasics.UnitPromotions.values.filter { it.unitTypes.contains(unitType.toString()) }
val unitAvailablePromotions = mapUnit.promotions.getAvailablePromotions()
for (promotion in promotionsForUnitType) {
if(promotion.name=="Heal Instantly" && mapUnit.health==100) continue
val isPromotionAvailable = promotion in unitAvailablePromotions
val unitHasPromotion = mapUnit.promotions.promotions.contains(promotion.name)
val promotionButton = Button(skin)

View File

@ -187,14 +187,14 @@ class WorldScreenOptionsTable(screen:WorldScreen) : PopupTable(screen){
})
if (languageSelectBox.selected.percentComplete != 100) {
add("Missing translations:".toLabel()).pad(5f).row()
add("Missing translations:".toLabel()).pad(5f).colspan(2).row()
val missingTextSelectBox = SelectBox<String>(skin)
val missingTextArray = Array<String>()
val currentLanguage = UnCivGame.Current.settings.language
GameBasics.Translations.filter { !it.value.containsKey(currentLanguage) }.forEach { missingTextArray.add(it.key) }
missingTextSelectBox.items = missingTextArray
missingTextSelectBox.selected = "Untranslated texts"
add(missingTextSelectBox).pad(10f).width(UnCivGame.Current.worldScreen.stage.width / 2).row()
add(missingTextSelectBox).pad(10f).width(UnCivGame.Current.worldScreen.stage.width / 2).colspan(2).row()
}
}