mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-27 22:06:05 -04:00
Patch of the promotion exploit (#3214)
This commit is contained in:
parent
ae182fb7b5
commit
bddded04f5
@ -4,7 +4,6 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.badlogic.gdx.scenes.scene2d.Touchable
|
import com.badlogic.gdx.scenes.scene2d.Touchable
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Button
|
import com.badlogic.gdx.scenes.scene2d.ui.Button
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Table
|
import com.badlogic.gdx.scenes.scene2d.ui.Table
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup
|
|
||||||
import com.badlogic.gdx.utils.Align
|
import com.badlogic.gdx.utils.Align
|
||||||
import com.unciv.UncivGame
|
import com.unciv.UncivGame
|
||||||
import com.unciv.logic.map.MapUnit
|
import com.unciv.logic.map.MapUnit
|
||||||
@ -17,13 +16,17 @@ import com.unciv.ui.utils.*
|
|||||||
class PromotionPickerScreen(val unit: MapUnit) : PickerScreen() {
|
class PromotionPickerScreen(val unit: MapUnit) : PickerScreen() {
|
||||||
private var selectedPromotion: Promotion? = null
|
private var selectedPromotion: Promotion? = null
|
||||||
|
|
||||||
|
private fun acceptPromotion(promotion: Promotion?) {
|
||||||
|
// if user managed to click disabled button, still do nothing
|
||||||
|
if (promotion == null) return
|
||||||
|
|
||||||
fun acceptPromotion(promotion: Promotion?) {
|
unit.promotions.addPromotion(promotion.name)
|
||||||
unit.promotions.addPromotion(promotion!!.name)
|
if (unit.promotions.canBePromoted())
|
||||||
if(unit.promotions.canBePromoted()) game.setScreen(PromotionPickerScreen(unit))
|
game.setScreen(PromotionPickerScreen(unit))
|
||||||
else game.setWorldScreen()
|
else
|
||||||
|
game.setWorldScreen()
|
||||||
dispose()
|
dispose()
|
||||||
game.worldScreen.shouldUpdate=true
|
game.worldScreen.shouldUpdate = true
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@ -37,7 +40,7 @@ class PromotionPickerScreen(val unit: MapUnit) : PickerScreen() {
|
|||||||
}
|
}
|
||||||
val canBePromoted = unit.promotions.canBePromoted()
|
val canBePromoted = unit.promotions.canBePromoted()
|
||||||
val canChangeState = game.worldScreen.canChangeState
|
val canChangeState = game.worldScreen.canChangeState
|
||||||
if(!canBePromoted || !canChangeState)
|
if (!canBePromoted || !canChangeState)
|
||||||
rightSideButton.disable()
|
rightSideButton.disable()
|
||||||
|
|
||||||
val availablePromotionsGroup = Table()
|
val availablePromotionsGroup = Table()
|
||||||
@ -59,10 +62,13 @@ class PromotionPickerScreen(val unit: MapUnit) : PickerScreen() {
|
|||||||
selectPromotionButton.add(promotion.name.toLabel()).pad(10f).padRight(20f)
|
selectPromotionButton.add(promotion.name.toLabel()).pad(10f).padRight(20f)
|
||||||
selectPromotionButton.touchable = Touchable.enabled
|
selectPromotionButton.touchable = Touchable.enabled
|
||||||
selectPromotionButton.onClick {
|
selectPromotionButton.onClick {
|
||||||
if(canBePromoted && isPromotionAvailable && !unitHasPromotion && canChangeState)
|
if(canBePromoted && isPromotionAvailable && !unitHasPromotion && canChangeState) {
|
||||||
|
selectedPromotion = promotion
|
||||||
rightSideButton.enable()
|
rightSideButton.enable()
|
||||||
else rightSideButton.disable()
|
} else {
|
||||||
selectedPromotion = promotion
|
selectedPromotion = null
|
||||||
|
rightSideButton.disable()
|
||||||
|
}
|
||||||
rightSideButton.setText(promotion.name.tr())
|
rightSideButton.setText(promotion.name.tr())
|
||||||
|
|
||||||
descriptionLabel.setText(promotion.getDescription(promotionsForUnitType))
|
descriptionLabel.setText(promotion.getDescription(promotionsForUnitType))
|
||||||
@ -70,7 +76,7 @@ class PromotionPickerScreen(val unit: MapUnit) : PickerScreen() {
|
|||||||
|
|
||||||
availablePromotionsGroup.add(selectPromotionButton)
|
availablePromotionsGroup.add(selectPromotionButton)
|
||||||
|
|
||||||
if(canBePromoted && isPromotionAvailable && canChangeState) {
|
if (canBePromoted && isPromotionAvailable && canChangeState) {
|
||||||
val pickNow = "Pick now!".toLabel()
|
val pickNow = "Pick now!".toLabel()
|
||||||
pickNow.setAlignment(Align.center)
|
pickNow.setAlignment(Align.center)
|
||||||
pickNow.onClick {
|
pickNow.onClick {
|
||||||
@ -78,7 +84,7 @@ class PromotionPickerScreen(val unit: MapUnit) : PickerScreen() {
|
|||||||
}
|
}
|
||||||
availablePromotionsGroup.add(pickNow).padLeft(10f).fillY()
|
availablePromotionsGroup.add(pickNow).padLeft(10f).fillY()
|
||||||
}
|
}
|
||||||
else if(unitHasPromotion) selectPromotionButton.color= Color.GREEN
|
else if (unitHasPromotion) selectPromotionButton.color = Color.GREEN
|
||||||
else selectPromotionButton.color= Color.GRAY
|
else selectPromotionButton.color= Color.GRAY
|
||||||
|
|
||||||
availablePromotionsGroup.row()
|
availablePromotionsGroup.row()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user