Page 1 of 1
Scripting Experts: Is This Possible?
Posted: Tue Feb 05, 2019 9:36 am
by HypnoToad
Basically I want to recharge a spent item, I know I can do a destroy and spawn in an alcove, but is there a way to do this and/or recharge it while the players has it in their hands?
Say a fighter has the Fire Blade and it's empty, can I have a spell that will swap it for a charged one or recharge it while he is holding it?
Re: Scripting Experts: Is This Possible?
Posted: Tue Feb 05, 2019 4:34 pm
by 7Soul
The Crystal of Recharging does exactly that as an usable item
Re: Scripting Experts: Is This Possible?
Posted: Tue Feb 05, 2019 5:24 pm
by THOM
We are in the LoG 1 section...
Re: Scripting Experts: Is This Possible?
Posted: Tue Feb 05, 2019 6:08 pm
by 7Soul
THOM wrote: ↑Tue Feb 05, 2019 5:24 pm
We are in the LoG 1 section...
I'm a fool!
Re: Scripting Experts: Is This Possible?
Posted: Tue Feb 05, 2019 10:28 pm
by Zo Kath Ra
HypnoToad wrote: ↑Tue Feb 05, 2019 9:36 am
Basically I want to recharge a spent item, I know I can do a destroy and spawn in an alcove, but is there a way to do this and/or recharge it while the players has it in their hands?
Say a fighter has the Fire Blade and it's empty, can I have a spell that will swap it for a charged one or recharge it while he is holding it?
I haven't tried this, but maybe you could use
http://www.grimrock.net/modding_log1/sc ... reference/
Champion:getItem(slot)
Champion:removeItem(slot)
Champion:insertItem(slot, item)
Re: Scripting Experts: Is This Possible?
Posted: Wed Feb 06, 2019 12:01 am
by HypnoToad
Thanks for the advice, I looked at that and it's beyond my limited scripting knowledge so I'm likely going with put the item in an alcove and insert a coin and it recharges (swaps it out for a recharged one).
Re: Scripting Experts: Is This Possible?
Posted: Wed Feb 06, 2019 1:25 am
by Isaac
Here is a working spell, and spell_scroll item.
Code: Select all
defineSpell{
name = "recharge_fireblade",
uiName = "Recharge Fireblade",
skill = "fire_magic",
level = 5,
runes = "ADE",
manaCost = 50,
onCast = function(champion, X, Y, direction, skill)
for slot = 7,8 do
local item = champion:getItem(slot)
if item and item.name == "fire_blade" then
item:setCharges(9)
champion:setCondition("fire_shield", 2)
playSound("generic_spell")
return
elseif item and item.name == "fire_blade_empty" then
champion:removeItem(slot)
champion:insertItem(slot, spawn('fire_blade'))
champion:getItem(slot):setCharges(9)
champion:setCondition("fire_shield", 2)
playSound("generic_spell")
return
end
end
hudPrint(champion:getName().."'s spell fizzled.")
hudPrint("[No equipped Fireblade]")
end
}
defineObject{
name = "scroll_recharge_fireblade",
class = "Item",
uiName = "Scroll of Recharge Fireblade",
model = "assets/models/items/scroll_spell.fbx",
gfxIndex = 113,
scroll = true,
spell = "recharge_fireblade",
weight = 0.3,
}
Re: Scripting Experts: Is This Possible?
Posted: Wed Feb 06, 2019 4:33 am
by HypnoToad
Isaac wrote: ↑Wed Feb 06, 2019 1:25 am
Here is a working spell, and spell_scroll item.
Code: Select all
defineSpell{
name = "recharge_fireblade",
uiName = "Recharge Fireblade",
skill = "fire_magic",
level = 5,
runes = "ADE",
manaCost = 50,
onCast = function(champion, X, Y, direction, skill)
for slot = 7,8 do
local item = champion:getItem(slot)
if item and item.name == "fire_blade" then
item:setCharges(9)
champion:setCondition("fire_shield", 2)
playSound("generic_spell")
return
elseif item and item.name == "fire_blade_empty" then
champion:removeItem(slot)
champion:insertItem(slot, spawn('fire_blade'))
champion:getItem(slot):setCharges(9)
champion:setCondition("fire_shield", 2)
playSound("generic_spell")
return
end
end
hudPrint(champion:getName().."'s spell fizzled.")
hudPrint("[No equipped Fireblade]")
end
}
defineObject{
name = "scroll_recharge_fireblade",
class = "Item",
uiName = "Scroll of Recharge Fireblade",
model = "assets/models/items/scroll_spell.fbx",
gfxIndex = 113,
scroll = true,
spell = "recharge_fireblade",
weight = 0.3,
}
Wow, that's just what I wanted, thanks soooooo much!
