Jump to content

Could you do this?


Rosten

Recommended Posts

By the way, Malacath do you mind if i use the wand textures until i get all the code worked out?

i'd like to put all my focus on the code and do the art for it afterwards

Yes, sure. As long as you don't publish the mod using that artwork (publish as in upload to Steam or Download section here) it's okay. Just respect the artist (which is not me), but I'm sure you would do that anyways  ; )

 

Also, the way your MakeFollower file is it won't do anything (but potentially crash the game) You need to take a look at all the comments Cheerio made (denoted by -- at the beginning of the line) to understand what part of code does what so you can delete the unnecessary parts and/or add parts. Try it and ask for help when you get stuck.

Link to comment
Share on other sites

Yes, sure. As long as you don't publish the mod using that artwork (publish as in upload to Steam or Download section here) it's okay. Just respect the artist (which is not me), but I'm sure you would do that anyways  ; )

Thanks, ill make sure to remember to replace the art with some of my own whenever its finished, just wanted to make sure so you (or your artist) didn't get offended if you saw i was using them for now

Link to comment
Share on other sites

Anyone got an idea of how to make it fire a projectile? i'll look at the code for firestaff and such when i get home, but if someone can find an answer before then (3:40 EST) that'd be great

Well, you'll immediately find the answer in "staff.lua" at lines 480 and following.

 

    inst:AddTag("rangedfireweapon")    inst:AddComponent("weapon")    inst.components.weapon:SetDamage(0)    inst.components.weapon:SetRange(8, 10)    inst.components.weapon:SetOnAttack(onattack_red)    inst.components.weapon:SetProjectile("fire_projectile")

Where "fire_projectile" must be an element of the local prefabs table.

Link to comment
Share on other sites

Well, you'll immediately find the answer in "staff.lua" at lines 480 and following.

 

    inst:AddTag("rangedfireweapon")    inst:AddComponent("weapon")    inst.components.weapon:SetDamage(0)    inst.components.weapon:SetRange(8, 10)    inst.components.weapon:SetOnAttack(onattack_red)    inst.components.weapon:SetProjectile("fire_projectile")
Where "fire_projectile" must be an element of the local prefabs table.

 

Well, i just got back, give me a minute to parse this, my brain is probably still frozen, it is COLD outside

Link to comment
Share on other sites

Well i looked at it, i added that bit of code to my item.lua (not the actual name of the file :p) and the bit about the onattack figuring that would be important, but still nothing, it seems to me the game doesn't even recognize the wand as something you can attack/cast a spell with, the onattack part might work, but not until the wand is considered a weapon/ranged weapon

Link to comment
Share on other sites

Well, i just got back, give me a minute to parse this, my brain is probably still frozen, it is COLD outside

Please don't tell me it's "only" 17°C, someone else already did that to me today  xD

 

Well i looked at it, i added that bit of code to my item.lua (not the actual name of the file :razz:) and the bit about the onattack figuring that would be important, but still nothing, it seems to me the game doesn't even recognize the wand as something you can attack/cast a spell with, the onattack part might work, but not until the wand is considered a weapon/ranged weapon

So you cannot attack with the thing when adding the weapon component to it? Odd. Can you upload the thing so I can look at it, please.

Link to comment
Share on other sites

Please don't tell me it's "only" 17°C, someone else already did that to me today  xD

 

So you cannot attack with the thing when adding the weapon component to it? Odd. Can you upload the thing so I can look at it, please.

weapon compo...? *facepalm* how could i be so stupid? let me go add that and see if it works

 

Edit- well, i looked into the spear.lua and added the weapon component i found, (i also added the bit about the damage so it would actually do something xD) But for some reason it still crashed

 

i'd upload what i currently have but mediafire is down, but here's the code from the wand.lua if you want to look over it

local assets=
    Asset("ANIM", "anim/wand.zip"),
    Asset("ANIM", "anim/swap_wand.zip"), 
 
    Asset("ATLAS", "images/inventoryimages/wand.xml"),
    Asset("IMAGE", "images/inventoryimages/wand.tex"),
}
 
local prefabs = 
{
}
 
local function fn(colour)
 
 
    local function OnEquip(inst, owner) 
        --owner.AnimState:OverrideSymbol("swap_object", "swap_wands", "purplestaff")
        owner.AnimState:OverrideSymbol("swap_object", "swap_wand", "wand")
        owner.AnimState:Show("ARM_carry") 
        owner.AnimState:Hide("ARM_normal") 
    end
    
inst:AddComponent("weapon")
    inst.components.weapon:SetDamage(TUNING.SPEAR_DAMAGE)
------------------
    local function OnUnequip(inst, owner) 
        owner.AnimState:Hide("ARM_carry") 
        owner.AnimState:Show("ARM_normal") 
    end
 
    local inst = CreateEntity()
    local trans = inst.entity:AddTransform()
    local anim = inst.entity:AddAnimState()
    MakeInventoryPhysics(inst)
    
    anim:SetBank("wand")
    anim:SetBuild("wand")
    anim:PlayAnimation("idle")
 
    inst:AddComponent("inventoryitem")
    inst.components.inventoryitem.imagename = "wand"
    inst.components.inventoryitem.atlasname = "images/inventoryimages/wand.xml"
    
    inst:AddComponent("equippable")
    inst.components.equippable:SetOnEquip( OnEquip )
    inst.components.equippable:SetOnUnequip( OnUnequip )
 
    return inst
end
 
return  Prefab("common/inventory/wand", fn, assets, prefabs)
 
P.s how do you make it where it highlights the syntax in your code on the forums?
 
Its around 22 degrees farenheit, not sure if that counts for cold for you :razz:
 
Edit- i moved the weapon component to the bottom of the components list, it worked except for one thing. for some reason now its not showing the graphics..?
EditEdit- I just restarted ds and now its showing the graphics again.... STOP MESSING WITH ME GAME
EditEditEdit - Alright, now im gonna figure out how to make it cast a spell instead of run up and stab
Link to comment
Share on other sites

Please don't tell me it's "only" 17°C, someone else already did that to me today  xD

 

So you cannot attack with the thing when adding the weapon component to it? Odd. Can you upload the thing so I can look at it, please.

So, as said above i got the attack working, then i added a bit of firestaff code making the wand.lua 

local assets=
    Asset("ANIM", "anim/wand.zip"),
    Asset("ANIM", "anim/swap_wand.zip"), 
 
    Asset("ATLAS", "images/inventoryimages/wand.xml"),
    Asset("IMAGE", "images/inventoryimages/wand.tex"),
}
 
local prefabs = 
{
}
 
local function fn(red)
 
 
    local function OnEquip(inst, owner) 
        --owner.AnimState:OverrideSymbol("swap_object", "swap_wands", "purplestaff")
        owner.AnimState:OverrideSymbol("swap_object", "swap_wand", "wand")
        owner.AnimState:Show("ARM_carry") 
        owner.AnimState:Hide("ARM_normal") 
    end
    
    local function OnUnequip(inst, owner) 
        owner.AnimState:Hide("ARM_carry") 
        owner.AnimState:Show("ARM_normal") 
    end
 
    local inst = CreateEntity()
    local trans = inst.entity:AddTransform()
    local anim = inst.entity:AddAnimState()
    MakeInventoryPhysics(inst)
    
    anim:SetBank("wand")
    anim:SetBuild("wand")
    anim:PlayAnimation("idle")
 
    inst:AddComponent("inventoryitem")
    inst.components.inventoryitem.imagename = "wand"
    inst.components.inventoryitem.atlasname = "images/inventoryimages/wand.xml"
    
    inst:AddComponent("equippable")
    inst.components.equippable:SetOnEquip( OnEquip )
    inst.components.equippable:SetOnUnequip( OnUnequip )
    
inst:AddComponent("weapon")
    inst.components.weapon:SetDamage(TUNING.SPEAR_DAMAGE)
 
    return inst
end
 
local function red()
    local inst = commonfn("red")
 
    inst:AddTag("firestaff")
    inst:AddTag("rangedfireweapon")
 
    inst:AddComponent("weapon")
    inst.components.weapon:SetDamage(0)
    inst.components.weapon:SetRange(8, 10)
    inst.components.weapon:SetOnAttack(onattack_red)
    inst.components.weapon:SetProjectile("fire_projectile")
 
    inst:AddComponent("lighter")
    inst.components.lighter:SetOnLightFn(onlight)
 
    inst.components.finiteuses:SetMaxUses(TUNING.FIRESTAFF_USES)
    inst.components.finiteuses:SetUses(TUNING.FIRESTAFF_USES)
 
    return inst
end
 
local function onattack_red(inst, attacker, target)
 
    if target.components.burnable and not target.components.burnable:IsBurning() then
        if target.components.freezable and target.components.freezable:IsFrozen() then           
            target.components.freezable:Unfreeze()            
        else            
            target.components.burnable:Ignite(true)
        end   
    end
 
    if target.components.freezable then
        target.components.freezable:AddColdness(-1) --Does this break ice staff?
        if target.components.freezable:IsFrozen() then
            target.components.freezable:Unfreeze()            
        end
    end
 
    if target.components.sleeper and target.components.sleeper:IsAsleep() then
        target.components.sleeper:WakeUp()
    end
 
    if target.components.combat then
        target.components.combat:SuggestTarget(attacker)
        if target.sg and target.sg.sg.states.hit then
            target.sg:GoToState("hit")
        end
    end
 
    if attacker and attacker.components.sanity then
        attacker.components.sanity:DoDelta(-TUNING.SANITY_SUPERTINY)
    end
 
    attacker.SoundEmitter:PlaySound("dontstarve/wilson/fireball_explo")
end
return  Prefab("common/inventory/wand", fn, assets, prefabs)
This works fine and all, it doesn't crash the game, in fact, it doesn't do a lot of things, like, for instance make the wand cast the firestaff spell (which is sort of the thing im going for right now)
 
I made a new post because all the edits kind of crowded up that one post :/
Link to comment
Share on other sites

 

So, as said above i got the attack working, then i added a bit of firestaff code making the wand.lua 

local assets=
    Asset("ANIM", "anim/wand.zip"),
    Asset("ANIM", "anim/swap_wand.zip"), 
 
    Asset("ATLAS", "images/inventoryimages/wand.xml"),
    Asset("IMAGE", "images/inventoryimages/wand.tex"),
}
 
local prefabs = 
{
}
 
local function fn(red)
 
 
    local function OnEquip(inst, owner) 
        --owner.AnimState:OverrideSymbol("swap_object", "swap_wands", "purplestaff")
        owner.AnimState:OverrideSymbol("swap_object", "swap_wand", "wand")
        owner.AnimState:Show("ARM_carry") 
        owner.AnimState:Hide("ARM_normal") 
    end
    
    local function OnUnequip(inst, owner) 
        owner.AnimState:Hide("ARM_carry") 
        owner.AnimState:Show("ARM_normal") 
    end
 
    local inst = CreateEntity()
    local trans = inst.entity:AddTransform()
    local anim = inst.entity:AddAnimState()
    MakeInventoryPhysics(inst)
    
    anim:SetBank("wand")
    anim:SetBuild("wand")
    anim:PlayAnimation("idle")
 
    inst:AddComponent("inventoryitem")
    inst.components.inventoryitem.imagename = "wand"
    inst.components.inventoryitem.atlasname = "images/inventoryimages/wand.xml"
    
    inst:AddComponent("equippable")
    inst.components.equippable:SetOnEquip( OnEquip )
    inst.components.equippable:SetOnUnequip( OnUnequip )
    
inst:AddComponent("weapon")
    inst.components.weapon:SetDamage(TUNING.SPEAR_DAMAGE)
 
    return inst
end
 
local function red()
    local inst = commonfn("red")
 
    inst:AddTag("firestaff")
    inst:AddTag("rangedfireweapon")
 
    inst:AddComponent("weapon")
    inst.components.weapon:SetDamage(0)
    inst.components.weapon:SetRange(8, 10)
    inst.components.weapon:SetOnAttack(onattack_red)
    inst.components.weapon:SetProjectile("fire_projectile")
 
    inst:AddComponent("lighter")
    inst.components.lighter:SetOnLightFn(onlight)
 
    inst.components.finiteuses:SetMaxUses(TUNING.FIRESTAFF_USES)
    inst.components.finiteuses:SetUses(TUNING.FIRESTAFF_USES)
 
    return inst
end
 
local function onattack_red(inst, attacker, target)
 
    if target.components.burnable and not target.components.burnable:IsBurning() then
        if target.components.freezable and target.components.freezable:IsFrozen() then           
            target.components.freezable:Unfreeze()            
        else            
            target.components.burnable:Ignite(true)
        end   
    end
 
    if target.components.freezable then
        target.components.freezable:AddColdness(-1) --Does this break ice staff?
        if target.components.freezable:IsFrozen() then
            target.components.freezable:Unfreeze()            
        end
    end
 
    if target.components.sleeper and target.components.sleeper:IsAsleep() then
        target.components.sleeper:WakeUp()
    end
 
    if target.components.combat then
        target.components.combat:SuggestTarget(attacker)
        if target.sg and target.sg.sg.states.hit then
            target.sg:GoToState("hit")
        end
    end
 
    if attacker and attacker.components.sanity then
        attacker.components.sanity:DoDelta(-TUNING.SANITY_SUPERTINY)
    end
 
    attacker.SoundEmitter:PlaySound("dontstarve/wilson/fireball_explo")
end
return  Prefab("common/inventory/wand", fn, assets, prefabs)
This works fine and all, it doesn't crash the game, in fact, it doesn't do a lot of things, like, for instance make the wand cast the firestaff spell (which is sort of the thing im going for right now)
 
I made a new post because all the edits kind of crowded up that one post :/

 

You're not really doing a lot here. You add two new functions shich you never use, try this

local assets={     Asset("ANIM", "anim/wand.zip"),    Asset("ANIM", "anim/swap_wand.zip"),      Asset("ATLAS", "images/inventoryimages/wand.xml"),    Asset("IMAGE", "images/inventoryimages/wand.tex"),} local prefabs = {}  --moved this function to the top because we'll call it in fn so it needs to be defined first local function onattack_red(inst, attacker, target)     if target.components.burnable and not target.components.burnable:IsBurning() then        if target.components.freezable and target.components.freezable:IsFrozen() then                       target.components.freezable:Unfreeze()                    else                        target.components.burnable:Ignite(true)        end       end     if target.components.freezable then        target.components.freezable:AddColdness(-1) --Does this break ice staff?        if target.components.freezable:IsFrozen() then            target.components.freezable:Unfreeze()                    end    end     if target.components.sleeper and target.components.sleeper:IsAsleep() then        target.components.sleeper:WakeUp()    end     if target.components.combat then        target.components.combat:SuggestTarget(attacker)        if target.sg and target.sg.sg.states.hit then            target.sg:GoToState("hit")        end    end     if attacker and attacker.components.sanity then        attacker.components.sanity:DoDelta(-TUNING.SANITY_SUPERTINY)    end     attacker.SoundEmitter:PlaySound("dontstarve/wilson/fireball_explo")endlocal function fn(red)      local function OnEquip(inst, owner)         --owner.AnimState:OverrideSymbol("swap_object", "swap_wands", "purplestaff")        owner.AnimState:OverrideSymbol("swap_object", "swap_wand", "wand")        owner.AnimState:Show("ARM_carry")         owner.AnimState:Hide("ARM_normal")     end        local function OnUnequip(inst, owner)         owner.AnimState:Hide("ARM_carry")         owner.AnimState:Show("ARM_normal")     end     local inst = CreateEntity()    local trans = inst.entity:AddTransform()    local anim = inst.entity:AddAnimState()    MakeInventoryPhysics(inst)        anim:SetBank("wand")    anim:SetBuild("wand")    anim:PlayAnimation("idle")     inst:AddComponent("inventoryitem")    inst.components.inventoryitem.imagename = "wand"    inst.components.inventoryitem.atlasname = "images/inventoryimages/wand.xml"        inst:AddComponent("equippable")    inst.components.equippable:SetOnEquip( OnEquip )    inst.components.equippable:SetOnUnequip( OnUnequip )        inst:AddComponent("weapon")    inst.components.weapon:SetDamage(TUNING.SPEAR_DAMAGE)    --Added all the things the firestaff has which your wand was missing    inst.components.weapon:SetRange(8, 10)    inst.components.weapon:SetOnAttack(onattack_red)    inst.components.weapon:SetProjectile("fire_projectile")    inst:AddTag("rangedfireweapon")     return instendreturn  Prefab("common/inventory/wand", fn, assets, prefabs)

Look at the two comments in the hope you understand what's going on  ; )

 

Now your work would be to change the code onattack_red so it does what you want.

 

EDIT: There's a button which looks like this <> for adding code.

Link to comment
Share on other sites

How i understoof this stuff -

1st comment - So, it does matter when you define things in the script, things can't be called if they were never defined after all

2nd comment - So there were a few things that the firestaff script needed that my script wasnt supplying so it wouldn't run correctly?

 

Edit - Currently running the edited script, and boy is it fun running around with that infiniteuse-reskin of a firestaff >: D

I just debugspawned a deerclops, and killed it with no armor :D

Link to comment
Share on other sites

How i understoof this stuff -

1st comment - So, it does matter when you define things in the script, things can't be called if they were never defined after all

2nd comment - So there were a few things that the firestaff script needed that my script wasnt supplying so it wouldn't run correctly?

 

Edit - Currently running the edited script, and boy is it fun running around with that infiniteuse-reskin of a firestaff >: D

So it runs, nice to hear that ^^

 

1. Yes, as far as I know files are parsed from top to bottom so you need to declare functions and variables before you can call them

2. Aye, you didn't have anything making your wand a projictile shootin beast

Link to comment
Share on other sites

Yes, sure. As long as you don't publish the mod using that artwork (publish as in upload to Steam or Download section here) it's okay. Just respect the artist (which is not me), but I'm sure you would do that anyways  ; )

 

Also, the way your MakeFollower file is it won't do anything (but potentially crash the game) You need to take a look at all the comments Cheerio made (denoted by -- at the beginning of the line) to understand what part of code does what so you can delete the unnecessary parts and/or add parts. Try it and ask for help when you get stuck.

I mostly kept that there so i would have the script on easy access whenever i needed to put it somewhere

 

(currently working on making the onattack red part of the script do what i want, will post progress here)

Well, i tried adding a few things over on the script, it crashed, i didn't really think it would be necessary to ask you to help fix them because it seemed like a pretty bad way to do it anyways, so i just pasted over my copy of the original script and try again,

 

Well, im gonna take a bit of a break from this, im trying to figure out the next part on my own, its proving to be pretty difficult

Link to comment
Share on other sites

I mostly kept that there so i would have the script on easy access whenever i needed to put it somewhere

 

(currently working on making the onattack red part of the script do what i want, will post progress here)

Well, i tried adding a few things over on the script, it crashed, i didn't really think it would be necessary to ask you to help fix them because it seemed like a pretty bad way to do it anyways, so i just pasted over my copy of the original script and try again,

 

Well, im gonna take a bit of a break from this, im trying to figure out the next part on my own, its proving to be pretty difficult

So you're trying to figure out for yourself?

Anyways, if you want a tiny hint here you go  ; )

--Add two functions from "Follow the Leader" which use will used bellowlocal function onattack_red(inst, attacker, target)    if --[[statement checking for leader component existing for the attacker]] and IsValidFollower(target) then        --Insert 14 lines from "Follow the Leader" here, replacing player with attacker        --Some other replacements are also necessary    endend

Seriously, it's probably an aweful hint, but I'm thinking you will know at least if you have to much or not enough...

Link to comment
Share on other sites

So you're trying to figure out for yourself?

Anyways, if you want a tiny hint here you go  ; )

--Add two functions from "Follow the Leader" which use will used bellowlocal function onattack_red(inst, attacker, target)    if --[[statement checking for leader component existing for the attacker]] and IsValidFollower(target) then        --Insert 14 lines from "Follow the Leader" here, replacing player with attacker        --Some other replacements are also necessary    endend

Seriously, it's probably an aweful hint, but I'm thinking you will know at least if you have to much or not enough...

Its actually a pretty great hint, i never would've thought about changing player with attacker, i'll decipher the rest in a second, i just got home, also i imagine one of the other replacements would be changing entity to target?

 

also, one quick question, would adding this :

local SEARCH_RADIUS = 20
local FOLLOW_THE_LEADER_TAG = "ftl"
local MIN_FOLLOW_LEADER = 1
local MAX_FOLLOW_LEADER = 12
local TARGET_FOLLOW_LEADER = 2 
to the wand.lua be necessary? or should i leave it out
 
Edit -- I updated the idea a bit in the OP
Link to comment
Share on other sites

Hmm. this is odd, the game seems to think that 

local function onattack_red(inst, attacker, target)

if attacker.components.leader then
local function IsValidFollower(target)
return target.components and target.components.locomotor and target.brain and target.brain.bt and target.brain.bt.root and target ~= GLOBAL.GetPlayer() and target.components.follower
end

local function CanBeAttacked(attacker)
return not attacker:HasTag(FOLLOW_THE_LEADER_TAG)
end

if player.components.combat and not player.components.combat.canbeattackedfn then
player.components.combat.canbeattackedfn = CanBeAttacked
end

for k,v in pairs(target) do
if IsValidFollower(v) then

if v.components.combat then
v.components.combat:GiveUp()
end

if v.components.follower.leader ~= player then
player.components.leader:AddFollower(v)
end

      end
end

 

Is the same as the local functon fn(red) 

so im getting errors saying stuff about line 93

 

Edit - there were actually quite a few a few errors before, most involving "end"s and "then"s and one mistake where i accidentally deleted the "re" on the return part of isvalidfollower

Link to comment
Share on other sites

Hmm. this is odd, the game seems to think that 

local function onattack_red(inst, attacker, target)

if attacker.components.leader then

local function IsValidFollower(target)

return target.components and target.components.locomotor and target.brain and target.brain.bt and target.brain.bt.root and target ~= GLOBAL.GetPlayer() and target.components.follower

end

local function CanBeAttacked(attacker)

return not attacker:HasTag(FOLLOW_THE_LEADER_TAG)

end

if player.components.combat and not player.components.combat.canbeattackedfn then

player.components.combat.canbeattackedfn = CanBeAttacked

end

for k,v in pairs(target) do

if IsValidFollower(v) then

if v.components.combat then

v.components.combat:GiveUp()

end

if v.components.follower.leader ~= player then

player.components.leader:AddFollower(v)

end

      end

end

 

Is the same as the local functon fn(red) 

so im getting errors saying stuff about line 93

How am I supposed to know what line 93 is  : P

 

I would suggest two things:

1) Read up on some basics of coding. Because the code up there implies that you are still missing some concepts which you need to know if you want to code on your own

2) Use tabulators to clean your code, or use the code "functions" of this forum to preserve them

 

Try this code

local function onattack_red(inst, attacker, target)	if attacker.components.leader then		local function IsValidFollower(target)			return target.components and target.components.locomotor and target.brain and target.brain.bt and target.brain.bt.root and target ~= GetPlayer() and target.components.follower		end		local function CanBeAttacked(attacker)			return not attacker:HasTag(FOLLOW_THE_LEADER_TAG)		end		local behaviours = target.brain.bt.root.children		table.insert(behaviours, math.min(3, #behaviours), Follow(target, GetLeader, MIN_FOLLOW_LEADER, TARGET_FOLLOW_LEADER, MAX_FOLLOW_LEADER, true))			if not target.components.follower then			target:AddComponent("follower")		end		if attacker.components.combat and not attacker.components.combat.canbeattackedfn then			attacker.components.combat.canbeattackedfn = CanBeAttacked		end		if target.components.combat then			target.components.combat:GiveUp()		end		if target.components.follower.leader ~= attacker then			attacker.components.leader:AddFollower(target)		end	endend

You were missing the most crucial part which was the modification of the brain. I can't promise this code will work btw, didn't test it.

Link to comment
Share on other sites

Well, i added the bit of code to it you said i was missing and this is the file (Mediafire)

Getting ready to test it

 

Edit - and apparently it cannot find the prefab "wand".....

.....What?

It's probably something so obvious even my cat pawing at the screen could find it.

Link to comment
Share on other sites

Well, i added the bit of code to it you said i was missing and this is the file (Mediafire)

Getting ready to test it

 

Edit - and apparently it cannot find the prefab "wand".....

.....What?

It's probably something so obvious even my cat pawing at the screen could find it.

You deleted the end of "wand.lua"... why did you do that?

return Prefab("wand", fn, assets, prefabs)
Link to comment
Share on other sites

 

You deleted the end of "wand.lua"... why did you do that?

return Prefab("wand", fn, assets, prefabs)

I might've done it accidentally when i was trying to fix the problem i had earlier, other then that i don't remember doing it

 

Edit- about the code, it works like a charm and is a blast to play with,  (not to mention it really compliments my playstyle) 

EditEdit - Now it does 0 damage and has 25 uses

EditEditEdit - It is now a fully working, fully craftable (placeholder recipe) item! Huzzah!

Now all's that's left is original artwork and a better recipe

Link to comment
Share on other sites

Got the right crafting recipe, in the right tab, in the right level (magic 2, or shadow manipulator thanks weepingwillow for letting me know how to specify something to different tabs)

Now all that is left is the artwork,  i need to get someone else to do it, i could take a stab at it, but it probably wont be to good

Link to comment
Share on other sites

I tried

post-287842-0-04581200-1384561016.png and failed

 

i doubt i would even be allowed to use this, considering its basically the blue staff and the yellowstaff photoshopped together :/

 

 

 

If anyone would like to take a stab at it, i'd like it to look like a yellow gem and a blue gem combined together into a green in the middle

 

Edit- Sprited, just for fun

post-287842-0-58191800-1384562349.png

Link to comment
Share on other sites

My attempt at quotes


 


Wilson - I feel warm and fuzzy when I hold this.


Willow -  It doesn't shoot fire.


Wendy - They'll probably just die following me.


WolfGang - Is for making allies.


Wx78 - Ha! These beasts are easy to control.


Wickerbottom - Personality changing device.


Woodie - Follow the leader!


Maxwell - Dance my puppets.


Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...