Page 3 of 4

Re: cloneObject for LoG2 (important bug fix 30.11)

Posted: Sun Nov 30, 2014 4:53 pm
by cromcrom
cough cough ahem, JKos ? It still doesn't :geek: :mrgreen:
same error

Re: cloneObject for LoG2 (important bug fix 30.11)

Posted: Sun Nov 30, 2014 4:54 pm
by Aisuu
It seems to work for me :shock:

Re: cloneObject for LoG2 (important bug fix 30.11)

Posted: Sun Nov 30, 2014 4:59 pm
by JKos
cromcrom wrote:cough cough ahem, JKos ? It still doesn't :geek: :mrgreen:
same error
Can you post the non working cloneObject definition? Have you defined the name or the class properties for the components?

Re: cloneObject for LoG2 (important bug fix 30.11)

Posted: Sun Nov 30, 2014 5:38 pm
by cromcrom
here are the 2 objects I am trying to clone:

Code: Select all

cloneObject{ name = "crom_iron_chunks",
   baseObject = "rock",
   components = {
		{
			uiName = "Iron chunks",
			weight = 0.4,
			description = "Bits of iron ore. Used in crafting."
		},
   }   
 }  
 
cloneObject{ name = "crom_iron_ore",
   baseObject = "rock",
   components = {
		{
			uiName = "Iron ore",
			weight = 0.8,
			description = "Iron Ore. Used in crafting."
		},
   }   
 }  
Have you defined the name or the class properties for the components?
what do you mean ?

Re: cloneObject for LoG2 (important bug fix 30.11)

Posted: Sun Nov 30, 2014 5:47 pm
by JKos
The name or the class property is required for components (just like with defineObject), without them cloneObject can't know which component it should clone from the baseObject.

So this should work.

Code: Select all

    cloneObject{ name = "crom_iron_chunks",
       baseObject = "rock",
       components = {
          {
             uiName = "Iron chunks",
             weight = 0.4,
             description = "Bits of iron ore. Used in crafting.",
             class="Item"
          },
       }   
     } 
     
    cloneObject{ name = "crom_iron_ore",
       baseObject = "rock",
       components = {
          {
             uiName = "Iron ore",
             weight = 0.8,
             description = "Iron Ore. Used in crafting.",
             class="Item"
          },
       }   
     }  

Re: cloneObject for LoG2 (important bug fix 30.11)

Posted: Sun Nov 30, 2014 5:52 pm
by cromcrom
It perfectly works, thank you so much for your time and commitment, I am crediting you (again :-) ) and adding this thread to TLC 2 :-)

Re: cloneObject for LoG2 (important bug fix 30.11)

Posted: Mon Dec 01, 2014 11:56 pm
by cromcrom
Please, how would I disable a component from a base in a clone object (if I want to remove the meleeattack component from a branch, for example, when creating a small branch clone ?

never mind, silly stupid me, I just defined a new object :-)

Re: cloneObject for LoG2 (important bug fix 30.11)

Posted: Wed Dec 03, 2014 11:31 pm
by JKos
Update: added modifyObjects function

Description: Modifies multiple objects filtered by component names
Example: Add meleeattack.onHitMonster hook to all objects which do have both item and meleeattack components (which means all melee weapons).

Code: Select all

modifyObjects{
	filter = {
		hasComponents = {'item','meleeattack'}
	},
	components = {
		{ 
			name = 'meleeattack',
			onHitMonster = function(self, monster, tside, damage, champion)
				print(champion:getName(),'hits',monster.go.id,'with',self.go.name,'from',tside,'dealing damage:',damage)
			end
		}
	}

}
Warning: will override default values, so in this example all default onHitMonster-hooks on melee weapons will be overridden.

I will probably add more filters later, for example traits or tags could be useful.

Edit: I changed the installation method, see opening post.

Re: cloneObject for LoG2 (update: modifyObjects)

Posted: Wed Dec 03, 2014 11:50 pm
by cameronC
Quite useful! Thanks!

Re: cloneObject for LoG2 (update: modifyObjects)

Posted: Thu Dec 04, 2014 9:08 am
by Drakkan
supercool, thanks !