New Monster Ideas

All new ideas for the upcoming releases of ToME 4.x.x should be discussed here

Moderator: Moderator

Post Reply
Message
Author
edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

New Monster Ideas

#1 Post by edge2054 »

Figure it's easier to start one thread.

Here's a minor demon with Acidic Blood (the Reaver talent not the npc talent ;)) that hunts in packs.

Code: Select all

newEntity{ base = "BASE_NPC_DEMON",
	name = "wretchling", color=colors.GREEN,
	desc = "Acid oozes all over this small demon's skin.  Beware, they tend to hunt in packs.",
	level_range = {20, nil}, exp_worth = 1,
	rarity = 3,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	combat = {damtype=DamageType.ACID},

	resists={[DamageType.ACID] = 100},

	resolvers.talents{
		[Talents.T_RUSH]=6,
		[Talents.T_ACID_BLOOD]=3,
		[Talents.T_CORROSIVE_VAPOUR]=3,
	},
	
	make_escort = {
		{type="demon", subtype="minor", name="wretchling", number=3, no_subescort=true},
	},
}

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: New Monster Ideas

#2 Post by edge2054 »

Another horror.

Code: Select all

newEntity{ base = "BASE_NPC_HORROR",
	name = "bloated horror", color=colors.WHITE,
	desc ="A bulbous humanoid form floats here. It's bald, child-like head is disproportionately large compared to it's body and its skin is pock-marked in nasty red sores.",
	level_range = {30, nil}, exp_worth = 1,
	rarity = 3,
	rank = 2,
	size_category = 4,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	combat = {damtype=DamageType.PHYSICAL},
	
	never_move = 1,

	resists = {all = 35, [DamageType.LIGHT] = -30},

	resolvers.talents{
		[Talents.T_FEATHER_WIND]=5,
		[Talents.T_PHASE_DOOR]=2,
		[Talents.T_MIND_DISRUPTION]=4,
		[Talents.T_MIND_SEAR]=4,
		[Talents.T_TELEKINETIC_BLAST]=4,		
	},
	
	resolvers.sustains_at_birth(),
}

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: New Monster Ideas

#3 Post by edge2054 »

A shadow horror that does some fear stuff, passes walls, and stalks the player.

Code: Select all

newEntity{ base = "BASE_NPC_HORROR",
	name = "nightmare horror", color={0,0,0},
	desc ="A shifting form of darkest night that seems to reflect your deepest fears.",
	level_range = {30, nil}, exp_worth = 1,
	negative_regen = 10,
	rarity = 3,
	rank = 4,
	autolevel = "warriormage",
	stats = { str=15, dex=20, mag=20, wil=20, con=15 },
	combat_armor = 1, combat_def = 10,
	combat = { dam=20, atk=20, apr=50, dammod={str=0.6} },
	combat = {damtype=DamageType.DARKNESS},
	
	ai = "dumb_talented_simple", ai_state = { ai_target="target_player_radius", sense_radius=40, talent_in=2, },
	
	can_pass = {pass_wall=70},
	resists = {all = 35, [DamageType.LIGHT] = -50, [DamageType.DARKNESS] = 100},
	
	blind_immune = 1,
	see_invisible = 80,
	no_breath = 1,
	
	resolvers.talents{
		[Talents.T_STALK]=5,
		[Talents.T_GLOOM]=3,
		[Talents.T_WEAKNESS]=3,
		[Talents.T_TORMENT]=3,
		[Talents.T_DOMINATE]=3,
		[Talents.T_BLINDSIDE]=3,
		[Talents.T_LIFE_LEECH]=5,
		[Talents.T_SHADOW_BLAST]=5,
		[Talents.T_HYMN_OF_SHADOWS]=5,
	},
	
	resolvers.sustains_at_birth(),
}
And here's the base horror template if anyone else wants to contribute.

Code: Select all

newEntity{
	define_as = "BASE_NPC_HORROR",
	type = "horror", subtype = "eldritch",
	display = "h", color=colors.WHITE,
	body = { INVEN = 10 },
	autolevel = "warrior",
	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, },

	stats = { str=22, dex=20, wil=15, con=15 },
	energy = { mod=1 },
	combat_armor = 0, combat_def = 0,
	combat = { dam=5, atk=15, apr=7, dammod={str=0.6} },
	infravision = 20,
	max_life = resolvers.rngavg(10,20),
	rank = 2,
	size_category = 3,
}

darkgod
Master of Eyal
Posts: 10750
Joined: Wed Jul 24, 2002 9:26 pm
Location: Angolwen
Contact:

Re: New Monster Ideas

#4 Post by darkgod »

Added thanks!
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: New Monster Ideas

#5 Post by edge2054 »

These need to be linked and what not but hopefully this will get you started.

Code: Select all

newEntity{ base = "BASE_NPC_HORROR",
	name = "headless horror", color=colors.TAN,
	desc ="A headless gangly humanoid with a large distended stomach.",
	level_range = {30, nil}, exp_worth = 1,
	rarity = 3,
	rank = 4,
	autolevel = "warrior",
	ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, },
	combat = { dam=20, atk=20, apr=10, dammod={str=1} },
	combat = {damtype=DamageType.PHYSICAL},
	
	-- Should get resists based on eyes generated, 30% all per eye and 100% to the eyes element.  Should lose said resists when the eyes die.
	resists = 
	
	-- Should be blind but see through the eye escorts
	blind= 1,
		
	resolvers.talents{
		[Talents.T_MANA_CLASH]=5,
		[Talents.T_GRAB]=5,
	},

	make_escort = {
		{type="horror", subtype="eldritch", name="eldritch eye", number=3},
	},
	
	-- Needs an on death affect that kills off any remaining eyes.	
	die = function(self, src)
	end,
}
And the eyes... note they have no rarity field so they won't generate without the horror. If they did they'd need to have more talents.

Code: Select all

newEntity{ base = "BASE_NPC_HORROR",
	--fire
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.FIRE] = 80},

	resolvers.talents{
		[Talents.T_BURNING_HEX]=3,
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--cold
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.COLD] = 80},

	resolvers.talents{
		[Talents.T_FREEZE]=3,
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--earth
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.PHYSICAL] = 80},

	resolvers.talents{
		[Talents.T_STRIKE]=3,
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--arcane
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.ARCANE] = 80},

	resolvers.talents{
		[Talents.T_MANATHRUST]=3,
	
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--acid
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.ACID] = 80},

	resolvers.talents{
		[Talents.T_HYDRA]=3,
	
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--dark
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.DARKNESS] = 80},

	resolvers.talents{
		[Talents.T_CURSE_OF_DEATH]=3,
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--light
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.LIGHT] = 80},

	resolvers.talents{
		[Talents.T_SEARING_LIGHT]=3,
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--lightning
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.LIGHTNING] = 80},

	resolvers.talents{
		[Talents.T_LIGHTNING_BOLT]=3,
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--blight
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.BLIGHT] = 80},

	resolvers.talents{
		[Talents.T_VIRULENT_DISEASE]=3,
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--nature
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.NATURE] = 80},

	resolvers.talents{
		[Talents.T_SPIT_POISON]=3,
	},
	
	resolvers.sustains_at_birth(),
}

newEntity{ base = "BASE_NPC_HORROR",
	--mind
	name = "eldritch eye", color=colors.SLATE,
	desc ="A small bloadshot eye floats here.",
	level_range = {30, nil}, exp_worth = 1,
	rank = 2,
	size_category = 1,
	autolevel = "caster",
	combat_armor = 1, combat_def = 0,
	
	levitation = 1
	
	resists = {[DamageType.MIND] = 80},

	resolvers.talents{
		[Talents.T_MIND_DISRUPTION]=3,
	},
	
	resolvers.sustains_at_birth(),
}

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: New Monster Ideas

#6 Post by edge2054 »

And I'm pondering doing some gaze attack talents for these things too.

Stone gaze sounds like fun :twisted:

darkgod
Master of Eyal
Posts: 10750
Joined: Wed Jul 24, 2002 9:26 pm
Location: Angolwen
Contact:

Re: New Monster Ideas

#7 Post by darkgod »

Added!

I made the eyes have less life than the main body, but they have no cooldown on their abilities :)
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: New Monster Ideas

#8 Post by edge2054 »

Hmm... some of the talents I chose would be to strong without cooldowns and some to weak (burning hex spammed, meh... confusion or hydra spam... ouch.)

Maybe each should have an attack with zero cooldown and something else on it's normal cooldown?

For instance we could do up a few new talents such as stone gaze for the earth one (on cooldown) and a ranged acid splash (off cooldown) for the acid one.

What do you think?

darkgod
Master of Eyal
Posts: 10750
Joined: Wed Jul 24, 2002 9:26 pm
Location: Angolwen
Contact:

Re: New Monster Ideas

#9 Post by darkgod »

Dunno it seems fine this way.
For stuff like burning hex, this just means the hex will never drop as long as you are in view, which sounds fitting.
For hydra summon since the eye has low cun it can only summon one. So this just replaces the one you kill as soon as you do :)
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: New Monster Ideas

#10 Post by edge2054 »

Ahh.. fair enough on the hydra summon thing. That was the one I was most concerned with.

The confusion will still be brutal but that's alright.

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: New Monster Ideas

#11 Post by edge2054 »

Some new sandworms so the sandworm dragon's liar isn't such a walk in the park. Note these all generate at level 20+ so they probably won't show up in the sandworm liar.

Also that on death effect the last one has might be appropriate for the Wretchling minor demons I posted the other day (but with damage based off magic instead of strength).

Code: Select all

newEntity{ base = "BASE_NPC_SANDWORM",
	name = "Gigantic Sandworm Tunneler", color=colors.LIGHT_UMBER,
	desc = "The ground shakes as this huge worm burrows towards you, it's gigantic mouth just as capable of devouring flesh as stone.",
	level_range = {20, nil}, exp_worth = 1,
	rarity = 3,
	size_category = 4,
	max_life = 120, life_rating = 10,
	combat_armor = 1, combat_def = 0,
	combat = { dam=resolvers.mbonus(25, 15), atk=15, apr=0, dammod={str=1} },
	
	ai = "dumb_talented_simple", ai_state = { ai_target="target_player_radius", sense_radius=6, talent_in=3, },
	stats = { str=30, dex=7, mag=3, con=3 },
	
	no_breath = 1,
	
	move_project = {[DamageType.DIG]=1},
	resolvers.talents{
		[Talents.T_RUSH]=5,
		[Talents.T_GRAB]=5,
	},
}

newEntity{ base = "BASE_NPC_SANDWORM",
	name = "Gigantic Gravity Worm", color=colors.UMBER,
	desc = "Space and time seem to bend around this huge worm.",
	level_range = {20, nil}, exp_worth = 1,
	rarity = 5,
	max_life = 100, life_rating = 10,
	combat_armor = 1, combat_def = 0,
	combat = { dam=resolvers.mbonus(25, 15), atk=15, apr=0, dammod={str=1} },
	resists={[DamageType.PHYSICAL] = 50},

	stats = { str=20, dex=7, mag=30, con=3 },
	
	resolvers.talents{
		[Talents.T_CRUSHING_WEIGHT]=5,
		[Talents.T_GRAVITY_SPIKE]=5,
		[Talents.T_DAMAGE_SMEARING]=5,
	},
}

newEntity{ base = "BASE_NPC_SANDWORM",
	name = "Gigantic Corrosive Tunneler", color=colors.GREEN,
	desc = "This huge worm burrows through the earth using it's powerful corrosive saliva.",
	level_range = {20, nil}, exp_worth = 1,
	rarity = 4,
	size_category = 4,
	max_life = 80, life_rating = 10,
	combat_armor = 1, combat_def = 0,
	combat = { dam=resolvers.mbonus(25, 15), atk=15, apr=50, damtype=DamageType.ACID, dammod={str=1} },
	resists={[DamageType.ACID] = 100},
	
	ai = "dumb_talented_simple", ai_state = { ai_target="target_player_radius", sense_radius=6, talent_in=3, },
	stats = { str=30, dex=7, mag=3, con=3 },
	
	no_breath = 1,
	
	move_project = {[DamageType.DIG]=1},
	resolvers.talents{
		[Talents.T_ACID_BLOOD]=3,
	},
	
	on_die = function(self, src)
		game.level.map:addEffect(self,
		self.x, self.y, 5,
		DamageType.ACID, self:getStr()/2,
		3,
		5, nil,
		{type="vapour"},
		nil, self:spellFriendlyFire()
		)
	end,
}

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: New Monster Ideas

#12 Post by edge2054 »

Here's some creatures that deal light damage. Note that the second one (Radiant Horror) uses one of the new Anorithil talents so it's commented out for now. Also note that the Radiant Horror is Wyrm power level without summons so you may or may not want to nerf it.

Code: Select all

newEntity{ base = "BASE_NPC_HORROR",
	name = "luminous horror", color=colors.YELLOW,
	desc ="A lanky humanoid shape composed of yellow light.",
	level_range = {20, nil}, exp_worth = 1,
	rarity = 2,
	autolevel = "warriormage",
	combat_armor = 1, combat_def = 10,
	combat = { dam=5, atk=15, apr=20, dammod={wil=0.6}, damtype=DamageType.LIGHT},

	resists = {all = 35, [DamageType.DARKNESS] = -50, [DamageType.LIGHT] = 100, [DamageType.FIRE] = 100},

	blind_immune = 1,
	see_invisible = 10,

	resolvers.talents{
		[Talents.T_CHANT_OF_FORTITUDE]=3,
		[Talents.T_SEARING_LIGHT]=3,
		[Talents.T_FIREBEAM]=3,
		[Talents.T_PROVIDENCE]=3,
		[Talents.T_HEALNG_LIGHT]=3,
		[Talents.T_BARRIER]=3,		
	},

	resolvers.sustains_at_birth(),
	
	make_escort = {
		{type="horror", subtype="eldritch", name="luminous horror", number=2},
	},
}

newEntity{ base = "BASE_NPC_HORROR",
	name = "radiant horror", color=colors.GOLD,
	desc ="A lanky four-armed humanoid shape composed of bright golden light.  It's so bright it's hard to look at and you can feel heat radiating outward from it.",
	level_range = {35, nil}, exp_worth = 1,
	rarity = 8,
	rank = 3,
	autolevel = "warriormage",
	max_life = resolvers.rngavg(220,250),
	combat_armor = 1, combat_def = 10,
	combat = { dam=20, atk=30, apr=40, dammod={wil=1}, damtype=DamageType.LIGHT},

	resists = {all = 50, [DamageType.DARKNESS] = -50, [DamageType.LIGHT] = 100, [DamageType.FIRE] = 100},

	blind_immune = 1,
	see_invisible = 20,

	resolvers.talents{
		[Talents.T_CHANT_OF_FORTITUDE]=10,
	--	[Talents.T_CIRCLE_OF_BLAZING_LIGHT]=10,
		[Talents.T_SEARING_LIGHT]=10,
		[Talents.T_FIREBEAM]=10,
		[Talents.T_SUNBURST]=10,
		[Talents.T_SUN_FLARE]=10,	
		[Talents.T_PROVIDENCE]=10,
		[Talents.T_HEALNG_LIGHT]=10,
		[Talents.T_BARRIER]=10,				
	},

	resolvers.sustains_at_birth(),

	make_escort = {
		{type="horror", subtype="eldritch", name="luminous horror", number=1},
	},
}

Grey
Loremaster
Posts: 3517
Joined: Thu Sep 23, 2010 10:18 pm
Location: London, England
Contact:

Re: New Monster Ideas

#13 Post by Grey »

Any way of giving the horrors an aura of light? Would make them easily spottable from a distance, but would add to the spooky feel.
http://www.gamesofgrey.com - My own T-Engine games!
Roguelike Radio - A podcast about roguelikes

Sirrocco
Sher'Tul
Posts: 1059
Joined: Fri Apr 23, 2010 4:56 am

Re: New Monster Ideas

#14 Post by Sirrocco »

On the flip side, would it be possible to create a monster who could not be harmed (or who was far harder to harm, or whatever) when standing in unlit squares?

darkgod
Master of Eyal
Posts: 10750
Joined: Wed Jul 24, 2002 9:26 pm
Location: Angolwen
Contact:

Re: New Monster Ideas

#15 Post by darkgod »

added
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)

Post Reply