v1.1.0: reworked potion of holy furor into potion of divine inspiration
This commit is contained in:
parent
ae082455c7
commit
f28c15b842
|
@ -734,8 +734,11 @@ items.potions.exotic.potionofdragonsbreath.desc=This flask contains an unusual c
|
||||||
items.potions.exotic.potionofearthenarmor.name=potion of earthen armor
|
items.potions.exotic.potionofearthenarmor.name=potion of earthen armor
|
||||||
items.potions.exotic.potionofearthenarmor.desc=Rather than paralyze, this liquid has a hardening effect on the skin which will turn it into temporary natural armor.
|
items.potions.exotic.potionofearthenarmor.desc=Rather than paralyze, this liquid has a hardening effect on the skin which will turn it into temporary natural armor.
|
||||||
|
|
||||||
items.potions.exotic.potionofholyfuror.name=potion of holy furor
|
items.potions.exotic.potionofdivineinspiration.name=potion of divine inspiration
|
||||||
items.potions.exotic.potionofholyfuror.desc=The power of holy energy reduced to liquid form, this draught will bless you for an extended period of time.
|
items.potions.exotic.potionofdivineinspiration.no_more_points=You can't gain any more bonus talent points.
|
||||||
|
items.potions.exotic.potionofdivineinspiration.select_tier=Select a talent tier to gain two bonus points in. You must have unlocked the tier to be able to spend the points.
|
||||||
|
items.potions.exotic.potionofdivineinspiration.bonus=+2 Talent Points!
|
||||||
|
items.potions.exotic.potionofdivineinspiration.desc=The power of holy energy reduced to liquid form, this draught will imbue the drinker with divine power, granting them two bonus talent points in a tier of their choosing.\n\nThis potion can only be used once for each talent tier.
|
||||||
|
|
||||||
items.potions.exotic.potionofmagicalsight.name=potion of magical sight
|
items.potions.exotic.potionofmagicalsight.name=potion of magical sight
|
||||||
items.potions.exotic.potionofmagicalsight.desc=After drinking this, your senses will be briefly heightened to incredible levels, increasing your vision range and allowing you to see through walls!
|
items.potions.exotic.potionofmagicalsight.desc=After drinking this, your senses will be briefly heightened to incredible levels, increasing your vision range and allowing you to see through walls!
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.6 KiB |
|
@ -55,6 +55,9 @@ public class ShatteredPixelDungeon extends Game {
|
||||||
com.watabou.utils.Bundle.addAlias(
|
com.watabou.utils.Bundle.addAlias(
|
||||||
com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfChallenge.class,
|
com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfChallenge.class,
|
||||||
"com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfConfusion" );
|
"com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfConfusion" );
|
||||||
|
com.watabou.utils.Bundle.addAlias(
|
||||||
|
com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDivineInspiration.class,
|
||||||
|
"com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfHolyFuror" );
|
||||||
|
|
||||||
//v1.0.0
|
//v1.0.0
|
||||||
com.watabou.utils.Bundle.addAlias(
|
com.watabou.utils.Bundle.addAlias(
|
||||||
|
|
|
@ -92,6 +92,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMight;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMight;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDivineInspiration;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEvasion;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEvasion;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce;
|
||||||
|
@ -343,14 +344,27 @@ public class Hero extends Char {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int talentPointsAvailable(int tier){
|
public int talentPointsAvailable(int tier){
|
||||||
if (lvl < Talent.tierLevelThresholds[tier]
|
if (lvl < (Talent.tierLevelThresholds[tier] - 1)
|
||||||
|| (tier == 3 && subClass == HeroSubClass.NONE)
|
|| (tier == 3 && subClass == HeroSubClass.NONE)
|
||||||
|| (tier == 4 && armorAbility == null)) {
|
|| (tier == 4 && armorAbility == null)) {
|
||||||
return 0;
|
return 0;
|
||||||
} else if (lvl >= Talent.tierLevelThresholds[tier+1]){
|
} else if (lvl >= Talent.tierLevelThresholds[tier+1]){
|
||||||
return Talent.tierLevelThresholds[tier+1] - Talent.tierLevelThresholds[tier] - talentPointsSpent(tier);
|
return Talent.tierLevelThresholds[tier+1] - Talent.tierLevelThresholds[tier] - talentPointsSpent(tier) + bonusTalentPoints(tier);
|
||||||
} else {
|
} else {
|
||||||
return 1 + lvl - Talent.tierLevelThresholds[tier] - talentPointsSpent(tier);
|
return 1 + lvl - Talent.tierLevelThresholds[tier] - talentPointsSpent(tier) + bonusTalentPoints(tier);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int bonusTalentPoints(int tier){
|
||||||
|
if (lvl < (Talent.tierLevelThresholds[tier]-1)
|
||||||
|
|| (tier == 3 && subClass == HeroSubClass.NONE)
|
||||||
|
|| (tier == 4 && armorAbility == null)) {
|
||||||
|
return 0;
|
||||||
|
} else if (buff(PotionOfDivineInspiration.DivineInspirationTracker.class) != null
|
||||||
|
&& buff(PotionOfDivineInspiration.DivineInspirationTracker.class).isBoosted(tier)) {
|
||||||
|
return 2;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,8 +79,8 @@ public class ExoticPotion extends Potion {
|
||||||
regToExo.put(PotionOfLevitation.class, PotionOfStormClouds.class);
|
regToExo.put(PotionOfLevitation.class, PotionOfStormClouds.class);
|
||||||
exoToReg.put(PotionOfStormClouds.class, PotionOfLevitation.class);
|
exoToReg.put(PotionOfStormClouds.class, PotionOfLevitation.class);
|
||||||
|
|
||||||
regToExo.put(PotionOfExperience.class, PotionOfHolyFuror.class);
|
regToExo.put(PotionOfExperience.class, PotionOfDivineInspiration.class);
|
||||||
exoToReg.put(PotionOfHolyFuror.class, PotionOfExperience.class);
|
exoToReg.put(PotionOfDivineInspiration.class, PotionOfExperience.class);
|
||||||
|
|
||||||
regToExo.put(PotionOfPurity.class, PotionOfCleansing.class);
|
regToExo.put(PotionOfPurity.class, PotionOfCleansing.class);
|
||||||
exoToReg.put(PotionOfCleansing.class, PotionOfPurity.class);
|
exoToReg.put(PotionOfCleansing.class, PotionOfPurity.class);
|
||||||
|
|
|
@ -0,0 +1,171 @@
|
||||||
|
/*
|
||||||
|
* Pixel Dungeon
|
||||||
|
* Copyright (C) 2012-2015 Oleg Dolya
|
||||||
|
*
|
||||||
|
* Shattered Pixel Dungeon
|
||||||
|
* Copyright (C) 2014-2021 Evan Debenham
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.ui.StatusPane;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.ui.TalentsPane;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.windows.WndHero;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions;
|
||||||
|
import com.watabou.noosa.audio.Sample;
|
||||||
|
import com.watabou.utils.Bundle;
|
||||||
|
|
||||||
|
public class PotionOfDivineInspiration extends ExoticPotion {
|
||||||
|
|
||||||
|
{
|
||||||
|
icon = ItemSpriteSheet.Icons.POTION_DIVINE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
//need to override drink so that time isn't spent right away
|
||||||
|
protected void drink(final Hero hero) {
|
||||||
|
curUser = hero;
|
||||||
|
curItem = this;
|
||||||
|
|
||||||
|
boolean[] enabled = new boolean[5];
|
||||||
|
enabled[1] = enabled[2] = enabled[3] = enabled[4] = true;
|
||||||
|
|
||||||
|
DivineInspirationTracker tracker = hero.buff(DivineInspirationTracker.class);
|
||||||
|
|
||||||
|
if (tracker != null){
|
||||||
|
boolean allBoosted = true;
|
||||||
|
for (int i = 1; i <= 4; i++){
|
||||||
|
if (tracker.isBoosted(i)){
|
||||||
|
enabled[i] = false;
|
||||||
|
} else {
|
||||||
|
allBoosted = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allBoosted){
|
||||||
|
GLog.w(Messages.get(this, "no_more_bonus"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isIdentified()) {
|
||||||
|
curItem.detach(curUser.belongings.backpack);
|
||||||
|
}
|
||||||
|
|
||||||
|
GameScene.show(new WndOptions(
|
||||||
|
new ItemSprite(this),
|
||||||
|
Messages.titleCase(trueName()),
|
||||||
|
Messages.get(PotionOfDivineInspiration.class, "select_tier"),
|
||||||
|
Messages.titleCase(Messages.get(TalentsPane.class, "tier", 1)),
|
||||||
|
Messages.titleCase(Messages.get(TalentsPane.class, "tier", 2)),
|
||||||
|
Messages.titleCase(Messages.get(TalentsPane.class, "tier", 3)),
|
||||||
|
Messages.titleCase(Messages.get(TalentsPane.class, "tier", 4))
|
||||||
|
){
|
||||||
|
@Override
|
||||||
|
protected boolean enabled(int index) {
|
||||||
|
return enabled[index+1];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onSelect(int index) {
|
||||||
|
super.onSelect(index);
|
||||||
|
|
||||||
|
if (index != -1){
|
||||||
|
Buff.affect(curUser, DivineInspirationTracker.class).setBoosted(index+1);
|
||||||
|
|
||||||
|
if (isIdentified()) {
|
||||||
|
curItem.detach(curUser.belongings.backpack);
|
||||||
|
}
|
||||||
|
|
||||||
|
identify();
|
||||||
|
curUser.busy();
|
||||||
|
curUser.sprite.operate(curUser.pos);
|
||||||
|
|
||||||
|
curUser.spendAndNext(1f);
|
||||||
|
|
||||||
|
boolean unspentTalents = false;
|
||||||
|
for (int i = 1; i <= Dungeon.hero.talents.size(); i++){
|
||||||
|
if (Dungeon.hero.talentPointsAvailable(i) > 0){
|
||||||
|
unspentTalents = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (unspentTalents){
|
||||||
|
StatusPane.talentBlink = 10f;
|
||||||
|
WndHero.lastIdx = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameScene.showlevelUpStars();
|
||||||
|
|
||||||
|
Sample.INSTANCE.play( Assets.Sounds.DRINK );
|
||||||
|
Sample.INSTANCE.playDelayed(Assets.Sounds.LEVELUP, 0.3f, 0.7f, 1.2f);
|
||||||
|
Sample.INSTANCE.playDelayed(Assets.Sounds.LEVELUP, 0.6f, 0.7f, 1.2f);
|
||||||
|
GLog.p(Messages.get(PotionOfDivineInspiration.class, "bonus"));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBackPressed() {
|
||||||
|
//do nothing, prevents accidentally closing
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class DivineInspirationTracker extends Buff {
|
||||||
|
|
||||||
|
{
|
||||||
|
type = buffType.POSITIVE;
|
||||||
|
revivePersists = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean[] boostedTiers = new boolean[5];
|
||||||
|
|
||||||
|
private static final String BOOSTED_TIERS = "boosted_tiers";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void storeInBundle(Bundle bundle) {
|
||||||
|
super.storeInBundle(bundle);
|
||||||
|
bundle.put(BOOSTED_TIERS, boostedTiers);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreFromBundle(Bundle bundle) {
|
||||||
|
super.restoreFromBundle(bundle);
|
||||||
|
boostedTiers = bundle.getBooleanArray(BOOSTED_TIERS);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBoosted( int tier ){
|
||||||
|
boostedTiers[tier] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBoosted( int tier ){
|
||||||
|
return boostedTiers[tier];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,41 +0,0 @@
|
||||||
/*
|
|
||||||
* Pixel Dungeon
|
|
||||||
* Copyright (C) 2012-2015 Oleg Dolya
|
|
||||||
*
|
|
||||||
* Shattered Pixel Dungeon
|
|
||||||
* Copyright (C) 2014-2021 Evan Debenham
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic;
|
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bless;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
|
||||||
|
|
||||||
public class PotionOfHolyFuror extends ExoticPotion {
|
|
||||||
|
|
||||||
{
|
|
||||||
icon = ItemSpriteSheet.Icons.POTION_HOLYFUROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void apply( Hero hero ) {
|
|
||||||
identify();
|
|
||||||
Buff.prolong(hero, Bless.class, Bless.DURATION*4f);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -964,6 +964,10 @@ public class GameScene extends PixelScene {
|
||||||
if (scene != null) scene.pane.flashForPage( page );
|
if (scene != null) scene.pane.flashForPage( page );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void showlevelUpStars(){
|
||||||
|
if (scene != null) scene.pane.showStarParticles();
|
||||||
|
}
|
||||||
|
|
||||||
public static void updateKeyDisplay(){
|
public static void updateKeyDisplay(){
|
||||||
if (scene != null) scene.pane.updateKeys();
|
if (scene != null) scene.pane.updateKeys();
|
||||||
}
|
}
|
||||||
|
|
|
@ -792,7 +792,7 @@ public class ItemSpriteSheet {
|
||||||
assignIconRect( SCROLL_CHALLENGE, 7, 7 );
|
assignIconRect( SCROLL_CHALLENGE, 7, 7 );
|
||||||
assignIconRect( SCROLL_PSIBLAST, 5, 6 );
|
assignIconRect( SCROLL_PSIBLAST, 5, 6 );
|
||||||
assignIconRect( SCROLL_DREAD, 5, 7 );
|
assignIconRect( SCROLL_DREAD, 5, 7 );
|
||||||
assignIconRect( SCROLL_POLYMORPH, 7, 6 );
|
assignIconRect( SCROLL_POLYMORPH, 7, 7 );
|
||||||
}
|
}
|
||||||
|
|
||||||
//16 free slots
|
//16 free slots
|
||||||
|
@ -837,7 +837,7 @@ public class ItemSpriteSheet {
|
||||||
public static final int POTION_STRMCLOUD= EXOTIC_POTIONS+8;
|
public static final int POTION_STRMCLOUD= EXOTIC_POTIONS+8;
|
||||||
public static final int POTION_EARTHARMR= EXOTIC_POTIONS+9;
|
public static final int POTION_EARTHARMR= EXOTIC_POTIONS+9;
|
||||||
public static final int POTION_CLEANSE = EXOTIC_POTIONS+10;
|
public static final int POTION_CLEANSE = EXOTIC_POTIONS+10;
|
||||||
public static final int POTION_HOLYFUROR= EXOTIC_POTIONS+11;
|
public static final int POTION_DIVINE = EXOTIC_POTIONS+11;
|
||||||
static {
|
static {
|
||||||
assignIconRect( POTION_ARENSURGE, 7, 7 );
|
assignIconRect( POTION_ARENSURGE, 7, 7 );
|
||||||
assignIconRect( POTION_SHIELDING, 6, 6 );
|
assignIconRect( POTION_SHIELDING, 6, 6 );
|
||||||
|
@ -850,7 +850,7 @@ public class ItemSpriteSheet {
|
||||||
assignIconRect( POTION_STRMCLOUD, 7, 7 );
|
assignIconRect( POTION_STRMCLOUD, 7, 7 );
|
||||||
assignIconRect( POTION_EARTHARMR, 6, 6 );
|
assignIconRect( POTION_EARTHARMR, 6, 6 );
|
||||||
assignIconRect( POTION_CLEANSE, 7, 7 );
|
assignIconRect( POTION_CLEANSE, 7, 7 );
|
||||||
assignIconRect( POTION_HOLYFUROR, 5, 7 );
|
assignIconRect( POTION_DIVINE, 7, 7 );
|
||||||
}
|
}
|
||||||
|
|
||||||
//16 free slots
|
//16 free slots
|
||||||
|
|
|
@ -241,10 +241,7 @@ public class StatusPane extends Component {
|
||||||
if (Dungeon.hero.lvl != lastLvl) {
|
if (Dungeon.hero.lvl != lastLvl) {
|
||||||
|
|
||||||
if (lastLvl != -1) {
|
if (lastLvl != -1) {
|
||||||
Emitter emitter = (Emitter)recycle( Emitter.class );
|
showStarParticles();
|
||||||
emitter.revive();
|
|
||||||
emitter.pos( 27, 27 );
|
|
||||||
emitter.burst( Speck.factory( Speck.STAR ), 12 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lastLvl = Dungeon.hero.lvl;
|
lastLvl = Dungeon.hero.lvl;
|
||||||
|
@ -262,6 +259,13 @@ public class StatusPane extends Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showStarParticles(){
|
||||||
|
Emitter emitter = (Emitter)recycle( Emitter.class );
|
||||||
|
emitter.revive();
|
||||||
|
emitter.pos( 27, 27 );
|
||||||
|
emitter.burst( Speck.factory( Speck.STAR ), 12 );
|
||||||
|
}
|
||||||
|
|
||||||
public void pickup( Item item, int cell) {
|
public void pickup( Item item, int cell) {
|
||||||
pickedUp.reset( item,
|
pickedUp.reset( item,
|
||||||
cell,
|
cell,
|
||||||
|
|
|
@ -193,7 +193,7 @@ public class TalentsPane extends ScrollPane {
|
||||||
stars.clear();
|
stars.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
int totStars = Talent.tierLevelThresholds[tier+1] - Talent.tierLevelThresholds[tier];
|
int totStars = Talent.tierLevelThresholds[tier+1] - Talent.tierLevelThresholds[tier] + Dungeon.hero.bonusTalentPoints(tier);
|
||||||
int openStars = Dungeon.hero.talentPointsAvailable(tier);
|
int openStars = Dungeon.hero.talentPointsAvailable(tier);
|
||||||
int usedStars = Dungeon.hero.talentPointsSpent(tier);
|
int usedStars = Dungeon.hero.talentPointsSpent(tier);
|
||||||
for (int i = 0; i < totStars; i++){
|
for (int i = 0; i < totStars; i++){
|
||||||
|
@ -212,16 +212,27 @@ public class TalentsPane extends ScrollPane {
|
||||||
protected void layout() {
|
protected void layout() {
|
||||||
super.layout();
|
super.layout();
|
||||||
|
|
||||||
|
int regStars = Talent.tierLevelThresholds[tier+1] - Talent.tierLevelThresholds[tier];
|
||||||
|
|
||||||
float titleWidth = title.width();
|
float titleWidth = title.width();
|
||||||
titleWidth += 2 + stars.size()*6;
|
titleWidth += 2 + Math.min(stars.size(), regStars)*6;
|
||||||
title.setPos(x + (width - titleWidth)/2f, y);
|
title.setPos(x + (width - titleWidth)/2f, y);
|
||||||
|
|
||||||
float left = title.right() + 2;
|
float left = title.right() + 2;
|
||||||
|
|
||||||
|
float starTop = title.top();
|
||||||
|
if (regStars < stars.size()) starTop -= 2;
|
||||||
|
|
||||||
for (Image star : stars){
|
for (Image star : stars){
|
||||||
star.x = left;
|
star.x = left;
|
||||||
star.y = title.top();
|
star.y = starTop;
|
||||||
PixelScene.align(star);
|
PixelScene.align(star);
|
||||||
left += 6;
|
left += 6;
|
||||||
|
regStars--;
|
||||||
|
if (regStars == 0){
|
||||||
|
starTop += 6;
|
||||||
|
left = title.right() + 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float gap = (width - buttons.size()*TalentButton.WIDTH)/(buttons.size()+1);
|
float gap = (width - buttons.size()*TalentButton.WIDTH)/(buttons.size()+1);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user