Releases: neph1/LlamaTale
v0.34.0 - Like a thief in the night
Combat points have been renamed to action points for versatility reasons.
A 'skill' set has been added to livings. Expect more skills to come.
New commands:
hide - Pass the skill throw (and be alone in the location), to hide and become impossible to spot. Costs on action point.
unhide - Reveal yourself again.
search_hidden - Search for npcs that are hidden. Costs on action point.
pick_lock - Use your skills to pick doors that are locked (maybe mostly interesting in Dungeon stories).
New spells:
cast_rejuvenate - Replenish action points.
cast_hide - Hide someone (maybe yourself).
cast_reveal - Use magic to reveal someone hiding.
For all spells the format i: spell who (level optional)
When you're hidden, no replenishment is possible.
Attacking will reveal yourself.
Autonomous npcs may search and hide. For others I'm thinking about adding a perception based 'throw'.
Being hidden may be janky in some situations. Both because I've missed to take some things into consideration, and in the case of LLM powered NPC's, their reaction to a "[hidden]" tag may vary, if you choose to interact with them.
What's Changed
Full Changelog: v0.33.1...v0.34.0
v0.33.1
v0.33.0 magic and spells
The reason I wanted 'replenish' in was I needed a way to regain magic points after spending them.
So here is a basic spells system. It works (for now) as commands and you need both enough magic points and a successful roll to cast them. There are three proof of concept spells, 'heal', 'bolt' and 'drain'.
Heal: Costs 2 points. Heals up to 5 points.
Bolt: Costs 3 points. Damages a random amount of health between 1 and 'level' of spell.
Drain: Costs 3 points. Drains a random amount of combat points and magic points between 1 and 'level' of spell. Adds amount to casters magic points.
Name of the spell is the command. Target is required and should be a Living in the same location.
heal target
This is something of a prototype, and may change. For example it's only possible for Players to use the spells at the moment. I'm working on adding 'levels' to the spells as well. For now I've added the 'heal' spell to players in The Prancing Llama, and all spells to Anything and Dungeon stories. Check the init_player method of those if you want to add spells to your custom stories.
But I guess we need some kind of class system, soon?
Original:[ You cast a healing spell that heals elid gald for 5 hit points] Generated:With a flick of my wrist, I channel magical energy into Elrid Gald’s body, bathing him in a warm, golden light. His eyes flutter open, taking in his surroundings as if awakening from a long slumber. A soft hum emanates from within me as I continue to weave together intricate patterns of magic, carefully tending to each of his five remaining hit points. As his wounds begin to mend, Elrid stirs, shifting uncomfortably on the makeshift bed of piled furs and blankets. He groans softly, wincing at some discomfort before catching sight of me. “Ah, thank the gods,” he mutters with a weak smile, his voice still hoarse from the ordeal.
v0.32.0 Replenish and combat points
This feature has been brewing in my head for a while. "How to replenish health points over time".
I decided on a periodical function, and only for players for now. It will add one point every 10 seconds. (Is this too often?).
I also added another idea, "combat points", which is rather stamina. It will decrease when attacking, and replenish over time. If it's 0 you can't attack, and it will hurt your defense.
I needed to get this sorted out to before the next bigger thing that has been missing from the framework.
v0.31.1 Llama 3 template
Edit: This is superseeded by v0.35.0
It's now possible to use Llama 3 and derivatives. There's some extra prompting needed:
Replace the USER_START and USER_END with this:
SYSTEM_START: '<|begin_of_text|><|eot_id|><|start_header_id|>system<|end_header_id|>\n\n'
USER_START: '<|eot_id|><|start_header_id|>user<|end_header_id|>\n\n'
USER_END: <|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n'
PROMPT_END: '<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n'
And a few small fixes I noticed
What's Changed
Full Changelog: v0.31.0...v0.31.1
v0.31.0 Random narrative events + fixes
This release is mostly about bug fixes:
- Long standing issue with multiple responses from NPC's not being separated into dialogue boxes
- Indefinite reactions from NPC's fixed (could deplete tokens quickly if using commercial provider). Only one reaction is now allowed (technically: no reactions to reactions).
- Noticed a slow down in browser if npc image not found
- Replace '\r' in responses. Reported by @sigmareaver
- Don't evoke 'say' verbs from other players (mud issue). Reported by @sigmareaver
The new feature is 'random narrative events' happening at intervals in a location. These are meant to add some flair to other static places. This type is not meant to drive story, but I plan on adding other events, like npc's spawning, etc. It works so-so as the llm will sometimes mention npcs that are not there. You can use it by setting "random_events": true in the story.
What's Changed
Full Changelog: v0.30.0...v0.31.0
v0.30.0 Day and night cycle
This version introduces a day and night cycle that can be further expanded through listeners. For example, want something to turn into a werewolf at night? Now you can do that (through coding, of course).
Built in is the LLM describing the transition.
As the sun dips below the horizon, casting long shadows across the room, the once vibrant colors of the living space gradually mute into softer, more subdued tones, signaling the peaceful transition from day to dusk. The warm glow of the afternoon light slowly fades away, replaced by an ethereal twilight that bathes everything in a soft, golden luminosity.
To use this in a story, open story_config.json and add day_night = true
I should also mention one other option that is relevant:
gametime_to_realtime how much faster time in game passes than real time. Defaults to 1.
I also fixed a long in the making feature that shows the images of present NPCs on top of the room image.
v0.29.1 Group combat
Combat has been rewritten to allow for multiple combatants on either side. If you have any followers, they will aid you in combat, either if you're attacking or defending. Same goes for enemies you might encounter (although they don't group up, yet).
v0.29.0 request_follow command
Two new commands:
request_follow - ask someone to follow you. request_follow who reason(optional)
The LLM will decide whether the npc wants to follow you or not. LLMs being LLMs, I still haven't had anyone say 'no'.
unfollow - when you don't want to be followed anymore. unfollow who
I have some more ideas for group dynamics that might come in the following weeks.
Special thanks to OtterDemon for the support on ko-fi.
v0.28.1 Dungeon boss
Now there's something at the end of the dungeon.
