From 8453b9612b6ba209ccd34d5fb0df63714e1a61f2 Mon Sep 17 00:00:00 2001 From: Martin Read Date: Thu, 13 Feb 2014 17:20:40 +0000 Subject: [PATCH] New monsters and items; balancing will be required * display-nc.cc: Updated symbol help to reflect new demon symbols * pmon_comp: added new flags * permon.hh: added new flags, added prototypes for test functions (not implemented yet) * default.permobjs: New items * default.permons: New items --- default.permobjs | 110 +++++++++++++++++++++++++++++++++++++++++++++- default.permons | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ display-nc.cc | 2 +- permon.hh | 26 +++++++++-- pmon_comp | 10 ++++- 5 files changed, 272 insertions(+), 6 deletions(-) diff --git a/default.permobjs b/default.permobjs index 1847bbc..b6858e2 100644 --- a/default.permobjs +++ b/default.permobjs @@ -1,3 +1,27 @@ +# default.permobjs - preferred form of modification for Victrix Abyssi permobj database +# Copyright 2014 Martin Read. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + WEAPON dagger PLURAL daggers DESC A long knife, designed for stabbing. @@ -46,9 +70,35 @@ POWER2 0 DEPTH 12 DAMAGEABLE +WEAPON hellglaive +PLURAL hellglaives +DESC A black-hafted polearm with a long, wickedly serrated blade. It thrums with infernal power. +RARITY 80 +ASCII ')' +UTF8 ")" +COLOUR d_grey +POWER 25 +POWER2 0 +DEPTH 30 +NOTIFY_EQUIP +DAMAGEABLE +BREAK_REACT + +WEAPON plague scythe +PLURAL plague sycthes +DESC The few exposed patches of metal on this reeking, filth-encrusted scythe bear an iridescent patina. Only the memory of your battle with its wielder hints at the power it holds. +RARITY 100 +ASCII ')' +UTF8 ")" +COLOUR l_green +POWER 20 +POWER2 0 +DEPTH 30 +NOTIFY_EQUIP + WEAPON tormentor's lash PLURAL tormentor's lashes -DESC A bone-handled whip that crackles with malefic energies. +DESC A whip of pale, soft leather that crackles with malefic energies. RARITY 80 ASCII ')' UTF8 ")" @@ -60,6 +110,18 @@ NOTIFY_EQUIP DAMAGEABLE BREAK_REACT +WEAPON death staff +PLURAL death staves +DESC A jet-black staff crowned with a skull. +RARITY 80 +ASCII ')' +UTF8 ")" +COLOUR d_grey +POWER 18 +POWER2 0 +DEPTH 30 +NOTIFY_EQUIP + WEAPON staff of fire PLURAL staves of fire DESC A jet-black staff with a red glowing gem in its headpiece. @@ -380,6 +442,18 @@ POWER2 0 DEPTH 30 NOTIFY_EQUIP +ARMOUR infernite armour +PLURAL suits of infernite armour +DESC Crafted by Verant, or perhaps one of his hellish apprentices, after his fall from the light, this armour was ancient before your ancestors even came to the lands called Söťerek. +RARITY 100 +ASCII '[' +UTF8 "[" +COLOUR red +POWER 25 +POWER2 20 +DEPTH 30 +NOTIFY_EQUIP + # Mr Read would like to note that he invented the following item and its # game mechanics *before* becoming aware of the anime series _Kill la Kill_. # @@ -456,6 +530,40 @@ POWER 0 POWER2 0 DEPTH 1 +RING slime ring +PLURAL slime rings +DESC This magical ring, tarnished and filth-spotted, protects its wearer from a poison and pestilence, whether magical or natural. +RARITY 75 +ASCII '=' +UTF8 "=" +COLOUR l_grey +POWER 0 +POWER2 0 +DEPTH 15 + +RING protection ring +PLURAL protection rings +DESC This magical ring, engraved with the sigil of Verant the Smith, substantially reduces the severity of all injuries its wearer suffers. +RARITY 75 +ASCII '=' +UTF8 "=" +COLOUR l_grey +POWER 0 +POWER2 0 +DEPTH 15 + +RING imperial seal +PLURAL imperial seals +DESC This rarest and most ancient of magical rings was forged in the days before the Archon Inferni was imprisoned in this dismal place. Of the nature of its power, there are not even rumours. +RARITY 100 +ASCII '=' +UTF8 "=" +COLOUR purple +POWER 0 +POWER2 0 +DEPTH 30 +NOTIFY_EQUIP + FOOD iron ration PLURAL iron rations DESC A parcel of hardtack and beef jerky. Dull but nutritious. diff --git a/default.permons b/default.permons index aed7925..7201328 100644 --- a/default.permons +++ b/default.permons @@ -1,3 +1,26 @@ +# default.permons - preferred form of modification for Victrix Abyssi permon database +# Copyright 2014 Martin Read. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. monster newt ascii 'n' utf8 "n" @@ -12,6 +35,8 @@ defence 1 exp 1 speed 0 STUPID +SMALL +QUADRUPED monster rat ascii 'r' @@ -27,6 +52,8 @@ defence 4 exp 2 speed 2 STUPID +SMALL +QUADRUPED monster wolf plural wolves @@ -42,6 +69,7 @@ mdam 10 defence 6 exp 15 speed 2 +QUADRUPED monster snake desc Probably venomous. You'd prefer to not find out. @@ -57,6 +85,7 @@ defence 9 experience 40 speed 2 STUPID +SERPENTINE monster thug desc Likes pushing people's faces through the backs of their heads. @@ -71,6 +100,7 @@ mdam 5 defence 4 experience 5 speed 1 +HUMANOID monster goon desc Really good at pushing people's faces through the backs of their heads. @@ -85,6 +115,7 @@ mdam 7 defence 8 experience 10 speed 1 +HUMANOID monster hunter desc More at home in other people's forests, the glint in his eye as he nocks an arrow tells you princesses are in season. @@ -103,6 +134,7 @@ defence 10 experience 50 speed 1 ARCHER +HUMANOID monster duellist desc A talented swordsman with a fondness for single combat. @@ -118,6 +150,7 @@ defence 15 experience 130 speed 1 SMART +HUMANOID monster warlord desc A truly exceptional warrior, strong of arm and fleet of foot. @@ -133,6 +166,7 @@ defence 20 experience 400 speed 2 SMART +HUMANOID monster goblin desc A short, scrawny humanoid with no love for surface folk. @@ -147,6 +181,7 @@ mdam 3 defence 3 experience 3 speed 1 +HUMANOID monster bad elf plural bad elves @@ -163,6 +198,7 @@ defence 8 experience 15 speed 2 SMART +HUMANOID monster troll desc Half again as tall as a tall Kafdaran, this lanky green-skinned humanoid is notorious for its indiscriminate appetite. Best do what you can to keep princess off the menu. @@ -178,6 +214,8 @@ defence 13 experience 150 speed 1 STUPID +HUMANOID +HUGE monster giant desc Half again as tall as a towering troll, and scarcely smarter. @@ -193,6 +231,8 @@ defence 20 experience 500 speed 1 STUPID +HUMANOID +HUGE monster giant jarl desc A rarity among giants, this one has used its great strength and unusually sharp wits to persuade its dimmer brethren to obey. @@ -207,6 +247,8 @@ mdam 30 defence 22 experience 1000 speed 1 +HUMANOID +HUGE monster wizard desc A practitioner of the arcane arts. Beware his command over the power of the storm! @@ -227,6 +269,7 @@ experience 200 speed 1 SMART MAGICIAN +HUMANOID monster archmage plural archmagi @@ -249,6 +292,7 @@ speed 1 SMART MAGICIAN RESIST_ELEC +HUMANOID monster zombie desc A half-rotted corpse, galvanized to a mockery of life by forbidden magic. @@ -268,6 +312,7 @@ UNDEAD RESIST_COLD RESIST_POIS RESIST_NECR +HUMANOID monster wraith desc The ethereal remnant of some long-dead unfortunate, wracked with eternal hunger for the light that shines within the living. No obstacle can bar its path. @@ -284,9 +329,11 @@ experience 100 speed 0 SMART UNDEAD +ETHEREAL RESIST_COLD RESIST_POIS RESIST_NECR +HUMANOID monster lich plural liches @@ -312,6 +359,7 @@ RESIST_COLD RESIST_POIS RESIST_NECR MAGICIAN +HUMANOID monster master lich plural master liches @@ -337,6 +385,7 @@ RESIST_COLD RESIST_POIS RESIST_NECR MAGICIAN +HUMANOID monster vampire desc A gaunt red-eyed figure with throat-tearing fangs, afflicted by an eternal hunger for the blood of the living. @@ -356,6 +405,25 @@ UNDEAD RESIST_COLD RESIST_POIS RESIST_NECR +HUMANOID + +monster fire imp +desc A small, bat-winged humanoid with a flame-tipped tail, spawned in some fiery corner of the Hells. +ascii '4' +utf8 "4" +colour red +rarity 60 +power 9 +hp 20 +mhit 10 +mdam 10 +defence 12 +experience 30 +speed 2 +DEMONIC +RESIST_FIRE +FLYING +HUMANOID monster demon desc A red-skinned and long-taloned horror spat up from some corner or other of the Hells. Presented with prey, it is quick to call its brethren into the world. @@ -373,6 +441,7 @@ speed 1 SMART DEMONIC RESIST_FIRE +HUMANOID monster defiler desc Whatever shape this hellish horror has, it can scarcely be seen through the foetid green haze that surrounds it. @@ -391,6 +460,61 @@ SMART DEMONIC MAGICIAN RESIST_POIS +AMORPHOUS + +monster putrid emissary +desc The stench of decay and pestilence hangs heavily around this misshapen figure in stained, half-rotted rags. It wields its scythe with an air of deadly purpose. +ascii '1' +utf8 "1" +colour l_green +rarity 90 +hp 250 +mhit 20 +mdam 20 +defence 20 +experience 5000 +speed 1 +SMART +DEMONIC +RESIST_POIS +HUMANOID + +monster tormentor +desc The faceless violet-skinned figure before you wears a strangely cut garment of pale, supple leather which would be far beyond the limits of decency if there were any indecent parts to reveal. With one hand it beckons to you, while from the other it trails a long whip of the same leather as its garment. +ascii '1' +utf8 "1" +colour purple +rarity 90 +hp 150 +mhit 50 +mdam 10 +defence 25 +experience 5000 +speed 2 +SMART +DEMONIC +RESIST_POIS +HUMANOID + +monster iron lord +desc This loyal and unwavering servant of Verant, Great Smith of the Hells, bears arms and armour from its master's forges. Fear the iron lord! +ascii '1' +utf8 "1" +colour iron +rarity 90 +hp 300 +mhit 30 +mdam 30 +defence 30 +experience 5000 +speed 1 +SMART +DEMONIC +RESIST_POIS +RESIST_FIRE +RESIST_COLD +RESIST_SLAM +HUMANOID monster centaur desc A strange magical hybrid of horse and man. @@ -405,6 +529,7 @@ mdam 10 defence 10 experience 50 speed 2 +CENTAUROID monster ice monster desc A ponderous, shambling half-humanoid figure of ice and snow. @@ -425,6 +550,7 @@ experience 35 speed 0 RESIST_COLD ARCHER +HUMANOID monster dragon desc A bulky beast of scales and fangs and fumes, capable of spewing searing flames to roast its enemies and rumoured to have a preference for char-grilled princess. @@ -445,6 +571,8 @@ experience 300 speed 1 RESIST_FIRE ARCHER +QUADRUPED +HUGE monster moondrake desc A bat-winged serpent with eyes that shimmer like quicksilver and a breath that chills the living to the bone. @@ -466,4 +594,6 @@ speed 2 RESIST_FIRE RESIST_COLD RESIST_NECR +FLYING ARCHER +SERPENTINE diff --git a/display-nc.cc b/display-nc.cc index d028419..65c1d92 100644 --- a/display-nc.cc +++ b/display-nc.cc @@ -1330,7 +1330,7 @@ void print_help(void) print_msg("? a scroll\n"); print_msg("! a potion\n"); print_msg("%% some food\n"); - print_msg("& a demon\n"); + print_msg("1-4 demons (smaller numbers are stronger)\n"); print_msg("\nMost other monsters are shown as letters.\n"); print_msg("\nThis is all the help you get. Good luck!\n"); } diff --git a/permon.hh b/permon.hh index aac0697..9b8c058 100644 --- a/permon.hh +++ b/permon.hh @@ -51,8 +51,16 @@ #define PMF_STUPID 0x00200000 #define PMF_ETHEREAL 0x00400000 #define PMF_FLYING 0x00800000 +#define PMF_HUMANOID 0x01000000 +#define PMF_CENTAUROID 0x02000000 +#define PMF_SERPENTINE 0x04000000 +#define PMF_AMORPHOUS 0x08000000 +#define PMF_QUADRUPED 0x10000000 +#define PMF_SKITTERISH 0x20000000 +#define PMF_HUGE 0x40000000 +#define PMF_SMALL 0x80000000 -#define PERMON_FLAG_FIELDS 1 +#define PERMON_FLAG_FIELDS 2 struct Permon { char const *name; char const *plural; @@ -89,16 +97,28 @@ extern bool pmon_is_archer(int pm); extern bool pmon_is_magician(int pm); extern bool pmon_is_smart(int pm); extern bool pmon_is_stupid(int pm); -extern bool pmon_is_undead(int pm); + extern bool pmon_resists_cold(int pm); extern bool pmon_resists_fire(int pm); extern bool pmon_resists_poison(int pm); extern bool pmon_resists_necro(int pm); extern bool pmon_resists_elec(int pm); extern bool pmon_resists_drowning(int pm); +extern bool pmon_resists_knockback(int pm); + extern bool pmon_can_fly(int pm); + extern bool pmon_is_ethereal(int pm); -extern bool pmon_resists_knockback(int pm); +extern bool pmon_is_undead(int pm); +extern bool pmon_is_demonic(int pm); + +extern bool pmon_has_hands(int pm); +extern bool pmon_is_humanoid(int pm); +extern bool pmon_is_quadruped(int pm); +extern bool pmon_is_skitterish(int pm); +extern bool pmon_is_amorphous(int pm); +extern bool pmon_is_huge(int pm); +extern bool pmon_is_small(int pm); #endif diff --git a/pmon_comp b/pmon_comp index ac55ef8..e2405e1 100755 --- a/pmon_comp +++ b/pmon_comp @@ -29,7 +29,15 @@ our %flag_indices = 'SMART' => 0, 'STUPID' => 0, 'ETHEREAL' => 0, - 'FLYING' => 0 + 'FLYING' => 0, + 'HUMANOID' => 0, + 'CENTAUROID' => 0, + 'SERPENTINE' => 0, + 'AMORPHOUS' => 0, + 'QUADRUPED' => 0, + 'SKITTERISH' => 0, + 'HUGE' => 0, + 'SMALL' => 0, ); -- 2.11.0