Skip to content

Commit

Permalink
Merge pull request #4389 from LmeSzinc/dev
Browse files Browse the repository at this point in the history
Add: Event Dangerous Inventions Incoming (event_20241121_cn)
  • Loading branch information
LmeSzinc authored Nov 22, 2024
2 parents bd680eb + c790807 commit a0f252e
Show file tree
Hide file tree
Showing 44 changed files with 970 additions and 50 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/cn/template/TEMPLATE_SIREN_ToLoveYui02.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/en/template/TEMPLATE_SIREN_ToLoveYui02.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/jp/handler/USE_DATA_KEY.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/jp/template/TEMPLATE_SIREN_ToLoveYui02.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/tw/template/TEMPLATE_SIREN_ToLoveYui02.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions campaign/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,3 +221,4 @@ To add a new event, add a new row in here, and run `python -m module.config.conf
| 20241031 | event 20240829 cn | Whence Flowers Bear No Fruit | - | - | - | 埋葬於彼岸之花 |
| 20241114 | event 20220915 cn | Violet Tempest Blooming Lycoris Rerun | 复刻紫绛槿岚 | Violet Tempest Blooming Lycoris Rerun | 赫の涙月 菫の暁風(復刻) | - |
| 20241114 | event 20240229 cn | Snowrealm Peregrination | - | - | - | 雪境迷蹤 |
| 20241121 | event 20241121 cn | Dangerous Inventions Incoming | 危险发明迫近中 | Dangerous Inventions Incoming | 危険発明接近中 | - |
1 change: 0 additions & 1 deletion campaign/event_20241024_cn/campaign_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ def campaign_set_chapter(self, name, mode='normal'):
mode (str): 'normal' or 'hard'.
"""
chapter, stage = self._campaign_separate_name(name)
logger.info([chapter, stage])

if chapter in ['t']:
self.ui_goto_event()
Expand Down
62 changes: 62 additions & 0 deletions campaign/event_20241121_cn/campaign_base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
from campaign.event_20241024_cn.campaign_base import CHAPTER_SWITCH_20241024, MODE_SWITCH_20240725
from module.campaign.campaign_base import CampaignBase as CampaignBase_
from module.logger import logger


class CampaignBase(CampaignBase_):
STAGE_INCREASE = [
'T1 > T2 > T3 > T4 > T5 > T6',
'TTL1 > TTL2 > TTL3 > TTL4 > TTL5',
]

@staticmethod
def _campaign_get_chapter_index(name):
"""
Args:
name (str, int):
Returns:
int
"""
if name == 'ttl':
return 1
return CampaignBase_._campaign_get_chapter_index(name)

def campaign_set_chapter(self, name, mode='normal'):
"""
Args:
name (str): Campaign name, such as '7-2', 'd3', 'sp3'.
mode (str): 'normal' or 'hard'.
"""
chapter, stage = self._campaign_separate_name(name)
logger.info([chapter, stage])

if chapter in ['t']:
self.ui_goto_event()
MODE_SWITCH_20240725.set('combat', main=self)
if stage in ['1', '2', '3', '4', '5']:
CHAPTER_SWITCH_20241024.set('ab', main=self)
else:
logger.warning(f'Stage {name} is not in CHAPTER_SWITCH_20241024')
self.campaign_ensure_chapter(index=chapter)
elif chapter in ['ttl']:
self.ui_goto_event()
MODE_SWITCH_20240725.set('combat', main=self)
if stage in ['1', '2', '3', '4', '5']:
CHAPTER_SWITCH_20241024.set('cd', main=self)
else:
logger.warning(f'Stage {name} is not in CHAPTER_SWITCH_20241024')
logger.info('campaign_ensure_chapter')
self.campaign_ensure_chapter(index=chapter)
elif chapter in ['ex_sp']:
self.ui_goto_event()
MODE_SWITCH_20240725.set('combat', main=self)
CHAPTER_SWITCH_20241024.set('sp', main=self)
self.campaign_ensure_chapter(index=chapter)
elif chapter in ['ex_ex']:
self.ui_goto_event()
MODE_SWITCH_20240725.set('combat', main=self)
CHAPTER_SWITCH_20241024.set('ex', main=self)
self.campaign_ensure_chapter(index=chapter)
else:
logger.warning(f'Unknown campaign chapter: {name}')
108 changes: 108 additions & 0 deletions campaign/event_20241121_cn/sp.py
Original file line number Diff line number Diff line change
@@ -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('SP')
MAP.shape = 'K6'
MAP.camera_data = ['E2', 'E4', 'G2', 'G4']
MAP.camera_data_spawn_point = ['E4']
MAP.map_data = """
-- -- -- ME ++ -- ME -- ++ ++ ++
++ ++ ME -- ++ ME -- ME -- ++ ++
++ ++ -- -- -- __ -- -- -- -- --
-- SP -- -- MS -- ++ ME -- MB --
-- -- -- MS -- ME -- -- -- ++ ++
-- SP -- -- 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
"""
MAP.spawn_data = [
{'battle': 0, 'enemy': 8, '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, J1, K1, \
A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \
A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \
A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \
A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \
A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \
= MAP.flatten()


class Config:
# ===== Start of generated config =====
# MAP_SIREN_TEMPLATE = ['ToLoveGoldenDarkness05', 'ToLoveYui02']
MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = False
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 =====

STAGE_ENTRANCE = ['half', '20240725']
MAP_IS_ONE_TIME_STAGE = True
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 33),
'width': (0.9, 10),
'prominence': 10,
'distance': 35,
}
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 33, 255),
'prominence': 10,
'distance': 50,
# 'width': (0, 7),
'wlen': 1000
}
MAP_ENSURE_EDGE_INSIGHT_CORNER = 'bottom'
MAP_SWIPE_MULTIPLY = (1.192, 1.215)
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.153, 1.174)
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.119, 1.140)


class Campaign(CampaignBase):
MAP = MAP
ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C'

def map_data_init(self, map_):
super().map_data_init(map_)
D5.is_siren = True
E4.is_siren = True
E6.is_siren = True

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()
92 changes: 92 additions & 0 deletions campaign/event_20241121_cn/t1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
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', 'F3', 'F6']
MAP.camera_data_spawn_point = ['E6']
MAP.map_data = """
-- ++ -- -- -- -- -- -- --
-- -- ME ++ ++ ++ -- -- --
-- ME -- MS -- -- -- ME --
-- -- -- -- Me -- ME -- ME
-- Me -- SP ++ ++ -- -- --
-- -- -- SP ++ ++ -- 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},
]
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 = ['ToLoveNana03']
MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False
MAP_HAS_MYSTERY = False
# ===== End of generated config =====

STAGE_ENTRANCE = ['half', '20240725']
INTERNAL_LINES_FIND_PEAKS_PARAMETERS = {
'height': (80, 255 - 33),
'width': (0.9, 10),
'prominence': 10,
'distance': 35,
}
EDGE_LINES_FIND_PEAKS_PARAMETERS = {
'height': (255 - 33, 255),
'prominence': 10,
'distance': 50,
# 'width': (0, 7),
'wlen': 1000
}
MAP_SWIPE_MULTIPLY = (1.107, 1.128)
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.071, 1.091)
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.040, 1.059)


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()
76 changes: 76 additions & 0 deletions campaign/event_20241121_cn/t2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
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 = ['E2', 'E5', 'F2', 'F5']
MAP.camera_data_spawn_point = ['F2']
MAP.map_data = """
++ ++ -- -- -- -- -- -- SP
++ ++ Me -- Me -- MS -- --
-- ME -- -- ++ -- -- -- SP
-- -- Me -- ++ -- ++ ++ ++
-- ME ++ -- -- __ -- -- MB
-- -- -- -- 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},
]
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 = ['ToLoveNana03', 'ToLoveNana01']
MOVABLE_ENEMY_TURN = (2,)
MAP_HAS_SIREN = True
MAP_HAS_MOVABLE_ENEMY = True
MAP_HAS_MAP_STORY = False
MAP_HAS_FLEET_STEP = True
MAP_HAS_AMBUSH = False
MAP_HAS_MYSTERY = False
# ===== End of generated config =====

MAP_SWIPE_MULTIPLY = (1.212, 1.235)
MAP_SWIPE_MULTIPLY_MINITOUCH = (1.172, 1.194)
MAP_SWIPE_MULTIPLY_MAATOUCH = (1.138, 1.158)


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()
Loading

0 comments on commit a0f252e

Please sign in to comment.