Page 1 of 1

New Monster Ideas

Posted: Tue Nov 09, 2010 4:51 pm
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},
	},
}

Re: New Monster Ideas

Posted: Tue Nov 09, 2010 6:46 pm
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(),
}

Re: New Monster Ideas

Posted: Tue Nov 09, 2010 8:57 pm
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,
}

Re: New Monster Ideas

Posted: Wed Nov 10, 2010 10:22 am
by darkgod
Added thanks!

Re: New Monster Ideas

Posted: Wed Nov 10, 2010 11:09 pm
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(),
}

Re: New Monster Ideas

Posted: Wed Nov 10, 2010 11:30 pm
by edge2054
And I'm pondering doing some gaze attack talents for these things too.

Stone gaze sounds like fun :twisted:

Re: New Monster Ideas

Posted: Thu Nov 11, 2010 3:11 pm
by darkgod
Added!

I made the eyes have less life than the main body, but they have no cooldown on their abilities :)

Re: New Monster Ideas

Posted: Thu Nov 11, 2010 4:10 pm
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?

Re: New Monster Ideas

Posted: Thu Nov 11, 2010 4:14 pm
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 :)

Re: New Monster Ideas

Posted: Thu Nov 11, 2010 4:26 pm
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.

Re: New Monster Ideas

Posted: Tue Nov 16, 2010 2:56 am
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,
}

Re: New Monster Ideas

Posted: Tue Nov 30, 2010 1:38 am
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},
	},
}

Re: New Monster Ideas

Posted: Tue Nov 30, 2010 9:35 pm
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.

Re: New Monster Ideas

Posted: Tue Nov 30, 2010 9:40 pm
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?

Re: New Monster Ideas

Posted: Tue Dec 07, 2010 5:08 pm
by darkgod
added