code logs -> 2012 -> Sun, 23 Sep 2012< code.20120922.log - code.20120924.log >
--- Log opened Sun Sep 23 00:00:38 2012
01:12 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds]
01:12 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
01:12 mode/#code [+ao Derakon Derakon] by ChanServ
01:29 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Operation timed out]
01:31 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
01:31 mode/#code [+ao Derakon Derakon] by ChanServ
01:39
<&Derakon>
Okay, so I'm working on statistics for creatures in Pyrel.
01:40
<&Derakon>
(Like STR, INT, stealth, speed, hitpoints, etc. -- basically any non-boolean numerical characteristic of the entity)
01:40
<&Derakon>
The way I plan this is to have a list of StatMod instances for each stat, which are applied in order.
01:40
<&Derakon>
Thus for example all creatures get a base d10 hit die -- this is the "fundamental" tier. Then you apply racial/class modifiers: the "inherent" tier.
01:41
<&Derakon>
Then you get permanent non-fundamental modifiers like from equipment.
01:41
<&Derakon>
Then finally any temporary modifiers.
01:41
<&Derakon>
Anyway, I want the StatMod to have the option of adding a value, multiplying the thus-far summation by a value, or invoking an arbitrary function (e.g. amulet increases your hitpoints based on your magic device skill).
01:42
<&Derakon>
Which leaves me with a constructor that looks like "def __init__(self, tier, addend = 0, multiplier = 1, func = None)"
01:42
<&Derakon>
I can't help but wonder if there's a more elegant way to make a multi-capability entity.
01:50
< Vornucopia>
Curried add or multiply functions?
01:51
<&Derakon>
Further explanation?
01:51
< Vornucopia>
Specifically you have something that goes like, func = add(5) and add(5) returns lambda x: x+5
01:52
<&Derakon>
So all StatMods would take just a function, but that function would be a composition of other functions in the case that we want to do certain simple operations
01:52
< Vornucopia>
Or something like that, yes.
01:53
< Vornucopia>
Since nearly all modifications will be very simple (or risk being ridiculous and hard to predict by players, which is important in a game like this), this works fine.
01:54
< Vornucopia>
This becomes hard if you're trying to make the stat modifiers data-built procs.
01:54
<&Derakon>
Yeah, I don't anticipate anything more complicated than "adds 10% of your magic device skill to your to-hit bonus".
01:55
<&Derakon>
Data-built procs are all over the place in Pyrel.
01:56
<&Derakon>
A significant portion of the data, already, is naming functions and parameters to pass to those functions.
01:57
< Vornucopia>
WHich is why I mentioned it. I'm not sure how to go about it, I've never done procs like that before.
01:58 * Derakon copies some text from one of the data files by hand to avoid spamming chat...
01:58
<&Derakon>
{"name": "test effect", "duration": "instant", "triggerCondition": "item use", "procs": [{"name": "print message", "messageString", "Hello, world!"}, {"name": "reduce quantity"}]}
01:59
<&Derakon>
"print message" and "reduce quantity" map to Python functions that operate on the items associated with the procs.
01:59
<&Derakon>
messageString is a parameter to its proc.
02:01
< Vornucopia>
(as much experience as I have there's lots and lots of things I've never done, and this is one of them and I decidedly need to fix that.)
02:01 Weboh [kvirc@Nightstar-26ffc790.cpe.imoncommunications.net] has joined #code
02:01
<&Derakon>
You'd be welcome to join the Pyrel dev team~
02:01
< Vornucopia>
Could.
02:02
<&Derakon>
Mostly this kind of thing is a lot of loading records from text files and then mapping certain keys to certain behaviors.
02:02
<&ToxicFrog>
Why are you using strings that map to functions there rather than, well, functions?
02:02
<&Derakon>
Because the data file format is JSON, not Python.
02:02
<&ToxicFrog>
Aah.
02:03
< Vornucopia>
And you're sanitizing by mapping the function names in the data files through a dictionary, I take it
02:03
<&Derakon>
Yeah.
02:03
<&Derakon>
Directly importing Python modules as data makes me a bit twitchy for ill-defined reasons.
02:03
<&Derakon>
Lack of a sandbox is probably one of them.
02:04
< Vornucopia>
"ill defined reasons" such as, for instance, You Shouldn't Fucking Do That?
02:05
<&Derakon>
Heh.
02:14
< Vornucopia>
I mean that's Classic Untrusted Data
02:17
< Vornucopia>
You have to sanitize like you're Lady MacBeth
02:19
<&Derakon>
Hm, should a creature's current HP be in this system?
02:19
<&Derakon>
Or should we just have it be its own thing?
02:19
<&Derakon>
Max HP obviously is a manipulable stat.
02:19
<&Derakon>
But current HP?
02:20
< Vornucopia>
you'll have damage and heal and probably a Demi effect but I don't think full proc support is necessary.
02:21
<&Derakon>
Yeah, the thing is that all that matters with current HP is the current value.
02:21
<&Derakon>
It's not like you can have a permanent modifier that multiplies it by 1.1 or something.
02:27
< Vornucopia>
YOu might have a temporary hp thing but that's something I suspect you'd need to take care of deeper in the system.
02:35
< Vornucopia>
(to give an example, though not directly droppable into an RL because it's got some assumptions: D&D 4e's temporary hp system goes "gain 5 hp in a separate pool that is depleted before your main hp pool; if at the end of the encounter you still have hp in the pool it goes away")
02:36
<&Derakon>
Ah, temporary HP as armor.
02:36
<&Derakon>
I like that much better than the usual mechanism, which is "if your current HP is below the amount of temporary HP you received when the effect expires, then you fall unconscious and/or die."
02:36
<&Derakon>
Dredmor had that problem in spades for fleshsmiths, a few patches ago.
02:38
< Vornucopia>
Time to go.
02:38 Vornucopia [NSwebIRC@Nightstar-a60eef95.ct.comcast.net] has quit [[NS] Quit: Page closed]
02:48 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds]
02:49 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
02:49 mode/#code [+ao Derakon Derakon] by ChanServ
02:55
< Nemu>
Hmm, I had an idea for a mechanic.
02:58
< Nemu>
Temp hp as a result of damage. So, you get hit for X points. Your hp goes down X points. You receive X points of temp HP.
02:58
< Nemu>
Hmm....
02:59
< Nemu>
Every turn, some of your temp hp is converted to shock. As your shock increases, it decreases your stats until treated
03:00
< Nemu>
Ah. Damage is dealt directly to your HP, though.
03:00
<&Derakon>
Why not have damage dealt to you increase your shock counter, and each turn the counter decrements, does damage to actual HP, and nerfs your stats?
03:02
< Nemu>
I want instant damage to real hp, which I guess makes the temp hp redundant, actually.
03:02
< Nemu>
The idea is that you're still getting hurt, just not feeling it as much
03:02 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has quit [[NS] Quit: beroot]
03:02
<&Derakon>
Yeah, you still don't need the temporary HP thing.
03:02
< Nemu>
Similar to how you can slice up your arm realy bad in a crash, and not notice it until after the action's done
03:02
<&Derakon>
Temporary HP as a mechanic needs to be treated very carefully.
03:02
< Nemu>
*really
03:03
< Nemu>
Hmm. I'm thinking, now, though, and temp hp, as above, would work really well for denial of information to the player.
03:04
< Nemu>
So, like, you're in a fight, and you don't actually know how hurt you are because your temp hp is masking it
03:05
< Nemu>
All you can do is judge based on the shock. After the fight, you can inspect yourself for damage, and take the appropriate actions
03:05
<&Derakon>
Presumably you can check during the fight, but that takes time.
03:05
< Nemu>
Which can lead to a pyrric victory (spellcheck). Win the fight, but die of your wounds after words
03:05
< Nemu>
And, yeah
03:06
< Nemu>
*afterwords
03:06
<&Derakon>
pyrrhic, I think.
03:06
<&Derakon>
Yeah.
03:06
< Nemu>
Looks like it.
03:06
< Nemu>
Anywhoo, this is obviously not a table mechanism. It'd have to be somewhere that the actual mechanics and rolls are hidden
03:09
< Nemu>
Hmm... To me, at least, this is kind of interesting. You could have different classes handle shock differently. Berserker-type characters could see a damage multiplier tied to their shock, for example. Maybe some feats could be involved. Clerics could have something like "Sufferage", where they absorb the shock of another player, or something.
03:10
< Nemu>
Obviously a bit of a departure from the roguelike genre. I wonder if there's any prior games with asimilar mechanic.
03:11
< Nemu>
**afterwards
03:18 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has joined #code
03:18 mode/#code [+o Alek] by ChanServ
03:30
<&Derakon>
Hm, I think I need to implement an "updateable" mixin.
03:30
<&Derakon>
Since I want to add a Timer "thing" that the game updates periodically which calls a function when enough in-game turns have passed.
03:31
<&Derakon>
And I really don't want to have to have it inherit from Creature, nor do I really think that both it and Creature should inherit from some shared base class.
03:47 Weboh [kvirc@Nightstar-26ffc790.cpe.imoncommunications.net] has quit [[NS] Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
03:50 Attilla [Obsolete@Nightstar-671ef68c.as43234.net] has quit [[NS] Quit: ]
04:24 Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has joined #code
04:24 mode/#code [+o Vash] by ChanServ
04:36
<&Derakon>
Oh hey, the ability to pick up/drop items should be a mixin.
04:37
<&Derakon>
So I can have items carrying other items easily (i.e. containers).
04:37
<&Derakon>
Also equipping items should be a mixin, so I can have items wielding other items (i.e. socketables)
05:03
<~Vornicus>
Mixins are kind of the bomb.
05:06
<&Derakon>
Yeah.
06:30 * Derakon has a mixin now that inherits from another mixin. O_o
06:31
<&Derakon>
(The "can equip items" mixin inherits from the "can pick up items and store them in inventory" mixin)
06:31
<&Derakon>
(Otherwise removing items gets kind of confusing, because the normal behavior is that unequipped items go in the inventory)
06:59 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
07:05 Derakon is now known as Derakon[AFK]
07:24 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [[NS] Quit: Well, most things get better when I kick them!]
08:00 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Client closed the connection]
08:01 Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!]
08:51
<&McMartin>
Derakon[AFK]: Mixins in the entity/aspect sense prove that "mixins" and "inheritance" are actually two totally separate concepts that OO often jams together.
09:12 Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds]
09:13 Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
09:25 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code
09:26 Moltare [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
09:50 Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds]
10:02 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
10:02 mode/#code [+ao Derakon Derakon] by ChanServ
10:14 You're now known as TheWatcher
10:18 simon_ [simon@842092.D5D4B4.CE904E.AD841A] has quit [Ping timeout: 121 seconds]
10:19
< froztbyte>
http://twitter.com/cfbolz/status/249773931265921025
10:29 simon_ [simon@842092.D5D4B4.CE904E.AD841A] has joined #code
11:04 * TheWatcher eyes this MSc student
11:06
<@TheWatcher>
How do you get into a postgraduate degree program in a CS department when you have no working knowledge whatsoever of version control systems, and apparently lack the ability to follow the instructions given in a book written about the software?
11:07
<@TheWatcher>
Oh, wait, I've gone back into that fantasy world where postgrads are actually intelligent, capable academics rather than inept morons with rich parents.
11:32
< froztbyte>
haha
11:33
< froztbyte>
I taught an art friend of mine about VCS the other day
11:33
< froztbyte>
though it did help that she had a nice mental analogue for it
11:53
< Reiver>
being?
11:56 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds]
11:57 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
11:57 mode/#code [+ao Derakon Derakon] by ChanServ
12:50
< AnnoDomini>
TheWatcher: Heh.
12:50
< AnnoDomini>
We actually had a course that attempted to teach us Subversion.
12:50
< AnnoDomini>
That turned out to be a disaster. To get any work done, we simply mailed the current version to each other.
12:51
< gnolam>
...
13:30
< Nemu>
I need to implement some kind of version control system. It's kind of hard, though, when some of my work is done in a lab with only a local network.
13:30
< Nemu>
That, and they refuse to give me any kind of administrative authority on the linux boxes
13:32 Attilla [Obsolete@Nightstar-fe8a9746.as43234.net] has joined #code
13:40
<@TheWatcher>
Nemu: build a static version of git, place it and project on a USB drive?
13:49
< Nemu>
Ooh, that'd work. It'll probably have to be a weekend project, though. We're ramping up for an experiment, and I've got nine working days to take a vague concept from my supervisor's head, and turn it into a stimulus package.
13:49
< Nemu>
Probably gonna be a couple days there where I don't go home
14:30
< froztbyte>
Reiver: multiple undo/redo stuff in graphics software
14:30
< froztbyte>
when I added in the diverged-timeline idea, it was only a minor bit of explanation
14:35 * TheWatcher ponders the viability of programming when he's just taken three tries to spell '#include' correctly
14:36
< froztbyte>
programming should be fine
14:37
< froztbyte>
just be aware that the C/C++ in question will be even more bug-riddled than usual
14:37
< froztbyte>
(leading to even longer debug sessions)
14:38
<@TheWatcher>
(especially when I'm embarking on performing 'orrible, unspeakable acts involving member function pointers, maps, and forbidden rites buried eons ago beneath the submerged ruins of lost Atlantis)
15:07 Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
15:31
<&ToxicFrog>
Nemu: you may already have git or hg installed, depending on the linux distro
15:31
<&ToxicFrog>
And since it doesn't need a server that's really all you neeed
15:32 * iospace fills all of froztbyte's code with bugs
15:33 * froztbyte runs `hg up -C`
15:33
< froztbyte>
mwuahahaha
16:16 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
16:29 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
16:29 mode/#code [+o himi] by ChanServ
16:47 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
16:54
< gnolam>
Argh. Naming things.
16:58
<~Vornicus>
what is the thing
17:00 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
17:00 mode/#code [+o himi] by ChanServ
17:14
< gnolam>
Animation classes. Specifically, the animation "reference" (holds all the frames and timings and so on) and the animation "instance" (for an animation that's currently playing).
17:27
<&Derakon>
AnimationFactory and Animation?
17:30
<~Vornicus>
So like you'll have a specific animation of (say) a headcrab leaping and then you'll have this particular headcrab leaping, with variables that change according to where in the leap he is etc etc
17:40 Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has joined #code
17:40 mode/#code [+o Vash] by ChanServ
17:51
< gnolam>
Vornicus: yes.
17:58
<@TheWatcher>
(Vorn hasn't been playing a lot of half life recently, oohno~)
17:59 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
18:17
< froztbyte>
gnolam: "playbook" :)
18:42 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has joined #code
20:19
<@Alek>
TW: Black Mesa, actually.
20:19 * Alek is a bit miffed at how they ended it.
22:13 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
22:26 * TheWatcher hasn't even grabb it yet, should do that eventually
22:28
<@Alek>
yes. do.
22:35
<@Alek>
"Recently found a typo in the menu of one of the android apps I'd made. Fixed it, released an update. First comment - Thanks, stopped crashing on opening!"
22:35 * gnolam pokes iospace.
22:35 * iospace pokes gnolam
22:35
< gnolam>
You know motherboards, right?
22:38
< gnolam>
Are front panel connector standardized?
22:38
< gnolam>
(In particular: power buttons.)
22:39
<@Alek>
mmmn. the connectors seem to be standardized. standard mobo plug wiring. >_>
22:39
<@Alek>
but hey, that's just from what I recall having built like 3 or 6 machines. >_>
22:40
<@Alek>
not like keyed or anything.
22:41
<@Alek>
just square plastic plugs going onto pins on the mobo, in a designated area. buttons and leds and I think a fan or two and front-panel jacks maybe.
22:42
<@Alek>
some have the multiple wires together in a combined plug, either square or rectangular, some have 2 wires with separate 1-pin plugs, to plug in adjacently.
22:43
<@Alek>
depends on the object being plugged (this being generally part of the case front) than the mobo itself, I think.
22:43
<@Tamber>
The short answer: No. The longer answer: No, it's not standardised; but they're /usually/ labeled.
22:44
<@Tamber>
Most of the newer boards I've dealt with seem to have a fairly similar pattern to how they designate the pins, though; but then there's always going to be /one/ that does their own thing.
22:44
< gnolam>
A-ha!
22:45 * gnolam finds a pinout.
22:45
< gnolam>
Thanks for your replies.
22:45
< gnolam>
Now I just have to MacGyver myself a power button...
22:46
<@Tamber>
Until I found a button I had free, I used to switch my PC on with a screwdriver. <_>
22:46
<@Alek>
?_?
22:47
<@Alek>
and sometimes, the pinout may be labeled, but the wiring not. or vice versa.
22:48
<@Alek>
so if you've got two separate wires, or a two-wire plug, that you don't know if you're supposed to put THIS way or THAT way for +/-...
22:48
< gnolam>
Oh, everything's completely unlabeled.
22:48
<@Alek>
ouch.
22:53
< gnolam>
Also: miniaturization. <3
22:53
< gnolam>
The external power supply is bigger than the computer.
22:57
< iospace>
sorry gnolam, was in game xD
23:01
<@Alek>
"Saw a great phrase today. Programming is moving from 'nothing' to 'nothing works'." "That's not just about programming, that's about everything. It even describes the evolution of the cosmos."
23:03 Rhamphoryncus [rhamph@Nightstar-cc6253d6.abhsia.telus.net] has joined #code
23:34 himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code
23:34 mode/#code [+o himi] by ChanServ
--- Log closed Mon Sep 24 00:00:53 2012
code logs -> 2012 -> Sun, 23 Sep 2012< code.20120922.log - code.20120924.log >

[ Latest log file ]