|
Post by bigfoot on Nov 28, 2017 4:27:33 GMT -8
Does it happen predictably? as in 1st turn, or with a specific weapon/ship?
|
|
|
Post by bigfoot on Nov 23, 2017 12:01:56 GMT -8
That's really cool! I see what you mean when you mention the ME menu and Halo, I don't actually use MoA any more but might redownload it to let this run How long did it take you? (and do you have any plans to redo the starting movie?)
|
|
|
Post by bigfoot on Oct 26, 2017 13:12:17 GMT -8
Glad you had fun! The memory problem seems to crop up with some people and not with others, the images and image configs are all from Sunrider so they should be ok. I've updated the mod to release memory every time you hit the galaxy map, hopefully that will help! I don't know if LD is 32 or 64 unfortunately. Did it happen mostly with battles? Or scenes with lots of backgrounds?
|
|
|
Post by bigfoot on Oct 17, 2017 3:30:34 GMT -8
Mostly for Le_Fay but if anyone else needs to unlock endings/gallery because they changed computers
init 50 python: config.developer = True def return_cheat(): for ending in persistent.unlocked_endings: persistent.unlocked_endings[ending] = True chivo_process('REturn Completed') chivo_process('Sola Alternate Ending') chivo_process('Asaga Alternate Ending') chivo_process('Sola Normal Ending') chivo_process('Asaga Normal Ending') chivo_process('Sola Worst Ending') chivo_process('Ava Normal Ending') chivo_process('Claude Secret Ending') chivo_process('Asaga Happy Ending') chivo_process('Sola Happy Ending') chivo_process('Ava Happy Ending') chivo_process('Icari Happy Ending') for x in ["h_shower1","h_shower2","h_shower3","h_shower4","h_shower5","h_chigarah","h_chigarah2","h_chigarah3","asagah1","asagah2","asagah2b","asagah3","asagah4","avah1","avah2","avah3","avah3b","avah4","avah5","avah5b","avah5c","avah1_patch","avah2_patch","avah3_patch","avah3b_patch","avah4_patch","avah5_patch","avah5b_patch","avah5c_patch","claudeh1","claudeh2","claudeh3","icarih1","icarih2","icarih3","icarih4","icarih5","icarih6","solah1","solah2","solah3","solah4","solah5","solah6","solah7","intro_helion","chigara_shock","chigara_cockpit_lightning","chigara_cockpit_orb","cockpit_chigara","lynn_cockpit","lynn_cockpit_lightning","lynn_cockpit_lightning","lynn_cockpit_space1","lynn_cockpit_space2","cosette_attack","cosette_attack_lines","cosette_attack_blood","cosette_attack_bloodlaugh","cosette_attack_bloodcry","cosette_escape","asagacockpit","asagacockpit_awaken","asagacockpit_awaken_sun","asagacockpitsurprise","asagacockpit_lightning","asagacockpit2_lightning","asagacockpit_orb","asagacockpit3","asagacockpit4","asagacockpit5","asagacockpit6","asagacockpit7","asagacockpitsurprise_space","cg_asaga_cockpit_awakenedclench","cg_asaga_cockpit_awakenedshout","cg_asaga_cockpit_focused","cg_asaga_cockpit_hanger","cg_asaga_cockpit_shout","cg_asaga_cockpit_hurt1","cg_asaga_cockpit_hurt2","lynn_brig1","lynn_brig2","lynn_escapepod1","lynn_escapepod2","shower1","shower2","shower3","shower4","shower5","cosette_jail","ava_sickbay1","ava_sickbay2","asaga_reflection1","asaga_reflection2","lynn_interrogation1","lynn_interrogation2","lynn_interrogation3","lynn_interrogation1glove","lynn_interrogation2glove","lynn_interrogation3glove","chigara_tea1","chigara_tea2","chigara_tea3","chigara_tea4","chigara_tea5","chigara_tea6","hangar_celebration","asaga_jealous","messhallparty1","chigaralap1","chigaralap2","chigaralap3","chigaralap4","icaricockpit","icaricockpit_orb","icaricockpit2","claudecockpit1","claudecockpit_orb1","claudecockpit_orb2","claudecockpit2","claudecockpit3","claudecockpit4","cg_claudecockpit","cg_claudecockpit2","solacockpit1","solacockpit2","solacockpit_orb","solacockpit3","solacockpit4","solacockpit5","cg_sola_cockpit_hanger","cg_sola_cockpit_neutral","cg_sola_cockpit_talk","cg_sola_cockpit_awakenedfocus","cg_sola_cockpit_awakenedfocus1","cg_sola_cockpit_awakenedsad","chigarah1","asaga_fall","chigarah2","chigarah3","fight1","fight2","fight3","fight4","kryska_cockpit_orb1","kryska_cockpit_orb2","kryska_cockpit1","kryska_cockpit2","chigaramindstream","chigaramindstream2","chigaramindstream3","alice_cockpit1","alice_cockpit2","alice_cockpit3","alice_cockpit4","alice_cockpit5","alice_cockpit6","overhangar","twist1","twist2","twist3","dronedrop1","dronedrop2","dronedrop2","dronedrop3","dronedrop4","dronedrop5","dronedrop5","dronedrop6","ondrone1","ondrone2","kaytokiss1","kaytokiss1","kaytokiss2","dead1","dead2","swornenemies1","swornenemies2","standoff1","standoff2","standoff3","kaytoend1","kaytoend2","kaytoend3","kaytoend4","despair","helives","helives_nopatch","cg_kaytopunch","piratesapproach","havoc_dead","havocexplode","coreexplode1","coreexplode2","diode","returntocera","cera_pactfleet","cera_pactryders","battleshipapproach","pactelite_attack1","pactelite_attack2","libertyspin1","libertyspin2","allryders_launch","blackjack_attack","bjbiancastop_back","bjbiancastop_back","bjbiancastop_bianca","bianca_damaged1","bianca_damaged2","alliancefleet_damaged","nightmare_damaged","nightmare_fire","nightmare_fire2","cg_nightmarefire1_nodamage","cg_nightmarefire2_nodamage","goodvevil","allshipsfire1","allshipsfire2","sunrider_hit","collison","blackjackseraphim","abyss","bg bridge","bg bridge_damaged","bg pactbridge","bg sickbay","bg messhallwindows","bg messhallwindows_cera","bg hallway","bg hallway_distort","bg hallway_damaged","bg hallway_np","bg crewcabin","bg controlroom","bg office","bg captainscabin","bg hangar","bg hanger_noryders","bg stateroom","bg messhall","bg messhall_nopower","bg clonelab","bg brig","bg brig_damaged","bg brig_nopower","bg awardhall","bg awardhall_snipe","bg awardhall_destroyed","bg airlock","bg escapepod","bg escapepod_blue","bg cargohangar","bg mindstream1","bg mindstream2","bg desert","bg engineroom","bg tunnel","bg engineering","bg engineering_np","bg engineering_fire","bg engineering_fire2","bg engineering_fire3","bg reactor","bg reactor_np","bg xooffice","bg beach2_night","bg city","bg hotelroom","bg park","bg shrine","bg crewquarters","bg crewquarters_nopower","bg room_day","bg observationdeck",]: renpy.show(x) renpy.pause(0.05) renpy.scene() renpy.free_memory() renpy.full_restart()
To use: Paste code into a txt file and save it as a .rpy file in the sunriderLD/game folder press shift + O enter return_cheat() You will see a 1min recap of both LD and Return, then be dropped back into the main menu with galleries unlocked (except 2 Mech CGs) and ReTurn achievements unlocked
*goes on the run so doesn't get arrested by Magpie*
|
|
|
Post by bigfoot on Oct 14, 2017 15:22:04 GMT -8
Hmm, there shouldn't be two MoA folders there, will have a look in a few days. For now it should be deleted or it will conflict with itself!
|
|
|
Post by bigfoot on Oct 13, 2017 13:07:49 GMT -8
Pretty good one, I can see that happening
|
|
|
Post by bigfoot on Sept 30, 2017 9:54:15 GMT -8
Cheers, been a bit overwhelmed recently but, should have a lot more free time in the coming weeks, so will hopefully be more productive rather than leaving you do do everything Thinking of the objective screen, it would be pretty awesome to let it update as objectives are met/failed, so if you have several objectives, you can alter it as the mission progresses. If you put the mission in an eval check rather than checking for BM.mission directly then you could increase the ypos of the objective string by x per objective matched, then when an objective is no longer met it would hide and the entire list would reshuffle. #Dont expect this to work out of the box but might be an idea? init -1 python: objectivelist = [] objectivelist.append(["eval","string"])
# in objective screen counter = 0 for o in objectivelist: if eval(o[0]): text o[1]: ypos x += counter counter += 0.05 # or something, floats are percentages, integers are direct values
or something similar should be sufficient (although a few transforms for adding/removing objectives would be pretty cool) Then if you had to as an example, keep support ryders below 3 to damage a protected ship, using get_ships_in_list you could re-enable the objective when the ship was undamageable (if new ryders are spawned to protect it) and replace it with destroy ship when the objective was met I'm sure your fixes are good neppi you have a much higher quality control than I do! I'll have a look through them and update the mod hopefully tomorrow. I'll look into the wreckage mod again, it was fixed for me with my last update but something else might have gone wrong. Hope I can have that fixed on Tuesday, and finally play your mod!
|
|
|
Post by bigfoot on Sept 11, 2017 14:14:42 GMT -8
That looks really good! Sorry I haven't been able to work on it much.
My initial thought is you could make a screen the same size as the battle screen, if we adjust the zorder of the background/map/ships we could create spaces. If we put the zorder above the entire thing, I think it might interfere with clicking to skip, so you might want to look at modal for screens. If you made a screen the same size as the screen then you could use BM.xadj.value / yadj.value, I think they read from the top right of the screen, so you would want to get the ship location converted into that... From memory hexes are ~124 wide and spaced(not size) ~115 at zoomlevel 0.65. Thats roughly what it was in MoA and the majority of the battle_screen is unchanged so I think it's likely to be the same but do check as that was from about 3 years ago. There would also be spacing on the left and top parts of the map. If you use those values you could anchor the screen to wherever the battle screen is and line it up, or display the transform where you want it to go.
xlocation = int(BM.target.location[0]*124*zoomlevelmodifier+whereinhex_number) or something like that?
I don't know how practical it is but that's my first thought... If that works, then we could look on integrating it to the battle_screen:
This is what I was thinking about but haven't gotten around to trying yet: Treat it like I did with the history menu and have it dynamically spawn new screens with an if loop. It's pretty good with show/hide but if you look at the confirm button in history, it fades in the first time, but any subsequent times it appears it dosen't, there may be some way to improve that but I haven't tried and it might make new screens appearing clumsy.
battle_screen:() # modal might be needed? for x in battlescreenlist: if eval(x[0]) if x[1]!=None: x[1]() # Call any setup needed. renpy.show_screen(x[2]) # Might need to do some zorder things here to make it show up, they can get hidden behind the battle_screen.
Will think on it a bit. It might be best rather than to do screens, to do transforms. But the basic idea is the same. Lag may become an issue if it's scanning the list constantly (but I expect only if its being used a lot, it coped with some crazy things in MoA like flashing ship auras) so it could be linked to an activation variable that causes it to scan for any true evals then turns itself off again? That would have a lot of activation points like weapons firing, damage dealt, triggering the battle_dispatch would be a good one as it would trigger pretty much on any player action.
Anyway I'm rambling and desperately need to go to bed.
|
|
|
Post by bigfoot on Sept 8, 2017 16:25:38 GMT -8
Bugs fix'd and Title fixed (Title is still in beta, mistakes may still be apparant)
|
|
|
Post by bigfoot on Sept 8, 2017 16:24:14 GMT -8
Bugs fixed (almost everything) Really glad your enjoying the Tactics mod, I think it should be compatible with your mod now (and going to test it tomorrow even if I'm awake till 5am doing it!) Give me a few days and I'll modify the crit code so you can put your own effects in the crit pool, see if you can put something really nasty in there
|
|
|
Post by bigfoot on Sept 8, 2017 16:18:51 GMT -8
All bugs fixed (hopefully)
|
|
|
Post by bigfoot on Sept 7, 2017 9:20:17 GMT -8
Cheers, Gravity gun isn't actually derived from Weapon, it's its own item class, BigGravityGun does however inherit from GravityGun the same way curse inherits from support, I've fixed that for now and will work late today so I have some free time to try and fix everything else tomorrow evening, if you could send me a list I'll try and sort it all out at once. ... Now I need to find some way to harmlessly knock you out for 24h so you don't find about 20 more bugs before then In all seriousness, the more the better!
|
|
|
Post by bigfoot on Sept 6, 2017 15:56:03 GMT -8
For the damage estimation, I would put an extra bar on the targeting window above the cth and do something like...
def extimate_attack(ship): dmg = real_damage(BM.activeweapon,BM.attacker) # damage calculations for armour/shield return str(dmg)
# battlescreen stuff # show image block at wherever # text angle % bonus + projected damage
I don't know if it would be too much handholding, perhaps just putting the dmg bonus and crit chance would be enough.
I screwed up the crit maths in apply_criticalhit. It should be 5% with +1% per 5 above 100. With seraphim adjacent but without awakening active and no research then that gives ~ 91% chance to crit on a pirate mook with TrueAcc at ~ 146, instead its reporting 91% chance so I've done something wrong. I adjusted the evasion setup so CM_Inc = 0.002 and that gives much more expected 14.2%
The crit_bonus can be replaced to give a modifier, it normally returns 0 but can be overwritten (if there was a scope item or something). I've put the crit chance in store.crit_chance before the bonus is applied so now its easier to debug and can be used by the bonus function to make a % adjustment if need be. If you wanted to cap it at 5% for example, just do
def alter_crit(): if store.crit_chance >= 0.05: return crit_chance-(crit_chance-5)
Seraphim.crit_bonus = alter_crit
I tested killing a few ironhogs and couldn't get them to spawn multiple covers, then got a pirate destroyer that spawned two once in about 5 deaths... I'll do my best to play your mod tomorrow and see if I can replicate the evasion stacks and cover spawns.
It makes sense to modify the cover class really, I will add an overwrite into the tweakpackl. Unfortunatly I don't think the problems are from the MoA mod because blackhead was testing it using the port as well and it wasn't throwing up any errors then...
Good catch on the evasion crit glitch, fortunately its an easy fix!
I'm a partner in a garden shop and It's absolutely wonderful talking to customers, solving their problems and working with plants but the finances part of it haven't been changed in the 75 years since grandad started it. Unfortunately there are new accounting regulations that have legitimately quadrupled the amount of paperwork that needs doing and instead of a 10h day, I'm now doing 13 hours a day full of pointless work with less face to face time with customers and am massively stressed out.
On the plus side I reserve half a greenhouse for growing edibles and have some of the most amazing chili plants ever.
/rant over... That's so much better
I'll look into the MoA bugs when I can, but my next day off is Thursday next week so I don't have much time to really go through it in detail.
|
|
|
Post by bigfoot on Sept 6, 2017 12:42:31 GMT -8
The angle notation looks good, but it does sort of confuse things with the accuracy. I do like it though. I would make another bar above the accuracy and use that to display the damage estimate, then you could have the modifier with that. It would be generally useful as well, not just with the mod and could take accuracy into account.
I fully agree with your analysis on the grav gun and it's easy to make optional.
The turn button looks good, its out of the way and not intrusive, if you could upload that I would be grateful and will add it to the mod.
The problem with crit chance is indeed the e, that should be renpy.random.random() I don't know how that became e given it's been working for the last almost year! That's fixed at least.
I have sometimes had cover be cloned, but never in a recognizable pattern, sometimes on ironhogs, sometimes not. I wonder if it's related to skip mode. There are sometimes problems running python funcs in quick succession (try running ship.destroy(ship) on the enemy_ships list and it only takes out half of them normally). That can be gotten around by slicing lists (instead of doing : do [:]: in if loops) so I'll have a look at it later, try and work out what's happening.
I don't know why the ship is spawning with 20 stacks already, have a look in ship.create_funcs and see if there's any duplication of functions? That's all I can think of atm and I still havent had time to sit down and play it.
The problem with editing the cover class itself is coverdestroy is only applied to covers made by ship destruction, the cover class itself should call destroy instead or random cover lying around will start exploding. I might make it a custom type of cover, but I wanted it initially to show how to locate and alter objects so it would be a nice demo for people who were considering modding.
The really frustrating thing is this worked for over a year and I don't understand why it's suddenly not. I'll make a clean install and test it with just this when I get a chance. I don't have time to work on it today unfortunately. The problem with running a business is you need to spend your spare time actually running the bloody thing!
I did notice there's a lot of new image files in your mod when I downloaded it, do you do your graphics work yourself as well?
|
|
|
Post by bigfoot on Sept 5, 2017 16:34:46 GMT -8
Haha yes I was waiting for you to find bugs I couldn't! Glad it didn't break anything, it shouldn't do if its good with the tweakpack, its built with the same architecture and is probably redundant now its out. Unfortunatly the AI dosen't take angles into account, it could be done... but not this late at night. Ok... onto the list a) Yes, good thought, Ill add that in tomorrow as a 0-5en weapon. Put it as a support skill targeting self. It would also be fairly easy to add a hotkey. I want to have a look at the battle_screen a bit and see if I can get it to import hotkeys and screens. It would make it much easier for mods to use it without trampling over each other. b) That would give more info definitely, look into BM.weaponhover in battle_screen (custom_screens), you'll find the targeting window. It would be trivial to do it that way but also make it incompatible with anyone else's mods, there has to be a better way. c) The ships are moving like normal, but the reason they turn is a function put into move_funcs that is called whenever a ship moves. The best thing would be to overwrite that so if BM.activeweapon.name is GravityGun or the union equivalent then it doesn't switch them, the same can be done with the movebuffs which are found in the main evasion mod. I'm torn about doing this, on one hand it does give them a significant boost to power and it's a nice way to get extra damage in IF you have the accuracy to spare for the range penalty. I might make it a config choice. d) Glad that was obvious to work out, It's designed to be tweakable but I was worried it was too arcane! Icari does benefit the most from it, my hope is that EMHB_End effectively gives you diminishing returns and forces you to balance evasion with actually using weapons. I'll give it some more thought. Out of interest what was the highest number of stacks you could maintain turn to turn? 15 stacks is effectively -2hex with kinetic and -3hex with laser which sounds about right for max edit 4) Damnit! I thought I had that squashed. It shouldn't be due to that, there are two weapon func lists that the fire functions draw from, one is attached to the weapon directly and only works on that weapon. The other is attached to the ship and works on all the weapons the ship has. It lets you customize each weapon individually or apply a global effect to all weapons on that ship (say you wanted a damage boost for Icari and Kryska when they were adjacent) I'll have a rummage tomorrow and see if I can find anything, it could be I've messed up the item[0] time code somewhere. edit 5) Ahh I hate maths! I spent 6-7h on a train trying to work it out last year and just gave up in the end, can't believe you caught that instantlys! Thanks for fixing it for me, I'll adjust it tomorrow later today. You know if you keep finding bugs for me I'm never going to get a chance to try your mod After this mod is fixed up fully and I've done a run through or two with your mod I'm going to try refitting This into LD As always, you've been invaluable.
|
|
|
Post by bigfoot on Sept 5, 2017 10:17:01 GMT -8
Battle Tactics Mod
This mod is intended to enhance the gameplay of LD by letting the player benefit from more reactive and realistic strategies than the currently optimal huddle-in-a-corner-and-wait-for-them-to-run-into-our-guns.
The key theme is movement matters and the battlefield changes as you play.
This mod raises the skill ceiling of the game significantly, giving you the opportunity to deal significantly more damage, but a misplay will potentially cost you the battle. It is disabled on escort missions and the final LD mission by default.
Special thanks to my testers, the beneficent Blackhead and the fantastic neppi
Mod 1: Movement
This mod changes the sprite of ships as they change directions, no longer must you fly backwards as you turn your lasers 180* and shoot through your own hull to target enemy ships...
The magnificent innovation of steering is here!
This mod can be used on its own perfectly well, and was released some time in 2016, its just been updated slightly. On it's own it is just a graphics mod but it is really needed to get the most out of the evasion mod.
Mod 2: Wreckage
This mod causes ships to leave behind burnt out husks of colour coded cover (apart from Ryders) that has different stats depending on the ship that was destroyed (lifespan, hp, % to block, ext).
However because it is unstable cover, if it's destroyed by weapons fire... It explodes dealing damage. If it's not destroyed it will eventually collapse beyond any use (again the time depends on the ship that spawned it)
This obviously rewards aggressive, flexible play by providing cover for ryders to utilize if they can get close enough to the enemy ships.
Again, this mod can be used on its own perfectly well and was released alongside the movement mod in 2016 but adds an additional layer of strategy to the evasion mod.
Mod 3: Evasion.This is the big mod, it has a huge effect on battles but is entirely customisable and easy to adapt to anyone's personal play style. It is set up by default, to how I use it but in the Config file, there are 36 different options that can be changed to give it huge versatility. If you have an alternate setup then you can always post it on the boards for others to try.
Movement Matters
With this part of the mod enabled, moving gives you buffs to your evasion, whilst standing still or crowding your ships together reduces it. This can either be on a turn by turn basis or a distance traveled basis.
Mode 1: Hex mode
When you move you gain +1 stack of evasion buff per hex. You loose 25% of those at the start of your next turn and if you don't move at all, you gain an additional penalty of -2 stacks, by default it is capped at +20/-7 and +2% evasion per stack This means Cap Ships have the armor to only occasionally move but light ryders become more maneuverable and the movement helps offset the risk they take by being so close to enemy ships, Bombers and snipers sit back a bit more, but do need to occasionally move or they become more and more vulnerable.
Mode 2: Turn Mode
In this alternative mode, ships gain stacks of movement whenever they move in a turn, no matter how much they do so and gain a penalty if they don't (adjustable). It is simpler and easier but much less realistic.
In addition on both of these modes, entering cover removes any penalty to evasion (optional) and ships with adjacent ships gain an evasion debuff (optional)
Placement Matters
It stands to reason ships have greater armor on the front to the rear, this mod gives ships damage reduction dependent on where it originated. Ships in a 45* angle in front of the ship deal less damage to ships above/below/behind. the less head-on ships are, the more damage they will deal to their opponents. By maneuvering to attack enemy ships rear you can do significantly more damage (default max -9% damage to +25% damage). Using gravity guns to turn ships around could mean the difference of +~30% damage reduction or gain and life or death of a troublesome enemy.
Critical Hits
With this part of the mod, weapons apart from support/missile/rockets (can be enabled though) have a base 5% chance to critical hit, inflicting either bonus damage, destroying missiles/rockets in the ship and 5 other status effects. In addition, attacks with accuracy over 100 gain 1% chance to crit for every 5 accuracy above 100, letting them benefit from being either close or stacking accuracy buffs. All critical effects can be turned on or off and the size of the effect altered.
Critical Effects: Shields damaged Engines disabled Missiles detonated Rockets detonated Armor Sundered Bridge crippled Maneuverability reduced Critical damage
This is a very complex mod, so whilst it has been tested extensively there may be bugs, please do let me know if you find any.
|
|
|
Post by bigfoot on Sept 5, 2017 1:42:42 GMT -8
/facepalm tired coding is never a good idea. I wanted to make sure that ships didn't from the earlier storeships pull. I've just redefined storeships at init 20 as a blank now, and repopulate it. It's so much easier, but haven't had a chance to test it.
The reason I'm still using storeships rather than modifying the create_ship directly is it lets you target all ships defined, before creation and in a seperate rpy. It lets you add functions that trigger when a ship moves without referencing to the Battleship class which can cause linked attribute problems. It's mostly for mechanics mods.
By putting it only in the create_ship function then it makes it hard for other mods to access it without modifying create_ships, for example in the wreckage mod:
init 6 python: for ship in storeships: ship.death_funcs.append(("True",covermake)) ship.override_faction = None
adds it to every ship ever made (within init -1 to 4) making it easy to alter the gameplay without causing mod conflicts as your basically slotting in modules.
Whilst editing the create_ship func works in this case, storeships and storeweps do need to function correctly because when I was trying similar code on the Battleship class, all the ships were sharing the same lists causing absolute havoc.
Ideally when ships are defined they would add themselves into the storeships list, I've tried to do this with monkeypatching the .__init__ func before and including a recursive call back to the original init, but it's only read when the ships are made, which means ships would need to be instanced to add themselves and if they use variables that haven't been set on init (like saibotlieh's ships or drones) it breaks everything. It would be possible to use ship.load_variables to read from a global list and trigger each item but that is much more complicated to use than the simple storeships list and just feels like pointless work.
|
|
|
Post by bigfoot on Sept 4, 2017 17:21:24 GMT -8
Please do bring up anything you run into, the best work is collaborative work!
The storeships/storeweps is grandfathered in code from the old MoA framework and is bound to need a few tweaks, it was fine when building new weapons (5 init levels) but if your building new weapons on old weapons like that, I can see it getting pretty cramped.
I've put in a storeships check at init 20 now, so anything defined earlier will be picked up. Of course any time you use the storeships list should now be after 20 rather than 5, or it could cause problems. I'll update my mods and I don't think saibotlieh has used it so should be pretty safe to go live.
|
|
|
Post by bigfoot on Sept 4, 2017 16:52:02 GMT -8
If you want to overwrite labels, look into label hijacking
init python: config.label_overrides['original label'] = 'your label' This should be what your looking for!
|
|
|
Post by bigfoot on Sept 4, 2017 12:50:09 GMT -8
Bloody hell you work fast! Just started looking into the conflict and see you've already resolved it.
I assume it was a conflict in our AI_estimate_damage changes? Is there anything I can do on the tweakpack to improve compatibility?
|
|
|
Post by bigfoot on Sept 4, 2017 3:29:13 GMT -8
If its the sprite, try setting weapon.custom_fire = "sprite" for missiles, if the missiles are angled similarly in your sprite, they should just slot right in. init 21 python: for weapon in [weapon1, weapon2, weapon3]: weapon.custom_fire = "sprite"
should do it with the sprite, I haven't checked it as am at work atm though. Will add in autoplace for the next update if you don't mind me stealing your code Your right, it's so useful! From what I remember (its been a while) the entire classes.rpy is at -2 so we can use -1 and none of the default screens are actually in init blocks so they can be put in an init 2 block.
|
|
|
Post by bigfoot on Sept 3, 2017 16:09:59 GMT -8
Completely redone with 9 new features and some bug fixes.
|
|
|
Post by bigfoot on Sept 3, 2017 13:59:42 GMT -8
Looking forward to it!
If you want to overwrite something, renpy reads things in the order its defined by init blocks so just define it again in a later block
if it's defined at init 2 you can define it on init 3 onward and it just gets replaced
|
|
|
Post by bigfoot on Sept 2, 2017 9:21:46 GMT -8
I know its a bit late, but for anyone who wants the gallery unlocked, this is a much less painful way to do it than entering 250ish image names into the console manually! in notepad paste the following code, then save it as an all file type with the ending .rpy in the acadamy/game folder init python: config.developer = True def unlock_gallery(): for x in ["cg_soladance","cg_asaga_fall1","cg_asaga_fall2","cg_asaga_fall1h","cg_asaga_fall2h","cg_speech1","cg_speech2","cg_avapool1","cg_avapool2","cg_avapool3","cg_ava_fall1","cg_ava_fall2","cg_ava_fall3","cg_ava_h1_1","cg_ava_h1_2","cg_ava_h1_3","cg_avabeat","cg_ava_h2_1","cg_ava_h2_2","cg_ava_h2_3","cg_ava_h2_4","cg_ava_h2_5","cg_ava_h2_6","cg_avaschoolcg","cg_avalever","cg_avakiss1","cg_avakiss2","cg_avakiss3","cg_avakiss4","cg_avapaperwork1","cg_avapaperwork2","cg_avapaperwork3","cg_avapaperwork4","cg_avapaperwork5","cg_avapaperwork6","cg_avapaperwork7", "cg_avapaperwork1","cg_avapaperwork2","cg_avapaperwork3","cg_avapaperwork4","cg_avapaperwork5","cg_avapaperwork6","cg_ava_h3_2","cg_ava_h3_3","cg_ava_h3_4","cg_ava_h3_5","cg_ava_h3_6","cg_ava_h3_7","cg_ava_h3_1","cg_ava_h3_2","cg_ava_h3_3b","cg_ava_h3_4b","cg_ava_h3_5b","cg_ava_h3_6b","cg_ava_h3_7b","cg_avaend","cg_dinner1","cg_dinner2","cg_dinner3","cg_dinner4","cg_dinner5","cg_dinner6","cg_arcade1","cg_arcade2","cg_arcade3","cg_arcade4","cg_asaga_h1_1","cg_asaga_h1_2","cg_asaga_h1_3","cg_asaga_h1_4","cg_asaga_h1_5","cg_asaga_h2_1","cg_asaga_h2_1","cg_asaga_h2_2","cg_asaga_h2_3","cg_asaga_h2_4","cg_asaga_h3_1","cg_asaga_h3_2","cg_asaga_h3_3blood","cg_asaga_h3_4blood","cg_asaga_h3_5blood","cg_asaga_h3_6blood","cg_asaga_h3_1","cg_asaga_h3_2","cg_asaga_h3_3","cg_asaga_h3_4","cg_asaga_h3_5","cg_asaga_h3_6","cg_asaga_h4_1","cg_asaga_h4_1","cg_asaga_h4_2","cg_asaga_h4_3","cg_asaga_h4_4","cg_asaga_h4_5","cg_asaga_h4_6","cg_asaga_h4_7","cg_asaga_h4_8","cg_asaga_h4_9","cg_asaga_h4_10","cg_asaga_h4_11","cg_asaga_h4_12","cg_asaga_h4_13","cg_asaga_h4_14","asagawedding","cg_chigaratopgone1b","cg_chigaratopgone2b","cg_chigaratopgone3b","cg_chigaratopgone1","cg_chigaratopgone2","cg_chigaratopgone3","cg_chigarah1_1","cg_chigarah1_2","cg_chigarah1_3","cg_chigarah1_4","cg_chigarah1_5","cg_chigarah2_1","cg_chigarah2_2","cg_chigarah2_3","cg_chigarah2_4","cg_chigarah2_5","cg_chigarah2_6","cg_chigarah3_1","cg_chigarah3_2","cg_chigarah3_3","cg_chigarah3_4","cg_chigarah3_5","cg_chigarah3_1","cg_chigarah3_2b","cg_chigarah3_3b","cg_chigarah3_4b","cg_chigarah3_5b","cg_chigaratank1","cg_chigaratank2","cg_chigarah4_1","cg_chigarah4_2","cg_chigarah4_3","cg_chigarah4_4","cg_chigarah4_5","cg_chigarah4_6","cg_chigarah4_7","cg_chigarah4_8","cg_chigarah4_9","cg_chigarah4_1","cg_chigarah4_2","cg_chigarah4_3","cg_chigarah4_4b","cg_chigarah4_5b","cg_chigarah4_6b","cg_chigarah4_7b","cg_chigarah4_8b","cg_chigarah4_9b","cg_chigarabakery1","cg_chigarabakery2","cg_chigarabakery3","cg_solavanish1","cg_solavanish2","cg_solakiss1","cg_solakiss2","cg_solah1_1","cg_solah1_1","cg_solah1_2","cg_solah1_3","cg_solah1_4","cg_solah2_1","cg_solah2_2","cg_solah2_3","cg_solah2_4noblood","cg_solah2_5noblood","cg_solah2_6noblood","cg_solah2_1","cg_solah2_2","cg_solah2_3","solah2_4blood","cg_solah2_5blood","cg_solah2_6blood","cg_solah3_1","cg_solah3_2","cg_solah3_3","cg_solah3_4","cg_solah3_5","cg_solah3_6","cg_solah4_1","cg_solah4_2","cg_solah4_3","cg_solah4_4","cg_solah4_5","cg_solaend","bg classroom","bg classroom_distort","bg room_night","bg room_morning","bg room_day","bg apartment_front","bg apartmentfront_night","bg city_day","bg courtyard_day","bg courtyard_evening","bg courtyard_rain","bg hallway","bg hallway_zoom","bg hallway_evening","bg auditorium","bg auditorium_light","bg auditorium_dark","bg councilroom","bg councilroom_evening","bg councilroom_night","bg councilroom_dark","bg gym","bg gym_night","bg lab","bg lab_evening","bg pool","bg pool_evening","bg pool_day_empty","bg pool_night","bg divingboard_night","bg cafeteria","bg library","bg library_night","bg museum_day","bg museum_night","bg arcade","bg park_day","bg park_evening","bg park_nightrain","bg park_distort","bg shrine_day","bg shrine_evening","bg shrine_night","bg shrine_nightrain","bg city_day","bg city_night","bg spring_day","bg spring_evening","bg asagasroom","bg asagaroom_empty","bg storage","bg solaroom_day","bg solaroom_evening","bg solaroom_night","bg chamber","bg forest","bg ferriswheel_evening","bg alleyway","bg alleyway_zoom","bg skywalk_day","bg avaroom","bg avaroom_empty", ]: renpy.show(x) Then open up academy, start a game and open the Dev console by pressing shift + o Type in unlock_gallery() and press enter The game will lock up for perhaps two mins as its trying to display and register 251 images at once and that sort of terrifies it, but when it unlocks you will be treated to a heartwarming and romantic picture of Sola and the gallery will have fully unlocked (except for the first common route pic for some reason and the music) You can then delete the rpy and rpyc it creates but really its invisible anyway so doesn't matter much Nemjen might be useful to put on the steam thread? This was done on an unused steam version btw, should work with uncensored but if not let me know
|
|
|
Post by bigfoot on Sept 2, 2017 4:24:20 GMT -8
She can be good, depends how you build her. I would stack evasion, then assault, mostly kill an enemy ship and assault it for huge damage because of no armor left, stick her behind shields and a flak screen, then the entire enemy fleet goes berserk but can't hit her, sure there are other ways. That said the Icari supporters on this forum are near rabid so be careful Will think about battleframes...
|
|
|
Post by bigfoot on Sept 1, 2017 14:20:21 GMT -8
/facepalm, I misspelled the blackjack copy
The fix works but... That's not enough, we can do better!
init 4 python: Sunrider_Enemy.default_weapon_list = [] BlackJack_Ryuvian.default_weapon_list = [] Paladin_Ryuvian.default_weapon_list = [] Seraphim_Ryuvian.default_weapon_list = [] Phoenix_Ryuvian.default_weapon_list = [] Bianca_Ryuvian.default_weapon_list = [] Liberty_Ryuvian.default_weapon_list = [] def sidemissionfix(): for x in [Sunrider_Enemy, BlackJack_Ryuvian, Paladin_Ryuvian, Seraphim_Ryuvian, Phoenix_Ryuvian, Bianca_Ryuvian, Liberty_Ryuvian]: try: x.weapons = [] for ship in [sunrider, blackjack, liberty, seraphim, phoenix, paladin]: if ship != None: if ship.name == x().name: for weapon in ship.weapons: x.weapons.append(weapon.__class__()) except: pass return False talk_buttons.append(["sidemissionfix()",'','',''])
This checks the ship variables, looks at the weapons and if it's name matches then it updates the blueprint with the current ship's weapons, so if the blackjack gets the AP rounds then the enemy blackjack gets it as well. You could do the same thing with upgrades so they tech up research as well, but given the number of clones that are made that might be suicidal.
Thinking about it, the Sola mod actually uses it's own weapons for the ships but this was just too cool not to do.
The ships are updated every time you go to the ship map, the talk_button uses an eval string. As the function always returns False it never causes a button to appear. so it's basically invisible.
About asaga speaking, I think its to do with the length of the voice clips... There are some with long pauses and it could be causing them to chain? I've tried moving her around and I don't think she's repeating, if you go back and forth then she changes what she says
|
|
|
Post by bigfoot on Aug 31, 2017 16:01:42 GMT -8
Thanks for doing this, I haven't had as much time as I would have hoped to look at the mods and I'll make sure to update the bugs in the MoA port, I think I've tracked down the weapons problem in the Sola side mission mod but I can't test it atm as I'm away from my computer for a few days, I posted that on the sidemissions thread in the hope Saibotlieh sees it but you might be interested as well.
There is one thing I'll mention though, by overwriting the game files, if the game is ever updated the updates would be lost and only one mod of each file can be used at the same time.
In most of the files you altered it wouldn't make much difference but with Saibotlieh's mod if it's updated someone could then download the bugfix and actually rollback the mod which makes it hard to curate.
It would make a lot of sense if you created a separate bug fix rpy and overrode parts of other files by redoing them at a higher init, or pointed out the bugs and the fix to someone who could add it to the mod themselves.
In this case you could do:
init 4 python: Sunrider_Enemy.default_weapon_list = [weapon1(),weapon2()] Blackjack_Ryuvian.default_weapon_list = [whathaveyou] Paladin_Ryuvian.default_weapon_list = [weapon1(),weapon2()
Rather than overwright the entire mod.
The Autoplace is only enabled when developer mode is enabled (Though I do quite like the fix to that, even if it shouldn't really be seen by most people)
I'm really looking forward to seeing what you make in your mod and will try and get some work done on the tutorial I'm writing, there are a few enhancements to base code that will be useful in modding that I'll publish at the same time (Printout of ship locations for planning battles and such)
|
|
|
Post by bigfoot on Aug 31, 2017 15:39:13 GMT -8
I had a quick look at the sola mission, I haven't had a chance to test it yet but if you look at the clone ships, their defined off the existing ships.
With the Paladin, Blackjack and Sunrider, the weapons are imported directly, so they are using the actual item but on the other ships, the weapons are defined explicitly in a list. Because of the way Python handles variables when pointing to objects, the weapons on the clones *are* the weapons on the ships rather than other instances of them.
I suspect that means they are checking the last ship that used them for the reference to upgrades which are stored on the ship that's updated. You could test-fix it by changing the default_weapon_list to call the weapons base class rather than = shipname_weapons
I don't know why the full forward command is malfunctioning, do you know what mission it starts on?
|
|
|
Post by bigfoot on Aug 31, 2017 10:43:11 GMT -8
Could you send me a copy of the save so I can have a look at it?
|
|
|
Post by bigfoot on Aug 23, 2017 13:09:31 GMT -8
|
|