alpha build 0.5.8

A fantasy otome RPG about three young thieves with special skills https://www.winterwolves.com/queenofthieves.htm
Post Reply
User avatar
jack1974
Pack leader
Posts: 15095
Joined: Thu Jun 16, 2005 4:43 pm

Re: alpha build 0.5.3

Post by jack1974 »

I found where's the problem with invisibility, but in general any skill that temporarily change the defense value. The problem is that defense is similar to HP, since has a maximum and current value.
So I can't really say "increase defense by 20%" and hope will work. For example:
Defense is 10 > invisibility > Defense = 12 (I store the CURRENT Defense value before using the skill)
Then anything can happen: target can get hit by Strikethrough that lowers current defense by -1 on each hit, or any other spell that will modify defense value. Once the invisibility is gone, I restore back the value before which was 10. This is a problem.
In case of invisibility, every time would reset the current defense value to the multiplied value, so 10, then 12, then 14 etc.

The only solution would be saying "increase defense by 20% of maximum value" but I am not sure if would be clear to the player. Or simply don't use skills that modify the defense in a way that it should go back to "previous value" because previous value can always be changing...

Update:

Yeah I'm going to change the invisibility to "Ward" giving +1/+2/+3 elemental resistances. Might not seem very useful at first but I think against magic attack could be a powerful buff. Besides, Joanne has already another skill that restores lost defense :)
Even Thalia's Dodge needs to be changed. I can keep the Speed bonus, but need to do something else. Will think about it...
User avatar
jack1974
Pack leader
Posts: 15095
Joined: Thu Jun 16, 2005 4:43 pm

Re: alpha build 0.5.4

Post by jack1974 »

I changed Thalia's Dodge to have a percentage based dodge chance (only for non-magic attacks). I know I said I wouldn't do this, but I tried and I think is funny, and gives the poor Thalia some way to not die too quickly even without the protection of Kira :wink:
Also it will be only a party skill... I think... not sure mouhaha :twisted:
Troyen
Elder Druid
Posts: 957
Joined: Fri May 06, 2011 2:23 am

Re: alpha build 0.5.3

Post by Troyen »

jack1974 wrote:
Troyen wrote:The info button keeps crashing me, though I know it's an alpha.
Uh? with which item? I spent yesterday afternoon clicking the info on all items to make sure the "lore" formatting was OK! :o
Not an item. It's the top-right button the first time you get the party screen. I assumed the crash was because it's a prototype and not the actual game.
Spoiler:
I'm sorry, but an uncaught exception occurred.

While running game code:
File "game/story.rpy", line 18, in script call
File "game/test.rpy", line 72, in script call
File "game/script.rpy", line 1668, in script
File "renpy/common/000statements.rpy", line 457, in execute_call_screen
store._return = renpy.call_screen(name, *args, **kwargs)
Exception: Could not find font 'Aclonica.ttf'.

-- Full Traceback ------------------------------------------------------------

Full traceback:
File "game/story.rpy", line 18, in script call
File "game/test.rpy", line 72, in script call
File "game/script.rpy", line 1668, in script
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/ast.py", line 1641, in execute
self.call("execute")
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/ast.py", line 1659, in call
renpy.statements.call(method, parsed, *args, **kwargs)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/statements.py", line 144, in call
return method(parsed, *args, **kwargs)
File "renpy/common/000statements.rpy", line 457, in execute_call_screen
store._return = renpy.call_screen(name, *args, **kwargs)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/exports.py", line 2339, in call_screen
rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/ui.py", line 277, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/core.py", line 2276, in interact
repeat, rv = self.interact_core(preloads=preloads, **kwargs)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/core.py", line 2608, in interact_core
self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/core.py", line 1717, in draw_screen
renpy.config.screen_height,
File "renpy/display/render.pyx", line 379, in renpy.display.render.render_screen (gen/renpy.display.render.c:5886)
rv = render(root, width, height, 0, 0)
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen/renpy.display.render.c:2662)
rv = d.render(widtho, heighto, st, at)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/layout.py", line 649, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen/renpy.display.render.c:3045)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen/renpy.display.render.c:2662)
rv = d.render(widtho, heighto, st, at)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/layout.py", line 649, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen/renpy.display.render.c:3045)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen/renpy.display.render.c:2662)
rv = d.render(widtho, heighto, st, at)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/layout.py", line 649, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen/renpy.display.render.c:3045)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen/renpy.display.render.c:2662)
rv = d.render(widtho, heighto, st, at)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/screen.py", line 597, in render
child = renpy.display.render.render(self.child, w, h, st, at)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen/renpy.display.render.c:3045)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen/renpy.display.render.c:2662)
rv = d.render(widtho, heighto, st, at)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/layout.py", line 649, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen/renpy.display.render.c:3045)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen/renpy.display.render.c:2662)
rv = d.render(widtho, heighto, st, at)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/layout.py", line 995, in render
st, at)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen/renpy.display.render.c:3045)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen/renpy.display.render.c:2662)
rv = d.render(widtho, heighto, st, at)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/layout.py", line 808, in render
surf = render(d, width - x, rh, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen/renpy.display.render.c:3045)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen/renpy.display.render.c:2662)
rv = d.render(widtho, heighto, st, at)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/display/layout.py", line 995, in render
st, at)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen/renpy.display.render.c:3045)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen/renpy.display.render.c:2662)
rv = d.render(widtho, heighto, st, at)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/text/text.py", line 1524, in render
layout = Layout(self, width, height, renders)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/text/text.py", line 523, in __init__
glyphs = ts.glyphs(s)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/text/text.py", line 229, in glyphs
fo = font.get_font(self.font, self.size, self.bold, self.italic, 0, self.antialias, self.vertical)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/text/font.py", line 593, in get_font
face = load_face(fn)
File "/Users/troyen/Downloads/QoT-0.5.3-all/renpy/text/font.py", line 562, in load_face
raise Exception("Could not find font {0!r}.".format(orig_fn))
Exception: Could not find font 'Aclonica.ttf'.

Darwin-13.4.0-x86_64-i386-64bit
Ren'Py 6.99.4.466
Queen Of Thieves 0.5.3
The auto-skill picker is ignoring prerequisites. I got some rank 2 and rank 3 skills without rank 1 first.
Spoiler:
Image
About max health...maybe have the heart icon be half full when someone's health is between 25% and 75% and empty below 25%? The defense thing might work too. That would provide a quick estimate of who is injured and who needs defense.
User avatar
yayswords
Elder Druid
Posts: 1436
Joined: Sat Jan 25, 2014 5:34 am

Re: alpha build 0.5.4

Post by yayswords »

jack1974 wrote:I changed Thalia's Dodge to have a percentage based dodge chance (only for non-magic attacks). I know I said I wouldn't do this, but I tried and I think is funny, and gives the poor Thalia some way to not die too quickly even without the protection of Kira :wink:
Also it will be only a party skill... I think... not sure mouhaha :twisted:
RNG like crit and dodge work best when battles are so long that they average out. With the current pace of combat they're close to make or break mechanics.

I would like it more if Dodge were a passive (and renamed) ability that gave Thalia bonus defense at the start of a battle (for like 2-3 turns). Although that would probably not make them hit Kira instead, or hit Thalia but not do much damage, but rather hit Joanne.

Also Magic Defense. If you have 4/10 defense will it restore 6 defense (60% of 10) or 3.6 (60% of 6). Because in the latter case it really sucks and would work much better as a flat value.

And lastly you bastard, why do we always start at different levels every single build :lol: It's actually a problem because the enemies don't seem to. I had to remake my party four times to beat the first wave and still lose miserably to the second.

Right not lastly at all. The aggro system is really not working. In the first build they would attack Kira by default. Here I opened with Taunt (Expert), and after that Thalia still ate two attacks and died. Mages pretty much always nuke Kira though, so maybe aggro system works for abilities but not basic attacks? Either way if mobs are going to keep living by the HIT LOWEST DEFENSE TARGET ALWAYS logic the only way to play is to have Kira with enough speed to use Protect on her lowest defense sister before the mobs can act.
If at first try it doesn't explode, it ain't Jack who wrote the code.
User avatar
jack1974
Pack leader
Posts: 15095
Joined: Thu Jun 16, 2005 4:43 pm

Re: alpha build 0.5.4

Post by jack1974 »

Troyen wrote:Not an item. It's the top-right button the first time you get the party screen. I assumed the crash was because it's a prototype and not the actual game.
Ah funny. Here works, but maybe because I tried in "debug mode". Anyway was a wrong path, fixed.
Troyen wrote:The auto-skill picker is ignoring prerequisites. I got some rank 2 and rank 3 skills without rank 1 first.
The skill picker works but in this case I badly defined the prerequisites (indeed you could click and learn those skills even from the GUI!). I need to recheck all pre-requisites for all skills.
Troyen wrote:About max health...maybe have the heart icon be half full when someone's health is between 25% and 75% and empty below 25%? The defense thing might work too. That would provide a quick estimate of who is injured and who needs defense.
That's a good idea! I can actually make the shape fill by the color proportionally to the current/max value, so will be accurate. The problem with the defense icon is that is smaller so not sure if that would be noticeable. A solution might be to swap defense with the SP (the star) but I liked the big star... :P Or maybe put those 3 icons all at bottom. I'll need to think.
yayswords wrote:RNG like crit and dodge work best when battles are so long that they average out. With the current pace of combat they're close to make or break mechanics.
Hmm OK will think about it then. A passive skill could work but then she would be the only one to have it, so I would rather avoid that. An idea I had was a sort of counterattack, but that deals 1/2/3 SP damage instead of normal damage. I think could code it, even if wouldn't help Thalia's survivability though!
yayswords wrote:Also Magic Defense. If you have 4/10 defense will it restore 6 defense (60% of 10) or 3.6 (60% of 6). Because in the latter case it really sucks and would work much better as a flat value.
Ah you're right, now is working using the CURRENT value, but that is wrong, should pick the maximum value. Will fix it.
yayswords wrote:And lastly you bastard, why do we always start at different levels every single build :lol: It's actually a problem because the enemies don't seem to. I had to remake my party four times to beat the first wave and still lose miserably to the second.
Oops sorry, I was testing with a cheat code and forgot to realign the enemy starting level appropriately, so that's why was so difficult! Will fix it.
yayswords wrote:Right not lastly at all. The aggro system is really not working. In the first build they would attack Kira by default.
Haha sorry, even in this case it was because I changed some stuff for testing :lol: I'll revert back to use Aggro.

Of course in later levels, the enemies shouldn't ALWAYS hit the one with most aggro, but I want it to work almost like Planet Stronghold where enemies would always do that, since it was cool and added strategy.
User avatar
jack1974
Pack leader
Posts: 15095
Joined: Thu Jun 16, 2005 4:43 pm

Re: alpha build 0.5.5

Post by jack1974 »

Image
fixed the bugs, and have also added a display of the stats/resistances when you click on any character.
I also changed Thalia's dodge skill in another way... maybe too powerful? I'm not sure, we'll see :)
User avatar
yayswords
Elder Druid
Posts: 1436
Joined: Sat Jan 25, 2014 5:34 am

Re: alpha build 0.5.5

Post by yayswords »

Ok, that is a pretty powerful buff to Dodge, but actually doesn't solve the problems I had. Unless Thalia or Kira is faster than the opponents she still gets squashed. Although if you fixed aggro so Kira has default aggro it'll be fine. And then not fine once I get creative with this Dodge in the beta. Hehehe.

P.S. Invisibility description needs fixing (and the old combo skills need to stop saying they're combo skills)
If at first try it doesn't explode, it ain't Jack who wrote the code.
User avatar
jack1974
Pack leader
Posts: 15095
Joined: Thu Jun 16, 2005 4:43 pm

Re: alpha build 0.5.5

Post by jack1974 »

Get squashed if you put all points in attack/critical hit instead of HP/Defense :wink:
Anyway yes aggro is back, though when I checked it was JUST THE NORMAL MELEE that were "non-aggro" targets. Now all are.
Yes I need to fix several descriptions!
User avatar
yayswords
Elder Druid
Posts: 1436
Joined: Sat Jan 25, 2014 5:34 am

Re: alpha build 0.5.5

Post by yayswords »

There's no way to see ability tooltips in combat anymore. It still shows target info when you mouse over a spell.

Also it seems to show a green number over your stats if they are boosted by gear too.

Kira and Joanne have been confused for several builds about who really has stat points to spend. I can spend them on one and the portrait will still say I have points left to spend, whereas the message disappears from the one who didn't spend their stats. Not sure about how reproducible the issue is. The worst part about this is that Thalia is the one who looks confused!

Kira can use Protect on herself.
If at first try it doesn't explode, it ain't Jack who wrote the code.
User avatar
yayswords
Elder Druid
Posts: 1436
Joined: Sat Jan 25, 2014 5:34 am

Re: alpha build 0.5.5

Post by yayswords »

More skill talk.

Bramble Coat
Level 3 Bramble Coat will deal 12 damage total, that's it, and that's incredibly weak. What if it caused the Bleeding effect instead?

Mirror Damage
I was disappointed by this spell too. I'm not really sure where it will shine. The problem is you're not even returning the stated % of pain, because you don't throw the debuffs back too. Maybe it could properly mirror the spells/attacks themselves, using the attacker's attack power against them?

Ice Shard, Earthquake and Fire Blast
I thought the %-based DoT was lame at first but I really like it now. It lets a 0 offense Joanne still do good DoT damage (hehe damage over time damage), and if you want her to be a nuker you can get strength/accuracy and they will hit for more than 1.

Earthquake could do with shorter delay though. The debuff is the weakest by far. If it reduced accuracy by 20% instead it could keep the 10 delay.

Magic Sparks
Not particularly useful for the alpha but I like the idea of reducing buff durations.
edit: BAHAHA DISREGARD THAT, BEST NUKE <3

Magic Chains
I haven't been happy about using this in the alpha but I think it could have its moments.

Frenzy and Lightning Reflexes
I think mathematically these skills might not be that bad, but I don't think fights last long enough for them to pay off. Also especially Lightning Strikes would require more SP for Thalia, and if you consider that points in SP can be points in damage...

I'm not sure I would use them even if they cost 0 SP. The buffs are ok but I don't have the time to waiiiiit.
Last edited by yayswords on Wed May 27, 2015 4:06 am, edited 1 time in total.
If at first try it doesn't explode, it ain't Jack who wrote the code.
Post Reply