HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Advanced Attack Engine

09-29-2009, 01:29 PM#1
Anachron
Hey :D

I am creating an advanced engine for attacks.
This is concept. Please tell me what you think about it:

Click image for larger version

Name:	AdvancedAttackEngine.png
Views:	273
Size:	100.7 KB
ID:	45981
AdvancedAttackEngine.7z

Documentation


Advanced Attack Engine
By dhk_undead_lord / Anachron
a vJass Attack Engine
Oct 2009

Table of content:
  • Concept
  • Explaination
  • About
Concept
As I used to see more and more, there have been no attack engine that fits to most of the users requirements, such as customization, acessability and efficence, which has been put together in an advanced attack system, that will create attacks from beginning, move missles, run interfaces and deal damage to the targets, even bounces the missles if user said so.

Because of that, I decided to create my Attack Engine!
Explaination
You might ask: How does this work?

Well its pretty like this:
  • Create your own attacktypes
  • Create your own UnitAttackData (AttackType, MissleData, DamageData, with everything included)
  • Force an attack of a unit
  • System loads the UnitAttackData for the unit type
  • If sucessed, the system will clone it and use the new object
  • Now you have acess to all of the data of the unit attack
  • The system now overwrites the UAD with the Data you have chosed (It runs the AttackType interface for onInit to initialize the values)
  • Now the attack is on casting... Missles will be moved here, interfaces will be runned, until the damage has been forced
  • Damage will be dealt and all other posabilities will be checked.
  • If attack has no new target, destroy it.
About
This was a short explaination about my system.

Version 1.00.
By dhk_undead_lord / aka Anachron

Thanks for reading!

Attached Images
File type: pngAdvancedAttackEngine.png (100.7 KB)
Attached Files
File type: 7zAdvancedAttackEngine.7z (55.1 KB)
09-29-2009, 06:14 PM#2
Tot
COOL <3

GET IT DONE GET IT DONE GET IT DONE

that's what I tried to do, but failed --> need it

09-29-2009, 06:26 PM#3
Anachron
Update:
  • Alllowed to add additional Data to all attacks.
  • Did 75% of the system and works until yet.
  • Added a few more Data Objects.
  • Added new interfaces.
  • Added an optional DamageTable.
  • Might add an additional DamageEngine, which can detect whether damage is done by attack, spell or system.
  • Reworked a bit of the engine, now works flawlessy.
09-29-2009, 06:35 PM#4
Alevice
bah, as much as I hate UMl, this aint that readable IMO :P
09-29-2009, 06:38 PM#5
Anachron
Well, basicly I am remaking the wc3 attack engine by 100%, allowing every aspect to changed ingame, and hooking it to a damage detection engine, which will easily handle those attacks. You can then detect damage event types like system, spell or attack without having orb abilities or stuff like that.

And for ultimative user customisation, I have a ton of interfaces which allow users to use their own functions to run in the system.

Until yet I have 15 librarys so far.
09-29-2009, 07:09 PM#6
TKF
Ehm, that is so fricking complicated that I don't understand it.
09-29-2009, 07:12 PM#7
Tot
when will it be finished? I'm so excited....

would it be useable in pre and post 1.23 maps?

Quote:
Originally Posted by Anachron
Might add an additional DamageEngine, which can detect whether damage is done by attack, spell or system.

can this detect also the amount of damage dealt?
will you add a Miss/Crit/Evasion system?
can the user add easily some fancy missile curves (like sine or triangle movement)?

09-29-2009, 07:20 PM#8
Anachron
Quote:
Ehm, that is so fricking complicated that I don't understand it.
Basicly, the system provides you as much comfort as it can.
You decide which attack has which data, the system will handle it for you.

Quote:
when will it be finished? I'm so excited....
Well, I started on sunday, and hopefully the first BetA will come out this sunday.

Quote:
would it be useable in pre and post 1.23 maps?
Yes, since I use Table, you only have to replace Table versions in order to make it work with 1.23 or less.

Quote:
can this detect also the amount of damage dealt?
Sure, basicly it can do everything you program it to.

Quote:
will you add a Miss/Crit/Evasion system?
You would be able to, with an system hook, but I don't know if I do one for my own.

Quote:
can the user add easily some fancy missile curves (like sine or triangle movement)?
Sure, but remember, until yet you must define when the missle reached target, so the attack can trigger. I might also change that.

Quote:
Just wait until its done. Until yet I only have a homing missle with an attackdamage, I need to work on bounce, area, parabolic movement and a few interface things. (And system stuff)
09-29-2009, 07:56 PM#9
Tot
Quote:

Quote:
when will it be finished? I'm so excited....
Well, I started on sunday, and hopefully the first BetA will come out this sunday.

YUHU....

Quote:
Quote:
would it be useable in pre and post 1.23 maps?
Yes, since I use Table, you only have to replace Table versions in order to make it work with 1.23 or less.

but you can either use table for 1.23- OR 1.23+ but NOT for 1.23- AND1.23+

why not using some autoindexer like grim001's autoindex, (linked) list, ani's stack or something without gamecache/table/whatever?
09-29-2009, 08:02 PM#10
Anachron
Quote:
YUHU....
Don't count on it, ... I might have most things done, but still I need to find a few mistakes... And I won't have that time next days.

Quote:
but you can either use table for 1.23- OR 1.23+ but NOT for 1.23- AND1.23+
You could, if you replace Table with a Table 1.23 System.

Quote:
why not using some autoindexer like grim001's autoindex, (linked) list, ani's stack or something without gamecache/table/whatever?
Hell, how much systems should I use? I already have about 15 librarys, including mine.
09-30-2009, 06:47 AM#11
grim001
You can't occupy UserData in public units. Use a unit indexing system. It will improve the performance of your system, too.
09-30-2009, 07:53 AM#12
Anachron
Quote:
You can't occupy UserData in public units. Use a unit indexing system. It will improve the performance of your system, too.
Please read carefully! I didn't meant I use UserData, but you can then attach Data object to the unit attack. Thats what I meant. I will surely use an indexing system for UserData, if I add this myself to the system. This is just a hook to user defined methods and members which can be stored on attack.
09-30-2009, 08:37 AM#13
grim001
OK, but you're still going to need to attach data to units for your system. Systems like this can be very performance-intensive when used on a map with a lot of units, so using unit indexing rather than a slower attachment method would be a good idea.
09-30-2009, 08:45 AM#14
Anachron
Quote:
Originally Posted by grim001
OK, but you're still going to need to attach data to units for your system. Systems like this can be very performance-intensive when used on a map with a lot of units, so using unit indexing rather than a slower attachment method would be a good idea.
I don't have to, because that is not basics part of the system. Basic will only be an triggered attack, with a few bonus modules, like:
  • DamageTable (Add own attack and armortypes!)
  • DamageDetectionEngine (Detect whether a damage is dealt by attack, spell or system!)
  • AttackObject-UserData (Add methos and members to the attack! [Here do I need the UserData and autoindexing])
  • And maybe: MissleMovement (A helper for missle movements)
09-30-2009, 11:37 AM#15
Spellbound
Sounds awesome, but I can't make heads or tails of this thing, but I have 2 questions, possibly stupid ones, but I'll ask anyway. Will this:

Require JASS knowledge (Coz I dnt understand snoozeroo about JASS)?
enable you to detect whenever a missile is launched from an attacking unit?