evennia.contrib.tutorials.evadventure.combat_twitch¶
EvAdventure Twitch-based combat
This implements a ‘twitch’ (aka DIKU or other traditional muds) style of MUD combat.
-
class
evennia.contrib.tutorials.evadventure.combat_twitch.
EvAdventureCombatTwitchHandler
(*args, **kwargs)[source]¶ Bases:
evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler
This is created on the combatant when combat starts. It tracks only the combatants side of the combat and handles when the next action will happen.
-
action_classes
= {'attack': <class 'evennia.contrib.tutorials.evadventure.combat_base.CombatActionAttack'>, 'hold': <class 'evennia.contrib.tutorials.evadventure.combat_base.CombatActionHold'>, 'stunt': <class 'evennia.contrib.tutorials.evadventure.combat_base.CombatActionStunt'>, 'use': <class 'evennia.contrib.tutorials.evadventure.combat_base.CombatActionUseItem'>, 'wield': <class 'evennia.contrib.tutorials.evadventure.combat_base.CombatActionWield'>}¶
-
advantage_against
¶ AttributeProperty.
-
disadvantage_against
¶ AttributeProperty.
-
action_dict
¶ AttributeProperty.
-
fallback_action_dict
¶ AttributeProperty.
-
current_ticker_ref
¶ AttributeProperty.
-
msg
(message, broadcast=True, **kwargs)[source]¶ Central place for sending messages to combatants. This allows for adding any combat-specific text-decoration in one place.
- Parameters
message (str) – The message to send.
combatant (Object) – The ‘You’ in the message, if any.
broadcast (bool) – If False, combatant must be included and will be the only one to see the message. If True, send to everyone in the location.
location (Object, optional) – If given, use this as the location to send broadcast messages to. If not, use self.obj as that location.
Notes
If combatant is given, use $You/you() markup to create a message that looks different depending on who sees it. Use $You(combatant_key) to refer to other combatants.
-
at_init
()[source]¶ Called when the Script is cached in the idmapper. This is usually more reliable than overriding __init__ since the latter can be called at unexpected times.
-
get_sides
(combatant)[source]¶ Get a listing of the two ‘sides’ of this combat, from the perspective of the provided combatant. The sides don’t need to be balanced.
- Parameters
combatant (Character or NPC) – The one whose sides are to determined.
- Returns
tuple –
- A tuple of lists (allies, enemies), from the perspective of combatant.
Note that combatant itself is not included in either of these.
-
give_advantage
(recipient, target)[source]¶ Let a benefiter gain advantage against the target.
- Parameters
recipient (Character or NPC) – The one to gain the advantage. This may or may not be the same entity that creates the advantage in the first place.
target (Character or NPC) – The one against which the target gains advantage. This could (in principle) be the same as the benefiter (e.g. gaining advantage on some future boost)
-
give_disadvantage
(recipient, target)[source]¶ Let an affected party gain disadvantage against a target.
- Parameters
recipient (Character or NPC) – The one to get the disadvantage.
target (Character or NPC) – The one against which the target gains disadvantage, usually an enemy.
-
has_advantage
(combatant, target)[source]¶ Check if a given combatant has advantage against a target.
- Parameters
combatant (Character or NPC) – The one to check if they have advantage
target (Character or NPC) – The target to check advantage against.
-
has_disadvantage
(combatant, target)[source]¶ Check if a given combatant has disadvantage against a target.
- Parameters
combatant (Character or NPC) – The one to check if they have disadvantage
target (Character or NPC) – The target to check disadvantage against.
-
queue_action
(action_dict, combatant=None)[source]¶ Schedule the next action to fire.
- Parameters
action_dict (dict) – The new action-dict to initialize.
combatant – Unused.
-
exception
DoesNotExist
¶ Bases:
evennia.contrib.tutorials.evadventure.combat_base.EvAdventureCombatBaseHandler.DoesNotExist
-
exception
MultipleObjectsReturned
¶
-
path
= 'evennia.contrib.tutorials.evadventure.combat_twitch.EvAdventureCombatTwitchHandler'¶
-
typename
= 'EvAdventureCombatTwitchHandler'¶
-
-
class
evennia.contrib.tutorials.evadventure.combat_twitch.
CmdAttack
(**kwargs)[source]¶ Bases:
evennia.contrib.tutorials.evadventure.combat_twitch._BaseTwitchCombatCommand
Attack a target. Will keep attacking the target until combat ends or another combat action is taken.
- Usage:
attack/hit <target>
-
key
= 'attack'¶
-
aliases
= ['hit']¶
-
help_category
= 'combat'¶
-
func
()[source]¶ This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())
-
lock_storage
= 'cmd:all();'¶
-
search_index_entry
= {'aliases': 'hit', 'category': 'combat', 'key': 'attack', 'no_prefix': ' hit', 'tags': '', 'text': '\n Attack a target. Will keep attacking the target until\n combat ends or another combat action is taken.\n\n Usage:\n attack/hit <target>\n\n '}¶
-
class
evennia.contrib.tutorials.evadventure.combat_twitch.
CmdLook
(**kwargs)[source]¶ Bases:
evennia.commands.default.general.CmdLook
,evennia.contrib.tutorials.evadventure.combat_twitch._BaseTwitchCombatCommand
look at location or object
- Usage:
look look <obj> look *<account>
Observes your location or objects in your vicinity.
-
aliases
= ['l', 'ls']¶
-
help_category
= 'general'¶
-
key
= 'look'¶
-
lock_storage
= 'cmd:all()'¶
-
search_index_entry
= {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}¶
-
class
evennia.contrib.tutorials.evadventure.combat_twitch.
CmdHold
(**kwargs)[source]¶ Bases:
evennia.contrib.tutorials.evadventure.combat_twitch._BaseTwitchCombatCommand
Hold back your blows, doing nothing.
- Usage:
hold
-
key
= 'hold'¶
-
func
()[source]¶ This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())
-
aliases
= []¶
-
help_category
= 'general'¶
-
lock_storage
= 'cmd:all();'¶
-
search_index_entry
= {'aliases': '', 'category': 'general', 'key': 'hold', 'no_prefix': ' ', 'tags': '', 'text': '\n Hold back your blows, doing nothing.\n\n Usage:\n hold\n\n '}¶
-
class
evennia.contrib.tutorials.evadventure.combat_twitch.
CmdStunt
(**kwargs)[source]¶ Bases:
evennia.contrib.tutorials.evadventure.combat_twitch._BaseTwitchCombatCommand
Perform a combat stunt, that boosts an ally against a target, or foils an enemy, giving them disadvantage against an ally.
- Usage:
boost [ability] <recipient> <target> foil [ability] <recipient> <target> boost [ability] <target> (same as boost me <target>) foil [ability] <target> (same as foil <target> me)
Example
boost STR me Goblin boost DEX Goblin foil STR Goblin me foil INT Goblin boost INT Wizard Goblin
-
key
= 'stunt'¶
-
aliases
= ['foil', 'boost']¶
-
help_category
= 'combat'¶
-
parse
()[source]¶ Handle parsing of most supported combat syntaxes (except stunts).
<action> [<target>|<item>] or <action> <item> [on] <target>
Use ‘on’ to differentiate if names/items have spaces in the name.
-
func
()[source]¶ This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())
-
lock_storage
= 'cmd:all();'¶
-
search_index_entry
= {'aliases': 'foil boost', 'category': 'combat', 'key': 'stunt', 'no_prefix': ' foil boost', 'tags': '', 'text': '\n Perform a combat stunt, that boosts an ally against a target, or\n foils an enemy, giving them disadvantage against an ally.\n\n Usage:\n boost [ability] <recipient> <target>\n foil [ability] <recipient> <target>\n boost [ability] <target> (same as boost me <target>)\n foil [ability] <target> (same as foil <target> me)\n\n Example:\n boost STR me Goblin\n boost DEX Goblin\n foil STR Goblin me\n foil INT Goblin\n boost INT Wizard Goblin\n\n '}¶
-
class
evennia.contrib.tutorials.evadventure.combat_twitch.
CmdUseItem
(**kwargs)[source]¶ Bases:
evennia.contrib.tutorials.evadventure.combat_twitch._BaseTwitchCombatCommand
Use an item in combat. The item must be in your inventory to use.
- Usage:
use <item> use <item> [on] <target>
Examples
use potion use throwing knife on goblin use bomb goblin
-
key
= 'use'¶
-
help_category
= 'combat'¶
-
parse
()[source]¶ Handle parsing of most supported combat syntaxes (except stunts).
<action> [<target>|<item>] or <action> <item> [on] <target>
Use ‘on’ to differentiate if names/items have spaces in the name.
-
func
()[source]¶ This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())
-
aliases
= []¶
-
lock_storage
= 'cmd:all();'¶
-
search_index_entry
= {'aliases': '', 'category': 'combat', 'key': 'use', 'no_prefix': ' ', 'tags': '', 'text': '\n Use an item in combat. The item must be in your inventory to use.\n\n Usage:\n use <item>\n use <item> [on] <target>\n\n Examples:\n use potion\n use throwing knife on goblin\n use bomb goblin\n\n '}¶
-
class
evennia.contrib.tutorials.evadventure.combat_twitch.
CmdWield
(**kwargs)[source]¶ Bases:
evennia.contrib.tutorials.evadventure.combat_twitch._BaseTwitchCombatCommand
Wield a weapon or spell-rune. You will the wield the item, swapping with any other item(s) you were wielded before.
- Usage:
wield <weapon or spell>
Examples
wield sword wield shield wield fireball
Note that wielding a shield will not replace the sword in your hand, while wielding a two-handed weapon (or a spell-rune) will take two hands and swap out what you were carrying.
-
key
= 'wield'¶
-
help_category
= 'combat'¶
-
parse
()[source]¶ Handle parsing of most supported combat syntaxes (except stunts).
<action> [<target>|<item>] or <action> <item> [on] <target>
Use ‘on’ to differentiate if names/items have spaces in the name.
-
func
()[source]¶ This is the actual executing part of the command. It is called directly after self.parse(). See the docstring of this module for which object properties are available (beyond those set in self.parse())
-
aliases
= []¶
-
lock_storage
= 'cmd:all();'¶
-
search_index_entry
= {'aliases': '', 'category': 'combat', 'key': 'wield', 'no_prefix': ' ', 'tags': '', 'text': '\n Wield a weapon or spell-rune. You will the wield the item, swapping with any other item(s) you\n were wielded before.\n\n Usage:\n wield <weapon or spell>\n\n Examples:\n wield sword\n wield shield\n wield fireball\n\n Note that wielding a shield will not replace the sword in your hand, while wielding a two-handed\n weapon (or a spell-rune) will take two hands and swap out what you were carrying.\n\n '}¶
-
class
evennia.contrib.tutorials.evadventure.combat_twitch.
TwitchCombatCmdSet
(cmdsetobj=None, key=None)[source]¶ Bases:
evennia.commands.cmdset.CmdSet
Add to character, to be able to attack others in a twitch-style way.
-
at_cmdset_creation
()[source]¶ Hook method - this should be overloaded in the inheriting class, and should take care of populating the cmdset by use of self.add().
-
path
= 'evennia.contrib.tutorials.evadventure.combat_twitch.TwitchCombatCmdSet'¶
-
-
class
evennia.contrib.tutorials.evadventure.combat_twitch.
TwitchLookCmdSet
(cmdsetobj=None, key=None)[source]¶ Bases:
evennia.commands.cmdset.CmdSet
This will be added/removed dynamically when in combat.
-
at_cmdset_creation
()[source]¶ Hook method - this should be overloaded in the inheriting class, and should take care of populating the cmdset by use of self.add().
-
path
= 'evennia.contrib.tutorials.evadventure.combat_twitch.TwitchLookCmdSet'¶
-