Update Beta21-p1.4

This commit is contained in:
LingASDJ 2022-09-18 23:39:28 +08:00
parent c235e3384a
commit 4709a3dbed
10 changed files with 108 additions and 46 deletions

View File

@ -94,7 +94,7 @@ items.quest.skeletongold.preventing=这里还没有寻找到强大的魔力流
items.quest.skeletongold.wow=染血金币发出诡异的光芒,你感到下层正在分崩离析…… items.quest.skeletongold.wow=染血金币发出诡异的光芒,你感到下层正在分崩离析……
items.weapon.melee.endingblade.name=终焉 items.weapon.melee.endingblade.name=终焉
items.weapon.melee.endingblade.desc=不知道从哪来的一个拆开的场记板,貌似沾染了焰之诅咒,有着强大的侵蚀能力。\n\n这个武器在攻击敌人的时候有概率造成_即死_效果,在汲取一定魔力后会产生新的能力。 items.weapon.melee.endingblade.desc=不知道从哪来的一个拆开的场记板,貌似沾染了焰之诅咒,会随机产生_一种诅咒_有着强大的侵蚀能力一旦装备了它就无法脱身了……\n\n这个武器在攻击敌人的时候能吸收一定的浊焰能量,在汲取一定的浊焰能量后会产生新的能力以及自我升级。\n\n当前的浊焰能量:
items.weapon.melee.endingblade.cursed=当你装备上这个武器后,一股无形的力量将你束缚住…… items.weapon.melee.endingblade.cursed=当你装备上这个武器后,一股无形的力量将你束缚住……
items.weapon.melee.endingblade.donot_eqip=终焉的诅咒已经浸染你的身体,你无力脱下它。 items.weapon.melee.endingblade.donot_eqip=终焉的诅咒已经浸染你的身体,你无力脱下它。
@ -285,7 +285,7 @@ items.weapon.melee.runicblade.desc=这把武器据说曾经是300年前贤者使
\n, \n,
items.weapon.melee.locksword.name=钥匙剑 items.weapon.melee.locksword.name=钥匙剑
items.weapon.melee.locksword.desc=来自遥远童话国度的一把失落神剑,形态像是巨大化的钥匙。据说这把剑能够通过战斗的积累而改变外貌,不知道是否真实。 items.weapon.melee.locksword.desc=来自遥远童话国度的一把失落神剑,形态像是巨大化的钥匙。据说这把剑能够通过战斗的积累而改变外貌,不知道是否真实。\n\n武器的战斗经验:
items.weapon.melee.locksword.stats_desc=这把武器会在攻击时不断积累经验,到达一定阶段时会变化造型,并赋予或加强紊乱附魔的效果与增加固定伤害值。 items.weapon.melee.locksword.stats_desc=这把武器会在攻击时不断积累经验,到达一定阶段时会变化造型,并赋予或加强紊乱附魔的效果与增加固定伤害值。
items.weapon.melee.boomsword.name=炸弹匕首 items.weapon.melee.boomsword.name=炸弹匕首
@ -469,10 +469,12 @@ items.artifacts.chaliceofblood.prick_warn=每次使用圣杯都会消耗更多
items.artifacts.chaliceofblood.onprick=你刺破了自己的手指,使你的生命精华流入了圣杯。 items.artifacts.chaliceofblood.onprick=你刺破了自己的手指,使你的生命精华流入了圣杯。
items.artifacts.chaliceofblood.ondeath=圣杯将你的生命精华吸噬殆尽了… items.artifacts.chaliceofblood.ondeath=圣杯将你的生命精华吸噬殆尽了…
items.artifacts.chaliceofblood.desc=这个闪闪发光的银质酒杯在边沿突兀地装饰着几颗造型尖锐的宝石。 items.artifacts.chaliceofblood.desc=这个闪闪发光的银质酒杯在边沿突兀地装饰着几颗造型尖锐的宝石。
items.artifacts.chaliceofblood.desc_cursed=被诅咒的圣杯将自己固定在你手上,抑制着你回复生命的能力。a items.artifacts.chaliceofblood.desc_cursed=被诅咒的圣杯将自己固定在你手上,抑制着你回复生命的能力。
items.artifacts.chaliceofblood.desc_1=握住圣杯的那一刻,你涌起一股想在那些尖锐宝石上刺伤自己的奇特冲动。 items.artifacts.chaliceofblood.desc_1=握住圣杯的那一刻,你涌起一股想在那些尖锐宝石上刺伤自己的奇特冲动。
items.artifacts.chaliceofblood.desc_2=你的一些血液汇集到圣杯里,你可以隐约感受到杯子在为你送来生命能量。你还想用圣杯继续割伤自己,即便你知道那很疼。 items.artifacts.chaliceofblood.desc_2=你的一些血液汇集到圣杯里,你可以隐约感受到杯子在为你送来生命能量。你还想用圣杯继续割伤自己,即便你知道那很疼。
items.artifacts.chaliceofblood.desc_3=圣杯已经被你的生命精华填满。你可以感觉到圣杯正将生命能量倾泻般回馈给你。 items.artifacts.chaliceofblood.desc_3=圣杯已经被你的生命精华填满。你可以感觉到圣杯正将生命能量倾泻般回馈给你。
items.artifacts.chaliceofblood.desc_4=\n\n圣杯下次会造成的理论最高伤害为:
items.artifacts.chaliceofblood.desc_5=\n\n圣杯造成的伤害可被各种形式的防御抵消伤害。注0级圣杯造成的伤害为1!
items.artifacts.cloakofshadows.name=暗影斗篷 items.artifacts.cloakofshadows.name=暗影斗篷
items.artifacts.cloakofshadows.ac_stealth=潜行 items.artifacts.cloakofshadows.ac_stealth=潜行
@ -2003,7 +2005,6 @@ items.weapon.weapon.identify=你对手中的武器已经足够熟悉并将其完
items.weapon.weapon.too_heavy=因为你的力量不足,该武器会降低你的攻速和精准,并让你无法偷袭。 items.weapon.weapon.too_heavy=因为你的力量不足,该武器会降低你的攻速和精准,并让你无法偷袭。
items.weapon.weapon.excess_str=你的额外力量让你在使用这件武器时最多能够造成_%d点额外伤害_。 items.weapon.weapon.excess_str=你的额外力量让你在使用这件武器时最多能够造成_%d点额外伤害_。
items.weapon.weapon.incompatible=不同属性的魔法相冲突,消除了武器上的附魔! items.weapon.weapon.incompatible=不同属性的魔法相冲突,消除了武器上的附魔!
items.weapon.weapon.nxt_cursed=净化的光芒闪过,但终焉上面的诅咒仍然没有被解除……
items.weapon.weapon.cursed_worn=由于这件武器被诅咒,你无法将其放下。 items.weapon.weapon.cursed_worn=由于这件武器被诅咒,你无法将其放下。
items.weapon.weapon.cursed=你能感觉到这件武器里潜伏着一股充满恶意的魔力。 items.weapon.weapon.cursed=你能感觉到这件武器里潜伏着一股充满恶意的魔力。
items.weapon.weapon.not_cursed=这件武器没有被诅咒。 items.weapon.weapon.not_cursed=这件武器没有被诅咒。

View File

@ -3,6 +3,12 @@ windows.wndsettings$extendtab.splash_screen=启动界面
windows.wndsettings$extendtab.disable=关闭 windows.wndsettings$extendtab.disable=关闭
windows.wndsettings$extendtab.full=开启 windows.wndsettings$extendtab.full=开启
scenes.gamescene.go_here=前往这里
scenes.gamescene.examine=调查这里
scenes.gamescene.interact=与之对话
scenes.gamescene.pick_up=拾取此物
scenes.gamescene.snowcynon=你现在的当前位置:雪凛峡谷 scenes.gamescene.snowcynon=你现在的当前位置:雪凛峡谷
scenes.gamescene.descend=你降入了地牢的第%d层。 scenes.gamescene.descend=你降入了地牢的第%d层。
scenes.titlescene.spawnerror=楼层生成错误!!! scenes.titlescene.spawnerror=楼层生成错误!!!

View File

@ -54,6 +54,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin; import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClothArmor; 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.CloakOfShadows;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.EtherealChains; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.EtherealChains;
@ -85,7 +86,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLightningS
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfMindVision; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfMindVision;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfPurity;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.WaterSoul; import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.WaterSoul;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDragonKingBreath; import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDragonKingBreath;
@ -119,7 +119,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BlackDog;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.EndingBlade; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.EndingBlade;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.FireFishSword; 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.Gloves;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.GreenSword; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.GreenSword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword;
@ -180,7 +179,7 @@ public enum HeroClass {
new FireFishSword().quantity(1).identify().collect(); new FireFishSword().quantity(1).identify().collect();
new LaserPython().quantity(100).identify().collect(); new LaserPython().quantity(100).identify().collect();
new PotionOfInvisibility().quantity(45).identify().collect(); new PotionOfInvisibility().quantity(45).identify().collect();
new PotionOfPurity().quantity(45).identify().collect(); new LockSword().quantity(1).identify().collect();
Buff.affect(hero, ChampionHero.AntiMagic.class, 50000f); Buff.affect(hero, ChampionHero.AntiMagic.class, 50000f);
new AlchemicalCatalyst().quantity(45).identify().collect(); new AlchemicalCatalyst().quantity(45).identify().collect();
new EtherealChains().quantity(1).identify().collect(); new EtherealChains().quantity(1).identify().collect();
@ -188,7 +187,7 @@ public enum HeroClass {
new ScrollOfTransmutation().quantity(45).identify().collect(); new ScrollOfTransmutation().quantity(45).identify().collect();
new BeaconOfReturning().quantity(11).identify().collect(); new BeaconOfReturning().quantity(11).identify().collect();
new WarHammer().quantity(1).identify().collect(); new WarHammer().quantity(1).identify().collect();
new Gauntlet().quantity(1).identify().collect(); new ChaliceOfBlood().quantity(1).identify().collect();
new Firebloom.Seed().quantity(50).identify().collect(); new Firebloom.Seed().quantity(50).identify().collect();
new Blindweed.Seed().quantity(50).identify().collect(); new Blindweed.Seed().quantity(50).identify().collect();
new StoneOfFlock().quantity(50).identify().collect(); new StoneOfFlock().quantity(50).identify().collect();
@ -226,7 +225,6 @@ public enum HeroClass {
new RedBloodMoon().quantity(1).identify().collect(); new RedBloodMoon().quantity(1).identify().collect();
new KingBag().quantity(1).identify().collect(); new KingBag().quantity(1).identify().collect();
new PotionOfLiquidFlameX().quantity(100).identify().collect(); new PotionOfLiquidFlameX().quantity(100).identify().collect();
new LockSword().quantity(1).identify().collect();
new YellowSunBooks().quantity(1).identify().collect(); new YellowSunBooks().quantity(1).identify().collect();
new BrokenBooks().quantity(1).identify().collect(); new BrokenBooks().quantity(1).identify().collect();
new DeepBloodBooks().quantity(1).identify().collect(); new DeepBloodBooks().quantity(1).identify().collect();
@ -263,6 +261,9 @@ public enum HeroClass {
i = new Food(); i = new Food();
//new EndingBlade().quantity(1).identify().collect();
//new ChaliceOfBlood().quantity(1).identify().collect();
new HerbBag().quantity(1).identify().collect(); new HerbBag().quantity(1).identify().collect();
new PotionOfHealing().quantity(3).identify().collect(); new PotionOfHealing().quantity(3).identify().collect();

View File

@ -21,6 +21,8 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs; package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs;
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
@ -43,6 +45,7 @@ import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel; import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.GhostSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.GhostSprite;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndQuest; import com.shatteredpixel.shatteredpixeldungeon.windows.WndQuest;
@ -67,7 +70,7 @@ public class Ghost extends NPC {
@Override @Override
protected boolean act() { protected boolean act() {
if (Quest.processed()) { if (Quest.processed()) {
target = Dungeon.hero.pos; target = hero.pos;
} }
if (Dungeon.level.heroFOV[pos] && !Quest.completed()){ if (Dungeon.level.heroFOV[pos] && !Quest.completed()){
Notes.add( Notes.Landmark.GHOST ); Notes.add( Notes.Landmark.GHOST );
@ -109,7 +112,7 @@ public class Ghost extends NPC {
Sample.INSTANCE.play( Assets.Sounds.GHOST ); Sample.INSTANCE.play( Assets.Sounds.GHOST );
if (c != Dungeon.hero){ if (c != hero){
return super.interact(c); return super.interact(c);
} }
@ -164,13 +167,13 @@ public class Ghost extends NPC {
switch (Quest.type){ switch (Quest.type){
case 1: default: case 1: default:
questBoss = new FetidRat(); questBoss = new FetidRat();
txt_quest = Messages.get(this, "rat_1", Dungeon.hero.name()); break; txt_quest = Messages.get(this, "rat_1", hero.name()); break;
case 2: case 2:
questBoss = new GnollTrickster(); questBoss = new GnollTrickster();
txt_quest = Messages.get(this, "gnoll_1", Dungeon.hero.name()); break; txt_quest = Messages.get(this, "gnoll_1", hero.name()); break;
case 3: case 3:
questBoss = new GreatCrab(); questBoss = new GreatCrab();
txt_quest = Messages.get(this, "crab_1", Dungeon.hero.name()); break; txt_quest = Messages.get(this, "crab_1", hero.name()); break;
} }
questBoss.pos = Dungeon.level.randomRespawnCell( this ); questBoss.pos = Dungeon.level.randomRespawnCell( this );
@ -310,17 +313,24 @@ public class Ghost extends NPC {
Generator.Category c = Generator.wepTiers[wepTier - 1]; Generator.Category c = Generator.wepTiers[wepTier - 1];
weapon = (MeleeWeapon) Reflection.newInstance(c.classes[Random.chances(c.probs)]); weapon = (MeleeWeapon) Reflection.newInstance(c.classes[Random.chances(c.probs)]);
//50%:+0, 30%:+1, 15%:+2, 5%:+3 //30%:+0, 25%:+1, 15%:+2, 10%:+3, 15%:+4, 5%+5
float itemLevelRoll = Random.Float(); float itemLevelRoll = Random.Float();
int itemLevel; int itemLevel;
if (itemLevelRoll < 0.5f){ if (itemLevelRoll < 0.1f){
itemLevel = 0; itemLevel = 0;
} else if (itemLevelRoll < 0.8f){ } else if (itemLevelRoll < 0.75f){
itemLevel = 1; itemLevel = 1;
} else if (itemLevelRoll < 0.95f){ } else if (itemLevelRoll < 0.85f){
itemLevel = 2; itemLevel = 2;
} else { } else if (itemLevelRoll < 0.90f) {
itemLevel = 3; itemLevel = 3;
hero.sprite.showStatus( CharSprite.NEGATIVE, "+3!!!" );
} else if (itemLevelRoll < 0.95f){
hero.sprite.showStatus( CharSprite.POSITIVE, "+5!!!" );
itemLevel = 5;
} else {
itemLevel = 4;
hero.sprite.showStatus( CharSprite.WARNING, "+4!!!" );
} }
weapon.upgrade(itemLevel); weapon.upgrade(itemLevel);
armor.upgrade(itemLevel); armor.upgrade(itemLevel);

View File

@ -167,8 +167,8 @@ public class ChaliceOfBlood extends Artifact {
desc += Messages.get(this, "desc_2"); desc += Messages.get(this, "desc_2");
else else
desc += Messages.get(this, "desc_3"); desc += Messages.get(this, "desc_3");
} }
desc += Messages.get(this, "desc_4")+"_"+3*(level()*level())+"_"+Messages.get(this, "desc_5");
return desc; return desc;
} }

View File

@ -5,6 +5,11 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.LaserPython; import com.shatteredpixel.shatteredpixeldungeon.items.bombs.LaserPython;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Blazing;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Grim;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Kinetic;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Shocking;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Unstable;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
@ -17,6 +22,7 @@ public class EndingBlade extends Weapon {
image = ItemSpriteSheet.ENDDIED; image = ItemSpriteSheet.ENDDIED;
tier = 4; tier = 4;
cursed = true; cursed = true;
enchant(Enchantment.randomCurse());
} }
//三大基础静态固定字节 //三大基础静态固定字节
@ -44,21 +50,24 @@ public class EndingBlade extends Weapon {
private boolean firstx=true; private boolean firstx=true;
private static final String FIRST = "first"; private static final String FIRST = "first";
private static final String INTRPS = "intrps";
@Override @Override
public void storeInBundle(Bundle bundle) { public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle); super.storeInBundle(bundle);
bundle.put(FIRST, firstx); bundle.put(FIRST, firstx);
bundle.put(INTRPS, fireenergy);
} }
@Override @Override
public void restoreFromBundle(Bundle bundle) { public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle); super.restoreFromBundle(bundle);
firstx = bundle.getBoolean(FIRST); firstx = bundle.getBoolean(FIRST);
fireenergy = bundle.getInt(INTRPS);
} }
public String desc() { public String desc() {
return Messages.get(this, "desc")+"\n\n"+fireenergy; return Messages.get(this, "desc")+"_"+fireenergy+"_";
} }
//每100点浊焰能量自动升级 //每100点浊焰能量自动升级
@ -96,24 +105,49 @@ public class EndingBlade extends Weapon {
@Override @Override
public int STRReq(int C) { public int STRReq(int C) {
return 15+level; return 15+fireenergy/100;
} }
public int proc(Char attacker, Char defender, int damage ) { public int proc(Char attacker, Char defender, int damage ) {
//常规加+1浊焰能量 //常规加+1浊焰能量
++this.fireenergy; ++fireenergy;
int dmg;
if(level >= 10){ if(level >= 10){
fireenergy += 0; fireenergy += 0;
//武器最高级 //武器最高级
} else if(defender.properties().contains(Char.Property.BOSS) && defender.HP <= damage){ } else if(defender.properties().contains(Char.Property.BOSS) && defender.HP <= damage){
//目标Boss血量小于实际伤害判定为死亡,+20浊焰能量 //目标Boss血量小于实际伤害判定为死亡,+20浊焰能量
this.fireenergy+=20; fireenergy+=20;
} else if(defender.properties().contains(Char.Property.MINIBOSS) && defender.HP <= damage){ } else if(defender.properties().contains(Char.Property.MINIBOSS) && defender.HP <= damage){
//目标迷你Boss血量小于实际伤害判定为死亡,+10浊焰能量 //目标迷你Boss血量小于实际伤害判定为死亡,+10浊焰能量
this.fireenergy+=10; fireenergy+=10;
} else if (defender.HP <= damage){ } else if (defender.HP <= damage){
//目标血量小于实际伤害判定为死亡,+5浊焰能量 //目标血量小于实际伤害判定为死亡,+5浊焰能量
this.fireenergy+=5; fireenergy+=5;
}
/*
* 10级 死神附魔
* 8级 紊乱附魔
* 6级 电击附魔
* 4级 烈焰附魔
* 2级 恒动附魔
*/
if(level>= 10){
dmg = (new Grim()).proc(this, attacker, defender, damage) + 5;
damage = dmg;
} else if (level>= 8) {
dmg = (new Unstable()).proc(this, attacker, defender, damage) + 4;
damage = dmg;
} else if (level>= 6){
dmg = (new Shocking()).proc(this, attacker, defender, damage) + 3;
damage = dmg;
} else if (level>= 4){
dmg = (new Blazing()).proc(this, attacker, defender, damage) + 2;
damage = dmg;
} else if (level>= 2){
dmg = (new Kinetic()).proc(this, attacker, defender, damage) + 1;
damage = dmg;
} }
return super.proc(attacker, defender, damage); return super.proc(attacker, defender, damage);
@ -175,11 +209,15 @@ public class EndingBlade extends Weapon {
@Override @Override
public int min(int lvl) { public int min(int lvl) {
return 10; return 10+(lvl*2)*(Dungeon.hero.lvl/10);
//10+20x3=70
} }
@Override @Override
public int max(int lvl) { public int max(int lvl) {
return 15; return 15+(lvl*3)*(Dungeon.hero.lvl/10);
//15+30x3=15+90=105
} }
//Max 70~105
} }

View File

@ -12,6 +12,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RandomBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RandomBuff;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Unstable; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Unstable;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
@ -31,6 +32,10 @@ public class LockSword extends MeleeWeapon {
} }
public String desc() {
return Messages.get(this, "desc")+"_"+lvl+"_";
}
public int image() { public int image() {
if (this.level() == 3 && Dungeon.hero.buff(RandomBuff.class) != null){ if (this.level() == 3 && Dungeon.hero.buff(RandomBuff.class) != null){
//GLog.n("谢谢你为我升级……"); //GLog.n("谢谢你为我升级……");

View File

@ -53,7 +53,7 @@ public class ThanksScene extends PixelScene {
, ,
null, null,
null); null);
mispd.setRect((w - fullWidth)/2f, 120, 120, 0); mispd.setRect((Camera.main.width - colWidth)/2f-10, 120, colWidth+20, 0);
content.add(mispd); content.add(mispd);
//*** Musics Used *** //*** Musics Used ***
@ -65,7 +65,7 @@ public class ThanksScene extends PixelScene {
, ,
null, null,
null); null);
musicUsed.setRect((w - fullWidth)/2f, mispd.bottom()+6, 120, 0); musicUsed.setRect((Camera.main.width - colWidth)/2f-10, mispd.bottom()+6, colWidth+20, 0);
content.add(musicUsed); content.add(musicUsed);
CreditsBlock ptr = new CreditsBlock(true, 0x39aae5, CreditsBlock ptr = new CreditsBlock(true, 0x39aae5,
@ -74,7 +74,7 @@ public class ThanksScene extends PixelScene {
"Developed by: _Jinkeloid_", "Developed by: _Jinkeloid_",
null, null,
null); null);
ptr.setRect((w - fullWidth)/2f, musicUsed.bottom()+6, 120, 0); ptr.setRect((Camera.main.width - colWidth)/2f-10, musicUsed.bottom()+6, colWidth+20, 0);
content.add(ptr); content.add(ptr);
//*** Special Thanks *** //*** Special Thanks ***
@ -84,7 +84,7 @@ public class ThanksScene extends PixelScene {
null, null,
null, null,
null); null);
specialThanks.setRect((w - fullWidth)/2f, ptr.bottom()+6, 120, 0); specialThanks.setRect((Camera.main.width - colWidth)/2f-10, ptr.bottom()+6, colWidth+20, 0);
content.add(specialThanks); content.add(specialThanks);
CreditsBlock specialThanksB = new CreditsBlock(true, 0xbe8e6e, CreditsBlock specialThanksB = new CreditsBlock(true, 0xbe8e6e,
@ -93,7 +93,7 @@ public class ThanksScene extends PixelScene {
null, null,
null, null,
null); null);
specialThanksB.setRect((w - fullWidth)/2f, specialThanks.bottom()+6, 120, 0); specialThanksB.setRect((Camera.main.width - colWidth)/2f-10, specialThanks.bottom()+6, colWidth+20, 0);
content.add(specialThanksB); content.add(specialThanksB);
//*** Shattered Pixel Dungeon Credits *** //*** Shattered Pixel Dungeon Credits ***
@ -104,7 +104,7 @@ public class ThanksScene extends PixelScene {
"Developed by: _Evan Debenham_\nBased on Pixel Dungeon's open source", "Developed by: _Evan Debenham_\nBased on Pixel Dungeon's open source",
null, null,
null); null);
shpx.setRect((w - fullWidth)/2f, specialThanksB.bottom()+6, 120, 0); shpx.setRect((Camera.main.width - colWidth)/2f-10, specialThanksB.bottom()+6, colWidth+20, 0);
content.add(shpx); content.add(shpx);
addLine(shpx.top() - 4, content); addLine(shpx.top() - 4, content);
@ -158,9 +158,9 @@ public class ThanksScene extends PixelScene {
"加入碳化总群", "加入碳化总群",
"https://jq.qq.com/?_wv=1027&k=6jAlnlNL"); "https://jq.qq.com/?_wv=1027&k=6jAlnlNL");
if (landscape()){ if (landscape()){
evan.setRect(shpx.left(), reddragon.bottom() + 8, colWidth, 0); evan.setRect((Camera.main.width - colWidth)/2f-10, reddragon.bottom() + 8, colWidth+20, 0);
} else { } else {
evan.setRect(shpx.left(), reddragon.bottom() + 8, colWidth, 0); evan.setRect((Camera.main.width - colWidth)/2f-10, reddragon.bottom() + 8, colWidth+20, 0);
} }
content.add(evan); content.add(evan);
@ -173,9 +173,9 @@ public class ThanksScene extends PixelScene {
null, null,
null); null);
if (landscape()){ if (landscape()){
wata.setRect(shpx.left(), evan.bottom() + 8, colWidth, 0); wata.setRect((Camera.main.width - colWidth)/2f-10, evan.bottom() + 8, colWidth+20, 0);
} else { } else {
wata.setRect(shpx.left(), evan.bottom() + 8, colWidth, 0); wata.setRect((Camera.main.width - colWidth)/2f-10, evan.bottom() + 8, colWidth+20, 0);
} }
content.add(wata); content.add(wata);
@ -187,9 +187,9 @@ public class ThanksScene extends PixelScene {
"加入QQ魔绫开发总群", "加入QQ魔绫开发总群",
"https://jq.qq.com/?_wv=1027&k=wzMjU0f7"); "https://jq.qq.com/?_wv=1027&k=wzMjU0f7");
if (landscape()){ if (landscape()){
wata2.setRect(shpx.left(), wata.bottom() + 20, colWidth, 0); wata2.setRect((Camera.main.width - colWidth)/2f-10, wata.bottom() + 20, colWidth+20, 0);
} else { } else {
wata2.setRect(shpx.left(), wata.bottom() + 20, colWidth, 0); wata2.setRect((Camera.main.width - colWidth)/2f-10, wata.bottom() + 20, colWidth+20, 0);
} }
content.add(wata2); content.add(wata2);
@ -203,9 +203,9 @@ public class ThanksScene extends PixelScene {
"Pixel Dungeon Discord Server", "Pixel Dungeon Discord Server",
"https://discord.gg/47bguQtcwZ"); "https://discord.gg/47bguQtcwZ");
if (landscape()){ if (landscape()){
wata3.setRect(shpx.left(), wata2.bottom() + 18, colWidth, 0); wata3.setRect((Camera.main.width - colWidth)/2f-10, wata2.bottom() + 18, colWidth+20, 0);
} else { } else {
wata3.setRect(shpx.left(), wata2.bottom() + 18, colWidth, 0); wata3.setRect((Camera.main.width - colWidth)/2f-10, wata2.bottom() + 18, colWidth+20, 0);
} }
content.add(wata3); content.add(wata3);

View File

@ -225,7 +225,7 @@ public class Toolbar extends Component {
@Override @Override
protected void layout() { protected void layout() {
final int maxHorizontalQuickslots = PixelScene.landscape() ? 5 : 3; final int maxHorizontalQuickslots = PixelScene.landscape() ? 12 : 3;
float right = width; float right = width;
if (SPDSettings.interfaceSize() > 0){ if (SPDSettings.interfaceSize() > 0){
btnInventory.setPos(right - btnInventory.width(), y); btnInventory.setPos(right - btnInventory.width(), y);

View File

@ -74,13 +74,14 @@ public class WndTextInput extends Window {
final RenderedTextBlock txtBody = PixelScene.renderTextBlock(body, 6); final RenderedTextBlock txtBody = PixelScene.renderTextBlock(body, 6);
txtBody.maxWidth(width); txtBody.maxWidth(width);
txtBody.setPos(0, pos); txtBody.setPos(0, pos);
add(txtBody); add(txtBody);
pos = txtBody.bottom() + 2 * MARGIN; pos = txtBody.bottom() + 2 * MARGIN;
} }
int textSize = (int)PixelScene.uiCamera.zoom * (multiLine ? 6 : 9); int textSize = (int)PixelScene.uiCamera.zoom * (multiLine ? 6 : 9);
textBox = new TextInput(Chrome.get(Chrome.Type.TOAST_WHITE), multiLine, textSize){ textBox = new TextInput(Chrome.get(Chrome.Type.SCROLL), multiLine, textSize){
@Override @Override
public void enterPressed() { public void enterPressed() {
//triggers positive action on enter pressed, only with non-multiline though. //triggers positive action on enter pressed, only with non-multiline though.
@ -96,7 +97,7 @@ public class WndTextInput extends Window {
if (multiLine) { if (multiLine) {
inputHeight = 64; //~8 lines of text inputHeight = 64; //~8 lines of text
} else { } else {
inputHeight = 16; inputHeight = 36;
} }
add(textBox); add(textBox);
textBox.setRect(MARGIN, pos, width-2*MARGIN, inputHeight); textBox.setRect(MARGIN, pos, width-2*MARGIN, inputHeight);