Template:Story: Difference between revisions

From Blue Archive Wiki
Jump to navigation Jump to search
Content added Content deleted
(add BGM support (need custom js so that BGM can be stopped and played alongside character voicelines))
mNo edit summary
 
(22 intermediate revisions by the same user not shown)
Line 4: Line 4:
|{{#switch:{{#var: value}}
|{{#switch:{{#var: value}}
|sensei=<tr {{#if:{{{ group{{#var:index}}|}}}|class="story-student-option-{{{ group{{#var:index}} | }}}-{{{ option{{#var:index}} }}}"}}><td></td><td><div class="story-sensei-line-container"><div class{{=}}"story-sensei-line">{{{ text{{#var:index}} }}}</div></div></td></tr>
|sensei=<tr {{#if:{{{ group{{#var:index}}|}}}|class="story-student-option-{{{ group{{#var:index}} | }}}-{{{ option{{#var:index}} }}}"}}><td></td><td><div class="story-sensei-line-container"><div class{{=}}"story-sensei-line">{{{ text{{#var:index}} }}}</div></div></td></tr>
|student-text=<tr {{#if:{{{ group{{#var:index}}|}}}|class="story-student-option-{{{ group{{#var:index}} | }}}-{{{ option{{#var:index}} }}}"}}>{{#if: {{{ profile{{#var:index}}| }}} | <td class{{=}}"story-profile-picture">[[File:{{{ profile{{#var:index}}| }}}.png|58px]]</td> | <td></td> }}<!--
|student-text=<tr {{#if:{{{ group{{#var:index}}|}}}|class="story-student-option-{{{ group{{#var:index}} | }}}-{{{ option{{#var:index}} }}}"}}>{{#if: {{{ spine{{#var:index}}| }}} | <td class{{=}}"story-profile-picture">{{Story/Portrait|{{{ portrait{{#var:index}}| }}}|{{{ sequence{{#var:index}} }}}}}</td> | <td></td> }}<!--
--><td>{{#if: {{{ name{{#var:index}}| }}} | <div class{{=}}"story-student-name">{{{ name{{#var:index}}| }}}<span class{{=}}"story-student-affiliation">{{{ affiliation{{#var:index}} | }}}</span></div> |}} <div class{{=}}"story-student-line-container"><div class{{=}}"story-student-line">{{{ text{{#var:index}} }}}</div></div></td></tr>
--><td>{{#if: {{{ name{{#var:index}}| }}} | <div class{{=}}"story-student-name">{{{ name{{#var:index}}| }}}<span class{{=}}"story-student-affiliation">{{{ affiliation{{#var:index}} | }}}</span></div> |}} <div class{{=}}"story-student-line-container"><div class{{=}}"story-student-line">{{{ text{{#var:index}} }}}</div></div></td></tr>
|no-speaker=<tr {{#if:{{{ group{{#var:index}}|}}}|class="story-student-option-{{{ group{{#var:index}} | }}}-{{{ option{{#var:index}} }}}"}}><td></td><!--
--><td><div class{{=}}"story-student-name">???<span class{{=}}"story-student-affiliation">{{{ affiliation{{#var:index}} | }}}</span></div><div class{{=}}"story-student-line-container"><div class{{=}}"story-student-line">{{{ text{{#var:index}} }}}</div></div></td></tr>
|reply=<tr><td></td><td><div {{#if:{{{ group{{#var:index}}|}}}|id="story-sensei-option-group-{{{ group{{#var:index}} | }}}"}} class="story-reply-container"><div class="story-reply-header">Reply</div><hr><!--
|reply=<tr><td></td><td><div {{#if:{{{ group{{#var:index}}|}}}|id="story-sensei-option-group-{{{ group{{#var:index}} | }}}"}} class="story-reply-container"><div class="story-reply-header">Reply</div><hr><!--
-->{{#loop:option_i | 1 | 4 | {{#if:{{{ option{{#var:index}}_{{#var:option_i}} | }}} | <div class="story-reply-option">{{{ option{{#var:index}}_{{#var:option_i}} }}}</div> | }} }}<!--
-->{{#loop:option_i | 1 | 4 | {{#if:{{{ option{{#var:index}}_{{#var:option_i}} | }}} | <div class="story-reply-option">{{{ option{{#var:index}}_{{#var:option_i}} }}}</div> | }} }}<!--
--></div></td></tr>
--></div></td></tr>
|background=<tr><td></td><td><div class{{=}}"story-background-image-container">[[File:{{{ background{{#var:index}} }}}.jpg|class=story-background-image]]</div></td></tr>
|background=<tr><td></td><td><div class{{=}}"story-background-image-container">[[File:{{{ background{{#var:index}} }}}.jpg|class=story-background-image]]</div></td></tr>
|bgm=<tr><td></td><td><div class="story-bgm-container">BGM: [[File: {{{ bgm{{#var:index}} }}}.ogg]]</div></td>
|bgm=<tr><td></td><td><div class="story-bgm-container">{{audio|src={{{ bgm{{#var:index}} }}}.ogg|name=BGM: {{{ name{{#var:index}} | {{{ bgm{{#var:index}} }}} }}}|group=BGM|loop=true|volume={{#expr: 0.25 * {{{ volume{{#var:index}} | 1 }}}}} }}</div></td></tr>
|bgm-stop=<tr><td></td><td>BGM stops</td>
|bgm-stop=<tr><td></td><td>{{audio/pause|group=BGM|name=BGM stops}}</td></tr>
|info=<tr><td></td><td><div class="story-info-container">{{{ text{{#var:index}} }}} {{#if:{{{ sound{{#var:index}} | }}} | [[File:{{{ sound{{#var:index}} }}}.wav|30px]] | }} </div></td></tr>
|sound=<tr><td></td><td>{{Audio/small|src={{{ sound{{#var:index}} }}}.wav|name=Sound effect: {{{ name{{#var:index}} |}}}}}</td></tr>
|screen=<tr><td></td><td>{{{ content{{#var:index}} }}}</td></tr>
}}
}}
}}
}}
</table>
</table>
</div></includeonly><noinclude>WIP
</div></includeonly><noinclude>TODO:
#BGM
{{story
#*Keep updating [[Template:Audio]]

#Background
|1=student-text
#*Memorial lobby currently unavailable. https://github.com/respectZ/blue-archive-viewer
|name1=Shiroko
#Emoticon
|affiliation1=Foreclosure Task Force
#*Figure out what to do with them. Some (e.g. twinkle, anxiety) will require putting together an emoticon from png images. They also have different sizes which will make it difficult to fit into text.
|profile1=Shiroko
#Portrait/spine
|spine1=
#*Handle scenes with multiple spines (e.g. I've got Hoshino! Now if she'd just wake up!). They should only have one portrait but multiple spines.
|text1=Test
#*Create sprite sheets for portraits. Use lazyloading on full spines in case the user wants to see them (also updates file usage on the file). Alternatively, just use JS to add them if the user requests full spines: lazyloading may not work in MW.

#*Handle unavailable portraits (use placeholder/wait for esheep)
|2=background
#*Click portrait to toggle that spine.
|background2=BG_ClassCorridor
#*Click a button to show all spine for those who are interested; other buttons to toggle different things (BGM, cutscenes, etc.)

#Handle more scripts
|3=bgm
#*Shake is good; movement maybe?
|bgm3=Theme_136
#*<code>#na;</code> sometimes has a speaker; done?

#Mobile/small screen compatibility check. Character affiliation might be too long to fit.
|4=student-text
|name4=Mika
|affiliation4=Tea Party
|profile4=Mika
|spine4=
|text4=Kyrie eleison

|5=bgm-stop

}}

</noinclude>
</noinclude>

Latest revision as of 08:39, 4 June 2024

TODO:

  1. BGM
  2. Background
  3. Emoticon
    • Figure out what to do with them. Some (e.g. twinkle, anxiety) will require putting together an emoticon from png images. They also have different sizes which will make it difficult to fit into text.
  4. Portrait/spine
    • Handle scenes with multiple spines (e.g. I've got Hoshino! Now if she'd just wake up!). They should only have one portrait but multiple spines.
    • Create sprite sheets for portraits. Use lazyloading on full spines in case the user wants to see them (also updates file usage on the file). Alternatively, just use JS to add them if the user requests full spines: lazyloading may not work in MW.
    • Handle unavailable portraits (use placeholder/wait for esheep)
    • Click portrait to toggle that spine.
    • Click a button to show all spine for those who are interested; other buttons to toggle different things (BGM, cutscenes, etc.)
  5. Handle more scripts
    • Shake is good; movement maybe?
    • #na; sometimes has a speaker; done?
  6. Mobile/small screen compatibility check. Character affiliation might be too long to fit.