Newlife 0.6.12
Added 2021-03-01 07:02:10 +0000 UTCHi all,
So, here's the first version of 0.6.12.
There was a lot I wanted to touch on this release, but in the end pretty much all my work ended up on the new office party scene and I ended up very squeezed for time at the end of the month.
Unfortunately, the scene desperately needs more testing. It's now 7am though, and I'm getting tired to the point where I don't trust myself to effectively find and fix bugs.
As such, I'm releasing the update but I will be shocked if there aren't multiple serious bugs left and you can expect a bugfix update in the next day or two.
Now, that's not to say that the office party isn't a good scene. It's certainly a big one, as I suppose I should have expected for a multi-path scene with 5 npcs. By the quick-and-dirty measure of line count, it's around 25% bigger than spitroast. Perhaps I should have kept it for a 31-day month!
I especially like some of the writing around the PC and her rival and beyond the inevitable bug reports I'd be interested to hear what fans of F-F content think of the steamier routes. With lesbian content up for a vote soon, it might be valuable to know what people feel about how I've been handling that sort of thing.
My plans for March are:
- Bugfix release of the office party.
- Hopefully a shorter release to do finishing touches on office content as well as some changes that people asked for but I didn't have time to look into for 0.6.12. This will probably be the last release for this major update, so it'll be version 0.7.0. There's obviously more work stuff that could be added, but I want to move on and address something new after this.
- Major update vote to decide what'll be in the 0.7.x updates.
- More work on Game-Two which had once again rather stalled out in February. I have some artists beavering away and I want the code & writing to keep pace with them. The game is still many months away from a proper reveal though.
Enjoy the new version, and please let me know about any bugs you find!
EDIT: The file has been updated with the bugfix version 0.6.12b.
Changelog:
Major changes & additions:
Added an office party event. Some paths require a sleazy boss.
Minor changes:
Added some alternative lines for when your husband refuses to wear a condom on your wedding night, as the standard text felt a bit out of place there.
Added some more detail to the dating app's description of the man, as requested by Brobort.
Bugfixes:
Fixes to text issues. Thanks to Sync, Aetherial and AnarChYsT for reporting some of these.
Comments
The JVM option fixed it, thank you very much!
Marc
2021-03-20 20:23:52 +0000 UTCHi, Rigel's left a comment on the discord that I think explains this. They've given a workaround, and I'll be looking into a proper solution as well of course. Rigel's comment: PSA for anyone using the freshly released Java 16 (or any future version): You have to run Newlife with the JVM option --illegal-access=permit, otherwise you won't be able to load saved games. The full CLI command needs look like this: java --illegal-access=permit -jar Newlife.jar
Splendid Ostrich
2021-03-19 13:58:38 +0000 UTCThanks, any chance I could get a copy of the offending save file?
Splendid Ostrich
2021-03-19 05:54:17 +0000 UTCYes on both counts.
Marc
2021-03-18 21:42:39 +0000 UTCHi! I'm not entirely sure what could be causing that. Are you using the latest bugfix version (6.12c) with a save made in that same version?
Splendid Ostrich
2021-03-18 14:10:26 +0000 UTCLoving a lot in the release, but get the following stack when I try to load a save: Exception in thread "AWT-EventQueue-0" java.lang.IllegalAccessError: class i.kConstructorAccess tried to access protected method 'void i.k.()' (i.kConstructorAccess is in unnamed module of loader com.esotericsoftware.reflectasm.AccessClassLoader @1ce9ff1e; i.k is in unnamed module of loader 'app') at i.kConstructorAccess.newInstance(Unknown Source) at com.esotericsoftware.kryo.Kryo$DefaultInstantiatorStrategy$1.newInstance(Kryo.java:1193) at com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:1061) at com.esotericsoftware.kryo.serializers.FieldSerializer.create(FieldSerializer.java:547) at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:523) at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:679) at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:106) at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528) at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761) at com.esotericsoftware.kryo.serializers.CollectionSerializer.read(CollectionSerializer.java:116) at com.esotericsoftware.kryo.serializers.CollectionSerializer.read(CollectionSerializer.java:22) at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761) at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:143) at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:21) at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:679) at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:106) at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528) at com.esotericsoftware.kryo.Kryo.readObjectOrNull(Kryo.java:730) at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:113) at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528) at com.esotericsoftware.kryo.Kryo.readObjectOrNull(Kryo.java:730) at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:113) at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528) at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:657) at l.f$9.actionPerformed(MainMenuUI.java:516) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6617) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6382) at java.desktop/java.awt.Container.processEvent(Container.java:2264) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4993) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2322) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4934) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4563) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4504) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2308) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Marc
2021-03-18 00:12:11 +0000 UTCGlad you like the change, thanks for letting me know!
Splendid Ostrich
2021-03-03 06:41:04 +0000 UTCJust wanted to say, thanks for the change to the dating app scene! It's way easier to make a decision whether to go or ignore them now with the extra info.
BRobort
2021-03-02 16:11:17 +0000 UTCAll looks good in the bug fix, for now atleast. I'll be sure to keep an eye out and report it.
keenam
2021-03-02 05:16:20 +0000 UTCHi, do you have an error message to share? I'll be putting out a bugfix version very soon with a lot of fixes so hopefully it'll be sorted by one of those.
Splendid Ostrich
2021-03-02 04:56:13 +0000 UTCThanks, I think I've got that fixed for the bugfix version
Splendid Ostrich
2021-03-02 04:55:06 +0000 UTCThanks, I'll update the threesome scene to inform the guy in front that you're no longer a virgin at the appropriate point
Splendid Ostrich
2021-03-02 04:53:15 +0000 UTCERROR in scene V.g when using action "Do it". Please report this to the developer as a bug including the text of the message below. The scene will now finish. Exception was: java.lang.NullPointerException: null V.g.a(OfficePartyScene.java:1437) V.g.a(OfficePartyScene.java:493) l.l.actionPerformed(ScenePanel.java:357) javax.swing.AbstractButton.fireActionPerformed(Unknown Source) javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) javax.swing.DefaultButtonModel.setPressed(Unknown Source) javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) java.awt.Component.processMouseEvent(Unknown Source) javax.swing.JComponent.processMouseEvent(Unknown Source) java.awt.Component.processEvent(Unknown Source) java.awt.Container.processEvent(Unknown Source) java.awt.Component.dispatchEventImpl(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Window.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.EventQueue.dispatchEventImpl(Unknown Source) java.awt.EventQueue.access$500(Unknown Source) java.awt.EventQueue$3.run(Unknown Source) java.awt.EventQueue$3.run(Unknown Source) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) java.awt.EventQueue$4.run(Unknown Source) java.awt.EventQueue$4.run(Unknown Source) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) java.awt.EventQueue.dispatchEvent(Unknown Source) java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.run(Unknown Source
JulianR.Amazing
2021-03-02 04:38:03 +0000 UTCThanks! Looks like there was a line there that wasn't checking for a null rival which can happen if you get the party event before meeting her.
Splendid Ostrich
2021-03-01 20:01:17 +0000 UTCNot sure if it got seen on the last post since it was late in the cycle, but I found some odd behavior in the Threesome scene: Threesome scene has a bug where its not keeping track of virginity. In my game, my character ended up with a doormat boyfriend. I told the character that I was a virgin, and that I was going to save myself for marriage. Later on down the line, I had my doormat boy friend agree to have a threesome with another guy. My character was still a virgin at this time, and the other man obviously ended up taking my character's virginity. The scene didn't mention losing my virginity at all. Then later, in a regular sex scene with my boyfriend, he still thinks I'm a virgin, and still thinks I'm saving myself for marriage. At this point, he should obviously know that both of these aren't true.
Sentenal
2021-03-01 18:48:12 +0000 UTCWhen trying to strip at the party Exception was: java.lang.NullPointerException: null V.g.a(OfficePartyScene.java:1436) V.g.a(OfficePartyScene.java:493) l.l.actionPerformed(ScenePanel.java:357) javax.swing.AbstractButton.fireActionPerformed(Unknown Source) javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) javax.swing.DefaultButtonModel.setPressed(Unknown Source) javax.swing.AbstractButton.doClick(Unknown Source) javax.swing.AbstractButton.doClick(Unknown Source) l.l$1.actionPerformed(ScenePanel.java:84) javax.swing.SwingUtilities.notifyAction(Unknown Source) javax.swing.JComponent.processKeyBinding(Unknown Source) javax.swing.KeyboardManager.fireBinding(Unknown Source) javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source) javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source) javax.swing.JComponent.processKeyBindings(Unknown Source) javax.swing.JComponent.processKeyEvent(Unknown Source) java.awt.Component.processEvent(Unknown Source) java.awt.Container.processEvent(Unknown Source) java.awt.Component.dispatchEventImpl(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source) java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source) java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source) java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source) java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source) java.awt.Component.dispatchEventImpl(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Window.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.EventQueue.dispatchEventImpl(Unknown Source) java.awt.EventQueue.access$500(Unknown Source) java.awt.EventQueue$3.run(Unknown Source) java.awt.EventQueue$3.run(Unknown Source) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) java.awt.EventQueue$4.run(Unknown Source) java.awt.EventQueue$4.run(Unknown Source) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) java.awt.EventQueue.dispatchEvent(Unknown Source) java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.run(Unknown Source)
Drgong
2021-03-01 16:13:12 +0000 UTCYep, found a bug for the office party. It involve a ending with a non-sleazy boss, and I could guess that this began with the boss if you pick 'flirt' when a promotion option was given. Happy to report it in!
keenam
2021-03-01 08:32:37 +0000 UTC