Chronomancy Development

All development conversation and discussion takes place here

Moderator: Moderator

Message
Author
edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#16 Post by edge2054 »

Got Avoid Fate coded without any major hitches.

I started to work on Damage Smearing but couldn't get my head around it. I think reducing the value to 0 is going to reduce the value on the return to 0 as well.

So I'm building a few effects to get this to work.

Two timed effects, one similar to burning and another just to set the buff itself (which really does nothing except to say it's active).

Then the onHit function will split the damage in half and put half into the timed effect, which will then split the damage in half again (as it feeds back into itself), right up until the duration runs out on the Buff, when the remaining ticks will go off evenly.

At least, that's how I'm hoping it will work :) Right now I'm adjusting the numbers because they're putting out more damage then comes in initially.

*edit* Okay Damage Smearing I'm pretty happy with. The numbers don't quite add up but the effect is pretty powerful for a generic spell so if the character takes an extra 10% damage to have the damage spread out over several rounds so be it. The combat log is going to be lying big time though. Probably a worse offender then Time Prison because at least in that case you know the damage you're actually taking (0).

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#17 Post by edge2054 »

Wormhole

http://pastebin.com/r75C5guV

Okay, a few issues.

I was able to drop a random exit wormhole from with in a vault without issue and teleport out and back in through the wormholes. The targeted exit wormhole did not produce either an entrance or an exit but did not produce a game log either.

Since adding the teleport code the targeted wormhole exit now disappears after use. (The entrance is fine and both the entrance and exit are fine when placed randomly).

I'm also able to produce an entrance wormhole in some spots that should be no teleport in the vault (though not all spots).

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#18 Post by edge2054 »

Alright, wormhole is working good. Here's a preview of it and Damage Smearing.

The wormhole graphic loses a lot of detail in the image (converted it to jpeg) but it could probably use a bit of lightening and maybe some blue tones if it's not to much trouble.

Trees completed as of now (though balancing and particle effects still needs to be done).
*Gravity
*Probability
*Temporal Combat
*Weaving

Next up I'll start working on Matter and Inertia. Once those are done Timetravel will be the last tree to finish up the Temporal Blade (though that one I'll need a lot of help with.)

Also I still need to add in Anomalies and Timespace corrections. Backfire, Failure, Damage Scaling, and Paradox Cost scaling are finished.
Attachments
paradoxmagepreview.JPG
paradoxmagepreview.JPG (85.43 KiB) Viewed 4875 times

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#19 Post by edge2054 »

Any idea what could cause the resists to shift?

I was playing an archmage today on my modified copy and noticed that all the trolls are vulnerable to cold rather then fire. I checked the troll lua and they're still vulnerable to fire there. So something is causing all there resists to move at some point.

Maybe something I added in damage types or timed effects?

*Oddly this is the only character affected. I tested a few other characters and couldn't reproduce this bug.*

darkgod
Master of Eyal
Posts: 10750
Joined: Wed Jul 24, 2002 9:26 pm
Location: Angolwen
Contact:

Re: Chronomancy Development

#20 Post by darkgod »

You probably created a new damage type before those in the file, and did not make a new savefile
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#21 Post by edge2054 »

I see.

So an issue of backwards compatibility rather then a bug that could destroy a bunch of my progress.

Thanks for the response :)

Susramanian
Spiderkin
Posts: 454
Joined: Sat May 15, 2010 3:09 am

Re: Chronomancy Development

#22 Post by Susramanian »

Are chronomancers making it into beta 13, Edge? Been awhile since you've updated. I'm really looking forward to seeing them.

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#23 Post by edge2054 »

Unfortunately they're not.

It's a big project for someone that doesn't know what they're doing and I took a break to do geomancers (because I needed a break honestly).

Anyway I'm hoping to have Temporal Blades in beta 14 and the other two classes should follow soon after that assuming I get the help I need with the tougher talents.

Speaking of which...

Anyone know how to target a tile and check if an item is present and then remove that item from the tile?

yufra
Perspiring Physicist
Posts: 1332
Joined: Tue Jul 13, 2010 2:53 pm

Re: Chronomancy Development

#24 Post by yufra »

One place to look for inspiration is the engine/interface/ActorInventory.lua:pickupFloor function. Here is some untested code to check the tile at tx/ty for an object and remove it.

Code: Select all

local num_objs = game.level.map:getObjectTotal(tx, ty) 
if num_objs == 0 then
    game.logPlayer(self, "There are no objects there!")
    return
end
-- Take a random object from the ground
local idx = rng.range(1, num_objs + 1)
local o = game.level.map:getObject(tx, ty, idx)
game.level.map:removeObject(tx, ty, idx)
-- Now do stuff with it...
EDIT: I cannot remember the exact behavior of rng.range, but we want it to go from 1 to num_objs, inclusive.
<DarkGod> lets say it's intended

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#25 Post by edge2054 »

Well that's been fun :twisted:

Code: Select all

local idx = rng.range(1, num_objs + 1)
Was...

Code: Select all

local idx = rng.range(1, num_objs )
btw yufra.

Many many hours later though and E=MC^2 is starting to come together pretty nice.

I still haven't decided what to do with the inventory items. Debating doing a storm effect rather then a buff.

So far though I've got it blowing up ego items for temporal damage, metallic items for split_bleed damage, and everything else for fireburn with the radius dependent on material level.

Also seeing this error.

Code: Select all

Lua Error: /engine/HotkeysDisplay.lua:159: attempt to index local 'o' (a nil value)
	At [C]:-1 
	At /engine/HotkeysDisplay.lua:159 onMouse
	At /mod/class/Game.lua:903 fct
Not sure if it's related. Maybe the

Code: Select all

	local o = game.level.map:getObject(tx, ty, idx)
is causing it?

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#26 Post by edge2054 »

2 down, 6 to go.

Going to need help with at least 3 of these.

Time Skip - Needs to cache a creature for a few turns and when it reloads drop a knockback effect on the reentry tile.

Temporal Reprieve - Lowers all active cooldowns by tl.

and...

Revision - Reloads the characters last auto-save.

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#27 Post by edge2054 »

Alright, cross posting some stuff Darkgod will need to help (do for me) me with.

*edited this to reflect ideas and discussions since this was originally written in the chronomancy ideas thread*

Rethread will need to be finished before the warrior hybrid is done. The rest will need to be finished in order to complete the other two classes.
Rethread - You time travel back to the moment you first entered the dungeon level or to your last space time marker (see below). All progress you've made is lost and you lose X% of your Hit Points permanently. (This is the ultimate get out of jail free card but it comes with some heavy costs. The hit point reduction is lessened the more talent points you invest. Probably 6 - TL%.)

Door to the Past - You create a marker in space time that you can use later for other spell effects (e.g. Tighten Timecord and Revision). Additional talent points will reduce the cooldown. (Should have a pretty long cooldown at first like 1000 turns but a much more reasonable 50 or 100 at TL 5. Otherwise all this does is lets the player choose where his save points are created).

Tighten Timecord - You pull a copy of yourself from the past. The copy replaces you and continues on in your place. Not only is this spell extremely taxing for your past self, causing X% of maximum hit points in temporal damage, it also destroys your present self. (Basically this loads the player from the last save spot created by Door to the Past and replaces the players current data with the old data. I'm thinking the damage should be 60 - (10*TL)% or so.) Note that this will remove all negative status effects and should probably have a casting time of zero.

See the Threads - This is DGs idea from our chat on IRC the other day. Basically it will create save point A, then you travel along for so many turns and then save point B is created. Save point A is reloaded and you travel along and save point C is created. Then you can choose to load save point A, B, or C. This will also have a hit point cost as per Rethread above.
Aside from the talents above the Temporal Warden is very close to finished and the Infinite Traveler is short 2 talent trees.

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#28 Post by edge2054 »

Alright, since I missed Darkgod on IRC today...

*points to the last post*

Those are the save file talents.

Another idea I had (stole from another roguelike) was for the Chronomancy Premonition spell.

Premonition - Creates a savefile upon activation. The buff lasts for X turns. If you die while the buff is active it loads the savefile. 100 or so cooldown, short duration buff (2 turns per talent level or so).

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#29 Post by edge2054 »

New docs

https://docs.google.com/document/d/1dQp ... l=en&pli=1#

And managed to get the Age Manipulation tree done tonight for Paradox Mages.

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: Chronomancy Development

#30 Post by edge2054 »

The Chronomancy tree is mostly finished (that's the Divinitionish one).

I'll need help with Premonition since it's a savefile talent. Should be something like...
You receive a powerful vision of future events. If you die within the next X turns you're returned to the moment after you cast Premonition.
The duration will be rather short (2-10 turns maybe), the paradox cost high, and the cooldown really long (100+). Basically what it needs to do is create a premonition savefile, then when you die the game should check to see if premonition is active, if it is it'll just load the savefile.

*edit*

Actually here's what I'm thinking...

Code: Select all

newTalent{
	name = "Premonition",
	short_name = "CHRONOMANCY_PREMOMNITION",
	type = {"chronomancy/chronomancy",4},
	require = chrono_req4,
	points = 5, 
	paradox = 50,
	cooldown = 200,
	no_npc_use = true,
	getDuration = function(self, t) return math.ceil((self:getTalentLevel(t) + 1) * getParadoxModifier(self, pm)) end,
	action = function(self, t)
		game:playSoundNear(self, "talents/spell_generic")
		return true
	end,
	info = function(self, t)
		local duration = t.getDuration(self, t)
		return ([[You receive a powerful vision of future events. If you die within the next %d turns you're returned to the moment after you cast Premonition.  Premonition takes three turns to cast during which time you're effectively stunned.
		]]):format(duration)
	end,
}
Note that at the paradox level when talents work at 100% effect paradox costs are multiplied by four. So a 50 Paradox cost at 300 Paradox is actually 200 (which is really high).

Post Reply