Source code for VegansDeluxe.rebuild.Weapons.Torch

import random

from VegansDeluxe.core import AttachedAction, RegisterWeapon
from VegansDeluxe.core import MeleeAttack
from VegansDeluxe.core.Translator.LocalizedString import ls
from VegansDeluxe.core.Weapons.Weapon import MeleeWeapon
from VegansDeluxe.rebuild import Aflame


[docs]@RegisterWeapon class Torch(MeleeWeapon): id = 'torch' name = ls("rebuild.weapon.torch.name") description = ls("rebuild.weapon.torch.description") def __init__(self, session_id: str, entity_id: str): super().__init__(session_id, entity_id) self.accuracy_bonus = 2 self.cubes = 3
[docs]@AttachedAction(Torch) class TorchAttack(MeleeAttack):
[docs] async def func(self, source, target): damage = (await super().attack(source, target)).dealt if not damage: return damage if random.randint(0, 100) > 50: aflame = target.get_state(Aflame) aflame.add_flame(self.session, target, source, 1) return damage