Wednesday, 1 November 2017

Newlife 0.4.13

Hello everyone!

Newlife 0.4.13 has been released. Early-access Patrons can find it in the creations section here. The changelog is below.

The previous version is now public. You can download it using the links on the right-hand side of the blog. The public version's changelog is here.

As usual, saved files & templates from older versions probably won't work with newer ones. 

For new players - just use one of the links to the right to get a zipfile containing Newlife. Once unzipped, you'll see a folder containing .jar and .exe files. Either one of these will run the game. 

For either version you'll need to have Java installed. A lot of programs use Java so you might well already have it. If the jar shows up as an unrecognised file type, then you probably don't. In that case you can get it from http://www.java.com/
The exe should tell you if you don't have the right version on your computer, but you'll still need to install java to run the game.
There's a guide for new players here which includes some troubleshooting tips for installation & downloading.

This is the first of two PMW releases. There were two joint winners for the vote and I've had some issues with work this month due to an injury so I decided to just have 2 separate releases instead of trying to get it all into one.

This one is focused on manipulative content for the cunning trait. The largest chunk of new content is probably the lowlife changes: choose "throw her under the bus" to access this path. The next release will implement the other PMW winner, which was content related to a jerk friend of the PC's boyfriend.

This release also marks the first user-written scene to be included into Newlife - great timing considering I'd been having a bad month until Rigel swooped in to save the day!

Changelog:
Major changes & additions:
  • Added new content based around the cunning trait. Some of this is not available for Nice characters. This includes:
    • Cheating at the card game
    • Convincing your innocent friend to get involved with the lowlives.
    • Getting the innocent colleague to sort out the boss' problem during a presentation at work (innocent NPCs really are getting the short end of the stick in this release)
    • Cheating at the partner dance contest. Some of the existing solo cheating options are also now available for non-bitchy cunning characters but players still need the bitchy trait to access the crueller paths.
    • Accessing the “helping an impregnator” friendship event. I'm not convinced this shockingly evil scheme makes much sense for a non-evil character but I've had a lot of requests to slacken the requirements and it is relevant for cunning characters.
  • Included a new scene that was written by Rigel. In this scene you run into the lowlives again when on a day out with your friend. Anyone interested in Velocity should definitely check out Rigel's work. Their skill with Velocity certainly exceeds mine so we can all learn from them!
Minor changes & bugfixes:
  • Fixes to text issues. Thanks to Death25, OrangeJuice, Megh, Pgiac6 and Thomas123 for reporting some of these.
  • Fixed an error reported by Antage in the blackmail scene when you use the “friends don't blackmail” action.
  • Fixed a bug where “addFlag” was being called instead of “hasFlag” in one of the blackmail scene conditions.
  • The cunning trait now gives +10 to starting charm.
  • As requested by FutureSight, the “shop for your flat” action now shows your money when the scene starts and in the describe-scene text and window-shopping action.
  • Modified NPC preference scoring so that impregnators should be better disposed towards the “have 3 kids” vow request unless they don't like children.
  • Added a new male orgasm text for the first time you sleep with your boss, as long as it's in the missionary position and without a condom.
  • The game will now generate 4 lowlives, as there's a chance that the new path can block one from being available for the befriending scene so there needs to be a replacement. The scene itself still only uses 3, chosen randomly from the available ones.
Changes for user-submitted content:
  • Yaml files can now include an optional characterDescriptionTextId entry to override the default character descriptions: see the yml syntax guide for details. If you want to use the default functionality then you should leave this entry out completely.
  • The haveOrgasm method is now also available for male NPCs: you can thank Rigel for pointing out this omission in their scene submission.


.
Enjoy the new version, and let me know if you find any bugs! 


23 comments:

  1. Hmm, Blogger says this is November, but it's 2:20am on the first so I'm going to put it down as October 31st in the official date I store in the changelog. The day doesn't end until I go to sleep!

    ReplyDelete
  2. I'm having trouble getting the lowlife scene to activate, in addition to befriending an innocent character is there anything else I need to do?

    ReplyDelete
    Replies
    1. Do you mean Rigel's scene or the lowlife section of the befriending scene?

      The latter counts as the befriending challenge for that npc type, so it'll show up during the befriend action as long as her liking for you isn't at the highest level.

      Rigel's scene's requirements are listed in the yml file. Most significantly, the innocent NPC must not be a virgin.

      Delete
  3. Got a bug with the blackmail scene when I got to the sex with blackmailer after humiliating boyfriend:

    ERROR in scene z.b when using action "Sleep with Sullivan".
    Please report this to the developer as a bug including the text of the message below. The scene will now finish.
    Exception was: org.apache.velocity.exception.MethodInvocationException: Object 'uk.co.blogspot.splendidostrich.newlifegame.scene.custom.contextobject.ContextMaleNpc' does not contain method addArousaSmall() at mockingDoormatJerkMakeout[line 113, column 45]
    org.apache.velocity.util.ClassUtils.getMethod(ClassUtils.java:232)
    org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:158)
    org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
    org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
    org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
    org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
    org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
    org.apache.velocity.runtime.parser.node.ASTElseIfStatement.render(ASTElseIfStatement.java:92)
    org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
    org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
    org.apache.velocity.runtime.RuntimeInstance.render(RuntimeInstance.java:1378)
    org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1314)
    org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1265)
    org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:199)
    z.b.a(CustomScene.java:490)
    z.b.a(CustomScene.java:434)
    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)

    ReplyDelete
  4. Any chance at publishing this as an apk? I'd love to be able to have it on my phone and jbed doesn't work with newer Android versions

    ReplyDelete
    Replies
    1. AFAIK android versions of Java don't support Swing, so Newlife can't work on android devices unless the UI were to be completely replaced.

      Delete
  5. I saw some info here but don't know enough about Java to really understand it. Pasting a link in case it helps, otherwise I'll just have to be really bored on the train each day til I get home. https://stackoverflow.com/questions/5206120/how-to-convert-a-java-swing-application-to-work-on-android

    ReplyDelete
    Replies
    1. This is still talking about replacing the UI with an android-specific version. I do want to switch over to a more effective UI at some point at which point I'll revisit it - probably JavaFX. This isn't really consistent with my minimum 1 content-update/month requirement though: it took over a month for me to write the original Swing UI in 2014. If/when I get to a point where I can comission work from writers it might be more realistic.

      Delete
  6. Is it intended that you can't repeatedly confess cheating to a LIKES TO SHARE boyfriend? Or can it be changed to be repeatable? I really like the dialogue and ensuing sexy times

    ReplyDelete
    Replies
    1. Yes. The confession scene isn't really suited for when she knows he's LTS. At some point there should be a separate scene or series of scenes where she tells him about what she's done, not in a "confession" way but as a sort of sex talk.

      Delete
  7. SO, could you describe what are the conditions for a NPC to appear in:
    1) random event with lost phone
    2) mugger event as rescuer

    I'd really appreciate your answer - Thanks!

    ReplyDelete
    Replies
    1. Any male npc can show up in the lost phone event aside from special NPCs that are specifically restricted to their own event chains.

      The rescuer has to live in the same neighborhood as you - a bit of a placeholder for the neighborhoods update. Right now there's a 20% chance for non-special NPCs to live nearby.

      Delete
  8. Couple of things, ideas really, I'm full of them. 1. Will there eventually be other occupations other than sales? 2. I noticed the answer above about the android to sluttycricket, will there ever be an android version? 3. Will there eventually be a possibility to move out of the neighborhood slum you're in to start into a better home?

    Just curious really... Plus, I'm a rather decent writer myself, however, I do not know anything about programming. If you want some ideas or a bit of help, I'd be willing to toss a few ideas your way. Love this game. Think I've already logged more than 1000 hours on it.

    ReplyDelete
    Replies
    1. Hi,

      1. Yes, once it gets voted in for a major release. I anticipate at least 3 career paths in the finished version (waitress/cook/restaurant manager, saleswoman/sales manager, office worker/PA/manager)

      2. "Will there ever" is difficult wording to answer with anything other than "maybe". This won't be something to consider until the Swing UI has been replaced (which I want to do to fix some resolution issues), but then it'll depend on how the replacement works on android. A quick google indicates that javaFX is more portable than Swing, but I can't make any hard guarantees.

      3. Yes, with the home & neighborhoods update. Again, this is based on voting. Neither work nor neighborhoods came in the top 3 last vote so I doubt they'll be soon though: last vote was relationships/improved pregnancy/lesbians so unless the voters opinions change anything else is quite a way off.

      If you want to write for Newlife then that'd be great, although I'm not looking for paid commissions just yet. You could look on the discord for a coder to team up with. One reason for the yml/vm split for custom scenes is that it allows different people to handle each file - either by a writer submitting a vm file or a coder setting up the yml one and asking for a writer to fill in stub sections in the vm.

      The vm contains the text and should mostly be quite straightforward. The recent example by Rigel (in the 0.4.13 release) has some advanced things like macros in the vm, but that certainly isn't essential. principally you'd just need to figure out how to do if-elseif-else-end structures and access the variables you need to check for those conditionals.

      Delete
  9. This comment has been removed by the author.

    ReplyDelete
  10. Fantastic game. I’ve logged a ridiculous number of hours on it.

    Just so you know, I’ve been encountering what I assume is a bug occurring during the card game at the party. Several times I pick a card, but it doesn’t alter my total at all. I think it only occurs when I choose a face card, but I’m not positive about that.

    Hardly a game-breaking bug, but I assumed you’d want to know.

    Again, fantastic game! So very well done.

    ReplyDelete
    Replies
    1. Hi! Glad you're enjoying it :)

      Did you have an ace in your hand? An ace can count as either 1 or 11 - the game will automatically use whichever is best.

      For example if you had an ace and a 5 then your score would be 11+5=16. If you then drew a face card your score could be 26 but that would make you bust. Instead the ace gets counted as 1 so your score is then 1+5+10 which gives you the same total of 16.

      Delete
    2. Aces are still being counted as 1’s or 11’s. When it happens, there’s no change in the score. It doesn’t happen everytime, but when it does, I’m pretty sure it’s when a face card (jack/queen/king) is selected.

      Delete
    3. It happened earlier tonight. The card drawn was a jack (clubs, I believe).

      Delete
    4. Twice more tonight. Jack of diamonds drawn the first time and queen of spades the second time.

      Delete
  11. This comment has been removed by the author.

    ReplyDelete
  12. Idea:

    I just got the text for when another girl is giving you oral pleasure at the party: "You see Juno take surreptitious picture with his phone, but at this point you're too far gone to protest".

    That got me thinking about blackmailing: For any party that your boyfriend isn't attending, any one of the jerk NPC's could threaten to rat out your behavior at the party to your BF.

    ReplyDelete