Jump to content



Photo

Strange Eons Investigator Special Text


  • Please log in to reply
17 replies to this topic

#1 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 09 November 2010 - 09:19 PM

Is there a way to edit the special text on a custom investigator sheet marked by an *? For example, Luke Robinson starts in the Dreamlands and has special text to describe this.  I am trying to create an investigator that starts in an other world location and thus needs special text.  Can somebody please help me with this?



#2 Thelric

Thelric

    Member

  • Members
  • 249 posts

Posted 10 November 2010 - 11:29 AM

 Create a new investigator and choose an other world as home location. Then open the Quickscript plug-in and paste and run the following script:

Patch.card( Component, "footnote4-text", "<name> begins the game upside-down." );
Editor.forceRerender();
 

Cheers,
Chris



#3 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 10 November 2010 - 12:29 PM

Wow, that did the trick!  Thanks, Chris!  Now, what if I'm wanting to change BOTH the starting location text AND that footnote?  Could you help me with that, too, please?  Thanks!



#4 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 10 November 2010 - 10:18 PM

I'm also noticing that the expansion symbols don't appear in SE as they do on the actual cards.  For example, the Black Goat of the Woods icon on the cards has a white border so it stands out from the dark sections of the card (like a mythos card), but this icon actually becomes almost entirely invisible on a mythos card due to the lack of this white border.  Is there a toggle for this somewhere?  Does it need to be scripted somehow?  Thank you.



#5 Thelric

Thelric

    Member

  • Members
  • 249 posts

Posted 11 November 2010 - 01:12 AM

Create a new home location by clicking the star icon just to the right of the Home drop-down list. Make sure to specify that it is an other world if you want the footnote.

As for the problem with the icon, please file a bug report here and I'll look into it after I've submitted my dissertation. Note that this site is not public yet; don't bother creating an account or editing anything.

Cheers,
Chris



#6 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 11 November 2010 - 08:08 AM

So, I've tried making a new home and specifying it as other world, but it always has the 1st area or 2nd area notation on it and I'd like to get rid of that.  Any more tips? 



#7 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 11 November 2010 - 08:48 AM

I don't know why I'm not able to edit my posts, but oh well... another new reply...

So I've been trying to figure something out in SE for months now and nothing seems to work for me (probably due to my lack of knowledge of ANYTHING java).  On the mythos card, you can blank out the gate location and monster movement icons and the text on the card will adjust to fill out the missing space, and when you add a gate location or monster movement icon back into that space, the text will readjust itself again to compensate.  But on my card, when i add a pic or icon to the card, it shares the space with the text, so the text of the card is written over the pic.  Can you please help me with this?  Thank you!



#8 Thelric

Thelric

    Member

  • Members
  • 249 posts

Posted 11 November 2010 - 08:27 PM

 Instead of choosing Other World for the type of the custom location, choose Special, which also produces a footnote. Then change footnote5-text on the component instead of footnote4-text.

As for the second question, I'm not sure I understand what you're talking about. Could you perhaps post an image or a better explanation?

Cheers,
Chris



#9 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 11 November 2010 - 10:56 PM

You bet i can!

If you notice, they are BOTH using the Mythos card template, but the 2nd one (the one on the bottom) has the gate location and monster movement icons disabled and the text has been adjusted to fill the empty space.  I'm trying to create a DiY component that has the very same functionality:

I haven't figured out how to toggle the icon yet, although I have the check box in my UI, nor have I figured out how to move the icon to the upper left of the card... but one step at a time.  Actually, if you could show me how to do those things as well, I'd be VERY obliged.

I would like to have this icon in the upper left, have it toggle enabled like the Mythos card's gate location and monster movement, and when toggled on, have it displace the text to the right, and when toggled off, have the text be restored to fill the card again.  Thank you so much!!



#10 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 12 November 2010 - 08:16 PM

Another thing, please. On a unique item, can you show me how to decrease the spacing between the class and the text? So like, between where it says Tome and the actual card text?  I would like to simply move the card text up a bit to give myself some more room to match some of the game cards.



#11 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 17 November 2010 - 10:52 AM

So is this something you'd be able to help me with?  I'm not trying to rush you, just hoping you know how to do this. 



#12 Thelric

Thelric

    Member

  • Members
  • 249 posts

Posted 20 November 2010 - 06:23 AM

The following should get you started. Adapted from the Plot Card example in the plug-in authoring kit. For more complex layout examples, look at the Talisman and page shape examples.

 

uselibrary( "diy" );
uselibrary( "ui" );
uselibrary( "markup" );
uselibrary( "imageutils" );

function create( diy ) {
    diy.cardVersion = 1;
    diy.extensionName = "ForumExample.seext";
    diy.faceStyle = FaceStyle.PLAIN_BACK;
    diy.frontTemplateKey = "mythos-front-sheet";
    diy.backTemplateKey = "mythos-back-sheet";

    diy.name = "Shaping Young Minds";
    diy.comment = "";
    $Content = "Cultists have converted a popular and influential "
        + "professor to their cause. "
        + "Clue tokens may not be gained by any means at any Miskatonic "
        + "U. location. If the terror level reaches 4, immediately open a "
        + "gate at the Science Building as if a gate burst had occurred there."
        + "Instead of having an encounter at the Administration Building, "
        + "you may make a <b>Will< >(-2)</b> check to see the Dean. If you "
        + "pass, discard 5 Clue tokens to convince him that the professor is "
        + "dangerously insane and should be hospitalized. If no gate is open "
        + "on the Science Building, seal it using a token from the doom track.";
    $Octopus = "yes";
}

function createInterface( diy, editor ) {
    var container = new Grid( "fillx" );
    var bindings = new Bindings( editor, diy );

    var nameField = textField( "", 30 );
    var contentField = textArea( "", 4, 30, true );
    var octopusBox = checkBox( "Octopus!", true );

    container.place(
        "Title", "split", nameField, "growx, wrap",
        "Content:", "wrap",
        contentField, "gap i, growx, wrap",
        octopusBox, "wrap"
    );
    container.setTitle( "Forum Example" );

    diy.setNameField( nameField );
    bindings.add( "Content", contentField, [0] );
    bindings.add( "Octopus", octopusBox, [0] );

    container.addToEditor( editor, "Content", null, null, 0 );
    bindings.bind();
}

var contentBox;

// text region without image
var contentRegion = new Region( 55, 56, 226, 390 );
// text region with image
var octopusContentRegion = new Region( 55, 160, 226, 286 );

var octopusImage = Image.fetchImageResource( "icons/octopus.png", true );

function createFrontPainter( diy, sheet ) {
    contentBox = markupBox( sheet );
    contentBox.alignment = LAYOUT_CENTER | LAYOUT_MIDDLE;
    contentBox.textFitting = FIT_BOTH;
}

function paintFront( g, diy, sheet ) {
    sheet.paintTemplateImage( g );
    g.setPaint( Color.BLACK );

    // will be set to the region to use for the text
    // depending on whether the image is being drawn
    var region;

    if( $Octopus == "yes" ) {
        g.drawImage( octopusImage, 70, 45, null );
        region = octopusContentRegion;
    } else {
        region = contentRegion;
    }

    contentBox.markupText = "<h1>" + diy.name + "</h1>" + $Content;
    contentBox.draw( g, region );
}

function createBackPainter( diy, sheet ) {
}

function paintBack( g, diy, sheet ) {
}

function onClear( diy ) {
    $Content = "";
    $Octopus = "yes";
}

function onRead( diy, ois ) {
}

function onWrite( diy, oos ) {
}

testDIYScript();



#13 Thelric

Thelric

    Member

  • Members
  • 249 posts

Posted 20 November 2010 - 06:28 AM

Musha Shukou said:

Another thing, please. On a unique item, can you show me how to decrease the spacing between the class and the text? So like, between where it says Tome and the actual card text?  I would like to simply move the card text up a bit to give myself some more room to match some of the game cards.

Instead of setting a class explicitly, leave it blank and fill in the class as part of the item description. E.g.:

<size 9><b><i>Tome</i></b></size><size 10%>

</size>+1 to an <b>Anger Management</b>
<i>(Discard after use)</i>

 

Changing the 10% value will adjust the space.

Cheers,
Chris



#14 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 20 November 2010 - 06:35 PM

HAHA!!  That's awesome!  That worked perfectly; exactly what I was looking for!  Thank you so much!  Now, if you'd be so kind... I have ONE MORE issue/question and then I'll be done.  Is there a way to create a polygon region or to combine 2 different rectangular regions into one so that the text would use them as one region?  Using photoshop, I've displayed what I'm trying to accomplish below:

I got the toggle to work perfectly and even have it change the regions when it is toggled on, but I'd like the toggled ON region to look like the above so that it acts as a single region for purposes of text wrapping.  Is that even possible?  Again, I really appreciate your help.



#15 Thelric

Thelric

    Member

  • Members
  • 249 posts

Posted 20 November 2010 - 09:20 PM

Yes, it is possible. That is the feature demonstrated by the page shape example that I mentioned, the code for which can be found here. For the effect you want, you will only need a simple page shape: a CupShape with an inset on the left side at the top.

Cheers,
Chris



#16 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 21 November 2010 - 12:54 AM

Thank you for showing that to me, Chris.  But I have already looked at that, and while I can partially understand how that works and can see that the key code in all that is:

new PageShape.CupShape( 100, 0, referenceRegion.y + 100, 0, 0 ),  (yes, its altered around a bit from me tinkering with it..)

I just can't figure out how to integrate it from the combobox code to my checkbox/if code... Also, the demo has the makeWaveShape function.. do I need that, too?  and the createShape function?  or can all that be simplified since i just have a single variable with my checkbox?  I'm sorry to keep bugging you with this.... I am such a noob at this.



#17 Thelric

Thelric

    Member

  • Members
  • 249 posts

Posted 21 November 2010 - 05:52 AM

 

No, you don't need those functions since you won't be calling them. They are examples that create custom shapes. The shape you want, CupShape is built in.

To set a shape on a markup box, you use the box's pageShape property:

myMarkupBox.pageShape = myPageShape;
myMarkupBox.draw( g, myTextRegion );

In your case, the shape will either be PageShape.RECTANGLE_SHAPE  (a special shape that produces the standard non-indented result) or a CupShape that you will create ahead of time in createFrontPainter and store in a global variable (just like you do with the markup boxes).

In the part of the if statement that is executed when the image is shown, you will set the cup shape to flow the text around the image. In the part of the if statement that is executed when the image is not shown, you'll use RECTANGLE_SHAPE to get the standard text flow. For this card,, the actual region that the text is drawn in will be the same (the large rectangle from just under the title to the bottom of the card). Only the shape changes.

CupShapes are defined using 5 values:

flowAroundImageShape = new PageShape.CupShape( leftInset1, rightInset1, y, leftInset2, rightInset2 );

leftInset1, rightInset1 are the amounts that the margins in the top part of the shape will be reduced by
leftInset2, rightInset2 are the amounts that the margins in the bottom part of the shape will be reduced by
y is the point at which to switch from the top set of insets to the bottom set of insets

All you want to indent is the top left corner, so your values will be:

( indentAmount, 0, y, 0, 0 )

where:
    indentAmount is the width of the area where the images are displayed
    y is a y-position just under the bottom of the images

Cheers,
Chris

 



#18 Musha Shukou

Musha Shukou

    Member

  • Members
  • 452 posts

Posted 21 November 2010 - 10:17 AM

Well, after months of working on this I finally have it!!  I couldn't have done it with out you.  Thank you, Chris!






© 2013 Fantasy Flight Publishing, Inc. Fantasy Flight Games and the FFG logo are ® of Fantasy Flight Publishing, Inc.  All rights reserved.
Privacy Policy | Terms of Use | Contact | User Support | Rules Questions | Help | RSS