hi
@DiakEagle , welcome aboard, firstly!
Skill "replacement" has 2 major work areas: first is the new skill itself, and second is substituting your new skill into the skilltree slot of the skill you wanted to replace. The larger work area is that new skill, so let's start there.
You wanted to substitute a summon skill for Firebomb. Since Firebomb is an AOE-missile skill, i'll assume there isn't anything you're wanting to keep from it (let me know if that's incorrect). So you will just make a totally new summon skill for the skilltree to point to (instead of firebomb).
By the way, cloning/reverse-engineering similar skills is still the fastest way for a new modder to go. But doing it in GUTS can be confusing because you need more basic familiarity with the parts of skills, which GUTS just assumes you already have. Here are 2 great summary-type articles about skill-making in TL2, that talk about that very basic info...
1.
Elements of a Basic Skill, by
@OedipusTex 2.
How To Make Things Actually Happen Through Skills, by
@Chthon About tutorials - at this point i'd normally refer you to a more detailed "how to" type tutorial for you to try out. But i couldnt find a tut specifically for a summon skill, so i'm going to end up writing one (sort of) in this reply (or set of replies).
So let's look at an existing Embermage summon skill to work from, "Astral Ally". Its data file (extension = .DAT) is at (
MEDIA\SKILLS\ARBITER\ICEELEMENTAL\ICE_ELEMENTAL.DAT). Jumping straight into the skill's LEVEL EVENT blocks (see those summary articles for the other stuff) you see this code...
[LEVEL1]
<FLOAT>RANDOMRANGE:0
<INTEGER>COOLDOWNMS:60000
[EVENT_START]
<STRING>FILE:media/skills/arbiter/iceelemental/warmup.layout
[/EVENT_START]
[EVENT_TRIGGER]
<STRING>FILE:media/skills/arbiter/iceelemental/summoniceelem.layout
<STRING>TRIGGERNAME:hit
[AFFIXES]
<INTEGER>AFFIXLEVEL:1
<STRING>TARGET:PET
<STRING>AFFIX:ARBITER_ICEELEM_DUR0
[/AFFIXES]
[/EVENT_TRIGGER]
[EVENT_TRIGGER_FOUR]
<BOOL>CAN_CLONE:false
[AFFIXES]
<STRING>AFFIX:DUMMY_EMBERMAGE_AVATAR_DAMAGE
[/AFFIXES]
[/EVENT_TRIGGER_FOUR]
[/LEVEL1]
Lot's of cryptic stuff! What's important to remember is that a skill is executed by instructions placed in those "EVENT" blocks. There's only so many types of EVENT blocks in skills and you can
read-up on them here.
In
EVENT_START it says:
as soon as the skill is activated, trigger the file at "
media/skills/arbiter/iceelemental/warmup.layout".
- Sidenote: Usually stuff that says "warmup" is some pretty particle effects to give the skill that pizzazz.
- If you leave it as is, it'll play the same warmup effects used in the Astral Ally skill. You'll probably want to make it unique to your new skill, but that is outside of the scope of this little tut (but if you really want to, you can read up on that here).
- So you can either leave it in as-is, or delete the block entirely (in which case there wont be any warm-up particles, but the summon part will still work fine).
In
EVENT_TRIGGER it says:
When the skill reaches the trigger named "HIT", trigger the file at "
media/skills/arbiter/iceelemental/summoniceelem.layout".
- Sidenote: "HIT" is a specific frame in the animation that the skill is using, which has been labeled "HIT". All the vanilla animations have defined HIT points so this is something you can also just come back to later.
- This is the meat of this skill (given away by the word "summon") since summoniceelem.layout is the file that summons the "astral ally".
In
EVENT_TRIGGER_FOUR it says:
When the skill reaches HIT_FOUR, apply the affix named "
DUMMY_EMBERMAGE_AVATAR_DAMAGE."
- Sidenote: This is a "trick" EVENT used just to get the skill tooltip to display what kind of damage the summoned unit has. You'll find it a very useful trick, but for now you can just get back to it later.
- For the purpose of this tut, I actually recommend you just delete this whole block (the skill doesn't actually need it to work properly, so it's safe to delete) since you don't want to worry about its innards just yet.
So now open up that target layout file
media/skills/arbiter/iceelemental/summoniceelem.layout. There's a lot of stuff in it, but for this quick tut the important stuff is in that OBJECT block at the bottom...
[BASEOBJECT]
[PROPERTIES]
<STRING>DESCRIPTOR:Unit Spawner
<STRING>NAME:Unit Spawner0
<INTEGER64>PARENTID:-1
<INTEGER64>ID:4923483157928677854
<STRING>MIN RADIUS:0,1.5
<STRING>MAX RADIUS:0,4
<UNSIGNED INT>COUNT:1
<BOOL>SPAWN ON CREATE:false
<FLOAT>DURATION:0
<BOOL>DESTROY BODY:true
<STRING>RESOURCE:EMBERMAGEAVATAR
[/PROPERTIES]
[/BASEOBJECT]
It's a
"Unit Spawner" OBJECT which is standard for any skill that summons/spawns anything. It spawns whatever is defined in the line that starts with
<STRING>RESOURCE:.
Sidenote: RESOURCES to spawn are called by the internal NAME of the unit, rather than by a path+file-name.
Other useful parts of this Spawner OBJECT...
- <STRING>MIN RADIUS: / MAX RADIUS: - set the radius for the area within which the resource/s will be spawned
- <UNSIGNED INT>COUNT: - how many of the resource unit should be spawned
- <BOOL>SPAWN ON CREATE: - i only mention this one to say "do NOT set this to "true", even though the "false" setting seems so counter-intuitive!
- <FLOAT>DURATION: - time period over which the spawn/s should take place (so "0" is "instant")
Okay, so that covers how things get spawned. I gotta take care of stuff now, but i'll come back and edit this later.
Next up - A "Fire Golem" unit