Sins of a Solar Empire : Real-Time Strategy. Unrivalled Scale.
© 2003-2016 Ironclad Games Corporation Vancouver, BC. All rights reserved.
© 2006-2016 Stardock Entertainment

[Mod Utility] Buff Builder Version 1.0 for Rebellion 1.82

A Buff Chain IDE

By on July 11, 2014 9:51:20 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums External Link

Volt_Cruelerz

Join Date 06/2008
+94

Yes, i finally did it.  After years of complaining that someone should do it, I went ahead and did it myself.

Summary: An IDE for modding Sins with the express purpose that no modder ever need dirty their hands in the actual ability and buff files again.  The IDE takes care of the messiness of the syntax and leaves the modder free to focus on the logic of the buff chain.

 

Documentation available on Google Drive 

 

Future Release Goals:

  • group select features
  • invoke ConvertData.exe during import/export
  • logic gate stamps

If they make Sins II with the same mod system:

  • Make it into a general-purpose entity editor

 

The code for this project can be found on Google Code.

Specifically, the compiled release version can be found on the Google Code repo as:

trunk/buff-builder/VoltBuffBuilder/BuffBuilderGUI/deploy/BuffBuilder.jar

For those that are lazy, here is a direct link: download version 1.0

Please note that you will need Java to run this.

Pinned, Locked Post 23 Replies +1
Search this post
Subscription Options


Reason for Karma (Optional)
Successfully updated karma reason!
July 11, 2014 10:12:17 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Woa!

Reason for Karma (Optional)
Successfully updated karma reason!
July 11, 2014 10:59:34 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

I am assuming this will allow us to build a buff and test it out of game? Would be nice.

Reason for Karma (Optional)
Successfully updated karma reason!
July 12, 2014 7:19:28 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Ditto!

Reason for Karma (Optional)
Successfully updated karma reason!
July 12, 2014 2:50:37 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Ultimately, the idea is that it will be able to perform much of work required with making buff chains.  You simply fill out the properties and it takes care of the rest, prompting you with what to put where and when.

Currently, all Abilities and Buffs spawn with default properties as I have not bothered messing with I/O yet and won't for a long time.  The majority of the work on this will be in the form of what I'm calling Pluggables.  These are the conditional parts of an entity file that only appear if you gave some value previously.  Basically, I have to rebuild the buff system from scratch in here and it's going to take a while.  Some Pluggables have sub-Pluggables, others have properties, and others have no properties.

After I finish accounting for all Pluggables, the only thing remaining (aside from what I'll mention below...) for a base release would be I/O.  Eventually, things like premade logic gates would added.  I also plan to add more elaborate selection systems (shift+click, rectangle select, etc) along the line as well.

 

Also... if someone could write a java class that draws a line between two JComponents and maintains that connection even when the JComponents are dragged around the screen, I would be very grateful...  

 

EDIT: new picture of progress

Reason for Karma (Optional)
Successfully updated karma reason!
July 14, 2014 9:14:42 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

I now have a line-drawing class but am running into difficulties getting the darn things to repaint.

Reason for Karma (Optional)
Successfully updated karma reason!
July 15, 2014 2:13:02 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting Volt_Cruelerz,
Also... if someone could write a java class that draws a line between two JComponents and maintains that connection even when the JComponents are dragged around the screen, I would be very grateful..

What framework are you using? Surely that has to be in Swing or one of the other libraries.

Reason for Karma (Optional)
Successfully updated karma reason!
July 15, 2014 10:03:19 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Swing. I'm trying to call the repaint method from the mouse dragged event so that the arrows will line up, but they stubbornly refuse to exist even in the first place.

 

Edit: I rewrote part of it and I think I know how to fix it now.

Reason for Karma (Optional)
Successfully updated karma reason!
July 15, 2014 7:23:13 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Line drawing now functions as intended.

Updated OP with new picture.  The OP also now has a link to the source.

Reason for Karma (Optional)
Successfully updated karma reason!
July 20, 2014 4:02:02 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Massively overhauled the way that pluggables work.  The visual difference is small, but in terms of how it works, the difference is very large.  This will make them both more usable and IMO look nicer.  Down the line, it will also make adding new pluggables faster.

The next steps will be to finish support for the other sorts of pluggables, change the output lines to be drawn from the new output ports (those new colored blocks on the right sides of panels), and make pluggable blocks have more useful titles

Reason for Karma (Optional)
Successfully updated karma reason!
July 27, 2014 5:55:57 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Wow!  Great work.

Reason for Karma (Optional)
Successfully updated karma reason!
July 27, 2014 10:18:16 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

The thing is, at this point, the only thing left to do (before handling i/o) is just to hook the darn thing up to the plethora of actions in the game which is easy enough, but incredibly time consuming and I'm building a computer at this point, so I have more interesting ways to spend my time than copy+paste a few hundred times.  

 

HELP ON THIS WOULD BE VERY MUCH APPRECIATED!

Reason for Karma (Optional)
Successfully updated karma reason!
August 10, 2014 4:10:35 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Now that my new computer has been put together, I've been able to get back to this.

After spending more or less the entire Saturday on it, I've made some major progress!

Most critically, I now have InstantActions up and running and can export abilities.  Bear in mind that it's not yet idiot proof or capable of saving your work or even of exporting more than once per session.  The point is though, it exports successfully and those ability exports can in fact be loaded by the game 

I hereby present to you the first Ability generated by the export system and successfully loaded into the game:

TXT

entityType "Ability"
buffInstantActionType "DoInterrupt"
instantActionTriggerType "OnDelay"
delayTime 0.500000
needsToFaceTarget TRUE
canCollideWithTarget FALSE
moveThruTarget FALSE
isUltimateAbility FALSE
maxNumLevels 0
levelSourceType "FixedLevel0"
aiUseTime "Anytime"
aiUseTargetCondition "Any"
isAutoCastAvailable FALSE
isAutoCastOnByDefault FALSE
pickRandomPlanetToExploreForAutoCastTarget FALSE
ignoreNonCombatShipsForAutoCastTarget FALSE
onlyAutoCastWhenDamageTakenExceedsPerc 0.000000
useCostType "AntiMatter"
antiMatterCost
Level:0 0.000000
Level:1 0.000000
Level:2 0.000000
Level:3 0.000000
cooldownTime
Level:0 0.000000
Level:1 0.000000
Level:2 0.000000
Level:3 0.000000
orderAcknowledgementType "ONGENERALORDERISSUED"
researchPrerequisites
NumResearchPrerequisites 0
RequiredFactionNameID ""
RequiredCompletedResearchSubjects 0
nameStringID ""
descStringID ""
hudIcon ""
smallHudIcon ""
infoCardIcon ""

For the record, all of those fields could have been set to more interesting things, but due to my laziness, I just left them as what my program sets as the default.

Reason for Karma (Optional)
Successfully updated karma reason!
August 12, 2014 3:16:24 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Release 0.2!!!

All pluggables integrated.  I make no guarantees regarding lack of bugs with that.  I'll need help finding all of them.

At this point, the program can export both buffs and abilities as well as all pluggables for either.  In other words, you can now use it just as you would if you were manually creating things.  It is not yet fool-proof nor is it capable of saving a buff chain to reload later, but so long as you don't close it, you'll be able to continue working on it without ever having to touch the entity files themselves

Reason for Karma (Optional)
Successfully updated karma reason!
August 15, 2014 1:28:39 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

You know, I'm actually kinda surprised that there have been no other comments by others for a while...

Regardless, release 0.3 is live.  Import and export are live.  Never again should anyone have to touch an ability or buff file!  I intend to do more, but the point is, with this release, editing with Notepad++ is now obsolete!

Next order of business will be making it invoke ConvertData when importing and exporting.  Then I'll work on saving at the project level.  Following that comes idiot proofing.  Last comes documentation.

Reason for Karma (Optional)
Successfully updated karma reason!
August 15, 2014 10:46:37 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

I'm keeping track.  I just haven't had much of a need for it yet.

Reason for Karma (Optional)
Successfully updated karma reason!
August 16, 2014 12:38:33 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Well, at least someone is paying attention

 

Anyways, release 0.4 is out.  With this release comes numerous QOL improvements and most importantly, saving/loading at the project level.  Please bear in mind that saving/loading (and probably importing/exporting as well) a PeriodicAction can be semi-wonky at the moment and the InstantAction it invokes will not be preserved across saves.  This will be fixed in future versions.

ConvertData is proving to be a royal pain in the neck.  If anyone has any desire to help, please head over to the modders' help thread and take a look at my post there.

Aside from fixing PeriodicActions, the only thing left for the base release is making it so that the help is actually useful!  We're getting close!

Reason for Karma (Optional)
Successfully updated karma reason!
August 16, 2014 6:55:59 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Release 1.0 is out!

For those following this thread, note that it does not yet support loading files that are already BIN'd.

I emailed Yarlen earlier about getting this stickied.  Hopefully he responds soon.

Reason for Karma (Optional)
Successfully updated karma reason!
August 21, 2014 12:09:18 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Congratulations on the sticky!

Reason for Karma (Optional)
Successfully updated karma reason!
August 21, 2014 9:49:58 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Too bad it's not an Eclipse plugin

 

BTW, I tried running 1.0 and it gives a NumberFormatException with entityType "Ability" as the line in error. Tried against the games reference files too.

 

Reason for Karma (Optional)
Successfully updated karma reason!
August 21, 2014 11:02:58 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

@ZombiesRus5,

Now why have I never noticed the animated blood coming from your avatar's mouth before now??

Reason for Karma (Optional)
Successfully updated karma reason!
August 21, 2014 12:05:52 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting ZombiesRus5,

Too bad it's not an Eclipse plugin

 

BTW, I tried running 1.0 and it gives a NumberFormatException with entityType "Ability" as the line in error. Tried against the games reference files too.

 
Could you tell me a specific file you tried to open that gave that error?

Reason for Karma (Optional)
Successfully updated karma reason!
August 21, 2014 3:58:11 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Disregard, I misunderstood your menu options.

Reason for Karma (Optional)
Successfully updated karma reason!
August 21, 2014 4:18:29 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Quoting furyofthestars,

@ZombiesRus5,

Now why have I never noticed the animated blood coming from your avatar's mouth before now??

I kept it subtle

Reason for Karma (Optional)
Successfully updated karma reason!
Stardock Forums v1.0.0.0    #108432  walnut2   Server Load Time: 00:00:00.0000157   Page Render Time: