upate 0.6.5.0-Alpha6-Patch5

1.修复隐藏13挑徽章使用水晶之心存档崩溃的问题
2.修复少量类使用HashMap导致的类迭代异常问题
3.优化灯火前行,具体查看更新记录
4.优化繁花史莱姆,种子概率25%变为5%
5.优化变幻莫测和药水癔症的一些冲突
6.优化部分UI
This commit is contained in:
LingASDJ 2023-10-13 21:37:11 +08:00
parent 062f2f98f3
commit 5bf5ff0810
57 changed files with 974 additions and 695 deletions

View File

@ -18,8 +18,8 @@ allprojects {
appName = 'Magic Ling Pixel Dungeon'
appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
appVersionCode =914000
appVersionName = '0.6.5.0-Alpha6-Patch4'
appVersionCode =915000
appVersionName = '0.6.5.0-Alpha6-Patch5'
appJavaCompatibility = JavaVersion.VERSION_1_8

View File

@ -1165,7 +1165,7 @@ actors.buffs.championenemy$longsider.name=突变烟雾体
actors.buffs.championenemy$longsider.desc=攻击力减少10%,攻击范围+2攻击敌人10%概率造成眩晕……\n\n突变烟雾体喜好在远处骚扰敌人他就像烟雾一样来无影去无踪……
actors.buffs.championenemy$sider.name=突变酸液体
actors.buffs.championenemy$sider.desc=该词条的敌人获得远程攻击,攻击范围+6造成自身可造成的伤害20%的额外法术伤害并有概率随机产生一种有害烟雾。\n\n突变酸液体喜欢使用酸液来攻击敌人他们的酸液不稳定性可以造成大量伤害但是这种致命的酸液需要时间来准备因此他们的攻击速度会降低_300%_。\n\n部分敌人突变为酸液体还会进行多次连击造成巨额伤害。
actors.buffs.championenemy$sider.desc=该词条的敌人获得远程攻击,攻击范围+2造成自身可造成的伤害20%的额外法术伤害并有概率随机产生一种有害烟雾。\n\n突变酸液体喜欢使用酸液来攻击敌人他们的酸液不稳定性可以造成大量伤害但是这种致命的酸液需要时间来准备因此他们的攻击速度会降低_300%_。\n\n部分敌人突变为酸液体还会进行多次连击造成巨额伤害。
actors.buffs.charm.name=魅惑

View File

@ -15,7 +15,7 @@ items.potions.potionofpurity$potionofpurityling.desc=从骸骨中翻出的药剂
items.quest.devitem.crystalling.name=水晶项链
items.quest.devitem.crystalling.desc=这个紫色项链下挂着一块蓝紫色的琉璃,当光线透过水晶,水晶的中间仿佛也亮堂了起来。\n\n根据历史记载翼绫使用圣洁之心创造了世界将其一半力量分给了三使者后又让他们将另一半铸造为水晶之心。\n\n圣洁之心并没有常规意义上的实体尽管没有人真正见过水晶之心但人们还是按照传说中的模样复制出了这个项链。\n\n他们在翼绫的生日这天制造这种水晶项链以此寻求着创世神的祝福。至少他们也在用自己的方式寻求着自己的未来。\n\n你知道这块水晶并不能给你带来什么但是当你握住这块水晶时你仍然感觉心里踏实了许多。
items.quest.devitem.crystalling.active=\n\n此为MLPD制作团队主要开发者-Ling生日物品\n\n有效加成时间:f8.22-8.25(阴历)
items.quest.devitem.crystalling.active=\n\n此为MLPD制作团队主要开发者-Ling生日物品\n\n有效加成时间:8.22-8.25(阴历)
items.quest.devitem.crystalling.end=\n\n开发者Ling的生日活动已经结束,该物品的所有额外加成全部失效。
items.quest.devitem.crystalling.last=\n\n今天是水晶项链的有效期最后一天切勿错失使用良机。

View File

@ -304,6 +304,10 @@ paswordbadges$badge.zqj_ghost.desc=完成悲伤幽灵的中秋时期特别任务
paswordbadges$badge.night_cat.title=不眠之夜
paswordbadges$badge.night_cat.desc=在夜间通关一次。\n\n[再玩一局就睡觉……睡觉了,啊?怎么早上七点了?!
paswordbadges$badge.allchsx.title=末日测验-试炼之心
paswordbadges$badge.allchsx.desc=你从地牢的末日出走了出来,你今后还会前往何处?\n\n开启13项以上挑战通关,地表三巨头已经邀请你前往更危险的地表。
challenges.no_food=缩餐节食
challenges.no_food_desc=食物本就稀缺,但你还需要注意节食!\n\n・使用各类食物与丰饶之角的饱腹效果为原本的三分之一。\n・其他恢复饥饿的机制不受影响。

View File

@ -37,7 +37,14 @@ scenes.feedbackscene$1.join_link=加入魔绫开发总群
scenes.changesscene.earlier=破碎更新日志
scenes.changesscene.later=魔绫更新动态
scenes.changesscene.mlpd-0.6.4-5=v0.6.4-5-更新日志
scenes.changesscene.mlpd-0.6.0-3=v0.6.0-3-更新日志
scenes.changesscene.mlpd-0.5.x=v0.5.X-更新日志
scenes.changesscene.mlpd-0.4.x=v0.0-0.4.X-更新日志
scenes.changesscene.shpd=破碎更新日志
#scenes.aboutscene.=

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

View File

@ -361,6 +361,9 @@ public class Assets {
public static final String TPDP = "sprites/boss/TPDoor.png";
public static final String ITEMS = "sprites/items/items.png";
public static final String ILTRS = "sprites/items/lanter.png";
public static final String WFS = "sprites/items/wf.png";
public static final String ITEM_ICONS = "sprites/item_icons.png";

View File

@ -210,7 +210,7 @@ public class PaswordBadges {
}
public static void displayBadge( Badge badge ) {
PaswordBadges.loadGlobal();
if (badge == null) {
return;
}

View File

@ -3,7 +3,6 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuf
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfAnmy;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -11,7 +10,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class BlessAnmy extends Buff {
public class BlessAnmy extends ClearLanterBuff {
{
type = buffType.POSITIVE;

View File

@ -2,7 +2,6 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuf
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.AntiMagic;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -10,7 +9,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class BlessGoRead extends Buff {
public class BlessGoRead extends ClearLanterBuff {
{
type = buffType.POSITIVE;

View File

@ -1,13 +1,12 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class BlessGoodSTR extends Buff {
public class BlessGoodSTR extends ClearLanterBuff {
{
type = buffType.POSITIVE;

View File

@ -9,7 +9,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class BlessImmune extends Buff {
public class BlessImmune extends ClearLanterBuff {
{
type = buffType.POSITIVE;

View File

@ -7,7 +7,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class BlessLing extends Buff {
public class BlessLing extends ClearLanterBuff {
{
type = Buff.buffType.POSITIVE;

View File

@ -12,7 +12,7 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class BlessMixShiled extends Buff {
public class BlessMixShiled extends ClearLanterBuff {
{
type = buffType.POSITIVE;

View File

@ -1,13 +1,12 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class BlessMobDied extends Buff {
public class BlessMobDied extends ClearLanterBuff {
{
type = buffType.POSITIVE;

View File

@ -1,13 +1,12 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class BlessNoMoney extends Buff {
public class BlessNoMoney extends ClearLanterBuff {
{
type = buffType.POSITIVE;

View File

@ -1,6 +1,5 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.AntiMagic;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -8,7 +7,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class BlessRedWhite extends Buff {
public class BlessRedWhite extends ClearLanterBuff {
{
type = buffType.POSITIVE;

View File

@ -0,0 +1,6 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
abstract public class ClearLanterBuff extends Buff {
}

View File

@ -0,0 +1,7 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
abstract public class MagicGirlDebuff extends Buff {
}

View File

@ -1,13 +1,12 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class MagicGirlSayCursed extends Buff {
public class MagicGirlSayCursed extends MagicGirlDebuff {
{
type = buffType.POSITIVE;

View File

@ -1,12 +1,11 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.utils.Bundle;
public class MagicGirlSayKill extends Buff {
public class MagicGirlSayKill extends MagicGirlDebuff {
{
type = buffType.POSITIVE;

View File

@ -1,13 +1,12 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class MagicGirlSayMoneyMore extends Buff {
public class MagicGirlSayMoneyMore extends MagicGirlDebuff {
{
type = buffType.POSITIVE;

View File

@ -1,13 +1,12 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class MagicGirlSayNoSTR extends Buff {
public class MagicGirlSayNoSTR extends MagicGirlDebuff {
{
type = buffType.POSITIVE;

View File

@ -11,7 +11,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class MagicGirlSaySlowy extends Buff {
public class MagicGirlSaySlowy extends MagicGirlDebuff {
{
type = buffType.POSITIVE;

View File

@ -1,13 +1,12 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class MagicGirlSaySoftDied extends Buff {
public class MagicGirlSaySoftDied extends MagicGirlDebuff {
{
type = buffType.POSITIVE;

View File

@ -13,7 +13,7 @@ import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
import com.watabou.utils.Random;
public class MagicGirlSayTimeLast extends Buff {
public class MagicGirlSayTimeLast extends MagicGirlDebuff {
{
type = buffType.POSITIVE;

View File

@ -7,6 +7,7 @@ import static com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene.cure;
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff.ClearLanterBuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSayKill;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSayMoneyMore;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSayNoSTR;
@ -33,9 +34,13 @@ public class Nyctophobia extends Buff implements Hero.Doom {
@Override
public boolean act() {
if(hero.lanterfire == 90){
goodLanterFire();
spend(200f);
if(hero.lanterfire >= 90){
for (Buff b : hero.buffs(ClearLanterBuff.class)){
if(b == null){
goodLanterFire();
}
spend(200f);
}
}
if (hero.lanterfire < 51 && hero.lanterfire>31) {

View File

@ -155,6 +155,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMi
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDivineInspiration;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.DevItem.CrystalLing;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.MIME;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.Red;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.RedWhiteRose;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.SakaFishSketon;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy;
@ -972,6 +973,15 @@ public class Hero extends Char {
Buff.detach(hero, BlessRedWhite.class);
}
DriedRose rose = Dungeon.hero.belongings.getItem(DriedRose.class);
Red red = hero.belongings.getItem(Red.class);
if(red != null && Statistics.deadGo ){
red.detachAll(hero.belongings.backpack);
}
if(rose != null && Statistics.deadGo){
rose.detachAll(hero.belongings.backpack);
}
CrystalLing crystalLing = Dungeon.hero.belongings.getItem(CrystalLing.class);
if(crystalLing != null){
Buff.affect(hero, BlessLing.class).set( (100), 1 );

View File

@ -80,7 +80,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfLig
import com.shatteredpixel.shatteredpixeldungeon.items.quest.CrivusFruitsFlake;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.DevItem.CrystalLing;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.MIME;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.RedWhiteRose;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfFlameCursed;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfIdentify;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfLullaby;
@ -104,7 +103,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagicTorch;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RedBloodMoon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WashCrime;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.legend.DiedCrossBow;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.HaloDart;
@ -171,8 +169,6 @@ public enum HeroClass {
new AncityArmor().quantity(1).identify().collect();
new TengusMask().quantity(1).identify().collect();
new SpawnWeapon().quantity(1).identify().collect();
new DiedCrossBow().quantity(1).identify().collect();
new RedWhiteRose().quantity(1).identify().collect();
Buff.affect(hero, ChampionHero.AntiMagic.class, 50000f);
new WraithAmulet().quantity(1).identify().collect();
new BloodthirstyThorn().quantity(1).identify().collect();

View File

@ -725,7 +725,7 @@ public class DimandKing extends Boss {
@Override
public void detach() {
super.detach();
for (Mob m : Dungeon.level.mobs){
for (Mob m : Dungeon.level.mobs.toArray(new Mob[0])){
if (m instanceof DimandKing){
m.damage(24, this);
}

View File

@ -11,11 +11,11 @@ public class FlowerSlime extends Mob {
spriteClass = FlowerSlimeSprites.class;
loot = Generator.Category.SEED;
lootChance = 0.25f;
lootChance = 0.05f;
HP = HT = 12;
defenseSkill = 2;
maxLvl = 7;
maxLvl = 5;
}
@Override

View File

@ -20,7 +20,6 @@
*/
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
@ -30,12 +29,12 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Imp;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.GolemSprite;
import com.shatteredpixel.shatteredpixeldungeon.utils.BArray;
import com.watabou.utils.Bundle;
import com.watabou.utils.PathFinder;
import com.watabou.utils.Random;
public class Golem extends Mob {
{
@ -69,7 +68,7 @@ public class Golem extends Mob {
@Override
public int drRoll() {
return Random.NormalIntRange(0, 12);
return super.drRoll() + Random.NormalIntRange(0, 12);
}
@Override
@ -89,7 +88,7 @@ public class Golem extends Mob {
Dungeon.LimitedDrops.GOLEM_EQUIP.count++;
//uses probability tables for demon halls
if (loot == Generator.Category.WEAPON){
return Generator.randomWeapon(5);
return Generator.randomWeapon(5, true);
} else {
return Generator.randomArmor(5);
}
@ -149,8 +148,8 @@ public class Golem extends Mob {
int bestPos = enemy.pos;
for (int i : PathFinder.NEIGHBOURS8){
if (Dungeon.level.passable[pos + i]
&& Actor.findChar(pos+i) == null
&& Dungeon.level.trueDistance(pos+i, enemy.pos) > Dungeon.level.trueDistance(bestPos, enemy.pos)){
&& Actor.findChar(pos+i) == null
&& Dungeon.level.trueDistance(pos+i, enemy.pos) > Dungeon.level.trueDistance(bestPos, enemy.pos)){
bestPos = pos+i;
}
}
@ -164,6 +163,7 @@ public class Golem extends Mob {
if (enemy instanceof Hero){
((Hero) enemy).interrupt();
Dungeon.observe();
GameScene.updateFog();
}
}

View File

@ -94,6 +94,7 @@ public class OldDM300 extends FlameB01 {
public void add(Buff buff) {
super.add(buff);
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if(lock == null && !seenBefore && Dungeon.level.heroFOV[pos]){
if(Dungeon.isChallenged(MOREROOM) && !(Dungeon.isDLC(Conducts.Conduct.BOSSRUSH))) {
AlarmTrap alarmTrap = new AlarmTrap();
@ -106,7 +107,7 @@ public class OldDM300 extends FlameB01 {
}
}
if (state == PASSIVE && buff.type == Buff.buffType.NEGATIVE){
if (state == PASSIVE && buff.type == Buff.buffType.NEGATIVE && Dungeon.level.heroFOV[pos]){
state = HUNTING;
}
}
@ -114,14 +115,15 @@ public class OldDM300 extends FlameB01 {
@Override
public boolean act() {
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if(lock == null && !seenBefore && Dungeon.level.heroFOV[pos]){
if (lock == null && Dungeon.level.heroFOV[pos]){
CavesLevel level = (CavesLevel) Dungeon.level;
level.seal();
level.updateChasmTerrain();
if(Dungeon.isChallenged(MOREROOM) && !(Dungeon.isDLC(Conducts.Conduct.BOSSRUSH))) {
AlarmTrap alarmTrap = new AlarmTrap();
alarmTrap.pos = pos;
alarmTrap.activate();
CavesLevel level = (CavesLevel) Dungeon.level;
level.seal();
level.updateChasmTerrain();
ScrollOfTeleportation.appear(hero, pos+8);
}
}

View File

@ -38,7 +38,7 @@ public class Slime_Orange extends Slime {
lootChance = 0.25f; //by default, see rollToDropLoot()
loot = PotionOfLiquidFlame.class;
properties.add(Property.ACIDIC);
maxLvl = 12;
maxLvl = 4;
EXP=3;
}
private int combo = 0;

View File

@ -32,7 +32,7 @@ public class Slime_Red extends Slime {
{
spriteClass = RedSprites.class;
maxLvl = 16;
maxLvl = 4;
lootChance = 0.15f;
loot = PotionOfHealing.class;
properties.add(Property.ACIDIC);

View File

@ -148,7 +148,7 @@ public class YogReal extends Boss {
}
}
if (spawnPos != -1) {
if (spawnPos != -1 && summon != null) {
summon.pos = spawnPos;
GameScene.add( summon );
Actor.addDelayed( new Pushing( summon, pos, summon.pos ), -1 );
@ -178,7 +178,7 @@ public class YogReal extends Boss {
}
}
if (spawnPos != -1) {
if (spawnPos != -1 && summon != null) {
summon.pos = spawnPos;
GameScene.add( summon );
CellEmitter.get(spawnPos).start(ElmoParticle.FACTORY, 0.05f, 20);
@ -266,10 +266,12 @@ public class YogReal extends Boss {
for(int i=0;i<phase-1;++i) {
YogRealFirst fist = (YogRealFirst) Reflection.newInstance(fistSummons.remove(0));
fist.pos = pos + candidates[i];
GameScene.add(fist, 4f);
if(fist != null){
fist.pos = pos + candidates[i];
GameScene.add(fist, 4f);
Actor.addDelayed(new Pushing(fist, pos, fist.pos), -1);
Actor.addDelayed(new Pushing(fist, pos, fist.pos), -1);
}
}
}

View File

@ -37,7 +37,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite;
import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.Camera;
import com.watabou.noosa.MovieClip;
import com.watabou.noosa.TextureFilm;
import com.watabou.noosa.audio.Sample;
import com.watabou.noosa.particles.Emitter;
@ -64,13 +63,17 @@ public abstract class YogRealFirst extends Mob {
properties.add(Property.DEMONIC);
}
private float rangedCooldown;
protected float rangedCooldown;
protected boolean canRangedInMelee = true;
protected void incrementRangedCooldown(){
rangedCooldown += Random.NormalFloat(6, 10);
}
protected boolean canTeleport(int cell){
return Dungeon.level.trueDistance(cell, YogGodHardBossLevel.CENTER) < 16f;
}
@Override
protected boolean act() {
if (paralysed <= 0 && rangedCooldown > 0) rangedCooldown--;
@ -143,12 +146,12 @@ public abstract class YogRealFirst extends Mob {
@Override
public int damageRoll() {
return (Random.NormalIntRange( 20, 39 ) + (isNearYog()?12:0)) ;
return (Random.NormalIntRange( 24, 40 ) + (isNearYog()?50:0)) ;
}
@Override
public int drRoll() {
return Random.NormalIntRange(0, 15);
return Random.NormalIntRange(6, 16);
}
@Override
@ -178,6 +181,11 @@ public abstract class YogRealFirst extends Mob {
properties.add(Property.FIERY);
}
@Override
protected void incrementRangedCooldown() {
rangedCooldown += Random.NormalFloat(2, 3);
}
@Override
public boolean act() {
@ -216,12 +224,23 @@ public abstract class YogRealFirst extends Mob {
}
@Override
public int attackProc(Char enemy, int damage) {
return super.attackProc(enemy, damage);
}
}
public static class SoiledFist extends YogRealFirst {
{
spriteClass = YogRealFistSprite.Soiled.class;
immunities.add(Burning.class);
}
@Override
protected void incrementRangedCooldown() {
rangedCooldown += Random.NormalFloat(6, 10);
}
@Override
@ -304,11 +323,6 @@ public abstract class YogRealFirst extends Mob {
&& !isNearYog();
}
{
resistances.add(Burning.class);
}
}
public static class RottingFist extends YogRealFirst {
@ -319,6 +333,11 @@ public abstract class YogRealFirst extends Mob {
properties.add(Property.ACIDIC);
}
@Override
protected void incrementRangedCooldown() {
rangedCooldown += Random.NormalFloat(5, 7);
}
@Override
protected boolean act() {
//ensures toxic gas acts at the appropriate time when added
@ -384,9 +403,14 @@ public abstract class YogRealFirst extends Mob {
properties.add(Property.INORGANIC);
}
@Override
protected void incrementRangedCooldown() {
rangedCooldown += Random.NormalFloat(5, 7);
}
@Override
public int damageRoll() {
return super.damageRoll()+Random.NormalIntRange(5, 10);
return super.damageRoll()+Random.NormalIntRange(10, 20);
}
@Override
@ -457,10 +481,11 @@ public abstract class YogRealFirst extends Mob {
int i;
do {
i = Random.Int(Dungeon.level.length());
} while (Dungeon.level.heroFOV[i]
} while (Dungeon.level.distance(Dungeon.hero.pos, i) < 6
|| Dungeon.level.solid[i]
|| Actor.findChar(i) != null
|| PathFinder.getStep(i, Dungeon.level.exit, Dungeon.level.passable) == -1);
|| !canTeleport(i)
);
ScrollOfTeleportation.appear(this, i);
state = WANDERING;
GameScene.flash(0xFFFFFF);
@ -527,10 +552,11 @@ public abstract class YogRealFirst extends Mob {
int i;
do {
i = Random.Int(Dungeon.level.length());
} while (Dungeon.level.heroFOV[i]
} while (Dungeon.level.distance(Dungeon.hero.pos, i) < 6
|| Dungeon.level.solid[i]
|| Actor.findChar(i) != null
|| PathFinder.getStep(i, Dungeon.level.exit, Dungeon.level.passable) == -1);
|| !canTeleport(i)
);
ScrollOfTeleportation.appear(this, i);
state = WANDERING;
GameScene.flash(0, false);
@ -567,19 +593,19 @@ public abstract class YogRealFirst extends Mob {
TextureFilm frames = new TextureFilm( texture, 24, 17 );
idle = new MovieClip.Animation( 2, true );
idle = new Animation( 2, true );
idle.frames( frames, c+0, c+0, c+1 );
run = new MovieClip.Animation( 3, true );
run = new Animation( 3, true );
run.frames( frames, c+0, c+1 );
attack = new MovieClip.Animation( Math.round(1 / SLAM_TIME), false );
attack = new Animation( Math.round(1 / SLAM_TIME), false );
attack.frames( frames, c+0 );
zap = new MovieClip.Animation( 8, false );
zap = new Animation( 8, false );
zap.frames( frames, c+0, c+5, c+6 );
die = new MovieClip.Animation( 10, false );
die = new Animation( 10, false );
die.frames( frames, c+0, c+2, c+3, c+4 );
play( idle );
@ -619,13 +645,6 @@ public abstract class YogRealFirst extends Mob {
}
}
@Override
public void attack( int cell ) {
super.attack( cell );
jump(ch.pos, ch.pos, null, 9, SLAM_TIME );
}
public void zap( int cell ) {
turnTo( ch.pos , cell );
@ -645,7 +664,7 @@ public abstract class YogRealFirst extends Mob {
}
@Override
public void onComplete( MovieClip.Animation anim ) {
public void onComplete( Animation anim ) {
super.onComplete( anim );
if (anim == attack) {
Camera.main.shake( 4, 0.2f );
@ -814,4 +833,3 @@ public abstract class YogRealFirst extends Mob {
}
}

View File

@ -173,9 +173,9 @@ public class CrivusFruits extends Mob {
public void detach() {
super.detach();
//遍历楼层生物寻找CrivusFruits执行扣血在触手死亡时强制扣除本体CrivusFruits
for (Mob m : Dungeon.level.mobs){
for (Mob m : Dungeon.level.mobs.toArray(new Mob[0])){
if (m instanceof CrivusFruits){
m.damage((int)7.5, this);
m.damage(7, this);
}
}
}

View File

@ -11,6 +11,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.Red;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.RedWhiteRose;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfRoseShiled;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
@ -222,6 +223,7 @@ public class PinkGhostNPC extends NPC {
sd = false;
} else {
DriedRose rose = Dungeon.hero.belongings.getItem(DriedRose.class);
Red red = hero.belongings.getItem(Red.class);
GLog.i(Messages.get(PinkGhost.class, "thanks_5"));
die(null);
Statistics.deadGo = true;
@ -233,6 +235,7 @@ public class PinkGhostNPC extends NPC {
Dungeon.level.drop( new RedWhiteRose(), pos ).sprite.drop();
Dungeon.level.drop( rose.ghostArmor(), pos ).sprite.drop();
rose.detach(hero.belongings.backpack);
red.detach(hero.belongings.backpack);
PaswordBadges.ZQJ_FLOWER();
}
return true;

View File

@ -100,36 +100,19 @@ public class GooMob extends Mob {
@Override
public void add(Buff buff) {
super.add(buff);
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if (state == PASSIVE && buff.type == Buff.buffType.NEGATIVE){
if (state == PASSIVE && buff.type == Buff.buffType.NEGATIVE && Dungeon.level.heroFOV[pos]){
state = HUNTING;
}
if(lock == null && !seenBefore && Dungeon.level.heroFOV[pos]){
SewerLevel level = (SewerLevel) Dungeon.level;
level.seal();
level.updateChasmTerrain();
seenBefore = false;
if(Dungeon.isChallenged(MOREROOM) && !(Dungeon.isDLC(Conducts.Conduct.BOSSRUSH))) {
AlarmTrap alarmTrap = new AlarmTrap();
alarmTrap.pos = pos;
alarmTrap.activate();
ScrollOfTeleportation.appear(hero, pos+3);
tell(Messages.get(this, "notice"));
}
}
}
@Override
public boolean act() {
LockedFloor lock = Dungeon.hero.buff(LockedFloor.class);
if(lock == null && !seenBefore && Dungeon.level.heroFOV[pos]){
if (lock == null && Dungeon.level.heroFOV[pos]){
SewerLevel level = (SewerLevel) Dungeon.level;
level.seal();
level.updateChasmTerrain();
seenBefore = false;
if(Dungeon.isChallenged(MOREROOM) && !(Dungeon.isDLC(Conducts.Conduct.BOSSRUSH))) {
AlarmTrap alarmTrap = new AlarmTrap();
alarmTrap.pos = pos;

View File

@ -25,7 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimeKingSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimeKingMobSprites;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Bundle;
@ -105,7 +105,7 @@ public class SlimeKingMob extends Mob {
EXP = 20;
defenseSkill = 12;
spriteClass = SlimeKingSprite.class;
spriteClass = SlimeKingMobSprites.class;
lootChance = 1;
HUNTING = new Hunting();
properties.add(Property.BOSS);

View File

@ -73,7 +73,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Thief;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Warlock;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.XTG200;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.spical.GooMob;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.spical.SlimeKingMob;
import com.shatteredpixel.shatteredpixeldungeon.custom.dict.DictSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.custom.messages.M;
@ -408,7 +407,7 @@ public class MobPlacer extends TestItem{
updateMobText();
}
};
btn.icon( DictSpriteSheet.miscImages(allData.get(dataThreshold(mobTier)+i).imageId) );
btn.icon( Reflection.newInstance(allData.get(dataThreshold(mobTier)+i).getMobClass()).sprite());
float max = Math.max(btn.icon().width(), btn.icon().height());
btn.icon().scale = new PointF(BTN_SIZE/max, BTN_SIZE/max);
if(i<firstLine){
@ -520,7 +519,7 @@ public class MobPlacer extends TestItem{
GnollK(GnollShiled.class, DictSpriteSheet.GnollK),
GnollF(SkullShaman.class, DictSpriteSheet.GnollF),
FlameC(FlameC01.class, DictSpriteSheet.FLAMEC01),
Good_VI50(GooMob.class, DictSpriteSheet.Goo),
// Good_VI50(GooMob.class, DictSpriteSheet.Goo),
Flame(SlimeKingMob.class, DictSpriteSheet.FLAME),
NQHZ(OGPDNQHZ.class, DictSpriteSheet.OGPDNQHZ),

View File

@ -317,9 +317,9 @@ public class SpawnWeapon extends TestItem{
protected void onClick() {
if(!Button_Level.text().equals("尚未选择武器")){ // 修改此行代码
Game.runOnRenderThread(() -> ShatteredPixelDungeon.scene().add(new WndTextNumberInput(
"自定义武器等级", "输入要生成的武器的等级,非数字会被自动处理,同时也不能超过INT的最大值2,147,483,647",
"自定义武器等级", "输入要生成的武器的等级,非数字会被自动处理,同时也不能超过9999级",
Integer.toString(weapon_level),
9, false, Messages.get(WndSadGhost.class, "confirm"),
4, false, Messages.get(WndSadGhost.class, "confirm"),
Messages.get(WndSadGhost.class, "cancel")) {
@Override
public void onSelect(boolean check, String text) {

View File

@ -64,7 +64,7 @@ public class Lightning extends Group {
super();
this.arcs = arcs;
for (Arc arc : this.arcs)
for (Arc arc : this.arcs.toArray(new Arc[arcs.size()]))
add(arc);
this.callback = callback;
@ -87,7 +87,7 @@ public class Lightning extends Group {
float alpha = life / DURATION;
for (Arc arc : arcs) {
for (Arc arc : arcs.toArray(new Arc[0])) {
arc.alpha(alpha);
}

View File

@ -112,6 +112,7 @@ public class Amulet extends Item {
public void afterCreate() {
Badges.validateVictory();
Badges.validateChampion(Challenges.activeChallenges());
// PaswordBadges.loadGlobal();
PaswordBadges.ALLCS(Challenges.activeChallenges());
Badges.saveGlobal();
}

View File

@ -70,7 +70,11 @@ public class Item implements Bundlable {
//TODO should these be private and accessed through methods?
public int image = 0;
public int icon = -1; //used as an identifier for items with randomized images
public Class<? extends ItemSprite> ItemSpriteClass;
public int icon = -1;
//used as an identifier for items with randomized images
public boolean stackable = false;
@ -454,6 +458,10 @@ public class Item implements Bundlable {
return image;
}
public ItemSprite itemSprite() {
return Reflection.newInstance(ItemSpriteClass);
}
public ItemSprite.Glowing glowing() {
return null;
}

View File

@ -3,24 +3,25 @@ package com.shatteredpixel.shatteredpixeldungeon.items.lightblack;
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LighS;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.MagicFlameParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.Artifact;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagicTorch;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Sample;
import com.watabou.noosa.particles.Emitter;
import com.watabou.utils.Bundle;
import java.util.ArrayList;
public class OilLantern extends Item {
public class OilLantern extends Artifact {
private static final String ACTIVE = "active";
@ -38,7 +39,6 @@ public class OilLantern extends Item {
private static final String TXT_STATUS = "%d%%";
private boolean active = false;
private int charge = 100+Challenges.activeChallenges()/5*50;
public int flasks = 0;
public int plingks = 0;
@ -47,14 +47,51 @@ public class OilLantern extends Item {
this.image = ItemSpriteSheet.LANTERNA;
this.unique = true;
updateSprite();
charge = 100;
defaultAction = AC_LIGHT;
}
//TODO 仍然有问题
// public ItemSprite itemSprite() {
// ItemSprite sprite = new LS();
// sprite.setPos(0, 0);
// return sprite;
// }
public void updateSprite() {
this.image = isActivated() ? ItemSpriteSheet.LANTERNB : ItemSpriteSheet.LANTERNA;
defaultAction = isActivated() ? AC_SNUFF : AC_LIGHT;
emitter();
}
@Override
public Emitter emitter() {
Emitter emitter = new Emitter();
emitter.pos(4.5f, 6);
emitter.fillTarget = false;
if(image == ItemSpriteSheet.LANTERNB){
emitter.pour(StaffParticleFactory, 0.1f);
}
return emitter;
}
private final Emitter.Factory StaffParticleFactory = new Emitter.Factory() {
/**
* @param emitter 目标来源
* @param index 特效来源
* @param x,y 位置
*/
@Override
public void emit( Emitter emitter, int index, float x, float y ) {
((MagicFlameParticle)emitter.recycle( MagicFlameParticle.class )).reset( x, y+3 );
}
@Override
public boolean lightMode() {
return true;
}
};
public int getCharge() {
return this.charge;
}
@ -137,7 +174,7 @@ public class OilLantern extends Item {
public void refill(Hero hero) {
this.flasks--;
this.charge += Math.min(MAX_CHARGE,100);
this.charge = Math.min(this.charge + MAX_CHARGE, 100);
hero.spend(TIME_TO_USE);
hero.busy();
Sample.INSTANCE.play(Assets.Sounds.DRINK, TIME_TO_USE, TIME_TO_USE, 1.2f);
@ -148,7 +185,7 @@ public class OilLantern extends Item {
public void refills(Hero hero) {
this.plingks--;
this.charge += Math.min(MIX_CHARGE,100);
this.charge = Math.min(this.charge + MAX_CHARGE, 100);
hero.spend(TIME_TO_USE);
hero.busy();
Sample.INSTANCE.play(Assets.Sounds.DRINK, TIME_TO_USE, TIME_TO_USE, 1.2f);

View File

@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
@ -44,10 +45,9 @@ public class PotionOfMindVision extends Potion {
public void apply(Hero hero) {
identify();
if (Dungeon.isChallenged(EXSG)&& Random.Float()>0.4f) {
if (Dungeon.isChallenged(EXSG) && Random.Float()>0.4f && !(Dungeon.level.feeling == Level.Feeling.DIEDROOM)) {
if (Dungeon.level.mobs.size() > 0) {
GLog.i(Messages.get(this, "can't_see_mobs"));
} else {
GLog.i(Messages.get(this, "cant'see_none"));
}
@ -72,7 +72,7 @@ public class PotionOfMindVision extends Potion {
@Override
public String desc() {
//三元一次逻辑运算
return Dungeon.isChallenged(Challenges.EXSG) ? Messages.get(this, "descx") : Messages.get(this, "desc");
return Dungeon.isChallenged(Challenges.EXSG) && !(Dungeon.level.feeling == Level.Feeling.DIEDROOM) ? Messages.get(this, "descx") : Messages.get(this, "desc");
}
}

View File

@ -131,7 +131,8 @@ public class ChangesScene extends PixelScene {
float nextPosY = 0;
boolean second = false;
if (changesSelected == 0) {
ChangeSelection selection = new ChangeSelection(Messages.get(this, "later"), Messages.get(this, "mlpd")) {
ChangeSelection selection2 = new ChangeSelection(Messages.get(this, "later"), Messages.get(this,
"mlpd-0.6.4-5")) {
@Override
public void onClick() {
NewChangesScene.changesSelected = 0;
@ -139,11 +140,54 @@ public class ChangesScene extends PixelScene {
ShatteredPixelDungeon.switchNoFade(NewChangesScene.class);
}
};
selection.icon(new ItemSprite(ItemSpriteSheet.MAGICGIRLBOOKS));
selection2.icon(new ItemSprite(ItemSpriteSheet.REDWHITEROSE));
selection2.hardlight(Window.TITLE_COLOR);
selection2.setRect(0, posY, panel.innerWidth(), 0);
content.add(selection2);
ChangeSelection selection3 = new ChangeSelection(null, Messages.get(this,
"mlpd-0.6.0-3")) {
@Override
public void onClick() {
NewChangesScene.changesSelected = 1;
NewChangesScene.fromChangesScene = false;
ShatteredPixelDungeon.switchNoFade(NewChangesScene.class);
}
};
selection3.icon(new ItemSprite(ItemSpriteSheet.LANTERNB));
selection3.hardlight(Window.TITLE_COLOR);
selection3.setRect(0, posY+35, panel.innerWidth(), 0);
content.add(selection3);
ChangeSelection selection = new ChangeSelection(null, Messages.get(this,
"mlpd-0.5.X")) {
@Override
public void onClick() {
NewChangesScene.changesSelected = 2;
NewChangesScene.fromChangesScene = false;
ShatteredPixelDungeon.switchNoFade(NewChangesScene.class);
}
};
selection.icon(new ItemSprite(ItemSpriteSheet.DG19));
selection.hardlight(Window.TITLE_COLOR);
selection.setRect(0, posY, panel.innerWidth(), 0);
selection.setRect(0, posY+60, panel.innerWidth(), 0);
content.add(selection);
posY = nextPosY = selection.bottom();
ChangeSelection selection0 = new ChangeSelection(null, Messages.get(this,
"mlpd-0.4.X")) {
@Override
public void onClick() {
NewChangesScene.changesSelected = 3;
NewChangesScene.fromChangesScene = false;
ShatteredPixelDungeon.switchNoFade(NewChangesScene.class);
}
};
selection0.icon(new ItemSprite(ItemSpriteSheet.RedBloodMoon));
selection0.hardlight(Window.TITLE_COLOR);
selection0.setRect(0, posY+85, panel.innerWidth(), 0);
content.add(selection0);
posY = nextPosY = selection0.bottom();
}
for (ChangeInfo info : changeInfos){
if (info.major) {

View File

@ -0,0 +1,22 @@
package com.shatteredpixel.shatteredpixeldungeon.scenes;
import com.shatteredpixel.shatteredpixeldungeon.ui.Archs;
import com.watabou.noosa.Camera;
//怪物图鉴 尚未完成
public class MobCatLogScene extends PixelScene {
@Override
public void create() {
super.create();
uiCamera.visible = false;
int w = Camera.main.width;
int h = Camera.main.height;
Archs archs = new Archs();
archs.setSize(w,h);
addToBack(archs);
}
}

View File

@ -5,15 +5,14 @@ import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.Archs;
import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane;
import com.shatteredpixel.shatteredpixeldungeon.ui.StyledButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangeInfo;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangeSelection;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.S_Changes;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd.vM0_5_X_Changes;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd.vM0_6_4_P_Changes;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd.vM0_6_7_X_Changes;
import com.watabou.noosa.Camera;
import com.watabou.noosa.NinePatch;
@ -62,12 +61,15 @@ public class NewChangesScene extends PixelScene {
switch (changesSelected){
case 0: default:
vM0_6_7_X_Changes.addAllChanges(changeInfos);
vM0_6_4_P_Changes.addAllChanges(changeInfos);
break;
case 1:
vM0_5_X_Changes.addAllChanges(changeInfos);
vM0_6_7_X_Changes.addAllChanges(changeInfos);
break;
case 2:
vM0_5_X_Changes.addAllChanges(changeInfos);
break;
case 3:
S_Changes.addAllChanges(changeInfos);
break;
}
@ -114,21 +116,6 @@ public class NewChangesScene extends PixelScene {
}
}
}
if (changesSelected == 0) {
posY = nextPosY;
ChangeSelection selection = new ChangeSelection(Messages.get(ChangesScene.class, "earlier"), Messages.get(ChangesScene.class, "shpd")) {
@Override
public void onClick() {
ChangesScene.changesSelected = 0;
ShatteredPixelDungeon.switchNoFade(ChangesScene.class);
}
};
selection.icon(Icons.get(Icons.SHPX));
selection.hardlight(Window.TITLE_COLOR);
selection.setRect(0, posY, panel.innerWidth(), 0);
content.add(selection);
posY = selection.bottom();
}
content.setSize( panel.innerWidth(), (int)Math.ceil(posY) );
@ -139,7 +126,7 @@ public class NewChangesScene extends PixelScene {
panel.innerHeight() + 2);
list.scrollTo(0, fromChangesScene ? posY - list.height() : 0);
StyledButton btnBeta = new StyledButton(Chrome.Type.TOAST, "0.6.X"){
StyledButton btnBeta2 = new StyledButton(Chrome.Type.TOAST, "0.6.4-5"){
@Override
protected void onClick() {
super.onClick();
@ -150,11 +137,11 @@ public class NewChangesScene extends PixelScene {
}
};
if (changesSelected != 0) btnBeta.textColor( 0xBBBBBB );
btnBeta.setRect(list.left()-4f, list.bottom(), 46, changesSelected == 0 ? 19 : 15);
addToBack(btnBeta);
if (changesSelected != 0) btnBeta2.textColor( 0xBBBBBB );
btnBeta2.setRect(list.left()-4f, list.bottom(), 32, changesSelected == 0 ? 19 : 15);
addToBack(btnBeta2);
StyledButton btn0_8 = new StyledButton(Chrome.Type.TOAST, "0.5.X"){
StyledButton btnBeta = new StyledButton(Chrome.Type.TOAST, "0.6.0-3"){
@Override
protected void onClick() {
super.onClick();
@ -164,11 +151,12 @@ public class NewChangesScene extends PixelScene {
}
}
};
if (changesSelected != 1) btn0_8.textColor( 0xBBBBBB );
btn0_8.setRect(btnBeta.right()+1, list.bottom(), 47, changesSelected == 1 ? 19 : 15);
addToBack(btn0_8);
StyledButton btn0_7 = new StyledButton(Chrome.Type.TOAST, "0.0-0.4"){
if (changesSelected != 1) btnBeta.textColor( 0xBBBBBB );
btnBeta.setRect(btnBeta2.right()+1, list.bottom(), 32, changesSelected == 1 ? 19 : 15);
addToBack(btnBeta);
StyledButton btn0_8 = new StyledButton(Chrome.Type.TOAST, "0.5.X"){
@Override
protected void onClick() {
super.onClick();
@ -178,8 +166,22 @@ public class NewChangesScene extends PixelScene {
}
}
};
if (changesSelected != 2) btn0_7.textColor( 0xBBBBBB );
btn0_7.setRect(btn0_8.right() + 1, btn0_8.top(), 46, changesSelected == 2 ? 19 : 15);
if (changesSelected != 2) btn0_8.textColor( 0xBBBBBB );
btn0_8.setRect(btnBeta.right()+1, list.bottom(), 30, changesSelected == 2 ? 19 : 15);
addToBack(btn0_8);
StyledButton btn0_7 = new StyledButton(Chrome.Type.TOAST, "0.0-0.4"){
@Override
protected void onClick() {
super.onClick();
if (changesSelected != 3) {
changesSelected = 3;
ShatteredPixelDungeon.seamlessResetScene();
}
}
};
if (changesSelected != 3) btn0_7.textColor( 0xBBBBBB );
btn0_7.setRect(btn0_8.right() + 1, btn0_8.top(), 44, changesSelected == 3 ? 19 : 15);
addToBack(btn0_7);
Archs archs = new Archs();

View File

@ -266,7 +266,7 @@ public class NewsScene extends PixelScene {
icon(News.parseArticleIcon(article));
long lastRead = SPDSettings.newsLastRead();
if (lastRead > 0 && article.date.getTime() > lastRead) {
textColor(Window.SHPX_COLOR);
textColor(Window.Pink_COLOR);
}
Calendar cal = Calendar.getInstance();

View File

@ -838,8 +838,8 @@ public class ItemSpriteSheet {
assignItemRect(HOLSTER, 15, 16);
assignItemRect(DRAGONKINGHALOFIRE, 12, 14);
assignItemRect(REDDRAGON, 14, 14);
assignItemRect(LANTERNA, 10, 14);
assignItemRect(LANTERNB, 10, 14);
assignItemRect(LANTERNA, 10, 16);
assignItemRect(LANTERNB, 10, 16);
assignItemRect(SKPOTION, 8, 15);
assignItemRect(SKNANO, 15, 14);
assignItemRect(WATERSOUL, 14, 14);

View File

@ -0,0 +1,71 @@
package com.shatteredpixel.shatteredpixeldungeon.sprites;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.spical.SlimeKingMob;
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
import com.watabou.noosa.TextureFilm;
import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Callback;
import com.watabou.utils.GameMath;
public class SlimeKingMobSprites extends GolemSprite {
public SlimeKingMobSprites() {
this.texture("sprites/boss/SlimeKing.png");
TextureFilm var1 = new TextureFilm(this.texture, 18, 18);
Integer var2 = 2;
Integer var3 = 1;
this.idle = new Animation(2, true);
Animation var4 = this.idle;
Integer var5 = 0;
var4.frames(var1, var5, var5, var5, var3, var5, var5, var3, var3);
this.run = new Animation(12, true);
this.run.frames(var1, var2, 1, 2, 3, var2);
this.attack = new Animation(12, false);
this.attack.frames(var1, 3, 4, 5);
this.die = new Animation(12, false);
this.die.frames(var1, 6, 7);
this.play(this.idle);
}
private static final int[] tierFrames = {0, 21, 32, 43, 54, 65};
public void setArmor( int tier ){
int c = tierFrames[(int) GameMath.gate(0, tier, 5)];
TextureFilm frames = new TextureFilm( texture, 12, 15 );
idle.frames( frames, c, c, c, c, c, 1+c, 1+c );
run.frames( frames, 2+c, 3+c, 4+c, 5+c, 6+c, 7+c );
attack.frames( frames, 8+c, 9+c, 10+c );
//death animation is always armorless
play( idle, true );
}
public void zap( int cell ) {
turnTo( ch.pos , cell );
play( zap );
MagicMissile.boltFromChar( parent,
MagicMissile.FROST,
this,
cell,
new Callback() {
@Override
public void call() {
((SlimeKingMob)ch).onZapComplete();
}
} );
Sample.INSTANCE.play( Assets.Sounds.ZAP );
}
@Override
public int blood() {
return 0xFFcdcdb7;
}
}

View File

@ -0,0 +1,523 @@
package com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.PaswordBadges;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.PinkLingSprite;
import com.shatteredpixel.shatteredpixeldungeon.effects.BadgeBanner;
import com.shatteredpixel.shatteredpixeldungeon.effects.PasswordBadgeBanner;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CrivusFruitsSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.FireDragonSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.FlowerSlimeSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.GhostSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.IceSlowGirlSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SakaFishBossSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SalamanderSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ShopkeeperSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimeKingSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangeButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangeInfo;
import com.watabou.noosa.Image;
import java.util.ArrayList;
public class vM0_6_4_P_Changes {
public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) {
add_v0_6_56_Changes(changeInfos);
add_v0_6_55_Changes(changeInfos);
add_v0_6_54_Changes(changeInfos);
}
public static void add_v0_6_56_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("Coming Soon V0.6.5.0-Alpha7", true, "");
changes.hardlight(Window.CBLACK);
changeInfos.add(changes);
// changes.addButton(new ChangeButton(new RedNecromancerSprite(), ("BossRush2.0"),
// ("地牢发生了翻天覆地的改变,一切的矛头指向了死灵军团……")));
//
// Image s = new DM300AttackSprite();
// s.scale.set(PixelScene.align(0.74f));
// changes.addButton(new ChangeButton(s, ("DM-ZERO"),
// ("时间在这里停止流动与DMZERO正面对决的即将到来")));
Image c = new IceSlowGirlSprites();
c.scale.set(PixelScene.align(0.74f));
changes.addButton(new ChangeButton(c, ("冰雪魔女重做"),
("石碑上记录了有关于她的一切,她的过去,她的现在,她的未来。而当你与她对峙时,你是否能够看清她的真实面目?")));
Image i = new Image("sprites/boss/fireDragon.png", 0, 0, 24, 24);
i.scale.set(PixelScene.align(0.74f));
changes.addButton(new ChangeButton(i, ("熔岩火龙"),
("丛林暴乱的真相")));
changes = new ChangeInfo("v0.6.5.0-Alpha6-Patch5", 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 ItemSprite(ItemSpriteSheet.LANTERNB), ("灯火前路v3.1"),
("现在灯火最大值为100%且有益BuffRoll的时候最多同时存在一个。\n\n" +
"高挑可能会更加困难,但低挑来说正常。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DG25), ("开发者模式v0.6"),
("修复了一些Bug")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CHALLANEESICON_16), ("变幻莫测v0.4"),
("1.修复了部分情况下无法传送的问题\n\n" +
"2.修复灵视在特定MINIBOSS层无法使用的问题\n\n" +
"3.改动界面迭代优化")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项修改"),
("1.修复了部分文案问题\n\n" +
"2.修复了一些错误\n\n" +
"3.部分素材优化" )));
changes.addButton(new ChangeButton(new FlowerSlimeSprites(), ("丛林繁花史莱姆"),
("掉落种子的概率从25%改为5%。")));
changes = new ChangeInfo("v0.6.5.0-Alpha6-Patch4", 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 ItemSprite(ItemSpriteSheet.DG25), ("开发者模式v0.5"),
("新增武器生成秘卷,感谢潘多拉的代码制作和注解版的代码支持。")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("挑战变幻莫测V0.3"),
("修复了一堆问题,并改善了部分体验")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项修改"),
("1.修复了部分文案问题\n\n" +
"2.调整了一些底层代码" )));
changes = new ChangeInfo("v0.6.5.0-Alpha6.9-6.93-LAST", 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 Image("Ling.png", 0, 0, 16, 16)), ("开发者的话"),
("v0.6.5.0-Alpha6.9-LAST--完成于2023-10-6\n\n" +
"今天对我来说是一个特别的日子因为今天是我21岁生日。\n\n" +
"回想MLPD的两年我也从一名曾经的准大学生变成了即将毕业的大学生\n\n" +
"生活的忙碌,社会的考验,实习的困难比比皆是。但好在我有一批非常爱我和这个游戏的玩家\n\n" +
"Alpha6.9是MLPD的近期的最终版本。接下来她(代指魔绫)将进入休整期阶段,\n\n" +
"但游戏的内容足够玩家游玩当然如果有bug我会来修复。\n\n" +
"最近只是没有大版本更新了。最后,近期是我的生日,我在游戏中为各位玩家准备了水晶项链。\n\n" +
"她应该可以帮助你们更好的游玩游戏,希望水晶项链能给你们带来不错的体验。\n\n" +
"最后,让我们在冬季版本大更新中相见,再会!!!\n\n" +
"---MLPD主要开发者JDSALing" )));
changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY_LAND), ("农历计算系统"),
("现在MLPD支持农历计算系统中秋节端午节以及作者的生日均使用此系统计算。\n" +
"Ling的生日农历8.22\n\n有效时间范围8.22-8.25\n\n" +
"中秋节农历8.15\n\n有效时间范围中秋节前10天到中秋节后12天\n\n" +
"端午节农历5.5\n\n有效时间范围端午节前3天到端午节后7天\n\n注意如果与西方节日冲突优先将用中国传统节日")));
changes.addButton(new ChangeButton(Icons.get(Icons.AUDIO), ("新主题BGM"),
("在玩家在新版本胜利一次后有机会在主界面播放新BGM和下半段暗示。")));
changes.addButton(new ChangeButton(new FlowerSlimeSprites(), ("新生物:丛林繁花史莱姆"),
("替代普通老鼠,老鼠现在只会在丛林边缘(第一层生成),后面都是这个新生物。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.REDWHITEROSE), ("一种载体彻底实装"),
("效果:力量+2,移速+10%每5回合回复1HP")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CRYSTAL_LING), ("新开发者物品:水晶项链"),
("在每年绫的生日有效活得时间直接在开局就能获得,自带韧性之戒效果,治疗效果小幅度提升。")));
changes.addButton(new ChangeButton(PasswordBadgeBanner.image(PaswordBadges.Badge.NIGHT_CAT.image), (
"新隐藏徽章:不眠之夜"),
("解密片段:月黑风高,古神陨落。")));
changes.addButton(new ChangeButton(BadgeBanner.image(Badges.Badge.HIDEEN_BADAGEX.image), ("新徽章:隐秘探索"),
("获得方式:发现隐藏徽章的位置")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
Image xax = new SakaFishBossSprites();
xax.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(xax, "萨卡班甲鱼",
"现在免疫恐惧!"));
changes.addButton(new ChangeButton(new CrivusFruitsSprite(), ("克里弗斯之果"),
("现在净化药剂有特定版,且绝命头目地形改变。")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("开发者模式V0.4"),
("开发者模式进行一些小型优化,追加新怪物:丛林繁花史莱姆")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("挑战变幻莫测V0.2"),
("修复了一堆问题:\n\n" +
"1.可能导致钥匙丢失\n\n2.重复Boss警报\n\n3.看见人不传送\n\n4.改善了Goo和DM300原型机的属性与地形。")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项改动-1"),
("1.优化了主题背景界面并且植入夜间状态在晚上22点到早上7点前是夜间状态。因此是夜间背景。反之则是白天背景。\n\n" +
"2.圣境密林层改善了几个地块,部分敌人素材迭代\n\n" +
"3.上个版本的一些FB-bug修复")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项改动-2"),
("1.修复了提灯环境下火把能量无法被保存的相关问题\n" +
"2.修复了变幻莫测挑战相关问题\n" +
"3.修复了DM300原型机无限护盾问题\n" +
"4.修复了徽章界面可能闪退的问题\n" +
"5.修复了沉沦效果动画丢失问题\n" +
"6.优化了部分地块贴图\n" +
"7.修复了DM300 DM720进入即过关的问题\n" +
"8.修复了隐藏徽章-不眠之夜,无法被获得的问题\n" +
"9.新增夜晚文本提醒")));
changes = new ChangeInfo("v0.6.5.0-Alpha6-6.8-国庆", 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(Icons.get(Icons.CHALLENGE_ON), ("新挑战变幻莫测V0.1"),
("追加两个随机地形感觉整体战斗全面处于大地型怪物生成变多追加两个迷你Boss战。")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项修改2"),
("1.修复三井协定的三井重复生成问题\n" +
"2.改善变幻莫测迷你Boss地形以及战利品\n" +
"3.种子现在分为A类B类BossRush类\n" +
"4.部分界面UI迭代变幻莫测挑战平衡\n" +
"5.修复鼠王可以改造特定护甲,例如板鳖甲")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项修改"),
("1.迭代了UI材质\n\n2.优化了一些代码")));
changes.addButton(new ChangeButton(Icons.get(Icons.DEPTH_WELLS), ("更多地形认知"),
("在变幻莫测中加入了更多地形认知!")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("基因突变"),
("现在蝇群和重甲豺狼无法获得基因突变效果")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.LANTERNB), ("灯火平衡"),
("灯火进行了一波平衡,使之游玩起来更好玩。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CHALLANEESICON_9), ("梦魇领袖"),
("梦魇领袖进行了一些调整,并改名为绝命头目")));
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_06X88")));
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_06X87")));
changes = new ChangeInfo("v0.6.5.0-Alpha5.2-国庆", true, "");
changes.hardlight(Window.TITLE_COLOR);
changeInfos.add(changes);
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
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_06X86")));
changes = new ChangeInfo("v0.6.5.0-Alpha5-中秋", 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 GhostSprite.PinkGhostSprites(), ("新限时任务:映月离合之殇"),
("在中秋和国庆节这个期间一起探索悲伤幽灵它们的故事……")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(Icons.get(Icons.INFO), ("修复"),
("修复上个版本的一些错误")));
changes = new ChangeInfo("v0.6.5.0-Alpha4.5", 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 ItemSprite(ItemSpriteSheet.GREATSWORD,
new ItemSprite.Glowing( 0xcc7770 )), "新附魔:爆破",
"这个附魔会让使用者陷入癫狂能使爆炸的能量从武器中喷薄而出能够使敌人目标处受到一次范围伤害亦或者给造成敌人短暂的残废效果。PS:爆炸效果不会摧毁物品)\n"));
changes.addButton(new ChangeButton(PasswordBadgeBanner.image(PaswordBadges.Badge.ZQJ_GHOST.image), ("两个隐藏徽章资源预载"),
("两个隐藏徽章资源预载,将在后续版本更新。")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
Image isa = new SlimeKingSprite();
isa.scale.set(PixelScene.align(0.89f));
changes.addButton( new ChangeButton(isa, "史莱姆王子",
"修复错误的继承类导致的Cast Exception错误"));
changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY), ("界面修复"),
("修复部分界面在新版的异常布局")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("药水癔症v0.2"),
("现在全肉大饼在英雄低于12力量前必定加力量且整体加力量的幸运度提升。")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("其他改动"),
("1.鬼磷和爆破现在是稀有附魔\n\n" +
"2.修复了吸血鬼刀的异常吸血-贡献者:\nzxcPandora\n\n"+
"3.修复了药水癔症描述问题,纯洁的祝福-守护护盾描述异常,以及开发者升降器追加探查功能-\n贡献者zxcPandora")));
changes = new ChangeInfo("v0.6.5.0-Alpha4", 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(Icons.get(Icons.CHALLENGE_ON), ("电子斗蛐蛐v0.2"),
("开发者模式怪物放置器拥有更多功能欢迎尝试另追加黏咕史莱姆王豺狼炼药长老豺狼萨满长老Flame-C01")));
changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY), ("信息栏滚动"),
("在游戏缩放较大或者拥有较多词条时,该项会很有用。")));
changes.addButton(new ChangeButton(BadgeBanner.image(Badges.Badge.BOMBBOW_DIED.image), ("新徽章:碎片飞溅"),
("又是一个死亡徽章,新人:悲鸣 因为意味着另类死亡爱好者多了一个新徽章(未解锁该徽章的就更麻烦了)")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new SalamanderSprites(), ("深蓝蝾螈"),
("修复被深蓝蝾螈击败不会记录在排行榜的问题。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DIEDCROSSBOW), ("重型弩炮"),
("修复使用还会扣减飞镖的问题。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.WAND_KCX), ("共生法杖"),
("修复共生法杖可能能被永续的问题。")));
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_06X85")));
changes = new ChangeInfo("v0.6.5.0-Alpha3", 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(Icons.get(Icons.CHALLENGE_ON), ("开发者模式更新"),
("添加了更多开发者选项,优化了一些问题,怪物放置器支持电子斗蛐蛐")));
Image dragonSprite = new FireDragonSprite();
dragonSprite.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(dragonSprite, ("熔岩火龙资源预载"),
("丛林额外Boss-熔岩火龙资源预载预计将在Alpha7加入。")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DIEDCROSSBOW), ("重型弩炮"),
("现在不需要飞镖作为弹药,但有装填时间。")));
Image xa = new SakaFishBossSprites();
xa.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(xa, "萨卡班甲鱼",
"初始防御调为35常规伤害降低。"));
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_06X84")));
changes = new ChangeInfo("v0.6.5.0-Alpha1-2", 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 ItemSprite(ItemSpriteSheet.DIEDCROSSBOW), ("传奇武器"),
("新类别传奇武器测试已经开始。在后续版本中需要通过货币解锁。")));
changes.addButton(new ChangeButton(Icons.get(Icons.BADGES), ("加密徽章"),
("添加了加密徽章,长按徽章按钮进入。记录一些隐藏成就。\n\n_注意_这些成就不会在获取之前不会显示出来")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项改动"),
("1.添加了暂停更新界面的功能\n\n" +
"2.少量bug修复")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
Image a = new SakaFishBossSprites();
a.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(a, "萨卡班甲鱼",
"数值方面进行了一定平衡。"));
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_06X83")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项调整"),
("1.书籍现在不可堆积,且成就有一些变化\n\n" +
"2.其它bug修复")));
}
public static void add_v0_6_55_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.4.0-BetaI-XIII", 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 Image("Ling.png", 0, 0, 16, 16)), ("开发者的话"),
("你好,我应该有很久没有写开发者的话了。近期,真的很忙。\n" +
"我只有晚上更新一会魔绫,但总会熬夜到很晚。\n" +
"再这样下去,不清楚还能如此坚持多久。\n" +
"我想,我需要休息一下。\n" +
"并且降低更新频率,我想现在魔绫的更新速度已经太快了\n"+
"所以后面的更新,可能会慢一点。\n"+
"还是希望各位能玩的愉快吧,毕竟,人总是不能在虚拟世界里生活的。\n" +
"现实仍然有很多东西,我是时候调节一下了。\n"+
"那么还是祝各位游戏中冒险愉快吧!")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("快捷栏V1/V2"),
("快捷栏降至9个并且V1是魔绫原版快捷栏V2是碳素那边借鉴优化的快捷栏。任君挑选。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ALCH_PAGE), ("炼金界面优化"),
("炼金指南进行优化。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.TORCH), ("火把调整"),
("现在火把会在灯火中成为燃料。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ARMOR_ANCITY), ("板鳖甲"),
("来自远古的护甲,你是想现在使用,亦或者是收入囊中等待合适的时机?")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.RING_DIAMOND), ("财富之戒"),
("财富戒指同步为破碎。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.FIREFISHSWORD), ("尚方宝剑"),
("尚方宝剑属性重新优化,并且拥有两个形态的弱切换。具体怎么切换,看你们自己探索了")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.LANTERNB), ("深度调查"),
("娱乐模式改名为深度调查,并且追加黄金时代新娱乐模式。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SCROLL_LAGUZ), ("升级卷轴"),
("现在追加一个使用全部升级卷轴的按钮")));
changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY), ("游戏内区域文本"),
("现在每个大区有区域文本,给各位更加身临其境的感觉。")));
Image a = new SakaFishBossSprites();
a.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(a, "新Boss:萨卡班甲鱼",
"远古遗迹的领袖级Boss,欢迎前来挑战。"));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SAI), ("吸血鬼刀-Beta13"),
("修复了一些吸血权重问题。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.WRALIPS), ("暗金宝石护符"),
("现在最高上限+10并调整优化了一些问题")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SCROLL_ODAL), ("升级卷轴"),
("现在修复升级卷轴可能丢失的问题并且采用平衡算法。例如你在1区摸到了4个升级在监狱只有两个。总量不变。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.WAND_KCX), ("再生法杖"),
("修复一些问题,并且可以持续使用。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CHALLANEESICON_15), ("挑战加成"),
("在高挑中,提灯的容量更多,商店售卖更多灯油,但灯火的每次减少可能会加剧!")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("支离破碎"),
("支离破碎进行了一些怪组优化,并且调整了巨魔铁匠任务(如果在支离破碎遇到巨魔的蝙蝠任务确实有突变buff)")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项修改"),
("添加Boss专武保底机制连续三局未获得下次必定获得")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.GREATSHIELD), ("5阶武器"),
("现在5阶武器生成平均化")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SAI), ("吸血鬼刀-Beta12"),
("优化数值,调整吸血权重。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DG3), ("归溯钥剑"),
("现在只能在怪物那里获得极少经验,更多经验应该通过装备此武器后拾取钥匙吸收能量。")));
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_06X82")));
}
public static void add_v0_6_54_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.4.0-Beta1", 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 Image(Assets.Environment.TILES_SEWERS, 48, 48, 16
, 16), "房间改动",
"全新房间:慧眼墓碑房/太极八卦房加入"));
changes.addButton(new ChangeButton(new ShopkeeperSprite(), ("回购系统"),
("商店追加回购系统,除了商人领主和奈亚子均可原价退回商品")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new PinkLingSprite(), ("杂项改动"),
("优化地牢部分数据,并且为即将更新的每日狩猎等设好底层。")));
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_06X81")));
}
}

View File

@ -1,12 +1,8 @@
package com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.PaswordBadges;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.NewDM300;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.PinkLingSprite;
import com.shatteredpixel.shatteredpixeldungeon.effects.BadgeBanner;
import com.shatteredpixel.shatteredpixeldungeon.effects.PasswordBadgeBanner;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
@ -23,12 +19,9 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.DM720Sprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.DiedMonkLoaderSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.DimandKingSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.FireCrystalSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.FireDragonSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.FlameBoiSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.FlowerSlimeSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.GhostSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.IceFireScorpioSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.IceSlowGirlSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.IceStalSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
@ -43,10 +36,8 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.NyzSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.OGPDNQHZTT;
import com.shatteredpixel.shatteredpixeldungeon.sprites.RedSwarmSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SRPDHBLRTT;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SakaFishBossSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SalamanderSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ShopkKingSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ShopkeeperSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimeKingSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SnakeSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.WFSprite;
@ -63,9 +54,9 @@ import java.util.ArrayList;
public class vM0_6_7_X_Changes {
public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) {
add_v0_6_56_Changes(changeInfos);
add_v0_6_55_Changes(changeInfos);
add_v0_6_54_Changes(changeInfos);
// add_v0_6_56_Changes(changeInfos);
// add_v0_6_55_Changes(changeInfos);
// add_v0_6_54_Changes(changeInfos);
add_v0_6_53_Changes(changeInfos);
add_v0_6_52_Changes(changeInfos);
add_v0_6_51_Changes(changeInfos);
@ -122,460 +113,6 @@ public class vM0_6_7_X_Changes {
add_v0_6_0_Changes(changeInfos);
}
public static void add_v0_6_56_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("Coming Soon V0.6.5.0-Alpha7", true, "");
changes.hardlight(Window.CBLACK);
changeInfos.add(changes);
// changes.addButton(new ChangeButton(new RedNecromancerSprite(), ("BossRush2.0"),
// ("地牢发生了翻天覆地的改变,一切的矛头指向了死灵军团……")));
//
// Image s = new DM300AttackSprite();
// s.scale.set(PixelScene.align(0.74f));
// changes.addButton(new ChangeButton(s, ("DM-ZERO"),
// ("时间在这里停止流动与DMZERO正面对决的即将到来")));
Image c = new IceSlowGirlSprites();
c.scale.set(PixelScene.align(0.74f));
changes.addButton(new ChangeButton(c, ("冰雪魔女重做"),
("石碑上记录了有关于她的一切,她的过去,她的现在,她的未来。而当你与她对峙时,你是否能够看清她的真实面目?")));
Image i = new Image("sprites/boss/fireDragon.png", 0, 0, 24, 24);
i.scale.set(PixelScene.align(0.74f));
changes.addButton(new ChangeButton(i, ("熔岩火龙"),
("丛林暴乱的真相")));
changes = new ChangeInfo("v0.6.5.0-Alpha6-Patch4", 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 ItemSprite(ItemSpriteSheet.DG25), ("开发者模式v0.5"),
("新增武器生成秘卷,感谢潘多拉的代码制作和注解版的代码支持。")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("挑战变幻莫测V0.3"),
("修复了一堆问题,并改善了部分体验")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项修改"),
("1.修复了部分文案问题\n\n" +
"2.调整了一些底层代码" )));
changes = new ChangeInfo("v0.6.5.0-Alpha6.9-6.93-LAST", 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 Image("Ling.png", 0, 0, 16, 16)), ("开发者的话"),
("v0.6.5.0-Alpha6.9-LAST--完成于2023-10-6\n\n" +
"今天对我来说是一个特别的日子因为今天是我21岁生日。\n\n" +
"回想MLPD的两年我也从一名曾经的准大学生变成了即将毕业的大学生\n\n" +
"生活的忙碌,社会的考验,实习的困难比比皆是。但好在我有一批非常爱我和这个游戏的玩家\n\n" +
"Alpha6.9是MLPD的近期的最终版本。接下来她(代指魔绫)将进入休整期阶段,\n\n" +
"但游戏的内容足够玩家游玩当然如果有bug我会来修复。\n\n" +
"最近只是没有大版本更新了。最后,近期是我的生日,我在游戏中为各位玩家准备了水晶项链。\n\n" +
"她应该可以帮助你们更好的游玩游戏,希望水晶项链能给你们带来不错的体验。\n\n" +
"最后,让我们在冬季版本大更新中相见,再会!!!\n\n" +
"---MLPD主要开发者JDSALing" )));
changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY_LAND), ("农历计算系统"),
("现在MLPD支持农历计算系统中秋节端午节以及作者的生日均使用此系统计算。\n" +
"Ling的生日农历8.22\n\n有效时间范围8.22-8.25\n\n" +
"中秋节农历8.15\n\n有效时间范围中秋节前10天到中秋节后12天\n\n" +
"端午节农历5.5\n\n有效时间范围端午节前3天到端午节后7天\n\n注意如果与西方节日冲突优先将用中国传统节日")));
changes.addButton(new ChangeButton(Icons.get(Icons.AUDIO), ("新主题BGM"),
("在玩家在新版本胜利一次后有机会在主界面播放新BGM和下半段暗示。")));
changes.addButton(new ChangeButton(new FlowerSlimeSprites(), ("新生物:丛林繁花史莱姆"),
("替代普通老鼠,老鼠现在只会在丛林边缘(第一层生成),后面都是这个新生物。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.REDWHITEROSE), ("一种载体彻底实装"),
("效果:力量+2,移速+10%每5回合回复1HP")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CRYSTAL_LING), ("新开发者物品:水晶项链"),
("在每年绫的生日有效活得时间直接在开局就能获得,自带韧性之戒效果,治疗效果小幅度提升。")));
changes.addButton(new ChangeButton(PasswordBadgeBanner.image(PaswordBadges.Badge.NIGHT_CAT.image), (
"新隐藏徽章:不眠之夜"),
("解密片段:月黑风高,古神陨落。")));
changes.addButton(new ChangeButton(BadgeBanner.image(Badges.Badge.HIDEEN_BADAGEX.image), ("新徽章:隐秘探索"),
("获得方式:发现隐藏徽章的位置")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
Image xax = new SakaFishBossSprites();
xax.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(xax, "萨卡班甲鱼",
"现在免疫恐惧!"));
changes.addButton(new ChangeButton(new CrivusFruitsSprite(), ("克里弗斯之果"),
("现在净化药剂有特定版,且绝命头目地形改变。")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("开发者模式V0.4"),
("开发者模式进行一些小型优化,追加新怪物:丛林繁花史莱姆")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("挑战变幻莫测V0.2"),
("修复了一堆问题:\n\n" +
"1.可能导致钥匙丢失\n\n2.重复Boss警报\n\n3.看见人不传送\n\n4.改善了Goo和DM300原型机的属性与地形。")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项改动-1"),
("1.优化了主题背景界面并且植入夜间状态在晚上22点到早上7点前是夜间状态。因此是夜间背景。反之则是白天背景。\n\n" +
"2.圣境密林层改善了几个地块,部分敌人素材迭代\n\n" +
"3.上个版本的一些FB-bug修复")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项改动-2"),
("1.修复了提灯环境下火把能量无法被保存的相关问题\n" +
"2.修复了变幻莫测挑战相关问题\n" +
"3.修复了DM300原型机无限护盾问题\n" +
"4.修复了徽章界面可能闪退的问题\n" +
"5.修复了沉沦效果动画丢失问题\n" +
"6.优化了部分地块贴图\n" +
"7.修复了DM300 DM720进入即过关的问题\n" +
"8.修复了隐藏徽章-不眠之夜,无法被获得的问题\n" +
"9.新增夜晚文本提醒")));
changes = new ChangeInfo("v0.6.5.0-Alpha6-6.8-国庆", 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(Icons.get(Icons.CHALLENGE_ON), ("新挑战变幻莫测V0.1"),
("追加两个随机地形感觉整体战斗全面处于大地型怪物生成变多追加两个迷你Boss战。")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项修改2"),
("1.修复三井协定的三井重复生成问题\n" +
"2.改善变幻莫测迷你Boss地形以及战利品\n" +
"3.种子现在分为A类B类BossRush类\n" +
"4.部分界面UI迭代变幻莫测挑战平衡\n" +
"5.修复鼠王可以改造特定护甲,例如板鳖甲")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项修改"),
("1.迭代了UI材质\n\n2.优化了一些代码")));
changes.addButton(new ChangeButton(Icons.get(Icons.DEPTH_WELLS), ("更多地形认知"),
("在变幻莫测中加入了更多地形认知!")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("基因突变"),
("现在蝇群和重甲豺狼无法获得基因突变效果")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.LANTERNB), ("灯火平衡"),
("灯火进行了一波平衡,使之游玩起来更好玩。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CHALLANEESICON_9), ("梦魇领袖"),
("梦魇领袖进行了一些调整,并改名为绝命头目")));
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_06X88")));
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_06X87")));
changes = new ChangeInfo("v0.6.5.0-Alpha5.2-国庆", true, "");
changes.hardlight(Window.TITLE_COLOR);
changeInfos.add(changes);
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
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_06X86")));
changes = new ChangeInfo("v0.6.5.0-Alpha5-中秋", 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 GhostSprite.PinkGhostSprites(), ("新限时任务:映月离合之殇"),
("在中秋和国庆节这个期间一起探索悲伤幽灵它们的故事……")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(Icons.get(Icons.INFO), ("修复"),
("修复上个版本的一些错误")));
changes = new ChangeInfo("v0.6.5.0-Alpha4.5", 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 ItemSprite(ItemSpriteSheet.GREATSWORD,
new ItemSprite.Glowing( 0xcc7770 )), "新附魔:爆破",
"这个附魔会让使用者陷入癫狂能使爆炸的能量从武器中喷薄而出能够使敌人目标处受到一次范围伤害亦或者给造成敌人短暂的残废效果。PS:爆炸效果不会摧毁物品)\n"));
changes.addButton(new ChangeButton(PasswordBadgeBanner.image(PaswordBadges.Badge.ZQJ_GHOST.image), ("两个隐藏徽章资源预载"),
("两个隐藏徽章资源预载,将在后续版本更新。")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
Image isa = new SlimeKingSprite();
isa.scale.set(PixelScene.align(0.89f));
changes.addButton( new ChangeButton(isa, "史莱姆王子",
"修复错误的继承类导致的Cast Exception错误"));
changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY), ("界面修复"),
("修复部分界面在新版的异常布局")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("药水癔症v0.2"),
("现在全肉大饼在英雄低于12力量前必定加力量且整体加力量的幸运度提升。")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("其他改动"),
("1.鬼磷和爆破现在是稀有附魔\n\n" +
"2.修复了吸血鬼刀的异常吸血-贡献者:\nzxcPandora\n\n"+
"3.修复了药水癔症描述问题,纯洁的祝福-守护护盾描述异常,以及开发者升降器追加探查功能-\n贡献者zxcPandora")));
changes = new ChangeInfo("v0.6.5.0-Alpha4", 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(Icons.get(Icons.CHALLENGE_ON), ("电子斗蛐蛐v0.2"),
("开发者模式怪物放置器拥有更多功能欢迎尝试另追加黏咕史莱姆王豺狼炼药长老豺狼萨满长老Flame-C01")));
changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY), ("信息栏滚动"),
("在游戏缩放较大或者拥有较多词条时,该项会很有用。")));
changes.addButton(new ChangeButton(BadgeBanner.image(Badges.Badge.BOMBBOW_DIED.image), ("新徽章:碎片飞溅"),
("又是一个死亡徽章,新人:悲鸣 因为意味着另类死亡爱好者多了一个新徽章(未解锁该徽章的就更麻烦了)")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new SalamanderSprites(), ("深蓝蝾螈"),
("修复被深蓝蝾螈击败不会记录在排行榜的问题。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DIEDCROSSBOW), ("重型弩炮"),
("修复使用还会扣减飞镖的问题。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.WAND_KCX), ("共生法杖"),
("修复共生法杖可能能被永续的问题。")));
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_06X85")));
changes = new ChangeInfo("v0.6.5.0-Alpha3", 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(Icons.get(Icons.CHALLENGE_ON), ("开发者模式更新"),
("添加了更多开发者选项,优化了一些问题,怪物放置器支持电子斗蛐蛐")));
Image dragonSprite = new FireDragonSprite();
dragonSprite.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(dragonSprite, ("熔岩火龙资源预载"),
("丛林额外Boss-熔岩火龙资源预载预计将在Alpha7加入。")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DIEDCROSSBOW), ("重型弩炮"),
("现在不需要飞镖作为弹药,但有装填时间。")));
Image xa = new SakaFishBossSprites();
xa.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(xa, "萨卡班甲鱼",
"初始防御调为35常规伤害降低。"));
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_06X84")));
changes = new ChangeInfo("v0.6.5.0-Alpha1-2", 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 ItemSprite(ItemSpriteSheet.DIEDCROSSBOW), ("传奇武器"),
("新类别传奇武器测试已经开始。在后续版本中需要通过货币解锁。")));
changes.addButton(new ChangeButton(Icons.get(Icons.BADGES), ("加密徽章"),
("添加了加密徽章,长按徽章按钮进入。记录一些隐藏成就。\n\n_注意_这些成就不会在获取之前不会显示出来")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项改动"),
("1.添加了暂停更新界面的功能\n\n" +
"2.少量bug修复")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
Image a = new SakaFishBossSprites();
a.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(a, "萨卡班甲鱼",
"数值方面进行了一定平衡。"));
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_06X83")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项调整"),
("1.书籍现在不可堆积,且成就有一些变化\n\n" +
"2.其它bug修复")));
}
public static void add_v0_6_55_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.4.0-BetaI-XIII", 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 Image("Ling.png", 0, 0, 16, 16)), ("开发者的话"),
("你好,我应该有很久没有写开发者的话了。近期,真的很忙。\n" +
"我只有晚上更新一会魔绫,但总会熬夜到很晚。\n" +
"再这样下去,不清楚还能如此坚持多久。\n" +
"我想,我需要休息一下。\n" +
"并且降低更新频率,我想现在魔绫的更新速度已经太快了\n"+
"所以后面的更新,可能会慢一点。\n"+
"还是希望各位能玩的愉快吧,毕竟,人总是不能在虚拟世界里生活的。\n" +
"现实仍然有很多东西,我是时候调节一下了。\n"+
"那么还是祝各位游戏中冒险愉快吧!")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("快捷栏V1/V2"),
("快捷栏降至9个并且V1是魔绫原版快捷栏V2是碳素那边借鉴优化的快捷栏。任君挑选。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ALCH_PAGE), ("炼金界面优化"),
("炼金指南进行优化。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.TORCH), ("火把调整"),
("现在火把会在灯火中成为燃料。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ARMOR_ANCITY), ("板鳖甲"),
("来自远古的护甲,你是想现在使用,亦或者是收入囊中等待合适的时机?")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.RING_DIAMOND), ("财富之戒"),
("财富戒指同步为破碎。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.FIREFISHSWORD), ("尚方宝剑"),
("尚方宝剑属性重新优化,并且拥有两个形态的弱切换。具体怎么切换,看你们自己探索了")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.LANTERNB), ("深度调查"),
("娱乐模式改名为深度调查,并且追加黄金时代新娱乐模式。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SCROLL_LAGUZ), ("升级卷轴"),
("现在追加一个使用全部升级卷轴的按钮")));
changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY), ("游戏内区域文本"),
("现在每个大区有区域文本,给各位更加身临其境的感觉。")));
Image a = new SakaFishBossSprites();
a.scale.set(PixelScene.align(0.72f));
changes.addButton(new ChangeButton(a, "新Boss:萨卡班甲鱼",
"远古遗迹的领袖级Boss,欢迎前来挑战。"));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SAI), ("吸血鬼刀-Beta13"),
("修复了一些吸血权重问题。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.WRALIPS), ("暗金宝石护符"),
("现在最高上限+10并调整优化了一些问题")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SCROLL_ODAL), ("升级卷轴"),
("现在修复升级卷轴可能丢失的问题并且采用平衡算法。例如你在1区摸到了4个升级在监狱只有两个。总量不变。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.WAND_KCX), ("再生法杖"),
("修复一些问题,并且可以持续使用。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CHALLANEESICON_15), ("挑战加成"),
("在高挑中,提灯的容量更多,商店售卖更多灯油,但灯火的每次减少可能会加剧!")));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("支离破碎"),
("支离破碎进行了一些怪组优化,并且调整了巨魔铁匠任务(如果在支离破碎遇到巨魔的蝙蝠任务确实有突变buff)")));
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("杂项修改"),
("添加Boss专武保底机制连续三局未获得下次必定获得")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.GREATSHIELD), ("5阶武器"),
("现在5阶武器生成平均化")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SAI), ("吸血鬼刀-Beta12"),
("优化数值,调整吸血权重。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DG3), ("归溯钥剑"),
("现在只能在怪物那里获得极少经验,更多经验应该通过装备此武器后拾取钥匙吸收能量。")));
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_06X82")));
}
public static void add_v0_6_54_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.4.0-Beta1", 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 Image(Assets.Environment.TILES_SEWERS, 48, 48, 16
, 16), "房间改动",
"全新房间:慧眼墓碑房/太极八卦房加入"));
changes.addButton(new ChangeButton(new ShopkeeperSprite(), ("回购系统"),
("商店追加回购系统,除了商人领主和奈亚子均可原价退回商品")));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new PinkLingSprite(), ("杂项改动"),
("优化地牢部分数据,并且为即将更新的每日狩猎等设好底层。")));
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_06X81")));
}
public static void add_v0_6_53_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.3.0-Beta5-5.1", true, "");
changes.hardlight(Window.TITLE_COLOR);