Moves us to the changelog system used by /vg/, /tg/, and others.
Cleans up the HTLM folder, removing unused files. Will also attempt include /tg/'s "You have unread changelog entries" notification on join.
@@ -259,8 +259,9 @@
|
||||
getFiles(
|
||||
'html/search.js',
|
||||
'html/panels.css',
|
||||
'html/painew.png',
|
||||
'html/loading.gif',
|
||||
'html/images/loading.gif',
|
||||
'html/images/ntlogo.png',
|
||||
'html/images/talisman.png',
|
||||
'icons/pda_icons/pda_atmos.png',
|
||||
'icons/pda_icons/pda_back.png',
|
||||
'icons/pda_icons/pda_bell.png',
|
||||
@@ -298,7 +299,5 @@
|
||||
'icons/spideros_icons/sos_11.png',
|
||||
'icons/spideros_icons/sos_12.png',
|
||||
'icons/spideros_icons/sos_13.png',
|
||||
'icons/spideros_icons/sos_14.png',
|
||||
'html/images/ntlogo.png',
|
||||
'html/images/talisman.png'
|
||||
'icons/spideros_icons/sos_14.png'
|
||||
)
|
||||
|
||||
@@ -101,7 +101,6 @@
|
||||
|
||||
/mob/living/silicon/pai/Login()
|
||||
..()
|
||||
usr << browse_rsc('html/paigrid.png') // Go ahead and cache the interface resources as early as possible
|
||||
|
||||
|
||||
// this function shows the information about being silenced as a pAI in the Status panel
|
||||
|
||||
@@ -378,8 +378,6 @@
|
||||
set name = "Changelog"
|
||||
set category = "OOC"
|
||||
getFiles(
|
||||
'html/postcardsmall.jpg',
|
||||
'html/somerights20.png',
|
||||
'html/88x31.png',
|
||||
'html/bug-minus.png',
|
||||
'html/cross-circle.png',
|
||||
|
||||
BIN
html/80x15.png
|
Before Width: | Height: | Size: 697 B |
@@ -1,53 +0,0 @@
|
||||
<html>
|
||||
<title>Shittiest Player Ever - PM</title>
|
||||
<style type="text/css">
|
||||
body
|
||||
{
|
||||
font-size: 10pt;
|
||||
font-family: Verdana, sans-serif;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6
|
||||
{
|
||||
color: #00f;
|
||||
font-family: Georgia, Arial, sans-serif;
|
||||
}
|
||||
|
||||
#chatlog
|
||||
{
|
||||
border: 1px grey solid;
|
||||
height: 280px;
|
||||
width: 500px;
|
||||
overflow-y: scroll;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0px;
|
||||
}
|
||||
p.lic {
|
||||
font-size: 6pt;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<div id="chatlog">
|
||||
<!-- Print logged text here, different colors for your own key and other user's key -->
|
||||
Badmin: Hey why the fuck are you killing that dude???<br><br>
|
||||
Shittiest Player Ever: he tok ym baten n id and i ahd to use the lasre on his *ss<br><br>
|
||||
Badmin: wow good fucking job, you are the best player ever!!!!!!<br><br>
|
||||
Badmin: where the fuck did you learn english?<br><br>
|
||||
Shittiest Player Ever: he tryed to k;ikll me<br><br>
|
||||
Badmin: you are shit!!!!!
|
||||
</div>
|
||||
<script language="JavaScript">
|
||||
var objDiv = document.getElementById("chatlog");
|
||||
objDiv.scrollTop = objDiv.scrollHeight;
|
||||
</script>
|
||||
<br>
|
||||
<form name="chatinput" action="byond://?src=/* ref src */" method="get">
|
||||
<input type="hidden" name="src" value="/* ref src */">
|
||||
<input type="text" name="message" maxlength="120" size="70">
|
||||
<input type="submit" value="Send">
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -20,7 +20,6 @@ a img {border:none;}
|
||||
.imagedel {background-image:url(image-minus.png)}
|
||||
.spellcheck {background-image:url(spell-check.png)}
|
||||
.experiment {background-image:url(burn-exclamation.png)}
|
||||
.tgs {background-image:url(tg-notif.png)}
|
||||
.sansserif {font-family:Tahoma,sans-serif;font-size:12px;}
|
||||
.commit {margin-bottom:20px;font-size:100%;font-weight:normal;}
|
||||
.changes {list-style:none;margin:5px 0;padding:0 0 0 25px;font-size:0.8em;}
|
||||
|
||||
19
html/changelogs/__CHANGELOG_README.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
Changelogs are included with commits as text .yml files created individually by the committer. If you want to create a changelog entry you create a .yml file in the /changelogs directory; nothing else needs to be touched unless you are a maintainer.
|
||||
|
||||
#######################################################
|
||||
|
||||
TO MAKE A CHANGELOG .YML ENTRRY
|
||||
|
||||
1. Make a copy of the file example.yml in html/changelogs and rename it to [YOUR USERNAME]-PR-[YOUR PR NUMBER].yml (the pr and pr number are organizational and can be ignored if you so wish)
|
||||
|
||||
2. Change the author to yourself
|
||||
|
||||
3. Replace the changes text with a description of the changes in your PR, keep the double quotes to avoid errors (your changelog can be written ICly or OOCly, it doesn't matter)
|
||||
|
||||
4. (Optional) set the change prefix (rscadd) to a different one listed above in example.yml (this affects what icon is used for your changelog entry)
|
||||
|
||||
5. When commiting make sure your .yml file is included in the commit (it will usually be unticked as an unversioned file)
|
||||
|
||||
#######################################################
|
||||
|
||||
If you have trouble ask for help in #codershuttle on irc.sorcery.net or read https://tgstation13.org/wiki/Guide_to_Changelogs
|
||||
36
html/changelogs/example.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
################################
|
||||
# Example Changelog File
|
||||
#
|
||||
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||
#
|
||||
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||
# When it is, any changes listed below will disappear.
|
||||
#
|
||||
# Valid Prefixes:
|
||||
# bugfix
|
||||
# wip (For works in progress)
|
||||
# tweak
|
||||
# soundadd
|
||||
# sounddel
|
||||
# rscadd (general adding of nice things)
|
||||
# rscdel (general deleting of nice things)
|
||||
# imageadd
|
||||
# imagedel
|
||||
# spellcheck (typo fixes)
|
||||
# experiment
|
||||
#################################
|
||||
|
||||
# Your name.
|
||||
author: N3X15
|
||||
|
||||
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||
delete-after: True
|
||||
|
||||
# Any changes you've made. See valid prefix list above.
|
||||
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||
# SCREW THIS UP AND IT WON'T WORK.
|
||||
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
|
||||
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- rscadd: "Added a changelog editing system that should cause fewer conflicts and more accurate timestamps."
|
||||
- rscdel: "Killed innocent kittens."
|
||||
@@ -27,7 +27,7 @@
|
||||
<form name="spawner" action="byond://?src=/* ref src */" method="get">
|
||||
<input type="hidden" name="src" value="/* ref src */">
|
||||
|
||||
Type <input type="text" name="filter" value="" onkeypress="submitFirst(event)" style="width:350px"> <input type = "button" value = "Search" onclick = "updateSearch()" /><br>
|
||||
Type <input type="text" name="filter" value="" onkeypress="submitFirst(event)" style="width:280px;height:25"> <input type = "button" value = "Search" onclick = "updateSearch()" /><br>
|
||||
Offset: <input type="text" name="offset" value="x,y,z" style="width:250px">
|
||||
|
||||
A <input type="radio" name="offset_type" value="absolute">
|
||||
@@ -44,7 +44,7 @@
|
||||
</select>
|
||||
<br><br>
|
||||
<select name="object_list" id="object_list" size="18" multiple style="width:98%"></select><br>
|
||||
<input type="submit" value="Spawn">
|
||||
<input type="submit" value="spawn">
|
||||
</form>
|
||||
|
||||
<script language="JavaScript">
|
||||
@@ -72,12 +72,19 @@
|
||||
|
||||
function updateSearch()
|
||||
{
|
||||
if (old_search == document.spawner.filter.value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
old_search = document.spawner.filter.value;
|
||||
|
||||
|
||||
var filtered = new Array();
|
||||
for(var i in objects)
|
||||
var i;
|
||||
for (i in objects)
|
||||
{
|
||||
if(objects[i].indexOf(old_search) < 0)
|
||||
if(objects[i].search(old_search) < 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
BIN
html/dice.png
|
Before Width: | Height: | Size: 1.8 KiB |
BIN
html/dice20.png
|
Before Width: | Height: | Size: 810 B |
392
html/help.html
@@ -1,392 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>Space Station 13 Help</title>
|
||||
<style type="text/css">
|
||||
body
|
||||
{
|
||||
color: #000;
|
||||
background: #fff;
|
||||
font-size: 9pt;
|
||||
font-family: Verdana, sans-serif;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6
|
||||
{
|
||||
color: #00f;
|
||||
font-family: Georgia, Arial, sans-serif;
|
||||
}
|
||||
|
||||
a, a:link, a:visited, a:active, a:hover
|
||||
{
|
||||
color: #00f;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover
|
||||
{
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Space Station 13</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="#overview">Overview</a></li>
|
||||
<li><a href="#objectives">Objectives</a></li>
|
||||
<li>
|
||||
<a href="#modes">Modes</a>
|
||||
<ul>
|
||||
<li><a href="#mode_blob">Blob</a></li>
|
||||
<li><a href="#mode_traitor">Traitor</a></li>
|
||||
<li><a href="#mode_meteor">Meteor</a></li>
|
||||
<li><a href="#mode_monkey">Monkey</a></li>
|
||||
<li><a href="#mode_nuclear">Nuclear Emergency</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#getting_around">Getting Around</a></li>
|
||||
<li><a href="#getting_started">Getting Started</a></li>
|
||||
<li>
|
||||
<a href="#jobs">Jobs</a>
|
||||
<ul>
|
||||
<li><a href="#job_assistant">Assistant</a></li>
|
||||
<li><a href="#job_atmospheric">Atmospheric Technician</a></li>
|
||||
<li><a href="#job_doctor">Medical Doctor</a></li>
|
||||
<li><a href="#job_engineer">Station Engineer</a></li>
|
||||
<li><a href="#job_security">Security Officer</a></li>
|
||||
<li><a href="#job_scientist">Scientist</a></li>
|
||||
<li><a href="#job_forensic">Forensic Technician</a></li>
|
||||
<li><a href="#job_geneticist">Geneticist</a></li>
|
||||
<li><a href="#job_chaplain">Chaplain</a></li>
|
||||
<li><a href="#job_head_research">Head of Research</a></li>
|
||||
<li><a href="#job_head_personnel">Head of Personnel</a></li>
|
||||
<li><a href="#job_ai">AI</a></li>
|
||||
<li><a href="#job_captain">Captain</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#movement">Movement</a></li>
|
||||
<li><a href="#equipping">Equipping</a></li>
|
||||
<li><a href="#talking">Talking</a></li>
|
||||
<li><a href="#takegive">Taking Items / Giving Items</a></li>
|
||||
<li><a href="#death">Death</a></li>
|
||||
<li><a href="#links">External Links</a></li>
|
||||
</ul>
|
||||
|
||||
<a name="overview"></a>
|
||||
<h2>Overview</h2>
|
||||
<p>
|
||||
Space Station 13 was written for BYOND. Like many BYOND games, it is two
|
||||
dimensional with a top down view and runs terribly. It uses tile-based
|
||||
movement. Space Station 13 (or SS13 for short) starts you on a space station
|
||||
orbiting a very peculiar gaseous planet in a binary star system. Each round
|
||||
type is centred around a specific type of disaster, ranging from a meteor
|
||||
shower to a traitor within the crew. The game is constantly being developed,
|
||||
so new modes are added all the time!
|
||||
</p>
|
||||
|
||||
<a name="objectives"></a>
|
||||
<h2>Objectives</h2>
|
||||
<p>
|
||||
The primary objective in most modes of Space Station 13 is survival. You must
|
||||
try to stay alive long enough to escape on the evacuation shuttle. This
|
||||
doesn't mean you should immediately rush to the escape dock and wall yourself
|
||||
in; half the fun is in trying to keep the station running for as long as
|
||||
possible. Exactly how you do this is up to you and your assigned job.
|
||||
</p>
|
||||
|
||||
<a name="modes"></a>
|
||||
<h2>Modes</h2>
|
||||
|
||||
<a name="mode_blob"></a>
|
||||
<h3>Blob</h3>
|
||||
<p>
|
||||
A deadly mutagenous virus has been released and the crew must fight a green
|
||||
mass for control of the station. The blob spreads quickly, and only the
|
||||
sacred welder can fight it back! (Unless it spawns in the engine and dies
|
||||
instantly.)
|
||||
</p>
|
||||
<p>
|
||||
<b>PROTIP: USE A WELDER</b>
|
||||
</p>
|
||||
|
||||
<a name="mode_traitor"></a>
|
||||
<h3>Traitor</h3>
|
||||
<p>
|
||||
In traitor mode there is a traitor aboard the space station!!! The traitor is
|
||||
assigned a random objective, from escaping alone to stealing the captain's
|
||||
jumpsuit. The objective of everyone else is to stop the traitor and survive!
|
||||
</p>
|
||||
|
||||
<a name="mode_meteor"></a>
|
||||
<h3>Meteor</h3>
|
||||
<p>
|
||||
In Meteor, the station is threatened by a meteor shower. The objective is to
|
||||
do your best to repair and maintain the station, and eventually escape.
|
||||
</p>
|
||||
|
||||
<a name="mode_monkey"></a>
|
||||
<h3>Monkey</h3>
|
||||
<p>
|
||||
In Monkey mode a deadly mutagenous virus has been released and the crew must
|
||||
fight small underdeveloped primates for control of the station. The monkey's
|
||||
bite is deadly, and anyone bitten will soon join the primate horde.
|
||||
</p>
|
||||
<p>
|
||||
<b>PROTIP: ELECTRIC GRILLES ARE PRETTY DANGEROUS.</b>
|
||||
</p>
|
||||
|
||||
<a name="mode_nuclear"></a>
|
||||
<h3>Nuclear Emergency</h3>
|
||||
<p>
|
||||
A crack team of Syndicate operatives have assaulted the station in order to
|
||||
gather a nuclear activation key. If found, the team will detonate a NUCLEAR
|
||||
BOMB and the station will be destroyed! The team must escape with the nuclear
|
||||
activation key while fighting off the syndicate.
|
||||
</p>
|
||||
<p>
|
||||
<b>PROTIP: IF YOU KILL A MEMBER OF THE SYNDICATE STEAL HIS STUFF.</b>
|
||||
</p>
|
||||
|
||||
<a name="getting_around"></a>
|
||||
<h2>Getting Around</h2>
|
||||
<p>
|
||||
The interface for Space Station 13 is largely click driven. To use something,
|
||||
you will almost always click or double click.
|
||||
</p>
|
||||
|
||||
<a name="getting_started"></a>
|
||||
<h2>Getting Started</h2>
|
||||
<p>
|
||||
<i>(A Quick jump-start guide to get into the game)</i>
|
||||
</p>
|
||||
<p>
|
||||
Select your preferences using the character setup command and then use ready
|
||||
to enter the game.
|
||||
</p>
|
||||
<p>
|
||||
If you do this after the game has started you will spawn as an assistant;
|
||||
otherwise, a vague guide to the jobs you may choose follows.
|
||||
</p>
|
||||
|
||||
<a name="jobs"></a>
|
||||
<h2>Jobs</h2>
|
||||
|
||||
<a name="job_assistant"></a>
|
||||
<h3>Assistant</h3>
|
||||
<p>
|
||||
You'll spawn as this if you enter after a game has started. Assistants have a
|
||||
very low-access ID card, and really nothing else. They don't however have any
|
||||
duties, so this can be a pretty good way to learn the layout of the station
|
||||
if you join midway through a round. It's really not worth choosing this,
|
||||
though.
|
||||
</p>
|
||||
|
||||
<a name="job_atmospheric"></a>
|
||||
<h3>Atmospheric Technician</h3>
|
||||
<p>
|
||||
This involves looking after the atmospheric systems on the station, as you
|
||||
can probably guess. In theory, you'll be checking the air composition of the
|
||||
station with an analyzer and making sure that it's not going to kill people.
|
||||
In reality, you'll be cleaning up the constant gas spills caused by griefers
|
||||
and the traitor via use of the pipe filters in the maintenance tunnel (which
|
||||
are pretty self-explanatory) and the portable filters that are around the
|
||||
station and in Atmospheric Storage. This is probably the easiest job for a
|
||||
new player, so jump in as this and getting a feel for the station layout and
|
||||
the basic workings of the game before you try anything else.
|
||||
</p>
|
||||
|
||||
<a name="job_doctor"></a>
|
||||
<h3>Medical Doctor</h3>
|
||||
<p>
|
||||
Pretty much self explanatory. Grab a Medkit, and either patrol the station
|
||||
treating the gassed/beaten crewmembers who will be lying around within 20
|
||||
minutes of any game starting or stay in Medical and heal the people who get
|
||||
dragged in. More advanced medical is explained in weasello's guide below.
|
||||
</p>
|
||||
|
||||
<a name="job_engineer"></a>
|
||||
<h3>Station Engineer</h3>
|
||||
<p>
|
||||
This can be one of the more technical jobs, but it doesn't take a huge amount
|
||||
of time to learn. Basically, the Engineers handle the engine itself (which
|
||||
involves keeping it fed with plasma, igniting it, and so on.) and the repair
|
||||
of the station. Weasello's stuff has a reasonably good guide to the basics of
|
||||
this, and you should be able to work the rest out by jumping on one of the
|
||||
empty servers and tinkering about for twenty minutes or so. This isn't a bad
|
||||
place to start, but messing up with the engines can kill every single person
|
||||
on the station so be fucking careful.
|
||||
</p>
|
||||
|
||||
<a name="job_security"></a>
|
||||
<h3>Security Officer</h3>
|
||||
<p>
|
||||
Open your locker, grab a stun baton and then patrol the station and hit
|
||||
people. That's it.
|
||||
</p>
|
||||
<p>
|
||||
<b>PROTIP: KILLING PEOPLE OR BEING A DICK WILL GET YOU BANNED.</b>
|
||||
</p>
|
||||
|
||||
<a name="job_scientist"></a>
|
||||
<h3>Scientist</h3>
|
||||
<p>
|
||||
Scientists are essentially the bombmakers. Weasello's guide has a reasonably
|
||||
complex explanation of what you're supposed to do here, but basically you'll
|
||||
be heating plasma and assembling bomb circuitry. Security and the AI will
|
||||
almost certainly be keeping a close eye on you if you choose to do this, so
|
||||
I'd you play around a bit with Atmos and get some experience before trying
|
||||
this.
|
||||
</p>
|
||||
|
||||
<a name="job_forensic"></a>
|
||||
<h3>Forensic Technician</h3>
|
||||
<p>
|
||||
Seriously, don't bother with this. It's arguably the most boring job of all,
|
||||
and can be one of the most annoying to get to grips with. Forensic Techs take
|
||||
fingerprints from people and objects and check them against their records.
|
||||
That's pretty much it. With the relatively short length of games on the goon
|
||||
server, this isn't really worth doing in itself, as any security man can be a
|
||||
Forensic Tech if needed.
|
||||
</p>
|
||||
|
||||
<a name="job_geneticist"></a>
|
||||
<h3>Geneticist</h3>
|
||||
<p>
|
||||
This is pretty much the most complex job on the station. Don't touch this
|
||||
until you've played for a while. Geneticists can directly edit the DNA of
|
||||
other players and monkeys, and as such can bring people back to life, change
|
||||
their skin colour, or turn a human into a monkey or vice versa. It's all far
|
||||
too complex and annoying to be worth typing out here. There's probably a more
|
||||
complex guide for this around, go find it if you REALLY want to do this.
|
||||
</p>
|
||||
|
||||
<a name="job_chaplain"></a>
|
||||
<h3>Chaplain</h3>
|
||||
<p>
|
||||
AARHGFHGHGH I FUCKING LOVE TO PRAY
|
||||
</p>
|
||||
|
||||
<a name="job_head_research"></a>
|
||||
<h3>Head of Research</h3>
|
||||
<p>
|
||||
The Head of Research essentially administers Medical and Toxins research and
|
||||
has an ID-card with quite high access. This isn't really a good choice at all
|
||||
for a new player as it implies a degree of experience with the game.
|
||||
Practically, you'll be helping out Toxins and Medical and occasionally being
|
||||
attacked for your ID card.
|
||||
</p>
|
||||
|
||||
<a name="job_head_personnel"></a>
|
||||
<h3>Head of Personnel</h3>
|
||||
<p>
|
||||
This one really is only for players with a little bit of experience. The Head
|
||||
of Personnel is in charge of Security and managers the positions of the
|
||||
people on the station; they have access to the personnel records and can edit
|
||||
the ID cards and thus positions of crewmembers as they wish. They also start
|
||||
next to a locker which contains a laser pistol, which can be useful for a
|
||||
traitor or in self defense. Traitors will often target the HoP for his ID
|
||||
card and special equipment, as well.
|
||||
</p>
|
||||
|
||||
<a name="job_ai"></a>
|
||||
<h3>AI</h3>
|
||||
<p>
|
||||
Don't do this. It carries a huge amount of power as well as massive
|
||||
limitations, as the AI is bound by Asimov's laws. The AI can control any of
|
||||
the electrical systems on the station, including the air supply, engine blast
|
||||
doors and power. Making a stupid mistake as the AI will very possibly kill
|
||||
several people, so stay away from this until you have a little bit of
|
||||
experience with the game.
|
||||
</p>
|
||||
|
||||
<a name="job_captain"></a>
|
||||
<h3>Captain</h3>
|
||||
<p>
|
||||
Self explanatory. An all-access ID card, total power over the crew, guns and
|
||||
a personal teleporter. ABSOLUTELY DO NOT DO THIS UNTIL YOU HAVE SOME
|
||||
EXPERIENCE WITH THE GAME OR YOU WILL PISS OFF OTHER PLAYERS.
|
||||
</p>
|
||||
|
||||
<a name="movement"></a>
|
||||
<h2>Movement</h2>
|
||||
<p>
|
||||
Movement on SS13 is only in the 4 cardinal directions. The diagonal
|
||||
directions throw/drop items, switch hand/modes. If you move into a dense
|
||||
object you first try to push it. Not all items can be pushed. You can also
|
||||
right click on an object and select 'pull' and then every movement you make
|
||||
will ttempt to drag that object behind you. If you wish to stop pulling you
|
||||
must go onto your on-screen display and find the object with a person in a
|
||||
box. Click on it and you will stop pulling. If you ever desire to make sure
|
||||
of which direction you are facing use .center and then try to move what
|
||||
direction you want to face.
|
||||
</p>
|
||||
|
||||
<a name="equipping"></a>
|
||||
<h2>Equipping</h2>
|
||||
<p>
|
||||
You 'equip' items in SS13 by picking them up. In order to pick an item up all
|
||||
you must do is attack it with a free hand. Now you hae two hands. Which hand
|
||||
is being used is indicated by the blue button in the lower-left area of your
|
||||
HUD. You can change hands by clicking the hand button or pressing the
|
||||
.northeast macro. You can then also then transfer that item to another part
|
||||
of your body. In order to do this you just attack the green box (or blue
|
||||
storage box) on your hud that you would like to move it to. In order to
|
||||
'unequip' a equipped item that is not in your hand. Get a free hand and
|
||||
attack the item. Then in order to drop an item in your hand (and make it a
|
||||
free hand again) click the drop button (or throw to throw the item wherever
|
||||
you are facing).
|
||||
</p>
|
||||
|
||||
<a name="talking"></a>
|
||||
<h2>Talking</h2>
|
||||
<p>
|
||||
Talking on SS13 is still via the say verb so the normal say speech bubble on
|
||||
the command line will still work. Please note however that you can whisper.
|
||||
More on this in the items selection under radio, intercoms, and headsets.
|
||||
There are a lot of emotes that are accessed by preceding your text with a
|
||||
'*'. To view a list of available emotes for your character use the type
|
||||
'*help' into the say menu. To speak via your headset use a semicolon after
|
||||
say.
|
||||
</p>
|
||||
|
||||
<a name="takegive"></a>
|
||||
<h2>Taking Items / Giving Items</h2>
|
||||
<p>
|
||||
You can take items from people by dragging their mob onto your mob. A screen
|
||||
will pop up. From this screen you can select an object to remove from them.
|
||||
If you select a 'Nothing' slot then you will attempt to equip that slot with
|
||||
the object you are holding.
|
||||
</p>
|
||||
|
||||
<a name="death"></a>
|
||||
<h2>Death</h2>
|
||||
<p>
|
||||
If you are dead then you can use the watch verb to look through the eyes of
|
||||
another mob. Depending on circumstances you can use abandon mob to restart
|
||||
(leaving that box blank gives you a random name). A dead person hears
|
||||
everything that is said but might not hear all attack messages.
|
||||
</p>
|
||||
|
||||
<a name="links"></a>
|
||||
<h2>External Links</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a target="_blank" href="http://www.declassified-ss13.com/servers.php">Servers</a> (just
|
||||
a quick and dirty list of servers to connect to)
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="http://www.declassified-ss13.com/cheatsheets.php">Cheat
|
||||
Sheets</a> (point-form processes, constantly being updated)
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="http://www.maplib.net/atlas.php?id=347">Maps</a> (goon servers
|
||||
all use these maps)
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="http://www.declassified-ss13.com/">Space Station 13
|
||||
Declassified</a>
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
html/map.png
|
Before Width: | Height: | Size: 5.5 KiB |
@@ -1,77 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>New commit</title>
|
||||
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="changelog.css">
|
||||
<style>
|
||||
body {margin:0;padding:0 10px;}
|
||||
#addli {cursor:pointer;}
|
||||
span {font-weight:bold;}
|
||||
span.icon {width:16px;height:16px;display:inline-block;float:right;}
|
||||
input.li {width:100%;}
|
||||
#table {width:99%;}
|
||||
#result {width:100%;}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var i=1;
|
||||
function createli(event){
|
||||
event.preventDefault();
|
||||
var liclass = $('#litype').val();
|
||||
$('#table').append($('<tr><td><span class="icon '+liclass+'"></span><span>'+i+'.</span></td><td><input name="'+liclass+'" type="text" value="" class="li"></td></tr>'));
|
||||
i++;
|
||||
}
|
||||
function htmlEscape(str) {
|
||||
return String(str)
|
||||
.replace(/&/g, '&')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/'/g, ''')
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>');
|
||||
}
|
||||
$(document).ready(function(){
|
||||
$('#addli').click(createli);
|
||||
$('#commit').submit(function(event){
|
||||
event.preventDefault();
|
||||
var result = $('#result');
|
||||
var text = '<div class="commit sansserif">\n';
|
||||
text += '\t<h2 class="date">'+$(this.date).val()+'</h2>\n';
|
||||
text += '\t<h3 class="author">'+$(this.author).val()+' updated:</h3>\n';
|
||||
text += '\t<ul class="changes bgimages16">\n';
|
||||
$('input.li').each(function(){
|
||||
text += '\t\t<li class="'+$(this).attr('name')+'">'+$(this).val()+'</li>\n';
|
||||
});
|
||||
text += '\t</ul>\n';
|
||||
text += '</div>\n';
|
||||
result.val(text);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<form id="commit" name="commit">
|
||||
<table id="table">
|
||||
<tr><td style="width:100px;"><span>Date:</span></td><td><input type="text" name="date" value="" title="Put date here"></td></tr>
|
||||
<tr><td><span>Author:</span></td><td><input type="text" name="author" value="" title="Put your name here"></td></tr>
|
||||
<tr><td><span>Add list item</span></td><td>
|
||||
<select name="litype" id="litype" title="Select change type and hit +">
|
||||
<option value="rscadd">Added feature</option>
|
||||
<option value="rscdel">Removed feature</option>
|
||||
<option value="bugfix">Bugfix</option>
|
||||
<option value="wip">Work in progress</option>
|
||||
<option value="tweak">Tweak</option>
|
||||
<option value="experiment">Experimental feature</option>
|
||||
<option value="imageadd">Added icon</option>
|
||||
<option value="imagedel">Removed icon</option>
|
||||
<option value="soundadd">Added sound</option>
|
||||
<option value="sounddel">Removed sound</option>
|
||||
</select>
|
||||
<button id="addli">+</button>
|
||||
</td></tr>
|
||||
</table>
|
||||
<input type="submit" value="Get HTML" title="Click here to get result">
|
||||
</form>
|
||||
<textarea id="result" rows="20" cols="50"></textarea>
|
||||
</body>
|
||||
</html>
|
||||
BIN
html/paigrid.png
|
Before Width: | Height: | Size: 8.5 KiB |
BIN
html/painew.png
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 958 B |
13
html/templates/footer.html
Normal file
@@ -0,0 +1,13 @@
|
||||
</div>
|
||||
|
||||
<b>GoonStation 13 Development Team</b>
|
||||
<div class = "top">
|
||||
<b>Coders:</b> Stuntwaffle, Showtime, Pantaloons, Nannek, Keelin, Exadv1, hobnob, Justicefries, 0staf, sniperchance, AngriestIBM, BrianOBlivion<br>
|
||||
<b>Spriters:</b> Supernorn, Haruhi, Stuntwaffle, Pantaloons, Rho, SynthOrange, I Said No<br>
|
||||
</div>
|
||||
<br>
|
||||
<p class="lic"><a name="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img src="88x31.png" alt="Creative Commons License" /></a><br><i>Except where otherwise noted, Goon Station 13 is licensed under a <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 License</a>.<br>Rights are currently extended to <a href="http://forums.somethingawful.com/">SomethingAwful Goons</a> only.</i></p>
|
||||
<p class="lic">Some icons by <a href="http://p.yusukekamiyamane.com/">Yusuke Kamiyamane</a>. All rights reserved. Licensed under a <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 License</a>.</p>
|
||||
</td></tr></table>
|
||||
</body>
|
||||
</html>
|
||||
58
html/templates/header.html
Normal file
@@ -0,0 +1,58 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Baystation 12 Changelog</title>
|
||||
<link rel="stylesheet" type="text/css" href="changelog.css">
|
||||
<base target="_blank" />
|
||||
<script type='text/javascript'>
|
||||
|
||||
function changeText(tagID, newText, linkTagID){
|
||||
var tag = document.getElementById(tagID);
|
||||
tag.innerHTML = newText;
|
||||
var linkTag = document.getElementById(linkTagID);
|
||||
linkTag.removeAttribute("href");
|
||||
linkTag.removeAttribute("onclick");
|
||||
}
|
||||
|
||||
</script>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align='center' width='650'><tr><td>
|
||||
<table align='center' class="top">
|
||||
<tr>
|
||||
<td valign='top'>
|
||||
<div align='center'><font size='3'><b>Space Station 13</b></font></div>
|
||||
|
||||
<p><div align='center'><font size='3'><a href="http://baystation12.net/wiki/">Wiki</a> | <a href="https://github.com/Baystation12/Baystation12/">Source code</a></font></div></p>
|
||||
<font size='2'>Code licensed under <a href="http://www.gnu.org/licenses/agpl.html">GPLv3</a>. Content licensed under <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>.<br><br>
|
||||
<font size='2'><b>Visit our IRC channel:</b> #bs12 on irc.sorcery.net</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br><b>Baystation 12 Credit List</b>
|
||||
<table align='center' class="top">
|
||||
<tr>
|
||||
<td valign='top'>
|
||||
<font size='2'><b>Current Project Maintainers:</b> <a href='https://github.com/Baystation12?tab=members'>-Click Here-</a><br></font>
|
||||
<font size='2'><b>Currently Active GitHub contributor list:</b> <a href='https://github.com/Baystation12/Baystation12/graphs/contributors'>-Click Here-</a><br></font>
|
||||
<font size='2'><b>Code:</b> Abi79, Aryn, Cael_Aislinn, Ccomp5950, Chinsky, cib, CompactNinja, DopeGhoti, Erthilo, Hawk_v3, Head, Ispil, JoeyJo0, Lexusjjss, Melonstorm, Miniature, Mloc, NerdyBoy1104, PsiOmegaDelta, SkyMarshal, Snapshot, Spectre, Strumpetplaya, Sunfall, Tastyfish, Uristqwerty<br></font>
|
||||
<font size='2'><b>Sprites:</b> Apple_Master, Arcalane, Chinsky, CompactNinja, Deus Dactyl, Erthilo, Flashkirby, JoeyJo0, Miniature, Searif, Xenone, faux<br></font>
|
||||
<font size='2'><b>Sounds:</b> Aryn<br></font>
|
||||
<font size='2'><b>Main Testers:</b> Anyone who has submitted a bug to the issue tracker<br></font>
|
||||
<font size='2'><b>Thanks to:</b> /tg/ station, /vg/station, GoonStation devs, the original SpaceStation developers and Invisty for the title image.<br> Also a thanks to anybody who has contributed who is not listed here :( Ask to be added here on irc.</font>
|
||||
<font size='2' color='red'><b><br>Have a bug to report?</b> Visit our <a href="https://github.com/Baystation12/Baystation12/issues?labels=Bug&state=open">Issue Tracker</a>.<br></font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!--
|
||||
|
||||
TO ADD AN ENTRY, ADD AND MAINTAIN YOUR OWN changelog/USERNAME.yml FILE.
|
||||
|
||||
*** DO NOT MODIFY THIS FILE OR YOU WILL CAUSE MERGE CONFLICTS. ***
|
||||
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
|
Before Width: | Height: | Size: 819 B |
4
tools/GenerateChangelog/makeChangelog.bat
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
rem Cheridan asked for this. - N3X
|
||||
call python ss13_genchangelog.py ../../html/changelog.html ../../html/changelogs
|
||||
pause
|
||||
210
tools/GenerateChangelog/ss13_genchangelog.py
Normal file
@@ -0,0 +1,210 @@
|
||||
'''
|
||||
Usage:
|
||||
$ python ss13_genchangelog.py [--dry-run] html/changelog.html html/changelogs/
|
||||
|
||||
ss13_genchangelog.py - Generate changelog from YAML.
|
||||
|
||||
Copyright 2013 Rob "N3X15" Nelson <nexis@7chan.org>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
'''
|
||||
|
||||
from __future__ import print_function
|
||||
import yaml, os, glob, sys, re, time, argparse
|
||||
from datetime import datetime, date
|
||||
from time import time
|
||||
|
||||
today = date.today()
|
||||
|
||||
dateformat = "%d %B %Y"
|
||||
|
||||
opt = argparse.ArgumentParser()
|
||||
opt.add_argument('-d', '--dry-run', dest='dryRun', default=False, action='store_true', help='Only parse changelogs and, if needed, the targetFile. (A .dry_changelog.yml will be output for debugging purposes.)')
|
||||
opt.add_argument('targetFile', help='The HTML changelog we wish to update.')
|
||||
opt.add_argument('ymlDir', help='The directory of YAML changelogs we will use.')
|
||||
|
||||
args = opt.parse_args()
|
||||
|
||||
all_changelog_entries = {}
|
||||
|
||||
validPrefixes = [
|
||||
'bugfix',
|
||||
'wip',
|
||||
'tweak',
|
||||
'soundadd',
|
||||
'sounddel',
|
||||
'rscdel',
|
||||
'rscadd',
|
||||
'imageadd',
|
||||
'imagedel',
|
||||
'spellcheck',
|
||||
'experiment',
|
||||
'tgs'
|
||||
]
|
||||
|
||||
def dictToTuples(inp):
|
||||
return [(k, v) for k, v in inp.items()]
|
||||
|
||||
changelog_cache = os.path.join(args.ymlDir, '.all_changelog.yml')
|
||||
|
||||
failed_cache_read = True
|
||||
if os.path.isfile(changelog_cache):
|
||||
try:
|
||||
with open(changelog_cache) as f:
|
||||
(_, all_changelog_entries) = yaml.load_all(f)
|
||||
failed_cache_read = False
|
||||
|
||||
# Convert old timestamps to newer format.
|
||||
new_entries = {}
|
||||
for _date in all_changelog_entries.keys():
|
||||
ty = type(_date).__name__
|
||||
# print(ty)
|
||||
if ty in ['str', 'unicode']:
|
||||
temp_data = all_changelog_entries[_date]
|
||||
_date = datetime.strptime(_date, dateformat).date()
|
||||
new_entries[_date] = temp_data
|
||||
else:
|
||||
new_entries[_date] = all_changelog_entries[_date]
|
||||
all_changelog_entries = new_entries
|
||||
except Exception as e:
|
||||
print("Failed to read cache:")
|
||||
print(e, file=sys.stderr)
|
||||
|
||||
if args.dryRun:
|
||||
changelog_cache = os.path.join(args.ymlDir, '.dry_changelog.yml')
|
||||
|
||||
if failed_cache_read and os.path.isfile(args.targetFile):
|
||||
from bs4 import BeautifulSoup
|
||||
from bs4.element import NavigableString
|
||||
print(' Generating cache...')
|
||||
with open(args.targetFile, 'r') as f:
|
||||
soup = BeautifulSoup(f)
|
||||
for e in soup.find_all('div', {'class':'commit'}):
|
||||
entry = {}
|
||||
date = datetime.strptime(e.h2.string.strip(), dateformat).date() # key
|
||||
for authorT in e.find_all('h3', {'class':'author'}):
|
||||
author = authorT.string
|
||||
# Strip suffix
|
||||
if author.endswith('updated:'):
|
||||
author = author[:-8]
|
||||
author = author.strip()
|
||||
|
||||
# Find <ul>
|
||||
ulT = authorT.next_sibling
|
||||
while(ulT.name != 'ul'):
|
||||
ulT = ulT.next_sibling
|
||||
changes = []
|
||||
|
||||
for changeT in ulT.children:
|
||||
if changeT.name != 'li': continue
|
||||
val = changeT.decode_contents(formatter="html")
|
||||
newdat = {changeT['class'][0] + '': val + ''}
|
||||
if newdat not in changes:
|
||||
changes += [newdat]
|
||||
|
||||
if len(changes) > 0:
|
||||
entry[author] = changes
|
||||
if date in all_changelog_entries:
|
||||
all_changelog_entries[date].update(entry)
|
||||
else:
|
||||
all_changelog_entries[date] = entry
|
||||
|
||||
del_after = []
|
||||
print('Reading changelogs...')
|
||||
for fileName in glob.glob(os.path.join(args.ymlDir, "*.yml")):
|
||||
name, ext = os.path.splitext(os.path.basename(fileName))
|
||||
if name.startswith('.'): continue
|
||||
if name == 'example': continue
|
||||
fileName = os.path.abspath(fileName)
|
||||
print(' Reading {}...'.format(fileName))
|
||||
cl = {}
|
||||
with open(fileName, 'r') as f:
|
||||
cl = yaml.load(f)
|
||||
f.close()
|
||||
if today not in all_changelog_entries:
|
||||
all_changelog_entries[today] = {}
|
||||
author_entries = all_changelog_entries[today].get(cl['author'], [])
|
||||
if len(cl['changes']):
|
||||
new = 0
|
||||
for change in cl['changes']:
|
||||
if change not in author_entries:
|
||||
(change_type, _) = dictToTuples(change)[0]
|
||||
if change_type not in validPrefixes:
|
||||
print(' {0}: Invalid prefix {1}'.format(fileName, change_type), file=sys.stderr)
|
||||
author_entries += [change]
|
||||
new += 1
|
||||
all_changelog_entries[today][cl['author']] = author_entries
|
||||
if new > 0:
|
||||
print(' Added {0} new changelog entries.'.format(new))
|
||||
|
||||
if cl.get('delete-after', False):
|
||||
if os.path.isfile(fileName):
|
||||
if args.dryRun:
|
||||
print(' Would delete {0} (delete-after set)...'.format(fileName))
|
||||
else:
|
||||
del_after += [fileName]
|
||||
|
||||
if args.dryRun: continue
|
||||
|
||||
cl['changes'] = []
|
||||
with open(fileName, 'w') as f:
|
||||
yaml.dump(cl, f, default_flow_style=False)
|
||||
|
||||
targetDir = os.path.dirname(args.targetFile)
|
||||
|
||||
with open(args.targetFile.replace('.htm', '.dry.htm') if args.dryRun else args.targetFile, 'w') as changelog:
|
||||
with open(os.path.join(targetDir, 'templates', 'header.html'), 'r') as h:
|
||||
for line in h:
|
||||
changelog.write(line)
|
||||
|
||||
for _date in reversed(sorted(all_changelog_entries.keys())):
|
||||
entry_htm = '\n'
|
||||
entry_htm += '\t\t\t<h2 class="date">{date}</h2>\n'.format(date=_date.strftime(dateformat))
|
||||
write_entry = False
|
||||
for author in sorted(all_changelog_entries[_date].keys()):
|
||||
if len(all_changelog_entries[_date]) == 0: continue
|
||||
author_htm = '\t\t\t<h3 class="author">{author} updated:</h3>\n'.format(author=author)
|
||||
author_htm += '\t\t\t<ul class="changes bgimages16">\n'
|
||||
changes_added = []
|
||||
for (css_class, change) in (dictToTuples(e)[0] for e in all_changelog_entries[_date][author]):
|
||||
if change in changes_added: continue
|
||||
write_entry = True
|
||||
changes_added += [change]
|
||||
author_htm += '\t\t\t\t<li class="{css_class}">{change}</li>\n'.format(css_class=css_class, change=change.strip())
|
||||
author_htm += '\t\t\t</ul>\n'
|
||||
if len(changes_added) > 0:
|
||||
entry_htm += author_htm
|
||||
if write_entry:
|
||||
changelog.write(entry_htm)
|
||||
|
||||
with open(os.path.join(targetDir, 'templates', 'footer.html'), 'r') as h:
|
||||
for line in h:
|
||||
changelog.write(line)
|
||||
|
||||
|
||||
with open(changelog_cache, 'w') as f:
|
||||
cache_head = 'DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.'
|
||||
yaml.dump_all([cache_head, all_changelog_entries], f, default_flow_style=False)
|
||||
|
||||
if len(del_after):
|
||||
print('Cleaning up...')
|
||||
for fileName in del_after:
|
||||
if os.path.isfile(fileName):
|
||||
print(' Deleting {0} (delete-after set)...'.format(fileName))
|
||||
os.remove(fileName)
|
||||