TWiki Home Tharsis . Design . ConcealedObjects (r1.1 vs. r1.14) Tharsis webs:
Design | Guilds | Combat | Website
Design . { Home | Changes | Index | Search | Go }
 <<O>>  Difference Topic ConcealedObjects (r1.14 - 15 Mar 2005 - LuCid)
Added:
>
>


Without having read all that, could this module work by simply going invis to the room and creating a delay in combat reaction from the target while you prepare a sneak attack? Delay would cancel out an aggro attack, but mostly because you're invisible to the target. Delay can best be used to sneak past target(s) or escape further combat. Setting items in inv to concealed would be really cool. I don't think the spell should wear off if a thief does this to their items. Although, perception bonus might be able to see through the concealment. So, yeah. Lots of questions in there. Please fill me in. -- LuCid - 15 Mar 2005


 <<O>>  Difference Topic ConcealedObjects (r1.13 - 17 Nov 2004 - PumaN)
Deleted:
<
<


+++ This is an idea I stuck on the bboard, I am guessing this was already thought of when breaking down the faith commands, but here it goes if its not already out there. Two commands that could be implemented for fa.pr.bl and fa.pr.cu

Bless (living target) - The blessed target gets an hp regen, for a certain amount of time til the blessing is over. I would assume the amount of heal per tick(s) would depend on the casters skill level.

Curse (living target) - Much alike acrilious's curse, the target that is cursed loses hp for a certain amount of time, until the curse is lifted. Once again, damage dependant on the casters skills.

I suppose that the same type of thing could be done for items (ie cursing gear makes it hurt player when worn, and blessing items makes it like rose gear, both also with a certain amount of time before spell lifts).

-TuKaN


 <<O>>  Difference Topic ConcealedObjects (r1.12 - 16 Nov 2004 - TuKaN)
Added:
>
>


+++ This is an idea I stuck on the bboard, I am guessing this was already thought of when breaking down the faith commands, but here it goes if its not already out there. Two commands that could be implemented for fa.pr.bl and fa.pr.cu

Bless (living target) - The blessed target gets an hp regen, for a certain amount of time til the blessing is over. I would assume the amount of heal per tick(s) would depend on the casters skill level.

Curse (living target) - Much alike acrilious's curse, the target that is cursed loses hp for a certain amount of time, until the curse is lifted. Once again, damage dependant on the casters skills.

I suppose that the same type of thing could be done for items (ie cursing gear makes it hurt player when worn, and blessing items makes it like rose gear, both also with a certain amount of time before spell lifts).

-TuKaN


 <<O>>  Difference Topic ConcealedObjects (r1.11 - 26 Oct 2004 - ProdigY)
Deleted:
<
<

    • Huh?
      • Yeah it was kind of off the point, just meaning "Now you're a thief we give you this cloak so that you may steal away and keep the goods hidden so those nasty police officers don't catch you - Keep it with you always."

 <<O>>  Difference Topic ConcealedObjects (r1.10 - 19 Oct 2004 - FreD)
Deleted:
<
<

Added:
>
>


This partly relates to this; It should be possible to sheath and draw your weapon. For combat this has the effect of suprise. It would be much less suspicous to flank an enemy with a sheathed sword. Then when you are close enough draw it and charge. Also creates an intresting point with police. Highleveled players with drawn weapons should definately scare people away.

 <<O>>  Difference Topic ConcealedObjects (r1.9 - 04 Jul 2004 - FantoM)
Added:
>
>

  • Yes - VagueDescriptions is the original attempt to describe at least one of problems that this system aims to address.


Added:
>
>


 <<O>>  Difference Topic ConcealedObjects (r1.8 - 02 Jul 2004 - PumaN)
Added:
>
>

See also: VagueDescriptions, maybe these should be combined? -- PumaN - 02 Jul 2004


 <<O>>  Difference Topic ConcealedObjects (r1.7 - 01 Jul 2004 - FantoM)
Deleted:
<
<

....

TODO: Discuss the generation/queuing/delivery of messages via m_messages and how they have to be altered to handle this scheme - aim to pick up things like the varying level of knowledge of reagents at the same time.

Added:
>
>

Most (some? a few?) messages are generated these days using the m_messages module which specifies that for an object to generate a message you call something like:

   object_generating_message->sometypeof_message("message_text", objects_involved)

There are a few variants but essentially the underlying system gets given a "message issuer", a "message" and a set of objects involved (one of which may be the target of the message).

TODO: currently up to here.


 <<O>>  Difference Topic ConcealedObjects (r1.6 - 23 Jun 2004 - FantoM)
Changed:
<
<

Lets presume for now that an object has a level of concealment from 0 to 100. 0 being "no attempt to conceal", 1 being "concealed as badly as possible", 100 being "concealed as well as is possible".

>
>

Lets presume for now that an object has a level of concealment from 0 to 100. 0 being "no attempt to conceal", 1 being "concealed as badly as possible", 100 being "concealed as well as is possible". A value of 1 for concealment is presumed as "appears concealed to everyone but is not hidden from anyone", IE for everyone the item will show as "item (concealed/hidden)" when doing a look and will never be unnoticable.

Changed:
<
<

A player should not be given any indication of how well they, or an item they hide, is hidden. To facilitate this the hide/conceal commands should always set the level of concealment to at least 1.

  • That doesn't quite make sense for hiding items, if you hide an item and its sticking out halfway, you'd notice it's not very well hidden, whats wrong with "You tuck the elephant away, obscuring it a little from view / you hide the pebble completely from view" -- PumaN - 22 Jun 2004
>
>

A player should not be given any indication of how well they are hidding. The conceal command may provide limited feadback "You tuck the elephant away, obscuring it a little from view / you hide the pebble completely from view". When performing a look the items will always appear as concealed - thus the hide and conceal commands should always set the level of concealment to at least 1. In addition those commands should also add the issuer to the list of "can see" for the object. After hiding/concealing there should be no way for a player to determine the effectiveness without asking other players. IE if they conceal 2 objects with levels (1 and 100). They will show as "object1 (concealed), object2 (concealed)".

Added:
>
>

        • The process of concealing items on your person hasn't been given much thought. It's possible you would have to conceal an item within/beneath another item. Presumably that other item would have to be wearable? concealing a dagger with your backpack is pointless (why not just put it inside? perhaps it's quicker to get at), but possible if the backpack is wearable. It could be said that a dagger could be concealed within a shield also.... Pretty hard to conceal something with in a ring tho... What i'm trying to say here is that you won't need to have a special item (IE that cloak) to enable you to conceal items.

 <<O>>  Difference Topic ConcealedObjects (r1.5 - 22 Jun 2004 - PumaN)
Added:
>
>

  • That doesn't quite make sense for hiding items, if you hide an item and its sticking out halfway, you'd notice it's not very well hidden, whats wrong with "You tuck the elephant away, obscuring it a little from view / you hide the pebble completely from view" -- PumaN - 22 Jun 2004

 <<O>>  Difference Topic ConcealedObjects (r1.4 - 22 Jun 2004 - ProdigY)
Added:
>
>

      • Does that mean concealed items are usable? Ie drinks. Or does that just go into the list of uncovering items?
Added:
>
>

      • Yeah it was kind of off the point, just meaning "Now you're a thief we give you this cloak so that you may steal away and keep the goods hidden so those nasty police officers don't catch you - Keep it with you always."

 <<O>>  Difference Topic ConcealedObjects (r1.3 - 22 Jun 2004 - FantoM)
Added:
>
>

TODO: Discuss the generation/queuing/delivery of messages via m_messages and how they have to be altered to handle this scheme - aim to pick up things like the varying level of knowledge of reagents at the same time.

Added:
>
>

messages

Added:
>
>

Changed:
<
<

  • If this was made, I assume you'd be able to add_known_command for npcs to use?
>
>

Discussion

  • If this was made, I assume you'd be able to add_known_command for npcs to use?
    • Yes - that is applicable to all known comamnds.
Added:
>
>

    • We have 2 possibilities:
      1. The look command does not attempt to spot hiding people, it just asks each object to see if they can be seen and reports what can be. This relies on every object recognising the entry of a player into their environment. It has problems when a player does a "look at another-player" as the "can see" lists won't be up to date.
      2. The look command checks everything that can not be seen to see if they can be spotted - thus possibly updating the "can see" list - and then does option 1. I suspect this is the better way to go as it handles all the problems mentioned above.
Added:
>
>

    • I've not yet listed the total set of things that need touching - it is huge.
Added:
>
>

    • This simply needs to be considered when checking whether or not an item is spotted. possibly when concealing an item but I'm not certain about that.
Added:
>
>

    • When an object moves it comes out of concealment. The sneak stuff is special handling to remain hidden while leaving a room and enter a room hidden and hide once there. Note that this means that if you conceal an object on your person it won't become unhidden until you drop/get it.
Added:
>
>

    • Huh?
Added:
>
>

    • This is something to consider in the detail of the conceal command.
Added:
>
>

    • Possible - I'd suggest not for the "hide" command. Perhaps a cap on the number of concealed items in your inventory.
Deleted:
<
<

  • On a sidenote, add me to the mailout list because it won't let me edit the page. :)

 <<O>>  Difference Topic ConcealedObjects (r1.2 - 22 Jun 2004 - ProdigY)
Deleted:
<
<

Added:
>
>


  • If this was made, I assume you'd be able to add_known_command for npcs to use?
  • Catch each time a player 'looks', or just the first time? Assuming it only catches the players whom enters auto-look, would players in the room when the command is performed be informed of the failed hide, even if they aren't 'look'ing?
  • Handle for 'search' command.
  • Obviously very light areas.
  • Once 100 (%?) hidden, does sneak work every time, or will the movement checks for successful sneaking be cheked each move?
  • Guild items, autoloading thief cloak worn by all and given on initiation?
  • Obviously size of item, supposedly based on weight, but doesn't give the most accurate idea of size.
  • Cap on amount of items able to conceal. Possibly a player trying to 'hide' themselves would stumble across a player who is already hid in that particular place (probably random).

  • On a sidenote, add me to the mailout list because it won't let me edit the page. :)
-- ProdigY - 21 Jun 2004

 <<O>>  Difference Topic ConcealedObjects (r1.1 - 21 Jun 2004 - FantoM)
Added:
>
>

%META:TOPICINFO{author="FantoM" date="1087821900" format="1.0" version="1.1"}% %META:TOPICPARENT{name="WebHome"}% NB. For this topic the word "player" encompases player characters and non-player-characters.


Overview

Currently the game has 2 states "visible" and "invisible".

Invisible things are completely invisible and, in theory at least, unable to ever be seen or directly interacted with by a normal player.

Total invisibity is worth retaining as there will always be objects we need to create to perform tasks which the user should never see. For example shadow objects.

There exists a need for the ability to conceal an object. Concealing an object involves hiding it with some level of skill from those that might otherwise have seen it.

At this time I am not interested in getting into a discussion of where something is concealed (IE Up my jumper or behind a bush). Let us presume that wherever you happen to be standing in the mud world there exists something you can use to conceal yourself or an item in question.

Primary things for concealment are of course players, npcs and the things they carry.

Concealing an object does not guarantee that it will not be seen by other players. A concealed item would be concealed with a level of skill and someone stands to notice that object based on their perception. The level of concealment of an object will not change over time - IE once concealed and until either unconcealed (or possibly re-concealed) it retains the same level of concealment.

Lets presume for now that an object has a level of concealment from 0 to 100. 0 being "no attempt to conceal", 1 being "concealed as badly as possible", 100 being "concealed as well as is possible".

Lets presume that there exist 2 commands.

  • Hide - to conceal a player in the current room.
  • Conceal - to conceal an item either the player who issues the command or in the room.

Once an object is concealed may be seen by a player who looks at the container of that object. For example everyone who does a look stands a chance of seeing concealed players. Ditto anyone looking at a player has a chance of seeing any concealed objects in their inventory.

Ideally there exist 3 levels of "noticing" an object.

  1. You are completely aware of what the object is, even though it is concealed. IE you can clearly see Fantom's fat butt sticking out from behind the tree he thinks he's hiding behind.
    • Such a player would appear as: You see Fantom(hiding)
    • Such an object would appear as: He is carrying: a sword(concealed)
  2. You are aware of the existence of an object without being aware of what it is. IE you can see a lump under the carpet.
    • Such a player would appear as: You see Someone(hiding)
    • Such an object would appear as: He is carrying: something(concealed)
    • Could possibly drop the hiding/concealed parts there.
  3. You have no idea the object is there and it should not appear nor be targettable by anything, except area effect commands. Hiding from a sandstorm doesn't work.

The player who has hidden an object should always see it as level 1.

We may not implement level 2 in the first instance.

A player should not be given any indication of how well they, or an item they hide, is hidden. To facilitate this the hide/conceal commands should always set the level of concealment to at least 1.

The chance of noticing a concealed item should be based on the perception of the player performing the look as well as the level of concealment. Once something has been noticed it should remain visible until it re-conceals itself. Thus the check is only necessary when attempting to notice items which have not yet been noticed.

....


Design

During phase 1 we shall not implement level 2 concealment.

m_concealable.c

Provides the support for an item to be concealed.

Provides the getter/setter for the level of concealment

Every concealed object is aware of the list of players that can and can't see it. This is done by maintaining a list of those players that can see it. This list is maintained by tracking the arrival of players into the environment of the concealed object and giving them a chance to notice the object at the time of arrival.

Concealed objects also need to track departure of players and upon departure those players should be removed from the "can see" list.

There needs to be methods for adding and removing players from the "can see" list as well as a method for clearing the list - which will be used when a concealed item is first concealed or moves into a new environment.

A method get_can_see( object player ) or similiar (there is somethign like this already in existence) will be provided. This will return true if the player is in the "can see" list. To support level 2 concealment we should consider thus returning an int of 0/1/2 (define these in a #include somewhere).

hide command

todo: how it works

conceal command

todo: how it works

look command

todo: how it works

look at command

todo: how it works

movement

remaining invis while moving. "sneak east" vs "sneak mode on"+"east"

commands that remove concealment at the start

eg say todo: how it works

commands that remove concealment part way through

eg backstab todo: how it works

commands that don't remove concealment

eg inv todo: how it works


Coding

  1. Create module m_concealable
  2. Create a variant of player.c which extends this
  3. Create a hide learnt command
    • At this time which just allows you to set your conceal level from 0 -> 100
    • Give command to the new player
  4. Create a look command which handles hidden players
  5. Create an object which is concealable
  6. Create a conceal learnt command
    • At this time which just allows you to set your conceal level from 0 -> 100
    • Give command to the new player
  7. Extend the look command to handle looking at concealed items
  8. ...lets get this far...

-- FantoM - 21 Jun 2004


Topic ConcealedObjects . { View | Diffs | r1.14 | > | r1.13 | > | r1.12 | More }
Revision r1.1 - 21 Jun 2004 - 12:45 GMT - FantoM
Revision r1.14 - 15 Mar 2005 - 06:47 GMT - LuCid
Copyright © 2001 by the contributing authors. All material on this collaboration tool is the property of the contributing authors.
Ideas, requests, problems regarding Tharsis? Send feedback.