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 index: -1
BuildingIcons/Pentagon BuildingIcons/Pentagon
rotate: false rotate: false
xy: 1632, 729 xy: 1530, 744
size: 100, 100 size: 100, 100
orig: 100, 100 orig: 100, 100
offset: 0, 0 offset: 0, 0
@ -797,28 +797,28 @@ ImprovementIcons/Quarry
index: -1 index: -1
ImprovementIcons/Railroad ImprovementIcons/Railroad
rotate: false rotate: false
xy: 1102, 724 xy: 898, 622
size: 100, 100 size: 100, 100
orig: 100, 100 orig: 100, 100
offset: 0, 0 offset: 0, 0
index: -1 index: -1
TileSets/Default/Railroad TileSets/Default/Railroad
rotate: false rotate: false
xy: 1102, 724 xy: 898, 622
size: 100, 100 size: 100, 100
orig: 100, 100 orig: 100, 100
offset: 0, 0 offset: 0, 0
index: -1 index: -1
TileSets/FantasyHex/Railroad TileSets/FantasyHex/Railroad
rotate: false rotate: false
xy: 1102, 724 xy: 898, 622
size: 100, 100 size: 100, 100
orig: 100, 100 orig: 100, 100
offset: 0, 0 offset: 0, 0
index: -1 index: -1
TileSets/ThorfMaps/Railroad TileSets/ThorfMaps/Railroad
rotate: false rotate: false
xy: 1102, 724 xy: 898, 622
size: 100, 100 size: 100, 100
orig: 100, 100 orig: 100, 100
offset: 0, 0 offset: 0, 0
@ -923,7 +923,7 @@ OtherIcons/MenuIcon
index: -1 index: -1
OtherIcons/Pentagon OtherIcons/Pentagon
rotate: false rotate: false
xy: 1530, 744 xy: 1632, 729
size: 100, 100 size: 100, 100
orig: 100, 100 orig: 100, 100
offset: 0, 0 offset: 0, 0
@ -1980,7 +1980,7 @@ TechIcons/Radio
index: -1 index: -1
TechIcons/Railroad TechIcons/Railroad
rotate: false rotate: false
xy: 898, 622 xy: 1102, 724
size: 100, 100 size: 100, 100
orig: 100, 100 orig: 100, 100
offset: 0, 0 offset: 0, 0
@ -3070,164 +3070,171 @@ UnitPromotionIcons/Formation_I_(Civ5)
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Indirect_Fire_(Civ5) UnitPromotionIcons/Heal_Instantly_(Civ5)
rotate: false rotate: false
xy: 2020, 568 xy: 2020, 568
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Logistics_(Civ5) UnitPromotionIcons/Indirect_Fire_(Civ5)
rotate: false rotate: false
xy: 2020, 546 xy: 2020, 546
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/March_(Civ5) UnitPromotionIcons/Logistics_(Civ5)
rotate: false rotate: false
xy: 2020, 524 xy: 2020, 524
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/March_(Civ5)
rotate: false
xy: 1356, 8
size: 20, 20
orig: 20, 20
offset: 0, 0
index: -1
UnitPromotionIcons/Medic_(Civ5) 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 rotate: false
xy: 1378, 8 xy: 1378, 8
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 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 rotate: false
xy: 1400, 8 xy: 1400, 8
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Scouting_III_(Civ5) UnitPromotionIcons/Range_(Civ5)
rotate: false rotate: false
xy: 1422, 8 xy: 1422, 8
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Scouting_II_(Civ5) UnitPromotionIcons/Scouting_III_(Civ5)
rotate: false rotate: false
xy: 1444, 8 xy: 1444, 8
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Scouting_I_(Civ5) UnitPromotionIcons/Scouting_II_(Civ5)
rotate: false rotate: false
xy: 1466, 8 xy: 1466, 8
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Sentry_(Civ5) UnitPromotionIcons/Scouting_I_(Civ5)
rotate: false rotate: false
xy: 1488, 8 xy: 1488, 8
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Shock_III_(Civ5) UnitPromotionIcons/Sentry_(Civ5)
rotate: false rotate: false
xy: 1510, 8 xy: 1510, 8
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Shock_II_(Civ5) UnitPromotionIcons/Shock_III_(Civ5)
rotate: false rotate: false
xy: 1532, 8 xy: 1532, 8
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Shock_I_(Civ5) UnitPromotionIcons/Shock_II_(Civ5)
rotate: false rotate: false
xy: 1750, 302 xy: 1750, 302
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Siege_(Civ5) UnitPromotionIcons/Shock_I_(Civ5)
rotate: false rotate: false
xy: 1750, 280 xy: 1750, 280
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Targeting_III_(Civ5) UnitPromotionIcons/Siege_(Civ5)
rotate: false rotate: false
xy: 1750, 258 xy: 1750, 258
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Targeting_II_(Civ5) UnitPromotionIcons/Targeting_III_(Civ5)
rotate: false rotate: false
xy: 1750, 236 xy: 1750, 236
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Targeting_I_(Civ5) UnitPromotionIcons/Targeting_II_(Civ5)
rotate: false rotate: false
xy: 1750, 214 xy: 1750, 214
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Volley_(Civ5) UnitPromotionIcons/Targeting_I_(Civ5)
rotate: false rotate: false
xy: 1750, 192 xy: 1750, 192
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Wolfpack_III_(Civ5) UnitPromotionIcons/Volley_(Civ5)
rotate: false rotate: false
xy: 1750, 170 xy: 1750, 170
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Wolfpack_II_(Civ5) UnitPromotionIcons/Wolfpack_III_(Civ5)
rotate: false rotate: false
xy: 1750, 148 xy: 1750, 148
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Wolfpack_I_(Civ5) UnitPromotionIcons/Wolfpack_II_(Civ5)
rotate: false rotate: false
xy: 2000, 1046 xy: 2000, 1046
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 index: -1
UnitPromotionIcons/Woodsman_(Civ5) UnitPromotionIcons/Wolfpack_I_(Civ5)
rotate: false rotate: false
xy: 1802, 444 xy: 1802, 444
size: 20, 20 size: 20, 20
orig: 20, 20 orig: 20, 20
offset: 0, 0 offset: 0, 0
index: -1 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级" 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", name:"Accuracy I",
effect:"Bonus vs units in open terrain 15%", 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.", 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"] unitTypes:["Melee","Mounted","Scout"]
} }
] ]

View File

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

View File

@ -20,7 +20,13 @@ class UnitPromotions{
XP -= xpForNextPromotion() XP -= xpForNextPromotion()
numberOfPromotions++ 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.updateUniques()
unit.civInfo.updateViewableTiles() // some promotions give the unit bonus sight 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 unitType = mapUnit.type
val promotionsForUnitType = GameBasics.UnitPromotions.values.filter { it.unitTypes.contains(unitType.toString()) } val promotionsForUnitType = GameBasics.UnitPromotions.values.filter { it.unitTypes.contains(unitType.toString()) }
val unitAvailablePromotions = mapUnit.promotions.getAvailablePromotions() val unitAvailablePromotions = mapUnit.promotions.getAvailablePromotions()
for (promotion in promotionsForUnitType) { for (promotion in promotionsForUnitType) {
if(promotion.name=="Heal Instantly" && mapUnit.health==100) continue
val isPromotionAvailable = promotion in unitAvailablePromotions val isPromotionAvailable = promotion in unitAvailablePromotions
val unitHasPromotion = mapUnit.promotions.promotions.contains(promotion.name) val unitHasPromotion = mapUnit.promotions.promotions.contains(promotion.name)
val promotionButton = Button(skin) val promotionButton = Button(skin)

View File

@ -187,14 +187,14 @@ class WorldScreenOptionsTable(screen:WorldScreen) : PopupTable(screen){
}) })
if (languageSelectBox.selected.percentComplete != 100) { 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 missingTextSelectBox = SelectBox<String>(skin)
val missingTextArray = Array<String>() val missingTextArray = Array<String>()
val currentLanguage = UnCivGame.Current.settings.language val currentLanguage = UnCivGame.Current.settings.language
GameBasics.Translations.filter { !it.value.containsKey(currentLanguage) }.forEach { missingTextArray.add(it.key) } GameBasics.Translations.filter { !it.value.containsKey(currentLanguage) }.forEach { missingTextArray.add(it.key) }
missingTextSelectBox.items = missingTextArray missingTextSelectBox.items = missingTextArray
missingTextSelectBox.selected = "Untranslated texts" 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()
} }
} }