1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-27 05:24:20 +00:00
royalnet/royalpack/commands/spell.py

47 lines
1.6 KiB
Python
Raw Normal View History

2021-04-18 15:15:50 +00:00
import royalnet.engineer as engi
import royalspells
@engi.TeleportingConversation
async def spell(*, _msg: engi.Message, spellname: str, **__):
"""
Genera una spell casuale!
"""
2021-04-18 16:33:51 +00:00
s = royalspells.Spell(spellname)
2021-04-18 15:15:50 +00:00
2021-04-20 00:43:48 +00:00
rows: list[str] = [f"\uE01B{s.name}\uE00B"]
2021-04-18 15:15:50 +00:00
2021-04-18 16:33:51 +00:00
if s.damage_component:
dmg: royalspells.DamageComponent = s.damage_component
2021-04-18 15:15:50 +00:00
constant_str: str = f"{dmg.constant:+d}" if dmg.constant != 0 else ""
rows.append(f"Danni: {dmg.dice_number}d{dmg.dice_type}{constant_str}"
f" {', '.join(dmg.damage_types)}")
rows.append(f"Precisione: {dmg.miss_chance}%")
if dmg.repeat > 1:
rows.append(f"Multiattacco: ×{dmg.repeat}")
rows.append("")
2021-04-18 16:33:51 +00:00
if s.healing_component:
heal: royalspells.HealingComponent = s.healing_component
2021-04-18 15:15:50 +00:00
constant_str: str = f"{heal.constant:+d}" if heal.constant != 0 else ""
rows.append(f"Cura: {heal.dice_number}d{heal.dice_type}{constant_str} HP")
rows.append("")
2021-04-18 16:33:51 +00:00
if s.stats_component:
stats: royalspells.StatsComponent = s.stats_component
2021-04-18 15:15:50 +00:00
rows.append("Il caster riceve: ")
for stat_name in stats.stat_changes:
rows.append(f"{stat_name}{stats.stat_changes[stat_name]}")
rows.append("")
2021-04-18 16:33:51 +00:00
if s.status_effect_component:
se: royalspells.StatusEffectComponent = s.status_effect_component
2021-04-18 15:15:50 +00:00
rows.append("Infligge al bersaglio: ")
rows.append(f"{se.effect} ({se.chance}%)")
rows.append("")
await _msg.reply(text="\n".join(rows))
__all__ = ("spell",)