update Beta4.9 P3
This commit is contained in:
parent
c3e4002bcf
commit
aedf39e30c
|
@ -18,7 +18,7 @@ allprojects {
|
|||
appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
|
||||
|
||||
appVersionCode =800011
|
||||
appVersionName = '0.6.1.0-Beta4.7(P3)'
|
||||
appVersionName = '0.6.1.0-Beta4.9(P3)'
|
||||
|
||||
appJavaCompatibility = JavaVersion.VERSION_1_8
|
||||
|
||||
|
|
BIN
core/src/main/assets/interfaces/IceLing.png
Normal file
BIN
core/src/main/assets/interfaces/IceLing.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 132 B |
Binary file not shown.
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
@ -3,6 +3,11 @@
|
|||
actors.mobs.bosses.diamondknight.name=宝箱之王
|
||||
actors.mobs.bosses.diamondknight.desc=拟态的最终结果就是无限接近人类。\n原本作用拟形的钻石宝箱外壳化作盔甲,包裹住如王般的内在。\n衪是所有拟形怪的王——至少衪是这么认为的。\n王会战斗到最后一刻,直到粉身碎骨。
|
||||
|
||||
actors.mobs.salamander.name=深蓝蝾螈
|
||||
actors.mobs.salamander.desc=来自森林的小生物,由于下方的邪恶力量侵蚀,它们已经由温顺变得凶猛。\n它们锋利的尾巴能穿透敌人,它们十分的聪明,且极其灵活,必须趁其不备将之杀掉。
|
||||
|
||||
actors.mobs.clearelemental.name=纯晶元素
|
||||
actors.mobs.clearelemental.desc=来自森林自身的精华产物,但由于下方邪恶力量的不断侵犯,它们自身的力量已经消耗许多。虽然它们已经没有攻击能力,但为了保证森林最终不被完全侵蚀,它们会用剩余的力量驱赶每一个入侵森林的不速之客。
|
||||
|
||||
actors.mobs.bosses.crivusfruits.name=克里弗斯之果
|
||||
actors.mobs.bosses.crivusfruits.desc=这颗鲜红的果实将周围一切生物都化作自身的养分。身旁的触手会将不慎走进的小动物们绞杀,腐化成缠绕在四周的瘴气。但当它们感受到你手上拿着的提灯时,却表现出畏惧火焰的样子。\n\n极少有冒险者能对这株植物作出描述,在得到的只言片语中,你唯一能确定的就是“它是森林至暗的中心”。
|
||||
|
@ -646,11 +651,11 @@ actors.mobs.npcs.obsir.desc=穿着黑西装的神秘人,头上戴着有各种
|
|||
actors.mobs.jdsdz.name=丛林守卫
|
||||
actors.mobs.jdsdz.desc="枫林"的丛林守卫,据说DM200就是他们制作的。\n\n他们偶尔会给敌人一次剧毒效果!\n\n地牢楼层越深,丛林守卫越强大。
|
||||
|
||||
actors.mobs.slime_red.name=史莱姆-血红守护者
|
||||
actors.mobs.slime_red.desc=史莱姆七大守护者中的_血红使者_\n它发出的攻击有几率让入侵者受到_流血伤害_!
|
||||
actors.mobs.slime_red.name=血红史莱姆
|
||||
actors.mobs.slime_red.desc=来自森林不明能量聚集起的高智能生物,据说曾经在诞生前模仿过白老鼠的攻击习性,所以自身也有一定概率造成目标流血。
|
||||
|
||||
actors.mobs.slime_orange.name=史莱姆-黄昏守护者
|
||||
actors.mobs.slime_orange.desc=史莱姆七大守护者中的_黄昏使者_\n它发出的攻击有几率让入侵者受到_燃烧伤害_!
|
||||
actors.mobs.slime_orange.name=黄昏史莱姆
|
||||
actors.mobs.slime_orange.desc=来自森林不明能量聚集起的高智能生物,据说曾经在诞生前汲取过烈焰花的精华,所以自身也有一定概率造成目标燃烧。
|
||||
|
||||
actors.mobs.slime_lt.name=史莱姆-雷霆守护者
|
||||
actors.mobs.slime_lt.desc=史莱姆七大守护者中的_雷霆使者_\n它发出的攻击有几率让入侵者受到_麻痹效果_!
|
||||
|
|
|
@ -3,7 +3,7 @@ scenes.heroselectscene.custom_seed_title=自定义种子
|
|||
scenes.heroselectscene.custom_seed_desc=在相同的种子中,总是会生成相同的地牢。玩家可以通过此功能,重复游玩相同的种子存档。同时还可以分享地牢种子给别人。
|
||||
scenes.heroselectscene.custom_seed_set=确认
|
||||
scenes.heroselectscene.custom_seed_clear=清除
|
||||
scenes.heroselectscene.custom_seed_duplicate=已有一个相同的种子正在进行中,请输入其他种子!
|
||||
scenes.heroselectscene.custom_seed_duplicate=已有一个相同的种子存档局正在进行中,请输入其他种子以进行游玩!
|
||||
|
||||
scenes.gamescene.go_here=前往这里
|
||||
scenes.gamescene.examine=调查这里
|
||||
|
|
|
@ -499,4 +499,6 @@ ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x53=-V0.6.1-Beta4\n1.修复克里弗
|
|||
|
||||
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x54=-V0.6.1-Beta4.5\n1.修复奈亚子的购买存储问题\n2.修复种子会导致挑战失效的问题\n3.优化少量赘余代码\n4.修复幸福结局的显示问题
|
||||
|
||||
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x55=-V0.6.1-Beta4.9\n1.修复一些小型错误\n2.修复玫瑰秘卷的错误回合
|
||||
|
||||
//ui.changelist.mlpd.vm0_5_x_changes.xxx//
|
|
@ -165,6 +165,14 @@ windows.wndgame.menu=主菜单
|
|||
windows.wndgame.exit=退出游戏
|
||||
windows.wndgame.return=继续冒险
|
||||
|
||||
windows.wndgameinprogress.gameversion=游戏版本:
|
||||
windows.wndgameinprogress.gameseed=地牢种子:
|
||||
windows.wndgameinprogress.gamegold=游戏金币:
|
||||
windows.wndgameinprogress.gamenayzi=奈亚大亨:
|
||||
windows.wndgameinprogress.gamenayzis=\n一局游戏内购买7次终端的物品,即可永久让奈亚入驻0层。
|
||||
windows.wndgameinprogress.gamemimic=拟态猎杀:
|
||||
windows.wndgameinprogress.gameinof=注:类型不同的种子所生成的地牢物品规则将有所不同。\n-_B类_为开启_独挡一面_挑战后的种子。
|
||||
|
||||
windows.wndgameinprogress.title=%1$d级%2$s
|
||||
windows.wndgameinprogress.challenges=挑战
|
||||
windows.wndgameinprogress.gameinfo=信息
|
||||
|
@ -275,6 +283,7 @@ windows.wndquickbag.title=快速使用一件物品
|
|||
windows.wndranking.error=无法载入更多信息。
|
||||
windows.wndranking.stats=属性
|
||||
windows.wndranking.items=物品
|
||||
windows.wndranking$statstab.seed=种子
|
||||
windows.wndranking.badges=徽章
|
||||
windows.wndranking$statstab.title=%1$d级%2$s
|
||||
windows.wndranking$statstab.talents=天赋
|
||||
|
|
BIN
core/src/main/assets/sprites/bluedragon.png
Normal file
BIN
core/src/main/assets/sprites/bluedragon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 429 B |
BIN
core/src/main/assets/sprites/clearelemt.png
Normal file
BIN
core/src/main/assets/sprites/clearelemt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 347 B |
BIN
core/src/main/assets/sprites/greenslting.png
Normal file
BIN
core/src/main/assets/sprites/greenslting.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 596 B |
|
@ -162,7 +162,7 @@ public class Assets {
|
|||
public static final String THEME = "music/theme.ogg";
|
||||
public static final String GO = "music/Open.ogg";
|
||||
public static final String SHOP = "music/shop.ogg";
|
||||
public static final String THEME_1 = "music/newtheme.ogg";
|
||||
public static final String THEME_1 = "music/theme.ogg";
|
||||
public static final String THEME_2 = "music/theme.ogg";
|
||||
|
||||
public static final String SEWERS_1 = "music/Level1.ogg";
|
||||
|
@ -332,10 +332,13 @@ public class Assets {
|
|||
|
||||
public static final String DKGirl = "Npcs/DKGirl.png";
|
||||
|
||||
public static final String SAESD = "sprites/bluedragon.png";
|
||||
|
||||
public static final String WHITE = "Npcs/White.png";
|
||||
public static final String BBAT = "sprites/bloodbat.png";
|
||||
|
||||
public static final String RAT = "sprites/rat.png";
|
||||
public static final String CLEAR = "sprites/clearelemt.png";
|
||||
public static final String BRUTE = "sprites/brute.png";
|
||||
public static final String SPINNER = "sprites/spinner.png";
|
||||
public static final String ASDW = "sprites/Viaw.png";
|
||||
|
|
|
@ -174,15 +174,15 @@ public class Bestiary {
|
|||
case 2:
|
||||
return new ArrayList<>(Arrays.asList(Rat.class,
|
||||
Rat.class, Rat.class, Gnoll.class, Gnoll.class,
|
||||
Gnoll.class, OGPDLLS.class, OGPDNQHZ.class));
|
||||
Gnoll.class, Gnoll.class, Albino.class));
|
||||
case 3:
|
||||
return new ArrayList<>(Arrays.asList(Rat.class,
|
||||
Rat.class, OGPDNQHZ.class,
|
||||
OGPDZSLS.class, Rat.class, Rat.class,
|
||||
Snake.class,Crab.class,Swarm.class));
|
||||
Rat.class, Salamander.class,
|
||||
Salamander.class, Rat.class, Rat.class,
|
||||
ClearElemental.class,Crab.class,Swarm.class));
|
||||
case 4:
|
||||
return new ArrayList<>(Arrays.asList(OGPDZSLS.class,
|
||||
OGPDLLS.class, Snake.class,
|
||||
return new ArrayList<>(Arrays.asList(Salamander.class,
|
||||
ClearElemental.class, Slime_Red.class,
|
||||
Slime_Orange.class, Swarm.class,Crab.class));
|
||||
case 5:
|
||||
return new ArrayList<>(Arrays.asList(Rat.class, Rat.class,Slime.class,Slime.class,Swarm.class,Crab.class));
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ConfusionGas;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ClearElementalSprites;
|
||||
import com.watabou.utils.Bundle;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
public class ClearElemental extends Mob {
|
||||
|
||||
public void onZapComplete() {
|
||||
zap();
|
||||
next();
|
||||
}
|
||||
|
||||
private int combo = 0;
|
||||
{
|
||||
spriteClass = ClearElementalSprites.class;
|
||||
EXP = 8;
|
||||
HP = HT = 16;
|
||||
defenseSkill = 2;
|
||||
|
||||
maxLvl = 7;
|
||||
|
||||
flying =true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int attackSkill( Char target ) {
|
||||
return 7;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canAttack( Char enemy ) {
|
||||
Ballistica attack = new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE);
|
||||
return !Dungeon.level.adjacent(pos, enemy.pos) && attack.collisionPos == enemy.pos;
|
||||
}
|
||||
|
||||
private void zap() {
|
||||
spend(3f);
|
||||
combo++;
|
||||
int effect = Random.Int(4)+combo;
|
||||
|
||||
if (effect > 2) {
|
||||
|
||||
if (effect >= 4 && enemy.buff(Burning.class) == null) {
|
||||
GameScene.add(Blob.seed(enemy.pos, 45, ConfusionGas.class));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean getCloser( int target ) {
|
||||
combo = 0; //if he's moving, he isn't attacking, reset combo.
|
||||
if (state == HUNTING) {
|
||||
return enemySeen && getFurther( target );
|
||||
} else {
|
||||
return super.getCloser( target );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void aggro(Char ch) {
|
||||
//cannot be aggroed to something it can't see
|
||||
if (ch == null || fieldOfView == null || fieldOfView[ch.pos]) {
|
||||
super.aggro(ch);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item createLoot() {
|
||||
MissileWeapon drop = (MissileWeapon)super.createLoot();
|
||||
//half quantity, rounded up
|
||||
drop.quantity((drop.quantity()+1)/2);
|
||||
return drop;
|
||||
}
|
||||
|
||||
private static final String COMBO = "combo";
|
||||
|
||||
@Override
|
||||
public void storeInBundle( Bundle bundle ) {
|
||||
super.storeInBundle(bundle);
|
||||
bundle.put(COMBO, combo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restoreFromBundle( Bundle bundle ) {
|
||||
super.restoreFromBundle( bundle );
|
||||
combo = bundle.getInt( COMBO );
|
||||
}
|
||||
}
|
|
@ -0,0 +1,135 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Ghost;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SalamanderSprites;
|
||||
import com.watabou.utils.Bundle;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
public class Salamander extends Mob {
|
||||
|
||||
{
|
||||
spriteClass = SalamanderSprites.class;
|
||||
EXP = 5;
|
||||
HP = HT = 5;
|
||||
defenseSkill = 24;
|
||||
|
||||
loot = Generator.Category.SEED;
|
||||
lootChance = 0.05f;
|
||||
|
||||
maxLvl = 12;
|
||||
}
|
||||
|
||||
public static class DarkBolt{}
|
||||
|
||||
private void zap() {
|
||||
spend( 1f );
|
||||
|
||||
if (hit( this, enemy, true )) {
|
||||
int dmg = Random.NormalIntRange(2, 4);
|
||||
enemy.damage( dmg, new DarkBolt() );
|
||||
} else {
|
||||
enemy.sprite.showStatus( CharSprite.NEUTRAL, enemy.defenseVerb() );
|
||||
}
|
||||
}
|
||||
|
||||
public void onZapComplete() {
|
||||
zap();
|
||||
next();
|
||||
}
|
||||
|
||||
private int combo = 0;
|
||||
|
||||
@Override
|
||||
public int attackSkill( Char target ) {
|
||||
return 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canAttack( Char enemy ) {
|
||||
Ballistica attack = new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE);
|
||||
return !Dungeon.level.adjacent(pos, enemy.pos) && attack.collisionPos == enemy.pos;
|
||||
}
|
||||
|
||||
//todo Ghost Quest Mob-2
|
||||
@Override
|
||||
public int attackProc( Char enemy, int damage ) {
|
||||
damage = super.attackProc( enemy, damage );
|
||||
//The gnoll's attacks get more severe the more the player lets it hit them
|
||||
combo++;
|
||||
int effect = Random.Int(4)+combo;
|
||||
|
||||
if (effect > 2) {
|
||||
|
||||
if (effect >=6 && enemy.buff(Burning.class) == null){
|
||||
|
||||
if (Dungeon.level.flamable[enemy.pos])
|
||||
GameScene.add(Blob.seed(enemy.pos, 4, Fire.class));
|
||||
Buff.affect(enemy, Burning.class).reignite( enemy );
|
||||
|
||||
} else
|
||||
Buff.affect( enemy, Poison.class).set((effect-2) );
|
||||
}
|
||||
return damage;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean getCloser( int target ) {
|
||||
combo = 0; //if he's moving, he isn't attacking, reset combo.
|
||||
if (state == HUNTING) {
|
||||
return enemySeen && getFurther( target );
|
||||
} else {
|
||||
return super.getCloser( target );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void aggro(Char ch) {
|
||||
//cannot be aggroed to something it can't see
|
||||
if (ch == null || fieldOfView == null || fieldOfView[ch.pos]) {
|
||||
super.aggro(ch);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item createLoot() {
|
||||
MissileWeapon drop = (MissileWeapon)super.createLoot();
|
||||
//half quantity, rounded up
|
||||
drop.quantity((drop.quantity()+1)/2);
|
||||
return drop;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void die( Object cause ) {
|
||||
super.die( cause );
|
||||
|
||||
Ghost.Quest.process();
|
||||
}
|
||||
|
||||
private static final String COMBO = "combo";
|
||||
|
||||
@Override
|
||||
public void storeInBundle( Bundle bundle ) {
|
||||
super.storeInBundle(bundle);
|
||||
bundle.put(COMBO, combo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restoreFromBundle( Bundle bundle ) {
|
||||
super.restoreFromBundle( bundle );
|
||||
combo = bundle.getInt( COMBO );
|
||||
}
|
||||
|
||||
}
|
|
@ -31,7 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlam
|
|||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.OrangeSprites;
|
||||
import com.watabou.utils.Random;
|
||||
/*史莱姆烈焰审判现在移除*/
|
||||
|
||||
public class Slime_Orange extends Slime {
|
||||
{
|
||||
spriteClass = OrangeSprites.class;
|
||||
|
|
|
@ -21,21 +21,20 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.RedSprites;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
public class Slime_Red extends Slime {
|
||||
|
||||
{
|
||||
spriteClass = RedSprites.class;
|
||||
maxLvl = -200;
|
||||
maxLvl = 16;
|
||||
lootChance = 0.15f;
|
||||
loot = PotionOfHealing.class;
|
||||
properties.add(Property.ACIDIC);
|
||||
}
|
||||
|
||||
|
@ -43,16 +42,10 @@ public class Slime_Red extends Slime {
|
|||
|
||||
@Override
|
||||
public int attackProc(Char enemy, int damage) {
|
||||
if (Random.Int(0, 6) > 7) {
|
||||
if (Random.Int(0, 6) > 4) {
|
||||
Buff.affect( enemy, Bleeding.class ).set( 3 );
|
||||
}
|
||||
int damage2 = Slime_Red.super.attackProc(enemy, this.combo + damage);
|
||||
if (Dungeon.level.flamable[enemy.pos]) {
|
||||
GameScene.add(Blob.seed(enemy.pos, 1, Fire.class));
|
||||
}
|
||||
if (enemy.buff(Burning.class) == null) {
|
||||
Buff.affect(enemy, Bleeding.class);
|
||||
}
|
||||
return damage2;
|
||||
return Slime_Red.super.attackProc(enemy, this.combo + damage);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -62,7 +62,7 @@ public class ScrollOfRoseShiled extends Scroll {
|
|||
@Override
|
||||
public void doRead() {
|
||||
|
||||
Buff.prolong(hero, RoseShiled.class, 5f);
|
||||
Buff.prolong(hero, RoseShiled.class, 10f);
|
||||
setKnown();
|
||||
new Flare( 5, 32 ).color( 0xFF00FF, true ).show( curUser.sprite, 2f );
|
||||
|
||||
|
|
|
@ -8,12 +8,14 @@ package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Blazing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Grim;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.HaloBlazing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Kinetic;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Shocking;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Unstable;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.watabou.utils.Bundle;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
public class LockSword extends MeleeWeapon {
|
||||
private int lvl = 0;
|
||||
|
@ -25,20 +27,24 @@ public class LockSword extends MeleeWeapon {
|
|||
|
||||
@Override
|
||||
public int level() {
|
||||
return lvl/100;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int min(int lvl) {
|
||||
|
||||
return Math.round(1.0f*(tier+1)) +
|
||||
lvl*Math.round(1.5f*(tier+1));
|
||||
if(lvl <=1000){
|
||||
return lvl/100;
|
||||
} else {
|
||||
return 10;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int max(int lvl) {
|
||||
|
||||
return Math.round(2.5f*(tier+1)) +
|
||||
return Math.round(1.9f*(tier+1)) +
|
||||
lvl*Math.round(1.5f*(tier+1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int min(int lvl) {
|
||||
|
||||
return Math.round(1.5f*(tier+1)) +
|
||||
lvl*Math.round(0.5f*(tier+1));
|
||||
}
|
||||
|
||||
|
@ -63,39 +69,55 @@ public class LockSword extends MeleeWeapon {
|
|||
}
|
||||
|
||||
public int proc(Char attacker, Char defender, int damage ) {
|
||||
if (level >= 10) {
|
||||
lvl = 1000;
|
||||
} else {
|
||||
++lvl;
|
||||
}
|
||||
|
||||
int dmg;
|
||||
|
||||
if (level >= 10) {
|
||||
lvl += 0;
|
||||
} else if (defender.properties().contains(Char.Property.BOSS) && defender.HP <= damage && level <= 10) {
|
||||
if (lvl >= 1000) {
|
||||
lvl += 1;
|
||||
} else if (defender.properties().contains(Char.Property.BOSS) && defender.HP <= damage && lvl <= 1000) {
|
||||
//目标Boss血量小于实际伤害判定为死亡,+100
|
||||
lvl += 100;
|
||||
} else if (defender.properties().contains(Char.Property.MINIBOSS) && defender.HP <= damage && level <= 10) {
|
||||
} else if (defender.properties().contains(Char.Property.MINIBOSS) && defender.HP <= damage && lvl <= 1000) {
|
||||
//目标迷你Boss血量小于实际伤害判定为死亡,+30
|
||||
lvl += 50;
|
||||
} else if (defender.HP <= damage && level <= 10) {
|
||||
} else if (defender.HP <= damage && lvl <= 1000) {
|
||||
//目标血量小于实际伤害判定为死亡,+15
|
||||
lvl += 15;
|
||||
}
|
||||
if (level>= 9) {
|
||||
dmg = (new Grim()).proc(this, attacker, defender, damage) + 8;
|
||||
damage = dmg;
|
||||
} else if (level>= 8) {
|
||||
|
||||
if (lvl>= 900) {
|
||||
switch (Random.NormalIntRange(1,4)){
|
||||
case 1:
|
||||
dmg = (new Grim()).proc(this, attacker, defender, damage) + 8;
|
||||
damage = dmg;
|
||||
break;
|
||||
case 2:
|
||||
dmg = (new Shocking()).proc(this, attacker, defender, damage) + 8;
|
||||
damage = dmg;
|
||||
break;
|
||||
case 3:
|
||||
dmg = (new Blazing()).proc(this, attacker, defender, damage) + 8;
|
||||
damage = dmg;
|
||||
break;
|
||||
case 4:
|
||||
dmg = (new Kinetic()).proc(this, attacker, defender, damage) + 8;
|
||||
damage = dmg;
|
||||
break;
|
||||
default:
|
||||
dmg = (new HaloBlazing()).proc(this, attacker, defender, damage) + 8;
|
||||
damage = dmg;
|
||||
break;
|
||||
}
|
||||
} else if (lvl>= 800) {
|
||||
dmg = (new Unstable()).proc(this, attacker, defender, damage) + 4;
|
||||
damage = dmg;
|
||||
} else if (level>= 6){
|
||||
} else if (lvl>= 600){
|
||||
dmg = (new Shocking()).proc(this, attacker, defender, damage) + 3;
|
||||
damage = dmg;
|
||||
} else if (level>= 4){
|
||||
} else if (lvl>= 400){
|
||||
dmg = (new Blazing()).proc(this, attacker, defender, damage) + 2;
|
||||
damage = dmg;
|
||||
} else if (level>= 2){
|
||||
} else if (lvl>= 200){
|
||||
dmg = (new Kinetic()).proc(this, attacker, defender, damage) + 1;
|
||||
damage = dmg;
|
||||
}
|
||||
|
|
|
@ -5,11 +5,9 @@ import static com.shatteredpixel.shatteredpixeldungeon.levels.ColdChestBossLevel
|
|||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.DiamondKnight;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.BArray;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
import com.watabou.utils.Bundle;
|
||||
|
||||
|
@ -176,6 +174,7 @@ public class ColdChestBossLevel extends Level {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0])){
|
||||
if(mob instanceof DiamondKnight && mob.HP >400){
|
||||
GLog.n("ColdChestBoss");
|
||||
|
@ -185,23 +184,6 @@ public class ColdChestBossLevel extends Level {
|
|||
|
||||
}
|
||||
|
||||
private void cleanMapState(){
|
||||
buildFlagMaps();
|
||||
cleanWalls();
|
||||
|
||||
BArray.setFalse(visited);
|
||||
BArray.setFalse(mapped);
|
||||
|
||||
for (Blob blob: blobs.values()){
|
||||
blob.fullyClear();
|
||||
}
|
||||
addVisuals(); //this also resets existing visuals
|
||||
traps.clear();
|
||||
|
||||
GameScene.resetMap();
|
||||
Dungeon.observe();
|
||||
}
|
||||
|
||||
public void progress(){
|
||||
switch (pro) {
|
||||
case START:
|
||||
|
|
|
@ -397,16 +397,6 @@ public class HeroSelectScene extends PixelScene {
|
|||
long seed = DungeonSeed.convertFromText(text);
|
||||
|
||||
if (positive && seed != -1) {
|
||||
|
||||
for (GamesInProgress.Info info : GamesInProgress.checkAll()) {
|
||||
if (info.seed == seed) {
|
||||
SPDSettings.customSeed("");
|
||||
icon.resetColor();
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndMessage(Messages.get(HeroSelectScene.class, "custom_seed_duplicate")));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
SPDSettings.customSeed(text);
|
||||
icon.hardlight(1f, 1.5f, 0.67f);
|
||||
} else {
|
||||
|
|
|
@ -182,7 +182,7 @@ public class InterlevelScene extends PixelScene {
|
|||
fadeTime += 0.9f; //adds 1 second total
|
||||
//speed up transition when debugging
|
||||
} else if (DeviceCompat.isDebug()){
|
||||
fadeTime = 0.75f;
|
||||
fadeTime = 0.1f;
|
||||
}
|
||||
|
||||
SkinnedBlock bg = new SkinnedBlock(Camera.main.width, Camera.main.height, loadingAsset ){
|
||||
|
|
|
@ -38,7 +38,7 @@ public class TitleScene extends PixelScene {
|
|||
@Override
|
||||
public void create() {
|
||||
super.create();
|
||||
SPDSettings.systemFont(false);
|
||||
// SPDSettings.systemFont(false);
|
||||
Music.INSTANCE.play(Assets.Music.THEME_1, true);
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.sprites;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.ClearElemental;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
|
||||
import com.watabou.noosa.TextureFilm;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.utils.Callback;
|
||||
|
||||
public class ClearElementalSprites extends MobSprite {
|
||||
|
||||
private Animation cast;
|
||||
|
||||
public ClearElementalSprites() {
|
||||
super();
|
||||
|
||||
texture( Assets.Sprites.CLEAR );
|
||||
|
||||
TextureFilm frames = new TextureFilm( texture, 16, 16 );
|
||||
|
||||
idle = new Animation( 10, true );
|
||||
idle.frames( frames, 0, 1, 2 );
|
||||
|
||||
run = new Animation( 10, true );
|
||||
run.frames( frames, 0, 0, 0, 1 );
|
||||
|
||||
attack = new Animation( 15, false );
|
||||
attack.frames( frames, 1, 1, 2, 2 );
|
||||
|
||||
die = new Animation( 10, false );
|
||||
die.frames( frames, 3, 4, 5, 6, 7, 8 ,9 );
|
||||
|
||||
play( idle );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attack( int cell ) {
|
||||
if (!Dungeon.level.adjacent(cell, ch.pos)) {
|
||||
|
||||
MagicMissile.boltFromChar( parent,
|
||||
MagicMissile.RAINBOW,
|
||||
this,
|
||||
cell,
|
||||
new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
((ClearElemental)ch).onZapComplete();
|
||||
}
|
||||
} );
|
||||
Sample.INSTANCE.play( Assets.Sounds.ZAP );
|
||||
turnTo( ch.pos , cell );
|
||||
|
||||
} else {
|
||||
|
||||
super.attack( cell );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -12,7 +12,7 @@ public class DimandKingSprite extends MobSprite {
|
|||
|
||||
TextureFilm frames = new TextureFilm( texture, 24, 24 );
|
||||
|
||||
idle = new Animation( 2, true );
|
||||
idle = new Animation( 7, true );
|
||||
idle.frames( frames, 0, 0, 0, 1 );
|
||||
|
||||
run = new Animation( 10, true );
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.sprites;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Salamander;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
|
||||
import com.watabou.noosa.MovieClip;
|
||||
import com.watabou.noosa.TextureFilm;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.utils.Callback;
|
||||
|
||||
public class SalamanderSprites extends MobSprite {
|
||||
|
||||
private Animation cast;
|
||||
|
||||
public SalamanderSprites() {
|
||||
super();
|
||||
|
||||
texture( Assets.Sprites.SAESD );
|
||||
|
||||
TextureFilm frames = new TextureFilm( texture, 16, 16 );
|
||||
|
||||
idle = new MovieClip.Animation( 2, true );
|
||||
idle.frames( frames, 0,1 );
|
||||
|
||||
run = new MovieClip.Animation( 12, true );
|
||||
run.frames( frames, 2,3,4 );
|
||||
|
||||
attack = new MovieClip.Animation( 12, false );
|
||||
attack.frames( frames, 5,6 );
|
||||
|
||||
cast = attack.clone();
|
||||
|
||||
die = new MovieClip.Animation( 12, false );
|
||||
die.frames( frames, 7 );
|
||||
|
||||
play( idle );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attack( int cell ) {
|
||||
if (!Dungeon.level.adjacent(cell, ch.pos)) {
|
||||
|
||||
MagicMissile.boltFromChar( parent,
|
||||
MagicMissile.SHAMAN_BLUE,
|
||||
this,
|
||||
cell,
|
||||
new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
((Salamander)ch).onZapComplete();
|
||||
}
|
||||
} );
|
||||
Sample.INSTANCE.play( Assets.Sounds.ZAP );
|
||||
turnTo( ch.pos , cell );
|
||||
play( cast );
|
||||
} else {
|
||||
|
||||
super.attack( cell );
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -277,6 +277,8 @@ public class Toolbar extends Component {
|
|||
float startX, startY;
|
||||
switch(Mode.valueOf(SPDSettings.toolbarMode())){
|
||||
case SPLIT:
|
||||
case GROUP:
|
||||
case CENTER:
|
||||
btnWait.setPos(x, y);
|
||||
btnSearch.setPos(btnWait.right(), y);
|
||||
|
||||
|
@ -285,25 +287,40 @@ public class Toolbar extends Component {
|
|||
startX = btnInventory.left() - btnQuick[0].width();
|
||||
for (int i = 0; i < maxHorizontalQuickslots; i++) {
|
||||
QuickslotTool tool = btnQuick[i];
|
||||
tool.setPos(startX, y);
|
||||
tool.setPos(startX, y+2);
|
||||
if (i + 1 < btnQuick.length) {
|
||||
startX = btnQuick[i].left() - btnQuick[i+1].width();
|
||||
}
|
||||
}
|
||||
|
||||
startY = 40;
|
||||
startY = 60;
|
||||
for (int i = maxHorizontalQuickslots; i < btnQuick.length; i++) {
|
||||
QuickslotTool tool = btnQuick[i];
|
||||
tool.setPos(width - (tool.width() + 2), startY);
|
||||
if (i + 1 < btnQuick.length) {
|
||||
startY = btnQuick[i].bottom();
|
||||
if(i +1 < 7) {
|
||||
startY = btnQuick[i].bottom();
|
||||
} else if (i == 7) {
|
||||
startY = btnQuick[i].top();
|
||||
tool.setPos(width - (tool.width() + 24), startY);
|
||||
} else if (i == 8) {
|
||||
startY = btnQuick[i].top() - 24;
|
||||
tool.setPos(width - (tool.width() + 24), startY);
|
||||
} else if (i == 9) {
|
||||
startY = btnQuick[i].top() - 48;
|
||||
tool.setPos(width - (tool.width() + 24), startY);
|
||||
} else if (i == 10) {
|
||||
startY = btnQuick[i].top() - 24;
|
||||
tool.setPos(width - (tool.width() + 24), startY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//center the quickslots if they
|
||||
if (btnQuick[btnQuick.length-1].left() < btnSearch.right()){
|
||||
float diff = Math.round(btnSearch.right() - btnQuick[btnQuick.length-1].left())/2;
|
||||
for( int i = 0; i < Constants.MAX_QUICKSLOTS; i++){
|
||||
float diff = Math.round(btnSearch.right() - btnQuick[btnQuick.length-1].left())/2f;
|
||||
for( int i = 0; i < maxHorizontalQuickslots; i++){
|
||||
btnQuick[i].setPos( btnQuick[i].left()+diff, btnQuick[i].top() );
|
||||
}
|
||||
}
|
||||
|
@ -374,8 +391,6 @@ public class Toolbar extends Component {
|
|||
|
||||
private Image base;
|
||||
|
||||
|
||||
|
||||
public Tool( int x, int y, int width, int height ) {
|
||||
super();
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.AutoShopRoBotSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.BlueBatSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ClearElementalSprites;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ColdGuardSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ColdRatSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CrivusFruitsSprite;
|
||||
|
@ -22,10 +23,13 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.MagicGirlSprite;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.sprites.MimicSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.MolotovHuntsmanSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.MurdererSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.OGPDNQHZTT;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.RedSwarmSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SRPDHBLRTT;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SalamanderSprites;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ShopkKingSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimeKingSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SnakeSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.WFSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIcon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
|
@ -40,6 +44,7 @@ import java.util.ArrayList;
|
|||
public class vM0_6_7_X_Changes {
|
||||
|
||||
public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) {
|
||||
add_v0_6_26_Changes(changeInfos);
|
||||
add_v0_6_25_Changes(changeInfos);
|
||||
add_v0_6_24_Changes(changeInfos);
|
||||
add_v0_6_23_Changes(changeInfos);
|
||||
|
@ -68,6 +73,45 @@ public class vM0_6_7_X_Changes {
|
|||
add_v0_6_0_Changes(changeInfos);
|
||||
}
|
||||
|
||||
public static void add_v0_6_26_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta4.9(P3)", true, "");
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes = new ChangeInfo("新内容", false, null);
|
||||
changes.hardlight(Window.GREEN_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton(new ChangeButton(new SalamanderSprites(), ("新生物:深蓝蝾螈"),
|
||||
("森林中的小生物,但早已不再温顺\n它们的锋利尾巴可以刺穿每一个敌人。")));
|
||||
|
||||
changes.addButton(new ChangeButton(new ClearElementalSprites(), ("新怪物:纯晶元素"),
|
||||
("森林曾经的守护者,如今只能使用残剩的力量试图驱赶森林的入侵者")));
|
||||
|
||||
changes = new ChangeInfo("改动", false, null);
|
||||
changes.hardlight(Window.CYELLOW);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项改动"),
|
||||
("1.快捷栏进行了少量优化\n2.部分代码优化")));
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.PBlade), ("归溯钥剑"),
|
||||
("修复一系列问题,并且重新调整成长面板" )));
|
||||
|
||||
changes.addButton(new ChangeButton(new Image("sprites/spinner.png", 144, 0, 16, 16),
|
||||
Messages.get(ChangesScene.class, "bugfixes"), Messages.get(vM0_6_7_X_Changes.class, "bug_06X55")));
|
||||
|
||||
changes = new ChangeInfo("移除", false, null);
|
||||
changes.hardlight(Window.RED_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton(new ChangeButton(new OGPDNQHZTT(), ("OGPD老鼠组"),
|
||||
("曾经的魔绫代表怪物,如今也正式退出魔绫的舞台。2021.2.21--2023.3.24(R.I.P.)")));
|
||||
|
||||
changes.addButton(new ChangeButton(new SnakeSprite(), ("下水道巨蛇"),
|
||||
("破碎的代表怪物,由于不符合魔绫的世界观,故而被移除。")));
|
||||
}
|
||||
|
||||
public static void add_v0_6_25_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta4.5(P3)", true, "");
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
|
@ -81,7 +125,7 @@ public class vM0_6_7_X_Changes {
|
|||
("现在已正式接入破碎地牢的种子系统")));
|
||||
|
||||
changes = new ChangeInfo("改动", false, null);
|
||||
changes.hardlight(Window.GREEN_COLOR);
|
||||
changes.hardlight(Window.CYELLOW);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.PBlade), ("归溯钥剑"),
|
||||
|
@ -102,7 +146,7 @@ public class vM0_6_7_X_Changes {
|
|||
}
|
||||
|
||||
public static void add_v0_6_24_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta2(P3)", true, "");
|
||||
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta4(P3)", true, "");
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ public class WndGameInProgress extends Window {
|
|||
public WndGameInProgress(final int slot){
|
||||
|
||||
final GamesInProgress.Info info = GamesInProgress.check(slot);
|
||||
String className = null;
|
||||
String className;
|
||||
assert info != null;
|
||||
if (info.subClass != HeroSubClass.NONE){
|
||||
className = info.subClass.title();
|
||||
|
@ -72,11 +72,10 @@ public class WndGameInProgress extends Window {
|
|||
if (info.name.equals("")) {
|
||||
title.label(Messages.get(this, "title", info.level, className.toUpperCase(Locale.ENGLISH)));
|
||||
} else {
|
||||
StringBuilder csname = new StringBuilder();
|
||||
csname.append(info.name);
|
||||
csname.append("\n");
|
||||
csname.append(Messages.get(this, "title",info.level, className));
|
||||
title.label(csname.toString().toUpperCase(Locale.ENGLISH));
|
||||
String csname = info.name +
|
||||
"\n" +
|
||||
Messages.get(this, "title", info.level, className);
|
||||
title.label(csname.toUpperCase(Locale.ENGLISH));
|
||||
}
|
||||
|
||||
|
||||
|
@ -111,12 +110,13 @@ public class WndGameInProgress extends Window {
|
|||
try {
|
||||
Bundle bundle = FileUtils.bundleFromFile(GamesInProgress.gameFile(slot));
|
||||
String ing =
|
||||
"游戏版本:" + Game.version+"\n\n"+
|
||||
"地牢种子:" + DungeonSeed.convertToCode(bundle.getLong("seed"))+"\n\n"+
|
||||
"现有金币:" + bundle.getInt("gold") +"\n\n"+
|
||||
"奈亚大亨:" + bundle.getInt("naiyaziCollected")+"\n一场游戏累计在终端购买7次,奈亚即可永久入驻0层" +"\n\n"+
|
||||
"拟态猎杀:" + bundle.getInt("goldchest") +"\n\n"+
|
||||
"注:类型不同的种子所生成的地牢物品规则将有所不同。\n-_B类_为开启_独当一面_挑战后的种子";
|
||||
Messages.get(WndGameInProgress.class,"gameversion") + Game.version+"\n\n"+
|
||||
Messages.get(WndGameInProgress.class,"gameseed")+ DungeonSeed.convertToCode(bundle.getLong("seed"))+"\n\n"+
|
||||
Messages.get(WndGameInProgress.class,"gamegold") + bundle.getInt("gold") +"\n\n"+
|
||||
Messages.get(WndGameInProgress.class,"gamenayzi") + bundle.getInt("naiyaziCollected")+
|
||||
Messages.get(WndGameInProgress.class,"gamenayzis") +"\n\n"+
|
||||
Messages.get(WndGameInProgress.class,"gamemimic") + bundle.getInt("goldchest") +"\n\n"+
|
||||
Messages.get(WndGameInProgress.class,"gameinof");
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndMessage(ing));
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
|
@ -205,11 +205,11 @@ public class WndGameInProgress extends Window {
|
|||
};
|
||||
|
||||
cont.icon(Icons.get(Icons.ENTER));
|
||||
cont.setRect(0, pos, WIDTH/2 -1, 20);
|
||||
cont.setRect(0, pos, WIDTH/2f -1, 20);
|
||||
add(cont);
|
||||
|
||||
erase.icon(Icons.get(Icons.CLOSE));
|
||||
erase.setRect(WIDTH/2 + 1, pos, WIDTH/2 - 1, 20);
|
||||
erase.setRect(WIDTH/2f + 1, pos, WIDTH/2f - 1, 20);
|
||||
add(erase);
|
||||
|
||||
resize(WIDTH, (int)cont.bottom()+1);
|
||||
|
|
|
@ -254,6 +254,7 @@ public class WndRanking extends WndTabbed {
|
|||
|
||||
pos = statSlot( this, Messages.get(this, "food"), Integer.toString( Statistics.foodEaten ), pos );
|
||||
pos = statSlot( this, Messages.get(this, "alchemy"), Integer.toString( Statistics.itemsCrafted ), pos );
|
||||
|
||||
pos = statSlot( this, Messages.get(this, "ankhs"), Integer.toString( Statistics.ankhsUsed ), pos );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user