Another Character Generator

By OggDude, in Star Wars: Edge of the Empire RPG

So I'm not sure if this is due to a conflict of Unofficial Species Minagerie and official books, or if it's just a mistake, but the program gives Mirialan a rank in Discipline and Cool (but in F&D, they only have a rank in Discipline).

Sorry if this has been asked before, but it is now an awesomely LONG thread.

In the GM tools, when building encounters, is there a way to add equipment/talents to an adversary, without having to make a custom copy of the adversary? I see that I can add an alternate name to them, but it would be great to be able to add other stuff on the fly.

For example, in encounter one I can add a stormtrooper minion group, but I want them to also be equipped with missile tubes and have the encounter printout list the stats and such as appropriate.

In encounter two, I have a nexu but I want to add adversary 1 to him or add a few talents to up his wounds.

Short answer: No, you'd need to copy the adversary and adjust anything about them you want to be different.

One thing I did, I had some Rodian thugs who used melee weapons and some who used ranged weapons. I just put both weapons and both skills on the Adversary when I created it. So I only needed one stat block, I could just use whichever weapon they needed to have.

I do the same thing. You can explain how it works by using he encounter description, which is printed at the top of the encounter sheet, or maybe a short note in the alternate name.

So I'm not sure if this is due to a conflict of Unofficial Species Minagerie and official books, or if it's just a mistake, but the program gives Mirialan a rank in Discipline and Cool (but in F&D, they only have a rank in Discipline).

Miralans got a rank in Cool in Update #2, so it's working correctly.

Couldn't sleep tonight :)

Release 1.3.3.0
New/Changed Data:
  • Added adversaries and encounters for the "Debts to Pay" adventure found in the Edge of the Empire GM's Kit. Read the READ ME FIRST.txt file first.
  • Added adversaries, encounters, stock vehicles, and custom data for the "Onslaught at Arda I" adventure module. Read the READ ME FIRST.txt file first.
  • Added the TIE Hunter from Onslaught at Arda I to the main data.
  • Added the MSP100 Pteropter Hover Pod from Onslaught at Arda I to the main data.
  • The J-Type Skiff and Lancer Frigate's silhouettes were facing the wrong way. They are now facing properly.
  • Changed Bantha laser sight to have a new item descriptor that adds advantage to successful rolls. This is used on the shown weapon list on the first page of the character sheet.
New Features and Enhancements:
  • Weapon, armor, and gear grids on the character sheet now include a sub-total of the encumbrance of held items at the bottom of the grid. Additionally, all common columns, such as name, quantity and encumbrance, have been moved to the front and will line up.
  • Added Two-Weapon sets. If you want to use two weapons, you can now configure how you want these sets to look. Select a primary weapon from the owned grid in the inventory pane and click the new "Two-Weapon Sets" button. This will bring up a dialog that allows you to select one or more secondary weapons from your inventory. Each set can be shown or not on the first page of the character sheet by clicking the check box next to the secondary weapon. Each weapon that has a two-weapon set will be displayed with a two pistol icon on the grid. On the character sheet, the same icon will be displayed for a set, as well as both weapon names, both skills (if different), both ranges (if different), both crits (if different), and a dice pool made up of the lowest skill rank and characteristic of the two weapon skills. If a secondary weapon contributes an advantage or threat to the pool after it is activated, that is also shown on the dice pool, following a slash. The "Special" column will have weapon qualities for both the primary and secondary weapon.
  • In the adversary dialog, when creating a custom weapon, there's now a checkbox next to the skills combo box that will allow you to choose any skill, not just combat skills.
  • In the adversary dialog, when adding or inserting special abilities, custom armor, items, or weapons, the one just added or inserted is now automatically selected and is ready to edit.
  • The Characteristics pane of the character generator now supports injuries, or loss of characteristics. To lower a characteristic due to a critical injury, check the "Allow adding or removing injuries" checkbox. A new column will appear for characteristics that allow you to add injury points to a characteristic. For each injury point added, the characteristic is reduced by one and the final characteristic is displayed in red. A characteristic cannot be lowered below one.
  • Added a new button to the Description pane called "GM Grants". This button will bring up a dialog that allows the user to select non-standard options that his GM deems available to the character. Currently, only one grant exists, which allows a GM to grant a FR of 1 to a character for free. GM Grants are defaulted to being NOT available. To make GM Grants available to the generator, go to the Options dialog and check "Allow GM Grants". If this option is not checked, any selected GM Grant for any character will be ignored.
Bug Fixes:
  • The web controls in the career pane weren't growing down properly when the form was expanded. It should now grow down properly.
  • The new adversary name search feature wasn't added to the encounter dialog. Choosing an adversary in the encounter dialog now supports the name search filter.
  • A rare error occurred when upgrading vehicle weapons. If a vehicle had, say, two weapon groups, and after upgrading all weapons to the same weapon, the vehicle ended up having only one weapon group, an error would occur. This was because the weapon upgrade was still expecting that second weapon group to exist so it could obtain a reference to the stock weapon. Each weapon upgrade will now have its own reference, so the error will no longer occur.
  • When upgrading weapons, the cost of the upgrade would only be valid if the linked quality changed, and 0 if it did not. Upgrading an existing weapon to another weapon will now give the proper cost of the new weapon, including half again for each additional Linked quality added.
  • When importing a data set, the skill validator expected a valid Key value in the SkillModifier class used in species and other places. However, the SkillModifer class had been recently updated to include a SkillType, which allowed the modification to be applied to all skills of a particular type. When used like this, the Key was blank. This caused skill validation to fail because it could not find a skill with a blank key. This situation is now handled properly by the skill validator.
  • When selling items, the sell price was being multiplied by the quantity twice. So, for instance, if you sold 5 of something at 100 credits each, instead of getting back 500 credits, you'd get back 2500 credits. This has been fixed.
FaD Update #2:
  • Added Fallen Apprentice and Fallen Master adversaries.
FaD Update #4:
  • Dark side Force users may now get a wound bonus for low morality.
  • Made all changes to Protector, Soresu Defender, Shadow, and Aggressor specialization trees.
  • Added Prey on the Weak talent. Resolve and Unrelenting Skeptic are still in the talents collection, but are unused.

Dude, awesome work !

Anyway you need to rest sometimes 'cause we want you to keep on working on this amazing tool... :lol:

This reminds me of some law when programming : the first 90% of your work require 90% of your time.. the remaining 10% also do ! :blink:

So I'm not sure if this is due to a conflict of Unofficial Species Minagerie and official books, or if it's just a mistake, but the program gives Mirialan a rank in Discipline and Cool (but in F&D, they only have a rank in Discipline).

Miralans got a rank in Cool in Update #2, so it's working correctly.

My apologies. I saved the updates but hadn't read them yet. Teach me to leap before looking :/

So I'm not sure if this is due to a conflict of Unofficial Species Minagerie and official books, or if it's just a mistake, but the program gives Mirialan a rank in Discipline and Cool (but in F&D, they only have a rank in Discipline).

Miralans got a rank in Cool in Update #2, so it's working correctly.

My apologies. I saved the updates but hadn't read them yet. Teach me to leap before looking :/

Heck, I'm usually oblivious that an update even came out :) Someone has to remind me to look in the forum. When I see a post like "Did you make the blah blah changes yet?", I generally have no idea what they're talking about! Someone else usually has to write back and mentions "It's something in update #X" before I think "Oh, that's out already?" :)

More donation high-fives go out to our very own Drighton! You da man! It's very appreciated :)

Thanks again for the injury option on characteristics. Unfortunately, while the injury does decrease the selected characteristic, selecting Brawn or Willpower is not lowering the corresponding threshold. Decreasing willpower does not lower the strain threshold. Decreasing brawn does not lower the wound threshold. Soak and encumbrance are lowered just fine when Brawn is selected, its just wounds and strain.

Thanks again for the injury option on characteristics. Unfortunately, while the injury does decrease the selected characteristic, selecting Brawn or Willpower is not lowering the corresponding threshold. Decreasing willpower does not lower the strain threshold. Decreasing brawn does not lower the wound threshold. Soak and encumbrance are lowered just fine when Brawn is selected, its just wounds and strain.

Oh, yeah, that would happen, wouldn't it? :) I have special properties for figuring those out, since not all sources of characteristics apply to it, and I forgot to include the new injury setting. I'll take care of it in the next release :)

Thanks again for the injury option on characteristics. Unfortunately, while the injury does decrease the selected characteristic, selecting Brawn or Willpower is not lowering the corresponding threshold. Decreasing willpower does not lower the strain threshold. Decreasing brawn does not lower the wound threshold. Soak and encumbrance are lowered just fine when Brawn is selected, its just wounds and strain.

Oh, yeah, that would happen, wouldn't it? :) I have special properties for figuring those out, since not all sources of characteristics apply to it, and I forgot to include the new injury setting. I'll take care of it in the next release :)
Edited by rowdyoctopus

It actually wasn't quite what I thought, but I was still able to move the logic to a single place, so no place outside the ranks class needs to know about injury now.

One thing I'm not sure of, though... Wound and strain only figure off of species + purchased brawn and willpower. I'm now subtracting injury from that when figuring them out. However, if you have a rank of Dedication for Brawn, or cybernetic Brawn increases, etc., I'm wondering if injuries should be taken off of those first, before being applied to the wound (and strain) bases... hmmm...

i got this error what switching from color background to color no background

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ArgumentException: Parameter is not valid.
at System.Drawing.Graphics.GetHdc()
at System.Windows.Forms.Control.DrawToBitmap(Bitmap bitmap, Rectangle targetBounds)
at SWCharGen.frmPrintCharacter.GetControlBitmap(Control myControl)
at SWCharGen.frmPrintCharacter.DoPowerTree(List`1 pages, Boolean bw)
at SWCharGen.frmPrintCharacter.GenerateCharSheet()
at SWCharGen.frmPrintCharacter.myDoc_PrintPage(Object sender, PrintPageEventArgs e)
at System.Drawing.Printing.PrintPageEventHandler.Invoke(Object sender, PrintPageEventArgs e)
at System.Drawing.Printing.PrintDocument.OnPrintPage(PrintPageEventArgs e)
at System.Drawing.Printing.PrintDocument._OnPrintPage(PrintPageEventArgs e)
at System.Drawing.Printing.PrintController.PrintLoop(PrintDocument document)
at System.Drawing.Printing.PrintController.Print(PrintDocument document)
at System.Drawing.Printing.PrintDocument.Print()
at SWCharGen.CoolPrintPreviewControl.RefreshPreview()
at SWCharGen.CoolPrintPreviewDialog._btnStyle_DropDownClosed(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripDropDownItem.OnDropDownClosed(EventArgs e)
at System.Windows.Forms.ToolStripDropDownItem.DropDown_Closed(Object sender, ToolStripDropDownClosedEventArgs e)
at System.Windows.Forms.ToolStripDropDown.OnClosed(ToolStripDropDownClosedEventArgs e)
at System.Windows.Forms.ToolStripDropDown.SetVisibleCore(Boolean visible)
at System.Windows.Forms.ToolStripDropDown.OnItemClicked(ToolStripItemClickedEventArgs e)
at System.Windows.Forms.ToolStrip.HandleItemClick(ToolStripItem dismissingItem)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Haven't had a printing error in quite awhile. Can you send me the character that caused this?

I am also getting something weird. the page is not scaling to fit the page on the actual print out. it is this little tiny image in the corner.

Haven't had a printing error in quite awhile. Can you send me the character that caused this?

Sent to your Gmail. also included a PDF I printed that the character sheet is not filling the page for some reason.

Closed and reopened and it is working ok now. So something went screwy. hopefully the files i sent will help clear up whatever happened. :)

Edited by Daeglan

Yeah, it worked fine for me, too, for the most part. I think it could be a memory problem. 12 pages is quite a bit, especially if you switch styles and it has to redraw all of the bitmaps again. After switching styles three times, I did get some blank pages, so yeah, it was eating up a lot of RAM :)

Oh i noticed Ancient swords list their damage is listed as zero on one of my characters.

Oh i noticed Ancient swords list their damage is listed as zero on one of my characters.

Good catch. Yeah, it's because it has a +damage, rather than a damage value. For Melee and Brawl weapons of this type, you add Brawn to get the total damage. But Ancient Sword is weird, in that it uses the Lightsaber skill, so it was expecting a straight damage value. I guess I need to check for this situation for Lightsaber type weapons as well.

On the character selection screen, if you select a campaign to filter by and then Click New, it will throw the following exception:

************** Exception Text **************
System.InvalidOperationException: FirstDisplayedScrollingRowIndex property cannot be set to an invisible row.
at System.Windows.Forms.DataGridView.set_FirstDisplayedScrollingRowIndex(Int32 value)
at SWCharGen.Form1.CreateCharacterPanel(CharacterDisplay selChar)
at SWCharGen.Form1.MyChar_CharacterChanged(Object sender, CharEventArgs e)
at SWCharGen.Character.ChangeCharacter(ChangeEnum what)
at SWCharGen.Character.Recalc(ChangeEnum what)
at SWCharGen.Character.NewCharacter()
at SWCharGen.Form1.CharacterButtonClick(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at SWCharGen.ImageButton.OnClick(EventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Request.

the ability to select a group you have set up to print with an encounter. So basically when you hit print it has a drop down and you select the group and it will include all those PCs into the encounter.

On the character selection screen, if you select a campaign to filter by and then Click New, it will throw the following exception:

************** Exception Text **************
System.InvalidOperationException: FirstDisplayedScrollingRowIndex property cannot be set to an invisible row.
at System.Windows.Forms.DataGridView.set_FirstDisplayedScrollingRowIndex(Int32 value)
at SWCharGen.Form1.CreateCharacterPanel(CharacterDisplay selChar)
at SWCharGen.Form1.MyChar_CharacterChanged(Object sender, CharEventArgs e)
at SWCharGen.Character.ChangeCharacter(ChangeEnum what)
at SWCharGen.Character.Recalc(ChangeEnum what)
at SWCharGen.Character.NewCharacter()
at SWCharGen.Form1.CharacterButtonClick(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at SWCharGen.ImageButton.OnClick(EventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Cool :) You have to first select a character that isn't part of the campaign, and then filter by that campaign. Then when you click New, you'll get the error.

Anyway, easy enough to fix :)

Hey Ogg, great changes in the latest rounds of updates! Thanks for fixing the Camaasi!

Feature request : Can we get a toggle to not print our current XP and credit values, so we can pencil in those values in their respective boxes? I'm not one to reprint every session, but it does start to look kind of messy to have big bold font crossed out with penciled-in notes in the "margins".

Thanks again for all your hard work!

Hey Ogg, great changes in the latest rounds of updates! Thanks for fixing the Camaasi!

Feature request : Can we get a toggle to not print our current XP and credit values, so we can pencil in those values in their respective boxes? I'm not one to reprint every session, but it does start to look kind of messy to have big bold font crossed out with penciled-in notes in the "margins".

Thanks again for all your hard work!

That was basically what the "Acquired Experience" box was for, so you could write on-the-fly changes to your XP between printings.

Request.

the ability to select a group you have set up to print with an encounter. So basically when you hit print it has a drop down and you select the group and it will include all those PCs into the encounter.

Hey Ogg, great changes in the latest rounds of updates! Thanks for fixing the Camaasi!

Feature request : Can we get a toggle to not print our current XP and credit values, so we can pencil in those values in their respective boxes? I'm not one to reprint every session, but it does start to look kind of messy to have big bold font crossed out with penciled-in notes in the "margins".

Thanks again for all your hard work!

That was basically what the "Acquired Experience" box was for, so you could write on-the-fly changes to your XP between printings.

i think you might have missed my feature request. :)