From 4ab1d972db2314517e047b69bca0285077b190df Mon Sep 17 00:00:00 2001 From: Greg Edwards Date: Mon, 26 Jan 2015 01:26:01 -0500 Subject: [PATCH] Much design work. --- gfx/fGTS colour blending.psd | Bin 104050 -> 224236 bytes gts/Default.aspx | 100 +++++++++++++++++++++------------ gts/Default.aspx.designer.cs | 54 +++++++++++++++--- gts/controls/LabelTextBox.ascx | 2 +- gts/css/form.css | 45 +++++++++++++-- gts/css/login.css | 5 ++ gts/css/main.css | 72 +++++++++++++++++++++++- gts/gts.csproj | 1 + gts/masters/MasterPage.master | 1 + 9 files changed, 227 insertions(+), 53 deletions(-) create mode 100644 gts/css/login.css diff --git a/gfx/fGTS colour blending.psd b/gfx/fGTS colour blending.psd index b3c4964c89677d61886ae5f2f479ab72bceb12c2..25264c9cc14810f0115651c4fe4da05cd633dae0 100644 GIT binary patch literal 224236 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 delta 7394 zcmeHK4@_G{7{9yL0+V)(QNRTUEX9uDfa;(OMFzaDgz}ZPzcz^Ul;m>E_tnA_t%w)G4J2rcr+m*t4R7$ z2scE=j))npEBqB20>r+CVid}1@>_HX8p1@Y4TJ8Uq*1unjnu5!2n{C%-ei+kx57g( z!oCPr0YGyPS@vQGR03{J#C5rHk`bIOoNEao^Kk9WTw4SnqY)`dkgpAK;X2&e4#{dp zuw7O5AG`tJ(@a%-7x)55TS;@K6cK7wTwhn8x4HdtOL@X$$^iupy2yJs^mzjHg{(7_wjVlzH{sjl|mkZaJ+pkSF^rB=!GX_YXh(5d+O*}wOi9C+HDB$hj#Z3(@wrGVB;vFkx_ckb+^(4tT_3$egK!%B z*wZ=w+x8zm8!5{y%kXLG{z)@+C}dhn6ukVTGP2{FYg6lbE1o+bt`u1s#!iG;BWX~b zGf_-~r%ZW6a!v2})|*pT&D+YF>O-e{%wzCBtbl+_IqU*GwnT?-jSi0rU}S_cTJbEIdBhD0UC!$^8S)CV?3G)E$!?&% z1Az7_AS9y+FE>(KbO0Jsj2hCXL<`B5$#gSI20M*XGHmT^yb@f!kl-tCJ9+aUXK*>Z(cqL|xC@t> zkqpxfC;L$Q7?@N2z$Y4QU^qSV#3YqImdty`^VgGW^z;%I>eEIOU z^qN0KJ*s>HUFCvfGWnu3UA1o5CcE*o0Pf&&9N);iUrgaoCVKv(7m`{$n#$goK%NWwWvK`AQ=sVSv^ z`BT^%BZ$ORF#_#F7G4z9h&;Fm8U>=7Q`iW4Gl}D(Q#p}XAsOruvAVQKlm(x8g=4K#JxWOYF@nAae+OzYBgFs! diff --git a/gts/Default.aspx b/gts/Default.aspx index 5a1ed613..0e0c7a50 100644 --- a/gts/Default.aspx +++ b/gts/Default.aspx @@ -1,13 +1,73 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/masters/ThreeColumn.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="PkmnFoundations.GTS.Default" %> <%@ Register TagPrefix="pf" Namespace="PkmnFoundations.Web" Assembly="PkmnFoundations.GTS" %> +<%@ Register TagPrefix="pf" TagName="LabelTextBox" Src="~/controls/LabelTextBox.ascx" %> - + - + -
+ +
+
+ + + + + + + +
+ +
+

Maintenance periods are Thursdays at + UTC 0500.

+
+ +
+

Supported games: Diamond, Pearl, + Platinum, Heart Gold, + Soul Silver, Black, + White, Black 2, + White 2.

+
+
+

Supported features: Wi-Fi Clubaltwfc, + GTS, Battle Videos, + Random Matchup

+
+ +
+ + +
+ + + + + + + + + +

How to connect

+
    +
  1. Obtain an Action Replay code for your game. (complete list coming + soon)
    If you are using an emulator, you can patch your game with + WfcPatcher.
  2. +
  3. If applicable, enable the code and launch your game.
  4. +
  5. On your DS, set the DNS to 104.131.93.87.
  6. +
  7. Connect!
  8. +
+ +

Complete instructions can be found at + the + AltWFC Wiki.

+ +

Update - August 29:

Wi-fi Battle Tower and Battle Subway are now available! @@ -22,39 +82,5 @@

Dressup photos, box uploads, and musical photos are also available.

-

What is Foundations GTS?

-

Foundations GTS aims to re-create the same functionality of the original -GTS service found in the games, Pokémon Diamond, -Pearl, Platinum, Heart Gold, Soul Silver, Black, White, Black 2, and White 2, in an open source -project.

-

The main reason I chose to write my own GTS is because of the -shutdown - of Nintendo Wi-fi Connection services on May 20. To allow players to -continue trading, someone would need to make a replacement server, so I decided to help out.

- -

This is a WORK IN PROGRESS. I make no promises that your -Pokémon will be safe or that you will get them back. If you find any problems, please -report them in the - -issue tracker with complete replication steps, and Wireshark captures if possible. -Thanks. -

- -

What is Pokémon Foundations?

-

Pokémon Foundations is going to be a collection of utilities dealing with the logic, math, -and data related to the main series of Pokémon RPG videogames. Planned is a Pokédex, stat calculator, -damage calculator, and possibly more! (For now, it’s just a GTS.)

- -

How do I use this GTS?

-

Connections are made through the -DWC Network Server Emulator (altWFC). Complete instructions on how to patch your game are found at the -above link.

-

To preview the latest features, you can use this alternate DNS:

-

191.236.98.208

-

Please note that using this DNS server may interfere with the operation of some other - titles besides Pokémon.

- - -
diff --git a/gts/Default.aspx.designer.cs b/gts/Default.aspx.designer.cs index 6e21d013..ce231679 100644 --- a/gts/Default.aspx.designer.cs +++ b/gts/Default.aspx.designer.cs @@ -21,6 +21,51 @@ namespace PkmnFoundations.GTS { /// protected global::PkmnFoundations.Web.HeaderColour HeaderColour1; + /// + /// theForm control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlForm theForm; + + /// + /// txtUsername control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::PkmnFoundations.GTS.controls.LabelTextBox txtUsername; + + /// + /// txtPassword control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::PkmnFoundations.GTS.controls.LabelTextBox txtPassword; + + /// + /// btnSubmit control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnSubmit; + + /// + /// hlRegister control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.HyperLink hlRegister; + /// /// hlBattleVideos control. /// @@ -29,14 +74,5 @@ namespace PkmnFoundations.GTS { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.HyperLink hlBattleVideos; - - /// - /// hlIssueTracker control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.HyperLink hlIssueTracker; } } diff --git a/gts/controls/LabelTextBox.ascx b/gts/controls/LabelTextBox.ascx index 0ab9b408..a8f45987 100644 --- a/gts/controls/LabelTextBox.ascx +++ b/gts/controls/LabelTextBox.ascx @@ -1,7 +1,7 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LabelTextBox.ascx.cs" Inherits="PkmnFoundations.GTS.controls.LabelTextBox" %> <%@ Register TagPrefix="pf" Namespace="PkmnFoundations.Web" Assembly="PkmnFoundations.GTS" %> - + diff --git a/gts/css/form.css b/gts/css/form.css index b2e93d32..a7f9a973 100644 --- a/gts/css/form.css +++ b/gts/css/form.css @@ -4,11 +4,13 @@ border: 1px solid #999999; background-color: white; box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1) inset; - width: 200px; + width: 230px; height: 14px; - padding: 2px; + padding: 3px 2px; font-size: 10pt; font-family: Arial,Helvetica,sans-serif; + margin-bottom: 4px; + border-radius: 2px; } input[type=text]:focus, input[type=password]:focus, select, textarea:focus, @@ -17,10 +19,44 @@ input[type=text]:focus, input[type=password]:focus, select, textarea:focus } +input[type=submit], button +{ + height: 28px; + margin-bottom: 4px; + border-radius: 2px; + background-color: #008fc4; + background-image: -moz-linear-gradient(top, #008fc4 0%, #00749f 100%); /* FF3.6+ */ + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#008fc4), color-stop(100%,#00749f)); /* Chrome,Safari4+ */ + background-image: -webkit-linear-gradient(top, #008fc4 0%,#00749f 100%); /* Chrome10+,Safari5.1+ */ + background-image: -o-linear-gradient(top, #008fc4 0%,#00749f 100%); /* Opera 11.10+ */ + background-image: -ms-linear-gradient(top, #008fc4 0%,#00749f 100%); /* IE10+ */ + background-image: linear-gradient(to bottom, #008fc4 0%,#00749f 100%); /* W3C */ + background-size: 100%; + box-shadow: 0 2px 1px -1px #89b4d5 inset, 0 1px 2px 0 rgba(0,0,0,0.1); + border: 1px solid; + border-color: #bcd1e4 #00749f #004a68 #89b4d5; + color: white; + text-shadow: 0 1px 0 #004a68; + font-family: Lato,Candara,'Meiryo UI',Arial,sans-serif; + font-weight: bold; + cursor: pointer; +} + +input[type=submit].large, button.large +{ + width: 236px; +} + .pfLabelTextBox { position: relative; - font-family: Arial,Helvetica,sans-serif + background-color: white; + font-family: Arial,Helvetica,sans-serif; + display: inline-block; + margin: 0; padding: 0; + margin-bottom: 4px; + vertical-align: top; + border-radius: 2px; } .pfLabelTextBox label @@ -29,7 +65,7 @@ input[type=text]:focus, input[type=password]:focus, select, textarea:focus height: 0; overflow: visible; position: relative; - top: 2px; left: 3px; + top: 3px; left: 3px; color: #cccccc; } @@ -38,6 +74,7 @@ input[type=text]:focus, input[type=password]:focus, select, textarea:focus display: block; background-color: transparent; position: relative; + margin-bottom: 0; } .pfLabelTextBox input:focus, .pfLabelTextBox input.hasContent diff --git a/gts/css/login.css b/gts/css/login.css new file mode 100644 index 00000000..1a5f47e0 --- /dev/null +++ b/gts/css/login.css @@ -0,0 +1,5 @@ +.gtsLogin +{ + width: 236px; +} + diff --git a/gts/css/main.css b/gts/css/main.css index 3ad407bf..31ae8c07 100644 --- a/gts/css/main.css +++ b/gts/css/main.css @@ -15,6 +15,38 @@ h1, h2, h3, h4, strong font-weight: 700; } +hr +{ + margin: 16px 0; + border: 1px solid #cccccc; + border-width: 1px 0 0; +} + +a +{ + color: #00749f; +} + +a:hover +{ + color: #004a68; +} + +a:visited +{ + color: #7e3bd0; +} + +a:visited:hover +{ + color: #512489; +} + +li +{ + margin: 4px 0; +} + .setWidth { width: 980px; @@ -37,7 +69,7 @@ h1, h2, h3, h4, strong width: 160px; height: 160px; } -.github +.github, a.github, a.github:hover { width: 300px; height: 20px; @@ -80,6 +112,33 @@ h1, h2, h3, h4, strong display: block; } +.gtsInfo +{ + margin-left: 40px; + position: relative; +} + +.gtsInfo::before +{ + width: 24px; + height: 0; + padding: 12px 0; + position: absolute; + left: -40px; + top: calc(50% - 16px); + content: 'i'; + border: 4px solid #999999; + color: #999999; + font-family: Arial,Helvetica,sans-serif; + line-height: 0; + vertical-align: middle; + border-radius: 100%; + font-size: 24px; + font-weight: bold; + text-align: center; + display: block; +} + #gtsHeader { padding-top: 16px; @@ -92,6 +151,11 @@ h1, h2, h3, h4, strong position: relative; } +#gtsHeader a, #gtsHeader a:visited +{ + color: white; +} + #gtsHeader #gtsLogo { width: 276px; @@ -106,7 +170,6 @@ h1, h2, h3, h4, strong text-decoration: none; } - #gtsHeader #gtsLogo .gtsLogoImage, #gtsHeader #gtsLogo .gtsLogoWord { display: block; @@ -277,6 +340,11 @@ h1, h2, h3, h4, strong width: 728px; } +#gtsMain .gtsColumn .gtsSection +{ + margin-bottom: 16px; +} + #gtsSubNav { border: 1px solid #cccccc; diff --git a/gts/gts.csproj b/gts/gts.csproj index ffbfd0cd..0ad738c2 100644 --- a/gts/gts.csproj +++ b/gts/gts.csproj @@ -81,6 +81,7 @@ + diff --git a/gts/masters/MasterPage.master b/gts/masters/MasterPage.master index 06f3a6c8..38c06ab9 100644 --- a/gts/masters/MasterPage.master +++ b/gts/masters/MasterPage.master @@ -35,6 +35,7 @@
    +
  • Powered by AltWFC
  • DNS: 104.131.93.87
  • Pokémon available for offer.