Mod Ren'Py Abandoned Time For Dragons - Defiler Wings: Deranged Dragon Mod [29-07-2020] [Jman]

3.50 star(s) 8 Votes
Aug 18, 2020
85
10
Well, the thing about the save file is that I have messed with the evolutions.yaml code and that probs wont translate well into the base game. And yeah, that was my attempt at maximizing optimization where the invasion is about to happen. 50 lair defense is a tad unreasonable IMO to unlock the sacrifice altar, and I did not manage to get it in time, as the screenshots show.
 

Jman9

Engaged Member
Jul 17, 2019
2,295
957
Well, the thing about the save file is that I have messed with the evolutions.yaml code and that probs wont translate well into the base game.
The ones in the screenshot are not too different, and I've also reduced evolution costs some. I'm more interested in whether you can beat 2-3 projections and regain enough seals via sacrificing so that it doesn't become a vicious cycle.

50 lair defense is a tad unreasonable IMO to unlock the sacrifice altar...
I just switched 'Scourge of the Plains' and 'Desolation' around.
 
Aug 18, 2020
85
10
"Updated" the guide by a couple of sentences and sections, and some better wording. I think I'm just gonna delete the short guide that was just a list of points. I could technically add a lot more, but my console opening shtick of shift+o has apparently fucked up, and so I aint gonna put in the effort normally.

On another note, where is dragon.requirements_satisfied stored? All I can find is that being called for each lair, not what the actual requirements are. I have an idea for an evolution I want to add, but I cannot add it unless I can get to the requirements satisfied

EDIT: forgot to add the updated guide
 

Jman9

Engaged Member
Jul 17, 2019
2,295
957
my console opening shtick of shift+o has apparently fucked up
:unsure:

On another note, where is dragon.requirements_satisfied stored?
It's not 'stored' anywhere, it's a function in 'PlayableCharacter.rpy'.

Edit: Some notes on future developments vs what's in the guide:
  • The Witch will be locked behind acquiring any amount of magical ability (max mana). You then have to let her milk you for a while to get access to the regular options. Milking for money remains available from the start.
  • The Witch will teach you magic. You can't actually accumulate any mana before she does, and learning takes a whole month. There will probably be the queen quest after you've done all that.
  • The Witchy store will rip you off even worse than the smugglers. :D
  • Smugglers are probably going to be gated by the queen quest.
  • Sizes will cost 40 and 80 XP for the first two upgrades, but you also raise your satiety limits with them, which is a big deal now. And the action/day ratio will be less oppressive, 1.5 and 2 instead of 2 and 3.
  • I don't really get the point of saving XP, unless you're focusing on a specific evolution.
  • Specials will be more competitively priced.
  • Wings will be neat, because they allow you to skip directly to many 'travelling' encounters. Merchants, ships and tollmen, to be precise.
  • Rainbow heads will be pricier and give +5% magic resistance.
  • Quest XP will be raised from 50 to up to 250 for many of the harder ones.
  • I'll make all girls outside of building contribute to each other's escape chances, because the new minions are really powerful. A small fort staffed by four lizardmen in guard posts already has over 50 defense. That also means the requirement for 'Protected Lair' goes up to 100.
  • The help sections are not outdated. I made sure that they're at least generally correct. Some mistakes and outdated info is still there, will be improved for the next release. But I recommend reading through those if you're a new player.
  • ...unless you're reading the Russian version. That one is outdated. :p
  • Saving mid-encounter is really not advised. All kinds of stuff might get out of order.
  • Deleting files can be done by hovering the mouse over the screenshot and pressing the 'Del' key. This is a general Ren'Py feature.
 
Last edited:

zzczys

Active Member
Jul 20, 2019
858
149
Quick'n'dirty in 'lair - classes.rpy':
Hrm wonder if it will work on partial names like noble princess, will try that next.

Not working right, next pregnancy had reduced egg power. Maybe need to apply to all egg instance.

Oh just the display text is not right. The egg pops out fine.
 
Last edited:
Aug 18, 2020
85
10
I will update the guide when the next version is released. Also, thanks for telling me how to delete saves, will include that in the next update.

Some of your advice is a bit wonky, 4 lizardmen will give about 4 defense per guard posted lizard. and with the fort's 1.5 mob power multiplier, that will give (((2*2)*4)*1.5) or in english, 24 lair defense. And that takes up 4 building slots. I dunno what game your playing, tbh :sneaky:. Help sections are definitely outdated in all but lore. Try reading them, statements like resistance is capped at 75% and such the like.

Saving mid encounter has only caused minor "glitches" for me, but Ill include a disclaimer in the guide.

On another note, how would you add a multiplication function to python in a single line? Using this as base:

Code:
        @property
        def maxhp(self):
            added_value = self.base_hp
            for key in self.modifiers:
                if self.modifiers[key].has_key('stat') and self.modifiers[key]['stat'] == 'maxhp':
                    added_value += self.modifiers[key]['value']
            return self.calculate_evo_stat('maxhp') + added_value
Adding in something like this:


Code:
        @property
        def hpmult(self):
            added_value = self.hpmult
            for key in self.modifiers:
                if self.modifiers[key].has_key('stat') and self.modifiers[key]['stat'] == 'maxhp':
                    added_value += self.modifiers[key]['value']
            return self.calculate_evo_stat('hpmult') + added_value
So that I can use that to add to the origional hp stat as follows:

Code:
        @property
        def maxhp(self):
            added_value = self.base_hp
            for key in self.modifiers:
                if self.modifiers[key].has_key('stat') and self.modifiers[key]['stat'] == 'maxhp':
                    added_value += self.modifiers[key]['value']
            return (self.calculate_evo_stat('maxhp') + added_value) * (self.hpmult / 100)
I dunno much about coding, but this looks wrong, even to me
 
Aug 18, 2020
85
10
I'm sorry that I do not know spanish, but with google translate you translate to "there are tricks to use for money" and a literal translation word by word (which is usually better in my experiance) I got as "there are tricks for use for the money". So here is my answer: Use the Restore mana function in the location Witch Coven. You gain 1 gold per lust consumed that goes over your maximum mana. There are also rare events in the Mountains, Sea, and Forest with buried or sunken treasure which can net you a lot of items which you can sell at the fence at the Smuggler's Cove or the Trade option at the Witch Coven. If you can fight llow level enemies and not die, you can use the Rob option on settlements in the Countryside for combat exp and sellable items. Sorry if I misunderstood you.
 
  • Like
Reactions: ratsudorc

Jman9

Engaged Member
Jul 17, 2019
2,295
957
Some of your advice is a bit wonky, 4 lizardmen will give about 4 defense per guard posted lizard. and with the fort's 1.5 mob power multiplier, that will give (((2*2)*4)*1.5) or in english, 24 lair defense.
These are future Lizardmen :D, with 60HP/4-6DAM/4POW, available from noble non-virgins. They give 4*4*2*1.5 = 48, and the starter traps add 1+1+1+3, for a total of 54.

Lair defense will actually stop mattering as a stat. The Thief already only cares about trap/minion numbers, and damage will be calculated with Knight party resistances and minion attack values taken into account. Defense just gives you an approximate number for 'raw' damage done to the Knights.

Well, okay, the girls still use defense for (not) running away.

I dunno what game your playing, tbh.
The improved one, of course. :cool:

Help sections are definitely outdated in all but lore. Try reading them, statements like resistance is capped at 75% and such the like.
That's one value error, which has been fixed since. The underlying mechanics explanations are still true.

Try the new addition to the OP and tell me if you find anything else.

Saving mid encounter has only caused minor "glitches" for me, but Ill include a disclaimer in the guide.
The encounters have more fiddly bits now, so this advice will be more important than ever. You can probably save right at the beginning of one, but even then it's a bit chancy.

On another note, how would you add a multiplication function to python in a single line? Using this as base:
Assuming you use modifiers in this way in evolutions.yaml:
Code:
  stats:
    ...
    hpmult: 20
Replace the 'maxhp' function with something like this:
Code:
        @property
        def maxhp(self):
            added_value = self.base_hp
            for key in self.modifiers:
                if self.modifiers[key].has_key('stat') and self.modifiers[key]['stat'] == 'maxhp':
                    added_value += self.modifiers[key]['value']
            return int(round((self.calculate_evo_stat('maxhp') + added_value) * ( 100 + self.calculate_evo_stat('hpmult') ) / 100.0))
The information displayed will look ugly, though, as players wonder what 'hpmult +20' or even 'hpmult +0.2' means. :p

Edit:
Oh just the display text is not right. The egg pops out fine.
What display text?
 
Last edited:

zzczys

Active Member
Jul 20, 2019
858
149
The post mate result;

1598847952232.png

The egg potential text is still calculating reduced power for non virgin, but the correct egg power is birthed.

1598848045021.png

She will birth egg 20 and up. Just this text needs correcting somewhere.
 

Jman9

Engaged Member
Jul 17, 2019
2,295
957
Just this text needs correcting somewhere.
In 'lair - cells.rpy':
Code:
                            if lair.selected_character.special.has_key('pregnant'):
                                if lair.selected_character.birth_count > 0:
                                    text '%s {color=#00F}x%d'%(p('pregnant'),lair.selected_character.birth_count) align (0.5,0.5)
                                text '%s: {color=#F0F}%d'%(p('days_remaining'),lair.selected_character.special['pregnant']['timer']) align (0.5,0.5)
                                if lair.selected_character.spawn_type == 'advanced' or lair.selected_character.name == 'Queen Alarielle':
This will become somewhat more difficult with the next release, so it'd be better to just make sure the queen isn't deflowered in the first place. Look for lines saying '.virgin = False', at least in 'lair - cells.rpy' and 'rape_labels.rpy'.
 

zzczys

Active Member
Jul 20, 2019
858
149
Or maybe a special class/flag that makes a girl always virgin or not subject to the power reduction.
 

Jman9

Engaged Member
Jul 17, 2019
2,295
957
Good idea. I'll add a 'permavirgin' property. All you need is replacing this in 'Girl.rpy':
Code:
            self.virgin = True
            self.permavirgin = False
            self.was_virgin = False
            self.blind = False
            self.cripple = False
And making the four virginity losses in 'lair - cells.rpy' and 'rape_labels.rpy' into
Code:
    if not lair.selected_character.permavirgin:
        $ lair.selected_character.virgin = False
and
Code:
    if not rape.girl.permavirgin:
        $ rape.girl.virgin = False
To avoid errors in an ongoing game, you'll also need to manually set your girls 'permavirginities' by consoling
Code:
for girl in lair.cells:
    girl.permavirgin = False

for room in lair.rooms:
    if room.has('girl'):
        if room.girl:
            room.girl.permavirgin = False
And use this for whoever your favourite is ;):
Code:
lair.cells[X].permavirgin = True
 
Last edited:

zzczys

Active Member
Jul 20, 2019
858
149
I was thinking that some special girls like elf queen, rescued fairy, should be able to produce high quality eggs constantly. Maybe even the goddesses....
 

Jman9

Engaged Member
Jul 17, 2019
2,295
957
How would that work lore-wise? Goddesses, maybe, but they're endgame content and aren't in the 'normal' game. And I'm not planning on writing any new events involving them, fixing/proofreading all the existing ones is already a lot of work. :(

The fairy/elf queen have no inherent 'virginity-restoring' properties. :D

The whole system is set up to encourage constantly looking for new girls to get better minions. If you're attached to some older captives, just store them somewhere and sex them without impregnating (upcoming feature).
 

zzczys

Active Member
Jul 20, 2019
858
149
Replace?


Code:
if lair.selected_character.virgin:
                            lair.selected_character.was_virgin = True
                            if dragon.mana >= 1:
                                dragon.stat('mana',-1)
                                lair.selected_character.spawn_type = 'advanced'
                        lair.selected_character.virgin = False
with

Code:
if not lair.selected_character.permavirgin:
        $ lair.selected_character.virgin = False

if not rape.girl.permavirgin:
        $ rape.girl.virgin = False
 
Last edited:

Jman9

Engaged Member
Jul 17, 2019
2,295
957
Told you I like to break moddable games....
:LOL: Well, now you'll be able to break DDM even more. :D

No,
Code:
                        if lair.selected_character.virgin:
                            lair.selected_character.was_virgin = True
                            if dragon.mana >= 1:
                                dragon.stat('mana',-1)
                                lair.selected_character.spawn_type = 'advanced'
                        lair.selected_character.virgin = False
with
Code:
                        if lair.selected_character.virgin:
                            lair.selected_character.was_virgin = True
                            if dragon.mana >= 1:
                                dragon.stat('mana',-1)
                                lair.selected_character.spawn_type = 'advanced'
                        if not lair.selected_character.permavirgin:
                            lair.selected_character.virgin = False
And similar stuff 3 more times.
 

docclox

Active Member
Game Developer
Aug 20, 2016
563
569
Getting an altar and sacrificing girls should stave off the demons for awhile. You could search the files and tinker with the sacrifice results or the seal reduction during sleep.
See, I hadn't even seen mention of an altar at this point. That's how early this triggered for me.

The projections will also be triggering endgame when the map is fully locked down, so you need to play whack-a-mole with them if you want to survive.
Whack-a-mole? I threw my full strength at just one, plus all the buffs I could afford. I managed to inflict like 2hp damage across the entire fight.

Am I right in thinking that fear and poverty start the clock ticking? I'd been cheerfully ramping that up since that's what the mistress encourages you to do in the second quest. I didn't know what the infernal seals were counting down to, but I was keen to find out. I thought it might have been a good thing.

Just as a suggestion - how about not starting the timer until the dragon spends a certain amount of XP? Maybe with a fear reset so all the seals don't all come down at once?

You don't starve to death, you're just stuck in your lair with 0 AP. Might be worth calling endgame then.
Is that the one where you can't sleep because you're starving, but you can't hunt down any food because you've run out of actions? Had that happen too, assumed it was a bug. Calling game over at that point would probably save a lot of pointless frustration. Either that, or let the dragon sleep and get 1hp and one action from it, give him a chance to steal a pig or something.
 

zzczys

Active Member
Jul 20, 2019
858
149
More fear = faster seal drop.

Previously the seals only dropped if you leave the cult sacrifice encounter.

Is that the one where you can't sleep because you're starving, but you can't hunt down any food because you've run out of actions? Had that happen too, assumed it was a bug. Calling game over at that point would probably save a lot of pointless frustration. Either that, or let the dragon sleep and get 1hp and one action from it, give him a chance to steal a pig or something.
Perhaps could allow for a saving event - caught a wandering animal by chance? Found a corpse?
 
3.50 star(s) 8 Votes