View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0003328 | Valley 1 | Programming Todo | Apr 27, 2011 10:09 am | Jan 27, 2012 10:27 am | |
Reporter | Chris_McElligottPark | Assigned To | Chris_McElligottPark | ||
Status | resolved | Resolution | open | ||
Summary | 0003328: Hostile Plant: Stinging Nettles | ||||
Description | This is a plant that attacks the player when the player is too close, dealing small bits of damage to them. Probably best done as a TileLayerType, so that the players can't just destroy these from a distance. Perhaps this simply applies an OngoingCondition to characters that go into the nettle patches? Later I can also do thorns, which would work like this, and even later we get into semi-sentient plants that are definitely working like traditional enemies. | ||||
Tags | No tags attached. | ||||
Internal Weight | Feature Suggestion | ||||
|
Note that there's currently no support for TileLayer's actually triggering abilities (like the attack here). Can certainly be added, but care is necessary to avoid breaking mp-sync. |
|
Yeah, I figured you would have some thoughts on this one. It's not something I'm going to do immediately, though the art is rendered and waiting to be post-processed. Do you think this would be better as just being regular entities? I could give them a collision box of 0,0 in size so that they don't impede movement, and then a world offset of suitable size so that they aren't placed too densely, and then just let it be attacks that they do on the player. That might be simplest all around, I suppose. |
|
If you want to do it sooner than later, then GameEntity would be best. But having it be layer-triggered is also fine if it's done right. My thought is: - Add hardcoded field to TileLayerType: AbilityType AbilityToTriggerOnContact. - In GameEntity.CheckForCollisions(), if colliding with a tile layer that has AbilityToTriggerOnContact != None, call TryToUseAbility with that type (or something similar; it would obey resend thresholds and suchlike). - Add AbilityType.GetHitByThorns (or something more general) -- Cooldown equal to how often you think this should be able to hit them. - Set TileLayerType.StingingNettlePatch's AbilityToTriggerOnContact = GetHitByThorns. |
|
Well, having TileLayerTypes able to do things like slow down players (mud) would also be nice, so maybe that would be the way to go just to prove out that sort of kind of functionality in general. Thanks for the broad design there, I'll use that. :) |
|
Yea, the slowing-down thing could be added to the above either through an ability or through something similar to GameEntity's ConditionsAppliedToMeleeTargets that the ice bats use to slow you down. That would be piggy-backed on a generic AbilityType.ApplyTileLayerContactEffect (which wouldn't be bad to use in the above design, so there's only the one ability type for all layer effects unless it really doesn't fit), just like ConditionsAppliedToMeleeTargets is piggy-backed on DefaultMonsterMeleeAttack. Having thought it through, this really doesn't look like it take long or be very complex. |
|
Yeah, now that you've done all the hard work for me, that sounds pretty straightforward. ;) It would actually be interesting to have the stinging nettles both hurt you and slow you down, so I might just do both there. |
|
Yea, the combined hurt and slow does sound interesting. You could also have a terrain that applies a fire-damage-over-time like the fire bat's (as a matter of fact, I think you can just reuse the exact OngoingConditionType's for the fire-dot and the frost-slow from the bats, though you may want slightly different ones for different animations, etc). Lots of interesting possibilities :) |
|
Very good points! These would work well as a new kind of obstacle to be applied in the obstacle maps, too -- obstacles that are "optional but painful." So you aren't forced to go around, but if you don't then it hurts. I already plan to have lava rivers in the lava areas which would block you completely, but having some other sort of "hot patches" that you can walk over but catch on fire with would be good. And for the swamp (which is one of my next foci) there's interesting things that can be done, too. Lots of cool possibilities with all this! Oh, and I could use the same ability system for altering the tilelayer itself for ones that do that -- mainly thinking here of ice that cracks when you walk over it, then turns to water when nobody is standing on it, which I plan to use in the ice age areas at some point. |
|
Yea, affecting the tile layer itself would mean writing the TileLayer itself (or identifying integers thereof, presumably tile x, tile y, layer index, and possibly TileLayerType for making-sure purposes) to the QueuedAbilityUse object that's created in CheckForCollisions. That way the Ability.Execute code can unpack that, get a reference to the layer, and do whatever it needs with that. For that matter, being able to get to the layer's TypeData that way would let you put "how much damage does this layer do" info in that TypeData rather than passing that along with the ability use, etc. |
|
That makes a lot of good sense! |
|
I find your ideas intriguing and wish to subscribe to your newsletter. Not so much the stinging nettles in particular, but the world of possibilities that's opened up by the system that would need to be put in place to support their existence...unless that's already in place and being used for stuff. Now that I think about it, something like that might be what's used for the flame traps that killed me when I pushed that switch to unlock that door. I kind of knew something bad was going to happen when I whacked one to see what its item name was and it had "trap" in it, but I just had to see what would happen in the name of Science!/testing. |
|
Protip: when playing a game written by people who have read Boatmurdered, do not pull levers. |
|
I like the idea of the different plants (from basic plants that hurt when touched going up to near-sentient plants) being introduced over time. So, maybe the nettles would be in the game right from the get-go, then the thorns only start appearing in level 20 regions, and the sentient ones appearing after level 50 or something like that. |
|
Just to throw it into the mix, if we are going to end up with sentient plants, whats to stop them being from a time after the skelebots and becoming pc's? That sounds like fun to me! |
|
This sounds good. But with almost everything (props, etc.) except the landscape itself being destroyable, having indestructible thorn-patches that hurt you when you pass through (and may or may not block a place you want to get to?) seems... mean. Using fireshields for very short-term protection from some of the damage, or damaging the nettles with a flamethrower spell, or whatever, I'd love -some- way of (partially?) negating them as a player, at least in some conditions. Though the thought of a bossfight in a pretty hazardous area is attractive on it's own. Hmm. |
Date Modified | Username | Field | Change |
---|---|---|---|
Apr 27, 2011 10:09 am | Chris_McElligottPark | New Issue | |
Apr 27, 2011 10:09 am | Chris_McElligottPark | Status | new => assigned |
Apr 27, 2011 10:09 am | Chris_McElligottPark | Assigned To | => Chris_McElligottPark |
Apr 27, 2011 10:15 am | keith.lamothe | Note Added: 0012056 | |
Apr 27, 2011 10:17 am | Chris_McElligottPark | Note Added: 0012057 | |
Apr 27, 2011 10:24 am | keith.lamothe | Note Added: 0012058 | |
Apr 27, 2011 12:03 pm | Chris_McElligottPark | Note Added: 0012059 | |
Apr 27, 2011 12:09 pm | keith.lamothe | Note Added: 0012060 | |
Apr 27, 2011 12:13 pm | Chris_McElligottPark | Note Added: 0012061 | |
Apr 27, 2011 12:16 pm | keith.lamothe | Note Added: 0012062 | |
Apr 27, 2011 12:21 pm | Chris_McElligottPark | Note Added: 0012063 | |
Apr 27, 2011 12:26 pm | keith.lamothe | Note Added: 0012064 | |
Apr 27, 2011 12:30 pm | Chris_McElligottPark | Note Added: 0012065 | |
Sep 20, 2011 5:44 pm | nalgas | Note Added: 0013252 | |
Sep 20, 2011 5:46 pm | keith.lamothe | Note Added: 0013253 | |
Sep 21, 2011 2:30 pm | tigersfan | Internal Weight | => Feature Suggestion |
Sep 21, 2011 2:30 pm | tigersfan | Status | assigned => strongly considering |
Sep 21, 2011 2:32 pm | tigersfan | Note Added: 0013299 | |
Sep 30, 2011 7:20 pm | lujan22 | Note Added: 0015056 | |
Oct 8, 2011 4:33 pm | Yuugi | Note Added: 0016257 | |
Jan 27, 2012 10:27 am | tigersfan | Status | strongly considering => resolved |