Skip to content
Snippets Groups Projects
Commit 787174f9 authored by Hachem_Muche's avatar Hachem_Muche
Browse files

Class Descriptors updated with inventory filters:

Spellpower based casters (Anorithil, Paradox Mage, Archmage, Alchemist, Necromancer, Corruptor):
MAINHAND: staff
OFFHAND: none unless a 1H weapon is equipped in MAINHAND
Alchemist:
QUIVER: alchemist-gem

Oozemancer, Summoner, Doomed:
MAINHAND/OFFHAND: mindstars

Stone Warden:
MAINHAND/OFFHAND: shield or weapon with the block combat field

Brawler:
MAINHAND/OFFHAND: unarmed

Reaver:
MAINHAND/OFFHAND: 1H weapon

Archer:
MAINHAND: Archery weapon
QUIVER: Ammo must match type of MAINHAND weapon

Temporal Warden:
MAINHAND: longbow
OFFHAND: none
QUIVER: Ammo must match type of MAINHAND weapon
QS_MAINHAND: 1H weapon

Sun Paladin, Bullwark:
MAINHAND: 1H weapon
OFFHAND: shield or weapon with the block combat field

Berzerker:
MAINHAND: 2H weapon
OFFHAND: unarmed

Rogue, Shadowblade, Marauder:
MAINHAND/OFFHAND: dagger
Rogue, Shadowblade:
BODY: light or cloth armor

Skirmisher:
MAINHAND: sling
OFFHAND: shield or weapon with the block combat field
QUIVER: Ammo must match type of MAINHAND weapon

Some NPC Entity updates:
Bosses in Trollmire, The Maze, Daikara, Dreadfell, Elven Ruins, High Peak, Orc Prides,
Assassin Lord, Tannen, Golbug, Corrupted Oozemancer,
Some major and minor demons, various caster npcs, many orcs, thieves, minotaurs, yaechs, naga
parent 6fc7a145
No related branches found
No related tags found
1 merge request!455Object resolvers update
Showing
with 198 additions and 12 deletions
......@@ -148,6 +148,10 @@ newBirthDescriptor{
},
copy = {
max_life = 90,
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="mindstar"},
OFFHAND = {type="weapon", subtype="mindstar"},
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="mindstar", name="mossy mindstar", autoreq=true, ego_chance=-1000},
{type="weapon", subtype="mindstar", name="mossy mindstar", autoreq=true, ego_chance=-1000},
......
......@@ -49,6 +49,11 @@ newBirthDescriptor{
},
}
local shield_special = function(e) -- allows any object with shield combat
local combat = e.shield_normal_combat and e.combat or e.special_combat
return combat and combat.block
end
newBirthDescriptor{
type = "subclass",
name = "Sun Paladin",
......@@ -91,6 +96,11 @@ newBirthDescriptor{
},
copy = {
max_life = 110,
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", not_properties={"twohanded"}},
OFFHAND = {special=shield_special},
BODY = {type="armor", special=function(e) return e.subtype=="heavy" or e.subtype=="massive" end},
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="mace", name="iron mace", autoreq=true, ego_chance=-1000},
{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000},
......@@ -145,9 +155,20 @@ newBirthDescriptor{
},
copy = {
max_life = 90,
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="staff"},
OFFHAND = {special=function(e, filter) -- only allow if there is a 1H weapon in MAINHAND
local who = filter._equipping_entity
if who then
local mh = who:getInven(who.INVEN_MAINHAND) mh = mh and mh[1]
if mh and (not mh.slot_forbid or not who:slotForbidCheck(e, who.INVEN_MAINHAND)) then return true end
end
return false
end}
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000}
{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
},
},
}
......@@ -127,6 +127,17 @@ newBirthDescriptor{
},
copy = {
max_life = 90,
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="staff"},
OFFHAND = {special=function(e, filter) -- only allow if there is a 1H weapon in MAINHAND
local who = filter._equipping_entity
if who then
local mh = who:getInven(who.INVEN_MAINHAND) mh = mh and mh[1]
if mh and (not mh.slot_forbid or not who:slotForbidCheck(e, who.INVEN_MAINHAND)) then return true end
end
return false
end}
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
......@@ -200,6 +211,15 @@ newBirthDescriptor{
},
copy = {
max_life = 100,
resolvers.auto_equip_filters{MAINHAND = {type="weapon", subtype="longbow"},
OFFHAND = {type="none"},
QUIVER={properties={"archery_ammo"}, special=function(e, filter) -- must match the MAINHAND weapon, if any
local mh = filter._equipping_entity and filter._equipping_entity:getInven(filter._equipping_entity.INVEN_MAINHAND)
mh = mh and mh[1]
if not mh or mh.archery == e.archery_ammo then return true end
end},
QS_MAINHAND = {type="weapon", not_properties={"twohanded"}},
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="longbow", name="elm longbow", autoreq=true, ego_chance=-1000},
{type="ammo", subtype="arrow", name="quiver of elm arrows", autoreq=true, ego_chance=-1000},
......
......@@ -82,6 +82,10 @@ newBirthDescriptor{
[ActorTalents.T_REND] = 1,
},
copy = {
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", not_properties={"twohanded"}},
OFFHAND = {type="weapon", not_properties={"twohanded"}}
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true, ego_chance=-1000},
{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true, ego_chance=-1000},
......@@ -135,6 +139,17 @@ newBirthDescriptor{
[ActorTalents.T_PACIFICATION_HEX] = 1,
},
copy = {
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="staff"},
OFFHAND = {special=function(e, filter) -- only allow if there is a 1H weapon in MAINHAND
local who = filter._equipping_entity
if who then
local mh = who:getInven(who.INVEN_MAINHAND) mh = mh and mh[1]
if mh and (not mh.slot_forbid or not who:slotForbidCheck(e, who.INVEN_MAINHAND)) then return true end
end
return false
end}
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000}
......
......@@ -19,6 +19,18 @@
local Particles = require "engine.Particles"
local mage_equip_filters = resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="staff"},
OFFHAND = {special=function(e, filter) -- only allow if there is a 1H weapon in MAINHAND
local who = filter._equipping_entity
if who then
local mh = who:getInven(who.INVEN_MAINHAND) mh = mh and mh[1]
if mh and (not mh.slot_forbid or not who:slotForbidCheck(e, who.INVEN_MAINHAND)) then return true end
end
return false
end}
},
newBirthDescriptor{
type = "class",
name = "Mage",
......@@ -87,6 +99,8 @@ newBirthDescriptor{
},
copy = {
max_life = 90,
mage_equip_filters,
resolvers.auto_equip_filters{QUIVER = {type="alchemist-gem"}},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000}
......@@ -213,6 +227,7 @@ newBirthDescriptor{
end,
max_life = 90,
mage_equip_filters,
resolvers.equipbirth{ id=true,
{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
......@@ -279,9 +294,9 @@ newBirthDescriptor{
copy = {
soul = 1,
max_life = 90,
mage_equip_filters,
resolvers.equipbirth{ id=true,
{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
-- {type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
},
},
......
......@@ -83,6 +83,11 @@ newBirthDescriptor{
[ActorTalents.T_WEAPON_COMBAT] = 1,
},
copy = {
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="dagger"},
OFFHAND = {type="weapon", subtype="dagger"},
BODY = {type="armor", special=function(e) return e.subtype=="light" or e.subtype=="cloth" end},
},
equipment = resolvers.equipbirth{ id=true,
{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
......@@ -147,6 +152,11 @@ newBirthDescriptor{
},
copy = {
resolvers.inscription("RUNE:_MANASURGE", {cooldown=25, dur=10, mana=620}),
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="dagger"},
OFFHAND = {type="weapon", subtype="dagger"},
BODY = {type="armor", special=function(e) return e.subtype=="light" or e.subtype=="cloth" end},
},
equipment = resolvers.equipbirth{ id=true,
{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
......@@ -197,6 +207,10 @@ newBirthDescriptor{
[ActorTalents.T_ARMOUR_TRAINING] = 1,
},
copy = {
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="dagger"},
OFFHAND = {type="weapon", subtype="dagger"}
},
equipment = resolvers.equipbirth{ id=true,
{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
......@@ -206,6 +220,11 @@ newBirthDescriptor{
},
}
local shield_special = function(e) -- allows any object with shield combat
local combat = e.shield_normal_combat and e.combat or e.special_combat
return combat and combat.block
end
newBirthDescriptor{
type = "subclass",
name = "Skirmisher",
......@@ -249,11 +268,20 @@ newBirthDescriptor{
[ActorTalents.T_WEAPON_COMBAT] = 1,
},
copy = {
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="sling"},
OFFHAND = {special=shield_special},
QUIVER={properties={"archery_ammo"}, special=function(e, filter) -- must match the MAINHAND weapon, if any
local mh = filter._equipping_entity and filter._equipping_entity:getInven(filter._equipping_entity.INVEN_MAINHAND)
mh = mh and mh[1]
if not mh or mh.archery == e.archery_ammo then return true end
end}
},
resolvers.equipbirth{
id=true,
{type="armor", subtype="light", name="rough leather armour", autoreq=true,ego_chance=-1000},
{type="weapon", subtype="sling", name="rough leather sling", autoreq=true, ego_chance=-1000},
{type="armor", subtype="shield", name="iron shield", autoreq=false, ego_chance=-1000, ego_chance=-1000},
{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000},
{type="ammo", subtype="shot", name="pouch of iron shots", autoreq=true, ego_chance=-1000},
},
resolvers.generic(function(e)
......
......@@ -84,6 +84,10 @@ newBirthDescriptor{
[ActorTalents.T_ARMOUR_TRAINING] = 1,
},
copy = {
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", properties={"twohanded"}},
OFFHAND = {type="none"}
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true, ego_chance=-1000, ego_chance=-1000},
{type="armor", subtype="heavy", name="iron mail armour", autoreq=true, ego_chance=-1000, ego_chance=-1000},
......@@ -94,6 +98,11 @@ newBirthDescriptor{
},
}
local shield_special = function(e) -- allows any object with shield combat
local combat = e.shield_normal_combat and e.combat or e.special_combat
return combat and combat.block
end
newBirthDescriptor{
type = "subclass",
name = "Bulwark",
......@@ -137,6 +146,11 @@ newBirthDescriptor{
[ActorTalents.T_WEAPONS_MASTERY] = 1,
},
copy = {
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", not_properties={"twohanded"}},
OFFHAND = {special=shield_special},
BODY = {type="armor", special=function(e) return e.subtype=="heavy" or e.subtype=="massive" end},
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="longsword", name="iron longsword", autoreq=true, ego_chance=-1000, ego_chance=-1000},
{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000, ego_chance=-1000},
......@@ -188,6 +202,13 @@ newBirthDescriptor{
},
copy = {
max_life = 110,
resolvers.auto_equip_filters{MAINHAND = {type="weapon", properties={"archery"}},
QUIVER={properties={"archery_ammo"}, special=function(e, filter) -- must match the MAINHAND weapon, if any
local mh = filter._equipping_entity and filter._equipping_entity:getInven(filter._equipping_entity.INVEN_MAINHAND)
mh = mh and mh[1]
if not mh or mh.archery == e.archery_ammo then return true end
end}
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="longbow", name="elm longbow", autoreq=true, ego_chance=-1000},
{type="ammo", subtype="arrow", name="quiver of elm arrows", autoreq=true, ego_chance=-1000},
......@@ -317,7 +338,9 @@ newBirthDescriptor{
[ActorTalents.T_UNARMED_MASTERY] = 1, -- early game is absolutely stupid without this
},
copy = {
no_npc_weapon_equip = true, -- avoids randbosses equipping weapons from their inventory
resolvers.auto_equip_filters{-- will not try to equip weapons on birth
MAINHAND = {type="none"}, OFFHAND = {type="none"}
},
resolvers.equipbirth{ id=true,
{type="armor", subtype="hands", name="iron gauntlets", autoreq=true, ego_chance=-1000, ego_chance=-1000},
{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000, ego_chance=-1000},
......@@ -331,5 +354,3 @@ newBirthDescriptor{
},
}
......@@ -94,6 +94,10 @@ newBirthDescriptor{
},
copy = {
max_life = 90,
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="mindstar"},
OFFHAND = {type="weapon", subtype="mindstar"},
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="mindstar", name="mossy mindstar", autoreq=true, ego_chance=-1000},
{type="weapon", subtype="mindstar", name="mossy mindstar", autoreq=true, ego_chance=-1000},
......@@ -220,6 +224,10 @@ newBirthDescriptor{
copy = {
forbid_arcane = 2,
max_life = 90,
resolvers.auto_equip_filters{
MAINHAND = {type="weapon", subtype="mindstar"},
OFFHAND = {type="weapon", subtype="mindstar"},
},
resolvers.equipbirth{ id=true,
{type="weapon", subtype="mindstar", name="mossy mindstar", autoreq=true, ego_chance=-1000},
{type="weapon", subtype="mindstar", name="mossy mindstar", autoreq=true, ego_chance=-1000},
......@@ -231,6 +239,11 @@ newBirthDescriptor{
},
}
local shield_special = function(e) -- allows any object with shield combat
local combat = e.shield_normal_combat and e.combat or e.special_combat
return combat and combat.block
end
newBirthDescriptor{
type = "subclass",
name = "Stone Warden",
......@@ -275,6 +288,10 @@ newBirthDescriptor{
},
copy = {
max_life = 110,
resolvers.auto_equip_filters{
MAINHAND = {special=shield_special},
OFFHAND = {special=shield_special}
},
resolvers.equipbirth{ id=true,
{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000, ego_chance=-1000},
{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000, ego_chance=-1000},
......
......@@ -52,6 +52,29 @@ newBirthDescriptor{
random_escort_possibilities = { {"tier1.1", 1, 2}, {"tier1.2", 1, 2}, {"daikara", 1, 2}, {"old-forest", 1, 4}, {"dreadfell", 1, 8}, {"reknor", 1, 2}, },
moddable_attachement_spots = "race_dwarf",
cosmetic_unlock = { -- debugging temporary
cosmetic_race_dwarf_female_beard = {
{priority=2, name="Beard [donator only]", donator=true, on_actor=function(actor) if actor.moddable_tile then actor.moddable_tile_ornament={female="beard_"..(actor.is_redhead and "redhead_" or "").."01"} end end, check=function(birth) return birth.descriptors_by_type.sex == "Female" end},
{priority=2, name="Sideburns [donator only]", donator=true, on_actor=function(actor) if actor.moddable_tile then actor.moddable_tile_ornament={female="sideburners_"..(actor.is_redhead and "redhead_" or "").."01"} end end, check=function(birth) return birth.descriptors_by_type.sex == "Female" end},
{priority=2, name="Mustache [donator only]", donator=true, on_actor=function(actor) if actor.moddable_tile then actor.moddable_tile_ornament={female="mustache_"..(actor.is_redhead and "redhead_" or "").."01"} end end, check=function(birth) return birth.descriptors_by_type.sex == "Female" end},
{priority=2, name="Flip [donator only]", donator=true, on_actor=function(actor) if actor.moddable_tile then actor.moddable_tile_ornament={female="flip_"..(actor.is_redhead and "redhead_" or "").."01"} end end, check=function(birth) return birth.descriptors_by_type.sex == "Female" end},
{priority=2, name="Donut [donator only]", donator=true, on_actor=function(actor) if actor.moddable_tile then actor.moddable_tile_ornament={female="donut_"..(actor.is_redhead and "redhead_" or "").."01"} end end, check=function(birth) return birth.descriptors_by_type.sex == "Female" end},
},
cosmetic_race_human_redhead = {
{priority=1, name="Redhead [donator only]", donator=true, reset=function(actor) actor.is_redhead=false end, on_actor=function(actor) if actor.moddable_tile then actor.is_redhead = true actor.moddable_tile_base = "base_redhead_01.png" actor.moddable_tile_ornament2={male="beard_redhead_02"} end end, check=function(birth) return birth.descriptors_by_type.sex == "Male" end},
{priority=1, name="Redhead [donator only]", donator=true, reset=function(actor) actor.is_redhead=false end, on_actor=function(actor) if actor.moddable_tile then actor.is_redhead = true actor.is_redhead = true actor.moddable_tile_base = "base_redhead_01.png" actor.moddable_tile_ornament2={female="braid_redhead_01"} end end, check=function(birth) return birth.descriptors_by_type.sex == "Female" end},
},
cosmetic_bikini = {
{name="Bikini [donator only]", donator=true, on_actor=function(actor, birther, last)
if not last then local o = birther.obj_list_by_name.Bikini if not o then print("No bikini found!") return end actor:getInven(actor.INVEN_BODY)[1] = o:cloneFull()
else actor:registerOnBirthForceWear("FUN_BIKINI") end
end, check=function(birth) return birth.descriptors_by_type.sex == "Female" end},
{name="Mankini [donator only]", donator=true, on_actor=function(actor, birther, last)
if not last then local o = birther.obj_list_by_name.Mankini if not o then print("No mankini found!") return end actor:getInven(actor.INVEN_BODY)[1] = o:cloneFull()
else actor:registerOnBirthForceWear("FUN_MANKINI") end
end, check=function(birth) return birth.descriptors_by_type.sex == "Male" end},
},
},
}
---------------------------------------------------------
......
......@@ -44,6 +44,7 @@ newEntity{
resolvers.racial(),
resolvers.talents{ [Talents.T_ARMOUR_TRAINING]=1, },
resolvers.auto_equip_filters("Archmage"),
autolevel = "caster",
ai = "dumb_talented_simple", ai_state = { ai_move="move_complex", talent_in=1, },
......
......@@ -177,6 +177,7 @@ It moves swiftly toward you, casting terrible spells and swinging its weapons at
ai = "tactical",
resolvers.auto_equip_filters("Reaver"),
resolvers.equip{ {type="weapon", subtype="longsword", forbid_power_source={antimagic=true}, autoreq=true}, },
resolvers.equip{ {type="weapon", subtype="waraxe", forbid_power_source={antimagic=true}, autoreq=true}, },
......@@ -219,6 +220,7 @@ newEntity{ base = "BASE_NPC_MAJOR_DEMON",
combat_dam = resolvers.levelup(resolvers.mbonus(40, 20), 1, 2),
resolvers.auto_equip_filters{MAINHAND = {properties = {"twohanded"}}, },
resolvers.equip{ {type="weapon", subtype="greatsword", autoreq=true}, },
resists={all = resolvers.mbonus(25, 20)},
......@@ -259,6 +261,7 @@ newEntity{ base = "BASE_NPC_MAJOR_DEMON",
ai = "tactical",
resolvers.auto_equip_filters("Reaver"),
resolvers.equip{ {type="weapon", subtype="mace", forbid_power_source={antimagic=true}, autoreq=true}, },
resolvers.equip{ {type="weapon", subtype="mace", forbid_power_source={antimagic=true}, autoreq=true}, },
......@@ -306,6 +309,7 @@ newEntity{ base = "BASE_NPC_MAJOR_DEMON",
ai = "tactical",
resolvers.auto_equip_filters{MAINHAND = {properties = {"twohanded"}}, },
resolvers.equip{ {type="weapon", subtype="battleaxe", defined="KHULMANAR_WRATH", random_art_replace={chance=30}, autoreq=true, force_drop=true}, },
resists={[DamageType.PHYSICAL] = resolvers.mbonus(8, 8), [DamageType.FIRE] = 100},
......
......@@ -106,6 +106,7 @@ newEntity{ base = "BASE_NPC_DEMON",
[Talents.T_OVERPOWER]={base=1, every=6, max=5},
[Talents.T_RUSH]=6,
},
resolvers.auto_equip_filters("Bulwark"),
resolvers.equip{
{type="weapon", subtype="longsword", autoreq=true},
{type="armor", subtype="shield", autoreq=true},
......
......@@ -17,8 +17,6 @@
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
-- last updated: 11:56 AM 2/5/2010
local Talents = require("engine.interface.ActorTalents")
newEntity{
......@@ -60,6 +58,7 @@ newEntity{ base = "BASE_NPC_MINOTAUR",
name = "minotaur", color=colors.UMBER,
resolvers.nice_tile{image="invis.png", add_mos = {{image="npc/giant_minotaur_minotaur.png", display_h=2, display_y=-1}}},
desc = [[It is a cross between a human and a bull.]],
resolvers.auto_equip_filters{"Berserker"},
resolvers.equip{ {type="weapon", subtype="battleaxe", autoreq=true}, },
level_range = {10, nil}, exp_worth = 1,
rarity = 1,
......@@ -79,7 +78,8 @@ newEntity{ base = "BASE_NPC_MINOTAUR",
level_range = {20, nil}, exp_worth = 1,
rarity = 4,
combat_armor = 15, combat_def = 7,
resolvers.equip{ {type="weapon", subtype="maul", forbid_power_source={antimagic=true}, autoreq=true} },
resolvers.auto_equip_filters{MAINHAND = {type="weapon", subtype="greatmaul"}, },
resolvers.equip{ {type="weapon", subtype="greatmaul", forbid_power_source={antimagic=true}, autoreq=true} },
autolevel = "caster",
resists = { [DamageType.FIRE] = 100 },
......
......@@ -55,6 +55,7 @@ newEntity{ base = "BASE_NPC_NAGA",
level_range = {30, nil}, exp_worth = 1,
rarity = 1,
max_life = resolvers.rngavg(120,150), life_rating = 16,
resolvers.auto_equip_filters{MAINHAND = {subtype="trident"},},
resolvers.equip{
{type="weapon", subtype="trident", autoreq=true, force_drop=true, special_rarity="trident_rarity"},
},
......@@ -77,6 +78,9 @@ newEntity{ base = "BASE_NPC_NAGA",
rank = 3,
female = true,
max_life = resolvers.rngavg(110,130), life_rating = 14,
resolvers.auto_equip_filters{MAINHAND = {subtype="longbow"},
QUIVER = {subtype="arrow"},
},
resolvers.equip{
{type="weapon", subtype="longbow", autoreq=true},
{type="ammo", subtype="arrow", autoreq=true},
......
......@@ -55,6 +55,7 @@ newEntity{ base = "BASE_NPC_ORC_GRUSHNAK",
level_range = {30, nil}, exp_worth = 1,
rarity = 1,
max_life = resolvers.rngavg(110,120), life_rating = 14,
resolvers.auto_equip_filters{"Bulwark"},
resolvers.equip{
{type="weapon", subtype="waraxe", autoreq=true},
{type="armor", subtype="shield", autoreq=true},
......@@ -80,6 +81,7 @@ newEntity{ base = "BASE_NPC_ORC_GRUSHNAK",
rarity = 3,
rank = 3,
max_life = resolvers.rngavg(170,180), life_rating = 14,
resolvers.auto_equip_filters{"Bulwark"},
resolvers.equip{
{type="weapon", subtype="waraxe", autoreq=true},
{type="armor", subtype="shield", autoreq=true},
......@@ -110,6 +112,7 @@ newEntity{ base = "BASE_NPC_ORC_GRUSHNAK",
level_range = {35, nil}, exp_worth = 1,
rarity = 1,
max_life = resolvers.rngavg(110,120), life_rating = 14,
resolvers.auto_equip_filters{"Berserker"},
resolvers.equip{
{type="weapon", subtype="battleaxe", autoreq=true},
{type="armor", subtype="massive", autoreq=true},
......@@ -133,6 +136,7 @@ newEntity{ base = "BASE_NPC_ORC_GRUSHNAK",
rarity = 3,
rank = 3,
max_life = resolvers.rngavg(170,180), life_rating = 14,
resolvers.auto_equip_filters{"Berserker"},
resolvers.equip{
{type="weapon", subtype="battleaxe", autoreq=true},
{type="armor", subtype="massive", autoreq=true},
......
......@@ -30,6 +30,7 @@ newEntity{
body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1, TOOL=1 },
resolvers.drops{chance=20, nb=1, {} },
resolvers.drops{chance=10, nb=1, {type="money"} },
resolvers.auto_equip_filters("Necromancer"),
infravision = 10,
lite = 1,
......
......@@ -30,6 +30,7 @@ newEntity{
body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1, TOOL=1 },
resolvers.drops{chance=20, nb=1, {} },
resolvers.drops{chance=10, nb=1, {type="money"} },
resolvers.auto_equip_filters("Archmage"),
infravision = 10,
lite = 1,
......
......@@ -53,6 +53,7 @@ newEntity{ base = "BASE_NPC_ORC",
level_range = {10, nil}, exp_worth = 1,
rarity = 1,
max_life = resolvers.rngavg(70,80),
resolvers.auto_equip_filters("Bulwark"),
resolvers.equip{
{type="weapon", subtype="waraxe", autoreq=true},
{type="armor", subtype="shield", autoreq=true},
......@@ -82,6 +83,7 @@ newEntity{ base = "BASE_NPC_ORC",
autolevel = "archer",
resolvers.inscriptions(1, "infusion"),
resolvers.auto_equip_filters("Archer"),
resolvers.equip{
{type="weapon", subtype="longbow", autoreq=true},
{type="ammo", subtype="arrow", autoreq=true},
......@@ -176,6 +178,7 @@ newEntity{ base = "BASE_NPC_ORC",
rarity = 3,
infravision = 10,
combat_armor = 2, combat_def = 12,
resolvers.auto_equip_filters("Rogue"),
resolvers.equip{
{type="weapon", subtype="dagger", autoreq=true},
{type="weapon", subtype="dagger", autoreq=true},
......@@ -205,6 +208,7 @@ newEntity{ base = "BASE_NPC_ORC",
rank = 3,
infravision = 10,
combat_armor = 2, combat_def = 18,
resolvers.auto_equip_filters("Rogue"),
resolvers.equip{
{type="weapon", subtype="dagger", ego_chance=20, autoreq=true},
{type="weapon", subtype="dagger", ego_chance=20, autoreq=true},
......@@ -239,6 +243,7 @@ newEntity{ base = "BASE_NPC_ORC",
rank = 3,
infravision = 10,
combat_armor = 2, combat_def = 18,
resolvers.auto_equip_filters("Rogue"),
resolvers.equip{
{type="weapon", subtype="dagger", ego_chance=20, autoreq=true},
{type="weapon", subtype="dagger", ego_chance=20, autoreq=true},
......@@ -279,7 +284,7 @@ newEntity{ base = "BASE_NPC_ORC",
max_life = resolvers.rngavg(600, 800),
life_rating = 22,
move_others=true,
resolvers.auto_equip_filters("Berserker"),
resolvers.equip{
{type="weapon", subtype="battleaxe", defined="GAPING_MAW", random_art_replace={chance=75}, autoreq=true},
{type="armor", subtype="massive", tome_drops="boss", autoreq=true},
......
......@@ -17,8 +17,6 @@
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
-- last updated: 9:25 AM 2/5/2010
local Talents = require("engine.interface.ActorTalents")
newEntity{
......@@ -28,6 +26,7 @@ newEntity{
body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
resolvers.drops{chance=20, nb=1, {} },
resolvers.auto_equip_filters{"Rogue"},
resolvers.equip{
{type="weapon", subtype="dagger", autoreq=true},
{type="weapon", subtype="dagger", autoreq=true},
......@@ -56,6 +55,7 @@ newEntity{
[Talents.T_KNIFE_MASTERY]={base=0, every=6, max=6},
[Talents.T_WEAPON_COMBAT]={base=0, every=6, max=6},
},
power_source = {technique=true},
}
......
......@@ -28,6 +28,7 @@ newEntity{
combat = { dam=resolvers.rngavg(5,12), atk=2, apr=6, physspeed=2 },
body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1, TOOL=1 },
resolvers.auto_equip_filters{MAINHAND = {subtype="trident"},},
resolvers.drops{chance=20, nb=1, {} },
resolvers.drops{chance=10, nb=1, {type="money"} },
infravision = 10,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment