From 03bd61753b3b26a8bf2b6df55e3ec7bf74178116 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 7 May 2023 20:50:40 +0200 Subject: [PATCH] Making code-batchfile for building turnbased demo area --- .../grid/extended_room/extended_room.py | 5 +- .../evadventure/batchscripts/combat_demo.ev | 6 +- .../evadventure/batchscripts/combat_demo.py | 55 +++++++++++++++++++ 3 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 evennia/contrib/tutorials/evadventure/batchscripts/combat_demo.py diff --git a/evennia/contrib/grid/extended_room/extended_room.py b/evennia/contrib/grid/extended_room/extended_room.py index 843c39e0a1..33ab3200d3 100644 --- a/evennia/contrib/grid/extended_room/extended_room.py +++ b/evennia/contrib/grid/extended_room/extended_room.py @@ -88,7 +88,6 @@ import datetime import re from django.conf import settings - from evennia import CmdSet, DefaultRoom, default_cmds, gametime, utils # error return function, needed by Extended Look command @@ -361,7 +360,9 @@ class CmdExtendedRoomLook(default_cmds.CmdLook): if detail: # we found a detail # tell all the objects in the room we're looking closely at something - caller.location.msg_contents(f"$You() $conj(look) closely at {args}.\n", from_obj=caller) + caller.location.msg_contents( + f"$You() $conj(look) closely at {args}.\n", from_obj=caller + ) # show the detail to the player caller.msg(detail) return diff --git a/evennia/contrib/tutorials/evadventure/batchscripts/combat_demo.ev b/evennia/contrib/tutorials/evadventure/batchscripts/combat_demo.ev index 95caaa774e..ebeba7e869 100644 --- a/evennia/contrib/tutorials/evadventure/batchscripts/combat_demo.ev +++ b/evennia/contrib/tutorials/evadventure/batchscripts/combat_demo.ev @@ -1,8 +1,8 @@ -# Evadventure combat demo +# Evadventure (Twitch) combat demo - using a batchcommand file. # -# Set up a combat area for testing combat. Requires developer or superuser perm. +# Sets up a combat area for testing twitch combat. Requires developer or superuser perm. # -# Run from in-game as batchcmd contrib.tutorials.evadventure.batchscripts.combat_demo +# Run from in-game as batchcmd evadventure.batchscripts.combat_demo # # start from limbo diff --git a/evennia/contrib/tutorials/evadventure/batchscripts/combat_demo.py b/evennia/contrib/tutorials/evadventure/batchscripts/combat_demo.py new file mode 100644 index 0000000000..a532f838d5 --- /dev/null +++ b/evennia/contrib/tutorials/evadventure/batchscripts/combat_demo.py @@ -0,0 +1,55 @@ +# Evadventure (Turnbased) combat demo - using a batch-code file. +# +# Sets up a combat area for testing turnbased combat. +# +# Run from in-game as `batchcode evadventure.batchscripts.combat_demo` +# + +# HEADER + +from evennia import DefaultExit, create_object, search_object +from evennia.contrib.tutorials.evadventure.characters import EvAdventureCharacter +from evennia.contrib.tutorials.evadventure.combat_turnbased import TurnCombatCmdSet +from evennia.contrib.tutorials.evadventure.npcs import EvAdventureNPC +from evennia.contrib.tutorials.evadventure.rooms import EvAdventureRoom + +# CODE + +# Make the player an EvAdventureCharacter +player = caller # caller is injected by the batchcode runner, it's the one running this script +player.swap_typeclass(EvAdventureCharacter, clean_attributes=True) + +# add the Turnbased cmdset +player.cmdset.add(TurnCombatCmdSet, persistent=True) + +# create a weapon and an item to use +create_object( + "contrib.tutorials.evadventure.objects.EvAdventureWeapon", + key="Sword", + location=player, + attributes=[("desc", "A sword.")], +) + +create_object( + "contrib.tutorials.evadventure.objects.EvAdventureConsumable", + key="Potion", + location=player, + attributes=[("desc", "A potion.")], +) + +# start from limbo +limbo = search_object("#2")[0] + +arena = create_object(EvAdventureRoom, key="Arena", attributes=[("desc", "A large arena.")]) + +# Create the exits +arena_exit = create_object(DefaultExit, key="Arena", location=limbo, destination=arena) +back_exit = create_object(DefaultExit, key="Back", location=arena, destination=limbo) + +# create the NPC dummy +create_object( + EvAdventureNPC, + key="Dummy", + location=arena, + attributes=[("desc", "A training dummy."), ("hp", 1000), ("hp_max", 1000)], +)