From 40ce8c0ee030a84d9736747f12df738ffea8c40a Mon Sep 17 00:00:00 2001 From: Adam Borowski Date: Fri, 13 Nov 2009 19:43:31 +0100 Subject: Fixedart: shield of the gong. Wakes up everyone in a large radius on being struck. The exact resists are not yet filled in, we'd need to interrogate zelgadis who provided the idea. --- crawl-ref/source/art-data.h | 19 +++++++++++++++++++ crawl-ref/source/art-data.txt | 10 ++++++++++ crawl-ref/source/art-func.h | 14 ++++++++++++++ crawl-ref/source/artefact.h | 3 ++- crawl-ref/source/dat/database/wpnnoise.txt | 19 +++++++++++++++++++ crawl-ref/source/rltiles/dc-player.txt | 1 + crawl-ref/source/rltiles/dc-unrand.txt | 1 + .../rltiles/item/armour/artefact/urand_gong.png | Bin 0 -> 537 bytes crawl-ref/source/rltiles/player/hand2/gong.png | Bin 0 -> 213 bytes crawl-ref/source/rltiles/tiledef-unrand.cc | 2 ++ 10 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 crawl-ref/source/rltiles/item/armour/artefact/urand_gong.png create mode 100644 crawl-ref/source/rltiles/player/hand2/gong.png diff --git a/crawl-ref/source/art-data.h b/crawl-ref/source/art-data.h index 0fa2709a17..f158058876 100644 --- a/crawl-ref/source/art-data.h +++ b/crawl-ref/source/art-data.h @@ -1334,6 +1334,25 @@ NULL, NULL, NULL, { NULL }, NULL, }, +/* UNRAND_GONG */ +{ + "shield of the gong", "bronze gong", + OBJ_ARMOUR, ARM_SHIELD, +6, 0, ETC_GOLD, 0, + UNRAND_FLAG_NONE, + { + SPARM_NORMAL, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, + }, + "This is a large gong; you wonder if it could be worn as a shield.", + "This shield surely will be heard!", + "", + NULL, NULL, NULL, { _GONG_melee_effect }, NULL, +}, + /* UNRAND_AIR */ { "amulet of the Air", "sky-blue amulet", diff --git a/crawl-ref/source/art-data.txt b/crawl-ref/source/art-data.txt index 9b3b1a889a..6dd008d445 100644 --- a/crawl-ref/source/art-data.txt +++ b/crawl-ref/source/art-data.txt @@ -1014,6 +1014,16 @@ DESC_END: An enchantress with a magic loom and way too much time on and looks rather foolish, but it provides excellent protection from rats of all kinds. +NAME: shield of the gong +APPEAR: bronze gong +OBJ: OBJ_ARMOUR/ARM_SHIELD +PLUS: +6 +COLOUR: ETC_GOLD +TILE: urand_gong +TILE_EQ: gong +DESC: This is a large gong; you wonder if it could be worn as a shield. +DESC_ID: This shield surely will be heard! + NAME: amulet of the Air APPEAR: sky-blue amulet OBJ: OBJ_JEWELLERY/AMU_CONTROLLED_FLIGHT diff --git a/crawl-ref/source/art-func.h b/crawl-ref/source/art-func.h index b460304502..83ba5264ad 100644 --- a/crawl-ref/source/art-func.h +++ b/crawl-ref/source/art-func.h @@ -491,3 +491,17 @@ static void _STORM_BOW_world_reacts(item_def *item) } /////////////////////////////////////////////////// + +static void _GONG_melee_effect(item_def* item, actor* wearer, + actor* attacker, bool dummy) +{ + if (silenced(wearer->pos())) + return; + + std::string msg = getSpeakString("shield of the gong"); + if (msg.empty()) + msg = "You hear a strange loud sound."; + mpr(msg.c_str(), MSGCH_SOUND); + + noisy(40, wearer->pos()); +} diff --git a/crawl-ref/source/artefact.h b/crawl-ref/source/artefact.h index 5375c2f03e..0ea8a971d6 100644 --- a/crawl-ref/source/artefact.h +++ b/crawl-ref/source/artefact.h @@ -13,7 +13,7 @@ class bolt; // NOTE: NO_UNRANDARTS is automatically set by util/art-data.pl -#define NO_UNRANDARTS 79 +#define NO_UNRANDARTS 80 #define ART_PROPERTIES ARTP_NUM_PROPERTIES @@ -106,6 +106,7 @@ enum unrand_type UNRAND_FENCERS_GLOVES, // Fencer's gloves UNRAND_STARLIGHT, // cloak of Starlight UNRAND_RATSKIN_CLOAK, // ratskin cloak + UNRAND_GONG, // shield of the gong UNRAND_AIR, // amulet of the Air UNRAND_SHADOWS, // ring of Shadows UNRAND_CEKUGOB, // amulet of Cekugob diff --git a/crawl-ref/source/dat/database/wpnnoise.txt b/crawl-ref/source/dat/database/wpnnoise.txt index d26029f086..de309abafb 100644 --- a/crawl-ref/source/dat/database/wpnnoise.txt +++ b/crawl-ref/source/dat/database/wpnnoise.txt @@ -894,3 +894,22 @@ silent boring %%%% +############################################################ +# The SHIELD OF THE GONG can be struck in different ways. +############################################################ +shield of the gong + +w:40 +GONNNNG! + +BOUMMMMG! + +PTOANNNG! + +PANG! + +BONNNG! + +# scraping hit +SHROANNG! +%%%% diff --git a/crawl-ref/source/rltiles/dc-player.txt b/crawl-ref/source/rltiles/dc-player.txt index 98c4e62156..1e2c1ef450 100644 --- a/crawl-ref/source/rltiles/dc-player.txt +++ b/crawl-ref/source/rltiles/dc-player.txt @@ -654,6 +654,7 @@ bladehands BLADEHAND shield_round_small SHIELD_ROUND_SMALL shield_round_small2 SHIELD_ROUND_SMALL2 bullseye BULLSEYE +gong GONG shield_middle_round SHIELD_MIDDLE_ROUND shield_skull SHIELD_SKULL diff --git a/crawl-ref/source/rltiles/dc-unrand.txt b/crawl-ref/source/rltiles/dc-unrand.txt index 356a53ad39..0a8e24afb3 100644 --- a/crawl-ref/source/rltiles/dc-unrand.txt +++ b/crawl-ref/source/rltiles/dc-unrand.txt @@ -26,6 +26,7 @@ urand_alchemist UNRAND_ALCHEMIST urand_fencer UNRAND_FENCERS_GLOVES urand_starlight UNRAND_STARLIGHT urand_ratskin_cloak UNRAND_RATSKIN_CLOAK +urand_gong UNRAND_GONG %sdir item/weapon/artefact spwpn_singing_sword UNRAND_SINGING_SWORD diff --git a/crawl-ref/source/rltiles/item/armour/artefact/urand_gong.png b/crawl-ref/source/rltiles/item/armour/artefact/urand_gong.png new file mode 100644 index 0000000000..6e4e2caf72 Binary files /dev/null and b/crawl-ref/source/rltiles/item/armour/artefact/urand_gong.png differ diff --git a/crawl-ref/source/rltiles/player/hand2/gong.png b/crawl-ref/source/rltiles/player/hand2/gong.png new file mode 100644 index 0000000000..ae3cf61a1a Binary files /dev/null and b/crawl-ref/source/rltiles/player/hand2/gong.png differ diff --git a/crawl-ref/source/rltiles/tiledef-unrand.cc b/crawl-ref/source/rltiles/tiledef-unrand.cc index 558e0fa69f..00d737efc2 100644 --- a/crawl-ref/source/rltiles/tiledef-unrand.cc +++ b/crawl-ref/source/rltiles/tiledef-unrand.cc @@ -83,6 +83,7 @@ int unrandart_to_tile(int unrand) case UNRAND_FENCERS_GLOVES: return TILE_UNRAND_FENCERS_GLOVES; case UNRAND_STARLIGHT: return TILE_UNRAND_STARLIGHT; case UNRAND_RATSKIN_CLOAK: return TILE_UNRAND_RATSKIN_CLOAK; + case UNRAND_GONG: return TILE_UNRAND_GONG; case UNRAND_AIR: return TILE_UNRAND_AIR; case UNRAND_SHADOWS: return TILE_UNRAND_SHADOWS; case UNRAND_CEKUGOB: return TILE_UNRAND_CEKUGOB; @@ -170,6 +171,7 @@ int unrandart_to_doll_tile(int unrand) case UNRAND_IGNORANCE: return TILEP_HAND2_SHIELD_OF_IGNORANCE; case UNRAND_BULLSEYE: return TILEP_HAND2_BULLSEYE; case UNRAND_RESISTANCE: return TILEP_HAND2_SHIELD_OF_RESISTANCE; + case UNRAND_GONG: return TILEP_HAND2_GONG; // HELM case UNRAND_DYROVEPREVA: return TILEP_HELM_DYROVEPREVA; case UNRAND_BEAR_SPIRIT: return TILEP_HELM_BEAR; -- cgit v1.2.3-54-g00ecf