Commit db6d7aad authored by 陈俊羽's avatar 陈俊羽
Browse files

增加了尾刀记录和刀均伤害

parent 15630439
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ jobs:
    - name: Build exec file
      uses: JackMcKew/pyinstaller-action-windows@main
      with:
        path: src
        path: .
        spec: KnightReport.spec
        
    - name: Upload asset to release
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
block_cipher = None


a = Analysis(['..\\src\\main.py', '..\\src\\ctrl.py', '..\\src\\constants.py', '..\\src\\utils.py'],
a = Analysis(['src\\main.py', 'src\\ctrl.py', 'src\\constants.py', 'src\\utils.py'],
             pathex=[],
             binaries=[],
             datas=[],
+0 −0

File moved.

+10 −7
Original line number Diff line number Diff line
@@ -34,8 +34,6 @@ class Ctrl:
        self.combat: Union[Combat, None] = None
        self.all_uid: Set = set()



    def exec(self):
        r"""
        execute the whole generating stream
@@ -120,11 +118,10 @@ class Ctrl:
            hits = person_attack['damage_num']
            # check abnormal hits today
            if hits > 3:
                logging.warning("玩家uid {:d}于日期{:s} 对boss{:s} 异常出刀数{:d}"
                                .format(uid, self.dates[index], boss_name,
                                        self.person_info[uid].boss_hits[boss_name]))
                logging.warning("玩家uid {:d}于日期{:s} 异常出刀数{:d}"
                                .format(uid, self.dates[index], hits))
                logging.warning("记录当日战斗日志")
                logging.warning(f"{json.dumps(attack_status)}")
                logging.warning(attack_status)
            damage = person_attack['damage_total']
            self.person_info[uid].hits += hits
            self.person_info[uid].damage += damage
@@ -135,7 +132,13 @@ class Ctrl:
                boss_name = damage_once['boss_name']
                self.combat.add_boss(boss_name)
                damage = damage_once['damage']
                self.person_info[uid].add_hit(boss_name, damage)
                killed = damage_once['is_kill']
                if killed != 0 and killed != 1:
                    logging.error("玩家uid {:d}于日期{:s} 异常尾刀数{:d}"
                                  .format(uid, self.dates[index], killed))
                    logging.error("记录当日战斗日志")
                    logging.error(attack_status)
                self.person_info[uid].add_hit(boss_name, damage, killed)
        # People don't join combat today
        for uid in self.all_uid.difference(uid_today):
            self.person_info[uid].omission[index] = -3
+13 −4
Original line number Diff line number Diff line
import csv
import logging
from typing import Sequence, Dict, List


@@ -8,7 +7,9 @@ class Info:
        self.uid: int = uid
        self.name: str = name
        self.hits: int = 0
        self.kill: int = 0
        self.damage: int = 0
        self.not_killed_damage: int = 0
        self.boss_hits: Dict[str, int] = {}
        self.boss_damage: Dict[str, int] = {}
        # omit can be [-3, 0], -x equals omit x hit one day
@@ -21,7 +22,13 @@ class Info:
        else:
            return str(x)

    def add_hit(self, boss_target: str, damage: int):
    def add_hit(self, boss_target: str, damage: int, killed: int):
        if killed == 0:
            self.not_killed_damage += damage
        elif killed == 1:
            self.kill += 1
        else:
            raise ValueError
        if not self.boss_hits.__contains__(boss_target):
            self.boss_hits[boss_target] = 1
            self.boss_damage[boss_target] = damage
@@ -39,7 +46,9 @@ class Info:

        date_status = [self.omit_mapping(omit) for omit in self.omission]

        status = [self.uid, self.name, self.hits, self.damage]
        avg_damage = '{:d}'.format(
            self.not_killed_damage // (self.hits - self.kill)) if self.hits - self.kill > 0 else '-'
        status = [self.uid, self.name, self.hits, self.damage, self.kill, avg_damage]
        status.extend(boss_status)
        status.extend(date_status)
        return status
@@ -70,7 +79,7 @@ class Combat:
            self._boss_set.add(name)

    def marshal(self, person_list: Sequence[Info], filename: str):
        headers = ["uid", "玩家", "出刀", "伤害"]
        headers = ["uid", "玩家", "出刀", "伤害", "尾刀", "均伤(除尾刀)"]

        for boss in self.boss_name:
            headers.extend(["{:s}出刀".format(boss), "{:s}伤害".format(boss)])
Loading