Merge branch 'demo'
This commit is contained in:
commit
ee02038439
@ -22,7 +22,7 @@ c02_6偷听对话_李氏_7_fx,想当年,咱们好歹也过了几年体面日
|
|||||||
c02_6偷听对话_癞子_7_fx,等胖子那肉铺开门,你趁晚上摸黑去,一句话也别说,敲六下门,三快三慢。,等胖子的肉摊头开门,侬趁夜里厢偷摸较去,覅发声音,敲六击门,三快三慢。,王守义,,,"When Fatty's butcher shop opens, go there after dark. Don't say a word, just knock six times on the door - three fast, three slow."
|
c02_6偷听对话_癞子_7_fx,等胖子那肉铺开门,你趁晚上摸黑去,一句话也别说,敲六下门,三快三慢。,等胖子的肉摊头开门,侬趁夜里厢偷摸较去,覅发声音,敲六击门,三快三慢。,王守义,,,"When Fatty's butcher shop opens, go there after dark. Don't say a word, just knock six times on the door - three fast, three slow."
|
||||||
c02_6偷听对话_李氏_8_fx,我记着了。,有数了。,李兰,,[#wait=2],I'll remember.
|
c02_6偷听对话_李氏_8_fx,我记着了。,有数了。,李兰,,[#wait=2],I'll remember.
|
||||||
c02_6偷听对话_李氏_9_fx,...谁在外面?!,外头啥人?!,李兰,,,...Who's out there?!
|
c02_6偷听对话_李氏_9_fx,...谁在外面?!,外头啥人?!,李兰,,,...Who's out there?!
|
||||||
c02_4瞎子_1,小蝉,要是有天我死了,你会怎么办?,小蝉,要是哪一天我没了,侬会哪能办?,方启钊,,,"Little Cicada, if I were to die someday, what would you do?"
|
c02_4瞎子_1,小蝉,要是有天我死了,你会怎么办?,小蝉,要是哪一天我没了,侬会哪能办?,方启钊,,,"Little Chan, if I were to die someday, what would you do?"
|
||||||
c02_4小蝉_1,啊?,,方小蝉,,,Huh?
|
c02_4小蝉_1,啊?,,方小蝉,,,Huh?
|
||||||
c02_4小蝉_2,...「死」是什么意思?,...“没”是啥意思?,方小蝉,,,...What does 'die' mean?
|
c02_4小蝉_2,...「死」是什么意思?,...“没”是啥意思?,方小蝉,,,...What does 'die' mean?
|
||||||
c02_4瞎子_2,每个人就像一个封起来的盒子,人死了,就是打开盒盖,把里面的灵魂放走了。,每个人就像一个封好的盒头,人要是没了,就是盒头盖头打开来了,里厢的魂灵头跑掉了。,方启钊,,,"Everyone is like a sealed box. When a person dies, the lid opens and the soul inside is released."
|
c02_4瞎子_2,每个人就像一个封起来的盒子,人死了,就是打开盒盖,把里面的灵魂放走了。,每个人就像一个封好的盒头,人要是没了,就是盒头盖头打开来了,里厢的魂灵头跑掉了。,方启钊,,,"Everyone is like a sealed box. When a person dies, the lid opens and the soul inside is released."
|
||||||
@ -65,6 +65,6 @@ c02_10小蝶_2,我能感觉到,从我一进来,你就在盯着我。,我觉
|
|||||||
c02_10小蝉_2,...你不记得我了。,……侬对我没印象了。,方小蝉,,[#ban_skip],...You don't remember me anymore.
|
c02_10小蝉_2,...你不记得我了。,……侬对我没印象了。,方小蝉,,[#ban_skip],...You don't remember me anymore.
|
||||||
c02_10小蝶_3,...我更好奇另一件事。,……有桩事情我觉着老奇怪的。,吕萍,,[#ban_skip],...I'm more curious about something else.
|
c02_10小蝶_3,...我更好奇另一件事。,……有桩事情我觉着老奇怪的。,吕萍,,[#ban_skip],...I'm more curious about something else.
|
||||||
c02_10小蝶_4,你...是怎么死的?,侬……是怎么死的?,吕萍,,[#ban_skip],How... did you die?
|
c02_10小蝶_4,你...是怎么死的?,侬……是怎么死的?,吕萍,,[#ban_skip],How... did you die?
|
||||||
c02_10瞎子_1,小蝉,该回家了。,小蝉,好回去了。,方启钊,,,"Little Cicada, it's time to go home."
|
c02_10瞎子_1,小蝉,该回家了。,小蝉,好回去了。,方启钊,,,"Little Chan, it's time to go home."
|
||||||
c02_10瞎子_2,你胖叔叔带了鲜肉过来,要给咱们露一手呢。,胖阿叔拿了肉肉过来,要帮侬烧好吃的。,方启钊,,,Your Uncle Fatty brought fresh meat over. He wants to show off his cooking skills for us.
|
c02_10瞎子_2,你胖叔叔带了鲜肉过来,要给咱们露一手呢。,胖阿叔拿了肉肉过来,要帮侬烧好吃的。,方启钊,,,Your Uncle Fatty brought fresh meat over. He wants to show off his cooking skills for us.
|
||||||
c02_10瞎子_3,还不快点过来谢谢人家?,还不快点过来谢谢阿叔?,方启钊,,,"Hurry over and thank him, won't you?"
|
c02_10瞎子_3,还不快点过来谢谢人家?,还不快点过来谢谢阿叔?,方启钊,,,"Hurry over and thank him, won't you?"
|
||||||
|
|
@ -28,3 +28,28 @@ c02_保卫科花名册6,三〇一三 (看不清),,,,3013 (Illegible)
|
|||||||
c02_保卫科花名册7,把我的鞋子拿给老鼠,老鼠会引开那个疯男人,,,,"Give my shoes to the rats, the rats will lure away that crazy man"
|
c02_保卫科花名册7,把我的鞋子拿给老鼠,老鼠会引开那个疯男人,,,,"Give my shoes to the rats, the rats will lure away that crazy man"
|
||||||
c02_保卫科花名册8,不要相信墙里的东西!,,,,Don't trust what's in the wall!
|
c02_保卫科花名册8,不要相信墙里的东西!,,,,Don't trust what's in the wall!
|
||||||
c02_小猫纸条,大哥!今晚老地方见 /井\,,,,Big brother! Meet at the usual place tonight /well\
|
c02_小猫纸条,大哥!今晚老地方见 /井\,,,,Big brother! Meet at the usual place tonight /well\
|
||||||
|
c02_议论文字1,你说的是真的啊?,,,,Is what you're saying really true?
|
||||||
|
c02_议论文字2,你听谁说的?,,,,Who did you hear that from?
|
||||||
|
c02_议论文字3,姓李的那个女人讲的,,,,That woman surnamed Li told me
|
||||||
|
c02_议论文字4,好多人都在传呢,,,,Lots of people are talking about it
|
||||||
|
c02_议论文字5,我也听说了,,,,I heard about it too
|
||||||
|
c02_议论文字6,不是有人已经看到过了吗,,,,Didn't someone already see it?
|
||||||
|
c02_议论文字7,谁看到了?,,,,Who saw it?
|
||||||
|
c02_议论文字8,谁啊,,,,Who?
|
||||||
|
c02_议论文字9,听说是她老公看到的呀,,,,I heard it was her husband who saw it
|
||||||
|
c02_议论文字10,这么多人找他们看过病呢,,,,So many people have gone to them for treatment
|
||||||
|
c02_议论文字11,你十三点啊,,,,You're being foolish
|
||||||
|
c02_议论文字12,谁知道这病是不是他们搞得,,,,Who knows if they're the ones causing the illness
|
||||||
|
c02_议论文字13,这钱不就来了吗,,,,That's how the money comes rolling in
|
||||||
|
c02_议论文字14,啧,有道理的呀,,,,"Tsk, that makes sense"
|
||||||
|
c02_议论文字15,想钱想疯了,,,,Gone mad from wanting money
|
||||||
|
c02_议论文字16,开始用怪路子赚钱了,,,,Started using strange methods to make money
|
||||||
|
c02_议论文字17,他们家住了只妖怪?,,,,There's a demon living in their house?
|
||||||
|
c02_议论文字18,啊?妖怪?,,,,Huh? A demon?
|
||||||
|
c02_议论文字19,你们在说什么妖怪?,,,,What demon are you talking about?
|
||||||
|
c02_议论文字20,谁家有妖怪?,,,,Which family has a demon?
|
||||||
|
c02_议论文字21,啥妖怪,,,,What demon?
|
||||||
|
c02_议论文字22,真的假的妖怪,,,,Is it a real or fake demon?
|
||||||
|
c02_议论文字23,三〇一二那家有妖怪,,,,The family in 3012 has a demon
|
||||||
|
c02_议论文字24,要死了,,,,We're doomed
|
||||||
|
c02_议论文字25,养妖怪,,,,Keeping a demon
|
||||||
|
|
@ -46,3 +46,31 @@
|
|||||||
~ c02_小猫纸条
|
~ c02_小猫纸条
|
||||||
大哥!今晚老地方见 /井\[ID:c02_小猫纸条]
|
大哥!今晚老地方见 /井\[ID:c02_小猫纸条]
|
||||||
=> END
|
=> END
|
||||||
|
|
||||||
|
~ c02_裂缝议论
|
||||||
|
你说的是真的啊? [ID:c02_议论文字1]
|
||||||
|
你听谁说的? [ID:c02_议论文字2]
|
||||||
|
姓李的那个女人讲的 [ID:c02_议论文字3]
|
||||||
|
好多人都在传呢 [ID:c02_议论文字4]
|
||||||
|
我也听说了 [ID:c02_议论文字5]
|
||||||
|
不是有人已经看到过了吗 [ID:c02_议论文字6]
|
||||||
|
谁看到了? [ID:c02_议论文字7]
|
||||||
|
谁啊 [ID:c02_议论文字8]
|
||||||
|
听说是她老公看到的呀 [ID:c02_议论文字9]
|
||||||
|
这么多人找他们看过病呢 [ID:c02_议论文字10]
|
||||||
|
你十三点啊 [ID:c02_议论文字11]
|
||||||
|
谁知道这病是不是他们搞得 [ID:c02_议论文字12]
|
||||||
|
这钱不就来了吗 [ID:c02_议论文字13]
|
||||||
|
啧,有道理的呀 [ID:c02_议论文字14]
|
||||||
|
想钱想疯了 [ID:c02_议论文字15]
|
||||||
|
开始用怪路子赚钱了 [ID:c02_议论文字16]
|
||||||
|
他们家住了只妖怪? [ID:c02_议论文字17]
|
||||||
|
啊?妖怪? [ID:c02_议论文字18]
|
||||||
|
你们在说什么妖怪? [ID:c02_议论文字19]
|
||||||
|
谁家有妖怪? [ID:c02_议论文字20]
|
||||||
|
啥妖怪 [ID:c02_议论文字21]
|
||||||
|
真的假的妖怪 [ID:c02_议论文字22]
|
||||||
|
三〇一二那家有妖怪 [ID:c02_议论文字23]
|
||||||
|
要死了 [ID:c02_议论文字24]
|
||||||
|
养妖怪 [ID:c02_议论文字25]
|
||||||
|
=> END
|
@ -27,6 +27,7 @@ ui_new_archive,已创建新存档,,,,,New save file created
|
|||||||
ui_auto_saved,自动保存成功,,,,,Auto save successful
|
ui_auto_saved,自动保存成功,,,,,Auto save successful
|
||||||
ui_notify_important_item_update,重要物品已更新,,,,,Important items updated
|
ui_notify_important_item_update,重要物品已更新,,,,,Important items updated
|
||||||
ui_notify_note_update,线索笔记已更新,,,,,Clue notes updated
|
ui_notify_note_update,线索笔记已更新,,,,,Clue notes updated
|
||||||
|
ui_notify_mem_update,回忆已更新,,,,,"Memories updated"
|
||||||
ui_center_notify_press_e_to_interact,按 E 可与场景互动,,,,,Press E to interact
|
ui_center_notify_press_e_to_interact,按 E 可与场景互动,,,,,Press E to interact
|
||||||
ui_center_notify_press_q_to_exit,按 Q 可退出,,,,,Press Q to exit
|
ui_center_notify_press_q_to_exit,按 Q 可退出,,,,,Press Q to exit
|
||||||
ui_center_notify_use_prop,按 E 使用道具,,,,,Press E to use item
|
ui_center_notify_use_prop,按 E 使用道具,,,,,Press E to use item
|
||||||
@ -46,7 +47,6 @@ ui_检阅,检阅,,,,,Examine
|
|||||||
ui_收起,收起,,,,,Put away
|
ui_收起,收起,,,,,Put away
|
||||||
ui_夜行船1,百岁光阴一梦蝶。,,,,,"A hundred years of life, like a butterfly's dream."
|
ui_夜行船1,百岁光阴一梦蝶。,,,,,"A hundred years of life, like a butterfly's dream."
|
||||||
ui_夜行船2,重回首往事堪嗟。,,,,,"Looking back, past events are cause for lament."
|
ui_夜行船2,重回首往事堪嗟。,,,,,"Looking back, past events are cause for lament."
|
||||||
ui_夜行船3,今日春来。,,,,,Spring comes today.
|
|
||||||
ui_夜行船4,今日春来,明朝花谢。,,,,,"Spring comes today, tomorrow the flowers will wither."
|
ui_夜行船4,今日春来,明朝花谢。,,,,,"Spring comes today, tomorrow the flowers will wither."
|
||||||
ui_夜行船5,急罚盏夜阑灯灭。,,,,,Hastily draining cups as night deepens and lamps fade.
|
ui_夜行船5,急罚盏夜阑灯灭。,,,,,Hastily draining cups as night deepens and lamps fade.
|
||||||
ui_夜行船6,夜行船,,,,,Night Voyage
|
ui_夜行船6,夜行船,,,,,Night Voyage
|
||||||
@ -100,7 +100,7 @@ prop_船票,船票,,,[#texture=c02/船票.png],,Boat Ticket
|
|||||||
prop_船票_说明,民国二十一年十月十七日{br}上海-南京-济南-北平-林西-满洲里{br}三等舱 3-23 号铺位{br}船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。{br}我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,,"October 17th, Year 21 of the Republic{br}Shanghai-Nanjing-Jinan-Beiping-Linxi-Manzhouli{br}Third Class Berth 3-23{br}The ticket was booked long ago. I had given up all hope until the director replied to my letter. If I cannot find the truth tonight, I will take this ticket to the unknown and salvage answers devoured by time from the waves.{br}Who are my birth parents? Why did they send me to Puyu Orphanage?"
|
prop_船票_说明,民国二十一年十月十七日{br}上海-南京-济南-北平-林西-满洲里{br}三等舱 3-23 号铺位{br}船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。{br}我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,,"October 17th, Year 21 of the Republic{br}Shanghai-Nanjing-Jinan-Beiping-Linxi-Manzhouli{br}Third Class Berth 3-23{br}The ticket was booked long ago. I had given up all hope until the director replied to my letter. If I cannot find the truth tonight, I will take this ticket to the unknown and salvage answers devoured by time from the waves.{br}Who are my birth parents? Why did they send me to Puyu Orphanage?"
|
||||||
prop_眼镜盒,眼镜盒,,,[#texture=c02/眼镜盒.png],,Glasses Case
|
prop_眼镜盒,眼镜盒,,,[#texture=c02/眼镜盒.png],,Glasses Case
|
||||||
prop_眼镜盒_说明,这副眼镜对我很重要。{br}记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。{br}院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。{br}随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,,"These glasses are very important to me.{br}I remember during my childhood at Puyu Orphanage, I would often hear strange voices at midnight and sometimes see things other children couldn't see.{br}The director found these glasses somewhere. After wearing them, those strange occurrences rarely happened.{br}As I grew older, I hardly needed these glasses anymore. Now they seem to have taken on new meaning for me."
|
prop_眼镜盒_说明,这副眼镜对我很重要。{br}记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。{br}院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。{br}随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,,"These glasses are very important to me.{br}I remember during my childhood at Puyu Orphanage, I would often hear strange voices at midnight and sometimes see things other children couldn't see.{br}The director found these glasses somewhere. After wearing them, those strange occurrences rarely happened.{br}As I grew older, I hardly needed these glasses anymore. Now they seem to have taken on new meaning for me."
|
||||||
prop_小蝉人偶,小蝉人偶,,,[#texture=c02/小蝉人偶.png],,Little Cicada Doll
|
prop_小蝉人偶,小蝉人偶,,,[#texture=c02/小蝉人偶.png],,Little Chan Doll
|
||||||
prop_小蝉人偶_说明,小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花。,,,,,"Little person, little shoes, little friendship—like a butterfly nestled against a flower."
|
prop_小蝉人偶_说明,小小的人儿,小小的鞋子,小小的友情啊——像蝶依偎着花。,,,,,"Little person, little shoes, little friendship—like a butterfly nestled against a flower."
|
||||||
prop_单只小鞋子,一只小鞋子,,,[#texture=c02/小鞋子1.png],,A Single Small Shoe
|
prop_单只小鞋子,一只小鞋子,,,[#texture=c02/小鞋子1.png],,A Single Small Shoe
|
||||||
prop_单只小鞋子_说明,这只小鞋子曾经属于一个裹了小脚的女孩。{br}鞋不成双,祸事难防。,,,,,"This small shoe once belonged to a girl with bound feet.{br}When shoes don't come in pairs, misfortune is hard to prevent."
|
prop_单只小鞋子_说明,这只小鞋子曾经属于一个裹了小脚的女孩。{br}鞋不成双,祸事难防。,,,,,"This small shoe once belonged to a girl with bound feet.{br}When shoes don't come in pairs, misfortune is hard to prevent."
|
||||||
@ -109,7 +109,7 @@ c01_s07_需要报纸,书店还没开门。,,,,,The bookstore isn't open yet.
|
|||||||
c01_s08_书店工作,老板交代的工作还没做完,不能偷懒。,,,,,I haven't finished the work the boss assigned. I can't slack off.
|
c01_s08_书店工作,老板交代的工作还没做完,不能偷懒。,,,,,I haven't finished the work the boss assigned. I can't slack off.
|
||||||
c01_s08_书店工钱,这个月的工钱还没拿。,,,,,I haven't collected this month's wages yet.
|
c01_s08_书店工钱,这个月的工钱还没拿。,,,,,I haven't collected this month's wages yet.
|
||||||
mem_偷听对话,偷听对话,,,,,Eavesdropping
|
mem_偷听对话,偷听对话,,,,,Eavesdropping
|
||||||
mem_疯子看井,疯子看井,,,,,Madman Looking at Well
|
mem_疯子看井,疯子看井,,,,,Madman Guards Well
|
||||||
c01_鸡毛掸子,这是鸡毛掸子吗?,,,,,Is this a feather duster?
|
c01_鸡毛掸子,这是鸡毛掸子吗?,,,,,Is this a feather duster?
|
||||||
c01_院长书桌,桌上放着一本《圣经》。{br}「得著生命的,將要失喪生命...」,,,,,There's a Bible on the desk.{br}'Whoever finds their life will lose it...'
|
c01_院长书桌,桌上放着一本《圣经》。{br}「得著生命的,將要失喪生命...」,,,,,There's a Bible on the desk.{br}'Whoever finds their life will lose it...'
|
||||||
c01_院长床,这本书已经看过了。{br}...那些句子是什么意思呢?,,,,,I've already read this book.{br}...What do those sentences mean?
|
c01_院长床,这本书已经看过了。{br}...那些句子是什么意思呢?,,,,,I've already read this book.{br}...What do those sentences mean?
|
||||||
@ -187,7 +187,7 @@ c02_小蝉盒子特写,我会在盒子里一直陪着你 :3,,,,,I'll stay with y
|
|||||||
c02_小蝉恨他们,我恨他们!,,,,,I hate them!
|
c02_小蝉恨他们,我恨他们!,,,,,I hate them!
|
||||||
c02_火灾等待准备,还没准备好点火呢,,,,,Not ready to start the fire yet
|
c02_火灾等待准备,还没准备好点火呢,,,,,Not ready to start the fire yet
|
||||||
c02_霸凌救小蝉开始,啊!我得想办法帮帮她...,,,,,Ah! I need to find a way to help her...
|
c02_霸凌救小蝉开始,啊!我得想办法帮帮她...,,,,,Ah! I need to find a way to help her...
|
||||||
c02_点火前阻止右移,没时间浪费了!想想办法救出小蝉...,,,,,No time to waste! Think of a way to save Little Cicada...
|
c02_点火前阻止右移,没时间浪费了!想想办法救出小蝉...,,,,,No time to waste! Think of a way to save Little Chan...
|
||||||
c02_看到小蝉上楼,?!,,,,,?!
|
c02_看到小蝉上楼,?!,,,,,?!
|
||||||
c02_看到杂物堆消失,楼梯口的杂物消失了...,,,,,The clutter at the stairway has disappeared...
|
c02_看到杂物堆消失,楼梯口的杂物消失了...,,,,,The clutter at the stairway has disappeared...
|
||||||
c02_demo感谢试玩,感谢试玩,,,,,Thank you for playing
|
c02_demo感谢试玩,感谢试玩,,,,,Thank you for playing
|
||||||
|
|
@ -34,6 +34,8 @@
|
|||||||
|
|
||||||
重要物品已更新 [ID:ui_notify_important_item_update]
|
重要物品已更新 [ID:ui_notify_important_item_update]
|
||||||
线索笔记已更新 [ID:ui_notify_note_update]
|
线索笔记已更新 [ID:ui_notify_note_update]
|
||||||
|
回忆已更新 [ID:ui_notify_mem_update]
|
||||||
|
|
||||||
|
|
||||||
按 E 可与场景互动 [ID:ui_center_notify_press_e_to_interact]
|
按 E 可与场景互动 [ID:ui_center_notify_press_e_to_interact]
|
||||||
按 Q 可退出 [ID:ui_center_notify_press_q_to_exit]
|
按 Q 可退出 [ID:ui_center_notify_press_q_to_exit]
|
||||||
@ -56,7 +58,7 @@
|
|||||||
|
|
||||||
百岁光阴一梦蝶。 [ID:ui_夜行船1]
|
百岁光阴一梦蝶。 [ID:ui_夜行船1]
|
||||||
重回首往事堪嗟。 [ID:ui_夜行船2]
|
重回首往事堪嗟。 [ID:ui_夜行船2]
|
||||||
今日春来。 [ID:ui_夜行船3]
|
#今日春来 [ID:ui_夜行船3]
|
||||||
今日春来,明朝花谢。 [ID:ui_夜行船4]
|
今日春来,明朝花谢。 [ID:ui_夜行船4]
|
||||||
急罚盏夜阑灯灭。 [ID:ui_夜行船5]
|
急罚盏夜阑灯灭。 [ID:ui_夜行船5]
|
||||||
夜行船 [ID:ui_夜行船6]
|
夜行船 [ID:ui_夜行船6]
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
keys,zh_CN,en
|
keys,zh_CN,en
|
||||||
老师,老师,"Teacher"
|
老师,老师,"Teacher"
|
||||||
大胖,大胖,"Big Fatty"
|
大胖,大胖,"Tubby"
|
||||||
监督小孩,监督小孩,"Supervising Child"
|
监督小孩,监督小孩,"Monitor Kid"
|
||||||
书店老板,书店老板,"Bookstore Owner"
|
书店老板,书店老板,"Bookstore Owner"
|
||||||
车夫,车夫,"Rickshaw Puller"
|
车夫,车夫,"Rickshaw Puller"
|
||||||
李兰,李兰,"Li Lan"
|
李兰,李兰,"Li Lan"
|
||||||
@ -9,16 +9,16 @@ keys,zh_CN,en
|
|||||||
方启钊,方启钊,"Fang Qizhao"
|
方启钊,方启钊,"Fang Qizhao"
|
||||||
方小蝉,方小蝉,"Fang Xiaochan"
|
方小蝉,方小蝉,"Fang Xiaochan"
|
||||||
小男孩,小男孩,"Little Boy"
|
小男孩,小男孩,"Little Boy"
|
||||||
小蝉,小蝉,"Little Cicada"
|
小蝉,小蝉,"Little Chan"
|
||||||
男孩黄,男孩黄,"Boy in Yellow"
|
男孩黄,男孩黄,"Boy in Yellow"
|
||||||
男孩蓝,男孩蓝,"Boy in Blue"
|
男孩蓝,男孩蓝,"Boy in Blue"
|
||||||
小肉圆,小肉圆,"Little Meatball"
|
小肉圆,小肉圆,"Pudgy"
|
||||||
小竹竿,小竹竿,"Little Bamboo Pole"
|
小竹竿,小竹竿,"Skinny"
|
||||||
孩子王,孩子王,"King of the Kids"
|
孩子王,孩子王,"Boss Kid"
|
||||||
小丁,小丁,"Xiao Ding"
|
小丁,小丁,"Xiao Ding"
|
||||||
蛋蛋,蛋蛋,"Dan Dan"
|
蛋蛋,蛋蛋,"Eggy"
|
||||||
沫儿,沫儿,"Mo'er"
|
沫儿,沫儿,"Bubbles"
|
||||||
陆仁,陆仁,"Lu Ren"
|
陆仁,陆仁,"Lu Ren"
|
||||||
吕萍,吕萍,"Lu Ping"
|
吕萍,吕萍,"Lu Ping"
|
||||||
???,???,"???"
|
???,???,"???"
|
||||||
小蝶,小蝶,"Little Butterfly"
|
小蝶,小蝶,"Little Die"
|
|
@ -1,26 +0,0 @@
|
|||||||
keys,zh_CN,_character,_notes,_tags
|
|
||||||
c02_议论文字1,你说的是真的啊?,,,
|
|
||||||
c02_议论文字2,你听谁说的?,,,
|
|
||||||
c02_议论文字3,姓李的那个女人讲的,,,
|
|
||||||
c02_议论文字4,好多人都在传呢,,,
|
|
||||||
c02_议论文字5,我也听说了,,,
|
|
||||||
c02_议论文字6,不是有人已经看到过了吗,,,
|
|
||||||
c02_议论文字7,谁看到了?,,,
|
|
||||||
c02_议论文字8,谁啊,,,
|
|
||||||
c02_议论文字9,听说是她老公看到的呀,,,
|
|
||||||
c02_议论文字10,这么多人找他们看过病呢,,,
|
|
||||||
c02_议论文字11,你十三点啊,,,
|
|
||||||
c02_议论文字12,谁知道这病是不是他们搞得,,,
|
|
||||||
c02_议论文字13,这钱不就来了吗,,,
|
|
||||||
c02_议论文字14,啧,有道理的呀,,,
|
|
||||||
c02_议论文字15,想钱想疯了,,,
|
|
||||||
c02_议论文字16,开始用怪路子赚钱了,,,
|
|
||||||
c02_议论文字17,他们家住了只妖怪?,,,
|
|
||||||
c02_议论文字18,啊?妖怪?,,,
|
|
||||||
c02_议论文字19,你们在说什么妖怪?,,,
|
|
||||||
c02_议论文字20,谁家有妖怪?,,,
|
|
||||||
c02_议论文字21,啥妖怪,,,
|
|
||||||
c02_议论文字22,真的假的妖怪,,,
|
|
||||||
c02_议论文字23,三〇一二那家有妖怪,,,
|
|
||||||
c02_议论文字24,要死了,,,
|
|
||||||
c02_议论文字25,养妖怪,,,
|
|
|
@ -1,17 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="csv_translation"
|
|
||||||
type="Translation"
|
|
||||||
uid="uid://rlhjdcvlinvt"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
files=["res://asset/dialogue/纯中文_无需本地化.zh_CN.translation"]
|
|
||||||
|
|
||||||
source_file="res://asset/dialogue/纯中文_无需本地化.csv"
|
|
||||||
dest_files=["res://asset/dialogue/纯中文_无需本地化.zh_CN.translation"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress=true
|
|
||||||
delimiter=0
|
|
@ -1,27 +0,0 @@
|
|||||||
~ c02_裂缝议论
|
|
||||||
你说的是真的啊? [ID:c02_议论文字1]
|
|
||||||
你听谁说的? [ID:c02_议论文字2]
|
|
||||||
姓李的那个女人讲的 [ID:c02_议论文字3]
|
|
||||||
好多人都在传呢 [ID:c02_议论文字4]
|
|
||||||
我也听说了 [ID:c02_议论文字5]
|
|
||||||
不是有人已经看到过了吗 [ID:c02_议论文字6]
|
|
||||||
谁看到了? [ID:c02_议论文字7]
|
|
||||||
谁啊 [ID:c02_议论文字8]
|
|
||||||
听说是她老公看到的呀 [ID:c02_议论文字9]
|
|
||||||
这么多人找他们看过病呢 [ID:c02_议论文字10]
|
|
||||||
你十三点啊 [ID:c02_议论文字11]
|
|
||||||
谁知道这病是不是他们搞得 [ID:c02_议论文字12]
|
|
||||||
这钱不就来了吗 [ID:c02_议论文字13]
|
|
||||||
啧,有道理的呀 [ID:c02_议论文字14]
|
|
||||||
想钱想疯了 [ID:c02_议论文字15]
|
|
||||||
开始用怪路子赚钱了 [ID:c02_议论文字16]
|
|
||||||
他们家住了只妖怪? [ID:c02_议论文字17]
|
|
||||||
啊?妖怪? [ID:c02_议论文字18]
|
|
||||||
你们在说什么妖怪? [ID:c02_议论文字19]
|
|
||||||
谁家有妖怪? [ID:c02_议论文字20]
|
|
||||||
啥妖怪 [ID:c02_议论文字21]
|
|
||||||
真的假的妖怪 [ID:c02_议论文字22]
|
|
||||||
三〇一二那家有妖怪 [ID:c02_议论文字23]
|
|
||||||
要死了 [ID:c02_议论文字24]
|
|
||||||
养妖怪 [ID:c02_议论文字25]
|
|
||||||
=> END
|
|
@ -1,16 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="dialogue_manager"
|
|
||||||
importer_version=15
|
|
||||||
type="Resource"
|
|
||||||
uid="uid://cw6fqhsayj2mx"
|
|
||||||
path="res://.godot/imported/纯中文_无需本地化.dialogue-926494d2ab389072cb5bff08a3b44b6a.tres"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://asset/dialogue/纯中文_无需本地化.dialogue"
|
|
||||||
dest_files=["res://.godot/imported/纯中文_无需本地化.dialogue-926494d2ab389072cb5bff08a3b44b6a.tres"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
defaults=true
|
|
@ -285,3 +285,14 @@ func set_chapter_if_greater(c: int) -> void:
|
|||||||
archive.current_chapter = c
|
archive.current_chapter = c
|
||||||
# 笔记也进入下一章
|
# 笔记也进入下一章
|
||||||
EventManager.set_stage_if_greater("handnote_chapter_stage", c)
|
EventManager.set_stage_if_greater("handnote_chapter_stage", c)
|
||||||
|
|
||||||
|
|
||||||
|
func unlock_memory(id: int) -> void:
|
||||||
|
if archive:
|
||||||
|
if archive.mem_display_dict.get(id):
|
||||||
|
print("memory already unlocked. id=", id)
|
||||||
|
return
|
||||||
|
archive.mem_display_dict[id] = true
|
||||||
|
SceneManager.pop_notification("ui_notify_mem_update")
|
||||||
|
else:
|
||||||
|
printerr("Archive is null, cannot unlock memory. id=", id)
|
||||||
|
@ -39,6 +39,8 @@ class_name AssembledArchive extends Resource
|
|||||||
@export var player_running_locked := true
|
@export var player_running_locked := true
|
||||||
# prop hud 显示道具
|
# prop hud 显示道具
|
||||||
@export var prop_inventory: PropInventory
|
@export var prop_inventory: PropInventory
|
||||||
|
# mem 展示 dict, 1-16 号
|
||||||
|
@export var mem_display_dict: Dictionary[int, bool] = {}
|
||||||
|
|
||||||
@export_group("八音盒", "bayinhe")
|
@export_group("八音盒", "bayinhe")
|
||||||
@export var bayinhe_current_answer := [0, 0, 0, 0, 0, 0, 0, 0, 0]
|
@export var bayinhe_current_answer := [0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
@ -31,9 +31,6 @@ func set_stage(event_name: StringName, stage := 1) -> void:
|
|||||||
if stage == 1:
|
if stage == 1:
|
||||||
SceneManager.lock_player(3.0, 16, true)
|
SceneManager.lock_player(3.0, 16, true)
|
||||||
SceneManager.pop_notification("ui_notify_note_update")
|
SceneManager.pop_notification("ui_notify_note_update")
|
||||||
# 第一次记笔记,提示查看笔记
|
|
||||||
if event_name == &"handnote_c02_road_address":
|
|
||||||
SceneManager.pop_center_notification("ui_center_notify_check_note")
|
|
||||||
|
|
||||||
|
|
||||||
# 仅在设置的 stage > 当前 stage 时更新,相等或小于时不更新
|
# 仅在设置的 stage > 当前 stage 时更新,相等或小于时不更新
|
||||||
|
@ -69,13 +69,12 @@ func focus_node(node: Node2D, duration := 0.0) -> void:
|
|||||||
marker.focus_node(node, duration)
|
marker.focus_node(node, duration)
|
||||||
|
|
||||||
|
|
||||||
func focus_player_and_reset_zoom(duration := 1.2) -> void:
|
func focus_player_and_reset_zoom(duration := 1.0) -> void:
|
||||||
var marker = get_camera_marker()
|
var marker = get_camera_marker()
|
||||||
if marker:
|
if marker:
|
||||||
# marker.force_offset = Vector2.ZERO
|
# 延长可更丝滑
|
||||||
marker.tween_zoom(1.0, duration)
|
marker.tween_zoom(1.0, duration)
|
||||||
# 运镜更平滑一些
|
marker.focus_node(get_player(), duration)
|
||||||
marker.focus_node(get_player(), duration + .3)
|
|
||||||
|
|
||||||
|
|
||||||
func get_lock() -> PlayerReenterLock:
|
func get_lock() -> PlayerReenterLock:
|
||||||
@ -202,6 +201,7 @@ func enable_prop_item(prop_key: String) -> void:
|
|||||||
else:
|
else:
|
||||||
printerr("enable_prop_item PropHud node not found")
|
printerr("enable_prop_item PropHud node not found")
|
||||||
|
|
||||||
|
|
||||||
# display_inspector 的时候会伴随音效
|
# display_inspector 的时候会伴随音效
|
||||||
func enable_important_item(prop_key: String, display_inspector = true) -> void:
|
func enable_important_item(prop_key: String, display_inspector = true) -> void:
|
||||||
var prop_hud = get_prop_hud()
|
var prop_hud = get_prop_hud()
|
||||||
|
@ -179,13 +179,11 @@ cancel={
|
|||||||
prop_left={
|
prop_left={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":90,"key_label":0,"unicode":122,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":90,"key_label":0,"unicode":122,"location":0,"echo":false,"script":null)
|
||||||
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":8,"position":Vector2(229, 27),"global_position":Vector2(248, 118),"factor":0.0300018,"button_index":4,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
prop_right={
|
prop_right={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":67,"key_label":0,"unicode":99,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":67,"key_label":0,"unicode":99,"location":0,"echo":false,"script":null)
|
||||||
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":16,"position":Vector2(427, 48),"global_position":Vector2(446, 139),"factor":0.0300018,"button_index":5,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
escape={
|
escape={
|
||||||
@ -224,8 +222,8 @@ panel={
|
|||||||
locale/translation_remaps={
|
locale/translation_remaps={
|
||||||
"res://asset/art/ui/note/c02_slices.png": PackedStringArray("res://asset/art/ui/note/c02_slices_en.png:en")
|
"res://asset/art/ui/note/c02_slices.png": PackedStringArray("res://asset/art/ui/note/c02_slices_en.png:en")
|
||||||
}
|
}
|
||||||
locale/translations=PackedStringArray("res://asset/dialogue/c01.zh_CN.translation", "res://asset/dialogue/c02.zh_CN.translation", "res://asset/dialogue/inspect_content.zh_CN.translation", "res://asset/dialogue/item_description.zh_CN.translation", "res://asset/dialogue/names.zh_CN.translation", "res://asset/dialogue/npc.zh_CN.translation", "res://asset/dialogue/c01.zh_SH.translation", "res://asset/dialogue/纯中文_无需本地化.zh_CN.translation", "res://asset/dialogue/c01.en.translation", "res://asset/dialogue/c03.zh_CN.translation", "res://asset/dialogue/c04.zh_CN.translation", "res://asset/dialogue/c05.zh_CN.translation", "res://asset/dialogue/c06.zh_CN.translation", "res://asset/dialogue/item_description.en.translation", "res://asset/dialogue/item_description.zh_SH.translation", "res://asset/dialogue/c02.zh_SH.translation", "res://asset/dialogue/npc.zh_SH.translation")
|
locale/translations=PackedStringArray("res://asset/dialogue/c01.zh_CN.translation", "res://asset/dialogue/c02.zh_CN.translation", "res://asset/dialogue/inspect_content.zh_CN.translation", "res://asset/dialogue/item_description.zh_CN.translation", "res://asset/dialogue/names.zh_CN.translation", "res://asset/dialogue/npc.zh_CN.translation", "res://asset/dialogue/c01.zh_SH.translation", "res://asset/dialogue/c01.en.translation", "res://asset/dialogue/c03.zh_CN.translation", "res://asset/dialogue/c04.zh_CN.translation", "res://asset/dialogue/c05.zh_CN.translation", "res://asset/dialogue/c06.zh_CN.translation", "res://asset/dialogue/item_description.en.translation", "res://asset/dialogue/item_description.zh_SH.translation", "res://asset/dialogue/c02.zh_SH.translation", "res://asset/dialogue/npc.zh_SH.translation", "res://asset/dialogue/c02.en.translation", "res://asset/dialogue/inspect_content.en.translation", "res://asset/dialogue/names.en.translation", "res://asset/dialogue/npc.en.translation")
|
||||||
locale/translations_pot_files=PackedStringArray("res://asset/dialogue/item_description.dialogue", "res://asset/dialogue/c01.dialogue", "res://asset/dialogue/c02.dialogue", "res://asset/dialogue/inspect_content.dialogue", "res://asset/dialogue/npc.dialogue", "res://asset/dialogue/c03.dialogue", "res://asset/dialogue/c04.dialogue", "res://asset/dialogue/c05.dialogue", "res://asset/dialogue/c06.dialogue", "res://asset/dialogue/纯中文_无需本地化.dialogue", "res://asset/dialogue/event_stage.dialogue")
|
locale/translations_pot_files=PackedStringArray("res://asset/dialogue/item_description.dialogue", "res://asset/dialogue/c01.dialogue", "res://asset/dialogue/c02.dialogue", "res://asset/dialogue/inspect_content.dialogue", "res://asset/dialogue/npc.dialogue", "res://asset/dialogue/c03.dialogue", "res://asset/dialogue/c04.dialogue", "res://asset/dialogue/c05.dialogue", "res://asset/dialogue/c06.dialogue", "res://asset/dialogue/event_stage.dialogue")
|
||||||
locale/test="zh-Hans"
|
locale/test="zh-Hans"
|
||||||
locale/fallback="zh"
|
locale/fallback="zh"
|
||||||
|
|
||||||
|
@ -25,8 +25,6 @@ func display() -> void:
|
|||||||
if current_child:
|
if current_child:
|
||||||
return
|
return
|
||||||
if packed_scene:
|
if packed_scene:
|
||||||
if GlobalConfig.DEBUG:
|
|
||||||
print("[" + name + "] call lock")
|
|
||||||
SceneManager.lock_player(0, action_key)
|
SceneManager.lock_player(0, action_key)
|
||||||
# 展示时,禁用 sign_mark 的输入
|
# 展示时,禁用 sign_mark 的输入
|
||||||
sign_mark.pass_unhandled_input = true
|
sign_mark.pass_unhandled_input = true
|
||||||
@ -40,8 +38,6 @@ func display() -> void:
|
|||||||
|
|
||||||
func _exit(arg = null):
|
func _exit(arg = null):
|
||||||
if current_child:
|
if current_child:
|
||||||
if GlobalConfig.DEBUG:
|
|
||||||
print("[" + name + "] call lock")
|
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
if current_child:
|
if current_child:
|
||||||
remove_child(current_child)
|
remove_child(current_child)
|
||||||
|
@ -56,3 +56,4 @@ grow_vertical = 2
|
|||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
autowrap_mode = 3
|
autowrap_mode = 3
|
||||||
script = ExtResource("5_ik70a")
|
script = ExtResource("5_ik70a")
|
||||||
|
vertical = null
|
||||||
|
@ -9,7 +9,7 @@ signal sign_mark_offset_updated
|
|||||||
# set(value):
|
# set(value):
|
||||||
# entity_config = value
|
# entity_config = value
|
||||||
|
|
||||||
enum { STATUS_NORAML, STATUS_TRANSITIONING, STATUS_INSPECTING_COVER, STATUS_INSPECTING_NOTES }
|
enum { STATUS_HIDDEN, STATUS_TRANSITIONING, STATUS_INSPECTING_COVER, STATUS_INSPECTING_NOTES }
|
||||||
|
|
||||||
@export var enabled := true:
|
@export var enabled := true:
|
||||||
set(val):
|
set(val):
|
||||||
@ -27,6 +27,11 @@ enum { STATUS_NORAML, STATUS_TRANSITIONING, STATUS_INSPECTING_COVER, STATUS_INSP
|
|||||||
# 第一次交互时的气泡文字(unrevealed -> revealed) 如果为空则跳过
|
# 第一次交互时的气泡文字(unrevealed -> revealed) 如果为空则跳过
|
||||||
@export var first_interact_os_key := ""
|
@export var first_interact_os_key := ""
|
||||||
@export var content_centered: bool = false
|
@export var content_centered: bool = false
|
||||||
|
@export var content_width := 150.0:
|
||||||
|
set(val):
|
||||||
|
content_width = val
|
||||||
|
if is_node_ready():
|
||||||
|
content_label.custom_minimum_size.x = content_width
|
||||||
@export var action_key := 4
|
@export var action_key := 4
|
||||||
@export var collision_width_and_x := Vector2(20.0, 0):
|
@export var collision_width_and_x := Vector2(20.0, 0):
|
||||||
set(val):
|
set(val):
|
||||||
@ -51,18 +56,29 @@ var content_key: String = ""
|
|||||||
@onready var sfx = %Sfx
|
@onready var sfx = %Sfx
|
||||||
@onready var container = %Container
|
@onready var container = %Container
|
||||||
@onready var cover_rect = %Cover as TextureRect
|
@onready var cover_rect = %Cover as TextureRect
|
||||||
|
@onready var content_area = %ContentArea as Control
|
||||||
|
@onready var scroll_container = %ScrollContainer as ScrollContainer
|
||||||
@onready var content_label = %ContentLabel as Label
|
@onready var content_label = %ContentLabel as Label
|
||||||
@onready var tip_label = %TipLabel as Label
|
@onready var tip_label = %TipLabel as Label
|
||||||
|
|
||||||
var tip_cover_hide_notes = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_阅读")
|
|
||||||
var tip_cover_without_notes = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_检阅")
|
func tip_cover_hide_notes() -> String:
|
||||||
var tip_notes = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_收起")
|
return "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_阅读")
|
||||||
|
|
||||||
|
|
||||||
|
func tip_cover_without_notes() -> String:
|
||||||
|
return "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_检阅")
|
||||||
|
|
||||||
|
|
||||||
|
func tip_notes() -> String:
|
||||||
|
return "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_收起")
|
||||||
|
|
||||||
|
|
||||||
static var content_dialogue = (
|
static var content_dialogue = (
|
||||||
preload("res://asset/dialogue/inspect_content.dialogue") as DialogueResource
|
preload("res://asset/dialogue/inspect_content.dialogue") as DialogueResource
|
||||||
)
|
)
|
||||||
|
|
||||||
var status := STATUS_NORAML
|
var status := STATUS_HIDDEN
|
||||||
var blinking_tween: Tween
|
var blinking_tween: Tween
|
||||||
|
|
||||||
var ground_archive: GroundArchive
|
var ground_archive: GroundArchive
|
||||||
@ -81,15 +97,15 @@ func _ready() -> void:
|
|||||||
shape.size.x = collision_width_and_x.x
|
shape.size.x = collision_width_and_x.x
|
||||||
area2d.position.x = collision_width_and_x.y
|
area2d.position.x = collision_width_and_x.y
|
||||||
container.modulate.a = 0.0
|
container.modulate.a = 0.0
|
||||||
content_label.modulate.a = 0.0
|
content_area.modulate.a = 0.0
|
||||||
content_label.text = _get_tr_content()
|
tip_label.text = tip_cover_hide_notes()
|
||||||
tip_label.text = tip_cover_hide_notes
|
|
||||||
cover_rect.texture = texture_cover
|
cover_rect.texture = texture_cover
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
# setup default value
|
# setup default value
|
||||||
ground_archive = ArchiveManager.archive.ground_archive()
|
ground_archive = ArchiveManager.archive.ground_archive()
|
||||||
icount = ground_archive.get_value(name, "icount", 0)
|
icount = ground_archive.get_value(name, "icount", 0)
|
||||||
|
content_label.custom_minimum_size.x = content_width
|
||||||
if content_centered:
|
if content_centered:
|
||||||
content_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
content_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||||
# sign_mark.interacted.connect(_on_interacted)
|
# sign_mark.interacted.connect(_on_interacted)
|
||||||
@ -113,7 +129,7 @@ func _get_tr_content():
|
|||||||
while line_id and line_id != "end":
|
while line_id and line_id != "end":
|
||||||
var line = content_dialogue.lines[line_id]
|
var line = content_dialogue.lines[line_id]
|
||||||
if line.has("text"):
|
if line.has("text"):
|
||||||
inspection_note += tr(line.get("text")) + "\n"
|
inspection_note += tr(line.get("translation_key")) + "\n"
|
||||||
line_id = line.get("next_id")
|
line_id = line.get("next_id")
|
||||||
return inspection_note
|
return inspection_note
|
||||||
|
|
||||||
@ -134,19 +150,25 @@ func _on_interacted() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _do_action() -> void:
|
func _do_action() -> void:
|
||||||
if status == STATUS_NORAML:
|
scroll_container.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
if status == STATUS_HIDDEN:
|
||||||
|
# if TranslationServer.get_locale().begins_with("zh_"):
|
||||||
|
# content_label.add_theme_font_size_override("font_size", 0)
|
||||||
|
# else:
|
||||||
|
# content_label.add_theme_font_size_override("font_size", 7)
|
||||||
|
|
||||||
|
# 刷新文本 translation
|
||||||
|
content_label.text = _get_tr_content()
|
||||||
# 不使用 lock player, 因为需要用 sign 进行继续交互
|
# 不使用 lock player, 因为需要用 sign 进行继续交互
|
||||||
if GlobalConfig.DEBUG:
|
|
||||||
print("[" + name + "] call lock")
|
|
||||||
SceneManager.freeze_player(0, action_key)
|
SceneManager.freeze_player(0, action_key)
|
||||||
status = STATUS_TRANSITIONING
|
status = STATUS_TRANSITIONING
|
||||||
icount += 1
|
icount += 1
|
||||||
sfx.play()
|
sfx.play()
|
||||||
SceneManager.focus_node(self)
|
SceneManager.focus_node(self, 0.5)
|
||||||
SceneManager.get_camera_marker().tween_zoom(2.0)
|
SceneManager.get_camera_marker().tween_zoom(1.5, 1.2)
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
tween.tween_interval(0.8)
|
tween.tween_interval(0.5)
|
||||||
tween.tween_property(container, "modulate:a", 1.0, 0.7)
|
tween.tween_property(container, "modulate:a", 1.0, 0.8)
|
||||||
tween.tween_callback(func(): status = STATUS_INSPECTING_COVER)
|
tween.tween_callback(func(): status = STATUS_INSPECTING_COVER)
|
||||||
# 改变信号源
|
# 改变信号源
|
||||||
sign_mark.interacted.connect(_on_interacted)
|
sign_mark.interacted.connect(_on_interacted)
|
||||||
@ -154,28 +176,29 @@ func _do_action() -> void:
|
|||||||
sign_mark.display_sign = false
|
sign_mark.display_sign = false
|
||||||
cover_rect.texture = texture_cover
|
cover_rect.texture = texture_cover
|
||||||
if content_key == "":
|
if content_key == "":
|
||||||
tip_label.text = tip_cover_without_notes
|
tip_label.text = tip_cover_without_notes()
|
||||||
else:
|
else:
|
||||||
tip_label.text = tip_cover_hide_notes
|
tip_label.text = tip_cover_hide_notes()
|
||||||
_blink_label(true)
|
_blink_label(true)
|
||||||
start_inspecting.emit()
|
start_inspecting.emit()
|
||||||
elif status == STATUS_INSPECTING_COVER:
|
elif status == STATUS_INSPECTING_COVER:
|
||||||
sfx.play()
|
sfx.play()
|
||||||
status = STATUS_INSPECTING_NOTES
|
status = STATUS_INSPECTING_NOTES
|
||||||
tip_label.text = tip_notes
|
scroll_container.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||||
create_tween().tween_property(content_label, "modulate:a", 1.0, 0.15)
|
tip_label.text = tip_notes()
|
||||||
|
create_tween().tween_property(content_area, "modulate:a", 1.0, 0.15)
|
||||||
elif status == STATUS_INSPECTING_NOTES:
|
elif status == STATUS_INSPECTING_NOTES:
|
||||||
sfx.play()
|
sfx.play()
|
||||||
status = STATUS_INSPECTING_COVER
|
status = STATUS_INSPECTING_COVER
|
||||||
if content_key == "":
|
if content_key == "":
|
||||||
tip_label.text = tip_cover_without_notes
|
tip_label.text = tip_cover_without_notes()
|
||||||
else:
|
else:
|
||||||
tip_label.text = tip_cover_hide_notes
|
tip_label.text = tip_cover_hide_notes()
|
||||||
create_tween().tween_property(content_label, "modulate:a", 0.0, 0.15)
|
create_tween().tween_property(content_area, "modulate:a", 0.0, 0.15)
|
||||||
|
|
||||||
|
|
||||||
func _blink_label(init := true):
|
func _blink_label(init := true):
|
||||||
if status == STATUS_NORAML:
|
if status == STATUS_HIDDEN:
|
||||||
return
|
return
|
||||||
blinking_tween = create_tween()
|
blinking_tween = create_tween()
|
||||||
if init:
|
if init:
|
||||||
@ -187,7 +210,8 @@ func _blink_label(init := true):
|
|||||||
|
|
||||||
|
|
||||||
func _on_cancel(_body = null):
|
func _on_cancel(_body = null):
|
||||||
if STATUS_TRANSITIONING == status or status == STATUS_NORAML:
|
scroll_container.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
if STATUS_TRANSITIONING == status or status == STATUS_HIDDEN:
|
||||||
return
|
return
|
||||||
quit_inspecting.emit()
|
quit_inspecting.emit()
|
||||||
status = STATUS_TRANSITIONING
|
status = STATUS_TRANSITIONING
|
||||||
@ -197,11 +221,9 @@ func _on_cancel(_body = null):
|
|||||||
blinking_tween.kill()
|
blinking_tween.kill()
|
||||||
tween.parallel().tween_property(tip_label, "modulate:a", 0.0, 0.15)
|
tween.parallel().tween_property(tip_label, "modulate:a", 0.0, 0.15)
|
||||||
tween.tween_interval(1.0)
|
tween.tween_interval(1.0)
|
||||||
tween.tween_callback(func(): status = STATUS_NORAML)
|
tween.tween_callback(func(): status = STATUS_HIDDEN)
|
||||||
tween.tween_callback(func(): content_label.modulate.a = 0.0)
|
tween.tween_callback(func(): content_area.modulate.a = 0.0)
|
||||||
SceneManager.focus_player_and_reset_zoom()
|
SceneManager.focus_player_and_reset_zoom()
|
||||||
if GlobalConfig.DEBUG:
|
|
||||||
print("[" + name + "] call lock")
|
|
||||||
SceneManager.release_player()
|
SceneManager.release_player()
|
||||||
sign_mark.display_sign = true
|
sign_mark.display_sign = true
|
||||||
# 改变信号源
|
# 改变信号源
|
||||||
@ -212,7 +234,6 @@ func _on_cancel(_body = null):
|
|||||||
func _set(property: StringName, value: Variant) -> bool:
|
func _set(property: StringName, value: Variant) -> bool:
|
||||||
if property == "content_key":
|
if property == "content_key":
|
||||||
content_key = value
|
content_key = value
|
||||||
content_label.text = _get_tr_content()
|
|
||||||
return true
|
return true
|
||||||
return false
|
return false
|
||||||
|
|
||||||
@ -246,3 +267,17 @@ func _get_property_list() -> Array[Dictionary]:
|
|||||||
|
|
||||||
func _filter_property(property: StringName) -> bool:
|
func _filter_property(property: StringName) -> bool:
|
||||||
return property.find(editor_filter) >= 0
|
return property.find(editor_filter) >= 0
|
||||||
|
|
||||||
|
|
||||||
|
func _unhandled_input(event: InputEvent) -> void:
|
||||||
|
if status == STATUS_INSPECTING_NOTES:
|
||||||
|
# 阅读状态下,消费鼠标滚轮事件
|
||||||
|
if (
|
||||||
|
event is InputEventMouseButton
|
||||||
|
and (
|
||||||
|
event.button_index == MOUSE_BUTTON_WHEEL_DOWN
|
||||||
|
or event.button_index == MOUSE_BUTTON_WHEEL_UP
|
||||||
|
)
|
||||||
|
):
|
||||||
|
get_viewport().set_input_as_handled()
|
||||||
|
# print("[inspectable] mouse wheel handled")
|
||||||
|
@ -45,6 +45,13 @@ collision_layer = 0
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
shape = SubResource("RectangleShape2D_4fuic")
|
shape = SubResource("RectangleShape2D_4fuic")
|
||||||
|
|
||||||
|
[node name="SignSnapper" type="Marker2D" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
script = ExtResource("10_mtbvd")
|
||||||
|
radius = 3.0
|
||||||
|
action_on_arrived = 4
|
||||||
|
metadata/_custom_type_script = "uid://cnt01hiw52bmn"
|
||||||
|
|
||||||
[node name="InspectLayer" type="CanvasLayer" parent="."]
|
[node name="InspectLayer" type="CanvasLayer" parent="."]
|
||||||
layer = 20
|
layer = 20
|
||||||
|
|
||||||
@ -82,19 +89,14 @@ size_flags_horizontal = 4
|
|||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="ContentLabel" type="Label" parent="InspectLayer/Root/Container"]
|
[node name="ContentArea" type="Control" parent="InspectLayer/Root/Container"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
modulate = Color(1, 1, 1, 0)
|
modulate = Color(1, 1, 1, 0)
|
||||||
z_index = 100
|
|
||||||
custom_minimum_size = Vector2(130, 0)
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
mouse_filter = 2
|
||||||
vertical_alignment = 1
|
|
||||||
autowrap_mode = 3
|
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="InspectLayer/Root/Container/ContentLabel"]
|
[node name="TextureRect" type="TextureRect" parent="InspectLayer/Root/Container/ContentArea"]
|
||||||
self_modulate = Color(1, 1, 1, 0.733333)
|
self_modulate = Color(1, 1, 1, 0.733333)
|
||||||
show_behind_parent = true
|
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -104,6 +106,38 @@ grow_vertical = 2
|
|||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
texture = ExtResource("7_xawjo")
|
texture = ExtResource("7_xawjo")
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer" parent="InspectLayer/Root/Container/ContentArea"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(0, 200)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -65.0
|
||||||
|
offset_top = -75.0
|
||||||
|
offset_right = 65.0
|
||||||
|
offset_bottom = 75.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
focus_mode = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
horizontal_scroll_mode = 0
|
||||||
|
vertical_scroll_mode = 3
|
||||||
|
|
||||||
|
[node name="ContentLabel" type="Label" parent="InspectLayer/Root/Container/ContentArea/ScrollContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
z_index = 100
|
||||||
|
custom_minimum_size = Vector2(150, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 6
|
||||||
|
text = "tdb119a3714,据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。,,,,\"It is reported that two people in Fenshuidun, Fengxian County have died from plague. Medical officials proposed to autopsy the bodies to examine the cause and nature of the disease, but failed to obtain consent from the families of the deceased. Due to the conservative local customs, the mention of autopsy has greatly alarmed the local people. There are reports of crowds gathering to cause trouble, and medical officials have been assaulted. Given the critical importance of epidemic prevention, the government plans to redirect orders to investigate epidemic prevention matters in the southern Shanghai area.\"
|
||||||
|
"
|
||||||
|
vertical_alignment = 1
|
||||||
|
autowrap_mode = 3
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="InspectLayer/Root"]
|
[node name="MarginContainer" type="MarginContainer" parent="InspectLayer/Root"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
offset_top = 263.0
|
offset_top = 263.0
|
||||||
@ -121,13 +155,6 @@ layout_mode = 2
|
|||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 8
|
size_flags_vertical = 8
|
||||||
theme_override_fonts/font = ExtResource("7_ianbs")
|
theme_override_fonts/font = ExtResource("7_ianbs")
|
||||||
text = "Q: 退出 E: 阅读"
|
text = "Q: ui_退出 E: ui_阅读"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="SignSnapper" type="Marker2D" parent="."]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
script = ExtResource("10_mtbvd")
|
|
||||||
radius = 3.0
|
|
||||||
action_on_arrived = 4
|
|
||||||
metadata/_custom_type_script = "uid://cnt01hiw52bmn"
|
|
||||||
|
@ -122,15 +122,10 @@ func _show_os():
|
|||||||
|
|
||||||
|
|
||||||
func _show_balloon(res, title):
|
func _show_balloon(res, title):
|
||||||
# SceneManager.focus_node(self)
|
|
||||||
DialogueManager.show_dialogue_balloon(res, title)
|
DialogueManager.show_dialogue_balloon(res, title)
|
||||||
# note viewing animation
|
# note viewing animation
|
||||||
if GlobalConfig.DEBUG:
|
|
||||||
print("[" + name + "] call lock")
|
|
||||||
SceneManager.lock_player(0, action)
|
SceneManager.lock_player(0, action)
|
||||||
await DialogueManager.dialogue_ended
|
await DialogueManager.dialogue_ended
|
||||||
if GlobalConfig.DEBUG:
|
|
||||||
print("[" + name + "] call lock")
|
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
class_name Npc2D extends AnimatedSprite2D
|
class_name Npc2D extends AnimatedSprite2D
|
||||||
|
|
||||||
signal interacted
|
signal interacted
|
||||||
|
# 在 unlock player 之前发射
|
||||||
|
signal talk_finished
|
||||||
|
|
||||||
# <0 means no walk to edge
|
# <0 means no walk to edge
|
||||||
@export var snap_to_edge := true
|
@export var snap_to_edge := true
|
||||||
@ -140,8 +142,6 @@ func _on_toggle_active(activated: bool) -> void:
|
|||||||
func _on_interacted() -> void:
|
func _on_interacted() -> void:
|
||||||
# play dialogue
|
# play dialogue
|
||||||
if dialogue_title:
|
if dialogue_title:
|
||||||
if GlobalConfig.DEBUG:
|
|
||||||
print("[" + name + "] call lock")
|
|
||||||
SceneManager.lock_player(0, action_key)
|
SceneManager.lock_player(0, action_key)
|
||||||
icount += 1
|
icount += 1
|
||||||
ground_archive.set_pair(name, "icount", icount)
|
ground_archive.set_pair(name, "icount", icount)
|
||||||
@ -150,8 +150,8 @@ func _on_interacted() -> void:
|
|||||||
speaking_sign_mode = 2
|
speaking_sign_mode = 2
|
||||||
await DialogueManager.dialogue_ended
|
await DialogueManager.dialogue_ended
|
||||||
speaking_sign_mode = 1
|
speaking_sign_mode = 1
|
||||||
if GlobalConfig.DEBUG:
|
# 在 unlock 之前发射
|
||||||
print("[" + name + "] call lock")
|
talk_finished.emit()
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ func _setup_content():
|
|||||||
for c in get_children():
|
for c in get_children():
|
||||||
if c.name == "TipContainer":
|
if c.name == "TipContainer":
|
||||||
continue
|
continue
|
||||||
c.visible = displaying
|
c.set("visible", displaying)
|
||||||
# reset_tips
|
# reset_tips
|
||||||
if displaying:
|
if displaying:
|
||||||
label.text = tip_can_hide
|
label.text = tip_can_hide
|
||||||
@ -41,10 +41,12 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
return
|
return
|
||||||
if event.is_action_pressed("interact"):
|
if event.is_action_pressed("interact"):
|
||||||
if not visible:
|
if not visible:
|
||||||
|
$"Sfx显示".play()
|
||||||
visible = true
|
visible = true
|
||||||
displaying = false
|
displaying = false
|
||||||
_setup_content()
|
_setup_content()
|
||||||
else:
|
else:
|
||||||
|
$"Sfx收起".play()
|
||||||
displaying = not displaying
|
displaying = not displaying
|
||||||
_setup_content()
|
_setup_content()
|
||||||
get_viewport().set_input_as_handled()
|
get_viewport().set_input_as_handled()
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://dmysq4sxx8iqh"]
|
[gd_scene load_steps=6 format=3 uid="uid://dmysq4sxx8iqh"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://0dcbk75cd5pl" path="res://scene/entity/ux/content_inspector.gd" id="1_4n727"]
|
[ext_resource type="Script" uid="uid://0dcbk75cd5pl" path="res://scene/entity/ux/content_inspector.gd" id="1_4n727"]
|
||||||
[ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="2_mtwgq"]
|
[ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="2_mtwgq"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dky3j8lwcy5sk" path="res://asset/audio/sfx/UI/物品查看.mp3" id="2_x36rf"]
|
||||||
|
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_ksykb"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://3nfd1t2lllmh" path="res://asset/audio/sfx/UI/花名册.mp3" id="4_ndmve"]
|
||||||
|
|
||||||
[node name="ContentInspector" type="Control"]
|
[node name="ContentInspector" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
@ -12,6 +15,20 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("1_4n727")
|
script = ExtResource("1_4n727")
|
||||||
|
|
||||||
|
[node name="Sfx显示" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("2_x36rf")
|
||||||
|
volume_db = 5.0
|
||||||
|
bus = &"game_sfx"
|
||||||
|
script = ExtResource("3_ksykb")
|
||||||
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
|
[node name="Sfx收起" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("4_ndmve")
|
||||||
|
volume_db = 5.0
|
||||||
|
bus = &"game_sfx"
|
||||||
|
script = ExtResource("3_ksykb")
|
||||||
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
[node name="TipContainer" type="MarginContainer" parent="."]
|
[node name="TipContainer" type="MarginContainer" parent="."]
|
||||||
z_index = 100
|
z_index = 100
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
19
scene/entity/ux/scrollable_words.gd
Normal file
19
scene/entity/ux/scrollable_words.gd
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
extends Control
|
||||||
|
|
||||||
|
@export var width := 200:
|
||||||
|
set(val):
|
||||||
|
width = val
|
||||||
|
if is_node_ready():
|
||||||
|
label.custom_minimum_size.x = width
|
||||||
|
@export var translation_key := "":
|
||||||
|
set(val):
|
||||||
|
translation_key = val
|
||||||
|
if is_node_ready():
|
||||||
|
label.translation_key = translation_key
|
||||||
|
|
||||||
|
@onready var label = $ScrollContainer/WordsLabel as Label
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
label.custom_minimum_size.x = width
|
||||||
|
label.translation_key = translation_key
|
1
scene/entity/ux/scrollable_words.gd.uid
Normal file
1
scene/entity/ux/scrollable_words.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://pkdpas41oa2d
|
51
scene/entity/ux/scrollable_words.tscn
Normal file
51
scene/entity/ux/scrollable_words.tscn
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://cp8aee5onwjuc"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://pkdpas41oa2d" path="res://scene/entity/ux/scrollable_words.gd" id="1_86u3k"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="2_gmjbs"]
|
||||||
|
[ext_resource type="Script" uid="uid://dpocj5al0rvai" path="res://ui/text_helper.gd" id="3_6l2e8"]
|
||||||
|
|
||||||
|
[node name="ScrollableWords" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_86u3k")
|
||||||
|
|
||||||
|
[node name="遮罩" type="TextureRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
texture = ExtResource("2_gmjbs")
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||||
|
custom_minimum_size = Vector2(0, 200)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -20.0
|
||||||
|
offset_top = -20.0
|
||||||
|
offset_right = 20.0
|
||||||
|
offset_bottom = 20.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
horizontal_scroll_mode = 0
|
||||||
|
vertical_scroll_mode = 3
|
||||||
|
|
||||||
|
[node name="WordsLabel" type="Label" parent="ScrollContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(200, 10)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 1
|
||||||
|
text = "tdb119a3714,据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。,,,,\"It is reported that two people in Fenshuidun, Fengxian County have died from plague. Medical officials proposed to autopsy the bodies to examine the cause and nature of the disease, but failed to obtain consent from the families of the deceased. Due to the conservative local customs, the mention of autopsy has greatly alarmed the local people. There are reports of crowds gathering to cause trouble, and medical officials have been assaulted. Given the critical importance of epidemic prevention, the government plans to redirect orders to investigate epidemic prevention matters in the southern Shanghai area.\"
|
||||||
|
"
|
||||||
|
autowrap_mode = 3
|
||||||
|
script = ExtResource("3_6l2e8")
|
@ -4,9 +4,6 @@ class_name CameraFocusMarker extends Camera2D
|
|||||||
@export var force_offset := Vector2.ZERO
|
@export var force_offset := Vector2.ZERO
|
||||||
# @export_group("Status")
|
# @export_group("Status")
|
||||||
# @export var lock_horizontal = true
|
# @export var lock_horizontal = true
|
||||||
@export_group("Config")
|
|
||||||
@export var half_screen_size := Vector2(564, 240) / 2.0
|
|
||||||
@export var shaded_height := 38
|
|
||||||
@export_group("Shake", "shake_")
|
@export_group("Shake", "shake_")
|
||||||
@export var shake_strength := 0.0
|
@export var shake_strength := 0.0
|
||||||
@export var shake_recovery_speed := 4.0
|
@export var shake_recovery_speed := 4.0
|
||||||
@ -16,7 +13,6 @@ var speed := 2.0
|
|||||||
var _tweeked_position := Vector2.ZERO
|
var _tweeked_position := Vector2.ZERO
|
||||||
|
|
||||||
var zoom_tween: Tween
|
var zoom_tween: Tween
|
||||||
var _focus_offset := Vector2.ZERO
|
|
||||||
var shake_ignore_boundary := false
|
var shake_ignore_boundary := false
|
||||||
|
|
||||||
|
|
||||||
@ -33,7 +29,7 @@ func shake_camera(strength := 6.0, recovery_speed := 2.0, ignore_boundary := tru
|
|||||||
|
|
||||||
func reset_position_immediately():
|
func reset_position_immediately():
|
||||||
if focusing_node:
|
if focusing_node:
|
||||||
progressing_position = focusing_node.global_position + _tweeked_position + force_offset
|
progressing_position = (focusing_node.global_position + _tweeked_position + force_offset)
|
||||||
global_position = progressing_position
|
global_position = progressing_position
|
||||||
print("CameraFocusMarker reset_position_immediately to:", global_position)
|
print("CameraFocusMarker reset_position_immediately to:", global_position)
|
||||||
|
|
||||||
@ -45,10 +41,10 @@ func tweak_position(velocity, facing_direction):
|
|||||||
if abs(delta) > 10.0:
|
if abs(delta) > 10.0:
|
||||||
_tweeked_position.x = move_toward(current_x, ideal_x, speed * 2.0)
|
_tweeked_position.x = move_toward(current_x, ideal_x, speed * 2.0)
|
||||||
# if lock_horizontal:
|
# if lock_horizontal:
|
||||||
# global_position.y = 0
|
# global_position.y = 0
|
||||||
# _tweeked_position.y = 0
|
# _tweeked_position.y = 0
|
||||||
# else:
|
# else:
|
||||||
# _tweeked_position.y = facing_direction.y * abs(velocity.y) * 0.2
|
# _tweeked_position.y = facing_direction.y * abs(velocity.y) * 0.2
|
||||||
|
|
||||||
|
|
||||||
# 处理过程的当下理想位置
|
# 处理过程的当下理想位置
|
||||||
@ -72,6 +68,7 @@ func _physics_process(delta: float) -> void:
|
|||||||
# handle shake
|
# handle shake
|
||||||
if shake_strength > 0.0:
|
if shake_strength > 0.0:
|
||||||
# 让 shake_strength 逐帧衰减
|
# 让 shake_strength 逐帧衰减
|
||||||
|
shake_recovery_speed = min(0.1, shake_recovery_speed)
|
||||||
shake_strength = lerpf(shake_strength, 0.0, shake_recovery_speed * delta)
|
shake_strength = lerpf(shake_strength, 0.0, shake_recovery_speed * delta)
|
||||||
# [-shake_strength, +shake_strength] 范围内的同时,尽可能偏离中心
|
# [-shake_strength, +shake_strength] 范围内的同时,尽可能偏离中心
|
||||||
# 在 0 – 2π 之间随机一个方向,在 _last_shake_angle 的对角范围
|
# 在 0 – 2π 之间随机一个方向,在 _last_shake_angle 的对角范围
|
||||||
@ -93,9 +90,13 @@ func _physics_process(delta: float) -> void:
|
|||||||
zoom = Vector2(zoom_ratio, zoom_ratio)
|
zoom = Vector2(zoom_ratio, zoom_ratio)
|
||||||
|
|
||||||
|
|
||||||
|
var half_screen_size := Vector2(564, 240) / 2.0
|
||||||
|
var shading_y := 38.0
|
||||||
|
|
||||||
|
|
||||||
func _clamp_boundary(target: Vector2) -> Vector2:
|
func _clamp_boundary(target: Vector2) -> Vector2:
|
||||||
var margin = half_screen_size / zoom_ratio
|
var margin = half_screen_size / zoom_ratio
|
||||||
margin.y += shaded_height
|
margin.y += shading_y
|
||||||
target.x = clamp(target.x, limit_left + margin.x, limit_right - margin.x)
|
target.x = clamp(target.x, limit_left + margin.x, limit_right - margin.x)
|
||||||
target.y = clamp(target.y, limit_top + margin.y, limit_bottom - margin.y)
|
target.y = clamp(target.y, limit_top + margin.y, limit_bottom - margin.y)
|
||||||
return target
|
return target
|
||||||
@ -134,33 +135,13 @@ func focus_node(node: Node2D, duration := 0.0) -> void:
|
|||||||
focusing_node = null
|
focusing_node = null
|
||||||
return
|
return
|
||||||
if duration > 0.0:
|
if duration > 0.0:
|
||||||
_focus_offset = global_position - node.global_position
|
|
||||||
if tween_focus and tween_focus.is_running():
|
if tween_focus and tween_focus.is_running():
|
||||||
tween_focus.kill()
|
tween_focus.kill()
|
||||||
tween_focus = create_tween()
|
tween_focus = create_tween()
|
||||||
(
|
tween_focus.tween_method(_update_focus_progress, 0.0, 1.0, duration)
|
||||||
tween_focus
|
_update_focus_progress(0.0)
|
||||||
. tween_property(self, "_focus_offset", Vector2.ZERO, duration)
|
|
||||||
. set_trans(Tween.TRANS_SINE)
|
|
||||||
. set_ease(Tween.EASE_IN_OUT)
|
|
||||||
)
|
|
||||||
focusing_node = node
|
focusing_node = node
|
||||||
|
|
||||||
# var exited := false
|
|
||||||
# var exit_position: Vector2
|
|
||||||
# var enter_tree_tween: Tween
|
|
||||||
|
|
||||||
# func _exit_tree() -> void:
|
func _update_focus_progress(progress: float):
|
||||||
# exit_position = global_position
|
speed = 0.2 + 1.8 * smoothstep(0.0, 1.0, progress)
|
||||||
# exited = true
|
|
||||||
|
|
||||||
# func _enter_tree() -> void:
|
|
||||||
# if exited and is_node_ready():
|
|
||||||
# exited = false
|
|
||||||
# if enter_tree_tween and enter_tree_tween.is_running():
|
|
||||||
# enter_tree_tween.kill()
|
|
||||||
# enter_tree_tween = create_tween()
|
|
||||||
# global_position = exit_position
|
|
||||||
# enter_tree_tween.tween_property(self, "position", Vector2.ZERO, 0.2).set_trans(
|
|
||||||
# Tween.TRANS_CUBIC
|
|
||||||
# )
|
|
||||||
|
@ -326,10 +326,10 @@ func _find_props(props: Dictionary, node: Node) -> void:
|
|||||||
if child.prop_key != &"":
|
if child.prop_key != &"":
|
||||||
props[child.prop_key] = true
|
props[child.prop_key] = true
|
||||||
print("Find Interactable2D prop1: " + child.prop_key)
|
print("Find Interactable2D prop1: " + child.prop_key)
|
||||||
elif child.prop_key2 != &"":
|
if child.prop_key2 != &"":
|
||||||
props[child.prop_key2] = true
|
props[child.prop_key2] = true
|
||||||
print("Find Interactable2D prop2: " + child.prop_key2)
|
print("Find Interactable2D prop2: " + child.prop_key2)
|
||||||
elif child.prop_key3 != &"":
|
if child.prop_key3 != &"":
|
||||||
props[child.prop_key3] = true
|
props[child.prop_key3] = true
|
||||||
print("Find Interactable2D prop3: " + child.prop_key3)
|
print("Find Interactable2D prop3: " + child.prop_key3)
|
||||||
elif child is Pickable2D:
|
elif child is Pickable2D:
|
||||||
|
@ -10,16 +10,27 @@ var piano: Interactable2D
|
|||||||
|
|
||||||
# 覆盖该方法
|
# 覆盖该方法
|
||||||
func _default_data() -> Dictionary:
|
func _default_data() -> Dictionary:
|
||||||
return {"frame_relocated": false,
|
return {"frame_relocated": false, "intro_played": false}
|
||||||
"intro_played": false
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
super._ready()
|
super._ready()
|
||||||
|
|
||||||
|
|
||||||
|
func _setup_display_on_locale():
|
||||||
|
var is_zh = TranslationServer.get_locale().begins_with("zh_")
|
||||||
|
# 其他语言
|
||||||
|
$"Intro/Content/水平排版".visible = not is_zh
|
||||||
|
$"Intro/Content/竖直排版".visible = is_zh
|
||||||
|
|
||||||
|
|
||||||
|
func _notification(what: int) -> void:
|
||||||
|
if what == NOTIFICATION_TRANSLATION_CHANGED:
|
||||||
|
_setup_display_on_locale()
|
||||||
|
|
||||||
|
|
||||||
func intro_start():
|
func intro_start():
|
||||||
|
_setup_display_on_locale()
|
||||||
SceneManager.lock_player()
|
SceneManager.lock_player()
|
||||||
await animation_finished
|
await animation_finished
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
@ -28,6 +39,7 @@ func intro_start():
|
|||||||
show_interact_help()
|
show_interact_help()
|
||||||
set_data("intro_played", true)
|
set_data("intro_played", true)
|
||||||
|
|
||||||
|
|
||||||
func play_intro_dialogue():
|
func play_intro_dialogue():
|
||||||
# 直接使用 sfx,防止下方字幕与全屏文字重复
|
# 直接使用 sfx,防止下方字幕与全屏文字重复
|
||||||
$intro_audio_player.play()
|
$intro_audio_player.play()
|
||||||
@ -99,10 +111,12 @@ func _on_ambush_triggered():
|
|||||||
# 鸡毛掸子 4.5s,再等待 3s 后掉落纸片
|
# 鸡毛掸子 4.5s,再等待 3s 后掉落纸片
|
||||||
Util.timer(8, _play_paper_animation)
|
Util.timer(8, _play_paper_animation)
|
||||||
|
|
||||||
|
|
||||||
func lock_on_use_stick():
|
func lock_on_use_stick():
|
||||||
SceneManager.lock_player(4.0)
|
SceneManager.lock_player(4.0)
|
||||||
SceneManager.get_player().walk_to_x(261.0)
|
SceneManager.get_player().walk_to_x(261.0)
|
||||||
|
|
||||||
|
|
||||||
func _play_paper_animation():
|
func _play_paper_animation():
|
||||||
# 播放纸片动画
|
# 播放纸片动画
|
||||||
paper.enabled = true
|
paper.enabled = true
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=37 format=3 uid="uid://dlx5xxbg53rb8"]
|
[gd_scene load_steps=38 format=3 uid="uid://dlx5xxbg53rb8"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ff4yb"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ff4yb"]
|
||||||
[ext_resource type="Script" uid="uid://q2qgg85xa6ie" path="res://scene/ground/scene/c01/s05_院长房间.gd" id="2_j5oim"]
|
[ext_resource type="Script" uid="uid://q2qgg85xa6ie" path="res://scene/ground/scene/c01/s05_院长房间.gd" id="2_j5oim"]
|
||||||
@ -27,8 +27,9 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://bloct6cpdt2qi" path="res://asset/art/scene/c01/s05_院长房间/l_墙.png" id="16_qh7fg"]
|
[ext_resource type="Texture2D" uid="uid://bloct6cpdt2qi" path="res://asset/art/scene/c01/s05_院长房间/l_墙.png" id="16_qh7fg"]
|
||||||
[ext_resource type="Texture2D" uid="uid://df30bmtgdoqc3" path="res://asset/art/scene/c01/s05_院长房间/l_窗户光源.png" id="17_qqw2v"]
|
[ext_resource type="Texture2D" uid="uid://df30bmtgdoqc3" path="res://asset/art/scene/c01/s05_院长房间/l_窗户光源.png" id="17_qqw2v"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dky3j8lwcy5sk" path="res://asset/audio/sfx/UI/物品查看.mp3" id="17_yfgov"]
|
[ext_resource type="AudioStream" uid="uid://dky3j8lwcy5sk" path="res://asset/audio/sfx/UI/物品查看.mp3" id="17_yfgov"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dw0s23v7qmj28" path="res://ui/vertical_label.tscn" id="20_t1dxj"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="22_00ufd"]
|
[ext_resource type="Texture2D" uid="uid://gui0ubwlwoi0" path="res://asset/art/ui/action_mark/UI手.png" id="22_00ufd"]
|
||||||
|
[ext_resource type="LabelSettings" uid="uid://dd6jhbqr6uh3x" path="res://config/序章夜行船_label_settings.tres" id="28_8gx6s"]
|
||||||
|
[ext_resource type="Script" uid="uid://dpocj5al0rvai" path="res://ui/text_helper.gd" id="29_247wt"]
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_c6mhi"]
|
[sub_resource type="Animation" id="Animation_c6mhi"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
@ -95,7 +96,7 @@ tracks/4/keys = {
|
|||||||
tracks/5/type = "value"
|
tracks/5/type = "value"
|
||||||
tracks/5/imported = false
|
tracks/5/imported = false
|
||||||
tracks/5/enabled = true
|
tracks/5/enabled = true
|
||||||
tracks/5/path = NodePath("Intro:visible")
|
tracks/5/path = NodePath("AnimationPlayer/Intro:visible")
|
||||||
tracks/5/interp = 1
|
tracks/5/interp = 1
|
||||||
tracks/5/loop_wrap = true
|
tracks/5/loop_wrap = true
|
||||||
tracks/5/keys = {
|
tracks/5/keys = {
|
||||||
@ -107,7 +108,7 @@ tracks/5/keys = {
|
|||||||
tracks/6/type = "value"
|
tracks/6/type = "value"
|
||||||
tracks/6/imported = false
|
tracks/6/imported = false
|
||||||
tracks/6/enabled = true
|
tracks/6/enabled = true
|
||||||
tracks/6/path = NodePath("Intro:modulate")
|
tracks/6/path = NodePath("AnimationPlayer/Intro:modulate")
|
||||||
tracks/6/interp = 1
|
tracks/6/interp = 1
|
||||||
tracks/6/loop_wrap = true
|
tracks/6/loop_wrap = true
|
||||||
tracks/6/keys = {
|
tracks/6/keys = {
|
||||||
@ -263,7 +264,7 @@ tracks/18/keys = {
|
|||||||
tracks/19/type = "value"
|
tracks/19/type = "value"
|
||||||
tracks/19/imported = false
|
tracks/19/imported = false
|
||||||
tracks/19/enabled = true
|
tracks/19/enabled = true
|
||||||
tracks/19/path = NodePath("Intro/HBoxContainer:modulate")
|
tracks/19/path = NodePath("AnimationPlayer/Intro/Content:modulate")
|
||||||
tracks/19/interp = 1
|
tracks/19/interp = 1
|
||||||
tracks/19/loop_wrap = true
|
tracks/19/loop_wrap = true
|
||||||
tracks/19/keys = {
|
tracks/19/keys = {
|
||||||
@ -292,7 +293,7 @@ capture_included = true
|
|||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/path = NodePath("Intro:visible")
|
tracks/0/path = NodePath("AnimationPlayer/Intro:visible")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
@ -304,7 +305,7 @@ tracks/0/keys = {
|
|||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/path = NodePath("Intro:modulate")
|
tracks/1/path = NodePath("AnimationPlayer/Intro:modulate")
|
||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
@ -372,7 +373,7 @@ tracks/5/keys = {
|
|||||||
tracks/6/type = "method"
|
tracks/6/type = "method"
|
||||||
tracks/6/imported = false
|
tracks/6/imported = false
|
||||||
tracks/6/enabled = true
|
tracks/6/enabled = true
|
||||||
tracks/6/path = NodePath("Intro")
|
tracks/6/path = NodePath("AnimationPlayer/Intro")
|
||||||
tracks/6/interp = 1
|
tracks/6/interp = 1
|
||||||
tracks/6/loop_wrap = true
|
tracks/6/loop_wrap = true
|
||||||
tracks/6/keys = {
|
tracks/6/keys = {
|
||||||
@ -422,7 +423,7 @@ tracks/9/keys = {
|
|||||||
tracks/10/type = "value"
|
tracks/10/type = "value"
|
||||||
tracks/10/imported = false
|
tracks/10/imported = false
|
||||||
tracks/10/enabled = true
|
tracks/10/enabled = true
|
||||||
tracks/10/path = NodePath("Intro/HBoxContainer:modulate")
|
tracks/10/path = NodePath("AnimationPlayer/Intro/Content:modulate")
|
||||||
tracks/10/interp = 1
|
tracks/10/interp = 1
|
||||||
tracks/10/loop_wrap = true
|
tracks/10/loop_wrap = true
|
||||||
tracks/10/keys = {
|
tracks/10/keys = {
|
||||||
@ -643,33 +644,198 @@ libraries = {
|
|||||||
}
|
}
|
||||||
script = ExtResource("2_j5oim")
|
script = ExtResource("2_j5oim")
|
||||||
|
|
||||||
[node name="intro_audio_player" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="0"]
|
[node name="Intro" type="ColorRect" parent="Ground/AnimationPlayer" index="0"]
|
||||||
|
visible = false
|
||||||
|
z_index = 100
|
||||||
|
custom_minimum_size = Vector2(564, 318)
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_top = -158.0
|
||||||
|
offset_bottom = -156.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="Content" type="MarginContainer" parent="Ground/AnimationPlayer/Intro"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -46.0
|
||||||
|
offset_top = -90.5
|
||||||
|
offset_right = 46.0
|
||||||
|
offset_bottom = 90.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
|
[node name="竖直排版" type="HBoxContainer" parent="Ground/AnimationPlayer/Intro/Content"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 4
|
||||||
|
|
||||||
|
[node name="VerticalLabel6" type="Label" parent="Ground/AnimationPlayer/Intro/Content/竖直排版"]
|
||||||
|
auto_translate_mode = 2
|
||||||
|
custom_minimum_size = Vector2(20, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "急
|
||||||
|
罚
|
||||||
|
盏
|
||||||
|
夜
|
||||||
|
阑
|
||||||
|
灯
|
||||||
|
灭
|
||||||
|
。
|
||||||
|
"
|
||||||
|
label_settings = ExtResource("28_8gx6s")
|
||||||
|
text_overrun_behavior = 1
|
||||||
|
script = ExtResource("29_247wt")
|
||||||
|
translation_key = "ui_夜行船5"
|
||||||
|
vertical = true
|
||||||
|
|
||||||
|
[node name="MarginContainer2" type="MarginContainer" parent="Ground/AnimationPlayer/Intro/Content/竖直排版"]
|
||||||
|
layout_mode = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
theme_override_constants/margin_top = 30
|
||||||
|
|
||||||
|
[node name="VerticalLabel2" type="Label" parent="Ground/AnimationPlayer/Intro/Content/竖直排版/MarginContainer2"]
|
||||||
|
auto_translate_mode = 2
|
||||||
|
custom_minimum_size = Vector2(20, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "今
|
||||||
|
日
|
||||||
|
春
|
||||||
|
来
|
||||||
|
,
|
||||||
|
明
|
||||||
|
朝
|
||||||
|
花
|
||||||
|
谢
|
||||||
|
。
|
||||||
|
"
|
||||||
|
label_settings = ExtResource("28_8gx6s")
|
||||||
|
text_overrun_behavior = 1
|
||||||
|
script = ExtResource("29_247wt")
|
||||||
|
translation_key = "ui_夜行船4"
|
||||||
|
vertical = true
|
||||||
|
|
||||||
|
[node name="VerticalLabel4" type="Label" parent="Ground/AnimationPlayer/Intro/Content/竖直排版"]
|
||||||
|
auto_translate_mode = 2
|
||||||
|
custom_minimum_size = Vector2(20, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "重
|
||||||
|
回
|
||||||
|
首
|
||||||
|
往
|
||||||
|
事
|
||||||
|
堪
|
||||||
|
嗟
|
||||||
|
。
|
||||||
|
"
|
||||||
|
label_settings = ExtResource("28_8gx6s")
|
||||||
|
text_overrun_behavior = 1
|
||||||
|
script = ExtResource("29_247wt")
|
||||||
|
translation_key = "ui_夜行船2"
|
||||||
|
vertical = true
|
||||||
|
|
||||||
|
[node name="VerticalLabel3" type="Label" parent="Ground/AnimationPlayer/Intro/Content/竖直排版"]
|
||||||
|
auto_translate_mode = 2
|
||||||
|
custom_minimum_size = Vector2(20, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "百
|
||||||
|
岁
|
||||||
|
光
|
||||||
|
阴
|
||||||
|
一
|
||||||
|
梦
|
||||||
|
蝶
|
||||||
|
。
|
||||||
|
"
|
||||||
|
label_settings = ExtResource("28_8gx6s")
|
||||||
|
text_overrun_behavior = 1
|
||||||
|
script = ExtResource("29_247wt")
|
||||||
|
translation_key = "ui_夜行船1"
|
||||||
|
vertical = true
|
||||||
|
|
||||||
|
[node name="水平排版" type="VBoxContainer" parent="Ground/AnimationPlayer/Intro/Content"]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 4
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
|
[node name="VerticalLabel4" type="Label" parent="Ground/AnimationPlayer/Intro/Content/水平排版"]
|
||||||
|
auto_translate_mode = 2
|
||||||
|
custom_minimum_size = Vector2(20, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "百岁光阴一梦蝶。"
|
||||||
|
label_settings = ExtResource("28_8gx6s")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
script = ExtResource("29_247wt")
|
||||||
|
translation_key = "ui_夜行船1"
|
||||||
|
|
||||||
|
[node name="VerticalLabel5" type="Label" parent="Ground/AnimationPlayer/Intro/Content/水平排版"]
|
||||||
|
auto_translate_mode = 2
|
||||||
|
custom_minimum_size = Vector2(20, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "重回首往事堪嗟。"
|
||||||
|
label_settings = ExtResource("28_8gx6s")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
script = ExtResource("29_247wt")
|
||||||
|
translation_key = "ui_夜行船2"
|
||||||
|
|
||||||
|
[node name="VerticalLabel6" type="Label" parent="Ground/AnimationPlayer/Intro/Content/水平排版"]
|
||||||
|
auto_translate_mode = 2
|
||||||
|
custom_minimum_size = Vector2(20, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "今日春来,明朝花谢。"
|
||||||
|
label_settings = ExtResource("28_8gx6s")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
script = ExtResource("29_247wt")
|
||||||
|
translation_key = "ui_夜行船4"
|
||||||
|
|
||||||
|
[node name="VerticalLabel7" type="Label" parent="Ground/AnimationPlayer/Intro/Content/水平排版"]
|
||||||
|
auto_translate_mode = 2
|
||||||
|
custom_minimum_size = Vector2(20, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "急罚盏夜阑灯灭。"
|
||||||
|
label_settings = ExtResource("28_8gx6s")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
script = ExtResource("29_247wt")
|
||||||
|
translation_key = "ui_夜行船5"
|
||||||
|
|
||||||
|
[node name="intro_audio_player" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
|
||||||
stream = ExtResource("3_sluu3")
|
stream = ExtResource("3_sluu3")
|
||||||
volume_db = -10.0
|
volume_db = -10.0
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
script = ExtResource("4_1jor4")
|
script = ExtResource("4_1jor4")
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
[node name="piano_player" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="1"]
|
[node name="piano_player" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
script = ExtResource("4_1jor4")
|
script = ExtResource("4_1jor4")
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
[node name="扶正相框" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="2"]
|
[node name="扶正相框" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"]
|
||||||
stream = ExtResource("3_jk3np")
|
stream = ExtResource("3_jk3np")
|
||||||
volume_db = -6.933
|
volume_db = -6.933
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
script = ExtResource("4_1jor4")
|
script = ExtResource("4_1jor4")
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
[node name="捡起纸片后开门声" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="3"]
|
[node name="捡起纸片后开门声" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="4"]
|
||||||
stream = ExtResource("5_1jor4")
|
stream = ExtResource("5_1jor4")
|
||||||
volume_db = -2.0
|
volume_db = -2.0
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
script = ExtResource("4_1jor4")
|
script = ExtResource("4_1jor4")
|
||||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
[node name="下床与铃声音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="4"]
|
[node name="下床与铃声音效" type="AudioStreamPlayer" parent="Ground/AnimationPlayer" index="5"]
|
||||||
stream = SubResource("AudioStreamSynchronized_sluu3")
|
stream = SubResource("AudioStreamSynchronized_sluu3")
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
script = ExtResource("4_1jor4")
|
script = ExtResource("4_1jor4")
|
||||||
@ -830,137 +996,6 @@ rotation = -0.000622023
|
|||||||
energy = 0.3
|
energy = 0.3
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
|
|
||||||
[node name="Intro" type="ColorRect" parent="Ground"]
|
|
||||||
visible = false
|
|
||||||
custom_minimum_size = Vector2(564, 318)
|
|
||||||
anchors_preset = 4
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
offset_top = -159.0
|
|
||||||
offset_right = 564.0
|
|
||||||
offset_bottom = 159.0
|
|
||||||
grow_vertical = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
color = Color(0, 0, 0, 1)
|
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="Ground/Intro"]
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 8
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
offset_left = -34.0
|
|
||||||
offset_top = -10.0
|
|
||||||
offset_right = 34.0
|
|
||||||
offset_bottom = 10.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="Ground/Intro/HBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
theme_override_constants/margin_top = 70
|
|
||||||
theme_override_constants/margin_right = 20
|
|
||||||
|
|
||||||
[node name="VerticalLabel" parent="Ground/Intro/HBoxContainer/MarginContainer" instance=ExtResource("20_t1dxj")]
|
|
||||||
visible = false
|
|
||||||
custom_minimum_size = Vector2(20, 0)
|
|
||||||
layout_mode = 2
|
|
||||||
text = "u
|
|
||||||
i
|
|
||||||
_
|
|
||||||
夜
|
|
||||||
行
|
|
||||||
船
|
|
||||||
6
|
|
||||||
"
|
|
||||||
text_overrun_behavior = 1
|
|
||||||
text_key = "ui_夜行船6"
|
|
||||||
|
|
||||||
[node name="VerticalLabel6" parent="Ground/Intro/HBoxContainer" instance=ExtResource("20_t1dxj")]
|
|
||||||
custom_minimum_size = Vector2(20, 0)
|
|
||||||
layout_mode = 2
|
|
||||||
text = "u
|
|
||||||
i
|
|
||||||
_
|
|
||||||
夜
|
|
||||||
行
|
|
||||||
船
|
|
||||||
5
|
|
||||||
"
|
|
||||||
text_overrun_behavior = 1
|
|
||||||
text_key = "ui_夜行船5"
|
|
||||||
|
|
||||||
[node name="MarginContainer2" type="MarginContainer" parent="Ground/Intro/HBoxContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
theme_override_constants/margin_top = 30
|
|
||||||
|
|
||||||
[node name="VerticalLabel2" parent="Ground/Intro/HBoxContainer/MarginContainer2" instance=ExtResource("20_t1dxj")]
|
|
||||||
custom_minimum_size = Vector2(20, 0)
|
|
||||||
layout_mode = 2
|
|
||||||
text = "u
|
|
||||||
i
|
|
||||||
_
|
|
||||||
夜
|
|
||||||
行
|
|
||||||
船
|
|
||||||
4
|
|
||||||
"
|
|
||||||
text_overrun_behavior = 1
|
|
||||||
text_key = "ui_夜行船4"
|
|
||||||
|
|
||||||
[node name="MarginContainer3" type="MarginContainer" parent="Ground/Intro/HBoxContainer"]
|
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
|
||||||
mouse_filter = 2
|
|
||||||
theme_override_constants/margin_top = -30
|
|
||||||
|
|
||||||
[node name="VerticalLabel5" parent="Ground/Intro/HBoxContainer/MarginContainer3" instance=ExtResource("20_t1dxj")]
|
|
||||||
visible = false
|
|
||||||
custom_minimum_size = Vector2(20, 0)
|
|
||||||
layout_mode = 2
|
|
||||||
text = "u
|
|
||||||
i
|
|
||||||
_
|
|
||||||
夜
|
|
||||||
行
|
|
||||||
船
|
|
||||||
3
|
|
||||||
"
|
|
||||||
text_overrun_behavior = 1
|
|
||||||
text_key = "ui_夜行船3"
|
|
||||||
|
|
||||||
[node name="VerticalLabel4" parent="Ground/Intro/HBoxContainer" instance=ExtResource("20_t1dxj")]
|
|
||||||
custom_minimum_size = Vector2(20, 0)
|
|
||||||
layout_mode = 2
|
|
||||||
text = "u
|
|
||||||
i
|
|
||||||
_
|
|
||||||
夜
|
|
||||||
行
|
|
||||||
船
|
|
||||||
2
|
|
||||||
"
|
|
||||||
text_overrun_behavior = 1
|
|
||||||
text_key = "ui_夜行船2"
|
|
||||||
|
|
||||||
[node name="VerticalLabel3" parent="Ground/Intro/HBoxContainer" instance=ExtResource("20_t1dxj")]
|
|
||||||
custom_minimum_size = Vector2(20, 0)
|
|
||||||
layout_mode = 2
|
|
||||||
text = "u
|
|
||||||
i
|
|
||||||
_
|
|
||||||
夜
|
|
||||||
行
|
|
||||||
船
|
|
||||||
1
|
|
||||||
"
|
|
||||||
text_overrun_behavior = 1
|
|
||||||
text_key = "ui_夜行船1"
|
|
||||||
|
|
||||||
[node name="参考" type="Sprite2D" parent="."]
|
[node name="参考" type="Sprite2D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
modulate = Color(1, 1, 1, 0.219608)
|
modulate = Color(1, 1, 1, 0.219608)
|
||||||
|
@ -90,15 +90,15 @@ func _dean_flip_book() -> void:
|
|||||||
func pre_game_intro():
|
func pre_game_intro():
|
||||||
SceneManager.lock_player()
|
SceneManager.lock_player()
|
||||||
var camera = SceneManager.get_camera_marker() as CameraFocusMarker
|
var camera = SceneManager.get_camera_marker() as CameraFocusMarker
|
||||||
camera.tween_zoom(1.5, 3.0)
|
camera.tween_zoom(1.5, 3.5)
|
||||||
var p = $"../DeployLayer/四小孩画鬼差的对话ambush/FocusPoint"
|
var p = $"../DeployLayer/四小孩画鬼差的对话ambush/FocusPoint"
|
||||||
camera.focus_node(p, 3.0)
|
camera.focus_node(p, 3.0)
|
||||||
await Util.wait(1.5)
|
await Util.wait(2.0)
|
||||||
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s06_四个小孩画鬼差的对话")
|
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s06_四个小孩画鬼差的对话")
|
||||||
await DialogueManager.dialogue_ended
|
await DialogueManager.dialogue_ended
|
||||||
# 重置镜头
|
# 重置镜头
|
||||||
SceneManager.focus_player_and_reset_zoom(2.5)
|
SceneManager.focus_player_and_reset_zoom(2.5)
|
||||||
await Util.wait(1.5)
|
await Util.wait(2.5)
|
||||||
await SceneManager.pop_os_with_str("c01_s06_熟悉的墙画")
|
await SceneManager.pop_os_with_str("c01_s06_熟悉的墙画")
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
|
|
||||||
|
@ -139,6 +139,7 @@ animations = [{
|
|||||||
}]
|
}]
|
||||||
|
|
||||||
[node name="S06" type="Node2D"]
|
[node name="S06" type="Node2D"]
|
||||||
|
position = Vector2(-1, 0)
|
||||||
metadata/_edit_horizontal_guides_ = [158.0, 91.0, 81.0]
|
metadata/_edit_horizontal_guides_ = [158.0, 91.0, 81.0]
|
||||||
|
|
||||||
[node name="Ground" parent="." instance=ExtResource("1_bitx7")]
|
[node name="Ground" parent="." instance=ExtResource("1_bitx7")]
|
||||||
|
@ -90,11 +90,11 @@ func _on_envolope_table_interacted() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func first_enter_door() -> void:
|
func first_enter_door() -> void:
|
||||||
SceneManager.freeze_player(0)
|
SceneManager.lock_player()
|
||||||
await Util.wait(1.5)
|
await Util.wait(1.5)
|
||||||
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s08_书店进门老板台词")
|
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s08_书店进门老板台词")
|
||||||
await DialogueManager.dialogue_ended
|
await DialogueManager.dialogue_ended
|
||||||
SceneManager.release_player()
|
SceneManager.unlock_player()
|
||||||
|
|
||||||
|
|
||||||
func assign_tasks() -> void:
|
func assign_tasks() -> void:
|
||||||
|
@ -55,16 +55,12 @@ func _on_ground_ready() -> void:
|
|||||||
func intro() -> void:
|
func intro() -> void:
|
||||||
begger.play("杂戏团夜晚_小孩举碗呼吸")
|
begger.play("杂戏团夜晚_小孩举碗呼吸")
|
||||||
# SceneManager.freeze_player(0)
|
# SceneManager.freeze_player(0)
|
||||||
# SceneManager.focus_node(begger, 5.)
|
# SceneManager.focus_node(begger, 5.0)
|
||||||
Util.timer(1., _intro_dialog)
|
Util.timer(1., _intro_dialog)
|
||||||
|
|
||||||
|
|
||||||
func _intro_dialog() -> void:
|
func _intro_dialog() -> void:
|
||||||
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_诡异的书店外发钱")
|
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_诡异的书店外发钱")
|
||||||
# DialogueManager.dialogue_ended.connect(_on_intro_dialogue_ended, CONNECT_ONE_SHOT)
|
|
||||||
# func _on_intro_dialogue_ended(_res) -> void:
|
|
||||||
# SceneManager.focus_player_and_reset_zoom(5.)
|
|
||||||
# SceneManager.release_player()
|
|
||||||
|
|
||||||
|
|
||||||
func ambush_begger_interacted():
|
func ambush_begger_interacted():
|
||||||
|
@ -17,8 +17,10 @@ func _ready() -> void:
|
|||||||
func _on_ground_ready() -> void:
|
func _on_ground_ready() -> void:
|
||||||
SceneManager.get_player().set_facing_direction(Vector2.RIGHT)
|
SceneManager.get_player().set_facing_direction(Vector2.RIGHT)
|
||||||
SceneManager.get_player().update_x_with_camera_followed(78.0)
|
SceneManager.get_player().update_x_with_camera_followed(78.0)
|
||||||
|
# 先更新地址,提示查看线索笔记
|
||||||
|
EventManager.set_stage_if_greater(&"handnote_c02_road_address", 1)
|
||||||
|
SceneManager.pop_center_notification("ui_center_notify_check_note")
|
||||||
|
ArchiveManager.set_chapter_if_greater(2)
|
||||||
SceneManager.enable_important_item("prop_眼镜盒", false)
|
SceneManager.enable_important_item("prop_眼镜盒", false)
|
||||||
SceneManager.enable_important_item("prop_船票", false)
|
SceneManager.enable_important_item("prop_船票", false)
|
||||||
await SceneManager.pop_os_with_str("c02_s01_下黄包车")
|
SceneManager.pop_os_with_str("c02_s01_下黄包车")
|
||||||
ArchiveManager.set_chapter_if_greater(2)
|
|
||||||
EventManager.set_stage_if_greater(&"handnote_c02_road_address", 1)
|
|
||||||
|
@ -125,6 +125,7 @@ content_key = "c02_青岛啤酒"
|
|||||||
|
|
||||||
[node name="鼠疫海报" parent="Ground/DeployLayer" index="8" instance=ExtResource("12_0fckv")]
|
[node name="鼠疫海报" parent="Ground/DeployLayer" index="8" instance=ExtResource("12_0fckv")]
|
||||||
position = Vector2(442, -30)
|
position = Vector2(442, -30)
|
||||||
|
content_width = 200.0
|
||||||
texture_cover = ExtResource("7_wdwbi")
|
texture_cover = ExtResource("7_wdwbi")
|
||||||
content_key = "c02_鼠疫海报"
|
content_key = "c02_鼠疫海报"
|
||||||
|
|
||||||
|
@ -73,6 +73,10 @@ func _on_ground_ready() -> void:
|
|||||||
$"../DeployLayer/Closeup井".exit.connect(func(_arg): madman_npc.visible = true)
|
$"../DeployLayer/Closeup井".exit.connect(func(_arg): madman_npc.visible = true)
|
||||||
else:
|
else:
|
||||||
madman_npc.visible = true
|
madman_npc.visible = true
|
||||||
|
madman_npc.talk_finished.connect(func():
|
||||||
|
# 2 号为井边记忆
|
||||||
|
ArchiveManager.unlock_memory(2)
|
||||||
|
)
|
||||||
|
|
||||||
if ArchiveManager.get_global_value(&"c02_show_grounded_coins"):
|
if ArchiveManager.get_global_value(&"c02_show_grounded_coins"):
|
||||||
# 奠字 + 纸钱
|
# 奠字 + 纸钱
|
||||||
@ -191,6 +195,8 @@ func eavesdrop() -> void:
|
|||||||
await Util.wait(1.5)
|
await Util.wait(1.5)
|
||||||
await SceneManager.pop_os_with_str("c02_偷听李癞对话后")
|
await SceneManager.pop_os_with_str("c02_偷听李癞对话后")
|
||||||
EventManager.set_stage_if_greater(&"handnote_c02_meat_knockDoor", 1)
|
EventManager.set_stage_if_greater(&"handnote_c02_meat_knockDoor", 1)
|
||||||
|
# 1 号为偷听对话
|
||||||
|
ArchiveManager.unlock_memory(1)
|
||||||
SceneManager.unlock_player()
|
SceneManager.unlock_player()
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,38 +61,44 @@ target_portal = "1"
|
|||||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||||
position = Vector2(551, 22)
|
position = Vector2(551, 22)
|
||||||
|
|
||||||
[node name="Ambush进门看到小蝉" parent="Ground/DeployLayer" index="2" instance=ExtResource("7_ypth3")]
|
[node name="Local寻人启事" parent="Ground/DeployLayer" index="2" instance=ExtResource("19_k74x7")]
|
||||||
|
position = Vector2(116, -1)
|
||||||
|
texture = ExtResource("20_g8amr")
|
||||||
|
texture_cover = ExtResource("21_cq2m4")
|
||||||
|
content_key = "c02_寻人启事_完整"
|
||||||
|
|
||||||
|
[node name="Ambush进门看到小蝉" parent="Ground/DeployLayer" index="3" instance=ExtResource("7_ypth3")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2(72, 51)
|
position = Vector2(72, 51)
|
||||||
hook_method = "xiaochan_disappear"
|
hook_method = "xiaochan_disappear"
|
||||||
|
|
||||||
[node name="涂鸦提示" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
|
[node name="涂鸦提示" type="Sprite2D" parent="Ground/DeployLayer" index="4"]
|
||||||
position = Vector2(275, 13)
|
position = Vector2(275, 13)
|
||||||
texture = ExtResource("6_gk1h4")
|
texture = ExtResource("6_gk1h4")
|
||||||
|
|
||||||
[node name="小钳子提示" type="Sprite2D" parent="Ground/DeployLayer" index="4"]
|
[node name="小钳子提示" type="Sprite2D" parent="Ground/DeployLayer" index="5"]
|
||||||
position = Vector2(270, -3)
|
position = Vector2(270, -3)
|
||||||
texture = ExtResource("9_k74x7")
|
texture = ExtResource("9_k74x7")
|
||||||
|
|
||||||
[node name="Closeup折锡纸" parent="Ground/DeployLayer" index="5" instance=ExtResource("6_66gue")]
|
[node name="Closeup折锡纸" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_66gue")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2(189, 15)
|
position = Vector2(189, 15)
|
||||||
packed_scene = ExtResource("7_fvlg0")
|
packed_scene = ExtResource("7_fvlg0")
|
||||||
first_interact_os_key = "c02_保卫科祭台os"
|
first_interact_os_key = "c02_保卫科祭台os"
|
||||||
|
|
||||||
[node name="Closeup老鼠精" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_66gue")]
|
[node name="Closeup老鼠精" parent="Ground/DeployLayer" index="7" instance=ExtResource("6_66gue")]
|
||||||
light_mask = 5
|
light_mask = 5
|
||||||
position = Vector2(207.5, -40.5)
|
position = Vector2(207.5, -40.5)
|
||||||
texture = ExtResource("11_ffvrp")
|
texture = ExtResource("11_ffvrp")
|
||||||
packed_scene = ExtResource("8_cm3g6")
|
packed_scene = ExtResource("8_cm3g6")
|
||||||
|
|
||||||
[node name="Closeup花名册" parent="Ground/DeployLayer" index="7" instance=ExtResource("6_66gue")]
|
[node name="Closeup花名册" parent="Ground/DeployLayer" index="8" instance=ExtResource("6_66gue")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2(351, 31)
|
position = Vector2(351, 31)
|
||||||
packed_scene = ExtResource("6_fvlg0")
|
packed_scene = ExtResource("6_fvlg0")
|
||||||
first_interact_os_key = "c02_保卫科花名册os"
|
first_interact_os_key = "c02_保卫科花名册os"
|
||||||
|
|
||||||
[node name="煤油灯" type="Sprite2D" parent="Ground/DeployLayer" index="8"]
|
[node name="煤油灯" type="Sprite2D" parent="Ground/DeployLayer" index="9"]
|
||||||
position = Vector2(370, 39)
|
position = Vector2(370, 39)
|
||||||
|
|
||||||
[node name="灯光" type="AnimatedSprite2D" parent="Ground/DeployLayer/煤油灯"]
|
[node name="灯光" type="AnimatedSprite2D" parent="Ground/DeployLayer/煤油灯"]
|
||||||
@ -109,15 +115,9 @@ energy = 2.0
|
|||||||
blend_mode = 2
|
blend_mode = 2
|
||||||
texture = ExtResource("9_a43aq")
|
texture = ExtResource("9_a43aq")
|
||||||
|
|
||||||
[node name="小手讨东西" parent="Ground/DeployLayer" index="9" instance=ExtResource("10_a43aq")]
|
[node name="小手讨东西" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_a43aq")]
|
||||||
position = Vector2(295, -6)
|
position = Vector2(295, -6)
|
||||||
|
|
||||||
[node name="Local寻人启事" parent="Ground/DeployLayer" index="10" instance=ExtResource("19_k74x7")]
|
|
||||||
position = Vector2(116, -1)
|
|
||||||
texture = ExtResource("20_g8amr")
|
|
||||||
texture_cover = ExtResource("21_cq2m4")
|
|
||||||
content_key = "c02_寻人启事_完整"
|
|
||||||
|
|
||||||
[node name="小蝉写字" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
|
[node name="小蝉写字" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="11"]
|
||||||
position = Vector2(351, 51)
|
position = Vector2(351, 51)
|
||||||
sprite_frames = ExtResource("20_47ju4")
|
sprite_frames = ExtResource("20_47ju4")
|
||||||
|
@ -1,4 +1,164 @@
|
|||||||
{
|
{
|
||||||
|
"c01_s05_院长房间": {
|
||||||
|
"global": {
|
||||||
|
"enabled_items": {},
|
||||||
|
"player_x": 30.0
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
&"AnimationPlayer": {
|
||||||
|
"intro_played": true
|
||||||
|
},
|
||||||
|
&"ambush鸡毛掸子": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"oneshot纸片": {
|
||||||
|
"interacted_times": 0
|
||||||
|
},
|
||||||
|
&"钢琴": {
|
||||||
|
"interacted_times": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"c01_s06_孤儿院长廊围墙": {
|
||||||
|
"global": {
|
||||||
|
"enabled_items": {},
|
||||||
|
"player_x": 1300.0
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
&"AnimationPlayer": {},
|
||||||
|
&"Interactable桌椅": {
|
||||||
|
"interacted_times": 0
|
||||||
|
},
|
||||||
|
&"四小孩画鬼差的对话ambush": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"桌椅ambush1": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"桌椅ambush2": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"桌椅ambush3": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"猫鼠游戏失败ambush": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"猫鼠游戏开始ambush": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"猫鼠游戏胜利ambush": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"猫鼠游戏重置ambush": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"门口ambush": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"门口对话ambush": {
|
||||||
|
"played": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"c01_s08_书店": {
|
||||||
|
"global": {
|
||||||
|
"c01_shelf_game_success": false,
|
||||||
|
"enabled_items": {
|
||||||
|
"prop_信碎片1": true,
|
||||||
|
"prop_信碎片2": true
|
||||||
|
},
|
||||||
|
"envelope_game_success": false,
|
||||||
|
"player_x": 30.0
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
&"Ambush梯子": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush银元": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush首次进店": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"AnimationPlayer": {},
|
||||||
|
&"Interactable信件书桌": {
|
||||||
|
"interacted_times": 0
|
||||||
|
},
|
||||||
|
&"Interactable报纸柜台": {
|
||||||
|
"interacted_times": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"c02_s03_院子": {
|
||||||
|
"global": {
|
||||||
|
"c02_ball_game_stage": 0,
|
||||||
|
"c02_burning": false,
|
||||||
|
"c02_burning_end_stage": 0,
|
||||||
|
"c02_counter_pushed_out": false,
|
||||||
|
"c02_eavesdrop_finished": false,
|
||||||
|
&"c02_got_pliers": 0,
|
||||||
|
"c02_madman_interacted_stage": 0,
|
||||||
|
"c02_open_gate_first_failed": false,
|
||||||
|
"c02_ready_to_fire": false,
|
||||||
|
"c02_show_grounded_coins": false,
|
||||||
|
"c02_watched_the_well": false,
|
||||||
|
"enabled_items": {
|
||||||
|
"prop_小鞋子2": true,
|
||||||
|
"prop_火柴": true,
|
||||||
|
"prop_老虎钳": true
|
||||||
|
},
|
||||||
|
"handnote_c02_gate_chain": 0,
|
||||||
|
"handnote_c02_map_1Right": 0,
|
||||||
|
"handnote_c02_meat_knockDoor": 0,
|
||||||
|
"player_x": 1600.0
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
&"Ambush保卫科旁边os": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush偷听对话": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush惊悚闪电": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush点火游戏阻挡右移": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush等待的小蝉": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush老虎钳后小蝉跑": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush要下雨了": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush闷雷纸人": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"Ambush霸凌": {
|
||||||
|
"played": false
|
||||||
|
},
|
||||||
|
&"AnimationPlayer": {},
|
||||||
|
&"Closeup井": {
|
||||||
|
"interacted_times": 0
|
||||||
|
},
|
||||||
|
&"Closeup敲门游戏": {
|
||||||
|
"interacted_times": 0
|
||||||
|
},
|
||||||
|
&"Interactable柜子": {
|
||||||
|
"interacted_times": 0
|
||||||
|
},
|
||||||
|
&"Interactable铁门": {
|
||||||
|
"interacted_times": 0
|
||||||
|
},
|
||||||
|
&"Pickable小鞋子": {
|
||||||
|
"picked": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"c02_s05_一楼内侧楼道": {
|
"c02_s05_一楼内侧楼道": {
|
||||||
"global": {
|
"global": {
|
||||||
"c02_madman_hitwall": true,
|
"c02_madman_hitwall": true,
|
||||||
|
@ -7,4 +7,4 @@ func _ready() -> void:
|
|||||||
DialogueManager.show_dialogue_balloon(
|
DialogueManager.show_dialogue_balloon(
|
||||||
preload("res://asset/dialogue/npc.dialogue"), "c02_看井对话"
|
preload("res://asset/dialogue/npc.dialogue"), "c02_看井对话"
|
||||||
)
|
)
|
||||||
ArchiveManager.set_global_entry("c02_watched_the_well", true)
|
ArchiveManager.set_global_entry("c02_watched_the_well", true)
|
@ -1,13 +1,23 @@
|
|||||||
[gd_scene load_steps=5 format=3 uid="uid://cdf2qe8l7323i"]
|
[gd_scene load_steps=7 format=3 uid="uid://cdf2qe8l7323i"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dyk58stu5enia" path="res://scene/ground/script/c02/老鼠精画像.gd" id="1_l77sh"]
|
[ext_resource type="Script" uid="uid://dyk58stu5enia" path="res://scene/ground/script/c02/老鼠精画像.gd" id="1_l77sh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d1xr7g5huv5or" path="res://asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png" id="2_eyynm"]
|
[ext_resource type="Texture2D" uid="uid://d1xr7g5huv5or" path="res://asset/art/scene/c02/s04_保卫科/ux_老鼠画像特写.png" id="2_eyynm"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bi4hcr04231qr" path="res://asset/audio/sfx/UI/挂画查看.mp3" id="2_nvvir"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="3_lpmq3"]
|
[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="3_lpmq3"]
|
||||||
|
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_u15ce"]
|
||||||
[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="4_l77sh"]
|
[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="4_l77sh"]
|
||||||
|
|
||||||
[node name="老鼠精画像" type="CanvasLayer"]
|
[node name="老鼠精画像" type="CanvasLayer"]
|
||||||
script = ExtResource("1_l77sh")
|
script = ExtResource("1_l77sh")
|
||||||
|
|
||||||
|
[node name="Sfx打开查看" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("2_nvvir")
|
||||||
|
volume_db = 3.0
|
||||||
|
autoplay = true
|
||||||
|
bus = &"game_sfx"
|
||||||
|
script = ExtResource("3_u15ce")
|
||||||
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="."]
|
[node name="TextureRect" type="TextureRect" parent="."]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
@ -11,13 +11,16 @@ var texture_dict = {
|
|||||||
var click_count = 0
|
var click_count = 0
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
$"Sfx翻页".play()
|
||||||
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
||||||
button.pressed.connect(_on_button_pressed)
|
button.pressed.connect(_on_button_pressed)
|
||||||
|
|
||||||
|
|
||||||
func _on_button_pressed() -> void:
|
func _on_button_pressed() -> void:
|
||||||
|
$"Sfx翻页".play()
|
||||||
click_count += 1
|
click_count += 1
|
||||||
if click_count == 1:
|
if click_count == 1:
|
||||||
button.texture_normal = texture_dict["1"]
|
button.texture_normal = texture_dict["1"]
|
||||||
button.set_anchors_preset(Control.PRESET_CENTER)
|
button.set_anchors_preset(Control.PRESET_CENTER)
|
||||||
$ContentInspector.visible = true
|
$ContentInspector.visible = true
|
||||||
|
button.disabled = true
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://b8i6tqwdvvddy"]
|
[gd_scene load_steps=8 format=3 uid="uid://b8i6tqwdvvddy"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cmapmn0v70p4l" path="res://scene/ground/script/c02/花名册.gd" id="1_jin3n"]
|
[ext_resource type="Script" uid="uid://cmapmn0v70p4l" path="res://scene/ground/script/c02/花名册.gd" id="1_jin3n"]
|
||||||
|
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="2_654vh"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://c3qonrtdjnmau" path="res://asset/audio/sfx/UI/纸声.wav" id="2_su2aa"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cypvxj1vsl5yk" path="res://asset/art/scene/c02/s04_保卫科/花名册/bg_花名册桌面.png" id="2_v047l"]
|
[ext_resource type="Texture2D" uid="uid://cypvxj1vsl5yk" path="res://asset/art/scene/c02/s04_保卫科/花名册/bg_花名册桌面.png" id="2_v047l"]
|
||||||
[ext_resource type="Texture2D" uid="uid://sx3i3lkt2vfd" path="res://asset/art/scene/c02/s04_保卫科/花名册/花名册封皮.png" id="3_myeas"]
|
[ext_resource type="Texture2D" uid="uid://sx3i3lkt2vfd" path="res://asset/art/scene/c02/s04_保卫科/花名册/花名册封皮.png" id="3_myeas"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="4_1s4sv"]
|
[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="4_1s4sv"]
|
||||||
@ -9,6 +11,12 @@
|
|||||||
[node name="花名册" type="CanvasLayer"]
|
[node name="花名册" type="CanvasLayer"]
|
||||||
script = ExtResource("1_jin3n")
|
script = ExtResource("1_jin3n")
|
||||||
|
|
||||||
|
[node name="Sfx翻页" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("2_su2aa")
|
||||||
|
bus = &"game_sfx"
|
||||||
|
script = ExtResource("2_654vh")
|
||||||
|
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||||
|
|
||||||
[node name="TextureRect" type="TextureRect" parent="."]
|
[node name="TextureRect" type="TextureRect" parent="."]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
@ -20,13 +20,6 @@ script = ExtResource("1_pks84")
|
|||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = ExtResource("9_jsof5")
|
environment = ExtResource("9_jsof5")
|
||||||
|
|
||||||
[node name="GroundLoader" parent="." instance=ExtResource("10_8rc5n")]
|
|
||||||
position = Vector2(1, 0)
|
|
||||||
entrance_portal = "right"
|
|
||||||
|
|
||||||
[node name="PropInspector" parent="." instance=ExtResource("5_ux0rw")]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
|
|
||||||
[node name="UILayer" type="CanvasLayer" parent="."]
|
[node name="UILayer" type="CanvasLayer" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layer = 12
|
layer = 12
|
||||||
@ -80,3 +73,10 @@ scale = Vector2(0.24, 0.24)
|
|||||||
item_key = "prop_令牌"
|
item_key = "prop_令牌"
|
||||||
display_time = 1.5
|
display_time = 1.5
|
||||||
metadata/_edit_use_anchors_ = true
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="PropInspector" parent="." instance=ExtResource("5_ux0rw")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
|
||||||
|
[node name="GroundLoader" parent="." instance=ExtResource("10_8rc5n")]
|
||||||
|
position = Vector2(1, 0)
|
||||||
|
entrance_portal = "right"
|
||||||
|
@ -80,6 +80,7 @@ offset_bottom = 261.0
|
|||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
horizontal_scroll_mode = 0
|
horizontal_scroll_mode = 0
|
||||||
|
vertical_scroll_mode = 3
|
||||||
|
|
||||||
[node name="ButtonsVBox" type="VBoxContainer" parent="Bag/Book/ScrollContainer"]
|
[node name="ButtonsVBox" type="VBoxContainer" parent="Bag/Book/ScrollContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@ -135,7 +136,13 @@ texture = ExtResource("8_j146j")
|
|||||||
expand_mode = 1
|
expand_mode = 1
|
||||||
stretch_mode = 5
|
stretch_mode = 5
|
||||||
|
|
||||||
[node name="Content" type="TextEdit" parent="Bag/Book/DisplayVBox"]
|
[node name="ScrollContainer" type="ScrollContainer" parent="Bag/Book/DisplayVBox"]
|
||||||
|
custom_minimum_size = Vector2(0, 100)
|
||||||
|
layout_mode = 2
|
||||||
|
horizontal_scroll_mode = 0
|
||||||
|
vertical_scroll_mode = 3
|
||||||
|
|
||||||
|
[node name="Content" type="TextEdit" parent="Bag/Book/DisplayVBox/ScrollContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
custom_minimum_size = Vector2(164, 90)
|
custom_minimum_size = Vector2(164, 90)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@ -161,4 +168,5 @@ text = "浦育院院长秦阳
|
|||||||
公寓地址 芦昌路26弄3号"
|
公寓地址 芦昌路26弄3号"
|
||||||
editable = false
|
editable = false
|
||||||
wrap_mode = 1
|
wrap_mode = 1
|
||||||
scroll_smooth = true
|
indent_wrapped_lines = true
|
||||||
|
scroll_fit_content_height = true
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://wxd25ec3cqyy"]
|
[gd_scene load_steps=5 format=3 uid="uid://wxd25ec3cqyy"]
|
||||||
|
|
||||||
[ext_resource type="FontFile" uid="uid://dr8bp6p7byb37" path="res://asset/font/字体/方正楷体简体.TTF" id="1_5nv8m"]
|
[ext_resource type="FontFile" uid="uid://dr8bp6p7byb37" path="res://asset/font/字体/方正楷体简体.TTF" id="1_5nv8m"]
|
||||||
[ext_resource type="Texture2D" uid="uid://1ky8heqxctnf" path="res://asset/art/ui/bag/重要物品ui-25.png" id="1_jf0g1"]
|
[ext_resource type="Texture2D" uid="uid://1ky8heqxctnf" path="res://asset/art/ui/bag/重要物品ui-25.png" id="1_jf0g1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c1l5royi6w0cm" path="res://asset/art/ui/bag/重要物品ui-27.png" id="3_dck1d"]
|
[ext_resource type="Texture2D" uid="uid://c1l5royi6w0cm" path="res://asset/art/ui/bag/重要物品ui-27.png" id="3_dck1d"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dck1d"]
|
||||||
|
|
||||||
[node name="Button" type="Button"]
|
[node name="Button" type="Button"]
|
||||||
custom_minimum_size = Vector2(130, 26)
|
custom_minimum_size = Vector2(130, 26)
|
||||||
offset_right = 20.0
|
offset_right = 20.0
|
||||||
@ -17,6 +19,7 @@ theme_override_colors/font_color = Color(0, 0, 0, 1)
|
|||||||
theme_override_constants/icon_max_width = 8
|
theme_override_constants/icon_max_width = 8
|
||||||
theme_override_fonts/font = ExtResource("1_5nv8m")
|
theme_override_fonts/font = ExtResource("1_5nv8m")
|
||||||
theme_override_font_sizes/font_size = 15
|
theme_override_font_sizes/font_size = 15
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_dck1d")
|
||||||
toggle_mode = true
|
toggle_mode = true
|
||||||
text = "院长的信"
|
text = "院长的信"
|
||||||
icon = ExtResource("1_jf0g1")
|
icon = ExtResource("1_jf0g1")
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
extends CanvasLayer
|
class_name Memory extends CanvasLayer
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
layer = GlobalConfig.CANVAS_LAYER_UX_PANEL
|
layer = GlobalConfig.CANVAS_LAYER_UX_PANEL
|
||||||
SceneManager.toggle_pause_counter(true)
|
SceneManager.toggle_pause_counter(true)
|
||||||
|
update_display()
|
||||||
|
|
||||||
|
|
||||||
func _unhandled_input(event: InputEvent) -> void:
|
func _unhandled_input(event: InputEvent) -> void:
|
||||||
@ -20,3 +21,24 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
func quit() -> void:
|
func quit() -> void:
|
||||||
SceneManager.toggle_pause_counter(false)
|
SceneManager.toggle_pause_counter(false)
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
# 1-8 in P1, 9-16 in P2
|
||||||
|
# path example: Mem/P1/1
|
||||||
|
func update_display():
|
||||||
|
if ArchiveManager.archive:
|
||||||
|
# node name -> display bool
|
||||||
|
var display_dict := ArchiveManager.archive.mem_display_dict
|
||||||
|
for k in display_dict:
|
||||||
|
var node_path = "Mem/"
|
||||||
|
if k < 0:
|
||||||
|
continue
|
||||||
|
elif k < 9:
|
||||||
|
node_path += "P1/" + str(k)
|
||||||
|
elif k < 17:
|
||||||
|
node_path += "P2/" + str(k)
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
var node = get_node_or_null(node_path)
|
||||||
|
if node:
|
||||||
|
node.visible = display_dict[k]
|
||||||
|
@ -65,7 +65,7 @@ texture = ExtResource("3_mydtv")
|
|||||||
expand_mode = 5
|
expand_mode = 5
|
||||||
stretch_mode = 5
|
stretch_mode = 5
|
||||||
|
|
||||||
[node name="GridContainer" type="GridContainer" parent="Mem"]
|
[node name="P1" type="GridContainer" parent="Mem"]
|
||||||
z_index = 10
|
z_index = 10
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
offset_left = 90.0
|
offset_left = 90.0
|
||||||
@ -76,47 +76,55 @@ theme_override_constants/h_separation = 19
|
|||||||
theme_override_constants/v_separation = 7
|
theme_override_constants/v_separation = 7
|
||||||
columns = 2
|
columns = 2
|
||||||
|
|
||||||
[node name="MemoryItem" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")]
|
[node name="1" parent="Mem/P1" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("5_7f8pt")
|
packed_scene = ExtResource("5_7f8pt")
|
||||||
title = "mem_偷听对话"
|
title = "mem_偷听对话"
|
||||||
|
|
||||||
[node name="MemoryItem2" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")]
|
[node name="2" parent="Mem/P1" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("6_dp1y4")
|
packed_scene = ExtResource("6_dp1y4")
|
||||||
title = "mem_疯子看井"
|
title = "mem_疯子看井"
|
||||||
|
|
||||||
[node name="MemoryItem3" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")]
|
[node name="3" parent="Mem/P1" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("5_7f8pt")
|
packed_scene = ExtResource("5_7f8pt")
|
||||||
title = "mem_偷听对话"
|
title = "mem_偷听对话"
|
||||||
|
|
||||||
[node name="MemoryItem4" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")]
|
[node name="4" parent="Mem/P1" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("6_dp1y4")
|
packed_scene = ExtResource("6_dp1y4")
|
||||||
title = "mem_疯子看井"
|
title = "mem_疯子看井"
|
||||||
|
|
||||||
[node name="MemoryItem5" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")]
|
[node name="5" parent="Mem/P1" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("5_7f8pt")
|
packed_scene = ExtResource("5_7f8pt")
|
||||||
title = "mem_偷听对话"
|
title = "mem_偷听对话"
|
||||||
|
|
||||||
[node name="MemoryItem6" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")]
|
[node name="6" parent="Mem/P1" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("6_dp1y4")
|
packed_scene = ExtResource("6_dp1y4")
|
||||||
title = "mem_疯子看井"
|
title = "mem_疯子看井"
|
||||||
|
|
||||||
[node name="MemoryItem7" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")]
|
[node name="7" parent="Mem/P1" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("5_7f8pt")
|
packed_scene = ExtResource("5_7f8pt")
|
||||||
title = "mem_偷听对话"
|
title = "mem_偷听对话"
|
||||||
|
|
||||||
[node name="MemoryItem8" parent="Mem/GridContainer" instance=ExtResource("4_6dhhp")]
|
[node name="8" parent="Mem/P1" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("6_dp1y4")
|
packed_scene = ExtResource("6_dp1y4")
|
||||||
title = "mem_疯子看井"
|
title = "mem_疯子看井"
|
||||||
|
|
||||||
[node name="GridContainer2" type="GridContainer" parent="Mem"]
|
[node name="P2" type="GridContainer" parent="Mem"]
|
||||||
z_index = 10
|
z_index = 10
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
offset_left = 320.0
|
offset_left = 320.0
|
||||||
@ -127,42 +135,50 @@ theme_override_constants/h_separation = 19
|
|||||||
theme_override_constants/v_separation = 7
|
theme_override_constants/v_separation = 7
|
||||||
columns = 2
|
columns = 2
|
||||||
|
|
||||||
[node name="MemoryItem" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")]
|
[node name="9" parent="Mem/P2" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("5_7f8pt")
|
packed_scene = ExtResource("5_7f8pt")
|
||||||
title = "mem_偷听对话"
|
title = "mem_偷听对话"
|
||||||
|
|
||||||
[node name="MemoryItem2" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")]
|
[node name="10" parent="Mem/P2" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("6_dp1y4")
|
packed_scene = ExtResource("6_dp1y4")
|
||||||
title = "mem_疯子看井"
|
title = "mem_疯子看井"
|
||||||
|
|
||||||
[node name="MemoryItem3" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")]
|
[node name="11" parent="Mem/P2" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("5_7f8pt")
|
packed_scene = ExtResource("5_7f8pt")
|
||||||
title = "mem_偷听对话"
|
title = "mem_偷听对话"
|
||||||
|
|
||||||
[node name="MemoryItem4" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")]
|
[node name="12" parent="Mem/P2" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("6_dp1y4")
|
packed_scene = ExtResource("6_dp1y4")
|
||||||
title = "mem_疯子看井"
|
title = "mem_疯子看井"
|
||||||
|
|
||||||
[node name="MemoryItem5" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")]
|
[node name="13" parent="Mem/P2" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("5_7f8pt")
|
packed_scene = ExtResource("5_7f8pt")
|
||||||
title = "mem_偷听对话"
|
title = "mem_偷听对话"
|
||||||
|
|
||||||
[node name="MemoryItem6" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")]
|
[node name="14" parent="Mem/P2" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("6_dp1y4")
|
packed_scene = ExtResource("6_dp1y4")
|
||||||
title = "mem_疯子看井"
|
title = "mem_疯子看井"
|
||||||
|
|
||||||
[node name="MemoryItem7" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")]
|
[node name="15" parent="Mem/P2" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("5_7f8pt")
|
packed_scene = ExtResource("5_7f8pt")
|
||||||
title = "mem_偷听对话"
|
title = "mem_偷听对话"
|
||||||
|
|
||||||
[node name="MemoryItem8" parent="Mem/GridContainer2" instance=ExtResource("4_6dhhp")]
|
[node name="16" parent="Mem/P2" instance=ExtResource("4_6dhhp")]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
packed_scene = ExtResource("6_dp1y4")
|
packed_scene = ExtResource("6_dp1y4")
|
||||||
title = "mem_疯子看井"
|
title = "mem_疯子看井"
|
||||||
|
@ -419,6 +419,13 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
elif event.is_action_pressed("prop_right"):
|
elif event.is_action_pressed("prop_right"):
|
||||||
on_right_pressed()
|
on_right_pressed()
|
||||||
get_viewport().set_input_as_handled()
|
get_viewport().set_input_as_handled()
|
||||||
|
elif event is InputEventMouseButton:
|
||||||
|
if event.button_index == MOUSE_BUTTON_WHEEL_DOWN and event.pressed:
|
||||||
|
on_left_pressed()
|
||||||
|
get_viewport().set_input_as_handled()
|
||||||
|
elif event.button_index == MOUSE_BUTTON_WHEEL_UP and event.pressed:
|
||||||
|
on_right_pressed()
|
||||||
|
get_viewport().set_input_as_handled()
|
||||||
|
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
|
@ -16,9 +16,11 @@ signal quit_and_hidden
|
|||||||
@onready var prop_bg = %PropBG as TextureRect
|
@onready var prop_bg = %PropBG as TextureRect
|
||||||
@onready var origin_texture = %OriginPropTexture as TextureRect
|
@onready var origin_texture = %OriginPropTexture as TextureRect
|
||||||
@onready var full_texture = %FullTexture as TextureRect
|
@onready var full_texture = %FullTexture as TextureRect
|
||||||
|
@onready var scroll_container = %ScrollContainer as ScrollContainer
|
||||||
@onready var content_label = %ContentLabel as Label
|
@onready var content_label = %ContentLabel as Label
|
||||||
@onready var tip_label = %TipLabel as Label
|
@onready var tip_label = %TipLabel as Label
|
||||||
|
|
||||||
|
|
||||||
var tip_cover = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_阅读")
|
var tip_cover = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_阅读")
|
||||||
var tip_notes = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_收起")
|
var tip_notes = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_收起")
|
||||||
var texture_cover: Texture2D
|
var texture_cover: Texture2D
|
||||||
@ -60,6 +62,7 @@ func _hide():
|
|||||||
|
|
||||||
func _post_hide():
|
func _post_hide():
|
||||||
status = STATUS_HIDDEN
|
status = STATUS_HIDDEN
|
||||||
|
scroll_container.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
locking = false
|
locking = false
|
||||||
origin_texture.texture = null
|
origin_texture.texture = null
|
||||||
full_texture.texture = null
|
full_texture.texture = null
|
||||||
@ -186,15 +189,28 @@ func _show_prop_words(line_id: String):
|
|||||||
func _unhandled_input(event: InputEvent) -> void:
|
func _unhandled_input(event: InputEvent) -> void:
|
||||||
if status == STATUS_HIDDEN:
|
if status == STATUS_HIDDEN:
|
||||||
return
|
return
|
||||||
|
if (
|
||||||
|
status == STATUS_INSPECTING_NOTES
|
||||||
|
and event is InputEventMouseButton
|
||||||
|
and (
|
||||||
|
event.button_index == MOUSE_BUTTON_WHEEL_DOWN
|
||||||
|
or event.button_index == MOUSE_BUTTON_WHEEL_UP
|
||||||
|
)
|
||||||
|
):
|
||||||
|
# STATUS_INSPECTING_NOTES 状态下,消费鼠标滚轮事件
|
||||||
|
get_viewport().set_input_as_handled()
|
||||||
|
# print("[prop inspector] mouse wheel handled on STATUS_INSPECTING_NOTES")
|
||||||
if event.is_action_pressed("cancel"):
|
if event.is_action_pressed("cancel"):
|
||||||
get_viewport().set_input_as_handled()
|
get_viewport().set_input_as_handled()
|
||||||
_hide()
|
_hide()
|
||||||
if event.is_action_pressed("interact"):
|
if event.is_action_pressed("interact"):
|
||||||
get_viewport().set_input_as_handled()
|
get_viewport().set_input_as_handled()
|
||||||
|
scroll_container.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
# STATUS_INSPECTING_COVER 与 STATUS_INSPECTING_NOTES 之间互相切换
|
# STATUS_INSPECTING_COVER 与 STATUS_INSPECTING_NOTES 之间互相切换
|
||||||
if status == STATUS_INSPECTING_COVER:
|
if status == STATUS_INSPECTING_COVER:
|
||||||
# inspect notes
|
# inspect notes
|
||||||
status = STATUS_INSPECTING_NOTES
|
status = STATUS_INSPECTING_NOTES
|
||||||
|
scroll_container.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||||
if not texture_notes:
|
if not texture_notes:
|
||||||
notes_bg.visible = true
|
notes_bg.visible = true
|
||||||
else:
|
else:
|
||||||
|
@ -22,7 +22,7 @@ offset_bottom = 120.0
|
|||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
mouse_filter = 0
|
mouse_filter = 2
|
||||||
texture = ExtResource("2_j83lq")
|
texture = ExtResource("2_j83lq")
|
||||||
|
|
||||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||||
@ -90,16 +90,23 @@ theme_override_constants/margin_top = 60
|
|||||||
theme_override_constants/margin_right = 200
|
theme_override_constants/margin_right = 200
|
||||||
theme_override_constants/margin_bottom = 60
|
theme_override_constants/margin_bottom = 60
|
||||||
|
|
||||||
[node name="ContentLabel" type="Label" parent="MarginContainer2"]
|
[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer2"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(0, 200)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
mouse_filter = 2
|
||||||
|
horizontal_scroll_mode = 0
|
||||||
|
vertical_scroll_mode = 3
|
||||||
|
|
||||||
|
[node name="ContentLabel" type="Label" parent="MarginContainer2/ScrollContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
custom_minimum_size = Vector2(150, 0)
|
custom_minimum_size = Vector2(150, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
text = "据闻奉贤县分水墩又有七人染受鼠疫,病状可怖,闻医官药治无用,免职。
|
size_flags_vertical = 6
|
||||||
有地方人称鼠疫为妖邪作祟,甚为惊骇,一时人心惶惶,竟有聚众滋闹之事,政府以防疫事宜关系紧要,拟赴分水墩一带调查防疫事宜云。
|
text = "tdb119a3714,据闻奉贤县分水墩有两人染受鼠疫毙命,医官拟将死者尸骸解剖以观受病之原因及其情状,竟未得死者家属之同意,以该处风气闭塞,闻解剖之说,地方人民甚为惊骇,闻已有聚众滋闹之事,并闻医官已被人殴打,政府以防疫事宜关系紧要拟改令赴沪南区一带调查防疫事宜云。,,,,\"It is reported that two people in Fenshuidun, Fengxian County have died from plague. Medical officials proposed to autopsy the bodies to examine the cause and nature of the disease, but failed to obtain consent from the families of the deceased. Due to the conservative local customs, the mention of autopsy has greatly alarmed the local people. There are reports of crowds gathering to cause trouble, and medical officials have been assaulted. Given the critical importance of epidemic prevention, the government plans to redirect orders to investigate epidemic prevention matters in the southern Shanghai area.\"
|
||||||
|
"
|
||||||
《申报》
|
|
||||||
民国五年一月十三日"
|
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
autowrap_mode = 3
|
autowrap_mode = 3
|
||||||
|
|
||||||
@ -123,6 +130,6 @@ modulate = Color(1, 1, 1, 0)
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
theme_override_fonts/font = ExtResource("4_opug5")
|
theme_override_fonts/font = ExtResource("4_opug5")
|
||||||
text = "Q: 退出 E: 阅读"
|
text = "Q: Exit E: Read"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
@ -2,21 +2,37 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
@export var property_name := "text"
|
@export var property_name := "text"
|
||||||
@export var translation_key := ""
|
@export var translation_key := "":
|
||||||
@export_tool_button("刷新") var refresh = _refresh.bind(true)
|
set(val):
|
||||||
|
translation_key = val
|
||||||
|
if is_node_ready():
|
||||||
|
refresh()
|
||||||
|
@export var vertical := false
|
||||||
|
@export_tool_button("刷新") var _refresh = refresh.bind(true)
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
_refresh()
|
refresh()
|
||||||
|
|
||||||
|
|
||||||
# res://asset/dialogue/item_description.zh_CN.translation
|
# res://asset/dialogue/item_description.zh_CN.translation
|
||||||
var items_translation = preload("uid://c1x5bqwulamey") as Translation
|
var items_translation = preload("uid://c1x5bqwulamey") as Translation
|
||||||
|
|
||||||
|
|
||||||
func _refresh(from_tool := false):
|
func refresh(from_tool := false):
|
||||||
if property_name and translation_key:
|
if property_name and translation_key:
|
||||||
var msg = tr(translation_key)
|
var msg = tr(translation_key)
|
||||||
if from_tool:
|
if from_tool:
|
||||||
msg = items_translation.get_message(translation_key)
|
msg = items_translation.get_message(translation_key)
|
||||||
set(property_name, msg.replace("{br}", "\n"))
|
msg = msg.replace("{br}", "\n")
|
||||||
|
if vertical:
|
||||||
|
var new_text = ""
|
||||||
|
for c in msg:
|
||||||
|
new_text += c + "\n"
|
||||||
|
msg = new_text
|
||||||
|
set(property_name, msg)
|
||||||
|
|
||||||
|
|
||||||
|
func _notification(what: int) -> void:
|
||||||
|
if what == NOTIFICATION_TRANSLATION_CHANGED:
|
||||||
|
refresh()
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://dw0s23v7qmj28"]
|
[gd_scene load_steps=3 format=3 uid="uid://dw0s23v7qmj28"]
|
||||||
|
|
||||||
[ext_resource type="LabelSettings" uid="uid://dd6jhbqr6uh3x" path="res://config/vertical_label_settings.tres" id="1_v3g0d"]
|
[ext_resource type="LabelSettings" uid="uid://dd6jhbqr6uh3x" path="res://config/序章夜行船_label_settings.tres" id="1_v3g0d"]
|
||||||
[ext_resource type="Script" uid="uid://c0l6vgrnqr2ge" path="res://ui/vertical_label.gd" id="2_vs1gg"]
|
[ext_resource type="Script" uid="uid://c0l6vgrnqr2ge" path="res://ui/vertical_label.gd" id="2_vs1gg"]
|
||||||
|
|
||||||
[node name="VerticalLabel" type="Label"]
|
[node name="VerticalLabel" type="Label"]
|
||||||
|
Loading…
Reference in New Issue
Block a user