v2.0.0: added a unique starting thrown weapon for the duelist
This commit is contained in:
@@ -507,7 +507,7 @@ actors.hero.heroclass.huntress_unlock=To unlock the Huntress _hit enemies with t
|
||||
|
||||
actors.hero.heroclass.duelist=Duelist
|
||||
actors.hero.heroclass.duelist_desc_short=The Duelist is a weapons master who can use her weapon to trigger a _special weapon ability._ This special ability is _different for every weapon._
|
||||
actors.hero.heroclass.duelist_desc=The Duelist starts with a _unique rapier_ with a special ability that recharges over time.\n\nEvery weapon in the game has a _different special ability_ that the Duelist can use.\n\nThe duelist also starts with _three throwing knives_, cloth armor, a waterskin, and a velvet pouch.\n\nThe Duelist automatically identifies:\n_-_ Scrolls of Identify\n_-_ Potions of Strength\n_-_ Scrolls of Mirror Image
|
||||
actors.hero.heroclass.duelist_desc=The Duelist starts with a _unique rapier_ with a special ability that recharges over time.\n\nEvery weapon in the game has a _different special ability_ that the Duelist can use.\n\nThe duelist also starts with _two throwing spikes_, cloth armor, a waterskin, and a velvet pouch.\n\nThe Duelist automatically identifies:\n_-_ Scrolls of Identify\n_-_ Potions of Strength\n_-_ Scrolls of Mirror Image
|
||||
actors.hero.heroclass.duelist_unlock=To unlock the Duelist _equip a tier 2 or higher weapon with no strength penalty._
|
||||
|
||||
actors.hero.herosubclass.berserker=berserker
|
||||
|
||||
@@ -1785,6 +1785,9 @@ items.weapon.missiles.throwingknife.desc=These lightweight knives are balanced t
|
||||
items.weapon.missiles.throwingspear.name=throwing spear
|
||||
items.weapon.missiles.throwingspear.desc=These lightweight spears have thin frames which are clearly designed to be thrown, and not thrusted.
|
||||
|
||||
items.weapon.missiles.throwingspike.name=throwing spike
|
||||
items.weapon.missiles.throwingspike.desc=These pointed shafts of metal are meant to be thrown into distant enemies. While they aren't very strong, their simple all-metal construction makes them reasonably durable.
|
||||
|
||||
items.weapon.missiles.throwingstone.name=throwing stone
|
||||
items.weapon.missiles.throwingstone.desc=These stones are sanded down to make them able to be thrown with more power than a regular stone. Despite the craftsmanship, they still aren't a very reliable weapon.
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
@@ -68,6 +68,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Rapier;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpike;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.watabou.utils.DeviceCompat;
|
||||
@@ -216,11 +217,11 @@ public enum HeroClass {
|
||||
(hero.belongings.weapon = new Rapier()).identify();
|
||||
hero.belongings.weapon.activate(hero);
|
||||
|
||||
ThrowingKnife knives = new ThrowingKnife();
|
||||
knives.quantity(3).collect();
|
||||
ThrowingSpike spikes = new ThrowingSpike();
|
||||
spikes.quantity(2).collect();
|
||||
|
||||
Dungeon.quickslot.setSlot(0, hero.belongings.weapon);
|
||||
Dungeon.quickslot.setSlot(1, knives);
|
||||
Dungeon.quickslot.setSlot(1, spikes);
|
||||
|
||||
new PotionOfStrength().identify();
|
||||
new ScrollOfMirrorImage().identify();
|
||||
|
||||
@@ -157,6 +157,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingCl
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingHammer;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpear;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpike;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Tomahawk;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Trident;
|
||||
@@ -411,7 +412,8 @@ public class Generator {
|
||||
|
||||
MIS_T1.classes = new Class<?>[]{
|
||||
ThrowingStone.class,
|
||||
ThrowingKnife.class
|
||||
ThrowingKnife.class,
|
||||
ThrowingSpike.class
|
||||
};
|
||||
MIS_T1.probs = new float[]{ 6, 5 };
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* 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.items.weapon.missiles;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
|
||||
public class ThrowingSpike extends MissileWeapon {
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.THROWING_SPIKE;
|
||||
hitSound = Assets.Sounds.HIT_STAB;
|
||||
hitSoundPitch = 1.2f;
|
||||
|
||||
bones = false;
|
||||
|
||||
tier = 1;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -272,10 +272,10 @@ public class ItemSpriteSheet {
|
||||
|
||||
//8 free slots
|
||||
|
||||
private static final int MISSILE_WEP = xy(1, 10); //16 slots. 3 per tier + boomerang
|
||||
private static final int MISSILE_WEP = xy(1, 10); //16 slots. 3 per tier + bow
|
||||
public static final int SPIRIT_BOW = MISSILE_WEP+0;
|
||||
|
||||
public static final int DART = MISSILE_WEP+1;
|
||||
public static final int THROWING_SPIKE = MISSILE_WEP+1;
|
||||
public static final int THROWING_KNIFE = MISSILE_WEP+2;
|
||||
public static final int THROWING_STONE = MISSILE_WEP+3;
|
||||
|
||||
@@ -298,7 +298,7 @@ public class ItemSpriteSheet {
|
||||
static{
|
||||
assignItemRect(SPIRIT_BOW, 16, 16);
|
||||
|
||||
assignItemRect(DART, 15, 15);
|
||||
assignItemRect(THROWING_SPIKE, 11, 10);
|
||||
assignItemRect(THROWING_KNIFE, 12, 13);
|
||||
assignItemRect(THROWING_STONE, 12, 10);
|
||||
|
||||
@@ -319,21 +319,22 @@ public class ItemSpriteSheet {
|
||||
assignItemRect(FORCE_CUBE, 11, 12);
|
||||
}
|
||||
|
||||
public static final int TIPPED_DARTS = xy(1, 11); //16 slots
|
||||
public static final int ROT_DART = TIPPED_DARTS+0;
|
||||
public static final int INCENDIARY_DART = TIPPED_DARTS+1;
|
||||
public static final int ADRENALINE_DART = TIPPED_DARTS+2;
|
||||
public static final int HEALING_DART = TIPPED_DARTS+3;
|
||||
public static final int CHILLING_DART = TIPPED_DARTS+4;
|
||||
public static final int SHOCKING_DART = TIPPED_DARTS+5;
|
||||
public static final int POISON_DART = TIPPED_DARTS+6;
|
||||
public static final int CLEANSING_DART = TIPPED_DARTS+7;
|
||||
public static final int PARALYTIC_DART = TIPPED_DARTS+8;
|
||||
public static final int HOLY_DART = TIPPED_DARTS+9;
|
||||
public static final int DISPLACING_DART = TIPPED_DARTS+10;
|
||||
public static final int BLINDING_DART = TIPPED_DARTS+11;
|
||||
public static final int DARTS = xy(1, 11); //16 slots
|
||||
public static final int DART = DARTS+0;
|
||||
public static final int ROT_DART = DARTS+1;
|
||||
public static final int INCENDIARY_DART = DARTS+2;
|
||||
public static final int ADRENALINE_DART = DARTS+3;
|
||||
public static final int HEALING_DART = DARTS+4;
|
||||
public static final int CHILLING_DART = DARTS+5;
|
||||
public static final int SHOCKING_DART = DARTS+6;
|
||||
public static final int POISON_DART = DARTS+7;
|
||||
public static final int CLEANSING_DART = DARTS+8;
|
||||
public static final int PARALYTIC_DART = DARTS+9;
|
||||
public static final int HOLY_DART = DARTS+10;
|
||||
public static final int DISPLACING_DART = DARTS+11;
|
||||
public static final int BLINDING_DART = DARTS+12;
|
||||
static {
|
||||
for (int i = TIPPED_DARTS; i < TIPPED_DARTS+16; i++)
|
||||
for (int i = DARTS; i < DARTS+16; i++)
|
||||
assignItemRect(i, 15, 15);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Kunai;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Shuriken;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpear;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpike;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Trident;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap;
|
||||
@@ -90,6 +91,7 @@ public class MissileSprite extends ItemSprite implements Tweener.Listener {
|
||||
static {
|
||||
ANGULAR_SPEEDS.put(Dart.class, 0);
|
||||
ANGULAR_SPEEDS.put(ThrowingKnife.class, 0);
|
||||
ANGULAR_SPEEDS.put(ThrowingSpike.class, 0);
|
||||
ANGULAR_SPEEDS.put(FishingSpear.class, 0);
|
||||
ANGULAR_SPEEDS.put(ThrowingSpear.class, 0);
|
||||
ANGULAR_SPEEDS.put(Kunai.class, 0);
|
||||
|
||||
@@ -195,7 +195,7 @@ public class WndHeroInfo extends WndTabbed {
|
||||
case DUELIST:
|
||||
icons = new Image[]{ new ItemSprite(ItemSpriteSheet.RAPIER),
|
||||
new ItemSprite(ItemSpriteSheet.WAR_HAMMER),
|
||||
new ItemSprite(ItemSpriteSheet.THROWING_KNIFE),
|
||||
new ItemSprite(ItemSpriteSheet.THROWING_SPIKE),
|
||||
new ItemSprite(ItemSpriteSheet.SCROLL_ISAZ)};
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user