Update BetaP3-PreTest2
- Add New 5 depth Boss
This commit is contained in:
parent
1ec3158d7f
commit
662f7452d7
|
@ -1,6 +1,13 @@
|
|||
####MLPD-P3文本
|
||||
items.weapon.melee.lifetreesword.name=“倒悬的生命树”
|
||||
items.weapon.melee.lifetreesword.desc=克里弗斯之果破碎时,四周的藤蔓缠结在暴露出的种子上,形成剑的形状。剑身触碰到生物时会汲取他们的生命力提供给种子,期待着它再一结出猩红的果实。\n\n特别说明:克里弗斯之果Boss专武,每击杀_100只怪物_掉落一颗克里弗斯幼果。
|
||||
items.weapon.melee.lifetreesword.desc=克里弗斯之果破碎时,四周的藤蔓缠结在暴露出的种子上,形成剑的形状。剑身触碰到生物时会汲取他们的生命力提供给种子,期待着它再一结出猩红的果实。\n\n特别说明:克里弗斯之果Boss专武,每击杀_100只怪物_掉落一颗克里弗斯幼果,并重置杀敌计数。\n\n杀敌数:
|
||||
|
||||
items.food.crivusfruitsfood.name=克里弗斯幼果
|
||||
items.food.crivusfruitsfood.desc=从“倒悬的生命树”中脱落的水果,看起来非常的香甜可口。
|
||||
items.food.crivusfruitsfood.eat_msg2=你感觉味道十分不错,香甜可口,回味无穷……
|
||||
|
||||
items.quest.crivusfruitsflake.name=赤果碎片
|
||||
items.quest.crivusfruitsflake.desc=克里弗斯之果破碎时,炸的四分五裂,但看起来大概无法食用。\n\n物品自身并没有什么实际用途,但长期的魔力汲取让它拥有一股神秘的力量,或许它能商人眼前一亮。它本身还可以用作炼金制作一些不错的东西。再不济,它也能提供相当的炼金能量。
|
||||
|
||||
|
||||
###MLPD
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
|
@ -26,8 +26,11 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.CrivusFruitsFood;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.keys.CrystalKey;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.keys.IronKey;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.CrivusFruitsFlake;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LifeTreeSword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
|
@ -36,6 +39,8 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CrivusFruitsSprite;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.utils.PathFinder;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
//克里弗斯之果 本体
|
||||
public class CrivusFruits extends Mob {
|
||||
|
@ -220,6 +225,27 @@ public class CrivusFruits extends Mob {
|
|||
Dungeon.level.drop( new CrystalKey( Dungeon.depth ), pos ).sprite.drop();
|
||||
Dungeon.level.drop( new IronKey( Dungeon.depth ), pos-1 ).sprite.drop();
|
||||
Dungeon.level.drop( new IronKey( Dungeon.depth ), pos+1 ).sprite.drop();
|
||||
|
||||
int blobs = Random.chances(new float[]{0, 0, 6, 3, 1});
|
||||
for (int i = 0; i < blobs; i++){
|
||||
int ofs;
|
||||
do {
|
||||
ofs = PathFinder.NEIGHBOURS8[Random.Int(6)];
|
||||
} while (!Dungeon.level.passable[pos + ofs]);
|
||||
Dungeon.level.drop( new CrivusFruitsFood(), pos + ofs ).sprite.drop( pos );
|
||||
}
|
||||
|
||||
int flakes = Random.chances(new float[]{0, 0, 6, 3, 1});
|
||||
for (int i = 0; i < flakes; i++){
|
||||
int ofs;
|
||||
do {
|
||||
ofs = PathFinder.NEIGHBOURS8[Random.Int(8)];
|
||||
} while (!Dungeon.level.passable[pos + ofs]);
|
||||
Dungeon.level.drop( new CrivusFruitsFlake(), pos + ofs ).sprite.drop( pos );
|
||||
}
|
||||
|
||||
Dungeon.level.drop( new LifeTreeSword(), pos ).sprite.drop();
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.items.food;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Adrenaline;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bless;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
|
||||
public class CrivusFruitsFood extends Food {
|
||||
{
|
||||
stackable = true;
|
||||
image = ItemSpriteSheet.CrivusFruitFood;
|
||||
|
||||
defaultAction = AC_EAT;
|
||||
|
||||
bones = true;
|
||||
}
|
||||
|
||||
protected void satisfy( Hero hero ){
|
||||
Buff.affect(hero, Hunger.class).satisfy(50f);
|
||||
Buff.prolong(hero, Bless.class, 20f);
|
||||
Buff.affect(hero, Adrenaline.class, 10f);
|
||||
hero.spend( eatingTime() );
|
||||
GLog.p(Messages.get(this, "eat_msg2"));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.items.quest;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
|
||||
public class CrivusFruitsFlake extends Item {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.CrivusFruitflake;
|
||||
stackable = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUpgradable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isIdentified() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int value() {
|
||||
return quantity * 90;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int energyVal() {
|
||||
return quantity * 3;
|
||||
}
|
||||
}
|
|
@ -21,7 +21,12 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.CrivusFruitsFood;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.watabou.utils.Bundle;
|
||||
|
||||
public class LifeTreeSword extends MeleeWeapon {
|
||||
|
||||
|
@ -29,8 +34,36 @@ public class LifeTreeSword extends MeleeWeapon {
|
|||
image = ItemSpriteSheet.LifeTreeSword;
|
||||
|
||||
tier = 3;
|
||||
}
|
||||
|
||||
bones = false;
|
||||
public String desc() {
|
||||
return Messages.get(this, "desc")+"_"+getFood+"_";
|
||||
}
|
||||
|
||||
public int proc(Char attacker, Char defender, int damage ) {
|
||||
if (defender.HP <= damage && getFood < 99){
|
||||
//判定为死亡
|
||||
getFood+=111;
|
||||
} else {
|
||||
Dungeon.level.drop( new CrivusFruitsFood(), defender.pos ).sprite.drop();
|
||||
getFood=0;
|
||||
}
|
||||
|
||||
return super.proc(attacker, defender, damage);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private int getFood = 0;
|
||||
|
||||
public void restoreFromBundle(Bundle bundle) {
|
||||
super.restoreFromBundle(bundle);
|
||||
this.getFood = bundle.getInt("getFood");
|
||||
}
|
||||
|
||||
public void storeInBundle(Bundle bundle) {
|
||||
super.storeInBundle(bundle);
|
||||
bundle.put("getFood", this.getFood);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,7 +15,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
|||
import com.watabou.utils.Bundle;
|
||||
|
||||
public class LockSword extends MeleeWeapon {
|
||||
public int lvl = 0;
|
||||
private int lvl = 0;
|
||||
|
||||
public LockSword() {
|
||||
super.image = ItemSpriteSheet.DG3;
|
||||
|
|
|
@ -60,11 +60,11 @@ public class TitleScene extends PixelScene {
|
|||
placeTorch(title.x + 22, title.y + 46);
|
||||
placeTorch(title.x + title.width - 22, title.y + 46);
|
||||
|
||||
placeTorch2(title.x + -5, title.y + 63);
|
||||
placeTorch2(title.x + title.width - 15, title.y + 63);
|
||||
|
||||
placeTorch3(title.x + -10, title.y + 46);
|
||||
placeTorch3(title.x + title.width - 10, title.y + 46);
|
||||
// placeTorch2(title.x + -5, title.y + 63);
|
||||
// placeTorch2(title.x + title.width - 15, title.y + 63);
|
||||
//
|
||||
// placeTorch3(title.x + -10, title.y + 46);
|
||||
// placeTorch3(title.x + title.width - 10, title.y + 46);
|
||||
|
||||
Image swordLeft = new Image( BannerSprites.get( BannerSprites.Type.SWORD ) ) {
|
||||
private float preCurTime = 0;
|
||||
|
|
|
@ -666,6 +666,9 @@ public class ItemSpriteSheet {
|
|||
public static final int TOKEN = QUEST+6;
|
||||
public static final int BLOB = QUEST+7;
|
||||
public static final int SHARD = QUEST+8;
|
||||
|
||||
public static final int CrivusFruitFood = QUEST+9;
|
||||
public static final int CrivusFruitflake = QUEST+10;
|
||||
static{
|
||||
assignItemRect(SKULL, 16, 11);
|
||||
assignItemRect(DUST, 12, 11);
|
||||
|
@ -676,6 +679,8 @@ public class ItemSpriteSheet {
|
|||
assignItemRect(TOKEN, 12, 12);
|
||||
assignItemRect(BLOB, 10, 9);
|
||||
assignItemRect(SHARD, 8, 10);
|
||||
assignItemRect(CrivusFruitFood, 11, 14);
|
||||
assignItemRect(CrivusFruitflake, 13, 13);
|
||||
}
|
||||
|
||||
private static final int BAGS = xy(1, 31); //16 slots
|
||||
|
|
Loading…
Reference in New Issue
Block a user