From 2d32f4b3128c384ef126a8ef6238da663086c906 Mon Sep 17 00:00:00 2001 From: oier Date: Tue, 26 Sep 2023 00:13:55 +0200 Subject: [PATCH] Localization (#15) ## Changes (escoria-core) > Pending to do a PR to the core. - Added `es` langcode with the corresponding flag image. - Translated literals for `es` ## Changes (gymkhana) - Added `turno_cocina` localization csv. - Proof of concept for tooltips & dialogs. ## Notes - For tooltips just use the literals. Godot will automatically search for a translation key first. - For ESC just use `translation_key:"Default text"` ## How to test - In the option menu ES should be selectable. - The `frontal` item in the inventory should have the tooltips and the `say` command translated in `en`,`fr` and `es`. Reviewed-on: https://git.fosil.eu/gymkhana/gymkhana/pulls/15 Co-authored-by: oier Co-committed-by: oier --- .../ui_library/menus/main_menu/main_menu.tscn | 11 +- .../ui_library/menus/options/flags/es.png | Bin 0 -> 5210 bytes .../ui_library/menus/options/options.tscn | 18 +-- game/translations/game.csv | 14 +-- game/translations/game.de.translation | Bin 485 -> 732 bytes game/translations/game.en.translation | Bin 473 -> 681 bytes game/translations/game.fr.translation | Bin 497 -> 724 bytes game/translations/main_menu.csv | 42 +++---- game/translations/main_menu.de.translation | Bin 708 -> 1112 bytes game/translations/main_menu.en.translation | Bin 639 -> 1037 bytes game/translations/main_menu.fr.translation | Bin 668 -> 1080 bytes .../commands/say_random.gd | 118 ++++++++++++++++++ .../types/floating.gd | 26 ++-- .../item_outline.gd | 1 + .../items/inventory/turno_cocina_frontal.esc | 3 +- .../items/inventory/turno_cocina_frontal.tscn | 2 +- .../cocina_delante/cocina_delante.tscn | 36 ++++-- .../cocina_delante/esc/cocina_delante.esc | 2 +- .../cocina_delante/esc/pegatinas.esc | 5 + .../randomizer/turno_cocina_pegatinas.csv | 6 + gymkhana/translations/turno_cocina.csv | 13 ++ project.godot | 16 ++- 22 files changed, 241 insertions(+), 72 deletions(-) create mode 100644 addons/escoria-core/ui_library/menus/options/flags/es.png create mode 100644 gymkhana/addons/escoria-ui-return-monkey-island-dialog-simple/commands/say_random.gd create mode 100644 gymkhana/rooms/turno_cocina/cocina_delante/esc/pegatinas.esc create mode 100644 gymkhana/translations/randomizer/turno_cocina_pegatinas.csv create mode 100644 gymkhana/translations/turno_cocina.csv diff --git a/addons/escoria-core/ui_library/menus/main_menu/main_menu.tscn b/addons/escoria-core/ui_library/menus/main_menu/main_menu.tscn index 9625f0dd..1a5e0676 100644 --- a/addons/escoria-core/ui_library/menus/main_menu/main_menu.tscn +++ b/addons/escoria-core/ui_library/menus/main_menu/main_menu.tscn @@ -9,9 +9,6 @@ anchor_right = 1.0 anchor_bottom = 1.0 script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} [node name="load_game" parent="." instance=ExtResource( 5 )] visible = false @@ -44,18 +41,18 @@ __meta__ = { } [node name="TextureRect" type="TextureRect" parent="main/main"] -margin_top = 162.0 +margin_top = 92.0 margin_right = 616.0 -margin_bottom = 398.0 +margin_bottom = 318.0 texture = ExtResource( 3 ) __meta__ = { "_edit_use_anchors_": false } [node name="buttons" type="VBoxContainer" parent="main/main"] -margin_top = 498.0 +margin_top = 418.0 margin_right = 616.0 -margin_bottom = 738.0 +margin_bottom = 658.0 custom_constants/separation = 10 __meta__ = { "_edit_use_anchors_": false diff --git a/addons/escoria-core/ui_library/menus/options/flags/es.png b/addons/escoria-core/ui_library/menus/options/flags/es.png new file mode 100644 index 0000000000000000000000000000000000000000..7178ce42888ab1e1b80adff2769c64ac2752e634 GIT binary patch literal 5210 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 J@pc{m^%vn;urL4s literal 485 zcmV0Lm-cvHFBCo-ZXt8 zAOKF%g+QPH7^@f|fE+b|*8YeZs@_g;7u{WW7~P(mNxw%=G`KZx6)ZRA#IrT;)pg6< z%+O8&HUK{WMF4*_{W(`knzd5X@0ptBCt&)~t!kjCd2<6jjc#EISZVlY{GC6rBu=k> zGc@7q6w&Y#*!-Cf|AK$SNR}@eBU!cp9r$4U0Pel_6HpWlgGCfYRK<&$Ch58&gnmi{ zQ3|(8`bwc#McQpCqd&mZ8%f{0{I;+BB;z5WiWNA7JH@J(pzcOzgH^#!!ct=8 z#6f3cKG+SA5gRceV1hAbW(UjwM4sUOnY@BL9)Zh*Dl|B;aI7VNQfXle&w0OEBJ2hZ9q*};bYbTtPu_dpd(J&`Z$?XK3(SuIvuB{7`TbwnP?^(tkXSHzlxDdt;7pxjdse`jREHn5z z-8IsA&Ki)Wi)N0yzCn|O>twB+pEhAS*?ku#V+sg?(n-@}V-u{NEX1F8rpKrR5kO-+ z1f--vXuZE~^_BMNj-(VlSkt3MKorm{;^p=9r~vH%eZEKj6Z}cv8!q#o;Ui@cFa)TU zc!M8-wt+72>u(Ny-LE6>2IciB_$Tn1K^V{-dcir6D)Xwe#rb$Vb=@mt{W5nqe|bDU z8yFm(9gq-!o{CEK(SG0lI6&J}hzdMK ujg8FSoSBNAX{t-c4w>Bjl(~vPhz?Z$o|AkC7ZO|7!KIBWPnlyHe$sE<)S<)x literal 473 zcmV;~0Ve)ZQ$s@n000005C8zj0ssKP0RR9fwJ-f(#{sT$)I=8BQq2|f$^R&5vDPNu7@8Iv4ey31+ zl}a!KSEUD&KSAcld}E462!%MNW_11r;+U%8iJ*YMuetZ$m+%L$u!v4k4M!6tO`}mr z=&wQ(CvdAKdIG~5&TdOV`3pQf6d7ts(K3A>6<=5c`2s%^y!kqaNIx?4&iBvb(- z0-~}q5~H&dKK6sfvOkOe9&3Cm^hg1namS%?Dc|kw!?a%-yngs_W81Ea~iqqk#boQD$P_P+b=% zB^s6y*a?nHX18>M0ni00AW(ua$IK4u_(w-uJMa6+5;s3LZ1MbCGqY=cJA2EKb3>4j zH_V2f3 Pk!9qa@*7GUQd2`i|J>A_ diff --git a/game/translations/game.fr.translation b/game/translations/game.fr.translation index 56bc06c58112de8cce2ba0f25a597b6a4fc6005a..a09ecba52b67700009fc7f91ddb59b80ec346ff0 100644 GIT binary patch literal 724 zcmbu7yDtP$6vpqeSY}9&Sj1z+W{^lWnk_sdvWb-tW|4R#o7u_5GCRZEQK8a!{SPVy zqM=brvs)-U!)TSlhPFvxcQ>M%J;iLgyxDHNiboD{xi`Qs6>pt6Z=OB*hBOBrMl( zx~!w+49=>N=C<_>?)ZQv3CGTxt3PEzxAU70AY&n@3MzK$PbB)7ObGGkox|7&KFo^E z2*n_p>LFl7FNe$iy3Tjnrz?|Fv|&we9E0KzjV8Um9qk;#8=zL75q}0x!bt-G{sNA) z*hdNQckmc;>eC$Hi`}2M26F1%6W|Nrr^xFes-ZiyL)VZyAsr8g9j{_u9ZgTBre^m} z4w$>8e7Rl8QqyJbs4RP-`-{}mnPi-mTn+7dp$_IwwZ}a_LM6%Dh7q6g6`J2B7 S4~3=ZeuR0U5u91YfBpvaEvgg% literal 497 zcmVv`m^4-A>f0zEh+GvlA{EFgomZYQAmTeLMe{-Mx0>`(+&2(qDR0m9t3;XA*yUC^z z=V2p~0yqFb080R+KR*AC=_E-?=jr!&p5#a1`OS`wz&i3|2YRE~g)tzV;g8_Q{yA1WwYS_K&4hRIt&bCe}H@M{RZL71!0r$#e`OFo+OFm zB$WJC6=4cHO8QJ;rFDkrVqE?KPtQfxQHjdjRT8%jcKc=6212spg$tIC6|E(Uu?f&- zv=h*N9FK^-v5m0LprBB%3MZll`?vT*4*U^nZbm?m)ZC1$D8PV9t!iv7sMKo4gbx=& zqR>BxAefj!WnCN524qWsT_V;a!r0D7M#e{l%DP#GVz*%3u@V}~35F*yAW(ua$IK4dLG(DAvQ<;b8GLy$Rs8q>F7j-l zd_NJoxeK#S4O=+Bn!h!@BuIb&Gx7$tk(ham#bki72GGLuJxg5{evE8t!&*R}beu7; n7z?A3isGKJ5Bq4LZ_!V+3Se3e)mG%6Bg@D;D@r%x?0pko{&{hkQ0WQ&_%9rcB1v0 zBIG%9LCJGn7cyLD$KW(FIP1VPi|!JJkd!$)4mVj8bKGbOw32RUl9D+{(?v}x7!Vn= zfp*ZSG~)9OGB-)Ef9~0V53L82;*2COI1R|!z)8>r&VqW=dRyiLm=Cr16ml8<7?=bz zU>?N49k2lCF1(-ss6`?gb=vY6=`3iIc0l^v(qxs6k9r~Que^VL3Zom4Zsp5QKHsJ_ zD3?yb(gUlZ-*6iTOYv6Sbb0)t7d~ACaiQdYH;D0Y-8V0*-yT6f5Bh;s_t`Id;W~WU z3t{O)kCk59BONVa=@~ZhA_<@RqxCF(@r!f)Eqv;k*0%KB>3j7)_!LiA`l}!1(kJ*- zgL16>^!&7|^mwdwdxc9|AK)L(-(4+7>Amy-x<@PjwKUwZ4xe5e(SNJ+;#G{)Q)^#) zg@LDmrbcgr?u2UX0CUPSTkHC|?=sn3j?ETzDaXvn=-rB=>UYFVc0-lrq$HKZ?mN>y>Z}c$6zHstZ7(e%JH(4z_eKg5mob+VW(Jq{We+WyMgRZ+ literal 708 zcmV;#0z3UuQ$s@n000005C8ys1ONc60ssIgwJ-f(djk~}0A}KQNzm{(YswuFqhUHE zg(Csmg{{$RhLUU=LD*0Oz)y6VhZq>W*M5_X4rW!lUy0UqY^8YFM0!z0%hT?PL#l3I zb42TkO`XA4Ybjd*U;uRhp}K~4H{!z3MZuq1d1XqfxU)=Gb+tOOXZr(eP20HEa_X4- zMYcbHRf`){)$V@Qb~m0Q+tZS24P9&INTO!Vl4%cBZTg%1;3rzHqp6-_I?Jge4uqfN z^8ZQXyD5?Ax88(GZAeQ@O_MmCnjizrZXoOqA-Dt5fuYxrf z6zojrg$HMD(JjE)ZJX1B_+tE*efpd=5KT0XgdZMmv4N>B;C{^lTXM~HNQ2?49AnH4 q8*S*79?1Hfv{`=^$U0dV*P7c#H=)1UKFy<`7Op34dhr5MQ$s`R$4uw| diff --git a/game/translations/main_menu.en.translation b/game/translations/main_menu.en.translation index 2fc42211cf32198891c37a9ab10d401de265726c..6660fa3e55a9e8cc1d45b3bf3e91c4e2ccb025ed 100644 GIT binary patch literal 1037 zcmbu9PiPZC6vkiDsAbIFUOag6*n_8nAo%a-apU*W3l5p+j*1s-p-_0DrTrN zdhpx<_&Ep)IpNmIjxb$Ac)Df6`o9rI_yOQZ*Qz_3tQeLijEZMfTuqvic6Yxs#fqd} zI4jb1MOC`A3!)t%DT-+g*;PETWJv0VT&io!((4%fORneWW_3Hv)g0aSU=jsD1hjV= z8yPuDeQaU;vu18a2*kmDz+)%a1NMO-(CUmt*F1^&XqV|G?)PeZ~b!8irQ=Q2v{5jkPE6RsE`-*w3KFp2{a7j(vIv z%_oad@muSS@+D|K1bjwS{98R0y#uZ4KRiEpWCHr{`0sY|Ie%}JFV_>7>w>$%5wZ~43Z%);7H$V7L)H(LW8{|>)4^nNvnS%ytR=2& VZ#OHuL`(SCPEo-?t2q&TymiIUfv|H&_UB*U|ccdVw2c56({Zvx;CeXW~_Zo`pRPX$qf z4?i$Ol2_5-5rYK;+=~iW=K>^>$;uIbh`+-x^S}Hp{{)sFb;|uHKZ3u&AK*{$r~F>( zmC>%CqqWV(u-a1hOj%n6Q>j&i4?ieW*YXfcCtt5XIng6RdMzLnH8AOq`%N@5Q00)? z1CtvS10_|6<0OUb)-&oMp`KL8u8672*|`b1u^_i1<_F0~XF#c6!O5-K|* zGYXyXF!57v@_E?aI|hDhQ;2?6$WB{Y423YNeU4y#nm;^y0M@J5;?Q|0i(uhn Z(WKU`>HXEJG_R;yio6+y0!dO+Lql_e79eG+4v>)ztL75XyQ{Xq*j-~3kMwqQws_8%^@_|lJ z&vY>sJ3}FsFm|oE9S>R?Gh-1;5zqs8>;+xm80ZDH=8#(EQOpNgd|q-M{xBE=36KJ} zz&$Vv_$(s81iVEilL`1VSndTE=?APQpN=haRje@!E1%X5!Ez49i`QO%xs!p&xF3;2#Fu15aQ5?KinD?iu6h121$b zzl)xu_}jbCckb`uR$yZlI@iW{dA28>)lS0aelVV1`CeM8!1vaBeG32b8@!H>l#%3f zpVwe_#&4HP85{ahZ~}Po@71%xSMa$P2f^u^-Ti!iAJ>aWyYj%X+nJ$r_ECrp8GvN)}XduS>CaF4cV1V(*jemEv$C1B4NB w$5VY<^!4ZSm5qjqwBymJzpZDz(%0!yJTF^0mL7l1>~i~s-t literal 668 zcmV;N0%QGBQ$s@n000005C8yM1ONbp0ssIgwJ-f(TLaY-00yCRN8s|NHDqzh-7!Rk z3Ckf~q(ychC@S^GjJO$QMZzQ|J+QX|+sgKFX-eB7K)UDvH_Gcs_IMH5vc9}0%7n{E z5`z_99rsQFRRCK6YXB0KN=bO|bK>l)FAJkz6|FdfUZc-1;0gLj(G{~Y_M1F^k?n*@ zYp3iddCDXm@TBu)U7_d#Yav<*k3?rhb-yuE zUWWTOuCC#3)6guqOsLRo-0eDHRmN1`PG>b^!XosrbFUK|DYdzRvzg6z#?Z{_eouPt zbA(ZOVJhpZW@Dk>1bH6ug&Llth|i7~4q6S$TC>rbtwKqt5h)TVY$}*YNJ^7JV^9Jj zMO8i$z||yO35++<#BJ994P^<1;nchC#|hSn?4QK6eEJ;@ void: + rng = RandomNumberGenerator.new() + + +# Return the descriptor of the arguments of this command +func configure() -> ESCCommandArgumentDescriptor: + return ESCCommandArgumentDescriptor.new( + 3, + [TYPE_STRING, TYPE_STRING, TYPE_INT, TYPE_INT], + [ + null, + null, + null, + 0 + ], + [ + true, + false, + false, + false + ] + ) + + +# Validate whether the given arguments match the command descriptor +func validate(arguments: Array): + if not .validate(arguments): + return false + + if arguments[0].to_upper() != CURRENT_PLAYER_KEYWORD \ + and not escoria.object_manager.has(arguments[0]): + escoria.logger.error( + self, + "[%s]: Invalid object: Object with global id %s not found." + % [get_command_name(), arguments[0]] + ) + return false + + return true + + +# Run the command +func run(command_params: Array) -> int: + escoria.current_state = escoria.GAME_STATE.DIALOG + + if !escoria.dialog_player: + escoria.logger.error( + self, + "[%s]: No dialog player was registered and the say command was encountered." + % get_command_name() + ) + escoria.current_state = escoria.GAME_STATE.DEFAULT + return ESCExecution.RC_ERROR + + if not escoria.main.current_scene.player: + escoria.logger.warn( + self, + "[%s]: No player item in the current scene was registered and the say command was encountered." + % get_command_name() + ) + escoria.current_state = escoria.GAME_STATE.DEFAULT + return ESCExecution.RC_CANCEL + + var text = command_params[1] + "_" + String(rng.randi_range(command_params[2],command_params[3])) + ':" "' + + var speaking_character_global_id = escoria.main.current_scene.player.global_id \ + if command_params[0].to_upper() == CURRENT_PLAYER_KEYWORD \ + else command_params[0] + + escoria.dialog_player.say( + speaking_character_global_id, + "", + text + ) + yield(escoria.dialog_player, "say_finished") + escoria.current_state = escoria.GAME_STATE.DEFAULT + return ESCExecution.RC_OK + + +# Function called when the command is interrupted. +func interrupt(): + escoria.logger.debug( + self, + "[%s] interrupt() function not implemented." % get_command_name() + ) \ No newline at end of file diff --git a/gymkhana/addons/escoria-ui-return-monkey-island-dialog-simple/types/floating.gd b/gymkhana/addons/escoria-ui-return-monkey-island-dialog-simple/types/floating.gd index cd00d1c4..241d701a 100644 --- a/gymkhana/addons/escoria-ui-return-monkey-island-dialog-simple/types/floating.gd +++ b/gymkhana/addons/escoria-ui-return-monkey-island-dialog-simple/types/floating.gd @@ -46,7 +46,7 @@ onready var is_paused: bool = true # Enable bbcode and catch the signal when a tween completed func _ready(): _text_time_per_character = ProjectSettings.get_setting( - SimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS + RTMISimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS ) if _text_time_per_character < 0: @@ -54,15 +54,15 @@ func _ready(): self, "%s setting must be a non-negative number. Will use default value of %s." % [ - SimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS, - SimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_DEFAULT_VALUE + RTMISimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS, + RTMISimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_DEFAULT_VALUE ] ) - _text_time_per_character = SimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_DEFAULT_VALUE + _text_time_per_character = RTMISimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_DEFAULT_VALUE _fast_text_time_per_character = ProjectSettings.get_setting( - SimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_FAST + RTMISimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_FAST ) if _fast_text_time_per_character < 0: @@ -70,15 +70,15 @@ func _ready(): self, "%s setting must be a non-negative number. Will use default value of %s." % [ - SimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_FAST, - SimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_FAST_DEFAULT_VALUE + RTMISimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_FAST, + RTMISimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_FAST_DEFAULT_VALUE ] ) - _fast_text_time_per_character = SimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_FAST_DEFAULT_VALUE + _fast_text_time_per_character = RTMISimpleDialogPlugin.TEXT_TIME_PER_LETTER_MS_FAST_DEFAULT_VALUE _reading_speed_in_wpm = ProjectSettings.get_setting( - SimpleDialogPlugin.READING_SPEED_IN_WPM + RTMISimpleDialogPlugin.READING_SPEED_IN_WPM ) if _reading_speed_in_wpm <= 0: @@ -86,12 +86,12 @@ func _ready(): self, "%s setting must be a positive number. Will use default value of %s." % [ - SimpleDialogPlugin.READING_SPEED_IN_WPM, - SimpleDialogPlugin.READING_SPEED_IN_WPM_DEFAULT_VALUE + RTMISimpleDialogPlugin.READING_SPEED_IN_WPM, + RTMISimpleDialogPlugin.READING_SPEED_IN_WPM_DEFAULT_VALUE ] ) - _reading_speed_in_wpm = SimpleDialogPlugin.READING_SPEED_IN_WPM_DEFAULT_VALUE + _reading_speed_in_wpm = RTMISimpleDialogPlugin.READING_SPEED_IN_WPM_DEFAULT_VALUE _word_regex.compile("\\S+") @@ -227,7 +227,7 @@ func _get_number_of_words() -> int: # Ending the dialog func _on_dialog_finished(): # Only trigger to clear the text if we aren't limiting the clearing trigger to a click. - if not ESCProjectSettingsManager.get_setting(SimpleDialogPlugin.CLEAR_TEXT_BY_CLICK_ONLY): + if not ESCProjectSettingsManager.get_setting(RTMISimpleDialogPlugin.CLEAR_TEXT_BY_CLICK_ONLY): emit_signal("say_finished") diff --git a/gymkhana/addons/escoria-ui-return-monkey-island/item_outline.gd b/gymkhana/addons/escoria-ui-return-monkey-island/item_outline.gd index 792674dc..b49baa69 100644 --- a/gymkhana/addons/escoria-ui-return-monkey-island/item_outline.gd +++ b/gymkhana/addons/escoria-ui-return-monkey-island/item_outline.gd @@ -18,3 +18,4 @@ func set_outline_color(color): func set_outline_width(new_width): Width = new_width update() + diff --git a/gymkhana/items/inventory/turno_cocina_frontal.esc b/gymkhana/items/inventory/turno_cocina_frontal.esc index 8c204361..586bc15b 100644 --- a/gymkhana/items/inventory/turno_cocina_frontal.esc +++ b/gymkhana/items/inventory/turno_cocina_frontal.esc @@ -1,2 +1,3 @@ :action3 -say player "Es mi frontal de toda la vida, le tengo cariño" +say player frontal_action3_say:"Es mi frontal de toda la vida, le tengo cariño" + diff --git a/gymkhana/items/inventory/turno_cocina_frontal.tscn b/gymkhana/items/inventory/turno_cocina_frontal.tscn index 23b00d9a..2606ebe3 100644 --- a/gymkhana/items/inventory/turno_cocina_frontal.tscn +++ b/gymkhana/items/inventory/turno_cocina_frontal.tscn @@ -15,7 +15,7 @@ esc_script = "res://gymkhana/items/inventory/turno_cocina_frontal.esc" inventory_texture = ExtResource( 2 ) dialog_color = Color( 1, 1, 1, 1 ) tooltips = { - "action3": "Admirar", + "action3": "frontal_action3", "action4": "Usar" } combine_when_selected_action_is_in = [ "action4" ] diff --git a/gymkhana/rooms/turno_cocina/cocina_delante/cocina_delante.tscn b/gymkhana/rooms/turno_cocina/cocina_delante/cocina_delante.tscn index dc430c77..0b523c73 100644 --- a/gymkhana/rooms/turno_cocina/cocina_delante/cocina_delante.tscn +++ b/gymkhana/rooms/turno_cocina/cocina_delante/cocina_delante.tscn @@ -45,7 +45,7 @@ is_exit = true combine_when_selected_action_is_in = [ ] dialog_color = Color( 1, 1, 1, 1 ) tooltips = { - "action1": "Entrar en la cocina" +"action1": "cocina_delante_puerta_cocina_action1" } animations = null @@ -68,7 +68,7 @@ is_exit = true combine_when_selected_action_is_in = [ ] dialog_color = Color( 1, 1, 1, 1 ) tooltips = { - "action1": "Bajar a la despensa" +"action1": "cocina_delante_puerta_despensa_action1" } animations = null @@ -91,7 +91,7 @@ is_exit = true combine_when_selected_action_is_in = [ ] dialog_color = Color( 1, 1, 1, 1 ) tooltips = { - "action1": "Ir detrás" +"action1": "cocina_delante_puerta_detras_action1" } animations = null @@ -109,12 +109,12 @@ global_id = "puerta_detras_start" position = Vector2( 813, 440 ) dialog_color = Color( 0, 1, 0.462745, 1 ) tooltips = { - "action1": "Observar sujeto", - "action2": "Hablar" +"action1": "cocina_delante_eneko_smoking_action1", +"action2": "cocina_delante_eneko_smoking_action2" } action3_target_texts = { -"bombona2": "Toma, un regalo", -"caja_herramientas": "Regalar" +"caja_herramientas": "Regalar", +"turno_cocina_frontal": "Ofrecer" } target_when_selected_action_is_in = [ "action3" ] selectable = true @@ -134,3 +134,25 @@ position = Vector2( 1425, 527 ) script = ExtResource( 5 ) global_id = "new_game_start_location" is_start_location = true + +[node name="pegatinas" type="Area2D" parent="."] +pause_mode = 1 +position = Vector2( 870, 264 ) +script = ExtResource( 6 ) +global_id = "cocina_delante_pegatinas" +esc_script = "res://gymkhana/rooms/turno_cocina/cocina_delante/esc/pegatinas.esc" +combine_when_selected_action_is_in = [ ] +dialog_color = Color( 1, 1, 1, 1 ) +tooltips = { +"action1": "cocina_delante_pegatinas_action1", +"action2": "cocina_delante_pegatinas_action2" +} +animations = null + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="pegatinas"] +position = Vector2( -33, -25 ) +polygon = PoolVector2Array( -20, 43, 37, 46, 39, 87, 57, 86, 92, 84, 91, -16, 47, -17, -20, -17, -21, 26 ) + +[node name="ESCLocation" type="Position2D" parent="pegatinas"] +position = Vector2( -99, 213 ) +script = ExtResource( 5 ) diff --git a/gymkhana/rooms/turno_cocina/cocina_delante/esc/cocina_delante.esc b/gymkhana/rooms/turno_cocina/cocina_delante/esc/cocina_delante.esc index 62dd69f8..4c40ea51 100644 --- a/gymkhana/rooms/turno_cocina/cocina_delante/esc/cocina_delante.esc +++ b/gymkhana/rooms/turno_cocina/cocina_delante/esc/cocina_delante.esc @@ -25,7 +25,7 @@ set_gui_visible false walk_block player puerta_cocina_start set_angle player 180 - say current_player "Alo Uli!" + say current_player hello_start_game:"Alo Uli!" set_gui_visible true accept_input ALL diff --git a/gymkhana/rooms/turno_cocina/cocina_delante/esc/pegatinas.esc b/gymkhana/rooms/turno_cocina/cocina_delante/esc/pegatinas.esc new file mode 100644 index 00000000..0bc89af7 --- /dev/null +++ b/gymkhana/rooms/turno_cocina/cocina_delante/esc/pegatinas.esc @@ -0,0 +1,5 @@ +:action1 + say_random current_player turno_cocina_pegatinas 5 1 + +:action2 + say eneko_smoking pegatinas_action2_eneko_smoking_say:"Eh! las pegatinas no se tocan" \ No newline at end of file diff --git a/gymkhana/translations/randomizer/turno_cocina_pegatinas.csv b/gymkhana/translations/randomizer/turno_cocina_pegatinas.csv new file mode 100644 index 00000000..a36c436c --- /dev/null +++ b/gymkhana/translations/randomizer/turno_cocina_pegatinas.csv @@ -0,0 +1,6 @@ +keys,es +turno_cocina_pegatinas_1,Hay muchas que molan!! +turno_cocina_pegatinas_2,Algunas no las entiendo. +turno_cocina_pegatinas_3,Alguna ya la conocia. +turno_cocina_pegatinas_4,Ya casi no se ve la ventana. +turno_cocina_pegatinas_5,La proxima vez que venga traere alguna pegatina. diff --git a/gymkhana/translations/turno_cocina.csv b/gymkhana/translations/turno_cocina.csv new file mode 100644 index 00000000..33153777 --- /dev/null +++ b/gymkhana/translations/turno_cocina.csv @@ -0,0 +1,13 @@ +keys,en,fr,es +hello_start_game,Alo Uli!,Alo Uli!,Alo Uli! +frontal_action3,Admire,Admire,Admirar +frontal_action3_say,"It's my lifelong headlight, I love it","C'est ma lampe frontale de toujours, je l'adore","Es mi frontal de toda la vida, le tengo cariño" +frontal_action4,Use,Utiliser,Usar +pegatinas_action2_eneko_smoking_say,Eh! las pegatinas no se tocan,Eh! las pegatinas no se tocan,Eh! las pegatinas no se tocan +cocina_delante_pegatinas_action1,,,"Observar pegatinas" +cocina_delante_pegatinas_action2,,,"Coger una pegatina" +cocina_delante_eneko_smoking_action1,,,"Observar sujeto" +cocina_delante_eneko_smoking_action2,,,"Hablar" +cocina_delante_puerta_detras_action1,,,"Ir detrás" +cocina_delante_puerta_despensa_action1,,,"Bajar a la despensa" +cocina_delante_puerta_cocina_action1,,,"Entrar en la cocina" \ No newline at end of file diff --git a/project.godot b/project.godot index ed762ca3..a67758ba 100644 --- a/project.godot +++ b/project.godot @@ -570,6 +570,11 @@ _global_script_classes=[ { "path": "res://addons/escoria-core/game/core-scripts/esc/commands/say.gd" }, { "base": "ESCBaseCommand", +"class": "SayRandomCommand", +"language": "GDScript", +"path": "res://gymkhana/addons/escoria-ui-return-monkey-island-dialog-simple/commands/say_random.gd" +}, { +"base": "ESCBaseCommand", "class": "SchedEventCommand", "language": "GDScript", "path": "res://addons/escoria-core/game/core-scripts/esc/commands/sched_event.gd" @@ -832,6 +837,7 @@ _global_script_class_icons={ "RandGlobalCommand": "", "RepeatCommand": "", "SayCommand": "", +"SayRandomCommand": "", "SchedEventCommand": "", "SetActiveCommand": "", "SetActiveIfExistsCommand": "", @@ -903,15 +909,15 @@ enabled=PoolStringArray( "res://addons/escoria-core/plugin.cfg", "res://gymkhana main/game_version="0.1.0" main/game_start_script="res://gymkhana/start_game.esc" main/force_quit=true -main/command_directories=[ "res://addons/escoria-core/game/core-scripts/esc/commands", "res://gymkhana/addons/escoria-ui-return-monkey-island/esc/commands" ] -main/text_lang="fr_FR" -main/voice_lang="fr_FR" +main/command_directories=[ "res://addons/escoria-core/game/core-scripts/esc/commands", "res://gymkhana/addons/escoria-ui-return-monkey-island/esc/commands", "res://gymkhana/addons/escoria-ui-return-monkey-island-dialog-simple/commands" ] +main/text_lang="es_ES" +main/voice_lang="es_ES" main/savegames_path="res://saves/" main/settings_path="user://" main/game_migration_path="" debug/terminate_on_warnings=false debug/terminate_on_errors=true -debug/development_lang="en" +debug/development_lang="es" debug/log_level="INFO" debug/log_file_path="user://" debug/crash_message="We're sorry, but the game crashed. Please send us the following files: @@ -978,7 +984,7 @@ ui_show_room_selector={ [locale] -translations=PoolStringArray( "res://game/translations/game.en.translation", "res://game/translations/game.fr.translation", "res://game/translations/main_menu.en.translation", "res://game/translations/main_menu.fr.translation", "res://game/translations/game.de.translation", "res://game/translations/main_menu.de.translation" ) +translations=PoolStringArray( "res://game/translations/game.en.translation", "res://game/translations/game.fr.translation", "res://game/translations/main_menu.en.translation", "res://game/translations/main_menu.fr.translation", "res://game/translations/game.de.translation", "res://game/translations/main_menu.de.translation", "res://gymkhana/translations/turno_cocina.en.translation", "res://gymkhana/translations/turno_cocina.es.translation", "res://gymkhana/translations/turno_cocina.fr.translation", "res://game/translations/game.es.translation", "res://game/translations/main_menu.es.translation", "res://gymkhana/translations/randomizer/turno_cocina_pegatinas.es.translation" ) locale_filter=[ 0, [ ] ] translation_remaps={ "res://game/speech/room01/ROOM1_look_wall_item_1.ogg": PoolStringArray( "res://game/speech/room01/ROOM1_look_wall_item_1_de.ogg:de" ),