From d64bf7c422aa1ff9372e05df6d4ad7f9afd23bf9 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 28 Mar 2024 17:17:27 -0400 Subject: [PATCH] v2.4.0: added a new trinket: Dimensional Sundial --- .../assets/messages/items/items.properties | 3 + core/src/main/assets/sprites/items.png | Bin 22780 -> 22925 bytes .../items/Generator.java | 6 +- .../items/trinkets/DimensionalSundial.java | 66 ++++++++++++++++++ .../shatteredpixeldungeon/levels/Level.java | 11 +-- .../sprites/ItemSpriteSheet.java | 2 + 6 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/trinkets/DimensionalSundial.java diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index b3cd5bb61..7e19ea5e5 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -1309,6 +1309,9 @@ items.trinkets.petrifiedseed.desc=This seed has been fossilised, either by slow items.trinkets.ratskull.name=rat skull items.trinkets.ratskull.desc=This macabre trinket isn't much larger than the skull of a normal rat, which is somehow a rarity down in this dungeon. The skull's magical influence seems to attract the more rare denizens of the dungeon, making them appear far more often.\n\nAt its current level this trinket will make rare exotic enemies _%dx_ as likely to appear. The skull is only half as effective at attracting crystal mimics and armored statues, however. +items.trinkets.dimensionalsundial.name=dimensional sundial +items.trinkets.dimensionalsundial.desc=Despite being underground, this sundial is still casting a shadow according to the sun's position. Even more strangely, the shadow's position seems to have no relation to the sun in this world. When no shadow is cast, the sundial seems to attract danger.\n\nAt its current level, this trinket will increase the spawning rate of enemies by _%d%%_ when it is nighttime in real life (9pm to 7am). + items.trinkets.trinketcatalyst.name=trinket catalyst items.trinkets.trinketcatalyst.window_text=The water begins to glow as you use the catalyst. There are a few nearby items you could imbue with magical energy. items.trinkets.trinketcatalyst.desc=TODO diff --git a/core/src/main/assets/sprites/items.png b/core/src/main/assets/sprites/items.png index 0de1a6f8aa4ccdd2a03fe171e840fc31d86083cd..760d0e8b803b04b1ec65d9060eaadc84a57b7ab0 100644 GIT binary patch literal 22925 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 D$L_i1 diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Generator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Generator.java index e36422a74..961f889f0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Generator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Generator.java @@ -102,6 +102,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfFear; import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfFlock; import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfIntuition; import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfShock; +import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.DimensionalSundial; import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.ExoticCrystals; import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.MossyClump; import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.ParchmentScrap; @@ -526,9 +527,10 @@ public class Generator { ParchmentScrap.class, PetrifiedSeed.class, ExoticCrystals.class, - MossyClump.class + MossyClump.class, + DimensionalSundial.class }; - TRINKET.defaultProbs = new float[]{ 1, 1, 1, 1, 1 }; + TRINKET.defaultProbs = new float[]{ 1, 1, 1, 1, 1, 1 }; TRINKET.probs = TRINKET.defaultProbs.clone(); for (Category cat : Category.values()){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/trinkets/DimensionalSundial.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/trinkets/DimensionalSundial.java new file mode 100644 index 000000000..ffc250dff --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/trinkets/DimensionalSundial.java @@ -0,0 +1,66 @@ +/* + * Pixel Dungeon + * Copyright (C) 2012-2015 Oleg Dolya + * + * Shattered Pixel Dungeon + * Copyright (C) 2014-2024 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 + */ + +package com.shatteredpixel.shatteredpixeldungeon.items.trinkets; + +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; + +import java.util.Calendar; +import java.util.GregorianCalendar; + +public class DimensionalSundial extends Trinket { + + { + image = ItemSpriteSheet.SUNDIAL; + } + + @Override + protected int upgradeEnergyCost() { + return 1+level(); //TODO + } + + @Override + public String desc() { + return Messages.get(this, "desc", (int)(100*(enemySpawnMultiplier(buffedLvl())-1f))); + } + + public static float spawnMultiplierAtCurrentTime(){ + Calendar cal = GregorianCalendar.getInstance(); + if (cal.get(Calendar.HOUR_OF_DAY) >= 21 || cal.get(Calendar.HOUR_OF_DAY) <= 6 ){ + return enemySpawnMultiplier(); + } else { + return 1f; + } + } + + public static float enemySpawnMultiplier(){ + return enemySpawnMultiplier(trinketLevel(DimensionalSundial.class)); + } + + public static float enemySpawnMultiplier( int level ){ + if (level == -1){ + return 1f; + } else { + return 1.25f + 0.25f*level; + } + } +} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java index cde55d31d..fc9b87f65 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java @@ -68,6 +68,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade; import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfEnchantment; import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfIntuition; import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.MossyClump; +import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.DimensionalSundial; import com.shatteredpixel.shatteredpixeldungeon.items.trinkets.TrinketCatalyst; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfWarding; @@ -711,19 +712,21 @@ public abstract class Level implements Bundlable { } public float respawnCooldown(){ + float cooldown; if (Statistics.amuletObtained){ if (Dungeon.depth == 1){ //very fast spawns on floor 1! 0/2/4/6/8/10/12, etc. - return (Dungeon.level.mobCount()) * (TIME_TO_RESPAWN / 25f); + cooldown = (Dungeon.level.mobCount()) * (TIME_TO_RESPAWN / 25f); } else { //respawn time is 5/5/10/15/20/25/25, etc. - return Math.round(GameMath.gate( TIME_TO_RESPAWN/10f, Dungeon.level.mobCount() * (TIME_TO_RESPAWN / 10f), TIME_TO_RESPAWN / 2f)); + cooldown = Math.round(GameMath.gate( TIME_TO_RESPAWN/10f, Dungeon.level.mobCount() * (TIME_TO_RESPAWN / 10f), TIME_TO_RESPAWN / 2f)); } } else if (Dungeon.level.feeling == Feeling.DARK){ - return 2*TIME_TO_RESPAWN/3f; + cooldown = 2*TIME_TO_RESPAWN/3f; } else { - return TIME_TO_RESPAWN; + cooldown = TIME_TO_RESPAWN; } + return cooldown / DimensionalSundial.spawnMultiplierAtCurrentTime(); } public boolean spawnMob(int disLimit){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index e0dbdd1e6..274db74ce 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -474,12 +474,14 @@ public class ItemSpriteSheet { public static final int PETRIFIED_SEED = TRINKETS+2; public static final int EXOTIC_CRYSTALS = TRINKETS+3; public static final int MOSSY_CLUMP = TRINKETS+4; + public static final int SUNDIAL = TRINKETS+5; static{ assignItemRect(RAT_SKULL, 16, 11); assignItemRect(PARCHMENT_SCRAP, 10, 14); assignItemRect(PETRIFIED_SEED, 10, 10); assignItemRect(EXOTIC_CRYSTALS, 11, 11); assignItemRect(MOSSY_CLUMP, 12, 11); + assignItemRect(SUNDIAL, 16, 12); } private static final int SCROLLS = xy(1, 19); //16 slots