From 01d2b4b6ced048b31324c3721681ecccf2e2a2f1 Mon Sep 17 00:00:00 2001 From: weeswelai <52352067+weeswelai@users.noreply.github.com> Date: Sun, 19 Nov 2023 21:45:25 +0800 Subject: [PATCH 1/8] Upd: Update CN assets which have been omitted --- .../cn/meowfficer/MEOWFFICER_GOLD_CHECK.png | Bin 4277 -> 4144 bytes module/meowfficer/assets.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/cn/meowfficer/MEOWFFICER_GOLD_CHECK.png b/assets/cn/meowfficer/MEOWFFICER_GOLD_CHECK.png index 8525715fe103196ecb7372171e63f35817523528..7e55be976ebdd9631d28cb353ecf5db42834a18c 100644 GIT binary patch delta 1546 zcmV+l2KD*1A+R8jB!3xnMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o000lt zNklaw0l@K>>cCqzW;1N3$QzUmI)~XsNl+4$GpdTB9;p)6z_!R$NTfqm zP!*Ijs)8CbJ1Bc>&Bju}4%=b-Sh_R2>-b~ao?6L!>ivFRTMN6M4@=MJuQzWd1hWAO zgad#0e{#zZ0000#bDuxYR&QfSseXGqfBH@LDP7w)wm(vnn#VEUo4;EelIn-Czq8sW ztvO_|p{diT%69*LWw%?mdj1PH;44D_006Kk)p^M_hj;U*58Cvdf1OU6rfN52TQM(U zmMyBaIT>fW_bwfp;(5^4A4gd}Tovyq#F&5e%lRp~^JHOIHmBca+poJYP6k~70{{SQ zKy$d))^A&`sX7{$yMN7Nz9`vn_OcmOAyu&~QroQ;^Yv24#(DDg4_5D6)eldK{=9zM zPcg<6Cx%)80{{SQN*lDZ&59_6tJ*007Xc$Hg#P_Uvih)o)t!$_Cf2UQX>L z(5c&+u3y#M%@=2Tq4^TqDK*CX=9vKo008JT)2?vaUM;dk39ntI``;|wjmr~S^t(xB zfB^siuF7}s)gS-7YTzHyx3jdIAr60Gx^{B6>0YZ@JN)Oe$0gM+CA#J?oPYB1Uk=3<1K&z001_kTl%~6+ca+4Wx#){wYvFk zIe0WkXMe1|yWJeUT%W;den4+E0X&;tx)0WB=jv}E+v@g-X;h`1*G60b0{{SQO!oEj z>TH_o)iaG&ub5}$aG3R~@vFP(^!ruWUeV4Q&wtyylD?^F4u6%E<#{cKUKV3?L#&&3 z%Mbtn06%k|KcC-{s!i7V@Y{b`8kfU7#B?omQ!{Qt+{<=K5QX?5%>%x+l{EPw$30B$0HKVQhv?sip8J$|#F zWuY9*Gq^Xe*)JiSLOrUo;fuKa_&k8?_mA_PV%=kt;`veY`W+ul2ETthzEZyeSO5b6 z0Bj_HFH~!NQlA{m>Z;f-Vi7NH9UoPLXUEH5ECP5~EVicA8sK=oSU81hRP_e?`JLz2 z>sJ8Z7;At5006?}OPyD1fAgLE(Yx~5r%5xcj;b(Oq-(pW$a?J)lGYtuoy_+vVk)bX zCNyzTyG2&yX}q?65x{={000}eDB(~(`olbftFw@%%LfH#d92^RShH_RF~oTPb@=*V ztN$QPnnm!&B92GL%S)yazyJUMKj{qq^}ESwwVVX*#aWZiH-`(4KI*OJc(dK-le231 zc%%>p!$I}tq0tn;0000#{R|GFnTA>Fo)diOO6HW>rN0Zav~_>J|JKgSrkyliP7U|M zv|Ax;5?BBO003-Kyzu&0R(GqKr6SA!;~BF%-%QRX?FqXC&Ig0>tG(6VLI48*0BlAY zzq&U*e6d=o8?WVYXhIjgv(TK*;-kM@J;Chi3FqJC{ex!Iw3}x0&&_bVmk#$eumA=C z0N9xN>_gG-m0^E0epQBfqo(HaoN!&e-7mM>i=Sf?CQYw<%+ZBDo~84j7aKVC_a^_C z&eOT=;dujRp-JOL18>4th5!HnU~cmE#o$gELmF(~PIZ&sJefArUVjkU>zz~6jLJOE z;?_KXtGXIIeZA=0YtK(wWALZr>btu|RxEbNv!bf&bofyse{`UM1uy^rz>R9^y2!FG zcXQ6uJWPwQ6+_*1Z7lM#dy^)o)2;0XvA-9t-Un+@z_V-T?jpIrpX%e7Ep8#5ihTYj wkLy>zoP=!n?1S+KvjGa61{;9?**^ss0QlZZ-w!BK5&!@I07*qoM6N<$f^(_{6951J delta 1682 zcmV;D25tGUAhjWoB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^Rh0UrPbDFzl$ZvX%gLPU&<7og+06j7G^*p10FJ> z;D#2GfCqEa;=xD{R&tQggHR8}_E5;to>V-jCo3L`UPOD4CNPK4(^be)PWj zYO&|9GQYMpo1EErcycpIQj?NT-e_~NInqy;<&Z8(O_%h_o*7E} z_pR;T#^~`ES7Vdp(4jTI!h!2q0ssKur=+xB&SzU^HXb{Xu1!~_S2k-+dZW_Ia9m5% zPm=X!cD)_!8P@iHMopJ=HC;)q?d4>Bl$}|!J-hyCIh@f$M^lot&12(SnY90Yqd9iQ zatmMp0Dyz3-z1aQPaS{yWK!$rv&rSU@w>NDMoH4u`r&Ky^A{I8v*9D7;oajTHxJ=1 zbvI`kHOJ3neUPL{(oL_t`PA{pcN@4i4~@58etYAWPo-CX_RoL-1^@u~0n9(SGCJH( zY15^>Fx~jm)jfGs%CYAL$DT`4zibEhH~R;-U%#y>Ss#2Ix4qHvC*PaAd20OheMwT= zjfV#HqxZ@$e{0R}96z%J006*G$mET|c)0s^(bZ+l?%z`GYF1zEaieB=7WB90tyv$G zotm0-NtfJzwbpKLT5kai003~HmIYh(yneH0S0#LlfnActEobdF{nW*t`4PYX000N2 zta5j!tUcJD|M$vm8u+`^+xBf!yFK;0W4Q$|006)N*wj|!Nw>bpPj$+#PUH$ z%k4XLNte>y?wLllB#>bz3n0&CAx=6Q3w-{^;1`qTnuN|MeU;qGs12cH~-N^@A zsrzq#=G=^$@niSZ>A9^Jj;5V|R|D@$-!5sVTdzMle)z<)vp=ijjg!md=8kd55&!@I zKYCw%wfIK0cA5X}XlaJc1Glc+`TMi-$n(vSldFO)?X`=|?6usJ^pcv%g<0ukt<>$E znq+wIsJW-4B)!zOwwJdD&u;Dw;6sPj{0ahp7ytm^2M*xu9^I`UotvCLJ32CKnkK(U zlJr*J*G#WWM^B$iX?Aas)n2=p$xF?+Np=q%m*sxFRYG@3(tbRhwQJ*N{<*h)1@Ilh zDbN4_z)w(3QXYJCm*IoM_WGw^ z@3^xX&?QGsHK*Tg9(grot$wlmy!lmse|r9GYWw}q6Gi|70010h1~;SevsdSzO_ygi z|2*m1Z|t%{4|tw zHD6A1_pq#&=J2R~wmF?#tTp{+kYusbCezX3Vd*7ZCZA8ofB4V-Il5au->4>K^!W4h z^Jkm;hr1t*j*O@8KR@hJ?mwl01uy^rzz=Hr;bwoZR?95iT3xSM&$3oD( Date: Wed, 22 Nov 2023 00:26:24 +0800 Subject: [PATCH 2/8] Fix: Skip meow lock popup --- module/meowfficer/collect.py | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/module/meowfficer/collect.py b/module/meowfficer/collect.py index 3e08dbfa5..22dbb5493 100644 --- a/module/meowfficer/collect.py +++ b/module/meowfficer/collect.py @@ -175,6 +175,39 @@ def _meow_apply_lock(self, lock=True): # Wait until info bar disappears self.ensure_no_info_bar(timeout=1) + def _meow_skip_popup_after_locking(self, skip_first_screenshot=True): + """ + Since 2023-11-16 update, even locked gold meow will still have popup. + If gold meow is locked and have popup, click MEOWFFICER_CONFIRM, + if gold meow is unlocked, this method should not be executed. + """ + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + # Next meow MEOWFFICER_APPLY_LOCK load faster than MEOWFFICER_GET_CHECK, + # make sure exit with a full screenshot + if self.appear(MEOWFFICER_GET_CHECK, offset=(40, 40), interval=3): + if self.appear(MEOWFFICER_APPLY_LOCK, offset=(40, 40)): + break + + if self.appear(MEOWFFICER_APPLY_UNLOCK, offset=(40, 40), interval=3): + self.device.click(MEOWFFICER_TRAIN_CLICK_SAFE_AREA) + continue + if self.appear(MEOWFFICER_CONFIRM, offset=(40, 20), interval=3): + self.device.click(MEOWFFICER_CONFIRM) + continue + elif self.appear(MEOWFFICER_CANCEL, offset=(40, 20), interval=3): + self.device.click(MEOWFFICER_CONFIRM) + continue + + self.device.click_record.pop() + self.device.click_record.pop() + self.interval_reset((MEOWFFICER_GET_CHECK, MEOWFFICER_APPLY_LOCK, + MEOWFFICER_CONFIRM, MEOWFFICER_CANCEL)) + def meow_get(self, skip_first_screenshot=True): """ Transition through all the necessary screens @@ -204,6 +237,10 @@ def meow_get(self, skip_first_screenshot=True): confirm_timer.reset() continue if self.appear(MEOWFFICER_GET_CHECK, offset=(40, 40), interval=3): + if self.appear(MEOWFFICER_APPLY_UNLOCK, offset=(40, 40)): + self._meow_skip_popup_after_locking(skip_first_screenshot=True) + confirm_timer.reset() + count += 1 logger.attr('Meow_get', count) with self.stat.new( From 0efe9e3e43a04ff05e1b682f6cf11f341a5ef013 Mon Sep 17 00:00:00 2001 From: ATH733 <52399579+ATH733@users.noreply.github.com> Date: Thu, 23 Nov 2023 22:01:48 +0800 Subject: [PATCH 3/8] Upd: Regex for merit shop (#3305) --- module/shop/base.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/module/shop/base.py b/module/shop/base.py index d671d2dac..1206bef73 100644 --- a/module/shop/base.py +++ b/module/shop/base.py @@ -18,10 +18,11 @@ '|plate|retrofit|pr|dr' '|logger|tuning' '|hecombatplan|fragment' - '|albacore|bataan|bluegill|carabiniere|casablanca|contedicavour|dukeofyork|echo' - '|eldridge|grenville|hibiki|hunter|kinggeorgev|kinu|kuroshio|lemalinmuse' - '|letemeraire|littorio|newcastle|oyashio|quincy|ryuujou|sanjuan|sheffieldmuse' - '|trento|vincennes|z26|z28|z36' + '|albacore|bataan|bearn|bluegill|carabiniere|casablanca|contedicavour|dukeofyork' + '|echo|eldridge|gangut|glorious|grenville|hibiki|hunter|icarus' + '|kawakaze|kinggeorgev|kinu|kuroshio|lagalissonniere|lemalinmuse|letemeraire|littorio' + '|mikuma|minsk|newcastle|oyashio|quincy|ryuujou|sanjuan|sheffieldmuse' + '|trento|u37|vincennes|z24|z26|z28|z36' ')' '(neptune|monarch|ibuki|izumo|roon|saintlouis' From f7461e3ad1dde590f29762ef88d9f248c463fe0d Mon Sep 17 00:00:00 2001 From: RilyLC <94281898+RilyLC@users.noreply.github.com> Date: Thu, 23 Nov 2023 22:41:47 +0800 Subject: [PATCH 4/8] Upd:[TW]Event:Northern Overture Rerun (#3306) --- campaign/Readme.md | 1 + module/config/argument/args.json | 44 ++++++++++++++++---------------- module/config/i18n/en-US.json | 2 +- module/config/i18n/ja-JP.json | 2 +- module/config/i18n/zh-CN.json | 2 +- module/config/i18n/zh-TW.json | 2 +- 6 files changed, 27 insertions(+), 26 deletions(-) diff --git a/campaign/Readme.md b/campaign/Readme.md index a2afd54d3..2925473ad 100644 --- a/campaign/Readme.md +++ b/campaign/Readme.md @@ -165,3 +165,4 @@ To add a new event, add a new row in here, and run `python -m module.config.conf | 20231026 | event 20231026 cn | Tempesta and the Fountain of Youth | 飓风与青春之泉 | Tempesta and the Fountain of Youth | テンペスタと若返りの泉 | - | | 20231109 | event 20210916 cn | Upon the Shimmering Blue | 复刻碧海光粼 | Upon the Shimmering Blue Rerun | 駆けよ 碧海の吹き風(復刻) | - | | 20231109 | event 20220728 cn | Aquilifer's Ballade | - | - | - | 雄鷹的敘事歌 | +| 20231123 | event 20220210 cn | Northern Overture Rerun | - | - | - | 復刻北境序曲 | \ No newline at end of file diff --git a/module/config/argument/args.json b/module/config/argument/args.json index ba4b615c7..d5a7453c6 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -1678,13 +1678,13 @@ ], "display": "hide", "option_bold": [ - "event_20220728_cn", + "event_20220210_cn", "event_20210916_cn" ], "cn": "event_20210916_cn", "en": "event_20210916_cn", "jp": "event_20210916_cn", - "tw": "event_20220728_cn" + "tw": "event_20220210_cn" }, "Mode": { "type": "select", @@ -2008,13 +2008,13 @@ "event_20231026_cn" ], "option_bold": [ - "event_20220728_cn", + "event_20220210_cn", "event_20210916_cn" ], "cn": "event_20210916_cn", "en": "event_20210916_cn", "jp": "event_20210916_cn", - "tw": "event_20220728_cn" + "tw": "event_20220210_cn" }, "Mode": { "type": "select", @@ -2453,13 +2453,13 @@ "event_20231026_cn" ], "option_bold": [ - "event_20220728_cn", + "event_20220210_cn", "event_20210916_cn" ], "cn": "event_20210916_cn", "en": "event_20210916_cn", "jp": "event_20210916_cn", - "tw": "event_20220728_cn" + "tw": "event_20220210_cn" }, "Mode": { "type": "select", @@ -2862,8 +2862,8 @@ "raid_20230629" ], "option_bold": [ - "raid_20221027", - "raid_20230629" + "raid_20230629", + "raid_20221027" ], "cn": "raid_20230629", "en": "raid_20230629", @@ -3380,8 +3380,8 @@ "war_archives_20220414_cn" ], "option_bold": [ - "war_archives_20220414_cn", - "war_archives_20201229_cn" + "war_archives_20201229_cn", + "war_archives_20220414_cn" ], "cn": "war_archives_20201229_cn", "en": "war_archives_20201229_cn", @@ -3836,13 +3836,13 @@ "event_20231026_cn" ], "option_bold": [ - "event_20220728_cn", + "event_20220210_cn", "event_20210916_cn" ], "cn": "event_20210916_cn", "en": "event_20210916_cn", "jp": "event_20210916_cn", - "tw": "event_20220728_cn" + "tw": "event_20220210_cn" }, "Mode": { "type": "select", @@ -4298,13 +4298,13 @@ "event_20231026_cn" ], "option_bold": [ - "event_20220728_cn", + "event_20220210_cn", "event_20210916_cn" ], "cn": "event_20210916_cn", "en": "event_20210916_cn", "jp": "event_20210916_cn", - "tw": "event_20220728_cn" + "tw": "event_20220210_cn" }, "Mode": { "type": "select", @@ -4760,13 +4760,13 @@ "event_20231026_cn" ], "option_bold": [ - "event_20220728_cn", + "event_20220210_cn", "event_20210916_cn" ], "cn": "event_20210916_cn", "en": "event_20210916_cn", "jp": "event_20210916_cn", - "tw": "event_20220728_cn" + "tw": "event_20220210_cn" }, "Mode": { "type": "select", @@ -5222,13 +5222,13 @@ "event_20231026_cn" ], "option_bold": [ - "event_20220728_cn", + "event_20220210_cn", "event_20210916_cn" ], "cn": "event_20210916_cn", "en": "event_20210916_cn", "jp": "event_20210916_cn", - "tw": "event_20220728_cn" + "tw": "event_20220210_cn" }, "Mode": { "type": "select", @@ -5674,13 +5674,13 @@ "event_20231026_cn" ], "option_bold": [ - "event_20220728_cn", + "event_20220210_cn", "event_20210916_cn" ], "cn": "event_20210916_cn", "en": "event_20210916_cn", "jp": "event_20210916_cn", - "tw": "event_20220728_cn" + "tw": "event_20220210_cn" }, "Mode": { "type": "select", @@ -6080,8 +6080,8 @@ "raid_20230629" ], "option_bold": [ - "raid_20221027", - "raid_20230629" + "raid_20230629", + "raid_20221027" ], "cn": "raid_20230629", "en": "raid_20230629", diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index cfb59dc62..26aea1fed 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -649,7 +649,7 @@ "help": "Automatically selects to the latest event", "campaign_main": "campaign_main", "coalition_20230323": "Frostfall", - "event_20200227_cn": "Northern Overture", + "event_20200227_cn": "Northern Overture Rerun", "event_20200312_cn": "The Solomon Ranger Rerun", "event_20200326_cn": "Microlayer Medley", "event_20200423_cn": "Crimson Echoes Rerun", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 4c4c9515c..2cb9c72ba 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -649,7 +649,7 @@ "help": "Campaign.Event.help", "campaign_main": "campaign_main", "coalition_20230323": "星霜海嵐", - "event_20200227_cn": "凍絶の北海", + "event_20200227_cn": "凍絶の北海(復刻)", "event_20200312_cn": "南洋に靡く硝煙(復刻)", "event_20200326_cn": "闇靄払う銀翼", "event_20200423_cn": "縹映る深緋の残響(復刻)", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index 1da0881f7..1beacbcb2 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -649,7 +649,7 @@ "help": "自动选择至最新的活动", "campaign_main": "主线图", "coalition_20230323": "极地风暴", - "event_20200227_cn": "北境序曲", + "event_20200227_cn": "复刻北境序曲", "event_20200312_cn": "复刻斯图尔特的硝烟", "event_20200326_cn": "微层混合", "event_20200423_cn": "复刻苍红的回响", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index c9178e66e..65e1d7a46 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -690,7 +690,7 @@ "event_20211111_cn": "杰諾瓦的焰火", "event_20211125_cn": "復刻-交匯世界的弧光", "event_20211229_cn": "逆轉彩虹之塔", - "event_20220210_cn": "Northern Overture Rerun", + "event_20220210_cn": "復刻北境序曲", "event_20220224_cn": "深度回音", "event_20220310_tw": "復刻斯圖爾特的硝煙", "event_20220324_cn": "虛像構築之塔", From 530128ea49b3b5790a69faf1c9ea605f47f2b94e Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Thu, 23 Nov 2023 22:00:39 +0800 Subject: [PATCH 5/8] Add: Event entrance of The Ninja Scrolls: Azur Flash (event_20231123_cn) --- campaign/Readme.md | 3 +- module/config/argument/args.json | 108 +++++++++++++++++-------------- module/config/i18n/en-US.json | 3 +- module/config/i18n/ja-JP.json | 3 +- module/config/i18n/zh-CN.json | 3 +- module/config/i18n/zh-TW.json | 1 + 6 files changed, 67 insertions(+), 54 deletions(-) diff --git a/campaign/Readme.md b/campaign/Readme.md index 2925473ad..3e7db71b0 100644 --- a/campaign/Readme.md +++ b/campaign/Readme.md @@ -165,4 +165,5 @@ To add a new event, add a new row in here, and run `python -m module.config.conf | 20231026 | event 20231026 cn | Tempesta and the Fountain of Youth | 飓风与青春之泉 | Tempesta and the Fountain of Youth | テンペスタと若返りの泉 | - | | 20231109 | event 20210916 cn | Upon the Shimmering Blue | 复刻碧海光粼 | Upon the Shimmering Blue Rerun | 駆けよ 碧海の吹き風(復刻) | - | | 20231109 | event 20220728 cn | Aquilifer's Ballade | - | - | - | 雄鷹的敘事歌 | -| 20231123 | event 20220210 cn | Northern Overture Rerun | - | - | - | 復刻北境序曲 | \ No newline at end of file +| 20231123 | event 20220210 cn | Northern Overture Rerun | - | - | - | 復刻北境序曲 | +| 20231123 | event 20231123 cn | The Ninja Scrolls: Azur Flash | 苍闪忍法帖 | The Ninja Scrolls: Azur Flash | 蒼閃忍法帖 | - | diff --git a/module/config/argument/args.json b/module/config/argument/args.json index d5a7453c6..20371cebc 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -1674,16 +1674,17 @@ "event_20230803_cn", "event_20230817_cn", "event_20230914_cn", - "event_20231026_cn" + "event_20231026_cn", + "event_20231123_cn" ], "display": "hide", "option_bold": [ - "event_20220210_cn", - "event_20210916_cn" + "event_20231123_cn", + "event_20220210_cn" ], - "cn": "event_20210916_cn", - "en": "event_20210916_cn", - "jp": "event_20210916_cn", + "cn": "event_20231123_cn", + "en": "event_20231123_cn", + "jp": "event_20231123_cn", "tw": "event_20220210_cn" }, "Mode": { @@ -2005,15 +2006,16 @@ "event_20230803_cn", "event_20230817_cn", "event_20230914_cn", - "event_20231026_cn" + "event_20231026_cn", + "event_20231123_cn" ], "option_bold": [ - "event_20220210_cn", - "event_20210916_cn" + "event_20231123_cn", + "event_20220210_cn" ], - "cn": "event_20210916_cn", - "en": "event_20210916_cn", - "jp": "event_20210916_cn", + "cn": "event_20231123_cn", + "en": "event_20231123_cn", + "jp": "event_20231123_cn", "tw": "event_20220210_cn" }, "Mode": { @@ -2450,15 +2452,16 @@ "event_20230803_cn", "event_20230817_cn", "event_20230914_cn", - "event_20231026_cn" + "event_20231026_cn", + "event_20231123_cn" ], "option_bold": [ - "event_20220210_cn", - "event_20210916_cn" + "event_20231123_cn", + "event_20220210_cn" ], - "cn": "event_20210916_cn", - "en": "event_20210916_cn", - "jp": "event_20210916_cn", + "cn": "event_20231123_cn", + "en": "event_20231123_cn", + "jp": "event_20231123_cn", "tw": "event_20220210_cn" }, "Mode": { @@ -3380,8 +3383,8 @@ "war_archives_20220414_cn" ], "option_bold": [ - "war_archives_20201229_cn", - "war_archives_20220414_cn" + "war_archives_20220414_cn", + "war_archives_20201229_cn" ], "cn": "war_archives_20201229_cn", "en": "war_archives_20201229_cn", @@ -3833,15 +3836,16 @@ "event_20230803_cn", "event_20230817_cn", "event_20230914_cn", - "event_20231026_cn" + "event_20231026_cn", + "event_20231123_cn" ], "option_bold": [ - "event_20220210_cn", - "event_20210916_cn" + "event_20231123_cn", + "event_20220210_cn" ], - "cn": "event_20210916_cn", - "en": "event_20210916_cn", - "jp": "event_20210916_cn", + "cn": "event_20231123_cn", + "en": "event_20231123_cn", + "jp": "event_20231123_cn", "tw": "event_20220210_cn" }, "Mode": { @@ -4295,15 +4299,16 @@ "event_20230803_cn", "event_20230817_cn", "event_20230914_cn", - "event_20231026_cn" + "event_20231026_cn", + "event_20231123_cn" ], "option_bold": [ - "event_20220210_cn", - "event_20210916_cn" + "event_20231123_cn", + "event_20220210_cn" ], - "cn": "event_20210916_cn", - "en": "event_20210916_cn", - "jp": "event_20210916_cn", + "cn": "event_20231123_cn", + "en": "event_20231123_cn", + "jp": "event_20231123_cn", "tw": "event_20220210_cn" }, "Mode": { @@ -4757,15 +4762,16 @@ "event_20230803_cn", "event_20230817_cn", "event_20230914_cn", - "event_20231026_cn" + "event_20231026_cn", + "event_20231123_cn" ], "option_bold": [ - "event_20220210_cn", - "event_20210916_cn" + "event_20231123_cn", + "event_20220210_cn" ], - "cn": "event_20210916_cn", - "en": "event_20210916_cn", - "jp": "event_20210916_cn", + "cn": "event_20231123_cn", + "en": "event_20231123_cn", + "jp": "event_20231123_cn", "tw": "event_20220210_cn" }, "Mode": { @@ -5219,15 +5225,16 @@ "event_20230803_cn", "event_20230817_cn", "event_20230914_cn", - "event_20231026_cn" + "event_20231026_cn", + "event_20231123_cn" ], "option_bold": [ - "event_20220210_cn", - "event_20210916_cn" + "event_20231123_cn", + "event_20220210_cn" ], - "cn": "event_20210916_cn", - "en": "event_20210916_cn", - "jp": "event_20210916_cn", + "cn": "event_20231123_cn", + "en": "event_20231123_cn", + "jp": "event_20231123_cn", "tw": "event_20220210_cn" }, "Mode": { @@ -5671,15 +5678,16 @@ "event_20230803_cn", "event_20230817_cn", "event_20230914_cn", - "event_20231026_cn" + "event_20231026_cn", + "event_20231123_cn" ], "option_bold": [ - "event_20220210_cn", - "event_20210916_cn" + "event_20231123_cn", + "event_20220210_cn" ], - "cn": "event_20210916_cn", - "en": "event_20210916_cn", - "jp": "event_20210916_cn", + "cn": "event_20231123_cn", + "en": "event_20231123_cn", + "jp": "event_20231123_cn", "tw": "event_20220210_cn" }, "Mode": { diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 26aea1fed..d665028db 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -649,7 +649,7 @@ "help": "Automatically selects to the latest event", "campaign_main": "campaign_main", "coalition_20230323": "Frostfall", - "event_20200227_cn": "Northern Overture Rerun", + "event_20200227_cn": "Northern Overture", "event_20200312_cn": "The Solomon Ranger Rerun", "event_20200326_cn": "Microlayer Medley", "event_20200423_cn": "Crimson Echoes Rerun", @@ -709,6 +709,7 @@ "event_20230817_cn": "The Fools Scales", "event_20230914_cn": "Effulgence Before Eclipse", "event_20231026_cn": "Tempesta and the Fountain of Youth", + "event_20231123_cn": "The Ninja Scrolls: Azur Flash", "raid_20200624": "Air Raid Drills with Essex Rerun", "raid_20210708": "Cross Wave rerun", "raid_20220127": "Mystery Investigation", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 2cb9c72ba..3d14b9ac2 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -649,7 +649,7 @@ "help": "Campaign.Event.help", "campaign_main": "campaign_main", "coalition_20230323": "星霜海嵐", - "event_20200227_cn": "凍絶の北海(復刻)", + "event_20200227_cn": "凍絶の北海", "event_20200312_cn": "南洋に靡く硝煙(復刻)", "event_20200326_cn": "闇靄払う銀翼", "event_20200423_cn": "縹映る深緋の残響(復刻)", @@ -709,6 +709,7 @@ "event_20230817_cn": "愚者の天秤", "event_20230914_cn": "須臾望月抄", "event_20231026_cn": "テンペスタと若返りの泉", + "event_20231123_cn": "蒼閃忍法帖", "raid_20200624": "特別演習超空強襲波(復刻)", "raid_20210708": "交錯する新たな波 (復刻)", "raid_20220127": "秘密事件調査", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index 1beacbcb2..40fe34070 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -649,7 +649,7 @@ "help": "自动选择至最新的活动", "campaign_main": "主线图", "coalition_20230323": "极地风暴", - "event_20200227_cn": "复刻北境序曲", + "event_20200227_cn": "北境序曲", "event_20200312_cn": "复刻斯图尔特的硝烟", "event_20200326_cn": "微层混合", "event_20200423_cn": "复刻苍红的回响", @@ -709,6 +709,7 @@ "event_20230817_cn": "愚者的天平", "event_20230914_cn": "须臾望月抄", "event_20231026_cn": "飓风与青春之泉", + "event_20231123_cn": "苍闪忍法帖", "raid_20200624": "复刻特别演习埃塞克斯级", "raid_20210708": "复刻穿越彼方的水线", "raid_20220127": "演习神秘事件调查", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 65e1d7a46..42672d8a9 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -709,6 +709,7 @@ "event_20230817_cn": "The Fools Scales", "event_20230914_cn": "Effulgence Before Eclipse", "event_20231026_cn": "Tempesta and the Fountain of Youth", + "event_20231123_cn": "The Ninja Scrolls: Azur Flash", "raid_20200624": "特別演習埃塞克斯級(復刻)", "raid_20210708": "復刻穿越彼方的水線", "raid_20220127": "演習神秘事件調查", From 8a8fcaf56fda12ff8fb4525fa0307f852b666da4 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Fri, 24 Nov 2023 00:45:23 +0800 Subject: [PATCH 6/8] Add: Chapter T --- assets/cn/template/TEMPLATE_SIREN_SK_BB.gif | Bin 0 -> 7554 bytes assets/cn/template/TEMPLATE_SIREN_SK_CA.gif | Bin 0 -> 6520 bytes assets/cn/template/TEMPLATE_SIREN_SK_CL.gif | Bin 0 -> 3272 bytes assets/cn/template/TEMPLATE_SIREN_SK_CV.gif | Bin 0 -> 5343 bytes assets/cn/template/TEMPLATE_SIREN_SK_DD.gif | Bin 0 -> 3299 bytes assets/en/template/TEMPLATE_SIREN_SK_BB.gif | Bin 0 -> 7554 bytes assets/en/template/TEMPLATE_SIREN_SK_CA.gif | Bin 0 -> 6520 bytes assets/en/template/TEMPLATE_SIREN_SK_CL.gif | Bin 0 -> 3272 bytes assets/en/template/TEMPLATE_SIREN_SK_CV.gif | Bin 0 -> 5343 bytes assets/en/template/TEMPLATE_SIREN_SK_DD.gif | Bin 0 -> 3299 bytes assets/jp/template/TEMPLATE_SIREN_SK_BB.gif | Bin 0 -> 7554 bytes assets/jp/template/TEMPLATE_SIREN_SK_CA.gif | Bin 0 -> 6520 bytes assets/jp/template/TEMPLATE_SIREN_SK_CL.gif | Bin 0 -> 3272 bytes assets/jp/template/TEMPLATE_SIREN_SK_CV.gif | Bin 0 -> 5343 bytes assets/jp/template/TEMPLATE_SIREN_SK_DD.gif | Bin 0 -> 3299 bytes assets/tw/template/TEMPLATE_SIREN_SK_BB.gif | Bin 0 -> 7554 bytes assets/tw/template/TEMPLATE_SIREN_SK_CA.gif | Bin 0 -> 6520 bytes assets/tw/template/TEMPLATE_SIREN_SK_CL.gif | Bin 0 -> 3272 bytes assets/tw/template/TEMPLATE_SIREN_SK_CV.gif | Bin 0 -> 5343 bytes assets/tw/template/TEMPLATE_SIREN_SK_DD.gif | Bin 0 -> 3299 bytes campaign/event_20231123_cn/campaign_base.py | 36 +++++++ campaign/event_20231123_cn/t1.py | 108 ++++++++++++++++++++ campaign/event_20231123_cn/t2.py | 88 ++++++++++++++++ campaign/event_20231123_cn/t3.py | 84 +++++++++++++++ campaign/event_20231123_cn/t4.py | 84 +++++++++++++++ campaign/event_20231123_cn/t5.py | 100 ++++++++++++++++++ module/campaign/run.py | 1 + module/template/assets.py | 5 + 28 files changed, 506 insertions(+) create mode 100644 assets/cn/template/TEMPLATE_SIREN_SK_BB.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_SK_CA.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_SK_CL.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_SK_CV.gif create mode 100644 assets/cn/template/TEMPLATE_SIREN_SK_DD.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_SK_BB.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_SK_CA.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_SK_CL.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_SK_CV.gif create mode 100644 assets/en/template/TEMPLATE_SIREN_SK_DD.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_SK_BB.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_SK_CA.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_SK_CL.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_SK_CV.gif create mode 100644 assets/jp/template/TEMPLATE_SIREN_SK_DD.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_SK_BB.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_SK_CA.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_SK_CL.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_SK_CV.gif create mode 100644 assets/tw/template/TEMPLATE_SIREN_SK_DD.gif create mode 100644 campaign/event_20231123_cn/campaign_base.py create mode 100644 campaign/event_20231123_cn/t1.py create mode 100644 campaign/event_20231123_cn/t2.py create mode 100644 campaign/event_20231123_cn/t3.py create mode 100644 campaign/event_20231123_cn/t4.py create mode 100644 campaign/event_20231123_cn/t5.py diff --git a/assets/cn/template/TEMPLATE_SIREN_SK_BB.gif b/assets/cn/template/TEMPLATE_SIREN_SK_BB.gif new file mode 100644 index 0000000000000000000000000000000000000000..6896f75648beb39e4a9062b43dcb4801c8683bc2 GIT binary patch literal 7554 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 literal 0 HcmV?d00001 diff --git a/assets/cn/template/TEMPLATE_SIREN_SK_CA.gif b/assets/cn/template/TEMPLATE_SIREN_SK_CA.gif new file mode 100644 index 0000000000000000000000000000000000000000..141de5bed3d32e51d5a4eaf7b6ebcabeb772b938 GIT binary patch literal 6520 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 literal 0 HcmV?d00001 diff --git a/assets/cn/template/TEMPLATE_SIREN_SK_CL.gif b/assets/cn/template/TEMPLATE_SIREN_SK_CL.gif new file mode 100644 index 0000000000000000000000000000000000000000..1110c3af559821081ef0eccbd33f494426e2c930 GIT binary patch literal 3272 zcmeI!|5MU=9>DPrh=!;Lgo1(!ejz|I5Jmh_f+*?wT`9k0Nq#|_+bg`a&br$13koXh zH#k$HVjY+CveMNWDyucoG)tRq`=#bC{E}neOwGPq-h0OxZ)b0A?q>Fve(3cVyyi9Y zddzccl$am5+aAI}N(lP&>C?xLAD5Sx-@kwV?%lh$Z{NOt{rc6bS1(__TwGjSSXh{! zpMUY<#oXN7lP6CeKYsk^(WA-9$p;S}+`oVS-o1Nw@7^699UU1N85$ZgnM~KNUF+-X zyLj=U(P-@I>N<1gOlN0jM@L6{dwW}3TWf3U$&)9K9Xr<8*jQIrS6f?KQ&Xc>tE;N2 z%F4=0OG}R&IdbUGp~Aw#f`WoQd-mk#=jY|+$z-zJ+}xa;9H~^gYuB!wJ9lPeWbD|n zBP}g0H8nLQC1u;TZOO^W2?+`D@$s>-u`w|*(b3USQBjeRkz2QJ6^q3Y5fS0x;UbYJ zEG$eY6bb}_(9qB=TefW8yg4K!Bse%YC@6@}=LZA?@OV65Utczxy=l`XA0MBM8#l68 zEN^dbCX>lvFz9sph7B8NG@6%}m#3$vhlhu|yE~OirBEntZf>rwt}ZSvWHOmVA~`!d zJ2^QKi9|<7M+XN7JRXn3;V>8s8jZHKwM8P4(3klQxH2UpLvb~bw z0>jv`klYrO>!R&lgY;d^PYrg*`G209-#uWdPN65| zPq!ydS=l+~G>{A6p2M|NMV^&RZG!I7>{^{C&+u$_@}Tu%RdkD*k!(`pd1*QU z$tl!zguu-BcDeXRud1TO*t)jL$scam)6(Ja|GbxSWn~4pvMLJTWNB#$Z~`C!iadS# z6euz~J3BKoGd(?RHk%(le7I`K`1ttP*w~F5HwFg>fhGO@{a3GEy>jIW5asga%K()N z7cQJXf4;Z3x2LD4ySw|`xpQaFo?SKO)TvXzm8PbqqeqWwwOWlv1AqapD3!{JiVB57 zQBqQJ;J|^sd-wjvmF(>7tgNie%uGNFaAggZ?c29YB$A}0q*Ye{Du5GU$^V2TFfee< z5`TYxKR-V%m;3ug0hSO51ON#Zi~Thu2n6Euc%&~|{QCmH3sE>E^@va)km#SJ+!>o{ z*uf>ev3Po4)B6`L9cN8w!fMB$H9$ZCibXOeRItF-j^TNu}}39A~MwcwU2EVs&m z8LfR=qcK$1v;Nq?PP?ucSx<`_>-0)X4j*<1j?)%q!poy@{t10c5Zuca|LPx?y(io) zt7_e1^Rbx!DhJ4s4-C^KPMkQQ)9HW{EiEk|L4Xqt4Gq5zk?QJdl}ZK7C@(Ju zW`H6oE-pTN_%M)T|Ni|TO5}3+zJ2@F6ahuDmLuuu>8m-i%0^;hB9LP(NB;j1`Hdd{ z4^Si=4(In10-|J95fCK+5}*hi=>26rrwaf%U=Wdw7(gIVd=*18RD-t8Ey^&~wMAK@ zY+dC=xB($7@Gm)P^L5KgJQa^bu;qHeaqj-5E{=vaT2G^3JXMsR;z*3I@2af16)}Hh zu!w$ovsJu{U#=-+3HJ0e$hJ@R9N45{=wIH&F(5XVY7vVZPN91zzK zSm{RHL2k$#`U?_MHYiLxHb;ymTlw`Fu>+-8cVV$&1owk&g`JO&WOyDn>gbbs)^9i5VCn45 zi!_^C71kPBte#J=Y*3(e?!kYXJ~-KSWIZEJtNOmwpsb~bHupXpH{EhzZ(cTs6JRhX F_+MtDNG<>X literal 0 HcmV?d00001 diff --git a/assets/cn/template/TEMPLATE_SIREN_SK_CV.gif b/assets/cn/template/TEMPLATE_SIREN_SK_CV.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb4310d1914db33c4ab0688896bdd112d4af595d GIT binary patch literal 5343 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 JX21b0{NE6>_6q<2 literal 0 HcmV?d00001 diff --git a/assets/cn/template/TEMPLATE_SIREN_SK_DD.gif b/assets/cn/template/TEMPLATE_SIREN_SK_DD.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfad2e80b19f8044b7152722b95421fc95555d6d GIT binary patch literal 3299 zcmeI!OH31a9Ki9GPTMJcOy88!$4p-o%A>rbg#t63woG|hpddtq0wtoZNg*4TXkyyh zg|-%jipGNnUYoGVW&?=_JnTVf1(H3W*@K%sEX%qZH}O!72lnI+Az2M)eSLkWPoM7X z?d|F5Id$q(cXxMJSC`l8?dM+AYHD)3-HnZn zE|<&cbUGXk9LMc;JBDE>iZ(Pf)YaA5Y_{6k+M1dgtJP|;SgNb5Pn$#QaXq*AF^EEWod0)c?f=R*+02v@9va+(MR4V1u^N~#edCP8ddOLB<<18;R)2MIXQjk9Z5Fy77xmG~TEPk)`_i5xx~F{YbjOH6SGvMAbS(Bwhjfxw?m=)E(R z0u7ZC)z<{aiC`!yEi{pL)}Ch30Zaz341STKNty|VaV`9i`7M!fV83X$lVDB<_;4*X z$x=IRSk66o?z*XI4ZK{RT?B6xl#M={L1@1x1>>_!ezSb8c&A*0-Jpt$qw`pb5a?Kb@7Tg_n#z$DD%yp=#S`=* z{z4Y5+!Da9l3R3af>VJ&;KGFqBr~I~pPW1iY{+L228eY{CU@TnJqEkq46-rmgl$Z zWC1xn0Sx^IKdxN4a`ECt(vRWcVX{#^piamxA;I`xU2;51-Y=5E!oq(kk|SUoi4uuK zLUzd^8;5Cf*d=6?uvnzV2VKHoFvv6^+4z(u@Al|pJslKCr5UwHg?Xic_5CMHv6~7; zJ&2TVY{pa?K=I;LB+64aU0Piq8=9OJ&{dhtnq!NbR~d+|BON#guIMqBC6`=0Vb$k- zpuo@IK>5)kWD%I+D?trFO%89~kT=c&f3&A)L0ZG4_(6L(%s{&Ca@P3sA)!*j-}0d_ z0GV_=0^VENxDL@B^BE)sia3U#(dzSEo91H!e1pcnEkN|1?}@!7A})-4xxc%HPfe?; zXA(w?9v7Pk+r*Cfr%9$pDzp7KjpIyiu5NV4hs38CuEhF0Orc_)GAVJ_ zyy%=!yRzp@tBZTV>r{!Mh4K{Nn#*N)Z3VNwbm)!np3SzVIIDYbtA D0&VQ# literal 0 HcmV?d00001 diff --git a/assets/en/template/TEMPLATE_SIREN_SK_BB.gif b/assets/en/template/TEMPLATE_SIREN_SK_BB.gif new file mode 100644 index 0000000000000000000000000000000000000000..6896f75648beb39e4a9062b43dcb4801c8683bc2 GIT binary patch literal 7554 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 literal 0 HcmV?d00001 diff --git a/assets/en/template/TEMPLATE_SIREN_SK_CA.gif b/assets/en/template/TEMPLATE_SIREN_SK_CA.gif new file mode 100644 index 0000000000000000000000000000000000000000..141de5bed3d32e51d5a4eaf7b6ebcabeb772b938 GIT binary patch literal 6520 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 literal 0 HcmV?d00001 diff --git a/assets/en/template/TEMPLATE_SIREN_SK_CL.gif b/assets/en/template/TEMPLATE_SIREN_SK_CL.gif new file mode 100644 index 0000000000000000000000000000000000000000..1110c3af559821081ef0eccbd33f494426e2c930 GIT binary patch literal 3272 zcmeI!|5MU=9>DPrh=!;Lgo1(!ejz|I5Jmh_f+*?wT`9k0Nq#|_+bg`a&br$13koXh zH#k$HVjY+CveMNWDyucoG)tRq`=#bC{E}neOwGPq-h0OxZ)b0A?q>Fve(3cVyyi9Y zddzccl$am5+aAI}N(lP&>C?xLAD5Sx-@kwV?%lh$Z{NOt{rc6bS1(__TwGjSSXh{! zpMUY<#oXN7lP6CeKYsk^(WA-9$p;S}+`oVS-o1Nw@7^699UU1N85$ZgnM~KNUF+-X zyLj=U(P-@I>N<1gOlN0jM@L6{dwW}3TWf3U$&)9K9Xr<8*jQIrS6f?KQ&Xc>tE;N2 z%F4=0OG}R&IdbUGp~Aw#f`WoQd-mk#=jY|+$z-zJ+}xa;9H~^gYuB!wJ9lPeWbD|n zBP}g0H8nLQC1u;TZOO^W2?+`D@$s>-u`w|*(b3USQBjeRkz2QJ6^q3Y5fS0x;UbYJ zEG$eY6bb}_(9qB=TefW8yg4K!Bse%YC@6@}=LZA?@OV65Utczxy=l`XA0MBM8#l68 zEN^dbCX>lvFz9sph7B8NG@6%}m#3$vhlhu|yE~OirBEntZf>rwt}ZSvWHOmVA~`!d zJ2^QKi9|<7M+XN7JRXn3;V>8s8jZHKwM8P4(3klQxH2UpLvb~bw z0>jv`klYrO>!R&lgY;d^PYrg*`G209-#uWdPN65| zPq!ydS=l+~G>{A6p2M|NMV^&RZG!I7>{^{C&+u$_@}Tu%RdkD*k!(`pd1*QU z$tl!zguu-BcDeXRud1TO*t)jL$scam)6(Ja|GbxSWn~4pvMLJTWNB#$Z~`C!iadS# z6euz~J3BKoGd(?RHk%(le7I`K`1ttP*w~F5HwFg>fhGO@{a3GEy>jIW5asga%K()N z7cQJXf4;Z3x2LD4ySw|`xpQaFo?SKO)TvXzm8PbqqeqWwwOWlv1AqapD3!{JiVB57 zQBqQJ;J|^sd-wjvmF(>7tgNie%uGNFaAggZ?c29YB$A}0q*Ye{Du5GU$^V2TFfee< z5`TYxKR-V%m;3ug0hSO51ON#Zi~Thu2n6Euc%&~|{QCmH3sE>E^@va)km#SJ+!>o{ z*uf>ev3Po4)B6`L9cN8w!fMB$H9$ZCibXOeRItF-j^TNu}}39A~MwcwU2EVs&m z8LfR=qcK$1v;Nq?PP?ucSx<`_>-0)X4j*<1j?)%q!poy@{t10c5Zuca|LPx?y(io) zt7_e1^Rbx!DhJ4s4-C^KPMkQQ)9HW{EiEk|L4Xqt4Gq5zk?QJdl}ZK7C@(Ju zW`H6oE-pTN_%M)T|Ni|TO5}3+zJ2@F6ahuDmLuuu>8m-i%0^;hB9LP(NB;j1`Hdd{ z4^Si=4(In10-|J95fCK+5}*hi=>26rrwaf%U=Wdw7(gIVd=*18RD-t8Ey^&~wMAK@ zY+dC=xB($7@Gm)P^L5KgJQa^bu;qHeaqj-5E{=vaT2G^3JXMsR;z*3I@2af16)}Hh zu!w$ovsJu{U#=-+3HJ0e$hJ@R9N45{=wIH&F(5XVY7vVZPN91zzK zSm{RHL2k$#`U?_MHYiLxHb;ymTlw`Fu>+-8cVV$&1owk&g`JO&WOyDn>gbbs)^9i5VCn45 zi!_^C71kPBte#J=Y*3(e?!kYXJ~-KSWIZEJtNOmwpsb~bHupXpH{EhzZ(cTs6JRhX F_+MtDNG<>X literal 0 HcmV?d00001 diff --git a/assets/en/template/TEMPLATE_SIREN_SK_CV.gif b/assets/en/template/TEMPLATE_SIREN_SK_CV.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb4310d1914db33c4ab0688896bdd112d4af595d GIT binary patch literal 5343 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 JX21b0{NE6>_6q<2 literal 0 HcmV?d00001 diff --git a/assets/en/template/TEMPLATE_SIREN_SK_DD.gif b/assets/en/template/TEMPLATE_SIREN_SK_DD.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfad2e80b19f8044b7152722b95421fc95555d6d GIT binary patch literal 3299 zcmeI!OH31a9Ki9GPTMJcOy88!$4p-o%A>rbg#t63woG|hpddtq0wtoZNg*4TXkyyh zg|-%jipGNnUYoGVW&?=_JnTVf1(H3W*@K%sEX%qZH}O!72lnI+Az2M)eSLkWPoM7X z?d|F5Id$q(cXxMJSC`l8?dM+AYHD)3-HnZn zE|<&cbUGXk9LMc;JBDE>iZ(Pf)YaA5Y_{6k+M1dgtJP|;SgNb5Pn$#QaXq*AF^EEWod0)c?f=R*+02v@9va+(MR4V1u^N~#edCP8ddOLB<<18;R)2MIXQjk9Z5Fy77xmG~TEPk)`_i5xx~F{YbjOH6SGvMAbS(Bwhjfxw?m=)E(R z0u7ZC)z<{aiC`!yEi{pL)}Ch30Zaz341STKNty|VaV`9i`7M!fV83X$lVDB<_;4*X z$x=IRSk66o?z*XI4ZK{RT?B6xl#M={L1@1x1>>_!ezSb8c&A*0-Jpt$qw`pb5a?Kb@7Tg_n#z$DD%yp=#S`=* z{z4Y5+!Da9l3R3af>VJ&;KGFqBr~I~pPW1iY{+L228eY{CU@TnJqEkq46-rmgl$Z zWC1xn0Sx^IKdxN4a`ECt(vRWcVX{#^piamxA;I`xU2;51-Y=5E!oq(kk|SUoi4uuK zLUzd^8;5Cf*d=6?uvnzV2VKHoFvv6^+4z(u@Al|pJslKCr5UwHg?Xic_5CMHv6~7; zJ&2TVY{pa?K=I;LB+64aU0Piq8=9OJ&{dhtnq!NbR~d+|BON#guIMqBC6`=0Vb$k- zpuo@IK>5)kWD%I+D?trFO%89~kT=c&f3&A)L0ZG4_(6L(%s{&Ca@P3sA)!*j-}0d_ z0GV_=0^VENxDL@B^BE)sia3U#(dzSEo91H!e1pcnEkN|1?}@!7A})-4xxc%HPfe?; zXA(w?9v7Pk+r*Cfr%9$pDzp7KjpIyiu5NV4hs38CuEhF0Orc_)GAVJ_ zyy%=!yRzp@tBZTV>r{!Mh4K{Nn#*N)Z3VNwbm)!np3SzVIIDYbtA D0&VQ# literal 0 HcmV?d00001 diff --git a/assets/jp/template/TEMPLATE_SIREN_SK_BB.gif b/assets/jp/template/TEMPLATE_SIREN_SK_BB.gif new file mode 100644 index 0000000000000000000000000000000000000000..6896f75648beb39e4a9062b43dcb4801c8683bc2 GIT binary patch literal 7554 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 literal 0 HcmV?d00001 diff --git a/assets/jp/template/TEMPLATE_SIREN_SK_CA.gif b/assets/jp/template/TEMPLATE_SIREN_SK_CA.gif new file mode 100644 index 0000000000000000000000000000000000000000..141de5bed3d32e51d5a4eaf7b6ebcabeb772b938 GIT binary patch literal 6520 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 literal 0 HcmV?d00001 diff --git a/assets/jp/template/TEMPLATE_SIREN_SK_CL.gif b/assets/jp/template/TEMPLATE_SIREN_SK_CL.gif new file mode 100644 index 0000000000000000000000000000000000000000..1110c3af559821081ef0eccbd33f494426e2c930 GIT binary patch literal 3272 zcmeI!|5MU=9>DPrh=!;Lgo1(!ejz|I5Jmh_f+*?wT`9k0Nq#|_+bg`a&br$13koXh zH#k$HVjY+CveMNWDyucoG)tRq`=#bC{E}neOwGPq-h0OxZ)b0A?q>Fve(3cVyyi9Y zddzccl$am5+aAI}N(lP&>C?xLAD5Sx-@kwV?%lh$Z{NOt{rc6bS1(__TwGjSSXh{! zpMUY<#oXN7lP6CeKYsk^(WA-9$p;S}+`oVS-o1Nw@7^699UU1N85$ZgnM~KNUF+-X zyLj=U(P-@I>N<1gOlN0jM@L6{dwW}3TWf3U$&)9K9Xr<8*jQIrS6f?KQ&Xc>tE;N2 z%F4=0OG}R&IdbUGp~Aw#f`WoQd-mk#=jY|+$z-zJ+}xa;9H~^gYuB!wJ9lPeWbD|n zBP}g0H8nLQC1u;TZOO^W2?+`D@$s>-u`w|*(b3USQBjeRkz2QJ6^q3Y5fS0x;UbYJ zEG$eY6bb}_(9qB=TefW8yg4K!Bse%YC@6@}=LZA?@OV65Utczxy=l`XA0MBM8#l68 zEN^dbCX>lvFz9sph7B8NG@6%}m#3$vhlhu|yE~OirBEntZf>rwt}ZSvWHOmVA~`!d zJ2^QKi9|<7M+XN7JRXn3;V>8s8jZHKwM8P4(3klQxH2UpLvb~bw z0>jv`klYrO>!R&lgY;d^PYrg*`G209-#uWdPN65| zPq!ydS=l+~G>{A6p2M|NMV^&RZG!I7>{^{C&+u$_@}Tu%RdkD*k!(`pd1*QU z$tl!zguu-BcDeXRud1TO*t)jL$scam)6(Ja|GbxSWn~4pvMLJTWNB#$Z~`C!iadS# z6euz~J3BKoGd(?RHk%(le7I`K`1ttP*w~F5HwFg>fhGO@{a3GEy>jIW5asga%K()N z7cQJXf4;Z3x2LD4ySw|`xpQaFo?SKO)TvXzm8PbqqeqWwwOWlv1AqapD3!{JiVB57 zQBqQJ;J|^sd-wjvmF(>7tgNie%uGNFaAggZ?c29YB$A}0q*Ye{Du5GU$^V2TFfee< z5`TYxKR-V%m;3ug0hSO51ON#Zi~Thu2n6Euc%&~|{QCmH3sE>E^@va)km#SJ+!>o{ z*uf>ev3Po4)B6`L9cN8w!fMB$H9$ZCibXOeRItF-j^TNu}}39A~MwcwU2EVs&m z8LfR=qcK$1v;Nq?PP?ucSx<`_>-0)X4j*<1j?)%q!poy@{t10c5Zuca|LPx?y(io) zt7_e1^Rbx!DhJ4s4-C^KPMkQQ)9HW{EiEk|L4Xqt4Gq5zk?QJdl}ZK7C@(Ju zW`H6oE-pTN_%M)T|Ni|TO5}3+zJ2@F6ahuDmLuuu>8m-i%0^;hB9LP(NB;j1`Hdd{ z4^Si=4(In10-|J95fCK+5}*hi=>26rrwaf%U=Wdw7(gIVd=*18RD-t8Ey^&~wMAK@ zY+dC=xB($7@Gm)P^L5KgJQa^bu;qHeaqj-5E{=vaT2G^3JXMsR;z*3I@2af16)}Hh zu!w$ovsJu{U#=-+3HJ0e$hJ@R9N45{=wIH&F(5XVY7vVZPN91zzK zSm{RHL2k$#`U?_MHYiLxHb;ymTlw`Fu>+-8cVV$&1owk&g`JO&WOyDn>gbbs)^9i5VCn45 zi!_^C71kPBte#J=Y*3(e?!kYXJ~-KSWIZEJtNOmwpsb~bHupXpH{EhzZ(cTs6JRhX F_+MtDNG<>X literal 0 HcmV?d00001 diff --git a/assets/jp/template/TEMPLATE_SIREN_SK_CV.gif b/assets/jp/template/TEMPLATE_SIREN_SK_CV.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb4310d1914db33c4ab0688896bdd112d4af595d GIT binary patch literal 5343 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 JX21b0{NE6>_6q<2 literal 0 HcmV?d00001 diff --git a/assets/jp/template/TEMPLATE_SIREN_SK_DD.gif b/assets/jp/template/TEMPLATE_SIREN_SK_DD.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfad2e80b19f8044b7152722b95421fc95555d6d GIT binary patch literal 3299 zcmeI!OH31a9Ki9GPTMJcOy88!$4p-o%A>rbg#t63woG|hpddtq0wtoZNg*4TXkyyh zg|-%jipGNnUYoGVW&?=_JnTVf1(H3W*@K%sEX%qZH}O!72lnI+Az2M)eSLkWPoM7X z?d|F5Id$q(cXxMJSC`l8?dM+AYHD)3-HnZn zE|<&cbUGXk9LMc;JBDE>iZ(Pf)YaA5Y_{6k+M1dgtJP|;SgNb5Pn$#QaXq*AF^EEWod0)c?f=R*+02v@9va+(MR4V1u^N~#edCP8ddOLB<<18;R)2MIXQjk9Z5Fy77xmG~TEPk)`_i5xx~F{YbjOH6SGvMAbS(Bwhjfxw?m=)E(R z0u7ZC)z<{aiC`!yEi{pL)}Ch30Zaz341STKNty|VaV`9i`7M!fV83X$lVDB<_;4*X z$x=IRSk66o?z*XI4ZK{RT?B6xl#M={L1@1x1>>_!ezSb8c&A*0-Jpt$qw`pb5a?Kb@7Tg_n#z$DD%yp=#S`=* z{z4Y5+!Da9l3R3af>VJ&;KGFqBr~I~pPW1iY{+L228eY{CU@TnJqEkq46-rmgl$Z zWC1xn0Sx^IKdxN4a`ECt(vRWcVX{#^piamxA;I`xU2;51-Y=5E!oq(kk|SUoi4uuK zLUzd^8;5Cf*d=6?uvnzV2VKHoFvv6^+4z(u@Al|pJslKCr5UwHg?Xic_5CMHv6~7; zJ&2TVY{pa?K=I;LB+64aU0Piq8=9OJ&{dhtnq!NbR~d+|BON#guIMqBC6`=0Vb$k- zpuo@IK>5)kWD%I+D?trFO%89~kT=c&f3&A)L0ZG4_(6L(%s{&Ca@P3sA)!*j-}0d_ z0GV_=0^VENxDL@B^BE)sia3U#(dzSEo91H!e1pcnEkN|1?}@!7A})-4xxc%HPfe?; zXA(w?9v7Pk+r*Cfr%9$pDzp7KjpIyiu5NV4hs38CuEhF0Orc_)GAVJ_ zyy%=!yRzp@tBZTV>r{!Mh4K{Nn#*N)Z3VNwbm)!np3SzVIIDYbtA D0&VQ# literal 0 HcmV?d00001 diff --git a/assets/tw/template/TEMPLATE_SIREN_SK_BB.gif b/assets/tw/template/TEMPLATE_SIREN_SK_BB.gif new file mode 100644 index 0000000000000000000000000000000000000000..6896f75648beb39e4a9062b43dcb4801c8683bc2 GIT binary patch literal 7554 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 literal 0 HcmV?d00001 diff --git a/assets/tw/template/TEMPLATE_SIREN_SK_CA.gif b/assets/tw/template/TEMPLATE_SIREN_SK_CA.gif new file mode 100644 index 0000000000000000000000000000000000000000..141de5bed3d32e51d5a4eaf7b6ebcabeb772b938 GIT binary patch literal 6520 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 literal 0 HcmV?d00001 diff --git a/assets/tw/template/TEMPLATE_SIREN_SK_CL.gif b/assets/tw/template/TEMPLATE_SIREN_SK_CL.gif new file mode 100644 index 0000000000000000000000000000000000000000..1110c3af559821081ef0eccbd33f494426e2c930 GIT binary patch literal 3272 zcmeI!|5MU=9>DPrh=!;Lgo1(!ejz|I5Jmh_f+*?wT`9k0Nq#|_+bg`a&br$13koXh zH#k$HVjY+CveMNWDyucoG)tRq`=#bC{E}neOwGPq-h0OxZ)b0A?q>Fve(3cVyyi9Y zddzccl$am5+aAI}N(lP&>C?xLAD5Sx-@kwV?%lh$Z{NOt{rc6bS1(__TwGjSSXh{! zpMUY<#oXN7lP6CeKYsk^(WA-9$p;S}+`oVS-o1Nw@7^699UU1N85$ZgnM~KNUF+-X zyLj=U(P-@I>N<1gOlN0jM@L6{dwW}3TWf3U$&)9K9Xr<8*jQIrS6f?KQ&Xc>tE;N2 z%F4=0OG}R&IdbUGp~Aw#f`WoQd-mk#=jY|+$z-zJ+}xa;9H~^gYuB!wJ9lPeWbD|n zBP}g0H8nLQC1u;TZOO^W2?+`D@$s>-u`w|*(b3USQBjeRkz2QJ6^q3Y5fS0x;UbYJ zEG$eY6bb}_(9qB=TefW8yg4K!Bse%YC@6@}=LZA?@OV65Utczxy=l`XA0MBM8#l68 zEN^dbCX>lvFz9sph7B8NG@6%}m#3$vhlhu|yE~OirBEntZf>rwt}ZSvWHOmVA~`!d zJ2^QKi9|<7M+XN7JRXn3;V>8s8jZHKwM8P4(3klQxH2UpLvb~bw z0>jv`klYrO>!R&lgY;d^PYrg*`G209-#uWdPN65| zPq!ydS=l+~G>{A6p2M|NMV^&RZG!I7>{^{C&+u$_@}Tu%RdkD*k!(`pd1*QU z$tl!zguu-BcDeXRud1TO*t)jL$scam)6(Ja|GbxSWn~4pvMLJTWNB#$Z~`C!iadS# z6euz~J3BKoGd(?RHk%(le7I`K`1ttP*w~F5HwFg>fhGO@{a3GEy>jIW5asga%K()N z7cQJXf4;Z3x2LD4ySw|`xpQaFo?SKO)TvXzm8PbqqeqWwwOWlv1AqapD3!{JiVB57 zQBqQJ;J|^sd-wjvmF(>7tgNie%uGNFaAggZ?c29YB$A}0q*Ye{Du5GU$^V2TFfee< z5`TYxKR-V%m;3ug0hSO51ON#Zi~Thu2n6Euc%&~|{QCmH3sE>E^@va)km#SJ+!>o{ z*uf>ev3Po4)B6`L9cN8w!fMB$H9$ZCibXOeRItF-j^TNu}}39A~MwcwU2EVs&m z8LfR=qcK$1v;Nq?PP?ucSx<`_>-0)X4j*<1j?)%q!poy@{t10c5Zuca|LPx?y(io) zt7_e1^Rbx!DhJ4s4-C^KPMkQQ)9HW{EiEk|L4Xqt4Gq5zk?QJdl}ZK7C@(Ju zW`H6oE-pTN_%M)T|Ni|TO5}3+zJ2@F6ahuDmLuuu>8m-i%0^;hB9LP(NB;j1`Hdd{ z4^Si=4(In10-|J95fCK+5}*hi=>26rrwaf%U=Wdw7(gIVd=*18RD-t8Ey^&~wMAK@ zY+dC=xB($7@Gm)P^L5KgJQa^bu;qHeaqj-5E{=vaT2G^3JXMsR;z*3I@2af16)}Hh zu!w$ovsJu{U#=-+3HJ0e$hJ@R9N45{=wIH&F(5XVY7vVZPN91zzK zSm{RHL2k$#`U?_MHYiLxHb;ymTlw`Fu>+-8cVV$&1owk&g`JO&WOyDn>gbbs)^9i5VCn45 zi!_^C71kPBte#J=Y*3(e?!kYXJ~-KSWIZEJtNOmwpsb~bHupXpH{EhzZ(cTs6JRhX F_+MtDNG<>X literal 0 HcmV?d00001 diff --git a/assets/tw/template/TEMPLATE_SIREN_SK_CV.gif b/assets/tw/template/TEMPLATE_SIREN_SK_CV.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb4310d1914db33c4ab0688896bdd112d4af595d GIT binary patch literal 5343 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 JX21b0{NE6>_6q<2 literal 0 HcmV?d00001 diff --git a/assets/tw/template/TEMPLATE_SIREN_SK_DD.gif b/assets/tw/template/TEMPLATE_SIREN_SK_DD.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfad2e80b19f8044b7152722b95421fc95555d6d GIT binary patch literal 3299 zcmeI!OH31a9Ki9GPTMJcOy88!$4p-o%A>rbg#t63woG|hpddtq0wtoZNg*4TXkyyh zg|-%jipGNnUYoGVW&?=_JnTVf1(H3W*@K%sEX%qZH}O!72lnI+Az2M)eSLkWPoM7X z?d|F5Id$q(cXxMJSC`l8?dM+AYHD)3-HnZn zE|<&cbUGXk9LMc;JBDE>iZ(Pf)YaA5Y_{6k+M1dgtJP|;SgNb5Pn$#QaXq*AF^EEWod0)c?f=R*+02v@9va+(MR4V1u^N~#edCP8ddOLB<<18;R)2MIXQjk9Z5Fy77xmG~TEPk)`_i5xx~F{YbjOH6SGvMAbS(Bwhjfxw?m=)E(R z0u7ZC)z<{aiC`!yEi{pL)}Ch30Zaz341STKNty|VaV`9i`7M!fV83X$lVDB<_;4*X z$x=IRSk66o?z*XI4ZK{RT?B6xl#M={L1@1x1>>_!ezSb8c&A*0-Jpt$qw`pb5a?Kb@7Tg_n#z$DD%yp=#S`=* z{z4Y5+!Da9l3R3af>VJ&;KGFqBr~I~pPW1iY{+L228eY{CU@TnJqEkq46-rmgl$Z zWC1xn0Sx^IKdxN4a`ECt(vRWcVX{#^piamxA;I`xU2;51-Y=5E!oq(kk|SUoi4uuK zLUzd^8;5Cf*d=6?uvnzV2VKHoFvv6^+4z(u@Al|pJslKCr5UwHg?Xic_5CMHv6~7; zJ&2TVY{pa?K=I;LB+64aU0Piq8=9OJ&{dhtnq!NbR~d+|BON#guIMqBC6`=0Vb$k- zpuo@IK>5)kWD%I+D?trFO%89~kT=c&f3&A)L0ZG4_(6L(%s{&Ca@P3sA)!*j-}0d_ z0GV_=0^VENxDL@B^BE)sia3U#(dzSEo91H!e1pcnEkN|1?}@!7A})-4xxc%HPfe?; zXA(w?9v7Pk+r*Cfr%9$pDzp7KjpIyiu5NV4hs38CuEhF0Orc_)GAVJ_ zyy%=!yRzp@tBZTV>r{!Mh4K{Nn#*N)Z3VNwbm)!np3SzVIIDYbtA D0&VQ# literal 0 HcmV?d00001 diff --git a/campaign/event_20231123_cn/campaign_base.py b/campaign/event_20231123_cn/campaign_base.py new file mode 100644 index 000000000..808f9ead5 --- /dev/null +++ b/campaign/event_20231123_cn/campaign_base.py @@ -0,0 +1,36 @@ +from module.campaign.campaign_base import CampaignBase as CampaignBase_ + + +class CampaignBase(CampaignBase_): + STAGE_INCREASE = [ + """ + T1 > T2 > T3 > T4 > T5 + """, + """ + TSK1 > TSK2 > TSK3 > TSK4 > TSK5 + """, + ] + + def campaign_set_chapter_event(self, chapter, mode='normal'): + self.ui_goto_event() + self.campaign_ensure_chapter(index=chapter) + return True + + def _campaign_get_chapter_index(self, name): + """ + Args: + name (str, int): + + Returns: + int + """ + if name == 't': + return 1 + if name == 'tsk': + return 2 + if name == 'ex_sp': + return 3 + if name == 'ex_ex': + return 4 + + return super(CampaignBase, CampaignBase)._campaign_get_chapter_index(name) diff --git a/campaign/event_20231123_cn/t1.py b/campaign/event_20231123_cn/t1.py new file mode 100644 index 000000000..70878adc5 --- /dev/null +++ b/campaign/event_20231123_cn/t1.py @@ -0,0 +1,108 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger + +MAP = CampaignMap('T1') +MAP.shape = 'I8' +MAP.camera_data = ['E3', 'E6'] +MAP.camera_data_spawn_point = ['E3'] +MAP.map_data = """ + -- -- -- -- -- -- -- -- -- + -- -- SP -- SP -- ME ++ -- + -- ++ -- -- -- -- -- -- -- + -- ME -- -- -- ++ ME -- ME + -- -- Me -- Me ++ -- __ -- + -- ME -- MS -- -- -- ME -- + ++ ++ Me -- Me -- ME -- ME + ++ ++ -- MB -- ++ ++ ++ -- +""" +MAP.map_data_loop = """ + -- -- -- -- -- -- -- -- -- + -- -- SP -- SP -- ME ++ -- + -- ++ -- -- -- -- -- -- -- + -- ME -- MS -- ++ ME -- ME + -- -- Me -- Me ++ -- __ -- + -- ME -- -- -- -- -- ME -- + ++ ++ Me -- Me -- ME -- ME + ++ ++ -- MB -- ++ ++ ++ -- +""" +MAP.weight_data = """ + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'enemy': 2, 'siren': 1}, + {'battle': 1, 'enemy': 2}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'boss': 1}, +] +MAP.spawn_data_loop = [ + {'battle': 0, 'enemy': 2, 'siren': 1}, + {'battle': 1, 'enemy': 2}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'boss': 1}, +] +A1, B1, C1, D1, E1, F1, G1, H1, I1, \ +A2, B2, C2, D2, E2, F2, G2, H2, I2, \ +A3, B3, C3, D3, E3, F3, G3, H3, I3, \ +A4, B4, C4, D4, E4, F4, G4, H4, I4, \ +A5, B5, C5, D5, E5, F5, G5, H5, I5, \ +A6, B6, C6, D6, E6, F6, G6, H6, I6, \ +A7, B7, C7, D7, E7, F7, G7, H7, I7, \ +A8, B8, C8, D8, E8, F8, G8, H8, I8, \ + = MAP.flatten() + + +class Config: + # ===== Start of generated config ===== + MAP_SIREN_TEMPLATE = ['SK_DD'] + MOVABLE_ENEMY_TURN = (2,) + MAP_HAS_SIREN = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_MAP_STORY = True + MAP_HAS_FLEET_STEP = True + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + # ===== End of generated config ===== + + INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (80, 255 - 33), + 'width': (1.5, 10), + 'prominence': 10, + 'distance': 35, + } + EDGE_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (255 - 33, 255), + 'prominence': 10, + 'distance': 50, + 'wlen': 1000 + } + HOMO_EDGE_COLOR_RANGE = (0, 33) + MAP_SWIPE_MULTIPLY = (1.187, 1.209) + MAP_SWIPE_MULTIPLY_MINITOUCH = (1.148, 1.169) + MAP_SWIPE_MULTIPLY_MAATOUCH = (1.115, 1.135) + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + if self.clear_siren(): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): + return True + + return self.battle_default() + + def battle_4(self): + return self.clear_boss() diff --git a/campaign/event_20231123_cn/t2.py b/campaign/event_20231123_cn/t2.py new file mode 100644 index 000000000..0e0e04e38 --- /dev/null +++ b/campaign/event_20231123_cn/t2.py @@ -0,0 +1,88 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger +from .t1 import Config as ConfigBase + +MAP = CampaignMap('T2') +MAP.shape = 'I7' +MAP.camera_data = ['D3', 'D5', 'F3', 'F5'] +MAP.camera_data_spawn_point = ['D3'] +MAP.map_data = """ + -- ++ ++ ++ MS ++ ++ ++ -- + -- -- -- -- __ -- -- Me -- + SP -- -- ME -- ME -- -- ME + SP -- ++ -- MB -- ++ ME -- + -- -- -- ME -- ME -- -- ME + ++ Me -- -- ++ -- -- Me ++ + ++ -- ME -- -- -- ME -- ++ +""" +MAP.map_data_loop = """ + -- ++ ++ ++ -- ++ ++ ++ -- + -- -- MS -- __ -- -- Me -- + SP -- -- ME -- ME -- -- ME + SP -- ++ -- MB -- ++ ME -- + -- -- -- ME -- ME -- -- ME + ++ Me -- -- ++ -- -- Me ++ + ++ -- ME -- -- -- ME -- ++ +""" +MAP.weight_data = """ + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'enemy': 3, 'siren': 1}, + {'battle': 1, 'enemy': 2}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'boss': 1}, +] +MAP.spawn_data_loop = [ + {'battle': 0, 'enemy': 3, 'siren': 1}, + {'battle': 1, 'enemy': 2}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'boss': 1}, +] +A1, B1, C1, D1, E1, F1, G1, H1, I1, \ +A2, B2, C2, D2, E2, F2, G2, H2, I2, \ +A3, B3, C3, D3, E3, F3, G3, H3, I3, \ +A4, B4, C4, D4, E4, F4, G4, H4, I4, \ +A5, B5, C5, D5, E5, F5, G5, H5, I5, \ +A6, B6, C6, D6, E6, F6, G6, H6, I6, \ +A7, B7, C7, D7, E7, F7, G7, H7, I7, \ + = MAP.flatten() + + +class Config(ConfigBase): + # ===== Start of generated config ===== + MAP_SIREN_TEMPLATE = ['SK_DD', 'SK_CL'] + MOVABLE_ENEMY_TURN = (2,) + MAP_HAS_SIREN = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_MAP_STORY = True + MAP_HAS_FLEET_STEP = True + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + # ===== End of generated config ===== + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + if self.clear_siren(): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): + return True + + return self.battle_default() + + def battle_4(self): + return self.clear_boss() diff --git a/campaign/event_20231123_cn/t3.py b/campaign/event_20231123_cn/t3.py new file mode 100644 index 000000000..fd3c174eb --- /dev/null +++ b/campaign/event_20231123_cn/t3.py @@ -0,0 +1,84 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger +from .t1 import Config as ConfigBase + +MAP = CampaignMap('T3') +MAP.shape = 'I8' +MAP.camera_data = ['D3', 'D6', 'F3', 'F6'] +MAP.camera_data_spawn_point = ['D6'] +MAP.map_data = """ + -- -- -- -- -- -- -- -- -- + -- ++ ++ -- MB -- ++ ME -- + -- ++ ++ ME -- ME ++ -- ME + -- Me -- ME -- ME -- Me -- + Me -- -- -- __ -- -- -- -- + ++ -- -- MS -- MS -- -- ME + -- -- -- ++ ++ ++ -- MS -- + -- SP SP ++ ++ -- ME -- ++ +""" +MAP.weight_data = """ + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'enemy': 3, 'siren': 2}, + {'battle': 1, 'enemy': 2}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4}, + {'battle': 5, 'boss': 1}, +] +MAP.spawn_data_loop = [ + {'battle': 0, 'enemy': 3, 'siren': 2}, + {'battle': 1, 'enemy': 2}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4}, + {'battle': 5, 'boss': 1}, +] +A1, B1, C1, D1, E1, F1, G1, H1, I1, \ +A2, B2, C2, D2, E2, F2, G2, H2, I2, \ +A3, B3, C3, D3, E3, F3, G3, H3, I3, \ +A4, B4, C4, D4, E4, F4, G4, H4, I4, \ +A5, B5, C5, D5, E5, F5, G5, H5, I5, \ +A6, B6, C6, D6, E6, F6, G6, H6, I6, \ +A7, B7, C7, D7, E7, F7, G7, H7, I7, \ +A8, B8, C8, D8, E8, F8, G8, H8, I8, \ + = MAP.flatten() + + +class Config(ConfigBase): + # ===== Start of generated config ===== + MAP_SIREN_TEMPLATE = ['SK_CL', 'SK_CA'] + MOVABLE_ENEMY_TURN = (2,) + MAP_HAS_SIREN = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_MAP_STORY = True + MAP_HAS_FLEET_STEP = True + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + # ===== End of generated config ===== + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + if self.clear_siren(): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): + return True + + return self.battle_default() + + def battle_5(self): + return self.fleet_boss.clear_boss() diff --git a/campaign/event_20231123_cn/t4.py b/campaign/event_20231123_cn/t4.py new file mode 100644 index 000000000..92afc27bb --- /dev/null +++ b/campaign/event_20231123_cn/t4.py @@ -0,0 +1,84 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger +from .t1 import Config as ConfigBase + +MAP = CampaignMap('T4') +MAP.shape = 'I8' +MAP.camera_data = ['D2', 'D6', 'F2', 'F6'] +MAP.camera_data_spawn_point = ['F6', 'D6'] +MAP.map_data = """ + ++ ++ ++ ME -- MB -- ME ++ + ++ MS -- -- ME -- ME -- -- + ME -- -- ++ -- __ -- -- ++ + -- ME -- -- -- Me -- -- ++ + ++ ++ -- MS -- ++ -- MS -- + ++ ++ -- -- Me ++ Me -- -- + -- -- ME -- -- -- -- -- ME + -- ME -- -- SP -- SP ++ -- +""" +MAP.weight_data = """ + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'enemy': 3, 'siren': 2}, + {'battle': 1, 'enemy': 2}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'enemy': 1}, + {'battle': 5, 'boss': 1}, +] +MAP.spawn_data_loop = [ + {'battle': 0, 'enemy': 3, 'siren': 2}, + {'battle': 1, 'enemy': 2}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'enemy': 1}, + {'battle': 5, 'boss': 1}, +] +A1, B1, C1, D1, E1, F1, G1, H1, I1, \ +A2, B2, C2, D2, E2, F2, G2, H2, I2, \ +A3, B3, C3, D3, E3, F3, G3, H3, I3, \ +A4, B4, C4, D4, E4, F4, G4, H4, I4, \ +A5, B5, C5, D5, E5, F5, G5, H5, I5, \ +A6, B6, C6, D6, E6, F6, G6, H6, I6, \ +A7, B7, C7, D7, E7, F7, G7, H7, I7, \ +A8, B8, C8, D8, E8, F8, G8, H8, I8, \ + = MAP.flatten() + + +class Config(ConfigBase): + # ===== Start of generated config ===== + MAP_SIREN_TEMPLATE = ['SK_CL', 'SK_CA'] + MOVABLE_ENEMY_TURN = (2,) + MAP_HAS_SIREN = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_MAP_STORY = True + MAP_HAS_FLEET_STEP = True + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + # ===== End of generated config ===== + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + if self.clear_siren(): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): + return True + + return self.battle_default() + + def battle_5(self): + return self.fleet_boss.clear_boss() diff --git a/campaign/event_20231123_cn/t5.py b/campaign/event_20231123_cn/t5.py new file mode 100644 index 000000000..f6d5bdffd --- /dev/null +++ b/campaign/event_20231123_cn/t5.py @@ -0,0 +1,100 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger +from .t1 import Config as ConfigBase + +MAP = CampaignMap('T5') +MAP.shape = 'I10' +MAP.camera_data = ['D2', 'D6', 'D7', 'F2', 'F6', 'F7'] +MAP.camera_data_spawn_point = ['F7', 'D7'] +MAP.map_data = """ + ++ ++ -- ME -- ME -- ++ ++ + ++ ++ ME -- MB -- ME ++ ++ + -- ME -- -- -- -- -- ME -- + ME -- -- ME -- ME -- -- ME + ++ ME -- ++ ++ ++ -- ME ++ + ++ -- -- Me MS Me -- -- ++ + -- MS -- -- __ -- -- MS -- + -- ++ -- SP -- SP -- ++ -- + -- -- Me -- MS -- Me -- -- + ++ ++ ++ -- -- -- ++ ++ ++ +""" +MAP.weight_data = """ + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'enemy': 3, 'siren': 3}, + {'battle': 1, 'enemy': 2}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'enemy': 1}, + {'battle': 5}, + {'battle': 6, 'boss': 1}, +] +MAP.spawn_data_loop = [ + {'battle': 0, 'enemy': 3, 'siren': 2}, + {'battle': 1, 'enemy': 2, 'siren': 1}, + {'battle': 2, 'enemy': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'enemy': 1}, + {'battle': 5}, + {'battle': 6, 'boss': 1}, +] +A1, B1, C1, D1, E1, F1, G1, H1, I1, \ +A2, B2, C2, D2, E2, F2, G2, H2, I2, \ +A3, B3, C3, D3, E3, F3, G3, H3, I3, \ +A4, B4, C4, D4, E4, F4, G4, H4, I4, \ +A5, B5, C5, D5, E5, F5, G5, H5, I5, \ +A6, B6, C6, D6, E6, F6, G6, H6, I6, \ +A7, B7, C7, D7, E7, F7, G7, H7, I7, \ +A8, B8, C8, D8, E8, F8, G8, H8, I8, \ +A9, B9, C9, D9, E9, F9, G9, H9, I9, \ +A10, B10, C10, D10, E10, F10, G10, H10, I10, \ + = MAP.flatten() + + +class Config(ConfigBase): + # ===== Start of generated config ===== + MAP_SIREN_TEMPLATE = ['SK_BB', 'SK_CV'] + MOVABLE_ENEMY_TURN = (2,) + MAP_HAS_SIREN = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_MAP_STORY = True + MAP_HAS_FLEET_STEP = True + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + # ===== End of generated config ===== + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + if self.clear_siren(): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=1): + return True + + return self.battle_default() + + def battle_5(self): + if self.clear_siren(): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): + return True + + return self.battle_default() + + def battle_6(self): + return self.fleet_boss.clear_boss() diff --git a/module/campaign/run.py b/module/campaign/run.py index c9571aa70..b1956f5b1 100644 --- a/module/campaign/run.py +++ b/module/campaign/run.py @@ -231,6 +231,7 @@ def handle_stage_name(self, name, folder, mode='normal'): # chapter T 'event_20211125_cn', 'event_20231026_cn', + 'event_20231123_cn', ]: name = convert.get(name, name) else: diff --git a/module/template/assets.py b/module/template/assets.py index 85932cf72..1db7408f8 100644 --- a/module/template/assets.py +++ b/module/template/assets.py @@ -171,6 +171,11 @@ TEMPLATE_SIREN_SirenBoss16 = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_SirenBoss16.gif', 'en': './assets/en/template/TEMPLATE_SIREN_SirenBoss16.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_SirenBoss16.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_SirenBoss16.gif'}) TEMPLATE_SIREN_SirenBoss18 = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_SirenBoss18.gif', 'en': './assets/en/template/TEMPLATE_SIREN_SirenBoss18.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_SirenBoss18.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_SirenBoss18.gif'}) TEMPLATE_SIREN_SirenBoss19 = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_SirenBoss19.gif', 'en': './assets/en/template/TEMPLATE_SIREN_SirenBoss19.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_SirenBoss19.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_SirenBoss19.gif'}) +TEMPLATE_SIREN_SK_BB = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_SK_BB.gif', 'en': './assets/en/template/TEMPLATE_SIREN_SK_BB.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_SK_BB.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_SK_BB.gif'}) +TEMPLATE_SIREN_SK_CA = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_SK_CA.gif', 'en': './assets/en/template/TEMPLATE_SIREN_SK_CA.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_SK_CA.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_SK_CA.gif'}) +TEMPLATE_SIREN_SK_CL = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_SK_CL.gif', 'en': './assets/en/template/TEMPLATE_SIREN_SK_CL.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_SK_CL.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_SK_CL.gif'}) +TEMPLATE_SIREN_SK_CV = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_SK_CV.gif', 'en': './assets/en/template/TEMPLATE_SIREN_SK_CV.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_SK_CV.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_SK_CV.gif'}) +TEMPLATE_SIREN_SK_DD = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_SK_DD.gif', 'en': './assets/en/template/TEMPLATE_SIREN_SK_DD.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_SK_DD.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_SK_DD.gif'}) TEMPLATE_SIREN_Soobrazitelny = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Soobrazitelny.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Soobrazitelny.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Soobrazitelny.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Soobrazitelny.gif'}) TEMPLATE_SIREN_Spee = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_Spee.gif', 'en': './assets/en/template/TEMPLATE_SIREN_Spee.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_Spee.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_Spee.gif'}) TEMPLATE_SIREN_SpeeIdol = Template(file={'cn': './assets/cn/template/TEMPLATE_SIREN_SpeeIdol.gif', 'en': './assets/en/template/TEMPLATE_SIREN_SpeeIdol.gif', 'jp': './assets/jp/template/TEMPLATE_SIREN_SpeeIdol.gif', 'tw': './assets/tw/template/TEMPLATE_SIREN_SpeeIdol.gif'}) From 296f5d988abf54061dd293b2622631efbe31bcc4 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Fri, 24 Nov 2023 00:54:33 +0800 Subject: [PATCH 7/8] Add: Chapter TSK --- campaign/event_20231123_cn/tsk1.py | 71 ++++++++++++++++++++++++++++++ campaign/event_20231123_cn/tsk2.py | 53 ++++++++++++++++++++++ campaign/event_20231123_cn/tsk3.py | 53 ++++++++++++++++++++++ campaign/event_20231123_cn/tsk4.py | 53 ++++++++++++++++++++++ campaign/event_20231123_cn/tsk5.py | 53 ++++++++++++++++++++++ 5 files changed, 283 insertions(+) create mode 100644 campaign/event_20231123_cn/tsk1.py create mode 100644 campaign/event_20231123_cn/tsk2.py create mode 100644 campaign/event_20231123_cn/tsk3.py create mode 100644 campaign/event_20231123_cn/tsk4.py create mode 100644 campaign/event_20231123_cn/tsk5.py diff --git a/campaign/event_20231123_cn/tsk1.py b/campaign/event_20231123_cn/tsk1.py new file mode 100644 index 000000000..f903b82b2 --- /dev/null +++ b/campaign/event_20231123_cn/tsk1.py @@ -0,0 +1,71 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger + +MAP = CampaignMap('TSK1') +MAP.shape = 'E5' +MAP.camera_data = ['D3'] +MAP.camera_data_spawn_point = ['D3'] +MAP.map_data = """ + -- ++ ++ ++ -- + -- -- ++ -- -- + -- SP -- MB -- + ++ -- -- -- ++ + -- ++ ++ ++ -- +""" +MAP.weight_data = """ + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'boss': 1}, +] +A1, B1, C1, D1, E1, \ +A2, B2, C2, D2, E2, \ +A3, B3, C3, D3, E3, \ +A4, B4, C4, D4, E4, \ +A5, B5, C5, D5, E5, \ + = MAP.flatten() + + +class Config: + # ===== Start of generated config ===== + MAP_HAS_MAP_STORY = False + MAP_HAS_FLEET_STEP = False + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + STAR_REQUIRE_1 = 0 + STAR_REQUIRE_2 = 0 + STAR_REQUIRE_3 = 0 + # ===== End of generated config ===== + + INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (80, 255 - 33), + 'width': (1.5, 10), + 'prominence': 10, + 'distance': 35, + } + EDGE_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (255 - 33, 255), + 'prominence': 10, + 'distance': 50, + 'wlen': 1000 + } + HOMO_EDGE_COLOR_RANGE = (0, 33) + MAP_SWIPE_MULTIPLY = (1.187, 1.209) + MAP_SWIPE_MULTIPLY_MINITOUCH = (1.148, 1.169) + MAP_SWIPE_MULTIPLY_MAATOUCH = (1.115, 1.135) + MAP_IS_ONE_TIME_STAGE = True + FLEET_2 = 0 + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + return self.clear_boss() diff --git a/campaign/event_20231123_cn/tsk2.py b/campaign/event_20231123_cn/tsk2.py new file mode 100644 index 000000000..7ff90bc04 --- /dev/null +++ b/campaign/event_20231123_cn/tsk2.py @@ -0,0 +1,53 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger +from .tsk1 import Config as ConfigBase + +MAP = CampaignMap('TSK2') +MAP.shape = 'E5' +MAP.camera_data = ['D3'] +MAP.camera_data_spawn_point = ['D3'] +MAP.map_data = """ + -- ++ ++ ++ -- + -- -- ++ -- -- + -- SP -- MB -- + ++ -- -- -- ++ + -- ++ ++ ++ -- +""" +MAP.weight_data = """ + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'boss': 1}, +] +A1, B1, C1, D1, E1, \ +A2, B2, C2, D2, E2, \ +A3, B3, C3, D3, E3, \ +A4, B4, C4, D4, E4, \ +A5, B5, C5, D5, E5, \ + = MAP.flatten() + + +class Config(ConfigBase): + # ===== Start of generated config ===== + MAP_HAS_MAP_STORY = False + MAP_HAS_FLEET_STEP = False + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + STAR_REQUIRE_1 = 0 + STAR_REQUIRE_2 = 0 + STAR_REQUIRE_3 = 0 + # ===== End of generated config ===== + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + return self.clear_boss() diff --git a/campaign/event_20231123_cn/tsk3.py b/campaign/event_20231123_cn/tsk3.py new file mode 100644 index 000000000..52ddb126c --- /dev/null +++ b/campaign/event_20231123_cn/tsk3.py @@ -0,0 +1,53 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger +from .tsk1 import Config as ConfigBase + +MAP = CampaignMap('TSK3') +MAP.shape = 'E5' +MAP.camera_data = ['D3'] +MAP.camera_data_spawn_point = ['D3'] +MAP.map_data = """ + -- ++ ++ ++ -- + -- -- ++ -- -- + -- SP -- MB -- + ++ -- -- -- ++ + -- ++ ++ ++ -- +""" +MAP.weight_data = """ + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'boss': 1}, +] +A1, B1, C1, D1, E1, \ +A2, B2, C2, D2, E2, \ +A3, B3, C3, D3, E3, \ +A4, B4, C4, D4, E4, \ +A5, B5, C5, D5, E5, \ + = MAP.flatten() + + +class Config(ConfigBase): + # ===== Start of generated config ===== + MAP_HAS_MAP_STORY = False + MAP_HAS_FLEET_STEP = False + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + STAR_REQUIRE_1 = 0 + STAR_REQUIRE_2 = 0 + STAR_REQUIRE_3 = 0 + # ===== End of generated config ===== + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + return self.clear_boss() diff --git a/campaign/event_20231123_cn/tsk4.py b/campaign/event_20231123_cn/tsk4.py new file mode 100644 index 000000000..6372e4780 --- /dev/null +++ b/campaign/event_20231123_cn/tsk4.py @@ -0,0 +1,53 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger +from .tsk1 import Config as ConfigBase + +MAP = CampaignMap('TSK4') +MAP.shape = 'E5' +MAP.camera_data = ['D3'] +MAP.camera_data_spawn_point = ['D3'] +MAP.map_data = """ + -- ++ ++ ++ -- + -- -- ++ -- -- + -- SP -- MB -- + ++ -- -- -- ++ + -- ++ ++ ++ -- +""" +MAP.weight_data = """ + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'boss': 1}, +] +A1, B1, C1, D1, E1, \ +A2, B2, C2, D2, E2, \ +A3, B3, C3, D3, E3, \ +A4, B4, C4, D4, E4, \ +A5, B5, C5, D5, E5, \ + = MAP.flatten() + + +class Config(ConfigBase): + # ===== Start of generated config ===== + MAP_HAS_MAP_STORY = False + MAP_HAS_FLEET_STEP = False + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + STAR_REQUIRE_1 = 0 + STAR_REQUIRE_2 = 0 + STAR_REQUIRE_3 = 0 + # ===== End of generated config ===== + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + return self.clear_boss() diff --git a/campaign/event_20231123_cn/tsk5.py b/campaign/event_20231123_cn/tsk5.py new file mode 100644 index 000000000..fefa5dbaa --- /dev/null +++ b/campaign/event_20231123_cn/tsk5.py @@ -0,0 +1,53 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger +from .tsk1 import Config as ConfigBase + +MAP = CampaignMap('TSK5') +MAP.shape = 'E5' +MAP.camera_data = ['D3'] +MAP.camera_data_spawn_point = ['D3'] +MAP.map_data = """ + -- ++ ++ ++ -- + -- -- ++ -- -- + -- SP -- MB -- + ++ -- -- -- ++ + -- ++ ++ ++ -- +""" +MAP.weight_data = """ + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 + 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'boss': 1}, +] +A1, B1, C1, D1, E1, \ +A2, B2, C2, D2, E2, \ +A3, B3, C3, D3, E3, \ +A4, B4, C4, D4, E4, \ +A5, B5, C5, D5, E5, \ + = MAP.flatten() + + +class Config(ConfigBase): + # ===== Start of generated config ===== + MAP_HAS_MAP_STORY = False + MAP_HAS_FLEET_STEP = False + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + STAR_REQUIRE_1 = 0 + STAR_REQUIRE_2 = 0 + STAR_REQUIRE_3 = 0 + # ===== End of generated config ===== + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + return self.clear_boss() From b29d5ebc95f0fa59cde7bccf436b61bb12b99299 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Fri, 24 Nov 2023 01:08:14 +0800 Subject: [PATCH 8/8] Add: Chapter SP --- campaign/event_20231123_cn/sp.py | 131 +++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 campaign/event_20231123_cn/sp.py diff --git a/campaign/event_20231123_cn/sp.py b/campaign/event_20231123_cn/sp.py new file mode 100644 index 000000000..9005e2243 --- /dev/null +++ b/campaign/event_20231123_cn/sp.py @@ -0,0 +1,131 @@ +from .campaign_base import CampaignBase +from module.map.map_base import CampaignMap +from module.map.map_grids import SelectedGrids, RoadGrids +from module.logger import logger + +MAP = CampaignMap('SP') +MAP.shape = 'I9' +MAP.camera_data = ['D4', 'D6', 'F4', 'F6'] +MAP.camera_data_spawn_point = ['F6', 'D6'] +MAP.map_data = """ + ++ ++ ++ ++ ++ ++ ++ ++ ++ + ++ MS -- -- MS -- -- MS ++ + ++ -- Me -- -- -- Me -- ++ + ME -- -- ++ -- ++ -- -- ME + -- ME -- -- MB -- -- ME -- + ME -- -- ++ -- ++ -- -- ME + ++ -- Me -- __ -- Me -- ++ + ++ ME -- SP -- SP -- ME ++ + ++ ++ ++ ++ -- ++ ++ ++ ++ +""" +MAP.map_data_loop = """ + ++ ++ ++ ++ ++ ++ ++ ++ ++ + ++ -- -- -- -- -- -- -- ++ + ++ -- Me -- -- -- Me -- ++ + ME -- -- ++ MS ++ -- -- ME + -- ME -- MS MB MS -- ME -- + ME -- -- ++ -- ++ -- -- ME + ++ -- Me -- __ -- Me -- ++ + ++ -- -- SP -- SP -- -- ++ + ++ ++ ++ ++ -- ++ ++ ++ ++ +""" +MAP.weight_data = """ + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 50 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'enemy': 10, 'siren': 3}, + {'battle': 1}, + {'battle': 2}, + {'battle': 3}, + {'battle': 4}, + {'battle': 5}, + {'battle': 6}, + {'battle': 7, 'boss': 1}, +] +MAP.spawn_data_loop = [ + {'battle': 0, 'enemy': 10, 'siren': 3}, + {'battle': 1}, + {'battle': 2}, + {'battle': 3}, + {'battle': 4}, + {'battle': 5}, + {'battle': 6}, + {'battle': 7, 'boss': 1}, +] +A1, B1, C1, D1, E1, F1, G1, H1, I1, \ +A2, B2, C2, D2, E2, F2, G2, H2, I2, \ +A3, B3, C3, D3, E3, F3, G3, H3, I3, \ +A4, B4, C4, D4, E4, F4, G4, H4, I4, \ +A5, B5, C5, D5, E5, F5, G5, H5, I5, \ +A6, B6, C6, D6, E6, F6, G6, H6, I6, \ +A7, B7, C7, D7, E7, F7, G7, H7, I7, \ +A8, B8, C8, D8, E8, F8, G8, H8, I8, \ +A9, B9, C9, D9, E9, F9, G9, H9, I9, \ + = MAP.flatten() + + +class Config: + # ===== Start of generated config ===== + MAP_SIREN_TEMPLATE = ['SK_BB', 'SK_CV'] + MOVABLE_ENEMY_TURN = (2,) + MAP_HAS_SIREN = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_MAP_STORY = False + MAP_HAS_FLEET_STEP = False + MAP_HAS_AMBUSH = False + MAP_HAS_MYSTERY = False + STAR_REQUIRE_1 = 0 + STAR_REQUIRE_2 = 0 + STAR_REQUIRE_3 = 0 + # ===== End of generated config ===== + + INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (80, 255 - 33), + 'width': (1.5, 10), + 'prominence': 10, + 'distance': 35, + } + EDGE_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (255 - 33, 255), + 'prominence': 10, + 'distance': 50, + 'wlen': 1000 + } + HOMO_EDGE_COLOR_RANGE = (0, 33) + MAP_SWIPE_MULTIPLY = (1.038, 1.058) + MAP_SWIPE_MULTIPLY_MINITOUCH = (1.004, 1.023) + MAP_SWIPE_MULTIPLY_MAATOUCH = (0.975, 0.992) + MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom' + MAP_IS_ONE_TIME_STAGE = True + + +class Campaign(CampaignBase): + MAP = MAP + ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' + + def battle_0(self): + if self.clear_siren(): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=2): + return True + + return self.battle_default() + + def battle_5(self): + if self.clear_siren(): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): + return True + + return self.battle_default() + + def battle_7(self): + return self.fleet_boss.clear_boss()