diff --git a/data/conf/zones/fado.xml b/data/conf/zones/fado.xml
index 93ec675edcc..86e93b20747 100644
--- a/data/conf/zones/fado.xml
+++ b/data/conf/zones/fado.xml
@@ -2433,6 +2433,21 @@ Today I used an orb in the witch Jynath's house and arrived in a city of witches
+
+
+ 4
+ 2
+
+
+
+
+
+ bank_magic
+
+
+
diff --git a/doc/sources/graphics-tileset.txt b/doc/sources/graphics-tileset.txt
index d1df4a16c1f..7092ab57e70 100644
--- a/doc/sources/graphics-tileset.txt
+++ b/doc/sources/graphics-tileset.txt
@@ -58,6 +58,7 @@ blue_green.* Kimmo Rundelin (kiheru); CC BY-SA 3.0; Stendhal
blue_green_2.png Katie Russell (kymara); GPL 2.0+; Stendhal
caldron_sign.png Dungeon Crawl Stone Soup; CC0; https://opengameart.org/node/12210, https://crawl.develz.org/wordpress/, https://github.com/crawl/tiles
chests_banner.* Kimmo Rundelin (kiheru), Dungeon Crawl Stone Soup, Jordan Irwin (AntumDeluge); CC BY-SA 3.0; Stendhal, https://opengameart.org/node/12210, https://opengameart.org/node/79098
+chests_signpost.* Kimmo Rundelin (kiheru), Dungeon Crawl Stone Soup, Jordan Irwin (AntumDeluge); CC BY-SA 3.0; Stendhal, https://opengameart.org/node/12210, https://opengameart.org/node/79098
chimney.png Kimmo Rundelin (kiheru); CC BY-SA 3.0; Stendhal
chimney_big.png Kimmo Rundelin (kiheru); CC BY-SA 3.0; Stendhal
chimney_brown_stacks.png Lanea Zimmerman (Sharm); CC BY-SA 3.0; https://lpc.opengameart.org/static/lpc-style-guide/assets.html#outdoors
diff --git a/src/games/stendhal/server/entity/player/PlayerRPClass.java b/src/games/stendhal/server/entity/player/PlayerRPClass.java
index d309f9745a5..616b710ba54 100644
--- a/src/games/stendhal/server/entity/player/PlayerRPClass.java
+++ b/src/games/stendhal/server/entity/player/PlayerRPClass.java
@@ -1,6 +1,6 @@
/* $Id$ */
/***************************************************************************
- * (C) Copyright 2003 - Marauroa *
+ * (C) Copyright 2003-2023 - Marauroa *
***************************************************************************
***************************************************************************
* *
@@ -84,6 +84,7 @@ static void generateRPClass() {
player.addRPSlot("bank_ados", 30, Definition.HIDDEN);
player.addRPSlot("bank_deniran", 30, Definition.HIDDEN);
player.addRPSlot("bank_fado", 30, Definition.HIDDEN);
+ player.addRPSlot("bank_magic", 30, Definition.HIDDEN);
player.addRPSlot("bank_nalwor", 30, Definition.HIDDEN);
player.addRPSlot("zaras_chest_ados", 30, Definition.HIDDEN);
diff --git a/src/games/stendhal/server/entity/player/UpdateConverter.java b/src/games/stendhal/server/entity/player/UpdateConverter.java
index b4845061aa6..6b2b19da687 100644
--- a/src/games/stendhal/server/entity/player/UpdateConverter.java
+++ b/src/games/stendhal/server/entity/player/UpdateConverter.java
@@ -255,7 +255,7 @@ public static Item updateItem(String name) {
public static void updatePlayerRPObject(final RPObject object) {
final String[] slotsNormal = { "bag", "rhand", "lhand", "head", "armor",
"legs", "feet", "finger", "cloak", "bank", "bank_ados", "bank_deniran",
- "zaras_chest_ados", "bank_fado", "bank_nalwor", "spells",
+ "zaras_chest_ados", "bank_fado", "bank_magic", "bank_nalwor", "spells",
"keyring", /*"portfolio", */ "trade", "pouch" };
final String[] slotsSpecial = { "!quests", "!kills", "!buddy", "!ignore",
@@ -280,6 +280,7 @@ public static void updatePlayerRPObject(final RPObject object) {
// Port from 0.57 to 0.58: bank_ados, bank_fado
// Port from 0.58 to ?: bank_nalwor, keyring, finger
// Port from 1.29 to 1.30: bank_deniran
+ // Port from 1.44 to 1.45: bank_magic
for (final String slotName : slotsNormal) {
if (!object.hasSlot(slotName)) {
object.addSlot(new PlayerSlot(slotName));
diff --git a/src/games/stendhal/server/entity/slot/Banks.java b/src/games/stendhal/server/entity/slot/Banks.java
index 4e227ef6735..cb0b7148958 100644
--- a/src/games/stendhal/server/entity/slot/Banks.java
+++ b/src/games/stendhal/server/entity/slot/Banks.java
@@ -1,5 +1,5 @@
/***************************************************************************
- * (C) Copyright 2003-2019 - Stendhal *
+ * (C) Copyright 2003-2023 - Stendhal *
***************************************************************************
***************************************************************************
* *
@@ -25,6 +25,8 @@ public enum Banks {
DENIRAN("bank_deniran"),
/** bank in Fado. */
FADO("bank_fado"),
+ /** bank in Magic City */
+ MAGIC("bank_magic"),
/** bank in Nalwor. */
NALWOR("bank_nalwor"),
/** mini-bank in zaras house. */
diff --git a/src/games/stendhal/server/maps/quests/WizardBank.java b/src/games/stendhal/server/maps/quests/WizardBank.java
index 885a3da4257..320608d6b40 100644
--- a/src/games/stendhal/server/maps/quests/WizardBank.java
+++ b/src/games/stendhal/server/maps/quests/WizardBank.java
@@ -1,5 +1,5 @@
/***************************************************************************
- * (C) Copyright 2003-2022 - Stendhal *
+ * (C) Copyright 2003-2023 - Stendhal *
***************************************************************************
***************************************************************************
* *
@@ -255,7 +255,7 @@ protected void createDialog() {
new PlayerHasItemWithHimCondition("money", COST),
new QuestNotActiveCondition(QUEST_SLOT)),
ConversationStates.IDLE,
- "Semos, Nalwor and Fado bank chests are to my right. The chests owned by Deniran and Ados Bank Merchants and your friend Zara are to my left. If you are finished before your time here is done, please say #leave.",
+ "Semos, Nalwor, Fado and Magic City bank chests are to my right. The chests owned by Deniran and Ados Bank Merchants and your friend Zara are to my left. If you are finished before your time here is done, please say #leave.",
new MultipleActions(
new DropItemAction("money", COST),
new TeleportAction(ZONE_NAME, 10, 10, Direction.DOWN),
diff --git a/src/games/stendhal/server/script/DumpDeletionCandidates.java b/src/games/stendhal/server/script/DumpDeletionCandidates.java
index 0113ddbc891..88c5b9f04ea 100644
--- a/src/games/stendhal/server/script/DumpDeletionCandidates.java
+++ b/src/games/stendhal/server/script/DumpDeletionCandidates.java
@@ -1,3 +1,14 @@
+/***************************************************************************
+ * (C) Copyright 2012-2023 - Faiumoni e. V. *
+ ***************************************************************************
+ ***************************************************************************
+ * *
+ * 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 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
package games.stendhal.server.script;
import java.io.IOException;
@@ -44,7 +55,7 @@ private void dumpObject(RPObject object) {
StringBuilder items = new StringBuilder();
final String[] slotsItems = { "bag", "rhand", "lhand", "head", "armor",
"legs", "feet", "finger", "cloak", "keyring", "trade",
- "bank", "bank_ados", "bank_deniran", "bank_fado", "bank_nalwor", "zaras_chest_ados"};
+ "bank", "bank_ados", "bank_deniran", "bank_fado", "bank_magic", "bank_nalwor", "zaras_chest_ados"};
for (final String slotName : slotsItems) {
final RPSlot slot = object.getSlot(slotName);
diff --git a/tests/games/stendhal/server/maps/quests/WizardBankTest.java b/tests/games/stendhal/server/maps/quests/WizardBankTest.java
index cc37766a92f..024196e9352 100644
--- a/tests/games/stendhal/server/maps/quests/WizardBankTest.java
+++ b/tests/games/stendhal/server/maps/quests/WizardBankTest.java
@@ -1,6 +1,6 @@
/* $Id$ */
/***************************************************************************
- * (C) Copyright 2003-2010 - Stendhal *
+ * (C) Copyright 2003-2023 - Stendhal *
***************************************************************************
***************************************************************************
* *
@@ -138,7 +138,7 @@ public void testHiAndBye() {
assertTrue(en.step(player, "yes"));
assertEquals(ConversationStates.IDLE, en.getCurrentState());
- assertEquals("Semos, Nalwor and Fado bank chests are to my right. The chests owned by Deniran and Ados Bank Merchants and your friend Zara are to my left. If you are finished before your time here is done, please say #leave.", getReply(npc));
+ assertEquals("Semos, Nalwor, Fado and Magic City bank chests are to my right. The chests owned by Deniran and Ados Bank Merchants and your friend Zara are to my left. If you are finished before your time here is done, please say #leave.", getReply(npc));
}
/**
@@ -237,7 +237,7 @@ public void testDoQuest() {
assertTrue(npc.isTalking());
assertTrue(en.step(player, "yes"));
- assertEquals("Semos, Nalwor and Fado bank chests are to my right. The chests owned by Deniran and Ados Bank Merchants and your friend Zara are to my left. If you are finished before your time here is done, please say #leave.", getReply(npc));
+ assertEquals("Semos, Nalwor, Fado and Magic City bank chests are to my right. The chests owned by Deniran and Ados Bank Merchants and your friend Zara are to my left. If you are finished before your time here is done, please say #leave.", getReply(npc));
assertEquals(ConversationStates.IDLE, en.getCurrentState());
assertTrue(player.hasQuest(QUEST_SLOT));
diff --git a/tiled/interiors/magic/bank.tmx b/tiled/interiors/magic/bank.tmx
index 8e4b8422e83..ffaff2798ce 100644
--- a/tiled/interiors/magic/bank.tmx
+++ b/tiled/interiors/magic/bank.tmx
@@ -1,85 +1,80 @@
-
-