Skip to content

Commit

Permalink
Version 0.3.4
Browse files Browse the repository at this point in the history
MINOR CHANGES

- added a pop-up about Tutorial on the second floor for new players

- decreased the amount of healing Goo receives from absorbing its spawn
- decreased the distance between Tengu's shadows spawned in the alternate phase
- DM-300 now spawns immediately aggroed and closer to the starting room
- decreased DM-100's health by half (they deserved it)

- boss summons no longer grant any experience
- piranhas are now resistant to fire and immune to burning
- changed skeletons spawning on the fifth floor to gnoll shamans
- evil eyes no longer drop meat, but vampire bats do

- buying, selling, and stealing items from shops now takes one turn
- increased amount of ammo/gunpowder/bombs sold at the last shop
- freezing duration from Wands of Ice Barrier will ignore the target's armor now
- Scrolls of Phase Warp are now more reliably random

BUGS & ISSUES

- fixed Yog's fists not counting as magical enemies
- fixed the burning fist ability description
- fixed evil eyes being able to hit you twice

- fixed DM-300 bombs not exploding at the same time
- fixed DM-300 being able to hit you at a distance
- fixed DM-300 being able to use abilities while asleep
- fixed DM-300 always throwing two bombs while enraged

- fixed dropping/throwing equipped armor taking fewer turns than unequipping it
- fixed Scrolls of Detect Magic failing to identify equipped items in certain cases
- fixed some shelves being inaccessible on warehouse floors
- fixed vampiric weapons draining health from magical enemies

- fixed the guard buff lasting longer than intended
- fixed some other (even less important) stuff
  • Loading branch information
ConsideredHamster committed May 18, 2024
1 parent 22fae09 commit 8cfaed9
Show file tree
Hide file tree
Showing 43 changed files with 312 additions and 211 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ android {
applicationId "com.consideredhamster.yetanotherpixeldungeon.github"
minSdkVersion 9
targetSdkVersion 33
versionCode 330
versionName '0.3.3'
versionCode 340
versionName '0.3.4'
archivesBaseName = "yapd-$versionName"
}

Expand Down
5 changes: 3 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

<uses-permission android:name="android.permission.VIBRATE"/>

<uses-sdk android:targetSdkVersion="20"/>
<uses-sdk android:targetSdkVersion="33"/>

<uses-feature
android:glEsVersion="0x00020000"/>
Expand All @@ -27,7 +27,8 @@
<activity
android:label="@string/app_name"
android:name="com.consideredhamster.yetanotherpixeldungeon.YetAnotherPixelDungeon"
android:screenOrientation="portrait">
android:screenOrientation="portrait"
android:exported="true">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,10 +235,6 @@ public static void process() {

doNext = current.act();

if (current instanceof Char) {
BuffReactive.check( (Char)current );
}

if (doNext && !Dungeon.hero.isAlive()) {
doNext = false;
current = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ public abstract class Char extends Actor {
protected boolean act() {

Dungeon.level.updateFieldOfView( this );
Buff.detach( this, Guard.class);
// Buff.detach( this, Guard.class);

moving = false;

Expand Down Expand Up @@ -182,7 +182,7 @@ public boolean attack( Char enemy ){

if( exposed != null ) {
exposed.object = enemy.id();
exposed.reset(1);
exposed.reset( 1f );
}

}
Expand Down Expand Up @@ -618,9 +618,9 @@ public void spend( float time ) {
timeScale *= 0.667f;
}

// if (buff( Speed.class ) != null) {
// timeScale *= 1.5f;
// }
if (buff( Guard.class ) != null) {
remove( Guard.class );
}

super.spend( time / timeScale );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.consideredhamster.yetanotherpixeldungeon.actors.buffs.debuffs.Vertigo;
import com.consideredhamster.yetanotherpixeldungeon.actors.hero.Hero;
import com.consideredhamster.yetanotherpixeldungeon.levels.features.Chasm;
import com.consideredhamster.yetanotherpixeldungeon.visuals.effects.Speck;
import com.watabou.utils.Random;
import com.consideredhamster.yetanotherpixeldungeon.Dungeon;
import com.consideredhamster.yetanotherpixeldungeon.actors.Actor;
Expand All @@ -49,8 +50,9 @@ public static boolean affect( int c, int r, int radius, int damage, Object sourc
boolean terrainAffected = false;

if (Dungeon.visible[c]) {
CellEmitter.get(c).burst( BlastParticle.FACTORY, 12 / ( r + 1 ) );
CellEmitter.get(c).burst( SmokeParticle.FACTORY, 6 / ( r + 1 ) );
CellEmitter.get( c ).start( Speck.factory( Speck.BLAST_FIRE, true ), 0.05f, 6 );
// CellEmitter.get(c).burst( BlastParticle.FACTORY, 6 );
CellEmitter.get(c).burst( SmokeParticle.FACTORY, 3 );
}

if (Level.flammable[c]) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ public abstract class BuffReactive extends Buff {

protected int duration;

public void reset( int value ) {
duration = value;
public void reset( float value ) {
// duration = value;
spend( value );
}

public void check(){
Expand All @@ -49,7 +50,9 @@ public static void check( Char ch ){

@Override
public boolean act() {
spend( TICK );
// spend( TICK );
// check();
detach();
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,11 @@ public boolean attachTo( Char target ) {
return super.attachTo( target );
}

public void hit( ) {
public void hit( float delay ) {

count++;

reset( 1 );
reset( delay );

if ( target.sprite.visible && count >= 3 ) {
target.sprite.showStatus( CharSprite.DEFAULT, TXT_COMBO, count );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,5 +85,4 @@ public void proc( boolean withShield ) {
}
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -1335,7 +1335,7 @@ public int attackProc( Char enemy, int damage, boolean blocked ){

Weapon wep = rangedWeapon != null ? rangedWeapon : currentWeapon;

Buff.affect( this, Combo.class ).hit();
Buff.affect( this, Combo.class ).hit( attackDelay() );

if( wep != null ){

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ private static Class<?> mobClass( int depth ) {
break;
case 5:
chances = new float[]{ 6, 5, 4, 3, 2, 1 };
classes = new Class<?>[]{ Rat.class, Thief.class, GnollHunter.class, SewerCrab.class, CarrionSwarm.class, Skeleton.class };
classes = new Class<?>[]{ Rat.class, Thief.class, GnollHunter.class, SewerCrab.class, CarrionSwarm.class, GnollShaman.class };
break;

case 6:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ public DM100() {

maxDamage /= 2;
dexterity /= 2;
EXP += EXP / 2;

HP = HT /= 2;
EXP = 0;

resistances.put( Element.Acid.class, Element.Resist.PARTIAL );
resistances.put( Element.Flame.class, Element.Resist.PARTIAL );
Expand Down Expand Up @@ -111,11 +113,14 @@ public boolean act() {

public void repair( int pos ) {

Char ch = Actor.findChar(pos );
ch.heal( damageRoll() / 2 );
Char ch = Actor.findChar(pos);

if (ch != null) {

Sample.INSTANCE.play(Assets.SND_LIGHTNING);
sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 );
ch.heal(damageRoll() / 2);
ch.sprite.emitter().burst(Speck.factory(Speck.HEALING), 1);

}

next();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,11 @@ public int attackProc( Char enemy, int damage, boolean blocked ) {
return damage;
}

@Override
public boolean cast( Char enemy ) {
return false;
}

@Override
public void remove( Buff buff ) {

Expand Down Expand Up @@ -217,32 +222,35 @@ public boolean act() {
shootLasers( mark.pos );
mark.destroy();

if( marks.size() <= 1 ){
lastMark = -1;
spend( TICK );
return true;
} else {
return false;
}
break;

// if( marks.size() <= 1 ){
// lastMark = -1;
// spend( TICK );
// return true;
// } else {
// return false;
// }

case BossWarning.VAR_BOMBS:

throwBomb( mark.pos );
mark.destroy();

if( marks.size() <= 1 ){
lastMark = -1;
spend( TICK );
return true;
} else {
return false;
}

break;

}

return false;

} else {
lastMark = -1;
spend( TICK );
return true;
}

} else if( enemy != null && Level.fieldOfView[ enemy.pos ] && Ballistica.cast( pos, enemy.pos, false, false) == enemy.pos ) {
} else if( state != SLEEPING && enemy != null && Level.fieldOfView[ enemy.pos ]
&& Ballistica.cast( pos, enemy.pos, false, false) == enemy.pos ) {

if( buff( Enraged.class ) != null ) {

Expand Down Expand Up @@ -507,7 +515,7 @@ private void createNova() {

private void throwBomb( final int target ) {

sprite.attack( target, new Callback() {
sprite.cast( target, new Callback() {
@Override
public void call(){

Expand All @@ -530,7 +538,7 @@ public void call(){

private void shootLasers( final int target ) {

sprite.attack( target, new Callback() {
sprite.cast( target, new Callback() {
@Override
public void call() {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public void die( Object cause, Element dmg ) {
@Override
public int attackProc( Char enemy, int damage, boolean blocked ) {

Buff.affect(this, Combo.class).hit();
Buff.affect(this, Combo.class).hit( attackDelay() );

return damage;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public DwarvenUndead() {
spriteClass = UndeadSprite.class;

armorClass /= 2;
EXP = 0;

resistances.put( Element.Unholy.class, Element.Resist.PARTIAL );
resistances.put( Element.Acid.class, Element.Resist.PARTIAL );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@
import com.consideredhamster.yetanotherpixeldungeon.visuals.sprites.EyeSprite;
import com.watabou.utils.Random;

import java.util.ArrayList;

public class EvilEye extends MobRanged {

public EvilEye() {
Expand All @@ -64,8 +66,6 @@ armor class = 6
spriteClass = EyeSprite.class;

flying = true;
loot = new MeatRaw();
lootChance = 0.175f;

resistances.put(Element.Energy.class, Element.Resist.PARTIAL);

Expand All @@ -74,6 +74,8 @@ armor class = 6

}

private ArrayList<Integer> cells = new ArrayList<Integer>();

// @Override
// protected boolean getCloser( int target ) {
// if (state == HUNTING && HP >= HT && (enemySeen || enemy != null && detected( enemy ))) {
Expand Down Expand Up @@ -102,16 +104,18 @@ public boolean attack( Char enemy ){

private void shootRay( int target ) {

cells.clear();
boolean terrainAffected = false;

int reflectFrom = Ballistica.cast( pos, target, true, false );
cells = WandOfDisintegration.getCellsFromTrace( cells );

sprite.parent.add( new DeathRay( pos, reflectFrom ) );
Sample.INSTANCE.play( Assets.SND_RAY );

for ( int i = 1 ; i <= Ballistica.distance ; i++ ) {
terrainAffected = terrainAffected || burnTile( Ballistica.trace[i] );
}
// for ( int i = 1 ; i <= Ballistica.distance ; i++ ) {
// terrainAffected = terrainAffected || burnTile( Ballistica.trace[i] );
// }

if( Level.solid[ reflectFrom ] ){

Expand All @@ -120,18 +124,22 @@ private void shootRay( int target ) {
if( reflectFrom != reflectTo ){

Ballistica.cast( reflectFrom, reflectTo, true, false );

reflectTo = Ballistica.trace[ Ballistica.distance ] ;

cells = WandOfDisintegration.getCellsFromTrace( cells );
sprite.parent.add( new DeathRay( reflectFrom, reflectTo ) );

for ( int i = 1 ; i <= Ballistica.distance ; i++ ) {
terrainAffected = terrainAffected || burnTile( Ballistica.trace[i] );
}
// for ( int i = 1 ; i <= Ballistica.distance ; i++ ) {
// terrainAffected = terrainAffected || burnTile( Ballistica.trace[i] );
// }

}
}

for ( int c : cells ) {
terrainAffected = terrainAffected || burnTile( c );
}

if (terrainAffected) {
Dungeon.observe();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,18 +63,18 @@ public GooSpawn() {
HT = SPAWN_HEALTH;

if( Dungeon.difficulty == Difficulties.NORMAL ) {
HT = Random.NormalIntRange( HT, HT * 2);
HT = Random.NormalIntRange( HT, HT * 2 );
} else if( Dungeon.difficulty > Difficulties.NORMAL ) {
HT = HT * 2;
}

HP = HT;

minDamage /= 2;
maxDamage /= 2;

HP = HT;
EXP = 5;

armorClass = 0;
EXP = 0;

resistances.put( Element.Acid.class, Element.Resist.PARTIAL );
resistances.put( Element.Flame.class, Element.Resist.PARTIAL );
Expand Down Expand Up @@ -134,7 +134,7 @@ public boolean act() {
BuffActive.add( mother, Burning.class, (float)buff1.getDuration() );
}

mother.heal( HP );
mother.heal( Math.max( 1, HP / 2 ) );
die( this );

Pushing.move( this, mother.pos, null );
Expand Down
Loading

0 comments on commit 8cfaed9

Please sign in to comment.