Remove Update & Update 0.6.3.0-Beta5.2
This commit is contained in:
parent
1ae8e8ff16
commit
0de9efe4b8
|
@ -31,7 +31,6 @@ android {
|
|||
applicationIdSuffix ".indev"
|
||||
versionNameSuffix '-INDEV'
|
||||
dependencies {
|
||||
releaseImplementation project(':services:updates:githubUpdates')
|
||||
releaseImplementation project(':services:news:shatteredNews')
|
||||
}
|
||||
}
|
||||
|
@ -46,7 +45,6 @@ android {
|
|||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
|
||||
dependencies {
|
||||
releaseImplementation project(':services:updates:githubUpdates')
|
||||
releaseImplementation project(':services:news:shatteredNews')
|
||||
}
|
||||
}
|
||||
|
@ -89,7 +87,7 @@ dependencies {
|
|||
|
||||
//noinspection GradleDependency
|
||||
implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
|
||||
implementation project(path: ':services:updates:githubUpdates')
|
||||
|
||||
implementation project(path: ':services:news:shatteredNews')
|
||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
|
||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
|
||||
|
|
|
@ -18,8 +18,8 @@ allprojects {
|
|||
appName = 'Magic Ling Pixel Dungeon'
|
||||
appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
|
||||
|
||||
appVersionCode =900925
|
||||
appVersionName = '0.6.3.0-Beta5.0'
|
||||
appVersionCode =900926
|
||||
appVersionName = '0.6.3.0-Beta5.1'
|
||||
|
||||
appJavaCompatibility = JavaVersion.VERSION_11
|
||||
|
||||
|
|
|
@ -273,6 +273,8 @@ actors.buffs.watersoulx.desc=水灵的祝福已经在你身上,现在你可以
|
|||
|
||||
actors.mobs.lb.blacksoul.name=暗影
|
||||
actors.mobs.lb.blacksoul.desc=由于重生十字架的缘故,因此你再次重生了。但你先前的东西都被自己的暗影亡魂夺走了,杀死它,夺回自己的一切!
|
||||
actors.mobs.lb.blacksoul.died_kill=来自深渊的力量将你彻底的吞噬了!
|
||||
actors.mobs.lb.blacksoul$darkbolt.rankings_desc=暗影将你拉入了万丈深渊……
|
||||
|
||||
actors.mobs.bosses.crystaldiedtower.name=雪凛结晶
|
||||
actors.mobs.bosses.crystaldiedtower.desc=来自于雪凛峡谷商人总部的神秘结晶……,激活后将周期性的发射激光。
|
||||
|
|
|
@ -68,7 +68,7 @@ scenes.interlevelscene.dialog_20=感谢_那些回忆_和_罗贝里_的大力支
|
|||
scenes.interlevelscene.dialog_21=Hod:\n\n明明清了水却还带电,太屑了。
|
||||
scenes.interlevelscene.dialog_22=笑笑就好:\n\n咒杖会意想不到的好用,敢赌吗?
|
||||
scenes.interlevelscene.dialog_23=lmk3:\n\n话说,为什么尚方宝剑不能吃呢?
|
||||
scenes.interlevelscene.dialog_24=five:\n\n嬗变初始武器可能有惊喜哦。
|
||||
scenes.interlevelscene.dialog_24=地牢之外的风景,或许也值得一看。
|
||||
scenes.interlevelscene.dialog_25=U3D:\n\n治疗该喝就得喝,别省。
|
||||
scenes.interlevelscene.dialog_26=观察者:\n\n死亡不是终点,结束即为开始。
|
||||
scenes.interlevelscene.dialog_27=楪祈喵:\n\n欢迎来到魔绫,享受这场狂宴吧。
|
||||
|
@ -81,6 +81,7 @@ scenes.interlevelscene.dialog_33=DMZERO,另一个时间线的幕后黑手。
|
|||
scenes.interlevelscene.dialog_34=米缸:\n\n和黑猫一起做薄煎饼,Nya~
|
||||
scenes.interlevelscene.dialog_35=啊哈,猜猜我是谁?:\n\n失败了再爬起来就行了
|
||||
scenes.interlevelscene.dialog_36=楪祈喵:\n\n想不想炼铜?想不想涩涩?想是吧?肘,跟我去警察局解释吧
|
||||
scenes.interlevelscene.dialog_37=丛林的真相,并不是你想象的那样。
|
||||
|
||||
scenes.mlpdaboutscene.txt_mlpd=基于 _破碎的像素地牢v1.2.3_ \n\n 采用了_注解版;生存地牢;疯长地牢;经验地牢_的部分源代码。
|
||||
scenes.mlpdaboutscene.ttl_ansdo=制作:答舟工作室
|
||||
|
|
|
@ -192,7 +192,6 @@ public abstract class ChampionEnemy extends Buff {
|
|||
public boolean canAttackWithExtraReach(Char enemy) {
|
||||
//attack range of 2
|
||||
/** 实现效果,此外还要关联CharSprite.java和Mob.java以实现远程效果*/
|
||||
|
||||
if(Random.Float()<0.1f) {
|
||||
switch (Random.NormalIntRange(0,5)){
|
||||
//默认为毒雾
|
||||
|
|
|
@ -1965,16 +1965,20 @@ public class Hero extends Char {
|
|||
}
|
||||
|
||||
//灯火值低于35死亡生成自己的邪恶面,并清空金币,将金币保存到json文件。(灵感:空洞骑士)
|
||||
if(lanterfireactive && hero.lanterfire <= 35) {
|
||||
BlackSoul s = new BlackSoul();
|
||||
s.pos = Dungeon.hero.pos;
|
||||
s.gold = Dungeon.gold;
|
||||
Dungeon.gold = 0;
|
||||
s.state = s.SLEEPING;
|
||||
GameScene.add(s);
|
||||
Buff.affect(s, ChampionEnemy.DeadSoulSX.class);
|
||||
Buff.affect(s, DeadSoul.class);
|
||||
GameScene.flash(0x80FF0000);
|
||||
for (Ankh i : belongings.getAllItems(Ankh.class)) {
|
||||
if (ankh == null || i.isBlessed()) {
|
||||
if (lanterfireactive && hero.lanterfire <= 35 && !i.isBlessed()) {
|
||||
BlackSoul s = new BlackSoul();
|
||||
s.pos = Dungeon.hero.pos;
|
||||
s.gold = Dungeon.gold;
|
||||
Dungeon.gold = 0;
|
||||
s.state = s.SLEEPING;
|
||||
GameScene.add(s);
|
||||
Buff.affect(s, ChampionEnemy.DeadSoulSX.class);
|
||||
Buff.affect(s, DeadSoul.class);
|
||||
GameScene.flash(0x80FF0000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(Statistics.fireGirlnoshopping && Dungeon.depth < 0){
|
||||
|
|
|
@ -6,25 +6,34 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AllyBuff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SmokeParticle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Gold;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.LostBackpack;
|
||||
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.utils.BArray;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.utils.Bundle;
|
||||
import com.watabou.utils.Callback;
|
||||
import com.watabou.utils.PathFinder;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
public class BlackSoul extends Mob {
|
||||
public class BlackSoul extends Mob implements Callback {
|
||||
public int gold;
|
||||
{
|
||||
spriteClass = ShadowSprite.class;
|
||||
|
||||
//与英雄成长阶级相同
|
||||
HP = HT = (20 + 5*(hero.lvl-1) + hero.HTBoost)/2;
|
||||
HP = HT = (40 + 5*(hero.lvl-1) + hero.HTBoost)/2;
|
||||
|
||||
immunities.add(AllyBuff.class);
|
||||
|
||||
|
@ -46,6 +55,16 @@ public class BlackSoul extends Mob {
|
|||
return hero.defenseSkill(target)+5; //equal to base hero attack skill
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected boolean canAttack( Char enemy ) {
|
||||
if(Dungeon.hero.lvl >= 15) {
|
||||
return new Ballistica(pos, enemy.pos, MagicMissile.WARD).collisionPos == enemy.pos;
|
||||
} else {
|
||||
return super.canAttack(enemy);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void die( Object cause ) {
|
||||
|
||||
|
@ -57,6 +76,11 @@ public class BlackSoul extends Mob {
|
|||
|
||||
}
|
||||
|
||||
public void onZapComplete() {
|
||||
zap();
|
||||
next();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int damageRoll() {
|
||||
return hero.damageRoll()/2;
|
||||
|
@ -65,6 +89,9 @@ public class BlackSoul extends Mob {
|
|||
@Override
|
||||
public int attackProc( Char enemy, int damage ) {
|
||||
damage = super.attackProc( enemy, damage );
|
||||
if(Dungeon.hero.lvl == 15) {
|
||||
zap();
|
||||
}
|
||||
if (Random.Int(4) < hero.pointsInTalent(Talent.SHADOW_BLADE)
|
||||
&& hero.belongings.weapon() != null){
|
||||
return hero.belongings.weapon().proc( this, enemy, damage );
|
||||
|
@ -73,6 +100,54 @@ public class BlackSoul extends Mob {
|
|||
}
|
||||
}
|
||||
|
||||
public static class DarkBolt{}
|
||||
public static int level = 1;
|
||||
private static final float TIME_TO_ZAP = 2f;
|
||||
|
||||
protected boolean doAttack( Char enemy ) {
|
||||
|
||||
if (Dungeon.level.adjacent( pos, enemy.pos )) {
|
||||
|
||||
return super.doAttack( enemy );
|
||||
|
||||
} else {
|
||||
|
||||
if (sprite != null && (sprite.visible || enemy.sprite.visible)) {
|
||||
sprite.zap( enemy.pos );
|
||||
return false;
|
||||
} else {
|
||||
zap();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call() {
|
||||
next();
|
||||
}
|
||||
private void zap() {
|
||||
spend( TIME_TO_ZAP );
|
||||
|
||||
if (hit( this, enemy, true )) {
|
||||
|
||||
if (enemy == Dungeon.hero && Random.Int( 2 ) == 0) {
|
||||
Buff.prolong( enemy, Blindness.class, Degrade.DURATION );
|
||||
Sample.INSTANCE.play( Assets.Sounds.DEBUFF );
|
||||
}
|
||||
|
||||
int dmg = hero.damageRoll()/2;
|
||||
enemy.damage( dmg, new DarkBolt() );
|
||||
|
||||
if (enemy == Dungeon.hero && !enemy.isAlive()) {
|
||||
Dungeon.fail( getClass() );
|
||||
GLog.n( Messages.get(this, "died_kill") );
|
||||
}
|
||||
} else {
|
||||
enemy.sprite.showStatus( CharSprite.NEUTRAL, enemy.defenseVerb() );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int drRoll() {
|
||||
return hero.drRoll()/2;
|
||||
|
|
|
@ -1,16 +1,38 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.lb;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite;
|
||||
import com.watabou.noosa.TextureFilm;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.noosa.particles.Emitter;
|
||||
import com.watabou.noosa.tweeners.Tweener;
|
||||
import com.watabou.utils.Callback;
|
||||
|
||||
public class ShadowSprite extends MobSprite {
|
||||
|
||||
private Emitter smoke;
|
||||
|
||||
public void zap( int cell ) {
|
||||
|
||||
turnTo( ch.pos , cell );
|
||||
play( zap );
|
||||
|
||||
MagicMissile.boltFromChar( parent,
|
||||
MagicMissile.RAINBOW,
|
||||
this,
|
||||
cell,
|
||||
new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
((BlackSoul)ch).onZapComplete();
|
||||
}
|
||||
} );
|
||||
Sample.INSTANCE.play( Assets.Sounds.ZAP );
|
||||
}
|
||||
|
||||
public ShadowSprite() {
|
||||
super();
|
||||
|
||||
|
@ -30,6 +52,8 @@ public class ShadowSprite extends MobSprite {
|
|||
attack = new Animation(15, false);
|
||||
attack.frames(film, 13, 14, 15, 0);
|
||||
|
||||
zap = attack.clone();
|
||||
|
||||
idle();
|
||||
resetColor();
|
||||
}
|
||||
|
|
|
@ -122,7 +122,7 @@ public class OilLantern extends Item {
|
|||
|
||||
public void refill(Hero hero) {
|
||||
this.flasks--;
|
||||
this.charge += Math.min(MAX_CHARGE,charge);
|
||||
this.charge += Math.min(MAX_CHARGE,100);
|
||||
hero.spend(TIME_TO_USE);
|
||||
hero.busy();
|
||||
Sample.INSTANCE.play(Assets.Sounds.DRINK, TIME_TO_USE, TIME_TO_USE, 1.2f);
|
||||
|
|
|
@ -458,4 +458,6 @@ public class DwarfMasterBossLevel extends Level {
|
|||
A,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,L,L,L,L,L,L,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,A,
|
||||
A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ public class InterlevelScene extends PixelScene {
|
|||
|
||||
public static boolean fallIntoPit;
|
||||
|
||||
private static final int NUM_TIPS = 36;
|
||||
private static final int NUM_TIPS = 37;
|
||||
|
||||
private static ArrayList<Integer> tipset;
|
||||
private RenderedTextBlock tip;
|
||||
|
|
|
@ -111,7 +111,7 @@ public class vM0_6_7_X_Changes {
|
|||
}
|
||||
|
||||
public static void add_v0_6_53_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||
ChangeInfo changes = new ChangeInfo("v0.6.3.0-Beta5.0", true, "");
|
||||
ChangeInfo changes = new ChangeInfo("v0.6.3.0-Beta5-5.1", true, "");
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
changeInfos.add(changes);
|
||||
|
||||
|
@ -125,6 +125,9 @@ public class vM0_6_7_X_Changes {
|
|||
changes.addButton(new ChangeButton(Icons.get(Icons.AUDIO), ("MLPD-原创音乐-丛林Boss通用曲-丛林尽头"),
|
||||
("感谢Prohonor的制作,实装在丛林Boss区。")));
|
||||
|
||||
changes.addButton(new ChangeButton(Icons.get(Icons.SKULL), ("暗影"),
|
||||
("暗影会学习你的属性面板,但会减半,随着楼层深入和英雄成长,暗影会变得更加强大。")));
|
||||
|
||||
changes = new ChangeInfo("改动", false, null);
|
||||
changes.hardlight(Window.CYELLOW);
|
||||
changeInfos.add(changes);
|
||||
|
|
|
@ -127,6 +127,5 @@ dependencies {
|
|||
implementation "org.lwjgl:lwjgl-tinyfd:3.2.3:natives-macos"
|
||||
implementation "org.lwjgl:lwjgl-tinyfd:3.2.3:natives-linux"
|
||||
|
||||
implementation project(':services:updates:githubUpdates')
|
||||
implementation project(':services:news:shatteredNews')
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
/*
|
||||
* Pixel Dungeon
|
||||
* Copyright (C) 2012-2015 Oleg Dolya
|
||||
*
|
||||
* Shattered Pixel Dungeon
|
||||
* Copyright (C) 2014-2022 Evan Debenham
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.services.updates;
|
||||
|
||||
public class AvailableUpdateData {
|
||||
|
||||
public String versionName;
|
||||
public int versionCode;
|
||||
|
||||
public String desc;
|
||||
|
||||
public String URL;
|
||||
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
/*
|
||||
* Pixel Dungeon
|
||||
* Copyright (C) 2012-2015 Oleg Dolya
|
||||
*
|
||||
* Shattered Pixel Dungeon
|
||||
* Copyright (C) 2014-2022 Evan Debenham
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.services.updates;
|
||||
|
||||
//TODO with install and review functionality, this service is less and less just about updates
|
||||
// perhaps rename to PlatformService, StoreService, DistributionService, etc?
|
||||
public abstract class UpdateService {
|
||||
|
||||
public static abstract class UpdateResultCallback {
|
||||
public abstract void onUpdateAvailable( AvailableUpdateData update );
|
||||
public abstract void onNoUpdateFound();
|
||||
public abstract void onConnectionFailed();
|
||||
}
|
||||
|
||||
//whether the app is updateable via an ingame prompt (e.g. not a demo or an android instant app)
|
||||
public abstract boolean isUpdateable();
|
||||
|
||||
//whether the service supports an opt-in channel for betas
|
||||
public abstract boolean supportsBetaChannel();
|
||||
|
||||
public abstract void checkForUpdate( boolean useMetered, boolean includeBetas, UpdateResultCallback callback );
|
||||
|
||||
public abstract void initializeUpdate( AvailableUpdateData update );
|
||||
|
||||
//whether the app installable via an ingame prompt (e.g. a demo, or an android instant app)
|
||||
public abstract boolean isInstallable();
|
||||
|
||||
public abstract void initializeInstall();
|
||||
|
||||
public static abstract class ReviewResultCallback {
|
||||
public abstract void onComplete();
|
||||
}
|
||||
|
||||
public abstract boolean supportsReviews();
|
||||
|
||||
public abstract void initializeReview( ReviewResultCallback callback );
|
||||
|
||||
public abstract void openReviewURI();
|
||||
|
||||
}
|
|
@ -8,8 +8,6 @@ include ':desktop'
|
|||
|
||||
//service modules
|
||||
include ':services'
|
||||
//updates
|
||||
include ':services:updates:githubUpdates'
|
||||
//news
|
||||
include ':services:news:debugNews'
|
||||
include ':services:news:shatteredNews'
|
||||
|
||||
//news
|
||||
include ':services:news:shatteredNews'
|
||||
|
|
Loading…
Reference in New Issue
Block a user