<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
    <channel>
        <title>DarkCampainger's site</title>
        <link>http://www.byond.com/members/DarkCampainger</link>
        <description></description>
        <lastBuildDate>Tue, 21 May 2013 18:13:05 +0000</lastBuildDate>
        <language>en-us</language>
    
                <item>
            <title>Version 1.2 - FOV, range, and demo foo</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=983300</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=983300</guid>
            <pubDate>Thu, 20 Sep 2012 18:25:06 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=983300#comments</comments>
            
            <description>Back when this library was originally released, Moussiffer suggested a feature to limit the line of sight to the area in front of the mob. The more I thought about it, the more I liked the idea, and finally (wow, it's already been a month!) a &quot;field of view&quot; argument has been added!&lt;br&gt;
&lt;br&gt;
&lt;center&gt;&lt;img src=&quot;/games/hubpic/102778_11834.png&quot; height=&quot;352&quot; width=&quot;352&quot;&gt;&lt;/center&gt;
&lt;br&gt;
&lt;br&gt;
To limit the FOV like in the above image, you simply have to pass your desired FOV to InLineOfSight():&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
InLineOfSight(source, target, fov=60, range=96)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
I also added a range limit argument, so if you have a specific target in mind (as opposed to looping through a nearby range()) or just want a nice circular range, it can handle that for you.&lt;br&gt;
&lt;br&gt;
One important thing to note is that the FOV argument is the distance in degrees that the target can be from the source's sight vector, meaning that it's actually half the value of what the final visible arc will be.&lt;br&gt;
&lt;br&gt;
As a small optimization, you can also pass a negative value holding the cosine of the FOV angle (which you can cache on your mob):&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
&lt;span class=&quot;dmcomment&quot;&gt;// Identical to the previous example, but doesn't need a cos() call&lt;/span&gt;&lt;br&gt;InLineOfSight(source, target, fov=-0.5, range=96)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
You can use the fovX and fovY arguments to define the source's sight vector (direction). If left blank, it will default to the source atom's direction. If only fovX is set, it will be treated as a direction flag (eg NORTH, SOUTH, ect). If both are set, they are treated as a vector (preferably normalized, but it will do that for you).&lt;br&gt;
&lt;br&gt;
Finally, I updated the demo with a little &quot;cat and mouse&quot; mechanic. Basically, you're a thief (yellow block), and if the guards (black blocks) spot you, they'll chase you until you leave their line of sight. I did this because I didn't want to give people the wrong idea about the library: it &lt;i&gt;isn't&lt;/i&gt; for drawing a visible cone in front of the mobs, that's just there to show how it works. If you want a visual cone in front of your mobs, I would suggest using a pregenerated graphic.&lt;br&gt;
&lt;br&gt;
There were also a few accuracy and rounding-error fixes, so there shouldn't be any more &quot;dead zones&quot; and the arcs should be more symmetrical.</description>
        </item>
                <item>
            <title>Casual Quest Update [1.36 + 1.37]</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=943391</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=943391</guid>
            <pubDate>Thu, 23 Aug 2012 03:15:14 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=943391#comments</comments>
            
            <description>&lt;a href=&quot;http://www.byond.com/games/IainPeregrine/CasualQuest&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/iainperegrine/website/casual_quest/images/h1.gif&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Version 1.36 addressed some more bugs, and made some balance changes. Most notably, Iain increased the difficulty of waves beyond 130 (and increased the associated score values). The rogue was also retooled with some new skills to make it more effective. Version 1.37 was released shortly after 1.36 to fix a small bug introduced in 1.36.&lt;br&gt;
&lt;br&gt;
Full Changelist:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Fixed blurry images in class pop-up&lt;/li&gt;
&lt;li&gt;Fixed dummy mobs being spawned by class pop-up&lt;/li&gt;
&lt;li&gt;Added weapons to class pop-ups&lt;/li&gt;
&lt;li&gt;Added additional weapon details to class pop-ups&lt;/li&gt;
&lt;li&gt;Fixed class description links with no names&lt;/li&gt;
&lt;li&gt;Made chat avatars open class pop-up&lt;/li&gt;
&lt;li&gt;Fixed scores displaying in scientific notation&lt;/li&gt;
&lt;li&gt;Fixed bat hitbox height&lt;/li&gt;
&lt;li&gt;Added Decadence subscriber starting hero&lt;/li&gt;
&lt;li&gt;Added Plunder Gnome subscriber starting hero&lt;/li&gt;
&lt;li&gt;Updated Royal Knight to use lance as main weapon&lt;/li&gt;
&lt;li&gt;Updated Dervish&lt;/li&gt;
&lt;li&gt;Updated Rogue with new skills&lt;/li&gt;
&lt;li&gt;Removed arrow invulnerability from demons&lt;/li&gt;
&lt;li&gt;Increased difficulty and score values for waves 130+&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
Keep those bug reports coming!&lt;br&gt;
&lt;br&gt;
Thanks, and enjoy your quest'n :)</description>
        </item>
                <item>
            <title>Casual Quest Update [1.35]</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=931410</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=931410</guid>
            <pubDate>Wed, 15 Aug 2012 09:17:26 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=931410#comments</comments>
            
            <description>&lt;a href=&quot;http://www.byond.com/games/IainPeregrine/CasualQuest&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/iainperegrine/website/casual_quest/images/h1.gif&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
This is another quick release to fix the score boards, but this time I fixed a few other minor issues as well.&lt;br&gt;
&lt;br&gt;
Changes:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Fixed bug where scores were being deleted&lt;/li&gt;
&lt;li&gt;New score handling that should be more resilient to a busy hub, with warnings when hub cannot be contacted&lt;/li&gt;
&lt;li&gt;Scores are now submitted at the end of each round&lt;/li&gt;
&lt;li&gt;Your current score is now displayed to you when you join&lt;/li&gt;
&lt;li&gt;Players are now properly centered and rotated at the start of a new round&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
Lord Andrew informed me that there's a running thread with bug reports and feature requests, so I might pick through that over the weekend and see what I can manage.&lt;br&gt;
&lt;br&gt;
Thanks, and enjoy your quest'n :)</description>
        </item>
                <item>
            <title>Casual Quest Update [1.34?]</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=926175</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=926175</guid>
            <pubDate>Sun, 12 Aug 2012 05:32:06 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=926175#comments</comments>
            
            <description>&lt;a href=&quot;http://www.byond.com/games/IainPeregrine/CasualQuest&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/iainperegrine/website/casual_quest/images/h1.gif&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
This is a quick release to fix the incompatibility with BYOND version 494.&lt;br&gt;
&lt;br&gt;
Now, the reason there's a question-mark in the title is because Iain sent me what he believes was version 1.32, meaning the changes from 1.33 might have been lost. However, reading the change list, it looks like most of the updates are present in the version I was given. I would appreciate any help the CQ community can give me in confirming if the bug fixes/new features survived.&lt;br&gt;
&lt;br&gt;
If you find one that was lost, please post it in the Bug Reports forum and give me as many details about it as possible so that I can &quot;re-fix&quot; it.&lt;br&gt;
&lt;br&gt;
I won't be taking over the game as an active developer, but I will act as a caretaker of sorts. So if you find any new bugs, please report them and I'll do my best to fix them.&lt;br&gt;
&lt;br&gt;
Thanks, and enjoy your quest'n :)</description>
        </item>
                <item>
            <title>Looking for GIAD 2011 play testers</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=250862</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=250862</guid>
            <pubDate>Sun, 05 Feb 2012 06:48:09 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=250862#comments</comments>
            
            <description>(Sorry to intrude, CauTi0N. Iain mentioned that some of the CQ regulars and others showed an interest in helping test for GIAD 2011, and since the blog forums are gone now, this was the next best place to contact them)&lt;br&gt;
&lt;br&gt;
I've been working with Iain to get the judging under way for GIAD 2011 (yikes, it's already 2012!). We need some play testers to help us with the multiplayer games. I'm hoping to host sessions the next two weekends (around Feb 11th/17th) but I'm open to shifting things around depending on people's schedules. If you're interested, &lt;a href=&quot;http://www.byond.com/forum/?post=250861&quot;&gt;please post on the thread in the Contests &amp; Events forum&lt;/a&gt;. For fairness, people who submitted entries will not be allowed to be apart of the testing. There are more details in the other thread.&lt;br&gt;
&lt;br&gt;
Thanks.</description>
        </item>
                <item>
            <title>Looking for GIAD 2011 play testers</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=250861</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=250861</guid>
            <pubDate>Sun, 05 Feb 2012 06:47:24 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=250861#comments</comments>
            
            <description>I've been working with Iain to get the judging under way for GIAD 2011 (yikes, it's already 2012!). However, we need some play testers to help us with the multiplayer games.&lt;br&gt;
&lt;br&gt;
Details:
&lt;ul&gt;
&lt;li&gt;I'm hoping to host sessions the next two weekends (&lt;b&gt;around Feb 11th &lt;strike&gt;and 17th&lt;/strike&gt;&lt;/b&gt;) but I'm open to shifting things around depending on people's schedules.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;The first session will be GMT: 22:00 Saturday February 11, 2012&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;To see the date in your local time zone, see the date attached to this event&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;For fairness, people who submitted entries will not be allowed to play on the &lt;b&gt;primary&lt;/b&gt; testing server.&lt;/li&gt;

&lt;li&gt;We had 18 entries (pre-disqualifications, including single player games)&lt;/li&gt;

&lt;li&gt;We'll likely try to spread the testing out over 2 days (or maybe three) to keep things reasonable.&lt;/li&gt;

&lt;li&gt;I would expect each day of testing to run from an hour to 90 minutes&lt;/li&gt;

&lt;li&gt;We're now doing open testing, so if you're free, pop into the server and help us out! If the primary server is full, I will also be hosting a secondary server for people who just want to try out the games&lt;/li&gt;
&lt;/ul&gt;
&lt;font style=&quot;font-size: 7px;&quot;&gt;&lt;strike&gt;If you're interested, please post in this thread with what days/times work for you.&lt;br&gt;
If you guys/gals are up for it, I would also like to implement a &quot;community score&quot; into the judging, although that will require testers to play every entry--even the single player ones. It would just be a quick 1-5 score in a couple of categories.&lt;br&gt;
I'll update this post in a bit with a better count of how many multiplayer games we have and an estimate of how many testers we'll need for each day.&lt;/strike&gt;&lt;/font&gt;&lt;br&gt;
&lt;br&gt;
&lt;b&gt;We will now be doing open play testing, so if you're free, please pop in and play a round or two with us!&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;b&gt;This post will be updated with the server address and game details during the event.&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
So, BYOND community: help us get these things judged!&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 2/9/12&amp;gt;&lt;br&gt;
Updated time to reflect first playtesting session.&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 2/10/12&amp;gt;&lt;br&gt;
Scrapping the community scores element in favor of open testing&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 2/11/12&amp;gt;&lt;br&gt;
Playtesting has begun! Looks like there were only (4) multiplayer submissions, so we should be able to get them wrapped up today.&lt;br&gt;
&lt;br&gt;
First entry up: &lt;a href=&quot;http://www.byond.com/games/Camdev/TheLab&quot;&gt;The Lab, by Camdev&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 2/11/12 (2)&amp;gt;&lt;br&gt;
Playtesting is complete! Because there were only 4 multiplayer entries, we were able to get through them in one night. Thanks to everyone who stopped by!</description>
        </item>
                <item>
            <title>Constrain window to aspect ratio</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=195017</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=195017</guid>
            <pubDate>Thu, 20 Oct 2011 22:46:56 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=195017#comments</comments>
            
            <description>&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
&lt;span class=&quot;dmcomment&quot;&gt;//Title: forceAspectRatio&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//Credit to: DarkCampainger&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//Contributed by: DarkCampainger&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//Special thanks to: Beatmewithastick (for posting the question)&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;This verb resizes the passed window to the passed aspect ratio, tracking the&lt;br&gt;  window's previous size so it knows if it should grow or shrink. Use this verb&lt;br&gt;  by calling it from the the desired window's Resize command:&lt;br&gt;    forceAspect [window] [aspectRatio]&lt;br&gt;    forceAspect &amp;quot;default&amp;quot; 1.3333&lt;br&gt;&lt;br&gt;It is recommended that you manually call this verb when the player logs in,&lt;br&gt;  so the system can set up the lastWindowWidth/Height lists and correctly&lt;br&gt;  interpret the user's resize as a grow or shrink.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;client&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;// We track the previous window size to determine if the user is trying to&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;//   shrink or grow the window&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/&lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/lastWindowWidth = list() &lt;span class=&quot;dmcomment&quot;&gt;// Associative list of &amp;quot;window&amp;quot; = width&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/&lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/lastWindowHeight = list() &lt;span class=&quot;dmcomment&quot;&gt;// Associative list of &amp;quot;window&amp;quot; = height&lt;/span&gt;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;// This verb should be called from the &amp;quot;Resize command&amp;quot; of the window you&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;//   want to constrain. Pass its name and the aspect ratio.&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;//   Example: forceAspect &amp;quot;default&amp;quot; 1.3333&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;verb&lt;/span&gt;/forceAspect(window=&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;default&amp;quot;&lt;/span&gt; &lt;span class=&quot;dmkeyword&quot;&gt;as&lt;/span&gt; text|null, aspect=4/3 &lt;span class=&quot;dmkeyword&quot;&gt;as&lt;/span&gt; num|null)&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Get and parse the width/height of the window's size&lt;/span&gt;&lt;br&gt;            size = winget(src, window, &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;size&amp;quot;&lt;/span&gt;)&lt;br&gt;            delimiter = findtext(size, &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;x&amp;quot;&lt;/span&gt;)&lt;br&gt;            width = text2num(copytext(size, 1, delimiter))&lt;br&gt;            height = text2num(copytext(size, delimiter+1, 0))&lt;br&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Calculate the counterpart to each dimension that would give the&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;//    desired aspect ratio&lt;/span&gt;&lt;br&gt;            heightForWidth = round(width/aspect) &lt;span class=&quot;dmcomment&quot;&gt;// Height based on width&lt;/span&gt;&lt;br&gt;            widthForHeight = round(height*aspect) &lt;span class=&quot;dmcomment&quot;&gt;// Width based on height&lt;/span&gt;&lt;br&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;// Determine if the user is stretching or shrinking the window&lt;/span&gt;&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Calculate the changes in width/height from the previous window size&lt;/span&gt;&lt;br&gt;            changeWidth = (!lastWindowWidth[window] ? 0 \&lt;br&gt;                    : width - lastWindowWidth[window])&lt;br&gt;            changeHeight = (!lastWindowHeight[window] ? 0 \&lt;br&gt;                    : height - lastWindowHeight[window])&lt;br&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Take the greatest change, and see if it's an increase or decrease&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;//   For an increase, we assume the user is growing the window&lt;/span&gt;&lt;br&gt;            grow = ((abs(changeWidth) &amp;gt; abs(changeHeight)) ? changeWidth : changeHeight) &amp;gt;= 0&lt;br&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;// If we're growing to fit and the height deviates the most,&lt;/span&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;//   Or if we're shrinking to fit and the width deviates the most&lt;/span&gt;&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt;((grow &amp;amp;&amp;amp; widthForHeight&amp;gt;width) || (!grow &amp;amp;&amp;amp; widthForHeight&amp;lt;width))&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Reconstrain the width to the height&lt;/span&gt;&lt;br&gt;            width = widthForHeight&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;else&lt;/span&gt;&lt;br&gt;            &lt;span class=&quot;dmcomment&quot;&gt;// Otherwise reconstrain the height to the width&lt;/span&gt;&lt;br&gt;            height = heightForWidth&lt;br&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;// Store the size so we know next time if they're shrinking or stretching the window&lt;/span&gt;&lt;br&gt;        lastWindowWidth[window] = width&lt;br&gt;        lastWindowHeight[window] = height&lt;br&gt;&lt;br&gt;        &lt;span class=&quot;dmcomment&quot;&gt;// Update the window size&lt;/span&gt;&lt;br&gt;        winset(src, window, &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;size='&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[width]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[height]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;'&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
        </item>
                <item>
            <title>The &quot;Create your own CSS&quot; CSS</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=114648</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=114648</guid>
            <pubDate>Fri, 17 Jun 2011 05:13:19 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=114648#comments</comments>
            
            <description>&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
body&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the pages background color */&lt;/span&gt;&lt;br&gt;    background-color: #93B4E2;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the background image (&amp;quot;url('URL_TO_IMAGE')&amp;quot;)*/&lt;/span&gt;&lt;br&gt;    background-image: none;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the background image position (center, left, right, top, bottom, pixelX, pixelY, percentX%, percentY%)*/&lt;/span&gt;&lt;br&gt;    background-position: center center;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the background image attachment (scroll, fixed)*/&lt;/span&gt;&lt;br&gt;    background-attachment: fixed;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the background image repeat (no-repeat, repeat, repeat-x, repeat-y)*/&lt;/span&gt;&lt;br&gt;    background-repeat: no-repeat;&lt;br&gt;}&lt;br&gt;&lt;br&gt;a&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the link color */&lt;/span&gt;&lt;br&gt;    color: #E5FB00 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.page_header .title, .page_header .subtitle&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the title's text color */&lt;/span&gt;&lt;br&gt;    color: #E5FB00 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.box, .big_box, .post, .comment, .title, p, #forum_data, .favorite_game&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the text color */&lt;/span&gt;&lt;br&gt;    color: #05316D !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.box, .big_box, .post, .comment, #content .title, #forum_data, .favorite_game&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the box color */&lt;/span&gt;&lt;br&gt;    background: #6996D3 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the box border rounding (0px to 30px) */&lt;/span&gt;&lt;br&gt;    border-radius: 0px !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.box, .big_box, .post, #center #comments_box, #forum_data, .favorite_game&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the box border width, style, and color (style: none, solid, dotted, dashed, double, inset, outset, ect) */&lt;/span&gt;&lt;br&gt;    border: 3px solid #284C7E !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;input[type=text], textarea&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the text-input background color */&lt;/span&gt;&lt;br&gt;    background: #0F4FA8 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the text-input text color */&lt;/span&gt;&lt;br&gt;    color: #000000 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the boxes' border width, style, and color (style: none, solid, dotted, dashed, double, inset, outset, ect) */&lt;/span&gt;&lt;br&gt;    border: 1px solid #6996D3 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;input[type=button], input[type=submit]&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the button-input background color */&lt;/span&gt;&lt;br&gt;    background: #0F4FA8 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the button-input text color */&lt;/span&gt;&lt;br&gt;    color: #93B4E2 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the boxes' border width, style, and color (style: none, solid, dotted, dashed, double, inset, outset, ect) */&lt;/span&gt;&lt;br&gt;    border: 2px outset #6996D3 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.style1, .style2&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the forum post shell background color */&lt;/span&gt;&lt;br&gt;    background: #4380D3 !important;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the forum post shell text color */&lt;/span&gt;&lt;br&gt;    color: #000000 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;.style3&lt;br&gt;{&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the forum post content background color */&lt;/span&gt;&lt;br&gt;    background: #6996D3 !important;&lt;br&gt;    &lt;span class=&quot;dmcomment&quot;&gt;/* Set the forum post content text color */&lt;/span&gt;&lt;br&gt;    color: #000000 !important;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/* Minor fixes */&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmpreprocessor&quot;&gt;#tab_content {background: transparent !important;}&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmpreprocessor&quot;&gt;#fan_content {margin-top: 40px !important;}&lt;/span&gt;&lt;br&gt;.title {margin-left: 10px !important;margin-right: 10px !important;}
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
Here's a basic style sheet that will allow you to control the style across your page. Simply fill in the values with what you want (those without clear values are commented with the list of possible choices).&lt;br&gt;
&lt;br&gt;
Currently, you can configure:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Your page background color and/or image&lt;/li&gt;
&lt;li&gt;The color of all links&lt;/li&gt;
&lt;li&gt;The page title color&lt;/li&gt;
&lt;li&gt;The text color, background color, and border of all boxes&lt;/li&gt;
&lt;li&gt;The background color, text color, and border of input boxes and buttons&lt;/li&gt;
&lt;li&gt;The text color and background color and forum posts&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
As you can see from my site (at the time of this writing), the design is very simple.&lt;br&gt;
&lt;br&gt;
If you have any questions or requests for additions, feel free to post in the comments.&lt;br&gt;
&lt;br&gt;
You can do a quick google search for good color schemes (I used &lt;a href=&quot;http://colorschemedesigner.com/#&quot;&gt;this site's color scheme designer&lt;/a&gt;).</description>
        </item>
                <item>
            <title>GSD? GSD.</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113876</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113876</guid>
            <pubDate>Mon, 30 May 2011 07:57:23 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=113876#comments</comments>
            
            <description>&lt;center&gt;&lt;a href=&quot;http://www.byond.com/developer/DarkCampainger/StaticLightingGenerator2?invite=DarkCampainger&quot;&gt;&lt;img src=&quot;http://www.byond.com/games/banners/90518.png&quot;&gt;&lt;/a&gt;&lt;/center&gt;
&lt;br&gt;
&lt;br&gt;
By some stroke of luck, I managed to fix that last bug and finish version 2.3 of my Static Lighting Generator. Go check it out, it's pretty cool.&lt;br&gt;
&lt;br&gt;
Unfortunately, I didn't get to implement the &lt;i&gt;really&lt;/i&gt; cool optional features I had hoped too, but I did get all of my required ones:&lt;br&gt;
&lt;br&gt;
Static Lighting Generator 2.3&lt;br&gt;
- Transfer to libpng &amp;radic;&lt;br&gt;
- Support for southward-facing walls &amp;radic;&lt;br&gt;
- Support for rectangular icon_sizes &amp;radic;&lt;br&gt;
- Upgrade to filter-strip method &amp;radic;&lt;br&gt;
- Support for perspective-skew &amp;radic;&lt;br&gt;
- Semi-transparent walls (optional) ~&lt;br&gt;
- Light shapes (optional) ~&lt;br&gt;
&lt;br&gt;
(&amp;radic; means done, ~ means almost done)&lt;br&gt;
&lt;br&gt;
As much as I would love to spend one more day trying to get those last two in, I've got finals coming up and I need to get back to my real work. Anyways, the more I look at &lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_002.png&quot;&gt;it&lt;/a&gt;, the less I think transparency is fully working. Also, if working on this has taught me anything, things never go as planned, and never take as long as you expect.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_003.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_003.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_004.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_004.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_005.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_005.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;</description>
        </item>
                <item>
            <title>GSD: Lighting Generator Progress?</title>
            <link>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113871</link>
            <guid>http://www.byond.com/members/DarkCampainger?command=view_post&amp;post=113871</guid>
            <pubDate>Mon, 30 May 2011 04:40:57 +0000</pubDate>
            
            <comments>http://www.byond.com/members/DarkCampainger?command=view_comments&amp;post=113871#comments</comments>
            
            <description>Well, almost 2 days have passed since I ran into one more bug in my generator. I just finally fixed it, I think.&lt;br&gt;
&lt;br&gt;
Despite how diminutive that particular manifestation of the bug was, it was actually quite serious, especially in regard to the potential for user-defined &quot;light shapes&quot;. It turned out the vertices of the light-blocking tiles that fell &quot;behind&quot; the point being lit were being discarded (which seemed like a perfect solution at the time). Now the system runs edge-intersections on any vertices that fall behind the point or light source, to make sure their edges wouldn't affect the light's path. You would think it would be simple to fix, and I guess it would have been if I had chosen the right solution from the start, but now it finally works (third solution's the charm... I hope!)&lt;br&gt;
&lt;br&gt;
Here's a screenshot of one of the other rooms. Notice that light can't sneak through diagonals any more.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_003.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_003.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Things left to do:&lt;br&gt;
- &lt;strike&gt;Fix walls (I broke them, I guess)&lt;/strike&gt;&lt;br&gt;
- &lt;strike&gt;Finish perspective&lt;/strike&gt;&lt;br&gt;
- Add transparency property to encoded data&lt;br&gt;
- Add light shapes (maybe)&lt;br&gt;
- Add light shapes to encoded data (maybe)&lt;br&gt;
- Buffer optimization (maybe)&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 1&amp;gt;&lt;br&gt;
&lt;br&gt;
Fixed the walls. Turns out I had made an &quot;optimization&quot; where they used the same buffer as the floors, and they were overwiting the floor's data before it was saved. Yay early-optimization.&lt;br&gt;
&lt;br&gt;
Anyways, I don't think I've shown off the walls before:&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_004.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_004.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&amp;lt;edit 2&amp;gt;&lt;br&gt;
&lt;br&gt;
Perspective is in. Tiles are 32x16.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_005.png&quot;&gt;&lt;img src=&quot;http://files.byondhome.com/DarkCampainger/StaticLightingGenerator23_005.png&quot; style=&quot;width: 100%;height:auto;&quot;&gt;&lt;/a&gt;</description>
        </item>
            
    </channel>
</rss>

