code logs -> 2008 -> Fri, 04 Jan 2008< code.20080103.log - code.20080105.log >
--- Log opened Fri Jan 04 00:00:25 2008
00:01
<@Vornicus>
So, here's the situation - Zoe's mom goes and gets toys from the backpack occasionally, and puts unoccupied toys into the backpack. The favorite toy is in the backpack.
00:02
<@Vornicus>
I can't hide toys, as far as I can tell, and I can't reach the backpack.
00:02
<@jerith>
Zoe is pure evil. With pigtails.
00:02
<@Vornicus>
Yes.
00:04
<@Vornicus>
Jemison will take any toy you drop when he's in the same section as you; zoe just wails; watson is a wuss, but I don't know his behavior; cassie I also don't know the behavior of.
00:04
<@jerith>
Cassie zips off a lot.
00:04
<@Vornicus>
yes
00:05
<@jerith>
I'm trying to steal her hairclips.
00:05
<@Vornicus>
The adults just ignore you, mostly - pulling up on the rocking chair will get parry to pick you up (and stop rocking) for a few turns, but he starts rocking again once he puts you down.
00:05
<@jerith>
But she's always somewhere else.
00:05
<@Vornicus>
(you can also get down yourself)
00:06
<@Vornicus>
Cassie is fast and gets herself into trouble a lot.
00:07
<@Vornicus>
the hints aren't much use either.
00:08
<@ToxicFrog>
McM[SanDiego]: yeah, worked that out a while ago.
00:08
<@ToxicFrog>
Now I'm trying to do stuff with restricted-access regions.
00:09
<@ToxicFrog>
Which if this is as aggravating as it looks at first glance may be Extension-worthy.
00:10 * jerith goes to sleep.
00:10
<@McM[SanDiego]>
Hmm.. Bronze did this a lot. Check it's source?
00:10
<@McM[SanDiego]>
its, even
00:10
<@Vornicus>
nijerith
00:10
<@McM[SanDiego]>
... after checking the Recipe Book, etc.
00:10
<@ToxicFrog>
Good idea.
00:11
<@ToxicFrog>
Recipe book I've already checked, there's some vaguely similar stuff in there but nothing general enough.
00:11
<@jerith>
I think I have a plan, but it involves getting whichever kid pulls up to be in the rocking chair area.
00:11
<@ToxicFrog>
Eg, there's "keeping the player out of a specific region unless they have a specific key", but not "keeping a player out of any Secure Area unless they have an item which grants at least the requisite access level"
00:12
<@ToxicFrog>
I am thinking heavy relation abuse for this.
00:12
<@McM[SanDiego]>
Hum, couldn't you dot hat as a simple Check Going rule?
00:13
<@McM[SanDiego]>
A room has a number called security clearance
00:13
<@Vornicus>
Except that it's multiple clearances
00:13
<@McM[SanDiego]>
The security clearance of a room isu sually zero
00:13
<@McM[SanDiego]>
OK, so, one variable, and one check going rule for each axis of clearance.
00:13
<@Vornicus>
you start with level 3 engineering clearance, but don't have (for instance) level 1 admin clearance
00:17
<@ToxicFrog>
And cards can grant multiple clearances; eg, the Facility Director's card (say) gives you Admin 3 access, but also Facility Director Personal access, which gets you into his quarters and storage locker.
00:18
<@McM[SanDiego]>
Right, so.
00:18
<@ToxicFrog>
Similarly, one clearance can be granted by multiple cards, and works as long as you carry at least one of them.
00:18
<@McM[SanDiego]>
Yeah, that might be worthwhile as an extension
00:18
<@McM[SanDiego]>
But I still don't see how it's particularly complicated.
00:19
<@McM[SanDiego]>
The extension mode would be a lot harder sinec you'd need some way of specifying classes of clearance.
00:19
<@ToxicFrog>
Well, you've worked with the language a lot more than we have.
00:19
<@McM[SanDiego]>
While without an extension you can just make it implicit in the set of fields attached to rooms (requiring clearance) and items (granting clearance).
00:20
<@ToxicFrog>
But as I see it, each region requires clearance X, and a keycard grants <some set of clearances>; the player can move from outside that region into that region if at least one item in their posession grants that clearance.
00:22
<@ToxicFrog>
Part of what's giving me trouble is how to express this set.
00:23 * Vornicus fiddles. tries to figure out how to convince cassie to pull up on the rocking chair.
00:23
<@ToxicFrog>
After a bit of thought, the way that seems to make the most sense is to make clearance levels objects rather than values.
00:23
<@Vornicus>
you have:
00:23
<@Vornicus>
a keycard, with the following accesses:
00:23
<@Vornicus>
yadda yadda
00:24
<@ToxicFrog>
At which point I can implement the "grants" relationship, and have "Breen's Keycard grants Admin 3 access", where "Admin 3 access" is an object checked by the region.
00:25
<@ToxicFrog>
...except it's not one to one, so I can't say "...when the keycard is carried by the player" as part of the relation conditions.
00:25
<@ToxicFrog>
Or can I?
00:25 * ToxicFrog experiments
00:27
<@jerith>
Vornicus: I gor at the backpack.
00:27
<@jerith>
*got
00:27
<@jerith>
Which kid is interested in a particular toy?
00:28
<@Vornicus>
Zoe and you both want the Favorite Toy.
00:28
<@McM[SanDiego]>
TF: Probably easier to make a phrase "to decide if the player has access to [room]"
00:28
<@Vornicus>
How did you do it?
00:28
<@McM[SanDiego]>
And then do your iteratiosn there.
00:28
<@jerith>
Jemison likes the rattly car.
00:28
<@ToxicFrog>
Iteration is uuuugly~
00:28 * Vornicus has beaten his head against this one problem for a day and a half.
00:28
<@McM[SanDiego]>
While you might be able to do it impolicitly with "if the player carries a thing that grants Admin 3 access"...
00:28
<@McM[SanDiego]>
implicitly, even.
00:28
<@ToxicFrog>
That's what I'm going for.
00:28
<@jerith>
Although that's only stage one.
00:28
<@McM[SanDiego]>
But if not, it's like a three-line iteration.
00:29
<@Vornicus>
It's only stage 1, but that doesn't help much
00:29
<@Vornicus>
I can't figure out how to get at the backpack at all.
00:29
<@McM[SanDiego]>
Which you do once, in "to decide if (dude- an actor) is cleared for (place - a room):"
00:29
<@jerith>
You grab the car and walk past Jemison. He follows you.
00:29
<@ToxicFrog>
Or more generally, "if the player carries a thing that grants access to the access level of the target area"
00:29
<@Vornicus>
jemison has the car now.
00:29
<@jerith>
then you lure him to Parry's lap.
00:30 * ToxicFrog nods
00:30
<@McM[SanDiego]>
And then forever after you you just ask "if the player is cleared for the room gone to"
00:30
<@jerith>
Ah. drop something near him or something.
00:30
<@ToxicFrog>
Of course, it's areas, not rooms.
00:30
<@ToxicFrog>
But the principle is similar.
00:30
<@ToxicFrog>
(there may also be things for, say, a message the first time you enter an area; or when you enter or leave an area, but not while moving between rooms within it)
00:31
<@jerith>
Maybe give him something.
00:31
<@jerith>
I suspect picking a fight with Zoe will be useful sometime.
00:32
<@jerith>
Anyways, realslep now.
00:32
<@McM[SanDiego]>
Given a room you can get its regions.
00:32
<@Vornicus>
nijerith
00:32
<@Vornicus>
okay, now marion has the backpack.
00:33
<@ToxicFrog>
Can I write something like "if the player is cleared for every region of the place"?
00:33
<@McM[SanDiego]>
I don't usually mess with nested regiosn. Let me see what relations it has.
00:33
<@McM[SanDiego]>
I know that it's not standard containment, or didn't used to be
00:38
<@ToxicFrog>
(because we might have, say, "the admin building is a region, containing A B C D E F G. It has clearance level Admin 1. The admin lounge is a region, containing D E F. It has clearance level Admin 16.)
00:39
<@McM[SanDiego]>
Right
00:39 * Vornicus fiddles with the backpack, gets the onesie stuck in the damn zipper /again/.
00:39
<@McM[SanDiego]>
Not getting a straight answer, but the containment verbs are used.
00:40 * McM[SanDiego] checks with some test code.
00:44
<@Vornicus>
this is really a frustrating game, I don't know why I'm playing it.
00:47
<@McM[SanDiego]>
Hum
00:47
<@McM[SanDiego]>
The more I poke at this, the more regions don't look first-class.
00:49
<@ToxicFrog>
That's very worrying.
00:49
<@ToxicFrog>
They're in the index, as a subtype of object...
00:51
<@McM[SanDiego]>
OK, so, a room has a field "map region", which is an object.
00:51
<@McM[SanDiego]>
But it only provides it if it's in a region.
00:52
<@McM[SanDiego]>
So just checking "the map region of the location" is likely to lead to run-time errors.
00:52
<@McM[SanDiego]>
I haven't figured out how to dynamically check containment.
00:52
<@McM[SanDiego]>
... unless I cheat. One moment.
00:52 * McM[SanDiego] looks at list syntax
00:54 * McM[SanDiego] first does a quick test with repeat loops
00:55
<@ToxicFrog>
Can't you ask "if the map region of the location is a region", since otherwise it'll be nothing and thus "is a region" will be false?
00:56
<@McM[SanDiego]>
It won't be nothing.
00:56
<@McM[SanDiego]>
It will be RUN TIME ERROR P11
00:56
<@ToxicFrog>
o.O
00:57
<@McM[SanDiego]>
empt to read a property that was never assigned.
00:57
<@McM[SanDiego]>
Er, battempt to.
00:57
<@McM[SanDiego]>
Sigh
00:57
<@ToxicFrog>
So "nothing" and "undefined" are different values.
00:57
<@ToxicFrog>
Gnar.
00:57
<@McM[SanDiego]>
undefined isn't a value.
00:57
<@McM[SanDiego]>
This is, in Python, the difference between None and KeyError.
00:58
<@ToxicFrog>
Well, ok, different things.
00:59
<@ToxicFrog>
So for rooms in nested regions, what's the value of "the map region of the room"?
00:59
<@McM[SanDiego]>
The smallest such region.
00:59
<@ToxicFrog>
Aah. Fair enough.
00:59
<@McM[SanDiego]>
However, I am now getting odd results where if you're in A which is in B which is in C
00:59
<@McM[SanDiego]>
A is in B, but A is not in C.
01:00
<@ToxicFrog>
;.;
01:00
<@McM[SanDiego]>
Which seems Wrong.
01:00 * McM[SanDiego] plays more
01:00
<@McM[SanDiego]>
The rules that fire on these are fine
01:00
<@McM[SanDiego]>
Also, regiosn don't have printed names I seem to be able to get at
01:00
<@McM[SanDiego]>
And you can't have a list of regions.
01:03
<@McM[SanDiego]>
OK, hta's a bug in list handling.
01:03
<@McM[SanDiego]>
(You can't have a list of regions, and printing out a list of objects that's full of regions just gives you integers)
01:07
<@ToxicFrog>
("set action variables" rule. Where can I find more info on this?)
01:07
<@McM[SanDiego]>
12.10 in Writing with Inform
01:11
<@McM[SanDiego]>
Also: To decide what object is the region of (X - a room): if X provides the property map region, decide on the map region of X; otherwise decide on nothing.
01:11
<@McM[SanDiego]>
I can't figure out how to track regiosn in regions.
01:14
<@McM[SanDiego]>
AHA!
01:14 * McM[SanDiego] finds what he needs int he changelog, maybe.
01:15
<@McM[SanDiego]>
But to do this you'll need to do an iteration to get the list.
01:17 * McM[SanDiego] also breaks the I6 compiler.
01:18
<@McM[SanDiego]>
OK
01:19
<@McM[SanDiego]>
You'll have to loop through regions, and you don't seem to be able to play games with lists because I6 breaks.
01:19
<@McM[SanDiego]>
But the loop goes:
01:19
<@McM[SanDiego]>
repeat with R running through regions begin; if the location is regionally in X begin; [do stuff]; end if; end repeat.
01:19
<@McM[SanDiego]>
And now to prepare a bug report.
01:20
<@McM[SanDiego]>
Actually, now to prepare three bug reports.
01:25
<@McM[SanDiego]>
I think the easiest way to do this is actually to do the loop I described when play begins
01:26
<@McM[SanDiego]>
And then give each room its own list of access requirements, assigned based on region at play start.
01:26
<@McM[SanDiego]>
Anyway, must give up phone line.
01:33
<@Vornicus>
three bug reports for i7? man.
01:48
<@ToxicFrog>
Sweet.
01:48
<@ToxicFrog>
I should probably also update to a more recent i7.
02:32 C_tiger [~c_wyz@Nightstar-5378.nycmny.east.verizon.net] has quit [Killed (NickServ (GHOST command used by C_tiger_))]
02:32 C_tiger [~c_wyz@Nightstar-5325.nycmny.east.verizon.net] has joined #code
03:50 Vornicus is now known as Darius
03:56 Attilla [~Andrew@Nightstar-24762.ipt.aol.com] has quit [Connection reset by peer]
04:58 Serah [~Z@87.72.35.ns-26506] has quit [Ping Timeout]
05:03 Serah [~Z@87.72.35.ns-26506] has joined #Code
06:23 Darius is now known as Vornicus
07:33 Vornicus is now known as Vornicus-Latens
09:13 You're now known as TheWatcher
10:22 Forj [~Forj@Nightstar-2443.ue.woosh.co.nz] has quit [Quit: Gone]
10:30 AnnoDomini [AnnoDomini@83.21.81.ns-3175] has quit [Quit: Some people have evil spirits. You, you have stupid spirits. Go see shaman. Get hole in head. Big hole. Very big. Huge!]
11:05 AnnoDomini [AnnoDomini@Nightstar-28889.neoplus.adsl.tpnet.pl] has joined #Code
11:05 mode/#code [+o AnnoDomini] by ChanServ
11:14 Attilla [~Andrew@Nightstar-24762.ipt.aol.com] has joined #code
11:41 Pi [~sysop@67.183.91.ns-3660] has quit [Connection reset by peer]
11:42 Pi-2 [~sysop@67.183.91.ns-3660] has joined #code
14:13 AnnoDomini [AnnoDomini@Nightstar-28889.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
14:16 AnnoDomini [AnnoDomini@Nightstar-28889.neoplus.adsl.tpnet.pl] has joined #Code
14:16 mode/#code [+o AnnoDomini] by ChanServ
17:06 You're now known as TheWatcher[afk]
18:16 AnnoDomini is now known as Lerhir
18:26 Lerhir is now known as Louis
18:35 You're now known as TheWatcher
18:36 McM[SanDiego] [~mcmartin@Nightstar-16970.dsl.pltn13.sbcglobal.net] has quit [Operation timed out]
19:15 Pi-2 is now known as Pi
19:28 Chalcedon [~Chalcedon@Nightstar-2443.ue.woosh.co.nz] has joined #code
19:28 mode/#code [+o Chalcedon] by ChanServ
19:32 McMartin [~mcmartin@Nightstar-17577.dsl.pltn13.sbcglobal.net] has joined #code
19:32 mode/#code [+o McMartin] by ChanServ
19:33 McMartin is now known as McM[journeys]
19:53 gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code
19:53 mode/#code [+o gnolam] by ChanServ
20:05 MyCatVerbs [~mycatverb@Nightstar-13709.lurkingfox.co.uk] has quit [Ping Timeout]
20:06 Vornicus-Latens is now known as Vornicus
20:32 * ToxicFrog eyes the fuck out of Sun javac 1.5.0 for AMD64 Linux.
20:33
<@ToxicFrog>
Wait, no.
20:33 * ToxicFrog redirects his attention from javac to jar
20:34
<@ToxicFrog>
Seriously, what the fuck?
20:34
<@ToxicFrog>
I go:
20:34
<@ToxicFrog>
jar cf foo.jar -C /some/really/long/path .
20:34
<@ToxicFrog>
Where /some/really/long/path contains foo.class and bar.class.
20:35
<@ToxicFrog>
In windows - as it should - jar does a cwd() and produces a jarball containing ./foo.class and ./bar.class.
20:35
<@ToxicFrog>
In linux, it just does a strcat or something, and produces a jarball containing some/really/long/path/foo.class etc.
20:35
<@ToxicFrog>
Which, unsurprisingly, causes javac to freak out when it looks for stuff in there.
22:34 You're now known as TheWatcher[T-2]
22:38 You're now known as TheWatcher[zZzZ]
23:45 Louis is now known as AnnoDomini
--- Log closed Sat Jan 05 00:00:31 2008
code logs -> 2008 -> Fri, 04 Jan 2008< code.20080103.log - code.20080105.log >