mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 06:16:37 -04:00
Resolved #698 - Added Heal Instantly 'promotion'
This commit is contained in:
parent
ff508f22b0
commit
8ce1613559
BIN
android/Images/UnitPromotionIcons/Heal_Instantly_(Civ5).png
Normal file
BIN
android/Images/UnitPromotionIcons/Heal_Instantly_(Civ5).png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
@ -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 |
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
|
|
||||||
}
|
|
@ -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":{}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -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"]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user