diff --git a/code/game/objects/items/tajara.dm b/code/game/objects/items/tajara.dm index dca67759f23..7dc20a794ed 100644 --- a/code/game/objects/items/tajara.dm +++ b/code/game/objects/items/tajara.dm @@ -240,3 +240,111 @@ /obj/item/stack/dice/tajara = 3, /obj/item/stack/dice/tajara/alt = 3 ) + +/obj/item/journal/winter_quest + name = "\improper Winter Quest rulebook" + desc = "A core rulebook for winter quest, a tabletop roleplaying game originating from Little Adhomai." + desc_extended = "The first pen-and-paper role-playing game created by a Tajara. Its rules are known to favor interpretation over dice rolls. Combat encounters are notoriously deadly and short. Since character death is common, the game has a fast character creation system. Winter Quest usually uses a fantasy world inspired by Adhomian mythology; however, other settings have been published using its rule set." + icon_state = "winterquest" + has_closed_overlay = FALSE + color = null + +/obj/item/journal/winter_quest/Initialize() + . = ..() + var/obj/item/folder/embedded/E = generate_index("Rules") + var/obj/item/folder/embedded/W = generate_index("Supplementals") + var/obj/item/paper/C = new /obj/item/paper(E) + C.set_content("Character Creation", "

Character Creation


Characters are perhaps the most important part of a quest. They are the vessels through which the players experience the story laid out by the Story Master. As such, character creation is simple and flexible. Remember, the Winter Forest is a dangerous place. A character may be personal, but death is around every Shaan! \ +
The process of creating a character is simple. \ +
Step 1: Choose an Ethnicity
\ +
M'sai, Zhan-Khazan, Hharar, or Njarir'akhran.
\ +
Step 2: Choose a Name
\ +
Step 3: Choose Archetype
\ +
Hunter, Mystic, Warrior, Scholar, Outlaw, Noble, Priest, Laborer, or Frontiersman.
\ +
Step 4: Define Three Traits
\ +
Examples: Strong, Clever, Loyal or Silent, Quick, Cunning.
\ +
Step 5: Define One Flaw
\ +
Examples: Impulsive, Cowardly, Distrusted.
\ +
Step 6: Equipment
\ +
Each character begins with one weapon, one tool, and one personal item.
\ +
Step 7: Background
\ +
A one or two-sentence origin story.
\ +
Example: Raska, a silent M'sai hunter, is strong, patient, and loyal, but distrusted by the village. She carries a bow, a hunting knife, and her father's Ma'ta'ke talisman.
\ +
After a character has been made, remember to verify it with the Story Master. Once they give the all-clear, the quest can begin!") + var/obj/item/paper/T = new /obj/item/paper(E) + T.set_content("Challenges and Combat", "

Challenges

\ +
A quest is nothing without obstacles to overcome. Throughout the quest, the Story Master will provide challenges to the progress of the questers. These challenges must be resolved through resolutions. These resolutions are short answers as to how the equipment, archetype, and traits of your character are capable of conquering the challenge. The other players alongside the Story Master then examine this resolution to determine whether it solves the challenge, or is incapable of besting the test. \ +
Story Master's Question:
\ +
The Story Master will present a challenge, then ask 'How would your character conquer this challenge?'
\ +
Player's Answer:
\ +
The player answers the Story Master with how their character's traits, equipment, and archetype would solve the challenge. Other characters may assist if permitted by the Story Master.
\ +
Judgement:
\ +
The other players and Story Master determine if the answer is convincing. They may ask questions to clarify. If the table thinks the answer is convincing, the player succeeds. If the answer is unconvincing or contradictory, the player fails.
\ +
Flaws matter:
\ +
If a character flaw is relevant to a challenge, it may override the traits of a character and automatically fail the challenge.
\ +

Combat


\ +
No quest is complete without battles and heroism. Whether slaying bloodthirsty Ha'rron with a Kazarrhaldiye or harnessing the light of the Twin Suns, combat carries out much like any other challenge. The order of combat is determined narratively. The first character or creature to attack goes first, followed by the defender, then other characters and creatures as determined by their traits. \ +

An attack begins with an attempt. The character or creature makes an attack, and uses their traits and weapons to explain why this attack should be successful. The defender does the same with their own traits, equipment, and environment. The other players and Story Master determine who has the advantage in the conflict. One of three outcomes may result from combat: Deathly blow, wounding blow, or shielded blow. \ +
First Strike:
\ +
The initiator of combat narrates their attack, and how their traits and weapons support their action.
\ +
Defender's Response:
\ +
The defender uses their traits, equipment, and environment to explain how they survive the attack.
\ +
Judgement:
\ +
The other players and Story Master determine if the answer is convincing. They may ask questions to clarify. If the table thinks the answer is convincing, the player succeeds. If the answer is unconvincing or contradictory, the player fails.
\ +
The Verdict:
\ +
One of three results may occur based on how high the advantage is for one side over the other.
\ +
Fatal Blow: The defender dies.
\ +
Wounding Blow: The defender survives, but is left with a new scar or permanent injury (new flaw).
\ +
Shielded Blow: The defender survives successfully.
\ +
Riposte:
\ +
The defender may choose to either escape or counter attack.
\ +
Escape: The defender runs from the confrontation. This may lead to a negative effect depending on context.
\ +
Counter Attack: The defender becomes the attacker. The combat sequence resets.
") + var/obj/item/paper/P = new /obj/item/paper(E) + P.set_content("Progress and Beyond the Forest", "

Progress

\ +
Progress on a quest comes in many forms. Knuckles, items, and maybe even reputation. However, each character progresses in their own way on a quest. Following key events along one's own winter quest, certain changes in a character may occur. \ +
Survival:
\ +
Surviving strenuous events, and possible combat, can result in a new flaw.
\ +
Success:
\ +
Completing a quest or major event can result in a new trait.
\ +
Change:
\ +
Some story events may change a character. Replace a trait with a flaw.
\ +
Remember, flaws are not a bad thing. Stories are best when a character overcomes their flaws to achieve great feats. Each character is defined by their traits and flaws that show their history, their battles, and their successes or failures. \ +

Beyond the Forest

\ +
Winter Quest was originally created to bring together players of all kinds to join in a creative and collaborative process. The setting of the Winter Forest and its fantastical denizens are not the only way to experience the joy of collaborative play. The heart of it all comes out when a collection of people get together to experience a story together. So do not limit yourself to the cold Winter Forest. The system is adaptable to all kinds of settings and play. Similarly, these rules are not law. Altering the guidelines listed above, adding new ones in, whatever the heart desires. It is in the hands of the Story Master and players to decide. So long as everyone involved agrees, the Spur is the limit. So get out there, and get questing.") + var/obj/item/paper/S = new /obj/item/paper(W) + S.set_content("Rredouane Mode and Discipline", "

Rredouane Mode

\ +
In lieu of the narrative conflict system, the use of Suns and Moon dice can be included into standard Winter Quest play for an additional level of tension, conflict, and a little luck. All challenges and conflicts are no longer decided by table judgement, but rather the results of the dice. \ +
When a challenge or conflict appears, the Story Master will determine the difficulty in besting the obstacle. This ranges from one to six dice. The player will similarly be granted a range of one to six dice based on their answer to the obstacle. The Player and Store Master then roll these dice and count any dice that land with a four or higher. Whoever has the higher number of success dice wins. In cases of a tie, an extra die is rolled until a winner is found. \ +
Step 1: The Story Master presents a challenge or conflict.
\ +
Difficulty dictates the number of dice. Easy challenges have one die, but range up to 6 dice for the most difficult tasks.
\ +
Step 2: The Player is granted one to six dice based on their answer.
\ +
Much like a traditional challenge or conflict, the Player may use their character's traits, equipment, and archetype to justify a higher dice count.
\ +
Step 3: The Story Master and Player roll their dice.
\ +
Any die with a number four or above is counted as a success.
\ +
If the Player has more successes, the character succeeds. If the Story Master has more successes, the character loses.
\ +
In conflicts, if the defender wins by one or two successes over the attacker, they receive a wounding blow.
\ +

Discipline


\ +
Questing can be brutal. Sometimes it feels like the world is against a character. However, through discipline (and maybe a little faith), one can change the winds of the situation. In Winter Quest, that would take the form of Discipline. \ +
Discipline is a point that is awarded by the Story Master. It is recommended to keep Discipline a rare resource handed out for especially daunting, heroic, or legendary actions. It could be used as a reward for finishing a grueling quest, and being particularly cunning in an answer. \ +
Discipline operates differently when used in traditional or Rredouane modes. In traditional Winter Quest, Discipline overrules a table decision. In challenges, this converts a failure to a success or a success to a failure. During conflict, this improves the outcome by one level. A Fatal Blow becomes a Wounding Blow. A Wounding Blow becomes a Shielded Blow. When the Rredouane Mode supplement is in use, Discipline provides one extra die to the player's dice pool. \ +
-Story Masters may hand out Discipline to a character.
\ +
Recommended reasons are for heroic acts, cunning or creative answers, or completing major quests.
\ +
-Players may use Discipline to alter the outcome of a challenge or conflict.
\ +
During challenges, the result of a challenge flips.
\ +
During combat, the outcome of a conflict improves by one level.
\ +
-In Rredouane Mode, Discipline adds one die to a player's dice pool.
") + for(var/i = 1 to 5) + var/obj/item/paper/R = new /obj/item/paper(W) + R.set_content("Character Sheet", "
Winter Quest \ +
Character sheet

Player: \ +
Character: \ +
Quest: \ +
Ethnicity: \ +
Archetype: \ +
Traits:
\ + Flaws:
\ + Equipment:
\ + Background:
\ + ") + update_icon() diff --git a/code/modules/client/preference_setup/loadout/items/toy.dm b/code/modules/client/preference_setup/loadout/items/toy.dm index a9fafc9bf8c..03d5d976c45 100644 --- a/code/modules/client/preference_setup/loadout/items/toy.dm +++ b/code/modules/client/preference_setup/loadout/items/toy.dm @@ -189,3 +189,10 @@ cost = 1 allowed_roles = list("Off-Duty Crew Member", "Passenger") path = /obj/item/toy/football + +/datum/gear/toy/winterquest + display_name = "Winter Quest rulebook" + description = "The core rulebook for Winter Quest, a tabletop roleplaying game from Little Adhomai." + cost = 1 + path = /obj/item/journal/winter_quest + flags = GEAR_HAS_DESC_SELECTION diff --git a/code/modules/paperwork/journal.dm b/code/modules/paperwork/journal.dm index 87bdaae5755..ba5540c1d83 100644 --- a/code/modules/paperwork/journal.dm +++ b/code/modules/paperwork/journal.dm @@ -2,6 +2,7 @@ name = "journal" desc = "A journal, kind of like a folder, but bigger! And personal." var/closed_desc + var/has_closed_overlay = TRUE icon = 'icons/obj/library.dmi' icon_state = "journal" item_state = "journal" @@ -35,7 +36,8 @@ ClearOverlays() if(!open) icon_state = "[initial(icon_state)]_closed" - AddOverlays(overlay_image(icon, "closed", flags=RESET_COLOR)) + if(has_closed_overlay) + AddOverlays(overlay_image(icon, "closed", flags=RESET_COLOR)) else if(LAZYLEN(indices)) icon_state = initial(icon_state) AddOverlays(overlay_image(icon, "writing", flags=RESET_COLOR)) diff --git a/html/changelogs/CatsinHD - Winter Quest.yml b/html/changelogs/CatsinHD - Winter Quest.yml new file mode 100644 index 00000000000..580965aa621 --- /dev/null +++ b/html/changelogs/CatsinHD - Winter Quest.yml @@ -0,0 +1,58 @@ +################################ +# 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 +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: CatsinHD + +# 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: "Adds the Winter Quest rulebook to the loadout under the Toys category." diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 5c3ec227705..2108e719c52 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ