Update: 更新0.6.1.0-Beta5.1
This commit is contained in:
parent
3054a4ba5b
commit
f943f39427
|
@ -412,7 +412,7 @@ actors.buffs.championhero$giant.desc=无畏祝福拥有 75% 的伤害减免。\n
|
|||
actors.buffs.championhero$blessed.name=天佑祝福
|
||||
actors.buffs.championhero$blessed.desc=天佑祝福拥有 200% 额外精准与躲避。\n\n剩余回合时长:
|
||||
actors.buffs.championhero$growing.name=英雄祝福
|
||||
actors.buffs.championhero$growing.desc=英雄祝福拥有额外精准、躲避、近战伤害与伤害减免。\n\n当前精准、躲避、近战伤害加成:%1$d%%\n当前伤害减免:%2$d%%\n\n剩余回合时长:
|
||||
actors.buffs.championhero$growing.desc=英雄祝福拥有额外精准、躲避、近战伤害与伤害减免。\n\n精准、躲避、近战伤害加成:%1$d%%\n伤害减免:%2$d%%\n\n剩余回合时长:
|
||||
|
||||
actors.mobs.dimandking.name=钻石宝箱王
|
||||
actors.mobs.dimandking.notice=翼绫?是你?不,你不是翼绫!你为何前来?
|
||||
|
|
|
@ -151,9 +151,25 @@ items.weapon.melee.washcrime$diedghost.name=未安息的亡魂
|
|||
items.weapon.melee.washcrime$diedghost.desc=肉身已然逝去,灵魂尚未得到安息,脑海遵照主人的意愿,直到真正的死亡降临。
|
||||
|
||||
items.weapon.melee.bloodthirstythorn.name=嗜血荆棘
|
||||
items.weapon.melee.bloodthirstythorn.desc=浸染鲜血的倒悬之树。舍弃了仅存的秩序,独留狂暴与混乱。\n-攻击时有概率给敌人施加Γ流血和恐惧Γ效果。\n-特性:该武器拥有与蓄血圣杯相同的升级方式,最高等级10级。等级+3前每次攻击有概率扣除使用者2点生命值,并施加流血效果。等级+5及以后时攻击距离增加一格,并移除其负面影响。在10级时每次攻击将恢复造成伤害的一定比列的生命值。\n_-这是一把十分精准的武器_
|
||||
items.weapon.melee.bloodthirstythorn.stats_desc=这株植物已经汲取了Γ你的生命精华Γ并滋养长大,现在它的攻击范围扩大一格,精准度提高_20%_。
|
||||
items.weapon.melee.bloodthirstythorn.stats_descx=\n\n你的Γ生命精华Γ让这株植物再次变得茁壮,现在它会在_每次攻击敌人_时汲取一定的数值回馈给你。
|
||||
items.weapon.melee.bloodthirstythorn.desc=鲜血腐蚀所残留的倒悬树之刺。舍弃了仅存的秩序,独留狂暴与混乱。\n-攻击时有概率给敌人施加Γ流血和恐惧Γ效果。\n-特性:升级机制与蓄血圣杯相同\n_+3_前攻击将概率流失自身2点生命值并刺伤自己\n_+5_时取消负面影响,攻击距离+1,+20%精准\n_+10_时每次有效攻击将汲取一定生命力回馈给自身\n_这是一把十分精准的武器_
|
||||
items.weapon.melee.bloodthirstythorn.stats_desc=这株植物不再抗拒你,并且发生了一些变化
|
||||
items.weapon.melee.bloodthirstythorn.stats_descx=\n\n这株植物成长到了极限,或许会通过某种方式给予回馈
|
||||
items.weapon.melee.bloodthirstythorn.good=你的生命精华已经完全浸染吾等,作为尔等忠诚的报答,你会获得一个Γ诅咒但含有1~3等级的圣杯Γ作为补偿。
|
||||
|
||||
items.weapon.melee.bloodthirstythorn.ac_prick=血祭
|
||||
items.weapon.melee.bloodthirstythorn.yes=是的,我知道我在做什么
|
||||
items.weapon.melee.bloodthirstythorn.no=不,我改主意了
|
||||
items.weapon.melee.bloodthirstythorn.prick_warn=每次使用血祭都会消耗更多的生命能量,要是不够小心,这种行为可以轻易地杀死你。\n\n你确定要给它更多的生命能量吗?
|
||||
items.weapon.melee.bloodthirstythorn.onprick=你刺破了自己的手指,你的生命精华流入了这株噩梦般的荆棘植物中。
|
||||
items.weapon.melee.bloodthirstythorn.ondeath=这株噩梦般的植物将你的生命精华吸噬殆尽了…
|
||||
|
||||
items.weapon.melee.magictorch.name=魔法火把
|
||||
items.weapon.melee.magictorch.desc=呲.嘶...呲...,灰色水晶上燃起的熊熊烈焰,似乎没有要熄灭的意思\n-命中时必定给目标施加燃烧,并给持有者永久的照明效果\n_-这把武器无法用于偷袭_
|
||||
|
||||
items.weapon.melee.magictorch$magiclight.name=魔法光源
|
||||
items.weapon.melee.magictorch$magiclight.desc=来自于魔法火把中提供的永久光源,可以提供普通光亮的2/3范围。更能缓慢恢复地牢中的寒冷值。
|
||||
|
||||
|
||||
|
||||
#MLPDSTOREYBOOKS
|
||||
|
||||
|
@ -212,7 +228,7 @@ items.books.bookslist.brokenbooks.desc=上面沾染了水渍与污垢,鲜红
|
|||
items.books.bookslist.brokenbooks.author=--作者:_不详_
|
||||
items.books.bookslist.brokenbooks.ac_read=阅读书籍
|
||||
items.books.bookslist.brokenbooks.blees=你阅读了书籍,一股力量油然而生!
|
||||
items.books.bookslist.brokenbooks.anmazing=你解读书中的奥秘,你领悟到了成长的力量!
|
||||
items.books.bookslist.brokenbooks.anmazing=你解读书中的奥秘,你领悟到了英雄的力量!
|
||||
|
||||
items.books.bookslist.magicgirlbooks.name=《镶着金边的魔女手记》
|
||||
items.books.bookslist.magicgirlbooks.desc=(前面的几页似乎是被撕掉了)……这是大火后的第三天,我像往常一样推开了窗户。\n\n瘴气似的魔力涌入房间,没办法……我无法对抗它……\n\n在我被这股魔力吞噬殆尽之前,在它占据我的身体之前,我得准备好一些能与之抗衡的东西……\n\n仇恨,密谋,计划,灾厄正在降临。(最后这几个字的笔迹似乎变成了另一个人的)\n\n_若要记录在书架里面,请先鉴定!
|
||||
|
@ -1916,6 +1932,7 @@ items.weapon.melee.roundshield.desc=这个大盾可以有效格挡攻击,在
|
|||
items.weapon.melee.sai.name=吸血鬼刀
|
||||
items.weapon.melee.sai.stats_desc=这是一套非常快的武器,且能在攻击过程中得到一定的治疗值,甚至能超过英雄本身的血量。不幸的是,这个武器的精准十分的差。
|
||||
items.weapon.melee.sai.desc=泛红的剑身表示着它并不是普通人能使用的武器,这件武器在快速斩击方面十分出色,在精准方面略微逊色。
|
||||
items.weapon.melee.sai.attacker=迅猛一击,回血成功!
|
||||
|
||||
items.weapon.melee.scimitar.name=弯刀
|
||||
items.weapon.melee.scimitar.stats_desc=这是一把比较快的武器。
|
||||
|
|
|
@ -40,7 +40,7 @@ journal.document.alchemy_guide.exotic_scrolls.body=将一张卷轴与一些炼
|
|||
journal.document.alchemy_guide.bombs.title=改造炸弹
|
||||
journal.document.alchemy_guide.bombs.body=一个标准的黑火药炸弹可以与一个特定的物品共炼来制作一个强化炸弹。
|
||||
journal.document.alchemy_guide.weapons.title=强化武器
|
||||
journal.document.alchemy_guide.weapons.body=投掷武器与法杖也可参与到炼金反应当中!\n\n每个投掷物可以融化为一定量的液金,足以完全修复阶级与等级一样的单件投掷物。\n\n法杖可以裂解为一定量的奥术聚酯,足以升级两把同等级的法杖。不可通过此方法将法杖升级至+3以上。\n\n通过注入击败Boss的战利品可以获得更加高阶的法杖,并且每个高阶法杖都有至少+2的保底,最高+4,优先使用0级法杖,如果已经有等级,请手动放入炼金釜中。
|
||||
journal.document.alchemy_guide.weapons.body=投掷武器与法杖也可参与到炼金反应当中!\n\n每个投掷物可以融化为一定量的液金,足以完全修复阶级与等级一样的单件投掷物。\n\n法杖可以裂解为一定量的奥术聚酯,足以升级两把同等级的法杖。不可通过此方法将法杖升级至+3以上。\n\n通过注入击败Boss的战利品可以获得更加高阶的法杖,并且每个高阶法杖都有至少+2的保底,最高+4,优先使用0级法杖,如果物品已经有等级,请手动放入炼金釜中。
|
||||
journal.document.alchemy_guide.catalysts.title=炼制催化剂
|
||||
journal.document.alchemy_guide.catalysts.body=催化剂可以用一张卷轴或一瓶药水与一个种子或一个符石制得。如果原料较为匹配,将不会消耗炼金能量。\n\n催化剂的主要用处是在接下来两页的配方中充当炼金原料,不过也可以直接使用以获取一种随机效果。
|
||||
journal.document.alchemy_guide.brews_elixirs.title=炼制魔药与秘药
|
||||
|
|
|
@ -503,5 +503,6 @@ ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x55=-V0.6.1-Beta4.9\n1.修复一些
|
|||
|
||||
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x58=-V0.6.1-Beta5\n1.修复FlameC02的越界错误\n2.修复浊焰魔女被秒杀的Bug\n3.修复一些细小错误
|
||||
|
||||
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x59=-V0.6.1-Beta5.1\n1.修复英雄祝福的错误给予回合\n2.修复经验为负的特殊情况\n-修复少量错误崩溃
|
||||
|
||||
//ui.changelist.mlpd.vm0_5_x_changes.xxx//
|
|
@ -255,11 +255,11 @@ public abstract class ChampionHero extends FlavourBuff {
|
|||
//
|
||||
}
|
||||
|
||||
private float multiplier = 1.15f;
|
||||
private float multiplier = 1.85f;
|
||||
|
||||
@Override
|
||||
public boolean act() {
|
||||
//detach();
|
||||
detach();
|
||||
multiplier += 0.5f;
|
||||
spend(3*TICK);
|
||||
return true;
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
|||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagicTorch;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
|
@ -37,7 +38,7 @@ public class IceHpBuff extends Buff implements Hero.Doom {
|
|||
spend(STEP);
|
||||
return true;
|
||||
//燃起来了
|
||||
}else if(this.target.buff(HalomethaneBurning.class) != null || this.target.buff(Burning.class) != null){
|
||||
}else if((this.target.buff(HalomethaneBurning.class) != null || this.target.buff(Burning.class) != null || this.target.buff(MagicTorch.MagicLight.class) != null) && Dungeon.depth <= 5){
|
||||
hero.healIcehp(1);
|
||||
spend(10f);
|
||||
return true;
|
||||
|
|
|
@ -52,6 +52,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.TengusMask;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClothArmor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.EtherealChains;
|
||||
|
@ -64,7 +65,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.bags.KingBag;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.VelvetPouch;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.BrokenBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.DeepBloodBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.GrassKingBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.IceCityBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.MagicGirlBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.NoKingMobBooks;
|
||||
|
@ -84,7 +84,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfMindVision
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.WaterSoul;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDragonKingBreath;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.GoldBAo;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.MetalShard;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfFlameCursed;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfIdentify;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfLullaby;
|
||||
|
@ -113,25 +113,22 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BloodthirstyThorn;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.EndingBlade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.FireFishSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gauntlet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gloves;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LifeTreeSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LockSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagicTorch;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RedBloodMoon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.SDBSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Sai;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.SkyShield;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WarHammer;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WashCrime;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.AikeLaier;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
public enum HeroClass {
|
||||
|
@ -215,13 +212,13 @@ public enum HeroClass {
|
|||
|
||||
new WandOfCorruption().quantity(1).identify().collect();
|
||||
new MasterThievesArmband().quantity(1).identify().collect();
|
||||
new Dart().quantity(1).identify().collect();
|
||||
|
||||
new MetalShard().quantity(1).identify().collect();
|
||||
new ChaliceOfBlood().quantity(1).identify().collect();
|
||||
new LifeTreeSword().quantity(1).identify().collect();
|
||||
|
||||
new Sai().quantity(1).identify().collect();
|
||||
new MagicTorch().quantity(1).identify().collect();
|
||||
new SkyShield().quantity(1).identify().collect();
|
||||
new SandalsOfNature().quantity(1).identify().collect();
|
||||
new GoldBAo().quantity(9999).identify().collect();
|
||||
new WandOfScale().quantity(1).identify().collect();
|
||||
new WandOfGodIce().quantity(1).identify().collect();
|
||||
new PotionOfLightningShiledX().quantity(1).identify().collect();
|
||||
|
@ -237,10 +234,6 @@ public enum HeroClass {
|
|||
new IceCityBooks().quantity(1).identify().collect();
|
||||
new MagicGirlBooks().quantity(1).identify().collect();
|
||||
new NoKingMobBooks().quantity(1).identify().collect();
|
||||
new GrassKingBooks().quantity(100).identify().collect();
|
||||
new AikeLaier.Seed().quantity(10).identify().collect();
|
||||
new IceFishSword().quantity(1).identify().collect();
|
||||
new FireFishSword().quantity(1).identify().collect();
|
||||
new EndingBlade().quantity(1).identify().collect();
|
||||
new PotionOfDragonKingBreath().quantity(1).identify().collect();
|
||||
new ScrollOfRemoveCurse().quantity(100).identify().collect();
|
||||
|
@ -270,7 +263,7 @@ public enum HeroClass {
|
|||
|
||||
new HerbBag().quantity(1).identify().collect();
|
||||
new PotionOfHealing().quantity(3).identify().collect();
|
||||
//Badges.ENDDIED();
|
||||
|
||||
new ScrollOfUpgrade().quantity(1).identify().collect();
|
||||
|
||||
if (!Challenges.isItemBlocked(i)) i.collect();
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
|||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Conducts;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Boss;
|
||||
|
@ -493,10 +492,10 @@ public class DimandKing extends Boss {
|
|||
|
||||
@Override
|
||||
public void die(Object cause) {
|
||||
if (Dungeon.isDLC(Conducts.Conduct.BOSSRUSH)) {
|
||||
|
||||
GetBossLoot();
|
||||
}
|
||||
// if (Dungeon.isDLC(Conducts.Conduct.BOSSRUSH)) {
|
||||
//
|
||||
// GetBossLoot();
|
||||
// }
|
||||
GameScene.bossSlain();
|
||||
|
||||
super.die( cause );
|
||||
|
|
|
@ -43,6 +43,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Gold;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.keys.SkeletonKey;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.MetalShard;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMagicMapping;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave;
|
||||
|
@ -376,6 +377,15 @@ public class MagicGirlDead extends Boss {
|
|||
|
||||
GetBossLoot();
|
||||
}
|
||||
int shards = Random.chances(new float[]{0, 0, 6, 3, 1});
|
||||
for (int i = 0; i < shards; i++){
|
||||
int ofs;
|
||||
do {
|
||||
ofs = PathFinder.NEIGHBOURS8[Random.Int(8)];
|
||||
} while (!Dungeon.level.passable[pos + ofs]);
|
||||
Dungeon.level.drop( new MetalShard(), pos + ofs ).sprite.drop( pos );
|
||||
}
|
||||
|
||||
yell(Messages.get(this, "die"));
|
||||
|
||||
for(Mob m: Dungeon.level.mobs.toArray(new Mob[0])){
|
||||
|
|
|
@ -356,11 +356,11 @@ public class YogReal extends Boss {
|
|||
for (Buff buff : hero.buffs()) {
|
||||
if (buff instanceof RoseShiled) {
|
||||
buff.detach();
|
||||
GLog.b("玫瑰结界的创始人是翼绫,你怎么敢用她的技能?/kill @e[type=RoseShiled] enemy!");
|
||||
//GLog.b("玫瑰结界的创始人是翼绫,你怎么敢用她的技能?/kill @e[type=RoseShiled] enemy!");
|
||||
}
|
||||
if (buff instanceof HaloFireImBlue ||buff instanceof FireImbue) {
|
||||
buff.detach();
|
||||
GLog.b("你想免疫火的伤害?在我这里,没有可能!/kill @e[type=FireImbue=All] enemy!");
|
||||
//GLog.b("你想免疫火的伤害?在我这里,没有可能!/kill @e[type=FireImbue=All] enemy!");
|
||||
}
|
||||
}
|
||||
//char logic
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.effects.particles;
|
||||
|
||||
import com.watabou.noosa.particles.Emitter;
|
||||
import com.watabou.noosa.particles.PixelParticle;
|
||||
import com.watabou.utils.PointF;
|
||||
|
||||
public class MagicFlameParticle extends PixelParticle.Shrinking {
|
||||
|
||||
public static final Emitter.Factory FACTORY = new Emitter.Factory() {
|
||||
@Override
|
||||
public void emit( Emitter emitter, int index, float x, float y ) {
|
||||
((FlameParticle)emitter.recycle( FlameParticle.class )).reset( x, y );
|
||||
}
|
||||
@Override
|
||||
public boolean lightMode() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
public MagicFlameParticle() {
|
||||
super();
|
||||
|
||||
color( 0xEE7722 );
|
||||
lifespan = 0.6f;
|
||||
revive();
|
||||
|
||||
left = lifespan;
|
||||
|
||||
super.speed.set(speed);
|
||||
super.speed.scale( size );
|
||||
scale.set( 1.3f );
|
||||
this.x = x - super.speed.x * lifespan / 2;
|
||||
this.y = y - super.speed.y * lifespan / 2;
|
||||
angle = 0.25F;
|
||||
angularSpeed=60;
|
||||
speed = (new PointF()).polar(angle, 16.0F);
|
||||
am=0;
|
||||
acc.set( 0, -80 );
|
||||
}
|
||||
|
||||
public void reset( float x, float y ) {
|
||||
revive();
|
||||
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
|
||||
left = lifespan;
|
||||
|
||||
size = 4;
|
||||
speed.set( 0 );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
super.update();
|
||||
float p = left / lifespan;
|
||||
am = p > 0.8f ? (1 - p) * 5 : 1;
|
||||
}
|
||||
}
|
|
@ -133,6 +133,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LockSword;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Longsword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Mace;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagicTorch;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Quarterstaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RoundShield;
|
||||
|
@ -144,7 +145,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.SkyShield;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Spear;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Sword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WarHammer;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WashCrime;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Whip;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Bolas;
|
||||
|
@ -373,10 +373,11 @@ public class Generator {
|
|||
Whip.class,
|
||||
SkyShield.class,
|
||||
Dairikyan.class,
|
||||
MagicTorch.class,
|
||||
GreenSword.class,
|
||||
|
||||
};
|
||||
WEP_T3.probs = new float[]{ 1, 5, 5, 4, 0, 4 ,3,8,0,0};
|
||||
WEP_T3.probs = new float[]{ 1, 5, 5, 4, 0, 4 ,3,5,3,6,0};
|
||||
|
||||
WEP_T4.classes = new Class<?>[]{
|
||||
Longsword.class,
|
||||
|
@ -395,11 +396,10 @@ public class Generator {
|
|||
WarHammer.class,
|
||||
Glaive.class,
|
||||
Greataxe.class,
|
||||
Greatshield.class,
|
||||
WashCrime.class
|
||||
Greatshield.class
|
||||
|
||||
};
|
||||
WEP_T5.probs = new float[]{ 6, 5, 5, 4, 4, 4,3 };
|
||||
WEP_T5.probs = new float[]{ 6, 5, 5, 4, 4, 4};
|
||||
|
||||
WEP_T6.classes = new Class<?>[]{
|
||||
IceFishSword.class,
|
||||
|
|
|
@ -74,7 +74,9 @@ public class Item implements Bundlable {
|
|||
|
||||
public boolean stackable = false;
|
||||
public int flasks;
|
||||
protected int quantity = 1;
|
||||
|
||||
|
||||
protected int quantity = 1;
|
||||
public boolean dropsDownHeap = false;
|
||||
|
||||
public int level = 0;
|
||||
|
|
|
@ -21,7 +21,10 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.items;
|
||||
|
||||
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Blandfruit;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.LightFood;
|
||||
|
@ -63,7 +66,9 @@ import com.shatteredpixel.shatteredpixeldungeon.items.spells.WildEnergy;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlueFuck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.hightwand.WandOfHightHunderStorm;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BloodthirstyThorn;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LifeTreeSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
|
||||
import com.watabou.utils.Reflection;
|
||||
|
||||
|
@ -174,7 +179,7 @@ public abstract class Recipe {
|
|||
//*******
|
||||
|
||||
private static Recipe[] variableRecipes = new Recipe[]{
|
||||
new LiquidMetal.Recipe()
|
||||
new LiquidMetal.Recipe(),
|
||||
};
|
||||
|
||||
private static Recipe[] oneIngredientRecipes = new Recipe[]{
|
||||
|
@ -228,9 +233,8 @@ public abstract class Recipe {
|
|||
new WandOfBlueFuck.Recipe(),
|
||||
new IceFishSword.Recipe(),
|
||||
new LightFood.Recipe(),
|
||||
new WandOfHightHunderStorm.Recipe()
|
||||
//TODO 未来加入
|
||||
//new ScrollOfFlameCursed.Recipe(),
|
||||
new WandOfHightHunderStorm.Recipe(),
|
||||
new BloodthirstyThorn.Recipe(),
|
||||
};
|
||||
|
||||
public static ArrayList<Recipe> findRecipes(ArrayList<Item> ingredients){
|
||||
|
@ -271,7 +275,7 @@ public abstract class Recipe {
|
|||
public static boolean usableInRecipe(Item item){
|
||||
if (item instanceof EquipableItem){
|
||||
//only thrown weapons and wands allowed among equipment items
|
||||
return item.isIdentified() && !item.cursed && item instanceof MissileWeapon;
|
||||
return item.isIdentified() && !item.cursed && (item instanceof MissileWeapon||item instanceof ChaliceOfBlood && !item.isEquipped(hero)||item instanceof LifeTreeSword && !item.isEquipped(hero));
|
||||
} else if (item instanceof Wand) {
|
||||
return item.isIdentified() && !item.cursed;
|
||||
} else {
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.items.artifacts;
|
||||
|
||||
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RoseShiled;
|
||||
|
@ -42,6 +44,24 @@ import java.util.ArrayList;
|
|||
|
||||
public class ChaliceOfBlood extends Artifact {
|
||||
|
||||
public static class PlaceHolder extends ChaliceOfBlood {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.ARTIFACT_CHALICE3;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSimilar(Item item) {
|
||||
return item instanceof ChaliceOfBlood && !item.isEquipped(hero);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String info() {
|
||||
return "注意:蓄血圣杯必须是未装备的才能参与炼金";
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.ARTIFACT_CHALICE1;
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ public class BrokenBooks extends Books {
|
|||
GLog.b( Messages.get(this, "blees") );
|
||||
break;
|
||||
case 3: case 4: case 5:
|
||||
Buff.affect(hero, ChampionHero.Growing.class, ChampionHero.DURATION);
|
||||
Buff.affect(hero, ChampionHero.Growing.class, 275f);
|
||||
detach( hero.belongings.backpack );
|
||||
GLog.b( Messages.get(this, "anmazing") );
|
||||
break;
|
||||
|
|
|
@ -3,16 +3,35 @@ package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
|
|||
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RoseShiled;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.MetalShard;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfLivingEarth;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Earthroot;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.windows.WndMessage;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions;
|
||||
import com.watabou.noosa.Game;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.utils.Bundle;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class BloodthirstyThorn extends MeleeWeapon {
|
||||
|
||||
{
|
||||
|
@ -22,6 +41,182 @@ public class BloodthirstyThorn extends MeleeWeapon {
|
|||
ACC = 1.75f;
|
||||
RCH=1;
|
||||
tier=6;
|
||||
|
||||
}
|
||||
public int levelCap = 10;
|
||||
@Override
|
||||
public boolean isUpgradable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static final String AC_PRICK = "PRICK";
|
||||
|
||||
@Override
|
||||
public ArrayList<String> actions( Hero hero ) {
|
||||
ArrayList<String> actions = super.actions( hero );
|
||||
if (isEquipped( hero ) && level() < levelCap && !cursed && !hero.isInvulnerable(getClass())&& hero.buff(RoseShiled.class) == null)
|
||||
actions.add(AC_PRICK);
|
||||
return actions;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void execute(Hero hero, String action ) {
|
||||
super.execute(hero, action);
|
||||
|
||||
if (action.equals(AC_PRICK)){
|
||||
|
||||
int damage = 3*(level()*level());
|
||||
|
||||
if (damage > hero.HP*0.75) {
|
||||
|
||||
GameScene.show(
|
||||
new WndOptions(new ItemSprite(this),
|
||||
Messages.titleCase(name()),
|
||||
Messages.get(this, "prick_warn"),
|
||||
Messages.get(this, "yes"),
|
||||
Messages.get(this, "no")) {
|
||||
@Override
|
||||
protected void onSelect(int index) {
|
||||
if (index == 0)
|
||||
prick(Dungeon.hero);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
} else {
|
||||
prick(hero);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void prick(Hero hero){
|
||||
int damage = 3*(level()*level());
|
||||
|
||||
Earthroot.Armor armor = hero.buff(Earthroot.Armor.class);
|
||||
if (armor != null) {
|
||||
damage = armor.absorb(damage);
|
||||
}
|
||||
|
||||
WandOfLivingEarth.RockArmor rockArmor = hero.buff(WandOfLivingEarth.RockArmor.class);
|
||||
if (rockArmor != null) {
|
||||
damage = rockArmor.absorb(damage);
|
||||
}
|
||||
|
||||
damage -= hero.drRoll();
|
||||
|
||||
hero.sprite.operate( hero.pos );
|
||||
hero.busy();
|
||||
hero.spend(3f);
|
||||
GLog.w( Messages.get(this, "onprick") );
|
||||
if (damage <= 0){
|
||||
damage = 1;
|
||||
} else {
|
||||
Sample.INSTANCE.play(Assets.Sounds.CURSED);
|
||||
hero.sprite.emitter().burst( ShadowParticle.CURSE, 4+(damage/10) );
|
||||
}
|
||||
|
||||
hero.damage(damage, this);
|
||||
|
||||
if (!hero.isAlive()) {
|
||||
Dungeon.fail( getClass() );
|
||||
GLog.n( Messages.get(this, "ondeath") );
|
||||
} else {
|
||||
upgrade();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*复杂的炼金合成不能使用SimpleRecipe,
|
||||
* 需要使用Recipe进行完全覆盖写入
|
||||
*/
|
||||
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe {
|
||||
|
||||
/**
|
||||
* @param ingredients 遍历物品
|
||||
*/
|
||||
@Override
|
||||
public boolean testIngredients(ArrayList<Item> ingredients) {
|
||||
boolean chice = false;
|
||||
boolean demoncrystal = false;
|
||||
boolean dm300ts = false;
|
||||
|
||||
for (Item ingredient : ingredients){
|
||||
if (ingredient.quantity() > 0) {
|
||||
if (ingredient instanceof ChaliceOfBlood) {
|
||||
chice = true;
|
||||
} else if (ingredient instanceof MetalShard) {
|
||||
demoncrystal = true;
|
||||
} else if (ingredient instanceof LifeTreeSword) {
|
||||
dm300ts = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return chice && demoncrystal && dm300ts;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int cost(ArrayList<Item> ingredients) {
|
||||
return 18;
|
||||
}
|
||||
/**
|
||||
* @param bloodthirstyThorn 读取嗜血荆棘的对象
|
||||
* @param chaliceOfBlood 读取自己背包中的圣杯
|
||||
*/
|
||||
BloodthirstyThorn bloodthirstyThorn = new BloodthirstyThorn();
|
||||
ChaliceOfBlood chaliceOfBlood = Dungeon.hero.belongings.getItem(ChaliceOfBlood.class);
|
||||
/**
|
||||
* @param message 消息弹框控件
|
||||
*/
|
||||
public static void message(String message) {
|
||||
Game.runOnRenderThread(() -> ShatteredPixelDungeon.scene().add(new WndMessage(message)));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ingredients 数组遍历物品
|
||||
*/
|
||||
@Override
|
||||
public Item brew(ArrayList<Item> ingredients) {
|
||||
/**
|
||||
* @param Method brew 输出最终的炼金结果物品
|
||||
*/
|
||||
if (!testIngredients(ingredients)) return null;
|
||||
|
||||
for (Item ingredient : ingredients){
|
||||
ingredient.quantity(ingredient.quantity() - 1);
|
||||
}
|
||||
|
||||
//返回圣杯一致的等级
|
||||
bloodthirstyThorn.level=chaliceOfBlood.level();
|
||||
|
||||
bloodthirstyThorn.quantity(1).identify();
|
||||
|
||||
chaliceOfBlood.detachAll( hero.belongings.backpack );
|
||||
|
||||
if(chaliceOfBlood.level()==10){
|
||||
ChaliceOfBlood chaliceOfBlood1 = new ChaliceOfBlood();
|
||||
chaliceOfBlood1.cursed = true;
|
||||
chaliceOfBlood1.level=Random.NormalIntRange(1,3);
|
||||
chaliceOfBlood1.identify().quantity(1).collect();
|
||||
message(Messages.get(BloodthirstyThorn.class,"good"));
|
||||
}
|
||||
|
||||
return sampleOutput(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item sampleOutput(ArrayList<Item> ingredients) {
|
||||
/**
|
||||
* @param sampleOutput 输出炼金结果物品前的预览方法
|
||||
*/
|
||||
bloodthirstyThorn.identify();
|
||||
|
||||
bloodthirstyThorn.level=chaliceOfBlood.level();
|
||||
return bloodthirstyThorn;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -54,7 +249,7 @@ public class BloodthirstyThorn extends MeleeWeapon {
|
|||
} else if (level() >= 10) {
|
||||
//吸血为每次伤害/5 例如=50/5=10 Math.min()不超出。
|
||||
attacker.HP += Math.min( attacker.HT, damage/5);
|
||||
// hero.sprite.showStatus(CharSprite.POSITIVE, ("+" +Math.min( attacker.HT, damage/5) + "HP"));
|
||||
hero.sprite.showStatus(CharSprite.POSITIVE, ("+" +Math.min( attacker.HT, damage/5) + "HP"));
|
||||
} else {
|
||||
getHerodamageHp(hero);
|
||||
Buff.affect(attacker, Bleeding.class).set(7);
|
||||
|
@ -62,8 +257,8 @@ public class BloodthirstyThorn extends MeleeWeapon {
|
|||
|
||||
//恐惧和流血
|
||||
if(level()>=0 && Random.Float()>0.45f){
|
||||
Buff.affect(defender, Bleeding.class).set(7);
|
||||
Buff.affect(defender, Terror.class, Terror.DURATION ).object = curUser.id();
|
||||
Buff.affect(defender, Bleeding.class).set(15+level());
|
||||
Buff.affect(defender, Terror.class, Terror.DURATION );
|
||||
}
|
||||
return super.proc(attacker, defender, damage);
|
||||
|
||||
|
@ -78,6 +273,7 @@ public class BloodthirstyThorn extends MeleeWeapon {
|
|||
super.image = ItemSpriteSheet.BloodDied;
|
||||
//在载入存档更新图标的同时更新攻击范围
|
||||
RCH=2;
|
||||
ACC = 1.95f;
|
||||
} else {
|
||||
super.image = ItemSpriteSheet.BloodDir;
|
||||
}
|
||||
|
@ -92,6 +288,7 @@ public class BloodthirstyThorn extends MeleeWeapon {
|
|||
//在保存存档更新图标的同时更新攻击范围
|
||||
super.image = ItemSpriteSheet.BloodDied;
|
||||
RCH=2;
|
||||
ACC = 1.95f;
|
||||
} else {
|
||||
super.image = ItemSpriteSheet.BloodDir;
|
||||
}
|
||||
|
@ -105,6 +302,7 @@ public class BloodthirstyThorn extends MeleeWeapon {
|
|||
super.image = ItemSpriteSheet.BloodDied;
|
||||
//在更新图标的同时更新攻击范围
|
||||
RCH=2;
|
||||
ACC = 1.95f;
|
||||
} else {
|
||||
super.image = ItemSpriteSheet.BloodDir;
|
||||
}
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
|
||||
|
||||
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
|
@ -33,6 +35,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Rat;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.CellSelector;
|
||||
|
@ -256,4 +259,22 @@ public class LifeTreeSword extends MeleeWeapon {
|
|||
}
|
||||
}
|
||||
|
||||
public static class PlaceHolder extends LifeTreeSword {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.LifeTreeSword;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSimilar(Item item) {
|
||||
return item instanceof LifeTreeSword && !item.isEquipped(hero);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String info() {
|
||||
return "注意:倒悬的生命树必须是未装备的才能参与炼金";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,8 +6,16 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.MagicFlameParticle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.particles.Emitter;
|
||||
import com.watabou.utils.Bundle;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -22,7 +30,7 @@ public class MagicTorch extends MeleeWeapon {
|
|||
* @param ACC 命中率
|
||||
*/ {
|
||||
image = ItemSpriteSheet.MAGIC_TORCH;
|
||||
tier = 2;
|
||||
tier = 3;
|
||||
ACC = 0.8f;
|
||||
}
|
||||
|
||||
|
@ -35,7 +43,7 @@ public class MagicTorch extends MeleeWeapon {
|
|||
@Override
|
||||
public int max(int lvl) {
|
||||
return 5 * (tier) + //base
|
||||
lvl * (tier + 1); //level scaling
|
||||
lvl * (tier + 2); //level scaling
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -46,7 +54,7 @@ public class MagicTorch extends MeleeWeapon {
|
|||
*/
|
||||
@Override
|
||||
public int STRReq(int lvl) {
|
||||
return (7 + tier * 2) - (int) (Math.sqrt(8 * lvl + 1) - 1) / 2;
|
||||
return (6 + tier * 3) - (int) (Math.sqrt(8 * lvl + 1) - 1) / 2;
|
||||
//19 base strength req, up from 18
|
||||
}
|
||||
|
||||
|
@ -59,7 +67,8 @@ public class MagicTorch extends MeleeWeapon {
|
|||
@Override
|
||||
public void execute(Hero hero, String action) {
|
||||
super.execute(hero, action);
|
||||
//当英雄使用魔法火把时,给英雄添加一个光环buff,光环buff会对周围的敌人造成伤害,伤害值为英雄的魔法火把的最大伤害值,持续时间为5回合,每回合造成一次伤害,伤害值为英雄的魔法火把的最大伤害值,光环buff的名称为“光环”
|
||||
//当英雄使用魔法火把时,给英雄添加一个光环buff,光环buff会对周围的敌人造成伤害,
|
||||
// 伤害值为英雄的魔法火把的最大伤害值,持续时间为5回合,每回合造成一次伤害,伤害值为英雄的魔法火把的最大伤害值,光环buff的名称为“光环”
|
||||
if (action.equals(AC_EQUIP)) {
|
||||
//In addition to equipping itself, item reassigns itself to the quickslot
|
||||
//This is a special case as the item is being removed from inventory, but is staying with the hero.
|
||||
|
@ -69,10 +78,13 @@ public class MagicTorch extends MeleeWeapon {
|
|||
Dungeon.quickslot.setSlot(slot, this);
|
||||
updateQuickslot();
|
||||
}
|
||||
//Buff.affect(hero, LighS.class);
|
||||
Buff.affect(hero, MagicLight.class).set( (100), 1 );
|
||||
} else if (action.equals(AC_UNEQUIP)) {
|
||||
doUnequip(hero, true);
|
||||
//Buff.detach(hero, LighS.class);
|
||||
Buff.detach(hero, MagicLight.class);
|
||||
} else if (action.equals(AC_THROW)) {
|
||||
super.doThrow(hero);
|
||||
Buff.detach(hero, MagicLight.class);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,4 +107,144 @@ public class MagicTorch extends MeleeWeapon {
|
|||
|
||||
return super.proc(attacker, defender, damage);
|
||||
}
|
||||
|
||||
|
||||
public static class MagicLight extends FlavourBuff {
|
||||
/**
|
||||
* @param target 目标来源
|
||||
* @param type 类型
|
||||
* @param DISTANCE 照明范围
|
||||
* @param act 停止回滚
|
||||
*/
|
||||
{
|
||||
type = buffType.POSITIVE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void detach() {
|
||||
target.viewDistance = Dungeon.level.viewDistance;
|
||||
Dungeon.observe();
|
||||
super.detach();
|
||||
}
|
||||
|
||||
public static int level = 0;
|
||||
private int interval = 1;
|
||||
public static final int DISTANCE = 4;
|
||||
@Override
|
||||
public boolean attachTo( Char target ) {
|
||||
if (super.attachTo( target )) {
|
||||
if (Dungeon.level != null) {
|
||||
target.viewDistance = Math.max( Dungeon.level.viewDistance, DISTANCE );
|
||||
Dungeon.observe();
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean act() {
|
||||
if (target.isAlive()) {
|
||||
|
||||
spend(interval);
|
||||
if (level <= 0) {
|
||||
detach();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int level() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void set( int value, int time ) {
|
||||
//decide whether to override, preferring high value + low interval
|
||||
if (Math.sqrt(interval)*level <= Math.sqrt(time)*value) {
|
||||
level = value;
|
||||
interval = time;
|
||||
spend(time - cooldown() - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float iconFadePercent() {
|
||||
return 1f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return Messages.get(this, "name");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fx(boolean on) {
|
||||
if (on) target.sprite.add(CharSprite.State.ILLUMINATED);
|
||||
else target.sprite.remove(CharSprite.State.ILLUMINATED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String desc() {
|
||||
return Messages.get(this, "desc", level, dispTurns(visualcooldown()));
|
||||
}
|
||||
|
||||
private static final String LEVEL = "level";
|
||||
private static final String INTERVAL = "interval";
|
||||
|
||||
@Override
|
||||
public void storeInBundle( Bundle bundle ) {
|
||||
super.storeInBundle( bundle );
|
||||
bundle.put( INTERVAL, interval );
|
||||
bundle.put( LEVEL, level );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restoreFromBundle( Bundle bundle ) {
|
||||
super.restoreFromBundle( bundle );
|
||||
interval = bundle.getInt( INTERVAL );
|
||||
level = bundle.getInt( LEVEL );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tintIcon(Image icon) {
|
||||
icon.hardlight(0x808080);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int icon() {
|
||||
return BuffIndicator.LIGHT;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Emitter emitter() {
|
||||
Emitter emitter = new Emitter();
|
||||
emitter.pos(12.5f, 3);
|
||||
emitter.fillTarget = false;
|
||||
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;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -21,8 +21,6 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
|
||||
|
||||
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
|
@ -61,12 +59,12 @@ public class Sai extends MeleeWeapon {
|
|||
case 5:case 6:case 7:
|
||||
//角色最大血量*0.1+武器等级*0.5+1.5
|
||||
//50x0.1+7x0.5+1=10+3.5+1=15
|
||||
if(hero.HP >= hero.HT){
|
||||
if(attacker.HP >= attacker.HT){
|
||||
GLog.p("血量已满!无法回血");
|
||||
} else {
|
||||
R = (int) (hero.HT * 0.1 + (buffedLvl() * 0.5) + 1.5);
|
||||
hero.HP += hero.HT * 0.1 + (buffedLvl()) + 1.5;
|
||||
hero.sprite.showStatus(CharSprite.POSITIVE, ("+" + R + "HP"));
|
||||
R = (int) (attacker.HT * 0.1 + (buffedLvl() * 0.5) + 1.5);
|
||||
attacker.HP +=attacker.HT * 0.1 + (buffedLvl()) + 1.5;
|
||||
attacker.sprite.showStatus(CharSprite.POSITIVE, ("+" + R + "HP"));
|
||||
GLog.p("迅猛一击,回血成功!");
|
||||
}
|
||||
return super.proc(attacker, defender, damage);
|
||||
|
|
|
@ -90,6 +90,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportat
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTerror;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTransmutation;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfRoseShiled;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlueFuck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorrosion;
|
||||
|
@ -108,6 +109,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfTransfusion;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfWarding;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.AssassinsBlade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BattleAxe;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BloodthirstyThorn;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Crossbow;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dairikyan;
|
||||
|
@ -122,10 +124,12 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Greatshield;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Greatsword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.HandAxe;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LifeTreeSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LockSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Longsword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Mace;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagicTorch;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Quarterstaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RoundShield;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RunicBlade;
|
||||
|
@ -136,6 +140,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.SkyShield;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Spear;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Sword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WarHammer;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WashCrime;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Whip;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword;
|
||||
import com.watabou.utils.Bundle;
|
||||
|
@ -205,9 +210,13 @@ public enum Catalog {
|
|||
WEAPONS.seen.put( LockSword.class, false);
|
||||
WEAPONS.seen.put( SkyShield.class, false);
|
||||
WEAPONS.seen.put( Dairikyan.class, false);
|
||||
WEAPONS.seen.put( LifeTreeSword.class, false);
|
||||
WEAPONS.seen.put( MagicTorch.class, false);
|
||||
|
||||
WEAPONS.seen.put( IceFishSword.class, false);
|
||||
WEAPONS.seen.put( FireFishSword.class, false);
|
||||
WEAPONS.seen.put( WashCrime.class, false);
|
||||
WEAPONS.seen.put( BloodthirstyThorn.class, false);
|
||||
|
||||
ARMOR.seen.put( ClothArmor.class, false);
|
||||
ARMOR.seen.put( LeatherArmor.class, false);
|
||||
|
@ -285,6 +294,7 @@ public enum Catalog {
|
|||
SCROLLS.seen.put( ScrollOfRecharging.class, false);
|
||||
SCROLLS.seen.put( ScrollOfMirrorImage.class, false);
|
||||
SCROLLS.seen.put( ScrollOfTerror.class, false);
|
||||
SCROLLS.seen.put( ScrollOfRoseShiled.class, false);
|
||||
SCROLLS.seen.put( ScrollOfLullaby.class, false);
|
||||
SCROLLS.seen.put( ScrollOfRage.class, false);
|
||||
SCROLLS.seen.put( ScrollOfRetribution.class, false);
|
||||
|
|
|
@ -153,11 +153,6 @@ public class ShopBossLevel extends Level {
|
|||
positions.add(pedestal);
|
||||
}
|
||||
}
|
||||
//if (positions.isEmpty()){
|
||||
// return -1;
|
||||
//} else {
|
||||
// return Random.element(positions);
|
||||
//}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -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.1f;
|
||||
fadeTime = 0.85f;
|
||||
}
|
||||
|
||||
SkinnedBlock bg = new SkinnedBlock(Camera.main.width, Camera.main.height, loadingAsset ){
|
||||
|
|
|
@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.LiquidMetal;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Recipe;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Blandfruit;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Food;
|
||||
|
@ -58,6 +59,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfTo
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.WaterSoul;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.ExoticPotion;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.CrivusFruitsFlake;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.MetalShard;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfRoseShiled;
|
||||
|
@ -81,7 +83,9 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlueFuck;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfFireblast;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfLightning;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.hightwand.WandOfHightHunderStorm;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BloodthirstyThorn;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LifeTreeSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.AikeLaier;
|
||||
|
@ -274,7 +278,7 @@ public class QuickRecipe extends Component {
|
|||
if (text != null) text.hardlight(color);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//gets recipes for a particular alchemy guide page
|
||||
//a null entry indicates a break in section
|
||||
public static ArrayList<QuickRecipe> getRecipes( int pageIdx ){
|
||||
|
@ -403,6 +407,11 @@ public class QuickRecipe extends Component {
|
|||
new WandOfLightning(),
|
||||
new CrivusFruitsFlake())),
|
||||
new WandOfHightHunderStorm()));
|
||||
result.add(new QuickRecipe( new BloodthirstyThorn.Recipe(),
|
||||
new ArrayList<Item>(Arrays.asList(new MetalShard(),
|
||||
new ChaliceOfBlood.PlaceHolder(),
|
||||
new LifeTreeSword.PlaceHolder())),
|
||||
new BloodthirstyThorn()));
|
||||
return result;
|
||||
case 7:
|
||||
result.add(new QuickRecipe(new AlchemicalCatalyst.Recipe(), new ArrayList<>(Arrays.asList(new Potion.PlaceHolder(), new Plant.Seed.PlaceHolder())), new AlchemicalCatalyst()));
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd;
|
|||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.NewDM300;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.PinkLingSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
|
@ -47,6 +48,7 @@ import java.util.ArrayList;
|
|||
public class vM0_6_7_X_Changes {
|
||||
|
||||
public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) {
|
||||
add_v0_6_31_Changes(changeInfos);
|
||||
add_v0_6_30_Changes(changeInfos);
|
||||
add_v0_6_29_Changes(changeInfos);
|
||||
add_v0_6_28_Changes(changeInfos);
|
||||
|
@ -80,6 +82,50 @@ public class vM0_6_7_X_Changes {
|
|||
add_v0_6_0_Changes(changeInfos);
|
||||
}
|
||||
|
||||
public static void add_v0_6_31_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta5.1(P3)", true, "");
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes = new ChangeInfo("即将到来", false, null);
|
||||
changes.hardlight(Window.Pink_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
Image issxsaxs =new DimandKingSprite();
|
||||
issxsaxs.scale.set(PixelScene.align(0.8f));
|
||||
changes.addButton(new ChangeButton(issxsaxs,("关于宝箱之王?"),
|
||||
("将在下个版本Beta5.2进行测试更新,请做好战斗准备!")));
|
||||
|
||||
changes.addButton(new ChangeButton(new PinkLingSprite(), ("狩猎系统1.0"),
|
||||
("击败两次宝箱之王后解锁狩猎系统,神秘NPC会入驻0层。并派发狩猎任务。")));
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.FBK), ("灯火系统V3--狩猎与前行之章"),
|
||||
("灯火系统即将进行大改,敬请期待")));
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CHALLANEESICON_14), ("寒冷系统V0.2"),
|
||||
("将追加矿洞层的寒冷惩罚和新的事件,敬请期待")));
|
||||
|
||||
changes = new ChangeInfo("新内容", false, null);
|
||||
changes.hardlight(Window.GREEN_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.INFO), ("图鉴和炼金合成表加入新东西"),
|
||||
("请自行到游戏查看")));
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.MAGIC_TORCH), ("新武器:魔法火把[捐赠物品]"),
|
||||
("感谢_落白_的投稿,该武器属于3阶武器。")));
|
||||
|
||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.BloodDied), ("新武器:嗜血荆棘[捐赠物品]"),
|
||||
("感谢_落白_的投稿,该武器属于6阶武器。")));
|
||||
|
||||
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_06X59")));
|
||||
}
|
||||
|
||||
public static void add_v0_6_30_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta5(P3)", true, "");
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||
import com.watabou.noosa.Camera;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.ui.Component;
|
||||
|
||||
public class WndMessage extends Window {
|
||||
|
@ -63,4 +64,7 @@ public class WndMessage extends Window {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
public WndMessage(Image i, String title, String message) {
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user