********************
Jiggly Puff Toys V.4
********************
((((These Agents were made by Darcie Clements))))

**Function:  Jigglypuff is a toy.  It will give the set 
"toy" stimulus to any CREATURE using it.  This is to ensure
that Creatures do not get confused by different chemicals.  

The Male Purple Jigglypuff toy will put Norns to sleep when it 
sings, but be warned, it could confuse Norns if other 
toys are encountered.

The Female Pink Jigglypuff toy will act like a normal toy.

Jigglypuffs will interact with each other and other Pokemon related items
made by Darcie Clements or other programmers who have used the interaction code
(See Developer FAQ Below).  See how many things you can get your Jigglypuffs
to do.  Who says you need Norns to have fun in C3!

NOTE:  Moonstones are hidden in random places on the ship when injected.


**Installation:
1.  Delete Jigglypuff.catalogue from your catalogue folder.

2.Place Jigpuffs.agent in your agent folder.  It contains both Jigglypuff
genders and then place moonstone.agent in your agent file.  they will place 
all their's needed files in the correct folders the first time you try and 
make a jigglypuff or moonstone.

3.  Start up your world. Your creator should now make 
Jigglypuffs!  Sleepy Males are Purple and normal Females are Pink.



***Beta Tested By:
SurFer
Decatur
Bibble



**ID:
2 21 23000 for female Jigglypuff
2 21 23002 for male Jigglypuff
2 21 23005 for male Wigglytuff
2 21 23003 for female Wigglytuff
2 21 23004 for Moonstone
2 21 23016 for female Sing Attack attack
2 21 23017 for female Dubble Slap attack
2 21 23018 for female Mega Punch attack
2 21 23019 for male Sing Attack attack
2 21 23020 for male Dubble Slap attack
2 21 23021 for male Mega Punch attack

**Bugs Fixed Since V 3.3:
Catalogue files are fully functional.  New cleaner image files containing more
poses.  All new underlying code giving more realistic action and faster response.
Max of 10 Puffs in world via natural birth.  Walking has been added.  More attacks.
Attacks are also now randomly used.  New rain like system allows other programers
to make agents that can interact with mine.

FAQ:

Q:  Where is the info on how I can program my agents to interact with yours?
A:  Keep scrolling down, you'll come to it.

Q:  Why didn't the moonstone come out of the maker?
A:  It did, but it's hidden on the ship somewhere.  You didn't think I'd make them
that easy to get did you?

Q:  Why have my Wigglies stoped making jigglies?
A:  You have reached the max population!  Your max should be 5 of each gender, 
but if you want more, use the creator!

Q:  My Jigglypuffs don't react to Oddish Gloom and/or Vileplume!  Why?
A:  You need to install the new version of Oddish!

Q:  I am getting a conflicting catalogue file message.  Why?
A:  For some reason the old Catalogue files were not erased during installation.
Try deleting jigglypuffs.catalogue

Q:  Jigglypuff/Wigglytuff triggered an invalid map position message.  Why?
A:  All objects that produce another object can trigger this error.  Even the 
"foolproof" code for it sometimes fails,  just ignore it, it shouldn't happen
often.

Q:  What will your next project be after you finish Scyther?
A:  I have a few ideas, but I haven't made up my mind yet.  After all, Scyther
is going to take a while to complete.



***************
DEVELOPMENT FAQ
***************
To hook into my new agents a simple code can be used.
Place the following block of code in the area best for your desired result.
In other words, if you want it to check for my agents on it's own, use a timer script.
If you want it to check when you click it, use the push or pull script.

**Start code
	inst
	etch * ** *****
		doif targ <> null
			setv ov?? ?
		endi
	next
	slow

****End Code

on the line:
etch * ** *****

you should place my agents ID code.  An example of which is the female Jigglypuff
which would look like this:
etch 2 21 23000

Ok, so we have now selected the female Jigglypuff to be affected by the rest of the code!
Now on the line:
setv ov?? ?

we need to choose what the effect will be.  The 2 digit number after the "ov" will
determine what emotional or physical response we are dealing with and the number
separated from it by a space will tell use what is triggered.

For an example we will use the burn sensor which happens to be ov08.  Since the Female
Jigglypuff can only be burned or not burned we will set the number after the space to
1 or in other words, "yes I am burned".
Our completed code will be

**Start code
	inst
	etch 2 21 23000
		doif targ <> null
			setv ov08 1
		endi
	next
	slow

****End Code

This code will target any female Jigglypuff in contact with the agent and make it play
it's burn animation!

Now, lets make this code do more than look like a burn; let's do some damage to Jigglypuff.
Underneath the "setv ov08 1" line insert a new line that says "addv ov?? ?".
(this will add to the variable instead of reset it)
Since the damage sensor on jigglypuff is ov12 we will set it to that.  Let's give
her a bad burn, how about we remove 10 hp?  Ok so we now have a new line that says
"addv ov12 -10"
Our end piece of code is:

**Start code
	inst
	etch 2 21 23000
		doif targ <> null
			setv ov08 1
			addv ov12 -10
		endi
	next
	slow

****End Code

And it will take 10 HP off of our female Jigglypuff and have her react with a Burn
animation.


Thats it ;D  It's not too hard after all is it?  Ok, so you want to know which ov??
does what?  Ok, I'll give you the list in just a sec.  First, remember that there
may be more then one animation for a particular response.  An example would be Oddish.
Oddish can react 2 ways to being cut.  "ov09 1" wll play a normal cut response, but
"ov09 2" will play an alternate form of the reaction (it gets a buzz cut).  So remember that
when you are looking for a reaction, try more then just 1's and 0's.

POKEMON VARABLE DATA:
When set to 0 the variables are in the "off" position.
ov00 = am I picked up?  Use this if your agent is meant to stop all other reactions occuring.
ov01 = am I happy?  yah, I'm excited about something!
ov02 = am I sad?  :( why did you hurt me?
ov03 = am I mad?  >:(  Ok, you asked for it!
ov04 = am I shocked?  Blast you Pikachu! (stun effect)
ov05 = am I asleep?  ZzZzZzZz...
ov06 = am I sick? uh, I don't feel to good :P (poison)
ov07 = am I wet?  It's been raining again.
ov08 = am I burned? Ouch!  That hurt!
ov09 = am I cut?  This one is most likely to have alternate forms
ov10 = have I been hit? Whaaaaaaa......SPLAT!
ov11 = am I frozen?  Is it cold in here or is it just me?
ov12 = am I hurt? negative decreases hp, positive increases hp.
ov13 = walk/stop (not for your use, you can't affect it very well)
ov14 = should I attack? WACK!  This triggers a random attack
ov15 = attack random mech.  (You can't use this bit either, sorry)
ov16 = Mating (a bit more complicated, best to leave alone)
ov17 = am I evolving?  This is not a 0/1 area for the most part.  This is best
described as experience points.  The one time it is 0/1 is if evolution is stone
triggered

There you have it.  These variables are the same for all of my Pokemon Agents.  Other
Agent types using my new "cos brain" system will have their own list at the bottom
of their readme.  Have fun, and if you make something that interacts, e-mail me so I can
put you on a links page ;)

Thanks To:  Hausmouse for origenal pray template, Jason Amsden for ingame pray 
compiling code, Ashley Harman (Frimlin) for helping me learn timer scripts, 
and to everyone else who helped me with script debugging.

*****
dc13@hotmail.com  *Jigglypuff's and Wigglytuff's codes and images and Wigglytuff's
Voise is Copyright Darcie Clements, 2000.  Their name, original drawings and the 
Jigglypuff sounds are Copyright Nintendo and um some other people.
Feel free to post on your website as long as you give me credit.