From 49ae4c636121197163145611d787320faefd064b Mon Sep 17 00:00:00 2001 From: LmeSzinc Date: Thu, 11 Jun 2020 23:13:50 +0800 Subject: [PATCH] Add: [EN] Skybound Oratorio --- campaign/event_20200611_en/a1.py | 48 ++++++++++++++++ campaign/event_20200611_en/a2.py | 21 +++++++ campaign/event_20200611_en/a3.py | 25 +++++++++ campaign/event_20200611_en/b1.py | 53 ++++++++++++++++++ campaign/event_20200611_en/b2.py | 43 +++++++++++++++ campaign/event_20200611_en/b3.py | 53 ++++++++++++++++++ campaign/event_20200611_en/c1.py | 48 ++++++++++++++++ campaign/event_20200611_en/c2.py | 21 +++++++ campaign/event_20200611_en/c3.py | 25 +++++++++ campaign/event_20200611_en/d1.py | 84 ++++++++++++++++++++++++++++ campaign/event_20200611_en/d2.py | 42 ++++++++++++++ campaign/event_20200611_en/d3.py | 95 ++++++++++++++++++++++++++++++++ module/config/dictionary.py | 1 + 13 files changed, 559 insertions(+) create mode 100644 campaign/event_20200611_en/a1.py create mode 100644 campaign/event_20200611_en/a2.py create mode 100644 campaign/event_20200611_en/a3.py create mode 100644 campaign/event_20200611_en/b1.py create mode 100644 campaign/event_20200611_en/b2.py create mode 100644 campaign/event_20200611_en/b3.py create mode 100644 campaign/event_20200611_en/c1.py create mode 100644 campaign/event_20200611_en/c2.py create mode 100644 campaign/event_20200611_en/c3.py create mode 100644 campaign/event_20200611_en/d1.py create mode 100644 campaign/event_20200611_en/d2.py create mode 100644 campaign/event_20200611_en/d3.py diff --git a/campaign/event_20200611_en/a1.py b/campaign/event_20200611_en/a1.py new file mode 100644 index 000000000..fc539bb77 --- /dev/null +++ b/campaign/event_20200611_en/a1.py @@ -0,0 +1,48 @@ +from module.campaign.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() +MAP.map_data = ''' + -- -- ++ -- -- -- ++ ++ + -- -- -- -- -- -- -- -- + ++ -- -- ++ -- -- -- -- + ++ -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- + -- -- ++ ++ ++ -- -- ++ +''' + + +class Config: + SUBMARINE = 0 + FLEET_BOSS = 1 + + POOR_MAP_DATA = True + MAP_HAS_AMBUSH = False + MAP_HAS_FLEET_STEP = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_SIREN = True + MAP_HAS_DYNAMIC_RED_BORDER = False + MAP_HAS_MAP_STORY = True + MAP_SIREN_COUNT = 2 + + TRUST_EDGE_LINES = False + COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 + INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (100, 255 - 24), + 'width': 1, + 'prominence': 10, + 'distance': 35, + } + EDGE_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (255 - 24, 255), + 'prominence': 2, + 'distance': 50, + 'wlen': 1000 + } + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/a2.py b/campaign/event_20200611_en/a2.py new file mode 100644 index 000000000..aeaf899cd --- /dev/null +++ b/campaign/event_20200611_en/a2.py @@ -0,0 +1,21 @@ +from module.campaign.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 campaign.event_20200521_cn.a1 import Config + + +MAP = CampaignMap() +MAP.map_data = ''' + -- -- -- -- -- -- -- -- ++ + -- -- -- ++ ++ -- -- -- ++ + ++ -- -- -- -- -- -- -- -- + ++ -- ++ -- -- -- -- -- -- + -- -- -- -- ++ ++ -- -- -- + -- -- -- -- ++ ++ -- -- -- +''' +MAP.camera_data = ['D1', 'D4', 'F2', 'F4'] + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/a3.py b/campaign/event_20200611_en/a3.py new file mode 100644 index 000000000..cf091669a --- /dev/null +++ b/campaign/event_20200611_en/a3.py @@ -0,0 +1,25 @@ +from module.campaign.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 campaign.event_20200521_cn.a1 import Config as ConfigBase + + +MAP = CampaignMap() +MAP.map_data = ''' + -- -- -- ++ ++ -- -- -- + -- -- -- -- -- -- -- -- + ++ ++ -- -- -- -- ++ ++ + -- -- -- ++ -- -- ++ ++ + -- -- -- ++ -- -- -- -- + -- -- -- -- -- -- -- ++ + -- -- -- ++ -- -- -- -- +''' + + +class Config(ConfigBase): + MAP_HAS_DYNAMIC_RED_BORDER = False + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/b1.py b/campaign/event_20200611_en/b1.py new file mode 100644 index 000000000..c336e5ba1 --- /dev/null +++ b/campaign/event_20200611_en/b1.py @@ -0,0 +1,53 @@ +from module.campaign.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() +MAP.map_data = ''' + -- -- ++ ++ -- -- + -- -- ++ ++ -- -- + ++ -- -- -- -- -- + -- -- -- -- ++ -- + -- -- -- -- -- -- + ++ ++ -- -- -- -- + ++ -- -- -- ++ -- + -- -- -- -- -- -- + -- -- -- -- -- -- +''' +MAP.camera_data = ['C3', 'C5', 'C7'] + + +class Config: + SUBMARINE = 0 + FLEET_BOSS = 1 + + POOR_MAP_DATA = True + MAP_HAS_AMBUSH = False + MAP_HAS_FLEET_STEP = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_SIREN = True + MAP_HAS_DYNAMIC_RED_BORDER = False + MAP_HAS_MAP_STORY = True + MAP_SIREN_TEMPLATE = ['Algerie', 'LaGalissonniere'] + MAP_SIREN_COUNT = 2 + + TRUST_EDGE_LINES = False + COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 + INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (100, 255 - 24), + 'width': 1, + 'prominence': 10, + 'distance': 35, + } + EDGE_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (255 - 24, 255), + 'prominence': 2, + 'distance': 50, + 'wlen': 1000 + } + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/b2.py b/campaign/event_20200611_en/b2.py new file mode 100644 index 000000000..7dbf318a4 --- /dev/null +++ b/campaign/event_20200611_en/b2.py @@ -0,0 +1,43 @@ +from module.campaign.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 campaign.event_20200521_cn.b1 import Config as ConfigBase + + +MAP = CampaignMap() +MAP.map_data = """ + -- -- -- -- ++ -- -- -- -- ++ ++ + -- -- -- -- -- -- ++ ++ -- -- -- + ++ -- -- -- -- -- ++ ++ -- -- -- + -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- + ++ ++ -- -- -- -- ++ ++ -- -- -- + ++ -- -- -- -- -- -- -- -- -- -- +""" +MAP.wall_data = """ + · · | · · · · · · · · · , + + , + · · · · · · · · · · | · , + + + + + + , + · · | · · | · | · · · · | · · , + +---+---+ | | + , + · · · | · · | · · · · | · | · , + +---+ +---+ +---+ +-- , + · · · · · · · · · · · , + , + · · · · · · · · · · · , + , + · · · · · · · · · · · , +""" + + +class Config(ConfigBase): + FLEET_BOSS = 2 + + MAP_HAS_WALL = True + MAP_SIREN_TEMPLATE = ['Algerie', 'Vauquelin'] + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/b3.py b/campaign/event_20200611_en/b3.py new file mode 100644 index 000000000..f3c68b194 --- /dev/null +++ b/campaign/event_20200611_en/b3.py @@ -0,0 +1,53 @@ +from module.campaign.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 campaign.event_20200521_cn.b1 import Config as ConfigBase + + +MAP = CampaignMap() +MAP.map_data = """ + -- -- -- -- -- -- -- -- -- -- -- -- -- ++ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- + ++ -- -- -- -- -- -- -- -- -- -- -- -- -- + ++ -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- ++ ++ + -- ++ -- -- ++ ++ -- -- ++ ++ -- -- -- -- + -- ++ -- -- ++ ++ -- -- ++ ++ -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- ++ ++ + ++ -- -- -- -- -- -- -- -- -- -- -- ++ ++ + -- -- -- -- -- -- -- -- -- -- -- -- -- -- +""" +MAP.camera_data = ['G8', 'G6', 'F3', 'H4'] +MAP.wall_data = """ + · · · · · | · · · · | · · · · · , + +-----------+ +-----------+ , + · · | · · · | · · · · | · · · | · · , + | | | | , + · · | · · · | · · · · | · · · | · · , + +---+ +---+ +----+ +---+ , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + +-----------+ +-----------+ , + · · · · · · | · · | · · · · · · , +""" + + +class Config(ConfigBase): + FLEET_BOSS = 2 + + MAP_HAS_WALL = True + MAP_SIREN_TEMPLATE = ['LaGalissonniere', 'Vauquelin'] + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/c1.py b/campaign/event_20200611_en/c1.py new file mode 100644 index 000000000..705f72a33 --- /dev/null +++ b/campaign/event_20200611_en/c1.py @@ -0,0 +1,48 @@ +from module.campaign.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() +MAP.map_data = ''' + -- -- ++ -- -- -- ++ ++ + -- -- -- -- -- -- -- -- + ++ -- -- ++ -- -- -- -- + ++ -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- + -- -- ++ ++ ++ -- -- ++ +''' + + +class Config: + SUBMARINE = 0 + FLEET_BOSS = 1 + + POOR_MAP_DATA = True + MAP_HAS_AMBUSH = False + MAP_HAS_FLEET_STEP = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_SIREN = True + MAP_HAS_DYNAMIC_RED_BORDER = False + MAP_HAS_MAP_STORY = True + MAP_SIREN_COUNT = 2 + + TRUST_EDGE_LINES = False + COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 + INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (100, 255 - 16), + 'width': 1, + 'prominence': 10, + 'distance': 35, + } + EDGE_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (255 - 16, 255), + 'prominence': 2, + 'distance': 50, + 'wlen': 1000 + } + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/c2.py b/campaign/event_20200611_en/c2.py new file mode 100644 index 000000000..69d4ef8f0 --- /dev/null +++ b/campaign/event_20200611_en/c2.py @@ -0,0 +1,21 @@ +from module.campaign.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 campaign.event_20200521_cn.c1 import Config + + +MAP = CampaignMap() +MAP.map_data = ''' + -- -- -- -- -- -- -- -- ++ + -- -- -- ++ ++ -- -- -- ++ + ++ -- -- -- -- -- -- -- -- + ++ -- ++ -- -- -- -- -- -- + -- -- -- -- ++ ++ -- -- -- + -- -- -- -- ++ ++ -- -- -- +''' +MAP.camera_data = ['D1', 'D4', 'F2', 'F4'] + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/c3.py b/campaign/event_20200611_en/c3.py new file mode 100644 index 000000000..3cb4f9d14 --- /dev/null +++ b/campaign/event_20200611_en/c3.py @@ -0,0 +1,25 @@ +from module.campaign.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 campaign.event_20200521_cn.c1 import Config as ConfigBase + + +MAP = CampaignMap() +MAP.map_data = ''' + -- -- -- ++ ++ -- -- -- + -- -- -- -- -- -- -- -- + ++ ++ -- -- -- -- ++ ++ + -- -- -- ++ -- -- ++ ++ + -- -- -- ++ -- -- -- -- + -- -- -- -- -- -- -- ++ + -- -- -- ++ -- -- -- -- +''' + + +class Config(ConfigBase): + FLEET_BOSS = 2 + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/d1.py b/campaign/event_20200611_en/d1.py new file mode 100644 index 000000000..9a2fb331c --- /dev/null +++ b/campaign/event_20200611_en/d1.py @@ -0,0 +1,84 @@ +from module.campaign.campaign_base import CampaignBase +from module.map.map_base import CampaignMap + +MAP = CampaignMap() +MAP.map_data = ''' + -- ME ++ ++ -- ME + ME ME ++ ++ ME ME + ++ -- MB MB -- -- + ME -- ME ME ++ ME + ME MS __ __ ME ME + ++ ++ MS -- MS ME + ++ MS -- ME ++ ME + ME -- SP -- ME -- + ME -- SP SP -- ME +''' +MAP.weight_data = """ + 50 50 50 50 50 50 + 40 40 40 40 40 40 + 40 40 10 10 40 40 + 30 20 20 20 30 50 + 30 20 20 20 30 50 + 30 30 20 20 30 50 + 30 20 20 20 30 50 + 50 20 20 20 30 50 + 50 20 20 20 20 50 +""" +MAP.camera_data = ['C3', 'C5', 'C7'] +MAP.spawn_data = [ + {'battle': 0, 'enemy': 2, 'siren': 2}, + {'battle': 1, 'enemy': 1}, + {'battle': 2, 'enemy': 2}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'enemy': 2}, + {'battle': 5, 'enemy': 1, 'boss': 1}, +] + + +class Config: + SUBMARINE = 0 + FLEET_BOSS = 2 + + POOR_MAP_DATA = True + MAP_HAS_AMBUSH = False + MAP_HAS_FLEET_STEP = True + MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_SIREN = True + MAP_HAS_DYNAMIC_RED_BORDER = False + MAP_HAS_MAP_STORY = True + MAP_SIREN_TEMPLATE = ['Algerie', 'LaGalissonniere'] + MAP_SIREN_COUNT = 2 + + TRUST_EDGE_LINES = False + COINCIDENT_POINT_ENCOURAGE_DISTANCE = 1.5 + INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (100, 255 - 16), + 'width': 1, + 'prominence': 10, + 'distance': 35, + } + EDGE_LINES_FIND_PEAKS_PARAMETERS = { + 'height': (255 - 16, 255), + 'prominence': 2, + 'distance': 50, + 'wlen': 1000 + } + + +class Campaign(CampaignBase): + MAP = MAP + + def battle_0(self): + if self.clear_siren(): + return True + if self.clear_enemy(scale=(1,)): + return True + if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']): + return True + if self.clear_enemy(genre=['light', 'main']): + return True + + return self.battle_default() + + def battle_5(self): + return self.fleet_2.brute_clear_boss() diff --git a/campaign/event_20200611_en/d2.py b/campaign/event_20200611_en/d2.py new file mode 100644 index 000000000..85547dd7b --- /dev/null +++ b/campaign/event_20200611_en/d2.py @@ -0,0 +1,42 @@ +from module.campaign.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 campaign.event_20200521_cn.d1 import Config as ConfigBase + + +MAP = CampaignMap() +MAP.map_data = """ + -- -- -- -- ++ -- -- -- -- ++ ++ + -- -- -- -- -- -- ++ ++ -- -- -- + ++ -- -- -- -- -- ++ ++ -- -- -- + -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- + ++ ++ -- -- -- -- ++ ++ -- -- -- + ++ -- -- -- -- -- -- -- -- -- -- +""" +MAP.camera_data = ['D3', 'D5', 'F3', 'F5', 'H3', 'H5'] +MAP.wall_data = """ + · · | · · · · · · · · · , + + , + · · · · · · · · · · | · , + + + + + + , + · · | · · | · | · · · · | · · , + +---+---+ | | + , + · · · | · · | · · · · | · | · , + +---+ +---+ +---+ +-- , + · · · · · · · · · · · , + , + · · · · · · · · · · · , + , + · · · · · · · · · · · , +""" + + +class Config(ConfigBase): + MAP_HAS_WALL = True + MAP_SIREN_TEMPLATE = ['Algerie', 'Vauquelin'] + + +class Campaign(CampaignBase): + MAP = MAP diff --git a/campaign/event_20200611_en/d3.py b/campaign/event_20200611_en/d3.py new file mode 100644 index 000000000..bc7b333bd --- /dev/null +++ b/campaign/event_20200611_en/d3.py @@ -0,0 +1,95 @@ +from module.campaign.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 campaign.event_20200521_cn.d1 import Config as ConfigBase + + +MAP = CampaignMap() +MAP.map_data = """ + -- -- -- -- -- ME -- -- ME -- -- -- -- ++ + -- -- -- ME -- -- MB MB -- -- ME -- -- -- + ++ -- ME -- ME ME -- -- ME ME -- ME -- -- + ++ -- -- ME -- -- __ __ -- -- ME -- -- -- + -- -- -- -- ME MS -- -- MS ME -- -- ++ ++ + -- ++ -- ME ++ ++ -- -- ++ ++ ME -- -- -- + -- ++ -- ME ++ ++ -- -- ++ ++ ME -- -- -- + -- -- -- -- ME MS -- -- MS ME -- -- ++ ++ + ++ -- -- -- -- -- -- -- -- -- -- -- ++ ++ + -- -- -- -- -- -- SP SP -- -- -- -- -- -- +""" +MAP.weight_data = """ + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 30 10 10 10 10 10 10 30 10 10 10 + 10 10 30 10 10 10 10 10 10 10 10 30 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 30 10 10 10 10 10 10 30 10 10 10 + 10 10 10 30 10 10 10 10 10 10 30 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 +""" +MAP.camera_data = ['G8', 'G6', 'F3', 'H4'] +MAP.wall_data = """ + · · · · · | · · · · | · · · · · , + +-----------+ +-----------+ , + · · | · · · | · · · · | · · · | · · , + | | | | , + · · | · · · | · · · · | · · · | · · , + +---+ +---+ +----+ +---+ , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + | | , + · · · | · · · · · · · · | · · · , + +-----------+ +-----------+ , + · · · · · · | · · | · · · · · · , +""" +MAP.spawn_data = [ + {'battle': 0, 'enemy': 2, 'siren': 2}, + {'battle': 1, 'enemy': 1}, + {'battle': 2, 'enemy': 2, 'siren': 1}, + {'battle': 3, 'enemy': 1}, + {'battle': 4, 'enemy': 2}, + {'battle': 5, 'enemy': 1}, + {'battle': 6, 'boss': 1}, +] + + +class Config(ConfigBase): + MAP_HAS_WALL = True + MAP_SIREN_TEMPLATE = ['LaGalissonniere', 'Vauquelin'] + + +class Campaign(CampaignBase): + MAP = MAP + + def battle_0(self): + if self.clear_siren(): + return True + if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']): + return True + if self.clear_enemy(scale=(3,), genre=['light', 'main', 'enemy', 'carrier']): + return True + + return self.battle_default() + + def battle_5(self): + if self.clear_enemy(scale=(1,)): + return True + if self.clear_enemy(scale=(2,), genre=['light', 'main', 'enemy', 'carrier']): + return True + if self.clear_enemy(genre=['light', 'main']): + return True + + return self.battle_default() + + def battle_6(self): + return self.fleet_2.brute_clear_boss() diff --git a/module/config/dictionary.py b/module/config/dictionary.py index ba88bf752..6346eaaa5 100644 --- a/module/config/dictionary.py +++ b/module/config/dictionary.py @@ -203,6 +203,7 @@ dic_true_eng_to_eng = { # Event 'event_20200521_en': 'event_20200521_en', + 'Skybound_Oratorio': 'event_20200611_en', } dic_eng_to_true_eng = {v: k for k, v in dic_true_eng_to_eng.items()}