restored some things to the original state
This commit is contained in:
parent
aeb74a2d43
commit
cde04c66ac
7
Dialogue.gd
Normal file
7
Dialogue.gd
Normal file
|
@ -0,0 +1,7 @@
|
|||
extends Control
|
||||
|
||||
func _ready():
|
||||
pass
|
||||
|
||||
func _on_Wol_line(line):
|
||||
prints('got a line', line)
|
|
@ -1,8 +1,48 @@
|
|||
[gd_scene format=2]
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://addons/Wol/Ostrich Sans Font.tres" type="DynamicFont" id=1]
|
||||
[ext_resource path="res://addons/Wol/Wol.gd" type="Script" id=2]
|
||||
[ext_resource path="res://Dialogue.gd" type="Script" id=7]
|
||||
|
||||
[node name="Dialogue" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource( 7 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Wol" type="Node" parent="."]
|
||||
script = ExtResource( 2 )
|
||||
path = "res://dialogue.yarn"
|
||||
auto_start = true
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = 16.0
|
||||
margin_top = 16.0
|
||||
margin_right = -16.0
|
||||
margin_bottom = -256.0
|
||||
custom_fonts/normal_font = ExtResource( 1 )
|
||||
text = "Here is where the dialogue will go.
|
||||
|
||||
Run the scene in order to see how \"wol\" works."
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = 16.0
|
||||
margin_top = 344.0
|
||||
margin_right = -16.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="ButtonTemplate" type="Button" parent="VBoxContainer"]
|
||||
margin_right = 992.0
|
||||
margin_bottom = 66.0
|
||||
custom_fonts/font = ExtResource( 1 )
|
||||
text = "This is a dialogue option"
|
||||
|
||||
[connection signal="line" from="Wol" to="." method="_on_Wol_line"]
|
||||
|
|
11
addons/Wol/Ostrich Sans Font.tres
Normal file
11
addons/Wol/Ostrich Sans Font.tres
Normal file
|
@ -0,0 +1,11 @@
|
|||
[gd_resource type="DynamicFont" load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://addons/Wol/OstrichSans-Heavy.otf" type="DynamicFontData" id=1]
|
||||
|
||||
[resource]
|
||||
size = 64
|
||||
use_mipmaps = true
|
||||
use_filter = true
|
||||
extra_spacing_top = 8
|
||||
extra_spacing_bottom = 8
|
||||
font_data = ExtResource( 1 )
|
97
addons/Wol/Ostrich Sans Heavy LICENSE OFL.txt
Normal file
97
addons/Wol/Ostrich Sans Heavy LICENSE OFL.txt
Normal file
|
@ -0,0 +1,97 @@
|
|||
Copyright (c) <dates>, <Copyright Holder> (<URL|email>),
|
||||
with Reserved Font Name <Reserved Font Name>.
|
||||
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>),
|
||||
with Reserved Font Name <additional Reserved Font Name>.
|
||||
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>).
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
BIN
addons/Wol/OstrichSans-Heavy.otf
Normal file
BIN
addons/Wol/OstrichSans-Heavy.otf
Normal file
Binary file not shown.
|
@ -7,14 +7,14 @@ signal options(options)
|
|||
signal command(command)
|
||||
signal node_completed(node)
|
||||
|
||||
signal running
|
||||
signal started
|
||||
signal finished
|
||||
|
||||
const WolCompiler = preload("res://addons/Wol/core/compiler/compiler.gd")
|
||||
const WolDialogue = preload("res://addons/Wol/core/dialogue.gd")
|
||||
const WolCompiler = preload('res://addons/Wol/core/compiler/compiler.gd')
|
||||
const WolDialogue = preload('res://addons/Wol/core/dialogue.gd')
|
||||
|
||||
export(String, FILE, "*.wol") var path setget set_path
|
||||
export(String) var start_node = "Start"
|
||||
export(String, FILE, '*.wol,*.yarn') var path setget set_path
|
||||
export(String) var start_node = 'Start'
|
||||
export(bool) var auto_start = false
|
||||
export(NodePath) var variable_storage_path
|
||||
|
||||
|
@ -50,12 +50,12 @@ func init_dialogue():
|
|||
if existing_state:
|
||||
dialogue._visitedNodeCount = existing_state
|
||||
|
||||
dialogue.get_vm().lineHandler = funcref(self, "_handle_line")
|
||||
dialogue.get_vm().optionsHandler = funcref(self, "_handle_options")
|
||||
dialogue.get_vm().commandHandler = funcref(self, "_handle_command")
|
||||
dialogue.get_vm().nodeCompleteHandler = funcref(self, "_handle_node_complete")
|
||||
dialogue.get_vm().dialogueCompleteHandler = funcref(self, "_handle_dialogue_complete")
|
||||
dialogue.get_vm().nodeStartHandler = funcref(self, "_handle_node_start")
|
||||
dialogue.get_vm().lineHandler = funcref(self, '_handle_line')
|
||||
dialogue.get_vm().optionsHandler = funcref(self, '_handle_options')
|
||||
dialogue.get_vm().commandHandler = funcref(self, '_handle_command')
|
||||
dialogue.get_vm().nodeCompleteHandler = funcref(self, '_handle_node_complete')
|
||||
dialogue.get_vm().dialogueCompleteHandler = funcref(self, '_handle_dialogue_complete')
|
||||
dialogue.get_vm().nodeStartHandler = funcref(self, '_handle_node_start')
|
||||
|
||||
dialogue.set_program(program)
|
||||
|
||||
|
@ -73,10 +73,14 @@ func _handle_line(line):
|
|||
|
||||
func _handle_command(command):
|
||||
call_deferred('emit_signal', 'command', command)
|
||||
return WolGlobals.HandlerState.PauseExecution
|
||||
|
||||
if get_signal_connection_list('command').size() > 0:
|
||||
return WolGlobals.HandlerState.PauseExecution
|
||||
else:
|
||||
return WolGlobals.HandlerState.ContinueExecution
|
||||
|
||||
func _handle_options(options):
|
||||
emit_signal('options', options)
|
||||
call_deferred('emit_signal' ,'options', options)
|
||||
return WolGlobals.HandlerState.PauseExecution
|
||||
|
||||
func _handle_dialogue_complete():
|
||||
|
@ -111,7 +115,7 @@ func start(node = start_node):
|
|||
return
|
||||
|
||||
init_dialogue()
|
||||
emit_signal('running')
|
||||
emit_signal('started')
|
||||
|
||||
running = true
|
||||
dialogue.set_node(node)
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
extends Node
|
||||
|
||||
#VM Execution States
|
||||
|
||||
enum ExecutionState {
|
||||
Stopped,
|
||||
Running,
|
||||
|
@ -152,7 +150,7 @@ enum ExpressionType {
|
|||
}
|
||||
|
||||
|
||||
enum StatementTypes j{
|
||||
enum StatementTypes {
|
||||
CustomCommand,
|
||||
ShortcutOptionGroup,
|
||||
Block,
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
extends Object
|
||||
|
||||
const Lexer = preload("res://addons/Wol/core/compiler/lexer.gd")
|
||||
const LineInfo = preload("res://addons/Wol/core/program/wol_line.gd")
|
||||
const WolNode = preload("res://addons/Wol/core/program/wol_node.gd")
|
||||
const LineInfo = preload("res://addons/Wol/core/program/line.gd")
|
||||
const WolNode = preload("res://addons/Wol/core/program/node.gd")
|
||||
const Instruction = preload("res://addons/Wol/core/program/instruction.gd")
|
||||
const WolProgram = preload("res://addons/Wol/core/program/program.gd")
|
||||
const Operand = preload("res://addons/Wol/core/program/operand.gd")
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
extends Object
|
||||
|
||||
const LineInfo = preload("res://addons/Wol/core/program/wol_line.gd")
|
||||
|
||||
var id : String
|
||||
var substitutions : Array = []#String
|
||||
var info : LineInfo
|
||||
|
||||
func _init(id: String, info: LineInfo):
|
||||
self.id = id
|
||||
self.info = info
|
||||
func _init(id: String):
|
||||
self.id = id
|
||||
|
|
|
@ -36,14 +36,13 @@ func _init(dialogue):
|
|||
self._dialogue = dialogue
|
||||
_state = VmState.new()
|
||||
|
||||
|
||||
func set_program(program):
|
||||
_program = program
|
||||
|
||||
#set the node to run
|
||||
#return true if successeful false if no node
|
||||
#of that name found
|
||||
func set_node(name:String)->bool:
|
||||
func set_node(name:String) -> bool:
|
||||
if _program == null || _program.wolNodes.size() == 0:
|
||||
printerr("Could not load %s : no nodes loaded" % name)
|
||||
return false
|
||||
|
@ -160,17 +159,18 @@ func find_label_instruction(label:String)->int:
|
|||
func run_instruction(instruction)->bool:
|
||||
match instruction.operation:
|
||||
WolGlobals.ByteCode.Label:
|
||||
#do nothing woooo!
|
||||
pass
|
||||
|
||||
WolGlobals.ByteCode.JumpTo:
|
||||
#jump to named label
|
||||
_state .programCounter = find_label_instruction(instruction.operands[0].value)-1
|
||||
|
||||
WolGlobals.ByteCode.RunLine:
|
||||
#look up string from string table
|
||||
#pass it to client as line
|
||||
var key = instruction.operands[0].value
|
||||
|
||||
var line = Line.new(key, _program.wolStrings[key])
|
||||
var line = Line.new(key)
|
||||
|
||||
#the second operand is the expression count
|
||||
# of format function
|
||||
|
@ -183,7 +183,6 @@ func run_instruction(instruction)->bool:
|
|||
if pause == WolGlobals.HandlerState.PauseExecution:
|
||||
executionState = WolGlobals.ExecutionState.Suspended
|
||||
|
||||
|
||||
WolGlobals.ByteCode.RunCommand:
|
||||
var commandText : String = instruction.operands[0].value
|
||||
|
||||
|
@ -196,13 +195,14 @@ func run_instruction(instruction)->bool:
|
|||
if pause == WolGlobals.HandlerState.PauseExecution:
|
||||
executionState = WolGlobals.ExecutionState.Suspended
|
||||
|
||||
|
||||
WolGlobals.ByteCode.PushString:
|
||||
#push String var to stack
|
||||
_state.push_value(instruction.operands[0].value)
|
||||
|
||||
WolGlobals.ByteCode.PushNumber:
|
||||
#push number to stack
|
||||
_state.push_value(instruction.operands[0].value)
|
||||
|
||||
WolGlobals.ByteCode.PushBool:
|
||||
#push boolean to stack
|
||||
_state.push_value(instruction.operands[0].value)
|
||||
|
@ -220,9 +220,11 @@ func run_instruction(instruction)->bool:
|
|||
#jump to label whose name is on the stack
|
||||
var dest : String = _state.peek_value().as_string()
|
||||
_state.programCounter = find_label_instruction(dest)-1
|
||||
|
||||
WolGlobals.ByteCode.Pop:
|
||||
#pop value from stack
|
||||
_state.pop_value()
|
||||
|
||||
WolGlobals.ByteCode.CallFunc:
|
||||
#call function with params on stack
|
||||
#push any return value to stack
|
||||
|
@ -257,7 +259,6 @@ func run_instruction(instruction)->bool:
|
|||
|
||||
if function.returnsValue:
|
||||
_state.push_value(result)
|
||||
pass
|
||||
|
||||
WolGlobals.ByteCode.PushVariable:
|
||||
#get content of variable and push to stack
|
||||
|
@ -326,7 +327,6 @@ func run_instruction(instruction)->bool:
|
|||
#when user makes selection
|
||||
|
||||
optionsHandler.call_func(choices)
|
||||
pass
|
||||
_:
|
||||
#bytecode messed up woopsise
|
||||
executionState = WolGlobals.ExecutionState.Stopped
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
title: Start
|
||||
tags:
|
||||
colorID: 3
|
||||
position: 332,79
|
||||
---
|
||||
Oh well hello, what should we set number variable to?
|
||||
<<set $visited = visit_count()>>
|
||||
-> Set Number to 6
|
||||
<<set $number to 6 >>
|
||||
-> Set Number to 5
|
||||
<<set $number to 5 >>
|
||||
We will also set a cat boolean
|
||||
-> to false
|
||||
<<set $cat to false>>
|
||||
-> to true
|
||||
<<set $cat to true>>
|
||||
[[SecondNode]]
|
||||
===
|
||||
title: SecondNode
|
||||
tags:
|
||||
position: 678.16,263.66
|
||||
---
|
||||
sweet - Now we are in the Second node
|
||||
->this one only shows when Visit count of first node is 1 <<if $visited == 1>>
|
||||
->This only options is showing because cat variable is true <<if $cat == true>>
|
||||
ok then I guess cat is true
|
||||
->Some other option with no requirement
|
||||
this is some other option woooooohooo
|
||||
->This shows when number greater than 5 <<if $number > 5 >>
|
||||
Coool, yes the number was greater than 5 <<set $number to 1>>
|
||||
But not anymore! ha
|
||||
Now we are finished, GoodBye!
|
||||
===
|
249
dialogue.yarn
249
dialogue.yarn
|
@ -1,103 +1,4 @@
|
|||
title: Waking up
|
||||
tags:
|
||||
colorID: 0
|
||||
position: -1544,-923
|
||||
---
|
||||
<<fade_out>>
|
||||
<<go_to_space Beginning Room>>
|
||||
<<protagonist Kiwa>>
|
||||
<<set $something to 1>>
|
||||
|
||||
>.<
|
||||
>…<
|
||||
>…<
|
||||
>I woke up to a pulsating pain in my head.<
|
||||
>It hurts.<
|
||||
>It hurts a lot.<
|
||||
>It was like someone was hammering an ice pick right into my head and chiselling my brain into multiple chunks at once.<
|
||||
>I tried to reach my head in an attempt to cradle it, hoping I could just slump into a fetal position and wait for the pain to go away.<
|
||||
>But I couldn’t move my arms.<
|
||||
>Something was keeping them in place.<
|
||||
>Something cold and really sturdy.<
|
||||
>Then the implications of that set in.<
|
||||
>And I shot my eyes wide open.<
|
||||
>But all I could see was [p;pink].<
|
||||
>So much [p;pink].<
|
||||
>And a figure sitting in front of me.<
|
||||
|
||||
//<<opening_screen prologue>>
|
||||
<<toggle_dialogue off>>
|
||||
<<picture Prologue title>>
|
||||
<<fade_in>>
|
||||
<<wait 3>>
|
||||
<<fade_out>>
|
||||
<<picture Kiwa looking at mirror>>
|
||||
<<fade_in>>
|
||||
<<toggle_dialogue on>>
|
||||
|
||||
>Ah… that’s just me. Dang, I almost got startled by my own reflection.<
|
||||
>Why is there a mirror in front of me anyway?<
|
||||
>I looked down at my reflection’s hands.<
|
||||
>Yeah, I was definitely tied up alright. Fun.<
|
||||
>I tried to yank my arm out of the handcuffs in hopes of a poor job done by whoever had gotten me in this situation.<
|
||||
>After a few pulling attempts all I got was a bruised wrist. It was a long shot anyways.<
|
||||
>Okay… What can I do in this situation?<
|
||||
>I looked around me.<
|
||||
>This looks like a welcome party or something… Except for all those chairs straight from an old timey asylum.<
|
||||
>The chairs looked pretty much like mine, meaning-<
|
||||
???: Ugh…
|
||||
>The sound came from behind me.<
|
||||
>I tried to crane my neck to look at the source of the voice but a dull thud accompanied by the feeling of my helmet bouncing against something stopped me.<
|
||||
???: Ow!
|
||||
>A long string of surprisingly mild but creative curses echoed in the room.<
|
||||
???: Was that really necessary?
|
||||
>I couldn’t see much from the angle I was in but from the voice I figured a man around my age was sitting with his back against mine.<
|
||||
>The mirror wasn’t much help either. All I could see was a little bit of dark auburn hair.<
|
||||
>It seems like I didn’t learn from the first attempt and tried to turn my head again to see the source of the voice.<
|
||||
???: OW! Christ! Please stop hitting your head against mine!
|
||||
Kiwa: Oh, my bad?
|
||||
???: Who wears a helmet inside?
|
||||
Kiwa: Precautions?
|
||||
Kiwa: I mean, my head doesn’t have a bump right now, so I guess that’s a testimony to it.
|
||||
???: And mine was hurting enough as it was.
|
||||
Kiwa: Uh?
|
||||
|
||||
<<hide_pictures>>
|
||||
<<zoom to VentLid>>
|
||||
|
||||
???: What’s happening? I can’t see from this position.
|
||||
Kiwa: A… a countdown?
|
||||
Kiwa: What does this mean?
|
||||
>I had a bad feeling. A feeling that solidified into a webbed dark lump inside my chest.<
|
||||
>My mind was screaming at me to run away as the countdown neared zero.<
|
||||
-PAIR 8, STARTING PREPARATIONS-
|
||||
Kiwa: Starting... Wha-
|
||||
-Click-
|
||||
???: The restraints!
|
||||
>We scrambled off the chairs as quickly as humanly possible.<
|
||||
|
||||
<<switch_to_camera PanningRoomCamera>>
|
||||
|
||||
???: ...
|
||||
Kiwa: Wait, I’d be amazed if that door is open by any chance.
|
||||
-Click Click-
|
||||
???: It really is locked.
|
||||
???: I figured I had nothing to lose by trying.
|
||||
Kiwa: We’ll just have to wait then. What is this room anyway?
|
||||
???: All I can say is this looks rather dubious.
|
||||
Kiwa: Hmm.
|
||||
-Welcome esteemed guests! The game you have been dying to participate in has begun!-
|
||||
-But first, let us get you familiar with the control scheme-
|
||||
-I know this can get quite tedious to a brilliant mind such as yours truly, but some of the controls and mechanics may vary from the original games.-
|
||||
-By pressing [p;Shift], you can see circles around objects or characters that indicate there’s dialogue to be explored. [b;Blue circles] are optional dialogue while [y; yellow circles] will progress the plot.-
|
||||
-If a scene has multiple [y;yellow circles], you need to exhaust all yellow dialogue options before you can progress with the plot.-
|
||||
-[p;Ctrl] opens and closes the transcript in case you need to review previous dialogue.-
|
||||
-Now then, explore your first area to your heart’s content, participant.-
|
||||
|
||||
<<switch_to_camera PanningRoomCamera>>
|
||||
<<detective_mode>>
|
||||
===
|
||||
title: The Revolver
|
||||
title: Start
|
||||
tags:
|
||||
colorID: 0
|
||||
position: -1892,-1013
|
||||
|
@ -168,152 +69,10 @@ Masami: Gina!
|
|||
|
||||
[[Waking up]]
|
||||
===
|
||||
title: Screen
|
||||
title: Waking up
|
||||
tags:
|
||||
colorID: 0
|
||||
position: -1170,-560
|
||||
position: -1527,-881
|
||||
---
|
||||
<<zoom to Screen>>
|
||||
???: Pair 8?
|
||||
Kiwa: Us, probably.
|
||||
???: What are they preparing us for exactly?
|
||||
Kiwa: I don’t think I want to find out.
|
||||
Kiwa: The countdown already made me nervous.
|
||||
===
|
||||
title: Chairs
|
||||
tags:
|
||||
colorID: 0
|
||||
position: -874,-551
|
||||
---
|
||||
<<zoom to Chairs>>
|
||||
Kiwa: That’s a lot of chairs.
|
||||
???: 16 of them…
|
||||
Kiwa: Were we the last to wake up?
|
||||
???: My question is where are the other 14 people?
|
||||
???: What happened to them?
|
||||
===
|
||||
title: Decorations
|
||||
tags:
|
||||
colorID: 0
|
||||
position: -593,-554
|
||||
---
|
||||
<<zoom to Decorations>>
|
||||
Kiwa: That’s… a lot of hearts.
|
||||
???: My eyes hurt just from looking at all of this. It feels like a crime to have this many shades of pink together at once.
|
||||
Kiwa: It’s definitely ugly.
|
||||
===
|
||||
title: Vent
|
||||
tags:
|
||||
colorID: 0
|
||||
position: -338,-536
|
||||
---
|
||||
<<zoom to Vent>>
|
||||
Kiwa: Do you think we could get out through that vent?
|
||||
???: I don’t even know how we could reach it. Let alone open it.
|
||||
Kiwa: Yeah, the chairs look like they have been bolted to the floor.
|
||||
Kiwa: Also, what’s with this smell? It’s really sweet. Like someone dumped a bag of sugar into an air filter.
|
||||
???: You are right. It’s quite overpowering. I hope it won’t make me sick.
|
||||
===
|
||||
title: Mirror
|
||||
tags:
|
||||
colorID: 0
|
||||
position: -1438,-573
|
||||
---
|
||||
<<zoom to Mirror>>
|
||||
>I look like I always look. A disheveled hobo skater who got severely dunked on recently.<
|
||||
???: Admiring yourself in the mirror?
|
||||
Kiwa: Not really.
|
||||
???: I wonder why there are so many mirrors in this room. It feels like an interactive exhibit of a contemporary art gallery or something along those lines.
|
||||
Kiwa: Or a fun house without those wobbly mirrors.
|
||||
???: Or that...
|
||||
===
|
||||
title: Ending
|
||||
tags:
|
||||
colorID: 0
|
||||
position: -139,-184
|
||||
---
|
||||
<<if !(visited("Mirror") and visited("Vent") and visited("Chairs") and visited("Decorations") and visited("Screen"))>>
|
||||
<<if visit_count() is 2>>
|
||||
-You are a hopeless cause.-
|
||||
<<else>>
|
||||
???: ...
|
||||
Kiwa: He's looking around the room. Maybe I should do the same. Access my surroundings and all that...
|
||||
- ...Hmm. Like I previously established, please take a look at your surroundings.-
|
||||
-By pressing [p;Shift], you can see circles around objects or characters that indicate there’s dialogue to be explored. [b;Blue circles] are optional dialogue while [y; yellow circles] will progress the plot.-
|
||||
-If a scene has multiple [y;yellow circles], you need to exhaust all yellow dialogue options before you can progress with the plot.-
|
||||
-[p;Ctrl] opens and closes the transcript in case you need to review previous dialogue.-
|
||||
-You can move around the room with the [p;A] and [p;D] keys.-
|
||||
-Do not make me repeat myself again.-
|
||||
<<endif>>
|
||||
<<else>>
|
||||
>Well, there isn’t much else to look at. Maybe I should try to talk to him more. He might know something.<
|
||||
>I guess I’ll try to make light of the situation. That works with lowering stressful atmosphere, right?<
|
||||
Kiwa: Uh, so… Do you come around here often?
|
||||
???: Seriously? In this situation?
|
||||
Kiwa: It was just a joke? I think?
|
||||
???: You are taking this very nonchalantly.
|
||||
???: And by this, I mean the obvious kidnapping for… for…
|
||||
???: I don’t know. Hopefully just hostage money.
|
||||
Kiwa: Maybe we’ll get sold for the black market.
|
||||
???: Oh god. Hopefully not.
|
||||
Kiwa: Anyway, what sort of torture chamber is covered in pink hearts?
|
||||
???: I don’t even want to entertain the implications.
|
||||
???: Let’s just say the uncomfortable kind.
|
||||
>He suddenly perked up and started to pat down his pant pockets before his stature deflated again.<
|
||||
???: Of course they would empty our pockets. What’s left of my belongings is some spare change and pocket lint.
|
||||
Kiwa: Oh.
|
||||
>I quickly checked my own pockets.<
|
||||
Kiwa: You are right. No phone, or keys... or wallet.
|
||||
Kiwa: They only left me with my lighter but no cigarettes. Why would they take those away but not the lighter?
|
||||
???: So arson is fine but they draw the line at lung abuse?
|
||||
Kiwa: This is going to be a problem… mainly for me.
|
||||
Kiwa: Well, if it comes to it, I can at least set this room on fire.
|
||||
???: Please don’t. I don’t want to get grouped in with your lawsuit.
|
||||
>That’s the part you are worried about?<
|
||||
???: Are you some sort of criminal?
|
||||
Kiwa: Something along those lines, sure.
|
||||
???: I’m assuming a petty one at that then.
|
||||
Kiwa: Yeah.
|
||||
Kiwa: Sorry, I guess introductions weren’t the first thing on my mind.
|
||||
Kiwa: I’m Kiwa Fukuda, the former ultimate scapegoat.
|
||||
???: What a title. And you were an ultimate to boot.
|
||||
???: How come I have never heard of you?
|
||||
Kiwa: I try to keep a low profile. That works best with what I do.
|
||||
???: What exactly does a scapegoat do for a living?
|
||||
Kiwa: I’m really good at pointing fingers at people.
|
||||
???: Meaning?
|
||||
Kiwa: If you have a problem and you don’t want to deal with it like a respectable member of society, you come to me. I will either make it look like I fucked up the whole situation or I make someone else who is more suited for the situation look like they were at fault.
|
||||
???: How do you find out you have such a talent in the first place?
|
||||
Kiwa: With a lot of stupid actions, a lot of accidents, and a lot of dumb luck.
|
||||
Kiwa: It can get very messy sometimes but it pays my rent three times over.
|
||||
Kiwa: There are a lot of people who would like to have my head for less than one yen, so I wouldn’t be surprised if this whole kidnapping thing was my fault.
|
||||
Kiwa: Though I don’t get why you would be in the same situation then? I have never seen you in my life.
|
||||
Kiwa: Who are you?
|
||||
???: …Right.
|
||||
Masami: My name is Masami Kiyokane, the former ultimate croupier.
|
||||
Kiwa: A croupier?
|
||||
Masami: Basically, I am a card dealer at a casino. The Valentine’s Hand Casino to be exact. You may have heard of it.
|
||||
Kiwa: Ah, yeah. That one is really highly praised. One of the best in the country, right? Never been there myself. I don’t travel much.
|
||||
Masami: Well, I work there nowadays.
|
||||
Masami: My work includes taking bets, distributing cards to the players, and making sure those players don’t cheat among other things.
|
||||
Kiwa: Cool. So, you are a former ultimate yourself?
|
||||
Masami: That’s what that would imply, yes.
|
||||
Kiwa: I really don’t remember you. What class were you in? I didn’t interact much with upper or underclassmen during my time in Hope’s Peak.
|
||||
Masami: 72nd, Class A.
|
||||
Kiwa: Ah, I’m from 71st B. I guess we both didn’t lose our titles that long ago.
|
||||
Masami: Still, like you said. If we don’t even know each other, how are we in this situation?
|
||||
Masami: To be honest, I thought the kidnapping was my fault at the start. But now that I have someone here who runs into legal problems constantly…
|
||||
Kiwa: Why would you think this is your fault?
|
||||
Masami: Well-
|
||||
???: Good afternoon.
|
||||
Masami: What... is that?
|
||||
Kiwa: A bird?
|
||||
???: You have successfully woken up. Good.
|
||||
???: You are expected at the trial grounds. Follow me.
|
||||
>The strange bird turned it’s back to us and started to leave through the open door.<
|
||||
>Figuring out I didn’t exactly have anywhere else to go I started following it. Or tried to, at least.<
|
||||
>A hand grabbed my wrist and forcefully yanked me to run into another direction.<
|
||||
|
||||
<<go_to_space Lobby>>
|
||||
<<endif>>
|
||||
You: *waking up noices*
|
||||
===
|
||||
|
|
Reference in a new issue