mirror of
https://github.com/Lost-MSth/Arcaea-server.git
synced 2026-02-10 18:07:28 +08:00
[Enhance][Bug fix] API for custom banner
- For Arcaea 6.8.2 - Add support for "skill_vita_arc". - Now `/users/<user_id> PUT` API endpoint can change the user's custom banner. #223 - Fix a bug that the playing result of beyond world map shows zero value at partner multiply term.
This commit is contained in:
@@ -519,6 +519,7 @@ class WorldSkillMixin:
|
||||
'skill_salt': self._skill_salt,
|
||||
'skill_hikari_selene': self._skill_hikari_selene,
|
||||
'skill_nami_sui': self._skill_nami_sui,
|
||||
'skill_vita_arc': self._skill_vita_arc,
|
||||
}
|
||||
if self.user_play.beyond_gauge == 0 and self.character_used.character_id == 35 and self.character_used.skill_id_displayed:
|
||||
self._special_tempest()
|
||||
@@ -762,6 +763,15 @@ class WorldSkillMixin:
|
||||
0.1 * self.progress_normalized
|
||||
self.user.current_map.reclimb(self.final_progress)
|
||||
|
||||
def _skill_vita_arc(self) -> None:
|
||||
'''
|
||||
vita 技能 2 far 会减少 1 over
|
||||
'''
|
||||
x = self.user_play.near_count // 2
|
||||
over = self.character_used.overdrive.get_value(
|
||||
self.character_used.level)
|
||||
self.over_skill_increase = -min(x, over)
|
||||
|
||||
|
||||
class BaseWorldPlay(WorldSkillMixin):
|
||||
'''
|
||||
@@ -1045,11 +1055,14 @@ class BeyondWorldPlay(BaseWorldPlay):
|
||||
|
||||
@property
|
||||
def progress_normalized(self) -> float:
|
||||
return self.base_progress * self.partner_multiply * self.affinity_multiplier
|
||||
|
||||
@property
|
||||
def partner_multiply(self) -> float:
|
||||
overdrive = self.character_used.overdrive_value
|
||||
if self.over_skill_increase:
|
||||
overdrive += self.over_skill_increase
|
||||
|
||||
return self.base_progress * (overdrive / 50) * self.affinity_multiplier
|
||||
return overdrive / 50
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
r = super().to_dict()
|
||||
@@ -1058,7 +1071,7 @@ class BeyondWorldPlay(BaseWorldPlay):
|
||||
r['pre_boost_progress'] = self.progress_normalized * \
|
||||
self.user_play.fragment_multiply / 100
|
||||
|
||||
# r['partner_multiply'] = self.affinity_multiplier # ?
|
||||
r['partner_multiply'] = self.partner_multiply
|
||||
|
||||
if self.over_skill_increase is not None:
|
||||
r['char_stats']['over_skill_increase'] = self.over_skill_increase
|
||||
|
||||
Reference in New Issue
Block a user