Remove Update & Update 0.6.3.0-Beta5.2

This commit is contained in:
LingASDJ 2023-07-16 17:54:35 +08:00
parent 1ae8e8ff16
commit 0de9efe4b8
16 changed files with 133 additions and 120 deletions

View File

@ -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"

View File

@ -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

View File

@ -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=来自于雪凛峡谷商人总部的神秘结晶……,激活后将周期性的发射激光。

View File

@ -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=制作:答舟工作室

View File

@ -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)){
//默认为毒雾

View File

@ -1965,7 +1965,9 @@ public class Hero extends Char {
}
//灯火值低于35死亡生成自己的邪恶面并清空金币将金币保存到json文件灵感空洞骑士
if(lanterfireactive && hero.lanterfire <= 35) {
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;
@ -1976,6 +1978,8 @@ public class Hero extends Char {
Buff.affect(s, DeadSoul.class);
GameScene.flash(0x80FF0000);
}
}
}
if(Statistics.fireGirlnoshopping && Dungeon.depth < 0){
reallyDie( cause );

View File

@ -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;

View File

@ -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();
}

View File

@ -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);

View File

@ -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,
};
}

View File

@ -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;

View File

@ -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);

View File

@ -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')
}

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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'