Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Fallout Mutants Rising - fanmade Fallout TC

Black Angel

Arcane
Joined
Jun 23, 2016
Messages
2,910
Location
Wonderland
I had no idea this thread even existed. I have played Resurrection, but haven't played Nevada. I did enjoy Resurrection, though I thought the maps lacked atmosphere, and were generally its weakest element. With Mutants Rising my basic job was to help build the world - art - maps, I have build about 65% of the maps and I'm happy to announce all the maps are now finished. Currently we are a team of 4, and our scriptor/lead designer is very busy with real life, and until he starts scripting again the game can't really progress. But I will say Ardent (scriptor/lead designer) is a extremely talented individual, his ideas have improved this game, as Trump would say, "tremendously".

The size of the game is somewhere in between F1 and F2. Every location has been meticulously thought out and built. I have added decent (as decent as an old game can produce) lighting to every location, so players won't need to 'rest until day' to play the game. Atmosphere has been one of the key elements I've focused on, but the games engine is antiquated, and there's only so much you can do.

When the game gets closer to release I'll make a proper thread here at the Codex.

Here's a few screen grabs.

yLR4XN4.jpg


Z0CkhpD.jpg


WbDyYfT.jpg


AiXvq8h.jpg
AW YISSSSSS!

Butter my butt, and call me a biscuit!
 

agris

Arcane
Patron
Joined
Apr 16, 2004
Messages
6,940
.Pixote. Those look gorgeous, like Interplay themselves did them.

A few questions: are you going to include in MR some of the nice Fallout 2 tweaks you've released in the past? I'm thinking of the extended flamer animations, mutant-sized death anims for larger humanoids, blue rocks for caves etc?

I like the syphillus poster in the last screen - your work, or a vanilla asset?
 

.Pixote.

Augur
Joined
May 6, 2012
Messages
696
.Pixote. Those look gorgeous, like Interplay themselves did them.

A few questions: are you going to include in MR some of the nice Fallout 2 tweaks you've released in the past? I'm thinking of the extended flamer animations, mutant-sized death anims for larger humanoids, blue rocks for caves etc?

I like the syphillus poster in the last screen - your work, or a vanilla asset?


They are original world war 2 medical posters, if I recall correctly. I fixed them for the game in Photoshop. They work seamlessly, compared to the awkward posters in F2.

18cb19623e238ae6a6db4d75f92c9969.jpg


We are trying to add all sorts of good stuff to the game, somethings might work, others will be less successful, nevertheless we chip away until the game is finished.

JDkYdNJ.png
 

hexer

Guest
.Pixote.

Glad to hear MR is nearing completion. It's been a while!
Although our Van Buren project didn't make it, I still have cca 6000 scenery pieces (in various stages of completion)
gathering dust so if there's anything VB-related you might need, just drop me a line :)
 

Modron

Arcane
Joined
May 5, 2012
Messages
11,162
Yeah for some reason the Mutant's Rising thread on nma is in a part of the forums you have to be registered to view while other mod threads are not so visibility isn't always the greatest on its news.
 

ironmask

Arbiter
Joined
Jan 12, 2019
Messages
419
How do I edit my post? The edit button is gone and kinda have to delete the last picture. .Pixote. [one of the modders] decided to remove the picture on NMA to remove story spoilers and I want to be respectful and remove that last picture here.
 

jebsmoker

Arcane
Patron
Joined
Nov 17, 2019
Messages
2,687
Insert Title Here Strap Yourselves In I helped put crap in Monomyth
i remember seeing this on NMS over a decade ago. god, i hope this gets finished
The game is 90% done. All that is left to do is scripting. Which .Pixote. said that he guessed that the scripting is 70% done.

awesome! the quality i've seen in mutants rising rivals many modern isometric crpgs. call me biased, but that's how i feel based on what i've seen
 

HoboForEternity

LIBERAL PROPAGANDIST
Patron
Joined
Mar 27, 2016
Messages
9,442
Location
liberal utopia in progress
Steve gets a Kidney but I don't even get a tag.
i remember seeing this on NMS over a decade ago. god, i hope this gets finished
The game is 90% done. All that is left to do is scripting. Which .Pixote. said that he guessed that the scripting is 70% done.

awesome! the quality i've seen in mutants rising rivals many modern isometric crpgs. call me biased, but that's how i feel based on what i've seen
nevada already rivals many modern crpg. i wouldn't say it's perfect, but it's damn good
 

jebsmoker

Arcane
Patron
Joined
Nov 17, 2019
Messages
2,687
Insert Title Here Strap Yourselves In I helped put crap in Monomyth
i remember seeing this on NMS over a decade ago. god, i hope this gets finished
The game is 90% done. All that is left to do is scripting. Which .Pixote. said that he guessed that the scripting is 70% done.

awesome! the quality i've seen in mutants rising rivals many modern isometric crpgs. call me biased, but that's how i feel based on what i've seen
nevada already rivals many modern crpg. i wouldn't say it's perfect, but it's damn good

the somewhat rough russian to english translation in nevada kinda sours the experience for me, as good writing is essential for carrying the experience forward, but i should give it another go sometime

i'm almost tempted to offer my services to the nevada translation team, but i'm trying to keep my motivation for translating stalker mods and that's quite enough on my plate lol
 

ironmask

Arbiter
Joined
Jan 12, 2019
Messages
419
nevada already rivals many modern crpg. i wouldn't say it's perfect, but it's damn good
I love Nevada, I played it last year and honestly had more fun with that mod than any other game that came out that year. I really hope Sonora will be even better.
 

Zer0wing

Cipher
Joined
Mar 22, 2017
Messages
2,607
The game is 90% done. All that is left to do is scripting. Which .Pixote. said that he guessed that the scripting is 70% done.
Only scripting remains? So all ingame graphics, ending slides and intro video are done? Along with testing?

Sonora is almost finished, rumored to be out during this year. Any chance Mutant Rising follows very closely?
 

ironmask

Arbiter
Joined
Jan 12, 2019
Messages
419
The game is 90% done. All that is left to do is scripting. Which .Pixote. said that he guessed that the scripting is 70% done.
Only scripting remains? So all ingame graphics, ending slides and intro video are done? Along with testing?

Sonora is almost finished, rumored to be out during this year. Any chance Mutant Rising follows very closely?

I'm going to quote what .Pixote. said.

"All of the core elements are finished except the scripting, the faster our scriptor finishes the game the quicker it gets released - the beta version. I'm thinking after the scripting is complete we'll have a period to test and squash bugs, that will probably be in house with a few outside testers. What gets released will definitely have bugs, and there will be at least one patch.

Hopefully Christmas next year 2020. Here's something to look at..."
 

.Pixote.

Augur
Joined
May 6, 2012
Messages
696
We have up to 5 permanent companions, each with their own background stories and mini quests, unfortunately because we needed to cut back on content we had to cut one companion. Here's an example of how we designed our character briefs and of course Dogmeat is in the game...the bulk of these briefs are written by Ardent, our lead designer and scriptor. I don't want to spoil the story so I won't divulge anything important.

Dogmeat
qiAcZLv.gif


Overview: A mean dog you rescue from Dayglow.
Recruited in: Dayglow (west side)
Appearance: Dog

Description: Dogmeat is just a name used for the dog CNPC. You can name the dog one of the 10 suggested names, including Todd (presumably - Howard). Dogmeat comes from Dayglow and has been tormented by Terrance's ghouls. Nothing much can be said about the dog's character or anything - after all - he's just a dog and as such doesn't have very specific dialogue. Dumb dudes will have a very good and natural relation with Dogmeat and it will help a dumb dude in several places where intelligent dudes won't be able to count on it.

Script/dialogue file: DGC20
PARTY.H pointer: Dogmeat_Ptr
PID:
Proto numbers:


Role: Combat support (close quarters)
Main combat skill: Unarmed
Additional benefits: The Dog can sense radiation and will warn the player about it, provided he/she can understand what the Dog means.
Number of ranks: 5.
Companion quest: Free the dog held prisoner by the ghouls (Dayglow).

Specific reactions and events (by town):

Until we have something specific, I'll only write here some ideas.

GENERAL:

- Dogmeat senses radiation. Whenever on an irradiated map, he will twitch and moan. These floats will take the colour green. The player may pickup on the dog's strange behaviour and determine - through dialogue - that the dog is warning against radiation. To succeed in this task, dude must have less than 4 INT or more than 40 Outdoorsman. The dog reacts to dude having a geiger counter and there will be a couple of tweaks to this feature.
- Dogmeat is very uneasy in the presence of Xenon (wanamingos). He will warn against their presence with light red floats.

DAYGLOW:

- Dogmeat growls at the glowing ghoul if dude or Dogmeat himself are too close to the bastard.

RED SANDS:

- Dogmeat will immediately run to the wounded Steve Corben and bark loudly for dude to come over.

Controversy:

 
Last edited:

.Pixote.

Augur
Joined
May 6, 2012
Messages
696
When you guys say 'scripting'/'scriptor' , are you referring to writing or programming?

Scriptor is basically the programmer. Below is an example of the gobbledygook Ardent writes, I respect anyone who has the talent to write code, my brain struggles to comprehend this nonsense...I just make art and maps.

:shitposting:

/*
MR NPC: Billie Forks
Role: Murray's son, greeter, thief
Location: Groom Lake East, entrance, then at the General Store
Dialogue: Jinx
Script: Ardent
*/

/*
TODO:
- Destroy Billie when Murray's been busted
- Take Billie to the police station (node52)
*/


/* Include Files */
#include "..\headers\define.h"

#define NAME SCRIPT_GROOMC8

#include "..\headers\command.h"
#include "..\headers\redment.h"
#include "..\headers\MR\Location\GroomLake.h"

/* Standard Script Procedures */
procedure start;
procedure timed_event_p_proc;
procedure critter_p_proc;
procedure pickup_p_proc;
procedure destroy_p_proc;
procedure use_p_proc;
procedure look_at_p_proc;
procedure description_p_proc;
procedure use_skill_on_p_proc;
procedure use_obj_on_p_proc;
procedure damage_p_proc;
procedure map_enter_p_proc;
procedure map_update_p_proc;
procedure combat_p_proc;
procedure talk_p_proc;

procedure run_to_store;

procedure node001;
procedure node002;
procedure node003;
procedure node004;
procedure node005;
procedure node006;
procedure node007;
procedure node008;
procedure node009;
procedure node010;
procedure node011;
procedure node012;
procedure node013;
procedure node014;
procedure node015;
procedure node016;
procedure node017;
procedure node018;
procedure node019;
procedure node020;
procedure node021;
procedure node022;
procedure node023;
procedure node023a;
procedure node023b;
procedure node024;
procedure node025;
procedure node026;
procedure node027;
procedure node028;
procedure node029;
procedure node030;
procedure node031;
procedure node032;
procedure node033;
procedure node034;
procedure node035;
procedure node036;
procedure node037;
procedure node038;
procedure node039;
procedure node040;
procedure node041;
procedure node042;
procedure node043;
procedure node044;
procedure node045;
procedure node046;
procedure node047;
procedure node048;
procedure node049;
procedure node050;
procedure node051;
procedure node052;

procedure node994; //Billie run & hide
procedure node995; //Dude caught Billie stealing
procedure node996; //Dude didn't let Billie take him to shop
procedure node997; //Teleport Dude to Murray's shop, restart dialogue at N25
procedure node998;
procedure node999;

/*****************************************************************
Local Variables which are saved. All Local Variables need to be
prepended by LVAR_
*****************************************************************/

#define LVAR_Herebefore (4)
#define LVAR_Hostile (5)
#define LVAR_Personal_Enemy (6)
#define LVAR_Q_Monzol (7)
#define LVAR_Q_Murray (8)
#define LVAR_Q_Jen (9)
#define LVAR_Q_Huntsman (10)
#define LVAR_Q_Bask (11)
#define LVAR_Q_Kristinos (12)
#define LVAR_Q_Sheriff_Office (13)
#define LVAR_Q_Bar (14)
#define LVAR_Q_Hospital (15)
#define LVAR_Q_Water_Tower (16)
#define LVAR_Q_General_Store (17)
#define LVAR_Didnt_Let_Billie_Lead (18)
#define LVAR_Caught_Stealing (19) //0 - none, 1 - start at node29, 2 - node28, 3 - node27, 4 - done
#define LVAR_Show_Tongue (20) //0 - no, 1 - yes, 2 - done
#define LVAR_Hiding (21) //0 - nothing, 1 - run now, 2 - hiding, 3 - done
#define LVAR_Not_Talking (22) //0 - nothing, 1 - floats 160-3, 2 - float 155, 3 - done

/*******************************************************************
Useful macros
*******************************************************************/
#define greeting_done map_var(MVAR_Billie_Greeting) > 2
#define greeting_convo map_var(MVAR_Billie_Greeting) < 3

#define store_dude_tile (22915)
#define store_billie_tile (22113)
#define billie_run_hide_tile (19110)

#define dude_can_see_stealing (dude_perception >= 7) or ((dude_perception >= 6) and (has_trait(TRAIT_PERK,dude_obj,PERK_bonus_awareness))) or (has_skill(dude_obj,SKILL_STEAL) > 65) or (dude_luck >= 7) or (has_trait(TRAIT_PERK,dude_obj,PERK_harmless_perk))
#define attempt_stealing if (map_var(MVAR_Billie_Attempt_Stealing) == 0) then begin \
inven_roll := random(0,(inven_count(dude_obj) - 1)); \
stolen_item := inven_ptr(dude_obj, inven_roll); \
if ((critter_inven_obj(dude_obj,INVEN_TYPE_RIGHT_HAND) != stolen_item) and (critter_inven_obj(dude_obj,INVEN_TYPE_LEFT_HAND) != stolen_item) and (critter_inven_obj(dude_obj,INVEN_TYPE_WORN) != stolen_item)) then begin \
set_map_var(MVAR_Billie_Attempt_Stealing,1); \
count := rm_mult_objs_from_inven(dude_obj, stolen_item, 1); \
add_mult_objs_to_inven(self_obj, stolen_item, 1); \
end \
end
#define return_stolen_item count:=rm_mult_objs_from_inven(self_obj,stolen_item,1); \
add_mult_objs_to_inven(dude_obj,stolen_item,1); \
stolen_item:=0

/*******************************************************************
Imported variables from the Map scripts. These should only be
pointers and variables that need not be saved. If a variable
Needs to be saved, make it a map variable (MVAR_)
*******************************************************************/
import variable murray_stock_box;

/*******************************************************************
Local variables which do not need to be saved between map changes.
*******************************************************************/
variable begin
go_to_store; rot; stolen_item; inven_roll; count; kid_float; from34;
end

/*******************************************************************
******* PROCEDURES *******
*******************************************************************/


/*******************************************************************
The start procedure is the first procedure called when the map is
first entered. Any initial information that needs to be set up
should be placed in here.
*******************************************************************/

procedure start begin
end

procedure timed_event_p_proc begin
if (fixed_param == 0) then begin
//Billie led Dude to his dad's store, start dialogue at node25
dialogue_system_enter;
end
end

/********************************************************************
********************************************************************/

procedure use_p_proc begin
end

/***************************************************************************
This is cursory glance description that the player will receive should
he just pass the Action Cursor over. Examines which give more information
need to be in the description_p_proc procedure.
***************************************************************************/

procedure look_at_p_proc begin
script_overrides;
if (local_var(LVAR_Herebefore) == 0) then
display_msg(mstr(100));
else
display_msg(mstr(101));
end


procedure description_p_proc begin
script_overrides;
display_msg(mstr(102));
end



procedure use_skill_on_p_proc begin
end


procedure use_obj_on_p_proc begin
end


/******************************************************************************************
IF it gets damaged
******************************************************************************************/

procedure pickup_p_proc begin
if (obj_in_party(source_obj)) then begin
set_local_var(LVAR_Hostile,1);
attack(dude_obj);
end
end

procedure damage_p_proc begin
if (obj_in_party(source_obj)) then begin
set_local_var(LVAR_Hostile,1);
attack(dude_obj);
end
end

procedure destroy_p_proc begin
inc_good_critter

if (obj_in_party(source_obj)) then begin
inc_global_var(GVAR_CHILDKILLER_REPUTATION);
dec_global_var_amt(GVAR_TOWN_REP_REDDING,15);
end
end

/***************************************************************************************
Whenever the map is first entered, this procedure will be called.
***************************************************************************************/

procedure map_enter_p_proc begin
critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_TEAM_NUM,TEAM_GROOM_FOLKS);

//DEBUG - add dude some items
/*give_pid_qty(dude_obj,PID_POCKET_LINT,2)
give_pid_qty(dude_obj,PID_LEATHER_JACKET,2)
give_pid_qty(dude_obj,PID_10MM_PISTOL,2)*/

//Having greeted Dude, Billie resumes his post at the storefront
if (greeting_done) then begin
move_to(self_obj,store_billie_tile,0);
animate_rotation(3);
//If Billie was hiding from Dude, put him back in place and make him visible again
if (local_var(LVAR_Hiding) == 2) then begin
set_obj_visibility(self_obj,0);
set_local_var(LVAR_Hiding,3);
end
end
end

/**************************************************************************************
This procedure gets called roughly every 30 seconds of real time.
**************************************************************************************/

procedure map_update_p_proc begin
if ((tile_num(self_obj) == store_billie_tile) and (has_trait(TRAIT_OBJECT,self_obj,OBJECT_CUR_ROT) != 3)) then begin
animate_rotation(3);
end

//Make him talk again when the quest is solved
if (((local_var(LVAR_Not_Talking) == 1) or (local_var(LVAR_Not_Talking) == 2)) and (global_var(GVAR_GROOM_THIEVERY_AFOOT) >= GROOM_ThieveryAfoot_Completed)) then begin
set_local_var(LVAR_Not_Talking,3);
end
end

procedure critter_p_proc begin
if ((local_var(LVAR_Hostile) == 2) and (obj_can_see_obj(self_obj,dude_obj))) then begin
set_local_var(LVAR_Hostile,1);
attack(dude_obj);
end

//First greeting
if ((map_var(MVAR_Billie_Greeting) == 1) and (obj_can_see_obj(self_obj,dude_obj)) and (combat_is_initialized == false)) then begin
set_map_var(MVAR_Billie_Greeting,2);
dialogue_system_enter;
end

//Run and hide
if ((local_var(LVAR_Hiding) == 1) and (tile_distance(tile_num(self_obj),billie_run_hide_tile) < 2)) then begin
set_local_var(LVAR_Hiding,2);
set_obj_visibility(self_obj,1);
end
end

procedure combat_p_proc begin
//Passive when hiding and invisible
if (local_var(LVAR_Hiding) == 2) then begin
script_overrides;
end
end

/**************************************************************************************
This is used for any dialogue that may need to occur with the player.
**************************************************************************************/

procedure talk_p_proc begin
if ((local_var(LVAR_Not_Talking) == 0) or (local_var(LVAR_Not_Talking) > 2)) then begin
start_gdialog(NAME,self_obj,4,-1,-1);
gsay_start;
if (map_var(MVAR_Billie_Greeting) == 2) then begin //first greeting
call node001;
end
else begin
if ((global_var(GVAR_GROOM_THIEVERY_AFOOT) == GROOM_ThieveryAfoot_TookBribe) or (global_var(GVAR_GROOM_THIEVERY_AFOOT) == GROOM_ThieveryAfoot_ConfirmedBilly)) then begin
call node051;
end
else if (go_to_store == 2) then begin
go_to_store:=0;
call node025;
end
else if (local_var(LVAR_Caught_Stealing) == 1) then begin
set_local_var(LVAR_Caught_Stealing,4);
call node029;
end
else if (local_var(LVAR_Caught_Stealing) == 2) then begin
set_local_var(LVAR_Caught_Stealing,4);
call node028;
end
else if (local_var(LVAR_Caught_Stealing) == 3) then begin
set_local_var(LVAR_Caught_Stealing,4);
call node027;
end
else if (local_var(LVAR_Show_Tongue) == 1) then begin
set_local_var(LVAR_Show_Tongue,2);
call node030;
end
else begin
call node026;
end
end
gsay_end;
end_dialogue;
end
else if (local_var(LVAR_Not_Talking) == 1) then begin
floater_rand(160,163);
end
else begin
floater(155);
end

//Teleport Dude to Murray's store, restart dialogue
if (go_to_store == 1) then begin
gfade_out(1);
go_to_store:=2;
move_to(dude_obj,store_dude_tile,0);
move_to(self_obj,store_billie_tile,0);
rot:=rotation_to_tile(tile_num(self_obj),tile_num(dude_obj));
animate_rotation(rot);
add_timer_event(self_obj,4,0); //restart dialogue at node25
gfade_in(1);
end
else if (local_var(LVAR_Hiding) == 1) then begin
reg_anim_clear(self_obj);
reg_anim_begin();
animate_move_obj_to_tile(self_obj,billie_run_hide_tile,1);
reg_anim_end();
float_msg(self_obj,mstr(154),FLOAT_MSG_RED);
end
else if (local_var(LVAR_Didnt_Let_Billie_Lead) == 1) then begin
set_local_var(LVAR_Didnt_Let_Billie_Lead,2);
floater(kid_float);
call run_to_store;
end

if (map_var(MVAR_Billie_Greeting) < 3) then begin
//End the first convo and move stolen items to Murray's box
set_map_var(MVAR_Billie_Greeting,3);
if (stolen_item != 0) then begin
count:=rm_mult_objs_from_inven(self_obj,stolen_item,1);
add_mult_objs_to_inven(murray_stock_box,stolen_item,1);
end
end
end

procedure node001 begin
set_local_var(LVAR_Herebefore,1);
if (dude_is_male) then
Reply(300);
else
Reply(1000);
NOption(301,node002,4);
GOption(302,node003,4);
NOption(303,node019,4);
BOption(304,node024,4);
end

procedure node002 begin
Reply(310);
NOption(311,node003,4);
if (local_var(LVAR_Q_Monzol) == 0) then
NOption(312,node008,4);
NOption(313,node007,4);
BOption(314,node024,4);
end

procedure node003 begin
Reply(320);
NOption(321,node004,4);
NOption(322,node019,4);
BOption(323,node024,4);
end

procedure node004 begin
if (dude_is_male) then
Reply(330);
else
Reply(1010);
NOption(331,node005,4);
NOption(332,node006,4);
NOption(333,node007,4);
end

procedure node005 begin
Reply(340);
if (local_var(LVAR_Q_Monzol) == 0) then
NOption(341,node008,4);
if (local_var(LVAR_Q_Jen) == 0) then
NOption(342,node009,4);
if (local_var(LVAR_Q_Huntsman) == 0) then
NOption(343,node010,4);
if (local_var(LVAR_Q_Bask) == 0) then
NOption(344,node011,4);
if (local_var(LVAR_Q_Kristinos) == 0) then
NOption(345,node012,4);
if (greeting_convo) then begin
NOption(346,node006,4);
NOption(347,node019,4);
end
else begin
NOption(348,node037,4);
NOption(349,node999,4);
end
end

procedure node006 begin
Reply(350);
if (local_var(LVAR_Q_Sheriff_Office) == 0) then
NOption(351,node013,4);
if (local_var(LVAR_Q_Bar) == 0) then
NOption(352,node014,4);
if (local_var(LVAR_Q_Hospital) == 0) then
NOption(353,node015,4);
if (local_var(LVAR_Q_Water_Tower) == 0) then
NOption(354,node016,4);
if (local_var(LVAR_Q_General_Store) == 0) then
NOption(355,node017,4);
NOption(356,node005,4);
NOption(357,node019,4);
end

procedure node007 begin
set_local_var(LVAR_Q_Murray,1);
Reply(360);
NOption(361,node004,4);
NOption(362,node997,4);
NOption(363,node019,4);
end

procedure node008 begin
set_local_var(LVAR_Q_Monzol,1);
Reply(370);
NOption(371,node005,4);
if (greeting_convo) then begin
NOption(372,node018,4);
NOption(373,node006,4);
NOption(374,node019,4);
end
else begin
NOption(375,node037,4);
NOption(376,node999,4);
end
end

procedure node009 begin
set_local_var(LVAR_Q_Jen,1);
Reply(380);
NOption(381,node005,4);
if (greeting_convo) then begin
NOption(382,node018,4);
NOption(383,node006,4);
NOption(384,node019,4);
end
else begin
NOption(385,node037,4);
NOption(386,node999,4);
end
end

procedure node010 begin
set_local_var(LVAR_Q_Huntsman,1);
GROOM_Set_DudeHeardAboutPickett;
Reply(390);
NOption(391,node005,4);
if (greeting_convo) then begin
NOption(392,node006,4);
NOption(393,node019,4);
end
else begin
NOption(394,node037,4);
NOption(395,node999,4);
end
end

procedure node011 begin
set_local_var(LVAR_Q_Bask,1);
Reply(400);
NOption(401,node005,4);
NOption(402,node012,4);
if (greeting_convo) then begin
NOption(403,node006,4);
NOption(404,node019,4);
end
else begin
NOption(405,node037,4);
NOption(406,node999,4);
end
end

procedure node012 begin
set_local_var(LVAR_Q_Kristinos,1);
Reply(410);
NOption(411,node005,4);
if (greeting_convo) then begin
NOption(412,node006,4);
NOption(413,node019,4);
end
else begin
NOption(414,node037,4);
NOption(415,node999,4);
end
end

procedure node013 begin
attempt_stealing
set_local_var(LVAR_Q_Sheriff_Office,1);
Reply(420);
NOption(421,node006,4);
NOption(422,node005,4);
if (dude_can_see_stealing) then begin
BOption(423,node020,4);
if (has_skill(dude_obj,SKILL_STEAL) <= 60) then
NOption(424,node021,4);
end
NOption(425,node019,4);
end

procedure node014 begin
attempt_stealing
set_local_var(LVAR_Q_Bar,1);
Reply(430);
NOption(431,node006,4);
NOption(432,node005,4);
if (dude_can_see_stealing) then begin
BOption(433,node020,4);
if (has_skill(dude_obj,SKILL_STEAL) <= 60) then
NOption(434,node021,4);
end
NOption(435,node019,4);
end

procedure node015 begin
attempt_stealing
set_local_var(LVAR_Q_Hospital,1);
Reply(440);
NOption(441,node006,4);
NOption(442,node005,4);
if (dude_can_see_stealing) then begin
BOption(443,node020,4);
if (has_skill(dude_obj,SKILL_STEAL) <= 60) then
NOption(444,node021,4);
end
NOption(445,node019,4);
end

procedure node016 begin
attempt_stealing
set_local_var(LVAR_Q_Water_Tower,1);
Reply(450);
NOption(451,node006,4);
NOption(452,node005,4);
if (dude_can_see_stealing) then begin
BOption(453,node020,4);
if (has_skill(dude_obj,SKILL_STEAL) <= 60) then
NOption(454,node021,4);
end
NOption(455,node019,4);
end

procedure node017 begin
set_local_var(LVAR_Q_General_Store,1);
Reply(460);
NOption(461,node004,4);
NOption(462,node997,4);
NOption(463,node996,4);
end

procedure node018 begin
if (dude_is_male) then
Reply(470);
else
Reply(1020);
NOption(471,node004,4);
if (local_var(LVAR_Q_General_Store) == 0) then
NOption(472,node017,4);
NOption(473,node019,4);
end

procedure node019 begin
if (dude_is_male) then
Reply(480);
else
Reply(1030);
NOption(481,node004,4);
NOption(482,node997,4);
NOption(483,node996,4);
end

procedure node020 begin
return_stolen_item;
set_local_var(LVAR_Caught_Stealing,1);
if (global_var(GVAR_GROOM_BILLIE_CAUGHT_STEALING) == 0) then
set_global_var(GVAR_GROOM_BILLIE_CAUGHT_STEALING,1);

if (dude_is_male) then
Reply(490);
else
Reply(1040);
BOption(491,node022,4);
NOption(492,node022,4);
BOption(493,node995,4);
end

procedure node021 begin
critter_mod_skill(dude_obj,SKILL_STEAL,GROOM_Billie_Steal_Bonus);
display_msg(mstr(103));
give_xp(GROOM_Learned_Billie_Technique_XP);
Reply(500);
BOption(501,node020,4);
end

procedure node022 begin
if (dude_is_male) then
Reply(510);
else
Reply(1050);
GOption(511,node023,4);
BOption(512,node995,4);
end

procedure node023 begin
kid_float:=151;
if (dude_is_male) then
Reply(520);
else
Reply(1060);
NOption(521,node023a,4);
NOption(522,node023b,4);
end

procedure node023a begin
kid_float:=151;
set_local_var(LVAR_Caught_Stealing,2);
call node995;
end

procedure node023b begin
kid_float:=150;
set_local_var(LVAR_Caught_Stealing,3);
if (map_var(MVAR_Billie_Discount) < 1) then
set_map_var(MVAR_Billie_Discount,1);
call node995;
end

procedure node024 begin
set_local_var(LVAR_Show_Tongue,1);
Reply(530);
NOption(531,node996,4);
end

procedure node025 begin
attempt_stealing
if (map_var(MVAR_Billie_Discount) < 1) then
set_map_var(MVAR_Billie_Discount,1);
if (dude_is_male) then
Reply(540);
else
Reply(1070);
if (dude_can_see_stealing) then begin
BOption(541,node034,4);
BOption(542,node035,4);
end
NOption(543,node999,4);
end

procedure node026 begin
if (local_var(LVAR_Hiding) < 3) then begin
if (dude_is_male) then
Reply(550);
else
Reply(1080);
end
else begin
Reply(551);
end
NOption(552,node037,4);
NOption(553,node999,4);
end

procedure node027 begin
Reply(560);
NOption(561,node032,4);
NOption(562,node999,4);
end

procedure node028 begin
if (dude_is_male) then
Reply(570);
else
Reply(571);
NOption(572,node037,4);
NOption(573,node999,4);
end

procedure node029 begin
Reply(580);
NOption(581,node033,4);
BOption(582,node994,4);
end

procedure node030 begin
Reply(590);
BOption(591,node031,4);
NOption(592,node999,4);
end

procedure node031 begin
if (dude_is_male) then
Reply(600);
else
Reply(601);
NOption(602,node999,4);
end

procedure node032 begin
Reply(610);
NOption(611,node037,4);
NOption(612,node999,4);
end

procedure node033 begin
Reply(620);
NOption(621,node037,4);
NOption(622,node999,4);
end

procedure node034 begin
set_local_var(LVAR_Caught_Stealing,1);
if (global_var(GVAR_GROOM_BILLIE_CAUGHT_STEALING) == 0) then
set_global_var(GVAR_GROOM_BILLIE_CAUGHT_STEALING,1);
from34:=1;
return_stolen_item;

Reply(630);
NOption(631,node036,4);
BOption(632,node035,4);
end

procedure node035 begin
if (from34 == 0) then begin
return_stolen_item;
end
from34:=0;
Reply(640);
NOption(641,node999,4);
BOption(642,node994,4);
end

procedure node036 begin
if (dude_is_male) then
Reply(650);
else
Reply(1090);
NOption(651,node999,4);
end

procedure node037 begin
Reply(660);
NOption(661,node005,4);
if (GROOM_Quest_ThieveryAfoot_Active) then begin
if (local_var(LVAR_Caught_Stealing) == 0) then begin
BOption(662,node038,4);
end
else begin
BOption(663,node040,4);
end
end
NOption(664,node999,4);
end

procedure node038 begin
Reply(670);
NOption(671,node039,4);
if (global_var(GVAR_GROOM_THIEVERY_JEN_INFO) == 2) then
BOption(672,node040,4);
if (global_var(GVAR_GROOM_THIEVERY_ANNAMARIA_INFO) == 2) then
BOption(673,node040,4);
if ((global_var(GVAR_GROOM_THIEVERY_HARVIN_INFO) == 2) and (global_var(GVAR_GROOM_SAW_HARVIN_WATCH_AT_MURRAY) > 0)) then
BOption(674,node041,4);
end

procedure node039 begin
if (dude_is_male) then
Reply(680);
else
Reply(1100);
NOption(681,node005,4);
NOption(682,node999,4);
end

procedure node040 begin
Reply(690);
if ((global_var(GVAR_GROOM_THIEVERY_HARVIN_INFO) == 2) and (global_var(GVAR_GROOM_SAW_HARVIN_WATCH_AT_MURRAY) > 0)) then
BOption(691,node041,4);
if ((dude_strength >= 7) or (has_trait(TRAIT_TRAIT,dude_obj,TRAIT_bruiser)) or (local_var(LVAR_Caught_Stealing) > 0)) then
BOption(692,node044,4);
else
NOption(693,node043,4);
if (((dude_charisma >= 7) and (has_skill(dude_obj,SKILL_CONVERSANT) >= 50)) or (has_skill(dude_obj,SKILL_CONVERSANT) >= 75)) then
NOption(694,node045,4);
else
NOption(695,node043,4);
NOption(696,node999,4);
end

procedure node041 begin
Reply(700);
NOption(701,node042,4);
end

procedure node042 begin
Reply(710);
BOption(711,node044,4);
NOption(712,node045,4);
end

procedure node043 begin
set_local_var(LVAR_Not_Talking,1);
set_global_var(GVAR_GROOM_THIEVERY_BILLIE_CONFESSION,1);
Reply(720);
NOption(721,node999,4);
end

procedure node044 begin
set_global_var(GVAR_GROOM_THIEVERY_BILLIE_CONFESSION,2);
set_global_var(GVAR_GROOM_THIEVERY_AFOOT,GROOM_ThieveryAfoot_EvidenceBilly);
Reply(730);
NOption(731,node049,4);
end

procedure node045 begin
set_global_var(GVAR_GROOM_THIEVERY_BILLIE_CONFESSION,2);
set_global_var(GVAR_GROOM_THIEVERY_AFOOT,GROOM_ThieveryAfoot_EvidenceBilly);
Reply(740);
NOption(741,node046,4);
end

procedure node046 begin
Reply(750);
NOption(751,node047,4);
BOption(752,node048,4);
end

procedure node047 begin
set_local_var(LVAR_Not_Talking,2);
if (dude_is_male) then
Reply(760);
else
Reply(1110);
NOption(761,node999,4);
end

procedure node048 begin
Reply(770);
NOption(771,node047,4);
if ((dude_perception >= 7) or (has_trait(TRAIT_PERK,dude_obj,PERK_bonus_awareness)) or (dude_iq >= 6)) then
BOption(772,node049,4);
end

procedure node049 begin
set_global_var(GVAR_GROOM_THIEVERY_BILLIE_CONFESSION,3);
if (dude_is_male) then
Reply(780);
else
Reply(781);
NOption(782,node050,4);
end

procedure node050 begin
set_global_var(GVAR_GROOM_THIEVERY_AFOOT,GROOM_ThieveryAfoot_EvidenceMurray);
display_msg(mstr(104));
set_local_var(LVAR_Not_Talking,2);
Reply(790);
NOption(791,node047,4);
NOption(792,node999,4);
end

procedure node051 begin
Reply(800);
NOption(801,node052,4);
NOption(802,node999,4);
end

procedure node052 begin
//TODO: Take Billie to the station (probably need a different ending node)
Reply(810);
NOption(811,node999,4);
end

procedure node994 begin //Billie run & hide
set_local_var(LVAR_Hiding,1);
end

procedure node995 begin //After Billie stole from Dude
set_local_var(LVAR_Didnt_Let_Billie_Lead,1);
if (kid_float == 0) then
kid_float:=152;
end

procedure node996 begin //Dude didn't let Billie take him to shop
set_local_var(LVAR_Didnt_Let_Billie_Lead,1);
kid_float:=153;
end

procedure node997 begin //Teleport Dude to Murray's shop, restart dialogue at N25
go_to_store:=1;
end

procedure node998 begin
set_local_var(LVAR_Hostile,2);
end

procedure node999 begin
end

procedure run_to_store begin
reg_anim_clear(self_obj);
reg_anim_begin();
animate_move_obj_to_tile(self_obj,store_billie_tile,1);
reg_anim_end();
end
 

AdolfSatan

Arcane
Joined
Dec 27, 2017
Messages
2,043
It's because Todd is a bitch.

Also, I know that you can't legally sell the game, but is there some way to contribute with a minimal donation, if only to pay another bottle of vodka for you guys? Perhaps a patreon?
 

Darth Canoli

Arcane
Joined
Jun 8, 2018
Messages
5,737
Location
Perched on a tree
We have up to 5 permanent companions, each with their own background stories and mini quests, unfortunately because we needed to cut back on content we had to cut one companion. He's an example of how we designed our character briefs and of course Dogmeat is in the game...the bulk of these briefs are written by Ardent, our lead designer and scriptor. I don't want to spoil the story so I won't divulge anything important.

Interesting, did you add the full party control tweak as well ? Or at least is it compatible with it ?
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom