Skip to content

Commit 1875c5a

Browse files
committed
Implement "Special Practize"/idolize goal check.
1 parent f9df096 commit 1875c5a

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

npps4/system/achievement.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -847,6 +847,37 @@ async def is_accomplished(
847847
return value >= achievement_info.params2
848848

849849

850+
@register_achievement_checker(38)
851+
class CheckUnitRankUp(AchievementChecker[AchievementUpdateUnitRankUp]):
852+
async def test_param(
853+
self,
854+
context: idol.BasicSchoolIdolContext,
855+
data: AchievementUpdateUnitRankUp,
856+
achievement_info: achievement.Achievement,
857+
) -> bool:
858+
return achievement_info.params1 is None and len(data.unit_ids) > 0
859+
860+
def maxvalue(self, achievement_info: achievement.Achievement) -> int:
861+
assert achievement_info.params1 is not None
862+
return achievement_info.params1
863+
864+
async def update(
865+
self,
866+
context: idol.BasicSchoolIdolContext,
867+
user: main.User,
868+
oldvalue: int,
869+
data: AchievementUpdateUnitRankUp,
870+
achievement_info: achievement.Achievement,
871+
) -> int:
872+
return oldvalue + len(data.unit_ids)
873+
874+
async def is_accomplished(
875+
self, context: idol.BasicSchoolIdolContext, value: int, achievement_info: achievement.Achievement
876+
) -> bool:
877+
assert achievement_info.params1 is not None
878+
return value >= achievement_info.params1
879+
880+
850881
@register_achievement_checker(50)
851882
class CheckLiveAdvanced(AchievementChecker[AchievementUpdateLiveClear]):
852883
async def test_param(

0 commit comments

Comments
 (0)