mirror of
https://github.com/kihashi/stardew_community_checklist.git
synced 2025-10-19 08:03:17 +00:00
Merge branch 'release/1.4' into gh-pages
This commit is contained in:
commit
6c0cf9998c
69
README.md
69
README.md
@ -1,2 +1,71 @@
|
||||
# Stardew Community Checklist
|
||||
|
||||
A checklist for the Community Center Bundles in Stardew Valley
|
||||
|
||||
SCC is an application for keeping track of the community center bundles in Stardew Valley. When I started playing the
|
||||
game, I spent a decent amount of time searching the wiki trying to figure out what items I needed for the community
|
||||
center and keeping track of which ones I had already turned in. I started working on this as a way to help myself out
|
||||
playing the game. Of course, I finished the community center bundles before I finished the site, but I figured that
|
||||
maybe someone else would get some use out of it.
|
||||
|
||||
A live version of the site is available at the following link:
|
||||
|
||||
---
|
||||
# http://www.stardewcommunitychecklist.com/
|
||||
---
|
||||
|
||||
Note: The layout makes pretty big use of [Flexbox](https://www.w3.org/TR/css-flexbox-1/), which is not quite finalized.
|
||||
I've tested the site in Chrome, Firefox, and Safari. IE seems to have
|
||||
[some problems with text layout](http://i.imgur.com/smeMuAi.png), though.
|
||||
|
||||
# Features
|
||||
|
||||
* View items by bundle, alphabetically, by season, or by the skill involved in getting the item.
|
||||
* View Bundle and Room completion rates.
|
||||
* Filter out completed items and bundles.
|
||||
* Spoiler Free Mode -- Hide the text, season, and skill information for items as well as bundle rewards.
|
||||
* Item Search -- Want to see if an item is in a bundle? Search for it in the Alphabetical list!
|
||||
* Save your progress -- Whenever you make a change to the checklist, it is saved to your browser's local storage.
|
||||
* Import and Export -- Want to take your data to another computer? Export the data string and import it at another
|
||||
computer.
|
||||
|
||||
## Item Information
|
||||
|
||||
An item block looks like this:
|
||||
|
||||

|
||||
|
||||
In it, you can see the item name, where it can be obtained, which bundles it is in (and whether you have it checked off
|
||||
for those bundles), which seasons it can be obtained in, and which skills can be used in getting it. Want to check it
|
||||
off? Simply click the button for the appropriate bundle.
|
||||
|
||||
# Things to come
|
||||
|
||||
I have some planned features listed below, but I am open to feature requests.
|
||||
If you think of something, please, list it below or
|
||||
[open an issue](https://github.com/kihashi/stardew_community_checklist/issues/new).
|
||||
|
||||
* Season Completion Rate
|
||||
* Skill Completion Rate
|
||||
* Season Exclusive Toggle -- In the Season tab, shows items that can only be obtained in the selected season.
|
||||
* (Maybe) Import data from Stardew Valley Save Files
|
||||
|
||||
# Development
|
||||
|
||||
SCC is a single page application, so all it needs is a web server. You can use any web server that you like, but I
|
||||
prefer to use the built-in python web server, which is available on any platform with Python installed.
|
||||
|
||||
```
|
||||
# Python 3.5
|
||||
python -m http.server
|
||||
```
|
||||
|
||||
Libraries and Frameworks used:
|
||||
|
||||
* [vuejs](http://vuejs.org/)
|
||||
* [Bulma](http://bulma.io/)
|
||||
|
||||
Feature requests and pull requests are certainly welcome. I still need to clean up a lot of things in the repository
|
||||
(For example, I changed naming styles part way through and the item "cards" need to be made into a vue component so they
|
||||
aren't repeated), but the code should *mostly* be easy to figure out. I suspect there are optimizations to be done in
|
||||
the searching and filtering logic as well.
|
||||
|
||||
@ -1,5 +1,21 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"id": "Version 1.4",
|
||||
"date": "2016-04-16",
|
||||
"link": "Version-1.4",
|
||||
"changes": [
|
||||
"Fixed a bug where items skills were always being hidden",
|
||||
"Updated Season and Skill tabs to sort alphabetically",
|
||||
"Updated to Bulma 0.0.20",
|
||||
"Added a text decoration to completed bundles",
|
||||
"Fixed a bug with side-panel styling",
|
||||
"Reduced the margin size of the room names so they all fit properly in their container.",
|
||||
"Updated the bundles nav to be included in 'Hide Completed'",
|
||||
"Hide Completed and Hide Spoilers settings are now saved.",
|
||||
"Added a more thorough readme."
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Version 1.3",
|
||||
"date": "2016-04-15",
|
||||
|
||||
34
index.html
34
index.html
@ -5,7 +5,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<title>Stardew Valley Community Checklist</title>
|
||||
<link type="text/css" rel="stylesheet"
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.0.19/css/bulma.min.css"/>
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.0.20/css/bulma.min.css"/>
|
||||
<link type="text/css" rel="stylesheet"
|
||||
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"/>
|
||||
<link type="text/css" rel="stylesheet" href="main.css"/>
|
||||
@ -73,7 +73,7 @@
|
||||
</div>
|
||||
<div class="header-right header-menu">
|
||||
<span class="header-item">
|
||||
<a class="button" v-on:click="hideCompleted = !hideCompleted">
|
||||
<a class="button" v-on:click="toggleHideCompleted">
|
||||
<span class="icon">
|
||||
<i class="fa" v-bind:class="[hideCompleted ? 'fa-check-square-o' : 'fa-square-o']"></i>
|
||||
</span>
|
||||
@ -84,7 +84,7 @@
|
||||
</span>
|
||||
<span class="header-item">
|
||||
<p class="control has-addons">
|
||||
<a class="button" v-on:click="hideSpoilers = !hideSpoilers">
|
||||
<a class="button" v-on:click="toggleHideSpoilers">
|
||||
<span class="icon">
|
||||
<i class="fa" v-bind:class="[hideSpoilers ? 'fa-check-square-o' : 'fa-square-o']"></i>
|
||||
</span>
|
||||
@ -205,7 +205,7 @@
|
||||
<div class="container is-fluid">
|
||||
<div class="columns">
|
||||
<div class="column is-2">
|
||||
<nav class="panels">
|
||||
<nav class="panel">
|
||||
<p class="panel-heading">
|
||||
Bundles
|
||||
</p>
|
||||
@ -217,13 +217,17 @@
|
||||
{{ room.name }}
|
||||
</a>
|
||||
</p>
|
||||
<a class="panel-block" href="#" v-for="bundle in static.bundles | filterBy active_room in 'room'"
|
||||
id="panel-bundle-{{ bundle.id }}" v-bind:class="[bundle.id == active_bundle ? 'is-active' : '']"
|
||||
v-on:click.stop="change_bundle(bundle.id)">
|
||||
<span class="panel-icon">
|
||||
<i class="fa fa-archive"></i>
|
||||
</span> {{ bundle.name }}
|
||||
</a>
|
||||
<template v-for="bundle in static.bundles | filterBy active_room in 'room'">
|
||||
<a class="panel-block" href="#"
|
||||
id="panel-bundle-{{ bundle.id }}" v-bind:class="[bundle.id == active_bundle ? 'is-active' : '']"
|
||||
v-on:click.stop="change_bundle(bundle.id)" v-if="!(hideCompleted && isBundleComplete(bundle.id))">
|
||||
|
||||
<span class="panel-icon">
|
||||
<i class="fa fa-archive"></i>
|
||||
</span>
|
||||
<span v-bind:class="[isBundleComplete(bundle.id) ? 'bundle-complete' : '']">{{ bundle.name }}</span>
|
||||
</a>
|
||||
</template>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="column">
|
||||
@ -395,7 +399,7 @@
|
||||
<div class="container is-fluid">
|
||||
<div class="columns">
|
||||
<div class="column is-2">
|
||||
<nav class="panels">
|
||||
<nav class="panel">
|
||||
<p class="panel-heading">
|
||||
Seasons
|
||||
</p>
|
||||
@ -412,7 +416,7 @@
|
||||
<h3 class="title">{{ getSeasonName(active_season) }}</h3>
|
||||
<progress class="progress is-info" value="" max=""></progress>
|
||||
<div class="columns is-multiline">
|
||||
<template v-for="item in static.items | seasonFilter active_season">
|
||||
<template v-for="item in static.items | seasonFilter active_season | orderBy 'name'">
|
||||
<div class="column is-3 is-flex" v-if="!(hideCompleted && isCompleted(item))">
|
||||
<div class="card is-fullwidth is-flex eq-line">
|
||||
<header class="card-header">
|
||||
@ -475,7 +479,7 @@
|
||||
<div class="container is-fluid">
|
||||
<div class="columns">
|
||||
<div class="column is-2">
|
||||
<nav class="panels">
|
||||
<nav class="panel">
|
||||
<p class="panel-heading">
|
||||
Skills
|
||||
</p>
|
||||
@ -492,7 +496,7 @@
|
||||
<h3 class="title">{{ getSkillName(active_skill) }}</h3>
|
||||
<progress class="progress is-info" value="" max=""></progress>
|
||||
<div class="columns is-multiline">
|
||||
<template v-for="item in static.items | filterBy active_skill in 'skills'">
|
||||
<template v-for="item in static.items | filterBy active_skill in 'skills' | orderBy 'name'">
|
||||
<div class="column is-3 is-flex" v-if="!(hideCompleted && isCompleted(item))">
|
||||
<div class="card is-fullwidth is-flex eq-line">
|
||||
<header class="card-header">
|
||||
|
||||
8
main.css
8
main.css
@ -18,3 +18,11 @@
|
||||
.button{
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.panel-tabs a {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.bundle-complete {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
16
main.js
16
main.js
@ -35,6 +35,14 @@ var v = new Vue({
|
||||
if(spoilers !== null && spoilers !== ""){
|
||||
this.spoilers = JSON.parse(spoilers);
|
||||
}
|
||||
hideCompleted = localStorage.getItem('hideCompleted');
|
||||
if(hideCompleted !== null && hideCompleted !== ""){
|
||||
this.hideCompleted = hideCompleted;
|
||||
}
|
||||
hideSpoilers = localStorage.getItem('hideSpoilers');
|
||||
if(hideSpoilers !== null && hideSpoilers !== ""){
|
||||
this.hideSpoilers = hideSpoilers;
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
user_data_serialized: function(){
|
||||
@ -105,6 +113,14 @@ var v = new Vue({
|
||||
change_skill: function(new_skill){
|
||||
this.active_skill = new_skill;
|
||||
},
|
||||
toggleHideCompleted: function(){
|
||||
this.hideCompleted = !this.hideCompleted;
|
||||
localStorage.setItem('hideCompleted', this.hideCompleted);
|
||||
},
|
||||
toggleHideSpoilers: function(){
|
||||
this.hideSpoilers = !this.hideSpoilers;
|
||||
localStorage.setItem('hideSpoilers', this.hideSpoilers);
|
||||
},
|
||||
addItemToBundle: function(bundleId, itemId, itemPosition){
|
||||
this.user_data[bundleId].push({item: itemId, position: itemPosition});
|
||||
},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user