Skip to content
Snippets Groups Projects
Commit 3013a285 authored by DarkGod's avatar DarkGod
Browse files

Necromancers can now use the party orders to dismiss any minion

Added new hooks "PartyOrder:define" and "PartyOrder:execute"
parent 93971d87
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -37,7 +37,7 @@ defineAction{
name = _t"Pickup items",
}
defineAction{
default = { "sym:=d:false:false:false:false" },
default = { "sym:=d:false:true:false:false" },
type = "DROP_FLOOR",
group = "inventory",
name = _t"Drop items",
......
......@@ -404,6 +404,9 @@ function _M:giveOrder(actor, order)
game:registerDialog(require("mod.dialogs.orders."..order:capitalize()).new(actor, def))
elseif order == "talents" then
game:registerDialog(require("mod.dialogs.orders."..order:capitalize()).new(actor, def))
elseif order == "dismiss" then
game.log("%s is dismissed!", actor:getName():capitalize())
actor:die(actor)
-------------------------------------------
-- Escort specifics
......@@ -422,6 +425,8 @@ function _M:giveOrder(actor, order)
local dir = game.level.map:compassDirection(actor.escort_target.x - actor.x, actor.escort_target.y - actor.y)
actor:doEmote(("The portal is %s, to the %s."):tformat(dist, dir or "???"), 45)
else
self:triggerHook{"PartyOrder:execute", order=order, actor=actor}
end
return true
......
......@@ -244,10 +244,10 @@ function necroSetupSummon(self, def, x, y, level, turns, no_control)
m.remove_from_party_on_death = true
game.party:addMember(m, {
control=can_control and "full" or "no",
control=can_control and "full" or "order",
type="minion",
title=_t"Necrotic Minion",
orders = {target=true},
orders = {target=true, dismiss=true},
})
end
m:resolve() m:resolve(nil, true)
......
......@@ -32,6 +32,7 @@ local orders = {
leash = {4, function(actor) return ("Set the leash distance [current: %d]"):tformat(actor.ai_state.tactic_leash) end},
talents = {5, function(actor) return (_t"Define tactical talents usage") end},
rename = {6, function(actor) return (_t"Rename") end},
dismiss = {7, function(actor) return (_t"Dismiss") end},
}
function _M:init(actor, def)
......@@ -65,6 +66,11 @@ end
function _M:generateList()
local list = {}
if not _M.additional_hook_fired then
_M.additional_hook_fired = true
self:triggerHook{"PartyOrder:define", orders=orders}
end
for o, _ in pairs(self.def.orders) do
if orders[o] then
list[#list+1] = {name=orders[o][2](self.actor), order=o, sort=orders[o][1]}
......
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