NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

actions.py (3081B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\qa\actions.py
      2 from achievement_system.client.api.repository import get_repository
      3 from achievement_system.client.model.definition.contribution_method.progress_config import ProgressType
      4 from achievement_system.client.qa.checklist_progress_window import AchievementChecklistProgressWindow
      5 from achievement_system.client.ui.fanfare.achievement_complete import achievement_complete_hero_notification
      6 from eve.client.script.ui.util.uix import QtyPopup
      7 
      8 def qa_complete_achievement(achievement_id):
      9     repository = get_repository()
     10     repository.admin_complete_achievement(achievement_id)
     11 
     12 
     13 def qa_complete_all_achievements_in_category(category_id):
     14     repository = get_repository()
     15     repository.admin_complete_achievements_in_category(category_id)
     16 
     17 
     18 def qa_progress_achievement(achievement_id):
     19     repository = get_repository()
     20     achievement_state = repository.get_achievement_state(achievement_id)
     21     achievement_definition = repository.definitions.get_achievement(achievement_id)
     22     contrib_method_definition = repository.definitions.get_contribution_method(achievement_definition.contribution_method.identifier)
     23     if contrib_method_definition.progress_config.progress_type == ProgressType.CUMULATIVE:
     24         current_progress = achievement_state.progress if achievement_state and achievement_state.progress else 0
     25         ret = QtyPopup(minvalue=1, maxvalue=achievement_definition.milestones[-1].attributes.cumulated_target - current_progress, setvalue=1, hint='Progress to add:', caption='Add Progress')
     26         if ret and 'qty' in ret:
     27             repository.admin_add_cumulative_progress_to_achievement(achievement_id, ret['qty'])
     28     elif contrib_method_definition.progress_config.progress_type == ProgressType.CHECKLIST:
     29         wnd = AchievementChecklistProgressWindow(contrib_method_definition, achievement_id, achievement_definition, achievement_state)
     30         wnd.ShowModal()
     31     elif contrib_method_definition.progress_config.progress_type == ProgressType.SET:
     32         current_progress = achievement_state.checklist.get_progress_value() if achievement_state and achievement_state.checklist else 0
     33         ret = QtyPopup(minvalue=1, maxvalue=achievement_definition.milestones[-1].attributes.cumulated_target - current_progress, setvalue=1, hint='Items to add (arbitrary unique values):', caption='Add Progress')
     34         if ret and 'qty' in ret:
     35             repository.admin_add_set_progress_to_achievement(achievement_id, ret['qty'])
     36 
     37 
     38 def qa_reset_achievement(achievement_id):
     39     repository = get_repository()
     40     repository.admin_reset_achievement(achievement_id)
     41 
     42 
     43 def qa_reset_all_achievements_in_category(category_id):
     44     repository = get_repository()
     45     repository.admin_reset_achievements_in_category(category_id)
     46 
     47 
     48 def qa_show_hero_notification(achievement_id):
     49 
     50     def PlayVideo(parent, cancellation_token):
     51         achievement_complete_hero_notification(parent, achievement_id)
     52 
     53     sm.GetService('heroNotification').play(PlayVideo, 1)