272 lines
11 KiB
Plaintext
272 lines
11 KiB
Plaintext
/*
|
|
./\/\." ENiGMA½ Achievement Configuration -/--/-------- - -- -
|
|
|
|
_____________________ _____ ____________________ __________\_ /
|
|
\__ ____/\_ ____ \ /____/ / _____ __ \ / ______/ // /___jp!
|
|
// __|___// | \// |// | \// | | \// \ /___ /_____
|
|
/____ _____| __________ ___|__| ____| \ / _____ \
|
|
---- \______\ -- |______\ ------ /______/ ---- |______\ - |______\ /__/ // ___/
|
|
/__ _\
|
|
<*> ENiGMA½ // HTTPS://GITHUB.COM/NUSKOOLER/ENIGMA-BBS <*> /__/
|
|
|
|
*-----------------------------------------------------------------------------*
|
|
|
|
General Information
|
|
------------------------------- - -
|
|
This configuration is in HJSON (http://hjson.org/) format. Strict to-spec
|
|
JSON is also perfectly valid. Use "hjson" from npm to convert to/from JSON.
|
|
|
|
See http://hjson.org/ for more information and syntax.
|
|
|
|
Various editors and IDEs such as Sublime Text 3 Visual Studio Code and so
|
|
on have syntax highlighting for the HJSON format which are highly recommended.
|
|
|
|
------------------------------- -- - -
|
|
Achievement Configuration
|
|
------------------------------- - -
|
|
Achievements are currently fairly limited in what can trigger them. This is
|
|
being expanded upon and more will be available in the near future. For now
|
|
you should mostly be interested in:
|
|
- Perhaps adding additional *levels* of triggers & points
|
|
- Applying customizations via the achievements section in theme.hjson
|
|
|
|
Some tips:
|
|
- For 'userStat' types, see user_property.js
|
|
|
|
Don"t forget to RTFM ...er uh... see the documentation for more information and
|
|
don"t be shy to ask for help:
|
|
|
|
BBS : Xibalba @ xibalba.l33t.codes
|
|
FTN : BBS Discussion on fsxNet or ArakNet
|
|
IRC : #enigma-bbs / FreeNode
|
|
Email : bryan@l33t.codes
|
|
*/
|
|
{
|
|
enabled : true
|
|
|
|
art : {
|
|
localHeader: achievement_local_header
|
|
localFooter: achievement_local_footer
|
|
globalHeader: achievement_global_header
|
|
globalFooter: achievement_global_footer
|
|
}
|
|
|
|
achievements: {
|
|
user_login_count: {
|
|
type: userStat
|
|
statName: login_count
|
|
retroactive: true
|
|
match: {
|
|
2: {
|
|
title: "Return Caller"
|
|
globalText: "{userName} has returned to {boardName}!"
|
|
text: "You\"ve returned to {boardName}!"
|
|
points: 5
|
|
}
|
|
10: {
|
|
title: "Curious Caller"
|
|
globalText: "{userName} has logged into {boardName} {achievedValue} times!"
|
|
text: "You've logged into {boardName} {achievedValue} times!"
|
|
points: 5
|
|
}
|
|
25: {
|
|
title: "Inquisitive Caller"
|
|
globalText: "{userName} has logged into {boardName} {achievedValue} times!"
|
|
text: "You've logged into {boardName} {achievedValue} times!"
|
|
points: 10
|
|
}
|
|
100: {
|
|
title: "Regular Customer"
|
|
globalText: "{userName} has logged into {boardName} {achievedValue} times!"
|
|
text: "You've logged into {boardName} {achievedValue} times!"
|
|
points: 10
|
|
}
|
|
500: {
|
|
title: "System Addict"
|
|
globalText: "{userName} the BBS {boardName} addict has logged in {achievedValue} times!"
|
|
text: "You're a {boardName} addict! You've logged in {achievedValue} times!"
|
|
points: 25
|
|
}
|
|
}
|
|
}
|
|
|
|
user_post_count: {
|
|
type: userStat
|
|
statName: post_count
|
|
retroactive: true
|
|
match: {
|
|
5: {
|
|
title: "Poster"
|
|
globalText: "{userName} has posted {achievedValue} messages!"
|
|
text: "You've posted {achievedValue} messages!"
|
|
points: 5
|
|
}
|
|
20: {
|
|
title: "Poster... again!",
|
|
globalText: "{userName} has posted {achievedValue} messages!"
|
|
text: "You've posted {achievedValue} messages!"
|
|
points: 10
|
|
}
|
|
100: {
|
|
title: "Frequent Poster",
|
|
globalText: "{userName} has posted {achievedValue} messages!"
|
|
text: "You've posted {achievedValue} messages!"
|
|
points: 15
|
|
}
|
|
500: {
|
|
title: "Scribe"
|
|
globalText: "{userName} the scribe has posted {achievedValue} messages!"
|
|
text: "Such a scribe! You've posted {achievedValue} messages!"
|
|
points: 25
|
|
}
|
|
}
|
|
}
|
|
|
|
user_upload_count: {
|
|
type: userStat
|
|
statName: ul_total_count
|
|
retroactive: true
|
|
match: {
|
|
1: {
|
|
title: "Uploader"
|
|
globalText: "{userName} has uploaded a file!"
|
|
text: "You've uploaded somthing!"
|
|
points: 5
|
|
}
|
|
10: {
|
|
title: "Moar Uploads!"
|
|
globalText: "{userName} has uploaded {achievedValue} files!"
|
|
text: "You've uploaded {achievedValue} files!"
|
|
points: 10
|
|
}
|
|
50: {
|
|
title: "Contributor"
|
|
globalText: "{userName} has uploaded {achievedValue} files!"
|
|
text: "You've uploaded {achievedValue} files!"
|
|
points: 20
|
|
|
|
}
|
|
100: {
|
|
title: "Courier"
|
|
globalText: "Courier {userName} has uploaded {achievedValue} files!"
|
|
text: "You've uploaded {achievedValue} files!"
|
|
points: 25
|
|
}
|
|
200: {
|
|
title: "Must Be a Drop Site"
|
|
globalText: "{userName} has uploaded a whomping {achievedValue} files!"
|
|
text: "You've uploaded a whomping {achievedValue} files!"
|
|
points: 50
|
|
}
|
|
}
|
|
}
|
|
|
|
user_download_count: {
|
|
type: userStat
|
|
statName: dl_total_count
|
|
retroactive: true
|
|
match: {
|
|
1: {
|
|
title: "Downloader"
|
|
globalText: "{userName} has downloaded a file!"
|
|
text: "You've downloaded somthing!"
|
|
points: 5
|
|
}
|
|
10: {
|
|
title: "Moar Downloads!"
|
|
globalText: "{userName} has downloaded {achievedValue} files!"
|
|
text: "You've downloaded {achievedValue} files!"
|
|
points: 10
|
|
}
|
|
50: {
|
|
title: "Leecher"
|
|
globalText: "{userName} has leeched {achievedValue} files!"
|
|
text: "You've leeched... er... downloaded {achievedValue} files!"
|
|
points: 15
|
|
}
|
|
100: {
|
|
title: "Hoarder"
|
|
globalText: "{userName} has downloaded {achievedValue} files!"
|
|
text: "Hoarding files? You've downloaded {achievedValue} files!"
|
|
points: 20
|
|
}
|
|
200: {
|
|
title: "Digital Archivist"
|
|
globalText: "{userName} the digital archivist has {achievedValue} files!"
|
|
text: "Building an archive? You've downloaded {achievedValue} files!"
|
|
points: 25
|
|
}
|
|
}
|
|
}
|
|
|
|
user_door_runs: {
|
|
type: userStat
|
|
statName: door_run_total_count
|
|
retroactive: true
|
|
match: {
|
|
1: {
|
|
title: "Nostalgia Toe Dip",
|
|
globalText: "{userName} ran a door!"
|
|
text: "You ran a door!"
|
|
points: 5
|
|
},
|
|
10: {
|
|
title: "This is Kinda Fun"
|
|
globalText: "{userName} ran {achievedValue} doors!"
|
|
text: "You've run {achievedValue} doors!"
|
|
points: 10
|
|
}
|
|
50: {
|
|
title: "Gamer"
|
|
globalText: "{userName} ran {achievedValue} doors!"
|
|
text: "You've run {achievedValue} doors!"
|
|
points: 15
|
|
}
|
|
100: {
|
|
title: "Textmode is All You Need"
|
|
globalText: "{userName} must really like textmode and has run {achievedValue} doors!"
|
|
text: "You've run {achievedValue} doors! You must really like textmode!"
|
|
points: 25
|
|
}
|
|
200: {
|
|
title: "Dropfile Enthusiast"
|
|
globalText: "{userName} the dropfile enthusiast ran {achievedValue} doors!"
|
|
text: "You're a dropfile enthusiast! You've run {achievedValue} doors!"
|
|
points: 50
|
|
}
|
|
}
|
|
}
|
|
|
|
user_door_total_minutes: {
|
|
type: userStat
|
|
statName: door_run_total_minutes
|
|
retroactive: true
|
|
match: {
|
|
1: {
|
|
title: "Nevermind!"
|
|
globalText: "{userName} ran a door for {achievedValue!durationSeconds}. Guess it's not their thing!"
|
|
text: "You ran a door for only {achievedValue!durationSeconds}. Not your thing?"
|
|
points: 5
|
|
}
|
|
10: {
|
|
title: "It's OK I Guess"
|
|
globalText: "{userName} ran a door for {achievedValue!durationSeconds}!"
|
|
text: "You ran a door for {achievedValue!durationSeconds}!"
|
|
points: 10
|
|
}
|
|
30: {
|
|
title: "Good Game"
|
|
globalText: "{userName} ran a door for {achievedValue!durationSeconds}!"
|
|
text: "You ran a door for {achievedValue!durationSeconds}!"
|
|
points: 20
|
|
}
|
|
60: {
|
|
title: "Textmode Dragon Slayer"
|
|
globalText: "{userName} has spent {achievedValue!durationSeconds} in a door!"
|
|
text: "You've spent {achievedValue!durationSeconds} in a door!"
|
|
points: 25
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |