TreeBranchItemTypeFires when expectedContent as ExpectedBugsComments/future dev
Action







Heartbeat
CacheYesYes


Round
CacheYesNoDoes not always update heartbeat or contain content from the correct heartbeats (see Round_Heartbeat_number). Output below


Round_Heartbeat_number

NoFires every round, but sometimes "get stuck" with stale content. See notice below


Hunting

NoNo contentsI am not sure this information is available in the game using normal commands, might want to add, or extend "fights", note that no helpfile exist on "fights"


Calm

Yes*
I am not sure this information is available in the game using normal commands


Berserked

Yes*
  • Possibly indicate berserk level?
  • Already covered in Effects


Protecting_here

Yes



Fighting

NoNo contents


Hibernating

Yes
  • Should this be in Char.Effects?


Meditating

NoDoes not update when meditating
  • should this be in Char.Effects?


Damage_dealt

Yes
Currently includes all damage, including effects from equip etc. This might be "more powerful" than you intend. I like it and would like to keep it (big grin)


Damage_received





Spell
EventNo
  • does not fire "end" when spell is successfully cast (bless at me)


Command
Event
No
  • target does not show target, but shows entire command (aka bless at me"
  • on "evade end" shows "initiate=start" and "target=end"

Added output below

I don't really have a usecast for this yet, as most of the persistant states are covered by effects. It would be relevant to determine "success" of commands like "bash".

I am also not certain it needs to include the "cast" command, or "bury" commands

Char







Effects
EventNo*Yes
  • does not fire instantly when cancelling an effect
  • Seems not to fire instantly when a a new effect is applied
General duration updates should be cyclic as now, however statechange (on/off) should be instant. possibly in a separate branch or item (char.EffectChanged("bless","off"))

Inventory
Event
Yes
Future, include item weight?


Carrying

Yes



Money

Yes*

Is this neccessary when we have worth?

Format is verbose



Wielding

Yes
Add main hand, second hand


Worn

Yes
Add location (Char.Inventory.Worn.Body= ...)

Skills


Event
Yes



Untrained?
Yes


Spells
Cache
No

Sometimes include a "0x0C" char (FF, form feed).

  • In courage and symbol transformation on "learnable: maj"
  • In holy storm, "damage roll"."3 rounds".Maximum
Change "learnable" from string to "learnable.maj" etc?

Status
Event
NoBug on ac, see below

Missing Several attributes from sheet:

  • Major: Wimpy, Encumberance (here or inventory?)
  • Sex, Deity, Repository level, Alignment, Intoxication, Quest points, Achieved points, total xp

Possibly include "walking mode" here?

Possibly include "schools" here?



ac?
NoShows 24 when AC on sheet is -25


str?
Yes*

Content is string, this might be unavoidable but is inconsistent with other stats (might choose to have a numeric str, then a "str_string" to show extreme strength.

Or numeric, but float (18.6)


Vitals
Event
Yes


Worth
Event
Yes

Comm







Channel
CacheNoNoShout does not work (does not fire ChannelAdd history on channels, pollable (aka shout <40)

Tell
CacheYesYes


Say
CacheYesYes
Does not work with "mutter"
Game







Time
Event
Yes
Could contain info from "date" command (Year, Month, Day, Hour, Minute) (note these are mud dates)

Who
CacheNoNonever fired

Omiqs
CacheNoNonever fired
Group







Faction
Cache
Yes


Party
Event
Yes


Groups
Cache
Yes*
Not sure, only have guild, dont know what it looks like with sig
Room







Info
Cache
No?
  • prev_num seems not to work anymore
  • desc includes mud colors (would prefer to keep \n's and strip colors)




WrongDir
CacheYesYes
Typo in name in help wiki, should be "WrongDir"

Blockdir
Cache
Yes?Not sure what this means, i can see it has fired on some chars, it does not indicate a movement that was blocked (e.g. by thorn hedge). It does not indicate a direction blocked by wall of thorns


Action.Round - Stale data

You crush Rat with your Talin Thunder for 36 HPs damage.
Snake misses you.
Rat misses you.
Rat misses you.
onGmcpActionRound
{
Hunting = {
},
Round_Heartbeat_number = 1600625828,
Protected_by = {
"tarek"
},
Berserked = "No",
Fighting = {
},
Damage_dealt = 4,
Hibernating = "No",
Meditating = "No",
Calm = "Yes",
Damage_received = 0
}
onGmcpCharEffects()
{
["Berserk Fatigue"] = 99
}
-------------------
You flatten Snake with your Talin Thunder for 30 HPs damage.
Snake misses you.
Rat misses you.
Rat misses you.
Your Pendant of Power slashes Snake.
onGmcpActionRound
{
Hunting = {
},
Round_Heartbeat_number = 1600625828,
Protected_by = {
"tarek"
},
Berserked = "No",
Fighting = {
},
Damage_dealt = 4,
Hibernating = "No",
Meditating = "No",
Calm = "Yes",
Damage_received = 0
}
onGmcpCharEffects()
{
["Berserk Fatigue"] = 97
}
-------------------
You pulverize Rat with your Talin Thunder for 34 HPs damage.
Snake misses you.
Rat misses you.
Rat misses you.
You dealt the death blow to Rat.
Rat dies.
onGmcpActionRound
{
Hunting = {
},
Round_Heartbeat_number = 1600625828,
Protected_by = {
"tarek"
},
Berserked = "No",
Fighting = {
},
Damage_dealt = 4,
Hibernating = "No",
Meditating = "No",
Calm = "Yes",
Damage_received = 0
}
onGmcpCharEffects()
{
["Berserk Fatigue"] = 95
}
-------------------
You crush Rat with your Talin Thunder for 32 HPs damage.
Snake misses you.
Rat misses you.
onGmcpActionRound
{
Hunting = {
},
Round_Heartbeat_number = 1600625828,
Protected_by = {
"tarek"
},
Berserked = "No",
Fighting = {
},
Damage_dealt = 4,
Hibernating = "No",
Meditating = "No",
Calm = "Yes",
Damage_received = 0
}
onGmcpCharEffects()
{
["Berserk Fatigue"] = 93
}
-------------------
You pulverize Snake with your Talin Thunder for 53 HPs damage.
You pulverize Snake with your Talin Thunder for 26 HPs damage.
Snake misses you.
Rat misses you.
You dealt the death blow to Snake.
Snake dies.
Your Pendant of Power slashes Rat.
onGmcpActionRound
{
Hunting = {
},
Round_Heartbeat_number = 1600625880,
Protected_by = {
"tarek"
},
Berserked = "No",
Fighting = {
},
Damage_dealt = 57,
Hibernating = "No",
Meditating = "No",
Calm = "No",
Damage_received = 0
}
onGmcpCharEffects()
{
["Berserk Fatigue"] = 91
}
-------------------


gmcp.Char.Action.Command / gmcp.Char.Effects 

// Notice that "evade end" leads to unpredicted results
// Also notice that evade end, does not trigger an instant gmcp.Char.Effects

> evade
onGmcpActionCommand
{
trigger = "command",
initiate = "start",
command = "evade"
}
---------------
You begin to concentrate on evading attack.

...

onGmcpCharEffects()
{
["Lockout : Commands"] = 0,
Bless = 150,
evade = 35
}

...

onGmcpCharEffects()
{
Bless = 148,
evade = 33
}

....

> evade end
onGmcpActionCommand
{
trigger = "command",
initiate = "start",
target = "end",
command = "evade"
}
---------------
You grow tired of holding your defensive stance.

.....
.....
.....
.....
..... 

onGmcpCharEffects()
{
Bless = 146
}