Skip to content

Commit

Permalink
4.8 balance adjustment
Browse files Browse the repository at this point in the history
  • Loading branch information
flick-ai committed Aug 9, 2024
1 parent b69c811 commit e4750ed
Show file tree
Hide file tree
Showing 22 changed files with 246 additions and 90 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ class DecorousHarmony(TalentCard):
character = Yunjin
def __init__(self) -> None:
super().__init__()

def balance_adjustment():
log = {}
log[4.8] = "调整了角色牌「云堇」天赋牌「庄谐并举」的效果:效果“装备有此牌的云堇在场时,如果我方没有手牌,则飞云旗阵会使普通攻击造成的伤害额外+2。”调整为“装备有此牌的云堇在场,且我方触发飞云旗阵时:如果我方没有手牌,则使此次技能伤害+2。”"
return log
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from genius_invocation.card.action.equipment.talent.import_head import *
from genius_invocation.card.character.characters.Albedo import *
from genius_invocation.card.character.characters.Albedo import *

class DescentofDivinity(TalentCard):
id: int = 216041
Expand All @@ -12,4 +12,8 @@ class DescentofDivinity(TalentCard):
character = Albedo
def __init__(self) -> None:
super().__init__()


def balance_adjustment(self):
log = {}
log[4.8] = " 调整了角色牌「阿贝多」天赋牌「神性之陨」的效果:“装备有此牌的阿贝多在场时,如果我方场上存在阳华,则我方角色进行下落攻击时造成的伤害+1。”增加了效果“进行下落攻击时少花费1个无色元素”"
return log
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from genius_invocation.card.action.equipment.talent.import_head import *
from genius_invocation.card.character.characters.Zhongli import *
from genius_invocation.card.character.characters.Zhongli import *

class DominanceofEarth(TalentCard):
id: int = 216031
Expand All @@ -12,4 +12,9 @@ class DominanceofEarth(TalentCard):
character = Zhongli
def __init__(self) -> None:
super().__init__()


def balance_adjustment():
log = {}
log[4.8] = "调整了角色牌「钟离」天赋牌「炊金馔玉」的效果:效果“我方出战角色在护盾角色状态或护盾出战状态的保护下时,我方召唤物造成的岩元素伤害+1。”调整为“装备有此牌的钟离生命值至少为7时,钟离造成的伤害和我方召唤物造成的岩元素伤害+1。”"
return log

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from genius_invocation.card.action.equipment.talent.import_head import *
from genius_invocation.card.character.characters.Cyno import *
from genius_invocation.card.character.characters.Cyno import *

class FeatherfallJudgment(TalentCard):
id: int = 214041
Expand All @@ -16,5 +16,5 @@ def __init__(self) -> None:
def balance_adjustment():
log = {}
log[4.2] = "调整了角色牌「赛诺」的天赋牌「落羽的裁择」效果,其伤害增加效果改为:“装备有此牌的赛诺在启途誓使的「凭依」级数为偶数时使用秘仪·律渊渡魂,造成的伤害+1。”"
log[4.8] = "调整了角色牌「赛诺」天赋牌「落羽的裁择」的效果:效果“装备有此牌的赛诺在启途誓使的「凭依」级数为偶数时,使用秘仪·律渊渡魂造成的伤害+1。”调整为“装备有此牌的赛诺在启途誓使的「凭依」级数至少为2时,使用秘仪·律渊渡魂造成的伤害+2。(每回合1次)”"
return log

Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ class MirrorCage(TalentCard):
character = MirrorMaiden
def __init__(self) -> None:
super().__init__()

@staticmethod
def balance_adjustment():
log = {}
log[4.2] = "调整了角色牌「愚人众·藏镜仕女」的天赋牌「镜锢之笼」所需元素骰:所需元素骰由4个水元素骰子调整为3个"
log[4.8] = "调整了角色牌「藏镜仕女」天赋牌「镜锢之笼」的效果:效果“并且会使所附属角色切换到其他角色时元素骰费用+1”调整为“并且会使附属角色受到的水元素伤害+1”"
return log
14 changes: 10 additions & 4 deletions genius_invocation/card/action/event/events/Falls_and_Fortune.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ class Falls_and_Fortune_Entity(Combat_Status):
def __init__(self, game: 'GeniusGame', from_player: 'GeniusPlayer', from_character=None):
super().__init__(game, from_player, from_character)
self.current_usage = 1

def on_calculate(self, game:'GeniusGame'):
if game.current_dice.use_type == 'change character':
game.current_dice.cost[0]['cost_num'] += 1

def on_change(self, game:'GeniusGame'):
self.on_calculate(game)

def update_listener_list(self):
self.listeners = [
(EventType.CALCULATE_DICE, ZoneType.ACTIVE_ZONE, self.on_calculate),
Expand All @@ -40,9 +40,15 @@ def on_played(self, game: 'GeniusGame'):
zone = game.active_player.team_combat_status
if not zone.has_status(Falls_and_Fortune_Entity):
zone.add_entity(Falls_and_Fortune_Entity(game, game.active_player, None))

def find_target(self, game:'GeniusGame'):
if game.active_player.dice_zone.num() >= 8 and not get_opponent(game).is_pass:
return [1]
else:
return []
return []

def balance_adjustment():
log = {
4.8:"调整了事件牌「坍陷与契机」所需元素骰:由1个元素骰调整为0个元素骰。",
}
return log
14 changes: 12 additions & 2 deletions genius_invocation/card/action/event/events/Lyresong.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@ def on_calculate(self, game:'GeniusGame'):
if game.active_player_index == self.from_player.index:
if game.current_dice.use_type == ActionCardType.EQUIPMENT_ARTIFACT:
if game.current_dice.cost[0]['cost_num']>0:
game.current_dice.cost[0]['cost_num'] = max(game.current_dice.cost[0]['cost_num']-2, 0)
if self.from_player.round_play_cards == 0:
count = 2
else:
count = 1
game.current_dice.cost[0]['cost_num'] = max(game.current_dice.cost[0]['cost_num']-count, 0)
return True
return False

Expand Down Expand Up @@ -57,4 +61,10 @@ def find_target(self, game:'GeniusGame'):
for idx, character in enumerate(game.active_player.character_list):
if character.character_zone.artifact_card != None:
target.append(idx+2)
return target
return target

def balance_adjustment():
log = {
4.8:"本回合中,我方下次打出「圣遗物」手牌时会触发的效果改为:“少花费1个元素骰。如果打出此牌前我方未打出过其他行动牌,则改为少花费2个元素骰”。"
}
return log
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
from genius_invocation.card.action.base import ActionCard
from genius_invocation.utils import *
from genius_invocation.entity.status import Status
if TYPE_CHECKING:
from genius_invocation.game.game import GeniusGame


class Treasure_Heal(Status):
def __init__(self, game: 'GeniusGame', from_player: 'GeniusPlayer', from_character=None):
super().__init__(game, from_player, from_character)
self.current_usage = 1

def on_end(self, game: 'GeniusGame'):
self.on_destroy(game)

def update_listener_list(self):
self.listeners = [
(EventType.FINAL_END, ZoneType.ACTIVE_ZONE, self.on_end),
]

class Undersea_Treasure(ActionCard):
name: str = 'Underwater Treasure'
name_ch = '海底宝藏'
Expand All @@ -12,7 +27,11 @@ def __init__(self) -> None:
super().__init__()

def on_played(self, game: 'GeniusGame'):
get_my_active_character(game).heal(1, game)
activte_character = get_my_active_character(game)
if not activte_character.has_status(Treasure_Heal):
activte_character.heal(1, game)
else:
activte_character.character_zone.add_entity(Treasure_Heal(game, game.active_player, activte_character))
dices = game.active_player.roll_dice(num=1, is_basic=True)
game.active_player.dice_zone.add(dices)

Expand All @@ -33,3 +52,10 @@ def __init__(self) -> None:
def on_played(self, game: 'GeniusGame'):
cards = [Undersea_Treasure() for _ in range(6)]
game.active_player.card_zone.insert_randomly(cards, num=-1)

def balance_adjustment():
log = {
4.8:"事件牌「海中寻宝」生成的「海底宝藏」增加了使用次数限制:每个角色每回合最多受到1次来自本效果的治疗。",
}
return log

10 changes: 8 additions & 2 deletions genius_invocation/card/action/support/item/Kusava.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ class Kusava(SupportCard):
name: str = 'Kusava'
name_ch = '苦舍桓'
time = 4.7
cost_num = 0
cost_type = None
cost_num = 1
cost_type = CostType.WHITE
card_type = ActionCardType.SUPPORT_ITEM

def __init__(self) -> None:
Expand All @@ -84,3 +84,9 @@ def __init__(self) -> None:
def on_played(self, game: 'GeniusGame') -> None:
self.entity = KusavaEntity(game, from_player=game.active_player)
super().on_played(game)

def balance_adjustment():
log = {
4.8:"支调整了支援牌「苦舍桓」所需元素骰:由0个元素骰调整为1个元素骰"
}
return log
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ class Lumenstone_Adjuvant(SupportCard):
name: str = 'Lumenstone Adjuvant'
name_ch = '流明石触媒'
time = 4.5
cost_num = 2
cost_type = CostType.WHITE
cost_num = 3
cost_type = CostType.BLACK
card_type = ActionCardType.SUPPORT_ITEM

def __init__(self) -> None:
Expand All @@ -61,3 +61,9 @@ def __init__(self) -> None:
def on_played(self, game: 'GeniusGame') -> None:
self.entity = Lumenstone_Adjuvant_Entity(game, from_player=game.active_player)
super().on_played(game)

def balance_adjustment():
log = {
4.8:"调整了支援牌「流明石触媒」所需元素骰:由2个相同元素骰调整为3个任意元素骰",
}
return log
12 changes: 9 additions & 3 deletions genius_invocation/card/action/support/location/Dawn_Winery.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class Dawn_Winery_Entity(Support):
id: int = 321004
name = 'Dawn Wineryr'
name_ch = '晨曦酒庄'
max_usage = 1
max_usage = 2
max_count = -1
def __init__(self, game: 'GeniusGame', from_player: 'GeniusPlayer', from_character=None):
super().__init__(game, from_player, from_character)
Expand Down Expand Up @@ -41,7 +41,7 @@ def update_listener_list(self):
(EventType.BEGIN_ACTION_PHASE, ZoneType.SUPPORT_ZONE, self.on_begin),
(EventType.ON_CHANGE_CHARACTER, ZoneType.SUPPORT_ZONE, self.on_use),
]

def show(self):
if self.usage>0:
return '┬─┬┬─┬'
Expand All @@ -66,4 +66,10 @@ def __init__(self) -> None:

def on_played(self, game: 'GeniusGame') -> None:
self.entity = Dawn_Winery_Entity(game, from_player=game.active_player)
super().on_played(game)
super().on_played(game)

def balance_adjustment():
log = {
4.8:"调整了支援牌「晨曦酒庄」的效果:效果触发的限制“每回1次”调整为“每回合至多2次”",
}
return log
38 changes: 22 additions & 16 deletions genius_invocation/card/character/characters/Albedo.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,6 @@ def __init__(self, game: 'GeniusGame', from_player: 'GeniusPlayer', from_charact
self.usage: int = 3
self.current_usage: int = 3
self.round = -1
self.round_usage = 1
self.round_max_usage = 1

def update(self):
self.current_usage = self.usage
Expand All @@ -74,21 +72,22 @@ def on_end(self, game:'GeniusGame'):
self.on_destroy(game)

def on_calculate_dice(self, game:'GeniusGame'):
if game.round != self.round:
self.round = game.round
self.round_usage = self.round_max_usage
if game.active_player == self.from_player:
if self.round_usage > 0:
if game.current_dice.use_type == SkillType.NORMAL_ATTACK:
if self.from_player.is_after_change:
if game.current_dice.cost[1]['cost_num'] > 0:
game.current_dice.cost[1]['cost_num'] -= 1
return True
if game.current_dice.use_type == SkillType.NORMAL_ATTACK:
if self.from_player.is_after_change:
if game.current_dice.cost[1]['cost_num'] > 0:
game.current_dice.cost[1]['cost_num'] -= 1
return True
return False

def on_use_skill(self, game:'GeniusGame'):
if self.on_calculate_dice(game):
self.round_usage -= 1
self.on_calculate_dice(game)

def on_change(self, game:'GeniusGame'):
if game.active_player_index == self.from_player.index:
if self.round != game.round:
self.round = game.round
self.from_player.is_quick_change == True

def on_add_damage(self, game:'GeniusGame'):
if game.active_player == self.from_player:
Expand All @@ -100,12 +99,12 @@ def on_add_damage(self, game:'GeniusGame'):
def update_listener_list(self):
self.listeners = [
(EventType.END_PHASE, ZoneType.SUMMON_ZONE, self.on_end),
(EventType.CALCULATE_DICE, ZoneType.SUMMON_ZONE, self.on_calculate_dice),
(EventType.ON_USE_SKILL, ZoneType.SUMMON_ZONE, self.on_use_skill),
(EventType.ON_CHANGE_CHARACTER, ZoneType.SUMMON_ZONE, self.on_change),
]
if self.from_character.talent:
self.listeners.append((EventType.DAMAGE_ADD, ZoneType.SUMMON_ZONE, self.on_add_damage))

self.listeners.append((EventType.CALCULATE_DICE, ZoneType.SUMMON_ZONE, self.on_calculate_dice))
self.listeners.append((EventType.ON_USE_SKILL, ZoneType.SUMMON_ZONE, self.on_use_skill))

class RiteofProgeniture(ElementalBurst):
id: int = 16043
Expand Down Expand Up @@ -152,3 +151,10 @@ def listen_talent_events(self, game: 'GeniusGame'):
status = self.from_player.summon_zone.has_entity(SolarIsotoma)
if status != None:
status.listen_event(game, EventType.DAMAGE_ADD, ZoneType.SUMMON_ZONE, status.on_add_damage)
status.listen_event(game, EventType.CALCULATE_DICE, ZoneType.SUMMON_ZONE, status.on_calculate_dice)
status.listen_event(game, EventType.ON_USE_SKILL, ZoneType.SUMMON_ZONE, status.on_use_skill)

def balance_adjustment():
log = {}
log[4.8] = "调整了角色牌「阿贝多」召唤「阳华」的效果:效果“此召唤物在场时:我方角色进行下落攻击时少花费一个无色元素”调整为“此召唤物在场,我方执行「切换角色」行动时:将此次切换视为「快速行动」而非「战斗行动」”"
return log
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def __init__(self, from_character: 'Character'):
def on_call(self, game: 'GeniusGame'):
super().on_call(game)
# 处理伤害
add_damage = min(5, self.from_character.addtional_max_health//3)
add_damage = min(4, self.from_character.addtional_max_health//3)
self.resolve_damage(game, add_damage=add_damage)
# 获得能量
self.gain_energy(game)
Expand Down Expand Up @@ -130,6 +130,11 @@ def init_state(self, game: 'GeniusGame'):
self.domain = DeepDevourersDomain(game, self.from_player, self)
self.from_player.team_combat_status.add_entity(self.domain)

def balance_adjustment():
log = {}
log[4.8] = "调整了角色牌「吞星之鲸」元素战技的效果:效果“造成1点水元素伤害,此角色每有3点无尽食欲提供的额外最大生命,此伤害+1(最多+5)”中,“最多+5”调整为“最多+4”"
return log



class DeepDevourersDomain(Combat_Status):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ def on_call(self, game: 'GeniusGame'):
super().on_call(game)
self.resolve_damage(game)
self.gain_energy(game)
self.from_character.from_player.card_zone.find_card_by_name(BonecrunchersEnergyBlock.name, num=1)
num = min(self.from_character.round_get_cards, self.calculate_card_num(game))
self.from_character.round_get_cards = max(0, self.from_character.round_get_cards - num)
self.from_character.from_player.get_card(num=num)
# self.from_character.from_player.card_zone.find_card_by_name(BonecrunchersEnergyBlock.name, num=1)
# num = min(self.from_character.round_get_cards, self.calculate_card_num(game))
# self.from_character.round_get_cards = max(0, self.from_character.round_get_cards - num)
self.from_character.from_player.get_card(num=1)
game.manager.invoke(EventType.AFTER_USE_SKILL, game)

class ScattershotVortex(ElementalBurst):
Expand Down Expand Up @@ -133,4 +133,9 @@ def equip_talent(self, game:'GeniusGame', is_action=True, talent_card=None):

def listen_talent_events(self, game: 'GeniusGame'):
self.listen_event(game, EventType.AFTER_PLAY_CARD, ZoneType.CHARACTER_ZONE, self.after_play_card)
self.listen_event(game, EventType.AFTER_CHANGE_CHARACTER, ZoneType.CHARACTER_ZONE, self.after_change)
self.listen_event(game, EventType.AFTER_CHANGE_CHARACTER, ZoneType.CHARACTER_ZONE, self.after_change)

def balance_adjustment():
log = {}
log[4.8] = "调整了角色牌「圣骸飞蛇」元素战技的效果:效果调整为“造成3点风元素伤害,抓1张牌”"
return log
Loading

0 comments on commit e4750ed

Please sign in to comment.