mirror of
https://github.com/evennia/evennia.git
synced 2026-03-26 17:56:32 +01:00
Building techdemo world
This commit is contained in:
parent
e7f8926b23
commit
831f731db7
3 changed files with 93 additions and 0 deletions
59
evennia/contrib/tutorials/evadventure/build_techdemo.py
Normal file
59
evennia/contrib/tutorials/evadventure/build_techdemo.py
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
"""
|
||||
Evadventure Techdemo area
|
||||
|
||||
This is is used for testing specific features without any story or overall gameplay
|
||||
|
||||
While this looks like a Python module, it is meant to run with the `batchcode` processor in-game:
|
||||
|
||||
batchcode evadventure.build_techdemo
|
||||
|
||||
This will step through the #CODE blocks of this file to build the tech demo. For help with using
|
||||
the batchcode processor, see the
|
||||
[processor documentation](https://www.evennia.com/docs/latest/Components/Batch-Code-Processor.html).
|
||||
|
||||
You can also build/rebuild individiaul #CODE blocks in the `batchcode/interactive` mode.
|
||||
|
||||
"""
|
||||
|
||||
#HEADER
|
||||
|
||||
# this is loaded at the top of every #CODE block
|
||||
|
||||
from evennia import create_object, search_object
|
||||
from evennia import DefaultExit
|
||||
from evennia.contrib.tutorials import evadventure
|
||||
from evennia.contrib.tutorials.evadventure.objects import (
|
||||
EvAdventureObject, EvAdventureRunestone, EvAdventureRunestone, EvAdventureConsumable,
|
||||
EvAdventureObjectFiller)
|
||||
from evennia.contrib.tutorials.evadventure.rooms import EvAdventureRoom
|
||||
from evennia.contrib.tutorials.evadventure.combat_turnbasedA import EvAdventureCombatHandler
|
||||
from evennia.contrib.tutorials.evadventure import npcs
|
||||
|
||||
#CODE
|
||||
|
||||
# Hub room evtechdemo#00
|
||||
# for other test areas to link back to. Connects in turn back to Limbo.
|
||||
|
||||
limbo = search_object("Limbo")
|
||||
hub_room = create_object(EvAdventureRoom, key="Techdemo Hub", aliases=("evtechdemo#00",),
|
||||
attributes=[("desc", "Central hub for EvAdventure tech demo.")])
|
||||
create_object(DefaultExit, key="EvAdventure Techdemo", aliases=("techdemo",),
|
||||
location=limbo, destination=hub_room)
|
||||
create_object(DefaultExit, key="Back to Limbo", aliases=("limbo", "back"),
|
||||
location=hub_room, destination=limbo)
|
||||
|
||||
|
||||
#CODE
|
||||
|
||||
# A combat room evtechdemo#01
|
||||
# with a static enemy
|
||||
|
||||
combat_room = create_object(EvAdventureRoom, key="Combat Arena", aliases=("evtechdemo#01",))
|
||||
combat_room_enemy = create_object(npcs.EvadventureMob, key="Training Dummy")
|
||||
|
||||
# link to/back to hub
|
||||
hub_room = search_object("evtechdemo#00")
|
||||
create_object(DefaultExit, key="Back to Hub", aliases=("back", "hub"),
|
||||
location=combat_room, destination=hub_room)
|
||||
create_object(DefaultExit, key="combat test", aliases=("combat"),
|
||||
location=combat_room, destination=hub_room)
|
||||
34
evennia/contrib/tutorials/evadventure/npcs.py
Normal file
34
evennia/contrib/tutorials/evadventure/npcs.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
"""
|
||||
EvAdventure NPCs. This includes both friends and enemies, only separated by their AI.
|
||||
|
||||
"""
|
||||
|
||||
from .characters import EvAdventureCharacter
|
||||
|
||||
class EvAdventureNPC(EvAdventureCharacter):
|
||||
"""
|
||||
Base typeclass for NPCs. They have the features of a Character except
|
||||
they have tooling for AI and for acting as quest-gives and shop-keepers.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
class EvAdventureShopKeeper(EvAdventureNPC):
|
||||
"""
|
||||
ShopKeeper NPC.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
class EvAdventureQuestGiver(EvAdventureNPC):
|
||||
"""
|
||||
An NPC that acts as a dispenser of quests.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
class EvadventureMob(EvAdventureNPC):
|
||||
"""
|
||||
Mob (mobile) NPC; this is usually an enemy.
|
||||
|
||||
"""
|
||||
Loading…
Add table
Add a link
Reference in a new issue