106 lines
2.2 KiB
Python
106 lines
2.2 KiB
Python
from hashlib import new
|
|
|
|
from logic import events
|
|
from logic.events import *
|
|
|
|
|
|
class EventDetector:
|
|
|
|
|
|
def detect(self, old, new):
|
|
|
|
events=[]
|
|
|
|
old_hp = old.get("health")
|
|
new_hp = new.get("health")
|
|
old_flashes = old.get("flashed")
|
|
new_flashes = new.get("flashed")
|
|
old_burning = old.get("burning")
|
|
new_burning = new.get("burning")
|
|
old_kills = old.get("kills")
|
|
new_kills = new.get("kills")
|
|
old_headshots = old.get("headshots")
|
|
new_headshots = new.get("headshots")
|
|
|
|
|
|
# 死亡
|
|
if (
|
|
old_hp > 0
|
|
and new_hp == 0
|
|
):
|
|
events.append(
|
|
DeathEvent()
|
|
)
|
|
|
|
# 受伤
|
|
if new_hp < old_hp:
|
|
|
|
damage = old_hp-new_hp
|
|
|
|
if damage >= 50:
|
|
events.append(
|
|
DamageEvent(
|
|
damage
|
|
)
|
|
)
|
|
|
|
|
|
events.append(
|
|
DamageEvent(
|
|
old_hp - new_hp
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# 闪光
|
|
if new_flashes > old_flashes:
|
|
events.append(
|
|
FlashEvent(
|
|
new_flashes
|
|
)
|
|
)
|
|
elif new_flashes < old_flashes:
|
|
events.append(
|
|
FlashEndEvent()
|
|
)
|
|
|
|
# 燃烧
|
|
if old_burning == 0 and new_burning > 0:
|
|
|
|
events.append(
|
|
BurnEvent(
|
|
new_burning
|
|
)
|
|
)
|
|
# 燃烧结束
|
|
elif old_burning > 0 and new_burning == 0:
|
|
|
|
events.append(
|
|
BurnEndEvent()
|
|
)
|
|
|
|
|
|
# 击杀
|
|
if new_kills > old_kills:
|
|
|
|
events.append(
|
|
KillEvent(
|
|
new_kills
|
|
)
|
|
)
|
|
|
|
|
|
# 爆头
|
|
if new_headshots > old_headshots:
|
|
|
|
events.append(
|
|
HeadshotEvent(
|
|
new_headshots
|
|
)
|
|
)
|
|
|
|
|
|
return events |