Messorem Project: The Xeno Hive

Re: Messorem Project: The Xeno Hive

Postby Messorem » Wed Nov 12, 2014 3:07 am

Alright, here it is! Hope you enjoy it. :D
(Use inform to open it to avoid any confusions)
Attachments
Full xeno expansion file..rar
(69.8 KiB) Downloaded 186 times
Messorem
 
Posts: 34
Joined: Thu Oct 23, 2014 2:30 am

Re: Messorem Project: The Xeno Hive

Postby Messorem » Fri Nov 14, 2014 2:18 am

Starting to worry here if it is acceptable. :?
Messorem
 
Posts: 34
Joined: Thu Oct 23, 2014 2:30 am

Re: Messorem Project: The Xeno Hive

Postby TigerStripes » Fri Nov 14, 2014 4:07 am

Messorem wrote:Starting to worry here if it is acceptable. :?

Nothing like that. Just haven't had a chance to go over it yet.
User avatar
TigerStripes
 
Posts: 593
Joined: Mon Dec 09, 2013 4:39 pm

Re: Messorem Project: The Xeno Hive

Postby Messorem » Sun Nov 16, 2014 4:28 am

Just wondering but on a list of things numbered 1-1000, where would going over the file be?
Messorem
 
Posts: 34
Joined: Thu Oct 23, 2014 2:30 am

Re: Messorem Project: The Xeno Hive

Postby TigerStripes » Sun Nov 16, 2014 7:31 am

Messorem wrote:Just wondering but on a list of things numbered 1-1000, where would going over the file be?

At this point, it's beyond #1 on the list as I'm actually starting to go through it now... though from the sounds upstairs, I expect RL delays too. Brunch and afternoon plans are in the works, but I'll try to give at least partial feedback by the end of the day. Also, if any of the other devs can help with feedback, that'd be appreciated.

EDIT: Oh, also - since you've included everything lumped into one file, is the updated stuff you've done to the Xeno file in there as well? I'd like to look that over as well for functionality.
User avatar
TigerStripes
 
Posts: 593
Joined: Mon Dec 09, 2013 4:39 pm

Re: Messorem Project: The Xeno Hive

Postby Messorem » Sun Nov 16, 2014 10:59 am

Yes the xeno stuff that i have updated is in there as well.
Messorem
 
Posts: 34
Joined: Thu Oct 23, 2014 2:30 am

Re: Messorem Project: The Xeno Hive

Postby TigerStripes » Sun Nov 16, 2014 11:01 am

Here's some preliminary notes on stuff I've found scattered throughout. One overall thing though. I thought you'd said you were writing this in Inform7, but it doesn't look to me like this would compile. Have you run any test compiles yet?

Section 0:
The everyturn rule:
- There's a couple of issues here with points you should be aware of.
1> Firstly and foremost, an 'everyturn rule' only comes into effect every FS three-hour turn period, not after every action. Since infectious items and the like don't cause time to pass, nor does walking from one room to the next, this means your rule likely won't trigger without being more aggressive in checking. I'll need to ponder the issue and confer with Nuku to find a more effective solution that also won't bog down the game with unnecessary checks after every single possible action.
2> Your check here is broken down into subsections, but they both all check on the player's location and face infection. I'm assuming you really meant to check on all their infection areas. It would be more efficient to first check on the player's location and then do a check on the player's infection.
3> There already exists a 'Throne Room' room in the game, located in the Bouncy Castle. You'll need to choose a new location name. How about 'The Royal Chambers' or something of the like?
4> 'set sanity to 0' is not the proper variable. You should instead use 'now humanity of player is 0'.
5> Also, it'd be best to rename the 'gotcaught' to something a little more unique, shown as 'xenogotcaught' below. Using more a contextualized name helps prevent accidental duplication.
6> I've reworked it to function better and to prevent some other potential issues with ending the game prematurely. Next time, I recommend you check one of the various special game over situations to see how it was done.
Code: Select all
if location of player is ( Hive Entrance or Hive Corridors or Nursery or Western Royalty Room or Eastern Royalty Room or Leisure Room or Throne Room ):
   if bodyname of player is not "Xeno" or the player is not pure:
      say "[xenogotcaught]";
      now humanity of player is 0;
      now battleground is "void";
      now skipturnblocker is 1;
      wait for any key;
      end the story saying "Mistaken for an intruder or slave, you are captured by the Xeno Hive and converted into one of its many permanent playthings.";
      stop the action;


As you can see, this is both more compact and also pre-screens on location before performing the slightly longer task of doing the text-based infection comparisons. It also now checks to see if the player qualifies as 'pure', an adjective term created for just such occasions. A player is deemed 'pure', if all other infection area names match that of the body. As mentioned, a better solution is needed for the implementation than an everyturn rule, but that'll require some investigation.

The 'gotcaught' scene:
- I noticed some typos/grammar errors and other minor things to be cleaned up in a later pass, but the one point that stands out is the continued reuse of "xenos". You should include a few other terms to avoid excessive repetition in writing. Suggestions include: the creatures, the monsters, the horde, those black beasts, etc. as well as plain old 'they/them'. Nothing that sounds too forced, but enough to keep the same term from being repeated too often.

The post-victory gender/form transition:
- Feats are recorded just as a string of text in a list. As such, any check on them needs to be an exact text match, including upper and lower case. You have "SINGLE Sexed' with the first half in all caps. This will not return a match, as it should be "Single Sexed".

Section 1:
1> I'm still not 100% sure on the stats for the equipment, but we'll leave it be for now.
2> I don't know if you can fill in tables like that. Did you see that somewhere in the Inform guide or some other code, or are you only doing it that way to show your plans?
3> While setting the attributes for the 'hunter mask', you left the last line as 'combat helmet'.
4> While setting the attributes for the 'hunter gauntlet', you put left 'whip' in the before last line and left the last line as 'dirty whip'.
5> The 'weapon' setting for the gauntlet should be phrased as: "the/your shifting gauntlet" instead of being "a shifting gauntlet".
6> I'd prefer if the gauntlet only went up to the player's forearm or elbow. Partly so it's more a gauntlet weapon than armour, but also so it's not quite so 90's. :)

Section 2:
1> The Hive Scenic View should contain some warning, either clearly in its description text or as an out of game warning, that approaching the hive without being 100% Xeno would probably be a very bad idea.
2> Keep in mind that the air around the Capitol Bldg is heavy with smoke, soot and ash, so take that into account when describing the air of dark foreboding around the place.
3> The Hive Entrance description starts with "As you get closer to the building it seems..." Keep in mind that the player will also be seeing this when leaving the hive as well as seeing it on multiple revisits. It should either have a special 'first time visit' description or one more suited to the player's coming and going.

Section 3:
1> When setting up the 'Xeno Hunt' event, you call it 'xone hunt' on the second line. There is also no ending period on that command line.
2> To set a level restriction on an event, simply include "the level of Xeno Hunt is 23". This will prevent players of less than level 23 - 3 (so 20) from encountering the event. The reason this is 23 and not 20, is you'd normally put the creature's level there, so players a few levels under might still encounter an event as they're approaching it's level.
3> To prompt a specific fight, you need:
Code: Select all
challenge "Xeno";

As with all text checks, this is case sensitive.
4> The win/loss should be handled by using the 'fightoutcome' variable. To see more on its usage, check this guide.
5> Sequential fights need to grow into increasing levels of indentation to function properly. Built the way you have it, a losing player would see the losing scene repeated over and over again.
6> Setting an event to be 'resolved' does not automatically end the event and exit out of it. It is an attribute set on the event that prevents it from being found during exploration/hunting. It does not directly control the flow of the event. I suspect this is why you had a problem with 5, thinking it'd end itself at that point, but that does not occur.
7> Again, 'huntcount' should be renamed as a 'xenohuntcount' or something of the like to reduce the risk of accidental duplication of variables now or in the future.
8> The indentation levels of your content in the latter half of the event seem to be out of whack. Again, this'll change and can be better resolved once points 4 & 5 are fixed.

Section 4:
...more to come...
User avatar
TigerStripes
 
Posts: 593
Joined: Mon Dec 09, 2013 4:39 pm

Re: Messorem Project: The Xeno Hive

Postby Messorem » Sun Nov 16, 2014 11:39 am

*I downloaded the latest inform that was provided to me by the website, i'll just download the correct version then.
*I am a beginner at this after all, so most code is built upon other templates and files. I also forgot to change things like "combat helmet" and "whip" from other files to the appropriate texts.
*I'll use other descriptive terms in the future.
*The caps half is in cause of the copied code that you help me with.
*I looked at the examples that i saw and built the stats to be so that the wearer would be really hard to beat.
*The table filling part is mostly for planning.
*I'm also not such a fan of heavy nineties content, the gauntlet will be changed.
*As for any descriptive parts of the rooms and their names, I did write them in a bit of a rush but they will be polished a bit later.
*The event will also be polished in the future, do you think that imitating the event in the toy store with the latex foxes will be a good thing to do with this event?

Thanks for the guide and the feedback as well, this is gonna help a lot if i'm going to continue writing things for FS.
Messorem
 
Posts: 34
Joined: Thu Oct 23, 2014 2:30 am

Re: Messorem Project: The Xeno Hive

Postby TigerStripes » Wed Nov 19, 2014 3:58 pm

Messorem wrote:*I downloaded the latest inform that was provided to me by the website, i'll just download the correct version then.
*I am a beginner at this after all, so most code is built upon other templates and files. I also forgot to change things like "combat helmet" and "whip" from other files to the appropriate texts.
*I'll use other descriptive terms in the future.
*The caps half is in cause of the copied code that you help me with.
*I looked at the examples that i saw and built the stats to be so that the wearer would be really hard to beat.
*The table filling part is mostly for planning.
*I'm also not such a fan of heavy nineties content, the gauntlet will be changed.
*As for any descriptive parts of the rooms and their names, I did write them in a bit of a rush but they will be polished a bit later.
*The event will also be polished in the future, do you think that imitating the event in the toy store with the latex foxes will be a good thing to do with this event?

Thanks for the guide and the feedback as well, this is gonna help a lot if i'm going to continue writing things for FS.

You're probably using the correct version of Inform, but my guess is you haven't actually downloaded the content for FS into which your new stuff will be inserted. To do this:
- Go to the Code Repository
- On the right hand side, you'll see a button for 'download ZIP'. Save that.
- Go into Inform and create a new project entitled 'Flexible Survival'.
- Close Inform.
- Go to the directory for the created project and unzip the downloaded content file into its 'source' folder.
- Copy the 'story.ni' file from the 'Inform' directory into the 'source' folder as well. This is the one downloaded from the Code Repository and not the one you've been working on.
- Reopen Inform. You should now have the body of the story.ni file appearing in the left hand portion of the program.
- Click on the 'Go!' button (and watch it fail).
- If the program won't run (most likely the case), you'll most likely need to install the various extensions. This will be a tedious procedure. Choose 'File', 'Install Extension...'. A directory window will pop up. Go to the 'source' directory and then go into the first sub-folder. Using Shift-Select or boxing them all with the mouse, select all files from the directory and choose 'Open'. Wait a few moments for the process to complete itself.
- Repeat the above process for each and every sub-folder one by one. Please note, there'll be a pause of a few seconds while each is being done before you can proceed to the next.
- Once all of them are done and the last pause period is completed, try compiling the game again by clicking 'Go!'
- If it successfully completes the compile, you should eventually (after maybe several minutes) have a test version of the game appear in one of the two panels. This will be the current version of the game without your new content.

To add your addition:
WARNING: Given the extent of recoding required, it won't compile until fixed. so be aware.
- Take the file you've been working on and rename it to: "Xeno Hive.i7x"
- Add "Version 1 of Xeno Hive by Messorem begins here." to the very top of the file.
- Add "Xeno Hive ends here." to the very bottom of the file.
- Go to the 'source' directory for your local copy of FS and create the 'Messorem' sub-folder.
- Place the 'Xeno Hive.i7x' file in your folder.
- Add the line "Include Xeno Hive by Messorem." to the story.ni file for Flexible Survival. You will place it in the NPC subsection of the extensions list. To find that, search for "[NPCs]" and include that line at the bottom of that section.
- Install the new extension, as above, by going 'File', 'Install Extension...' and then selecting the new extension from your folder.
- Select 'Go!' to attempt to compile. It'll fail due to all the bugs, but now you've got your file in and can begin trying to deal with all the bugs.

As for the other points, there's just a few things to mention:
- I know you were using other material as a template for building your stuff and that's fine. I was just pointing out spots you'd missed changing over.
- The code I'd provided for changing the player and updating the Xeno's stats didn't originally contain 'Single' in all caps. You must've accidentally added that. Just be aware that the capitalization has to match for most text checks in FS, such as checking feats and infection names.
- The 'Toy Store' event is a really poor one to use as your template, as it uses older architecture that is more prone to bugs and doesn't properly account for fleeing. A better example would be the 'Captured Bird' event at the top of the 'Athanasia.i7x' file in my directory.

And now to continue on:
Section 4:
- For formatting, displayed text paragraphs should start with 5 spaces to indent the first line of text. This makes for smoother reading, especially when the scenes are multiple paragraph's long.
- The indentation right at the start of 'losetoXenoQueen' is thrown off and continues to show trouble. Thing of each tab as a different level or stage. Whenever you enter a command line that ends in a colon (:) , such as an if statement, while loop or repeat loop, all of the content running within that process is indented up one level. In the case of if statements, they can be further staggered through use of 'otherwise if', 'otherwise' or 'else' sections, but these are at the same level as the original 'if' that started that section. For example:

Code: Select all
to say cheesemonkey:
   say "Something smells funky.  You look around for a cheesemonkey.  ";
   if chmky > 0:   [1st if statement level]
      say "You find the smelly bastard.  It's a ";
      if chmky is 1:   [2nd if statement level]
         say "Swiss bonobo - you can tell from the holes in his ears.";
      otherwise if chmky is 2:   [still 2nd if statement level - otherwise if]
         say "Cheddar capuchin - you can tell from the orange colour.";
      otherwise if chmky is 3:   [still 2nd if statement level - another otherwise if]
         say "Mozzarella howler - you can tell because he's munching on some wild pasta.";
      otherwise:   [still 2nd if statement level - otherwise]
         say "species you haven't seen before.  You quickly take a photo of it.";
   otherwise:   [back to 1st if statement level - otherwise]
      say "Nope.  You don't spot a cheesemonkey.  The smell must be coming from something else.";
   if gasmask is true:   [a new if statement, independent of the others back at the lowest level]
      say "Thankfully, you've got a gas mask.  You put it on, protecting you from the cheesy stink.";
   say "You decide to move on quickly, continuing your search elsewhere.";

In the example above, the first say statement (smelling something and looking around) will always trigger.
If the chmky variable is greater than zero, the if statement succeeds and the program enters that section. The message saying the monkey was found will appear and then a new if statement will run to check what kind of monkey it is, showing the message for #1, #2, #3 or any other result.
The first level 'otherwise' only kicks in if the first level if check came back as a failure. The message that there's no monkey around will instead appear.
The next if statement, about the gas mask, is independent of the others before it and will be checked regardless of the earlier outcomes. if it succeeds, the message about the gas mask will be displayed. It has no 'otherwise' or 'otherwise if' sub-clauses.
The final statement about moving on, back at the base level, will appear always and after all the rest of the material above, regardless of their outcomes.

Hopefully that'll help you better see how such indentation and nested if clauses are handled.

I'll try to provide you some further feedback soon.
User avatar
TigerStripes
 
Posts: 593
Joined: Mon Dec 09, 2013 4:39 pm

Re: Messorem Project: The Xeno Hive

Postby Messorem » Thu Nov 20, 2014 1:46 am

Seems like a lot of work but i'm not gonna quit on this, thanks anyway. :D
Messorem
 
Posts: 34
Joined: Thu Oct 23, 2014 2:30 am

PreviousNext

Return to Dev Chat

Who is online

Users browsing this forum: No registered users and 3 guests

cron