--- 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 |